Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Microprocesadores 2013-2
Microprocesadores 2013-2
100 =
+
100
Figura 3.1
La seal digital generada por el sistema de reloj, acta como la seal de sincrona del microprocesador, el cual ejecuta las
instrucciones del programa e interacta con los elementos que conforman al sistema tales como las memorias RAM y ROM
y los puertos de entrada (I) y salida (O) en funcin de los cambios que realiza la seal de reloj, en la figura 3.2 se muestra el
sistema de reloj dentro del esquema de Von Neumann.
Todas las operaciones que realiza un microprocesador para ejecutar una instruccin o para activar un circuito, se ejecutan
en sincrona con los pulsos de reloj proporcionados por el oscilador digital. Es por eso que todos los sistemas de
microprocesador requieren de una base de tiempo sobre la cual trabajar.
El conocimiento de las seales de reloj requeridas permiten elaborar diagramas de tiempo bajo los cuales opera el
microprocesador, haciendo posible sincronizar las seales del microprocesador con los tiempos de acceso, retardo o de
control de sus perifricos. El parmetro ms elemental en la temporizacin de la CPU es conocido como ciclo T, y es igual a
un ciclo completo del sistema de reloj como el que se muestra en la figura 3.3.
Laboratorio de Microprocesadores
Prctica 3
Generador de Reloj para Microprocesador
T
th tl
Facultad de Estudios Superiores Cuautitln UNAM
Prctica 3 Generador de Reloj para Microprocesador 11
Reloj
Microprocesador
Memoria
ROM
(Programa)
Bus de Datos
Memoria
RAM
(Datos)
Puertos de
Entrada
Puertos de
Salida
Bus de Direcciones
Bus de Control
Dispositivos Perifricos
Figura 3.2
Figura 3.3
En la figura 3.4 se muestra uno de los diagramas de tiempo empleados por el microprocesador Z80 para la realizacin del
proceso de decodificar una instruccin almacenada en la memoria ROM, como se puede observar, los cambios en todas las
seales asociadas con el funcionamiento del microprocesador se llevan a cabo en sincrona con la seal de reloj (CLK).
Figura 3.4
Una forma de generar la seal de reloj es emplear compuertas lgicas retroalimentadas, usando resistencias y capacitores.
La figura 3.5 muestra un circuito que emplea compuertas lgicas inversoras.
Facultad de Estudios Superiores Cuautitln UNAM
Prctica 3 Generador de Reloj para Microprocesador 12
Figura 3.5
Para asegurar ms estabilidad en la frecuencia y para acceder a frecuencias ms elevadas, es comn emplear cristales de
cuarzo como elementos de control de la frecuencia de oscilacin. La figura 3.6 A muestra el smbolo de un cristal de cuarzo
piezoelctrico y la figura 3.6 B muestra el circuito equivalente.
(A) (B)
Figura 3.6
En la figura 3.7 se observa un circuito que utiliza un cristal de cuarzo de 4 MHz para fijar la frecuencia de la oscilacin, este
tipo de circuito garantiza oscilaciones estables asociadas con la frecuencia del cristal.
Figura 3.7
Dadas las elevadas frecuencias a las que trabajan algunos microprocesadores, se requieren circuitos que generen seales
confiables y adecuadas a ciertas caractersticas especficas. Esto ha llevado a que algunos microprocesadores tengan, entre
su familia de circuitos complementarios un C.I. temporizador construido especficamente para l. Tal es el caso del
microprocesador 8080 de Intel, el cual usa como circuito temporizador al 8224, un C.I. que proporciona dos fases de reloj,
una seal de READY en combinacin con el segundo reloj y la propia seal de READY.
Otro circuito es el 8284, tambin de Intel, el cual proporciona la temporizacin y dos seales de control para los
microprocesadores 8086 y 8088. Un circuito que lo emplea se muestra en la figura 3.8.
Figura 3.8
74LS04
U1A
1 2
74LS04
U1B
3 4
1K
R2
1K
R1
0.1uF
C1
74LS04
U1C
5 6
Reloj
74LS04
U1A
1 2
74LS04
U1B
3 4
1K
R2
1K
R1
74LS04
U1C
5 6
Reloj
4 MHz
XTAL
Facultad de Estudios Superiores Cuautitln UNAM
Prctica 3 Generador de Reloj para Microprocesador 13
Actividades Previas a la Prctica
1. EI alumno deber realizar la lectura de la prctica de laboratorio.
2. Realizar la simulacin del circuito de la figura 3.5. Considere que la oscilacin del circuito se basa en el ruido y retrasos
en las seales del circuito y por lo tanto puede requerirse de un tiempo de espera para que la seal aparezca en el
osciloscopio del simulador.
3. Traer el circuito armado
Material
2 Resistencias de 1 K, W.
1 Capacitor de 0.01 uF.
1 Capacitor de 0.1 uF
1 Capacitor de 1 uF
1 Circuito integrado 74LS04.
1 Cristal de 4 Mhz.
Equipo
1 Fuente de alimentacin de C.D.
1 Osciloscopio.
1 Tableta de conexiones
1 Multmetro
Procedimiento Experimental
1. Arme cada uno de los circuitos de las figuras 3.5 y 3.7 polarizando los circuitos integrados a un voltaje de 5 V.
2. El circuito de la figura 3.5 se utilizar como el primer elemento del sistema con microprocesador y por lo tanto deber
mantenerse armado para las pruebas posteriores.
Figura 3.9
3. Con el osciloscopio observe la seal de salida de cada uno de los circuitos (terminal 6) y mida los valores indicados en la
tabla 3.1 y dibuje las formas de onda obtenidas para cada uno de los dos circuitos.
Circuito Frecuencia (f) Periodo (T) Tiempo en alto (th) Tiempo en bajo (tl)
Fig 3.5
Fig 3.7
Tabla 3.1
4. Indique cual es el ciclo de trabajo de las seales de reloj obtenidas (que porcentaje del ciclo completo se encuentra la
seal activa en alto).
5. Observe las seales de las terminales 5 de cada uno de los circuitos y dibjelas.
Facultad de Estudios Superiores Cuautitln UNAM
Prctica 3 Generador de Reloj para Microprocesador 14
6. Explique las diferencias existentes entre las seales de las terminales 5 y 6.
7. Cambie el capacitor de 0.1 F a los valores de 0.01 F y 1 F e identifique las variaciones que se presentan en la seal de
reloj del circuito de la figura 3.5.
Cuestionario
1. Qu funcin realiza la compuerta inversora en la salida del circuito.
2. Investigue el circuito 8284 dando la configuracin de pines y dando una breve anotacin funcional de sus terminales.
3. Mencione otros circuitos temporizadores (integrados o discretos) de uso general no cubiertos en la presente prctica.
4. Complemente la informacin dada en la introduccin sobre cristales, acerca de la determinacin de la frecuencia de
oscilacin.
5. Que condiciones de funcionamiento tiene el reloj de salida proporcionado por el circuito 8284.
Facultad de Estudios Superiores Cuautitln UNAM
Prctica 4 Circuito de Autoreset para Microprocesador 15
Tema
2.4 El funcionamiento interno: los diagramas de estado
Objetivos
Implementar un circuito de auto reset para inicializar el funcionamiento del microprocesador Z80.
Comprobar las condiciones que presenta el P Z80 al insertar la seal de reset.
Introduccin
En los microprocesadores la seal de reset se utiliza para llevar al microprocesador a un estado conocido. La seal de
reset inicializa al P Z80 de forma interna del siguiente modo:
Limpia el Flip Flop asociado con las interrupciones mascarables
Limpia el registro contador de programa (PC) y los registros de interrupcin (I) y de refresco de memoria (R)
Selecciona el modo 0 de interrupcin mascarable
De forma externa la seal de reset se refleja en el estado de algunas de sus seales como se indica:
El bus de direcciones y de datos se pone en alta impedancia mientras la seal de reset est activa.
Todas las seales de salida del bus de control se mantienen inactivas.
Adems para que la inicializacin sea exitosa, la seal de reset debe mantenerse activa en bajo por lo menos 3 ciclos
completos de reloj.
Para la realizacin de un circuito de reset, se emplea una malla RC que proporciona un 0 lgico al alimentar al sistema
puesto que el capacitor est originalmente descargado y despus de 5 (constantes de tiempo), el capacitor es cargado
al 99.3% del voltaje de alimentacin de 5V, lo que produce que la seal de reset pase a inactiva. Para lograr la
especificacin de 3 ciclos completos de reloj para una aplicacin correcta del reset, se requiere que el voltaje de carga
del capacitor se mantenga por debajo del voltaje V
IL
considerado como 0 lgico por un tiempo lo suficientemente
largo para que transcurran 3 ciclos de reloj del microprocesador.
5V
V
IL
= 0.8V
5
Reloj
t=0.174
Figura 4.1
Laboratorio de Microprocesadores
Prctica 4
Circuito de Autoreset para Microprocesador
Facultad de Estudios Superiores Cuautitln UNAM
Prctica 4 Circuito de Autoreset para Microprocesador 16
La ecuacin que describe comportamiento de carga del capacitor esta definida por:
() = 5 (1
)
y el tiempo necesario para alcanzar el valor de V
IL
= 0.8 V queda definido por:
= 1
0.8
5
Si se cumplen estas condiciones entonces el microprocesador se auto inicializar al alimentar al circuito completo. Sin
embargo al estar el microprocesador en su funcionamiento normal se requiere ocasionalmente resetear al
microprocesador y eso se puede lograr introduciendo un switch en paralelo a las terminales del capacitor descargndolo
de forma directa y produciendo un estado bajo durante todo el tiempo que el switch permanezca cerrado y la seal de
reset regresar al estado de inactividad (5V) al cargarse nuevamente al capacitor despus de desconectar el switch.
En esta prctica se integrarn el circuito de reloj, reset y microprocesador del esquema de Von Neumann como se
muestra en la figura 4.2.
Reloj
Microprocesador
Memoria
ROM
(Programa)
Bus de Datos
Memoria
RAM
(Datos)
Puertos de
Entrada
Puertos de
Salida
Bus de Direcciones
Bus de Control
Dispositivos Perifricos
Figura 4.2
Actividades Previas a la Prctica
1. EI alumno deber realizar la lectura de la prctica de laboratorio.
2. Obtenga el valor de tiempo terico necesario para alcanzar el valor VIL.
3. Traer el circuito armado
Material
1 Capacitor de 10 uF a 16V o mayor voltaje
1 Resistencia de 1K a W.
1 Switch Push Button normalmente abierto
1 Diodo 1N4001
1 Microprocesador Z80
Circuito de reloj implementado en la prctica anterior
Facultad de Estudios Superiores Cuautitln UNAM
Prctica 4 Circuito de Autoreset para Microprocesador 17
Equipo
1 Fuente de C.D.
1 Osciloscopio
1 Multmetro
1 Punta lgica para prueba de tercer estado
1 Circuito de Leds de prueba
Procedimiento Experimental
1. Implemente el circuito de la figura 4.3 considerando que ya se tiene armado el circuito de reloj y adicione
solamente el circuito de reset y el microprocesador Z80.
Figura 4.3
2. Realiza la conexin en la protoboard utilizando como referencia la fotografa de la figura 4.4
Figura 4.4
1N4001
D1
10k
R3
1uF
C2
VCC
74LS04
U1A
1 2
VCC
74LS04
U1B
3 4
1K
R2
1K
R1
0.1uF
C1 U2 Z80 CPU
A0
30
A1
31
A2
32
A3
33
A4
34
A5
35
A6
36
A7
37
A8
38
A9
39
A10
40
A11
1
A12
2
A13
3
A14
4
A15
5
WAIT
24
INT
16
NMI
17
RST
26
BUSRQ
25
BUSAK
23
CLK
6
IORQ
20
HALT
18
D0
14
D1
15
D2
12
D3
8
D4
7
D5
9
D6
10
D7
13
M1
27
MREQ
19
RD
21
REFSH
28
WR
22
74LS04
U1C
5 6
SW1
RESET
Facultad de Estudios Superiores Cuautitln UNAM
Prctica 4 Circuito de Autoreset para Microprocesador 18
3. El circuito de microprocesador deber alimentarse con 5V. en la terminal 11 y con 0V. en la terminal 29.
4. Observe la seal de reset en la salida del circuito y compruebe su comportamiento al presionar y liberar el botn de
reset (SW1).
5. Grafique la seal de reset indicando los parmetros de voltaje y tiempo, para realizar esta operacin puede utilizar
la funcin de Stop o captura de imagen que poseen los osciloscopios digitales.
6. Empleando el circuito de punta lgica compruebe que mientras est presionado el botn de reset, ambos buses de
direcciones y de datos permanecen en tercer estado.
7. Compruebe el estado de las seales: BUSAK
, HALT
, M1
, REFRESH
, MREQ
, IORQ
, RD
y WR
mientras la seal
de reset est activa (0V) empleando el circuito de leds.
8. Debido a que este sistema an no contiene una memoria ROM de programa, una vez que se libera el botn de
reset, el microprocesador intenta leer la direccin 0000H, pero al estar las terminales del bus de datos al aire,
entonces la lectura es tericamente FFH o basura de forma real, por lo tanto el microprocesador no puede ejecutar
ningn programa lgico.
9. Aun bajo estas condiciones, es posible probar algunas de las seales de salida del bus de control, tales como:
M1
, REFRESH
, MREQ
,
IORQ
,
RD
y WR
, REFRESH
, MREQ
,
IORQ
,
RD
y WR
.
3. Determine cual sera la frecuencia de reloj mnima para poder realizar correctamente el proceso de auto reset,
calclelo en funcin de la ecuacin de carga del capacitor.
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 5 Memoria EPROM o Memoria de Programa 19
Tema
3.2 Estructura de los sistemas de memoria
Objetivos
El alumno realizar la conexin de una memoria EEPROM a un microprocesador Z80.
El alumno programar una GAL para generar el decodificador de direcciones.
El alumno crear y probar un programa de prueba en lenguaje ensamblador que ser ejecutado en el
microprocesador Z80.
Introduccin
Los microprocesadores son circuitos de muy alta escala de integracin que son capaces de ejecutar una serie de cdigos
binarios proporcionados en secuencia sobre sus terminales de datos y controlados por las terminales de direcciones y
por las seales de control, pero dichos cdigos que conforman un programa, no pueden almacenarse dentro del
microprocesador y por lo tanto en los sistemas de microprocesadores es necesario aadir un sistema de memoria no
voltil que contenga al programa.
Esta memoria de programa es tpicamente una memoria de solo lectura o memoria ROM (Read Only Memory) que es
programada previamente, en forma independiente del sistema de microprocesador, dentro de ella y en cada una de sus
localidades se almacena un dato binario que representa el cdigo de mquina de una instruccin en lenguaje
ensamblador o parte del cdigo de mquina de una instruccin mayor.
A esta memoria se le denomina la memoria de programa.
Reloj
Microprocesador
Memoria
ROM
(Programa)
Bus de Datos
Memoria
RAM
(Datos)
Puertos de
Entrada
Puertos de
Salida
Bus de Direcciones
Bus de Control
Dispositivos Perifricos
Figura 5.1 Memoria de programa ROM en el esquema de Von Neumann
Laboratorio de Microprocesadores
Prctica 5
Memoria EEPROM o Memoria de Programa
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 5 Memoria EPROM o Memoria de Programa 20
Utilizando las seales de sus buses, los microprocesadores leen, trasladan, decodifican y ejecutan cada uno de los
cdigos contenidos en la memoria ROM y con estas acciones el sistema de microprocesador es capaz de realizar la
ejecucin lgica de un programa en lenguaje ensamblador.
En esta prctica se realizar la conexin de una memoria EEPROM AT28C16, figura 5.2, con una capacidad de (2K x 8)
que se utilizar para el almacenamiento de los programas de prueba del sistema de microprocesador.
Figura 5.2 Memoria EEPROM AT28C16
Adems se comprobar el funcionamiento de un programa de prueba muy simple que nos permita asegurar que el
sistema de microprocesador est decodificando correctamente los cdigos de mquina de las instrucciones
almacenadas en la EEPROM.
El programa de prueba realizar la carga del acumulador (A) del microprocesador Z80 con el valor de 00H en 8 bits y lo
trasladar hacia el puerto 05H, posteriormente se incrementar el valor del acumulador y se realizar un ciclo infinito de
envi al puerto 05H, este programa producir un contador binario natural ascendente en el bus de datos del
microprocesador, pero debido a que el sistema no cuenta an con puertos, el dato solo ser visible en el bus de datos
pero en combinacin con los cdigos de mquina que son trasladados desde la memoria EPROM hacia el
microprocesador.
En la figura 5.3 se muestra el mapa de memoria del microprocesador Z80 con un tamao de 64K x 8 y la posicin que
ocupar la EEPROM dentro del mapa, desde la direccin 0000H hasta la 07FFH y la asignacin de los bits de
direccionamiento.
16 bits
5 bits 11 bits
Posicin Localidad
EEPROM
AT28C16
2K x 8
64K
65536 localidades
de memoria
8 bits
0000H
07FFH
SIN USAR
Figura 5.3 Mapa de memoria y Asignacin de bits de direccionamiento
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 5 Memoria EPROM o Memoria de Programa 21
La memoria se conectar a partir de la direccin 0000H ya que al insertar el pulso de RESET, este microprocesador
inicializa el valor del PC a cero y es en ese lugar donde debe estar el cdigo de mquina de la primera instruccin. Este
microprocesador emplea 16 bits para el direccionamiento de la memoria, de los cuales se emplearn los 11 bits menos
significativos para seleccin de la localidad interna de la memoria y los 5 bits ms significativos se usarn para la
decodificacin de la posicin de la memoria EEPROM dentro del mapa de memoria.
Para la activacin de la memoria en el instante correcto se debern considerar adems de los cinco bits de direcciones
(A11 A15) = 00000, las seales MREQ = 0 y RD = 0, las que en conjunto generarn la seal de activacin CE = 0 de la
memoria, esto se realizar a travs de una compuerta OR de 7 entradas como se muestra en la figura 5.4 e
implementada dentro de la GAL22V10 programable.
Figura 5.4 Circuito de activacin de la memoria EEPROM
El sistema consta de un dispositivo GAL22V10D como el mostrado en la figura 5.5 que se emplear para implementar el
sistema de decodificacin de direcciones y permitir as realizar la activacin de la memoria EEPROM en la posicin y
localidad correcta.
Figura 5.5 Circuito para la implementacin del decodificador de direcciones.
Actividades Previas
1. EI alumno deber realizar la lectura de la prctica de laboratorio.
2. El alumno programar la memoria AT28C16 con el cdigo de mquina mostrado en la figura 5.9, considerando que
en cada localidad debe grabarse un byte.
3. El alumno programar el dispositivo lgico programable (PLD) GAL22V10 con la funcin de la compuerta OR de 7
entradas mostrada en la figura 5.10.
4. Traer el circuito armado
Material
1 Sistema mnimo con Microprocesador, Circuito de reloj y Circuito de Reset
1 Memoria AT28C16 EEPROM de 2K x 8
1 Circuito integrado GAL22V10
1 Capacitor de 10 uF.
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 5 Memoria EPROM o Memoria de Programa 22
1
N
4
0
0
1
D
1
1
0
k
R
3
1
u
F
C
2
U
n
i
v
e
r
s
i
d
a
d
N
a
c
i
o
n
a
l
A
u
t
n
o
m
a
d
e
M
x
i
c
o
F
a
c
u
l
t
a
d
d
e
E
s
t
u
d
i
o
s
S
u
p
e
r
i
o
r
e
s
C
u
a
u
t
i
t
l
n
S
i
s
t
e
m
a
d
e
M
i
c
r
o
p
r
o
c
e
s
a
d
o
r
Z
8
0
M
.
e
n
T
I
.
J
o
r
g
e
B
u
e
n
d
a
G
m
e
z
V
C
C
U
4
A
T
2
8
C
1
6
A
0
8
A
1
7
A
2
6
A
3
5
A
4
4
A
5
3
A
6
2
A
7
1
A
8
2
3
A
9
2
2
A
1
0
1
9
D
0
9
D
1
1
0
D
2
1
1
D
3
1
3
D
4
1
4
D
5
1
5
D
6
1
6
D
7
1
7
C
E
1
8
O
E
2
0
W
E
2
1
V
C
C
U
3
G
A
L
2
2
V
1
0
I
/
C
L
K
1
I
2
I
3
I
4
I
5
I
6
I
/
O
1
4
I
/
O
1
5
I
/
O
1
6
I
/
O
1
7
I
/
O
1
9
I
/
O
2
0
I
/
O
2
1
I
/
O
2
2
I
/
O
1
8
I
/
O
2
3
I
7
I
8
I
9
I
1
0
I
1
1
I
1
3
7
4
L
S
0
4
U
1
A
1
2
V
C
C
C
i
r
c
u
i
t
o
V
C
C
G
N
D
7
4
L
S
0
4
U
1
1
4
7
Z
8
0
C
P
U
U
2
1
1
2
9
G
A
L
2
2
V
1
0
D
U
3
2
4
1
2
A
T
2
8
C
1
6
U
4
2
4
1
2
7
4
L
S
0
4
U
1
B
3
4
1
K
R
2
1
K
R
1
0
.
1
u
F
C
1
U
2
Z
8
0
C
P
U
A
0
3
0
A
1
3
1
A
2
3
2
A
3
3
3
A
4
3
4
A
5
3
5
A
6
3
6
A
7
3
7
A
8
3
8
A
9
3
9
A
1
0
4
0
A
1
1
1
A
1
2
2
A
1
3
3
A
1
4
4
A
1
5
5
W
A
I
T
2
4
I
N
T
1
6
N
M
I
1
7
R
S
T
2
6
B
U
S
R
Q
2
5
B
U
S
A
K
2
3
C
L
K
6
I
O
R
Q
2
0
H
A
L
T
1
8
D
0
1
4
D
1
1
5
D
2
1
2
D
3
8
D
4
7
D
5
9
D
6
1
0
D
7
1
3
M
1
2
7
M
R
E
Q
1
9
R
D
2
1
R
E
F
S
H
2
8
W
R
2
2
7
4
L
S
0
4
U
1
C
5
6
S
W
1
R
E
S
E
T
Procedimiento experimental
1. Implemente el circuito mostrado en la figura 5.6 considerando que ya se tienen armados los circuitos de reloj y
reset y solo debern adicionarse las memorias EEPROM AT28C16 y el dispositivo lgico programable GAL22V10D.
Figura 5.6
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 5 Memoria EPROM o Memoria de Programa 23
2. La figura 5.7 muestra el circuito armado en 2 protoboard.
Figura 5.7 Circuito implementado en 2 Protoboard
3. Realice el siguiente programa en lenguaje ensamblador y obtenga el cdigo de mquina, tal y como se muestra en
las figuras 5.8 y 5.9. Emplee para ello el simulador de lenguaje ensamblador proporcionado en la pgina:
http://jbuendiag.unlugar.com
Figura 5.8 Programa de conteo empleando el acumulador y el puerto 05H
Figura 5.9 Localidad de memoria y cdigo de mquina del programa
4. Programe la memoria EEPROM en el programador universal empleando el archivo con terminacin HEX.
5. Escriba la funcin decodificadora de direccin en un proyecto de WINCUPL tal y como se muestra en la figura 5.10.
6. Programe la GAL y pruebe el sistema completo para comprobar la presencia de los datos y las instrucciones en el
bus de datos del microprocesador, para ello deber conectar el circuito de leds y cambiar el capacitor del reloj por
un capacitor de 10 uF, lo cual reducir la velocidad del reloj y permitir observar los cambios del bus de datos.
7. Obtenga la grfica de la seal de activacin de la memoria EEPROM.
INICIO: LD A,00H ;Carga el acumulador con cero
CICLO: OUT (05H),A ;Saca el valor del acumulador por el puerto 05H
INC A ;Incrementa el valor del acumulador en 1
JP CICLO ;Salta a la etiqueta CICLO
END
0000 3E00 INICIO: LD A,00H
0002 D305 CICLO: OUT (05H),A
0004 3C INC A
0005 C30200 JP CICLO
0008 END
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 5 Memoria EPROM o Memoria de Programa 24
Figura 5.10 Programacin de la GAL para decodificacin de direcciones
Cuestionario
1. Calcule el tiempo de ejecucin del programa de las figura 5.8 considerando un reloj de 4MHz. y la duracin de cada
una de las instrucciones que intervienen, especificada en las tablas de instrucciones del microprocesador Z80.
2. Disee un programa en lenguaje ensamblador que genere un conteo ascendente descendente en 8 bits y
comprubelo empleando el simulador, entregue los resultados de la simulacin a su profesor de laboratorio.
Name deco_EEprom ;
PartNo 00 ;
Date 18/02/2012 ;
Revision 01 ;
Designer Jorge Buendia ;
Company FESC ;
Assembly None ;
Location ;
Device g22v10 ;
/* *************** INPUT PINS *********************/
PIN 1 = A11 ; /* */
PIN 2 = A12 ; /* */
PIN 3 = A13 ; /* */
PIN 4 = A14 ; /* */
PIN 5 = A15 ; /* */
PIN 6 = RD ; /* */
PIN 8 = MREQ ; /* */
/* *************** OUTPUT PINS *********************/
PIN 22 = CE ; /* */
CE = A11 # A12 # A13 # A14 # A15 # MREQ # RD ;
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 6 Memoria SRAM o Memoria de Datos 25
Tema
3.2 Estructura de los sistemas de memoria
Objetivos
El alumno realizar la conexin de un circuito de memoria SRAM 6116 al sistema de microprocesador Z80
El alumno programar una GAL para generar el decodificador de direcciones para la memoria SRAM.
El alumno crear un programa que utilice subrutinas y el almacenamiento de datos en la memoria SRAM.
Introduccin
El siguiente elemento en el esquema de Von Neumann es la memoria SRAM o memoria de datos, la cual se emplea
dentro del sistema mnimo para poder almacenar datos binarios que pueden ser empleados por el procesador para
realizar sus operaciones o simplemente como almacenamiento de informacin en forma de tablas.
La figura 6.1 nos muestra este elemento.
Reloj
Microprocesador
Memoria
ROM
(Programa)
Bus de Datos
Memoria
RAM
(Datos)
Puertos de
Entrada
Puertos de
Salida
Bus de Direcciones
Bus de Control
Dispositivos Perifricos
Figura 6.1 Memoria RAM en el esquema de Von Neumann
La memoria de datos se emplear para el almacenamiento de la informacin del usuario (variables, tablas, caracteres,
etc.) y para el establecimiento de la pila o Stack necesaria para la ejecucin de las subrutinas que se puedan incluir en los
programas en lenguaje ensamblador.
Laboratorio de Microprocesadores
Prctica 6
Memoria SRAM o Memoria de Datos
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 6 Memoria SRAM o Memoria de Datos 26
La SRAM tiene la caracterstica de ser una memoria voltil y esttica y por lo tanto mantiene su informacin mientras el
circuito est alimentado elctricamente sin requerir de refresco de memoria. La DRAM es voltil y dinmica, por lo tanto
si requiere de refresco de memoria peridico. Para la implementacin de este sistema emplearemos memoria SRAM
debido a que no requiere del circuito de refresco y reduce el tamao del sistema.
Para la implementacin de este elemento utilizaremos una memoria SRAM 6116 con capacidad de 2k x 8 como la que se
muestra en la figura 6.2.
Figura 6.2 Memoria SRAM 6116 de 2k x 8
Esta conexin requiere la modificacin de las funciones de Boole establecidas dentro de la GAL para incluir la
caracterstica de activacin de la memoria SRAM.
La direccin de memoria donde se localizar la SRAM debe seleccionarse por encima del espacio ocupado por la
memoria EEPROM que fue conectada a partir de la localidad 0000H y hasta la direccin 07FFH (2K x 8), la ubicacin de la
memoria SRAM se establecer en el valor 3000H, el cual, como podemos observar no es consecutivo a la memoria
EEPROM, dejando un espacio libre desde la posicin 0800H hasta la 2FFFH, esto es una prctica comn en sistemas de
microprocesadores ya que previene el espacio suficiente para futuras ampliaciones de la memoria. En la figura 6.3 se
muestra el mapa de memoria.
Figura 6.3 Posicin de la memoria SRAM dentro del mapa de memoria.
EEPROM
AT28C16
2K x 8
64K
65536 localidades
de memoria
8 bits
0000H
07FFH
SRAM
6116
2K x 8
3000H
37FFH
SIN USAR
SIN USAR
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 6 Memoria SRAM o Memoria de Datos 27
Para realizar la prueba de funcionamiento de todo el sistema se realizar un programa que compruebe la lectura y
escritura de la memoria SRAM para almacenamiento y su utilizacin como Stack o Pila.
El programa de prueba realizar el almacenamiento de 5 datos en la memoria SRAM a partir de la localidad 3000H,
tomados desde la instrucciones del programa y despus retomar los valores almacenados sumndolos y almacenando
el resultado en la localidad 3010H, para despus enviar el dato al puerto 04H. La posicin de la Pila se establecer en la
ltima localidad del circuito de SRAM y por lo tanto el valor del registro SP ser 37FFH.
Actividades Previas
1. EI alumno deber realizar la lectura de la prctica de laboratorio.
2. El alumno programar la memoria AT28C16 con el cdigo de mquina mostrado en la figura 6.5, considerando que
en cada localidad debe grabarse un byte.
3. El alumno programar el dispositivo lgico programable (PLD) GAL22V10 con la funcin mostrada en la figura 6.6.
4. Traer el circuito armado
Material
1 Sistema mnimo con Microprocesador, Circuito de reloj, Circuito de Reset, Memoria EEPROM y decodificador de
direcciones con GAL.
1 Circuito Integrado SRAM 6116.
Equipo
1 Fuente de C.D.
1 Osciloscopio
1 Multmetro
1 Punta lgica para prueba de tercer estado
1 Circuito de Leds de prueba
Procedimiento Experimental
1. Implemente el circuito mostrado en la figura 6.7 considerando que ya se tiene armado el sistema mnimo de
microprocesador incluyendo hasta la memoria EEPROM y solo deber adicionarse el circuito integrado 6116 que
integra la memoria SRAM.
2. Utilice la figura 6.4 para guiarse en la implementacin fsica.
Figura 6.4 Implementacin de memoria SRAM.
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 6 Memoria SRAM o Memoria de Datos 28
3. Realice el siguiente programa en lenguaje ensamblador, tal y como se muestra en la figura 6.5 y obtenga el cdigo
de mquina.
Figura 6.5 Programa de prueba
4. Programe la memoria EEPROM en el programador universal con el archivo con terminacin HEX.
5. Escriba la funcin decodificadora de direccin en un proyecto de WINCUPL tal y como se muestra en la figura 6.6.
Figura 6.6 Habilitacin de EEPROM y SRAM con la GAL
Name deco_EEprom_SRAM ;
PartNo 00 ;
Date 18/02/2012 ;
Revision 01 ;
Designer Jorge Buendia ;
Company FESC;
Assembly None ;
Location ;
Device g22v10 ;
/* *************** INPUT PINS *********************/
PIN 1 = A11 ; /* */
PIN 2 = A12 ; /* */
PIN 3 = A13 ; /* */
PIN 4 = A14 ; /* */
PIN 5 = A15 ; /* */
PIN 6 = RD ; /* */
PIN 7 = WR ; /* */
PIN 8 = MREQ ; /* */
/* *************** OUTPUT PINS ******************/
PIN 23 = CE_SRAM ; /* */
PIN 22 = CE ;
CE = A15 # A14 # A13 # A12 # A11 # RD # MREQ ;
CE_SRAM = A15 # A14 # !A13 # !A12 # A11 # MREQ # !(RD $ WR);
INICIO: LD SP,37FFH
LD A,05H
LD (3000H),A
LD A,09H
LD (3001H),A
LD A,23H
LD (3002H),A
LD A,06H
LD (3003H),A
LD A,0DH
LD (3004H),A
LD A,00H
LD (3010H),A
LD B,05H
LD HL,3000H
CICLO: CALL SUMA
DJNZ CICLO
FIN: OUT (04H),A
JP FIN
SUMA: ADD A,(HL)
INC HL
LD (3010H),A
RET
END
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 6 Memoria SRAM o Memoria de Datos 29
6. Programe la GAL y pruebe el sistema completo para comprobar el funcionamiento del sistema.
7. Compruebe que el cdigo se identifica en forma correcta.
Cuestionario
1. Es posible llamar una y otra vez en forma recursiva a las subrutinas con la estructura de la pila de este
microprocesador ?
2. Porque se establece la direccin inicial de la pila en la direccin final de la SRAM y no al principio.
3. Justifique la expresin de Boole empleada para la activacin de la SRAM.
4. Explique el concepto LIFO empleado en la pila del microprocesador Z80.
5. Como identifica el microprocesador a que memoria se est accediendo.
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 6 Memoria SRAM o Memoria de Datos 30
1
N
4
0
0
1
D
1
1
0
k
R
3
1
u
F
C
2
U
n
i
v
e
r
s
i
d
a
d
N
a
c
i
o
n
a
l
A
u
t
n
o
m
a
d
e
M
x
i
c
o
F
a
c
u
l
t
a
d
d
e
E
s
t
u
d
i
o
s
S
u
p
e
r
i
o
r
e
s
C
u
a
u
t
i
t
l
n
S
i
s
t
e
m
a
d
e
M
i
c
r
o
p
r
o
c
e
s
a
d
o
r
Z
8
0
M
.
e
n
T
I
.
J
o
r
g
e
B
u
e
n
d
a
G
m
e
z
V
C
C
U
4
A
T
2
8
C
1
6
A
0
8
A
1
7
A
2
6
A
3
5
A
4
4
A
5
3
A
6
2
A
7
1
A
8
2
3
A
9
2
2
A
1
0
1
9
D
0
9
D
1
1
0
D
2
1
1
D
3
1
3
D
4
1
4
D
5
1
5
D
6
1
6
D
7
1
7
C
E
1
8
O
E
2
0
W
E
2
1
V
C
C
U
3
G
A
L
2
2
V
1
0
I
/
C
L
K
1
I
2
I
3
I
4
I
5
I
6
I
/
O
1
4
I
/
O
1
5
I
/
O
1
6
I
/
O
1
7
I
/
O
1
9
I
/
O
2
0
I
/
O
2
1
I
/
O
2
2
I
/
O
1
8
I
/
O
2
3
I
7
I
8
I
9
I
1
0
I
1
1
I
1
3
7
4
L
S
0
4
U
1
A
1
2
V
C
C
C
i
r
c
u
i
t
o
V
C
C
G
N
D
7
4
L
S
0
4
U
1
1
4
7
Z
8
0
C
P
U
U
2
1
1
2
9
G
A
L
2
2
V
1
0
D
U
3
2
4
1
2
A
T
2
8
C
1
6
U
4
2
4
1
2
6
1
1
6
S
R
A
M
U
5
2
4
1
2
U
5
6
1
1
6
A
0
8
A
1
7
A
2
6
A
3
5
A
4
4
A
5
3
A
6
2
A
7
1
A
8
2
3
A
9
2
2
A
1
0
1
9
C
E
1
8
O
E
2
0
W
E
2
1
D
0
9
D
1
1
0
D
2
1
1
D
3
1
3
D
4
1
4
D
5
1
5
D
6
1
6
D
7
1
7
7
4
L
S
0
4
U
1
B
3
4
1
k
R
2
1
k
R
1
0
.
1
u
F
C
1
U
2
Z
8
0
C
P
U
A
0
3
0
A
1
3
1
A
2
3
2
A
3
3
3
A
4
3
4
A
5
3
5
A
6
3
6
A
7
3
7
A
8
3
8
A
9
3
9
A
1
0
4
0
A
1
1
1
A
1
2
2
A
1
3
3
A
1
4
4
A
1
5
5
W
A
I
T
2
4
I
N
T
1
6
N
M
I
1
7
R
S
T
2
6
B
U
S
R
Q
2
5
B
U
S
A
K
2
3
C
L
K
6
I
O
R
Q
2
0
H
A
L
T
1
8
D
0
1
4
D
1
1
5
D
2
1
2
D
3
8
D
4
7
D
5
9
D
6
1
0
D
7
1
3
M
1
2
7
M
R
E
Q
1
9
R
D
2
1
R
E
F
S
H
2
8
W
R
2
2
7
4
L
S
0
4
U
1
C
5
6
S
W
1
R
E
S
E
T
Figura 6.7 Diagrama de conexiones del sistema mnimo
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 7 Puertos de Entrada Salida (Input / Output) 31
Tema
8.3. Interfaces integrados: PIA, PIO, PPI y similares
Objetivos
El alumno realizar la conexin de un circuito de interfaz perifrica programable (PPI 8255) a un
microprocesador Z80.
El alumno programar una GAL para generar el decodificador de direcciones para el circuito de puertos 8255.
El alumno ensamblar y probar un programa que genera un patrn de corrimiento en 8 leds conectado en el
puerto A del circuito PPI 8255.
Introduccin
Los siguientes elementos en el esquema de Von Neumann son los puertos de entrada /salida o (input / output) los
cuales le permiten al microprocesador conectarse con los dispositivos perifricos y de esta manera trasladar informacin
hacia el microprocesador o del microprocesador hacia los dispositivos perifricos. La figura 7.1 nos muestra estos
elementos.
Reloj
Microprocesador
Memoria
ROM
(Programa)
Bus de Datos
Memoria
RAM
(Datos)
Puertos de
Entrada
Puertos de
Salida
Bus de Direcciones
Bus de Control
Dispositivos Perifricos
Figura 7.1 Puertos de entrada /salida (I / O) en el esquema de Von Neumann
Los puertos pueden ser implementados con registros de flip- flops o con circuitos integrados programables que
contienen todos los elementos necesarios para interfazar de forma correcta a los dispositivos perifricos, ahorrando
espacio y complejidad a las conexiones.
Laboratorio de Microprocesadores
Prctica 7
Puertos de Entrada Salida (Input / Output)
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 7 Puertos de Entrada Salida (Input / Output) 32
En esta prctica emplearemos el circuito integrado 8255 que contiene 3 puertos programables de 8 bits cada uno,
denominados puerto A, puerto B y puerto C y un puerto de control de 8 bits con el cual se configura el funcionamiento
del circuito. Este circuito es un integrado PPI 8255 como el mostrado en la figura 7.2
8
8
8
A
B
CH
Puerto de
Control
4
D0-7
A1
A0
RESET
Port A
PA0-7
Port B
PB0-7
Port C
PC4-7
PC0-3
/RD
/WR
/CS
Vcc (+5V)
GND (0V)
CL
4
Figura 7.2 Circuito PPI 8255
Este circuito pertenece a la familia de circuitos desarrollados por INTEL para el soporte de sus microprocesadores 80XXX
y por lo tanto ya incluye las seales para el control de lectura y escritura, as como para realizar una inicializacin
externa y solo requieren la activacin correcta para las direcciones de los 3 puertos de usuario y el puerto de control. La
figura 7.3 muestra la asignacin de terminales del PPI 8255.
Figura 7.3 Asignacin de terminales del PPI 8255
Este dispositivo contiene 4 puertos; 3 de usuario y uno de control y por lo tanto solo necesita de 2 lneas de direcciones
(A0 y A1) para definir el puerto al que deber tener acceso segn la tabla 7.1.
A0 A1 Puerto
0 0 Puerto A
0 1 Puerto B
1 0 Puerto C
1 1 Puerto de Control
Tabla 7.1 Asignacin de puertos
En la figura 7.4 se muestra el mapa de puertos correspondiente al sistema de microprocesador, donde se observa que la
posicin del circuito PPI 8255 ser en las primeras cuatro posiciones del mapa (puertos 00H, 01H, 02H y 03H) puesto que
no hay ningn otro puerto conectado y no se producirn conflictos.
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 7 Puertos de Entrada Salida (Input / Output) 33
Figura 7.4 Mapa de Puertos
Para realizar la prueba de funcionamiento de todo el sistema se utilizar un programa que generar un registro de
corrimiento de 8 bits en el puerto A con espaciamiento de 1 seg entre cambio y cambio y una duracin de encendido de
cada led de 100 ms. Para poder ajustar la duracin de los cambios ser necesario cambiar el capacitor del circuito de
reloj, por un cristal de cuarzo de 4 MHz.
Este programa permite la utilizacin de subrutinas debido a que ya se cuenta con memoria SRAM y ya se puede
establecer la localidad donde se localizar la pila, que es la 30FFH.
Para configurar el PPI 8255 con todos sus puertos de salida en modo 0 se deber escribir la palabra de control (80H) de 8
bits en el puerto 03 de acuerdo a la siguiente asignacin mostrada en la figura 7.5.
Figura 7.5 Asignacin de bits para la configuracin del PPI 8255
La inclusin de este circuito requiere la modificacin de las funciones de Boole establecidas dentro de la GAL para incluir
la caracterstica de activacin del circuito 8255.
Actividades Previas
1. EI alumno deber realizar la lectura de la prctica de laboratorio.
2. El alumno programar la memoria AT28C16 con el cdigo de mquina mostrado en la figura 7.7, considerando que
en cada localidad debe grabarse un byte.
3. El alumno programar el dispositivo lgico programable (PLD) GAL22V10 con la funcin mostrada en la figura 7.8.
4. Traer el circuito armado
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 7 Puertos de Entrada Salida (Input / Output) 34
Material
1 Sistema mnimo con Microprocesador Z80, Circuito de reloj, Circuito de Reset, Memoria EEPROM AT28C16, memoria
SRAM 6116 y decodificador de direcciones con la GAL22V10.
1 Circuito Integrado PPI 8255.
1 Cristal de cuarzo de 4 MHz.
Equipo
1 Fuente de C.D.
1 Osciloscopio
1 Multmetro
1 Punta lgica para prueba de tercer estado
1 Circuito de Leds de prueba
Procedimiento Experimental
1. Implemente el circuito mostrado en la figura 7.9 considerando que ya se tiene armado el sistema mnimo de
microprocesador incluyendo las 2 memorias: EEPROM y SRAM y solo deber adicionarse el circuito integrado PPI
8255.
2. Utilice la figura 7.6 para guiarse en la implementacin fsica.
Figura 7.6 Sistema mnimo con puertos de entrada - salida
3. Realice el programa en lenguaje ensamblador que se muestra en la figura 7.7 y obtenga el cdigo de mquina.
4. Programe la memoria EEPROM en el programador universal con el archivo con terminacin HEX.
5. Escriba la funcin decodificadora de direccin en un proyecto de WINCUPL tal y como se muestra en la figura 7.8.
6. Programe la GAL con el archivo con terminacin .JED generado en el programa Wincupl y pruebe el sistema
completo.
7. Conecte el circuito probador de 8 leds en el puerto A del PPI 8255 y compruebe el funcionamiento del registro de
corrimiento.
8. Conecte el osciloscopio en el bit 0 del puerto A y mida los tiempos de encendido y apagado para comprobar que se
cumplen los tiempos del diseo.
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 7 Puertos de Entrada Salida (Input / Output) 35
Figura 7.7 Programa de Registro de corrimiento sobre el puerto A
Figura 7.8 Programa de Decodificacin del sistema mnimo
INICIO: LD SP,30FFH
LD A,80H
OUT (03H),A
LD A,01H
LD HL,3000H
LD (HL),A
CICLO: LD A,(HL)
OUT (00H),A
CALL CIEN_MS
LD A,00H
OUT (00H),A
CALL SEGUNDO
RLC (HL)
JP CICLO
CIEN_MS: LD B,6FH
TIEMPOA: LD D,0FFH
TIEMPOB: DEC D
JP NZ,TIEMPOB
DEC B
JP NZ,TIEMPOA
RET
SEGUNDO: LD C,0AH
SEG2: CALL CIEN_MS
DEC C
JP NZ,SEG2
RET
END
Name UNAMZ80 ;
PartNo 00 ;
Date 24/04/2012 ;
Revision 01 ;
Designer Jorge Buendia Gomez ;
Company UNAM ;
Assembly None ;
Location ;
Device g22v10 ;
/****** INPUT PINS *****/
PIN 1 = A11 ;
PIN 2 = A12 ;
PIN 3 = A13 ;
PIN 4 = A14 ;
PIN 5 = A15 ;
PIN 6 = RD ;
PIN 7 = WR ;
PIN 8 = MREQ ;
PIN 9 = IORQ ;
PIN 10 = RST ;
PIN 11 = A2 ;
PIN 13 = A3 ;
PIN 14 = A4 ;
/**** OUTPUT PINS ******/
PIN 23 = CE_SRAM ;
PIN 22 = CE_EEPROM ;
PIN 21 = CE_PPI ;
PIN 20 = RESET ;
CE_SRAM = A15 # A14 # !A13 # !A12 # A11 # MREQ # !(RD $ WR);
CE_EEPROM = A15 # A14 # A13 # A12 # A11 # MREQ # RD;
CE_PPI = A4 # A3 # A2 # IORQ # !(RD $ WR);
RESET = !RST;
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 7 Puertos de Entrada Salida (Input / Output) 36
U
2
Z
8
0
C
P
U
A
0
3
0
A
1
3
1
A
2
3
2
A
3
3
3
A
4
3
4
A
5
3
5
A
6
3
6
A
7
3
7
A
8
3
8
A
9
3
9
A
1
0
4
0
A
1
1
1
A
1
2
2
A
1
3
3
A
1
4
4
A
1
5
5
W
A
I
T
2
4
I
N
T
1
6
N
M
I
1
7
R
S
T
2
6
B
U
S
R
Q
2
5
B
U
S
A
K
2
3
C
L
K
6
I
O
R
Q
2
0
H
A
L
T
1
8
D
0
1
4
D
1
1
5
D
2
1
2
D
3
8
D
4
7
D
5
9
D
6
1
0
D
7
1
3
M
1
2
7
M
R
E
Q
1
9
R
D
2
1
R
E
F
S
H
2
8
W
R
2
2
7
4
L
S
0
4
U
1
C
5
6
S
W
1
R
E
S
E
T
C
i
r
c
u
i
t
o
V
C
C
G
N
D
7
4
L
S
0
4
U
1
1
4
7
Z
8
0
C
P
U
U
2
1
1
2
9
G
A
L
2
2
V
1
0
D
U
3
2
4
1
2
A
T
2
8
C
1
6
U
4
2
4
1
2
6
1
1
6
S
R
A
M
U
5
2
4
1
2
P
P
I
8
2
5
5
U
6
2
6
7
1
N
4
0
0
1
D
1
1
0
k
R
3
1
u
F
C
2
U
n
i
v
e
r
s
i
d
a
d
N
a
c
i
o
n
a
l
A
u
t
n
o
m
a
d
e
M
x
i
c
o
F
a
c
u
l
t
a
d
d
e
E
s
t
u
d
i
o
s
S
u
p
e
r
i
o
r
e
s
C
u
a
u
t
i
t
l
n
S
i
s
t
e
m
a
d
e
M
i
c
r
o
p
r
o
c
e
s
a
d
o
r
Z
8
0
M
.
e
n
T
I
.
J
o
r
g
e
B
u
e
n
d
a
G
m
e
z
V
C
C
U
4
A
T
2
8
C
1
6
A
0
8
A
1
7
A
2
6
A
3
5
A
4
4
A
5
3
A
6
2
A
7
1
A
8
2
3
A
9
2
2
A
1
0
1
9
D
0
9
D
1
1
0
D
2
1
1
D
3
1
3
D
4
1
4
D
5
1
5
D
6
1
6
D
7
1
7
C
E
1
8
O
E
2
0
W
E
2
1
V
C
C
U
3
G
A
L
2
2
V
1
0
I
/
C
L
K
1
I
2
I
3
I
4
I
5
I
6
I
/
O
1
4
I
/
O
1
5
I
/
O
1
6
I
/
O
1
7
I
/
O
1
9
I
/
O
2
0
I
/
O
2
1
I
/
O
2
2
I
/
O
1
8
I
/
O
2
3
I
7
I
8
I
9
I
1
0
I
1
1
I
1
3
7
4
L
S
0
4
U
1
A
1
2
V
C
C
U
6
8
2
5
5
D
0
3
4
D
1
3
3
D
2
3
2
D
3
3
1
D
4
3
0
D
5
2
9
D
6
2
8
D
7
2
7
R
D
5
W
R
3
6
A
0
9
A
1
8
R
E
S
E
T
3
5
C
S
6
P
A
0
4
P
A
1
3
P
A
2
2
P
A
3
1
P
A
4
4
0
P
A
5
3
9
P
A
6
3
8
P
A
7
3
7
P
B
0
1
8
P
B
1
1
9
P
B
2
2
0
P
B
3
2
1
P
B
4
2
2
P
B
5
2
3
P
B
6
2
4
P
B
7
2
5
P
C
0
1
4
P
C
1
1
5
P
C
2
1
6
P
C
3
1
7
P
C
4
1
3
P
C
5
1
2
P
C
6
1
1
P
C
7
1
0
U
5
6
1
1
6
A
0
8
A
1
7
A
2
6
A
3
5
A
4
4
A
5
3
A
6
2
A
7
1
A
8
2
3
A
9
2
2
A
1
0
1
9
C
E
1
8
O
E
2
0
W
E
2
1
D
0
9
D
1
1
0
D
2
1
1
D
3
1
3
D
4
1
4
D
5
1
5
D
6
1
6
D
7
1
7
7
4
L
S
0
4
U
1
B
3
4
1
k
R
2
1
k
R
1
0
.
1
u
F
C
1
Figura 7.9 Sistema mnimo con puertos de entrada y salida
Facultad de Estudios Superiores Cuautitln UNAM
Prctica # 7 Puertos de Entrada Salida (Input / Output) 37
Cuestionario
1. Calcule el tiempo requerido por el programa para ejecutarse, tomando en cuenta el nmero de ciclos de reloj
necesarios para cada una de las instrucciones.
2. Determine la palabra de control necesaria para configurar el PPI con puerto A bidireccional en modo 2 , puerto B de
salida en modo 0 y los bits restantes del puerto C como salida.
3. Explique el funcionamiento del programa empleado en este sistema.
4. Justifique la utilizacin de las ecuaciones de decodificacin del sistema empleadas en la GAL.
Prcticas de Microprocesadores
Prctica #8 Conexin de Dispositivo Perifrico de Entrada (Teclado) 38
Tema
6.1.1. Control de dispositivos con tcnicas de programacin
Objetivos
El alumno realizar la conexin de un teclado matricial telefnico de 12 teclas al sistema de microprocesador.
El alumno integrar un decodificador de teclado matricial MM74C922.
El alumno programar una GAL para apoyar el funcionamiento del decodificador MM74C922.
El alumno crear y probar un programa en lenguaje ensamblador para obtener el cdigo binario de la tecla
presionada.
Introduccin
El circuito desarrollado hasta la prctica 7 ya conforma el esquema de Von Neumann con todos los elementos necesarios
para la creacin de una computadora, pero an no proporciona interaccin adecuada con el usuario externo. Para que el
sistema tenga mayor utilidad es necesario conectarle dispositivos perifricos de entrada y salida para facilitar la
interaccin con la electrnica del microprocesador.
Reloj
Microprocesador
Memoria
ROM
(Programa)
Bus de Datos
Memoria
RAM
(Datos)
Puertos de
Entrada
Puertos de
Salida
Bus de Direcciones
Bus de Control
Dispositivos Perifricos
Figura 8.1 Dispositivo perifrico de entrada en Esquema de Von Neumann
Los dispositivos perifricos de entrada se emplean para que el usuario externo pueda interactuar con el sistema de
microprocesador y facilitar la insercin de datos externos, entre estos dispositivos se encuentran los teclados, los
dispositivos apuntadores como Mouse, Track Ball, Touch Screen, tarjetas de red, audio o video, discos duros, CD, o DVD
y en conjunto cualquier dispositivo que permita enviar datos hacia el microprocesador.
Laboratorio de Microprocesadores
Prctica 8
Conexin de Dispositivo Perifrico de Entrada (Teclado)
Prcticas de Microprocesadores
Prctica #8 Conexin de Dispositivo Perifrico de Entrada (Teclado) 39
Es por eso que en esta prctica se propone adicionar un teclado matricial de 12 teclas que nos permitir insertar datos
numricos o an alfanumricos si seleccionamos otro tipo de teclado.
Figura 8.2 Teclado telefnico matricial de 12 teclas
Para conectar este teclado se emplear un decodificador de teclado integrado MM74C922 que puede reconocer
teclados de 20 teclas como se muestra en la figura 8.3.
Figura 8.3 Circuito decodificador 74C922
El proceso lo realiza a travs del envo de 4 seales de un registro de corrimiento a las terminales de los renglones, las
cuales los activan en forma secuencial uno a uno, tal y como se muestra en la tabla 8.1.
Tabla 8.1 Seales del registro de corrimiento de los renglones
Posteriormente el decodificador reconoce cual de las columnas ha sido presionada y en conjunto con los cdigos de los
renglones, determina cual de las teclas ha sido presionada, de acuerdo a la tabla 8.2.
Y1,X1 Y1,X2 Y1,X3 Y1,X4 Y2,X1 Y2,X2 Y2,X3 Y2,X4 Y3,X1 Y3,X2 Y3,X3 Y3,X4 Y4,X1 Y4,X2 Y4,X3 Y4,X4
A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
Tecla 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Tabla 8.2 Decodificacin rengln columna de teclado de 16 teclas
Adicionalmente, cada que una tecla es presionada, se genera una seal de dato disponible (DATA AVAILABLE), activa en
alto, que se emplear para producir una interrupcin al microprocesador Z80 en su terminal /INT y as poder leer el dato
en las terminales del puerto C (02H).
Debido a que el decodificador reconoce 16 teclas y nuestro teclado solo tiene 12, se omitir la conexin de la cuarta
columna, lo cual eliminar a los cdigos correspondientes a las teclas 3, 7, B Y F y esto hace que los cdigos binarios para
cada tecla no correspondan con las posiciones del teclado telefnico, en la figura 8.4 se muestra la equivalencia.
ROW Y1 ROW Y2 ROW Y3 ROW Y4
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Prcticas de Microprocesadores
Prctica #8 Conexin de Dispositivo Perifrico de Entrada (Teclado) 40
Figura 8.4 Cdigos para teclados de 16 teclas y su correspondencia con teclado telefnico de 12 teclas
Este problema deber ser resuelto va software a travs de una tabla de asignacin del cdigo correcto; 0 a 1, 1 a 2, 2 a
3, 3 sin asignacin y as consecutivamente de acuerdo a la tabla 8.3
Cdigo
74C922
0 1 2 3 4 5 6 7 8 9 A B C D E F
Tecla 1 2 3 X 4 5 6 X 7 8 9 X A 0 B X
Tabla 8.3 Cdigos asignados por software
El decodificador posee la caracterstica de salidas en tercer estado controladas por la seal de habilitacin de salida
(OUTPUT ENABLE) activa en nivel bajo, la cual ser proporcionada por la inversin de la seal dato disponible (DATA
AVAILABLE) y generada a travs de la GAL.
El decodificador MM74C922 tambin tiene la funcionalidad de generacin de la frecuencia de oscilacin para
proporcionar la velocidad de escaneo de las teclas y tambin tiene implementado un sistema anti rebotes para evitar la
deteccin de teclas repetidas debidas a los rebotes mecnicos. Estas funcionalidades se obtienen a travs de 2
capacitores que se seleccionan de acuerdo a las grficas de la figura 8.5. Se recomienda que el capacitor de anti rebotes
sea 10 veces mayor que el capacitor de oscilacin.
La captura del dato de 4 bits se realizar a travs de los 4 bits menos significativos del puerto C (02H) y solo se
capturarn a travs de una subrutina de interrupcin activada al momento de presionar una de las teclas. El programa
solo considera la activacin de una tecla y no de 2 juntas pues se tomara la primera en detectarse.
Figura 8.5 Grficas para seleccin de los capacitores de oscilacin y anti rebotes
Actividades Previas
1. EI alumno deber realizar la lectura de la prctica de laboratorio.
2. El alumno programar la memoria AT28C16 con el cdigo de mquina mostrado en la figura 8.8, considerando que
en cada localidad debe grabarse un byte.
3. El alumno programar el dispositivo lgico programable (PLD) GAL22V10 con la funcin mostrada en la figura 8.9.
4. Traer el circuito armado
0 1 2 3
4 5 6 7
8 9 A B
C D E F
Prcticas de Microprocesadores
Prctica #8 Conexin de Dispositivo Perifrico de Entrada (Teclado) 41
Material
1 Sistema mnimo con Microprocesador Z80, Circuito de reloj, Circuito de Reset, Memoria EEPROM AT28C16, memoria
SRAM 6116, decodificador de direcciones con GAL y circuito de puertos PPI 8255.
1 Teclado telefnico matricial de 12 teclas.
1 Circuito MM74C922 decodificador de teclado
1 Capacitor de 0.1F
1 Capacitor de 0.01F
Equipo
1 Fuente de C.D.
1 Osciloscopio
1 Multmetro
1 Punta lgica para prueba de tercer estado
1 Circuito de Leds de prueba
Procedimiento Experimental
1. Implemente el circuito mostrado en la figura 8.7 considerando que ya se tiene armado el sistema mnimo de Von
Neumann y solo deber adicionarse el circuito de decodificacin de teclado MM74C922 y el teclado telefnico de
12 teclas, adems de las conexiones adicionales hacia el microprocesador Z80 que habilitarn el empleo de las
interrupciones y hacia la GAL para realizar la inversin de la seal de control.
2. Utilice la figura 8.6 para establecer la posicin de los circuitos y sus conexiones.
Figura 8.6 Sistema mnimo con decodificador de teclado
3. Realice el programa en lenguaje ensamblador de la figura 8.8 y obtenga el cdigo de mquina. Este programa
decodificar el nmero de tecla presionado y lo mostrar en los 4 bits menos significativos del puerto A (00H).
4. Programe la memoria EEPROM en el programador universal con el archivo con terminacin HEX.
5. Escriba la funcin decodificadora para la EEPROM, la SRAM, el PPI y la inversin de la seal DA del teclado en un
proyecto de WINCUPL tal y como se muestra en la figura 8.9
6. Programe la GAL y pruebe el sistema completo para comprobar el funcionamiento del teclado.
7. Compruebe que el cdigo mostrado en las terminales de los 4 bits menos significativos del puerto A son los
correspondientes a cada una de las teclas presionadas.
Prcticas de Microprocesadores
Prctica #8 Conexin de Dispositivo Perifrico de Entrada (Teclado) 42
Figura 8.7 Sistema mnimo con teclado
C
3
0
.
0
1
u
F
C
40
.
1
u
F
0
0
14
3
2
6
5
9
8
7
#
0
*
V
i
o
l
e
t
a
G
r
i
s
N
a
r
a
n
j
a
A
m
a
r
i
l
l
o
A
z
u
l
V
e
r
d
e
R
o
j
o
U
7
M
M
7
4
C
9
2
2
R
O
W
Y
1
1
R
O
W
Y
2
2
R
O
W
Y
3
3
R
O
W
Y
4
4
O
S
C
5
K
B
O
N
S
M
S
K
6
C
L
M
X
2
1
0
C
L
M
X
1
1
1
D
A
V
B
L
1
2
O
E
1
3
O
D
1
4
O
C
1
5
O
B
1
6
O
A
1
7
C
L
M
X
3
8
C
L
M
X
4
7
U
2
Z
8
0
C
P
U
A
0
3
0
A
1
3
1
A
2
3
2
A
3
3
3
A
4
3
4
A
5
3
5
A
6
3
6
A
7
3
7
A
8
3
8
A
9
3
9
A
1
0
4
0
A
1
1
1
A
1
2
2
A
1
3
3
A
1
4
4
A
1
5
5
W
A
I
T
2
4
I
N
T
1
6
N
M
I
1
7
R
S
T
2
6
B
U
S
R
Q
2
5
B
U
S
A
K
2
3
C
L
K
6
I
O
R
Q
2
0
H
A
L
T
1
8
D
0
1
4
D
1
1
5
D
2
1
2
D
3
8
D
4
7
D
5
9
D
6
1
0
D
7
1
3
M
1
2
7
M
R
E
Q
1
9
R
D
2
1
R
E
F
S
H
2
8
W
R
2
2
7
4
L
S
0
4
U
1
C
5
6
S
W
1
R
E
S
E
T
C
i
r
c
u
i
t
o
V
C
C
G
N
D
7
4
L
S
0
4
U
1
1
4
7
Z
8
0
C
P
U
U
2
1
1
2
9
G
A
L
2
2
V
1
0
D
U
3
2
4
1
2
A
T
2
8
C
1
6
U
4
2
4
1
2
6
1
1
6
S
R
A
M
U
5
2
4
1
2
P
P
I
8
2
5
5
U
6
2
6
7
M
M
C
7
4
C
9
2
2
U
7
1
8
9
1
N
4
0
0
1
D
1
1
0
k
R
3
1
u
F
C
2
U
n
i
v
e
r
s
i
d
a
d
N
a
c
i
o
n
a
l
A
u
t
n
o
m
a
d
e
M
x
i
c
o
F
a
c
u
l
t
a
d
d
e
E
s
t
u
d
i
o
s
S
u
p
e
r
i
o
r
e
s
C
u
a
u
t
i
t
l
n
S
i
s
t
e
m
a
d
e
M
i
c
r
o
p
r
o
c
e
s
a
d
o
r
Z
8
0
M
.
e
n
T
I
.
J
o
r
g
e
B
u
e
n
d
a
G
m
e
z
V
C
C
U
4
A
T
2
8
C
1
6
A
0
8
A
1
7
A
2
6
A
3
5
A
4
4
A
5
3
A
6
2
A
7
1
A
8
2
3
A
9
2
2
A
1
0
1
9
D
0
9
D
1
1
0
D
2
1
1
D
3
1
3
D
4
1
4
D
5
1
5
D
6
1
6
D
7
1
7
C
E
1
8
O
E
2
0
W
E
2
1
V
C
C
U
3
G
A
L
2
2
V
1
0
I
/
C
L
K
1
I
2
I
3
I
4
I
5
I
6
I
/
O
1
4
I
/
O
1
5
I
/
O
1
6
I
/
O
1
7
I
/
O
1
9
I
/
O
2
0
I
/
O
2
1
I
/
O
2
2
I
/
O
1
8
I
/
O
2
3
I
7
I
8
I
9
I
1
0
I
1
1
I
1
3
7
4
L
S
0
4
U
1
A
1
2
V
C
C
U
6
8
2
5
5
D
0
3
4
D
1
3
3
D
2
3
2
D
3
3
1
D
4
3
0
D
5
2
9
D
6
2
8
D
7
2
7
R
D
5
W
R
3
6
A
0
9
A
1
8
R
E
S
E
T
3
5
C
S
6
P
A
0
4
P
A
1
3
P
A
2
2
P
A
3
1
P
A
4
4
0
P
A
5
3
9
P
A
6
3
8
P
A
7
3
7
P
B
0
1
8
P
B
1
1
9
P
B
2
2
0
P
B
3
2
1
P
B
4
2
2
P
B
5
2
3
P
B
6
2
4
P
B
7
2
5
P
C
0
1
4
P
C
1
1
5
P
C
2
1
6
P
C
3
1
7
P
C
4
1
3
P
C
5
1
2
P
C
6
1
1
P
C
7
1
0
U
5
6
1
1
6
A
0
8
A
1
7
A
2
6
A
3
5
A
4
4
A
5
3
A
6
2
A
7
1
A
8
2
3
A
9
2
2
A
1
0
1
9
C
E
1
8
O
E
2
0
W
E
2
1
D
0
9
D
1
1
0
D
2
1
1
D
3
1
3
D
4
1
4
D
5
1
5
D
6
1
6
D
7
1
7
7
4
L
S
0
4
U
1
B
3
4
1
k
R
2
1
k
R
1
0
.
1
u
F
C
1
Prcticas de Microprocesadores
Prctica #8 Conexin de Dispositivo Perifrico de Entrada (Teclado) 43
Figura 8.8 Programa para control de teclado
Cuestionario
1. Describa el diseo de un sistema de decodificacin de 32 teclas si se emplea para esa funcin a circuitos
MM74C922.
2. Justifique el valor del byte de configuracin enviado al PPI en su puerto 03H.
3. Porque es necesario deshabilitar las interrupciones cuando se ejecuta la subrutina de interrupcin.
4. Describa cual es el proceso de interrupcin empleado en este programa, justificando la configuracin y la direccin
de la subrutina.
DEFSEG segabs, ABSOLUTE ;Estas 2 primeras lneas slo se incluirn si se ensambla
SEG segabs ;el programa con AVMACZ80
ORG 0000H
JP 0100H
ORG 0038H
INTERR: DI
IN A,(02H)
AND A,0FH
LD HL,0120H
LD E,A
LD D,00H
ADD HL,DE
LD A,(HL)
LD (3000H),A
EI
RET
ORG 0100H
INICIO: IM 1
EI
LD SP,30FFH
LD A,089H
OUT (03H),A
LD A,00H
LD (3000H),A
CICLO: LD A,(3000H)
OUT (00H),A
JP CICLO
ORG 0120H
TABLA: DB 01H
DB 02H
DB 03H
DB 00H
DB 04H
DB 05H
DB 06H
DB 00H
DB 07H
DB 08H
DB 09H
DB 00H
DB 0AH
DB 00H
DB 0BH
DB 00H
END
Prcticas de Microprocesadores
Prctica #8 Conexin de Dispositivo Perifrico de Entrada (Teclado) 44
Figura 8.9 Habilitacin de EEPROM, SRAM, PPI y teclado con la GAL
Name UNAMZ80 ;
PartNo 00 ;
Date 06/04/2011 ;
Revision 01 ;
Designer Jorge Buendia Gomez ;
Company UNAM ;
Assembly None ;
Location ;
Device g22v10 ;
/* *************** INPUT PINS *********************/
PIN 1 = A11 ; /* */
PIN 2 = A12 ; /* */
PIN 3 = A13 ; /* */
PIN 4 = A14 ; /* */
PIN 5 = A15 ; /* */
PIN 6 = RD ; /* */
PIN 7 = WR ; /* */
PIN 8 = MREQ ; /* */
PIN 9 = IORQ ; /* */
PIN 10 = RST ; /* */
PIN 11 = A2 ; /* */
PIN 13 = A3 ; /* */
PIN 14 = A4 ; /* */
PIN 15 = DAVBL ;
/* *************** OUTPUT PINS *********************/
PIN 23 = CE_SRAM ; /* */
PIN 22 = CE_EEPROM ; /* */
PIN 21 = CE_PPI ; /* */
PIN 20 = RESET ; /* */
PIN 19 = OUTEN ;
CE_SRAM = A15 # A14 # !A13 # !A12 # A11 # MREQ # !(RD $ WR);
CE_EEPROM = A15 # A14 # A13 # A12 # A11 # MREQ # RD;
CE_PPI = A4 # A3 # A2 # IORQ # !(RD $ WR);
RESET = !RST;
OUTEN = !DAVBL ;
Prcticas de Microprocesadores
Prctica #9 Conexin de Dispositivo Perifrico de Salida (Display LCD) 45
Tema
6.1.1. Control de dispositivos con tcnicas de programacin
Objetivos
El alumno realizar la conexin de una pantalla LCD de 2 lneas de 16 caracteres al sistema de
microprocesador.
El alumno crear y probar un programa en lenguaje ensamblador para desplegar y controlar un mensaje
sobre la pantalla.
Introduccin
A travs de esta prctica el alumno le proporcionar al sistema mnimo la capacidad de desplegar mensajes hacia el
usuario e incrementar la interaccin entre el microprocesador y el mundo exterior.
Reloj
Microprocesador
Memoria
ROM
(Programa)
Bus de Datos
Memoria
RAM
(Datos)
Puertos de
Entrada
Puertos de
Salida
Bus de Direcciones
Bus de Control
Dispositivos Perifricos
Figura 9.1 Dispositivo perifrico de salida en esquema de Von Neumann
Los dispositivos perifricos de salida se emplean para que el microprocesador pueda enviar informacin hacia el usuario
externo. Entre los dispositivos que se emplean como salidas estn: los monitores, las impresoras, los discos duros, los
CD, los DVD, las tarjetas de audio, video o redes y en general cualquier dispositivo que pueda ser utilizado para sacar
informacin del sistema mnimo.
Es por eso que en esta prctica se propone adicionar una pantalla inteligente de cristal lquido (LCD) de 16 caracteres x 2
lneas que recibe caracteres ASCII y que convierte el cdigo a un mapa de pixeles que se puede desplegar sobre cada
uno de los 16 caracteres o almacenarlo en la memoria interna del display (DDRAM).
Laboratorio de Microprocesadores
Prctica 9
Conexin de Dispositivo Perifrico de Salida (Display LCD)
Prcticas de Microprocesadores
Prctica #9 Conexin de Dispositivo Perifrico de Salida (Display LCD) 46
Figura 9.2 Pantalla LCD de 16 x 2
Esta pantalla puede recibir ya sea comandos de configuracin para controlar el funcionamiento de la pantalla o datos de
8 bits que representan los caracteres ASCII a desplegar. Estos comandos se muestran en la tabla 9.1.
Instruccin RS
R/
W
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 Descripcin
Tiempo
de
Ejecucin
Limpia Display 0 0 0 0 0 0 0 0 0 1
Limpia el display completamente y
pone la direccin 0 en el contador de
direccin
1.28 ms
Regreso al Origen 0 0 0 0 0 0 0 0 1 -
Pone a 0 el contador de direccin de la
DDRAM, tambin regresa al principio
corrindolo a su posicin original.
La DDRAM mantiene su contenido sin
cambio
1.28 ms
Modo de insercin de datos 0 0 0 0 0 0 0 1 I/D S
Establece la direccin de movimiento
del cursor y especifica el corrimiento
del display.
Esta operacin se realiza durante la
lectura o escritura de datos.
31us
Control de Encendido /
Apagado del Display
0 0 0 0 0 0 1 D C B
Enciende o apagaga el display (D), el
cursor (C) o el parpadeo.
31us
Corrimiento del display o
del cursor
0 0 0 0 0 1 S/C R/L - -
Mueve el cursor o corre el display sin
cambios en el contenido de la DDRAM
31us
Formato de datos 0 0 0 0 1 DL N F - -
Establece la longitud de los datos (DL),
el nmero de lneas a desplegar (L) y el
formato del carcter (F)
31us
Direccin de la CGRAM 0 0 0 1 ACG ACG ACG ACG ACG ACG
Establece la direccin de CGRAM, los
datos son enviados y recibidos despus
de este comando
31us
Direccin de la DDRAM 0 0 1
AD
D
AD
D
AD
D
AD
D
AD
D
AD
D
AD
D
Establece la direccin de CGRAM, los
datos son enviados y recibidos despus
de este comando
31us
Bandera de ocupado en
lectura y direccin
0 1 BF AC AC AC AC AC AC AC
Lee la bandera de ocupado (BF) que
indica que una operacin interna se
est realizando y tambin lee la
direccin del contador
0us
Escribir un dato a la DDRAM
o a la CGRAM
1 0 Dato a cargar en la memoria
Escribe un dato dentro de la DDRAM o
de la CGRAM
31us
Leer un dato de la DDRAM o
de la CGRAM
1 1 Dato ledo de la memoria
Leer un dato de la DDRAM o de la
CGRAM
31us
Tabla 9.1 Comandos del display LCD 16 x 2
Para la conexin de esta pantalla LCD se utilizarn 2 puertos del circuito PPI 8255:
Prcticas de Microprocesadores
Prctica #9 Conexin de Dispositivo Perifrico de Salida (Display LCD) 47
El puerto A de 8 bits para enviar al display el cdigo ASCII a mostrar en la pantalla o el comando de
configuracin del display.
2 bits del puerto B para enviar las seales de control; habilitacin del display y seleccin de comando o dato.
En este tipo de sistemas la adicin de puertos es costosa debido a que por cada 3 puertos de usuario se requiere un
circuito PPI 8155 o un circuito PPI 8255.
Vcc Vss Vee RS R/W E D0 D1 D2 D3 D4 D5 D6 D7 LD+ LD-
Figura 9.3 Puertos para el control de la pantalla
La figura 9.3 muestra la asignacin de seales para el display LCD 16 x 2.
Terminal Seal Descripcin
1 Vcc + 5 V.c.d.
2 Vss Tierra
3 Vee
Voltaje de control de contraste
0 V. = Contraste mnimo
4 RS Seal de Comando RS =0 Dato RS = 1
5 R/W Seal de Lectura R/W = 1 Escritura R/W =0
6 E Seal de habilitacin del display E = 1
7 - 14 D0 D7 Bus de datos
15 LD+ Positivo del led de iluminacin trasera
16 LD- Negativo del led de iluminacin trasera
Tabla 9.2 Asignacin de terminales del display
Debido a que el display se emplear siempre en modo de lectura, el bit de R/W se conectar directamente a tierra. Los
bits de control RS y E se asignarn a los bits PB1 y PB0 respectivamente y se activarn a travs de una secuencia lgica
definida por el diagrama de tiempo para escritura del display.
Actividades Previas
1. EI alumno deber realizar la lectura de la prctica de laboratorio.
2. El alumno programar la memoria AT28C16 con el cdigo de mquina mostrado en las figuras 9.4 y 9.5,
considerando que en cada localidad debe grabarse un byte.
3. Traer el circuito armado
Material
1 Sistema mnimo con Microprocesador Z80, Circuito de reloj, Circuito de Reset, Memoria EEPROM AT28C16,
decodificador de direcciones con GAL22V10, circuito de puertos PPI 8255, decodificador de teclado MM74C922 y
teclado telefnico de 12 teclas.
1 Display LCD 16 x 2
Equipo
1 Fuente de C.D.
1 Osciloscopio
1 Multmetro
1 Punta lgica para prueba de tercer estado
1 Circuito de Leds de prueba
Seales de control Seales de datos
Prcticas de Microprocesadores
Prctica #9 Conexin de Dispositivo Perifrico de Salida (Display LCD) 48
Procedimiento Experimental
1. Implemente el circuito mostrado en la figura 9.8 considerando que ya se tiene armado el sistema mnimo de Von
Neumann y el teclado y solo deber adicionarse la pantalla LCD con sus conexiones de alimentaciones, bus de datos
y seales de control.
2. Realice el programa en lenguaje ensamblador de la figura 9.4 y 9.5, y obtenga el cdigo de mquina. Este programa
escribir el mensaje Laboratorio de en la primera lnea y Microprocesadores 2013-2 en la segunda lnea,
considere que el mensaje de la segunda lnea es ms grande que el tamao del display que es de 16 caracteres y
por lo tanto eso indica que los caracteres restantes se escriben en la memoria del display y no se pueden ver.
Figura 9.4 Programa para control y despliegue de mensaje (1 Parte)
DEFSEG segabs, ABSOLUTE ;Estas lneas solo se incluirn si se ensambla
SEG segabs ;el programa con AVMACZ80
ORG 0000H
JP 0100H
ORG 0100H
INICIO: LD SP,30FFH
LD A,089H
OUT (03H),A
CONFIG: LD HL,0200H
OTROCOM: LD A,(HL)
CP '$'
JP Z,LINEA1
OUT (00H),A
CALL COMANDO
INC HL
JP OTROCOM
LINEA1: LD HL,0250H
CALL OTRALET
LINEA2: LD A,0C0H
OUT (00H),A
CALL COMANDO
LD HL,0260H
CALL OTRALET
FIN: LD A,18H
OUT (00H),A
CALL COMANDO
JP FIN
OTRALET: LD A,(HL)
CP '$'
RET Z
OUT (00H),A
CALL DATO
INC HL
JP OTRALET
COMANDO: LD A,00H
OUT (01H),A
LD A,01H
OUT (01H),A
LD A,00H
OUT (01H),A
CALL TIEMPO
RET
DATO: LD A,02H
OUT (01H),A
LD A,03H
OUT (01H),A
LD A,02H
OUT (01H),A
CALL TIEMPO
RET
TIEMPO: LD A,0FFH
CICLO2: LD B,0FFH
CICLO: DEC B
JP NZ,CICLO
DEC A
JP NZ,CICLO2
RET
Prcticas de Microprocesadores
Prctica #9 Conexin de Dispositivo Perifrico de Salida (Display LCD) 49
Figura 9.5 Programa para control y despliegue de mensaje (2 Parte)
3. Programe la memoria EEPROM en el programador universal con el archivo con terminacin HEX.
4. La funcin decodificadora de la GAL22V10D permanecer sin cambio y por lo tanto no debe realizarse ninguna
accin sobre dicho circuito.
5. Compruebe que se despliega correctamente el mensaje en el display de acuerdo a la figura 9.6 y que despus se
desplaza el mensaje sobre el display como en la figura 9.7.
Figura 9.6 Desplegado inicial
Figura 9.7 Desplegado con corrimiento a la izquierda
6. Describa las modificaciones que deben hacerse al programa para realizar un desplazamiento a la derecha del
mensaje.
Cuestionario
1. Describa el procedimiento para programar el display usando datos de 4 bits en lugar de datos de 8 bits.
2. Porque es necesario correr una subrutina de consumo de tiempo despus del envo de cada comando o dato.
3. Existe alguna otra forma de checar que el display est libre para ejecutar el siguiente comando ?
ORG 0200H
DB 01H
DB 02H
DB 06H
DB 0FH
DB 38H
DB 080H
DB '$'
ORG 0250H
DB "Laboratorio de$"
ORG 0260H
DB "Microprocesadore"
ORG 0270H
DB "s 2013-2$"
END
Prcticas de Microprocesadores
Prctica #9 Conexin de Dispositivo Perifrico de Salida (Display LCD) 50
C
?
0
.
0
1
u
F
C
?0
.
1
u
F
0
0
2
14
3
7
6
5
*
9
8
#
0
A
z
u
l
V
i
o
l
e
t
a
G
r
i
s
N
a
r
a
n
j
a
A
m
a
r
i
l
l
o
V
e
r
d
e
R
o
j
o
U
7
M
M
7
4
C
9
2
2
R
O
W
Y
1
1
R
O
W
Y
2
2
R
O
W
Y
3
3
R
O
W
Y
4
4
O
S
C
5
K
B
O
N
S
M
S
K
6
C
L
M
X
2
1
0
C
L
M
X
1
1
1
D
A
V
B
L
1
2
O
E
1
3
O
D
1
4
O
C
1
5
O
B
1
6
O
A
1
7
C
L
M
X
3
8
C
L
M
X
4
7
U
2
Z
8
0
C
P
U
A
0
3
0
A
1
3
1
A
2
3
2
A
3
3
3
A
4
3
4
A
5
3
5
A
6
3
6
A
7
3
7
A
8
3
8
A
9
3
9
A
1
0
4
0
A
1
1
1
A
1
2
2
A
1
3
3
A
1
4
4
A
1
5
5
W
A
I
T
2
4
I
N
T
1
6
N
M
I
1
7
R
S
T
2
6
B
U
S
R
Q
2
5
B
U
S
A
K
2
3
C
L
K
6
I
O
R
Q
2
0
H
A
L
T
1
8
D
0
1
4
D
1
1
5
D
2
1
2
D
3
8
D
4
7
D
5
9
D
6
1
0
D
7
1
3
M
1
2
7
M
R
E
Q
1
9
R
D
2
1
R
E
F
S
H
2
8
W
R
2
2
7
4
L
S
0
4
U
1
C
5
6
S
W
1
R
E
S
E
T
C
i
r
c
u
i
t
o
V
C
C
G
N
D
7
4
L
S
0
4
U
1
1
4
7
Z
8
0
C
P
U
U
2
1
1
2
9
G
A
L
2
2
V
1
0
D
U
3
2
4
1
2
A
T
2
8
C
1
6
U
4
2
4
1
2
6
1
1
6
S
R
A
M
U
5
2
4
1
2
P
P
I
8
2
5
5
U
6
2
6
7
M
M
C
7
4
C
9
2
2
U
7
1
8
9
1
N
4
0
0
1
D
1
1
0
k
R
3
1
u
F
C
2
U
n
i
v
e
r
s
i
d
a
d
N
a
c
i
o
n
a
l
A
u
t
n
o
m
a
d
e
M
x
i
c
o
F
a
c
u
l
t
a
d
d
e
E
s
t
u
d
i
o
s
S
u
p
e
r
i
o
r
e
s
C
u
a
u
t
i
t
l
n
S
i
s
t
e
m
a
d
e
M
i
c
r
o
p
r
o
c
e
s
a
d
o
r
Z
8
0
M
.
e
n
T
I
.
J
o
r
g
e
B
u
e
n
d
a
G
m
e
z
V
C
C
U
4
A
T
2
8
C
1
6
A
0
8
A
1
7
A
2
6
A
3
5
A
4
4
A
5
3
A
6
2
A
7
1
A
8
2
3
A
9
2
2
A
1
0
1
9
D
0
9
D
1
1
0
D
2
1
1
D
3
1
3
D
4
1
4
D
5
1
5
D
6
1
6
D
7
1
7
C
E
1
8
O
E
2
0
W
E
2
1
V
C
C
U
3
G
A
L
2
2
V
1
0
I
/
C
L
K
1
I
2
I
3
I
4
I
5
I
6
I
/
O
1
4
I
/
O
1
5
I
/
O
1
6
I
/
O
1
7
I
/
O
1
9
I
/
O
2
0
I
/
O
2
1
I
/
O
2
2
I
/
O
1
8
I
/
O
2
3
I
7
I
8
I
9
I
1
0
I
1
1
I
1
3
7
4
L
S
0
4
U
1
A
1
2
V
C
C
U
6
8
2
5
5
D
0
3
4
D
1
3
3
D
2
3
2
D
3
3
1
D
4
3
0
D
5
2
9
D
6
2
8
D
7
2
7
R
D
5
W
R
3
6
A
0
9
A
1
8
R
E
S
E
T
3
5
C
S
6
P
A
0
4
P
A
1
3
P
A
2
2
P
A
3
1
P
A
4
4
0
P
A
5
3
9
P
A
6
3
8
P
A
7
3
7
P
B
0
1
8
P
B
1
1
9
P
B
2
2
0
P
B
3
2
1
P
B
4
2
2
P
B
5
2
3
P
B
6
2
4
P
B
7
2
5
P
C
0
1
4
P
C
1
1
5
P
C
2
1
6
P
C
3
1
7
P
C
4
1
3
P
C
5
1
2
P
C
6
1
1
P
C
7
1
0
U
5
6
1
1
6
A
0
8
A
1
7
A
2
6
A
3
5
A
4
4
A
5
3
A
6
2
A
7
1
A
8
2
3
A
9
2
2
A
1
0
1
9
C
E
1
8
O
E
2
0
W
E
2
1
D
0
9
D
1
1
0
D
2
1
1
D
3
1
3
D
4
1
4
D
5
1
5
D
6
1
6
D
7
1
7
7
4
L
S
0
4
U
1
B
3
4
1
k
R
2
1
k
R
1
0
.
1
u
F
C
1
+
5
V
D
i
s
p
l
a
y
1
6
x
2
Figura 9.8 Circuito Mnimo con Display LCD