Respuestas a preguntas sobre el lenguaje de programación de microcontroladores
Inicio AJMP
ORG 000BH
AJMP INT0
Inicio: MOV TMOD, #10H
SETB Electronic Arts
SETB ET0
MOV TH0, #B1H
MOV TL0, #E0H Valor inicial de retardo de 40 milisegundos
MOV R0, #01H; R0 es el valor inicial, utilizado para marcar a quién se le debe asignar el temporizador en la interrupción (nivel alto y nivel bajo).
SETB p 1.7; nivel alto de salida inicial
SETB TR0
Aquí: SJPM aquí; esperando interrupción
INT0: MOV A , R0
JNZ Alto
SETB P1.7
MOV TH0, #0B1H
MOV TL0, #0E0H
SETB TR0
INC R0
El siguiente es SJMP
Alto: CLR P1.7
MOV TH0, #0B9H
MOV TL0, #B0H Valor inicial de retraso de 36 milisegundos
SETB TR0
INC R0
CJNE R0, #11, siguiente; Borre R0 después de diez retrasos de 36 MS.
CLR R0
Siguiente: RETI
Lo ves por ti mismo, ¿verdad?
Si usas dos temporizadores (un temporizador está alto nivel para un período de tiempo o un nivel de tiempo alto y un nivel de tiempo bajo), se puede omitir R0 y el programa será más simple.