|
;想要实现6264扩展时写内容并把与要写的内容不同的最后一个写地址记录下来。
ORG 0030H
MOV R2, #0FFH
MOV R1, #10H
MOV DPTR ,#0A000H
MOV P1 ,#00H
LOOP: MOVX A ,@DPTR
CJNE A ,#03H,LAMP
LOOP1: MOV A ,#03H
MOVX @DPTR ,A
INC DPTR
DJNZ R2,LOOP
DJNZ R1,LOOP
SJMP $
LAMP : PUSH A
PUSH DPH
PUSH DPL
MOV R0,DPH
MOV R3,DPL ;将最后一个地址储存下来
MOV DPTR ,#8000H ;将6264 中的值不同的地址存储到8000H的
MOV A ,R0 ;但是运行后发现结果是储存0A000H中的
MOVX @DPTR ,A
INC DPTR
MOV A ,R3
MOVX @DPTR ,A
MOV A ,P1
ADD A ,#01H
MOV P1, A
ACALL DELAY
POP DPL
POP DPH
POP A
SJMP LOOP1
SOUND: CPL P3.0
ACALL LAMP
SJMP LOOP1
DELAY: MOV R4,#19H
TIME3: MOV R5,#39H
TIME2: MOV R6,#29H
TIME1: DJNZ R6,TIME1
DJNZ R5,TIME2
DJNZ R4,TIME3
RET
END
|
|