- 一、芯片介绍
- 二、芯片引脚定义
- 三、寄存器定义
- 四、命令字
- 五、时序图与数据读写
- 5.1 单字节写步骤(Write)
- 5.2 单字节读步骤(Read)
- 六、BCD码
- 6.1 问题描述
- 6.2 问题原因
- 6.3 解决方案
DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。 RTC(Real Time Clock):实时时钟,是一种集成电路,通常称为时钟芯片。
DS1302电路图如下: 其内部结构框图如下:
相关寄存器如下: 其中,第一行的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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?