找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2009|回复: 5
打印 上一主题 下一主题
收起左侧

DS1302加了备用电源,运行一次后,删除初始时间代码,时间直接从零开始

[复制链接]
跳转到指定楼层
楼主
ID:716109 发表于 2020-3-30 16:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10黑币
DS1302,加了备用电源,不论是加电池,开始加电容都试过,自己找到下面几种解决办法都不行:
1.第一次加上初始化时间的代码,然后倒入单片机,在PROTUES中运行,时间从我初始化时间开始走,然后结束运行,回到KEIL,注释掉初始化时间语句,在运行,我的时间从0开始,年月日全部都从0开始了;
2.判断DS1302芯片的RAM首地址0XC0是否为0,为0则初始化时间,并在0XC0写入1,如果不为0,就不初始化时间,我的运行结果是时间从0开始。
请问有没有人遇到过同类型的问题,麻烦解答一下,我可能是个菜鸡,感谢!

最佳答案

查看完整内容

你先测试一下1302保持是否成功 写个只读函数 读取当前1302时间 断电但保持电池 上电 再读 看时间对不对 如果对是你程序的问题 如果不对是1302没保持住 1302你可用理解成一个独立系统 只要给电就可用工作 剩下的事只是读写 如果供电正常 没有意外写 它就只会累加时间 我个人很反对用protues仿真 那东西往往离实际情况差太远 比如在protues中仿真可以不用上拉电阻 实际上1302的通讯口是不能不用的
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

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

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

我个人很反对用protues仿真 那东西往往离实际情况差太远 比如在protues中仿真可以不用上拉电阻 实际上1302的通讯口是不能不用的

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:191511 发表于 2020-3-30 23:22 | 只看该作者
首先要确保备用电源的有效性,包括电压值在有效范围。其次就是你的程序和ds1302,主要考虑备用电源和程序。不行换电源试试

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:716109 发表于 2020-3-31 10:32 | 只看该作者
wo4fisher 发表于 2020-3-30 23:22
首先要确保备用电源的有效性,包括电压值在有效范围。其次就是你的程序和ds1302,主要考虑备用电源和程序。 ...

我后面换了一种办法测试,先去判断RAM一个地址中的值,如果不是就初始化时间,并给这个地址写入值,如果值正确就跳过初始化时间的步骤,我第一次在PROTUES中运行,是我的初始化时间,第二次运行就是从0开始,这就说明我的备用电源启动成功了的,但是时间为啥会从0开始,我被这玩意儿给整懵了,求解呀
回复

使用道具 举报

5#
ID:659821 发表于 2020-11-7 14:37 来自手机 | 只看该作者
你好,我也遇到同样的问题,请问你的问题解决了吗,可否帮我解决一下
回复

使用道具 举报

6#
ID:811405 发表于 2021-3-25 15:26 | 只看该作者
程序初始化设置好时间后,掉电重新上电时间恢复,我也有过同样的情况,备用电源没电了,换了一个备用电源后就正常了

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表