数字钟设计EDAWord文档下载推荐.docx
《数字钟设计EDAWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数字钟设计EDAWord文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
![数字钟设计EDAWord文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-10/11/263d2013-29c9-4711-9397-caab659ece6d/263d2013-29c9-4711-9397-caab659ece6d1.gif)
《数字系统与逻辑设计》课程设计任务书
一、设计目的
全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。
二、设计要求
1、设计正确,方案合理。
2、程序精炼,结构清晰。
3、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。
4、上机演示。
5、有详细的文档。
文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。
三、进度安排
第二十周星期一:
课题讲解,查阅资料
星期二:
总体设计,详细设计
星期三:
编程,上机调试、修改程序
星期四:
上机调试、完善程序
星期五:
答辩
星期六-星期天:
撰写课程设计报告
附:
课程设计报告装订顺序:
封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。
正文的格式:
一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;
行距为22。
正文的内容:
一、课题的主要功能;
二、课题的功能模块的划分(要求画出模块图);
三、主要功能的实现;
四、系统调试与仿真;
五、总结与体会;
六、附件(所有程序的原代码,要求对程序写出必要的注释);
七、评分表。
1、数字钟系统的设计2
1.1数字钟系统的设计2
1.2基本设计思想2
2、数字钟系统的实现2
2.1数字钟的基本组成2
2.2系统的总体框图3
2.3系统各功能模块的实现3
2.3.1计数模块3
2.3.2、整点报时模块的实现4
2.3.3显示模块5
3系统的调试与仿真7
4心得与总结8
5源程序8
5评分表15
一、数字钟系统的设计
1.1数字钟系统的设计
在QuartusII平台上设计一个多功能数字钟,设计基本要求:
显示时-分-秒、整点报时、小时和分钟可调等基本功能。
首先要知道钟表的工作机理,整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,但是需要注意的是,小时的范围是从0~23时。
1.2基本设计思想
本次课设任务是设计一个多功能数字钟,包括多个模块,设计基本思路:
首先,设计显示格式为小时-分钟-秒钟的模块,整点报时,报时时间为5秒,即从整点前5秒钟开始进行报时提示,LED开始闪烁,过整点后,停止闪烁。
其次,调整时间的的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时,S2调整分钟,每按下一次,分钟增加一分钟。
另外用S8按键作为系统时钟复位,复位后全部显示00-00-00。
2、数字钟系统的实现
2.1数字钟的基本组成
本数字钟的实现可分为以下几个模块:
(1)秒计数模块:
秒计数,在频率为1Hz的时钟下以60次为循环计数,并产生进位信号影响分计数;
(2)分计数模块:
分计数,在秒进位信号为高电平时,计数一次,同样以60次为一个循环计数,同时产生分进位信号影响时计数;
(3)
时计数模块:
时计数,在分进位信号为高电平时,计数一次,以24/12次为一个循环计数;
(4)
时间显示模块:
数码管通过动态显示,同时进行一定频率的扫描显示时,分,秒。
(5)
时间设置模块:
设置调试使能端,可以调时,分,秒。
基本功能是在使能端为高电平时,可以使时和、分和秒循环计数;
(6)
整点报时模块:
在秒计数到55秒时,同时分计数到59分开始,持续5秒。
2.2系统的总体框图
校时电路
秒计数器
分计数器
分译码器
秒译码器
分显示器
秒显示器
时译码器
时计数器
时显示器
报时
1HZ
振荡器
分频器
图1数字钟的系统框图
2.3系统各功能模块的实现
2.3.1计数模块
计数部分由两个60进制计数器和一个24进制计数器组成,分别对秒、分、小时进行计数。
其VHDL源程序相差不大由于篇幅有限,这里我们以分计数的实现为例。
程序如下:
-----------------------------------------------分钟十位
m110:
process(clk,min2,sec1,sec2,md1,md2)
begin
ifclk'
eventandclk='
1'
then
if(min1="
0101"
andmin2="
1001"
)and(sec1="
andsec2="
)then
min1<
="
0000"
;
elsifmin1="
andmin2="
and(md1='
0'
andmd2="
00"
)then
elsif(min2="
and(sec1="
))or(min2="
andmd1='
=min1+1;
endif;
--endif;
endprocessm110;
----------------------------------------------分钟个位
m220:
process(clk,sec1,sec2,md1,md2)
ifmin2="
min2<
elsifmin2="
elseif(sec1="
)or(md1='
=min2+1;
endprocessm220;
2.3.2、整点报时模块的实现
整点报时持续5秒,进入整点前从55秒开始一直到到59秒报点。
e:
process(second1,second2,minute1,minute2)
ifsecond1=9andsecond2=5andminute1=9andminute2=5then
alarm<
='
;
elsealarm<
endprocesse;
2.3.3显示模块
计时显示电路的作用是将计时值在LED数码管上显示出来。
计时电路产生的值经过BCD七段译码后,驱动LED数码管。
计时显示电路的实现方案采用扫描显示。
disp:
process(sel,md1,hou1,hou2,min1,min2,sec1,sec2,seth1,seth2,setm1,setm2)
ifsel="
000"
selout<
caseh1is
when"
=>
dout<
0111111"
0001"
0000110"
0010"
1011011"
whenothers=>
1000000"
endcase;
elsifsel="
001"
caseh2is
0011"
1001111"
0100"
1100110"
1101101"
0110"
1111101"
0111"
0000111"
1000"
1111111"
1101111"
whenothers=>
010"
casem1is
011"
casem2is
100"
cases1is
101"
selout