DS1302实时时钟电路的原理及应用
ds1302资料

2 DS1302的结构及工作原理3 DS1302实时显示时间的软硬件4 调试中问题说明5 结论[编辑本段]1 摘要介绍美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟电路DS1302的结构、工作原理及其在实时显示时间中的应用。
它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿等多种功能。
给出DS1302在读写中的C51程序及流程图,以及在调试过程中的注意事项。
关键词:时钟电路;实时时钟;单片机;应用[编辑本段]1 引言现在流行的串行时钟电路很多,如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 引脚功能及结构DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768kHz晶振。
关于实时时钟模块DS1302的介绍

关于实时时钟模块DS1302的介绍
DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。
它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。
DS1302工作原理
DS1302 工作电压为2.0V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31&TImes;8的用于临时性存放数据的RAM寄存器。
DS1302是
DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。
DS1302主要性能指标
DS1302实时时钟芯片广泛应用于电话、传真、便携式仪器等产品领域,他的主要性能指标如下:
1、DS1302是一个实时时钟芯片,可以提供秒、分、小时、日期、月、年。
资料实时时钟电路DS1302的原理及应用

资料实时时钟电路DS1302的原理及应用实时时钟电路DS1302的原理及应用[转]上一篇 / 下一篇 2008-11-17 13:51:01查看( 96 ) / 评论( 0 ) / 评分( 0 / 0 ) 摘要:介绍美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟电路DS1302的结构、工作原理及其在实时显示时间中的应用。
它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿等多种功能。
给出DS1302在读写中的C51程序及流程图,以及在调试过程中的注意事项。
关键词:时钟电路;实时时钟;单片机;应用1 引言现在流行的串行时钟电路很多,如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供电。
DS1302原理及程序说明

DS1302原理及程序说明DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM ,通过简单的串行接口与单片机进行通信。
实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM 指示决定采用24 或12 小时格式。
DS1302 与单片机之间能简单地采用同步串行的方式进行,DS1302的引脚命名如图1-1所示。
通信仅需用到三根信号线:(1)CE 片选,(2)I/O 数据线,(3)SCLK 串行时钟,DS1302与CPU 的连接如图1-2所示。
时钟/RAM 的读/写数据以一个字节或多字节的字符组方式通信,DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW 。
DS1302具有双电源管脚,用于主电源和备份电源供应Vcc1,为可编程涓流充电电源附加七个字节存储器,它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等产品领域。
DS1302主要的性能指标如下:实时时钟具有能计算2100 年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力31× 8 位暂存数据存储RAM 串行I/O 口方式,使得管脚数量最少宽范围工作电压2.0~ 5.5V工作电流2.0V 时,小于300nA读/写时钟或RAM 数据时有两种传送方式:单字节传送和多字节传送字符组方式8 脚DIP 封装或可选的8 脚SOIC 封装根据表面装配简单3 线接口与TTL 兼容Vcc=5V 。
DS1302的读写模式工作时序如图1-3和图1-4所示。
图1-3 单字节读模式图1-4 单字节写模式注:在多字节模式下,SCLK 发出同步脉冲,CS 须持续保持高电平直到多字节操作结束,图1-1 DS1302引脚图1-2 DS1302与CPU 接口DS1302内部寄存器的地址定义如表1-1所示。
表1-1 寄存器的地址及定义实验说明1. DS1302与51单片机的连接IO ——P2.7:串行数据输入/输出引脚SCLK ——P2.6:串行时钟引脚CE ——P2.4:片选CE2. LCD 与单片机连接;************************************************************************* ; LCD Module LMB1602 与单片机连接:;************************************************************************* ; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ;Vss Vdd V o RS R/W E D0 D1 D2 D3 D4 D5 D6 D7 BLA BLK ; 0V +5V 0V P32 P33 P34 ---------------- P1[0..7] ---------------- +5V 0V;*************************************************************************3. LCD 显示功能说明LCD1602显示格式如图1-5所示。
DS1302实现时钟

DS1302实现时钟一、实验目的:1、了解DS1302的结构及工作原理;2、理解DS1302的寄存器;3、掌握DS1302的读/写时序;4、利用DS1032实现时钟功能。
二、实验原理:DS1302的工作电压为2.5~5.5V,采用的是三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据,DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。
其内部结构如下:DS1302串行时钟由电源、输入移位寄存器、命令控制逻辑、振荡器、实时时钟以及RAM组成。
DS1302的控制字的最高有效位(D7)必须是逻辑1;如果它为0,则不能把数据写入DS1302中。
D6如果为0,则表示存取日历时钟数据;为1表示存取RAM数据。
D5~D1指示操作单元的地址。
最低有效位(D0)如果为0表示进行写操作,为1表示进行读操作,控制字总是从最低位开始输出。
值得注意的是:在单片机从DS1302中读取数据时,从DS1302输出的第一个数据位发生在紧接着单片机输出的命令字节最后一位的第一个下降沿处;而且在读操作过程中,要保持RST时钟为高电平状态。
当有额外的SCLK时钟周期时,DS1302将重新发送数据字节,这一输出特性使得DS1302具有多字节连续输出的能力。
在控制指令字输入之后下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即D0开始。
同样,在紧跟8位控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位D0至高位D7。
下面为DS1302的单字节读/写时序图:DS1302有12个寄存器,其中七个寄存器与日历、时钟相关,存放的数据位为BCD码形式。
其日历、时间寄存器及其控制字如下表:日历、时钟寄存器与控制字的对照表可一次性顺序读/写除充电寄存器外的所有寄存器内容。
DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
时钟芯片DS1302及其在数据记录中的应用

/Article_Show.asp?ArticleID=23时钟芯片DS1302及其在数据记录中的应用摘要:介绍了美国DALLAS公司推出的低功耗时钟芯片DS1302的结构和工作原理及其在测量系统中的应用。
它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿等多种功能。
DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录。
这种记录对长时间的连续测控系统结果的分析以及对异常数据出现的原因的查找有重要意义。
关键词:数据记录时钟芯片DS1302 硬件电路软件设计在测量控制系统中,特别是长时间无人职守的测控系统中,经常需要记录某些具有特殊意义的数据及其出现的时间。
记录及分析这些特殊意义的数据,对测控系统的性能分析及正常运行具有重要的意义。
传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许。
而在系统中采用DS1302则能很好地解决这个问题。
1 DS1302的结构及工作原理DS1302[1]是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.5~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
1.1 引脚功能表及内部结构图DS1302的引脚及内部结构如图1所示,引脚功能如表1所示。
1.2 DS1302的控制字节说明DS1302的控制字如图2所示。
ds1302芯片

ds1302芯片DS1302芯片是一种实时时钟(RTC)芯片,由Maxim集成电路公司生产。
它是一款非常强大和广泛应用的芯片,具有可靠的性能和低功耗。
本文将对DS1302芯片进行详细介绍。
首先,DS1302芯片主要用于系统中对时间进行实时监控和记录。
它可以精确地记录年、月、日、小时、分钟和秒,并且可以显示星期几。
可以使用8位的数据总线进行通信,方便地与其他设备进行连接。
其次,DS1302芯片具有非常低的功耗。
在正常工作模式下,它只需要2.0V至5.5V的供电电压,并且可以使用电池备份供电,以防止停电时数据丢失。
在备份供电模式下,芯片的功耗非常低,仅为0.2μA。
此外,DS1302芯片具有时钟校正功能。
它可以通过外部的32.768kHz晶体振荡器来校准内部时钟,以确保精准的时间记录。
这样可以减少时间误差,使得芯片的性能更加可靠。
同时,DS1302芯片还具有多种功能。
它支持两种不同的数据格式:BCD(二进制编码十进制)和二进制。
可以根据系统的需求选择不同的格式。
此外,芯片还具有写保护功能,可以防止未经授权的数据修改。
此外,DS1302芯片还具有温度传感器。
它可以测量环境温度,并将结果以数字形式传回主控制器。
这对于需要监控环境温度的应用非常有用。
最后,DS1302芯片可广泛应用于各种电子设备中。
例如,它可以用于电子钟、计时器、温控系统、数据记录器等。
其性能可靠,并具有广泛的兼容性。
总之,DS1302芯片是一款非常强大和广泛应用的实时时钟芯片。
它具有高度精确的时间记录功能、低功耗、时钟校正功能、多种数据格式支持、写保护功能和温度传感器等特点。
通过DS1302芯片,可以为各种电子设备提供准确、可靠的时间显示和记录功能。
DS1302使用手册

S ODS1302 涓流充电时钟保持芯片的原理与应用摘要 本文概括介绍了 DS1302 时钟芯片的特点和基本组成 通过实例详细说明了有关功能的应用软件 关于 DS1302 各寄存器的详细位控功能请参考 D ALLAS 达拉斯公司的相应产品资料概述DS 1302 是 D ALLAS 公司推出的涓流充电时钟芯片 内含有一个实时时钟/日历和31 字节静态 R AM 通过简 单的串行接口与单片机进行通信 实时时钟/日历电路提供秒 分 时 日 日期 月 年的信息 每月的天 数和闰年的天数可自动调整 时钟操作可通过 AM/PM 指示决定采用 24 或 12 小时格式 DS1302 与单片机之 间能简单地采用同步串行的方式进行通信 仅需用到三个口线 1 RE 复位 2 I/ 数据线 3 SCLK 串行时钟时钟/RAM 的读/写数据以一个字节或多达 31 个字节的字符组方式通信 DS1302 工作时功耗很 低 保持数据和时钟信息时功率小于 1mW DS1302 是由 DS1202 改进而来 增加了以下的特性 双电源管脚用于主电源和备份电源供应 Vcc1为可 编程涓流充电电源 附加七个字节存储器 它广泛应用于电话 传真 便携式仪器以及电池供电的仪器仪表等 产品领域 下面将主要的性能指标作一综合 z 实时时钟具有能计算 2100 年之前的秒 分 时 日 日期 星期 月 年的能力 还有闰年调整的能力 z 31 8 位暂存数据存储 R AM z 串行I /O 口方式使得管脚数量最少 z 宽范围工作电压 2.0 5.5V z 工作电流 2.0V 时,小于 300nA z读/写时钟或 R AM 数据时 有两种传送方式 单字节传送和多字节传送字符组方式z 8 脚 D IP 封装或可选的 8 脚 S OIC 封装根据表面装配z 简单 3 线接口z 与 T TL 兼容Vcc=5V z 可选工业级温度范围 -40+85 z 与 D S1202 兼容 z在 D S1202 基础上增加的特性 对 V cc1 有可选的涓流充电能力 双电源管用于主电源和备份电源供应 备份电源管脚可由电池或大容量电容输入 附加的 7 字节暂存存储器1 DS1302 的基本组成和工作原理 D S 1302 的管脚排列及描述如下图及表所示管脚描述管脚配置X1 X2 32.768KHz 晶振管脚GND 地RST 复位脚I/O 数据输入/输出引脚SCLK 串行时钟Vcc1,Vcc2 电源供电管脚订单信息部分# 描述DS1302 串行时钟芯片8 脚D IPDS1302S 串行时钟芯片8 脚S OIC200milDS1302Z 串行时钟芯片8 脚S OIC150mil2.DS1302 内部寄存器CH: 时钟停止位寄存器2的第7位12/24 小时标志CH=0 振荡器工作允许bit7=1,12 小时模式CH=1 振荡器停止bit7=0,24 小时模式WP: 写保护位寄存器2的第5位:AM/PM 定义WP=0 寄存器数据能够写入AP=1 下午模式WP=1 寄存器数据不能写入AP=0 上午模式TCS: 涓流充电选择DS: 二极管选择位TCS=1010 使能涓流充电DS=01 选择一个二极管TCS=其它禁止涓流充电DS=10 选择两个二极管DS=00 或11, 即使T CS=1010, 充电功能也被禁止RS 位电阻典型位00没有没有01R12K10R24K11R38KDS1302 与微控制器的接口软件及功能应用举例下面首先给出基本的接口软件然后举例说明各种功能的应用1 写保护寄存器操作当写保护寄存器的最高位为0 时允许数据写入寄存器写保护寄存器可以通过命令字节8E 8F 来规定禁止写入/读出写保护位不能在多字节传送模式下写入Wri te_Ena ble:MO V Com man d,#8Eh;命令字节为8EMO V Byt eCn t,#1;单字节传送模式MO V R0,#Xm tDa t数据地址覆给R0MO V XmtDat,#00h数据内容为0写入允许AC ALL Sen d_B yte调用写入数据子程序RE T返回调用本子程序处当写保护寄存器的最高位为1时禁止数据写入寄存器W rit e_D isa ble:MO V Com man d,#8Eh;命令字节为8EMO V Byt eCn t,#1;单字节传送模式MO V R0,#Xm tDa t数据地址覆给R0MO V XmtDat,#80h数据内容为80h禁止写入AC ALL Sen d_B yte调用写入数据子程序RE T返回调用本子程序处以上程序调用了基本数据发送(Send_By te)模块及一些内存单元定义,其源程序清单在附录中给出下面的程序亦使用了这个模块2 时钟停止位操作当把秒寄存器的第7位时钟停止位设置为0 时起动时钟开始Osc_Ena ble:MOV C omma nd,#80h ; 命令字节为80MOV B yteC nt,#1 ; 单字节传送模式MOV R0,#X mtDa t数据地址覆给R0MOV X mtDa t,#00h 数据内容为0振荡器工作允许ACALL Send_Byte 调用写入数据子程序RET 返回调用本子程序处当把秒寄存器的第7位时钟停止位设置为1时时钟振荡器停止HT1380进入低功耗方式Osc_Dis able:M OV C omma nd,#80h;命令字节为80M OV B yteC nt,#1;单字节传送模式M OV R0,#X mtDa t数据地址覆给R0M OV X mtDa t,#80h数据内容为80h振荡器停止A CALL S end_Byte调用写入数据子程序R ET返回调用本子程序处3. 多字节传送方式当命令字节为B E 或B F 时DS1302 工作在多字节传送模式8 个时钟/日历寄存器从寄存器0 地址开始连续读写从0位开始的数据当命令字节为FE 或FF 时DS1302 工作在多字节RAM 传送模式31 个RAM 寄存器从0地址开始连续读写从0 位开始的数据例如写入00 年 6 月21日星期三13 时59 分59 秒程序设置如下W rit e_M ultipl ebyt e:MOV C omm and,#0BEh;命令字节为B EhMOV B yte Cnt,#8;多字节写入模式此模块为8个MOV R0,#XmtD at数据地址覆给R0MOV X mtD at,#59h秒单元内容为59hMOV X mtD at+1,#59h分单元内容为59hMOV X mtD at+2,#13h时单元内容为13hMOV X mtD at+3,#21h日期单元内容为21hMOV X mtD at+4,#06h月单元内容为06hMOV X mtD at+5,#03h星期单元内容为03hMOV X mtD at+6,#0年单元内容为00hMOV X mtD at+7,#0写保护单元内容为00hACA LL S end_By te调用写入数据子程序RET返回调用本子程序处读出寄存器0-7 的内容程序设置如下Rea d_M ultipl eby te:MOV C omm and,#0BFh;命令字节为B FhMOV B yte Cnt,#8;多字节读出模式此模块为8个MOV R1,#Rcv Dat 数据地址覆给R1ACALL R ece ive_By te调用读出数据子程序RET 返回调用本子程序处以上程序调用了基本数据接收(Recei ve_Byt e)模块及一些内存单元定义,其源程序清单在附录中给出下面的程序亦使用了这个模块4. 单字节传送方式例如写入8时12 小时模式程序设置如下Wri te_Sin gle byt e:M OV Co mma nd,#84h; 命令字节为84hM OV By teC nt,#1; 单字节传送模式M OV R0,#X mtD at数据地址覆给R0M OV Xm tDa t,#88h数据内容为88h A CAL LSend_Byte 调用写入数据子程序RET 返回调用本子程序处上面所列出的程序模块Write_Enab le W rit e_Di sabl e Osc_Enable Osc_D isab le与单字节写入模块Write_Singlebyte 的程序架构完全相同仅只是几个入口参数不同本文是为了强调功能使用的不同才将其分为不同模块另外,与涓流充电相关的设定也是单字节操作方式,这里就不再单独列出, 用户在使用中可灵活简略下面模块举例说明如何单字节读出小时单元的内容.Read_Si ngl eby te:M OV Co mma nd,#85h; 命令字节为85hM OV By teC nt,#1; 单字节传送模式M OV R1,#R cvD at数据地址覆给R1A CAL L Re cei ve_Byt e调用读出数据子程序R ET返回调用本子程序处DS1302 应用电路原理图P87LPC764 单片机选取内部振荡及内部复位电路附录数据发送与接收模块源程序清单; CPU 工作频率最大不超过20MHz;******************************************************************************************** ;P87LPC762/4主控器发送接受数据程序; 说明本程序是利用P hilips公司的P87LPC764 单片机任何具有51内核或其它合适的单片机都可在此作为主控器的普通I/O 口(如P1.2/P1.3/P1.4)实现总线的功能对总线上的器件本程序采用D S1302进行读写操作命令字节在C ommand 传送字节数在B yteCnt 中所发送的数据在X mtDat 中所接收的数据在R cvDat 中;******************************************************************************************** ;P87LPC762/4主控器总线发送接受数据程序头文件;内存数据定义BitCnt data 30h ; 数据位计数器Byt eCn t data 31h ; 数据字节计数器Command data 32h ; 命令字节地址RcvDat D ATA40H; 接收数据缓冲区XmtDat D ATA50H; 发送数据缓冲区;端口位定义IO_DAT A b it P1.3; 数据传送总线SCLK b it P1.4; 时钟控制总线RST bi t P1.2; 复位总线;******************************************************************************************** ;发送数据程序;名称:S end_By te;描述:发送Byte Cnt个字节给被控器D S1302;命令字节地址在C ommand 中;所发送数据的字节数在B yteCnt 中发送的数据在X mtDat 缓冲区中;******************************************************************************************** Send_Byt e:CLR RST ;复位引脚为低电平所有数据传送终止NO PCLR SC LK清时钟总线NO PSETB RST ;复位引脚为高电平逻辑控制有效NO PM OV A,Command 准备发送命令字节M OV Bi tCn t,#08h传送位数为8S_By te0:RRC A将最低位传送给进位位CM OV IO_DA TA,C位传送至数据总线NO PSETB SC LK时钟上升沿发送数据有效NO PCLR SC LK清时钟总线D JNZ Bi tCn t,S_By te0位传送未完毕则继续NO PS_By te1:准备发送数据M OV A,@R0 传送数据过程与传送命令相同M OV Bi tCn t,#08hS_By te2:RRC AM OV IO_DA TA,CNO PS ETB SC LKNO PC LR SC LKD JNZ Bi tCn t,S_By te2I NC R0发送数据的内存地址加1D JNZ By teC nt,S_B yte1字节传送未完毕则继续NO PC LR RST逻辑操作完毕清R STR ET;*************************************************************************************** ;接收数据程序;;名称:Rece ive_By te;描述:从被控器D S1302 接收Byte Cnt个字节数据;命令字节地址在C ommand 中;所接收数据的字节数在B yteCnt 中接收的数据在R cvDat 缓冲区中;*********************************************************************************** Rece ive_By te:CLR RST ;复位引脚为低电平所有数据传送终止NO PCLR SC LK清时钟总线NO PS ETB RST;复位引脚为高电平逻辑控制有效M OV A,Com man d准备发送命令字节R_By te0:M OV Bi tCn t,#08h传送位数为8RRC A将最低位传送给进位位CM OV IO_DA TA,C位传送至数据总线NO PSETB SC LK时钟上升沿发送数据有效NO PCLR SC LK清时钟总线D JNZ BitCnt,R_Byte0 位传送未完毕则继续NO PR_By te1:准备接收数据CLR A清类加器C LRC清进位位CM OV Bi tCn t,#08h接收位数为8R_By te2:NO PM OV C,IO_DAT A数据总线上的数据传送给CRRC A从最低位接收数据SETB SC LK时钟总线置高NO PCLR SC LK时钟下降沿接收数据有效D JNZ BitCnt,R_Byte2 位接收未完毕则继续M OV@R1,A 接收到的完整数据字节放入接收内存缓冲区I NC R1 接收数据的内存地址加1D JNZ By teC nt,R_B yte1字节接收未完毕则继续NO PCLR RST 逻辑操作完毕清R STR ET;============================================================================== =============== E ND。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DS1302实时时钟电路的原理及应用
1 DS1302的结构及工作原理
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可
以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM
数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的
升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进
行涓细电流充电的能力。
1.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始终
是输入端。
1.2 DS1302的控制字节
DS1302的控制字如图2所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则
不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;
位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读
操作,控制字节总是从最低位开始输出。
1.3 数据输入输出(I/O)
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位
即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,
读出数据时从低位0位到高位7。
1.4 DS1302的寄存器
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,
其日历、时间寄存器及其控制字见表1。
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关
的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与R
AM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,
其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄
存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
2 DS1302实时显示时间的软硬件
DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。图3示出DS1302与89C2
051的连接图,其中,时钟的显示用LCD。
2.1 DS1302与CPU的连接
实际上,在调试程序时可以不加电容器,只加一个32.768kHz的晶振即可。只是选择晶振时,
不同的晶振,误差也较大。另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。只
要占用CPU一个口线即可。LCD还可以换成LED,还可以使用北京卫信杰科技发展有限公司生产
的10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱
动电路,并有内置显示RAM,可显示任意字段笔划,具有3-4线串行接口,可与任何单片机、I
C接口。功耗低,显示状态时电流为2μA(典型值),省电模式时小于1μA,工作电压为2.4V~3.
3V,显示清晰。
2.2 DS1302实时时间流程
图4示出DS1302的实时时间流程。根据此流程框图,不难采集实时时间。下面结合流程图
对DS1302的基本操作进行编程:
根据调试中遇到的问题,特作如下说明:
DS1302与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高
位MSB(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=
1,指定RAM数据;D5~D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操
作(输入),D0=1,指定读操作(输出)。
在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字
节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个S
CLK周期的下降沿输出数据字节。
DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一
个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;再一类为突发
方式下的RAM寄存器,在此方式下可一次性读、写所有的RAM的31个字节。
要特别说明的是备用电源B1,可以用电池或者超级电容器(0.1F以上)。虽然DS1302在主电
源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式
电脑主板上的3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通
电解电容器代替。100 μF就可以保证1小时的正常走时。DS1302在第一次加电后,必须进行初
始化操作。初始化后就可以按正常方法调整时间。
3 结论
DS1302存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。DS1302可以用于数据记
录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。这
种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。传统
的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确
记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要
设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。但是,如果在系
统中采用时钟芯片DS1302,则能很好地解决这个问题。