多功能数字钟设计报告+程序+原理图

更新时间:2023-06-10 02:08:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

项目名称:作者姓名:指导教师:年级专业:所在学院:

实验设计报告

多功能数字钟电路设计

提交日期

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

摘要

20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以以数码管为显示器的时钟比指针式的时钟表现出了很大的优势。数码管显示的时间简单明了而且读数快、时间准确显示到秒。而机械式的依赖于机械震荡器,可能会导致误差。

数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。数字钟的精度、稳定度远远超过老式机械钟。在这次设计中,我们采用LED数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,用12MHz的晶振产生振荡脉冲,定时器计数。在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。数字钟以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。

数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。 因此,我们此次设计与制做数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。且由于数字钟包括组合逻辑电路和时叙电路。通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法。

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

目 录

第一章:设计要求 第二章:方案论证 第三章:单元电路设计与计算 第四章:软件设计 第五章:系统测试 第六章:结论 参考文献 附录

1 2 13 20 36 38 39 40

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

第一章:设计要求

1.1 基本要求 1.1.1 时钟功能

设计一个具有时、分、秒计时的数字钟电路,计时采用24小时制。数字钟用6位LED数码管显示时、分、秒的计时值。那么显然分、秒对应的两块LED数码管应分别设计为十进制和六进制以组成实际生活中的六十进制要求。而时对应的两块LED数码管则应当合在一起满足二十四进制的要求。 1.1.2 准确性要求

设计出的时钟电路要确保高精度的要求,每天的误差不得超过±1秒。

1.2 扩展要求 1.2.1 快速校时

设计出的电子钟应当具有快速校准时间的功能。要求能够快速的对时和分进行校准。 1.2.2 整点报时

每当电子钟走到整点时刻时候,能够发出特定的声音讯号来进行整点报时。

1.2.3 闹铃功能

要求能设定起闹时刻,响闹时间为1min,超过1min自动停止;具有人工止闹功能,止闹后不再重新操作,将不再发生起闹。

1.3 自创功能 1.3.1 倒计时

要求电路能够切换为倒计时状态,倒计时的时间可以自行控制,并且能够随时开启计时或者暂停计时。当倒计时为全零时保持不变。此功能不应该对正常的闹钟走时产生影响。

1.3.2 二十四小时计时制与十二小时计时制转换 要求设计电路,能够快速的在二十四小时制和十二小时计时制之间转变,并且在十二小时制状态,设计一定的区分功能,以便于区别是上午还是下午。

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

第二章:方案论证

2.1 数字钟的基本组成

数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路,其基本组成电路图如下所示:

图中,秒脉冲发生器产生秒脉冲,作为图中各个计数器的脉冲信号。分、秒计数器要求设计为六十进制计数器;时计数器则设计为二十四进制计数器。时、分、秒的计时结果分别送入译码器中,经译码器翻译后,共由六个LED数码管显示出结果。因此,使用计数器作为计时电路是可以实现的。本次试验采用的是74LS163计数器。 2.2 计数器

不论想用计数器连接成多少进制的形式,都有两种方案可以进行选择,那就是同步连接方式和异步连接方式。

2.2.1 同步连接方式

同步连接方式就是把所有的计数器的CP端都接上统一的秒脉冲信号,通过控制使能端等方法来实现控制进制的方法。由于计数器都带有使能端,只有使能时后,收到脉冲信号才能进行计时,而非使能的时刻,即使有脉冲信号,也不能计时。因此,通过低位信号来控制高位信号使能端的电位高低,来决定高位信号是否计时,就能够达到扩展技术范围,达到预定进制要求的目的。下图分别为同步六十进制和二十四进制计数器的连接图:

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

2.2.2 异步连接方式

而异步连接方式则是将不同的计数器CP端接上不同的脉冲信号,通常只有最地位的CP端才会直接加上秒脉冲信号,而高位CP端接低位的进位信号作为脉冲信号。此时不论高位还是低位,使能端统一接为高电平使能,当出现低位的进位信号时,高位立即计数一次,这样也能够达到拓展计数范围的目的。下面是异步方式连接的六十进制和二十四进制图:

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

2.2.3 方案比较

根据上面的电路图进行初步比较,不难发现,异步连接方式比同步连接方式连线要简单许多。但是,异步连接相当于一种级联,上一级的信号变化对下一级的输出信号有很大的依赖性,并且很容易受到外接的干扰。也就是说其可靠性则比同步方式差很多。 因此,出于时钟准确度以及后续功能添加的考虑,我决定所有计数器均连接为同步方式。而具体的六十进制和二十四进制的连线方法,将在下一章仔细阐述。

2.3 秒脉冲发生器

2.3.1 振荡电路的选择

可以产生周期性信号的振荡电路有很多种,如RC振荡器、LC振荡器、石英晶体振荡器、集成运放组成的非正弦波发生器、集成门电路构成的非正弦波振荡电路,以及利用555集成定时器组成的波形发生电路等。

但是,在实验基本要求中,有着要实现每天误差不超过±1秒这项指标的要求,平均到每一秒钟,精确度要求大致在10-5次方数量级。这就决定了不能随便使用其他方法的振荡电路,而只能使用精度最高的以晶体振荡器作参考的振荡电路。原因是,晶振电路的振荡频率几乎与外界电路没有关系,而只与晶体本身的形状、密度等状态相关联,因此晶振电路能够有效地屏蔽掉外界干扰,能够达到实验中对精度的要求。常见的晶体振荡器及低频振荡电路如下图所示:

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

2.3.2 分频电路

直接用晶体振荡器合成的电路频率很高,没法达到秒脉冲的要求,因此还需要分频电路来控制频率。分频电路,其实与计数电路的原理几乎完全形同。观察下面的基本计数器的波形图就可以发现,计数器的第n位,就能够将原本的脉冲波形将为原来的2的n次方分之一。这就是分频电路的基本原理。

本次试验选择CD4060作为分频器使用,它是一个14级二进制计数器,配合我们选择的晶振频率最低的晶振电路,刚好能够将脉冲波形最终变为2Hz,此后只需要在可编程逻辑器件中再进行二分之一分频既能够达到电路的要求。基本的分频电路图如下所示:

其具体设计方案会在下一章中详细讨论。

2.4 校时电路

作为一个时钟,显然应当具有校时的功能。由于时钟电路中,采用的是计数器来进行计时,那么利用技术其引脚的功能,可以选择采用快速脉冲法和置入数据法两种方法来进行时间的调整。

(注:其中每一种方法里面,同步连接方式和异步连接方式又会有一定的差别,由于上面已经确定选择用同步连接方式,因此下面都只会讨论同步连接方式中的电路内容。)

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

2.4.1 快速脉冲法

快速脉冲法,顾名思义,就是给时和分的计数器的CP端加上一个快速脉冲。由于设计的时钟电路是用计数器对脉冲计数来表示时间的进展,因此,如果加上一个比平时快得多的CP脉冲,那么就能够让它们以比平时快得多的速度进行计时,最终达到时间调整的目的。其基本电路图如下所示:

2.4.2 置入数据法

而置入数据法,则是利用计数器本身自带的置数端,利用外加的数据拨码盘,将预先想调整的时间拨出,当计数器的置数端收到相应的信号之后,就把预定时间置入电路当中,从而一次性改变电路显示的时间,也能达到时间调整的目的。其基本电路图如下所示:

2.4.3 方案选择

上面两种方案可以说各有利弊:置入数据法使得调整时间的过程比较简单和直接,做到了用尽可能短的时间来调整,但是由于置入数据需要用拨码开关,因此要把需要的时间转换为二进制输入,而且电路连接也十分复杂。快速脉冲法连接简单,并且校时的方法也比较直观,通过两个按钮,就能直接改变时或者分的数值。缺点是校时过程比较费时,没有置入数据法那么直接。权衡利弊,最终我选择了快速脉冲法来进行校时。

2.5 整点报时电路

2.5.1 连续五声报时电路

连续五声报时电路,即希望在整点到来之前,能够发出五声的迅响信号,在最后一次

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

迅响信号结束的一瞬间,即为整点的时刻。用波形图来表示即如下图:

由波形图可以看出,控制信号2的一次脉冲响应,应当能够引起报时电路的一些列响应,毫无疑问需要用到触发器来实现。当控制信号2使得触发器出发后,报时信号随着秒脉冲的进行而开始了每秒钟的报时。当5声报时结束后,达到整点时刻,也就是控制信号1清零的时刻,此时只需要用控制信号一对触发器清零,就可以停止报时信号的响应,最终达到五声报时的目的,其连接电路图如下所示:

2.5.2 一声报时电路

一声报时电路原理比较简单,只需要在整点的前后一秒中,发出一次迅响信号即可。只需要将秒向分的进位信号以及分向时的进位信号用一个与门连接在一起,就代表了整点的信号。将这个信号作为蜂鸣器的控制信号,就可以方便的实现一声报时电路。其基本电路图如下所示:

2.5.3 方案选择

关于整点报时电路的选择,并没有特别大的影响,其实选择哪种方案对与电子钟的功

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

能都没有什么太大的改变。因此我主要是从实际出发,感觉整点报时如果连续响五下的话,时间长了必定会让人感到厌倦,特别是晚上会影响人的休息。普通的电子表也全都是一次的整点报时。因此最终我选择的是一声整点报时的方案。

2.6 闹钟电路

作为一个多功能的数字钟,闹钟应当是一个必备的功能。根据一般闹钟的原理,应当能够控制闹钟是开还是关,同时要能够准确的设定闹钟的时间,闹钟走到这一时刻时会发出持续一分钟的信号,时间过后,闹钟应当自动停止报时。

根据上述的要求,首先闹钟应当有一个使能端来控制,就是闹钟的总开关。同时,应当有一个十六位的拨码开关用来输入想要预定的时间(八位设定时,八位设定分)。而在电路内部,无疑就要有一个十六位的数值比较器,用来检测时间是否走到了预定的时间,从而决定是否进行报时。其基本电路如下:

注:图中秒脉冲的作用是使蜂鸣器能够每秒迅响一下,而不是一直不停的鸣响,这样效果更好,不会让人感到厌烦。

2.7 译码器与显示电路

上面已经阐述了计时电路的原理,用了六只计数器来实现。但是,每只计数器只有四个输出端,且输出端的内容是用二进制的形式来代表每一位当前的时间信息。而作为一个数字钟,自然希望能够直接方便的使用十进制方式,用LED数码管来输出。这当然要考虑计数器与数码管之间的连接。

2.7.1 译码器的工作原理

所谓译码器,就是将一种编码编译成为另一种特定编码的器件。其分类多种多样,其中有一种是专门用于显示电路的,称为显示译码器,其译码结果能够作为LED等显示器件使用,使显示器件显示出特定的结果。

但是,并非所有的显示译码器都能够直接作为显示器件的输入。因为显示器件显然是需要一定的功率驱动的,如果译码器本身没有驱动能力,虽然输出结果正确,但是没办法让显示器件显示出想要的结果,这就需要再加上特定的驱动器,才能够最终连接显示器显示结果。

为了简便起见,本次试验使用自带驱动器的74LS247显示译码器。74LS247是一种中规模集成译码器电路,它的输入是8421BCD码,输出可用于驱动7段LED共阳极数码管。其基本的引脚结构如下所示:

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

2.7.2 LED数码显示器

LED数码显示器的内外结构如下图所示:

上面两图就是共阳极LED显示管的结构图。其内部有7段发光二极管,它们的公共端接上阳极,那么当某一路接上低电平时,对应的二极管就能够发光。这就是LED显示管的原理。而共阴极显示管的内部结构基本相同,只是方向变变而已。

2.7.3 动态显示法

所谓动态显示法,其实是一种利用人的视觉暂留效果,进行轮流显示的一种显示方法。在整个电路中,虽然有六个计数器以及分别与之对应的六个LED显示管,但是只使用一个74LS247显示译码器进行译码。其基本思想就是用一个数据选择器轮流选择相应的计数器结果送入译码器译码,然后再将译码结果送入相应的LED显示管显示,不停地循环。当循环次数足够快时,由于人眼的视觉暂留效果,就能使得六位结果清晰地显示出来。其基本电路图如下所示:

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

2.7.4 静态显示法

所谓静态显示法,就是每一个计数器后面,连接一个74LS247显示译码器,此后再连接一个LED显示译码管。这种连接方法应当不用多做解释,是最基本的连接方法。电路图如下所示:

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

2.7.5 方案比较

这两种方法也是各有利弊。动态法的内部连接更加复杂,但是大量节约了外部零件,有利于节约成本。静态法则耗费了外部零件,使得电路简单易懂。另一方面,在使用寿命上,由于动态法采取了频闪的方法,因此不论是译码器还是LED显示管的使用寿命都会大幅度削减,因此,我最终选择了使用静态显示电路。

2.8 二十四小时制与十二小时制的转换

这个功能实现起来其实比较容易,在转变过程中,只有小时的8位数据可能会生一定的改变,而分钟和秒钟则完全不需要变化。因此,关于这个功能的实现方法,基本的设计思路就是首先判断小时的八位数据化为十进制是否超过13,当超过13时,就要减去12,然后再次输出。

但是,考虑到前面的电路我都是用电路图连接方式搭成的,因此虽然原理上简单,但实际上想直接减去这个12并不是那么容易。中间需要将八位独立的数据转化为10进制,减去后还要再次化为8个独立数据。因此,不如直接画卡诺图来进行逻辑运算。当确定了各个位的逻辑关系之后,用Quartus2中的Block tool功能,画出一个电路,设置输入端和输出端口后,用VHDL语言来实现。具体方法见下一章。

2.9 倒计时电路

倒计时功能首先需要的是一个置数端,需要使用者能够方便的将想要的倒计时时间输入到电路当中。为了节省元器件,我将闹钟电路中的16位拨码开关共用,同样也可以作为倒计时的数据输入端。同时,倒计时一般比较精确,因此这16位拨码开关用来控制分钟、和秒钟的输入,也就是说,最大的倒计时间为59分59秒。

其次,要考虑的是如何在倒计时的过程中不影响正常的数字钟计时,并且,只有一个LED数码管显示屏,要求能够在正常显示时间和倒计时之间切换。我的做法是在最终数据输出之前,加一个数据选择器,能够通过控制开关,对正常走时的输出端和倒计时的输出端进行选择,这样,及解决了二者互不影响的问题,同时能够方便的进行切换。至于数据选择器,显然需要在很多的位之间进行选择,用市场上通用的原件肯定要用很多块拼接才能够实现,因此,不如使用Block tool功能,自己用语言来编写。

最后,就是关于倒计时模块的主体部分——可逆计数器。由于市场上的倒计时计数器使用起来已经很方便,因此就不必自己来编写了。我选择的是集成可逆计数器74LS192,其电路图及功能表如下图所示:

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

与加法计数器的不同在于,加法计数器在遇到进位时刻,可以通过清零方式来进行处理,但是加法计数器显然是不行的,只能通过置数端来进行。也就是说,除了刚开始时候,由用户控制置入初始数据之外,还需要连线,使得作为秒钟的减法计数器在到达全0的时候,令分钟位减一,同时其自身能够自动置数为59秒。

我设计的实现方案是:首先,在用户置数阶段,会一个专门的按钮,来开启16位拨动开关的置数。而用户置数阶段过后,此按钮弹起,将16位拨动开关锁住,不论其值是什么,到达减法计数器的时候都为0,电路如下所示:

图中x即为控制端

此后,就可以在减法计数器减为0的时候,更改特定的几位数据,使之成为59,同时开启置数状态即可。因此,一个60进制减法计数器电路应如下图:

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

第三章:单元电路设计与计算

3.1 计数器电路

前面已经分析,时钟电路需要使用计数器连接为两个六十进制和一个二十四进制电路。因此,下面分别对于两种电路的连接方案进行分析。

3.1.1 六十进制计数器

由于实验中所用的计数器74LS163的最大计数范围是16进制,两片计数器合在一起最大计数范围是256,因此不论是六十进制还是二十四进制都需要用两片LS163才能满足要求。

对于六十进制计数器,同时要求LED数码管能够准确的显示从0到59的数据,那么显然两片LS163,低位那一片应当连接成十进制计数,高位那一片应当连接成六进制计数。

低位的九进制计数,可以采用清零法来实现。由于是同步清零方式,因此在计数器输出1001时,就要做好清零的准备,当下一个脉冲上升沿到来的时候,使得计数器清零,就能够实现从0到9的十进制计数。因此,连接好的电路图应如下所示:

同理对于高位的六进制,需要在出现0110的前一时刻准备好清零即可。但是要注意的是,因为采用的是同步连接方式,因此倘若像之前那样直接在0101时刻做好清零准备,那么计时器计时到51的瞬间就会发生高位清零,这样显然是错误的结果。正确的方法应当是高位和地位同时对高位清零端进行控制,在电路计数到59的瞬间做好清零准备,此后再收到一个秒脉冲,同时发生高位和低位的清零,就能够达到想要的结果了。因此,六十进制计数器电路图如下:

上图的电路,是秒计时的六十进制计数器连接,而分计数的计时器,由于每一次变化

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

都相当于扩大了六十倍,因此,除了上述基本的连线之外,使能端都要加上秒计数器的进位信号进行控制。原本直接接电源的直接接上秒计数器进位信号;原本就是由信号控制的,应添加与门,与秒计数器进位信号相与,才能达到扩大六十倍的效果。

六十进制计数器的连接和仿真结果如下图所示:

3.1.2 二十四进制计数器

其基本原理同六十进制计数器基本相同,也都是采用清零法来实现的。唯一不同的是,由于显示时间的需要,因此二十四小时计数器不能采用整循环来计数,低位仍然需要采用十进制计数,高位前两次循环可以进行到底,但当第三次循环,即高位为二时,低位计数到三,就要发生整体的清零,因此接线会更复杂一点。

首先将低位仍然连接成十进制的形式,同时,根据六十进制计数器里面的分析过程,当高位和低位达到23时,并且分、秒计数器都达到59的一瞬间,高位和低位都要做好清零的准备。因此,不仅要将分计数器的进位信号引入,并且低位的十进制计数器也需要做出一点改变,将清零端的非门改变成或非门来应对两种清零状态的需要。其最终的连接电路图如下:

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

注:其中的秒脉冲信号与前面的分、秒计数器都采用相同的脉冲信号,而时使能端则是分计数器提供的进位信号。

二十四进制电路的连接以及仿真结果如下图所示:

3.2 校时电路

在上一章里面,我已经确定了要选择快速脉冲法来进行电路的校时。同时,为了方便起见,我希望能有两个按钮开关,来分别控制时和分计数器,能够使它们分别快速校时。

又根据前面的电路连接情况不难发现,在同步连接方式下,让高位计数器计数缓慢的原因在于其使能端是否处于使能状态。倘若使能端总是处于使能状态,那么高位的计数器也能够像低位计数器一样每一秒都会发生计数。从这个角度出发,不难想出,首先让按钮开关按下时能够产生一个高电位,然后用连线将按钮开关与原本时和分计数器的是能控制端用一个或门连接起来。这样既不会影响到原本的计数器技术状态,又能够在按下开关的时候快速的调整时间。

3.3 整点报时

上一章中已经决定使用一次迅响信号来进行报时,报时电路的设计也非常简便,只需要确定整点到来的那一个瞬间就好了。

关于整点到来的位置确定,最简便的方法就是利用计时电路中的进位端。由于是同步连接方式,每当到达59秒那一刻时,秒计数器就会产生向分计数器的高电平进位信号;而到达59分时,分计数器也会产生向时计数器的高电平进位信号。因此,将秒和分的进位信号用一个与门连接起来,其合成信号就是每一个小时的59分59秒,即为整点时刻,可以控制蜂鸣器进行整点报时。

其整点报时的响时结果仿真如下:

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

3.4 闹钟电路

根据前面提到的闹钟持续一分钟的报时要求,可以知道,每次设定闹钟只需要设定时和分的时间,当到达这一特定分钟时,进行报时。

因此,首先需要的是一个十六位的拨码开关,用来输入小时和分钟的时间,到数字钟走时达此时间时就会开启闹钟响时。因此,根据原理判断,肯定需要一个三十二位的数值比较器,来判断到底走时时间是否与闹钟设定时间相同。因为实际的数值比较器的位数都不能够达到如此之高,因此,我就自己画了一个数值比较器,其图如下所示:

关于这个数值比较器内部的程序书写,我将在下一章里面详细解释。其功能,就是用A0到A15口接收时钟电路的小时和分钟数位,用B0到B15接收拨动开关提供的闹钟数位信息。当这两组信息按位相比较完全相同时,输出端Z为高电平,控制蜂鸣器响时。仿真结果如同下图所示:

3.6 倒计时电路

3.6.1 主体计数部分

在上一章里面,我已经对倒计时电路的实现方法做了详细的说明,这一章里,就着重分析一下电路的具体链接。

由于我所用到的74LS192,本身就是一个十进制可逆计数器,也就是说,在没有其他干扰的情况下计数,就能够实现十进制。因此,倒计时的秒钟和分钟的个位都无需什么特别的连接,只需要让它正常倒计时即可。而十位方面,则需要将原本的十进制改变为六进制。

观察74LS192的功能表可以发现,它是一个异步置数的逻辑器件,因此,需要在电路由0000变成1001的一瞬间,发生置数,使之变成0101即可。同时,我前面也已经提到,我已经用了一些列与门将拨码开关的置数端锁住,因此,中途产生置数状态时,不加干涉的数位会自动清零。那么我只需要把第一位和第三位设置为1,就能够达到所需的结果了。连接好的六进制减法计数器如下图所示:

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

把上面的电路图作为高位,再把另一片74LS192作为地位,并且将低位的借位输出端0 1 2 3 D)连接到高位的CPU作为使能端的控制,就能够最终实现啊60进制的减法计数器了。并且,当四片计数器倒计时都达到0时,应当使CPD由原来的时钟脉冲变成高电平1,这样就能够使计数器保持0不变,不至于再次从0变成59分59秒的状态。最终电路图及仿真结果如下所示:

3.6.2 切换LED显示器

由于只有一块LED显示器,因此显然不能够同时显示倒计时和正常的数字钟计数,因

此还需要一个显示器切换模块。其工作原理就是一个数据选择器,输入端包括正常数字钟

利用器件EPM7128SLC84-15,用软件Quartus2编程,完成一个多功能数字钟。拥有整点报时、快速校时、倒计时、闹钟、12小时24小时计时制等功能。内含所有设计过程以及程序、原理图

的24位数据和倒计时的16位数据,还要有几个控制端作为用户选择。而其输出端,则就是24位数据输出,这24位数据作为最终输出数据,送到LED显示器上,使其做出相应的显示。

如此庞大的一个数据选择器,用标准逻辑器件肯定是不容易实现的,因此我采用Block tool功能,绘制一个数据选择器如下图所示:

至于其内部的程序编写,则十分的简单。只需要判断当正常走时控制端为高电平时,输出数据选择计时电路的输入数据;当倒计时控制端为高电平时,输出数据选择倒计时电路的输入数据即可。具体程序在下一章列出。

3.7 十二进制计时与二十四进制计时的转换

前面已经分析了,对于我这样连电路图的方法,想要达成十二进制计时与二十四进制计时的转变,需要画出卡诺图,按位来进行转变,因此先要画卡诺图。

首先,当小时的高位为0001时,小时的第四位应发生如下变换:

不难发现,H3在变换后始终为0,因此只需做出H2H1H0的卡诺图即可。 做卡诺图如下:

本文来源:https://www.bwwdw.com/article/22t1.html

Top