DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 128|回复: 0
打印 上一主题 下一主题

解析时钟日历芯片DS12C887

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 16:47:58 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

                      DS12C887实时时钟芯片功能丰富,可以用来直接代替IBM PC上的时钟日历芯片DS12887,同时,它的管脚也和MC146818B、DS12887相兼容。实时时钟的缩写是RTC(Real_Time Clock)。 RTC 是集成电路,通常称为时钟芯片。RTC通常为8PIN,有SOP8、MSOP8、TSSOP8等多种封装。其中有6个I/O口的功能是一样的,分为:晶体接口2PIN、MCU接口2PIN、主电源1PIN、地1PIN.这样就剩下2个I/O的功能定义被区分开了。所以会有许多的RTC型号。例如 荷电科技的H1208、H8563、H1302、H1307、H1381等等。大家看到后会发现许多RTC在I/O口的定位上有明显的区别,所以PCB设计时需要多注意。
  由于DS12C887能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决子"千年"问题; DS12C887中自带有锂电池,外部掉电时,其内部时间信息还能够保持10年之久;对于一天内的时间记录,有12小时制和24小时制两种模式。



  2 引脚功能
  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中。
  R/W:读/写输入端,该管脚也有2种工作模式,当MOT接VCC时,R/W工作在Motorola模式。此时,该引脚的作用是区分进行的是读操作还是写操作,当R/W为高电平时为读操作,R/W为低电平时为写操作;当MOT接GND时,该脚工作在Intle模式,此时该作为写允许输入。
  CS:片选输入,低电平有效。
  IRQ:中断请求输入,低电平有效,该脚有效对DS12C887内的时钟、日历和RAM中的内容没有任何影响,仅对内部的控制寄存器有影响,在典型的应用中,RESET可以直接接VCC,这样可以保证DS12C887在掉电时,其内部控制寄存器不受影响。
  由表1可以看出:DS12C887内部有控制寄存器的A-B等4个控制寄存器,用户都可以在任何时候对其进行访问以对DS12C887进行控制操作。
  表1 DS12C887的存储功能


地 址
功 能
取值范围十进制数
取值范围

二进制
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~0C AM,
81~8C PM
01~12AM,
81~92PM

24小时模式
0~23
00~17
00~23

5
时闹铃,12小时制
1~12
01~0C AM,
81~8C PM
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码模式*/
  以下均获取时间程序:
  unsigned char data t-century;
  unsigned char data t-year;
  unsigned char data t-mONth;
  unsigned char data t-date;
  unsigned char data t-week;
  unsigned char data t-hour;
  unsigned char data t-minute;
  unsigned char data t-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功能丰富,使用简单,可能性高,是时间产生电路的良好选择。实时时钟日历芯片。它提供一个可编程时钟输出一个中断输出和掉电检测器。所有的地址和数据通过I2C 总线接口串行传递最大总线速度为400Kbits/s 每次读写数据后内嵌的字地址寄存器会自动产生增量。实时时钟/日历芯片。数据通过SPI总线传输,最大总线速率高达6.25Mbit/s.报警和定时器功能产生一个唤醒信号,唤醒中断管脚。偏移寄存器可以实现时钟的校准。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-7-28 13:37 , 耗时 0.094075 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表