📄 新建 文本文档.txt
字号:
跨越2000年的时钟芯片 DS12887/DS12C887
长沙市无线电厂(长沙410014)
摘要 文章介绍了美国Dallas公司推出的跨越2000年的时钟芯片DS12887/DS12C887,介绍了芯片的主要特点,引脚功能、内部寄存器功能、中断处理和更新周期,以及编程方法。
关键词 时钟控制寄存器 时标寄存器 状态寄存器 更新周期 编程
随着2000年的即将来临,“千年虫”问题成为困扰当今世界的一大难题。过去采用两位数表示年度的日历系统将要用四位数来表示,因此有关的计算机操作系统和应用软件都要作相应的修改。据此,美国Dallas公司推出两款数字时钟芯片DS12887/DS12C887,两款时钟芯片都将在1999年12月31日23时59分59秒时顺利地跳到2000年1月1日零时,并能实现2000年2月29日的闰年提示,是时钟芯片DS1287的增强品种,结构上相当于MC146818的改进型。芯片都采用24引脚双列直插式封装,其引脚接口逻辑和内部操作方式与MC146818基本一致,所不同的是DS12887/DS12C887芯片的晶体振荡、振荡电路、充电电路和可充电锂电池等一起封装在芯片的上方,组成一个加厚的集成电路模块,因此,DS12887/DS12C887时钟片无需MC146818的电源电位检测端(PS),电路通电时其充电电路便自动对可充电电池充电,充足一次电可供芯片时钟运行半年之久,正常工作时可保证时钟数据十年内不会丢失。此外,片内通用的RAM为MC146818的两倍以上。DS12887/DS12C887内部有专门的接口电路,从而使得外部电路的时序要求十分简单,使它与各种微处理器的接口大大简化。使用时无需外围电路元件,只要选择引脚MOT电平,即可和不同计算机总线连接。
1、 主要技术特点
DS12887/DS12C887具有下列主要技术特点:
(1) 具有完备的时钟、闹钟及到2100年的日历功能,可选择12小时制或24小时制计时,有AM和PM、星期、夏令时间操作,闰年自动补偿等功能。
(2) 具有可编程选择的周期性中断方式和多频率输出的方波发生器功能。
(3) DS12887内部有14个时钟控制寄存器,包括10个时标寄存器,4个状态寄存器和114bit作掉电保护用的低功耗RAM。
(4) 由于该芯片具有多种周期中断速率时钟中断功能,因此可以满足各种不同的待机要求,最长可达24小时,使用非常方便。
(5) 时标可选择二进制或BCD码表示。
(6) 工作电压:+4.5~5.5V。
(7) 工作电流:7~15mA。
(8) 工作温度范围:0~70℃。
2、 DS12887/DS12C887的引脚排列
DS12887/DS12C887的引脚排列见图1所示。图2为DS12887/DS12C887的内部电路结构框图。
芯片各引脚功能如下:
MOT:计算机总线选择端;SQW:方波输出,速率和是否输出由专用寄存器A、B的预置参数决定;AD0~AD7:地址/数据(双向)总线,由AS的下降沿锁存8位地址;R/W:读/写数据;AS:地址锁存信号端;DS:数据读信号端;CS:选通信号端,低电平有效;IRQ;中断申请,由专用寄存器决定;RESET:复位端;NC:空引脚。
3、 DS12887/DS12C887内部寄存器的功能
因DS12887和DS12C887结构功能上类似,现以DS12887为例说明如下:CPU通过读DS12887的内部时标寄存器得到当前的时间和日历,也可通过选择二进制码或BCD码初始化芯片的10个时标寄存器。其114bit非易失性静态RAM可供用户使用,对于没有RAM的单片机应用系统,可在主机掉电时来保存一些重要的数据。DS12887的4个状态寄存器用来控制和指出DS12887模块的当前工作状态,除数据更新周期外,程序可随时读写这4个寄存器,各寄存器的功能和作用如下。
3.1 DS12887内部RAM各专用寄存器地址功能
表1为DS12887内部RAM和各专用寄存器地址分布表,其中,地址00H~03H单元取值范围是00H~3BH(10进制为0~59);04H~05H单元按12小时制取值范围是上午(AM)01H~0CH(1~12),下午(PM)81H~8CH(81~92)按24小时制取值范围是00H~17H(1~23);06H单元取值范围是00H~07H(0~7);07H单元取值范围01H~1FH(1~31);08H单元取值范围是01H~0CH(1~12);09H单元的取值范围是00H~63H(0~99)。DS12887的RAM和各专用寄存器的访问如下实现,若片选地址DS=#0DDXXH,则芯片内部RAM 和寄存器和地址为#0DD00H~#0DD7FH。应指出的是,尽管DS12887的专用时标年寄存器只有一个,但通过软件编程可利用其内部的不掉电的RAM区的一个字节实现年度的高两位显示,所以,DS12887跨越2000年的计时不成问题。
表1 DS12887内部RAM和各专用寄存器地址
地址单元
用途
地址单元
用途
地址00H
秒
地址01H
秒闹
地址02H
分
地址03H
分闹
地址04H
时
地址05H
时闹
地址06H
星期
地址07H
日(两位数)
地址08H
月(两位数)
地址09H
年(两位数)
地址0AH
寄存器A
地址0BH
寄存器B
地址0CH
寄存器C
地址0CH
寄存器D
0EH~7EH
不掉电RAM区,共114字节
3.2 寄存器A
寄存器A各位不受复位的影响,UIP位为只读位,其它各位均可读写,寄存器的控制字的格式如表2所列。
表2 DS12887控制寄存器A各布尔位定义
BIT7
BIT6
BIT5
BIT4
BIT3
BIT2
BIT1
BIT0
UIP
DV2
DV1
DV0
RS3
RS2
RS1
RS0
(1) UIP位:更新周期标志位。该位为“1”时,表示芯片正处于或将开始更新周期,此时程序不准读写时标寄存器;该位为“0”时,表示至少在244us后才开始更新周期,此时程序可读芯片内时标寄存器。该位是只读位。
(2) DV0、DV1、DV2:芯片内部振荡器RTC控制位。当芯片解除复位状态,并将010写入DV0、DV1、DV2后,另一个更新周期将在500ms后开始。因此,在程序初始化时可用这三位精确地使芯片在设定的时间开始工作。这与MC146818不同的是,DS12887固定使用32 768Hz的内部晶体,所以,DV0=“0”,DV1=“1”,DV2=“0”,即只有一种010的组合选择即可启动RTC。
(3) RS3、RS2、RS1、RS0:周期中断可编程方波输出速率选择位。各种不同的组合可以产生不同的输出。程序可以通过设置寄存器B的SQWF和PIE位控制是否允许周期中断方波输出。其寄存器A输出速率选择位如表3所列。
表3DS12887控制寄存器A输出速率选择位定义
寄存器A输出速率选择位
32768Hz时基
RS3
RS2
RS1
RS0
中断周期
SQWF输出频率
0
0
0
0
无
无
0
0
0
1
3.96625ms
256Hz
0
0
1
0
7.8125ms
128Hz
0
0
1
1
122.07us
8.192kHz
0
1
0
0
244.141us
4.096kHz
0
1
0
1
488.281us
2.048kHz
0
1
1
0
976.562us
1.024kHz
0
1
1
1
1.953125ms
512Hz
1
0
0
0
3.90625ms
256Hz
1
0
0
1
7.812ms
128Hz
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -