北邮数电实验四报告.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北邮数电实验四报告

北邮数电实验四报告 一、要求要求: 设计制作一个简易计算器,实现最大输入两位十进制数字的加减乘运算。 基本要求: 1、 实现最大输入两位十进制数字的加减乘运算;八个拨码开关按两位8421bcd码输入。 2、 能够实现多次连算,如 12+34×56-78=2498。 3、 最大长度以数码管最大个数为限,溢出报警。 提高要求: 1、 有正负数区分。 2、 实现除法。 3、 其它扩展功能。 二、系统设计: 设计思路: 1、 将该程序进行分模块设计。可以将程序分为:主程序、译码模块和防抖模块。其中, 主程序负责将输入的数据进行存储,对数据进行运算,将数据输出到数码上等;防抖模块负责对按键输入的数防抖;译码模块负责对输入的数据进行译码。 2、 分模块进行相应模块的编写。 3、 对编好的模块进行测试。 4、 编写主程序并进行调试。 总体框图: 流程图: 分块设计: 输入模块:由符号开关和拨码开关构成。采用序列存储的方式存储相应的输入。 输入译码模块:将输入的符号序列转化成先用状态,以便选取对应的计算方法;将输入的8421bcd码转化成相应的两位十进制数。 数码显示模块:将寄存器内的数进行输出到数码管上。显示所输入的第一个数以及最后的结果。 计算模块:调用相应的计算方式,对所输入的数进行计算。 防抖模块:在用按键输入时,所得到的信号可能 会有抖动,因此加入此抖动电路。 三、仿真波形及波形分析: 分析 由图中可以看出,当输入1,按下“确定”,数字就输入到了寄存器中,输入“+”号,在输入一个数35,按下“确定”,该计算器就件寄存器中的数与第二次输入的数进行相加,得到结果47。此时该结果又被直接保存到了寄存器中,继续输入运算符“-”,输入第三个数18,按下“确定”,计算器对其做减法运算,得到结果29,该结果又在寄存器中存储着。继续后续输入相应符号,相应数字可以继续进行相应的计算,只要结果在之间,就可以一直进行计算。 四、源程序: 主程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_SIGNED.ALL; Entity lzjisuanqi is port; digital:OUT STD_LOGIC_VECTOR; clk:in std_logic; beep:out std_logic; num:in std_logic_vector; fuhao:in std_logic_vector ); end entity lzjisuanqi; architecture lz of lzjisuanqi is component transform port; cout: out integer range 0 to9); end component; component fangdou IS PORT; key_out:OUT STD_LOGIC_VECTOR ); end component; type state_type is ; signal state:state_type; type time_type is ; signal time1:time_type; signal num1:integer range 0 to9; signal result1:integer range -9999to9999; signal result2:integer range -9999to9999; signal cat0:integer range 0 to; signal cat1:integer range 0 to; signal cat2:integer range 0 to; signal cat3:integer range 0 to; signal cat4:integer range 0 to; signal cnt : integer range 0 to0000; signal clk_tmp : std_logic; si

您可能关注的文档

文档评论(0)

jiqingyong11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档