毕业设计63单片机控制时钟设计.docx
- 文档编号:26194339
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:18
- 大小:162.49KB
毕业设计63单片机控制时钟设计.docx
《毕业设计63单片机控制时钟设计.docx》由会员分享,可在线阅读,更多相关《毕业设计63单片机控制时钟设计.docx(18页珍藏版)》请在冰豆网上搜索。
毕业设计63单片机控制时钟设计
目录
摘要……………………………………………………………………………………1
引言……………………………………………………………………………………2
1.多功能数字时钟的特点及发展趋势的概述……………………………………3
1.1多功能数字时钟的特点及发展趋势……………………………………3
2多功能数字时钟电路的原理与设计……………………………………3
2.1电路组成及工作原理……………………………………………………3
2.2软件设计………………………………………………………………4
2.3写操作………………………………………………………………5
2.4读操作……………………………………………………………………6
2.5X1226独特的振荡器频率在线补偿调节功能………………………………6
3.多功能数字时钟电路的主要程序设计……………………………………7
结论…………………………………………………………………………14
结束语…………………………………………………………………………15
致谢………………………………………………………………………………16
参考文献…………………………………………………………………………17
摘要
随着人类科技文明的发展,人们对于时钟的要求在不断地提高,时钟已不仅仅被看成一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。
在二十一世纪,随着社会的发展,多功能数字时钟应用更为广泛,并成为所有产品中不可或缺的一部分,象手机、计算机、冰箱都运用得到时钟控制电路,更多的高科技产品也有这不能缺少,而在生活中也用时间来定时及控制功能。
关键词:
实时时钟,I2C接口,应答信号ACK,掉电时的电池切换
Abstract
Alongwithhumanscienceandtechnologycivilizationdevelopment,thepeopleinenhanceunceasinglyregardingtheclockrequest,theclockhasbeenregardednotmerelyasonekindtousefortodemonstratethetimethetool,italsoneedsinverymanypracticalapplicationstobeabletorealizemoreotherfunctions.Inthe21stcentury,alongwithsociety'sdevelopment,themulti-purposedigitalclockapplicationismorewidespread,andbecomesinallproductsanindispensablepart,lookslikethehandset,thecomputer,therefrigeratorallutilizesobtainstheclockcontrollingelectriccircuit,themorehightechproductalsohasthisnottobeabletolack,butalsousesthetimeinthelifetocomefixedtimeandthecontrolfunction.
Keyword:
Real-timeclock,TheI2Cconnection,theansweringsignal,ACK,fallswhentheelectricitybatterycut
引言
X1226具有时钟和日历的功能,时钟依赖时、分、秒寄存器来跟踪,日历依赖日期、星期、月和年寄存器来跟踪,日历可正确通过2099年,具有自动闰年修正。
拥有强大的双报警功能,能够被设置到任何时钟/日历值上,精确度可到ls。
可用软件设置1Hz,4096Hz或32768Hz中任意一个频率输出。
该器件提供一个备份电源输入脚VBACK1允许器件用电池或大容量电容备份供电。
许多电池类型能够用做Xicor公司实时时钟器件X1226的备份电池,3.OV或3.6V的锂离子电池较为适合,使用期限为10年。
另外一种用法可选择一个大容量的电容,备份时间可持续几天至两个星期,时间的长短依赖于电容容量的大小。
用一个简单的硅基二极管连接到Vcc和充电电容的两端,充电电容连接到Vback引脚,注意不能使用二极管对电池充电(特别是锂离子电池)。
切换到电池供电的条件是Vcc=Vback—O.1V,正常操作期间,供电电压Vcc必须高于电池电压,否则电池电量将逐步耗尽。
振荡器所需晶体,采用外接32.768kHz的晶体。
产生的振荡误差可通过软件对数字微调寄存器、模拟微调寄存器的数值进行调节加以修正,避免了外接电阻和电容的离散性对精度的影响。
器件可提供4Kb的EEPROM,8块加锁控制。
可用作大量用户数据存储的存储器,具有安全、保密性。
这个存储器的数据在主电源和备用电源全都失效时不受影响。
1.多功能数字时钟的特点及发展趋势的概述
1.1多功能数字时钟的特点及发展趋势
1.1.1多功能数字时钟的特点
(1)高精度、多功能、小体积、低功耗;
(2)时钟的数字化、多功能化;
(3)电路简单明了,系统稳定性高。
同时,该时钟系统还具有功耗小、成本低的特点,具有很强的实用性。
由于系统所用元器件较少,单片机所被占用的I/O口不多,因此系统具有一定的可扩展性。
1.1.2.多功能数字时钟的发展趋势
随着人类科技文明的发展,人们对于时钟的要求在不断地提高。
时钟已不仅仅被看成一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。
在这种趋势下,时钟的数字化、多功能化已经成为现代时钟生产研究的主导设计方向。
本文正是基于这种设计方向,以单片机为控制核心,设计制作一个符合指标要求的多功能数字时钟。
本设计基于单片机技术原理,以单片机芯片AT89C51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个多功能数字时钟系统。
该时钟系统主要由时钟模块、闹钟模块、环境温度检测模块、液晶显示模块、键盘控制模块以及信号提示模块组成。
系统具有简单清晰的操作界面,能在4V~7V直流电源下正常工作。
能够准确显示时间(显示格式为时时:
分分:
秒秒,24小时制),可随时进行时间调整,具有闹钟时间设置、闹钟开/关、止闹功能,能够对时钟所在的环境温度进行测量并显示。
设计以硬件软件化为指导思想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳定性高。
同时,该时钟系统还具有功耗小、成本低的特点,具有很强的实用性。
由于系统所用元器件较少,单片机所被占用的I/O口不多,因此系统具有一定的可扩展性。
2多功能数字时钟电路的原理与设计
2.1电路组成及工作原理
实时时钟器件X1226可与各种类型的微控制器或微处理器接口,接口方式为串行的I2C接口。
其中数据总线SDA是一个双向引脚,用于输入或输出数据。
它是一个漏极开路输出,在使用过程中需要添加上拉电阻,阻值大约在4.7Ω~10kΩ之间。
本文介绍89C5l单片机与X1226的接口方法,由于89C51单片机没有标准的I2C接口,只有用软件进行模拟。
为了更直观地看到时间变换,采用八位LED数码管显示年、月、日或时、分、秒的变换,LED数码管的驱动采用本公司自有产品PS7219A,数码管选择1.27cm共阴极红色或绿色LED数码管。
由于PS7219A器件内含IMP810单片机监控器件,复位输出高电平有效,因此在使用51系统时,无需添加监控器件,使用PS7219A的复位输出给51单片机复位即可,监控电压4.63V。
硬件设计原理图如图1所示。
在硬件通电调试过程中,请不要用手去触摸实时时钟X1226的晶体,这样可能会导致振荡器停振。
恢复振荡器起振的方法是关闭电源(包括备份电源)重新上电另外需要说明的是,测量振荡器时,请不要用示波器的探头去测量X2的振荡输出,正确的方法是用探头去测量PHz/IRQ的振荡输出,以确定是否起振和振荡频率是否准确。
测量时建议在该脚加一个5.lkΩ的上拉电阻。
注意:
在印刷电路设计时,xl226的布线请参考X1226数据手册的厂家推荐方法。
2.2软件设计
X1226由实时时钟寄存器(RTC)、状态寄存器(SR)、控制寄存器(CONTROL)、报警寄存器(Alarm0、Alarml)和客户数据存储器组成。
由于实时时钟寄存器(RTC)和状态寄存器(SR)需要进行频繁的写操作,因此它的存储结构为易失性SRAM结构,该结构对写操作的次数没有限制。
其它寄存器结构均为非易失性EEPROM结构,该结构对写操作有次数限制,通常在10万次以上。
X1226初始化程序流程如图2所示。
启动条件子程序:
SETBSDA
LCALLYS4
SETBSCL
LCALLYS4
SETB SCL
LCALL YS4
CLR SDA
LCALL YS4
CLR SCL
LCALL YS4
RET
停止条件子程序:
CLR SDA
LCALL YS4
SETB SCL
LCALL YS4
SETB SDA
RET
注:
子程序YS4的作用是延时4μs。
2.3写操作
X1226初始化操作后,单片机对X1226进行开始条件的设置,在写CCR或EEPROM之前,主机必须先向状态寄存器写02H,确认应答信号,确认后写入06H,再确认应答信号。
确认后启动了写操作。
首先发送高位地址,然后发送低位地址。
Xl226每收到一个地址字节后,均会产生一个应答信号。
在两个地址字节都收到之后,X1226等待8位数据。
在收到8位数据之后,X1226再产生一个应答。
然后单片机通过产生一个停止条件来终止传送。
Xl226具有连续写入功能,X1226在收到每个字节后,响应一个应答,其内部将地址加一。
当计数器达到该页的末尾时,它自动的“返回”到该页的首地址。
这意味着单片机可从某一页的任何位置开始向存储器阵列连续写入64字节或向CCR连续写入8字节。
写入Xl226数据子程序:
MOV R5,#8
SENDI:
MOV A,DATASE
RLC A
MOV DATASE,A
MOV SDA,C
SEB SCL
LCALL YS4
CLR SCL
LCALL YS4
DJNZ R5,SENDl
RET
2.4读操作
在上电时,16位地址的默认值为0000H。
X1226初始化操作之后,单片机对X1226进行开始条件的设置,在写CCR或EEPROM之前,主机必须先向状态寄存器写02H,确认应答信号,确认后写入06H,再确认应答信号。
确认后启动了写操作。
首先发送高位地址,然后发送低位地址。
Xl226每收到一个地址字节后,均会产生一个应答信号。
单片机发送另一个开始条件,将R/W位设置为l,接着就是接收8位数据。
单片机终止读操作时,无需等待X1226的应答信号,单片机即可设置停止条件。
读出X1226数据子程序:
MOV R5,#8
MOV DATARE,#0
SETR SDA
CLR C
READl:
SETB SCL
LCALL YS4
MOVC,SDA
CLRSCL
MOVA,DATARE
RLCA
MOVDATARE,A
LCALLYS4
DJNZR5,READl
RET
2.5X1226独特的振荡器频率在线补偿调节功能
Xicor公司在X1226芯片上集成了振荡器补偿电路,这使得用户通过软件,可在线对振荡器频率进行微调,这种对振荡器频率进行的微调通常针对两种情况。
一种情况是在25℃常温下,对振荡器因器件初始精度带来的频率偏差进行补偿;第二种情况是对因温度引起的频率漂移进行补偿。
X1226内部设有数字微调寄存器(DTR)和模拟微调寄存器(ATR),两个寄存器均为非易失性寄存器。
数字微调寄存器(DTR)具有三位数字微调位,调节范围一30ppm~+30ppm。
模拟微调寄存器(ATR)具有六个模拟微调位,调节范围+116ppm~-37ppm。
为了能够对外界环境温度变化引起的温漂进行补偿,要求系统中设计一个温度传感器,并尽量让它靠近实时时钟器件X1226,这样可以真实地反映振荡器的温度,原理图如图3所示。
单片机首先通过系统温度传感器获取环境温度,并在补偿参数表中获取对应的补偿值,然后将补偿数据填写到相应的微调寄存器中,就能实现温漂补偿的目的。
3.多功能数字时钟电路的主要程序设计
------
MAIN
ORG0000H
AJMPMAIN
ORG000BH
AJMPCLOCK
ORG0030H
PORTEQU8000H
PORTAEQU8001H
PORTBEQU8002H
PORTCEQU8003H
DISP0EQU30H
DISP1EQU31H
DISP2EQU32H
DISP3EQU33H
DISP4EQU34H
DISP5EQU35H
HOUREQU3CH
MINEQU3DH
SECEQU3EH
MSECEQU3FH
AHOUREQU40H
AMINEQU41H
ASECEQU42H
F1BITPSW.1
MAIN:
MOVSP,#50H;设置堆栈区
MOVXDPTR,#PORT
MOVA,#03H
MOVX@DPTR,A;8155初始化
CLRF1;清零闹钟标志位
CLRF0;允许计时显示
MOVAHOUR,#0FFH
MOVAMIN,#0FFH
MOVASEC,#0FFH
MOVR7,#10H
MOVR0,#DISP0
CLRA
LOOP:
MOV@R0,A
INCR0
DJNZR7,LOOP;设置初值
MOVTMOD,#01H
MOVTL0,#0B0H
MOVTH0,#3CH;定时器0初始化,定时时间100ms
SETBTR0;启动定时器
SETBEA;开中断
SETBET0
BEGIN:
ACALLALARM;调用定时比较
ACALLKEYSCAN
CJNEA,#0AH,NEXT1;是CLR/RST键否?
CLRTR0;是则暂停计时
MOVR1,#HOUR;地址指针指向计时缓冲区首地址
AJMPMOD
NEXT1:
CJNEA,#0BH,BEGIN;是ALARM键否?
JBF1,NEXT2;闹钟正在闹响否?
MOVR1,#AHOUR;地址指针指向闹钟值寄存区首地址
MOD:
SETBF0;置位时间设置/闹钟定时标志禁止显示计时时间ACALLMODIFY;调用时间设置/闹钟定时程序
SETBTR0;重新开始计时
CLRF0;清零时间设置/闹钟定时标志,恢复显示计时时间
AJMPBEGIN
NEXT2:
SETBP1.0;闹钟正在闹响,停闹
CLRF1;清零闹钟标志
AJMPBEGIN
MODIFY:
ACALLKEYIN;调用键盘设置子程序
ACALLCOMB;调用合字子程序
RET
KEYIN:
PUSHPSW
PUSHACC
SETBRS1;保护现场
MOVR0,#DISP0;R0指向显示缓冲区首地址
MOVR7,#06H;设置键盘输入次数
L1:
CLRRS1
ACALLKEYSCAN;调用数合法性检测(是否在于9)
SETBRS1R
CJNEA,#0AH,L2
L2:
JNCL1;大于9,重新键入
MOV@R1,A;键号送显示缓冲区
INCR1
DJNZR7,L1;6位时间输入完否?
未完继续,否则返回
POPACC
POPPSW
CLRRS1;恢复现场
RET
KEYSCAN:
ACALLTEST;调判按键是否按下子程序TEST
JNZREMOV;有键按下调消抖延时
ACALLDISPLAY
ACALLALARM
AJMPKEYSCAN;无按键按下继续判断是否按键
REMOV:
ACALLDISPLAY;调用显示子程序延时消抖
ACALLTEST;再判是否有键按下
JNZLIST;有键按下转逐列扫描
ACALLDISPLAY
ACALLALARM
AJMPKEYSCAN;无键按下继续判断是否按键
LIST:
MOVR2,#0FEH;首列扫描字送R2
MOVR3,#00H;首列键号送R3
LINE0:
MOVDPTR,#PORTA;DPTR指针指向8155的A口
MOVA,R2;首列扫描字送R2
MOVX@DPTR,A;首列扫描字送8155的A口
MOVDPTR,#PORTC;DPTR指针指向8155的C口
MOVXA,@DPTR;读入C口的行状态
JBACC.0,EXIT;第0行无键按下转第一行
MOVA,#00H;第0行有键按下,行首键号送A
AJMPTRYK;求键号
NEXT:
INCR3;扫描下一列
MOVA,R2;扫描字送A
JNBACC.3,EXIT;4列扫描完,重新进行下一轮扫描
RLA;4列未扫描完,扫描字左移扫描下一列
MOVR2,A;扫描字送A
AJMPLINE0;转向扫描下一列
EXIT:
AJMPKEYSCAN;等待下一次按键
TRYK:
ADDA,R3;按公式计算键码,求得键号
PUSHACC;键号入栈保护
LETK:
ACALLTEST;等待按键释放
JNZLETK;按键未释放,继续等待
POPACC;按键释放,键号出栈
RET
TEST:
MOVDPTR,#PORTA;DPTR指针指向8155的A口
MOVA,#00H
MOVX@DPTR,A;全扫描字00H送8155的A口
MOVDPTR,#PORTC;DPTR指针指向8155的C口
MOVXA,@DPTR;读入C口行状态
CPLA;A取反,以高电平表示有键按下
ANLA,#07H;屏蔽高5位
RET
DISPLAY:
JBF0,DISP;允许时间显示标志F0=1转DISP
ACALLSEPA;否则调用SEPA刷新显示缓冲区
DISP:
PUSHPSW;动态扫描显示子程序
PUSHACC
SETBRS0
MOVDPTR,#PORTA
MOVA,#0FFH
MOVX@DPTR,A;关显示
MOVR0,#DISP0
MOVR7,#00H
MOVR6,#06H
MOVR5,#0FEH
DIS1:
MOVDPTR,#TAB
MOVA,@R0
MOVCA,@A+DPTR
MOVDPTR,#PORTB
MOVX@DPTR,A
MOVDPTR,#PORTA
MOVA,R5
MOVX@DPTR,A
HERE:
DJNZR7,HERE
INCR0
MOVA,R5
RLA
MOVR5,A
DJNZR6,DIS1
CLRRS0
POPACC
POPPSW
RET
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
COMB:
MOVR0,#DISP1;R0指向显示缓冲区小时低位
ACALLCOMB1;合字
CJNEA,#24,CHK;小时大于24否?
CHK:
JNCEXIT1;大于24则取消本次设置,退出
MOV@R1,A;否则小时送计时缓冲区/闹钟值寄存区小时单元
INCR1
MOVR0,#DISP3;R0指向显示缓冲区分低位
ACALLCOMB1
CJNEA,#60H,CHK1
CHK1:
JNCEXIT1
MOV@R1,A
INCR1
MOVR0,#DISP5;R0指向显示缓冲区秒低位
ACALLCOMB1
CJNEA,#60H,CHK2
CHK2:
JNCEXIT1
MOV@R1,A
RET
EXIT1:
AJMPMAIN;输入不合法退出,重新清零计时
COMB1:
MOVA,@R0
ANLA,#0FH;取出低位
MOV43H,A;暂存于43H单元
DECR0;指向高位
MOVA,@R0
ANLA,#0FH
SWAPA;高位送高4位
ORLA,43H;高低位合并
RET
SEPA:
PUSHPSW
PUSHACC
SETBRS0
MOVR0,#DISP5;指向显示缓冲区秒低位
MOVA,SEC
ACALLSEPA1
MOVA,MIN
ACALLSEPA1
MOVA,HOUR
ACALLSEPA1
POPACC
POPPSW
RET
SEPA1:
MOV44H,A;暂存44H
ANLA,#0FH;取出低位
MOV@R0,A;送显示缓冲区低位
DECR0;指向显示缓冲区高位
MOVA,44H
ANLA,#0F0H;取出高位
SWAPA;高位送往低四位形成高位数据
MOV@R0,A;高位数据送显示缓冲区高位
RET
ALARM:
MOVA,ASEC
CJNEA,SEC,BACK;秒单元相同则继续比较,否则返回
MOVA,AMIN
CJNEA,MIN,BACK;分单元相同则继续比较,否则返回
MOVA,AHOUR
CJNEA,HOUR,BACK;小时单元相同定时时间到
CLRP1.0;启动闹钟鸣叫
SETBF1;置位闹钟标志
BACK:
RET
CLOCK:
MOVTL0,#0B7H
MOVTH0,#3CH;重装初值,时间校正
PUSHPSW
PUSHACC;保护现场
INCMSEC
MOVA,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 63 单片机 控制 时钟 设计