Red de conocimiento informático - Conocimiento informático - Ayúdame a traducir este lenguaje ensamblador de semáforo

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

DJNZ R6, F2

DJNZ R5, F3

RET

FIN