- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
个人收集整理仅供参照学习
一、实验名称
多功能数字钟电路设计
二、实验任务及要求
基本功能:四个数码管显示十进制时—分,六个LED二极管以二
进制显示秒,时、分均可调。
扩展功能:清零、暂停、整点报时、设定闹钟,整点报时和闹钟通过LED以10Hz频次的闪烁来实现。
三、实验条件
软件:Quartus29.1
硬件:DE0开发板,其中
四个数码管——显示时、分
八个LED——前六个显示二进制秒,后两个分别为用于
整点报时、闹钟
八个按键——清零、暂停、标准时间闹钟时间和显示切换调时、调分、闹钟调时、闹钟调分、结束闹钟
四、设计思路
nCR,EN两按键分别用于清零和暂停。
首先将DE0内的50MHz振荡源分别分频到10Hz和1Hz,分频模块1Hz输
出作为秒的时钟信号,即每来一个时钟信号,秒增加1秒,10Hz输出用于触发整点报时和闹铃的LED显示。
秒和分的范围为0~59,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围为0~23时。校时校分分别用AdjMinkey、AdjHrkey按键实现,拨动按键后,对应数码管示数每秒增加一。
当时间处于59分55~59秒时对应整点报时的ALARM_RadioLED会以10Hz的频次闪烁。
拨下Mode按键后数码管显示将从标准时间切换到闹钟时间,调节闹钟时间同标准时间校时同样——拨动SetMinkey,SetHrkey按键后对应数码管每秒增一。当闹钟时间和标准时间相同时ALARM_ClockLED开始以10Hz的频次闪烁。拨
下CtrlBell按键后ALARM_ClockLED停止闪烁。
五、verilog程序及说明
*******************Complete_Clock.v*********************//程序主干,调用其他文件
主模块:
ModuleComplete_Clock(LED_hr,LED_min,LED_sec,ALARM_Radio,ALARM_Clock
_50MHzIN,AdjMinkey,AdjHrkey,SetMinkey,SetHrkey,CtrlBell,Mode,nCR,EN);
input_50MHzIN;//50MHz时钟源
个人收集整理仅供参照学习
inputnCR,EN;
//清零、暂停
output[13:0]LED_hr,LED_min;
//标准时间显示——时、分
output[5:0]LED_sec;
//标准时间显示——秒
wire_1Hz,_10Hz;
//分频输出1Hz和10Hz
inputAdjMinkey,AdjHrkey;
//标准时间调时按键
wire[7:0]Hour,Minute,Second;
//时、分、秒计时
inputSetMinkey,SetHrkey;
//设定闹钟按键
wire[7:0]Set_hr,Set_min;
//闹钟时间显示——时、分
outputALARM_Radio,ALARM_Clock;
//整点报时、闹钟信号显示
inputCtrlBell;
//控制闹钟是否持续
inputMode;
//标准时间闹钟时间切换
Div_fpU0(_1Hz,_10Hz,_50MHzIN,nCR,EN);
//分频
Top_clockU1(Hour,Minute,Second,AdjMinkey,AdjHrkey,_1Hz,nCR);
//标准时间
RadioU2(ALARM_Radio,Minute,Second,_10Hz);
//整点报时
BellU3(ALARM_Clock,Set_hr,Set_min,Hour,Minute,SetHrkey,
SetMinkey,_1Hz,_10Hz,CtrlBell);//闹钟
DisplayL1(LED_hr[13:7],Hour[7:4],Set_hr[7:4],Mode);
//数码管显示
DisplayL2(LED_hr[6:0],Hour[3:0],Set_hr[3:0],Mode);
DisplayL3(LED_min[13:7],Minute[7:4],Set_min[7:4],Mode);
DisplayL4(LED_min[6:0],Minute[3:0],Set_min[3:0],Mode);
assignLED_sec=Second[5:0];
//LED显示秒
endmodule
***********************Div_fp.v************************
//将时钟源50MHz频次分频到1Hz(时钟脉冲)和10Hz(闹钟及整点报时)
分频模块:
moduleDiv_fp(_1Hz,_10Hz,_50MHzIN,nCR,EN);
in
文档评论(0)