搜索
bottom↓
回复: 6

求解 为什么PCF8563做的时钟在23:59:59后会跳到23:00:00

[复制链接]

出0入0汤圆

发表于 2015-4-2 19:31:23 | 显示全部楼层 |阅读模式
过了一分钟,也就是应该显示00:01:00的时候时间才会显示正常
但是日历还是不正常

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2015-4-2 19:32:14 | 显示全部楼层
  1. void main()
  2. {
  3.         uchar Time[7]={0x50,0x58,0x22,0x00,0x03,0x00,0x14};//初始化数据
  4.         //51秒,59分,23时,1日,星期四,1月,2015年
  5.         uchar Time_data_read[16];//PCF8563数据临时数组
  6.         uchar Print_data[16],i;//打印用临时数组
  7.         LCD_Init();
  8.         LCD_Clear();
  9.         set_8563(Time);
  10.         LCD_Write_String(4,0,"Hellow !");
  11.         DelayMs(1000);
  12.         LCD_Clear();
  13.         LCD_Write_String(0,0,"20");
  14.        
  15.         while(1)
  16.         {
  17.                 Read_8563(Time_data_read);
  18.                 for(i=0;i<7;i++)
  19.                 Time_data_read[i]=Time_data_read[i]/16*10+Time_data_read[i]%16+1;//BCD码转换成16进制
  20.                 if(Time_data_read[0]==60)                Time_data_read[0]=0;
  21.                 if(Time_data_read[1]==60)                Time_data_read[1]=0;
  22.                 if(Time_data_read[2]==24)                Time_data_read[2]=0;
  23.                 if(Time_data_read[3]==31)                Time_data_read[3]=1;
  24.                 if(Time_data_read[5]==13)                Time_data_read[5]=1;
  25.                 if(Time_data_read[6]==100)        Time_data_read[6]=0;
  26.                 sprintf(Print_data,"%02d-%02d-%02d",(uint)Time_data_read[6],(uint)Time_data_read[5],(uint)Time_data_read[3]);
  27.                 LCD_Write_String(2,0,Print_data);
  28.                 sprintf(Print_data,"%02d:%02d:%02d",(uint)Time_data_read[2],(uint)Time_data_read[1],(uint)Time_data_read[0]);
  29.                 LCD_Write_String(2,1,Print_data);
  30.         }
  31. }
复制代码

出0入0汤圆

 楼主| 发表于 2015-4-2 19:32:48 | 显示全部楼层
main函数如上

我有对读取到的值进行判断了啊

出0入0汤圆

 楼主| 发表于 2015-4-2 20:18:27 | 显示全部楼层
问题解决了  抱歉   是我没仔细看8563的手册

出0入0汤圆

发表于 2015-4-2 20:46:48 | 显示全部楼层
墨逸、 发表于 2015-4-2 20:18
问题解决了  抱歉   是我没仔细看8563的手册

既然是让大家帮助解决问题的,虽然大家没有帮到你,也希望楼主把问题的原因及解决的办法贡献出来,帮助那些和你走过一样弯路的朋友,也给论坛做了贡献。你看好不好呢!

出0入0汤圆

 楼主| 发表于 2015-4-4 01:07:19 | 显示全部楼层
MCUStudent 发表于 2015-4-2 20:46
既然是让大家帮助解决问题的,虽然大家没有帮到你,也希望楼主把问题的原因及解决的办法贡献出来,帮助那 ...

是这样的,我在BCD码转换成十六进制的时候对其数据进行了加一操作,我以为它是按照计算机数据方式从0开始,59结束的,然后就闹了乌龙,虽然下面有判断,不过似乎没有起作用,不知道为什么

出0入0汤圆

发表于 2015-6-7 15:15:08 | 显示全部楼层
楼主这样的读写方式没有问题吗?我在连续读写的时候,长时间会出现读变成了写数据了,也就是时间被写入0XA3的数据了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 08:32

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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