⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 新建 文本文档.txt

📁 这个是有关DS12887的资料,超级详细的..解释的很明白
💻 TXT
📖 第 1 页 / 共 2 页
字号:
 跨越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 + -