标题: DS1302加了备用电源,运行一次后,删除初始时间代码,时间直接从零开始 [打印本页]

作者: 白幽幽    时间: 2020-3-30 16:45
标题: DS1302加了备用电源,运行一次后,删除初始时间代码,时间直接从零开始
DS1302,加了备用电源,不论是加电池,开始加电容都试过,自己找到下面几种解决办法都不行:
1.第一次加上初始化时间的代码,然后倒入单片机,在PROTUES中运行,时间从我初始化时间开始走,然后结束运行,回到KEIL,注释掉初始化时间语句,在运行,我的时间从0开始,年月日全部都从0开始了;
2.判断DS1302芯片的RAM首地址0XC0是否为0,为0则初始化时间,并在0XC0写入1,如果不为0,就不初始化时间,我的运行结果是时间从0开始。
请问有没有人遇到过同类型的问题,麻烦解答一下,我可能是个菜鸡,感谢!


作者: dzbj    时间: 2020-3-30 16:45
白幽幽 发表于 2020-3-31 10:32
我后面换了一种办法测试,先去判断RAM一个地址中的值,如果不是就初始化时间,并给这个地址写入值,如果 ...

你先测试一下1302保持是否成功 写个只读函数 读取当前1302时间 断电但保持电池 上电 再读 看时间对不对 如果对是你程序的问题 如果不对是1302没保持住

1302你可用理解成一个独立系统 只要给电就可用工作 剩下的事只是读写 如果供电正常 没有意外写 它就只会累加时间

我个人很反对用protues仿真 那东西往往离实际情况差太远 比如在protues中仿真可以不用上拉电阻 实际上1302的通讯口是不能不用的
作者: wo4fisher    时间: 2020-3-30 23:22
首先要确保备用电源的有效性,包括电压值在有效范围。其次就是你的程序和ds1302,主要考虑备用电源和程序。不行换电源试试
作者: 白幽幽    时间: 2020-3-31 10:32
wo4fisher 发表于 2020-3-30 23:22
首先要确保备用电源的有效性,包括电压值在有效范围。其次就是你的程序和ds1302,主要考虑备用电源和程序。 ...

我后面换了一种办法测试,先去判断RAM一个地址中的值,如果不是就初始化时间,并给这个地址写入值,如果值正确就跳过初始化时间的步骤,我第一次在PROTUES中运行,是我的初始化时间,第二次运行就是从0开始,这就说明我的备用电源启动成功了的,但是时间为啥会从0开始,我被这玩意儿给整懵了,求解呀
作者: 找计    时间: 2020-11-7 14:37
你好,我也遇到同样的问题,请问你的问题解决了吗,可否帮我解决一下
作者: 学生1    时间: 2021-3-25 15:26
程序初始化设置好时间后,掉电重新上电时间恢复,我也有过同样的情况,备用电源没电了,换了一个备用电源后就正常了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1