DS12887时钟芯片_中文资料_

DS12887时钟芯片_中文资料_
DS12887时钟芯片_中文资料_

DS12887时钟芯片(中文资料一)

特点

·可作为IBM AT 计算机的时钟和日历

·与MC14681B 和DS1287的管脚兼容

·在没有外部电源的情况下可工作10年

·自带晶体振荡器及电池

·可计算到2100年前的秒、分、小时、星期、日期、

月、年七种日历信息并带闰年补偿

·用二进制码或BCD 码代表日历和闹钟信息

·有12和24小时两种制式,12小时制时有AM 和PM

提示

·可选用夏令时模式

·可以应用于MOTOROLA 和INTEL 两种总线

·数据/地址总线复用

·内建128字节RAM

14字节时钟控制寄存器

114字节通用RAM

·可编程方波输出

·总线兼容中断(/IRQ )

·三种可编程中断

时间性中断可产生每秒一次直到每天一次中断

周期性中断122ms 到500ms

时钟更新结束中断

管脚名称

AD0-AD7-地址/数据复用总线 NC -空脚

MOT -总线类型选择(MOTOROLA/INTEL ) CS -片选 AS -ALE

R/W -在INTEL 总线下作为/WR DS -在INTEL 总线下作为/RD RESET -复位信号 IRQ -中断请求输出 SQW -方波输出 VCC -+5电源 GND -电源地

上电/掉电

当VCC 高于4.25V200ms 后,芯片可以被外部程序操作;当VCC 低于4.25V 时,芯片处于写保护状态(所有的输入均无效),同时所有输出呈高阻状态;当VCC 低于3V 时,芯片将自动把供电方式切换为由内部电池供电。

管脚功能

MOT (总线模式选择)

当此脚接到VCC 时,选用的是MOTOROLA 总线时序;当它接到地或不接时,选用的是INTEL 总线时序。

SQW(方波输出)-当VCC低于4.25V时没有作用。周期性中断率和方波中断频率表

寄存器A中的控制位

RS3 RS2 RS1 RS0 P1周期中断周

SQW输出频率

0 0 0 0 无无

0 0 0 1 3.90625ms 256Hz

0 0 1 0 7.8125ms 128Hz

0 0 1 1 122.070μs 8.192kHz

0 1 0 0 244.141μs 4.096 kHz

0 1 0 1 488.281μs 2.048 kHz

0 1 1 0 976.5625μs 1.024 kHz

0 1 1 1 1.953125ms 512 Hz

1 0 0 0 3.90625 ms 256 Hz

1 0 0 1 7.8125 ms 128 Hz

1 0 1 0 15.625 ms 64 Hz

1 0 1 1 31.25 ms 3

2 Hz

1 1 0 0 62.5 ms 16 Hz

1 1 0 1 125 ms 8 Hz

1 1 1 0 250 ms 4 Hz

1 1 1 1 500 ms

2 Hz

AD0-AD7(双向数据/地址复用总线)

AS(地址锁存)ALE

DS(Data Strobe or Read Input) RD

当系统选择的是INTEL总线模式时,DS被称作RD。当它有效时表示DS12887正在往总线输出数据。RD信号线在有贮器芯片上被称作OE信号线。

R/W(Read/Write Input) WR

CS(片选输入) CS

当VCC低于4.25V时,DS12887从内部禁止对外部CS的操作。此时时钟和RAM都被保护起来。

IRQ(中断请求输出)

当中断状态位和对应的中断允许位有效时,IRQ的输出保持为低。复位和读C寄存器都可以清除IRQ中断信号。没有中断时,IRQ呈高阻状态,其他中断源还可以挂接到中断总线上,由于IRQ是漏极输出,所以需要外接上拉电阻。

RESET(复位)

复位脚对时钟、日历、RAM无效。系统上电时复位脚要保持低电平200ms以上DS12887才可以正常工作。当复位脚为低并且VCC高于4.25V时,以下情况发生:

A.周期中断允许(PIE)位清0.

B.闹钟中断允许(AIE)位清0.

C.更新完成中断标志(UF)位清0.

D.中断请求状态标志(IRQF)位清0.

E.周期中断标(PF)位清0.

F.当RESET为低时DS12887不可操作

G.闹钟中断标志(AF)位清0.

H.IRQ呈高阻状态

I.方波输出允许(SQWE)位清0.

J.更新完成中断允许(UIE)位清0.

通常情况下把复位(RESET)和电源(Vcc)连接

地址分布

图2是DS12877的地址分布图。所有的地址包括114字节通用RAM、10字节用于记录时间、日历、闹钟和RAM以及4字节的控制、状态RAM。所有字节都可以在除以下的情况下直接读写。

1.寄存器C、D为只读

2.寄存器A的第7为只读

3.秒字节的高位为只读

时间、日历和闹钟区域

可以通过读相应的存储器获得时间、日历信息。通过写相应的存储器设置时间、日历和闹钟。

时间、日历和闹钟的数据格式

范围地址功能十进制范围

二进制数据模式BCD数据模式

0 秒0-59 00-3B 00-59

1 秒闹钟0-59 00-3B 00-59

2 分钟0-59 00-3B 00-59

3 分钟闹钟0-59 00-3B 00-59

小时(12进制)1-12 01-0CAM,81-8CPM 01-12AM,81-92PM 4

小时(24进制)0-23 00-17 00-23

时闹钟(12时制)1-12 01-0CAM,81-8CPM 01-12AM,81-92PM

5

时闹钟(24时制)0-23 00-17 00-23

6 星期(星期天=1)1-

7 00-07 00-07

7 日期1-31 01-0F 1-31

8 月份1-12 01-0C 1-12

9 年0-99 00-63 00-99

0xc0 0xff为特殊的数。如果小时闹钟为0xc0 0xff,表示每小时中断一次;如果小时闹钟和分钟闹钟都是0xc0 0xff,表示每分钟中断一次;如果小时闹钟、分钟闹钟和秒闹钟都是,表示每秒中断一次。

非易失性RAM

114字节的非易失性通用RAM没有特殊功能,可以在任何时候读写。

寄存器

DS12887有四个控制寄存器,它们可以在任何时候读写。

寄存器A

最高位最低位BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 UIP DV2 DV1 DV0 RS3 RS2 RS1 RS0 UIP

更新(UIP)位用来标志芯片是否即将进行更新。

当UIP位为1时,更新即将开始;

当它为0时,表示在至少244μs内芯片不会更新,此时,时钟、日历和闹钟信息可以通过读写相应的字节获得和设置。

UIP位为只读位并且不受复位信号(RESET)的影响。通过把寄存器B中的SET位设置为1可以禁止更新并将UIP位清0。

DV0,DV1,DV2

这3位是用来开关晶体振荡器和复位分频器。

当[DV0 DV1 DV2]=[010]时,晶体振荡器开启并且保持时钟运行;

当[DV0 DV1 DV2]=[11X]时,晶体振荡器开启,但分频保持复位状态。

RS3,RS2,RS1,RS0

作用:

1.设置周期中断允许位(PIE);

2.设置方波输出允许位(SQWE);

3.两位同时设置为有效并且设置频率;

4.全部禁止。

周期性中断率和方波中断频率表列出了可通过RS寄存器选择的周期中断的频率和方波的频率。这四个可读写的位不受复位信号的影响。

寄存器B

最高位最低位BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 SET PIE AIE UIE SQWE DM 24/12 DSE

SET

当SET=0,芯片更新正常进行;

当SET=1,芯片更新被禁止。

SET位可读写,并不会受复位信号的影响。

PIE

当PIE=0,禁止周期中断输出到IRQ;

当PIE=1,允许周期中断输出到IRQ。

AIE

当AIE=0,禁止闹钟中断输出到IRQ;

当AIE=1,允许闹钟中断输出到IRQ。

UIE

当UIE=0,禁止更新结束中断输出到IRQ;

当UIE=1,允许更新结束中断输出到IRQ。

此位在复位或设置SET为高时清0.

SQWE

当SQWE=0,SQW脚为低;

当SQWE=1,SQW输出设定频率的方波。

DM

DM=0,BCD

DM=1,二进制,此位不受复位信号影响。

24/12

此位为1,24时制;为0,12小时制

DSE

夏令时允许标志。在四月的第一个星期日的1∶59∶59AM,时钟调到3∶00∶00AM;在十月的最后一个星期日的1∶59∶59AM,时钟调到1∶00∶00AM。

寄存器C

最高位最低位BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 IRQF PF AF UF 0 0 0 0

IRQF

当有以下情况中的一种或几种发生时,中断请求标志位(IRQF)置高;

PF=PIE=1

AF=AIE=1

UF=UIE=1

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

IRQF-且为高IRQ脚输出低。

所有标志位在读寄存器C或复位后清0。

PF周期中断标志。

AF闹钟中断标志。

UF更新中断标志。

BIT 0 THROUGH BIT3

第0位到第3位无用,不能写入,只读且读出的值恒为0。

寄存器D

最高位最低位BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 VRT 0 0 0 0 0 0 0

VRT

当VRT=0时表示内置电池能量耗尽,此时RAM中的数据的正确性就不能保证了。

BIT6 THROUGH BIT0

第0位到第6位无用,只读,且读出的值恒为0。

DS1302时钟芯片读写详解

DS1302时钟芯片读写详解 2008-09-26 13:07 /*DS1302读写程序(C51)*/ sbit DS13CLK =P1^5; /*DS1302的SCLK脚脉冲*/ sbit DS13IO =P1^6; /*DS1302的IO脚数据*/ sbit DS13CS =P1^7; /*DS1302的RST脚片选*/ /*向DS1302写一个字节*/ void _wds13byte(uchar _code) { uchar i; DS13CLK =0; DS13CLK =0; for(i=0;i<8;i++) { if(_code&0x01) DS13IO =1; else DS13IO =0; DS13CLK =1; DS13CLK =1; DS13CLK =0; DS13CLK =0; _code =_code >> 1; } } /*从DS1302读一个字节*/ uchar _rds13byte(void) { uchar i,_code; _code=0; DS13CLK =0; DS13CLK =0; DS13IO =1; for(i=0;i<8;i++) { _code =_code >>1; if(DS13IO) _code =_code|0x80; DS13CLK =1; DS13CLK =1; DS13CLK =0; DS13CLK =0; } return _code; } /*读功能_code读功能命令*/ uchar readds1302(uchar _code)

{ DS13CS =0; /*关闭DS1302*/ DS13CLK =0; DS13CLK =0; DS13CS =1; /*使能DS1302*/ _wds13byte(_code); /*读代码*/ _code=_rds13byte(); /*返回读取数字*/ DS13CLK =1; DS13CS =0; /*关闭DS1302*/ return _code; } /*写功能fp写的地址,_code写的内容*/ void writeds1302(uchar fp,uchar _code) { DS13CS =0; /*关闭DS1302*/ DS13CLK =0; DS13CLK =0; DS13CS =1; /*使能DS1302*/ _wds13byte(fp); /*写控制命令*/ _wds13byte(_code); /*写入数据*/ DS13CLK=1; DS13CS =0; /*关闭DS1302*/ } /*******DS1302设置快速充电***************/ void ds13_charg(void) { writeds1302(0x8e,0x00); /*解除写保护*/ writeds1302(0x90,0xa5); /*单二极管2K电阻充电*/ writeds1302(0x8e,0x80); /*置位写保护*/ } ;;;DS1302读写程序(汇编);;; ;******************************************************************* **/ T_CLK Bit P1.5 ;实时时钟时钟线引脚 T_IO Bit P1.6 ;实时时钟数据线引脚 T_RST Bit P1.7 ;实时时钟复位线引脚 ;********************************************************** ;子程序名:Set1302 ;功能:设置DS1302 初始时间,并启动计时。 ;说明: ;调用:RTInputByte ;入口参数:初始时间在:Second,Minute,Hour,Day,Month,Week.YearL(地址连续) ;出口参数:无 ;影响资源:A B R0 R1 R4 R7

时钟芯片DS1302的用法

单片机玩到此时,很想玩TFT真彩屏,但如果不玩一玩汉显字符液晶屏,就总觉得少了些什么,说实话,我对时钟制作并不很感兴趣,因为家里走针的、蹦字的计时器、定时器大小有七八个,还不算手机和电脑的时钟,而要想玩汉显屏,则做时钟算是最合适的了,也难怪杜洋老师会在这上下功夫,毕竟没有那家公司会让咱初学者去搞工控或商品。前些时,在网上淘了一只LCD-12864模块,已经点亮并通过了简单的测试,准备做杜洋的时钟,准备技术资料时,在网上找到了一篇关于时钟芯片DS1302的应用文章,觉得不错,转帖于此以资共享。 时钟芯片DS1302可靠起振的方法 作者:不详出处:不详 DS1302是Dallas公司生产的一种实时时钟芯片。它通过串行方式与单片机进行数据传送,能够向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息,并可对月末日期、闰年天数自动进行调整;它还拥有用于主电源和备份电源的双电源引脚,在主电源关闭的情况下,也能保持时钟的连续运行。另外,它还能提供31字节的用于高速数据暂存的RAM。鉴于上述特点,DS1302已在许多单片机系统中得到应用,为系统提供所需的实时时钟信息。 一、 DS1302的主要特性 1. 引脚排列 图1 DS1302引脚排列图(见附图) DS1302的引脚排列如图1所示,各引脚的功能如下: X1,X2——32768Hz晶振引脚端; RST——复位端; I/O——数据输入/输出端; SCLK——串行时钟端; GND——地; VCC2,VCC1——主电源与后备电源引脚端。 2. 主要功能: DS1302时钟芯片内主要包括移位寄存器、控制逻辑电路、振荡器、实时时钟电路以及用于高速暂存的31字节RAM。DS1302与单片机系统的数据传送依靠RST,I/O,SCLK三根端线即可完成。其工作过程可概括为:首先系统RST引脚驱动至高电平,然后在作用于SCLK时钟脉冲的作用下,通过I/O引脚向DS1302输入地址/命令字节,随后再在SCLK时钟脉冲的配合下,从I/O引脚写入或读出相应的数据字节。因此,其与单片机之间的数据传送是十分容易实现的。 二、时钟的产生及存在的问题 (1) 在实际使用中,我们发现DS1302的工作情况不够稳定,主要表现在实时时间的传送有时会出现误差,有时甚至整个芯片停止工作。我们对DS1302的工作电路进行了分析,其与单片机系统的连接如图2所示。从图中可以看出,DS1302的外部电路十分简单,惟一外接的元件是32768Hz 的晶振。通过实验我们发现:当外接晶振电路振荡时,DS1302计时正确;当外接晶振电路停振时,DS1302计时停止。因此,我们认为32768Hz晶振是造成DS1302工作不稳定的主要原因。 图2 DS1302与单片机系统的连接图(见附图) (2) DS1302时钟的产生基于外接的晶体振荡器,振荡器的频率为32768Hz。该晶振通过引脚X1、X2直接连接至DS1302,即DS1302是依靠外部晶振与其内部的电容配合来产生时钟脉冲的。

DS1302时钟芯片的原理与应用

DS1302 时钟芯片的原理与应用 1 写保护寄存器操作 当写保护寄存器的最高位为0 时,允许数据写入寄存器,写保护寄存器可以通过命令字节8E 8F 来规定禁止写入/读出。写保护位不能在多字节传送模式下写入Write_Enable: MOV Command,#8Eh ;命令字节为8E MOV ByteCnt,#1 ;单字节传送模式 MOV R0,#XmtDat 数据地址覆给R0 MOV XmtDat,#00h 数据内容为0 写入允许 ACALL Send_Byte 调用写入数据子程序 RET 返回调用本子程序处 当写保护寄存器的最高位为1 时禁止数据写入寄存器 Write_Disable: MOV Command,#8Eh ;命令字节为8E MOV ByteCnt,#1 ;单字节传送模式 MOV R0,#XmtDat 数据地址覆给R0 MOV XmtDat,#80h 数据内容为80h 禁止写入 ACALL Send_Byte 调用写入数据子程序 RET 返回调用本子程序处 以上程序调用了基本数据发送(Send_Byte)模块及一些内存单元定义, 其源程序清单在附录中给出下面 的程序亦使用了这个模块 2 时钟停止位操作 当把秒寄存器的第7 位时钟停止位设置为0 时起动时钟开始 Osc_Enable: MOV Command,#80h ; 命令字节为80 MOV ByteCnt,#1 ; 单字节传送模式 MOV R0,#XmtDat 数据地址覆给R0 MOV XmtDat,#00h 数据内容为0 振荡器工作允许 ACALL Send_Byte 调用写入数据子程序 RET 返回调用本子程序处 当把秒寄存器的第7 位时钟停止位设置为1 时,时钟振荡器停止DS1320 进入低功耗方式 Osc_Disable: MOV Command,#80h ;命令字节为80 MOV ByteCnt,#1 ;单字节传送模式 MOV R0,#XmtDat 数据地址覆给R0 MOV XmtDat,#80h 数据内容为80h 振荡器停止 ACALL Send_Byte 调用写入数据子程序 RET 返回调用本子程序处 3. 多字节传送方式

基于DS1302的数码管显示数字钟

单片机原理课程设计 课题名称:基于DS1302的数码管显示数字钟 专业班级:电子信息工程 学生学号: 学生姓名: 指导教师: 设计时间:2010年6月21日--2010年6月25日

目录 摘要........................................................................................................................................................................ 1 设计任务和要求............................................................................................................................................ 2 方案论证........................................................................................................................................................ 3 系统硬件设计................................................................................................................................................ 3.1 系统总原理图 ................................................................................................................................ 3.2 元器件清单...................................................................................................................................... 3.3 PCB板图....................................................................................................................................... 3.4 Proteus仿真图 ............................................................................................................................... 3.5 分电路图及原理说明................................................................................................................... 3.5.1 主控部分(单片机MCS-51).............................................................................. 3.5.2 计时部分(实时时钟芯片DS1302).................................................................. 3.5.3 显示部分(共阳极数码管)................................................................................ 3.5.4 调时部分(按键)................................................................................................ 4系统软件设计................................................................................................................................................ 4.1 程序流程图..................................................................................................................................... 4.2 程序源代码........................................................................................................................................ 5心得体会........................................................................................................................................................ 6参考文献........................................................................................................................................................ 7结束语............................................................................................................................................................

基于51系列单片机及DS1302时钟芯片的电子时钟Proteus仿真_报告

目录 摘要 一、引言 (1) 二、基于单片机的电子时钟硬件选择分析 (2) 2.1主要IC芯片选择 (2) 2.1.1微处理器选择 (2) 2.1.2 DS1302简介 (4) 2.1.3 DS1302引脚说明 (4) 2.2电子时钟硬件电路设计 (5) 2.2.1时钟电路设计 (6) 2.2.2整点报时功能 (7) 三、Protel软件画原理图 (8) 3.1系统工作流程图 (8) 3.2原理图 (9) 四、proteus软件仿真及调试 (9) 4.1电路板的仿真 (9) 4.2软件调试 (9) 五、源程序 (10) 六、课设心得 (13) 七、参考文献 (13)

基于单片机电子时钟设计 摘要 电子时钟主要是利用电子技术将时钟电子化、数字化,拥有时钟精确、体积小、界面友好、可扩展性能强等特点,被广泛应用于生活和工作当中。另外,在生活和工农业生产中,也常常需要温度,这就需要电子时钟具有多功能性。 本设计主要为实现一款可正常显示时钟/日历、带有定时闹铃的多功能电子时钟。 本文对当前电子钟开发手段进行了比较和分析,最终确定了采用单片机技术实现多功能电子时钟。本设计应用AT89C52芯片作为核心,6位LED数码管显示,使用DS1302实时时钟日历芯片完成时钟/日历的基本功能。这种实现方法的优点是电路简单,性能可靠,实时性好,时间精确,操作简单,编程容易。 该电子时钟可以应用于一般的生活和工作中,也可通过改装,提高性能,增加新功能,从而给人们的生活和工作带来更多的方便。 关键词:电子时钟;多功能;AT89C52;时钟日历芯片

一、引言 时间是人类生活必不可少的重要元素,如果没有时间的概念,社会将不会有所发展和进步。从古代的水漏、十二天干地支,到后来的机械钟表以及当今的石英钟,都充分显现出了时间的重要,同时也代表着科技的进步。致力于计时器的研究和充分发挥时钟的作用,将有着重要的意义。 1.1 多功能电子时钟研究的背景和意义 20世纪末,电子技术获得了飞速的发展。在其推动下,现代电子产品几乎渗透到了社会的各个领域,有力的推动和提高了社会生产力的发展与信息化程度,同时也使现代电子产品性能进一步提升,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂容易使人忘记当前的时间。然而遇到重大事情的时候,一旦忘记时间,就会给自己或他人造成很大麻烦。平时我们要求上班准时,约会或召开会议必然要提及时间;火车要准点到达,航班要准点起飞;工业生产中,很多环节都需要用时间来确定工序替换时刻。所以说能随时准确的知道时间并利用时间,是我们生活和工作中必不可少的[1]。 电子钟是采用电子电路实现对时、分、秒进行数字显示的计时装臵,广泛应用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品。由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、0按时自动打铃、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。

DS1302时钟芯片资料全

DS1302 DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5~5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。 下面是标准的接线电路图:

DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h~8Dh,写时80h~8Ch)是存放秒、分,小时、日、月、年、周数据的,存放的数据格式为BCD码形式 它的部时间寄存器如下: 将初始设置的时间、日期数据写入这几个寄存器,然后再不断地读取这几个寄存器来获取实时时间和日期。这几个寄存器的说明如下: 1、秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当初始上电时该位置为1,时钟振荡器停止,DS1302处于低功耗状态;只有将秒寄存器的该位置改写为0时,时钟才能开始运行。 2、控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。在任何的对时钟和RAM的写操作之前,WP位必须为0。当WP位为1时,写保护位防止对任一寄存器的写操作。也就是说在电路上电的初始态WP是1,这时是不能改写上面任何一个时间寄存器的,只有首先将WP改写为0,才能进行其它寄存器的写操作。 3、控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。在任何的对时钟和RAM的写操作之前,WP位必须为0。当WP位为1时,写保护位防止对任一寄存器的写操作。也就是说在电路上电的初始态WP是1,这时是不能改写上面任何一个时间寄存器的,只有首先将WP改写为0,才能进行其它寄存器的写操作。 下面来说说如果对DS1302进行读写: 上面的电路图可以看出,除了电源和接地,DS1302只有三根线和单片机连接,SCLK、I/O 和RST(有的也写成CE),先看时序图:

基于DS1302与数码管设计的可调数字钟

学习情境2-可调式数字钟 之基于DS1302与数码管设计的可调数字钟 ☆点名,复习 1、定时器的工作方式有哪些?如何对定时器进行初始化。 2、数码管动态显示技术的原理? ☆新课讲授 2.2 基于DS1302与数码管设计的可调数字钟 前面我们用定时器产生1秒的时间,从而也设计出了可以调节数字钟,但用这种方法设计出来的电子钟不够准确。这节课我们用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路DS1302 ,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能。同时,我们还是用数码管作为显示时间的硬件。 2.2.1 DS1302芯片技术资料 DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM 数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。DS1302的外部引脚分配如图1所示及内部结构如图2所示。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。 图 1 DS1302引脚 图2 DS1302内部结构 1、引脚功能及结构

DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),SCLK 始终是输入端。 2 、DS1302的寄存器和控制命令 对DS1302的操作就是对其内部寄存器的操作,DS1302内部共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。 小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。当为高时,选择12小时模式。在12小时模式时,位5是,当为1时,表示PM,当为0时,表示AM。在24小时模式时,位5是第二个10小时位。 秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。 控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。在任何的对时钟和RAM的写操作之前,WP位必须为0。当WP位为1时,写保护位防止对任一寄存器的写操作。 日历、时间寄存器及控制字如表1所示: 此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器以外的寄存器。DS1302内部的RAM分为两类,一类是单个RAM单元,共31个,每个单元为一个8位的字节,其命令控制字为COH~FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。

实时时钟芯片DS1302

实时时钟芯片DS1302的结构,工作原理及应用(含源程序) 1.ds1302实时时钟简介 现在流行的串行时钟电路很多,如DS1302、DS1307、PCF8485等。这些电路的接口简单、价格低廉、使用方便,被广泛地采用。本文介绍的实时时钟电路DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32.768kHz晶振。 2 DS1302的结构及工作原理 DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。 2.1 引脚功能及结构 图1示出DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST 为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST 置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。 2.2 DS1302的控制字节

关于实时时钟模块DS1302的介绍

关于实时时钟模块DS1302的介绍 DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。DS1302工作原理DS1302 工作电压为2.0V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。DS1302主要性能指标DS1302实时时钟芯片广泛应用于电话、传真、便携式仪器等产品领域,他的主要性能指标如下: 1、DS1302是一个实时时钟芯片,可以提供秒、分、小时、日期、月、年等信息,并且还有软年自动调整的能力,可以通过配置AM/PM来决定采用24小时格式还是12小时格式。 2、拥有31字节数据存储RAM。 3、串行I/O通信方式,相对并行来说比较节省IO口的使用。 4、DS1302的工作电压比较宽,大概是2.0V~5.5V都可以正常工作。采用双电源供电,当主电源比备用电源高0.2V时,由主电源供电,否则采用备用电源,一般是一个纽扣电池。 5、DS1302这种时钟芯片功耗一般都很低,它在工作电压2.0V的时候,工作电流小于300nA。 6、DS1302共有8个引脚,有两种封装形式,一种是DIP-8封装,芯片宽度(不含引脚)是300mil,一种是SOP-8封装,有两种宽度,一种是150mil,一种是208mil。 DS1302引脚及定义这是单字节写入的时序图,可见,先拉高使能端,进行使能选择,然后在时钟上升沿写入一个字节。 DS1302在进行读写操作时最少读写两个字节,第一个是控制字节,就是一个命令,说明是读还是写操作,第二个时需要读写的数据。 对于单字节写,只有在SCLK为低电平时才能将CE 置高电平,所以刚开始将SCLK 置低,CE置高,然后把需要写入的字节送入IO口,然后跳变SCLK,在SCLK下降沿时,

ds1302时钟原理介绍

早就已经不在学校了,可是前几天突然有老童学问我有没有保存这方面的资料,赶紧翻了一下我的电脑,呵呵,还是找到了一些资料,顺便共享出来,有需要的同学们拿走后留个言吧——可以的话。最后感谢无名的原作者。 DS1302的特点 DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5~5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302的外部引脚分配如图1所示。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。 各引脚的功能 Vcc1:主电源;Vcc2:备份电源。当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2< Vcc1时,由Vcc1向DS1302供电。SCLK:串行时钟,输入;I/O:三线接口时的双向数据线;CE:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。 DS1302的几组寄存器以及有关RAM的地址

(1)DS1302有关日历、时间的寄存器 DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h~8Dh,写时80h~8Ch),存放的数据格式为BCD码形式,如图3所示。 (2)小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。当为高时,选择12小时模式。在12小时模式时,位5是,当为1时,表示PM。在24小时模式时、位5是第二个10小时位。 (3)秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当该位置为1时,时钟振荡器止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。(4)控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。在任何的对时钟和RAM的写操作之前,WP位必须为0。当WP位为1时,写保护位防止对任一寄存器的写操作。 (5)DS1302中附加31字节静态RAM的地址如图4所示。 (6)DS1302的工作模式寄存器 所谓突发模式是指一次传送多个字节的时钟信号和RAM数据。突发模式寄存器如图5所示

时钟芯片DS1302代码

代码: //1为功能键,2为增加时间键,3为减少时间键#include #include #include #define uchar unsigned char sbit sclk=P1^5; sbit io=P1^6; sbit rst=P1^7; uchar time[]={0x00,0x42,0x08,0x04,0x09,0x06,0x10}; uchar timetmp[7]; uchar MAX[]={59,59,23,31,12,7,99}; uchar MINX[]={0,0,0,1,1,1,1}; uint readdata[7]; uchar sec,min,hour,day,month,week,year; uchar keynum,ss; void write(uchar date) //写一个字节 { uchar i;

for(i=0;i<8;i++) { io=date&0x01; sclk=1;sclk=0; date=date>>1; } } uchar read() //读一个字节 { uchar shuju,i; for(i=0;i<8;i++) { shuju=shuju>>1; sclk=0; if(io) shuju=shuju|0x80; sclk=1; } return shuju; } void writebyte(uchar add,date) //写时间的一个单位(分/秒/时/年/月/日/周){ rst=0;sclk=0;rst=1; write(0x8e); write(0x00);

DS1302 时钟芯片的程序

DS1302 时钟芯片的程序 /********************************************************************* 公司名称: 模块名称:DS1302.c 功能:实时时钟模块时钟芯片型号:DS1302 说明: 程序设计:zhaojunjie 设计时间:2002.03.02 版本号: 20020302 *********************************************************************/ #include sbit T_CLK = P2^3; /*实时时钟时钟线引脚 */ sbit T_IO = P1^4; /*实时时钟数据线引脚 */ sbit T_RST = P1^5; /*实时时钟复位线引脚 */ sbit ACC0 = ACC^0; sbit ACC7 = ACC^7; void RTInputByte(uchar); /* 输入 1Byte */ uchar RTOutputByte(void); /* 输出?1Byte */ void W1302(uchar, uchar); uchar R1302(uchar); void Set1302(uchar *); /* 设置时间 */ void Bcd2asc(uchar,uchar *); void Get1302(uchar curtime[]); /* 读取1302当前时间 */ /******************************************************************** 函数名:RTInputByte() 功能:实时时钟写入一字节 说明:往DS1302写入1Byte数据 (内部函数) 入口参数:d 写入的数据 返回值:无 设计:zhaojunjie 日期:2002-03-19 修改:日期: ***********************************************************************/

DS1302时钟芯片51单片机c语言程序

#ifndef __DS1302_H__ #define __DS1302_H__ #define uchar unsigned char #define uint unsigned int #include sbit SCLK = P3^2; sbit IO = P2^4; sbit RST = P3^3; #define R_Second 0x81 #define W_Second 0x80 #define R_Minute 0x83 #define W_Minute 0x82 #define R_Hour 0x85 #define W_Hour 0x84 #define R_Day 0x87 #define W_Day 0x86 #define R_Month 0x89 #define W_Month 0x88 #define R_Week 0x8B #define W_Week 0x8A #define R_Year 0x8D #define W_Year 0x8C #define R_Control 0x8F #define W_Control 0x8E void DS1302_Write_Byte(uchar Date); uchar DS1302_Read_Byte(); void Write_DS1302(uchar Adr,uchar Date); uchar Read_DS1302(uchar Adr); void Init_DS1302(); #endif

#include "ds1302.h" /************************************************************** 函數名稱:DS1302_Write_Byte(uchar Date) 函數功能:单字节写 輸入參數:写的字节 輸出參數:无 備注: **************************************************************/ void DS1302_Write_Byte(uchar Date) { uchar i; for(i = 0;i < 8;i++) { if(Date & 0x01) IO = 1; else IO = 0; SCLK = 1; Date = Date >> 1; SCLK = 0; } } /************************************************************** 函數名稱:uchar DS1302_Read_Byte() 函數功能:单字节读 輸入參數:无 輸出參數:读出的数据 備注: **************************************************************/ uchar DS1302_Read_Byte() {

DS1302芯片 - 引脚功能及结构

美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟电路DS1302的结构、工作原理及其在实时显示时间中的应用。它可以对年、月、日、周日、时、分、秒进行 DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V 时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。 X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST 必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。 I/O为串行数据输入输出端(双向),后面有详细说明。 控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302 DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 为了实现系统报警计时等功能,此设计采用了DS302实时时钟芯片。DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、

DS1302时钟芯片单片机控制操作步骤

DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力. RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc>2.0V之前,RST必须保持低电平。只有在SCLK 为低电平时,才能将RST置为高电平。 时钟相关寄存器:时钟数据为BCD码格式,秒寄存器的CH位:时钟暂停位,为1是,振荡器停止工作,进入低功耗。 小时寄存器:最高位12/24:为1时表示12小时模式,0表示24小时模式。第5位A/P,1表示下午,0表示上午。

DS1302命令控制字: DS1302的RAM共31个,寄存器地址范围:C0H~FDH,其中奇数为读操作,偶数为写操作 DS1302的读写时序:通过控制RST端为高电平启动读写操作,首先发送8位命令控制字,指明读操作还是写操作,及读写的地址。数据从低到高位顺序传输。 上电时,RST脚必须为低电平,当把RST置为高电平前,SCLK必须为低电平。

相关文档
最新文档