用单片机:

来源:百度知道 编辑:UC知道 时间:2024/05/20 00:15:52
将片外2000H~2004单元中的一位十六进制数转换成ASCII码,并分别存放到片内20H~24H单元中(要求用调用子程序方法实现)。求程序!

ProteUS仿真调试通过!
要ProteUS文件,留言!
; 将片外2000H~2004单元中的一位十六进制数转换成ASCII码,并分别存放到片内20H~24H单元中
; (要求用调用子程序方法实现)。求程序!

ORG 00H
AJMP _INIT_SYS

_INIT_SYS:
MOV SP,#80H

_MAIN:
MOV DPTR,#2000H ; 2000H - 20004H DATA IS "2AF9BH"
MOV A,#02H ; NUM = NUM + 30
MOVX @DPTR,A ; CHAR = A + 41 - 10

INC DPTR
MOV A,#0AH
MOVX @DPTR,A

INC DPTR
MOV A,#0FH
MOVX @DPTR,A

INC DPTR
MOV A,#09H
MOVX @DPTR,A

INC DPTR
MOV A,#0BH
MOVX @DPTR,A

LCALL _TRANS
AJMP $

_TRANS:
PUSH 0
PUSH 1

MOV R0,#05H
MOV DPTR,#2000H
MOV R1,#20H
_TRANS_LOOP:
MOVX A,@DPTR
CLR C
SUBB A,#0AH
JC _TL_NUM
_TL_CHAR: ; CHAR = CHAR + 41 - 10
ADD A,#41H
MOV @R1,A
AJMP _TL_END_TEST
_TL_NUM: ; NUM = NUM + 30
MOVX A,@DPTR
A