数字秒表的设计数字秒表的设计数字秒表的设计数字秒表的设计.docx
《数字秒表的设计数字秒表的设计数字秒表的设计数字秒表的设计.docx》由会员分享,可在线阅读,更多相关《数字秒表的设计数字秒表的设计数字秒表的设计数字秒表的设计.docx(21页珍藏版)》请在冰豆网上搜索。
数字秒表的设计数字秒表的设计数字秒表的设计数字秒表的设计
数字逻辑大作业
——多功能数字钟的设计与实现
2009-01-09
数字逻辑实验报告
(2008/2009学年第1学期)
课程名称:
数字逻辑
题目:
多功能数字钟的设计
专业:
软件工程
学生姓名:
黄生
李林
王欣
指导教师:
张明
设计成绩:
2009年1月9日
目录
设计目的及要求2
目的:
2
要求:
3
工作原理及系统框架3
各部分选定方案3
电路组成及相关器件说明4
1.七段共阳极数码管:
4
2.七段显示译码器74LS247:
5
3.模60计数器(用两片74161实现):
6
4.模24计数器(用两片74290实现):
7
5.整点报时电路8
6.闹钟电路7485数据比较器8
7.校时电路10
调试过程10
设计结论10
设计心得与总结11
参考文献13
附录一:
器件表及总体设计图14
器件表14
总设计图:
14
附录二:
仿真结果15
1.七段译码器显示波形15
2.模60计数器15
3.模24计数器16
4.整点报时16
5.闹钟17
附录三:
成员工作说明18
设计目的及要求
目的:
综合考察学生对本门课程所学知识的理解和运用。
通过本次大作业的设计,培养学生灵活运用所学知识解决比较复杂的实际问题的能力。
要求:
1.能灵活运用学过的计数器、触发器、译码器等方面的知识。
2.独立完成从设计、选片、连线、调试、排除故障到实现一个数字系统的全过程。
3.详细书写实验报告,完成实验报告要求。
工作原理及系统框架
通过计数器对秒脉冲的计数实现数字时钟的计时功能。
计数器采用74161实现模60计数功能,也就是对分和秒的计数;而采用74290实现模10计数和模2计数实现对时的个位和十位分别计数。
(本次大作业为了达到对两种芯片的练习,二采用两种不同芯片实现计数器)。
秒计数器的CP脉冲信号直接来源于秒脉冲发生器;分计数器的CP脉冲信号源为秒计数器计满六十后产生的进位;时计数器的CP信号源为分计数器计满六十后产生的进位。
计数器的输出经由译码器送给显示器显示。
计数出现误差可以通过校时电路校时、校分。
下图是数字时钟的总框架图:
各部分选定方案
1.显示器:
七段共阳极LED显示数码管
2.译码器:
六片74LS247七段显示译码器分别对时、分、秒的个位和十位产生的数据进行译码。
3.计数器
秒计数器:
两片74161级联实现模60计数
分计数器:
两片74161级联实现模60计数
时计数器:
两片74290级联实现模24计数。
A芯片Q3产生的进位作为B芯片中模2计数器的CP信号。
4.校时电路
对计数器的CP时钟信号进行处理,选择性的使用相应的CP信号。
校时的时候采用外来校时CP信号,不校时的时候采用前一个计数器产生的进位脉冲为CP信号。
5.整点报时
当分、秒计数器发生装置停止工作。
6.闹钟电路
对设定数据与计数器输出数据使用7485数据比较器进行比较,若完全相等则闹钟,且闹钟持续一分钟;若不相等则等待相等的时刻到来。
电路组成及相关器件说明
1.七段共阳极数码管:
本次设计所选用的是半导体数码管,是用发光二极管(简称LED)组成的字形来显示数字,七个条形发光二极管排列成七段组合字形,便构成了半导体数码管。
半导体数码管有共阳极和共阴极两种类型。
本次设计主要采用共阳极数码管,该数码管的七个发光二极管的阳极接在一起即共用一个阳极,而七个阴极则是独立的。
当共阳极数码管的某一阴极接低电平时,相应的二极管发光,此时我们可根据字形使某几段二极管发光,所以共阳极数码管需要输出低电平有效的译码器去驱动。
以下是七段共阳极LED显示数码管以及管脚标注图。
2.七段显示译码器74LS247:
译码为编码的逆过程。
在数字系统中,编码器和译码器常常成对出现,在本实验中的计数器充当了编码器。
译码器输出与输入代码有唯一的对应关系,一个输出端对应着唯一的数据输入,也就是说一次输入只能有一个输出端被译中。
本次实验采用低电平输出有效地74LS247芯片。
以下是74LS247的管脚图以及74LS247与数码管相连的图示
74LS24774LS247与数码管相连
下表是74LS247七段译码显示器的功能表
功能和十进制数
输入
输出
abcdefg
显示
LT
BI
RBI
A1A2A3A4
试灯
0
×
1
××××
0000000
8
灭灯
×
×
0
××××
1111111
全灭
灭0
1
0
1
0000
1111111
灭0
0
1
1
1
0000
0000001
0
1
1
×
1
0001
1001111
1
2
1
×
1
0010
0010010
2
3
1
×
1
0011
0000110
3
4
1
×
1
0100
1001100
4
5
1
×
1
0101
0100100
5
6
1
×
1
0110
0100000
6
7
1
×
1
0111
0001111
7
8
1
×
1
1000
0000000
8
9
1
×
1
1001
0000100
9
3.模60计数器(用两片74161实现):
本次实验主要采用两片74161级联的方法实现模60计数。
具体方法是:
两片芯片的CP信号都直接由秒脉冲发生器提供,第一片芯片(A)进行个位数的模10计数;第二片芯片(B)进行十位的计数,当B芯片计数满五后,在第六个CP信号到来时,进行置数归零,重新计数。
左图是74161的管脚图:
其中A、B、C、D四个管脚为置零数据输入端,CLK为CP时钟信号端,CLRN、ENT、ENP用于实现计数器的数据预置功能。
其功能表如下图所示:
CLK
CLRN
LDN
ENT
ENP
功能
×
0
×
×
×
异步清零
1
0
×
×
预置功能
×
1
1
0
1
保持
×
1
1
1
0
保持RCO=0
1
1
1
1
模60计数器四个输出端为1111时,RCO=1
下图是模60计数器的电路连接图:
4.模24计数器(用两片74290实现):
本次实验主要采用两片74290级联的方法实现模24计数。
具体方法是:
第一片芯片(A)的CPA信号直接由秒计数器的进位提供,当模2计数器计满2后,向模5计数器进位,产生的进位即为模5计数器的CP信号源,从而实现个位数的模10计数;第二片芯片(B)的CPA信号进行十位的计数,当A芯片中的模2计数器满2后,在第3个CP信号到来时,两片芯片同时进行置数归零,重新计数。
下图是74290的管脚图:
其中SET9A和SET9B为直接置9端(当两输入端均为高电平时)。
CLRA和CLRB为直接置零端(当两输入端均为高电平时)。
CLKA为模2计数器的CP时钟信号端,CLKB为模5计数器的CP时钟信号端。
QA为模2计数器的输出端,QB、QC、QD均为模5计数器的输出端。
使用此芯片进行模10计数时,模2计数器的时钟信号来自外界,而模5计数器以模2计数器的输出端信号为时钟信号。
实现模24计数时,第一片芯片实现模10计数,计满后QD端的输出送给第二片芯片当做模2计数器的CP时钟信号,当模2计数器计满后向模5计数器进位,使模5计数器的QB端输出高电平。
将第二片芯片的QB端与第一片芯片的QC端相与,输出后送给置零端,同时将两片芯片清零。
下图为模24计数器的连接电路:
5.整点报时电路
当秒、分输出显示为00:
00时启动发声装置,达到整点报时的功能。
也就是将秒、分的十位和个位的每四个输出端(例如个位的四个输出端)取或非后再进行相与,达到只有当个位和十位的输出端都为0时与门输出为高电平,此时可以导通三极管,进而发声器开始工作。
当秒的个位首先变为1时,发声装置将停止工作,也就是整点报时的发声状态只持续一秒钟。
下图为与门与发生装置相连:
6.闹钟电路7485数据比较器
其中A3~A0输入端信号来自计数器的每一位(个位和十位)的输出端;B3~B0的输入端信号来自用户自己设定的时间数据。
这一数据输入时采用74157将这一数据输出到数码管上显示,计时器的数据输出暂时不显示,但不会影响计数器的正常工作。
将A=B端输入高电平进行数据等值比较,当两者的数据都相等时A=B端输出高电平。
同时进行时、分的数据比较。
当输出均为高电平时发生装置的三极管将被导通,发生装置开始工作。
直到下一个CP信号到来将分计数器加一发生装置停止工作,因此本数字钟的闹钟每次闹铃的持续时间为一分钟。
图4-6-1为7485数据比较器芯片的管脚图。
其中ALBI、AEBI、AGBI分别为A>B、A=B、A
A3~A0、B3~B0分别为所需要比较的两个四位二进制数据。
当所输入的两个数据满足选择条件,则相应的输出端输出高电平,否则输出全为低电平。
图4-6-1
图4-6-2为74157数据选择输出芯片的管脚图。
其中当SEL输入为0时,Y1Y2Y3Y4将对应输出B1B2B3B4的数据,而当SEL输入为1时,Y1Y2Y3Y4将对应输出A1A2A3A4的数据,从而实现数据选择输出的目的。
这一芯片与74247译码器相连可以达到选择显示(计数器输出数据或者闹钟设置的时间数据)数据的目的。
图4-6-2
图4-6-3为闹钟电路:
7.校时电路
不校时的时候S1和S2开关均断开,数字钟的时、分计数器的时钟信号均来自前一个计数器产生的进位。
需要校时的时候,开关S1或者S2闭合,选择所需要校正的数据。
校时时位的CP=A*(C的非)+B*C,校时分位的CP=A*(C的非)+B*C。
调试过程
在maxplus2上进行仿真实验,通过仿真波形判断实验设计是否有误。
在设计计数器的时候考虑到异步置数会出现尖刺现象,为了避免出现尖刺而采用置数清零法,但是在最后将计时电路与整点报时电路相连时,报时系统的输出结果由于计数器置数清零法而产生尖刺现象,影响了整个实验的结果。
经讨论决定在实现所有功能的前提下使用异步清零法。
其他电路的仿真实验结果均正常。
设计结论
实验目的的实现可以有很多种途径。
例如使用74161可以实现模60计数,而使用74290也可以达到相同的目的。
在设计计数器的时候,我们需要考虑到清零方式的选择,一般的,对于74161芯片来说可以采用两种不同的清零方式:
异步清零和置数清零。
虽然两种方法都能清零,但是异步清零这种方式会产生刺尖现象;而置数清零则不会产生这一现象。
在设计校时电路的时候,我们的想法是选择性的采用CP信号。
通过状态转换关系列出状态转换真值表,再化简卡诺图得出最简与或式,最后得出逻辑电路。
通过对这个电路的设计我们体会了数字电路的全设计过程,不能说体会多深,但是至少由此我们对数字电路设计的认识又进了一步。
整点报时电路的设计主要是根据计数器计满后向下一个计数器进位的特点,引用该进位和秒计数器的CP信号一起导通发生装置,达到报时的目的,但是这样的话,报时将会持续一个小时,即下一个CP信号到来。
由此目的就没有达到,经过讨论,分析,设计我们根据正点时刻秒、分均为0的特点,使这一时刻唯一的一次导通发生装置,直到下一次秒、分再次同时为0的时候再报时。
闹钟的设计则采用7485数据比较芯片对计数器的输出与事先设定好的时间对应的数据进行比较,如果所有数据比较器输出均为“1”,则导通发生装置,达到闹钟的功能。
设计心得与总结
1.李志科(0837103班)
通过对这次实验的设计,我学到了很多。
如今的大学学习已经不仅仅是对课本知识的学习,而且课本只是一个引导,如果局限于此,课本将成为我们前进的累赘。
我们要充分利用图书馆和网络资源,充分的汲取养分,从而走得更远。
在刚开始接触本门课程的时候感觉这门课程给人的感觉就是枯燥乏味,但是在完成大作业之后这一态度发生了转变,数字逻辑是很精彩的,尤其是设计的过程,给人的感觉就是只有想不到的,没有做不到的。
在这个过程中思维得到了锻炼,对问题的思考也会逐步加深。
本次作业,作为组长,我的任务就是整体把握整个实验的设计与实现。
而分配任务对我来说是个艰巨的任务,也是最头疼的。
对于大作业,里边所涉及到的东西对于每一个成员来说都应该涉猎,甚至可以单独完成实验。
但是考虑到要达到合作的目的,我只能根据成员的个人爱好及所学习的程度进行分工。
也许这就是对一个项目组长的考验和要求吧。
在试验中我的任务是设计整点报时、闹钟电路和校时电路,并指导其他成员设计计数器,以及选择芯片。
在这过程中遇到了不少困难。
最大的问题就是清零方式的选择对其他电路的影响。
解决过程主要是考虑尖刺现象对哪部分的影响最大,而采取避免措施。
仿真实验是检验设计正确与否的重要步骤。
总结:
设计的过程是复杂而有趣的,实验结果的检验是简单而必须的,调试过程是令人头疼而异常重要的,最后完成实验是令人精神振奋的。
2.李昌(0837103班)
刚接触数字逻辑,我对数字逻辑中用0,1表示完全不能理解,再加上许多逻辑器件的运用,也不懂有什么大用处,后来越学越多,也有很多没学好,后来老师说做一个大作业,,我很多都不怎么懂,后来在李志科的带领下,慢慢明白了大作业,我也感觉到了学习数字逻辑的重要意义,感觉出了数字逻辑精彩无限这句话的意义。
对于这个大作业,总体思路就是,首先用4块74LS161芯片实现模60计数功能,实现分钟与秒的计数,用两块74LS290芯片实现模24的计数功能,这样就等于做成了一个手表的功能,再用6个74LS247译码器显示出时间。
最后用7485比较器,当用户所输入所需要定时的时间时,比较器实现的就是当时间到了时候自动输出信号给报时装置。
我设计了模60计数器和整点报时电路,参与设计闹钟功能的实现。
参与模24、模60电路、校时电路以及整点报时电路的仿真实验。
其中遇到了很多难解决的地方。
最大的问题就是出现尖刺现象,至今还没想到特别好的方法解决。
试过用异步和置数清0的方法,综合考虑用异步清0的办法。
在李志科的引导下,完成了该实验。
感觉学到了很多东西,而且做出了一个简单的闹钟,为以后学习计算机组成原理打基础。
3.王攀(0837104班)
最初,当我听说要学习数字逻辑这门课时,内心激动不已,觉得这会是一门很没意思的课程,可是,当我真正学习这门课时,才感觉到它的乏味,总是徘徊在0和1之间。
学着学着,我又渐渐有了兴趣,开始如痴如醉地热爱上了这门课,逻辑门,译码器,触发器,计数器,多么美妙的单词啊!
数字逻辑是一门很实用的课,它为我们即将学习的计算机组成原理做了铺垫,为了我们以后的课程打下了坚实的基础。
当本学期的课已经快结束的时候,老师给了我们锻炼的机会,让我们通过一次大作业的设计,来培养我们运用所学知识解决比较复杂的实际问题的能力。
对于此次大作业,我们小组所有成员信心十足,在组长李志科的运筹帷幄下,我们分工明确,迅速完成了任务。
我的任务是设计模24计数器,实现了数据输出的显示,参与设计校时电路。
还参与模24、模60电路、译码器电路以及闹钟电路的仿真实验。
①用两块74LS290芯片实现模24的计数功能,也就实现了时的计数;②用74LS247与数码管相连来实现数据输出的显示;③校时电路用7485比较器,当用户所输入所需要定时的时间时,比较器实现的就是当时间到了时候自动输出信号给报时装置;④仿真输出小组成员一起完成,让我们体验到了成功的滋味。
在整个过程中,并不像我们想象的那样简单,道路坎坷,荆棘丛生,我们披荆斩棘,最终取得成功。
通过这次大作业,我学到了很多,对所学知识也掌握的更加牢固,并且能比较熟练地运用所学知识解决实际问题,这才是我最大的收获,这也是老师所希望的结果——真正地掌握知识!
总结:
数字逻辑这门课是一门十分有意义课!
我选择,我喜欢,真没白学!
参考文献
1.《数字逻辑实用教程》,王玉龙编著,清华大学出版社,2002年03月第1版。
2.《COMS集成电路》,赵保经编著,北京国防教育出版社,1996年5月第1版。
附录一:
器件表及总体设计图
器件表
原件序列号
数量
备注
74161
4
16进制计数器
74290
2
2-5十进制
74LS247
6
7段显示译码器
7485
4
数据比较器
74157
4
数据选择输出器
开关
2
单向开关
R
10
电阻
C
2
电容
LED
1
数码管
三极管
1
蜂鸣器
1
总设计图:
见附页
附录二:
仿真结果
1.七段译码器显示波形
2.模60计数器
3.模24计数器
4.整点报时
5.闹钟
附录三:
成员工作说明
1.李志科(组长)
主要整体把握本次大作业的设计与实现,以及实验报告撰写。
参与指导和设计模60和模24计数器,以及数据输出的显示。
设计了整点报时、闹钟电路和校时电路。
模60、模24以及总电路的仿真实验。
2.李昌
设计了模60计数器和整点报时电路,参与设计闹钟功能的实现。
参与模24、模60电路、校时电路以及整点报时电路的仿真实验。
3.王攀
设计了模24计数器,实现了数据输出的显示即74LS247与数码管的配套使用,参与设计校时电路。
参与模24、模60电路、译码器电路以及闹钟电路的仿真实验。
课程设计
评语
课程设计
成绩
指导教师
(签字)
年月日