北邮数电实验报告.docx

北邮数电实验报告.docx

ID:53093029

大小:107.94 KB

页数:15页

时间:2020-04-01

北邮数电实验报告.docx_第1页
北邮数电实验报告.docx_第2页
北邮数电实验报告.docx_第3页
北邮数电实验报告.docx_第4页
北邮数电实验报告.docx_第5页
资源描述:

《北邮数电实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数字电路与逻辑设计实验报告一、要求要求:设计制作一个简易计算器,实现最大输入两位十进制数字的加减乘运算。基本要求:1、实现最大输入两位十进制数字的加减乘运算;八个拨码开关按两位8421bcd码输入。2、能够实现多次连算(无优先级,从左到右计算结果),如12+34×56-78=2498。3、最大长度以数码管最大个数为限,溢出报警。提高要求:1、有正负数区分。2、实现除法(不能整除时小数保留2位有效数字)。3、其它扩展功能。二、系统设计:设计思路:1、将该程序进行分模块设计。可以将程序分为:主程序、译码模块和防抖模块。其中,主程序负责将输入的数据进行存储,对数据

2、进行运算,将数据输出到数码上等;防抖模块负责对按键输入的数防抖;译码模块负责对输入的数据进行译码(由8421bcd码转化为十进制的编码)。2、分模块进行相应模块的编写。3、对编好的模块进行测试。4、编写主程序并进行调试。总体框图:流程图:分块设计:(按实际操作的分块)输入模块:由符号开关和拨码开关构成。采用序列存储的方式存储相应的输入。输入译码模块:将输入的符号序列转化成先用状态,以便选取对应的计算方法;将输入的8421bcd码转化成相应的两位十进制数。数码显示模块:将寄存器内的数进行输出到数码管上。显示所输入的第一个数以及最后的结果。计算模块:调用相应的计

3、算方式,对所输入的数进行计算。防抖模块:在用按键输入时,所得到的信号可能会有抖动,因此加入此抖动电路。三、仿真波形及波形分析:分析(波形仿真时,为了方便观察,将8421bcd码输入方式,该为了十进制的直接输入方式,并将输出,有原来的数码管显示改成了直接数字显示)由图中可以看出,当输入12,按下“确定”,数字就输入到了寄存器中,输入“+”号(对应仿真中的fuhao“100000”),在输入一个数35,按下“确定”,该计算器就件寄存器中的数与第二次输入的数进行相加,得到结果47。此时该结果又被直接保存到了寄存器中,继续输入运算符“-”(对应仿真中得fuhao“0

4、10000”),输入第三个数18,按下“确定”,计算器对其做减法运算,得到结果29,该结果又在寄存器中存储着。继续后续输入相应符号,相应数字可以继续进行相应的计算,只要结果在(-99999,99999)之间,就可以一直进行计算。四、源程序:主程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_SIGNED.ALL;Entitylzjisuanqiisport(cat:OUTSTD_LOGIC_VECTOR(5DOWNTO0);digit

5、al:OUTSTD_LOGIC_VECTOR(6DOWNTO0);clk:instd_logic;beep:outstd_logic;num:instd_logic_vector(7downto0);fuhao:instd_logic_vector(5downto0));endentitylzjisuanqi;architecturelzoflzjisuanqiiscomponenttransformport(cin:instd_logic_vector(7downto0);cout:outintegerrange0to99);endcomponent;co

6、mponentfangdouISPORT(clk:INSTD_LOGIC;key_in:INSTD_LOGIC_VECTOR(5DOWNTO0);key_out:OUTSTD_LOGIC_VECTOR(5DOWNTO0));endcomponent;typestate_typeis(s0,s1,s2);signalstate:state_type;typetime_typeis(t1,t2,t3,t4,t5,t6);signaltime1:time_type;signalnum1:integerrange0to99;signalresult1:integer

7、range-99999to99999;signalresult2:integerrange-99999to99999;signalcat0:integerrange0to9;signalcat1:integerrange0to9;signalcat2:integerrange0to9;signalcat3:integerrange0to9;signalcat4:integerrange0to9;signalcnt:integerrange0to50000;signalclk_tmp:std_logic;signalffuhao:std_logic_vecto

8、r(5downto0);beginu1:transf

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。