一,DS1302写时间 读出来的时间是十六进制,需转换成十进制
写进去也应该是十六进制
WP写保护位,寄存器写地址0X8E,1为写保护,禁止写。0解除
CH(clock halt) 时钟停止位,寄存器写地址0x80,1为停止,0为正常。
(年寄存器只能是00-99,注意20需自己写)
年月日时分秒写寄存器 都需将十进制转为十六进制。
最好按年月日时分秒顺序操作,最后写秒,同时修改秒寄存器的CH位 开启时钟
重新打开写保护
二,读时间
不需更改读写地址,在操作时序中已更改,只需放入一个地址即可。
与写时间大致相同,不需暂停和写保护, 最后需要十六进制转十进制
二 18B20时序操作问题
(温度显示不正常,一般是时序,延迟,返回值不对)
1.调用官方库,将官方自带延时函数修改为STC延时计算器生成15!微秒代码替换,18b20正常!!!!!!切记 15μs
2.自行编写温度转换流程函数,
(1)初始化init18b20(调用库)
(2)写字节(调用库)write_18b20(0xcc) skip ROM
(3)写字节 write_18b20(0x44) convert T
(4)(可稍作延时)
(5)写字节write_18b20(0xcc) skip ROM
(6)写字节write_18b20(0xbe) 读数据命令
(7)读数据命令之后,马上发回来的第一 第二个字节,分别是低位LSB 高位MSB
Read_DS18B20(调用库)马上读取 转换就OK!
IIC器件通信
AT240

这篇博客主要记录了蓝桥杯大赛单片机项目中的DS1302时钟芯片的写入和读取时间操作,强调了时序和寄存器设置的重要性。此外,还探讨了18B20温度传感器的时序问题,指出15μs延迟对于正常工作至关重要。同时,介绍了IIC通信中AT2401、PCF8591和DAC的交互过程,以及数码管动态显示和矩阵键盘扫描的实现方法。最后提到了SCI串口通信的波特率设置和字节发送技巧。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



