时钟ic ds12c887+

类型 显示IC 品牌 dallas
型号 ds12c887 + 封装 dip
批号 10+

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 工作模式,在该模式中,该引脚是读允许输入脚,即readenable。
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
12 小时模式 0~12 01~0c am,
81~8c pm
01~12am,
4 81~92pm
24 小时模式 0~23 00~17 00~23
时闹铃,12 小时制 1~12 01~0c am,
81~8c pm
01~12am,
5 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;
以下均获取时间程序:
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];}
4 结束语
dallas 公司的时钟日历芯片ds12c887 功能丰富,使用简单,可能性高,是时间产生电路的良好选择。