搜档网
当前位置:搜档网 › DS12c887中文资料

DS12c887中文资料

DS12c887中文资料
DS12c887中文资料

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

1器件特性

DS12C887 实时时钟芯片功能丰富,可以用来直接代替IBM

PC 上的时钟日历芯片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 会自动将电源发换到内部自带的锂电池上,以保证内部的电路能够正常工作。

(1)MOT:模式选择脚,DS12C887 有两种工作模式,即Motorola 模式和Intel 模式,当MOT 接VCC 时,选用的工作模式是Motorola 模式,当MOT 接GND 时,选用的是Intel 模式。本文主要讨论Intel 模式。

(23)SQW:方波输出脚,当供电电压VCC 大于 4.25V 时,SQW 脚可进行方波输出,此时用户可以通过对控

制寄存器编程来得到13 种方波信号的输出。

AD0~AD7:复用地址数据总线,该总线采用时分复用技术,在总线周期的前半部分,出现在AD0~AD7 上的是地址信息,可用以选通DS12C887 内的RAM,总线周期的后半部分出现在AD0~AD7 上的数据信息。

(14)AS:地址选通输入脚,在进行读写操作时,AS 的上升沿将AD0~AD7 上出现的地址信息锁存到

DS12C887 上,而下一个下降沿清除AD0~AD7 上的地址信息,不论是否有效,DS12C887 都将执行该操作。

(17)DS/RD:数据选择或读输入脚,该引脚有两种工作模式,当MOT 接VCC 时,选用Motorola 工作模式,在这种工作模式中,每个总线周期的后一部分的DS 为高电平,被称为数据选通。在读操作中,DS 的上升沿使DS12C887 将内部数据送往总线AD0~AD7 上,以供外部读取。在写操作中,DS 的下降沿将使总线AD0~AD7 上的数据锁存在

DS12C887 中;当MOT 接GND 时,选用Intel 工作模式,在该模式中,该引脚是读允许输入脚,即Read

Enable。

(15)R/W:读/写输入端,该管脚也有 2 种工作模式,当MOT 接VCC 时,R/W 工作在Motorola 模式。此

时,该引脚的作用是区分进行的是读操作还是写操作,当R/W 为高电平时为读操作,R/W 为低电平时为写操作;当MOT 接GND 时,该脚工作在Intel 模式,此时该作为写允许输入,即Write Enable。

(13)C——S——:片选输入,低电平有效。

(19)I——R——Q——:中断请求输入,低电平有效,该脚有效对DS12C887 内的时钟、日历和RAM 中的内容没有任何

影响,仅对内部的控制寄存器有影响,在典型的应用中,RESET 可以直接接VCC,这样可以保证DS12C887 在掉电

时,其内部控制寄存器不受影响。

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

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];}/*读取秒*/

基于DS12C887时钟芯片的高精度时钟的设计

华侨大学厦门工学院 本科生毕业设计(论文)题目:基于DS12C887时钟芯片的高精度时钟的设计姓名:吴挺 学号:0902106019 系别:电气工程 专业:电气工程及其自动化 年级:2009 指导教师:刘晓东 年月日

独创性声明 本毕业设计(论文)是我个人在导师指导下完成的。文中引用他人研究成果的部分已在标注中说明;其他同志对本设计(论文)的启发和贡献均已在谢辞中体现;其它内容及成果为本人独立完成。特此声明。 论文作者签名:日期: 关于论文使用授权的说明 本人完全了解华侨大学厦门工学院有关保留、使用学位论文的规定,即:学院有权保留送交论文的印刷本、复印件和电子版本,允许论文被查阅和借阅;学院可以公布论文的全部或部分内容,可以采用影印、缩印、数字化或其他复制手段保存论文。保密的论文在解密后应遵守此规定。 论文作者签名:指导教师签名:日期:

基于DS12C887时钟芯片的高精度时钟的设计 摘要 随着社会的发展人们的生活节奏越来越快,每天的工作,学习,休息的时间都安排的很紧,需要一个时钟准确的报时。人们对时钟的要求越来越高,不仅要求每天的的时间误差小于几毫秒,还要求具有定时闹钟,具有万年历等功能。传统的日历电子钟元器件多、维修麻烦、误差大、功能更新不方便。DS12C887时钟芯片能够自动显示年、月、日、时、分、秒等时间信息,同时还具有校时,报时,闹钟等功能。DS12C887也可以很方便的由软件编程进行功能的调整或增加。所以设计基于DS12C877时钟芯片的高精度时钟的设计具有十分重要的现实意义和实用价值。 关键词:DS12C887,时钟芯片,单片机STC89C52,高精度时钟

基于51单片机的DS12C887时钟芯片的程序

#include #define uchar unsigned char #define uint unsigned int uchar code table[]=" 2011-10-03 MON"; uchar code table1[]=" 00:00:00"; sbit lcden=P2^7; sbit lcdrs=P2^6; sbit lcdrw=P2^5; sbit dscs=P1^0; sbit dsas=P1^1; sbit dsrw=P1^2; sbit dsds=P1^3; sbit dsirq=P3^3; sbit s1=P3^0; sbit s2=P3^1; sbit s3=P3^2; sbit rd=P3^7; uchar num,nian,yue,ri,zhou,s1num,flag; char miao,fen,shi; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void write_com(uchar com) { lcdrs=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; } void write_date(uchar date) { lcdrs=1; P0=date; delay(5); lcden=1; delay(5); lcden=0; }

void write_ds(uchar add,uchar date) { dscs=0; dsas=1; dsds=1; dsrw=1; P0=add; dsas=0; dsrw=0; P0=date; dsrw=1; dsas=1; dscs=1; } uchar read_ds(uchar add) { uchar ds_date; dsas=1; dsds=1; dsrw=1; dscs=0; P0=add; dsas=0; dsds=0; P0=0xff; ds_date=P0; dsds=1; dsas=1; dscs=1; return ds_date; } void write_sfm(uchar add,uchar date) { uchar shi,ge; shi=date/10; ge=date%10; write_com(0x80+0x40+add); write_date(0x30+shi); write_date(0x30+ge); } void write_nyr(uchar add,uchar date) {

单片机DS12C887时钟设计

目录 摘要 (2) 1 系统总体设计 (2) 1.1 系统设计的主要内容和具体要求 (2) 1.1.1主要内容: (2) 1.1.2 具体技术要求: (2) 1.2 方案论证 (2) 2 系统硬件电路设计 (3) 2.1单片机控制系统包括STC89C52单片机以及它的外围电路(晶振电路和复位电路)。 (3) 2.1.1晶振电路 (4) 2.1.2 复位电路 (4) 2.2 DS12C887时钟电路 (5) 2.2.1 器件介绍 (5) 2.2.2 DS12C887与单片机的连接 (6) 2.3 1602液晶显示屏 (6) 2.4 USB供电电路 (7) 2.5 键盘电路 (8) 2.6闹铃电路 (9) 3 系统软件程序设计 (9) 3.1 主程序运行说明及流程图 (9) 3.2 DS12C887使用说明及流程图 (11) 3.3 1602操作说明及流程图 (11) 3.4 键盘控制说明及流程图 (12) 4 系统调试 (13) 5 结论 (14) 6 谢辞 (14) 7 参考文献 (15) 8 附录A:实时日历电子钟设计电路原理图 (15) 9 附录B:实时日历电子钟设计程序代码 (15)

摘要 在日新月异的21世纪里,家用电子产品得到了迅速发展。许多家电设备都趋于人性化、智能化,这些电器设备大部分都含有CPU控制器或者是单片机。单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统、通讯设备、日常消费类产品和玩具等。 本文设计的电子万年历属于小型智能家用电子产品。利用单片机进行控制,实时时钟芯片DS12C887时钟芯片进行记时及掉电存储,外加键盘电路和显示电路,可实现时间的调整和显示。电子万年历既可广泛应用于家庭,也可应用于银行、邮电、宾馆、医院、学校、企业、商店等相关行业的大厅,以及单位会议室、门卫等场所。因而,此设计具有相当重要的现实意义和实用价值。关键词:单片机;DS12C887;智能 1 系统总体设计 1.1 系统设计的主要内容和具体要求 1.1.1主要内容: 本次设计的题目是基于ds12c887的高精度时钟的设计,可以正常的显示年、月、日、星期、时、分、秒。本系统利用单片机实现具有计时校时等功能的数字时钟,是以单片机STC89C52为核心元件,同时采用1602液晶显示“时”、“分”、“秒”的现代计时装置。与传统机械表相比它具有走时精确,显示直观等特点。另外具有校时功能,编程灵活,便于扩充等优点。 本次设计可分为两部分:硬件部分,软件部分。 硬件部分包括:STC89C52、DS12C887时钟芯片、1602LCD液晶显示器。主要由STC89C52单片机、实时时钟芯片电路、液晶显示输出电路、键盘输入电路等几大部分组成。 软件部分包括:主程序模块,DS12C887模块,LCD1602模块,键盘控制模块。 1.1.2 具体技术要求: (1)在1602液晶上显示年、月、日、星期、时、分、秒,并且按秒实时更新显示。 (2)具有闹铃设定及到时报警功能,报警响起时按任意键可取消报警。 (3)能够通过按键随时调节各个参数,按键可设计4个有效键,分别为功能选择键、数值增大键、数值减小键、和闹铃查看键。 (4)每次有键按下时,蜂鸣器都以短“滴”声报警。 (5)利用DS12C887自身掉电可继续走时的特性,设计实现断电时间不停,再次上电时间仍然准确显示在液晶上的功能。 1.2 方案论证 时钟电路有各种各样的,在不同的要求和条件下有着各自的优势,本设计的题目是高精度时钟的设计,根据设计要求时钟显示正常的年、月、日、星期、时、分、秒。要想实现上述功能,所以设计要从电路设计的性价比、显示时间的精确以及稳定性为前提。本设计是要将硬件系统和软件系统有机的结合在一起,方可实现我们设计任务中的各项要求。 在以单片机为核心构成的装置中,经常需要一个实时的时钟和日历,以便对一些实时发生事件记录时给予时标,实时时钟芯片便可起到这一作用。DS12C887是一个综合性能较好且价格便宜的并行接口实时时钟芯片。利用单片机进行控制,采用DS12C887作为实时时钟芯片,并与单片机进行同步通信,外加显示电路、键盘电路、闹铃电路,即构成一个基本的电子万年历系统。若还要添加其他功能,在这基础上外扩电路即可。

单片机万年历DS12C887实现程序

#include #include "1602.h" #include"ds12cr887.h" #define uchar unsigned char #define uint unsigned int sbit lcdrs=P3^7 ; sbit lcdrw=P3^6 ; sbit lcden=P3^5 ; sbit dscs=P1^4; sbit dsas=P1^5; sbit dsrw=P1^6; sbit dsds=P1^7; sbit dsirq=P3^3; /**************键盘引脚定义******************/ sbit key_1 = P1^0; //设置格式 sbit key_2 = P1^1; //+ sbit key_3 = P1^2; //- sbit key_4 = P1^3; //定时设置 sbit buzzer= P3^1; //蜂鸣器 sbit DQ = P3^0; //定义DS18B20 /******************小点闪烁********************/ bit at=0; /******************全局变量********************/ uchar t0=0,second=0, min=0, hour=0,day=0,month=0,year=0,weekday=0,flag=0,temp=0,flag1=0; /******************初始化时间******************/ uchar code table1[]=" 2009-05-12 MON "; uchar code table2[]="00:00:00 0000"; /*******************字符表*********************/ uchar code word[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x20,0x2d}; uchar code week[][3]={"SUN","MON","TUE","WED","THU","FRI","SAT"}; /************数据缓冲与键盘计数变量************/ uchar databuffer[14],TempBuffer[4],count,t_value; uint num=0; /******************函数声明********************/ void init(); void lcd_write_com(uchar command); //1602液晶写命令 void lcd_write_data(uchar date); //1602液晶写数据 void delay(uint a); void newbuf(); //数据转换 void keyboard(); //键盘子程序 void disp(); //显示程序 void write_ds(uchar add,uchar date); uchar read_ds(uchar add);

DS12c887中文资料

一种新型的时钟日历芯片DS12C887 1器件特性 DS12C887 实时时钟芯片功能丰富,可以用来直接代替IBM PC 上的时钟日历芯片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 会自动将电源发换到内部自带的锂电池上,以保证内部的电路能够正常工作。 (1)MOT:模式选择脚,DS12C887 有两种工作模式,即Motorola 模式和Intel 模式,当MOT 接VCC 时,选用的工作模式是Motorola 模式,当MOT 接GND 时,选用的是Intel 模式。本文主要讨论Intel 模式。 (23)SQW:方波输出脚,当供电电压VCC 大于 4.25V 时,SQW 脚可进行方波输出,此时用户可以通过对控 制寄存器编程来得到13 种方波信号的输出。 AD0~AD7:复用地址数据总线,该总线采用时分复用技术,在总线周期的前半部分,出现在AD0~AD7 上的是地址信息,可用以选通DS12C887 内的RAM,总线周期的后半部分出现在AD0~AD7 上的数据信息。 (14)AS:地址选通输入脚,在进行读写操作时,AS 的上升沿将AD0~AD7 上出现的地址信息锁存到 DS12C887 上,而下一个下降沿清除AD0~AD7 上的地址信息,不论是否有效,DS12C887 都将执行该操作。 (17)DS/RD:数据选择或读输入脚,该引脚有两种工作模式,当MOT 接VCC 时,选用Motorola 工作模式,在这种工作模式中,每个总线周期的后一部分的DS 为高电平,被称为数据选通。在读操作中,DS 的上升沿使DS12C887 将内部数据送往总线AD0~AD7 上,以供外部读取。在写操作中,DS 的下降沿将使总线AD0~AD7 上的数据锁存在 DS12C887 中;当MOT 接GND 时,选用Intel 工作模式,在该模式中,该引脚是读允许输入脚,即Read Enable。 (15)R/W:读/写输入端,该管脚也有 2 种工作模式,当MOT 接VCC 时,R/W 工作在Motorola 模式。此 时,该引脚的作用是区分进行的是读操作还是写操作,当R/W 为高电平时为读操作,R/W 为低电平时为写操作;当MOT 接GND 时,该脚工作在Intel 模式,此时该作为写允许输入,即Write Enable。 (13)C——S——:片选输入,低电平有效。 (19)I——R——Q——:中断请求输入,低电平有效,该脚有效对DS12C887 内的时钟、日历和RAM 中的内容没有任何 影响,仅对内部的控制寄存器有影响,在典型的应用中,RESET 可以直接接VCC,这样可以保证DS12C887 在掉电 时,其内部控制寄存器不受影响。 在DS12C887 内有11 字节RAM 用来存储时间信息,4 字节用来存储控制信息,其具体垢地址及取值如表 1 所列。

基于DS12C887时钟芯片的高精度时钟的设计

华侨大学厦门工学院本科生毕业设计(论文) 时钟芯片地高精度时钟地设计基于DS12C887题目: 吴挺名:姓 0902106019 号:学 电气工程系别: 专业:电气工程及其自动化 年级:2009 指导教师:刘晓东 年月日 独创性声明 本毕业设计(论文)是我个人在导师指导下完成地.文中引用他人研究成果地部分已在标注中说明;其他同志对本设计(论文)地启发和贡献均已在谢辞中体现;其它内容及成果为本人独立完成.特此声明. 日期:论文作者签名: 关于论文使用授权地说明 本人完全了解华侨大学厦门工学院有关保留、使用学位论文地规定,即:学院有权保留送交论文地印刷本、复印件和电子版本,允许论文被查阅和借阅;学院可以公布论文地全部或部分内容,可以采用影印、缩印、数字化或其他复制手段保存论文.保密地论文在解密后应遵守此规定. 日期:指导教师签名:论文作者签名: 时钟芯片地高精度时钟地设计DS12C887基于摘要

随着社会地发展人们地生活节奏越来越快,每天地工作,学习,休息地时间都安排地很紧,需要一个时钟准确地报时.人们对时钟地要求越来越高,不仅要求每天地地时间误差小于几毫秒,还要求具有定时闹钟,具有万年历等功能.传统地日历电子钟元器件多、维修麻烦、误差大、功能更新不方便.DS12C887时钟芯片能够自动显示年、月、日、时、分、秒等时间信息,同时还具有校时,报时,闹钟等功能.DS12C887也可以很方便地由软件编程进行功能地调整或增加.所以设计基于DS12C877时钟芯片地高精度时钟地设计具有十分重要地现实意义和实用价值. 关键词:DS12C887,时钟芯片,单片机STC89C52,高精度时钟 Design of high precision clock based on clock chip DS12C887 Abstract With the development of society, people life rhythm faster and faster, a day's work, study and rest time arrangement is very tight, need a clock tell the time accurately. People is higher and higher requirement for the clock, every day not only requires the time error is less than a few milliseconds, also requires a timing alarm clock, a calendar, and other functions. Traditional electronic clock calendar components, maintenance trouble, big error, function more update is not convenient. Chip DS12C887 clock automatically display year, month, day, hours, minutes and seconds time information, but also with the school, the time, alarm clock, and other functions. DS12C887 can also be very convenient by the software programming to adjust function or to increase. So the design is based on DS12C877 clock chip design of high precision clock has very important practical significance and practical value. Keywords: DS12C887,clock chip microcontroller STC89C52,high-precision clock

在智能化仪器仪表中ds12c887

在智能化仪器仪表中,往往需要走时准确的实时时钟为 多通道数据采集、定时及实时控制提供精确的时间基准和同 步信号。目前,实现实时时钟的方法主要有软件时钟(由软 件计时实现)、硬件时钟(由硬件时钟芯片实现)、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字节供用户存储需要掉电保持的信息和数据。 (6)有3个可编程中断源,可与各种微处理器中断系统 相连接。 (7)有一个可编程方波信号输出引脚,根据用户需要输 出不同频率的方波信号。 DS12C887引脚排列见图1,DS12C887各引脚功能见表 1。 表1 DS1287引脚功能描述 管脚号标识符主要功能 MOTOROLA与I L总线时序选择 1 MOT MOT=1:M I、[)R01 A总线时序

DS12C887电子时钟(附程序)

下面附有实物图和引脚接法图及程序 时钟实物图 LCD1602引脚连接 P1.0 P1.1 P1.2 P0.0~P0.7

DS12C887引脚连接(打叉的表示不接) 蜂鸣器引脚连接按键引脚连接P1.3 P3.4 P3.5 P3.6 P3.7

源程序 #include #include #define uint unsigned int #define uchar unsigned char sbit lcdrs=P1^0; sbit rw=P1^1; sbit lcden=P1^2; sbit s1=P3^4; //功能键 sbit s2=P3^5; //增大键 sbit s3=P3^6; //减小键 sbit s4=P3^7; //闹铃查看键 sbit beep=P1^3;//蜂鸣器 sbit dscs=P1^7; sbit dsas=P1^6; sbit dsrw=P1^5; sbit dsds=P1^4; sbit dsirq=P3^3; //中断 bit flag1,flag_ri;//定义标志位flag1设置闹铃 uchar count,s1num,flag,t0_num; char miao,shi,fen,year,month,day,week,amiao,afen,ashi; char code table[]=" 20 - - "; // 20 - - uchar code table1[]=" : : "; // : : void write_ds(uchar,uchar); uchar read_ds(uchar);void set_time(); void read_alarm();void set_alarm(uchar,uchar,uchar); void delayms(uint z) //延时毫秒的程序 { uint x,y; for(x=z;x>0;x--) for(y=112;y>0;y--); } void di() { beep=0; delayms(100); beep=1; } void write_cmd(uchar cmd) { lcden=0; lcdrs=0; P0=cmd; _nop_();

DS12885、DS12887和DS12C887

DS12885、DS12887和DS12C887实时时钟(RTC)可用来直接替代DS1285和DS1287。该器件提供一个实时时钟/日历、定时闹钟、三个可屏蔽中断(共用一个中断输出)、可编程方波输出和114字节的电池备份静态RAM (DS12C887和DS12C887A包含113字节RAM)。DS12887在24引脚模块DIP封装内集成了晶体和锂电池。DS12C887在地址32h内增加了世纪字节。对于少于31天的月份,所有器件的日期能够在月末自动调整,带有闰年补偿。该器件可配置为24小时或12小时格式,带AM/PM指示。精确的温度补偿电路用于监视的V CC状态。一旦检测到主电源失效,器件可自动切换到备用电源。钮扣式锂电池可以连接到DS12885的V BAT输入引脚,在主电源掉电时保持有效的时间和日期。该器件通过一个复用的、字节宽度接口访问,支持Intel和Motorola模式。 ?直接替代IBM AT计算机时钟/日历 ?RTC计算秒、分、时、星期、日、月、年信息,具有润年补偿,有效期至2099年 ?用二进制或BCD表示时间 ?具有AM、PM标示的12小时模式或24小时模式 ?夏时制选择 ?可选择Intel或Motorola总线时序 ?接口配合软件可寻址128 RAM ?14字节时钟与控制寄存器 ?114字节通用、电池备份RAM (DS12C887和DS12C887A为113字节) ?清除RAM功能(DS12885、DS12887A和DS12C887A) ?三路中断可分别通过软件屏蔽与检测 ?闹钟可设置为每秒一次至每星期一次 ?周期可设置在122μs至500ms ?时钟终止刷新周期标志 ?可编程的方波输出信号 ?自动电源失效检测和切换电路 ?可选择28引脚PLCC表面贴装封装或32引脚TQFP封装(DS12885) ?可选则集成了晶体和电池的DIP模块(EDIP)封装(DS12887、DS12887A、DS12C887、DS12C887A) ?可选的工业级温度范围

实时时钟DS12C887调试

实时时钟DS12C887调试首页论坛问答博客登录注册 yanqin的空间主页| 博客| 相册| 个人档案| | 开心网人人网新浪微博 EEPW微博查看文章 标题:实时时钟DS12C887调试2009-04-17 11:21:47实时时钟DS12C887 调试 1.实时时钟DS12C887 寄存器介绍: DS12C887是带114字节RAM的实时时钟接口器件。它有MOTOROLA和 INTEL总线时序选择端。特殊寄存器有14个。从00H到09H单元为时钟、日历、闹钟单元。0AH、0BH、0CH、0DH是功能、状态寄存器。 闹钟单元:01H、03H、05H分别是秒、分、时闹钟设置寄存器。闹钟调协有 种用法:根据写入到三个闹钟寄存器的值产生中断;在各闹钟单元写入自由码(=0CH――0FFH)可产生周期性的闹钟中断。 时钟、日历单元:00H、02H、04H、06H、07H、08H、09H分别是秒、分、时、星期、日、月、年设置寄存器。设置值有两种:二进制和BCD码。 功能、状态寄存器:0AH、0BH、0CH、0DH是功能、状态寄存器。 0AH:提供时间更新标志、确定在何时正确读出时间;提供分频控制功能;可选择输出的方波频率及周期中断频率。 0BH:具有初始化设置功能,初始化时必需把相关位置1才能初始化时钟、日历寄存器;对相关位设置可使系统具有闹钟中断、周期中断、更新结束中断功能;可控制方波的输出;可控制时间的显示模式,并可自动执行夏令时制。 0CH:提供中断请求及中断标志以供CPU查询。 0DH:提供有效的RAM和时间标志。只可读不可写。应总读出为1,若为零表示内部锂电池耗尽。 2.芯片地址:DFxx选中芯片。 3.附调试程序: 汇编程序: ;该程序为设置DS12C887的时间为05年02月24日15时04分00秒并分别把秒、分、时、日、月、年送到片内RAM的30H至35H处显示。 显示 ORG 0000H SJMP MAIN ORG 0040H MAIN: LCALL INI WAIT: MOV DPTR,#0DF0AH ;读秒送到片内RAM的30H MOVX A,@DPTR JB ACC.7,WAIT MOV DPL,#00H MOV R0,#30H MOVX A,@DPTR MOV @R0,A

DS12C887源程序

程序15.5.1使用DS12C887时钟芯片设计高精度时钟。(part4.2 P331)#include #include void delay(uint z)//延时函数 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void di() //蜂鸣器报警声音 { beep=0; delay(100); beep=1; } void write_com(uchar com) {//写液晶命令函数 rs=0; lcden=0; P0=com; delay(3); lcden=1; delay(3); lcden=0; } void write_date(uchar date) {//写液晶数据函数 rs=1; lcden=0; P0=date; delay(3); lcden=1; delay(3); lcden=0; } void init() {//初始化函数 uchar num; EA=1;//打开总中断 EX1=1;//开外部中断1 IT1=1;//设置负跳变沿触发中断 flag1=0;//变量初始化 t0_num=0; s1num=0;

week=1; dula=0;//关闭数码管显示 wela=0; lcden=0; rd=0; /*以下几行在首次设置DS12C887时使用,以后不必再写入write_ds(0x0A,0x20);//打开振荡器 write_ds(0x0B,0x26);//设置24小时模式,数据二进制格式 //开启闹铃中断 set_time();//设置上电默认时间 -----------------------------------------------------*/ write_com(0x38);//1602液晶初始化 write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); for(num=0;num<15;num++)//写入液晶固定部分显示 { write_date(table[num]); delay(1); } write_com(0x80+0x40); for(num=0;num<11;num++) { write_date(table1[num]); delay(1); } } void write_sfm(uchar add,char date) {//1602液晶刷新时分秒函数4为时,7为分,10为秒char shi,ge; shi=date/10; ge=date%10; write_com(0x80+0x40+add); write_date(0x30+shi); write_date(0x30+ge); } void write_nyr(uchar add,char date) {//1602液晶刷新年月日函数3为年,6为分,9为秒char shi,ge; shi=date/10; ge=date%10; write_com(0x80+add); write_date(0x30+shi);

DS12C887 例程

DS12C887 例程 #include #include #define uchar unsigned char void writesfm(uchar dizhi,uchar shuju); void writeryn(uchar dizhi,uchar shuju); void xingqi(uchar dizhi,uchar shuju); sbit EN=P1^2; //液晶使能键 sbit RS=P1^0; //液晶数据命令选择端 sbit W=P1^1; //液晶读写命令选择端 sbit BU=P1^7; //闹钟控制端 sbit CS=P3^3; //芯片片选端p3^2 应用外部中断零sbit DS=P3^6; //读输入引脚 sbit RW=P3^5; //读写输入端 sbit AS=P3^4; //地址选通输入端 sbit jia=P1^4; //调节时间加 sbit jian=P1^5; //调节时间减 sbit able=P1^3; //调节使能键 sbit ling=P1^6; //闹铃使设定键 uchar code table[]=" : : "; uchar code table1[]=" 20 - -"; uchar num=0,flag=0, num1=0,shi,fen,miao,ri,yue,nian,week,a,b,c,d,g; void delay(int time) { int i,j; for(i=time;i>0;i--) for(j=110;j>0;j--); } void di() { BU=0; delay(100); BU=1; } void command(uchar com) //液晶命令函数 { EN=0; W=0; RS=0; P0=com; delay(5); EN=1;

时钟芯片ds12c887的程序

日历时钟DS12887或146818的C语言源程序 #include #include #include #include #include #include #include #define uchar unsigned char #define uint unsigned int #define P128870 XBYTE[0xa000] #define P128871 XBYTE[0xa001] #define P128872 XBYTE[0xa002] #define P128873 XBYTE[0xa003] #define P128874 XBYTE[0xa004] #define P128875 XBYTE[0xa005] #define P128876 XBYTE[0xa006] #define P128877 XBYTE[0xa007] #define P128878 XBYTE[0xa008] #define P128879 XBYTE[0xa009] #define P12887a XBYTE[0xa00a] #define P12887b XBYTE[0xa00b] #define P12887c XBYTE[0xa00c] #define P12887d XBYTE[0xa00d] #define P12887e XBYTE[0xa00e] #define P12887f XBYTE[0xa00f] void setup12887(uchar *p); void read12887(uchar *p); void start12887(void); void setup12887(uchar *p) //设置系统时间 { uchar i; i=P12887d; P12887a=0x70; P12887b=0xa2; P128870=*p++; P128871=0xff; P128872=*p++; P128873=0xff; P128874=*p++; P128875=0xff; P128876=*p++; P128877=*p++; P128878=*p++; P128879=*p++; P12887b=0x22; P12887a=0x20; i=P12887c; } void read12887(uchar *p) //读取系统时间 { uchar a;

DS12C887资料

DS12C887时钟日历芯片,是由美国DALLAS公司生产的新型时钟日历芯片,采用CMOS技术制成。芯片采用24 引脚双列直插式封装,内部集成晶振、振荡电路、充电电路和可充电锂电池,组成一个加厚的集成电路模块,在没有外部电源的情况下可工作10年。具有良好的微机接口、精度高、外围接口简单、工作稳定可靠等优点,可广泛使用于各种需要较高精度的实时场合。 一、器件特性 ·可计算到2100年前的秒、分、小时、星期、日期、月、年七种日历信息并带闰年补偿; ·自带晶体振荡器和锂电池。在没有外部电源的情况下可工作10年; ·对于一天内的时间记录,有12小时制和24小时制两种模式。在12小时制模式中,用AM和PM区分上午和下午;·可选用夏令时模式 ·时间表示方法有两种:一种用二进制数表示,一种用BCD码表示; ·DS12C887中带有128字节RAM,其中11字节用来存储时间信息,4字节RAM用来存储DS12C887的控制信息,称为控制寄存器,113字节RAM供用户使用; ·数据/地址总线复用 ·用户可编程以实现多种方波输出 ·可应用于MOTOROLA和INTEL两种种线。——我这里只阐述INTEL总线实现方法 ·三种可编程中断:定闹中断、时钟更新结束中断、周期性中断 DS12C887各引脚的功能说明 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:数据选择或读输入引脚 该引脚有两种工作模式: Motorola工作模式中,每个总线周期的后一部分的DS为高电平,被称为数据选通。在读操作中,DS的上升沿使 DS12C887将内部数据送往总线AD0~AD7上,以供外部读取。在写操作中,DS的下降沿将使总线AD0~AD7上的数据锁存在DS12C887中; Intel工作模式中,DS被称作RD。该引脚是读允许输入脚,即Read Enable。是读(RD)信号输入端。当他有效时表示DS12C887正往总线输出数据。RD信号线在存储器芯片上被称作OE信号线。 R/W:读/写输入端 该引脚也有2种工作模式: Motorola工作模式中,该引脚的作用是区分进行的是读操作还是写操作,当R/W为高电平时为读操作,R/W为低电平时为写操作; Intel工作模式中,此时该作为写允许输入,即Write Enable。是写(WR)信号输入端。 CS:片选输入,低电平有效。 IRQ:中断请求输入,低电平有效,该引脚有效对DS12C887内的时钟、日历和RAM中的内容没有任何影响,仅对内部的控制寄存器有影响,在典型的应用中,RESET可以直接接VCC,这样可以保证DS12C887在掉电时,其内部控制寄存器不受影响。

DS12C887_new要点

DS12C887 Real Time Clock DS12C887 实时时钟 特点 ?下拉更换为IBM A T计算机时钟/日历 ?引脚兼容MC146818B和DS1287 ?完全非易失拥有超过10年的经营,在断电的情况下 ?自包含的子系统包括锂,石英,和支持电路。 ?计数秒,分钟,小时,天,星期几,日期,月份,闰年补偿有效期至2100年? 二进制或BCD表示时间,日历和闹钟。 ?12 - 或24小时时钟AM和PM在12小时模式。 ?夏令时间“选项。 ?摩托罗拉与英特尔总线时机选择。 ?复用总线引脚效率。 ?接口软件128 RAM的位置 - 15字节时钟和控制寄存器 - 113字节的通用RAM ?可编程方波输出信号。 ?总线兼容中断信号(IRQ) ?三次中断分别软件屏蔽和测试 - 一天时间报警次/秒,一次/天 - 定期利率从122毫秒到500毫秒 - 时钟更新周期结束 ?世纪寄存器 PIN ASSIGNMENT DS12C887的24引脚封装封装

引脚说明 AD0?AD7 - 地址/数据总线复 NC - 无连接 MOT - 总线类型选择 CS - RTC片选输入 AS - 地址选通 读/写- 读/写输入 DS - 数据频闪 复位- 复位输入 IRQ - 中断请求输出 SQW - 方波输出 VCC - 5伏主电源 GND - 地 DESCRIPTION DS12C887实时时钟加RAM是专为DS12887在现有的IBM兼容的个人电脑添加硬件2000年合规作为一个直接的升级换代。加入一个世纪字节内存位置50,32H A T规范的要求,由PC。锂能源,石英晶体,和写保护电路都包含在一个24针的双列直插式封装。因此,本DS12C887取代16在一个典型的应用程序组件的一个完整的子系统。其功能包括非易失性天时间时钟,报警,一百年日历,可编程中断,方波发生器,和113字节的非易失性静态RAM。实时时钟是在天时间和存储器,即使在断电的情况下维持的特色。 OPERATION 图1中的框图所示的主要内部功能的DS12C887的引脚连接。以下段落描述了每个引脚的功能。 SIGNAL DESCRIPTIONS信号说明 GND,VCC - DC电源提供的设备在这些引脚上。VCC是5伏的输入。当5伏在正常范围内应用,该设备完全访问和数据可以写入和读取。当VCC低于4.25伏典型的,读取和写入操作被禁止。然而,计时功能继续由低输入电压的影响。当VCC低于3伏典型,RAM和计时员切换到内部锂能源。报时的功能,保持25°C时无论VCC引脚上的电压输入精度为±1分钟每月。 MOT(模式选择)- MOT引脚提供两种总线类型之间进行选择的灵活性。当连接到VCC,摩托罗拉总线时机选择。当连接到GND或离开断开,英特尔总线时机选择。该引脚具有内部下拉电阻约20KΩ。 SQW(方波输出)- 该SQW引脚可以输出从13水龙头提供实时时钟由15个内部分频器阶段的信号。SQW引脚的频率是可以改变的通过编程寄存器A,如表1中所示。SQW信号可以开启和关闭使用SQWE位寄存器B.的SQW信号时,无法使用VCC小于4.25伏典型。 AD0?AD7(双向地址/数据总线复)- 复用总线的管脚,因为保存的地址信息和数据信息的时间份额相同的信号路径。地址是在总线周期的第一部分期间,和相同的标签和信号路径用于在第二个周期的一部分的数据。地址/数据复用不慢的DS12C887的访问时间,因为总线的数据从地址改变发生在内部的RAM的访问时间。地址必须是有效AS / ALE的下 降沿之前,其时DS12C887从AD0锁存地址AD6。有效的写数据必须目前保持稳定,during the latter portion of the DS or WR pulses.在读周期DS12C887在后者部分DS或RD脉冲输出8位数据。读周期终止,总线返回到高阻抗状态 DS变低的情况下,摩托罗拉的时间或RD变高的情况下,英特尔的时机。 AS(地址选通输入)- 正地址选通脉冲旨在解复用的总线。。AS / ALE的下降沿将导致地址被锁存于DS12C887。的下一个上升沿上发生AS总线将清除的地址,不管是否被断言CS。访问命令应成对发送。

相关主题