大连理工大学数字电路课程设计报告:多功能数字时钟设计
数电设计数字钟基于QUARTUS完整版
数电设计数字钟基于Q U A R T U SHEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】大连理工大学本科实验报告题目:数电课设——多功能数字钟课程名称:数字电路课程设计学院(系):电信学部专业:电子与通信工程班级:学生姓名: ***************学号:***************完成日期:成绩:2010 年 12 月 17 日题目:多功能数字时钟一.设计要求1)具有‘时’、‘分’、‘秒’的十进制数字显示(小时从00~23)2)具有手动校时校分功能3)具有整点报时功能,从59分50秒起,每隔2秒钟提示一次4)具有秒表显示、计时功能(精确至百分之一秒),可一键清零5)具有手动定时,及闹钟功能,LED灯持续提醒一分钟6)具有倒计时功能,可手动设定倒计时范围,倒计时停止时有灯光提示,可一键清零二.设计分析及系统方案设计1. 数字钟的基本功能部分,包括时、分、秒的显示,手动调时,以及整点报时部分。
基本模块是由振荡器、分频器、计数器、译码器、显示器等几部分组成。
利用DE2硬件中提供的50MHZ晶振,经过分频得到周期为1s的时钟脉冲。
将该信号送入计数器进行计算,并把累加结果以“时”“分”“秒”的形式通过译码器由数码管显示出来。
进入手动调时功能时,通过按键改变控制计数器的时钟周期,使用的时钟脉冲进行调时计数(KEY1调秒,LOAD2调分,LOAD3调时),并通过译码器由七位数码从59分50秒开始,数字钟进入整点报时功能。
每隔两秒提示一次。
(本设计中以两个LED灯代替蜂鸣器,进行报时)2. 多功能数字钟的秒表功能部分,计时范围从00分秒至59分秒。
可由输入信号(RST1)异步清零,并由按键(EN1)控制计时开始与停止。
将DE2硬件中的50MHZ晶振经过分频获得周期为秒的时钟脉冲,将信号送入计数器进行计算,并把累计结果通过译码器由七位数码管显示。
数字电路课程设计-多功能数字时钟设计报告(免费下载)
多功能数字时钟设计报告目录一、设计任务和要求 (2)二、设计的方案的选择与论证 (2)(1) 总体电路分析 (2)(2) 仿真分析 (3)(3) 仿真说明 (3)三、电路设计计算与分析 (4)(1)小时计时电路 (4)(2)分钟计时电路 (5)(3)秒钟计时电路 (7)(4)校时选择电路 (8)(5)整点译码电路 (9)(6)定时比较电路 (11)(7)脉冲产生电路 (12)四、总结及心得 (13)五、附录 (15)(1)元器件明细表 (15)(2)附图 (17)六、参考文献 (17)一、设计任务和要求实现24小时的时钟显示、校准、整点报时、闹铃等功能。
具体要求:(1)显示功能:具有“时”、“分”、“秒”的数字显示(“时”从0~23,分0~59,秒0~59)。
(2)校时功能:当刚接通电源或数字时钟有偏差时,可以通过手动的方式去校时。
(3)整点报时:当时钟计时到整点时,能进行整点报时。
(4)闹铃功能:在24小时之内,可以设定定时时间,当数字时钟到定时时间时能进行报时提醒。
二、设计的方案的选择与论证(1)总体电路分析总体电路设计是将单元电路模块小时计时电路、分钟计时电路、秒计时电路、校时选择电路、整点译码电路、闹钟电路等模块连接在一起,外接输入开关和输出显示数码管构成。
总体结构图如下:(2)仿真分析单击运行按钮,可观测仿真结果。
电路能完成显示计时、校时、整点报时以及闹铃等功能。
○1计时功能。
当开关S1、S2都处于左边触点时,数字时钟工作于计时状态。
此时,电路中的秒计时电路、分计时电路以及小时计时电路分别对秒脉冲、分脉冲和小时脉冲进行计数。
计数结果经数码管显示计时时间值。
○2校时功能。
当开关S1、S2都处于右边触点时,数字时钟工作于校时状态。
按瞬态按钮B键,可以选择对“小时”、“分钟”和“秒钟”进行校时。
校时时通过开关S3(按C键)手动输入校时时间。
○3整点报时功能。
整点译码电路通过识别整点时间,产生整点报时信号。
数电设计数字钟基于QUARTUS
大连理工大学本科实验报告题目:数电课设——多功能数字钟课程名称:数字电路课程设计学院(系):电信学部专业:电子与通信工程班级:学生姓名: ***************学号:***************完成日期:成绩:2010 年 12 月 17 日题目:多功能数字时钟一.设计要求1)具有‘时’、‘分’、‘秒’的十进制数字显示(小时从00~23)2)具有手动校时校分功能3)具有整点报时功能,从59分50秒起,每隔2秒钟提示一次4)具有秒表显示、计时功能(精确至百分之一秒),可一键清零5)具有手动定时,及闹钟功能,LED灯持续提醒一分钟6)具有倒计时功能,可手动设定倒计时范围,倒计时停止时有灯光提示,可一键清零二.设计分析及系统方案设计1. 数字钟的基本功能部分,包括时、分、秒的显示,手动调时,以及整点报时部分。
基本模块是由振荡器、分频器、计数器、译码器、显示器等几部分组成。
利用DE2硬件中提供的50MHZ晶振,经过分频得到周期为1s的时钟脉冲。
将该信号送入计数器进行计算,并把累加结果以“时”“分”“秒”的形式通过译码器由数码管显示出来。
进入手动调时功能时,通过按键改变控制计数器的时钟周期,使用的时钟脉冲进行调时计数(KEY1调秒,LOAD2调分,LOAD3调时),并通过译码器由七位数码管显示。
从59分50秒开始,数字钟进入整点报时功能。
每隔两秒提示一次。
(本设计中以两个LED灯代替蜂鸣器,进行报时)2. 多功能数字钟的秒表功能部分,计时范围从00分秒至59分秒。
可由输入信号(RST1)异步清零,并由按键(EN1)控制计时开始与停止。
将DE2硬件中的50MHZ晶振经过分频获得周期为秒的时钟脉冲,将信号送入计数器进行计算,并把累计结果通过译码器由七位数码管显示。
3.多功能数字钟的闹钟功能部分,通过按键(KEY1,KEY2,KEY3)设定闹钟时间,当时钟进入闹钟设定的时间(判断时钟的时信号qq6,qq5与分信号qq4,qq3分别与闹钟设定的时信号r6,r5与分信号r4,43是否相等),则以LED灯连续提示一分钟。
多功能数字钟的电路设计-数电课程设计报告
吉林建筑大学电气与计算机学院数字电子技术课程设计报告设计题目:多功能数字钟的电路设计专业班级:自动化141学生姓名:学号:指导教师:设计时间:2016.06.20-2016.07.01多功能数字钟的电路设计报告一、设计任务及要求本课程设计的基本任务,通过指导学生循序渐进地独立完成数字电路的设计任务,加深学生对理论知识的理解,有效地提高了学生的动手能力,独立分析问题、解决问题能力,协调能力和创造性思维能力。
侧重提高学生在数字电路应用方面的实践技能,树立严谨的科学作风,培养学生综合运用理论知识解决实际问题的能力。
学生通过电路的设计、安装、调试、整理资料等环节,初步掌握工程设计方法和组织实践的基本技能,逐步熟悉开展科学实践的程序和方法。
设计要求:1.时钟显示功能,能够以十进制显示“时”、“分”、“秒”。
2.具有校时功能,可分别对“时”、“分”进行单独校时。
3.能用硬件成功实现以上各功能。
4.具有整点自动报时功能,整点前的6s自动发出鸣叫声,步长1s,每1s 鸣叫一次,前五响是低音,最后一响为高音。
二、设计的作用、目的数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
因此,我们此次设计与制做数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法.且由于数字钟包括组合逻辑电路和时叙电路.通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法。
掌握数字钟的设计、组装与调试方法。
熟悉集成电路的使用方法。
三、设计过程1.方案设计与论证1.1系统设计思路能按时钟功能进行小时、分钟、秒计时,能调时调分,能整点报时,使用3个2位数码管显示。
1.2总体方案系统原理框图数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。
电子技术课程设计报告---多功能数字时钟
电子技术课程设计数字钟的设计一、设计任务与要求1.能直接显示“时〞、“分〞、“秒〞十进制数字的石英数字钟。
2.可以24小时制或12小时制。
3.具有校时功能。
可以对小时和分单独校时,对分校时的时候,停顿分向小时进位。
校时时钟源可以手动输入或借用电路中的时钟。
4.整点能自动报时,要求报时声响四低一高,最后一响为整点。
5.走时精度高于普通机械时钟〔误差不超过1s/d〕。
二、方案设计与认证1、课题分析数字时钟一般由6个局部组成,其中振荡器和分频器组成标准的秒信号发生器,由不同进制的计数器,译码器和显示器组成计时系统。
秒信号送入计数器进展计数,把累计的结果以“时〞、“分〞、“秒〞的十进制数字显示出来。
“时〞显示由二十四进制计数器、译码器和显示器构成,“分〞、“秒〞显示分别由六十进制计数器、译码器构成。
其原理框图如图1所示。
2、方案认证〔1〕振荡器振荡器是计时器的核心,主要用来产生时间标准信号,也叫时基信号。
数字钟的精度,主要取决于时间标准信号的频率及稳定度。
振荡器的频率越高,计时的精度就越高,但耗电量将增大。
一般采用石英晶体振荡器经过分频后得到这一信号,也可采用由555定时器构成的多谐振荡器作为时间标准信号。
〔2〕分频器振荡器产生的时基信号通常频率都很高,要使它变成能用来计时的“秒〞信号,需由分频器来完成。
分频器的级数和每级的分频次数要根据时基频率来定。
例如,目前石英电子钟多采用32768 Hz的标准信号,将此信号经过15级二分频即可得到周期为1s的“秒〞信号。
也可选用其他频率的时基信号,确定好分频次数后再选择适宜的集成电路。
〔3〕计数器数字钟的“秒〞、“分〞信号产生电路都由六十进制计数器构成,“时〞信号产生电路由二十四进制计数器构成。
“秒〞和“分〞计数器用两块十进制计数器来实现是很容易的,它们的个位为十进制,十位为六进制,这样,符合人们通常计数习惯。
“时〞计数也可以用两块十进制计数器实现,只是做成二十四进制。
数电课设大作业数字钟
大连理工大学本科实验报告题目:数字钟课程名称:数字电路课程设计学院(系):电信专业:电气班级: 1201学生姓名:学号:完成日期: 2014.11.23成绩:2014 年 11 月 23 日课程设计得分表一、数字钟课程设计要求:1、设计一个具有‘时’、‘分’、‘秒’的十进制数字显示(小时从00~23)计时器。
2、整点报时。
两种方法任选其一:⑴发出仿中央人民广播电台的整点报时信号,即从59分50秒起,每隔2秒钟发出一次低音“嘟”的信号,连续5次,最后一次要求高音“嘀”的信号,此信号结束即达到整点。
“嘟”是500Hz左右的频率输出,“嘀”是1000Hz左右的频率输出⑵通过LED闪烁实现,闪烁频率及花型可自己设计并在这里说明。
3、手动校时、校分、校秒。
4、定时与闹钟功能,能在设定的时间发出闹铃声。
5、设计一个秒表,显示1%秒到60秒、手动停止。
6、设计一个倒计时,显示小时、分钟、秒。
7、其他创新。
第1题25分,其他每题5分二、课程设计考试(40分,每题分):考试题目:1、实体名□2、计数器□3、异步清零□4、进位输出□5、仿真图□6、数码管输出□7、分频□8、元件例化□9、引脚分配□10、下载□题目:数字钟(1.大连理工大学电信学院,辽宁大连,116023;2. 大连理工大学电工电子实验中心,辽宁大连,116023;)1.设计要求一、电子表部分:(1)由晶振电路产生1HZ的校准秒信号。
(2)设计一个具有‘时’、‘分’、‘秒’的十进制数字显示(小时从00~23)计时器具有手动校时、校分,校秒和清零的功能。
(3)整点报时功能,通过LED闪烁实现,此实验LED灯亮一秒。
二、秒表部分:(1)有晶振产生100HZ的校准0.01秒信号。
(2)设计一个有“时”、“分”、“秒”、“0.1秒”、“0.01秒”(23小时59分59秒99)显示功能(3)具有开始计时暂停计时功能和清零功能三、具有电子表和秒表状态切换。
四、划出框图和逻辑电路图,写出设计。
多功能电子时钟数字系统课程设计设计实验报告
数字系统课程设计设计实验报告———多功能电子时钟目录一、电子时钟的功能及工作介绍 01、本设计电子时钟具有的功能 02、本设计电子时钟工作介绍 0二、设计思路 0三、各模块具体介绍 (1)计数器模块: (1)控制模块: (3)四、仿真 (6)五、实验成果 (11)六、实验总结和感想 (13)1、实验错误排查和解决 (13)2、实验感想 (14)七、各模块代码 (15)1、计数器模块 (15)2、控制模块 (29)一、电子时钟的功能及工作介绍1、本设计电子时钟具有的功能1)具有显示时、分、秒的功能,能准确显示时间2)能够手动设置时间3)具有闹钟功能,可以设置闹钟的时间,然后再实际时间与设定时间相等是闹钟响,并有闹钟开关,可控制其是否响4)具有秒表功能,可以累计计时2、本设计电子时钟工作介绍此电子时钟开机后即会显示时间,其中后两位数码管显示秒,前两位数码管显示分,还可以通过拨盘开关S1来使得前两位数码管显示小时。
(开机后,按下按键1一次,会继续显示时间。
)此后,每按下按键1一次,会显示设置小时界面,按下按键1两次会显示设置分钟界面,按下按键1三次会显示闹钟设置小时界面,按下按键1四次会显示闹钟设置分钟界面,按下按键1五次会显示秒表界面。
而在每一个界面,按下按键2相应的位会开始跳动,在按下按键2时,跳动停止,此时按下按键3,即确认键,则会返回时间显示状态。
二、设计思路设计一个电子时钟,必然要用到计时器,而需要设置时间和闹钟,又需要控制器来控制系统所处的状态。
我们采用外部一个按键来切换系统的状态,用另一个按键来调整时间和启动秒表,再有一个按键来确认操作,并返回显示状态,继续等待命令。
在控制器中,需要接受外部信号,并给出信号给计时器,使其做出相应的动作。
三、各模块具体介绍本设计主要分成计数器模块和控制模块。
计数器模块主要包括60进制计数器模块和24进制计数器模块,向量与整数转换模块,1Hz 时钟分频模块,整数转换为两个向量的模块,动态显示模块和8段数码管译码模块。
《数字电子技术》课程设计说明书多功能数字钟电路设计
学号:课程设计题目多功能数字钟电路设计学院信息工程学院专业通信工程班级通信0804班姓名指导教师2010 年7 月 6 日课程设计任务书学生姓名:专业班级:通信工程0804班指导教师:工作单位:题目: 多功能数字钟电路设计初始条件:数字电子技术基础知识、模拟电子技术基础知识、电子技术实验室、NE555、74LS90、74LS48、7段数码管。
要求完成的主要任务:1、电路原理图设计和相关参数的确定。
2、电路仿真3、设计报告的撰写时间安排:指导教师签名:年月日系主任(或责任教师)签名:年月日摘要本设计是基于555定时器产生脉冲的多功能数字钟,能够分别显示时、分、秒,还能够对时钟做校时操作,本设计时钟还具有整点报时功能。
从555定时器输出1KHZ的脉冲经过三个串联计数器分频分别为100HZ、10HZ和1HZ的时间脉冲,其中1HZ脉冲作为秒脉冲输入,10HZ作为校时电路输入。
秒脉冲输入时间计数部分,计数部分由六个计数器组成,每两个分别计数秒、分和时。
计数器输出输到到7端数码管译码器,再书到数码管进行显示出时间。
校时电路工作时,封锁计数器的进位信号,由10HZ给出计数信号,方便校时。
当分计数部分要向时计数部分进位时,给出的欲进位信号驱动扬声器,发出进位信号,到达报时的目的。
AbstractThe design is based on the pulse 555 timing produce multifunctional digital clock, can show, minutes and seconds on the clock, also can make the operation, the school also has the clock strike on the design. From 1KHZ 555 timing of pulse output by three series counter frequency respectively, 10HZ 100HZ 1HZ and the time pulse, including 1HZ pulse as seconds, 10HZ as input pulses at school input circuit. Seconds count part time input pulses, count by six counter composition, every two seconds, and were counting. To counter the output lost 7 digital tube decoder, book to digital tube show time. When school work, blockade circuit, signal by the binary counter counts, convenient 10HZ given signal when the school. When points to count part when, is part of binary counter to carry signals, a binary signals drive the speaker, arrive the strike.目录1.引言 (1)2、多功能数字钟 (2)任务 (2)、要求 (2)基本要求 (2)2.2.2 扩展功能 (2)数字钟电路系统的组成原理框图 (2)3、方案设计与选择 (3)3.1 振荡器的设计 (3)3.1.1 振荡器的选择 (3)3.1.2 参数确定 (4)3.2 分频设计 (5)3.3 时分秒计数器的设计 (5)3.3.1 时计数部分设计 (5)3.3.2 分、秒计数部分设计 (6)校时电路设计 (7)3.5 整点报时电路设计 (7)显示部分 (8)3.7 总体设计电路图 (9)4、元器件的选择 (11)振荡器NE555 (11)4.1.1. NE555的特点 (11)4.1.2 NE555引脚位配置说明 (11)4.2 计数器74LS90 (12)4.3 译码器74LS48 (13)5、电路仿真 (15)5.1 振荡器部分的仿真 (15)5.1.1 NE555输出结果仿真 (15)5.1.2 NE555输出和电容C1波形 (15)5.2 分频器的仿真 (16)5.3 时间显示仿真 (17)5.4 整点报时、校时电路仿真 (18)6总结 (19)附录元件清单 (20)参考文献 (21)1.引言时钟是现在最基本最常见的生活用品,随着现代人们的忙碌,似乎每一个角落都装上时钟才能满足人们对知晓时间的需求,现在很多宿舍楼,商场等都装上了时钟。
多功能数字钟电路设计实验报告
多功能数字钟电路设计实验报告实验目的:设计一个多功能数字钟电路,能够显示当前时间,并具备闹钟、秒表和计时等功能。
实验原理:1. 数码管显示:使用4位共阴极数码管进行显示,采用BCD码方式输入。
2. 按键输入:使用按键进行时间的调节和选择功能。
3. 时钟频率:使用晶体振荡器提供系统时钟,通过分频电路控制时钟频率。
实验器材:1. 4位共阴极数码管2. 按键开关3. 74LS90分频器4. 时钟晶体振荡器5. 耐压电容、电阻等元件6. 电路连接线实验步骤:1. 连接电路:根据电路原理图,将数码管、按键开关、74LS90分频器、晶体振荡器等连接起来,注意接线正确。
2. 编写程序:根据实验要求,编写相应的程序,实现时钟、闹钟、秒表和计时等功能。
3. 调试电路:将电路通电并运行程序,观察数码管的显示情况和按键功能是否正常。
4. 测试功能:分别测试多功能数字钟的时钟、闹钟、秒表和计时等功能,确保功能正常。
5. 完善实验报告:根据实验结果和观察情况,完善实验报告,并附上电路原理图、程序代码等。
实验结果:经过调试和测试,多功能数字钟电路能够正常显示时间,并具备时钟、闹钟、秒表和计时功能。
使用按键进行时间调节和功能选择,数码管根据不同功能进行相应的显示。
实验总结:通过本次实验,我掌握了多功能数字钟电路的设计原理和实现方法,并且了解了数码管显示、按键输入、时钟频率控制等相关知识。
实验过程中,我发现电路连接正确性对功能实现起到关键作用,同时合理编写程序也是确保功能正常的重要环节。
通过实验,我对数字电路的设计和实现有了一定的了解,并且培养了动手实践和解决问题的能力。
多功能数字时钟设计报告
多功能数字时钟设计报告目录一.设计任务和要求 (2)二.设计的方案的选择与论证 (2)三.电路的设计计算与分析 (4)四.总结及心得 (12)五.附录 (14)六.参考文献 (15)一设计任务和要求:实现24小时的时钟显示、校准、整点报时、闹铃等功能。
具体要求:(1)显示功能:具有“时”、“分”、“秒”的数字显示(“时”从0~23,分0~60,秒0~60)。
(2)校时功能:当刚接通电源或数字时钟走时有偏差,能动手对“时”、“分”、“秒”进行校时。
(3)整点报时:当时钟计时到整点时,能进行整点报时。
(4)闹铃功能:在24小时之内,可以设定定时时间,当数字时钟到定时时间时能进行.二设计的方案的选择与论证2.1.总体设计方案与思路系统用十进制的计数器分别构成一个二十四、两个六十进制的计数器,串联连接计数器、并加秒脉冲,使“秒”、“分”、“时”进位,从而数字时钟的显示显示功能;系统应用校时电路实现时钟的校时功能;系统应用译码电路将整点识别出来,同时进行报时;系统用寄存器先把闹铃响的时间存储起来,再用数值比较器,将寄存器存储的时间与实际时间点比较,如果相等,则闹铃工作,从而实现了时钟的闹铃功能。
多功能数字时钟的电路原理结构图如下图所示:图1.多功能数字时钟的电路原理结构图上图中:开关S2的作用,当S2置于左侧时数字时钟正常显示时间,当置于右侧时,数字时钟进行调时,此时若寄存电路的开关合闭则进行设置闹铃时间.2.2.方案的具体实现由于本电路的复杂性,电路图多的特点,本方案采用了子电路与主电路相结合的方案,这样易于调试和修改。
另外采用了总线的电路连线方式使电路图简洁美观。
1.总体电路的设计总体电路如图所示:DCD_HEX_BLUE DCD_HEX_BLUE DCD_HEX_BLUE DCD_HEX_BLUE DCD_HEX_BLUE DCD_HEX_BLUESONALERT600 Hz总体电路是由小时计时电路、分钟计时电路、秒钟计时电路、校时选择电路、整点译码电路、闹钟的寄存与比较电路、和由555定时器构成的秒脉冲电路等七个子电路模块连接在一起,和外接开关和数码管构成。
(数电)多功能数字钟—设计报告
1、设计内容及要求:①基本功能:以数字形式显示时、分、秒的时间,小时计数器的计时要求为24进制,并要求手动快校时、校分。
②扩展功能:整点报时。
2、系统设计原理:系统要求:数字电子钟由555集成芯片构成的振荡电路、计数器、译码器、显示器和校时电路组成。
555集成芯片构成的振荡电路产生的信号作为秒脉冲,秒脉冲送入计数器,计数结果通过“时”、“分”、“秒”译码器显示时间。
在功能方面,对于本次综合设计,还要求有校时与整点报时功能。
方案设计:图1. 数字钟电路框图电子钟的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能和报时功能。
因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路、报时电路和振荡器组成。
主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。
系统工作原理:秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,用555振荡器来实现。
将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。
“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。
“时计数器”采用24进制计时器,可实现对一天24小时的累计。
译码显示电路将“时”、“分”、“秒”计数器的输出状态用七段显示译码器译码,通过七段显示器显示出来。
校时电路时用来对“时”、“分”显示数字进行校对调整。
3.单元电路的设计:3.1、基于555电路的秒脉冲发生器的设计3.1.1用555芯片设计一个多谐振荡器,输出方波用作计数器。
脉冲频率公式:f=1/(R1+2R2)C㏑2选择R1=1K,R2=5K,RV1=2K,C=100nF,形成电路图如图所示:图2. 555振荡器电路图仿真波形如图所示图3. 555脉冲仿真波形图555振荡器输出f=1000HZ,通过分频得出1HZ的脉冲,此脉冲当做秒时针脉冲。
数电实验——多功能数字钟
大连理工大学本科实验报告题目:多功能数字钟课程名称:《数字电路课程设计》学院(系):电子信息与电气工程学部专业:自动化班级:电自0801学生姓名:学号:200881142完成日期:2011年7月20日成绩:2011 年7 月20 日题目:多功能数字钟1 设计要求(1)一个具有“时”,“分”,“秒”的十进制数字显示(小时从00~23)计时器。
(2)具有手动校时,校分的功能。
(3)定时与闹钟功能,能在设定的时间发出闹铃声(4)能整点报时。
要求从59分54秒起报时,每隔2秒发出低音,,连续3次,在整点要求是高音。
2 设计分析及系统方案设计系统总体结果系统设计要求说明:(1)该秒表用模24、模60计数器实现24小时计时(2)在调节闹钟时不影响数字钟的正常走表;(3)在调节闹钟时要通过数码管显示出;3系统以及模块硬件电路设计根据上述给出的系统总体结构框图,给出系统硬件电路设计,并作必要的说明和理论计算。
由于“数字电路课程设计”课程采用实验箱完成,没有学时涉及有关FPGA芯片的使用,因此有关FPGA芯片的部分可以用“FPGA最小系统”模块框代替。
其余接口部分(按键,LED以及数码管,各种接口等需要设计电路以及参数)。
下载时选择的开发系统模式以及管脚定义表1 GW48-CK开发系统工作模式:模式0接口名称类型(输入/输出)结构图上的信号名引脚号说明en 输入PIO7 16 手动校时(1-调时,0-走表)th 输入PIO6 11 调时按键(en=1,或en1=1调时)en1 输入PIO5 10 闹钟设定(1-调时,0-不走)tm 输入PIO4 9 调分按键(en=1或en1=1,才可调分)alarmstop 输入PIO3 8 闹铃控制端clk 输入CLOCK1 42 系统走表时钟(f=1Hz)clk1 输入CLOCK0 2 闹钟与整点报时时钟(f=256Hz)clk2 输入CLOCK5 83 整点报时时钟时钟(f=1024Hz)qhh 输出PIO47-PIO44 79、78、73、72 输出小时的高位qlh 输出PIO43-PIO40 71、70、67、66 输出小时的低位qhm 输出PIO39-PIO36 65、64、62、61 输出分钟的高位qlm 输出PIO35-PIO32 60、59、58、54 输出分钟的低位qhs 输出PIO31-PIO28 53、52、51、50 输出秒的高位qls 输出PIO27-PIO24 49、48、47、39 输出秒的低位speaker 输出SPEAKER 3 输出蜂鸣器的时钟4 系统的VHDL设计系统的各个部分如何用VHDL设计出来的应该有说明,包括论述以及真值表或者状态图等。
多功能数字钟设计实验报告
《数字电路与逻辑设计实验》实验报告题目数字钟电路设计学院:信息工程学院系电子信息工程专业:班级:学号:学生姓名:同组同学:指导教师:递交日期:多功能数字钟设计一、实验目的1、综合应用数字电路知识,提高逻辑电路设计能力;2、学习使用protel或Altium designer进行电子电路的原理图设计、印制电路板设计;3、学习电路板制作、安装、调试技能和设计流程;4、了解数码管,译码器,555定时器及以下中规模器件的逻辑功能和使用方法。
二、设计任务和设计要求1、设计一多功能数字钟并进行仿真和PCB板制作。
2、基本功能:准确计时,以数字形式显示时、分、秒的时间。
3、扩展功能:校正时间,定时控制,正点报时。
三、设计方案1、数字钟设计方案基本框图如下2、各模块设计原理1.时的设计:时的计数以24小时为周期,按通常的习惯,24小时计数器的计数序列为00,01,…,22,23,00,…,即当计数到23小时59分59秒时,再来一个秒脉冲,计数器就进到00时00分00秒。
这样,可利用反馈置数或反馈清零法进行二十四进制计数,本实验采用74LS161进行设计。
2.分、秒的设计:分和秒计数器都是模M=60的计数器。
计数规律为00,01,…,58,59,00,…。
它们的个位都是十进制,而十位则是六进制。
3.译码显示:将计数器和闹钟输出的4位二进制代码,译码显示出相应的十进制数状态,可利用显示译码器和数码管实现。
4.校时电路:校时可用1s 脉冲快速校正,也可手动产生单次脉冲慢校正至时或者分计数器。
可设置不同脉冲来控制实现校正或正常计数。
5.定时控制:数字钟在指定的时刻发出信号,实现闹钟功能,通过数据选择器使得在设定闹钟是可在数码管上显示设定时间而不影响正常计数。
6.正点报时:每当数字钟计时快要到正点时发出声响,通常按照4低音1高音的顺序发出间断声响,以最后一声高音结束的时刻为正点时刻,即当分达到59,秒达到50开始发出声响,50、52、54、56、58、60(高音)。
数电课程设计报告-多功能数字钟
课题名称:多功能数字钟所在院系:机械电子工程学院班级:*自动化*班学号:2011******* 姓名:*宜杰指导老师:***时间:2013.12.20瓷学院数字电子技术课程设计任务书目录引言 (4)第一章方案设计 (5)第二章单元电路设计 (7)第三章总体电路图 (13)第四章课程设计总结 (15)附表元件清单 (16)附录参考文献 (17)引言随着社会的发展,科学技术的不断进步,对电子产品的性能要求也更高。
我们做为21世纪的一名学电子的大学生,不仅要将理论知识学会,更应该将其应用与我们的日常生活中去,使理论与实践很好的结合起来。
电子课程设计是电子技术学习中的一个非常重要的实践环节,能够真正体现我们是否完全吸收了所学的知识。
数字电子时钟是一个对标准频率(1HZ)进行计数的计数电路。
通常使用石英晶体振荡器电路构成数字钟,以保证其频率的稳定。
以10 进制计数器74HC390 来实现时间计数单元的计数功能。
用4518作为计数电路,采用CD4511 作为显示译码电路。
选择LED数码管作为显示电路。
由CD4511 把输进来的二进制信号翻译成十进制数字,再由数码管显示出来。
用COMS 与或非门实现的时或分校时电路。
该电路还有在整点前10 秒钟开始整点报时的功能。
报时电路可选74HC30 来构成。
时间以24 为一个周期。
数字钟采用数字电路实现对“时”“分”“秒”数字显示的计时装置。
具有时间显示、闹钟设置、报时功能、校时的功能。
走时准确、显示直观、精度高、稳定等优点。
第一章方案设计设计制作一多功能数字钟一、设计任务:设计一个电子电路系统时,首先必须明确系统的设计任务,根据任务进行方案选择,然后对方案中的各部分进行单元的设计和器件选择,最后将各部分连接在一起,设计出一个符合设计要求的完整系统电路设计要求:(1) 时钟显示功能,能够十进制显示“时”、“分”、“秒”;(2) 小时高位具有零熄灭功能;(3) 具有整点报时功能;(4) 具有快速校准时间的功能。
大连理工大学数字电路课程设计报告_多功能数字时钟设计说明
大连理工大学本科实验报告题目:多功能数字时钟设计课程名称:数字电路与系统课程设计学院(系):信息与通信工程学院专业:电子信息工程班级:学生姓名:学号:完成日期: 2014年7月16日2014 年 7 月 16 日题目:多功能数字时钟设计1 设计要求1) 具有“时”、“分”、“秒”及“模式”的十进制数字显示功能;2) 具有手动校时、校分功能,并能快速调节、一键复位(复位时间12时00分00秒);3) 具有整点报时功能,从00分00秒起,亮灯十秒钟;4) 具有秒表功能(精确至百分之一秒),具有开关键,可暂停、可一键清零;5) 具有闹钟功能,手动设置时间,并可快速调节,具有开关键,可一键复位(复位时间12时00分00秒),闹钟时间到亮灯十秒钟进行提醒;6) 具有倒计时功能(精确至百分之一秒),可手动设置倒计时时间,若无输入,系统默认60秒倒计时,且具有开关键,计时时间到亮灯十秒钟进行提醒,可一键复位(复位时间默认60秒)。
2 设计分析及系统方案设计2.1 模式选择模块:按键一进行模式选择,并利用数码管显示出当前模式。
模式一:时钟显示功能;模式二:时钟调节功能;模式三:闹钟功能;模式四:秒表功能;模式五:倒计时功能。
2.2 数字钟的基本功能部分:包括时、分、秒的显示,手动调时,以及整点报时部分。
基本模块是由振荡器、分频器、计数器、译码器、显示器等几部分组成。
利用DE2硬件中提供的50MHZ晶振,经过分频得到周期为1s的时钟脉冲。
将该信号送入计数器进行计算,并把累加结果以“时”“分”“秒”的形式通过译码器由数码管显示出来。
具有复位按键1,在时钟模式下按下复位键后对时钟进行复位,复位时间12时00分00秒。
进入手动调时功能时,通过按键调节时间,每按下依次按键2,时钟时针加一,按下按键2一秒内未松手,时钟时针每秒钟加十;按键1对分针进行控制,原理与时针相同并通过译码器由七位数码管显示。
从00分00秒开始,数字钟进入整点报时功能(本设计中以一个LED灯代替蜂鸣器,进行报时),亮灯10秒钟进行提示。
大连理工大学数字电路课程设计报告_多功能数字时钟设计说明
理工大学本科实验报告题目:多功能数字时钟设计完成日期:2014 年7月16日2014 年7 月16 日题目:多功能数字时钟设计1设计要求1)具有“时”、“分”、“秒”及“模式”的十进制数字显示功能;2)具有手动校时、校分功能,并能快速调节、一键复位(复位时间12时00分00秒);3)具有整点报时功能,从00分00秒起,亮灯十秒钟;4)具有秒表功能(精确至百分之一秒),具有开关键,可暂停、可一键清零;5)具有闹钟功能,手动设置时间,并可快速调节,具有开关键,可一键复位(复位时间12时00分00秒),闹钟时间到亮灯十秒钟进行提醒;6)具有倒计时功能(精确至百分之一秒),可手动设置倒计时时间,若无输入,系统默认60秒倒计时,且具有开关键,计时时间到亮灯十秒钟进行提醒,可一键复位(复位时间默认60秒)。
2设计分析及系统方案设计2.1 模式选择模块:按键一进行模式选择,并利用数码管显示出当前模式。
模式一:时钟显示功能;模式二:时钟调节功能;模式三:闹钟功能;模式四:秒表功能;模式五:倒计时功能。
2.2 数字钟的基本功能部分:包括时、分、秒的显示,手动调时,以及整点报时部分。
基本模块是由振荡器、分频器、计数器、译码器、显示器等几部分组成。
利用DE2硬件中提供的50MHZ晶振,经过分频得到周期为1s的时钟脉冲。
将该信号送入计数器进行计算,并把累加结果以“时”“分” “秒”的形式通过译码器由数码管显示出来。
具有复位按键1,在时钟模式下按下复位键后对时钟进行复位,复位时间12时00分00秒。
进入手动调时功能时,通过按键调节时间,每按下依次按键2,时钟时针加一,按下按键2 一秒未松手,时钟时针每秒钟加十;按键1对分针进行控制,原理与时针相同并通过译码器由七位数码管显示。
从00分00秒开始,数字钟进入整点报时功能(本设计中以一个LED灯代替蜂鸣器,进行报时),亮灯10秒钟进行提示。
2.3 多功能数字钟的秒表功能部分:计时围从00分00.00秒至59分59.99秒。
大连理工大学数电实验报告
大连理工大学本科实验报告题目:数字钟课程名称:数字电路课程设计学院(系):电子信息工程专业:电子班级:电子1301班学生姓名:陈冠谋学号:201383022完成日期:2015年7月18日成绩:2014 年7 月18 日注意:本页要求放在实验报告第一页课程设计得分表一、数字钟课程设计要求:1、设计一个具有‘时'、‘分'、‘秒'的十进制数字显示(小时从00~23)计时器。
2、整点报时。
两种方法任选其一:⑴发出仿中央人民广播电台的整点报时信号,即从59分50秒起,每隔2秒钟发出一次低音“嘟”的信号,连续5次,最后一次要求高音“嘀”的信号,此信号结束即达到整点。
“嘟”是500Hz 左右的频率输出,“嘀”是1000Hz左右的频率输出⑵通过LED闪烁实现,闪烁频率及花型可自己设计并在这里说明。
3、手动校时、校分、校秒。
4、定时与闹钟功能,能在设定的时间发出闹铃声。
5、设计一个秒表,显示1%秒到60秒、手动停止。
6、设计一个倒计时,显示小时、分钟、秒。
7、其他创新。
第1题25分,其他每题5分二、课程设计考试(40分,每题分):考试题目:1、实体名□2、计数器□3、异步清零□4、进位输出□5、仿真图□6、数码管输出□7、分频□8、元件例化□9、引脚分配□10、下载□一、设计要求1、设计一个数字钟,能够显示当前时间,分别用6个数码管显示小时、分钟、秒钟的时间,秒针的计数频率为1Hz,可由系统脉冲分频得到。
2、整点报时,可通过LED闪烁实现,闪烁频率及花型可自己设计。
3、能够调整小时和分钟的时间,调整的形式为通过按键进行累加。
4、具有闹钟功能,闹钟时间可以任意设定(设定的形式同样为通过按键累加),并且在设定的时间能够进行提示,提示同样可以由LED闪烁实现。
二、设计分析及系统方案设计数字计时器一般都由振荡器、分频器、计数器、译码器、显示器等几部分组成。
其中振荡器和分频器组成标准秒信号发生器,由不同进制的计数器、译码器和显示器组成计时系统。
大连理工大学数字电路课程设计报告-多功能数字时钟设计说明
(理工大学本科实验报告题目:多功能数字时钟设计;课程名称:数字电路与系统课程设计学院(系):信息与通信工程学院专业:电子信息工程{班级:学生:学号:完成日期: 2014年7月16日2014 年 7 月 16 日(题目:多功能数字时钟设计1 设计要求1) 具有“时”、“分”、“秒”及“模式”的十进制数字显示功能;2) 具有手动校时、校分功能,并能快速调节、一键复位(复位时间12时00分00秒);3) 具有整点报时功能,从00分00秒起,亮灯十秒钟;4) 具有秒表功能(精确至百分之一秒),具有开关键,可暂停、可一键清零;5) 具有闹钟功能,手动设置时间,并可快速调节,具有开关键,可一键复位(复位时间12时00分00秒),闹钟时间到亮灯十秒钟进行提醒;6) 具有倒计时功能(精确至百分之一秒),可手动设置倒计时时间,若无输入,系统默认60秒倒计时,且具有开关键,计时时间到亮灯十秒钟进行提醒,可一键复位(复位时间默认60秒)。
"2 设计分析及系统方案设计模式选择模块:按键一进行模式选择,并利用数码管显示出当前模式。
模式一:时钟显示功能;模式二:时钟调节功能;模式三:闹钟功能;模式四:秒表功能;模式五:倒计时功能。
数字钟的基本功能部分:包括时、分、秒的显示,手动调时,以及整点报时部分。
基本模块是由振荡器、分频器、计数器、译码器、显示器等几部分组成。
利用DE2硬件中提供的50MHZ晶振,经过分频得到周期为1s的时钟脉冲。
将该信号送入计数器进行计算,并把累加结果以“时”“分”“秒”的形式通过译码器由数码管显示出来。
具有复位按键1,在时钟模式下按下复位键后对时钟进行复位,复位时间12时00分00秒。
进入手动调时功能时,通过按键调节时间,每按下依次按键2,时钟时针加一,按下按键2一秒未松手,时钟时针每秒钟加十;按键1对分针进行控制,原理与时针相同并通过译码器由七位数码管显示。
从00分00秒开始,数字钟进入整点报时功能(本设计中以一个LED灯代替蜂鸣器,进行报时),亮灯10秒钟进行提示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
理工大学本科实验报告题目:多功能数字时钟设计课程名称:数字电路与系统课程设计学院(系):信息与通信工程学院专业:电子信息工程班级:学生:学号:完成日期:2014年7月16日2014 年7 月16 日题目:多功能数字时钟设计1 设计要求1) 具有“时”、“分”、“秒”及“模式”的十进制数字显示功能;2) 具有手动校时、校分功能,并能快速调节、一键复位(复位时间12时00分00秒);3) 具有整点报时功能,从00分00秒起,亮灯十秒钟;4) 具有秒表功能(精确至百分之一秒),具有开关键,可暂停、可一键清零;5) 具有闹钟功能,手动设置时间,并可快速调节,具有开关键,可一键复位(复位时间12时00分00秒),闹钟时间到亮灯十秒钟进行提醒;6) 具有倒计时功能(精确至百分之一秒),可手动设置倒计时时间,若无输入,系统默认60秒倒计时,且具有开关键,计时时间到亮灯十秒钟进行提醒,可一键复位(复位时间默认60秒)。
2 设计分析及系统方案设计2.1 模式选择模块:按键一进行模式选择,并利用数码管显示出当前模式。
模式一:时钟显示功能;模式二:时钟调节功能;模式三:闹钟功能;模式四:秒表功能;模式五:倒计时功能。
2.2 数字钟的基本功能部分:包括时、分、秒的显示,手动调时,以及整点报时部分。
基本模块是由振荡器、分频器、计数器、译码器、显示器等几部分组成。
利用DE2硬件中提供的50MHZ晶振,经过分频得到周期为1s的时钟脉冲。
将该信号送入计数器进行计算,并把累加结果以“时”“分”“秒”的形式通过译码器由数码管显示出来。
具有复位按键1,在时钟模式下按下复位键后对时钟进行复位,复位时间12时00分00秒。
进入手动调时功能时,通过按键调节时间,每按下依次按键2,时钟时针加一,按下按键2一秒未松手,时钟时针每秒钟加十;按键1对分针进行控制,原理与时针相同并通过译码器由七位数码管显示。
从00分00秒开始,数字钟进入整点报时功能(本设计中以一个LED灯代替蜂鸣器,进行报时),亮灯10秒钟进行提示。
2.3多功能数字钟的秒表功能部分:计时围从00分00.00秒至59分59.99秒。
可由复位键0异步清零,并由开关1控制计时开始与停止。
将DE2硬件中的50MHZ晶振经过分频获得周期为0.01秒的时钟脉冲,将信号送入计数器进行计算,并把累计结果通过译码器由七位数码管显示2.4多功能数字钟的闹钟功能部分:进入闹钟功能模式后,通过按键2(设定小时)和按键1(设定分钟)设定闹钟时间,当按下按键一秒未松手时,可进行快速设定时间。
当时钟进入闹钟设定的时间(判断时钟的时信号时针,分针分别与闹钟设定的时信号时针、分针是否相等),则以LED灯连续亮10秒钟进行提示,并由开关0控制闹钟的开和关。
2.5 多功能数字钟的倒计时功能部分:可通过按键3(设定分针)和按键2(设定秒针)设定倒计时开始,当按下按键一秒未松手时,可进行快速设定时间。
当没有手动时间设定时,系统默认为60秒倒计时。
倒计时的时钟与数字钟的时钟相同,每迎到一个1s时钟上升沿,则计数器减一。
计数器减至00时,分钟位、秒钟位保持为00。
倒计时结束时(即00分00秒),倒计时信号灯亮10秒钟进行提示,并由开关2控制倒计时的开始于停止。
本设计通过数据选择器控制译码器,使数码管独立显示,各功能之间互不影响。
当mode=“000”时,时钟功能,则对时钟信号进行译码,数码管显示时钟数据;当mode=“001”时,时间校准功能,则对时钟信号进行译码,数码管显示闹钟数据;当mode=“010”时,闹钟功能,则对闹钟信号进行译码,数码管显示闹钟信号数据;当mode=“011”时,秒表功能,则对秒表信号进行译码,数码管显示秒表信号数据。
当mode=“100”时,则倒计时功能,对倒计时钟信号进行译码,数码管显示倒计时信号数据。
系统总体结构框图如下所示:3系统以及模块硬件电路设计3.1分频电路参数计算:666150100010001501015010001000.150101501000100.015010T sT sT s=⨯⨯⨯=⨯=⨯⨯⨯=⨯=⨯⨯⨯=⨯3.2系统硬件电路设计系统硬件模拟图:接口名称 类型(输入/输出)引脚号 说明clk IN PIN_N2 晶振50MHz 时钟输入selectmodeIN PIN_W26 模式选择按键 rst IN PIN_G26 复位按键 add IN PIN_P23 高位设置键 dec IN PIN_N23 地位设置键 startnz IN PIN_N25 闹钟开关 startmb IN PIN_N26 秒表开关 startdjs IN PIN_P25 倒计时开关 lednz OUT PIN_AE23 闹钟提示灯 leddjs OUT PIN_AE22 倒计时提示灯 ledbs OUT PIN_Y18 整点报时提示灯 qss[6] OUT PIN_N9 时针高位数码管显示qss[5] OUT PIN_P9 qss[4] OUT PIN_L7 qss[3] OUT PIN_L6 qss[2] OUT PIN_L9 qss[1] OUT PIN_L2 qss[0]OUTPIN_L350MHZ KEY[0] KEY[1] KEY[2] KEY[3] Sw[0] Sw[1] LED[djs] LED[nz]分别与数码管相连 Sw[2]LED[bs]4 系统的VHDL设计4.1顶层设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity liyabin is --实体声明,及系统输入与输出port(clk,rst,add,dec,selectmode,startmb,startnz,startdjs:in std_logic;qgs,qgg,qss,qsg,qfs,qfg,qms,qmg:buffer std_logic_vector(6 downto 0);ledbs,lednz,leddjs:out std_logic);end;architecture data of liyabin iscomponent mode --模式循环模块元件例化port(selectmode:in std_logic;mode:buffer std_logic_vector(2 downto 0));end component;component gnxz --功能选择模块元件例化port(zt:in std_logic_vector(2 downto 0);sz1,sz2,sz3,sz4,sz5,sz6:in std_logic_vector(3 downto 0);--时钟显示信号mb1,mb2,mb3,mb4,mb5,mb6:in std_logic_vector(3 downto 0);--秒表显示信号nz3,nz4,nz5,nz6:in std_logic_vector(3 downto 0);--闹钟显示信号djs1,djs2,djs3,djs4,djs5,djs6:in std_logic_vector(3 downto 0);--倒计时显示信号s1,s2,s3,s4,s5,s6,s7,s8:out std_logic_vector(3 downto 0)--输出,送入显示模块用数码管进行显示);end component;component fp --分频模块元件例化port(clk,rst:in std_logic;clk10ms,clk100ms,clk1s:out std_logic);end component;component sz --时钟模块元件例化port(zt:in std_logic_vector(2 downto 0);clk,clk100ms,rst,add,dec:in std_logic;sz1,sz2,sz3,sz4,sz5,sz6:buffer std_logic_vector(3 downto 0);ledbs: out std_logic);end component;component nz --闹钟模块元件例化port(startnz,add,dec,rst,clk,clk100ms:in std_logic;zt:in std_logic_vector(2 downto 0);sz2,sz3,sz4,sz5,sz6:in std_logic_vector(3 downto 0);--时钟显示信号nz3,nz4,nz5,nz6:buffer std_logic_vector(3 downto 0);--闹钟显示信号]lednz:out std_logic --闹钟提示灯输出);end component;component mb --秒表模块元件例化port(zt:in std_logic_vector(2 downto 0);clk,rst,startmb:in std_logic;mb1,mb2,mb3,mb4,mb5,mb6:buffer std_logic_vector(3 downto 0));end component;component djs --倒计时模块元件例化port(rst,startdjs,add,dec,clk,clk100ms:in std_logic;zt:in std_logic_vector(2 downto 0);djs1,djs2,djs3,djs4,djs5,djs6:buffer std_logic_vector(3 downto 0);leddjs:out std_logic);end component;component xs --显示模块元件例化port(xsin:in std_logic_vector(3 downto 0);--xsout:out std_logic_vector(6 downto 0));end component;signal clk10ms,clk100ms,clk1s,clk1m,clk1h :std_logic; --分频脉冲信号级进位脉冲信号signal sz1,sz2,sz3,sz4,sz5,sz6,sz33,sz55:std_logic_vector(3 downto 0);--时钟显示信号signal nz3,nz4,nz5,nz6:std_logic_vector(3 downto 0);--闹钟显示信号signal mb1,mb2,mb3,mb4,mb5,mb6:std_logic_vector(3 downto 0);--秒表显示信号signal djs1,djs2,djs3,djs4,djs5,djs6:std_logic_vector(3 downto 0);--倒计时显示信号signal s1,s2,s3,s4,s5,s6,s7,s8:std_logic_vector(3 downto 0);--显示信号signal zt:std_logic_vector(2 downto 0);begin --结构体------------------------------模式循环模块------------------------------u1:mode port map(selectmode,zt);------------------------------功能选择模块-----------------------------u2:gnxz port map(zt,sz1,sz2,sz3,sz4,sz5,sz6,mb1,mb2,mb3,mb4,mb5,mb6,nz3,nz4,nz5,nz6,djs1,djs2,djs3,djs4,s1,s2,s3,s4,s5,s6,s7,s8);--------------------------------分频模块--------------------------------u3:fp port map(clk,rst,clk10ms,clk100ms,clk1s);--------------------------------时钟模块--------------------------------u4:sz port map(zt,clk1s,clk100ms,rst,add,dec,sz1,sz2,sz3,sz4,sz5,sz6,ledbs);--------------------------------闹钟模块-------------------------------u5:nz port map(startnz,add,dec,rst,clk1s,clk100ms,zt,sz2,sz3,sz4,sz5,sz6,nz3,nz4,nz5,nz6,lednz);--------------------------------秒表模块--------------------------------u6:mb port map(zt,clk10ms,rst,startmb,mb1,mb2,mb3,mb4,mb5,mb6);--------------------------------倒计时模块------------------------------u7:djs port map(rst,startdjs,add,dec,clk10ms,clk100ms,zt,djs1,djs2,djs3,djs4,djs5,djs6,leddjs);--------------------------------------显示模块-----------------------------------------show1: xs port map(s1,qmg);show2: xs port map(s2,qms);show3: xs port map(s3,qfg);show4: xs port map(s4,qfs);show5: xs port map(s5,qsg);show6: xs port map(s6,qss);show7: xs port map(s7,qgg);show8: xs port map(s8,qgs);end; --结束4.2 分频模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fp isport(clk,rst:in std_logic;clk10ms,clk100ms,clk1s:out std_logic);end;architecture data of fp isbegin--50兆分频,产生clk1s,作为始时钟的秒计时脉冲process(clk,rst)variable num:integer range 0 to 49999999;beginif rst='0' thennum:=0;elsif rising_edge(clk) thenif num=49999999 thennum:=0;clk1s<='1';elsenum:=num+1;clk1s<='0';end if;end if;end process;--5兆分频,产生clk100ms(即clk0.1s),作为快速调整时间的脉冲信号process(clk,rst)variable num:integer range 0 to 4999999;if rst='0' thennum:=0;elsif rising_edge(clk) thenif num=4999999 thennum:=0;clk100ms<='1';elsenum:=num+1;clk100ms<='0';end if;end if;end process;--5兆分频,产生clk10ms(即clk0.01s)作为秒表计时脉冲process(clk,rst)variable num:integer range 0 to 499999;beginif rst='0' thennum:=0;elsif rising_edge(clk) thenif num=499999 thennum:=0;clk10ms<='1';elsenum:=num+1;clk10ms<='0';end if;end if;end process;end;4.3模式循环模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mode is --实体声明port(selectmode:in std_logic;mode:buffer std_logic_vector(2 downto 0));end;architecture data of mode isprocess(selectmode)beginif rising_edge(selectmode) then --模式循环计数器if mode="100" thenmode<="000";else mode<=mode+1;end if;end if;end process;end;4.4功能选择模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity gnxz is --实体声明port(zt:in std_logic_vector(2 downto 0);sz1,sz2,sz3,sz4,sz5,sz6:in std_logic_vector(3 downto 0);--时钟显示信号mb1,mb2,mb3,mb4,mb5,mb6:in std_logic_vector(3 downto 0);--秒表显示信号nz1,nz2,nz3,nz4,nz5,nz6:in std_logic_vector(3 downto 0);--闹钟显示信号djs1,djs2,djs3,djs4,djs5,djs6:in std_logic_vector(3 downto 0);--倒计时显示信号s1,s2,s3,s4,s5,s6,s7,s8:out std_logic_vector(3 downto 0)--输出,送入显示模块用数码管进行显示);end;architecture data of gnxz isbeginprocess(zt,sz1,sz2,sz3,sz4,sz5,sz6, --选择译码器数日信号nz3,nz4,nz5,nz6,mb1,mb2,mb3,mb4,mb5,mb6,djs1,djs2,djs3,djs4,djs5,djs6)beginif zt="000" then--1时钟显示s1<=sz1;s2<=sz2;s3<=sz3;s4<=sz4;s5<=sz5;s6<=sz6;s7<="0001";s8<="1111";elsif zt="001" then--2调整s1<=sz1;s2<=sz2;s3<=sz3;s4<=sz4;s5<=sz5;s6<=sz6;s7<="0010";s8<="1111";elsif zt="010" then--3闹钟s1<="0000";s2<="0000";s3<=nz3;s4<=nz4;s5<=nz5;s6<=nz6;s7<="0011";s8<="1111 ";elsif zt="011" then--4秒表s1<=mb1;s2<=mb2;s3<=mb3;s4<=mb4;s5<=mb5;s6<=mb6;s7<="0100";s8<="1111" ;elsif zt="100" then--5倒计时s1<=djs1;s2<=djs2;s3<=djs3;s4<=djs4;s5<=djs5;s6<=djs6;s7<="0101";s8<="1111";else s1<=sz1;s2<=sz2;s3<=sz3;s4<=sz4;s5<=sz5;s6<=sz6;s7<="0001";s8<="1111";end if;end process;end;4.5显示模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity xs isport(xsin:in std_logic_vector(3 downto 0);xsout:out std_logic_vector(6 downto 0));end;architecture data of xs isbeginprocess(xsin) --显示译码器begincase xsin iswhen "0000"=>xsout<="1000000";when "0001"=>xsout<="1111001";when "0010"=>xsout<="0100100";when "0011"=>xsout<="0110000";when "0100"=>xsout<="0011001";when "0101"=>xsout<="0010010";when "0110"=>xsout<="0000010";when "0111"=>xsout<="1111000";when "1000"=>xsout<="0000000";when "1001"=>xsout<="0010000";when others=>xsout<="1111111";end case;end process;end;4.6 时钟及其调整模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sz is --实体声明port(zt:in std_logic_vector(2 downto 0);clk,clk100ms,rst,add,dec:in std_logic;sz1,sz2,sz3,sz4,sz5,sz6:buffer std_logic_vector(3 downto 0);ledbs: out std_logic);end;architecture data of sz issignal clk1m,clk1h,clk1m0,clk1h0:std_logic; --进位脉冲信号signal js,js1:std_logic_vector(0 downto 0); --按键计时信号beginprocess(zt,js,clk100ms,clk1m0,add,dec)--时间校准选择脉冲分针部分beginif zt="001" and js="1" thenclk1m<=clk100ms;elsif zt="001" and js/="1" thenclk1m<=clk1m0 or not dec;else clk1m<=clk1m0;end if;end process;process(zt,js1,clk100ms,clk1h0)--时间校准选择脉冲时针部分beginif zt="001" and js1="1" thenclk1h<=clk100ms;elsif zt="001" and js1/="1" thenclk1h<=clk1h0 or not dec;else clk1h<=clk1h0;end if;end process;process(zt,clk,rst,add,dec) --时钟分针按键计时beginif zt="000" and rst='0' thensz2<="0000";sz1<="0000";elseif zt="001" and dec='0' thenif rising_edge(clk) thenjs<=js+1;if js="1" thenjs<="1";end if;end if;else js<="0";end if;if zt="001" and add='0' then --时钟时针按键计时if rising_edge(clk) thenjs1<=js1+1;if js1="1" thenjs1<="1";end if;end if;else js1<="0";end if;if rising_edge(clk) then --时钟秒针计数器if sz2="0101" and sz1="1001" thensz2<="0000";sz1<="0000";clk1m0<='1';elsif sz1="1001" thensz1<="0000";sz2<=sz2+1;clk1m0<='0';else sz1<=sz1+1;clk1m0<='0';end if;end if;end if;end process;process(zt,clk1m,rst) --时钟分针计数器beginif zt="000" and rst='0' thensz4<="0000";sz3<="0000";elsif rising_edge(clk1m) thenif sz4="0101" and sz3="1001" thensz4<="0000";sz3<="0000";clk1h0<='1';elsif sz3="1001" thensz3<="0000";sz4<=sz4+1;clk1h0<='0';else sz3<=sz3+1;clk1h0<='0';end if;end if;end process;process(clk1h,rst,zt) --时钟时针计数器beginif zt="000" and rst='0' thensz6<="0001";sz5<="0010";elsif rising_edge(clk1h) thenif sz6="0010" and sz5="0011" thensz6<="0000";sz5<="0000";elsif sz5="1001" thensz5<="0000";sz6<=sz6+1;else sz5<=sz5+1;end if;end if;end process;process(sz1,sz2,sz3,sz4) --整点报时beginif sz4="0000" and sz3="0000" and sz2="0000" thenledbs<='1';else ledbs<='0';end if;end process;end;4.7闹钟模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity nz isport(startnz,add,dec,rst,clk,clk100ms:in std_logic;zt:in std_logic_vector(2 downto 0);sz2,sz3,sz4,sz5,sz6:in std_logic_vector(3 downto 0);--时钟显示信号nz3,nz4,nz5,nz6:buffer std_logic_vector(3 downto 0);--闹钟显示信号] lednz:out std_logic);end;architecture data of nz issignal js,js1:std_logic_vector(0 downto 0);--按键计时信号signal clkd,clkg:std_logic; --进位脉冲信号beginprocess(js,clk100ms,dec)beginif js="1" then --分针按键计时clkd<=clk100ms;else clkd<=not dec;end if;end process;process(js1,clk100ms,add) --时针按键计时beginif js1="1" thenclkg<=clk100ms;else clkg<=not add;end if;end process;process(zt,add,dec,rst,clk,clkg,clkd) --闹钟时间手动设置beginif zt="010" thenif rst='0' thennz6<="0001";nz5<="0010";nz4<="0000";nz3<="0000"; --闹钟复位12:00:00elseif dec='0' thenif rising_edge(clk) thenjs<=js+1;if js="1" thenjs<="1";end if;end if;else js<="0";end if;if add='0' thenif rising_edge(clk) thenjs1<=js1+1;if js1="1" thenjs1<="1";end if;end if;else js1<="0";end if;if falling_edge(clkd) then --闹钟手动设置分钟if nz4="0101" and nz3="1001" thennz4<="0000";nz3<="0000";elsif nz3="1001" thennz3<="0000";nz4<=nz4+1;else nz3<=nz3+1;end if;end if;if falling_edge(clkg) then --闹钟手动设置时钟if nz6="0010" and nz5="0011" thennz6<="0000";nz5<="0000";elsif nz5="1001" thennz5<="0000";nz6<=nz6+1;else nz5<=nz5+1;end if;end if;end if;end if;end process;process(startnz,nz6,nz5,nz4,nz3,sz2,sz3,sz4,sz5,sz6) ----闹钟判断及提示beginif startnz='1' thenif nz6=sz6 and nz5=sz5 and nz4=sz4 and nz3=sz3 and sz2="0000" then lednz<='1';else lednz<='0';end if;else lednz<='0';end if;end process;end;4.8秒表模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mb is --实体声明port(zt:in std_logic_vector(2 downto 0);clk,rst,startmb:in std_logic;mb1,mb2,mb3,mb4,mb5,mb6:buffer std_logic_vector(3 downto 0));end ;architecture data of mb issignal clk10ms,clk1s,clk1m:std_logic; --进位脉冲信号beginprocess(zt,clk,startmb,rst) --秒表脉冲计数器beginif zt="011" and rst='0' thenmb2<="0000";mb1<="0000";elsif startmb='1' thenif rising_edge(clk) thenif mb2="1001" and mb1="1001" thenmb2<="0000";mb1<="0000";clk1s<='1';elsif mb1="1001" thenmb1<="0000";mb2<=mb2+1;clk1s<='0';else mb1<=mb1+1;clk1s<='0';end if;end if;end if;end process;process(zt,clk1s,rst) --秒表分针计数器beginif zt="011" and rst='0' thenmb4<="0000";mb3<="0000";elsif rising_edge(clk1s) thenif mb4="0101" and mb3="1001" thenmb4<="0000";mb3<="0000";clk1m<='1';elsif mb3="1001" thenmb3<="0000";mb4<=mb4+1;clk1m<='0';else mb3<=mb3+1;clk1m<='0';end if;end if;end process;process(zt,clk1m,rst) --秒表时针计数器beginif zt="011" and rst='0' thenmb6<="0000";mb5<="0000";elsif rising_edge(clk1m) thenif mb6="0101" and mb5="1001" thenmb5<="0000";mb6<="0000";elsif mb5="1001" thenmb5<="0000";mb6<=mb6+1;else mb5<=mb5+1;end if;end if;end process;end;4.9 倒计时模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity djs is --实体声明port(rst,startdjs,add,dec,clk,clk100ms:in std_logic; --按键及脉冲输入zt:in std_logic_vector(2 downto 0); --状态输入djs1,djs2,djs3,djs4,djs5,djs6:buffer std_logic_vector(3 downto 0);--倒计时显示输出leddjs:out std_logic --倒计时提示灯);end;architecture data of djs issignal clk1s,clk1m,clkd,clkg:std_logic; --进位脉冲signal js,js1:std_logic_vector(0 downto 0); --按键计时信号signal s1,s2,s3,s4,s5,s6,ss1,ss2,ss3,ss4,ss5,ss6:std_logic_vector(3 downto 0);--倒计时设置时间信号和倒计时减法器时间信号begin --结构体process(js,clk100ms,dec)--分针按键计时beginif js="1" thenclkd<=clk100ms;else clkd<=not dec;end if;end process;process(js1,clk100ms,add)--时针按键计时beginif js1="1" thenclkg<=clk100ms;else clkg<=not add;end if;end process;process(zt,add,dec,rst,startdjs,clk,clkd,clkg)--倒计时设置时间beginif zt="100" and rst='0' then --异步复位s6<="0000";s5<="0000";s4<="0101";s3<="1001";elsif zt="100" and startdjs='0' thenif dec='0' thenif rising_edge(clk) thenjs<=js+1;if js="1" thenjs<="1";end if;end if;else js<="0";end if;if add='0' thenif rising_edge(clk) thenjs1<=js1+1;if js1="1" thenjs1<="1";end if;end if;else js1<="0";end if;if rising_edge(clkd) thenif s4="0101" and s3="1001" thens4<="0000";s3<="0000";elsif s3="1001" thens3<="0000";s4<=s4+1;else s3<=s3+1;end if;end if;if rising_edge(clkg) thenif s6="0101" and s5="1001" thens6<="0000";s5<="0000";elsif s5="1001" thens5<="0000";s6<=s6+1;else s5<=s5+1;end if;end if;end if;end process;process(zt,startdjs,clk,s1,s2,s3,s4,s5,s6,ss1,ss2,ss3,ss4,ss5,ss6)--倒计时减法器beginif zt="100" and startdjs='0' thenss1<="0000";ss2<="0000";elsif zt="100" and startdjs='1' thenif rising_edge(clk) thenif ss3="0000" and ss4="0000" and ss5="0000" and ss6="0000" then ss2<="0000" ;ss1<="0000";elsif ss2="0000" and ss1="0000" thenss2<="1001";ss1<="1001";clk1s<='1';elsif ss1="0000" thenss1<="1001";ss2<=ss2-1;clk1s<='0';else ss1<=ss1-1;clk1s<='0';end if;end if;end if;end process;process(zt,startdjs,clk1s,s3,s4)--倒计时减法器秒针部分beginif zt="100" and startdjs='0' thenss3<=s3;ss4<=s4;elsif rising_edge(clk1s) thenif ss3="0000" and ss4="0000" and ss5="0000" and ss6="0000" then ss3<="0000" ;ss4<="0000";elsif ss3="0000" and ss4="0000" thenss3<="1001";ss4<="0101";clk1m<='1';elsif ss3="0000" thenss3<="1001";ss4<=ss4-1;clk1m<='0';else ss3<=ss3-1;clk1m<='0';end if;end if;end process;process(zt,startdjs,clk1m,s5,s6)--倒计时减法器分针部分beginif zt="100" and startdjs='0' thenss5<=s5;ss6<=s6;elsif rising_edge(clk1m) thenif ss5="0000" and ss6="0000" thenss5<="0000";ss6<="0000";elsif s5="0000" thenss5<="1001";ss6<=ss6-1;else ss5<=ss5-1;end if;end if;end process;process(zt,startdjs,djs6,djs5,djs3,djs4) --倒计时时间到提示beginif zt="100" and startdjs='1' thenif djs6="0000" and djs5="0000" and djs4="0000" and djs3/="0000"thenleddjs<='1';elsif djs2="0000" and djs3="0000" and djs4="0000" and djs1="0000" then leddjs<='0';else leddjs<='0';end if;else leddjs<='0';end if;end process;process(zt,startdjs,s1,s2,s3,s4,s5,s6,ss1,ss2,ss3,ss4,ss5,ss6) --设置时间与减法器时间切换进程beginif zt="100" and startdjs='1' thendjs5<=ss5;djs6<=ss6;djs3<=ss3;djs4<=ss4;djs2<=ss2;djs1<=ss1;else djs5<=s5;djs6<=s6;djs3<=s3;djs4<=s4;djs2<=s2;djs1<=s1;end if;end process;end;5 结论以及结果说明5.1 结论:本设计基于VHDL 硬件描述语言,在windows7(32bit)计算机上运行Quartus II Version 6.0进行编程及仿真,将程序下载带DE2实验平台,主芯片为Cyclone II EP2C35F672C6NK上运行。