时钟芯片2.docx

上传人:b****3 文档编号:5415278 上传时间:2022-12-16 格式:DOCX 页数:12 大小:192.73KB
下载 相关 举报
时钟芯片2.docx_第1页
第1页 / 共12页
时钟芯片2.docx_第2页
第2页 / 共12页
时钟芯片2.docx_第3页
第3页 / 共12页
时钟芯片2.docx_第4页
第4页 / 共12页
时钟芯片2.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

时钟芯片2.docx

《时钟芯片2.docx》由会员分享,可在线阅读,更多相关《时钟芯片2.docx(12页珍藏版)》请在冰豆网上搜索。

时钟芯片2.docx

时钟芯片2

DS12887是美国达拉斯半导体公司最新推出的时钟芯片,采用CMOS技术制成,把时钟芯片所需的晶振和外部锂电池相关电路集于芯片内部,同时它与目前IBMAT计算机常用的时钟芯片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,VCC:

直流电源+5V电压。

当5V电压在正常范围内时,数据可读写;当VCC低于4.25V,读写被禁止,计时功能仍继续;当VCC下降到3V以下时,RAM和计时器被切换到内部锂电池。

   MOT(模式选择):

MOT管脚接到VCC时,选择MOTOROLA时序,当接到GFND时,选择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是一电平信号,指示当前周期是读或写周期,DSO为高电平时,R/W高电平指示读周期,R/W低电平指示写周期;选INTEL时序,R/W信号是一低电平信号,称为WR。

在此模式下,R/W管脚与通用RAM的写允许信号(WE)的含义相同。

   CS(片选输入):

在访问DS12887的总线周期内,片选信号必须保持为低。

   IRQ(中断申请输入):

低电平有效,可作微处理的中断输入。

没有中断条件满足时,IRQ处于高阻态。

IRQ线是漏极开路输入,要求外接上接电阻。

   RESET(复位输出):

当该脚保持低电平时间大于200ms,保证DS12887有效复位。

3.DS12887的内部功能

3.1地址分配图

   DS12887的地下分配图如图3所示,由114字节的用户RAM,10字节的存放实时时钟时间。

日历和定闹RAM及用于控制和状态的4字节特殊寄存器组成,几乎所有的128个字节可直接读写。

3.2时间、日历和定闹单元

   时间和日历信息通过读相应的内存字节来获取,时间、日历和定闹通过写相应的内存字节设置或初始化,其字节内容可以是十进制或BCD形式。

时间可选择12小时制或24小时制,当选择12小时制时,小时字节搞位为逻辑“1”代表PM。

时间、日历和定闹字节是双缓冲的,总是可访问的。

每秒钟这10个字节走时1秒,检查一次定闹条件,如在更新时,读时间和日历可能引起错误。

三个字节的定闹字节有两种使用方法。

第一种,当定闹时间写入相应时、分、秒定闹单元,在定允许闹位置高的条件下,定闹中断每天准时起动一次。

第二种,在三个定闹字节中插入一个或多个不关心码。

不关心码是任意从C到FF的16进制数。

当小时字节的不关心码位置位时,定闹为小时发生一次由于相线小时和分钟定闹字节置不关心位时,每分钟定闹一次;当三个字节都置不关心位时,每秒中断一次。

3.3非易失RAM

   在DS12887中,114字节通用非易失RAM不专用于任何特殊功能,它们可被处理器程序用作非易失内存,。

在更新周期也可访问。

3.4中断

   RTC实时时钟加RAM向处理器提供三个独立的、自动的中断源。

定闹中断的发生率可编程,从每秒一次到每天一次,周期性中断的发生率可从500ms到122µs选择。

更新结束中断用于向程序指示一个更新周期完成。

中断控制和状态位在寄存器B和C中,本文的其它部分将详细描述每个中断发生条件。

3.5晶振控制位

   DS12887出厂时,其内部晶振被关掉,以防止锂电池在芯片装入系统前被消耗。

寄存器A的BIT4~BIT6为010时打开晶振,分频链复位,BIT4~BIT6的其它组合都是使晶振关闭。

3.6方波输出选择

   如图1原理图所示,15级分步抽着中的13个可用于15选1选择器,选择分频器抽头的目的是在SQW管脚产生一个方波信号,其频率由寄存器A的RS0~RS3位设置。

SQW频率选择与周期中断发生器共离15选1选择器,一旦频率选择好,通过用程序控制方波输出允许位SWQE来控制SQW管脚输出的开关。

3.7周期中断选择

   周期中断可在IRQ脚产生500ms一次到每122µs一次的中断,中断频率同样由寄存A确定,它的控制位为寄存器B中的PIE位。

3.8更新周期

   DS12887每秒执行一次更新周期还比较每一定闹字节与相应的时间字节,如果匹配枵三个字节都是不关心码,则产生一次定闹中断。

4.DS12887状态控制寄存器

   DS12887有4个控制寄存器,它们在任何时间都可访问,即使更新周期也不例外。

4.1寄存器A

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

UIP

DV2

DV1

DV0

RS3

RS2

RS1

RS0

   UIP:

更新周期正在进行位。

当UIP为1,更新转换将很快发生,当UIP为0,更新转换至少在244µs内不会发生。

   DV0,DV1,DV2:

用于开关晶振和复位分频链。

这些位的010唯一组合将打开晶振并允许RTC计时。

   表1列了邮周期中断率和方波频率。

   RS3,RS2,RS1,RS0:

频率选择位,从15级频率器13个抽头中选一个,或禁止分频器输入,选择好的抽头用于产生方波(SQW管脚)输出和周期中断,用户可以:

   

(1)用PIE位允许中断:

   

(2)用SQWE位允许SQAW输出;

   (3)二者同时允许并用相同的频率;

   (4)都不允许

4.2寄存器B

BIT7

BIT6

BIT5

BIT4

BIOT3

BIT2

BIT2

BIT1

SET

PIE

ALE0

VIE

SQWE

DM

24/12

DSE

   SET:

SET为0,时间更新正常进行,每秒计数走时一次,当SET位写入1,时间更新被禁止,程序可初始化时间和日历字节。

   PIE:

周期中断劲旅位,PIE为1,则允许以选定的频率拉低IRQ管脚,产和不足齿数民:

PIE为0,则禁止中断。

   AIE:

定闹中断允许位,PIE为1,允许中断,否则禁止中断。

   SQWE:

方波允许位,置1选定频率方波从SQW脚输出;为0-时,SQW脚为低。

   DM:

数据模式位,DM为1青蛙为十进制数据,而0表明是BCD码的数据。

   24/12:

小时格式位,1表明24小时械,而0表明12小时械。

   DSE:

P夏令时允许位,当DSE置1时允许两个特殊的更新,在四月份的第一时期日、时间从1:

59:

59AM时改变为1:

00:

00AM,当DSE位为0,这种特殊修正不发生。

4.3寄存器C

BIT7

BIY6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

IRQF

PF

AF

VF

0

0

0

0

   IRQF:

中断申请标志位。

当下列表达式中一个或多个为真时,置1。

   PF=PIE=1;AF=AIE=1;

   UF=UIE=1;

   即:

IRQF=PF·PIE+AF·AIE+UF·UIE

   只要IRQF为1,IRQ管脚输出低,程序读寄存器C以后或RESET管脚为低后,所有标志位清零。

  AF:

定闹中断标志位,只读,AF为1表明现在时间与定闹时间匹配。

   VF:

更新周期结束标志位。

VF为1表明更新周期结束。

   BIAT0~BIT3:

未用状态位,读出总为0,不能写入。

4.4寄存器D

BIT7

BIT6

BIT5

BIT4

BIOT3

BIT2

BIT1

BIT0

VRT

0

0

0

0

0

0

0

   VRT:

内部锂电池状态位,平时应总读出1,如出现0,表明内部锂电池耗尽。

   BIT0~BIT6:

未用状态位,读出总为0,不能写入。

5.硬件接口电路

   DS12887时钟芯片和AT89C51单微机的接口电路如图4所示,选择DS12887时钟芯片的地址总线及AS端口和AT89C51单片微机的P0及ALE端直接相联;而DS、R/W读写控制线与单片机的RD、WAR控制线相连;DS12887的高位地址由80C31半日片机的P2.7端口来片选,则DS12887的高8位地址定为7FH,而其低8侠地址则由芯片内部各单元的地址来决定(00H~3FH);DS12887的中断输出端IRQ和80C的外部INT0端相联,给单片机提供中断信号;DS12887的SQW端口可编程产生方波输出信号。

6.接口软件

   下面为DS12887时钟芯片和80C31单片机的接口软件,假定采用每天24小时制的非夏令时,时间数据格式为BCD码,初始化时间为1996年1月1日9时00分00秒,1k方波输出。

时钟芯片每一秒种向单片机申请中断一次,一方面让单片机修改一次时钟显示,另一方面也给单片微机系统提供时间基准。

   

(1)DS12887时钟芯片的初始化写入程序

   MOVDPTR,#7F0AH;寄存器A地址

   MOV A,#70H:

DV2~DV0=111,分频复位

   MOVX @DPTR,AA

   INC DPTR:

到寄存器B地址

   MOV A,#8AH:

停止更新,允许更新中断,选BCD码,24小时制

   MOVX @DPRT,A

   MOV QPL,#00H,秒单元地址

   CLR A:

00秒

   MOVX @DPTR,A

   MOVDPL,#02H;分单元地址

   CLR A:

00分

   MOVX@DPTR,A

   MOVDPL,#04H;时单元地址

   MOV A,#09H;9时

   MOVX @DPTR,A

   MOV DPL#07H;日单元地址

   MOV A,@01H:

1日

   MOVX @DPTR,A

  INC DPTR:

到月单元地址

  MOV A,#01H;1月

   MOVX @DPTR,A

   IC DPTR:

到年单元地址

   MOV A,#96H;1996年

   MOVX @DPTR,A

   INC DPTR;到寄存器A地址

   MOV A,#26H;DV2~DV0=010 RS3~RS0=0110

   MOVX @DPTR,A:

选周期中断率为976.5625µs,允许方波输出,频率1kHz

   INC DPTR:

到寄存器B

   MOV  A,#1AH;每秒更新一次,允许方波输出,24小时制

   MOVX @DPTR,A:

时钟开始运行

   

(2)读取DS12887时钟日历数据程序

   DS12887的日历时钟通常有中断和查询两种方法读出。

但在读数据时,首先要判断数据是否更新结束,只有在数据更新结束时数据读出才有效。

   ①采用查询法读取数据:

   查询寄存器A的UIP位,当UIP=0时,数据更新结束,可以读出。

以下是采用查询方法,从秒至年单元的数据读出后存入80C31内部RAM的30~35H单元中,该部分程序如下:

   MOV DPTR,#7F0AH;寄存器A地址

   MOVX A,@DPTR

   WAIT:

JB ACC,7,WAIT:

UIP=1则等待更新完毕

   MOV DPL,@00H;秒地址

   MOV R0,#30H;取目标首地址

   MOVX  A,@DPTR;取秒数据

   MOV @R0,A:

送入80C31的内部RAM缓冲区

   IC DPTR:

移指针

   IC R0

   ;以下略

   ②采用中断法读取数据

   当DS12887发出中断请示,单片微机可以响应中断而读取日历数据。

对于更新结束中断,中断时更新结束,数据有效,可以直接读取日历数据;对于闹钟中断和周期中断也需查询寄存器A的UIP位,当UIP=0时,数据更新结束,再读出日历时钟,具体指令这里不再列出

一种新型的时钟日历芯片DS12C887

2010-04-0817:

37:

30文章来源:

我来说两句(0)

∙导读:

  DS12C887实时时钟芯片功能丰富,可以用来直接代替IBMPC上的时钟日历芯片DS12887,同时,它的管脚也和MC146818B、DS12887相兼容。

o关键字

o寄存器  读取  总线  

∙1器件特性

  DS12C887实时时钟芯片功能丰富,可以用来直接代替IBMPC上的时钟日历芯片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模式,此时该作为写允许输入,即WriteEnable。

  CS:

片选输入,低电平有效。

  IRQ:

中断请求输入,低电平有效,该脚有效对DS12C887内的时钟、日历和RAM中的内容没有任何影响,仅对内部的控制寄存器有影响,在典型的应用中,RESET可以直接接VCC,这样可以保证DS12C887在掉电时,其内部控制寄存器不受影响。

  在DS12C887内有11字节RAM用来存储时间信息,4字节用来存储控制信息,其具体垢地址及取值如表1所列。

  由表1可以看出:

DS12C887内部有控制寄存器的A-B等4个控制寄存器,用户都可以在任何时候对其进行访问以对DS12C887进行控制操作。

表1DS12C887的存储功能

 

地?

功 能

取值范围十进制数

取值范围

二进制

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

4

12小时模式

0~12

01~0CAM,

81~8CPM

01~12AM,

81~92PM

24小时模式

0~23

00~17

00~23

5

时闹铃,12小时制

1~12

01~0CAM,

81~8CPM

01~12AM,

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;

/*所有的中断禁止,24小时制,BCD码模式*/

以下均获取时间程序:

unsignedchardatat-century;

unsignedchardatat-year;

unsignedchardatat-month;

unsignedchardatat-date;

unsignedchardatat-week;

unsignedchardatat-hour;

unsignedchardatat-minute;

unsignedchardatat-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功能丰富,使用简单,可能性高,是时间产生电路的良好选择。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 动态背景

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1