简易数字钟设计
简易数字钟设计
一、摘要
信息时代,时间观念深入人心,所以掌握数字钟的设计具有一定的时代意义,并且使用Multisim进行分立元件设计数字钟,可以大大提升个人数字电路的素养。
设计思路是从上至下,先进行数字钟整体框架的设计,考虑各个子芯片的预留端口,再逐个设计各个子电路模块。最终完成了时钟显示,调时,闹钟,定点报时以及万年历的功能。并且总的控制点预留了新功能的接入口,这样子就可以十分方便的进行新功能的加入。
目录
二、前期准备
1、数电知识的复习
门电路,计数器,触发器,555触发器以及卡诺图等相关知识。
2、Multisim相关知识的学习
除基本操作之外,还应该学习两个设计大型电路的相关知识。
(1)总线技术:
图2-2-1 总线功能选择
A、 点击总线按钮,然后进行绘制,便可以得到总线。
图2-2-2 总线图样。
B、 双击总线进行总线端口的添加:
图2-2-3 总线端口添加图
C、 单击添加后,可以进行端口的添加,有2种方式,第一种便是一次只能加一种端口,第二种是可以加入前缀相同,但是标号不同的多个端口
图2-2-4 总线端口方式二添加图
D、 之后选择连线确认即可
图2-2-5 总线连线图
(2)子电路技术:
A、新建一个子模块
图2-3-1 子电路添加方法图示
B、添加管脚
图2-3-2 子电路管脚添加图示
三、电路总设计思路
图3-1 电路总设计思路图示
首先考虑数字钟所有的功能:有时钟显示,调时,秒表,万年历,定点报时和闹钟一共6个功能,所以切换电路要预留6个以上的功能切换项。(切换键设为“=”)
其次,对于数字钟必须要有精确的秒发生器作为基础,由于Multisim本身软件的刷新频率问题,所以只好使用信号发生器作为数字钟的秒发生器。
最后,考虑显示功能,由于只能使用4个数码管,所以需要一个显示切换功能,然后再接入数码管。(切换键设为“E”)。
四、子电路设计
1、控制电路(切换功能电路)
图4-1-1 控制电路搭建图
(1)使用的是CD4017十路十节拍顺序脉冲发生器,由于暂时只有6个功能,所以改接为六路六节拍顺序脉冲发生器。这样还可以方便新功能的扩展。
(2)通过按下功能切换按钮(“=”)进行功能的选择。
(3)功能端口如下:
输出端 |
功能 |
Q0 |
时钟显示 |
Q1 |
时钟调时 |
Q2 |
秒表 |
Q3 |
闹钟 |
Q4 |
万年历 |
Q5 |
定点报时开关 |
表4-1-1 切换电路端口功能表
2、基本计数功能的实现:
(1)总体构想
图4-2-1 基本计数功能总体构想
首先,根据现实因素,采用8421BCD码进行编制,然后按照生活习惯分离成7个计数片,采用片内同步,片间异步的设计方法。
其次,星期计数有两种模式,模式一为正常时钟计数所使用的,即24小时后星期数进一,模式二为万年历查询模式,即需要查询相应日期对应的星期时所使用的模式。
最后,预留出调时所需要的端口。
(2)秒、分和时计数的设计:
图4-2-2-1 秒(分)计数器的设计
图4-2-2-2 秒(分)计数器封装芯片图
端口 |
功能 |
Q7-Q0 |
数值输出,用于接入到数码管 |
CTEN |
片选开关 |
CVON |
片内计数器级联开关 |
Co |
进位输出 |
GND |
接地端 |
CLOCK0-1 |
片内计数器时钟端 |
表4-2-2-1 秒(分)计数器封装芯片功能表
需要注意的地方是:
A、由于调时功能需要每一位都进行调节,所以必须预留每一位的时钟端进行调时。
B、由于片内为了避免竞争冒险而使用同步级联,所以必须有级联的开关端口(CVON)。
C、 由于时计数器和分(秒)计数器只是进制的不同,所以不再详细叙述时计数器电路图。
(3)年计数器的设计
同样采用片内同步级联的设计思路,预留调时所需的CVON和CLOCK0-3端口。
图4-2-3-1 年计数器的级联电路图
为了日计数的正确需要判断闰年的预留端口。
A、 计算闰年的方法为:能被4整除且不能被100整除与能被400整除的是闰年。
B、 考虑使用逻辑电路来实现此逻辑。
① 被400整除可以拆成被4且被100整除,所以需要实现的功能为能被4和能被100整除的功能的判断。
② 能被100整除,只要满足Q0到Q7都为0就可以被100整除。
③ 能被4整除的实现:
首先观察能被4整除的数字规律,总结为:
定义一个数字的十位和各位组成的数字为AB,Y=1定义为能被4整除,Y=0不可以。则有
A |
B |
Y |
奇数 |
2,6 |
1 |
偶数 |
0,4,8 |
1 |
其他 |
0 |
表4-2-3-1 能被4整除的规律
然后列真值表,化简卡诺图,得到的控制电路如下:
图4-2-3-2 能被4整除电路图
③ 判断能被400整除,首先由能被100整除,且设千位和百位为A和B,同样符合上述规律时,即可被400整除。
年计数器总电路如下:
图4-2-3-3 年计数器总电路图和芯片封装图
年计数器功能表如下
端口 |
功能 |
Q15-Q0 |
数值输出,用于接入到数码管 |
CTEN |
片选开关 |
CVON |
片内计数器级联开关 |
Vcc |
电源端 |
GND |
接地端 |
CLOCK0-3 |
片内计数器时钟端 |
Leapyear |
闰年判断端口 |
表4-2-3-2 年计数功能表
(4)月计数器的设计
同样采用片内同步级联的设计思路,预留调时所需的CVON和CLOCK0-1端口。
图4-2-4-1 月计数器的级联电路图
为了日计数的正确需要判断拥有不同月份天数的预留端口。
A、 统计不同月份天数:
月份 |
天数 |
1、3、5、7、8、10、12 |
31 |
4、6、9、11 |
30 |
2 |
闰年为29,平年为28 |
表4-2-4-1 月份天数统计表
B、 对月份采用8421BCD码进行编制,通过列真值表,卡诺图化简,得到控制逻辑电路为:
图4-2-4-2 月份分类电路图
月计数器总电路如下:
图4-2-4-3 月计数器总电路图和芯片封装图
月计数器功能表如下:
端口 |
功能 |
Q17-Q0 |
数值输出,用于接入到数码管 |
CTEN |
片选开关 |
CVON |
片内计数器级联开关 |
Vcc |
电源端 |
GND |
接地端 |
CLOCK0-3 |
片内计数器时钟端 |
Y31 |
天数为31的月份输出为1 |
Y30 |
天数为30的月份输出为1 |
Y2829 |
天数为28、29的月份输出为1 |
表4-2-4-2 月计数器统计表
(5)日计数器的设计
日计数器设计思路一样是级联,再但是由于每个月的天数不同,所以我们需要使用预留的闰年,Y31,Y30和Y2829端口进行置数。
通过列真值表,卡诺图化简得下面电路设计图:
图4-2-5 日计数器电路设计图
(6)星期计数的设计:
图4-2-6 星期计数电路设计图
先设计一个8421BCD的加计数器,选0到6作为一个循环,这是为了后面的万年历查询方便。
(7)基本计数功能总电路:
图4-2-7 基本计数功能总电路
注意的地方是,如何切换正常计数和调时,我们需要断开原来片选端输入的时钟,改为手动输入时钟。因此,加级联端需要加入一个级联开关,这样子就可以断开原来异步级联的片,进行手动调时。
3、时钟调时设计
(1)思路总括:
图4-3-1 时钟调时的设计思路
首先需要做一个11位的环形计数器对应年、月、日、星期、时、分和秒的每一位,当某一位为“1”时,便对其进行调时。
其次,便是加入手动调时的方法,需要引入一个按钮“W”,按一下计数加一。
(2)环形计数器的实现:
使用四片74194四位移位寄存器构成11位环形移位寄存器。电路图如下:
图4-3-2-1 11位环形移位寄存器电路设计:
如何使之一开始有一个且只有一个“1”进入有效环形是一个关键问题。这里提供2钟解决方法:
A、首先由74194的功能表得到,当S0=1,S1=1时,并行输入,当S0=1,S0=0时,向右移动。所以我们使用一个积分电路,使得在切换到这个功能的时候产生一个短暂的脉冲,进行并行输入。
图4-3-2-2 积分电路设计:
B、另一种方法是使用一个RS触发器。
图4-3-2-3 采用RS触发器实现并行输入设计:
通过Vcc在供电的瞬间使得R端口产生一个1-0的越变,这样子,置入一个有效数字“1”,再进入右移功能。
(3)手动调时功能
当CTEN(功能切换输入)为“0”时,表示没有进入此功能,Q0输出为时钟信号。
当CTEN(功能切换输入)为’’1’’时,表示进入手动调试功能,Q0输出的是手动调时信号。在此情况下,若D0(环形移位寄存器输入)为’’1’’时,则允许按钮“W”产生的脉冲通过Q0输出,否则只能输出为低电平,即无法调时。
其余位也是相同的连接方法。
图4-3-3 手动调时
(4)手动调时功能子芯片连接
图4-3-4 手动调时功能子芯片连接图
4、秒表功能设计
(1)设计总思路
首先根据要求“能够为马拉松长跑计时”,所以需要能够计数到小时以上,然后选择计数器设计小时-分钟-秒钟设计计数器。
其次,需要预留一个CLR和一个STOP的端口进行秒表的清零和暂停。
图4-4-1 秒表设计总思路
(2)电路设计:
图4-4-2 秒表电路设计图
5、定点报时功能设计
(1)设计思路:
图4-5-1 定点报时功能设计图
根据要求“需要报时的时间五短一长,不需要报时的时间不报时”,所以需要进入时钟的一些输出端进行一些逻辑判断。做出在需要报时的时段59分55秒到59秒输出一段高电平的一个输出端,还有在00分00秒输出一个高电平。
然后将其输入到2个不同频率的蜂鸣器中,就可以实现定点报时的功能。
(2)电路设计图:
图4-5-2 定点报时电路搭接图
其中CTEN为功能输入,左边的端口为时钟对应输入,Switch表示定点报时功能的开关,CIO表示秒表的进位端。
6、闹钟功能设计
(1)设计思路:
图4-6-1 闹钟功能设计思路
首先需要搭建一个计数器能够储存设定的报闹时间,做出一个比较电路进行比较,如果相同的话构建一个闹钟响一分钟。
(2)计数功能搭建:
图4-6-2 计数功能搭建图
跟基础的计数器级联相同,但是做了一个小改变,就是在调节计数时,当时的十位为2时,个位只是4进制计数器。
(3)比较电路搭建:
图4-6-3 比较电路搭建
采用74LS85四位比较器芯片,将时钟和设定的时间进行比较,如果相同就输出为“1”,不同就输出为“0”。
(4)调整设定时间电路设计:
图4-6-4 设定时间电路设计
与调整始终时间的电路相同,只不过将三态门构建的时钟切换控制改成了用与门来进行搭建的。
7、万年历查询功能:
(1)思路设计:
图4-7-1 万年历查询星期设计思路
首先,再每次进入万年历查询星期功能时,需要把当前日期导入万年历子芯片,考虑的方法就是在没有进入此功能时,直接置数,一但进入此功能关闭置数端功能即可。
其次,查询分为3钟情况,调节日,调节月,调节年,在进行对应调节的时候,星期要进行相应的改变。
最后,要加入显示功能的匹配输出口。
(2)年查询设计:
首先搭建一个年计数器,直接重用原来在时钟使用的年计数器,然后以加一年为例子:
A、 分析情况:
情况 |
结果 |
闰年的3月1号之后到平年的对应日期 |
星期加一 |
闰年的3月1号之前到平年的对应日期 |
星期加二 |
平年的3月1号之后到闰年的对应日期 |
星期加二 |
平年的3月1号之前到闰年的对应日期 |
星期加一 |
平年到平年对应的日期 |
星期加一 |
表4-7-2 年对应星期规律总结
B、 通过卡诺图化简,可以得到电路设计为:
图4-7-2 年对应星期设计电路图
即使用加计器,通过控制电路,控制在不同情况下,B4B3B2B1端口对应的是数值。
(3)月对应日期查询
首先搭建一个月计数器,直接重用原来在时钟使用的月计数器,然后以加一个月为例子:
A、 分析情况:
情况 |
结果 |
上个月是31天的 |
加3天 |
上个月是30天的 |
加2天 |
上个月是29天的 |
加1天 |
上个月是28天的 |
加0天 |
从12月跳到1月(同31天) |
加3天 |
表4-7-3 月对应星期规律总结
B、 通过卡诺图化简,可以得到电路设计如下:
图4-7-3 月对应星期查询电路查询设计
(4)日对应日期查询:
首先搭建一个日计数器,直接重用原来在时钟使用的日计数器,然后以加一个日为例子:
A、 分析情况:
分类 |
情况 |
结果 |
从31号跳到1号 |
上个月是31天的 |
加2天 |
上个月是30天的 |
加1天 |
|
上个月是29天的 |
加0天 |
|
上个月是28天的 |
加6天 |
|
其他 |
加一天 |
加1天 |
表4-7-4 日对应星期查询规律总结
B、 通过卡诺图化简可得电路设计图如下:
图4-7-4 日对应星期查询电路设计图
(5)3种查询方式的切换:
首先同调时电路一样,需要有相应的调整切换按钮,并且还需要选择运算输出的结果:
图4-7-5 运算输出的结果电路设计图
选择输出的数值,且如果超过6的时候,进行减7的操作。保证输出的星期都在0到6(即星期一到星期日之中)。
(6)阀值开关:
图4-7-6 阀值开关设计图
假如不加入一个阀值开关,就会形成一个闭环,变成一个环形计数器,但是我们可以通过假如一个计数器来做一个开关,当置数端打开时,才会进行置数输出,否则不会继续输出。而置数端的开启则是由调时按钮触发的脉冲得到的。
8、显示功能设计
图4-8-1 显示功能预览图
(1)显示功能及设计思路
图4-7-1-2 显示功能介绍图
A、 左上角:表示闹钟和定点报时的开关,灯亮表示有开,否则则没有打开。
B、 上方:表示在时钟显示和调时功能下,数码管所显示的内容是:
1:表示分和秒
2:表示时和分
3:表示月和日
4:表示年和月
C、 右边:表示功能选择,哪一个灯亮说明在哪一个功能下。
D、 中间:数显,直接显示数字
E、 下方:星期输出,星期几就是哪一个灯亮
(2)切换显示功能
A:分析:
由于只有4个数码管,所以必须进行数据的选择输出,显而易见应该采用数据选择器来完成,更好的是可以采用74AS157N进行数据选择。
B:以年月日时分秒的切换作为例子:
图4-7-2 年月日时分秒功能选择输出
左边的方框:又一个顺序脉冲发生器构成,当按下按钮时会进行不同路脉冲的输出。我们通过不同路卖出的输出,进行对数据选择控制端的编程。
上面的方框:三态门,控制端为相应功能切换电路使能,表示只有在当前功能时,才会输出这个芯片内的数据,意味着每个需要接数码管的子电路都需要有这个电路。
数据搭建的选择电路:主要是使用顺序脉冲发生器的输出进行编程,对数据选择器进行编程,这样子的话可以选择输出相应的所需值。
(3)调时位闪烁功能:
图4-7-3 调时位闪烁功能电路设计图
A、 首先判断需要闪烁的位要满足的条件:
① 必须在当前显示页
② 调时所用的顺序脉冲发生器输出端对应有效
③ 进入调时功能选项
B、 因此,分块完成对应功能
从下往上分别为第1,2,3,4模块
模块一:对应A所提的功能项所设计的逻辑电路来作为模块二的控制端
模块二:当输入的控制端为1,则输出闪烁信号,否则输出不闪烁信号(接地)。
模块三:当在时钟显示功能时无论如何不闪烁,只有在调试功能下才闪烁。
模块四:只有当进入此功能时,才会有输出。
五、心得体会
1、更深刻更熟练的掌握数电技术进行设计,熟练掌握各种基本电路,比如说计数器,触发器,寄存器,555以及单稳多谐等等知识的总和运用。
2、巧妙使用微积分电路,可以造出一个所需的脉冲,化简电路。
3、所有的仿真都忽略了实际器件的参数,其实很多地方需要加入电阻,电容,这样子才可以使电路正常工作,例如七段数码管,需要在输入端口加入电阻,否则会发生闪烁不同步的问题。
4、Multisim软件的局限性很大,刷新频率不够大,每次改变都要完全遍历数组,如此不科学的方法实在让大型电路的设计难以进行。但是在我们没有办法改变规则的情况下,只好自己做出妥协:
(1)每个子电路都在一个新的设计中设计,这样子不会产生连线卡顿的问题。
(2)当出现逻辑功能对却没有产生对应的效果,例如进位,这样的时候是因为器件的参数没匹配,但是Multisim不会进行报错提示,需要我们自己进行解决,一种是加入电阻电容使之匹配,另一种方法是加入探针,它会进行自适配。
(3)在进行端口连接时,一次性尽量连接多个口,因为遍历一次数组就可以将所有的加入。所以必须如此。
5、设计电路的时候最好先构思,从上而下先宏观布局,从下而上修改布局。然后反复几遍,确认思路可行之时,开始从基础搭起,预留端口。做好备注。
6、电路设计是一件耗时的事情,需要大家一起讨论,每个人的想法都不同,大家讨论,互相改进,最后就会使得效率提高。