¡Urgente! ¿Cuáles son las direcciones de entrada PA, PB y PC del 8255? Relación con las palabras de control
Ya que modificaste la pregunta y dijiste que querías usarla para controlar los semáforos, entonces te daré un uso para controlar los semáforos. . En términos generales, los semáforos tienen un tubo digital para la cuenta regresiva, pero estamos hablando de usar los 4 bits inferiores de PB y el puerto de la PC para controlar el semáforo, por lo que no hay necesidad de un tubo digital más que un tubo digital.
Hay instrucciones en el tubo digital. Te daré un nuevo programa cuando tenga tiempo.
El programa es el siguiente
;************. ******* *******************;
;* Semáforos en las intersecciones*;
;* Configuración para cada luz de puerto:*;
;* 1 rojo 1 amarillo 1 verde 0 0 2 rojo 2 amarillo 2 verde*;
;********** ******** *******************;
Segmento de datos
io8255a equ 28ah
io8255b equ 28bh
portc1 db 24h, 44h, 04h, 44h, 04h, 44h, 04h puede haber seis luces
db 81h, 82h, 80h, 82h; , 82h, 80h, 82h, 80h; estado Datos
db 0ffh; Bandera de fin
Fin de datos
Segmento de código
Suponer cs: código, ds: datos
inicio:
mov ax, datos
mov ds, ax
mov dx, io8255b
mov al, 90h
out dx, al; configuración del 8255 como salida del puerto C
mov dx, io8255a
re_on: mov bx, 0
on : mov al, portc1[bx]
cmp al, 0ffh
jz re_on
out dx, al ; enciende la luz correspondiente
inc bx
mov cx, 200; parámetros de inicialización
prueba al, 21h si hay una luz verde
jz de1; no, retraso corto
mov cx, 2000 sí, retraso largo
de1: mov di, 9000; p>de0: dec di; menos 1 conteo
jnz de0; di no 0
bucle de1
push dx
mov ah , 06h
mov dl, 0ffh
int 21h
pop dx
jz on; no, ve a on
salir: mov ah, 4ch; retorno
int 21h
Fin del código
fin inicio