有个题目,要求写一个汇编语言的程序,把串口收到的一个字节,以十进制显示。
题目链接: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。
本答案已经经过提问者的验证,并采纳。
--本文完--