摘要:扼要介绍了美国DALLAS公司的新式时钟日历芯片DS12C887的功用特性和内部操控寄存器参数,给出了DS12C887与8031单片机的电路衔接图,一起给出了用C51编写的初始化程序和获取内部时刻的程序。关键词:时钟 单片机 DS12C887 1 器材特性 DS12C887实时时钟芯片功用丰厚,能够用来直接替代IBM PC上的时钟日历芯片DS12887,一起,它的管脚也和MC146818B、DS12887相兼容。 因为DS12C887能够主动发生世纪、年、月、日、时、分、秒等时刻信息,其内部又增加了世纪寄存器,然后运用硬件电路处理子“千年”问题; DS12C887中自带有锂电池,外部掉电时,其内部时刻信息还能够坚持10年之久;关于一天内的时刻记载,有12小时制和24小时制两种形式。在12小时制形式中,用AM和PM区别上午和下午;时刻的表明办法也有两种,一种用二进制数表明,一种是用BCD码表明;DS12C887中带有128字节 RAM,其间有11字节RAM用来存储时刻信息,4字节RAM用来存储DS12C887的操控信息,称为操控寄存器,113字节通用RAM运用户运用;此外用户还可对DS12C887进行编程以完成多种方波输出,并可对其内部的三路中止经过软件进行屏蔽。 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种方波信号的输出。 AD0~AD7:复用地址数据总线,该总线选用时分复用技能,在总线周期的前半部分,呈现在AD0~AD7上的是地址信息,可用以选通DS12C887内的RAM,总线周期的后半部分呈现在AD0~AD7上的数据信息。 AS:地址选通输入脚,在进行读写操作时,AS的上升沿将AD0~AD7上呈现的地址信息锁存到DS12C887上,而下一个下降沿铲除AD0~AD7上的地址信息,不管是否有用,DS12C887都将履行该操作。 DS/RD:数据挑选或读输入脚,该引脚有两种作业形式,当MOT接VCC时,选用Motorola作业形式,在这种作业形式中,每个总线周期的后一部分的DS为高电平,被称为数据选通。在读操作中,DS的上升沿使DS12C887将内部数据送往总线AD0~AD7上,以供外部读取。在写操作中,DS的下降沿将使总线 AD0~AD7上的数据锁存在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进行操控操作。 表1 DS12C887的存储功用 地 址功 能取值规模十进制数取值规模 二进制 BCD码 0 秒 0~59 00~3B 00~59 1 秒闹铃 0~59 00~3B 00~59 2 分 059 00~3B 00~59 3 分闹铃 0~59 00~3B 00~59 4 12小时形式 0~12 01~0C AM, 81~8C PM 01~12AM, 81~92PM 24小时形式 0~23 00~17 00~23 5 时闹铃,12小时制 1~12 01~0C AM, 81~8C PM 01~12AM, 81~92PM 时闹铃,24小时制 0~23 00~17 00~23 6 星期几(星期天=1) 1~7 01~07 01~07 7 日 1~31 01~1F 01~31 8 月 1~12 01~0C 01~12 9 年 0~99 00~63 00~99 10 操控寄存器A 11 操控寄存器B 12 操控寄存器C 13 操控寄存器D 50 世纪 0~99 NA 19,20 3 运用 在各种设备、家电、仪器、工业操控系统中,能够很容易地用DS12C887来组成时刻获取单元,以完成各种时刻的获取。图2是用8031单片机和 DS12C887构成的时刻获取电路图,其间DS12C887的基地址为7F00H,相应的程序选用C51言语编写(以Intel作业形式为例)。 由8031单片机和DS12C887构成的时刻获取电路的初始化程序如下: XBYTE[0x7F00+0x0B]=0x82; XBYTE[0x7F00+0x0A]=0xA0; XBYTE[0x7F00+0x0A]=0x20; XBYTE[0x7F00+0x0B]=0x02; /*一切的中止制止,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((XBYTE[7F00+0x0A]%26;amp;0x80)!=0){ t-century=XBYTE[0x7F00+0x32];/*读取世纪*/ t-year=XBYTE[Ox7F00+0x09];/*读取年份*/ t-month=XBYTE[Ox7F00+0x08];/*读取月份*/ t-date=XBYTE[Ox7F00+0x07];/*读取日期*/ t-week=XBYTE[Ox7F00+0x06];/*读取星期几*/ t-hour=XBYTE[Ox7F00+0x04];/*读取小时*/
t-minute=XBYTE[DS12887+0x02];/*读取分钟*/ t-second=XBYTE[Ox7F00+0x00];}/*读取秒*/ 4 结束语 Dallas公司的时钟日历芯片DS12C887功用丰厚,运用简略,可能性高,是时刻发生电路的杰出挑选。