第一篇:数字钟课程设计 郭杰
课 程 设 计 说 明 书
数字钟课程设计
共
页
第 1页
班级:电094
姓名: 学号: 指导教师:
课 程 设 计 说 明 书
目 录
一、课程设计题目„„„„„„„„„„„„„„2
二、课程设计的设计任务和基本要求„„„„„„2
三、课程设计题目分析 „„„„„„„„„„„2
四、课程设计的电路设计部分 „„„„„„„„3
五、使用元器件说明 „„„„„„„„„„„„11
共 页
第 1页
课 程 设 计 说 明 书
电子技术课程设计
一、课程设计题目: 数字钟
二、课程设计任务和基本要求: ☆ 设计任务
设计一台可以显示时、分、秒的数字钟。☆ 基本要求
●能直接显示时、分、秒的数字钟,要求时针进制为十二进制。●当电路发生走时误差时,要求电路具有校时功能。
●要求电路具有整点报时功能,报时声响为四低一高,最后一响正好为整点。
三、课程设计题目分析: ☆ 设计要点
●设计一个精确的秒脉冲信号产生电路 ●设计60进制、12进制计数器 ●设计译码显示电路 ●设计分频器 ●设计校准电路 ●设计整点报时电路 ☆ 工作原理
数字电子钟由信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路等组成。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用555构成的振荡器加分频器来实现。将标准秒脉冲信号送入“秒计数器”,该计数器采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用12进制计数器。译码显示电路将“时、分、秒”计数器的输出状态经七段显示译码器译码,通过六位LED显示器显示出来。整点报时电路是根据计时系统的输出状态产生一个脉冲信号,然后去触发音频发生器实现报时。校时电路是来对“时、分、秒”显示数字进行校对调整。
共 页
第 1页
课 程 设 计 说 明 书
课程设计的电路设计部分
● 译码显示电路
译码电路的功能是将秒、分、时计数器的输出代码进行翻译,变成相应的数字。用与驱动LED七段数码管的译码器常用的有74LS48。74LS48是BCD-7段译码器/驱动器,输出高电平有效,专用于驱动LED七段共阴极显示数码管。若将秒、分、时计数器的每位输出分别送到相应七段译吗管的输入端,便可以进行不同数字的显示。需要数码管串联电阻R作为限流电阻。
共 页
第 1页
课 程 设 计 说 明 书
●
振荡器: 通常用555定时器与RC构成的多谐振荡器,经过调整输出1000Hz脉冲。
数据计算
设计要求振荡源输出1kHz的方波,并且占空比为50%。则计算过程如下:
由占空比50%,可知R1=R2。
T=T1+T2=(R1+R2)Cln2
取C=100nF,R1=R2= T/Cln2=0.001/2*0.69C=7.2kΩ
电路图中取值为7.15kΩ.共 页
第 1页
课 程 设 计 说 明 书
●
分频器: 分频器功能主要有两个,一是产生标准秒脉冲信号,一是提供功能扩展电 路所需要的信号,选用三片74LS90进行级联,因为每片为1/10分频器,三片级联好 获得1Hz标准秒脉冲。其电路图如下:
分频器
共 页
第 1页
课 程 设 计 说 明 书
☆
秒、分、时计时器电路设计
秒、分计数器为60进制计数器,小时计数器为12进制计数器。实现这两种模数的计数器采用中规模集成计数器74LS160构成。
●
60进制计数器
由74LS160构成的60进制计数器,将一片74LS160设计成10进制加法计数器,另一片设置6进制加法计数器。两片74LS160按反馈清零法串接而成。秒计数器的十位和个位,输出脉冲除用作自身清零外,同时还作为分计数器的输入脉冲CLR(1)。下图电路即可作为秒计数器,也可作为分计数器。
进 制 计 数 器
共 页
第 1页
课 程 设 计 说 明 书
●
12进制计数器
由74LS160构成的十二进制计数器,将一片74LS160设计成2进制加法计数器,另一片设置1进制加法计数器。即个位计数状态为Qd Qc Qb Qa = 0010十位计数状态为Qd Qc Qb Qa = 0001时,要求计数器归零。通过把个位Qc、十位Qb相与后的信号送到个位、十位计数器的清零端,使计数器清零,从而构成12进制计数器。电路图如下: 进 制 计 数 器
共 页
第 1页
课 程 设 计 说 明 书
● 校时电路
方法一
校时电路是数字钟不可缺少的部分,每当数字钟与实际时间不符时,需要根据标准时间进行校时。K1、K2分别是时校正、分校正开关。不校正时,K1、K2开关是闭和的。当校正时位时,需要把K1开关打开,然后用手拨动K3开关,来回拨动一次,就能使时位增加1,根据需要去拨动开关的次数,校正完毕后把K1开关闭上。校正分位时和校正时位的方法一样。其电路图如下:
校 正 电 路
共 页
第 1页
课 程 设 计 说 明 书
方法二 电路图如下:
●
整点报时电路
共 页
第 1页
课 程 设 计 说 明 书
仿广播电台整点报时电路设计,每当数字钟计时快到整点时发出响声,四低一高并且以最后一声高音结束的时刻为整点时刻。
整点报时电路
五、元器件使用说明:
⑴ 集成异步十进制计数器74LS90原理说明:
集成异步十进制计数器74LS90它是二-五-十进制计数器。74LS90具有异步清零和异步置九功能。当R0全是高电平,R9至少有一个为低电平时,实现异步清零。当R0至少有一个低电平,R9全是高电平时,实现异步置九。当R0、R9为低电平时,实现
共 页
第 1页
课 程 设 计 说 明 书
计数功能。
74LS90功能表如下
:
⑵
555定时器
共 页
第 1页
7课 程 设 计 说 明 书
振荡器由555定时器构成。在555定时器的外部接适当的电阻和电容元件构成多谐振荡器,再选择元件参数使其发出标准秒信号。555定时器的功能主要由上、下两个比较器C
1、C2的工作状况决定。比较器的参考电压由分压器提供,在电源与地端之间加上VCC电压,且控制端VM悬空,则上比较器C1的反相端“-”加上的参考电压为2/3VCC,下比较器C2的同相端“+”加上的参考电压为1/3VCC。若触发端 S的输入电压V2≤1/3VCC,下比较器C2输出为“1”电平,SR触发器的S输入端接受“1”信号,可使触发器输出端Q为“1”,从而使整个555电路输出为“1”;若阈值端R的输入电压V6≥2/3VCC,上比较器C1输出为“1”电平,SR触发器的R输入端接受“1”信号,可使触发器输出端Q为“0”,从而使整个555电路输出为“0”。控制电压端VM外加电压可改变两个比较器的参考电压,不用时,通常将它通过电容(0.01μF左右)接地。放电管T1的输出端Q′为集电极开路输出,其集电极最大电流可达50mA,因此,具有较大的带灌电流负载能力。若复位端 RD加低电平或接地,可使电路强制复位,不管555电路原处于什么状态,均可使它的输出Q为“0”电平。只要在555定时器电路外部配上两个电阻及两个电容元件,并将某些引脚相连,就可方便地构成多谐振荡器。
(3)74LS48译码器
7段显示译码器74LS48是输出高电平有效的译码器,其引脚图和真值表如下:
共 页
第 1页
课 程 设 计 说 明 书
由7448真值表可获知7448所具有的逻辑功能:
共 页
第 1页
课 程 设 计 说 明 书
(1)7段译码功能(LT=1,RBI=1)
在灯测试输入端(LT)和动态灭零输入端(RBI)都接无效电平时,输入DCBA经7448译码,输出高电平有效的7段字符显示器的驱动信号,显示相应字符。除DCBA = 0000外,RBI也可以接低电平。(2)消隐功能(BI=0)
此时BI/RBO端作为输入端,该端输入低电平信号时,表1倒数第3行,无论LT 和RBI输入什么电平信号,不管输入DCBA为什么状态,输出全为“0”,7段显示器熄灭。该功能主要用于多显示器的动态显示。(3)灯测试功能(LT = 0)
此时BI/RBO端作为输出端,端输入低电平信号时,表1最后一行,与 及DCBA输入无关,输出全为“1”,显示器7个字段都点亮。该功能用于7段显示器测试,判别是否有损坏的字段。
(4)动态灭零功能(LT=1,RBI=1)
此时BI/RBO端也作为输出端,LT 端输入高电平信号,RBI 端输入低电平信号,若此时DCBA = 0000,表1倒数第2行,输出全为“0”,显示器熄灭,不显示这个零。DCBA≠0,则对显示无影响。该功能主要用于多个7段显示器同时显示时熄灭高位的零。
(4)74LS160功能介绍
下图为74LS160管脚图及其功能表
共 页
第 1页
课 程 设 计 说 明 书
主要功能介绍
74LS160异步清零端/MR1 为低电平时,不管时钟端CP信号状态如何,都可以完成清零功能。
160的预置是同步的。当置入控制器/PE为低电平时,在CP上升沿作用下,输出端Q0-Q3与数据输入端P0-P3一致。对于54/74160,当CP由低至高跳变或跳变前,如果计数器控制端CEP、CET为高电平,则/PE应避免由低至高电平的跳变,而54/74LS160无此种限制。
160的计数是同步的,靠CP同时加在四个触发器上而实现的。
当CEP、CET均为高电平时,在CP上升沿作用下Q0-Q3同时变化,从而消除了异步计数器中出现的计数尖峰。对于54/74LS160的CEP、CET跳变与CP无关。
160有超前进位功能。当计数溢出时,进位输出端(TC)输出一个高电平脉冲,其宽度为Q0的高电平部分。
在不外加门电路的情况下,可级联成N位同步计数器。
共 页
第 1页
课 程 设 计 说 明 书
对于54/74LS160,在CP出现前,即使CEP、CET、/MR发生变化,电路共页
第 1页 的功能也不受影响。
第二篇:数字钟课程设计
晶体振荡器电路
晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的脉冲,可保证数字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。分频器电路
分频器电路将32768Hz的高频方波信号经74LS4060和74LS250的二分频的分频后得到1Hz的方波信号,可以供秒计数器进行计数。分频器实际上也就是计数器。时间计数器电路
时间计数电路由秒个位和秒十位计数器、分个位和分十位计数器及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器、分个位和分十位计数器为60进制计数器,时个位和时十位计数器可以设计为12进制计数器或者24进制计数器,我们这里根据自己的意愿设计成24进制计数器。译码驱动电路
译码驱动电路将计数器输出的8421BCD码转换为数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流。数码管
数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管,本设计采用的为LED数码管。
各单元模块设计和分析 晶体振荡器电路
晶体振荡器是构成数字式时钟的核心,它保证了时钟的走时准确及稳定。
图2 晶体振荡器电路图
分频器电路
通常,数字钟的晶体振荡器输出频率较高,为了得到1Hz的秒信号输入,需要对振荡器的输出信号进行分频。
通常实现分频器的电路是计数器电路,一般采用多级2进制计数器来实现。例如,将32767Hz的振荡信号分频为1HZ的分频倍数为32767(2于15极2进制计数器。时间计数单元
时间计数单元有时计数、分计数和秒计数等几个部分。
时计数单元一般为24进制计数器计数器,其输出为两位8421BCD码形式;分计数和秒计数单元为60进制计数器,其输出也为8421BCD码。
本实验采取了74LS90 用两块芯片进行级联来产生60进制和24进制
秒个位计数单元为10进制计数器,无需进制转换,只需将Q0与CP1(下降沿有效)相连即可。CP0(下降没效)与1HZ秒输入信号相连,Q3可作为向上的进位信号与十位计数单元的CP1相连。
秒十位计数单元为6进制计数器,需要进制转换。将10进制计数器转换为6进制计数器的15),即实现该分频功能的计数器相当电路连接,其中Q2可作为向上的进位信号与分个位的计数单元的CP0相连。
分个位和分十位计数单元电路结构分别与秒个位和秒十位计数单元完全相同,也是分个位计数单元的Q3作为向上的进位信号应与分十位计数单元的CP0相连,分十位计数单元的Q2作为向上的进位信号应与时个位计数单元的CP0相连。60进制的连接如图4所示。时个位计数单元电路结构仍与秒或个位计数单元相同,但是要求,整个时计数单元应为24进制计数器,所以在两块74LS90构成的100进制中截取24,就得在24的时候进行异步清零。24进制计数功能的电路如图5所示。
图5 24进制计数器电路
主要参考文献
《电子技术基础》
康华光
高教出版社 《电子线路设计、实验与测试》
谢自美
华中科技大学出版社 《电子技术实验》
汪学典
华中科技大学出版社 课程设计摘要 中文摘要
此次课程设计以数字钟为例,全面的利用了所学的知识,设计出了生活中常见的东西。数字钟主要有多谐振荡器、分频器、计数器、译码器组成。主要芯片有74LS90、CC4511。有多谐振荡器产生约1Mz信号脉冲。满24计数器自动复位,从而实现24 小时计时。
关键词:多谐振荡器、分频器、计数器、74LS90 英文摘要 This design report in detail the digital clock.Making using of our comment study.The digital clock is made of multivibrator type oscillator、divider、counter.Following chips 74LS90 CC4511.When the hour counter reaches the summit of 24,it will return to the beginning point.So ,the whole day is counted.Key word: multivibrator、divider、74LS90
第三篇:数字钟课程设计
数字电子钟逻辑电路设计
一、实验目的:
1、掌握数字钟的设计方法;
2、熟悉集成电路的使用方法。
二、设计任务和要求:
1、设计一个有“时”,“分”,“秒”(23小时59分59秒)显示且有校时功能的电子钟;
2、用中小规模集成电路组成电子钟;
3、画出框图和逻辑电路图,写出设计报告;
4、选做:①闹钟系统。②整点报时。③日历系统。
三、方案选择和论证:
1.分秒功能的实现:用两片74290组成60进制递增计数器 2.时功能的实现:用两片74290组成24进制递增计数器 3.定点报时:当分秒同时出现为0时,灯亮。
4.日历系统:月跟日分别用2片74192实现,月份就接成12进制,日则接成31进制,星期由1片74192组成7进制,从星期一至星期天。
四、方案的设计:
1、可调时钟模块:
秒、分、时分别为60、60和24进制计数器。用两片74LS290做一个二十四进制, 输入计数脉冲CP加在CLKA’端,把QA与与CPLB’从外部连接起来,电路将对CP按照8421BCD码进行异步加法计数。通过反馈端,控制清零端清零,其中个位接成二进制形式,十位接成四进制形式。其电路图如下:
同理利用两片74290组成的六十进制计数器,如下图所示
将两个六十进制的加法计数器和一个二十四进制的加法计数器进行级联:将秒的十位进位脉冲接到分的个位输入脉冲,将分的十位进位脉冲接到时的个位输入脉冲,这样就可以组成最基本的电路。2.校时电路: 例如说时的校准,开关1上端接1HZ脉冲,下端接分的进位。当开关打到上端时电路进入校准功能,当开关打到下端时电路进入正常计时功能。其电路如总电路图所示
3.整点报时:
分别用2个或非门接到分和秒的各输出个节点处,再用一个与非门与报时灯链接,当输出同时为零时,即整点时,报时灯就亮了,起到报时功能。本实验使用LED发光(1s),其电路图如下:
4日历系统:
月和日都用2片74192实现。月份功能则接成13进制,因为月份分日都是从1开始计起,所以要求从0001开始,到1101时,立刻清零,清零时应该切换到置数状态,即将ABCD置1000,通过一个与非门链接到LOAD端置零,同时也将计数器置为0001的状态。其电路图如下所示
日功能74192三十一进制电路图:
总电路图:
四、电路调试:
调试这部分工作在EWB仿真软件上进行。对于电路的调试应该分为几个部分,分别对电路各个部分的功能都进行调试,之后,每连接一部分都要调试一次。在实现日历系统时,如月份需要显示灯显示1~31。一开始以为只把计数器链接成三十一进制即可,结果显示灯只显示0~30,没有自己预期的结果。经过仔细思考,要把0去掉不显示,从1开始显示,而还要显示31。经过查书,最后,知道开始需置数成0001状态,到1000才清零,清零的同时回到置数0001状态,通过多次链接、测试,终于实现了。
在实现校时功能过程中,由于之前想得太过复杂了,浪费了大量时间,最后,经过上网搜索,到图书馆查书,简单的用了个开关连接到脉冲实现了。
五、收获心得体会:
整个过程花了我不少时间,可当做完时才发现做这个数字钟是多么简单的一件事,主要是在调试时花了不少时间,其间换了不少器件,有的器件在理论上可行,但在实际运行中就无法看到效果,所以调试花了我不少时间,有时无法找出错误便更换器件重新接线以使电路正常运行。
在实际的操作过程中,能把理论中所学的知识灵活地运用起来,并在调试中会遇到各种各样的问题,电路的调试提高了我们解决问题的能力,学会了在设计中独立解决问题,也包括怎样去查找问题。似乎所有的事都得自己新手去操作才会在脑海中留下深刻的印象,这个小小的课程设计让我可以熟练的操作EWB软件,也了解了不少器件的功能的应用,也加深了对数字电路认识和理解。
本次课程设计主要是用软件仿真,如果是实际加工电路板就更加锻炼我们的动手能力了,因此,能力还有待提高。
第四篇:数字钟课程设计
南 昌 大 学
数字电路与逻辑设计实验报告
姓
名:
付
容 学
号:
6100212236 学
院:
信息工程学院 班
级:
电气信息I类126班 实验名称:
数字钟设计
一、实验目的
1、熟悉数字系统的分析和设计方法;
2、熟悉根据任务的要求合理选择集成器件的方法;
3、学习和掌握数字钟的工作原理及设计方法,并且通过对数字钟的制作
进一步了解各种中、小规模集成电路的功能及使用方法;
4、学习使用protel软件进行电子电路的原理图设计、印制电路板设计;
5、初步掌握PCB板的制作流程及其工艺;
6、掌握数字系统的调试方法;
7、提高检查故障和排除故障的能力。
二、实验任务
利用中、小规模集成电路设计并制作一个数字显示时、分、秒的时钟,应具备如下功能:
1、能进行正常的时、分、秒计时功能,以数字形式显示时、分、秒的时间;
2、时应以24小时计时周期,计数序列为00—23;
3、计时出现误差时能校正,可以分别对时和分进行校正。
三、实验器材
计算机、protel软件、555定时器一个、6个74LS161、3个74LS90、个74LS48、6个数码管、若干个74LS00和74LS04、电源、开关。
四、实验原理
1、电路的总体原理框图
数字钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它
2、数字钟的构成的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能。因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路、振荡电路组成。数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。通常使振荡电路构成数字钟。
⑴555振荡电路
555定时器振荡电路给数字钟提供一个频率稳定准确的1KHz的方波信号,可保证数字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了555振荡电路。
⑵分频器电路
分频器电路用74LS90芯片将1kHz的高频方波信号经3次分频后得到1Hz的方波信号供秒计数器进行计数。分频器实际上也就是计数器。
⑶时间计数器电路
时间计数电路由秒个位和秒十位计数器、分个位和分十位计数器及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器、分个位和分十位计数器为60进制计数器,而根据设计要求,时个位和时十位计数器为12进制计数器。⑷译码驱动电路
译码驱动电路将计数器输出的8421BCD码转换为数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流。
⑸数码管
数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管,本设计提供的为LED数码管。
3、数字钟工作原理
数字电子钟的原理方框图如上图,该电路系统由秒信号发生器、“时、分、秒”计数器、译码器及数码显示管、校时电路、整点报时电路等组成。秒信号发生器是整个系统的时基信号,它直接决定计时系统的精度,本实验用555定时器来实现。将标准秒信号送入“秒计数器”,“秒计数器”采用六十进制计数器,每累计60秒发出一个“分脉冲”信号,该信号作为“分计数器”的时钟脉冲。“分计数器”采用六十进制计数器,每累计60分钟发出一个“时脉冲”信号,该信号作为“时计数器”的时钟脉冲。译码显示电路将“时”、“分”、“秒”计数器的输出状态经七段显示译码器译码,通过LED七段共阴极数码显示管显示出来。整点报时电路是根据计时系统的输出状态产生脉冲信号,然后去触发一音频发生器实现报时。校时电路是用来对“时”、“分”、“秒”显示数字进行校对调整的。
五、实验设计方案
1、六十进制计数器电路
由两片74160构成的六十进制计数器如下图所示。首先将两片74160构成一百进制计数器,然后采用整体置数法接成六十进制计数器。电路的59状态译码产生LD'=0信号,同时加到两片74LS161上,在下一个计数脉冲(第60个计数脉冲)到达时将0000同时输入两片74LS161中,从而得到六十进制计数器。进位输出可有门电路G的输出直接得到。
2、二十四进制计数器电路
由两片74LS161构成的二十四进制计数器如下图所示。首先将两片74160构成一百进制计数器,然后采用整体置数法接成二十四进制计数器。电路的23状态译码产生LD'=0信号,同时加到两片74LS161上,在下一个计数脉冲(第24个计数脉冲)到达时将0000同时输入两片74LS161中,从而得到二十四进制计数器。
3、秒信号发生器电路
秒信号发生器是整个系统的时基信号,它直接决定计时系统的精度,本实验用555定时器来实现。先将555定时器的2、6管脚连在一起构成施密特触发器,然后再通过RC积分电路构成多谐振荡器。接入电路的二极管D1、D2使电容C1的充电电流和放电电流流经不同的路径,充电电流只流经R1,放电电流只流经R2,因此电容C1的充电时间为
T1=R1C1Ln2 电容C1的放电时间为
T2=R2C1Ln2 输出脉冲的占空比为
q=R1/(R1+R2)若取R1=R2=71千欧然后与一个2千欧的电位器串联,则电路的振荡周期为
T=T1+T2=1s
4、校时电路
校准电路实质上是由一个555定时器接成的频率为1KHz的多谐振荡器,如下图示。从图中可知,秒脉冲进入计数器,数字钟正常工作。校时时先按下按钮J2,若按下J2则10Hz脉冲信号进入分计数器的个位,而分脉冲被阻止进入,因而较快的校准分计数器的计数值;若按下J1则100Hz脉冲信号进入时计数器个位,而时脉冲被阻止进入,因而较快的校准时计数器的计数值。
5、译码显示电路
译码电路的功能是将“秒”、“分”、“时”计数器的输出代码进行翻译变成相应的数字。用于驱动LED七段数码管的译码器为74LS48。由74LS48和LED七段数码管组成的数码显示电路如下图所示。将“秒”、“分”、“时”计数器的每位输出分别接到相应七段译码器的输入端,便可进行不同数字的显示。在译码器输出与数码管之间串联的为限流电阻。
六、实验总电路图
Multisim仿真原理图
七、实验仿真结果 1、1kHz脉冲信号:
2、秒时钟:
3、分时钟:
4、时时钟:
5、实验总仿真图:
八、实验总结
1、仿真过程中遇到的问题及解决方法 刚接到数字钟这个实验设计的时候,感觉脑子中一片混乱,理不出来一个清晰的思路。但是我先看了一遍课本,充分理解、熟悉课本中所讲的每个集成芯片的功能和它们的接法,然后又查阅了相关的资料。经过这个过程之后,我构思出来了数字钟大致的电路图和所要用到的集成芯片。但是在真正设计、画电路图的时候却不断出现了一些细节问题。比如用74LS161芯片构成60进制计数器后,在Multisim里找不到实验室用到的CD4511BE型号的译码器,那我该如何选合适的译码器进行译码?用555定时器产生1Hz的秒脉冲信号后,在保证原理图一定正确的情况下,为什么数码管一直显示0,不会走数字呢?24进制的地方为什么仿真结果总是会有些不对,从09变成10的时候中间会有一个类似于“8”一样的数出现,使得24进制与60进制不能同步进行,总是慢一秒?。于是我又去查资料,并请教了一些同学、老师才逐渐掌握了解决这些问题的方法,最后将问题一个个的击破了。经上网百度后,我知道用74LS48译码比较合适;问同学、老师后,我知道1Hz数码管能走数字,但是周期太长,所以将555定时器改成1KHz的才能很直观的看到实验仿真结果;在24进制的个位上加一个非门后就能实现正常功能。经过几次修改完善之后,我的设计仿真终于做出来了。
2、画protel原理图遇到的问题
①用单刀双掷开关实现校时电路时发现所选开关没有封装,后来经老师点拨在“元件库”中查找到了带封装的单刀双掷开关;
②不知道花PCB板的时候需要在板子的某个角落放总电源,否则整块板子无法供电使用,就连555定时器也需要电源驱动才能正常产生脉冲信号,加个电源开关更能使整个电路设计的合理、规范;
3、心得体会
此次的数字钟设计重点在于理论设计、对各种集成芯片的应用和电路本身的原理的熟悉,与电路的仿真和实际的连线有很大的差距。在此次的数字钟设计过程中,让我更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。在连接六十进制及其进位输出和用555定时器构成多谐振荡器的接法中,熟悉了逻辑电路及其芯片各引脚的功能,在电路出错时能准确地找出错误所在并及时纠正。
这次电子课程设计让我收获很大,通过这次的设计实验进一步地增强了实验的动脑、动手能力。让我体会到了学习知识时理论联系实际的重要性,并发现自己的知识面是很窄的,对很多简单的理论问题都比较难于解决,更别说实际的的问题了。所以,以后遇到这种动手操作的能力我一定要格外重视,并且努力完成它,争取做到最好的效果。
第五篇:数字钟课程设计
ORG 0000H SJMP ONE ORG 0003H LJMP ELEVEN ORG 000BH LJMP NINE ORG 001BH LJMP TEN ONE:LED12 EQU 30H;数码管12显示缓存 LED34 EQU 31H;数码管34显示缓存 LED56 EQU 32H;数码管56显示缓存
COUNT EQU 33H;定时器T0(用来走时)计数值存储器(计数中断20次到1秒)COUNTS EQU 34H;定时器T1(用来预置)计数值存储器(计数中断15次到预置值加一)HOUR EQU 40H;以下为时间,日期,闹铃时间,生日的存储地址 MIN EQU 41H SECOND EQU 22H YEAR EQU 50H MONTH EQU 23H DAY EQU 52H RH EQU 60H;闹铃小时 RM EQU 61H;闹铃分 RE EQU 62H;闹铃使能 BM EQU 71H;生日-月份 BD EQU 72H;生日-天 MOV LED12,#0 MOV LED34,#0 MOV LED56,#0 MOV COUNT,#0 MOV COUNTS,#0 MOV HOUR,#0 MOV MIN,#0 MOV SECOND,#0 MOV YEAR,#0 MOV MONTH,#1 MOV DAY,#1 MOV RH,#0 MOV RM,#0 MOV RE,#0 MOV BM,#6 MOV BD,#1 BS BIT 00H;birthday symbol生日标志(到生日那天就为1)
SS BIT 01H;set symbol预置信号(按下中断预置为1,便开始闪烁和预置)GS BIT 02H;glisten symbol闪烁标志 FC BIT 03H;frequency control频率控制 NB BIT 04H;neglect bitrhday symbol 忽略生日标志 CLR BS CLR SS CLR GS CLR FC CLR NB SETB 05H;生日显示有效标志位 MOV IP,#02H;中断优先级:T0>INT0>T1 MOV TMOD,#11H MOV IE,#8BH SETB IT0 MOV TH0,#3CH;50ms MOV TL0,#0B0H SETB TR0 MOV R1,#50;显示延时用 MOV R0,#0;显示延时用
;************************************************************** TWO检测开关号 TWO:MOV P0,#0FFH JB P0.5,TWO1 MOV RE,#0A0H;0A0表示闹铃无效,送0A0是为了方便将使能查表显示,表中第A项为“-” SJMP TWO2 TWO1:MOV RE,#0A1H TWO2:JB P0.0,TWO4 JB P0.1,TWO3 MOV LED12,HOUR MOV LED34,MIN MOV LED56,SECOND SJMP THREE TWO3:MOV LED12,YEAR MOV LED34,MONTH MOV LED56,DAY SJMP THREE TWO4:JB P0.1,TWO5 MOV LED12,RH MOV LED34,RM MOV LED56,RE SJMP THREE TWO5:MOV LED12,BM MOV LED34,BD MOV LED56,#0BCH SJMP THREE;************************************** THREE显示主程序(同时包含了闹铃,预置闪烁,闹铃功能)THREE:MOV P1,#0 MOV P0,#0FFH MOV DPTR,#TAB3 JNB SS,THREEB;判断预置信号是否有效,预置有效则转入判断闪烁显示模块,否则转入正常显示模块
SJMP THREEA THREEB:LJMP THREE11;THREE11是正常显示并判断整点报时及闹铃模块
THREEA:JNB P0.3,THREE1;开始是判断闪烁显示,这句判断是否预置分/月/生日的日/闹铃分
JNB GS,THREE1;是否闪烁?
LCALL TWELVE;闪烁则调用延时不显示LED34 SJMP THREE4 THREE1:MOV A,LED34 ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE2:SETB P1.3 NOP DJNZ R0,THREE2 CLR P1.3 MOV A,LED34 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE3:SETB P1.2 NOP DJNZ R0,THREE3 CLR P1.2 JNB P0.2,THREE4;判断是否预置小时/年/生日月/闹铃的小时 JNB GS,THREE4;是否显示小时/年/生日月/闹铃的小时 LCALL TWELVE SJMP THREE7 THREE4:MOV A,LED12 ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE5:SETB P1.1 NOP DJNZ R0,THREE5 CLR P1.1 MOV A,LED12 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE6:SETB P1.0 NOP DJNZ R0,THREE6 CLR P1.0 JB P0.0,THREE7;数码管56只有在显示日期的天时才有预置闪烁功能,其余三项都不需要判断闪烁 JNB P0.1,THREE7 JB P0.3,THREE7 JNB P0.4,THREE7 JNB GS,THREE7 LCALL TWELVE SJMP THREE10 THREE7:MOV A,LED56 ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE8:SETB P1.5 NOP DJNZ R0,THREE8 CLR P1.5 MOV A,LED56 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE9:SETB P1.4 NOP DJNZ R0,THREE9 CLR P1.4 THREE10:DJNZ R1,TWOA SJMP TWOB TWOA:LJMP TWO TWOB:MOV R1,#50;判断闪烁一次是否完成 CPL GS;取反闪烁标志,用于控制闪烁的亮和灭 LJMP TWO;一轮显示完后再判断开关号;**************************正常显示
THREE11:LCALL EIGHT;判断是否取反P1.6即输出闹铃或整点报时,以下每次显示都要调用一次
JB NB,THREE12;如果是在整点报时状态就不显示生日提醒,报时过后显示提醒 JNB BS,THREE12 SJMP SEVEN;跳到生日提醒程序
THREE12:CLR NB;开始正常显示时间及判断闹铃输出 MOV A,LED34 ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE13:SETB P1.3 NOP DJNZ R0,THREE13 CLR P1.3 MOV A,LED34 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE14:SETB P1.2 NOP DJNZ R0,THREE14 CLR P1.2 LCALL EIGHT MOV A,LED12 ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE15:SETB P1.1 NOP DJNZ R0,THREE15 CLR P1.1 MOV A,LED12 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE16:SETB P1.0 NOP DJNZ R0,THREE16 CLR P1.0 LCALL EIGHT MOV A,LED56 ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE17:SETB P1.5 NOP DJNZ R0,THREE17 CLR P1.5 MOV A,LED56 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE18:SETB P1.4 NOP DJNZ R0,THREE18 CLR P1.4 LJMP TWO;一轮显示完后判开关
TAB3:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H 7FH,6FH,40H,7CH,5EH;0.1.2.3.4.5.6.7.8.9.-.b.d,的字形表“bd”在显示生日时间时显示在LED56;**************************************************SEVEN生日时显示生日祝福语“HAPPY” SEVEN:MOV P1,#01H MOV P2,#76H DJNZ R0,SEVEN SEVEN1:MOV P1,#02H MOV P2,#77H DJNZ R0,SEVEN1 SEVEN2:MOV P1,#04H MOV P2,#73H DJNZ R0,SEVEN2 SEVEN3:MOV P1,#08H MOV P2,#73H DJNZ R0,SEVEN3 SEVEN4:MOV P1,#10H MOV P2,#6EH DJNZ R0,SEVEN4 LJMP TWO;一轮显示完后判开关
;******************************************************************EIGHT判断是否闹铃子程序 EIGHT:MOV A,RE CJNE A,#0A1H,EIGHT1 MOV A,MIN CJNE A,RM,EIGHT1 MOV A,HOUR CJNE A,RH,EIGHT1 SJMP EIGHT4;闹铃时间到则CPLP1.6一次并忽略生日标志(即NB有效)EIGHT1:MOV A,MIN CJNE A,#59H,EIGHT7 MOV A,SECOND CJNE A,#59H,EIGHT5;是否等于59分59秒 EIGHT2:MOV A,COUNT;是否到达后半秒 CJNE A,#10,EIGHT3 EIGHT3:JC EIGHT7 EIGHT4:CPL P1.6 SETB NB SJMP EIGHT7 EIGHT5:MOV A,SECOND CJNE A,#51H,EIGHT6;是否大于51秒 EIGHT6:JC EIGHT7 JNB 10H,EIGHT7;判断是否报低音
JB FC,EIGHT7;只有FC有效时才输出
SJMP EIGHT2 EIGHT7:CPL FC;用来控制报低音和高音,满足报低音条件时,调用两次本程序对P1.6取反一次,高音时调用一次取反一次
RET;******** NINE中断(T0)计时程序(包含了秒-分-时-日-月-年间的进位及判断大小月,平闰年)
NINE:MOV TH0,#3CH;开定时器 MOV TL0,#0B0H SETB TR0 INC COUNT MOV A,COUNT CJNE A,#20,INEAA SJMP AAA INEAA:LJMP NINE1 AAA:MOV COUNT,#0;计时 MOV A,SECOND ADD A,#01 DA A;换成bcd码以方便显示 MOV SECOND,A CJNE A,#60H,INEAA MOV SECOND,#0 MOV A,MIN ADD A,#01 DA A MOV MIN,A CJNE A,#60H,INEAA MOV MIN,#0 MOV A,HOUR ADD A,#01 DA A MOV HOUR,A CJNE A,#24H,INEAA MOV HOUR,#0 MOV A,DAY ADD A,#01 DA A MOV DAY,A;************************判断平闰年及大小月 MOV A,MONTH CJNE A,#02H,TEN6A MOV A,YEAR;把年由BCD码换成二进制码 ANL A,#0F0H SWAP A MOV B,#10 MUL AB MOV 24H,A MOV A,YEAR ANL A,#0FH ADD A,24H JB ACC.0,TEN5A;二进制码后两位为00表示为闰年 JB ACC.1,TEN5A MOV 24H,#01 MOV A,DAY CJNE A,#30H,NINE1 MOV DAY,#1 SJMP NINE0 TEN5A:MOV A,DAY CJNE A,#29H,NINE1 MOV DAY,#1 SJMP NINE0;**************判断大小月;大于等于8月时双月为大月,小于8月时单月为大月 TEN6A:MOV A,MONTH CJNE A,#08H,TEN7A TEN7A:JC TEN9A JB 18H,TEN8A MOV A,DAY CJNE A,#32H,NINE1 MOV DAY,#1 SJMP NINE0 TEN8A:MOV A,DAY CJNE A,#31H,NINE1 MOV DAY,#1 SJMP NINE0 TEN9A:JNB 18H,TEN10A MOV A,DAY CJNE A,#32H,NINE1 MOV DAY,#1 SJMP NINE0 TEN10A:MOV A,DAY CJNE A,#31H,NINE1 MOV DAY,#1;******************* NINE0:MOV A,MONTH ADD A,#01 DA A MOV MONTH,A SETB 05H CJNE A,#13H,NINE1 MOV MONTH,#1 MOV A,YEAR ADD A,#01 DA A MOV YEAR,A NINE1:MOV A,MONTH CJNE A,BM,NINE2 MOV A,DAY CJNE A,BD,NINE2 JNB 05H,NINE2 SETB BS NINE2:RETI;*****************************************TEN中断(T1)预置加一程序由INT0控制其的开启与关闭
;*******************判断预置项目 TEN:MOV TH1,#3CH MOV TL1,#0B0H SETB TR1 INC COUNTS MOV A,COUNTS CJNE A,#15,TENE MOV COUNTS,#0 JB P0.0,RBRB JB P0.1,DAT SJMP TIME DAT: LJMP DATE RBRB:JB P0.1,BDAT LJMP RTIME BDAT:LJMP BDATE TENE:RETI;**********************预置时间 TIME: JNB P0.3,TEN1 MOV A,MIN ADD A,#01 DA A MOV MIN,A CJNE A,#60H,TENA MOV MIN,#0 SJMP TENA TEN1:JNB P0.2,TENA MOV A,HOUR ADD A,#01 DA A MOV HOUR,A CJNE A,#24H,TENA MOV HOUR,#0 TENA:RETI;******************预置日期 DATE:JNB P0.3,TEN3 MOV A,MONTH ADD A,#01 DA A MOV MONTH,A CJNE A,#13H,TENB MOV MONTH,#1 SJMP TENB TEN3:JNB P0.2,TEN4 MOV A,YEAR ADD A,#01 DA A MOV YEAR,A SJMP TENB TEN4:JNB P0.4,TENB MOV A,DAY ADD A,#01 DA A MOV DAY,A;***************判断平闰年 MOV A,MONTH CJNE A,#02H,TEN6 MOV A,YEAR ANL A,#0F0H SWAP A MOV B,#10 MUL AB MOV 24H,A MOV A,YEAR ANL A,#0FH ADD A,24H JB ACC.0,TEN5 JB ACC.1,TEN5 MOV A,DAY CJNE A,#30H,TENB MOV DAY,#1 SJMP TENB TEN5:MOV A,DAY CJNE A,#29H,TENB MOV DAY,#1 SJMP TENB;**************判断大小月 TEN6:CJNE A,#08H,TEN7 TEN7:JC TEN9 JB 18H,TEN8 MOV A,DAY CJNE A,#32H,TENB MOV DAY,#1 SJMP TENB TEN8:MOV A,DAY CJNE A,#31H,TENB MOV DAY,#1 SJMP TENB TEN9:JNB 18H,TEN10 MOV A,DAY CJNE A,#32H,TENB MOV DAY,#1 SJMP TENB TEN10:MOV A,DAY CJNE A,#31H,TENB MOV DAY,#1 TENB: RETI;**************************预置闹铃时间 RTIME:JNB P0.3,TEN12 MOV A,RM ADD A,#01 DA A MOV RM,A CJNE A,#60H,TENC MOV RM,#0 SJMP TENC TEN12:JNB P0.2,TENC MOV A,RH ADD A,#01 DA A MOV RH,A CJNE A,#24H,TENC MOV RH,#0 TENC:RETI;************************预置生日日期 BDATE:JNB P0.3,TEN14 MOV A,BD ADD A,#01 DA A MOV BD,A MOV A,BM CJNE A,#02H,TEN15 MOV A,BD CJNE A,#30H,TEND MOV BD,#1 SJMP TEND TEN15:CJNE A,#08H,TEN16 TEN16:JC TEN18 JB 18H,TEN17 MOV A,BD CJNE A,#32H,TEND MOV BD,#1 SJMP TEND TEN17:MOV A,BD CJNE A,#31H,TEND MOV BD,#1 SJMP TEND TEN18:JNB 18H,TEN19 MOV A,BD CJNE A,#32H,TEND MOV BD,#1 SJMP TEND TEN19:MOV A,BD CJNE A,#31H,TEND MOV BD,#1 SJMP TEND TEN14:JNB P0.2,TEND MOV A,BM ADD A,#01 DA A MOV BM,A CJNE A,#13H,TEND MOV BM,#1 TEND:SETB 05H RETI;*******************************ELEVEN中断(INT0)控制了预置的开关以及生日信号的清除
ELEVEN:JNB SS,ELEVEN1;预置有效时按一次INT0关预置 CLR SS CLR TR1 SJMP ELEVEN3 ELEVEN1:JNB BS,ELEVEN2;预置无效判断生日信号有效则清除生日信号 CLR 05H CLR BS SJMP ELEVEN3 ELEVEN2:SETB SS;都无效则令预置有效 MOV TH1,#3CH MOV TL1,#0B0H SETB TR1 ELEVEN3:RETI;***************************************************************TWELVE 延时小程序
TWELVE:MOV P1,#0 MOV P2,#0 DJNZ R0,TWELVE TWELVE1:MOV P1,#0 MOV P2,#0 DJNZ R0,TWELVE1 RET