R0中的8位二进制数转换成3位BCD码 -单片机编程

来源:互联网 发布:bbc纪录片 知乎 编辑:程序博客网 时间:2024/05/22 23:44

单片机的不难编程题!急!!!!!!

将R0中的8位二进制数转换成3位BCD码,结果存入外部RAM的1002H~1000H(从高位到低位)单元中。

例如:开始时,R0 中的数据是:81H 即 (129)10;程序执行后,外部 RAM:
     地址  内容
    1002H  01H
    1001H  02H
    1000H  09H

悬赏分:15 - 解决时间:2009-10-15 19:10
提问者: stefine_ - 一级
;-----------------------------------------------------
最佳答案:

呵呵,楼上的程序,使用了DEC DPTR,要知道,51单片机指令系统里面,是没有DEC DPTR指令的。

按照下面的思路做,还可以再简练些。

   MOV   DPTR, #1000H    ;个位的地址
    MOV   A,   R0
    MOV   B,   #10
    DIV   AB
    XCH   A,   B
    MOVX  @DPTR, A
    INC   DPTR
    MOV   A,   #10
    XCH   A,   B
    DIV   AB
    XCH   A,   B
    MOVX  @DPTR, A
    INC   DPTR
    XCH   A,   B
    MOVX  @DPTR, A
    RET

仅用了24字节。
;-------------------------------------------------------
回答者:   做而论道 - 八级   2009-10-15 19:02
提问者对于答案的评价:谢谢
原文网址:http://zhidao.baidu.com/question/121520777.html
;-------------------------------------------------------

 

0 0