Red de conocimiento informático - Conocimiento del nombre de dominio - Programación experimental del principio de microcomputadoras

Programación experimental del principio de microcomputadoras

Puedes consultar un programa de diseño similar y modificar la configuración de los puertos correspondientes.

Diseño detallado:

Escriba un programa de ensamblaje para controlar el estado de los semáforos en cuatro direcciones hasta 8255A. La suposición específica es que el estado del diseño es el siguiente:

1. Primero, el estado inicial es 0. Apague las luces del este, oeste, norte y sur.

2. Luego, después de un período de tiempo, cambia al estado 1, con luces verdes en el este y el oeste y luces rojas en el norte y el sur.

3. Después de un período de tiempo, cambia al estado 2. Las luces este y oeste parpadean en verde varias veces y luego se encienden en amarillo, con un retraso de unos segundos. -La intersección sur todavía está abierta.

4. Cambie nuevamente al estado 3, las luces norte y sur son verdes y las luces este y oeste son rojas.

5. Después de un período de tiempo, cambia al estado 4. La luz verde del norte y del sur parpadea varias veces y se vuelve amarilla. Después de un retraso de unos segundos, las luces del este y del oeste. permanece rojo.

6. Finalmente regresa al estado 1 para continuar el ciclo.

Explicación: (1) De hecho, el parpadeo de la luz amarilla consta de dos estados, como la luz roja norte-sur y la luz amarilla este-oeste encendidas al mismo tiempo, y el norte -luz roja sur y luz amarilla este-oeste apagadas al mismo tiempo. Por tanto, el puerto 1 tiene siete grupos de estados.

Dirección este-oeste: PA0 luz roja; PA1 luz amarilla; PA3 luz verde;

Dirección norte-sur: PA4 luz amarilla; PA5 luz verde;

p>

( 2) El LED de dos colores se empaqueta junto con un chip de LED rojo y un chip de LED verde, con un terminal negativo común. Cuando el terminal rojo se lleva a un nivel alto y el terminal positivo verde se lleva a un nivel bajo, la luz roja se enciende cuando el terminal rojo se lleva a un nivel bajo y el terminal positivo verde se lleva a un nivel alto; la luz verde se enciende; cuando ambos extremos se conducen a un nivel alto, la luz amarilla se enciende.

Código fuente

SEGMENTO DE DATOS

TIME1 EQO 10

TIME2 EQO 600

OUT_CODE DB 14H, 5 DUP(12H, 10H), 41H, 5 DUP(21H, 01H), 0

EXTREMOS DE DATOS

SEGMENTO DE CÓDIGO

ASUME CS: CÓDIGO, DS: DATOS

INICIO: MOV AX, DATA

MOV DS, AX

MOV DX, 307H; dirección de puerto de palabra de control envía DX

MOV AL, 80H; palabra de modo de envío

OUT DX, AL

MOV DX, 304H; la salida del puerto A envía DX

LPPO0: LEA SI. OUT_CODE; segmento de datos

LPPO1: MOV AL, [SI]

AND AL, AL; CF establecido en cero

JZ LOOP0

OUT DX, AL

INC SI

MOV CX, TIME1; retardo corto

TEST AL, 44H; ¿la palabra del código de prueba es 14H o 41H?

JZ DELAY1; Ninguno

MOV CX, TIME2; Retraso largo

DELAY1: PUSH CX; programa de retardo

PUSH AX

MOV CX, 0040H

A1: MOV AX, 056CH

A2: DEC AX

JNZ A2

BUCLE A1

POP AX

POP CX

LOOP DELAY1

MOV AH, 0BH detecta si hay entrada de teclado

<; p>INT 21H

AND AL, AL

JZ LOOP1

XOR AL, AL apaga la luz y sale

OUT; DX , AL

MOV AH, 4CH; Regresar al sistema DOS

INT 21H

FIN DEL CÓDIGO

INICIO FINAL

Resultados de la ejecución del programa

El estado inicial es que todas las luces están apagadas en el este, oeste, norte y sur. Después de un tiempo, los semáforos de este a oeste se vuelven verdes, mientras que los semáforos de norte a sur permanecen en rojo. Después de un rato, las luces amarillas del este y del oeste comenzaron a parpadear 5 veces, y las luces del norte y del sur todavía estaban rojas. Luego se enciende la luz roja de este a oeste y la luz de norte a sur se vuelve verde al mismo tiempo. De manera similar, después de un período de tiempo, las luces amarillas del norte y del sur parpadean 5 veces y las luces del este y del oeste son rojas. Luego regrese a la luz verde de este a oeste, a la luz roja de norte a sur, y así sucesivamente.