Ayúdame a traducir este lenguaje ensamblador de semáforo
; El programa de análisis debe combinarse con el diagrama esquemático para el análisis. Así que proporcione el esquema.
; asume temporalmente que el nivel bajo enciende las luces roja, amarilla y verde.
ORG 00H
INICIO:
MOV R1, #60; coeficiente de retardo de luz roja
MOV R2, #3 luz amarilla; coeficiente de retardo
MOV R3, #30; coeficiente de retardo de luz verde
ROJO: MOV P1, #11111100B; enciende la luz roja
RETRASO DE LLAMADA; la función de retardo
DJNZ R1, ROJO determina el número de ciclos, si R1-1 no es 0, continúa encendiendo la luz roja,
AMARILLO:
MOV P1, #11111010B; enciende la luz amarilla
RETRASO DE LLAMADA; llama a la función de retraso
MOV P1, #11111000B
RETRASO DE LLAMADA; llame a la función de retardo Función
DJNZ R2, AMARILLO; determine el número de ciclos, si R2-1 no es 0, continúe encendiendo la luz amarilla,
VERDE: MOV P1, #11111001B; enciende la luz verde
CALL DELAY; función de retardo de llamada
DJNZ R3, VERDE; determina el número de ciclos. la luz verde,
JMP START Saltar para iniciar y volver a ejecutar
; DELAY es una subfunción de retraso
DELAY:
MOV R5, #6
F3: MOV R6, #0FFH
F2: MOV R7, #0FFH
F1: DJNZ R7, F1 p>
DJNZ R6, F2
DJNZ R5, F3
RET
FIN