DS1302内码及10进制二进制十六进制之间的转换

DS1302内码及10进制二进制十六进制之间的转换


2024年5月3日发(作者:)

DS1302的时钟程序读写时都是BCD码,高4位是实际的十位数,低位是实际的个位

数。对于一些像我这样的初学者,BCD码和ds1302内码以及十六进制之间的转换是一个难

点.

bcd码也叫8421码就是将十进制的数以8421的形式展开成二进制,大家知道十进

制是0~9十个数组成,着十个数每个数都有自己的8421码:

0=0000

1=0001

2=0010

3=0011

4=0100

5=0101

6=0110

7=0111

8=1000

9=1001

举个例子:

321的8421码就是

3 2 1

0011 0010 0001

就是这样了:)

如十进制数45,按BCD码规则,应为4和5

但是4的BCD码为多少呢?--------0100

5的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进制输出即可

例如

十进制45

Bcd码0100 0101 (这个bcd码对应十进制69),(这个bcd码对应十六进制为

45)

公式:

Temp=time_date/16;

Time_date=time_date%16

Num_10jinzhi=temp*10+time_date;

例如:bcd码0100 0101

Temp=0100 0101/16=4

Time_date=0111 0101%16=5

Num_10jinzhi=4*10+5


发布者:admin,转转请注明出处:http://www.yc00.com/web/1714722808a2502891.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信