51单片机串行接收并显示

有个题目,要求写一个汇编语言的程序,把串口收到的一个字节,以十进制显示。

题目链接:http://zhidao.baidu.com/question/2139761066572566628

做而论道回答如下:

可以重新编写。

    ORG   0000H
    JMP   MAIN
MAIN:
    MOV   SCON, #50H
    MOV   TMOD, #20H
    MOV   TH1, #0FDH
    SETB  TR1

    MOV   DPTR, #TAB
    MOV   P2, #0

    MOV   R2, #0
    MOV   R3, #0
    MOV   R4, #0
LOOP:
    JNB   RI, DISP
    CLR   RI
    MOV   A, SBUF
    MOV   B, #100
    DIV   AB
    MOV   R2, A
    MOV   A, B
    MOV   B, #10
    DIV   AB
    MOV   R3, A
    MOV   R4, B
DISP:
    MOV   A, R2
    MOVC  A, @A + DPTR
    MOV   P0, A
    SETB  P2.0
    DJNZ  R7, $
    DJNZ  R7, $
    CLR   P2.0

    MOV   A, R3
    MOVC  A, @A + DPTR
    MOV   P0, A
    SETB  P2.1
    DJNZ  R7, $
    DJNZ  R7, $
    CLR   P2.1

    MOV   A, R4
    MOVC  A, @A + DPTR
    MOV   P0, A
    SETB  P2.2
    DJNZ  R7, $
    DJNZ  R7, $
    CLR   P2.2

    SJMP  LOOP
TAB:
    DB   0xC0, 0xF9, 0xA4, 0xB0, 0x99
    DB   0x92, 0x82, 0xF8, 0x80, 0x90
END

用 PROTEUS 仿真调试截图如下:

键入符号 A,数码管上就显示出来 A 的 ASCII 码值 65。
键入 z,就显示 122。

本答案已经经过提问者的验证,并采纳。

--本文完--

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值