DS1302时钟芯片的使用

DS1302时钟芯片的使用详解

DS1302 是 DALLAS 公司推出的涓流充电时钟芯片
内含有一个实时时钟/日历和 31 字节静态 RAM可通过简单的串行接口与单片机进行通信
可提供:
–秒分时日日期月年的信息
–每月的天数和闰年的天数可自动调整
–可通过 AM/PM 指示决定采用 24 或 12 小时格式
–保持数据和时钟信息时功率小于 1mW
DS1302时钟芯片的使用_第1张图片
引脚功能
Vcc1:主电源;
Vcc2:备份电源。
当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电
当Vcc2< Vcc1时,由Vcc1向DS1302供电。
SCLK:串行时钟,输入,控制数据的输入与输出;
I/O:三线接口时的双向数据线;
CE:输入信号,在读、写数据期间,必须为高。
该引脚有两个功能:
第一,CE开始控制字访问移位寄存器的控制逻辑;
其次,CE 提供结束单字节或多字节数据传输的方法。
X1 X2 32.768KHz 晶振管脚

DS1302地址字节

控制字节逻辑有效位必须是逻辑1,若为0,则数据就写不进去1302中。
位6如果是0,则表示存取日历时钟数据
位6如果是0,则表示存取RAM数据。
一到五位则为操作地址,最低为为0表示写操作,1表示读操作。
DS1302时钟芯片的使用_第2张图片
控制字总是从最低位开始输出。在控制字指令输入后的下一个 SCLK 时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0 位)开始。同样,在紧跟 8 位的控制字指令后的下一个 SCLK 脉冲的下降沿,读出 DS1302 的数据,读出的数据也是从最低位到最高位
注意 控制字节总是从最低位开始输出

SINGLE-BYTE WRITE(单字节写入)

DS1302时钟芯片的使用_第3张图片

写一个字节相当于写两个,第一个写数据字节,第二个写地址字节。
数据写入时候CE必须拉高,否则输入数据无效
注意sclk信号线的变化

SINGLE-BYTE READ (单字节读取)

DS1302时钟芯片的使用_第4张图片

读取字节的过程中,也是先读取数据字节,之后再读取地址字节,信号线CE必须拉高。
注意:
读取字节的过程中写字节过程上升沿有效,读取字节过程中是下降沿有效。
字节的写过程和读过程都是从低位到高位

DS1302寄存器

每个寄存器根据读写操作都分为读操作和写操作,同时还有对应的读地址写地址。
存放数据为BCD码形式
DS1302时钟芯片的使用_第5张图片
秒寄存器(81h,80h) 位7 定义为时间暂停位。
当 BIT1 为 1 时,时钟振荡器停止工作,DS1302 进入低功耗模式,电源消耗小于 100 微安。
当 BIT1 为 0 时,时钟振荡器启动,DS1302 正常工作。

小时寄存器(85h,84h) 位7 定义为 12 或 24 小时工作模式选择位。
当 BIT7 为高时,为 12 小时工作模式,此时 BIT5 为 AM/PM 位,
低电平标示 AM,高电平标示PM
在 24 小时模式下,位5 为第二个 10 小时位标示(20~23 时)。

写保护寄存器(8Fh,8Eh) 位7 WP 是写保护位
工作时,出 WP 外的其他位都置为 0,
对时钟/日历寄存器或 RAM 进行写操作之前,WP 必须为 0,
当 WP 为高电平的时候,不能对任何时钟/日历寄存器或 RAM 进行写操作。
如果要进行写操作,先让WP=0,才能对寄存器进行操作。

小总结

ds1302主要操作就是:
去掉写保护,对时间进行初始值设置,加上写保护,不断读取时间和日期,通过lcd或者数码管进行显示

  1. 通过8eH去掉写保护
  2. 对80H 82H 84H 86H 88H 8AH 8CH进行初值写入,同时通过秒寄存器将位7设置使CH=0,ds1302开始走时。
  3. 把写保护寄存器改为80H,防止时间出错
  4. 不断读取各个寄存器里面的值,将BCD码转换成十进制,用lcd或者数码管进行显示。

下一篇,直接上代码。

你可能感兴趣的:(51单片机开发和入门,单片机,嵌入式)