本帖最后由 豆子十三 于 2016-10-13 17:45 编辑
这两天作了一个使用DS1302的时钟,其中的12/24小时转换费事不小。又仔细研究了一个DS1302的资料,得出了一些数据,跟大家分享一下。
下图是DS1302有关小时的寄存器:
BIT7用来区别是12小时制还是24小时制,用一句:
if((shi&0x80)==0x80)判断最高位是不是1;这里的"shi"变量就是读出的小时数据。
BIT5在12小时制时是AM/PM判断位,可用一句:if((shi&0x20)==0x20)来知道。
BIT5在24小时制时为20小时位。
当12小时制时用一句:shi=shi&0x1f ,就可将高三位去掉。
下图是从DS1302读出的小时数据与12/24小时制的关系:
|