硬件设计—电子钟设计.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
实验四 电子钟设计 实验目的:掌握计数器、按键消抖、利用按键控制输出脉冲或电平、数据选择 器实现数码管动态显示、利用输入频率计算时分秒等功能模块。 实验内容:设计实现电子钟,要求:1、在数码管上显示时分;2、能够启停电 子钟;3、设置电子钟的时与分;4、对电子钟清零及计时。 顶层电路原理图:如图 4-1 所示 图 4-1 按键消抖模块说明及代码: 该模块实现的主要功能是按键消抖,其主要目的是防止在按动按键的时候由 于按键本身的一些原因而导致该按键所控制的数码管上数值的变化跟我们所按 动的次数不符合。 例如,我们所希望的是数码管上的数字在我们每按动一次按键 时加 1, 可是由于按键的抖动可能会导致我们按动一下按键时数值会加 2 或者 3, 不一定会只加一,因此需要按键消抖使结果更精确。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity KeyIn is port( clk,din : IN STD_LOGIC; dout : OUT STD_LOGIC); end KeyIn; ARCHITECTURE arc OF KeyIn IS BEGIN process(clk,din) variable temp:integer; begin if clk'event and clk='1' then if(din='1') then temp:=0;end if; if temp >10 then dout<='1'; else dout<='0'; end if; temp:=temp+1; end if; end process; end arc; 动态数码管显示模块说明及代码: 该模块的主要功能是实现数码管的动态显示, 实验中通过 SG1—SG4 即通过 Y 的四个输出控制四个数码管动态地轮流显示,y0—y3 分别对应显示第一个数码 管到第四个数码管(q 控制的是数码管上显示的数值) ,当输入脉冲较小时即可 清楚看到其动态显示过程, 当脉冲较大时由于速度很快,我们就可以看到四个数 码管同时都亮着的状态。 library ieee; use ieee.std_logic_1164.all; entity mul4to1 is port( clk,clr:in bit; a,b,c,d: in std_logic_vector (3 downto 0); y,q: out std_logic_vector (3 downto 0)); end mul4to1; architecture archmul4to1 of mul4to1 is begin process(clk,clr,a,b,c,d) variable count:integer; begin if clr='1' then count:=0; else if clk'event and clk = '1' then if(count<3) then count:=count+1; else count:=0; end if; CASE count IS WHEN 0 => y<="1000";q<=a; WHEN 1 => y<="0100";q<=b; WHEN 2 => y<="0010";q<=c; WHEN 3 => y<="0001";q<=d; when others =>NULL; END CASE; end if; end if; end process; end archmul4to1; 管脚锁定说明:如图 4-2 所示 图 4-2 硬件测试情况说明及结果分析: 在实验箱上连接好电路,脉冲给定 1.25MHz;数码管下方左边的接口即输出 的 y0—y3 分别连接的对应引脚为 144、2、4、10,而右边接口对应输出 q0—q6 连接的对应引脚分别为 142、141、138、137、136、135、133;set 控制暂停或 开始计时的按键接按键 Key6 对应引脚 42;reset 清 0 接按键 Key5 对应引脚为 43;incH 控制增加小时的按键为 Key7 对应引脚 39;incM 控制增加分钟的按键 为 Key3,对应引脚 46。设好引脚将程序载入试验箱,四个数码管会显示,按下 reset 键将数码管清 0 后自动开始计时,按下 set 键计时暂停,这时分别按动控 制小时和分钟增加的按键, 就可以改变时和分,这时再按一下 set 键就会从刚设 置好的时间开始自动计时, 此时再按增加时和分的按键是不能改变时间的,只有 在暂停时可以改变时和分。 通过实验自己动手去测试之后,我们最后所得结果符 合预期,实验成功。 实验总结: 通
- 粉丝: 167
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助