¿Quién puede explicar o traducir el siguiente programa en lenguaje ensamblador de 51 microcontroladores (2)?
INTE: PUSH PSW Después de ingresar a la interrupción, primero proteja la escena
PUSH ACC
JNB P1.7,KE3; si P1.7 es de nivel alto o P1.6 es de nivel bajo, salte a KE3
JNB P1.6, KE3
LCALL D10MS ;Retraso 10 milisegundos
LCALL DISP ;Llamar función de visualización
INC R3 ;R3 incrementa en 1, si ya es 10, luego regresa 0
CJNE R3,#0AH,GO1
MOV R3,#00H
GO1.MOV 32H,R3 ; Reemplace el conjunto P1.7 y P1 .6; a nivel alto o bajo, luego salte a KE3: MOV 32H, R3; almacene R3 y R4 en la memoria 32H y 31H, y luego llame a la función de visualización (supongo que los parámetros de la función de visualización están en el contenido de 31H y 32H)
MOV 31H, R4
LCALL DISP
KC1: JNB P1, continúe esperando; de lo contrario, salte y prepárese para salir de la interrupción. .
LJMP OUT
KE3:JB P1.5,OUT ;Si P1.5 es un salto alto hacia afuera listo para salir de la interrupción, de lo contrario similar a R3, haga un bucle 0~9 en R4 y coloque el resultado en 31H para que use la función DISP
LCALL D10MS
LCALL DISP<
INC R4
CJNE R4,#0AH,GO2
MOV R4,#00H
GO2:MOV 31H,R4
MOV 32H,R3
LCALL DISP
KC2: JNB P1.5, KC2; si P1.5 es de nivel bajo, continúe esperando; de lo contrario, salte y prepárese para salir de la interrupción.
OUT: LCALL D10MS; Prepárese para salir de la interrupción y reanudar la escena
LCALL DISP
POP ACC
POP PSW
p>
RETI ;Regreso de interrupción
END