单片机汇编题11

如题所述

;49题
;程序功能实现将R7中的数转为三位BCD码
;程序入口R7
;程序出口30H,31H,32H
ASBCD:
MOV A,R7
MOV B,#10
DIV AB
MOV 32H,B
MOV B,#10
DIV AB
MOV 31H,B
MOV 30H,A
RET

;50题
;程序功能实现将相应存储单元清零
;程序入口相应要清零单元的
;起始地址DPTR
;清零单元的数量R2
CLSMEM:
CLR A
MOV @DPTR,A
INC DPTR
DJNZ R2,CLSMEM
RET

MAIN:
MOV DPTR,#1000H
MOV R2,#51H
ACALL CLSMEM
SJMP $
END

;51题
;程序功能将外部RAM之间数据的传送
;2000H——20FFH传送到3000H~30FFH
TRANS:
MOV R6,#0FFH
MOV R2,#00H
MOV R3,#20H;暂存2000H地址
MOV R4,#00H
MOV R5,#30H;暂存3000H地址
NEXT:MOV DPL,R2
MOV DPH,R3
MOVX A,@DPTR
MOV DPL,R4
MOV DPH,R5
MOVX @DPTR,A
INC R2
INC R4
DJNZ R6,NEXT
RET

;52题
;意思没明白

;53题
;延迟20MS程序 时钟频率为12MHz时
DELAY20MS:
MOV R7,#40
DD1:MOV R6,#248
DJNZ R6,$
DJNZ R7,DD1
RET

;54题
DELAY1M:
MOV R0,#30
DDD1:MOV R1,#50
DDD2:MOV R2,#40
DDD3:MOV R3,#248
DJNZ R3,$
DJNZ R2,DDD3
DJNZ R1,DDD2
DJNZ R0,DDD1
RET

;55题
MOV R2,21H
DEC R2
MOV A,30H
MOV R0,#31H
LOOP:CLR C
MOV R1,A
SUBB A,@R0
JC NEXT
MOV A,@R0
SJMP NEX2
NEXT:MOV A,R1
NEX2:INC R0
DJNZ R2,LOOP

;56题
;求平均值
;程序入口R2,R3
;程序出口A
DIVDW:
MOV A,R2
ANL A,#0F0H
ADD A,R3
SWAP A
MOV B,#8
DIV AB
MOV R4,A
MOV A,R2
ANL A,#0FH
SWAP A
ADD A,B
SWAP A
MOV B,#8
DIV AB
SWAP A
ADD A,R4
SWAP A
RET
;求和运算
SUM:
MOV R0,#40H
MOV R1,#8
MOV R3,#0
MOV R2,#0;R2,R3保存8个单元和的值
SSU1:
MOV A,R2
ADD A,@R0
MOV R2,A
MOV A,R3
ADDC A,#0
MOV R3,A
INC R0
DJNZ R1,SSU1
RET
;主函数
;本程序求的算术平均值精度不高,如果和是8的倍数则比较准确
MAIN:
LCALL SUM
LCALL Average
MOV 4AH,A
SJMP $
END

;57题
ASCII: DB '0','1','2','3','4','5','6','7','8','9'
DB 'A','B','C','D','E','F'
MOV DPTR,#ASCII
MOV R1,A
ANL A,#0FH
MOVC A,@A+DPTR
MOV 20H,A
MOV A,R1
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
MOV 21H,A

;58题
;程序散转
MOV DPTR,#START
MOV A,R2
ADD A,R2
ADD A,R2
JMP @A+DPTR
START:
LJMP PRG0
LJMP PRG1
LJMP PRG2
....
LJMP PRGN
END
温馨提示:答案为网友推荐,仅供参考
相似回答