DS1302
芯片功能
DS1302是美国DALLAS推出的一款高性能、低功耗的日历时钟芯片。
DS1302是一种串行接口的实时时钟,芯片内部具有可编程的日历时钟和31个字节的静态RAM,日历时钟可以自动进行闰年补偿,计时准确,接口简单,使用方便
工作电压范围2.5~5.5V,芯片自身还具有对备用电池进行涓流充电功能,可有效延长备用电池的使用寿命。
DS1302用于数据记录,能实现数据与该数据出现的时间同时记录,广泛应用于测量系统中。
引脚
-
VCC1:主电源
-
VCC2:备用电源
当VCC2大于VCC1+0.2V时,由VCC2向DS1302供电否则由VCC1向DS1302供电
-
SCLK:串行时钟输入端,控制数据输入与输出
-
I/O :双向输入线
-
CE:使能端,CE为高时允许读写DS1302数据,为低时禁止读写
应用电路
开发板实际电路如下:
说明:
DS1302和单片机的IO连接只需3条线:
-
CE数据传输使能端、SCLK串行时钟输入端、I/O串行数据端
(开发板上把这3个引脚分别接到了j5排针上同时通过4.7K电阻上拉到VCC,我们实际使用DS1302芯片时需要用杜邦线把j5和相应的单片机IO链接上)
此外
-
X1、X2晶振引脚外接32.768KHZ圆形晶振,给时钟芯片提供工作频率
-
VCC2接的开发上的系统电源,VCC1接的预留电池座
-
DS1302第4脚接的系统GND
DS1302的寄存器
如图所示,时钟日历包含在 7 个读/写寄存器内,读/写寄存器中的数据是 BCD 码。(4位BCD码最大表示9,不是15, 例如用BCD码表示10为 0001 0000
)
-
秒寄存器(81h、80h)的BIT7定义为时钟暂停标志(CH)。当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。
-
小时寄存器(85h、84h)的BIT7用于定义DS1302是运行于12小时模式还是24小时模式,当为1时,选择12小时模式,此时BIT5为AM/PM位,在24小时模式时此位为小时数据位。
-
写保护寄存器(8Fh、8Eh)的BIT7是写保护位(WP),其它7位均为0。在任何对时钟或RAM读写操作之前,WP位必须为0。当WP位为1时,不能对任何时钟日历寄存器或RAM进行写操作。
使用对应指令即可读取或写入数据到相应寄存器,比如读取秒,用指令81h
,读取分,用 83h
, …
突发模式:
突发模式可以指定任 何的时钟/日历或者 RAM 寄存器为突发模式,和以前一样,第 6 位指定时钟或 RAM 而 0 位指定读或写。
突发模式的实质是指一次传送多个字节的时钟信号和 RAM 数据。如下图所示:
也就是说,如果发送BFh
指令,DS1302会一次性把年月周日、时分秒发送过来,不需要像前面一个个指令来获取时间
DS1302时序
DS1302读写数据时序,数据的传输是从最低位开始(BIT0)。
数据是以位(BIT)为单位依次写入或读出,读写数据操作中SCLK上升沿时执行写入数据,下降沿时执行读出数据。
**读数据:**CE端从低到高的一个上升沿开始允许开始读数据,拉低CE端则禁止读写数据;开始的8个SCLK周期,写命令字节,数据的后8个SCLK 周期读出数据。
**写数据:**CE端从低到高的一个上升沿开始允许开始写数据,拉低CE端则禁止读写数据;开始的8个SCLK周期,写命令字节,数据的后8个SCLK 周期写入数据。
例子
数码管显示DS1302时钟
1 |
|