单片机(keil c51):BCD码转化为二进制(以4位BCD码举例,依此类推)

BCD码转化为二进制

  • 原理:
  1. 一个BCD码表示0~9,所以一个BCD码的取值范围为0000~1001。
  2. 在机器里所有的数都是按照二进制存入的,所以只需将BCD码转换为十进制即可。
  3. 4位BCD码可以表示的数最大为9999,转换为二进制数为 0010 0111 0000 1111,不会超过两个字节,所以只需保存低两个字节。
  • 举例:在40H~43H单元中存放了一个4位BCD码数,要将其转换成二进制数,转换结果存放在R3(高位)、R2(低位)中。
0101
0001
0010
0011

BCD码为0011 0010 0001 0101 的数用十进制表示为3215。

过程为:0011=3,0010=2,0001=1,0101=5。

              3*+2*+1*+5*=3215

              3215=5+10*(1+10*(2+10*3))=(3*10+2)*100+(1*10+5)

 

可得出结论:在机器中,BCD码转换为十进制即二进制数,可以让高位乘10再加上低位。

  • 单片机代码部分分析:

 

MOV 40H,#3
MOV 41H,#2
MOV 42H,#1
MOV 43H,#5
MOV A,40H
MOV B,#10
MUL AB
ADD A,41H
MOV B,#100
MUL AB
MOV R3,B
MOV R2,A
CLC A
MOV A,42H
MOV B,#10
MUL AB
ADD A,43H
ADD A,R2
CLR A;对进位位Cy清零
ADDC R3,A
END
<figcaption> 实验结果 </figcaption>

 

 

 

全部评论

相关推荐

11-03 14:38
重庆大学 Java
AAA求offer教程:我手都抬起来了又揣裤兜了
点赞 评论 收藏
分享
offer多多的六边形战士很无语:看了你的博客,感觉挺不错的,可以把你的访问量和粉丝数在简历里提一下,闪光点(仅个人意见)
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务