本帖最后由 豆子十三 于 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小時制的關系:
|