Programa de ensamblaje del microcontrolador AT89C51
P1.1 está conectado al LED y se enciende cuando la salida es de nivel bajo.
ORG 0000H
LOOP:
SETB P1.0; establecido en estado de entrada.
SETB P1.1 ;Apagar LED
JNB P1.0, $ ;Cambio cuando esté bajo.
CALL DL10ms; hay un ligero retraso cuando el nivel es alto.
JNB P1.0, LOOP; si es de nivel bajo, es interferencia, muévase al frente.
CLR P1.1 ;Enciende la luz
LLAMADA DL10S
JMP LOOP ;Continúa comprobando el sensor.
;------------------------------------------ --- ------------
DL10ms:
MOV R6, #20
MOV R7, #250 p>
DJNZ R7, $
DJNZ R6, $ - 2
RET
;------------ --- ---------------------------------------
DL1 : p>
MOV R5, #100
D1:LLAMADA DL10ms
DJNZ R5, D1
RET
;-- ----------------------------------------------- --- --
DL10s:
MOV R4, #10
D2: LLAMADA DL1s
DJNZ R4, D2 p>
RET
;------------------------------------ ------ ---------------
FIN