
单片机小的编程,编了下不知道对不对!望大家指正谢谢!
将内部RAM中30H~37H单元的16个拼装4位二进制数0~F转换成ASCⅡ码,并存入内部数据RAM以40H为首地址的区域中。例如:转换前:地址:30H31H32H33H...
将内部RAM中30H~37H单元的16个拼装4位二进制数0~F转换成ASCⅡ码,并存入内部数据RAM以40H为首地址的区域中。
例如:转换前: 地址:30H 31H 32H 33H 34H 35H 36H 37H
数据:01H 23H 45H 67H 89H 0ABH 0CDH 0EFH
转换后:
地址:40H 41H 42H 43H 44H 45H 46H 47H 48H 49H 4AH 4BH 4CH 4DH 4EH 4FH
数据:30H 31H 32H 33H 34H 35H 36H 37H 38H 39H 41H 42H 43H 44H 45H 46H
ORG 0000H
SJMP MAIN
ORG 0050H
MAIN: MOV R2, #8
MOV R0,#20H
MOV R1,#30H
MOV DPTR, #ASCTB
LOOP:MOV A, @R0
ANL A, #0F0H
SWAP A
ACALL TRANS
MOV A, @R0
ANL A, #0F0H
ACALL TRANS
INC R0
DJNZ R2, LOOP
SJMP $
TRANS: MOVC A, @A+DPTR
MOV @R1, A
INC R1
RET
ASCTB: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H
DB 41H,42H,43H,44H,45H,46H
END 展开
例如:转换前: 地址:30H 31H 32H 33H 34H 35H 36H 37H
数据:01H 23H 45H 67H 89H 0ABH 0CDH 0EFH
转换后:
地址:40H 41H 42H 43H 44H 45H 46H 47H 48H 49H 4AH 4BH 4CH 4DH 4EH 4FH
数据:30H 31H 32H 33H 34H 35H 36H 37H 38H 39H 41H 42H 43H 44H 45H 46H
ORG 0000H
SJMP MAIN
ORG 0050H
MAIN: MOV R2, #8
MOV R0,#20H
MOV R1,#30H
MOV DPTR, #ASCTB
LOOP:MOV A, @R0
ANL A, #0F0H
SWAP A
ACALL TRANS
MOV A, @R0
ANL A, #0F0H
ACALL TRANS
INC R0
DJNZ R2, LOOP
SJMP $
TRANS: MOVC A, @A+DPTR
MOV @R1, A
INC R1
RET
ASCTB: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H
DB 41H,42H,43H,44H,45H,46H
END 展开
2个回答
展开全部
修改了错误,增加了原始数据,如下所示。
ORG 0000H
SJMP MAIN
ORG 0050H
MAIN:
;01H 23H 45H 67H 89H 0ABH 0CDH 0EFH
MOV 30H, #01H
MOV 31H, #23H
MOV 32H, #45H
MOV 33H, #67H
MOV 34H, #89H
MOV 35H, #0ABH
MOV 36H, #0CDH
MOV 37H, #0EFH
MOV R2, #8
MOV R0, #30H ;是30,不是20
MOV R1, #40H ;是40, 不是30
MOV DPTR, #ASCTB
LOOP:
MOV A, @R0
ANL A, #0F0H
SWAP A
ACALL TRANS
MOV A, @R0
ANL A, #0FH ;是0F,不是F0
ACALL TRANS
INC R0
DJNZ R2, LOOP
SJMP $
TRANS:
MOVC A, @A+DPTR
MOV @R1, A
INC R1
RET
ASCTB: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H
DB 41H,42H,43H,44H,45H,46H
END
ORG 0000H
SJMP MAIN
ORG 0050H
MAIN:
;01H 23H 45H 67H 89H 0ABH 0CDH 0EFH
MOV 30H, #01H
MOV 31H, #23H
MOV 32H, #45H
MOV 33H, #67H
MOV 34H, #89H
MOV 35H, #0ABH
MOV 36H, #0CDH
MOV 37H, #0EFH
MOV R2, #8
MOV R0, #30H ;是30,不是20
MOV R1, #40H ;是40, 不是30
MOV DPTR, #ASCTB
LOOP:
MOV A, @R0
ANL A, #0F0H
SWAP A
ACALL TRANS
MOV A, @R0
ANL A, #0FH ;是0F,不是F0
ACALL TRANS
INC R0
DJNZ R2, LOOP
SJMP $
TRANS:
MOVC A, @A+DPTR
MOV @R1, A
INC R1
RET
ASCTB: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H
DB 41H,42H,43H,44H,45H,46H
END
展开全部
修改了错误,增加了原始数据,如下所示。
ORG
0000H
SJMP
MAIN
ORG
0050H
MAIN:
;01H
23H
45H
67H
89H
0ABH
0CDH
0EFH
MOV
30H,
#01H
MOV
31H,
#23H
MOV
32H,
#45H
MOV
33H,
#67H
MOV
34H,
#89H
MOV
35H,
#0ABH
MOV
36H,
#0CDH
MOV
37H,
#0EFH
MOV
R2,
#8
MOV
R0,
#30H
;是30,不是20
MOV
R1,
#40H
;是40,
不是30
MOV
DPTR,
#ASCTB
LOOP:
MOV
A,
@R0
ANL
A,
#0F0H
SWAP
A
ACALL
TRANS
MOV
A,
@R0
ANL
A,
#0FH
;是0F,不是F0
ACALL
TRANS
INC
R0
DJNZ
R2,
LOOP
SJMP
$
TRANS:
MOVC
A,
@A+DPTR
MOV
@R1,
A
INC
R1
RET
ASCTB:
DB
30H,31H,32H,33H,34H,35H,36H,37H,38H,39H
DB
41H,42H,43H,44H,45H,46H
END
ORG
0000H
SJMP
MAIN
ORG
0050H
MAIN:
;01H
23H
45H
67H
89H
0ABH
0CDH
0EFH
MOV
30H,
#01H
MOV
31H,
#23H
MOV
32H,
#45H
MOV
33H,
#67H
MOV
34H,
#89H
MOV
35H,
#0ABH
MOV
36H,
#0CDH
MOV
37H,
#0EFH
MOV
R2,
#8
MOV
R0,
#30H
;是30,不是20
MOV
R1,
#40H
;是40,
不是30
MOV
DPTR,
#ASCTB
LOOP:
MOV
A,
@R0
ANL
A,
#0F0H
SWAP
A
ACALL
TRANS
MOV
A,
@R0
ANL
A,
#0FH
;是0F,不是F0
ACALL
TRANS
INC
R0
DJNZ
R2,
LOOP
SJMP
$
TRANS:
MOVC
A,
@A+DPTR
MOV
@R1,
A
INC
R1
RET
ASCTB:
DB
30H,31H,32H,33H,34H,35H,36H,37H,38H,39H
DB
41H,42H,43H,44H,45H,46H
END
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询