calculando la dirección del puerto desde la dirección base en 8255

0

si el 8255A tiene una dirección base de FFF9H. Entonces, ¿cómo calcularé la dirección de los registros PORT A, B, C y control?

He hecho un cálculo como el siguiente. agregando 1 cada vez con la dirección base para generar el resto de otros:

PORT A:FFFAH
PORT B:FFFBH
PORT C:FFFCH
Control register: FFFDH

¿está bien el proceso o he cometido algún error en el cálculo?

    
pregunta user6216509

2 respuestas

1

Por lo general, su dirección base será un múltiplo del número de direcciones utilizadas por su dispositivo (en su caso 4).
Aunque es posible encontrar una forma de tener la base en cualquier dirección, esto sería poco común y requeriría una lógica de decodificación de dirección adicional en lugar de simplemente conectar los 2 bits inferiores de su bus de dirección directamente al 8255.

Entonces, lo que esto significa es que su dirección base debe tener sus 2 bits más bajos como 0, lo que conduce a, en su caso FFF8h.
Con una dirección base de FFF8h:
 - PortA estará en FFF8h
 - PortB estará en FFF9h
 - PortC estará en FFFAh
 - El control estará en FFFBh

Si decide implementar la lógica adicional para obtener una dirección base de FFF9h, entonces esta será la dirección de PortA, con B, C & Controle el siguiente formulario allí (asumiendo que no hace nada más 'interesante' con las líneas de dirección).

    
respondido por el brhans
1
  

en el libro, el ans es el siguiente: FFF9, FFFB, FFFD, FFFF, para PORT   A, B, C y control

Esto es lo que puede esperar de un sistema con un bus de datos de 16 bits. El 8255 solo tiene 8 líneas de datos, que se conectarán a las 8 líneas de datos de la CPU inferior o superior. Si la CPU tiene 'finalización reducida', se accede al byte de datos superior (bits 15-8) en direcciones impares.

Como la línea de dirección A0 selecciona el byte inferior o superior en el bus de datos, siempre debe ser alto (para el byte superior) o bajo (para el byte inferior) y no se puede usar para direccionar registros en el 8255. Si use A1 y A2 para el direccionamiento de registros y el bus de datos 8255 conectado a D15-8, luego obtendrá las direcciones de puerto en su libro.

    
respondido por el Bruce Abbott

Lea otras preguntas en las etiquetas