永发信息网

DS1302 不能初始化

答案:2  悬赏:20  手机版
解决时间 2021-02-12 16:13
我用51单片机,学习读取DS1302并在LCD1602上显示。但现在程序编好后发现不能初始化。初始化函数如下:
void rtc_init(){
uchar i;
if(rtc_r_data(0x81) == 0x80){
rtc_w_data(0x8E,0x00);

rtc_w_data(0x8C,0x11);
rtc_w_data(0x8A,0x03);
rtc_w_data(0x88,0x06);
rtc_w_data(0x86,0x15);
rtc_w_data(0x84,0x16);
rtc_w_data(0x82,0x50);
rtc_w_data(0x80,0x00);

rtc_w_data(0x90,0xA5);

for(i=0; i<60; i=i+2){
rtc_w_data(0xC0+i,0x00);
}

rtc_w_data(0x8E,0x80);
}
}

读和写的函数是没有问题的,这和杜洋老师的程序比较过,除了变量名外基本一致。
现在状态是LCD能显示出读取的数值,也就是00年01月01日00时00分礼拜1,并不是初始化函数里定义的时间,而且也不走时。
芯片没有问题,已经在其他电路里测试过。只是不知道晶振是否完好。
另外,使用内部带10k上拉的P2口驱动SPI总线,还需要再加上拉吗?一般出现这样的问题是什么原因呢?
最佳答案
void DS1302_Initial(void) //初始化ds1302
{
unsigned char Second=Read1302(DS1302_Second);
if(Second&0x80)
DS1302_SetTime(DS1302_Second,0);
DS1302_SetTime(DS1302_Minute,0);
DS1302_SetTime(DS1302_Hour,20);
DS1302_SetTime(DS1302_Day,15);
DS1302_SetTime(DS1302_Month,6);
DS1302_SetTime(DS1302_Year,11);
DS1302_SetTime(DS1302_Week,3);
}
我这里有一小段初始化函数、读地址先前已经宏定义了的,确定1302是否起振了没有是很重要的。硬件电路也要检查。希望能帮到你。
全部回答
ds1302不用初始化,编写一段程序拷进去,把你需要的初试时间写进去就可以了。ds1302可以接一个纽扣电源,即使断电ds1302内部依然计时 ds1302的在实时显示时间中的应用。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。 关键词:时钟电路;实时时钟;单片机; 现在流行的串行时钟电路很多,如ds1302、 ds1307、pcf8485等。这些电路的接口简单、价格低廉、使用方便,被广泛地采用。本文介绍的实时时钟电路ds1302是dallas公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32.768khz晶振。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
五岁孩子学珠脑心算好不好?
全家人靠女友一人养着,男友还带着妈妈装大爷
璟晖有色金属回收公司地址有知道的么?有点事
该图是“我国某区域沿不同纬度所做的地形剖面
有奖问答(加字一个字组成新字)
雪肌妮丝美容美体连锁机构地址在什么地方,想
中京世纪华联淀兴加盟店在什么地方啊,我要过
所有企业都必须执行企业会计准则 ?
毛呢褂子弄上喷雪怎么洗
这张图片看上去乱七八糟的,其实里面藏着两句
求魔兽世界60升70的详细流程
拨打测试在中型城市宜选()个测试点。A.20B.30
正亚纸箱包装厂地址在什么地方,想过去办事
有两种性格的人用词语表达
什么最无情,时间最无情,岁月最无情,感情最
推荐资讯
进步的中国新疆教案
一架B2隐形轰炸机能不能干沉一艘尼米兹级航母
ansys,workbench,怎么对孔固定自 ,
巨涛美发地址在哪,我要去那里办事
在攘鸡这篇文言文中孟子是个怎样的人
上世纪70年代人们吃的是“温饱”;80年代吃的
阳光水城地址好找么,我有些事要过去
请问买房贷款批不下来可以要房产商退房吗
3米长的钢筋,平均分成4段,一段长多少米?每
万智牌中的生物的异能是每个回合都可以使用么
郑少秋版本楚留香79版的是60集还是30集?
如家酒店连锁朝阳路十里堡华堂店在什么地方啊
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?