Vous êtes sur la page 1sur 29

Caractersticas

Posee 40 terminales:
8 Bus de Datos
Read
Write
Chip Enable
2 Selector de Registros
Vcc
Gnd
Reset
24 son de entrada/salida
Se pueden programar
individualmente en 2 grupos de
12 y en 3 modos de operacin.
3 Modos de funcionamiento:
-Modo 0 (E/S programada)
Se utilizan los puertos como registros para
leer y escribir
-Modo 1(E/S por interrupciones)
Utiliza el protocolo Handshake
-Modo 2 (E/S bidireccional)
Es bidireccional, como un doble modo 1



Dispone de tres puertos de E/S (A, B y C):
Dos puertos de tamao byte (A y B)
Uno de tamao 2x4 bits (C)

Los 3 puertos se programan en 2 grupos:
El grupo A est formado por el puerto A y la
parte alta por el puerto C
El grupo B esta formado por el puerto B y la
parte baja del puerto C

Puerto A(8 bits) D4

Puerto B(8 bits) D1

Puerto C alto(4 bits) D3

Puerto C bajo(4 bits) D0

Se le asigna operacin de entrada y salida a
cada uno de los 3 puertos
Los datos se escriben o leen de un puerto
especfico.
Definicin funcional:
Se tiene 2 puertos de 8 bits y 2 de 4 bits
Cualquier puerto puede ser entrada o salida
Las salidas tienen LATCH
Las entradas no tienen LATCH
Hay 16 posibles configuraciones de
entrada/salida en este modo.
La transferencia de datos de E/S hacia o de puertos
especficos se realiza con seales de control o de
Handshaking(apretn de manos). Es un modo de
transferencia controlada.

Handshaking es un proceso automatizado de
negociacin que establece de forma dinmica los
parmetros de un canal de comunicaciones
establecido entre dos entidades antes de que
comience la comunicacin normal por el canal. De
ello se desprende la creacin fsica del canal y
precede a la transferencia de informacin normal.
En esta configuracin se utilizan los bits del puerto C
como seales de protocolo o control, para transmitir o
recibir datos a travs de los puertos de ocho bits (A y B)

Caractersticas:
Se tienen 2 grupos (grupos A y B).
Cada grupo contiene 8 bits de puerto de datos y 4
bits de puerto de control/datos.
Cada puerto de datos de 8 bits puede usarse como
entrada o como salida independiente.
Tanto las entradas como las salidas se latchean.
El puerto de 4 bits se usa para control y status del
puerto de datos de 8 bits.
El puerto A (8 bits) se configura como entrada
o salida con el bit D4 del registro de control.

El puerto B (8 bits) se configura como entrada
o salida con el bit D1 del registro de control.

El puerto C contiene las seales del control

STB(Strobe Input): Un nivel bajo en esta entrada, indica que
hay un dato disponible en el puerto A (carga los datos en el
latch de entrada).

IBF(Input Buffer Full F/F): Un nivel alto en esta salida indica
que el dato ya ha sido cargado en el registro del puerto A
(que el dato ya fue cargado en el latch de entrada). IBF se
pone en alto por un nivel bajo en STB (el dispositivo externo
de confirmacion) y se pone en bajo debido al flanco positivo
de la entrada RD(Dato ledo por la CPU).

INTR(Pedido de Interrupcin): Un nivel alto en esta salida se
puede usar para interrumpir al P. INTR se pone en alto
cuando STB esta en 1, IBF est en 1 e INTE esta en 1. Se pone
en 0 con el flanco negativo de RD.
Seales de protocolo cuando el puerto esta configurado
como salida

OBF(output buffer full): Esta lnea de salida se pone en
cero(activa en bajo) para indicarle al dispositivo que el
CPU ha escrito un dato en el puerto A. Se activa con el
flanco de subida de la seal (escritura finalizada) y
se desactiva con la confirmacin del dispositivo
(acknowledge input): Un cero en esta entrada indica
que los datos del puerto A han sido ledos por el
dispositivo externo. Esencialmente es una respuesta del
dispositivo perifrico indicado que ha sido recibido el
dato enviado por la CPU.
Interrupciones
Seales de interrupciones se pueden generar en los puertos A y B
tanto si estn configurados como entrada (la CPU debe leer un dato)
como si lo estn como salida (la CPU ya puede escribir un nuevo
dato).
El bit 4 del puerto C (PC4) es el bit de habilitacin de interrupcin del
puerto A:INTE A. El del puerto B es el bit 2 (PC2): INT B.
Para que el 8255 genere una interrupcin asociada al puerto A (seal
INTR A) cuando esta configurado como entrada, se debe cumplir que:
es 1, IBF A es 1 el INTE A es 1 (semejante para B)
Para que el 8255 genere una interrupcin asociada al puerto A (seal
INTR A) cuando esta configurado como salida, se debe cumplir que:
es 1, es 1 el INTE A es 1 (semejante para B)

El 8288 programado para operar en modo 2 hace direccional al
puerto A y el puerto C proporciona las lneas de control de la
transferencia.
El puerto A funciona de forma bidireccional. Es como un
doble modo 1. El puerto B no tiene este modo.
Las cinco leas superiores del puerto C contiene las
seales de protocolo.

Seales de protocolo
(semejantes a las descritas en el modo 1)

(strobe input)
IBF (input buffer full)
(acknowledge)
(output buffer full)
INTR
CORNOGRAMA MODO 2
Cdigo ejemplo para el modo 0 como salida
El siguiente cdigo, inicializa al PPI en modo 0, y los tres puertos (A, B y C) son programados
de salida.

MOV DX, 03
MOV AL, 80h; AL= 1000000b
OUT DX, AL

Cdigo ejemplo para el modo 1 como entrada

BIT5 EQU 20H
PORTC EQU 22H
PORTC EQU 20H
READ: IN AL, PORTC ; Lee puerto C
TEST AL, BIT5 ; verifica IBF
JZ READ ; salta si IBF=0
IN AL, PORTA ; lee dato





Cdigo ejemplo para el modo 1 como salida
BIT1 EQU 2
PORTC EQU 62H
PORTB EQU 61H
CMD EQU 63H
PRINT: IN AL, PORTC ; Obtiene OBF
TEST AL, BIT1 ; Verifica OBF
JZ PRINT ; salta si OBF = 0
MOV AL, AH ; Obtiene el dato
OUT PORTB, AL ; Imprime (enva al puerto B un dato)
MOV AL, 8 ; Inicializa en 0 a DS (PC4 va hacia esta
seal del
; dispositivo)
OUT CMD, AL ; Enva un pulso de datos a la impresora
MOV AL, 9 ; Limpia en 0 a DS
OUT CMD, AL


Cdigo ejemplo para el modo 2
(bidireccional)
BIT7 EQU 80H ; Este programa transmite AH por el bus bidireccional
PORTC EQU 62H ; del puerto A
PORTA EQU 60H
TRANS: IN AL, PORTC ; Obtiene OBF
TEST AL, BIT7 ; Verifica OBF
JZ TRANS ; Si OBF = 1
MOV AL, AH ; Obtiene el dato
OUT PORTA, AL ; Enva el dato
; Lee datos desde el puerto A bidireccional y los regresa en AL.
; El paso anterior y ste se pueden hacer en un solo programa.
BIT5 EQU 20H
PORTC EQU 62H
PORTA EQU 60H
READ: IN AL, PORTC ; Obtiene IBF
TEST AL, BIT5 ; Verifica IBF
JZ READ ; Si IBF=0
IN AL, PORTA ; Obtiene el dato

Cdigo ejemplo para el modo inactivo

El siguiente cdigo, enva un "1" al Bit 5 del Puerto C

MOV DX, 03
MOV AL, 0Bh; AL= 00001011b
OUT DX, AL

Vous aimerez peut-être aussi