多功能数字钟设计EDA实验报告.docx
- 文档编号:525527
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:22
- 大小:200.98KB
多功能数字钟设计EDA实验报告.docx
《多功能数字钟设计EDA实验报告.docx》由会员分享,可在线阅读,更多相关《多功能数字钟设计EDA实验报告.docx(22页珍藏版)》请在冰点文库上搜索。
多功能数字钟设计EDA实验报告
EDA(Ⅱ)实验报告
多功能数字钟的设计
0710200247zh
2010-5-25
摘要:
本实验是设计一个多功能数字钟。
根据实验要求设计了基本的二十四小时计时和整点报时电路,并且数码管部分采用了动态显示。
同时根据提高部分要求,将一小时秒表的功能集成到了数字钟里。
实验过程采用自顶向下的设计思想,大量采用了模块操作。
Summary:
ThepurposeoftheEDAexperimentistodesignamulti-funtiondigitalclock.It'saccordingtotheexperimentrequestthattheIhavedesigneda24hoursclockwiththefunctiontellingtimeatalittlebitwhole,andfigurestubepartadoptthedynamicstatemanifestation.Inthemeantimetosatistytheexalationofthecapability,astop-watchmoldpieceisintegratedinthedigitalclock.Thethoughtofgettingdownfromcrestinstructstheexperimentprocess,whosefeatureistheadoptionofthemoldpieces.
关键词:
数字钟动态显示模块秒表
Keywords:
Digitalclockdymanicstatemanifestationmoldpiecesstop-watch
目录
摘要1
正文3
设计要求说明3
方案论证3
各子模块原理图4
调试及仿真15
编程下载17
总结18
总结部分18
遇到问题及解决方法18
实验体会18
参考文献19
正文:
1、【设计要求说明】:
设计一个数字计时器,可以完成00:
00:
00到23:
59:
59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等功能:
1、能进行正常的时、分、秒计时功能;
2、分别由六个数码管显示时分秒的计时;
3、K1是系统的清零开关(K1=1正常工作,K1=0时钟的分、秒全清零);
4、K2是计时/闹钟的校时开关(K2=0正常工作,K2=1时可以快速校分);
5、K3是计时/闹钟的校分开关(K3=0正常工作,K3=1时可以快速校分);
6、K4是系统的使能开关(K4=1正常工作,K4=0时钟保持不变);
7、定时闹表功能;
8、K5是闹钟/计时显示切换开关(K5=0时显示计时,K5=1时显示闹钟定时时间);
9、K6是闹钟使能开关(K6=1闹钟正常工作,K6=0屏蔽闹钟功能)
10、使时钟具有整点报时功能(当时钟计到59’53”时开始报时,在59’53”,59’55”,59’57”时报时频率为500Hz,59’59”时报时频率为1KHz,);
2、【方案论证(整体电路的工作原理)】:
数字钟系统可以分为以下几大模块:
脉冲发生电路模块,基本计时模块,动态译码显示模块,校分电路模块,报时电路模块,清零电路模块。
根据实际数字钟的功能设计了闹钟模块,比较模块,数据选择显示模块。
基本时钟电路的系统框图如图:
由于实验板上提供的是48MHZ系统时钟信号,所以首先需要将系统时钟进行分频得到1HZ的时钟信号进行计时。
设计原理是“计数器即是分频器”。
计时电路采用了74160二进制BCD码计数器构成了模24和模60的计数器,进行时分秒的计时。
译码显示电路采用的是动态显示的方案,动态显示使用数据选择器的分时复用功能,将任意多位数码管的显示驱动,由一个七段显示译码器来完成。
由于本实验采用的BCD数码管是共阴电路,所以还需要一个同步时钟控制译码器产生片选信号,从而使六路BCD码信号能够通过一个译码器分别显示在不同的数码管上。
报时电路是由简单的逻辑门电路组成的,根据要求通过计数器上的BCD码数值来确定报时时间和报时频率。
控制电路是通过实验板上的逻辑开关来实现输入的。
由于本实验要求防抖动,设计时使用了D触发器,作为防抖开关使用。
3、【各子模块设计原理】
时钟脉冲发生电路模块
模块符号为:
为了便于实现秒表的计时功能和报时功能,时钟信号发生模块共输出1HZ,2HZ,500HZ,1KHZ的时钟信号,输入只有一个,就是系统时钟48MHZ。
48MHZ通过模2、模6、模8、模1K不同模块的自合可以得到不同的始终频率。
模2
模8
模6
模1000
例如:
要得到1HZ的输出频率,将48MHZ依次进行:
模8分频模6分频模1K分频模1K分频
其中同时可得1KHZ的时钟输出,同理我们可以得到所需500HZ和2HZ:
基本计时模块,保持清零模块,校时校分模块:
模块电路如下所示:
clr_input清零信号输入端,输入0有效
sw2是校时信号输入端
sw3是校分信号输入端
sw_5是计时与闹钟显示切换开关,输入1时显示计时
以下是该模块的具体构成:
计数器部分的基本构成是由模60,模60,模24的计数器级联构成。
采用异步计数器方式,由秒计数器开始计数,其进位信号为59秒时送入分计数器CLK,作为分计数器的脉冲输入,分计数器计数到59分时,而此时秒计数器也计到59秒时作为时计数器的脉冲输入,时计数器开始计数。
当时计数器计数到23后且总计数为23:
59:
59后,进位则从00:
00:
00重新计数。
清零功能通过对每个计数器的清零端复位实现,保持功能通过对时钟脉冲的选通实现。
秒计时电路图(采用反馈置位的方法实现):
分计时电路图(采用反馈置位的方法实现):
时计时电路图(采用反馈置位的方法实现):
校分和校时部分的基本构成为:
保持电路逻辑结构如下:
说明:
由于EDA实验系统提供的开关是机械开关,机械开关在接通和断开过程中,
通常会产生一串电脉冲,会使逻辑电路发生误动作,因此需设计一个防抖
动电路。
分计数器的计数脉冲有两个来源,一个是秒的进位信号,还有一
个是校分信号(1Hz),根据校分开关的不同状态决定送入分计数器的脉
冲来源,以完成正常计数或校分功能,因此采用一个D触发器作为防抖开
关,其电路实现:
总电路鸟瞰:
③整点报时电路模块:
报时部分的设计思想:
当时钟计到59’53”时开始报时,在59’53”,59’55”,59’57”时报时频率为1KHz驱动蜂鸣器,59’59”时报时频率为2KHz驱动蜂鸣器。
通过对报时时间各个状态位进行分析,可对报告时间进行化简,作卡诺图:
分十位
分位
秒十位
秒个位
9’53”
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
9’55”
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
9’57”
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
9’59”
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
具体逻辑构成图如下:
动态译码显示模块
此模块是由显示译码器7447和数据选择器和BCD码译码器共同构成的。
动态显示的基本原理是在“74138译码器”中输出片选信号dig选通数码管,同时在“数据选择器”中输出对应的一路BCD码信号送到7447显示译码器的输入端进行译码,7447的输出端为数码管的共同的控制端,在数码管上显示数据。
为了选通计时或者闹钟定时,其内部通过一个选择电路实现,用SW5控制选通。
m[7..0]s[7..0]h[7..0]分别为计时电路的秒分时输入
a_m[7..0]a_h[7..0]分别为闹钟定时电路的分时输入
具体的逻辑电路构成为:
其中选择逻辑电路模块为:
其中上面一块24选4为计时电路,下面一块24选4为闹钟电路的选择,当SW5=0时选通计时电路显示,SW5=1时选通闹钟电路显示。
其中的24选4电路为
输入1KHZ的时钟脉冲信号作为74160的工作频率作为刷新频率产ad[0]~ad[2],通过74138译码使其循环输出六个控制信号dig[0]~dig[7]对数码管进行片选,同时又作为4片74151构成的24选4数据选择器的控制信号,通过SW5的选通,输出对应的一路BCD码信号送到7447显示译码器的输入端进行译码,使译码部分和片选部分能同步工作。
⑤闹钟模块
闹钟模块其实就是只有分位和时位的计数器模块,并且具有校分和校时功能。
当设定好闹钟时间后闹钟处于保持状态,直至到达时间后开始闹铃。
闹钟模块的逻辑结构如下图所示:
SW3是闹钟的校分开关SW2是闹钟的校时开关,
他们当SW5=0时即选通显示闹钟电路时有效
通过对计时电路和校分电路的修改,去掉时钟的秒位,逻辑结构如下图所示:
比较和闹钟报时模块
由于闹钟要在设定的时间上输出一个信号驱动蜂鸣器,那么就需要一个比较电路,把闹钟设定的时间与计数器的时间进行比较,当相同时输出信号来驱动蜂鸣器。
同时,图中右下方的或门输入端为整点报时的输入和闹钟报时的输入。
比较电路的具体构成如下图所示:
当然,该比较电路可直接使用7485芯片比较更为简单
闹钟的报时采用了简单的滴滴滴声响实现,电路如下,通过74160循环:
总电路图为:
4、【调试及仿真】
对已完成的电路图保存后进行调试,检查有无出错的地方,比如线路定义出错,引脚未定义,未分配等软件能检查出来的错误,对其进行修正,直至调试的仿真图完全正确为止,仿真得到的波形图如下:
6分频仿真时序图为:
8分频仿真时序图为:
模60计数器仿真时序图为:
模24计数器仿真时序图为:
最后作整体检查并将clock设置为顶层文件进行全程编译直至编译完全通过为止,如下图所示:
5、【编程下载】
将编译好的程序下载至FPGA芯片之前,首先要进行管脚的分配,选择“Assingnment—〉Pins”,管脚分配图如下图示:
选择“Assingnment—>Setting”,点击“Device&PinOption…”选择标签页“Congiguration”中的“Useconfigurationdevice”选项选择EPCS4选项,选择“UnusedPins”标签页将未用引脚设为高阻输入,再进行一次全程编译,下载前的准备工作完成。
点击工具栏上的按钮,点击“HardwareSetup”按钮,点击“AddHardware”按钮,点击“OK”,“HardwareSetup”后面的“NoHardware”变成了“ByteBlaster[LPT1]”。
在“Program/Configure”列下的复选框中打钩,点击“Start”即可下载程序。
下载结果如下图所示:
6、【结论】
经过一周的不断努力,从无到有,从简到繁,终于完成了本次试验。
下载运行成功后实验板上K1—K8各复用开关作用如下:
K1是系统的清零开关(K1=1正常工作,K1=0时钟的分、秒全清零);
K2是计时/闹钟的校时开关(K2=0正常工作,K2=1时可以快速校分);
K3是计时/闹钟的校分开关(K3=0正常工作,K3=1时可以快速校分);
K4是系统的使能开关(K4=1正常工作,K4=0时钟保持不变);
K5是闹钟/计时显示切换开关(K5=0时显示计时,K5=1时显示闹钟定时时间);
K6是闹钟使能开关(K6=1闹钟正常工作,K6=0屏蔽闹钟功能)
总结部分:
1【实验中遇到的问题及解决的方法】
■首先是出现了分频结果不正确,8分频、6分频正确的情况下,1000分频出现了问题,检查发现时因为每个模10中进位端的占空比太小,该为Q2端输出则没有问题了
■在设计电路时,一开始所有元件之间都采用连线连接,导致后面电路图混乱而且容易出现交叉导致可能的错误,后来改用了标号连接之后,电路图清爽直观不少,带来了极大方便。
■在进行校时校分的时候发现,关闭校正开关时,已经校正好的数字总是出现错误,经分析才知道原来是机械开关出现了脉冲的冒险,我们经过查阅资料
在每个开关前面用了一个D触发器,从而消除了冒险的影响。
2【实验体会】
这次试验的是在以前数电知识和第一次EDA实验的基础上的,在实验中,我们需要大量查阅回忆以前的知识,同时,QuartusII软件的学习是本次实验的另一大收获,回顾了所学,获得了新知。
在以前C语言程序学习中就接触了自顶向下和模块化功能设计的设计思路,这次EDA实验虽然所用工具不同,但是更深的理解了这一理念。
从实验的一开始,我们就从整体功能分解入手,化繁为简,一步一步的剖析实验的功能和细节,最终完成每一小部分的设计,才能实现整体功能。
虽然本次实验是一个人独立完成的,但是在实验过程中与同学们的交流学习显得格外重要,往往旁人的只言片语会使自己的问题迎刃而解,真可谓当局者迷旁观者清。
实验完成后,我尝试了解了在QuartusII中使用语言进行编程,发现使用VHDL语言可以带来意想不到的简便,虽然可能不太直观,但是理解了之后使用语言会使功能设计更见简单透明,把一些繁琐的工作留给计算机,让我们专注于逻辑功能的编写。
至于本闹钟可是实现的其他功能,比如星期显示等都可以通过相似手法的使用简单实现。
这次实验的成功完成离不开大家的帮助,在此要特别感谢蒋立平老师在实验过程中的悉心教导,在很多重要问题和疑点上给了我们莫大的帮助。
参考文献
(1)《数字逻辑电路》.蒋立平著.南京理工大学出版社
(2)《EDA设计实验指导书》.南京理工大学电子技术中心.2008.1
(3)《电子线路实践教程》.王建新,姜萍.北京:
科学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多功能 数字 设计 EDA 实验 报告