DS12887时钟芯片及其在LED中的应用
- 格式:doc
- 大小:93.50 KB
- 文档页数:6
-44-《国外电子元器件》1998年第2期1998年2月●实用电路介绍用DS12887组成的微处理器看门狗电路后勤工程学院郭凌王丰图1DS12887硬件电路构成图1.概述DS12887是美国达拉斯半导体公司生产的实时时钟芯片,它作为微处理器的实时时钟被广泛使用。
IN T EL 8031、89C51系列单片机没有自身的看门狗电路。
使用DS12887作为它们的时钟芯片时可与单片机构成看门狗电路,能降低系统的成本。
原理在于利用DS12887的方波输出口(SQ W ,23脚),输出定时方波,该方波的频率最小可设定为2Hz ,可作为数字计数器的时钟输入,看门狗周期设定为 1.5s ,如果在DS12887产生2个方波之前不对计数器进行复位,则数字计数器输出一高电平作为单片机的复位信号,这样即可达到微处理器的看门狗功能。
2.硬件硬件电路构成如图1所示。
单片机8031与DS12887的微处理机接口这里不再重述。
DS12887的SQ W 脚为方波输出脚,它给计数器4017提供定时时钟脉冲,单片机的P10口与4017复位脚RST 相接(高电平有效),一旦P10口输出高电平脉冲,则4017被复位,Q 0端为1,Q 1~Q 9均输出低电平,4017重新开始计数。
4017的Q 3端输出的信号经二极管D1后到达单片机8031的复位端R ES 。
由于是Q 3输出复位信号,则4017的CL K 只需3个脉冲,Q 3即输出高电平信号,可预设DS12887的输出方波周期为0.5s ,那么,该电路的看门狗周期为1.5秒。
如果在1.5秒内,P10端不能输出高脉冲复位4017,则整个电路将被复位一次。
SQ W 端一旦开始允许方波输出,不管单片机是否死机都可输出定时方波,这样,通过DS12887的SQ W 端,外加一片廉价的4017就可以构成单片机的看门狗电路。
3.软件利用DS12887的更新中断来完成对4017的定时复位。
DS12887的更新中断为每秒钟发生一次,当出现更新中断时,IRQ 端输出低电平,单片机8031中断响应,P10口输出一次高脉冲信号复位4017计数器,计数器重新开始计数。
DS12887时钟芯片的应用:RTC时钟在很多系统中广泛的被应用,因为人们对于实时时钟要求越来越大,而很多数据的记录需要提供数据对应的时间等信息。
时钟芯片能在即使没有系统电源的情况下保持时间的走动。
从而在任何时候给系统提供了准确的时间,满足各种不同的对时间的要求。
时钟芯片的接口有串行和并行之分,不同的芯片要根据具体情况设计。
DS12887的说明:DS12887是一款比较高档并常用的时钟芯片,芯片内部自配有可充电电池,在无外部电源时也可保证十年的正常运行。
芯片内部还提供了约100个字节的RAM空间,其存储的数据也可以长期保持不变。
DS12887提供了多种时钟的特殊功能,如定时中断等等。
学习板的原理以及DS12887的操作:为了给大家提供一个了解时钟芯片的条件,在学习板提供了在各种系统应用很广泛的时钟芯片DS12887。
DS12887跟MC146818B管腿是兼容的,被广泛的应用在处主要讲述原理图上的相关操作。
DS12887芯片能工作在两种总线时序,一是MOTOROLA模式,一是INTEL模式。
这个模式的选择是由管腿MOT来控制的,当MOT为高时表示使用MOTOROLA总线时序;当MOT为低时表示使用INTEL 总线时序。
学习板上使用的是INTEL模式,因为MOT管脚接地了。
因为选择了INTEL模式,所以DS管脚对应的就是RD信号。
DS12887的片选信号是由138译码器产生的CS_12887。
从74HC138的原理图可以看出,这个片选信号对应的地址是0xD000H(只要保证高四位是1101),因此无论向DS12887读操作还是写操作,都必须对在地址上加上AD0~AD7的偏移地址来进行操作。
/IRQ端输出定时中断信号INT_12887通过跳线J3连接的CPU的INT1中断信号端,从而给系统提供了定时功能。
关于此方面的知识,可以去三毛电子世界获得更多支持。
图书馆:/souceitem/library.asp产品支持:/shopitem/shopmain.asp论坛:/bbsitem/indexbbs.asp。
DS12887是美国达拉斯半导体公司最新推出的时钟芯片,采用CMOS技术制成,把时钟芯片所需的晶振和外部锂电池相关电路集于芯片内部,同时它与目前 IBM AT计算机常用的时钟芯片MC146818B和DS1287管脚兼容,可直接替换。
采用DS12887芯片设计的时钟电路勿需任何外围电路并具有良好的微机接口。
DS12887芯片具有微轼耗、外围接口简单、精度高、工作稳定可靠等优点,可广泛用于各种需要较高精度的实时时钟场合中。
其主要功能如下:(1)内含一个锂电池,断电情况运行十年以上不丢失数据。
(2)计秒、分、时、天、星期、日、月、年,并有闰年补偿功能。
(3)二进制数码或BCD码表示时间、日历和定闹。
(4)12小时或24小时制,12小时时钟模式带有PWM和AM指导,有夏令时功能。
(5)MOTOROLA5和INATAEL总线时序选择。
(6)有128个RAM单元与软件音响器,其中14个作为字节时钟和控制寄存器,114字节为通用RAM,所有ARAM单元数据都具有掉电保护功能。
(7)可编程方波信号输出。
(8)中断信号输出(IRQ)和总线兼容,定闹中断、周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试。
2. DS12887的原理及管脚说明DS12887内部原理如图1所示,由振荡电路、分频电路、周期中断/方波选择电路、14字节时钟和控制单元、114字节用户非易失RAM、十进制/二进制计加器、总线接口电路、电源开关写保护单元和内部锂电池等部分组成。
图2显示了DS12887管脚排列图。
下面分别说明管脚功能:GND,V CC:直流电源+5V电压。
当5V电压在正常范围内时,数据可读写;当V CC低于4.25V,读写被禁止,计时功能仍继续;当V CC下降到3V以下时,RAM和计时器被切换到内部锂电池。
MOT(模式选择):MOT管脚接到V CC时,选择MOTOROLA时序,当接到GFND时,选择INTEL时序。
龙源期刊网
实时时钟芯片DS12887特点与应用
作者:周兴华
来源:《电子世界》2005年第07期
DS12887是DALLAS半导体公司新推出的实时时钟芯片,可直接取代DS1287,它功能丰富,应用广泛。
它在工业控制及智能仪器仪表中有广泛用途,一般PC机内的时钟信号就是由DS12887提供的。
结构框图与特点
DS12887的结构框图如图1所示。
DS12887的特点:(1)可作为个人计算机的时钟和日历;(2)与MCl46818B和DS1287的管脚兼容;(3)在没有外部电源的情况下可工作10年;(4)自带晶体振荡器及锂电池;(5)可计算到2100年前的秒、分、小时、星期、日、月、年七种日历信息并带闰年补偿;(6)有二进制码或BCD码代表日历和闹钟信息;(7)有12和24小时两种制式,12小时制时有AM和PM提示;(8)可选用夏令时模式;(9)可以应用于Motorola和Intel两种总线;(10)数据/地址总线复用;(11)内建128字节RAM;(12)14字节时钟控制寄存器;(13)114字节通用RAM;(14)可编程方波输出;(15)总线兼容中断(/IRQ);(16)
三种可编程中断,时间性中断可产生每秒一次直到每天一次中断,周期性中断122~500ms,时钟更新结束中断。
在智能化仪器仪表中,往往需要走时准确的实时时钟为多通道数据采集、定时及实时控制提供精确的时间基准和同步信号。
目前,实现实时时钟的方法主要有软件时钟(由软件计时实现)、硬件时钟(由硬件时钟芯片实现)、GPS时钟(由全球卫星定位系统提供)等。
软件时钟具有硬件开销小、成本低、外围电路简单等优点。
但由于时钟是靠软件延时实现的,运行过程中不仅要占用大量的CPU时间,而且计时精度低、走时误差较大,在智能化仪器仪表中很少采用。
GPS (全球卫星定位系统)提供的实时时钟信号虽然具有相当高的精度,但由于GPS产品成本高,在普通智能化仪器仪表中很少采用。
本文介绍一种较新的实时时钟芯片DS12C887及其与AT89C51单片机的软硬件接口。
1 DS12C887的特点及引脚描述DS12C887是由美国达拉斯半导体公司推出的CMOS并行实时时钟芯片,它与目前微型计算机主机板中普遍采用的MC146818、DS12887时钟芯片引脚完全兼容,可以直接替换。
DS12C887将时钟电路、晶振及其外围电路、锂电池及其相关电路等嵌装成一体,并具有与微处理器的并行接口,可方便地用于对时钟精度要求较高的智能化仪器仪表中。
DS12C887的主要功能特点有:(1)内含锂电池。
当外电源电压降到3 V以下时,时钟自动将电源切换到由芯片内部锂电池供电,在外电源断电的收稿日期:2002—05~20作者简介:宋雨潭(1972一),女,吉林长春人,工程师。
情况下,时钟可以连续运行10 a而不丢失数据。
(2)具有秒、分、时、日、月、年、世纪、星期计时及闰年自动校正功能。
(3)可根据用户需要选择24/12 h运行方式和夏令时运行方式。
(4)由硬件选择MOTOROLA和INTEL总线时序,便于和不同的微处理器相连接。
(5)内含128字节掉电保持RAM单元,其中10字节用于存储时钟日历和报警信息,4字节用于状态控制寄存器,其余I14字节供用户存储需要掉电保持的信息和数据。
Ds12887--内嵌电池的时钟芯片中国器件选型网赵星寒①,DS12887简介时钟芯片DS12887是一个内嵌锂电池的并行通讯芯片,该器件提供完整的实时时钟/日历、定时闹钟,还包含三个可屏蔽中断(共用一个中断输出)以及可编程方波输出。
DS12887内部还提供114字节静态RAM,这些存储器是内部锂电池供电的,因此数据不会丢失。
DS12C887对于少于31天的月份,其日期能够在月末自动调整,带有闰年的月份可以自动补偿。
该器件可配置为24小时或12小时格式。
精确的温度补偿电路用于状态。
一旦检测到主电源失效,器件可自动切换到备用电源。
支持Intel 监视的VCC和Motorola模式。
主要特点是:∙RTC计算秒、分、时、星期、日、月、年信息,具有润年补偿,有效期至2099年;∙用二进制或BCD表示时间;∙具有AM、PM标示的12小时模式或24小时模式;∙可选择Intel或Motorola总线时序;∙内部包含128字节存储单元,其中114字节供用户自由使用;∙三路中断可分别通过软件屏蔽与检测;∙闹钟可设置为每秒一次至每星期一次;∙可编程的方波输出信号;∙自动电源失效检测和切换电路;DS12887是一片24引脚封装的芯片,因内含锂电池高度较一般芯片高得多。
图1是引脚逻辑图,所有引脚定义如下:MOT——引脚1,总线方式选择。
连接到电源时,选择Motorola总线方式;连接到地时,选择Intel总线方式。
因为51系列单片机是Intel产品,所以这个引脚应该连接到地。
NC——引脚2、引脚3、引脚16、引脚20、引脚21和引脚22不使用。
AD0~AD7——引脚4~引脚11,地址/数据复用总线,双向工作。
直接连接到单片机的P0口。
GND——引脚12,地线。
——引脚13,片选信号输入,低电平时芯片工作,高电平时芯片不工作。
AS——引脚14,地址锁存输入,如果引脚出现一个下降沿,总线上的信号将被作为地址信号而锁存。
在对芯片进行读或写操作时,必须先输入地址。
#include <reg52.h>//52单片机头文件#define uint unsigned int//宏定义#define uchar unsigned char//宏定义uchar shiw,wan,qian,bai,shi,ge,s1num;//设置几个关于显示的变量unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0};//段选代码uchar shige,fen,miao;//时间变量时, 分, 秒bit flag;//标志位//DS12CR887的四个位声明sbit dscs=P1^0;//片选信号sbit dsas=P1^1;//地址选通输入sbit dsrw=P1^2;//读/写输入sbit dsds=P1^3;//数据选通或读输入sbit s1=P3^4;//功能键sbit s2=P3^5;//加sbit s3=P3^6;//减sbit dula=P1^4;sbit wela=P1^5;/*函数1,延时函数*/void delay(uint z)//延时子函数1MS{uint x,y;for(x=z;x>0;x--)for(y=114;y>0;y--);}//函数2从DS12DS12RC887中读取数据uchar read_ds(uchar add)//数据读取{uchar date;dsas=1;dsds=1;dsrw=1;dscs=0;P0=add;dsas=0;dsds=0;P0=0xff;//读取P0口先给P0口全赋个一date=P0;dsds=1;dsas=1;dscs=1;return date;}//函数3写数据进DS12RC887,地址与数据void write_ds(uchar add,uchar date)//DS12CR887数据写入{dsas=1;dsds=1;dsrw=1;dscs=0;P0=add;dsas=0;dsrw=0;P0=date;dsrw=1;dsas=1;dscs=1;}//函数4数码管显示函数void display(uchar shiw,uchar wan,uchar qian,uchar bai,uchar shi,uchar ge)//6位显示子函数{dula=1; //开段选P2=table[shiw]; //送时的十位dula=0; //关段选P2=0xff; //消隐wela=1; //开位选P2=0xfe; //选通时的十位wela=0; //关位选P2=0xff; //消隐delay(2);dula=1; //开段选P2=table[wan]; //送时的个位dula=0; //关段选P2=0xff; //消隐wela=1; //开位选P2=0xfd; //选通时的个位wela=0; //关位选P2=0xff; //消隐delay(2);dula=1; //开段选P2=table[qian]; //送分的十位dula=0; //关段选P2=0xff; //消隐wela=1; //开位选P2=0xfb; //选通分的十位wela=0; //关位选P2=0xff; //消隐delay(2);dula=1; //开段选P2=table[bai]; //送分的个位dula=0; //关段选P2=0xff; //消隐wela=1; //开位选P2=0xf7; //选通分的个位wela=0; //关位选P2=0xff; //消隐delay(2);dula=1; //开段选P2=table[shi]; //送秒的十位dula=0; //关段选P2=0xff; //消隐wela=1; //开位选P2=0xef; //选通秒的十位wela=0; //关位选P2=0xff; //消隐delay(2);dula=1; //开段选P2=table[ge]; //送秒的个位dula=0; //关段选P2=0xff; //消隐wela=1; //开位选P2=0xdf; //选通秒的个位wela=0; //关位选P2=0xff; //消隐delay(2);}//函数5功能键函数,停止显示和进入时间的调节void gnj()//功能键子函数{if(s1==0)//功能键{delay(5);//消抖if(s1==0)//确认功能键按下{s1num++;//功能键按下次数加1flag=1; //flag=1将停止显示数据的刷新while(!s1);//松手检测if(s1num==1)//如果按下1次,秒不动作{}if(s1num==2)//如果按下2次,分不动作{}if(s1num==3)//如果按下3次,时不动作{}if(s1num==4)//如果按下4次,正常显示{s1num=0;//将s1num清零write_ds(4,shige);//写时数据write_ds(2,fen);//写分数据write_ds(0,miao);//写秒数据flag=0;//把调节好的数据保存进DS12RC887中,并且恢复显示}}}}//函数6,加键函数void jia()//加子函数{if(s2==0)//加键{delay(1);//消抖if(s2==0)//确定S2为0{while(!s2);//松手检测if(s1num==1)//在S1按下一次时{miao++;//秒加1if(miao==60)//秒加到60miao=0;//将秒清零display(shiw,wan,qian,bai,shi,ge);//调用数码管显示子函数}if(s1num==2)//在S1按下二次时{fen++;//分加1if(fen==60)//分加到60fen=0;//将分清零display(shiw,wan,qian,bai,shi,ge);//调用数码管显示子函数}if(s1num==3)//在S1按下三次时{shige++;//时加1if(shige==24)//时加到24shige=0;//时清零display(shiw,wan,qian,bai,shi,ge);//调用数码管显示子函数}}}}//函数7,减函数调节void jian()//减子函数{if(s3==0)//减键{delay(1);//消抖if(s3==0)//确定S3按下{while(!s3);//松手检测if(s1num==1)//在S1按下一次时{miao--;//秒减一if(miao==-1)//秒小于0miao=59;//秒重新赋值为59display(shiw,wan,qian,bai,shi,ge);//调用数码管显示子函数}if(s1num==2)//在S1按下二次时{fen--;//分减一if(fen==-1)//分小于0fen=59;//分重新赋值为59display(shiw,wan,qian,bai,shi,ge);//调用数码管显示子函数}if(s1num==3)//在S1按下三次时{shige--;//时减一if(shige==-1)//时小于0shige=23;//时重新赋值23display(shiw,wan,qian,bai,shi,ge);//调用数码管显示子函数}}}}//函数8,按键扫描函数void keyscan()//按键输入函数{gnj();//功能键子函数if(s1num!=0)///判断S1键是否按下{jia();//加子函数jian();//减子函数}}//函数9,调节时间时数码管闪烁函数void sansuo(){uchar num,num1;if(s1num==1)//如果按下1次,秒{for(num=25;num>0;num--){display(shiw,wan,qian,bai,11,11);jia();jian();//在闪烁同时检测按键,提高扫描率gnj();}for(num1=25;num1>0;num1--)//如果按下1次,秒{display(shiw,wan,qian,bai,shi,ge);jia();jian();//在闪烁同时检测按键,提高扫描率gnj();}}if(s1num==2)//如果按下1次,秒{for(num=25;num>0;num--){display(shiw,wan,11,11,shi,ge);jia();jian();//在闪烁同时检测按键,提高扫描率gnj();}for(num1=25;num1>0;num1--)//如果按下1次,秒{display(shiw,wan,qian,bai,shi,ge);jia();jian();//在闪烁同时检测按键,提高扫描率gnj();}}if(s1num==3)//如果按下1次,秒{for(num=25;num>0;num--){display(11,11,qian,bai,shi,ge);jia();jian();//在闪烁同时检测按键,提高扫描率gnj();}for(num1=25;num1>0;num1--)//如果按下1次,秒{display(shiw,wan,qian,bai,shi,ge);jia();jian();//在闪烁同时检测按键,提高扫描率gnj();}}}void main()//主函数{write_ds(0x0B,0x06);//二进制格式,24小时制write_ds(0x0A,0x20); //开启内部振荡wela=1; //开位选P1=0x00;wela=0; //关位选while(1)//大循环{keyscan();//键盘扫描if(flag==0)//在S1没有按下时,flag为0{shige=read_ds(4); //读取时fen=read_ds(2);//读取分miao=read_ds(0);//读取秒}sansuo();shiw=shige/10;//小时的十位wan=shige%10;//小时的个位qian=fen/10;//分钟的十位bai=fen%10;//分钟的个位shi=miao/10;//秒钟的十位ge=miao%10;//秒钟的个位display(shiw,wan,qian,bai,shi,ge);//调用显示函数}}。
DS12887的原理和应用1.功能特点DS12887是美国达拉斯半导体公司最新推出的时钟芯片,采用CMOS技术制成,把时钟芯片所需的晶振和外部锂电池相关电路集于芯片内部,同时它与目前 IB M AT计算机常用的时钟芯片MC146818B和DS1287管脚兼容,可直接替换。
采用DS12887芯片设计的时钟电路勿需任何外围电路并具有良好的微机接口。
DS1288 7芯片具有微轼耗、外围接口简单、精度高、工作稳定可靠等优点,可广泛用于各种需要较高精度的实时时钟场合中。
其主要功能如下:(1)内含一个锂电池,断电情况运行十年以上不丢失数据。
(2)计秒、分、时、天、星期、日、月、年,并有闰年补偿功能。
(3)二进制数码或BCD码表示时间、日历和定闹。
(4)12小时或24小时制,12小时时钟模式带有PWM和AM指导,有夏令时功能。
(5)MOTOROLA5和INATAEL总线时序选择。
(6)有128个RAM单元与软件音响器,其中14个作为字节时钟和控制寄存器,114字节为通用RAM,所有ARAM单元数据都具有掉电保护功能。
(7)可编程方波信号输出。
(中断信号输出(IRQ)和总线兼容,定闹中断、周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试。
2. DS12887的原理及管脚说明DS12887内部原理如图1所示,由振荡电路、分频电路、周期中断/方波选择电路、14字节时钟和控制单元、114字节用户非易失RAM、十进制/二进制计加器、总线接口电路、电源开关写保护单元和内部锂电池等部分组成。
GND,VCC:直流电源+5V电压。
当5V电压在正常范围内时,数据可读写;当V CC 低于4.25V,读写被禁止,计时功能仍继续;当VCC下降到3V以下时,RAM和计时器被切换到内部锂电池。
MOT(模式选择):MOT管脚接到VCC时,选择MOTOROLA时序,当接到GND时,选择INTEL时序。
SQW(方波信号同):SQW管脚能从实时时钟内部15级分频器的13个抽头中选择一个作为输出信号,其输出频率可通过对寄存器A编程改变。
摘要:文中介绍了DS12887时钟芯片的内部框图和引脚功能,结合实际电路分析了DS12887在LED显示屏中的应用、与80196KB显示芯片的联接方法和编程方法。
关键词:时钟芯片 LED显示
DS12887是美国达接斯半导体公司(Dallas)最新推出的串行接口实时时钟芯片,采用CMOS技术制成,具有内部晶振和时钟芯片备份锂电池,同时它与目前IBM AT计算机常用的时钟芯片MC146818B和DS1287管脚兼容,可直接替换。
它所提供的世纪字节在位置32h,世纪寄存器32h到2000年1月1日将从19递增到20。
采用DS12887芯片设计的时钟电路无需任何外围电路和器件,并具有良好的微机接口。
DS12887芯片具有微功耗,外围接口简单,精度高,工作稳定可靠等优点,可广泛用于各种需要较高精度的实时时钟系统中。
DS12887主要功能简介
(1)内含一个锂电池,断电后运行十年以上不丢失数据。
(2)计秒,分,时,天,星期,日,月,年,并有闰年补偿功能。
(3)二进制数码或BCD码表示时间,日历和定闹。
(4)12小时或24小时制,12小时时钟模式带有PM和AM指示,有夏令时功能。
(5)Motorola和Intel总线时序选择。
(6)有128个字节RAM单元与软件接口,其中14个字节作为时钟和控制寄存器,114字节为通用RAM,所有RAM单元数据都具有掉电保护功能。
(7)可编程方波信号输出。
(8)中断信号输出(IRQ)和总线兼容,定闹中断,周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试。
原理及引脚说明
DS12887内部由振荡电路,分频电路,周期中断/方波选择电路,14字节时钟和控制单元,114字节用户非易失RAM,十进制/二进制累加器,总线接口电路,电源开关写保护单元和内部锂电池等部分组成。
DS12887引脚分配如图1:
Vcc:直流电源+5V电压。
当5V电压在正常范围内时,数据可读写;当Vcc低于4.25V,读写被禁止,计时功能仍继续;当Vcc下降到3V以下时,RAM和计时器供电被切换到内部锂电池。
MOT(模式选择):MOT引脚接到Vcc时,选择MOTOROLA时序,当接到GND时,选择Intel时序。
SQW(方波信号输出):SQW引脚能从实时钟内部15级分频器的13个抽头中选择一个作为输出信号,其输出频率可通过对寄存器A编程改变。
AD0-AD7(双向地址/数据复用线):总线接口,可与Motorola微机系列和Intel微机系列接口。
AS(地址选通输入):用于实现信号分离,在AD/ALE的下降沿把地址锁入DS12887。
DS (数据选通或读输入):DS/RD引脚有两种操作模式,取决于MOT 引脚的电平,当使用Motorola时序时,DS是一正脉冲,出现在总线周期的后段,称为数据选通;在读周期,DS指示DS12887驱动双向总线的时刻;在写周期,DS的后沿使DS12887锁存写数据。
选择Intel时序时,DS称作(RD),RD与典型存贮器的允许信号(OE)的定义相同。
R/W (读/写输入):R/W引脚也有两种操作模式。
选Motorola时序时,R/W是低电平信号时,指示当前周期是读或写周期,DS为高电平时,R/W高电平指示读周期,R/W信号一低电平信号,称为WR。
在此模式下,R/W引脚与通用RAM的写允许信号(WE)的含义相同。
CS(片选输入):在访问DS12887的总线周期内,片选信号必须保持为低。
IRQ(中断申请输入):低电平有效,可作微处理的中断输入。
没有中断的条件满足时,IRQ处于高阻态。
IRQ线是漏极开路输入,要求外接上接电阻。
RESET(复位输出):当该脚保持低电平时间大于200ms,保证DS12887有效复位。
内部功能
地址分配
DS12887的地址由114字节的用户RAM存放。
10字节的存放实时时钟时间,日历和定闹RAM及用于控制和状态的4字节特殊寄存器组成,几乎所有的128个字节直接读写。
时间,日历和定闹单元
时间和日历信息通过读相应的内存字节来获取,时间,日历和定闹通过写相应的内存字节设置或初始化,其字节内容可以是二进制或BCD 形式。
时间可选择12小时制或24小时制,当选择12小时制时,小时字节的高门为逻辑“1”代表PM。
时间,日历和定闹字节是双缓冲的,总是可访问的。
每秒钟这10个字节走时1 秒,检查一次定闹条件,如在更新时,读时间和日历可能引起错误,三个字节的定闹字节有两种使用方法。
第一种,当定闹时间写入相应时,分,秒,定闹单元,在定允许闹位置高的条件下,定闹中断每天准时起动一次。
第二种,在三个定闹字节中插入一个或多个不关心码。
不关心码是任意从O0到FF 的16进制数。
当小时字节的不关心码位置位时,定闹为小时发生一次;同样,当小时和分钟定闹字节置不关心位时,每分钟定闹一次;当三个字节都置不关心位时,每秒中断一次。
非易失RAM
在DS1288中,114字节通用非易失RAM不专用一任何特殊功能,它们可被处理器程序用作非易失内存,在更新周期也可访问。
中断
RTC 实时时钟加RAM向处理器提供三个独立的,自动的中断源。
定闹中断的发生率可编程,从每秒一次到每天一次,周期性中断的发生率可从500ms到122s选择。
更新结束中断用于向程序指示一个更新周期完成。
中断控制和状态位在寄存器B和C中,本文的其它部分将详细描述每个中断发生条件。
晶振控制位
DS12887出厂时,其内部晶振被关掉,以防止钽电池在芯片装入系统前被消耗。
寄存器A的BIT4-BIT6的其它组合都是使晶振关闭。
方波输出选择
15 级分频抽头中的13个可用于15选1选择器,选择分频器抽头的目的是在SQW引脚产生一个方波信号,其频率由寄存器A的RS0-RS3位设置。
SQW频率选择器与周期中断发生器共有15选1选择器,一旦频率选择好,通过用程序控制方波输出允许位SQWE来控制SQW引脚输出的开关。
周期中断选择
周期中断可在IRQ脚产生500ms一次到每122μs一次的中断,中断步率同样由寄存A确定,它的控制位为寄存器B中的PIE位。
更新周期
DS12887每一秒执行一次更新周期,保证时间、日历的准确。
更新周期还比较每一定闹字节与相应的时间字节,如果匹配或三个字节都是不关心码,则产生一次定闹中断。
状态控制寄存器
DS12887有4个控制寄存器,它们在任何时间都可访问,即使更新周期也不例外。
寄存器A
UIP:更新周期正在进行位。
当UIP为1,更新转换将很快发生,当UIP为0,更新转换至少在244s内不会发生。
DV0、DV1、DV2:用于开关晶振和复位分频链。
这些位的010唯一组合将打开晶振并充许RTC 计时。
RS3、RS2、RS1、RS0:频率选择位,从15级频率器13个抽头中选一个,或禁止分频器输入。
选择好的抽头用于产生方波(SQW引脚)输出和周期中断,用户可以:
(1)用PIE位允许中断。
(2)用SQWE位允许并用相同的频率。
寄存器B、C、D的介绍从略
图2是作者所设计的LED大屏幕系统中DS12887与80196KB的硬件连接图。
固化在下位机2764中的时间显示子程序,由于篇幅关系在此从略,感兴越的读者可同本刊编辑部联系。