您当前的位置: 首页 >  wendy_ya 单片机

单片机常用芯片总结(二)——DS1302时钟芯片

wendy_ya 发布时间:2022-04-18 16:47:41 ,浏览量:3

目录

    • 一、芯片介绍
    • 二、芯片引脚定义
    • 三、寄存器定义
    • 四、命令字
    • 五、时序图与数据读写
      • 5.1 单字节写步骤(Write)
      • 5.2 单字节读步骤(Read)
    • 六、BCD码
      • 6.1 问题描述
      • 6.2 问题原因
      • 6.3 解决方案

一、芯片介绍

DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。
RTC(Real Time Clock):实时时钟,是一种集成电路,通常称为时钟芯片。

二、芯片引脚定义

DS1302电路图如下:

其内部结构框图如下:

引脚名作用
VCC2主电源
VCC1备用电池
GND电源接地
X1,X232.768kHz晶振
CE芯片使能
IO数据输入/输出
SCLK串行时钟

三、寄存器定义

相关寄存器如下:

其中,第一行的CH表示时钟暂停控制位,置1表示时钟暂停,置0表示时钟静止;倒数第二行的WP表示write protect(写保护),置1表示写入操作无效;最后一行的TCS用于控制涓流充电,一般不进行设置,其他部分放在第四章进行介绍。

四、命令字

命令字如下:

  • 第0位表示读还是写(置1表示读,置0表示写);
  • 第1-5位表示地址(秒地址为0,分钟地址为10,…);
  • 第6位表示操作RAM还是时钟CK(置1表示操作RAM,置0表示操作CK);
  • 第7位:固定为1;

举个例子,对时钟操作、秒地址操作、读:
10000001(0x81)
对时钟操作、秒地址操作、写:
10000000(0x80)
这与上方第三章寄存器中的读地址和写地址是对应的。

五、时序图与数据读写

时序图:

三个引脚:CE(使能端)、SCLK(时钟)和I/O(数据)。

规定:在时钟的上升沿,I/O口的数据将会被写入,在时钟的下降沿,时钟芯片的数据将会被读出。

5.1 单字节写步骤(Write)

Step1:将CE置1;
Step2:命令字(I/O)发两个字节:第一个字节是命令字(先发最低位R/W),第二个字节是数据;【一位一位依次发送】
Step3:SCLK给上升沿,将命令字最低位写入单片机;
Step4:将SCLK置回0;
Step5:SCLK给上升沿,将命令字次低位写入单片机;
Step6:将SCLK置回0;
…(依次循环8次)
Step7:SCLK给上升沿,将数据最低位写入单片机;
Step8:将SCLK置回0;
Step9:SCLK给上升沿,将数据次低位写入单片机;
Step10:将SCLK置回0;
…(依次循环8次)
Step11:将CE置0;
(每个上升沿写入数据)

代码示例:

//单字节写,Command为命令字(地址),Data为要写入的数据
void DS1302_WriteByte(unsigned char Command,Data){
	unsigned char i;
	DS1302_CE=1;
	for(i=0;i            
关注
打赏
查看更多评论