ds12c887简介
DS12C887时钟日历芯片,是由美国 DALLAS公司出产的新式时钟日历芯片,选用CMOS技能制成。芯片选用24引脚双列直插式封装,内部集成晶振、振荡电路、充电电路和可充电锂电池,组 成一个加厚的集成电路模块,在没有外部电源的情况下可作业10年。具有杰出的微机接口、精度高、外围接口简略、作业安稳牢靠等长处,可广泛使用于各种需求 较高精度的实时场合。
ds12c887特色
1、可作为IBM AT 计算机的时钟和日历
2、与MC146818B和DS1287的管脚兼容
3、在没有外部电源的情况下可作业10年
4、自带晶体振荡器及电池
5、可计算到2100年前的秒、分、小时、星期、日期、月、年七种日历信息并带闰年
ds12c887引脚图及功用
引脚功用
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中。
R/W:读/写输入端,该管脚也有2种作业形式,当MOT接VCC时,R/W作业在Motorola形式。此刻,该引脚的作用是区别进行的是读操作仍是写操作,当R/W为高电平时为读操作,R/W为低电平时为写操作;当MOT接GND时,该脚作业在Intle形式,此刻该作为写答应输入。
CS:片选输入,低电平有用。
ds12c887内部结构
上 电/掉 电
当VCC高于4.25V 200ms后,芯片能够被外部程序操作; 当VCC低于4.25V时,芯片处于写保护状况(一切的输入均无效),一起一切输出呈高阻状况; 当VCC低于3V时,芯片将主动把供电方法切换为由内部电池供电。
ds12c887使用电路(一)
根据8031单片机和DS12C887构成的时刻获取电路
在各种设备、家电、仪器、工业操控系统中,能够很容易地用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]&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];}/*读取秒*/
ds12c887使用电路(二)
根据51单片机的DS12C887时钟电路图