DS1302的24小时无法显示20以上
解决一个关于ds1302的 时钟显示不了20点以上的问题
仔细看看
这个HR和A/P说的不明不白 我仔细收集了资料才发现
如果是12小时制,A/P代表了上午下午 第4位HR和第0-3位HR合在一起按BCD码算
如果是24小时制,A/P与第4位HR合在一起组成10HR,第0-3位HR合在一起
因为我只用了第0-4位 导致20及以上都无法显示,24小时应当0-3位BCD码为个位,第4-5位BCD码为十位
这是两条互相转化的式子
a = 正常的数字;
b = BCD码;
a=(b)&0X0F+((b)>>4)*10;
b=(a)%10+(a/10)<<4;
图片引用于: link.