文档库 最新最全的文档下载
当前位置:文档库 › 多功能数字钟设计EDA实验报告

多功能数字钟设计EDA实验报告

多功能数字钟设计EDA实验报告
多功能数字钟设计EDA实验报告

EDA (Ⅱ)实验报告多功能数字钟的设计

07 zh

2010-5-25

摘要:

本实验是设计一个多功能数字钟。根据实验要求设计了基本的二十四小时计时和整点报时电路,并且数码管部分采用了动态显示。同时根据提高部分要求,将一小时秒表的功能集成到了数字钟里。实验过程采用自顶向下的设计思想,大量采用了模块操作。

Summary:

The purpose of the EDA experiment is to design a multi-funtiondigital clock. It's according to the experiment request that the Ihave designed a 24 hours clock with the function telling time at alittle bit whole,and figurestube part adopt the dynamic the mean time to satisty the exalation of thecapability ,a stop-watch mold piece is integrated in the thought of getting down from crest instructs the experimentprocess,whose feature is the adoption of the mold pieces.

关键词:

数字钟动态显示模块秒表

Key words:

Digital clock dymanic state manifestation mold pieces stop-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驱动蜂鸣器。

通过对报时时间各个状态位进行分析,可对报告时间进行化简,作卡诺图:

具体逻辑构成图如下:

④动态译码显示模块

此模块是由显示译码器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&Pin Option…”选择标签页“Congiguration”中的“Use configuration device”选项选择EPCS4选项,选择“Unused Pins”标签页将未用引脚设为高阻输入,再进行一次全程编译,下载前的准备工作完成。点击工具栏上的按钮,点击“Hardware Setup”按钮,点击“Add Hardware”按钮,点击“OK”,“Hardware Setup”后面的“No Hardware”变成了“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设计实验指导书》.南京理工大学电子技术中心 . (3)《电子线路实践教程》.王建新,姜萍.北京:科学出版社

相关文档