新建 文本文档.txt

来自「这个是有关DS12887的资料,超级详细的..解释的很明白」· 文本 代码 · 共 432 行 · 第 1/2 页

TXT
432 行
字号
 跨越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 + =
减小字号Ctrl + -
显示快捷键?