Como se muestra en la imagen, quiero usar el lenguaje ensamblador del microcontrolador para escribir un programa de interrupción. El requisito es que la luz LED se inicialice a un estado apagado. Cuando se presiona el botón, la luz se enciende durante un segundo. y se apaga por un segundo.
LED BIT P1.0
LLAVE1 BIT P2.0
LLAVE2 BIT P2.4
ORG 0000H; p>
INICIO LJMP
ORG 000BH
Interrupción del temporizador LJMP0
INICIO:
MOV SP, #60H
MOV R2, #20
LED SETB
SETB KEY1
CLR KEY2
CLR TR0
LCALL InitTimer0
LOOP:; ¡agrega tu código aquí!
JNB KEY1, $
DELAY10MS
JB KEY1,$
CPL TR0
JNB TR0,D1
LED CLR
MOV TH0, #3CH 50MS
MOV TL0, #0B0H
BUCLE LJMP
D1:
LED SETB
BUCLE LJMP
InitTimer0:
MOV TMOD, # 01H
MOV TH0, #3CH
MOV TL0, #0B0H
SETB EA
SETB ET0 RET
Interrupción del temporizador:
PUSH DPH
PUSH DPL
PUSH ACC
MOV TH0, #3CH
MOV TL0, #0B0H
;=========================
;¡agrega tu código aquí!
DJNZ R2, FH
MOV R2, #0B0H
MOV R2, #20
CP 20
LED CPL
FH:
========================
POP ACC
POP DPL
POP DPH
RETI
DELAY10MS:; error 0us
MOV R7 , #01H
DL1:
MOV R6, #26H
DL0:
MOV R5, #82H
DJNZ R5, $
DJNZ R6, DL0
DJNZ R7, DL1
RET
END