实验五计时器和倒计时的系统设计.docx
《实验五计时器和倒计时的系统设计.docx》由会员分享,可在线阅读,更多相关《实验五计时器和倒计时的系统设计.docx(10页珍藏版)》请在冰豆网上搜索。
实验五计时器和倒计时的系统设计
实验五--计时器和倒计时的系统设计
桂林电子科技大学
实验报告
2015-2016学年第二学期
开课单位海洋信息工程学院
适用年级、专业13级电子信息工程
课程名称EDA技术与应用
主讲教师覃琴
实验名称计时器和倒计时器系统设计
学号1316030515
姓名魏春梅
实验五计时器和倒计时的系统设计
一、实验目的
1 掌握用VerilogHDL文本输入法设计计时电路的方法,并听歌电路仿真和硬件验证,进一步了解计时器的功能和特性。
2 掌握用VerilogHDL文本输入法设计倒计时电路的方法,并听歌电路仿真和硬件验证,进一步了解倒计时器的功能和特性。
二、实验原理
1 计时器
24小时计时器的电路框图如图8.1所示。
24小时计时器由2个60进制加计数器和1个24进制加计数器构成,输入CLK为1Hz(s)的时钟,经过60进制加计数后产生1分钟的进位时钟信号,在进过60进制加计数后产生1小时的进位时钟信号送给24进制加计数器进行加计数,当加计数达到23:
59:
59后,再来一个秒脉冲,产生时的进位输出,将两个60进制加计数器和一个24进制加计数器的输出送数码管显示。
得到计时器的显示结果,其中秒脉冲有EDA实训仪上的20MHz晶振分频得到。
2 倒计时器
24小时倒计时器的电路图8.2如下
24小时倒计时器有2个60进制减计数器和一个24进制减计数器构成,输入CLK为1Hz(s)的时钟,经过60进制减计数产生1分钟的借位时钟信号,再经过60进制减计数后产生1小时的借位时钟信号24进制减计数器进行减计数,当减计数到达00:
00:
00后,产生时的借位输出,同时24小时进制减计数器进行减计数,并发出提醒信号,将两个60进制减计数器和一个24进制减计数器的输出送数码管显示,得到倒计时的显示结果,其中,秒脉冲有EDA实训仪上的20MHz晶振分频得到。
三、实验设备
1 EDA实训仪一台
2 计算机一台(装有Quartus2软件)
四、实验内容
1 计时器
在Quartus2软件中,按照实验原理中24小时计时器的电路框图,用VerilogHDL编程设计计时器电路,然而进行编辑’编译、仿真、引脚设定,并下载到EDA实训仪中进行验证。
注:
用EDA实训仪上的20MHz晶振作为计时器时钟输入端,按键S8~S6分别作为计时器的校时、校分、校秒输入端,拨动开关S0作为计时器的清零输入端,拨动开关S1作为计时器的暂停输入端,用数码管SEG5~SEG0分别作为时、分、秒的输出端,用发光二极管L0作为进位输出端COUT。
2 倒计时器
在Quartus2软件中,按照实验原理中24小时倒计时器的电路框图,用VerilogHDL编程设计倒计时器电路,然后进行编辑、编译、仿真、引脚的锁定,并下载到EDA实训仪中进行验证。
注:
用EDA实训仪上的20MHz晶振作为计时器时钟输入端,按键S8~S6分别作为计时器的校时、校分、校秒输入端,拨动开关S0作为计时器的清零输入端,拨动开关S1作为计时器的暂停输入端,用数码管SEG5~SEG0分别作为时、分、秒的输出端,用发光二极管L0作为进位输出端COUT。
五、实验预习要求
1 复习理论课本有关计数器的内容,并认真阅读实验指导书,分析、掌握实验原理,熟悉理论课本中Quartus2软件的使用方法。
2 按照实验内容的要求,编写相应的实验程序,写出相应的实验步骤。
实验步骤
1建立工程文件jishiqi。
新建VerilogHDL文件编写60进制和24进制加减计时器。
2建立波形仿真。
3编译下载
(1)源程序
(4)二十四进制波形仿真图
(5)计时器原理图
(6)计时器原理图波形仿真
波形图中红色圆圈为延时区域。
当clrn为高电平时,清零
(7)结果图
六、实验总结
1 总结用VerilogHDL进行分频器和计数器电路设计的方法。
此次实验为计时器。
Clk是秒时钟输入端;clrn是清除输入端,低电平有效。
Jm,jf,js是校正秒,分,时的输入端。
下降沿有效;qm[7..0]、qf[7..0]、qs[7..0]分别是秒、分、时的输出端,当sel为1时,为计时器,当sel为0时,为到计时器。
Cout是脉冲输出端。
2 对本次实验进行总结
由仿真结果得知clrn为高电平时,输出为0。
当clrn为低电平时,sel为1时,qm[7..0]、qf[7..0]进行从0到59加法计数;qs[7..0]进行从0到23加法计数。
Sel为0的时候,qm[7..0]、qf[7..0]进行从0到59减法计数;qs[7..0]进行从0到23减法计数。
这次的实验在完成程序仿真调试过程中,出现了很多小问题,这些问题虽然简单,但真正解决起来还是比较棘手的。
例如,仿真不出波形。
后面发现是要设置成16进制的状态下。
波形出来后,发现只实现时间加,而减法没有用到。
经过检查原来是在源程序里忘记加~sel的语句了。
数码管显示时、分、秒的位置错乱,或者是某一位数码管不亮,原来是pin设置错误,为了解决这个问题,又重新设置pin。