51单片机二进制转bcd码c语言,二进制整数转换为BCD码51汇编语言子程序

【单字节二进制整数转换为BCD码子程序】

;;入口:(A)= 二进制整数,

;;出口:(R0)= 存放BCD码的RAM首址指针。

BINtoBCD1:

MOV        B,        #100

DIV   AB                ;;A←百倍数, B←余数

MOV   @R0        A     ;;RAM←百位数

INC   R0          ;;RAM指针加1

MOV        A,    #10

XCH   A,        B     ;;A←余数, B←#10

DIV   AB          ;;A←十位数,B←个位数

SWAP  A           ;;十位数高低半字节互换

ADD   A,        B     ;;A←合成得BCD码

MOV   R0,        A     ;;RAM←转换结果

【多个字节二进制整数转换为BCD码子程序】

;;入口:BIN_P是二进制数末字节地址指针,N是待转换的字节数,

;;出口:BCD_P是BCD码个位数地址指针。

BINtoBCDn:

MOV   R1,   BCD_P

MOV   R2,   N

INC   R2

CLR   A

BB0:

MOV        @R1,        A

INC        R1

DJNZ  R2,        BB0

MOV   A,        N

MOV   B,        #8

MUL   AB

MOV   R3,        A

BB3:

MOV        R0,        BIN_P

ACALL BINtoBCD1        ;;调用转换单字节转换子程序

MOV   R2,        N

CLR   C

BB1:

MOV        A,        @R0

RLC   A

MOV   @R0,        A

INC        R0

DJNZ  R2,        BB1

MOV        R2,        N

INC        R2

MOV        R1,        BCD_P

BB2:

MOV        A,        @R1

ADDC        A,        @R1

DA        A

MOV        @R1,        A

INC   R1

DJNZ        R2,        BB2

DJNZ  R3,        BB3

RET

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值