《【2017年整理】DS1302内码及10进制二进制十六进制之间的转换》由会员分享,可在线阅读,更多相关《【2017年整理】DS1302内码及10进制二进制十六进制之间的转换(2页珍藏版)》请在金锄头文库上搜索。
1、DS1302 的时钟程序读写时都是 BCD 码,高 4 位是实际的十位数,低位是实际的个位数。对于一些像我这样的初学者,BCD 码和 ds1302 内码以及十六进制之间的转换是一个难点.bcd 码也叫 8421 码就是将十进制的数以 8421 的形式展开成二进制,大家知道十进制是 0 9 十个数组成,着十个数每个数都有自己的 8421 码:00000100012001030011401005010160110701118100091001举个例子:321 的 8421 码就是3 2 10011 0010 0001就是这样了:)如十进制数 45,按 BCD 码规则,应为 4 和 5但是 4 的
2、BCD 码为多少呢?-01005 的 BCD 码为多少呢?-0101那么如何把 45 按 bcd 的 0100 0101 放到 ds1302 中呢?公式: 公式:45/10=4 45%10=5则 4*16+5=69(十进制 69)69 的 BCD 码正好为 0100 0101 这就是 45 的 bcd 码注:有些资料和视频泛泛而谈,说什么 16 进制 xxx,其实这个转换里除了 16 当系数之外根本不涉及十六进制!/在从 1302 往外读数时,将相应的二进制 bcd 码直接转为 16 进制输出即可例如十进制 45Bcd 码 0100 0101 (这个 bcd 码对应十进制 69),(这个 bcd 码对应十六进制为 45)公式:Temp=time_date/16;Time_date=time_date%16Num_10jinzhi=temp*10+time_date;例如:bcd 码 0100 0101Temp=0100 0101/16=4Time_date=0111 0101%16=5Num_10jinzhi=4*10+5