找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于DS1302不能正常写入80+年的问题研究

查看数: 8052 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2014-12-23 01:39

正文摘要:

很早以前就遇到过这个问题,当时没有记,现有又遇到这个问题,果断要记下。特发在51hei论坛,以后遇到的朋友可以作为参考。 下面是有问题的程序: void Write_Ds1302_Byte(unsigned char temp1) { unsig ...

回复

ID:7121 发表于 2018-12-23 12:43
还是好好看看 DS1302 的时序图吧
ID:96218 发表于 2018-12-14 22:23
个人认为还是晶振的问题
ID:445798 发表于 2018-12-14 16:34
然而按楼主的法改了,还是不行。。。。
ID:33544 发表于 2017-6-26 21:23
我也遇见了这个问题,只是都是小白无解
  
ID:92336 发表于 2015-10-13 14:09
本帖最后由 rebosun 于 2015-10-13 14:11 编辑

/****************************************************************************/
unsigned char Read_Ds1302 ( unsigned char address )
{
  unsigned char i,temp=0x00;
  RST=0;
_nop_();
  SCLK=0;
_nop_();
  RST=1;
_nop_();
  Write_Ds1302_Byte(address); //DS1302这个芯片是上升沿写入数据,下降沿触发数据输出,
  for (i=0;i<8;i++)   //循环8次 读取数据
  { SCLK=0;  //DS1302这个芯片是下降沿触发数据输出,
                temp>>=1;   //右移一位  
   if(SDA2)temp|=0x80;   //每次传输低字节
  SCLK=1;
}
  RST=0;
_nop_();  //以下为DS1302复位的稳定时间
  RST=0;
SCLK=0;
_nop_();
SCLK=1;
_nop_();
SDA2=0;
_nop_();
SDA2=1;
_nop_();
return (temp);   //返回
}
ID:71748 发表于 2015-1-6 20:22
求解决办法啊。。。。。

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

Powered by 单片机教程网

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