数字电子钟的设计与制作.doc_第1页
数字电子钟的设计与制作.doc_第2页
数字电子钟的设计与制作.doc_第3页
数字电子钟的设计与制作.doc_第4页
数字电子钟的设计与制作.doc_第5页
免费预览已结束,剩余16页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

广西工业职业技术学院设计说明书课 题 名 称: 数字电子钟的设计与制作 姓 名: 刘宏盛 专 业: 通信技术 班 级: 通信 0831 起 止 日 期: 2010年9月6日至2010年10月30日 (第一周至第八周) 指 导 教 师: 谢 兰 清 广西工业职业技术学院设计说明书题目: 数字电子钟的设计与制作 目录第1章 绪论1.1摘要41.2 课题背景.51.3数字电子钟的意义及应用5第2章 整体设计方案.2.1 单片机的设计.62.2单元模块的设计.72.2.1硬件模块的设计52.2.2软件模块的设计.8第三章 数字钟的外围电路设计.3.1 计时电路.93.2 译码与显示电路.113.3校时电路.123.4整点报时电路.12第四章 数字钟的软件设计17.4.1 系统软件设计内容.134.2 主程序.144.3 中断子程序.154.4 LCD显示子程序.17第五章 数字电子钟的调试.265.1 硬件调试.185.2.2 软件调试软件调试问题分析20第六章 系统PCB图.21第七章结论与谢辞.22第八章设计总结.23参考文献23.第一章 绪论1.1论文摘要本毕业论文基于单片机技术原理,以单片机芯片STC89C51作为核心控制器,通过硬件电路的制作以及软件程序的编制设计制作一个多功能数字时钟系统。能够准确显示时间(显示格式为时时:分分:秒秒,24小时制),可随时进行时间调整,具有闹钟时间设置、闹钟开/关、止闹功能以及日历功能。电路主要是采用小规模单片机集成电路本系统的设计电路主要的控制操作基本上都是具有单片机控制整个电路实现各项功能因此在硬件方面的设计较为简单。由核心部位89c51单片机为中心;(l)连接控制电路的各个多功能调整作用的开关;(2)连接具有固定频率的石英振荡器;(3)连接显示部位的各个LED灯;因此整个电路比较简洁明了统稳定性高。同时,该时钟系统还具有功耗小、成本低的特点,具有很强的实用性。由于系统所用元器件较少,单片机所被占用的I/O口不多,因此系统具有一定的可扩展性。关键词:单片机 液晶显示 日历芯片1.2课题背景在人类社会高度发达的今天数字电子时钟是一个无处不在电子产品经过多年的发展技术已经相当成熟了。目前应用广泛的数字电子钟太多是用AT89C51单片机核心部件制作的。以单片机芯片ATC89C51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作一个多功能数字时钟系统。能够准确显示时间(显示格式为时时:分分:秒秒,24小时制),可随时进行时间调整,具有闹钟时间设置、闹钟开/关、止闹功能以及日历功能。设计以硬件软件化为指导思想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳定性高。同时,该时钟系统还具有功耗小、成本低的特点,具有很强的实用性。由于系统所用元器件较少,单片机所被占用的I/O口不多,因此系统具有一定的可扩展性。1.3数字电子钟的意义及应用时钟,自从它被发明的那天起,就成为人们生活中必不可少的一种工具,尤其是在现在这个讲究效率的年代,时钟更是在人类生产、生活、学习等多个领域得到广泛的应用。比喻在医院、车站、厕所、机场等场所的时间显示。然而随着时间的推移,人们不仅对于时钟精度的要求越来越高,而且对于时钟功能的要求也越来越多,时钟已不仅仅是一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。诸如闹钟功能、日历显示功能、温度测量功能、湿度测量功能、电压测量功能、频率测量功能、过欠压报警功能等。钟表的数字化给人们的生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。可以说,设计多功能数字时钟的意义已不只在于数字时钟本身,更大的意义在于多功能数字时钟在许多实时控制系统中的应用。在很多实际应用中,只要对数字时钟的程序和硬件电路加以一定的修改,便可以得到实时控制的实用系统,从而应用到实际工作与生产中去。因此,研究数字时钟及扩大其应用,有着非常现实的意义。第2章 整体设计方案本系统分为四个部分。85C51单片机为核心控制部件,以七段LED灯为核心显示部件,以石英振荡器为主要计时部件,干电池为供电部件。通过程序实现对年、月、日、时、分、秒数字显示,周期为24小时。显示满刻度为23时59分59秒,并具有校时功能、省电模式、智能闹铃的数字钟。主要是利用C语言的编程,实现各项功能。数字时钟的组成框图2.1 单片机的设计本系统分为四个部分。85C51单片机为核心控制部件,以七段LED灯为核心显示部件,以石英振荡器为主要计时部件,干电池为供电部件。通过程序实现对年、月、日、时、分、秒数字显示,周期为24小时。显示满刻度为23时59分59秒,并具有校时功能、省电模式、智能闹铃的数字钟。主要是利用C语言的编程,实现各项功能。 总体设计的布局2.2单元模块的设计2.2.1硬件模块的设计:(1)电源部分为四节5号干电池(2)控制电路以89c51单片机为核心部件元件图(图1) AT89C51单片机电路图(图1)主要功能:实现对显示部件的七段管的显示控制,连接固定频率的石英振荡器使其产生计时的功能,连接到调整电路从而能够实现对时间的调整以及其他功能的实现。从而实现对整个电路的控制,真正体现初核心部件的地位。(3)输入电路四个按钮的开关(图2) 调整电路的四个按钮开关(图2)功能:按Function按键可以进入设置模式包括有:时间 日期 年月的设定;智能闹铃的设定其中可以设定5组闹铃;省电模式的设定:按UP按键或down按键分别可以实现功能的选择和时间设定的调整;Back按键可以实现退出或者进入的功能:(4)输出电路9个共阳极7段管2.2.2软件模块的设计我们的电子钟程序主要由循环程序与中断程序组成。循环一共有键盘扫描,七段管扫描,按键判断与处理三大模块。(1)键盘扫描模块:我们一共使用了四个按键开关,分别连接在单片机的P10,P11,P12,P13,引脚上,并且依次定义为功能键 向上键 向下键 返回键。在键盘的扫描程序中定义了一些全局变量Key来存储并传递当前的按键(2)七段管扫描模块:七段管显示部分是电子钟设计的关键,我们采用了九个共阳七段管来作为电子中的信息输出。其中18位七段管公共端用P3端口来控制,第9位公共端由P1.5控制。a, b, c, d ,e ,f ,g, dp端共同用P2控制输出。(3)按键判断与处理模块:对按键的判断与处理模块是电子钟程序的核心,主要是接收“按键扫描模块”传递过来的值,对不同的按键并且结合当前的状态作出不同的除了与反馈。在程序中我们定义变量staaus来区分电子钟当前的不同状态。(4)中断模块是一个独立的函数,我们在程序初始化时将中断使能寄存器设置为T0定时器,并且将中断时间设置为50ms,每20次中断时间变量增加1s。因为中断函数比较特殊不能在里面放过多的程序否则会导致计时不准确或者造成死机循环。所以中断函数中除了计算时间改变时间日期变量不再加任何程序 第三章 数字钟的外围电路设计3.1计时电路应为电子钟是由时 分 秒组成。分别为60进制和24进制。采用一片4520接成60 进制4520的第一组4位二进制接成秒的个位,另一组接成秒的十位,分也为60进制,时为24进制。此;两种进制的次序和二进制完全相同只是模数不是2的整幂。(1)60进制计数器(如图四):4520的第一组4位二进制构成10进制,第二组4位二进制构成6进制,因为两组都是为16进制而4520具有异步清零的功能。在第一组的4位二进制加法计数器中,当第十个脉冲来到时此时它的四级触发器状态为“1010”这是Qd Qb均为高电平。因为4520的清零端位高电平清零,所以Qd Qb经过2输入的与非门连接后输出给后一级反向器接到清零CR端,使第一组为10进制,第二组为6进制,当第一组清零的同时给第二组的加法计数器的CP端进行计数。而第一组的第6个脉冲进位到来时,此时第二组的触发器状态为“0110”,这时Qb Qc均为高电平“1”,将它们经过二组输入与非门后,再经过一级反相器,送到计数器的清零端,在清零的同时给上一级进位,从而利用了4520的异步清零的功能结成了60进制计数器。 图四60进制计数器 (2)24进制计数器(图5):24进制计数器由4520和4510组成。当时的个位计数器4510复零进位输出端向时的十位输出进位信号,到达时时的个位计数器状态为“0100”,时的十位计数器状态为“0010”即时的个位,计数器的输出Qc和十的十位计数器的输出端Qb均为高电平“1”进过与非门 再经过一级反向器送到4510和4520的清零CR端,计数器复位清零。 24进制计数器电路3.2译码与显示电路:(图6)译码是把给定的代码进行翻译,将时分秒计数器输出的四位二进制代码翻译为相应的十位进制数,并通过LED显示器显示,通常LED显示器与译码器是配套使用的。我选用的七段译码驱动器(74LS47)和数码管(LED)是共阳接法。LED显示器的3 8两脚接在一起,先留点组委200欧姆和+5V连接。实际使用时a b c d e f g各段都要接一个限流电阻。 (图六)译码显示电路3.3校时电路:(图7)当电子钟接通电源或者计时发生误差是,均需要校正时间校时电路分别实现对时 分 秒的校准。由于每个机械开关具有抖动现象因此用RS触发器作为去抖动电路。采用RS基本触发器及单刀双掷开关,闸刀常闭于2点,每搬动一次产生一个计数脉冲实现校时功能。 (图7)校时电路3.4整点报时电路:(图8)数字钟整点报时是最基本的功能之一。现在本电路也在整点前10秒中内开始整点报时,即当时间在59分51秒到59分59秒期间时,报时电路报时控制信号每隔1秒钟鸣叫一次,每次持续的时间为1秒,共响5次。前四次为低音500hz,最后一声为高音1000hz 整点报时电路(图8)第四章数字钟的软件设计4.1 系统软件设计内容(1)主程序 设计中采用定时去T0中断完成,其余状态循环调用显示子程序,当P3.7终端或者P1.7端口开关按下时,转入调整时间或者调整日期功能程序。(2)显示子程序数码管显示的数据存放在内存单元70H-75H中 其中70H-71H存放秒数据。72H-73H存放份数据,74H-75H存放时数据每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能显示用十进制BCD码数据的对应码段存放在ROM中。显示时先取出70H-75H某一地址中的数据,然后查的对应的显示段码从P1口输出。P3口将对应的数码管选中,就是显示地址单元的数据值。(3)定时器T0终端服务程序定时器T0用于时间计时。定时溢出中断周期为50ms,终端累计20次时对秒计时单元进行加1操作。时间计数单元地址分别在70H-71H(S) 76H-77H(min) 78H-79H(h),7AH但愿存放“熄灭符”数据。在计数单元中采用十进制BCD码计数,满60 进位。(4)T1中断服务程序应用于指示调整单元数字的亮闪。时间调整状态下,每过0.3秒,将对应单元的显示数据换成熄灭符数据。这样在调整时间时,对应调整单元的显示数据就会间隔闪亮。4.2主程序中断入口程序ORG 0000HLJMP STARTORG 0003HRET1ORG 000BHLJMP INTT0 ORG 0013HRET1ORG 001BHORG 0023HRET1主程序START:MOV R0,#70H MOV R7,#0BHCLEARDISP:MOV R0,#00H INC R0 DJNZ R7, CLEARDISP MOV 20H,#00H MOV 7AH,#0AH MOV TMODH,#11H MOV TL0H,#00H MOV TH0H,#4CH MOV TL1H,#00H MOV TH1H,#4CH SETB EA SETB ET0 SETB TR0MOV R4,#14H START1:LCALL DISPLAY JNBP3.7,SETMM1 SJMP START1SETMM1:LJMP SETMMT0中断服务程序:INTT0:PUSH ACCPUSH PSWCLR ET0CLR TR0MOV A,#0B7HADD A,TL0MOV TL0,#AMOV AH,#4CHADDC A,TH0MOV TH0,ASETB TR0DJNZ R4,OUTT0ADDSS: MOV R4,#14HMOV R0,#71HACALLADD1MOV A,R3CLR CCJNE A,#60H,ADDMMADDMM:JC OUTTOACALL CLR0MOV R0,#77HACCALL ADD1MOV A,#R3CLR C CJNE A,#60H,ADDHHADDHH:JC OUTT0ACALL CLR0MOV R0,#79HACALL ADD1MOV A, R3CLR CCJNE A,#24H,HOUR HOUR:JC OUTT0ACALL CLR0OUTT0: MOV 72H,76HMOV 73H,77H MOV 74H,78HMOV 75H,79HPOP PSW POP ACCSETB ET0显示程序:DISPLAY: MOV R1,#70HMOV R5,#0FEHPLAY: MOV A, R5MOV R3,AMOV A,R1MOV DPTR,#TABMOVC A,A+DPTRMOV P1,ALCALL ALIMSINC R1MOV A,R5JNB ACC.5,ENDOUTRLAMOV R5,AAJMP PLAYENDOUT:SETB P3.5MOV P1,#0FFHRETEND五数字电子钟的调试5.1 软件调试问题分析LED闪烁问题:虽然本次设计的最终方案是采用LCD显示屏实现显示功能,但是在进行方案比较时曾采用过LED显示方法,最初数码管显示不正常,出现闪烁现象。通过调试发现这是由于延时时间选择不当造成的。由于数码管是采用动态显示方式,为了使人眼产生视觉暂留效果,每一次显示时都必须加入适当的时间延时。由于一开始所选用的延时时间太短,因此出现闪烁现象,在增加显示延时之后,数码管显示正常。闹铃蜂鸣器异常启动问题:闹铃蜂鸣器的启动/关闭是通过单片机输出的控制信号来实现的,当当前时间与闹钟设置时间比较吻合时,单片机将对闹铃控制口P3.4执行取反命令,从而启动蜂鸣器发声。一开始编写程序时,没有对P3.4口的最初状态作正确设置,由于系统开机复位后,P3.4口处于高电平状态,因此出现一开机蜂鸣器就处于启动状态的情况。通过在主程序最开始加入对P3.4口取零命令后,蜂鸣器启动/关闭控制恢复正常。按键消抖问题:在最初编写程序时,键盘控制部分按照常例加入了按键消抖程序。在实际调试中,发现按键出现反应不灵敏现象。这是因为在键盘控制程序中,除了消抖程序外,还加入了按键提示音程序(每次按压键盘时,蜂鸣器发出“哔”的一声提示音)。由于在调用提示音子程序时,实际上已实现了一次时间的延时,因此再加入按键消抖程序的延时后,致使延时时间过长而出现按键反应不灵敏问题。通过调试发现提示音子程序本身所产生的延时已能够满足按键消抖时间延迟的要求,因此在键盘控制程序中无需再加入专门的按键消抖程序。在去除按键消抖程序后,按键控制灵敏度恢复正常。计时显示异常问题:计时程序里面秒值显示每次达到60后直接跳变到下一分钟的01秒,最终会出现24:60:60的时间显示。正确的显示应该是秒值达到59后变成00,时间值在显示到23:59:59之后的下一秒显示为00:00:00。出现这种异常显示的主要问题在于每次计时相应的时钟计时器在向高一位进位的时候没有将显存单元清零。因此在计时程序里面出现进位情况时,增加相应显存清零的语句后,计时显示恢复正常5.1硬件的调试 (1)硬件测试实物图 (2)(3)六系统PCB图七结论与谢辞本运用单片机技术,以单片机STC89C51作为核心控制器,设计制作了一个多功能数字时钟。由于时间和技术方面的限制,本设计的功能还不够完善和丰富,系统还具有一定的扩展空间。在不改变系统硬件电路的基础上,通过单片机程序的编制,还能为系统增加其它的功能,如码表计数功能、计时倒数功能、多组定时功能、闹铃音乐提示音功能等。由于系统所用I/O口较少,因此只要对系统硬件进行一定改动,利用单片机空出的I/O口,通过单片机程序的编制,还能为系统增加其它的功能,如湿度测量功能、家电开关控制功能等。在软件得编程中由于要用到大量得汇编指令,所以采用模块化思想编程,会使思路比较清晰,以后还可以很容易做扩展功能本次毕业论文锻炼了我理解问题、分析问题、解决问题的能力。使我学会有效查找文献和筛选对设计有用文献的方法。在设计的过程中,吸取了很多前人的设计理念。这些文献资料为设计的成功提供了理论和实践的指导。在学习新知识的同时,把课程中学到的理论知识很好的运用到实际设计中来,增强了动手能力和系统开发研制能力。谢兰清老师从本毕业论文开始的总体规划布置和详细要求到设计的最终完成以及论文的撰写和修改,一直给予

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论