DS1302 DS1302数据手册:https://www.semiee.com/file/ADI/ADI-DS1302.pdf DS1302是一个时钟芯片,主要时间相关的寄存器,此芯片还有31个字节的SRAM,可以存储数据,不知道有什么实际用处。还有一个Programmable Trickle Charger(可编程涓流充电器),买的模块使用的是一个纽扣电池,不能充电。如果要用,只要发送命令和数据既可,和设置时间相关的寄存器是一样的
寄存器地址/定义 BCD 码(Binary-Coded Decimal)亦称二进码十进制数或二-十进制代码。简单来说就是使用4个二进制位表示一个十进制数,例如十六进制的0x19(二进制是0001 1001,高四位是十进制的1,低4位值十进制的9)表示十进制19,0x12(二进制是0001 0010)表示十进制12,在DS1302中就是使用这种表示方法来表示时间的,上图表示时间的寄存器都是使用的BCD码格式
时钟停止位 时钟停止标志:秒寄存器的最高位,CH=0表示时钟开启,CH=1表示时钟停止,上电后的状态不确定。也就是说,初始化的时候,需要读取秒寄存器的值,CH不为0,则需要设置成0
写保护位 写保护位:控制寄存器位7表示写保护位,其他7个位都是0,在写操作之前,都必须设置写保护位为0.
时钟停止位与写保护位
读与写的时序图 从读写时序图可以看出,读数据时候,先发送一个字节命令,在读取一个字节的数据 写数据的时候,先发送一个字节的命令,然后发送一个字节的数据(需要写入的数据) 注意:发送和接收字节都是低位在前(LSB) 代码如下 时钟突发模式
在时钟突发读取开始时,当前时间被传输到第二组寄存器。从这些辅助寄存器读取时间信息,同时时钟可以继续运行。这个可以防止小概率出现的时间跳变问题(时间跳变就是当我们读取寄存器的时候,如果当前的时间是12:01:59,已经读取了小时和分钟12:01,这时候刚好时间变化,就是变成了12:02:00,这时候我们读取秒就是00,也就是读取到了错误的时间) 时间突发模式需要一次读取或者写入前八个寄存器的值
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/73664.html