51单片机使用ds1302时钟芯片(有备用电池),c程序中如何做能让时钟在系统掉电后能自走,
3个回答
展开全部
DS1302芯片内一般都会有空闲的RAM,随便分配两个字节作为上电标志。第1次上电初始化时,为这两个RAM字节写入一个相同数值,比如0x55,之后每次上电时先读取这两个RAM字节,并对这两个字节数据逻辑与后进行判断,如果结果还是0x55,就可以直接读取时间数据,否则对时间进行初始化。我就是这样做的,效果很好。你不妨试试,应该能解决问题的。
追答
虽然你已经采纳了别人的回答,但我还是愿意继续帮助你的。判断D7=?的路是我曾绕过弯的路,行不通吧,你上面的那段程序问题在于过程安排错误,不管曾经是否已经对1302初始化过,上电后的第一件事是先RAM读取特征码,如果特征码不符合再初始化1302时间,并同时初始化特征码。而你是先初始化特征码后继而读取和判断特征码,这样做有什么意义呢。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能你每次都设置初始化了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询