tangjiaqq 发表于 2014-10-30 19:56:04

51单片机控制大1302的数据转换

怎么把BCD码转换成10进制,不会求指导!

amazing030 发表于 2014-10-30 20:02:59

这个……把这个数用数码管显示出来,然后电脑摄像头装一套类似扫车牌的软件,把扫到的数据输入电脑上的计算器,转换下就知道了,嘿嘿,不谢

tangjiaqq 发表于 2014-10-30 20:08:50

amazing030 发表于 2014-10-30 20:02
这个……把这个数用数码管显示出来,然后电脑摄像头装一套类似扫车牌的软件,把扫到的数据输入电脑上的计算 ...

貌似你说的太高深了吧

gujiamao_love 发表于 2014-10-30 20:17:25

tangjiaqq 发表于 2014-10-30 20:08
貌似你说的太高深了吧

弱弱的问句,是不是就是十六进制转十进制。

dz20062008 发表于 2014-10-30 20:33:47

本帖最后由 dz20062008 于 2014-10-30 20:40 编辑

很简单的,用16进制的数除以100的商就是十进制的百位,在用余数除以10就是十位,剩余的余就各位了。

汇编代码如下:
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
         PUSH ACC
         PUSH B
         MOV A,R4
         MOV B,#100D
         DIV AB
         MOV 10H,A
         MOV A,#10D
         XCH A,B
         DIV AB
         MOV 11H,A
         MOV 12H,B
         POP B
         POP ACC
         RET
   
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

10H存储的就是百位,11H就是十位,12H就是个位。

R88 发表于 2014-10-30 20:37:18

BCD码是四位的,那秒寄存器来说,假如存入a=45,则需要的运算如下:
i1=45/10=4
i2=45%10=5
则存入i3=4*16+5=69,对应的BCD码是0100 0101;当读出时需要的运算如下:
i1=69/16=4
i2=69%16=5
a=4*10+5=45

黑夜之狼 发表于 2014-10-31 09:20:10

度娘上多得是,自己拿起笔算算就明白了

tangjiaqq 发表于 2014-10-31 14:26:42

R88 发表于 2014-10-30 20:37
BCD码是四位的,那秒寄存器来说,假如存入a=45,则需要的运算如下:
i1=45/10=4
i2=45%10=5


谢谢   知道怎么回事了

tangjiaqq 发表于 2014-10-31 14:27:19

dz20062008 发表于 2014-10-30 20:33
很简单的,用16进制的数除以100的商就是十进制的百位,在用余数除以10就是十位,剩余的余就各位了。

汇编 ...

十分感谢汇编没怎么学勉强看的懂
页: [1]
查看完整版本: 51单片机控制大1302的数据转换