Colección de citas famosas - Colección de máximas - Diseño del programa de control de semáforos

Diseño del programa de control de semáforos

Experimento de E/S simple (control de semáforo)

1. Requisitos experimentales

Utilice 74LS273 como puerto de salida para controlar 4 luces LED bicolores ( puede enviar luz roja, verde, amarilla), gestión de semáforo simulada.

2. Fines experimentales

1. Aprenda a ampliar interfaces de E/S simples en sistemas informáticos de un solo chip.

2. Aprenda a diseñar programas de salida de datos.

3. Aprende a simular el control de un semáforo.

4. Aprende a utilizar luces de dos colores.

3. Circuito experimental y conexión

4. Descripción del experimento

1. Debido a que este experimento es un experimento de control de semáforo, primero debes comprender el tráfico real. patrones de cambio de luz. Supongamos que una intersección corre de este a oeste y de norte a sur. El estado inicial 0 son luces rojas en el este y oeste y luces rojas en el norte y sur. Luego cambie al estado 1, donde las luces norte y sur son verdes y las luces este y oeste son rojas. Después de un rato, cambia al estado 2. Las luces norte y sur parpadean en verde varias veces y luego se vuelven amarillas. Después de un retraso de unos segundos, las luces este y oeste permanecen en rojo. Luego cambie al estado 3, la luz verde de este a oeste está abierta al tráfico y la luz de norte a sur está en rojo. Después de un período de tiempo, cambia al estado 4, las luces este y oeste parpadean en verde varias veces y se vuelven amarillas, con un retraso de unos segundos, y las luces norte y sur permanecen rojas. Finalmente pase al estado 1.

2. El LED de dos colores está empaquetado junto con un chip de LED rojo y un chip de LED verde, con un terminal negativo común. Cuando el terminal positivo rojo agrega un nivel alto y el terminal positivo verde agrega un nivel bajo, la luz roja se enciende cuando el terminal positivo rojo agrega un nivel bajo y el terminal positivo verde agrega un nivel alto, la luz verde se enciende cuando ambos extremos suman; Nivel alto, la luz amarilla se enciende.

5. Diagrama de bloques del programa experimental

Diagrama de bloques del programa:

Código fuente:

ORG 0000H

LJMP INICIO

ORG 0040H

INICIO:

MOV SP,#60H

LCALL STATUS0 ;Estado inicial (todas las luces rojas)

p>

CÍRCULO: LCALL STATUS1; luz verde en el norte y sur, luz roja en el este y oeste

LCALL STATUS2; luz verde en el norte y sur parpadeando hacia luz amarilla, roja en el este y oeste

ESTADO DE LLAMADA3; luz roja en el norte y sur, luz verde Este-Oeste

ESTADO DE LLAMADA LC4; Luz verde oeste parpadeando a amarilla

CÍRCULO LJMP

ESTADO0: ;luz roja norte-sur, luz roja este-oeste

p>

MOV DPTR ,#8300H

MOV A,#0FH

MOVX @DPTR,A

MOV R2,#10 ;Retraso 1 segundo

LCALL DELAY

RET

ESTADO1: ;Luz verde norte-sur, luz roja este-oeste

MOV DPTR,#08300H

MOV A, #5AH; luz verde en el norte y sur, luz roja en el este y oeste

MOVX @DPTR,A

MOV R2, #50;

LCALL DELAY

RET

ESTADO2: ; las luces verdes del norte y del sur parpadean a las luces amarillas, del este y del oeste

MOV DPTR , #8300H

MOV R3,#03H; la luz verde parpadea 3 veces

FLASH: MOV A,#5FH

MOVX @DPTR,A

MOV R2,#03H

p>

RETARDO DE LLAMADA

MOV A,#5AH

MOVX @DPTR,A

MOV R2,#03H

RETARDO DE LLAMADA

DJNZ R3,FLASH

MOV A,#0AH ;Luz amarilla norte-sur, luz roja este-oeste

MOVX @DPTR,A

MOV R2,#10 ;Retraso 1 segundo

LCALL DELAY

RET

ESTADO3: ;Luces rojas en el norte y sur, luces verdes en el este y oeste

MOV DPTR,#8300H

MOV A,#0A5H

MOVX @DPTR,A

MOV R2,#50 ;Retraso 5 segundos

p>

RETARDO DE LLAMADA

RET

ESTADO4: ;Las luces rojas del norte y del sur, las luces verdes del este y del oeste parpadean hasta convertirse en luces amarillas

MOV DPTR,#8300H

MOV R3,#03H La luz verde parpadea 3 veces

;

FLASH1: MOV A,#0AFH

MOVX @DPTR,A

MOV R2, #03H

RETARDO DE LLAMADA LC

MOV A,#0A5H

MOVX @DPTR,A

MOV R2,#03H

RETARDO DE LLAMADA LC

DJNZ R3,FLASH1

MOV A,#05H ;Luces rojas norte y sur, luces amarillas este y oeste

MOVX @DPTR,A

MOV R2,#10 ;Retraso 1 segundo

RETARDO DE LLAMADA

NOP

R

ET

DELAY: ;Retardo subrutina

PUSH 2

PUSH 1

PUSH 0

DELAY1 : MOV 1,#00H

DELAY2: MOV 0,#0B2H

DJNZ 0,$

DJNZ 1,DELAY2 ; >DJNZ 2,DELAY1

POP 0

POP 1

POP 2

RET

FIN