ascii转bcd单片机C语言,单片机 数值转换 X进制转换BCD码、ASCII码 编程

X进制转换BCD码、ASCII码 编程

-个8位二进制数转换为BCD码

在片内RAM 30H单元有-个8位二进制数,将其转换成压缩BCD码,存于片内RAM 41H(高位)40H(低位)中。

(方法:2^8=256,所以8位二进制A<=256,A/100商是百位数,存放到41h单元,余数再除以10,再得商是10位数,高低位互换,)

ORG 0100H

START:

MOV A,30H ;取来8位二进制数

MOV B,#100

DIV AB ;除以100

MOV 41H,A ;商是百位数,存放到41h单元

MOV A,B ;取回余数

MOV B,#10

DIV AB ;再除以10

SWAP A ;商是10位数,高低位互换

ORL A,B

MOV 40H,A ;将十位数与个位位数存入40h

SJMP $

END

一个字节(8位)BCD码转换为二进制数 (方法:先将高半字节乘以10,再加上低半字节)

设待转换的BCD码存放于R2中

DTOB:MOV A,R2

ANL A,#0F0H

SWAP A

MOV B,#0AH

MUL AB

MOV R3,A

MOV A,R2

ANL A,#0FH

ADD A,R3

RET

二进制数转换为ASCII码

设(30H)=4BH,将高4位的ASCII码放在31H单元,低4位的ASCII码放在32H单元,程序具有通用性,向入口参数30H存入任何数,都能将其变成相应的ISCII码.

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:MOV SP,#60H

MOV 30H,#4BH

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值