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

 我来答
创作者tF6aHTMtQU
2019-10-02 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.5万
采纳率:32%
帮助的人:1097万
展开全部
这程序也写的太复杂了!既然51单片机有div指令,并且只是把a中的数字转变为bcd,那就用div直接运算:
mov
a,#0fdh
mov
b,#100
div
ab
mov
50h,a
mov
a,b
mob
b,#10
div
ab
mov
51h,a
mov
52h,b
计算完成,这样50h就是百位数,51h是十位数,52h是个位数
创作者5ToEqhk6fn
2019-09-21 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.5万
采纳率:33%
帮助的人:725万
展开全部
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中保存的数就可以了。只说了大致思路,具体的自己写吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者a5KNuBUJhZ
2019-10-11 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.5万
采纳率:25%
帮助的人:907万
展开全部
正确程序如下:
MOV
B,
#10
;设定除数.
DIV
AB
;相除后,B中是余数.
MOV
52H,
B
;余数即为个位数,存到52H
MOV
B,
#10
DIV
AB
MOV
51H,
B
MOV
50H,
A
SJMP
$
END
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式