找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 229|回复: 0
收起左侧

VHDL语言的倒数计时器-具体思路

[复制链接]
ID:1101144 发表于 2024-4-6 18:01 | 显示全部楼层 |阅读模式
设计要求:
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)可逆计数器的值就减一。60进制可逆计数器与100进制可逆计数器工作原理相同,只是所设置的值的上限不同。

60和99进制计数器(coun_60和coun_99)的作用:
计数器在时钟有效到达上升沿时,若使能端有效、置数端无效,则进行正常倒数计数,若使能端无效、置数端有效,则停止倒数计数将可逆计数器中的预置数输入到计数器内,当再次回到使能端有效、置数端无效时,便从所设置的数开始倒数计数,当倒数到00时便会有一个借位输出秒计数器为co,分计数器为co1。

60进制计数器与100进制计数器的级联:
因为60进制计数器是(00-59)代表秒位,99进制计数器(00-99)代表分位,所以每当秒计数器倒数到00时下一个状态分计数器减一秒计数器回到59,因此将秒计数器的借位输出端连在分计数器的使能端(该借位输出不受时钟控制,若受时钟控制则分计数器将会比秒计数器慢一个时钟信号才改变),只有在秒计数器倒数结束时分计数器才开始工作,每个循环依次往复。

2与门和1或门的作用:
enm与ens相与与输出端start相连,可通过start来判断此时是否在倒数计数状态

2与门和1或门与时钟信号相连相连是为了让时钟信号受到4进制加法计数器输出端ens和enm的控制(当ens和enm无效时两计数器的时钟将无效从而实现暂停),因为在60和100进制计数器中为了让借位输出信号与分计数器变化同步,则需要先判断借位输出端。若始终不受4进制加法计数器输出端ens和enm的控制,那么60和90进制计数器的时钟信号将一直有效,将无法实现暂停功能
51hei.png

SHUDIANKESHE.7z

134.89 KB, 下载次数: 0, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表