永发信息网

DS1302掉电数据清空

答案:2  悬赏:30  手机版
解决时间 2021-02-23 13:45
DS1302最基本连接方式,电池用的RS2032(3V),如果程序初值设定(或程序中改写)的话运行正常。掉电后屏蔽初始设置的重新烧片的话,再上电显示就是2000年1月1日 00:00:00 。
void WDS1302(uchar ucAddr,uchar ucDar);此函数为写命令
以下是初值设置
WDS1302(0x8e,0x00);
WDS1302(YEAR,sys.cYear);
WDS1302(MONTH,sys.cMon&0x1f);
WDS1302(DAY,sys.cDay&0x3f);
WDS1302(HOUR,sys.cHour&0xbf);
WDS1302(MINUTE,sys.cMin&0x7f);
WDS1302(SECOND,sys.cSec&0x7f);
WDS1302(WEEK,sys.cWeek&0x07);
WDS1302(0x8e,0x80);

以下是屏蔽后的初始化
WDS1302(SECOND,0x00);

我的联系方式是QQ441664178,高手加我QQ详谈。谢谢。

问题找到了,希望以后大家有用吧。是电池的地的问题,电池的地必须与芯片直接连接,不能通过电源地接入芯片,不然会产生干扰而不能记录时间。
最佳答案
如果是正宗的芯片
怕工作不稳定
全部回答
这里给你一个我自己的proteus亲自调试通过的程序,若要求全部调试程序请发站内信,uchar du(uchar addr) { uchar i; uchar dd,du,du1,du2; dsres=0; dssclk=0; dsres=1; for(i = 0; i < 8; i++) { dssclk=0; dsio=0; if(addr & 0x01) dsio= 1; dssclk = 1; addr >>= 1; }---------以上发送一个字节地址 dsio=1; -----ds1302通信io口 for(i = 0; i < 8; i++) { acc=acc>>1; dssclk=0; if(dsio==0) acc_7=0; else acc_7=1; dssclk=1; }--------------以上读取一个字节数据 dsres=0; dd=acc; du1=dd/16; du2=dd%16; du=du1*10+du2;---------以上进行十六进制到十进制转化 return du; } 你的程序我大致看了,问题主要有二个,你的时序可能还没弄清楚,要严格按照时序,具体的资料你手头应该也有,读写数据的时候你都应该按照上升沿进行数据传输,第二个问题就51在作为通信口读数据的问题了,一定要记住51作为数据通信口的时候一定要先拉高端口电平也就是我上面注释的dsio=1;为什么这样做具体你可以查阅51io口的结构图,vcc接上拉电阻再接一个mos管,电阻和mos管之间是io口,只有端口写1的时候,mos管工作在截至状态,此时读引脚和vcc连接,这时候若io是高电平则直接读出高电平1,若io口是低电平则外部芯片的吸电把端口电平拉低,读引脚读出低电平0,要区分读引脚和读端口寄存器的区别!还有其他问题的话 站内信 呵呵 ,望你能弄懂最后别忘了给分 谢谢 !!!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
可使二倍体生物细胞中的B、b两个基因保存在同
福临门装璜部地址有知道的么?有点事想过去
损兵折将的意思是什么
HP LaserJet 1020激光打印机打印纸上右侧有
润香源茶庄地址有知道的么?有点事想过去!
下列变异类型在有丝分裂过程中不会发生的是A.
南同地址在什么地方,想过去办事
绝地求生如何开始游戏
姑妈死了的说说
cdr如何将一段美术字拆分成两组
战地3DLC什么意思
德顺源稍麦这个地址在什么地方,我要处理点事
观察下面一列数,然后与同伴一起探求规律:1,负
和茶缘地址好找么,我有些事要过去,
新轩辕剑2末日与离别为什么没有修改器
推荐资讯
买二手车最好几年吗
罗氏鲜果坊熙春路店我想知道这个在什么地方
索尼a6000首次充电多长时间
蓖麻籽能吃吗?
例如:我同一天在网上买了2张火车票会有冲突吗
great的同类词有哪些?
求一句英语的句子(最好是出自电影或名人)要
鑫郭岗子百货超市地址在什么地方,想过去办事
坡头山地址在什么地方,想过去办事
酸奶机用什么内胆好
吴起到清丰多少公里
星级与红警哪个玩的人多?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?