Está en la página 1de 16

UNIVERSIDAD DE LAS FUERZAS ARMADAS

ESPE

DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA

Microprocesadores

CONSULTA No. 1
SEGUNDO PARCIAL

TEMA: Funcionamiento del PPI 8255 (Interfaz Periférica Programable)

NRC: 3193

Docente: Ing. Miroslava Aracely Zapata Rodríguez

Nombre:

Villavicencio Freddy

Sangolquí, 12 de Diciembre del 2018


1. Tema: Funcionamiento del PPI 8255 (Interfaz Periférica Programable)

2. Objetivos

2.1 Objetivo general:


Conocer el funcionamiento y operación del PPI 8255 (Interfaz Periférica Programable)
2.2 Objetivos específicos:
 Conocer las aplicaciones del periférico programable de E/S y su compatibilidad con los
diferentes tipos de microprocesadores Intel.
 Realizar la simulación de un ejemplo mediante el cual se pueda observar los modos de
operación del 8255A.
 Reconocer la distribución de pines del CI y sus conexiones.

3. Marco teórico

El PPI 8255
El circuito PPI (Interfaz Periférica Programable) 8255A de Intel es un dispositivo programable
de entrada/salida de propósito general diseñado para ser usado con microprocesadores Intel.
El PPI es un circuito integrado de 40 terminales, de las cuales 24 son de entrada/salida y se
pueden programar individualmente en 2 grupos de 12 y se puede utilizar en 3 diferentes modos
de operación.
Contiene 3 puertos programables paralelos de 8 bits. Cada puerto tiene un registro. Tiene
también un registro de control de los puertos.

Figura 1: Modelo a bloques del PPI 8255.


Estructura interna del PPI 8255

Figura 2: Estructura interna del PPI 8255.

Distribución de terminales del 8255.

Figura 3: Distribución de terminales del 8255.

Tabla de verdad de operación del PPI 8255.


Tabla 1: Tabla de verdad de operación del PPI 8255.

Periférico programable 8255


Descripción funcional:
Básicamente se trata de tres puertos (A,B,C) de ocho bits, encontrándose el puerto C dividido
en dos puertos de cuatro bits.
Estos cuatro puertos formados (dos de ocho bits y dos de cuatro) se organizan en dos grupos de
12 bits. Cada grupo contiene un puerto de ocho bits y otro de cuatro.
 El grupo A está formado por el puerto A y los 4 bits más significativos del puerto C.
Grupo A: PA0...PA7 + PC4...PC7
 El grupo B está constituido por el puerto B junto a los 4 bits menos significativos del
puerto C. Grupo B: PB0…PB7 + PC0...PC3
El puerto C está especialmente diseñado para ser dividido en dos mitades y servir de apoyo a
los puertos A y B en algunos sistemas.
Programación:
El 8255 soporta 3 modos de operación:
 Modo 0 (entrada y salida básica).
 Modo 1 (entrada y salida con señales de control).
 Modo 2 (bus bidireccional de comunicaciones).
El modo para el puerto A y B se puede seleccionar por separado; el puerto C está dividido en
dos mitades relacionadas con el puerto A y el B.
Tabla 2: Direccionamiento.
Figura 4: Formato de la definición del modo.

Figura 5: Formato para activar/desactivar un bit del puerto C.


Características del 8255 operado en modo 0
 Se le asigna operaciones de entrada y salida a cada uno de los tres puertos.
 No se usa un protocolo (handshaking) para el intercambio de los datos. Los datos
simplemente se escriben o leen de un puerto específico.
Definición funcional básica del modo 0
 Se tiene 2 puertos de 8 bits y 2 de 4 bits.
 Cualquier puerto puede ser entrada o salida.
 Las salidas tienen LATCH (cerrojo).
 Las entradas no tienen LATCH.
 Hay 16 posibles configuraciones de entrada/salida en este modo.

Figura 6: Diagrama de bloques funcionales en modo 0.


Ciclo de máquina de Entrada/Salida del Z80

Figura 7: Ciclo de máquina de Entrada/Salida del Z80.

Características del 8255 operado en modo 1 (Strobed Input/Output)


La transferencia de datos de E/S hacia o de puertos específicos se realiza con señales de control
o de Handshaking. Es un modo de transferencia concertada.
Definición funcional básica del modo 1
 El puerto A y el puerto B usan líneas del puerto C para generar o aceptar señales de
handshaking en modo de pulsos (strobes).
Características:
 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 estrada o como salida
independientemente.
 Tanto las entradas como las salidas de latchean.
 El puerto de 4 bits se usa para control y status del puerto de datos de 8 bits.

Figura 8: Operación del 8255 en modo 1.


Señales de Control cuando el Puerto (A o B) está definido como Entrada

Figura 9: Señales de Control cuando el Puerto (A o B) está definido como Entrada.

 STB (Strobe Input): Un nivel bajo en esta entrada, 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 fue cargado
en el latch de entrada. IBF se pone en alto por un nivel bajo en STB y se pone en bajo
debido al flanco positivo de la entrada RD.
 INTR (Pedido de Interrupción): Un nivel alto en esta salida se puede usar para
interrumpir al 𝑢P. INTR se pone en alto cuando STB está en 1, IBF está en 1 e INTR está
en 1. Se pone en 0 con el flanco negativo de RD.

Figura 10: Operación en modo 1 cuando el Puerto (A o B) está definido como Entrada.

Características del 8255 operado en modo 2

Figura 11: El 8255 operado en modo 2.


El 8255 programado para operar en modo 2 hace bidireccional al puerto A y el puerto C
proporciona las líneas de control de la transferencia

Figura 12: El 8255 operado en modo 2; solo como entrada y solo como salida.

Figura 13: Ejemplo de conexión del PPI con el Z80.


4. Desarrollo

a) Ejemplo 1: Aplicación con LCDs


Para esta aplicación se utiliza una memoria y LCDs para mostrar mensajes de activación según
el puerto escogido, el diseño se conforma de los siguientes bloques:
Bloque de activación del circuito:
Para activar el circuito necesario diseñar un circuito de inicialización el cual permita resetear
los contadores para que inicien la cuenta desde cero, y así evitar errores de visualización en el
LCD.
SW1

SW-SPDT

R5
D2 1k
1N4004

Reset

C5
1uF

Fig 14: Circuito de inicialización

A continuación se activa manualmente la señal de reloj con un pulsador conectado a un flip-


flop D, para grabar la activación (1) en la entrada del circuito que genera la señal de reloj, cuya
señal a su vez activa los contadores y la entrada ENABLE del LCD permitiendo la visualización
de caracteres.

U26:A
4

R21
CLK

2 5
S

D Q
1k
3
CLK U25 U27:A
8

6
Q
R

4 3 1 2
VCC

R Q CLK2
1

74LS74 7
DC 7404
5
CV
D19
RV1 LED-GREEN
20%

10k
GND

2 6
C4 TR TH
R22
1nF
330
1

C3 555
100uF

Fig 15: Activación del cajero por medio de la señal de reloj

Bloque de contadores:
En este bloque se genera el conteo de los contadores para acceder a las localidades de la
memoria, cuando el conteo llega a 21 (10101). Se trunca los contadores por medio del buffer.
Hasta resetear los contadores para activar otro puerto del 8255.
U29
3 14
D0 Q0
4 13
D1 Q1
5 12
D2 Q2
6 11
D3 Q3
15

1
RCO
7
ENP
10
ENT
2 3 2
CLK CLK
9
LOAD
1
Reset MR
74161

U30
3 14
D0 Q0
4 13
D1 Q1
5 12
D2 Q2
6 11
D3 Q3
15
RCO
7
ENP
10
ENT
2
CLK
9
LOAD
1
MR
74161

U34
2 1

4 3
NAND_5

Figura 16: Contadores.

Bloque de conexión 8255 y memoria:


En la figura 15 se muestra la conexión de la memoria y el controlador de periféricos 8255, se
conectan las 8 salidas de la memoria con las 8 entradas del bus de datos del 8255
U21 U28
10 11 34 4
A0 D0 D0 PA0
9 12 33 3
A1 D1 D1 PA1
8 13 32 2
A2 D2 D2 PA2
7 15 31 1
A3 D3 D3 PA3
6 16 30 40
A4 D4 D4 PA4
5 17 29 39
A5 D5 D5 PA5
4 18 28 38
A6 D6 D6 PA6
3 19 27 37
A7 D7 D7 PA7
25
A8
24 5 18
A9 CLK2 RD PB0
21 36 19
23
A10
A11
0 A0
9
WR
A0
PB1
PB2
20
2 8 21
A12 A1 A1 PB3
26 35 22
A13 RESET PB4
27 23
A14 PB5
6 24
CS PB6
20 25
CE PB7
22
OE
1 14
VPP PC0
15
PC1
27C256 16
PC2
17
PC3
13
PC4
12
PC5
11
PC6
10
PC7

8255A

Figura 17: Conexión controlador-memoria.

Bloque de activación de puertos:


Se conecta un LCD al puerto A y otro al puerto C del 8255, cuando se active alguno de los
puertos se mostrara el mensaje “PUERTO ACTIVADO” en el LCD correspondiente.
- Activación puerto A:
Se activa el puerto C en modo lectura, con la siguiente combinación:

0 A0

0 A1

Figura 18: Combinación; puerto A salida de datos.


LCD1
LM016L

VDD
VSS

VEE

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
E
1
2
3

4
5
6

7
8
9
10
11
12
13
14
CLK2
U28
34 4
D0 PA0
33 3
D1 PA1
32 2
D2 PA2
31 1
D3 PA3
30 40
D4 PA4
29 39
D5 PA5
28 38
D6 PA6
27 37
D7 PA7
5
36
RD Figura
PB0 19: Activación Puerto A modo lectura.
18
19
WR PB1
9 20
A0 PB2
8 21
- Activación puerto C:
35
A1
RESET
PB3
PB4
22
23
PB5
6 U28 24
CS PB6
25
Se activa el puerto C en modo lectura, con la siguiente combinación:
34
33
D0
D1
PB7
PA0
PA1
4
3
14
32 PC0 2
D2 PA2 15
31 PC1 1
D3 PA3 16
30 PC2 40
D4 PA4 17
29 PC3 39
D5 PA5 13
28
27
D6
D7
PC4
PA6
PC5
PA7
PC6
38
12
37
11
10
0 A0
5 PC7 18

1
RD PB0
36 19
9
WR PB1
20 A1
A0
8255A PB2
8 21
A1 PB3
35 22
RESET PB4
23
6
CS
Figura 20: Combinación; puerto C salida de datos.
PB5
PB6
24
25
PB7

PC0
14 LCD6
15 LM016L
PC1
16
PC2
17
PC3
13
PC4
12
PC5
11
PC6
10
PC7
VDD
VSS

VEE

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7

8255A
E
1
2
3

4
5
6

7
8
9
10
11
12
13
14
CLK2

Figura 21: Activación Puerto C modo lectura.

Programación en memoria:

Figura 22: Programación en memoria.


b) Ejemplo 2: Aplicación con Display 7 segmentos y leds
Para este ejemplo se utiliza el puerto A y el puerto C para lectura de datos, y el puerto B para
escritura de datos. La salida de datos del puerto A será por medio de leds, y para el puerto B
se utilizan Display 7 segmentos.
U15
2 18
A0 B0
3 17
A1 B1
4 16
A2 B2
DSW3 5 15
A3 B3
OFF ON 6 14
16 1 A4 B4
1 15 2
1
0
7
8
A5 B5
13
12
14 3 A6 B6
0 13 4
0
1
9
A7 B7
11
12 5
0 11 6
1
1
19
1
CE
10 7 AB/BA
1 9 8
1
0 74LS245
1 DIPSW_8

1 U3
34 4
D0 PA0
1 33
32
D1 PA1
3
2
D2 PA2
0 31
30
D3 PA3
1
40
D4 PA4
29 39
D5 PA5
28 38
D6 PA6
27 37
D7 PA7
5 18
0 36
RD
WR
PB0
PB1
19
9 20
0 8
A0
A1
PB2
PB3
21
35 22
RESET PB4
23
PB5
6 24
0 CS PB6
PB7
25

1 PC0
14
15
PC1
16
PC2

1
0
0
1
1
0
0
1
17
0 PC3
PC4
13
12 U4
PC5
0 PC6
11
10
7
A QA
13
PC7 1 12
B QB
2 11
C QC
6 10
8255A D QD
4 9
BI/RBO QE
5 15
RBI QF
U1 3 14
LT QG
2 18
A0 B0 7448
3 17
A1 B1
4 16
A2 B2
5 15
A3 B3
6 14
A4 B4
7 13
A5 B5
8 12 U5
A6 B6
9 11
A7 B7 7 13
A QA
1 12
19 B QB
CE 2 11
1 C QC
AB/BA 6 10
D QD
4 9
74LS245 BI/RBO QE
5 15
RBI QF
3 14
LT QG
7448

Figura 23: Aplicación con display y LCD – circuito completo.

Uso del 74245:


El CI 74245 es un transmisor/receptor octal diseñado para comunicaciones asincrónicas de
dos vías entre buses de datos.
La entrada de dirección DR controla la transmisión del bus A al bus B ó del bus B al bus A,
dependiendo de su valor lógico.
La entrada de habilitación (E’) sirve para aislar los buses
Tabla 3: Tabla de verdad: 74245

Bloque de activación de puertos:


- Puerto A en modo lectura:
Se activa el puerto A en modo escritura, con la siguiente combinación:
0 A0

0 A1

Figura 24: Combinación; puerto A de escritura de datos.


U15
2 18
A0 B0
3 17
A1 B1
4 16
A2 B2
5 15
A3 B3
6 14
A4 B4
1 7 13
A5 B5
1 8 12
A6 B6
0 9 11
A7 B7
0
1 19
CE
0 1
AB/BA
0
1 74LS245

U3
34 4
D0 PA0
33 3
D1 PA1
32 2
D2 PA2
31 1
D3 PA3
30 40
D4 PA4
29 39
D5 PA5
28 38
D6 PA6
27 37
D7 PA7
5 18
36
RD
WR
PB0
PB1
19 Figura 25: Activación Puerto A modo lectura.
9 20
A0 PB2
8 21
A1 PB3
- 35 Puerto B en modo escritura:
RESET PB4
22
23
PB5
6 24
CS PB6
25
Se activa el puerto B14en modo escritura, con la siguiente combinación:
PB7

PC0
15
PC1
16
PC2
17
PC3

0
13
PC4
PC5
12 A0
11
PC6
10
PC7

8255A
U3
1 A1
34 4
D0 PA0
33 3
32
D1 Figura 26:
PA1 Combinación; puerto B de escritura de datos.
2
D2 PA2
31 1
D3 PA3
30 40
D4 PA4
Se ingresan los datos por el puerto B:
29
28
39
D5
38
PA5
D6 PA6
27 37
D7 PA7
5 18
RD PB0
36 19
WR PB1
9 20
A0 PB2
8 21
A1 PB3
35 22
RESET PB4
23
PB5
6 24
CS PB6
25
PB7
14
PC0
15
PC1
16
PC2
1
1
1
1
1
1
0
0

17
PC3
13
PC4
12 U4
Figura 27: escritura de datos por el puerto B.
PC5
PC6
11
7 13
10 A QA
PC7 1 12
B QB
2 11
En el bis de datos D se8255A
puede visualizar los datos ingresados por el puerto B: 6
4
C
D
QC
QD
10
9
BI/RBO QE
5 15
RBI QF
3 14
LT QG
7448
DSW3
16 OFF ON 1
1 15 2
0
0
14 3
0 13 4
1
1
12 5
0 11 6
1
1
10 7
0 9 8
1
1
0 DIPSW_8

1 U3
34 4
D0 PA0
1 33
32
D1 PA1
3
2
D2 PA2
1 31
30
D3 PA3
1
40
D4 PA4
29 39
D5 PA5
28 38
D6 PA6
27 37
D7 PA7
5 18
0Figura 28: Visualización
36
RD PB0
WR por el busPB1
de datos
19 D.
9 20
A0 PB2
8 21
A1 PB3
35 22
RESET PB4
23
PB5
6 24
CS PB6
25
PB7
14
PC0
15
PC1
16
PC2
17
PC3
- Puerto C en modo lectura:
En este puerto se conecta el transmisor/receptor seguido de dos decodificador 74LS247, que
permiten
U3 la visualización de los números BCD ingresados por el bus de datos D.
34 4
D0 PA0
33 3
D1 PA1
Se activa el puerto C en modo lectura, con la siguiente combinación:
32
31
D2
D3
PA2
PA3
2
1
30 40
D4 PA4
29 39
D5 PA5
28 38
D6 PA6
27 37

5
36
D7

RD
PA7

PB0
18
19
0 A0
WR PB1
9
8
35
A0
A1
RESET
PB2
PB3
PB4
20
21
22
1 A1
23
PB5
6 24
CS PB6
PB7
25 Figura 29: Combinación; puerto C salida de datos.
14
PC0
15
PC1
16
PC2 1
0
0
1
1
0
0
1
17
PC3
13
PC4
12 U4
PC5
11
PC6 7 13
10 A QA
PC7 1 12
B QB
2 11
C QC
6 10
8255A D QD
4 9
BI/RBO QE
5 15
RBI QF
U1 3 14
LT QG
2 18
A0 B0 7448
3 17
A1 B1
4 16
A2 B2
5 15
A3 B3
6 14
A4 B4
7 13
A5 B5
8 12 U5
A6 B6
9 11
A7 B7 7 13
A QA
1 12
19 B QB
CE 2 11
1 C QC
AB/BA 6 10
D QD
4 9
74LS245 BI/RBO QE
5 15
RBI QF
3 14
LT QG
7448

Figura 30: Activación Puerto C modo lectura.

c) Ejemplo 3: Operación Lectura/Escritura

DSW1
16 OFF ON 1
0 15 2
0
0
14 3
0 13 4
0
0
12 5
0 11 6
0
0
10 7
0 9 8
0
0
0 DIPSW_8
U2
0 34
D0 PA0
4
0
33 3
0 32
D1
D2
PA1
PA2
2
0
0
31 1
0 30
D3
D4
PA3
PA4
40
0
0
29 39
D5 PA5 0
28 38
D6 PA6 0
27 37
D7 PA7 0
5 18
0 36
RD
WR
PB0
PB1
19
9 20
0 8
A0
A1
PB2
PB3
21
35 22
RESET PB4
0 6
PB5
23
24
CS PB6
0 PB7
25

14
0 PC0
PC1
15
1
1
16
PC2 1
0
0
0
0
0
0
0
0
0

17
PC3 1
13
PC4 1
12
PC5 1
11
PC6 1
10
PC7 1

8255A

Figura 14: 8255 en operación entrada/salida.


5. Conclusiones

 INTEL 8255 es una interfaz versátil que nos permite tener puertos de entrada y salida
simple, así como puertos de E/S sincronizados. Por lo tanto dicha interfaz está diseñada
para trabajar con casi cualquier microprocesador.
 Para poder manejar Interfaz Periférica Programable del 8255 es importante dominar el
lenguaje ensamblador, para poder acoplar los diferentes tipos de microprocesadores
compatibles con el mismo.
 La simulación planteada permitió conocer los modos de operación del PPI 8255,
también se utilizó un CI 74LS245 (Buffer de 8 líneas) para controlar la transmisión de
datos entre los buses.

6. Bibliografía
- Gianoti, J. (2018). “Interfaz paralela PPI”.
Disponible en: http://www.academia.edu/6604833/INTERFAZ_PARALELA_PPI
- Thomas L. Floyd, (2006). “Fundamentos de sistemas digitales”. España, Madrid:
Pearson.
- Canto, C. (nd). “El PPI Intel 8255” Microprocesadores. Disponible en:
http://galia.fc.uaslp.mx/~cantocar/microprocesadores/EL_Z80_PDF_S/16_PPI.PDF
- Ferreira, J. (nd). “Controlador de Interfaz Paralelo Programable (PPI) 8255”.
Disponible en:
http://webapp.pucmm.edu.do/WebSISE/Estudiante/materias/201120122/SD-ITT-327-
T-001/ITT-327-T%20Unidad%20VI-1.%208255.pdf

También podría gustarte