首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

关于PCF8563时钟芯片的有关问题

2012-02-12 
关于PCF8563时钟芯片的问题读取时钟芯片的时间 并且将BCD码转换成十进制数下面程序中:time.secondBCD2Val

关于PCF8563时钟芯片的问题
读取时钟芯片的时间 并且将BCD码转换成十进制数
  下面程序中:
  time.second=BCD2Val(temp[0]&0x7f); //秒
  time.second=BCD2Val(temp[1]&0x7f);
  time.hour =BCD2Val(temp[2]&0x3f);
  time.day =BCD2Val(temp[3]&0x3f);
  time.week =BCD2Val(temp[4]&0x07);
  time.month=BCD2Val(temp[5]&0x1f);
  time.year =BCD2Val(temp[6]); //年
  temp[0]&0x7f temp[1]&0x7f temp[2]&0x3f分别代表什么意思?

[解决办法]
取出temp中的相应的位,例如 0x07f 就是 0111 1111,有1的比特位有效啦

时钟芯片中的一个字节,不是8个比特位都定义,所以要进行筛选出定义的位了
[解决办法]
所有的参数均按BCD码保存:
 秒和分的有效范围是0~6比特;你的第2项应该是分钟time.minute
 小时和日的有效范围是0~5比特;
 星期的有效范围是0~2比特;
 月份的有效范围是0~4比特;
 年份的有效范围是0~7比特;

热点排行