VHDL语言的倒数计时器

设计了一个包括4位数码管显示、4个操作按键的倒计时系统,初始状态为数值设定,通过按键切换和调整分钟、秒钟。系统采用脉冲发生器、4进制加法计数器、60和99进制计数器等模块,支持启动倒计时、暂停及结束提示。通过仿真验证了设计的功能,包括计数、预置数、暂停和复位等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计要求:

1. 4位数码管显示, 2位显示分钟,2位显示秒钟;

2. 4个操作按键:“选择按键”,“+按键”,“-按键”,“开始按键”;

3. 初始状态为:数值设定状态,通过“选择按键”来切换,调整分钟或秒钟,然后再通过“+按键”和“-按键”来设定数值的加减,秒钟的设定范围为0~59,分钟的范围为0~99,因此总的数值的设定范围为00:00~99:59

4. 启动倒计时到数值为零后停止,并点亮一个红灯表示计时结束;

5. 在计时过程中再次按下开始按键则进入暂停状态,计数暂停,按下开始按键继续

设计思路

需要设计一个脉冲发生器、4进制加法计数器、60和99进制计数器、60和100进制可逆计数器

可用分位的借位输出端连接小灯实现要求4,通过控制时钟来实现要求5

脉冲发生器(maich)的作用:

每当按下加(inc)或减(dec)便会产生一个脉冲,该脉冲作为可逆计数器的时钟信号,同时还需要设立一个输出x来判断让可逆计数器施行加法还是减法。例如:按下inc后产生一个脉冲作为时钟信号,此时x为0让后面的可逆计数器做加法;按下dec后同样产生一个脉冲作为可逆计数器的时钟信号,此时x为1,可逆计数器做减法。

4进制加法计数器的作用:

用来控制和判断当前的工作状态。前面的脉冲发生器每产生一个脉冲遍传给计数器一个时钟,当始终有效,使能端sel有效时该计数器将会加1.

初始状态为0,此时输出端的分使能端(enm)、秒使能端(ens)有效为1,分置数端(ldm)、秒置数端(lds)无效,让两计数器倒数计数

状态1,输出端的分使能端(enm)、秒使能端(ens)无效为0,分置数端(ldm)有效、秒置数端(lds)无效,将分预置数传入分计数器

状态2,输出端的分使能端(enm)、秒使能端(ens)无效为0,分置数端(ldm)无效、秒置数端(lds)有效,将秒预置数传入分计数器

状态3,为空状态,所以显示的结果会与状态2相同

60和100进制可逆计数器(coun_60x1和coun_99x1)的作用:

可逆计数器主要是用于对计数器进行预置数,将设置的开始倒数时间在计时器置数端有效的情况下传给计数器,从设置的时间开始倒数计时。输入x为0做加法,x为1做减法,所以每按一次加(inc)可逆计数器的值就加一;按一次(dec)可逆计数器的值就减

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值