Beruflich Dokumente
Kultur Dokumente
40
PA4
PA2
39
PA5
PA1
38
PA6
PA0
37
PA7
CS
36
WR
RD
35
RESET
GND
34
D0
A1
33
D1
A0
32
D2
8255A
PC7
10
31
D3
PC6
11
30
D4
PC5
12
29
D5
PC4
13
28
D6
PC3
14
27
D7
PC2
15
26
VCC
PC1
16
25
PB7
PC0
17
24
PB6
PB0
18
23
PB5
PB1
19
22
PB4
PB2
20
21
PB3
Pag. 1
Sistemas Computarizados
GRUPO
A
GRUPO
A
PUERTO A
(8)
CONTROL
GRUPO
A
BUS DE DATOS
BI-DIRECCIONAL
D7 - D 0
PUERTO C
ALTO
(4)
BUFFER
DEL BUS
DE DATOS
BUS INTERNO
8 BIT
GRUPO
B
PUERTO C
BAJO
(4)
I/O
PA7-PA0
I/O
PC7-PA4
I/O
PC3-PC0
RD
WR
A1
A0
LOGICA
DE
CONTROL
GRUPO
B
GRUPO
B
PUERTO A
PUERTO B
(8)
RESET
I/O
PB7-PB0
CS
U.A.B.C.
Pag. 2
Sistemas Computarizados
D7-D0
34
33
32
31
30
29
28
27
5
36
9
8
35
6
IOR
IOW
A1
A2
RESET
A7
A3
A4
1
2
3
6
4
5
A6
A5
A0
A
B
C
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
D0
D1
D2
D3
D4
D5
D6
D7
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
RD
WR
A0
A1
RESET
CS
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
15
14
13
12
11
10
9
7
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
74ALS138
4
3
2
1
40
39
38
37
PUERTO A
18
19
20
21
22
23
24
25
PUERTO B
14
15
16
17
13
12
11
10
PUERTO C
8255
U.A.B.C.
Pag. 3
Sistemas Computarizados
Programacin de 8255A-5
El byte de control A programa la funcin del grupo A y B, mientras que el byte de control
B pone (1) o reinicializa (0) los bit del puerto C solo si el 8255A-5 se programa en el
modo 1 o 2. Los terminales del grupo B (puerto B y la parte baja del puerto C) se
programan como terminales de entrada o salida. El grupo B puede operar en el modo 0 o
en el modo 1. El modo 0 es el modo bsico de E/S que permite que los terminales del
grupo B sean programados como simples entradas y conexiones de salida amarradas. La
operacin del modo 1 es la operacin de habilitacin peridica para las conexiones del
grupo B donde los datos se transfieren a travs del puerto B, y el puerto C proporciona
las seales de reconocimiento.
Los terminales del grupo A (puerto A y la parte superior del puerto C) son tambin
programadas como terminales de entrada o de salida. La diferencia es que este grupo A
puede operar en lo modos 0, 1 y 2. La funcin del modo 2 es operar en modo
bidireccional para el puerto A.
7
Byte de Control A
5
4
3
2
1
Grupo B
Puerto C (PC3-PC0)
1 = Entrada
0 = Salida
Puerto B
1 = Entrada
0 = Salida
Modo
0 = modo 0
1 = modo 1
Grupo A
(a)
Puerto C (PC7-PC4)
1 = Entrada
0 = Salida
Puerto A
1 = Entrada
0 = Salida
Modo
00 = modo 0
01 = modo 1
1X = modo 2
Pag. 4
Sistemas Computarizados
Bit set/reset
0 = set
1 = reset
S elecciona un bit
(b)
Figura 3 (b) Pone a 1 o borra el bit indicado en el campo del bit seleccionado.
El puerto A provee las entradas de datos a los segmentos del indicador y el puerto B
selecciona una posicin a la vez por medio de la multicanalizacin de los indicadores. El
8255A-5 es interfazado al 8088 a travs de un decoficicador de direcciones que opera en
las direcciones de puertos de E/S.
Los valores de las resistencias son elegidos en la Figura 4, en base a la corriente de
segmento que es 80 mA. Esta corriente es requerida para producir una corriente
promedio de 10 mA por segmento cuando los indicadores son multicanalizados. En este
tipo de sistemas de indicador, solo una de las ocho posiciones del indicador esta
encendida en cualquier instante dado. la corriente pico de nodo es de 560 mA, pero la
corriente promedio de nodo es de 70 mA. Cada vez que los indicadores son
multicanalizados, incrementamos la corriente de segmento desde 10 mA hasta un valor
igual a 'numero de posiciones de indicador' veces 10 mA. Esto significa que un indicador
de 4 dgitos utiliza 40 mA por segmento, un indicador de 5 dgitos utiliza 50 mA, y as
sucesivamente.
D0
37
D1
D2
D3
D4
D5
D6
D7
2 N9 0 7
VCC
2 .2 K
D0
D1
D2
D3
D4
D5
D6
D7
IOR
IOW
A0
A1
RES ET
A2
A3
A4
A5
A6
A7
A8
A9
A1 0
A1 1
A1 2
A1 3
A1 4
34
33
32
31
30
29
28
27
D0
D1
D2
D3
D4
D5
D6
D7
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
4
3
2
1
40
39
38
37
5
36
9
8
35
6
RD
WR
A0
A1
RES ET
CS
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
18
19
20
21
22
23
24
25
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
14
15
16
17
13
12
11
10
CS
2 N2 2 2 2
1K
8255
Deco difica do r
U.A.B.C.
Pag. 5
Sistemas Computarizados
Antes de que el software para operar el indicador sea examinado, debemos primero
programar el 8255A-5. Esto se realiza una secuencia de instrucciones listadas en el
Ejemplo 1. Aqu, los puertos A y B se programan como salidas.
Ejemplo 1
; software para programar el 8255A
MOV AL,10000000B
MOV DX,COMMAND
OUT DX,AL
;byte de control
;direccionar registro de control
;manda byte de control al 8255A
El procedimiento para manejar estos indicadores es listado en el Ejemplo 2. Para que este
sistema de indicador funcione correctamente, debemos llamar a este procedimiento
frecuentemente. Notar que el procedimiento llama a otro procedimiento (DELAY) que
causa un retraso de 1ms.
Ejemplo 2
;procedimiento para el rastreo de 8 dgitos del indicadores multicanalizados.
;Este procedimiento debe ser llamado continuamente desde un programa
;para desplegar la informacin codificada en 7 segmentos en el rea
MEMORY.
;
DISP
PROC NEAR
PUSHF
PUSH AX
PUSH BX
PUSH DX
PUSH SI
;salvar registros
BX,8
AH,7FH
SI,OFFSET MEMORY-1
DX,PORTB
;cargar cuenta
;cargar patrn elegido
;direccionar indicador RAM
;direccionar puerto B
U.A.B.C.
MOV
OUT
DEC
MOV
OUT
AL,AH
DX,AL
DX
AL,[BX+SI]
DX,AL
;seleccionar dgito
;direccionar puerto A
;obtener dato
;desplegar dato
CALL DELAY
;esperar 1 ms
ROR AH,1
Sistemas Computarizados
INC DX
DEC BX
JNZ DISP1
;direccionar puerto B
;ajustar cuenta
;repetir 8 veces
POP SI
POP DX
;recuperar registros
POP BX
POP AX
POPF
RET
DISP
ENDP
Este tiempo de retraso no se ilustra en este ejemplo, pero se emplea para permitir el
tiempo necesario para que cada posicin se encienda. Es recomendado por los
fabricantes de indicadores LED que la iluminacin del indicador sea entre 100 Hz y
1,500 Hz. Usando un retraso de tiempo de 1 ms, iluminamos cada dgito durante 1 ms
para una velocidad de iluminacin de 1,000 Hz/8 o 125.
El procedimiento del indicador direcciona una rea de memoria donde los datos, en
cdigo de 7 segmento, son almacenados por los ocho dgitos del indicador. El registro
AH es cargado con un cdigo (7FH) que inicialmente direcciona la posicin mas
significante del indicador. Una vez que se selecciona la posicin del indicador, se
direcciona el contenido de la localidad de memoria MEMORY+7 y se enva al dgito
mas significativo. El cdigo de seleccin se ajusta para seleccionar el siguiente dgito del
indicador, como en la memoria.
Este proceso se repite ocho veces para desplegar el contenido de la locacin MEMORY
hasta MEMORY+7 en los 8 dgitos del indicador.
MODO 1 Entrada con habilitacin peridica
Este modo de operacin ocasiona que el puerto A y/o el puerto B funcionen como
dispositivos de entrada con amarradores. Esto permite que los datos externos se
almacenen en el puerto hasta que el microprocesador este listo para almacenarlos. El
puerto C se emplea en la operacin de modo 1, no para datos, sino para seales de
control o reconocimiento que ayudan a operar a uno o ambos puertos A y B como entrada
con puertos de habilitacin peridica. La Figura 5 muestra ambos diagramas de tiempo y
como ambos puertos son estructurados para el modo 1 de operacin entrada con
habilitacin peridica.
El puerto con entrada de habilitacin peridica captura datos de la terminal del puerto
cuando se activa la seal de habilitacin peridica ( STB ). Notar que la seal de
habilitacin peridica captura los datos del puerto en la transicin de 0 a 1. La seal
(STB ) ocasiona que se capturen los datos en el puerto y tambin activa las seales IBF
(input buffer full) y INTR (interrup request). Una vez que el microprocesador advierte
U.A.B.C.
Pag. 7
Sistemas Computarizados
que los datos estn presentes en el puerto, a travs del software (IBF) o del hardware
(INTR), ejecuta una instruccin IN para leer el puerto ( RD ). La accin de lectura del
puerto restaura a IBF y a INTR a sus estados inactivos hasta que el prximo dato es
recibido en el puerto.
Definiciones de Seales para Modo 1 Entrada con habilitacin peridica.
1. STB - Seal de habilitacin peridica: Una entrada usada para cargar datos dentro del
amarrador del puerto, el cual retiene la informacin hasta que se lee por el
microprocesador a travs de una instruccin IN.
2. IBF - Reforzador de Entrada Lleno: Una salida que indica que el amarrador de entrada
contiene informacin.
3. INTR - Requerimiento de Interrupcin: Una salida que requiere una interrupcin. La
terminal INTR cambia a 1 lgico cuando la seal STB regresa a 1 lgico y es limpiada
cuando el dato es metido desde el puerto por el microprocesador.
4. INTE - Habilitador de Interrupcin: Un bit interno programado a travs del puerto PC 4
(puerto A) o una posicin de bit en PC2 (puerto B).
5. PC7, PC6 - Terminales 7 y 6 del Puerto: Terminales de E/S de propsito general que son
disponibles para cualquier propsito.
Modulo 1 Puerto A
Modulo 1 Puerto B
PUERTO A
INTE
A
PUERTO B
INTE
B
PC4
STB
PC5
IBF
PC1
IBF
PC3
INTR
PC0
INTR
PC2
STB
E/S
PC6 +7
(a)
STB
(Reforzador lleno)
IBF
INTR
(Interrupcin requerida)
RD
Puerto
Datos habilitados
al puerto
(b)
U.A.B.C.
Pag. 8
Sistemas Computarizados
PA7
D7
PC
STB
DAV
8255A
U.A.B.C.
Pag. 9
Sistemas Computarizados
Ejemplo 3
;procedimiento que lee el codificador del teclado y regresa con el caracter ASCII en AL
BIT5 EQU 20H
READ
IN
TEST
JZ
IN
PROC
NEAR
AL,PORTC
AL,BIT5
READ
AL,PORTA
;leer puerto C
; verificar IBF
;si IBF = 0
;leer cdigo ASCII
RET
READ
ENDP
U.A.B.C.
Pag. 10
Sistemas Computarizados
Mo dulo 1 Puerto A
Mo dulo 1 Puerto B
PUERTO B
PUERTO A
I NTE
A
PC6
ACK
PC7
PC3
PC4+5
I NTE
B
PC2
ACK
OBF
PC1
OBF
INTR
PC0
INTR
E/S
(a )
WR
OBF
INTR
(Interrupci n
requerida )
ACK
Puerto
Da to s env ia do s
a l puerto
Da to s retira do s
del puerto
(b)
U.A.B.C.
Pag. 11
Sistemas Computarizados
IMPRESORA
D0
PB 0
ASCII
PB7
PC 2
PC4
D7
ACK
ACK
DS
U.A.B.C.
Pag. 12
Sistemas Computarizados
Ejemplo 4
;procedimiento que enva el caracter en AH codificado
;en ASCII a la impresora a travs del puerto B
BIT1
EQU 2H
PROC NEAR
;obtener OBF
;probar OBF
; si OBF = 0
AL,8
COMMAND,AL
AL,9
COMMAND,AL
;borrar DS
;poner a 1 DS
ENDP
U.A.B.C.
Pag. 13
Sistemas Computarizados
3. ACK - Reconocimiento: Una entrada que habilita los reforzadores de tres estados para
que los datos puedan aparecen en el puerto A. Si ACK es un 1 lgico, los reforzadores de
salida del puerto A estn en su estado de alta impedancia.
4. STB - Seal de Habilitacin Peridica: Una entrada usada para cargar el amarrador de
entrada del puerto A con los datos externos provenientes del canal bidireccional del
puerto A.
5. IBF - Reforzador de Entrada Lleno: Una salida usada para indicar que el reforzador de
entrada contiene datos provenientes del reforzador bidireccional externo.
6. INTE - Habilitador de Interrupciones: Bit internos (INTE1 e INTE2) que habilitan la
terminal INTR. El estado de la terminal INTR es controlado por los bit PC 6 (INTE1) y
PC4 (INTE2) del puerto C.
El Canal Bidireccional. El canal bidireccional se emplea haciendo referencia al puerto A
con las instrucciones IN y OUT. Para transmitir datos a travs del canal bidireccional, el
programa primero prueba la seal OBF para determinar cuando el reforzador de salida
esta vaco. Si es as, entonces se envan los datos al reforzador de salida a travs de la
instruccin OUT. La circuitera externa tambin monitorea la seal OBF para decidir si
el microprocesador ha enviado datos al canal. Tan pronto como la circuitera recibe un 0
lgico en OBF, manda de regreso la seal ACK para retirarlo del reforzador de salida.
La seal ACK coloca el bit OBF y tambin habilita el reforzador de salida de tres
estados, entonces los datos pueden ser ledos. El ejemplo 5 lista el procedimiento que
transmite el contenido del registro AH a travs del puerto bidireccional A.
Ejemplo 5
;procedimiento para transmitir AH a travs del
;canal bidireccional del puerto A
BIT7
EQU 80H
TRANS PROC NEAR
;revisa OBF
IN AL,PORTC
TEST AL,BIT7
JZ TRANS
;manda el dato
MOV AL,AH
OUT PORTB,AL
RET
;obtener OBF
;verificar OBF
;si OBF = 0
;obtener dato
TRANS ENDP
U.A.B.C.
Pag. 14
Sistemas Computarizados
Modo 2 Bidireccional
INTR
PC3
Puerto A
PC7
OBF
INTE
1
PC6
ACK
INTE
2
PC4
STB
PC5
IBF
PC2 - PC 0
E/S
(a)
WR
OBF
(Reforzador lleno )
INTR
ACK
STB
IBF
Puerto A
RD
Datos enviados
al puerto A
Datos almacenados
en el puerto A
Datos leidos
en el puerto A
Datos introducido s
al puerto A
(b)
Figura 9 Modo 2 de operacin del 8255A. (a) Estructura interna. (b) Diagrama de
tiempos.
Para recibir datos a travs del canal del puerto bidireccional A, se prueba el bit IBF con
software para decidir si los datos han sido enviados al puerto. Si IBF=1, entonces se
meten los datos utilizando una instruccin IN. La interfaz externa enva datos al puerto
usando la seal STB . Cuando STB se activa, la seal STB cambia a 1 lgico, y el dato
en el puerto a se mantiene dentro del puerto en un amarrador. Cuando la instruccin IN
se ejecuta, el bit IBF se limpia y el dato en el puerto se traslada a AL. El Ejemplo 6 lista
un procedimiento que lee datos del puerto.
U.A.B.C.
Pag. 15
Sistemas Computarizados
Ejemplo 6
;procedimiento que introduce datos del canal
;bidireccional salvndolos en AL
BIT5
EQU 20H
READ
PROC NEAR
;verificar IBF
IN AL,PORTC
;obtener IBF
TEST AL,BIT5 ;verificar IBF
JZ READ
;si IBF = 0
;leer IBF
IN AL,PORTA
RET
READ
ENDP
Puerto A
Puerto B
0
1
2
Puerto C 3
4
5
6
7
Modo 0
IN
OUT
IN
OUT
IN
OUT
Modo 1
IN
OUT
IN
OUT
INTRB
INTRB
IBFB
OBFB
STBB
ACKB
INTRA
INTRA
I/O
STBA
IBFB
I/O
I/O
ACKA
I/O
OBFA
Modo 2
I/O
Not used
I/O
I/O
I/O
INTR
STB
IBF
ACK
OBF
U.A.B.C.
Pag. 16