毕业设计(论文)-单片机控制时钟设计.doc

上传人:爱问知识人 文档编号:3949402 上传时间:2019-10-11 格式:DOC 页数:18 大小:233.50KB
返回 下载 相关 举报
毕业设计(论文)-单片机控制时钟设计.doc_第1页
第1页 / 共18页
毕业设计(论文)-单片机控制时钟设计.doc_第2页
第2页 / 共18页
毕业设计(论文)-单片机控制时钟设计.doc_第3页
第3页 / 共18页
毕业设计(论文)-单片机控制时钟设计.doc_第4页
第4页 / 共18页
毕业设计(论文)-单片机控制时钟设计.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《毕业设计(论文)-单片机控制时钟设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-单片机控制时钟设计.doc(18页珍藏版)》请在三一文库上搜索。

1、目 录摘要1引言21. 多功能数字时钟的特点及发展趋势的概述31.1多功能数字时钟的特点及发展趋势32 多功能数字时钟电路的原理与设计32.1电路组成及工作原理32.2软件设计42.3 写操作52.4读操作62.5 X1 226独特的振荡器频率在线补偿调节功能63. 多功能数字时钟电路的主要程序设计7结论 14结束语15致谢16参考文献17摘 要 随着人类科技文明的发展,人们对于时钟的要求在不断地提高,时钟已不仅仅被看成一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。在二十一世纪,随着社会的发展,多功能数字时钟应用更为广泛,并成为所有产品中不可或缺的一部分,象手机、计算

2、机、冰箱都运用得到时钟控制电路,更多的高科技产品也有这不能缺少,而在生活中也用时间来定时及控制功能。关键词: 实时时钟 , I2C接口 , 应答信号ACK , 掉电时的电池切换 AbstractAlong with human science and technology civilization development, the people in enhance unceasingly regarding the clock request,the clock has been regarded not merely as one kind to use for to demonstrat

3、e the time the tool, it also needs in very many practical applications to be able to realize more other functions.In the 21st century, along with societys development, the multi-purpose digital clock application is more widespread, and becomes in all products an indispensable part, looks like the ha

4、ndset, the computer, the refrigerator all utilizes obtains the clock controlling electric circuit, the more high tech product also has this not to be able to lack, but also uses the time in the life to come fixed time and the control function. Key word: Real-time clock,The I2C connection, the answer

5、ing signal, ACK, falls when the electricity battery cut引 言X1226具有时钟和日历的功能,时钟依赖时、分、秒寄存器来跟踪,日历依赖日期、星期、月和年寄存器来跟踪,日历可正确通过2099年,具有自动闰年修正。拥有强大的双报警功能,能够被设置到任何时钟日历值上,精确度可到ls。可用软件设置1 Hz,4096 Hz或32768Hz中任意一个频率输出。该器件提供一个备份电源输入脚VBACK1允许器件用电池或大容量电容备份供电。许多电池类型能够用做Xicor公司实时时钟器件X1226的备份电池,3.OV或3.6V的锂离子电池较为适合,使用期限为1

6、0年。另外一种用法可选择一个大容量的电容,备份时间可持续几天至两个星期,时间的长短依赖于电容容量的大小。用一个简单的硅基二极管连接到Vcc和充电电容的两端,充电电容连接到Vback引脚,注意不能使用二极管对电池充电(特别是锂离子电池)。切换到电池供电的条件是Vcc=VbackO.1V,正常操作期间,供电电压Vcc必须高于电池电压,否则电池电量将逐步耗尽。振荡器所需晶体,采用外接32.768kHz的晶体。产生的振荡误差可通过软件对数字微调寄存器、模拟微调寄存器的数值进行调节加以修正,避免了外接电阻和电容的离散性对精度的影响。器件可提供4Kb的EEPROM,8块加锁控制。可用作大量用户数据存储的存

7、储器,具有安全、保密性。这个存储器的数据在主电源和备用电源全都失效时不受影响。1. 多功能数字时钟的特点及发展趋势的概述 1.1多功能数字时钟的特点及发展趋势 1.1.1多功能数字时钟的特点(1) 高精度、多功能、小体积、低功耗; (2) 时钟的数字化、多功能化; (3) 电路简单明了,系统稳定性高。同时,该时钟系统还具有功耗小、成本低的特点,具有很强的实用性。由于系统所用元器件较少,单片机所被占用的I/O口不多,因此系统具有一定的可扩展性。1.1.2. 多功能数字时钟的发展趋势随着人类科技文明的发展,人们对于时钟的要求在不断地提高。时钟已不仅仅被看成一种用来显示时间的工具,在很多实际应用中它

8、还需要能够实现更多其它的功能。在这种趋势下,时钟的数字化、多功能化已经成为现代时钟生产研究的主导设计方向。本文正是基于这种设计方向,以单片机为控制核心,设计制作一个符合指标要求的多功能数字时钟。 本设计基于单片机技术原理,以单片机芯片AT89C51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个多功能数字时钟系统。该时钟系统主要由时钟模块、闹钟模块、环境温度检测模块、液晶显示模块、键盘控制模块以及信号提示模块组成。系统具有简单清晰的操作界面,能在4V7V直流电源下正常工作。能够准确显示时间(显示格式为时时:分分:秒秒,24小时制),可随时进行时间调整,具有闹钟时间设置、闹钟

9、开/关、止闹功能,能够对时钟所在的环境温度进行测量并显示。设计以硬件软件化为指导思想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳定性高。同时,该时钟系统还具有功耗小、成本低的特点,具有很强的实用性。由于系统所用元器件较少,单片机所被占用的I/O口不多,因此系统具有一定的可扩展性。 2 多功能数字时钟电路的原理与设计 21电路组成及工作原理实时时钟器件X1226可与各种类型的微控制器或微处理器接口,接口方式为串行的I2C接口。其中数据总线SDA是一个双向引脚,用于输入或输出数据。它是一个漏极开路输出,在使用过程中需要添加上拉电阻,阻值大约在4.710k之间。本文介绍8

10、9C5l单片机与X1226的接口方法,由于89C51单片机没有标准的I2C接口,只有用软件进行模拟。 为了更直观地看到时间变换,采用八位LED数码管显示年、月、日或时、分、秒的变换,LED数码管的驱动采用本公司自有产品PS7219A,数码管选择1.27cm共阴极红色或绿色LED数码管。由于PS7219A器件内含IMP810单片机监控器件,复位输出高电平有效,因此在使用51系统时,无需添加监控器件,使用PS7219A的复位输出给51单片机复位即可,监控电压4.63V。硬件设计原理图如图1所示。 在硬件通电调试过程中,请不要用手去触摸实时时钟X1226的晶体,这样可能会导致振荡器停振。恢复振荡器起

11、振的方法是关闭电源(包括备份电源)重新上电另外需要说明的是,测量振荡器时,请不要用示波器的探头去测量X2的振荡输出,正确的方法是用探头去测量PHzIRQ的振荡输出,以确定是否起振和振荡频率是否准确。测量时建议在该脚加一个5.lk 的上拉电阻。注意:在印刷电路设计时,xl226的布线请参考X1226数据手册的厂家推荐方法。2.2软件设计X1226由实时时钟寄存器(RTC)、状态寄存器(SR)、控制寄存器(CONTROL)、报警寄存器(Alarm0、Alarml)和客户数据存储器组成。由于实时时钟寄存器(RTC)和状态寄存器(SR)需要进行频繁的写操作,因此它的存储结构为易失性SRAM结构,该结构

12、对写操作的次数没有限制。其它寄存器结构均为非易失性EEPROM结构,该结构对写操作有次数限制,通常在10万次以上。X1226初始化程序流程如图2所示。启动条件子程序:SETB SDALCALL YS4SETB SCLLCALL YS4SETB SCLLCALLYS4CLRSDALCALLYS4CLRSCLLCALLYS4RET停止条件子程序:CLRSDALCALLYS4SETB SCLLCALLYS4SETB SDARET注:子程序YS4的作用是延时4s。2.3 写操作X1226初始化操作后,单片机对X1226进行开始条件的设置,在写CCR或EEPROM之前,主机必须先向状态寄存器写02H,确

13、认应答信号,确认后写入06H,再确认应答信号。确认后启动了写操作。首先发送高位地址,然后发送低位地址。Xl226每收到一个地址字节后,均会产生一个应答信号。在两个地址字节都收到之后,X1226等待8位数据。在收到8位数据之后,X1226再产生一个应答。然后单片机通过产生一个停止条件来终止传送。Xl226具有连续写入功能,X1226在收到每个字节后,响应一个应答,其内部将地址加一。当计数器达到该页的末尾时,它自动的“返回”到该页的首地址。这意味着单片机可从某一页的任何位置开始向存储器阵列连续写入64字节或向CCR连续写入8字节。写入Xl226数据子程序: MOVR5,#8SENDI:MOVA,D

14、ATASE RLCA MOVDATASE,A MOVSDA,C SEBSCL LCALLYS4 CLRSCL LCALLYS4 DJNZ R5,SENDl RET2.4读操作在上电时,16位地址的默认值为0000H。X1226初始化操作之后,单片机对X1226进行开始条件的设置,在写CCR或EEPROM之前,主机必须先向状态寄存器写02H,确认应答信号,确认后写入06H,再确认应答信号。确认后启动了写操作。首先发送高位地址,然后发送低位地址。Xl226每收到一个地址字节后,均会产生一个应答信号。单片机发送另一个开始条件,将RW位设置为l,接着就是接收8位数据。单片机终止读操作时,无需等待X12

15、26的应答信号,单片机即可设置停止条件。读出X1226数据子程序: MOV R5,#8 MOV DATARE,#0 SETRSDA CLR CREADl:SETBSCL LCALL YS4MOV C,SDACLR SCLMOV A,DATARERLC AMOV DATARE,ALCALL YS4DJNZ R5,READlRET2.5 X1 226独特的振荡器频率在线补偿调节功能Xicor公司在X1226芯片上集成了振荡器补偿电路,这使得用户通过软件,可在线对振荡器频率进行微调,这种对振荡器频率进行的微调通常针对两种情况。一种情况是在25常温下,对振荡器因器件初始精度带来的频率偏差进行补偿;第二

16、种情况是对因温度引起的频率漂移进行补偿。X1226内部设有数字微调寄存器(DTR)和模拟微调寄存器(ATR),两个寄存器均为非易失性寄存器。数字微调寄存器(DTR)具有三位数字微调位,调节范围一30ppm+30ppm。模拟微调寄存器(ATR)具有六个模拟微调位,调节范围+116ppm-37ppm。为了能够对外界环境温度变化引起的温漂进行补偿, 要求系统中设计一个温度传感器,并尽量让它靠近实时时钟器件X1226,这样可以真实地反映振荡器的温度,原理图如图3所示。单片机首先通过系统温度传感器获取环境温度, 并在补偿参数表中获取对应的补偿值, 然后将补偿数据填写到相应的微调寄存器中,就能实现温漂补偿

17、的目的。3. 多功能数字时钟电路的主要程序设计- MAINORG 0000HAJMP MAINORG 000BHAJMP CLOCKORG 0030HPORT EQU 8000HPORTA EQU 8001HPORTB EQU 8002HPORTC EQU 8003HDISP0 EQU 30HDISP1 EQU 31HDISP2 EQU 32HDISP3 EQU 33HDISP4 EQU 34HDISP5 EQU 35HHOUR EQU 3CHMIN EQU 3DHSEC EQU 3EHMSEC EQU 3FHAHOUR EQU 40HAMIN EQU 41HASEC EQU 42HF1 BI

18、T PSW.1MAIN: MOV SP, #50H ;设置堆栈区MOVX DPTR, #PORTMOV A, #03HMOVX DPTR, A ;8155初始化CLR F1 ;清零闹钟标志位CLR F0 ;允许计时显示MOV AHOUR, #0FFHMOV AMIN, #0FFHMOV ASEC, #0FFHMOV R7, #10HMOV R0, #DISP0CLR ALOOP: MOV R0, AINC R0DJNZ R7, LOOP ;设置初值MOV TMOD, #01HMOV TL0, #0B0HMOV TH0, #3CH ;定时器0初始化,定时时间100msSETB TR0 ; 启动定

19、时器SETB EA ;开中断SETB ET0BEGIN: ACALL ALARM ;调用定时比较ACALL KEYSCANCJNE A, #0AH, NEXT1 ;是CLR/RST键否?CLR TR0 ;是则暂停计时MOV R1, #HOUR ;地址指针指向计时缓冲区首地址AJMP MODNEXT1: CJNE A, #0BH, BEGIN ;是ALARM键否?JB F1, NEXT2 ;闹钟正在闹响否?MOV R1, #AHOUR ;地址指针指向闹钟值寄存区首地址MOD: SETB F0 ;置位时间设置/闹钟定时标志禁止显示计时时间ACALL MODIFY ;调用时间设置/闹钟定时程序SET

20、B TR0 ;重新开始计时CLR F0 ;清零时间设置/闹钟定时标志,恢复显示计时时间AJMP BEGINNEXT2: SETB P1.0 ;闹钟正在闹响,停闹CLR F1 ;清零闹钟标志AJMP BEGINMODIFY: ACALL KEYIN ;调用键盘设置子程序ACALL COMB ;调用合字子程序RETKEYIN: PUSH PSWPUSH ACCSETB RS1 ;保护现场MOV R0, #DISP0 ;R0指向显示缓冲区首地址MOV R7, #06H ;设置键盘输入次数L1: CLR RS1ACALL KEYSCAN ;调用数合法性检测(是否在于9)SETB RS1RCJNE A,

21、 #0AH, L2L2: JNC L1 ;大于9,重新键入MOV R1, A ;键号送显示缓冲区INC R1DJNZ R7, L1 ;6位时间输入完否?未完继续,否则返回POP ACCPOP PSWCLR RS1 ;恢复现场RETKEYSCAN: ACALL TEST ;调判按键是否按下子程序TESTJNZ REMOV ;有键按下调消抖延时ACALL DISPLAYACALL ALARMAJMP KEYSCAN ;无按键按下继续判断是否按键REMOV: ACALL DISPLAY ;调用显示子程序延时消抖ACALL TEST ;再判是否有键按下JNZ LIST ;有键按下转逐列扫描ACALL

22、DISPLAYACALL ALARMAJMP KEYSCAN ;无键按下继续判断是否按键LIST: MOV R2, #0FEH ;首列扫描字送R2MOV R3, #00H ;首列键号送R3LINE0: MOV DPTR, #PORTA ;DPTR指针指向8155的A口MOV A, R2 ;首列扫描字送R2MOVX DPTR, A ;首列扫描字送8155的A口MOV DPTR, #PORTC ;DPTR指针指向8155的C口MOVX A, DPTR ;读入C口的行状态JB ACC.0, EXIT ;第0行无键按下转第一行MOV A, #00H ;第0行有键按下,行首键号送AAJMP TRYK ;

23、求键号NEXT: INC R3 ;扫描下一列MOV A, R2 ;扫描字送AJNB ACC.3, EXIT ;4列扫描完,重新进行下一轮扫描RL A ;4列未扫描完,扫描字左移扫描下一列MOV R2, A ;扫描字送AAJMP LINE0 ;转向扫描下一列EXIT: AJMP KEYSCAN ;等待下一次按键TRYK: ADD A, R3 ;按公式计算键码,求得键号PUSH ACC ;键号入栈保护LETK: ACALL TEST ;等待按键释放JNZ LETK ;按键未释放,继续等待POP ACC ;按键释放,键号出栈RETTEST: MOV DPTR, #PORTA ;DPTR指针指向815

24、5的A口MOV A, #00HMOVX DPTR, A ;全扫描字00H送8155的A口MOV DPTR, #PORTC ;DPTR指针指向8155的C口MOVX A, DPTR ;读入C口行状态CPL A ;A取反,以高电平表示有键按下ANL A, #07H ;屏蔽高5位RETDISPLAY:JB F0, DISP ;允许时间显示标志F0=1转DISPACALL SEPA ;否则调用SEPA刷新显示缓冲区DISP: PUSH PSW ;动态扫描显示子程序PUSH ACCSETB RS0MOV DPTR, #PORTAMOV A, #0FFHMOVX DPTR, A ;关显示MOV R0, #

25、DISP0MOV R7, #00HMOV R6, #06HMOV R5, #0FEHDIS1: MOV DPTR, #TABMOV A, R0MOVC A, A+DPTRMOV DPTR, #PORTBMOVX DPTR, AMOV DPTR, #PORTAMOV A, R5MOVX DPTR, AHERE: DJNZ R7, HEREINC R0MOV A, R5RL AMOV R5, ADJNZ R6, DIS1CLR RS0POP ACCPOP PSWRETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHCOMB: MOV R0, #DISP1

26、 ;R0指向显示缓冲区小时低位ACALL COMB1 ;合字CJNE A, #24, CHK ;小时大于24否?CHK: JNC EXIT1 ;大于24则取消本次设置,退出MOV R1, A ;否则小时送计时缓冲区/闹钟值寄存区小时单元INC R1MOV R0, #DISP3 ;R0指向显示缓冲区分低位ACALL COMB1CJNE A, #60H, CHK1CHK1: JNC EXIT1MOV R1, AINC R1MOV R0, #DISP5 ;R0指向显示缓冲区秒低位ACALL COMB1CJNE A, #60H,CHK2CHK2: JNC EXIT1MOV R1, ARETEXIT1:

27、 AJMP MAIN ;输入不合法退出,重新清零计时COMB1: MOV A, R0ANL A, #0FH ;取出低位MOV 43H,A ;暂存于43H单元DEC R0 ;指向高位MOV A, R0ANL A, #0FHSWAP A ;高位送高4位ORL A, 43H ;高低位合并RETSEPA: PUSH PSWPUSH ACCSETB RS0MOV R0, #DISP5 ;指向显示缓冲区秒低位MOV A, SECACALL SEPA1MOV A, MINACALL SEPA1MOV A, HOURACALL SEPA1POP ACCPOP PSWRETSEPA1: MOV 44H,A ;暂

28、存44HANL A, #0FH ;取出低位MOV R0, A ;送显示缓冲区低位DEC R0 ;指向显示缓冲区高位MOV A, 44HANL A, #0F0H ;取出高位SWAP A ;高位送往低四位形成高位数据MOV R0, A ;高位数据送显示缓冲区高位RETALARM: MOV A, ASECCJNE A, SEC, BACK ;秒单元相同则继续比较,否则返回MOV A, AMINCJNE A, MIN, BACK ;分单元相同则继续比较,否则返回MOV A, AHOURCJNE A, HOUR, BACK ;小时单元相同定时时间到CLR P1.0 ;启动闹钟鸣叫SETB F1 ;置位闹

29、钟标志BACK: RETCLOCK: MOV TL0, #0B7HMOV TH0, #3CH ;重装初值,时间校正PUSH PSWPUSH ACC ;保护现场INC MSECMOV A, MSECCJNE A, #14H, DONEMOV MSEC, #00HMOV A, SECINC ADA A ;二十进制转换MOV SEC, ACJNE A, #60H, DONEMOV SEC, #00HMOV A, MININC ADA AMOV MIN, ACJNE A, #60H, DONEMOV MIN, #00HMOV A, HOURINC ADA AMOV HOUR, ACJNE A, #24

30、H, DONEMOV HOUR, #00HDONE: POP ACCPOP PSW ;恢复现场RETI-TR0 = 0;TH0 = 0x24;TL0 = 0x0c;TR0 = 1;count+;if (count = 1000)count = 0;flag = 1;time();tmod=0x01晶振11.0592MHZ每个机器周期1.08us9216次1ms结 论 本文详细的介绍了通过硬件电路的制作以及软件程序的编制,设计制作出一个多功能数字时钟系统。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,

31、都是以钟表数字化为基础的。可以说,设计多功能数字时钟的意义已不只在于数字时钟本身,更大的意义在于多功能数字时钟在许多实时控制系统中的应用。在很多实际应用中,只要对数字时钟的程序和硬件电路加以一定的修改,便可以得到实时控制的实用系统,从而应用到实际工作与生产中去。因此,研究数字时钟及扩大其应用,有着非常现实的意义。 结 束 语本人从毕业设计的要求出发,查阅了大量关于多功能数字时钟电路,网络,单片机原理,C语言及其应用方面的资料,从当初的网络知识方面的不慎了解,而现在对开发及应用有了初步的了解,同时把他们应用到毕业设计中,增强了自己实际运用能力,加深了书本知识的运用,对我日后的学习、工作无疑作了下

32、一个很好的铺垫,相信我所学的都在我明天去实际运用。在大三发学习中,我一直本着认真,勤奋的态度去追求我的学业。也收获很多,但这些努力如果没有老师和同学的帮助与鼓励,我相信也不会有今天。我在此感谢我的每一位老师的辛勤教诲!也感谢我的同学们!在毕业设计过程中,除了自身的努力外,在很多方面也得益于老师的细心讲解,他们的帮助使我更加透彻的明白设计中的每个细节,这也是我大三中最大的收获之一。在实习期间,我也从事了相关专业的行业,这使我在三年的学习得到了良好的发挥,所有的一切,都离不开老师和同学。在此,我对他们表示深深的感谢,也祝愿他们在以后的工作中取得更大更多的成就,在今后的科研中不断的开拓创新。由于本人

33、水平有限,敬请各位老师在此次设计不足处进行批评指正。致 谢近几个月时间的论文设计,我充分感受到三年来,学院老师对我们的培养,所付出的辛苦,是我们得以一辈子来回报的。在这次设计中,我满载着信心,用三年来所学的专业知识来解答我一个又一个难题,首先从实际设计出发,查阅了大量X1226时钟控制电路的资料,结合我们自己所学的单片机,C语言,数字电路,模拟电路原理应用到本设计当中来。通过老师的讲解和同学一起讨论的结果,基本完成这次设计任务。最后经自己的再三思考基本完成了此次设计任务,我想向指导老师和同学们的帮助表示衷心的感谢。毕业设计是我大学期间最后的一项学习任务,通过一个学期的学习,不仅巩固了以往所学的

34、专业知识,还提高了独立思考的能力,设计和创新能力,对于即将走上工作岗位的我有着极其重要的影。在以后的生活生活中,我将认真对待身边的每一件事,我想只有同过自己亲手去创造和体验的,都将会给自己年人生更高的一个阶层,都会给自己一个更好的安慰和鼓励。最后,我还要感谢我的老师们三年来对我的辛勤培育!感谢我的同学们和朋友们!感谢母校为我提供了一个安静舒适的学习环境! 参 考 文 献1丁元杰主编,单片微机原理及应用,机械工业出版社2005年1月第2版第10次印刷;2Ding Yuanjie, Monolithic Microcomputer Principle And Application, mechanical industry publishing house in January, 2005 2nd edition 10th printing ; 3水清,单片机控制实时时钟X1226的设计 J;现代电子技术; 2004年19期; 118-119;4曾日波,2004多功能数字电子钟系统的设计与实现乐山师范学院学报19(12):23275 张鑫,华臻,陈书谦.单片机原理及应用.北京:电子工业出版社,2005.6 蒋延彪.单片机原理及应用(MCS-51).重庆:重庆大学出版社,2003.7 曾日波2004多功能数字电子钟系统的设计与实现乐山师范学院学报19(12):232717

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1