9827|6

8

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

新型的时钟日历芯片DS12C887 特性应用 [复制链接]

摘要:简要介绍了美国DALLAS公司的新型时钟日历芯片DS12C887的功能特性和内部控制寄存器参数,给出了DS12C887与8031单片机的电路连接图,同时给出了用C51编写的初始化程序和获取内部时间的程序。
关键词:时钟 单片机 DS12C887

1 器件特性

    DS12C887实时时钟芯片功能丰富,可以用来直接代替IBM PC上的时钟日历芯片DS12C887,同时,它的管脚也和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:模式选择脚.DS12C887有两种工作模式,即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工作模式,在该模式中,该引脚是读允许输入脚,即Read Enable。

    R/W:读/写输入端,该管脚也有2种工作模式,当MOT接VCC时,R/W工作在Motorola模式。此时,该引脚的作用是区分进行的是读操作还是写操作,当R/W为高电平时为读操作,R/W为低电平时为写操作;当MOT接GND时,该脚工作在Intle模式,此时该作为写允许输入,即Write Enable。

    CS:片选输入,低电平有效。

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

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

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

此帖出自FPGA/CPLD论坛

最新回复

呵呵 我已经编过了 现在唯一的问题是 不能闹钟关闭 不知道是什么原因  详情 回复 发表于 2007-7-2 21:49
点赞 关注
 

回复
举报

1759

帖子

0

TA的资源

裸片初长成(高级)

沙发
 

Re: 新型的时钟日历芯片DS12C887 特性应用

很好 谢谢
此帖出自FPGA/CPLD论坛
个人签名南京璞晓电子   www.cpx0.com需要
msn:njlianjian@hotmail.com
 
 

回复

290

帖子

149

TA的资源

五彩晶圆(初级)

板凳
 

Re: 新型的时钟日历芯片DS12C887 特性应用

“由于DS12C887能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决子“千年”问题; DS12C887中自带有锂电池,外部掉电时,其内部时间信息还能够保持10年之久” 好东西,再也不用挠头想家里的万年历的运行机制了
此帖出自FPGA/CPLD论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

4
 

Re: 新型的时钟日历芯片DS12C887 特性应用

请问楼主, 能给出XBYTE[]这个函数的内容吗? 因为当单片机和DS12C887联系的时候要有底层的驱动程序的 请教楼主这个怎么写 谢谢了
此帖出自FPGA/CPLD论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

5
 

Re: 新型的时钟日历芯片DS12C887 特性应用

请问楼主, 能给出XBYTE[]这个函数的内容吗? 因为当单片机和DS12C887联系的时候要有底层的驱动程序的 请教楼主这个怎么写 谢谢了
此帖出自FPGA/CPLD论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

6
 

Re: 新型的时钟日历芯片DS12C887 特性应用

hao
此帖出自FPGA/CPLD论坛
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

7
 

回复:新型的时钟日历芯片DS12C887 特性应用

呵呵 我已经编过了 现在唯一的问题是 不能闹钟关闭 不知道是什么原因
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表