ds1302 写时钟程序 怎么实现掉电后1302继续计时,下次上电后时间和实际时间一样,给个具体的程序写法

2024-12-19 01:56:39
推荐回答(2个)
回答1:

设置一个标志位Read_Flag就可以了,如下:
Read_BurstRam(&Read_Flag,1); //读时钟ram
if(Read_Flag != 1)
{
Write_Data(0x90,0xaa); //定义充电
Write_BurstClock(Cur_Time); //初始化时钟
Write_BurstRam(&Clock_Flag,1); //写时钟ram
Write_Data(0x8e,0x80); //打开写保护
}

回答2:

ds_rd(0x81); //读取秒
ds_data=ds_data&0x80;
if(ds_data==0x80) //判断是否在运行 没有运行执行
{
ds_write(0x8e,0x00);//关闭写保护
ds_write(0x8c,0x11);//年 年月日什么的当10进制数看
ds_write(0x88,0x10);//月
ds_write(0x86,0x20);//日
ds_write(0x84,0x01);//时
ds_write(0x82,0x18);//分
ds_write(0x80,0x00);//秒
ds_write(0x8a,0x05);//星期
ds_write(0x8f,0x80);//打开写保护
}