将一个8位二进制数转换为10进制的单片机程序,越简单越好

2024-12-04 20:06:43
推荐回答(2个)
回答(1):

;51单片机汇编语言
;入口20h一个8位二进制数
;出口21h22h4位10进制bcd码
bcd:mov
21h,#00h
mov
22h,#00h
jnb
20h.7,bcd1
mov
22h,#01h
mov
21h,#28h
bcd1:jnb
20h.6,bcd2
mov
a,#64h
acall
add
bcd2:jnb
20h.5,bcd3
mov
a,#32h
acall
add
bcd3:jnb
20h.4,bcd4
mov
a,#16h
acall
add
bcd4:mov
a,20h
anl
a,#0fh
da
a
acall
add
ret
add:add
a,21h
da
a
mov
21h,a
clr
a
addc
a,22h
mov
22h,a
ret

回答(2):

楼主用的是51单片机吗?如果是楼上的用r2是不能间接寻址的~~
org
0000h
ajmp
main
org
0030h
main:mov
r0,#30h(间接寻址初值)
mov
r1,#40h(间接寻址初值)
mov
r2,#3(转移次数)
loop:mov
a,@r0
da
a(对数据进行bcd码调整)
inc
r0
mov
@r1,a
inc
r1
djnz
r2,loop
sjmp
$
end