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 este-oeste es verde y la luz norte-sur es roja. 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 pasa al estado 1.
2. El LED bicolor 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, intermitente; luz amarilla, luz roja en el este y oeste
ESTADO DE LLAMADA3; luz roja en el norte y sur, luz verde Este-Oeste
ESTADO DE LLAMADA Norte-Sur, luz roja, Este; -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 Segundos
LCALL DELAY
RET
ESTADO1: ;Luz verde norte-sur, luz roja este-oeste
MOV DPTR,#08300H
MOV A, #5AH; luces verdes norte y sur, luces rojas este y oeste
MOVX @DPTR,A
MOV R2, #50 Retraso 5 segundos
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
FLASH: MOV A,#5FH
MOV p>
RETARDO DE LLAMADA LC
MOV A,#5AH
MOVX @DPTR,A
MOV R2,#03H
RETARDO DE LLAMADA LC
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 norte y sur, luces verdes 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 LLAMADA LC
MOV A,#0A5H
MOVX @DPTR,A
MOV R2,#03H
RETARDO 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
LCALL DELAY
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