大连理工大学数字电路课程设计报告:多功能数字时钟设计
多功能数字时钟的设计报告
多功能数字时钟的设计引言现代社会科技飞速发展,人们生活节奏加快,时间就是金钱,时间就是生命。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
20世纪末,电子技术得到飞速发展,各类电子产品相继出现在市场,电子产品主要朝着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
数字化电子产品已渗入到人类生活的方方面面。
单片计算机即单片微型计算机(Single-Chip Microcomputer ),是集CPU ,RAM ,ROM ,定时,计数和多输入输出口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。
而52 单片机是51单片机的升级版,功能更强大。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
基于以上发展与现实需要本次设计课题就是基于单片机的设计-----基于单片机的多功能数字钟。
数字钟是采用数字电路实现对时,分,秒,数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
一、设计目的:1.了解数字时钟的组成及工作原理2.熟悉数字钟的设计与制作:1).由晶振电路产生1HZ标准秒信号。
多功能电子时钟数字系统课程设计设计实验报告
多功能电子时钟数字系统课程设计设计实验报告数字系统课程设计设计实验报告———多功能电子时钟目录一、电子时钟的功能及工作介绍 01、本设计电子时钟具有的功能 02、本设计电子时钟工作介绍 0二、设计思路 0三、各模块具体介绍 (1)计数器模块: (1)控制模块: (3)四、仿真 (6)五、实验成果 (6)六、实验总结和感想 (6)1、实验错误排查和解决 (6)2、实验感想 (7)七、各模块代码 (8)1、计数器模块 (8)2、控制模块 (20)一、电子时钟的功能及工作介绍1、本设计电子时钟具有的功能1)具有显示时、分、秒的功能,能准确显示时间2)能够手动设置时间3)具有闹钟功能,可以设置闹钟的时间,然后再实际时间与设定时间相等是闹钟响,并有闹钟开关,可控制其是否响4)具有秒表功能,可以累计计时2、本设计电子时钟工作介绍此电子时钟开机后即会显示时间,其中后两位数码管显示秒,前两位数码管显示分,还可以通过拨盘开关S1来使得前两位数码管显示小时。
(开机后,按下按键1一次,会继续显示时间。
)此后,每按下按键1一次,会显示设置小时界面,按下按键1两次会显示设置分钟界面,按下按键1三次会显示闹钟设置小时界面,按下按键1四次会显示闹钟设置分钟界面,按下按键1五次会显示秒表界面。
而在每一个界面,按下按键2相应的位会开始跳动,在按下按键2时,跳动停止,此时按下按键3,即确认键,则会返回时间显示状态。
二、设计思路设计一个电子时钟,必然要用到计时器,而需要设置时间和闹钟,又需要控制器来控制系统所处的状态。
我们采用外部一个按键来切换系统的状态,用另一个按键来调整时间和启动秒表,再有一个按键来确认操作,并返回显示状态,继续等待命令。
在控制器中,需要接受外部信号,并给出信号给计时器,使其做出相应的动作。
电子技术课程设计报告---多功能数字时钟
电子技术课程设计数字钟的设计一、设计任务与要求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)具有开始计时暂停计时功能和清零功能三、具有电子表和秒表状态切换。
四、划出框图和逻辑电路图,写出设计。
《数字电子技术》课程设计说明书多功能数字钟电路设计
学号:课程设计题目多功能数字钟电路设计学院信息工程学院专业通信工程班级通信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.引言时钟是现在最基本最常见的生活用品,随着现代人们的忙碌,似乎每一个角落都装上时钟才能满足人们对知晓时间的需求,现在很多宿舍楼,商场等都装上了时钟。
大连理工大学数电实验报告
大连理工大学本科实验报告题目:数字钟课程名称:数字电路课程设计学院(系):电子信息工程专业:电子班级:电子1301班学生姓名:陈冠谋学号:201383022完成日期:2015年7月18日成绩:2014 年7 月18 日注意:本页要求放在实验报告第一页课程设计得分表考勤课程设计50分考试40分作业合计最后得分一、数字钟课程设计要求: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 闪烁实现。
二、设计分析及系统方案设计数字计时器一般都由振荡器、分频器、计数器、译码器、显示器等几部分组成。
其中振荡器和分频器组成标准秒信号发生器,由不同进制的计数器、译码器和显示器组成计时系统。
多功能数字时钟课程设计
多功能数字时钟课程设计多功能数字时钟是一种十分常见且使用广泛的计时工具,随着数字化的推进,数字时钟在人们的日常生活中扮演着越来越重要的角色。
针对数字时钟的课程设计就显得尤为重要。
在下面的文章中,我们将针对多功能数字时钟的课程设计分步骤地进行阐述。
第一步:课程目标的制定在开展数字时钟课程的设计之前,需要明确该课程的教学目标。
数字时钟涉及到的知识点比较多,目标制定的准确性和明确性可以使得教学更加高效。
该课程目标的一些重要的方面包括:1. 了解数字时钟的组成和工作原理。
2. 掌握数字时钟的常用功能和操作方式。
3. 能够利用数字时钟进行实际生活中的计时操作。
4. 学会数字时钟的基本维护和保养。
第二步:课程内容的选择数字时钟涉及到的内容很多,但是每个人的知识背景在一个不同的水平,一些学生可能只知道数字时钟的基本概念。
在选择课程内容时,要根据学生的背景进行选择,使得课程设计具有一定的针对性。
一些重要的课程内容有:1. 数字时钟的结构。
2. 常见数字时钟的类型。
3. 如何使用数字时钟进行计时操作。
4. 数字时钟的维护和保养。
第三步:课程教学方法的选择在数字时钟的课程教学中,教学方法是非常重要的。
如果教学方法不当,即使内容选择恰当,也可能使得学生无法真正理解和掌握数字时钟的重要性和使用方法。
一些教学方法有:1. 讲解式教学方法:教师直接讲解数字时钟的相关知识和技能。
2. 实验式教学方法:由学生亲自操作数字时钟,从而掌握使用方法。
3. 讨论式教学方法:教师引导学生进行交流和探讨。
第四步:课程评价方法的选择在数字时钟课程结束后,教学评价是必不可少的一件事。
这对于学生学习的效果检验和课程的改进都具有重要意义。
一些评价方法有:1. 笔试方式:通过让学生考试,检查学生对数字时钟的理解程度。
2. 实际操作方式:让学生在数字时钟的操作过程中检查他们是否真正理解。
3. 交流方式:从学生的角度出发,从而更好地了解数字时钟课程的情况。
多功能数字钟电路设计实验报告
多功能数字钟电路设计实验报告实验目的:设计一个多功能数字钟电路,能够显示当前时间,并具备闹钟、秒表和计时等功能。
实验原理:1. 数码管显示:使用4位共阴极数码管进行显示,采用BCD码方式输入。
2. 按键输入:使用按键进行时间的调节和选择功能。
3. 时钟频率:使用晶体振荡器提供系统时钟,通过分频电路控制时钟频率。
实验器材:1. 4位共阴极数码管2. 按键开关3. 74LS90分频器4. 时钟晶体振荡器5. 耐压电容、电阻等元件6. 电路连接线实验步骤:1. 连接电路:根据电路原理图,将数码管、按键开关、74LS90分频器、晶体振荡器等连接起来,注意接线正确。
2. 编写程序:根据实验要求,编写相应的程序,实现时钟、闹钟、秒表和计时等功能。
3. 调试电路:将电路通电并运行程序,观察数码管的显示情况和按键功能是否正常。
4. 测试功能:分别测试多功能数字钟的时钟、闹钟、秒表和计时等功能,确保功能正常。
5. 完善实验报告:根据实验结果和观察情况,完善实验报告,并附上电路原理图、程序代码等。
实验结果:经过调试和测试,多功能数字钟电路能够正常显示时间,并具备时钟、闹钟、秒表和计时功能。
使用按键进行时间调节和功能选择,数码管根据不同功能进行相应的显示。
实验总结:通过本次实验,我掌握了多功能数字钟电路的设计原理和实现方法,并且了解了数码管显示、按键输入、时钟频率控制等相关知识。
实验过程中,我发现电路连接正确性对功能实现起到关键作用,同时合理编写程序也是确保功能正常的重要环节。
通过实验,我对数字电路的设计和实现有了一定的了解,并且培养了动手实践和解决问题的能力。
(数电)多功能数字钟—设计报告
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的脉冲,此脉冲当做秒时针脉冲。
《电子技术课程设计报告》:多功能数字钟电路设计与仿真
电子技术课程设计报告——多功能数字钟电路设计与仿真目录一、实验名称 (1)二、用途 (1)三、主要技术指标 (1)四、设计步骤 (1)1、数字钟的构成 (1)2、各模块设计 (2)(1)石英晶体振荡器 (2)(2)分频器 (3)(3)分秒计时器 (4)(4) 小时计时器 (4)(5)译码器与数码管 (5)(6)校时电路 (6)(7)整点报时电路 (6)(8)闹钟电路 (7)五、电路仿真及调试 (8)六、元器件明细表 (8)七、小结 (10)一、实验名称多功能数字钟电路设计与仿真二、用途数字钟是一种用数字电路技术实现时、分、秒计时的钟表。
与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。
数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。
由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定,通常使用石英晶体振荡器电路构成数字钟。
三、主要技术指标①时间以24小时为一个周期;②数值显示时、分、秒;③有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间;④具有整点报时功能,当时间到达整点前5秒进行蜂鸣报时;⑤具有闹钟功能,当时间到达预设的时间进行蜂鸣闹铃;⑥为了保证计时的稳定及准确须由石英晶体振荡器提供时间基准信号。
四、设计步骤1、数字钟的构成数字式计时器应由秒发生装置、计秒,计分,计时部分、时间显示部分、时间校正和闹钟报时等几部分组成。
所涉及的电子器件主要有振荡器、加法计数器、译码器、显示器、寄存器、比较器等。
其中,振荡器组成标准秒信号发生器;由不同进制的计数器、译码器和显示器组成计时,显示系统;寄存器和比较器构成定点报时系统。
其结构原理图如下:该系统的主要工作原理是:①振荡器产生高稳定的高频脉冲信号,作为数字钟的时间基准(系统时钟),再经分频器输出标准秒脉冲信号。
②秒计数器计满60后向分计数器进位,分计数器计满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。
数电实验——多功能数字钟
大连理工大学本科实验报告题目:多功能数字钟课程名称:《数字电路课程设计》学院(系):电子信息与电气工程学部专业:自动化班级:电自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.确定器件:根据设计需求,选择适合的数字电路和组件,如时钟发生器、计数器、显示器等。
3.设计电路原理图:根据需求和选择的器件,绘制数字时钟的电路原理图。
4.进行逻辑设计:使用数字逻辑门和触发器等器件,实现数字时钟的各个功能模块。
5.进行测试:将电路搭建并连接,对数字时钟进行功能和性能测试。
6.优化和修改:根据测试结果,优化和修改电路设计,确保数字时钟的稳定性和可靠性。
7.编写报告:总结设计过程,记录问题和解决方案,描述数字时钟的设计和实现。
设计要点•确保数字时钟的显示精度和稳定性,避免数字闪烁或误差较大。
•采用合适的计数器和时钟发生器,确保数字时钟能准确计时和显示时间。
•考虑数字时钟的功耗和可靠性,选择适合的电源和元器件。
•在设计中考虑数字时钟的扩展性和功能性,如增加闹钟、温湿度显示等功能。
结论•数字时钟设计是数字电路课程中有趣而实用的项目,能够培养学生的实践能力和创造力。
•通过数字时钟项目,学生可以通过实践掌握数字电路设计的方法和技巧,提高解决问题的能力和团队协作能力。
•数字时钟设计也是一个不断优化和改进的过程,通过反复测试和修改,可以得到一个性能稳定、功能完备的数字时钟电路。
数电课程设计报告-多功能数字钟
课题名称:多功能数字钟所在院系:机械电子工程学院班级:*自动化*班学号: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) 具有快速校准时间的功能。
数字电路课程设计-多功能数字时钟设计报告
多功能数字时钟设计报告目录一、设计任务和要求 (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整点报时功能。
整点译码电路通过识别整点时间,产生整点报时信号。
多功能数字钟—数电课程设计报告
1.设计任务与要求1.1产生1HZ的脉冲;1.2能显示时,分,秒,24小时进制;1.3可手动校正:能分别进行分、时的校正。
只要将开关置于手动位置。
可分别对分、时进行连续脉冲输入调整;1.4整点报时。
2.系统原理框图由振荡器输出稳定的高频脉冲信号作为时间基准,秒计数器满60向分计数器进位,分计数器满60向小时计数器进位,小时计数器按“24翻1”规律计数,计数器经译码器送到显示器;计数出现误差可用校时电路进行校时、校分、校秒,可发挥部分:使数字钟具有可整点报时与定时闹钟的功能。
数字钟的结构框图如图1所示图1数字钟的结构框图3.设计方案与论证3.1时间脉冲产生电路方案一:由集成电路定时器555与RC组成的多谐振荡器作为时间标准信号源。
555与RC振荡电路如图2所示图1 555与RC组成的多谐振荡器图方案二:振荡器是数字钟的核心。
振荡器的稳定度及频率的精确度决定了数字钟计时的准确程度,通常选用石英晶体构成振荡器电路。
石英晶体振荡器的作用是产生时间标准信号。
因此,一般采用石英晶体振荡器经过分频得到这一时间脉冲信号。
石英晶体振荡电路如图3所示图 2 石英晶体振荡器图方案三:由集成逻辑门与RC组成的时钟源振荡器门电路组成的振荡电路如图4所示图 3 门电路组成的多谐振荡器图用555组成的脉冲产生电路: R1=47kΩ,R2=47kΩ,C=10μF,则555所产生的脉冲的为:f=1/[(R1+2*R2)CLn2=1Hz,而设计要求为1Hz,在精度要求不是很高的时候可以使用。
石英晶体振荡电路:采用的32768晶体振荡电路,其频率为32768Hz,然后再经过15分频电路可得到标准的1Hz的脉冲输出.R的阻值,对于TTL门电路通常在0.7~2KΩ之间;对于CMOS门则常在10~100MΩ之间。
由门电路组成的多谐振荡器的振荡周期不仅与时间常数RC有关,而且还取决于门电路的阈值电压VTH ,由于VTH容易受到温度、电源电压及干扰的影响,因此频率稳定性较差,只能用于对频率稳定性要求不高的场合。
大连理工大学数字电路课程设计报告_多功能数字时钟设计说明
大连理工大学本科实验报告题目:多功能数字时钟设计课程名称:数字电路与系统课程设计学院(系):信息与通信工程学院专业:电子信息工程班级:学生姓名:学号:完成日期: 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秒钟进行提示。
多功能数字时钟课程设计
多功能数字时钟课程设计一、课程目标知识目标:1. 学生能理解数字时钟的基本构成,掌握时、分、秒的概念及其相互关系。
2. 学生能运用所学知识,分析多功能数字时钟的显示原理和编程逻辑。
3. 学生掌握基本的数字逻辑运算,并能将其应用于时钟设计中。
技能目标:1. 学生能通过实际操作,学会使用编程软件进行数字时钟的设计与编程。
2. 学生能够运用问题解决策略,调试并优化数字时钟程序,提高程序运行效率。
3. 学生能够运用所学知识,创作具有个性化功能的数字时钟,培养创新意识和实践能力。
情感态度价值观目标:1. 学生在学习过程中,培养对信息技术学科的兴趣,激发学习热情。
2. 学生通过团队协作,培养沟通、交流和合作的能力,增强团队意识。
3. 学生通过解决实际问题,体会科技改变生活的魅力,增强社会责任感和使命感。
课程性质:本课程为信息技术学科,结合学生年级特点,注重理论与实践相结合,培养学生的动手操作能力和创新思维。
学生特点:学生具备一定的信息技术基础,好奇心强,喜欢动手操作,但逻辑思维和问题解决能力有待提高。
教学要求:教师应关注学生的个体差异,提供有针对性的指导,引导学生通过自主学习、合作探究和实践活动,达到课程目标,提高学生的信息技术素养。
二、教学内容1. 数字时钟基础知识:时钟的演变、数字时钟的构成、时、分、秒的概念及其进制关系。
教材章节:第一章 认识数字时钟2. 数字时钟显示原理:LED显示技术、点阵显示原理、数字时钟显示编程。
教材章节:第二章 数字时钟显示技术3. 数字时钟编程基础:基本逻辑运算、程序流程控制、函数的运用。
教材章节:第三章 数字时钟编程基础4. 多功能数字时钟设计与实现:设计思路、编程实践、调试与优化。
教材章节:第四章 多功能数字时钟设计与实现5. 创新实践:个性化数字时钟设计、功能拓展、作品展示。
教材章节:第五章 创新实践与作品展示教学进度安排:1. 数字时钟基础知识(1课时)2. 数字时钟显示原理(2课时)3. 数字时钟编程基础(3课时)4. 多功能数字时钟设计与实现(4课时)5. 创新实践(2课时)教学内容科学系统,注重理论与实践相结合,引导学生通过自主学习、合作探究和实践操作,掌握数字时钟的设计与编程,培养学生的创新能力和信息技术素养。
大连理工大学数字电路课程设计报告_多功能数字时钟设计说明
理工大学本科实验报告题目:多功能数字时钟设计完成日期: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系统硬件电路设计系统硬件模拟图:50MHZ 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;beginif 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 isbeginprocess(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" then ledbs<='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) --秒表时针计数器if 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)--时针按键计时if 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" thenleddjs<='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上运行。