单片机编程将累加器A中的二进制数变成BCD码,并将百、十、个位数分别写入内部RAM中的50H、51H、52H中。

2025-01-16 11:12:55
推荐回答(3个)
回答1:

mov b,#10

div ab

mov 50h,a

mov a,b

da a

mov 52h,a

anl 52h,#0fh

swap a

anl a,#0fh

mov 51h,a

end

我只说说方法吧,先mov R0,a;把原数暂存于R0中  

and a,#0fh;  

mov R1,a;低四位保存至R1  

mov a,R0;  

and a,#0f0h;  

swap a;交换高四位与低四位  

此时再把a中的数乘以10再加上R1中保存的数就可以了。只说了大致思路,具体的自己写吧。

回答2:

正确程序如下:
MOV B, #10 ;设定除数.
DIV AB ;相除后,B中是余数.
MOV 52H, B ;余数即为个位数,存到52H
MOV B, #10
DIV AB
MOV 51H, B
MOV 50H, A
SJMP $
END

回答3:

mov b,#10
div ab
mov 50h,a
mov a,b
da a
mov 52h,a
anl 52h,#0fh
swap a
anl a,#0fh
mov 51h,a
end