介绍时钟日历芯片DS12C887.doc_第1页
介绍时钟日历芯片DS12C887.doc_第2页
介绍时钟日历芯片DS12C887.doc_第3页
介绍时钟日历芯片DS12C887.doc_第4页
介绍时钟日历芯片DS12C887.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

介绍时钟日历芯片DS12C887kingmacth 发表于 单片机 分类,标签: 时钟 单片机 DS12C887 31 三月 2008 1 2 引脚功能DS12C887的引脚排列如图1所示,各管脚的功能说明如下:GND、 VCC:直流电源,其中VCC接+5V输入,GND接地,当VCC输入为+5V时,用户可以访问DS12C887内RAM中的数据,并可对其进行读、写操作;当VCC的输入小于+4.25V时,禁止用户对内部RAM进行读、写操作,此时用户不能正确获取芯片内的时间信息;当VCC的输入小于+3V时, DS12C887会自动将电源发换到内部自带的锂电池上,以保证内部的电路能够正常工作。MOT:模式选择脚,DA12C887有两种工作模式,即Motorola模式和Intel模式,当MOT接VCC时,选用的工作模式是Motorola模式,当MOT接GND时,选用的是Intel模式。本文主要讨论Intel模式。SQW:方波输出脚,当供电电压VCC大于4.25V时,SQW脚可进行方波输出,此时用户可以通过对控制寄存器编程来得到13种方波信号的输出。AD0AD7:复用地址数据总线,该总线采用时分复用技术,在总线周期的前半部分,出现在AD0AD7上的是地址信息,可用以选通DS12C887内的RAM,总线周期的后半部分出现在AD0AD7上的数据信息。AS:地址选通输入脚,在进行读写操作时,AS的上升沿将AD0AD7上出现的地址信息锁存到DS12C887上,而下一个下降沿清除AD0AD7上的地址信息,不论是否有效,DS12C887都将执行该操作。DS/RD:数据选择或读输入脚,该引脚有两种工作模式,当MOT接VCC时,选用Motorola工作模式,在这种工作模式中,每个总线周期的后一部分的DS为高电平,被称为数据选通。在读操作中,DS的上升沿使DS12C887将内部数据送往总线AD0AD7上,以供外部读取。在写操作中,DS的下降沿将使总线 AD0AD7上的数据锁存在DS12C887中;当MOT接GND时,选用Intel工作模式,在该模式中,该引脚是读允许输入脚,即Read Enable。R/W:读/写输入端,该管脚也有2种工作模式,当MOT接VCC时,R/W工作在Motorola模式。此时,该引脚的作用是区分进行的是读操作还是写操作,当R/W为高电平时为读操作,R/W为低电平时为写操作;当MOT接GND时,该脚工作在Intle模式,此时该作为写允许输入,即Write Enable。CS:片选输入,低电平有效。IRQ:中断请求输入,低电平有效,该脚有效对DS12C887内的时钟、日历和RAM中的内容没有任何影响,仅对内部的控制寄存器有影响,在典型的应用中,RESET可以直接接VCC,这样可以保证DS12C887在掉电时,其内部控制寄存器不受影响。在DS12C887内有11字节RAM用来存储时间信息,4字节用来存储控制信息,其具体垢地址及取值如表1所列。由表1可以看出:DS12C887内部有控制寄存器的A-B等4个控制寄存器,用户都可以在任何时候对其进行访问以对DS12C887进行控制操作。地 址功 能取值范围十进制数取值范围二进制BCD码0秒059003B00591秒闹铃059003B00592分059003B00593分闹铃059003B0059412小时模式012010C AM,818C PM0112AM,8192PM24小时模式023001700235时闹铃,12小时制112010C AM,818C PM0112AM,8192PM时闹铃,24小时制023001700236星期几(星期天=1131011F01318月112010C01129年0990063009910控制寄存器A11控制寄存器B12控制寄存器C13控制寄存器D50世纪099NA19,20表1 DS12C887的存储功能3 应用在各种设备、家电、仪器、工业控制系统中,可以很容易地用DS12C887来组成时间获取单元,以实现各种时间的获取。图2是用8031单片机和 DS12C887构成的时间获取电路图,其中DS12C887的基地址为7F00H,相应的程序采用C51语言编写(以Intel工作模式为例)。由8031单片机和DS12C887构成的时间获取电路的初始化程序如下:XBYTE0x7F00+0x0B=082;XBYTE0x7F00+0x0A=0xA0;XBYTE0x7F00+0x0A=020;XBYTE0x7F00+0x0B=002;/*所有的中断禁止,24小时制,BCD码模式*/以下均获取时间程序:unsigned char data t-century;unsigned char data t-year;unsigned char data t-month;unsigned char data t-date;unsigned char data t-week;unsigned char data t-hour;unsigned char data t-minute;unsigned char data t-second;if(XBYTE7F00+0x0A&080)!=0)t-century=XBYTE0x7F00+0x32;/*读取世纪*/t-year=XBYTEOx7F00+0x09;/*读取年份*/t-month=XBYTEOx7F00+0x08;/*读取月份*/t-date=XBYTEOx7F00+0x07;/*读取日期*/t-week=XBYTEOx7F00+0x06;/*读取星期几*/t-hour=XBYTEOx7F00+0x04;/*读取小时*/t-minute=XBYTEDS12887+0x02;/*读取分钟*/t-second=XBYTEOx7F00+0x00;/*读取秒*/汇编程序:ORG 0000H ;T_SEC: save seccond ;T_MIN: save minute ;T_HOUR: save hour ;T_DAY: save day ;T_MON: save month ;T_YE: SAVE YEAR ;T_CE: SAVE CENTURY ;R0: THE FIRST DISPLAY ADDRESS ;R1: THE START ADDRESS ;R2: FLAG ;R3: THE NUMBER OF DISPLAYED ;DN: 循环次数 T_SEC EQU 40H T_MIN EQU 41H T_HOUR EQU 42H T_DAY EQU 43H T_MON EQU 44H T_YE EQU 45H T_CE EQU 46H SHUH EQU 47H SHUL EQU 48H DN EQU 49H SJ EQU 50H MAIN: ;MOV R2,#00H LCALL INITDS ;初始化时钟 START: MOV R2,#25 XH: LCALL RD12 ;读ds12c887 MOV SJ,T_HOUR LCALL DISP MOV SJ,T_MIN LCALL DISP MOV SJ,T_SEC LCALL DISP MOV R7,#5 ;延时0.4S LCALL DELAY1S DJNZ R2,XH MOV R2,#20 MOV SJ,T_YE LCALL DISP MOV SJ,T_MON LCALL DISP MOV SJ,T_DAY LCALL DISP MOV R7,#50 ;延时4S LCALL DELAY1S LCALL BENDI ;分号后为设置时间时用的 LCALL WDDS AJMP START DISP: LCALL SJQL MOV SCON,#00H MOV DPTR,#SHU MOV A,SHUH MOVC A,A+DPTR MOV SBUF,A JNB TI,$ CLR TI MOV A,SHUL MOVC A,A+DPTR MOV SBUF,A JNB TI,$ CLR TI RET SJQL: MOV A,SJ MOV B,#10H DIV AB MOV SHUH,A MOV SHUL,B RET RD12: ;读12887 CLR P2.7 NOP NOP MOV DPTR,#200AH MOVX A,DPTR ANL A,#80H JNZ NEXT0 MOV DPTR,#2000H MOVX A,DPTR MOV T_SEC,A MOV DPTR,#2002H MOVX A,DPTR MOV T_MIN,A MOV DPTR,#2004H MOVX A,DPTR MOV T_HOUR,A MOV DPTR,#2007H MOVX A,DPTR MOV T_DAY,A MOV DPTR,#2008H MOVX A,DPTR MOV T_MON,A MOV DPTR,#2009H MOVX A,DPTR MOV T_YE,A MOV DPTR,#2032H MOVX A,DPTR MOV T_CE,A NEXT0: RET INITDS: MOV A,#20H ;开启时钟 MOV DPTR,#200AH MOVX DPTR,A MOV A,#02H ;BCD码模式,24小时制 MOV DPTR,#200BH MOVX DPTR,A RET WDDS: ;写入时间 MOV A,#70H MOV DPTR,#200AH MOVX DPTR,A MOV R7,#1 LCALL DELAY1S MOV DPTR,#2000H MOV A,T_SEC MOVX DPTR,A MOV DPTR,#2002H MOV A,T_MIN MOVX DPTR,A MOV DPTR,#2004H MOV A,T_HOUR MOVX DPTR,A MOV DPTR,#2007H MOV A,T_DAY MOVX DPTR,A MOV DPTR,#2008H MOV A,T_MON MOVX DPTR,A MOV DPTR,#2009H MOV A,T_YE MOVX DPTR,A MOV DPTR,#2032H MOV A,T_CE MOVX DPTR,A MOV A,#20H MOV DPTR,#200AH MOVX DPTR,A RET BENDI: ;设置时间 MOV T_SEC,#00H MOV T_MIN,#17H MOV T_HOUR,#19H MOV T_DAY,#11H MOV T_MON,#08H MOV T_YE,#07H MOV T_CE,#21H RET DELAY1S: ;延时80MS D1: MOV R6,#200 D2: MOV R5,#200 DJNZ R5,$ DJNZ R6,D2 DJNZ R7,D1 RET SHU: DB FCH,60H,DAH,F2H,66H,B6H,BEH,E0H,FEH,F6H,EEH,3EH,9CH,7AH,9EH,8EH END摘要:简要介绍了美国DALLAS公司的新型时钟日历芯片DS12C887的功能特性和内部控制寄存器参数,给出了DS12C887与8031单片机的电路连接图,同时给出了用C51编写的初始化程序和获取内部时间的程序。完整的汇编程序。关键词:时钟 单片机 DS12C8871 器件特性DS12C887实时时钟芯片功能丰富,可以用来直接代替IBM PC上的时钟日历芯片DS12887,同时,它的管脚也和MC146818B、DS12887相兼容。由于DS12C887能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决子“千年”问题; DS12C88

温馨提示

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

评论

0/150

提交评论