Departamento: Ingeniera
Seccin: Electrnica
Laboratorio de Microprocesadores
Asignatura: Microprocesadores
Clave Carrera: 130
ndice
ndice
ndice
Prlogo
II
Reglamento
VII
Prctica 1
Prctica 2
Prctica 3
11
Prctica 4
15
Prctica 5
23
Prctica 6
32
Prctica 7
38
Prctica 8
45
Prctica 9
52
Laboratorio de Microprocesadores
Prlogo
II
Prlogo
Objetivos generales de la asignatura
Introduccin
Actualmente, los sistemas digitales que integran microprocesadores, se han expandido a la mayora de los sistemas
inteligentes que se emplean para controlar maquinaria industrial, sistemas de cmputo, telfonos celulares, televisiones,
electrodomsticos y en general todo aquel sistema que requiera capacidad de procesamiento automatizada.
Este laboratorio proporciona al alumno la teora y los mtodos para disear e implementar sistemas electrnicos
avanzados que incluyan microprocesadores y adems todos los dispositivos perifricos necesarios para realizar las
interfaces hombre mquina que permitan controlar a este tipo de sistemas, los cuales estn orientados a mejorar la forma
de vida de las personas y liberarlas de actividades repetitivas.
Uno de los objetivos primordiales del Laboratorio de Microprocesadores es la implementacin de un sistema de
cmputo que emplee un microprocesador Z80 como elemento central, a este sistema digital se le conoce como sistema
mnimo, el cual consta de los elementos ms significativos para la construccin de una computadora.
La implementacin se llevar a cabo, armando y probando las diferentes etapas que forman al sistema en cada una de
las sesiones del laboratorio avanzando de forma paulatina hasta construir el proyecto en su totalidad.
Este circuito denominado sistema mnimo es en realidad una computadora completa que puede realizar todas las
funciones asociadas con un sistema de esta naturaleza.
El sistema mnimo a implementar se basa en el esquema de Von Neumann, el cual contiene una serie de elementos que
permiten la ejecucin de programas en lenguaje ensamblador y la interaccin con dispositivos perifricos y con el
usuario, la figura P.1 nos muestra el esquema general de la arquitectura Von Neumann, el cual consta de un sistema de
reloj, un microprocesador, la memoria ROM de programa, la memoria RWM (RAM) de datos, los puertos de entrada, los
puertos de salida y los dispositivos perifricos.
En cada una de las prcticas de este laboratorio se implementar una de las partes que conforman al esquema de Von
Neumann para que al final del curso se tenga un sistema de cmputo completo y funcional para la ejecucin de
programas en lenguaje ensamblador y para la conexin de diferentes dispositivos perifricos.
Laboratorio de Microprocesadores
Prlogo
III
Reloj
Microprocesador
Bus de Direcciones
Bus de Control
Bus de Datos
Memoria
ROM
(Programa)
Memoria
RAM
(Datos)
Puertos de
Entrada
Puertos de
Salida
Dispositivos Perifricos
Figura P.1
El sistema armado completo se muestra en la figura P.2.
2
3
Figura P.2
En el cual se pueden identificar las siguientes partes:
Laboratorio de Microprocesadores
Prlogo
IV
#
1
2
3
4
5
6
7
Cada uno de estos elementos ser armado y probado para asegurar que el sistema funcione de forma adecuada.
Debido a que el objetivo es implementar el sistema completo, entonces ser necesario conservar la parte del circuito
que se haya armado en prcticas anteriores para que poco a poco se complete el sistema mnimo y por lo tanto el
alumno deber contar con al menos 2 tabletas de prueba (protoboard) para armar el sistema como se muestra en la
figura P.2.
En la implementacin de este sistema deben realizarse una serie de consideraciones que de llevarse a cabo traen como
consecuencia un circuito sin errores de conexin y falsos contactos facilitando las pruebas y garantizando un
funcionamiento correcto.
Una de las consideraciones tiene que ver con la forma del alambrado, como se puede observar en la figura P.2, los
alambres de conexin deben ser lo ms corto posible entre 2 puntos del sistema y no deben elevarse sobre la tableta ni
sobre los circuitos integrados puesto que esta accin provoca la interferencia por ruido.
Los circuitos deben quedar libres en su parte superior para que puedan ser extrados en caso de un desperfecto en su
funcionamiento o para poder programar a la EEPROM o a la GAL22V10D con los diferentes programas que se disearn
para probar el sistema.
El grosor de los cables debe ser de calibre 24 estaados para que se realice un buen contacto, el cable empleado en las
redes de computadoras STP categora 5 no es recomendable puesto que es muy delgado y no produce un buen
contacto en la protoboard.
Para realizar la conexin, los cables deben insertarse en los orificios de la tableta de conexiones considerando que la
punta descubierta del cable debe ser igual al alto de la tableta y no demasiado corta ni excesivamente larga, tal y como
se muestra en la figura P.3.
Cable
Tableta de
Conexiones
Conexin Incorrecta
Conexin correcta
Figura P.3
Adems, para la elaboracin del sistema se deber considerar que algunos de los circuitos empleados son de tecnologa
CMOS y NMOS, por lo tanto son sensibles a descargas de voltaje por lo que hay que tener las precauciones necesarias
con respecto a las descargas electrostticas para no causarles dao.
Para realizar la manipulacin de los circuitos el alumno deber descargarse sobre algn objeto metlico y tomar los
circuitos por los extremos y no por las terminales. En ambientes industriales esta operacin se realiza con pulseras y
tapetes de descarga antiesttica.
Laboratorio de Microprocesadores
Prlogo
Para la realizacin de este laboratorio se utilizarn herramientas adicionales a las consideradas en los laboratorios
tradicionales de electrnica, tales como computadoras, software de ensamblado y ligado de programas en lenguaje
ensamblador, simuladores de microprocesadores y simuladores de circuitos digitales, software para programar memorias
EEPROM y dispositivos lgicos programables GALs, adems de la creacin de una punta lgica de prueba para la
comprobacin del tercer estado presentado por los circuitos del proyecto.
El alumno deber estar familiarizado con estas herramientas para poder realizar los procesos necesarios para las actividades
previas y pueda presentar las simulaciones de hardware o software y tambin los archivos ensamblados que se
programarn en la memoria del sistema.
Los criterios de evaluacin para el laboratorio son los siguientes:
C1 (Criterio de evaluacin 1): Actividades previas a la prctica (40%)
C2 (Criterio de evaluacin 2): Habilidad en el armado y funcionalidad de los sistemas (10%)
C3 (Criterio de evaluacin 3): Habilidad para el manejo de del equipo e interpretacin correcta de las lecturas (20%)
C4 (Criterio de evaluacin 4): Reporte entregado con todos los puntos indicados (30%)
Tambin ser necesario incluir en cada prctica, una portada (obligatoria) como la mostrada a continuacin.
U. N. A. M.
F. E. S. C.
Laboratorio de : ________________________________________ Grupo: ___________
Profesor: ________________________________________________________________
Alumno: _________________________________________________________________
Nombre de Prctica: _________________________________ No. de Prctica:________
Fecha de realizacin: _______________________ Fecha de entrega:________________
Semestre: ____________
Para la presentacin del reporte se deber cumplir con los requisitos indicados en cada una de las prcticas, incluyendo:
Portada
Introduccin.
Procedimiento experimental
Circuito
Tablas de datos
Grficas
Comentarios
Observaciones
Esquemas
Diagramas
Cuestionario
Laboratorio de Microprocesadores
Prlogo
VI
Bibliografa
1.
Brey, Barry B (2001), Los microprocesadores Intel : arquitectura, programacin e interfaz de los procesadores
8086/8088, 80186/80188, 80286, 80386, 80486 Peintium, Peintium Pro y Pentuim II, Mxico, D.F. : Pearson
Educacin.
2.
E. Mandado, E. Tassis (1996). Diseo de sistemas digitales con microprocesadores. Mxico, D.F. : Alfaomega.
3.
Medina E. A. , Marrero M.M. (2008) Diseo de sistemas electrnicos digitales con microprocesadores. Espaa
: Universidad de las Palmas de Gran Canaria.
4.
5.
Jos Ma. Angulo Usategui. (1990). Microprocesadores 8086, 80286 y 80386. Madrid : Paraninfo.
6.
7.
Ciarcia Steve. (1984). Construya una microcomputadora basada en el Z80 : Gua de diseo y funcionamiento.
Madrid ; Mxico : Byte/Mcgraw-Hill.
8.
Laboratorio de Microprocesadores
Boston
Reglamento Interno de los Laboratorios de Comunicaciones, Control, Sistemas Anlogicos Y Sistemas Digitales
VII
Laboratorio de Microprocesadores
Reglamento Interno de los Laboratorios de Comunicaciones, Control, Sistemas Anlogicos Y Sistemas Digitales
VIII
Laboratorio de Microprocesadores
UNAM
Laboratorio de Microprocesadores
Prctica 1
Herramientas de prueba para el sistema mnimo
Tema
1.1 Elementos de un microcomputador
Objetivo
Implementar un mdulo de visualizacin con leds para probar el estado de las salidas de los buses del
microprocesador.
Implementar un dispositivo de prueba denominado punta lgica para probar los estados digitales de 0
lgico, 1 lgico y tercer estado Z.
Comprobar las mediciones de tercer estado sobre un circuito 74LS125.
Introduccin
Para realizar pruebas al sistema en una forma ms eficiente es necesario utilizar herramientas de apoyo que permiten
visualizar o insertar las seales de los buses del microprocesador.
En este tipo de sistemas se hace necesario verificar el estado de varias seales digitales de forma simultnea y debido a
que los osciloscopios solo tienen 2 canales es preferible utilizar puntas de prueba con LEDs o barras de LEDs, tal y como
se muestra en las figuras 1.1 y 1.2.
Figura 1.1
Figura 1.2
En los sistemas de microprocesadores varios de los circuitos que intervienen en su implementacin son capaces de
proporcionar salidas de tercer estado necesarias para dar la capacidad de conexin de 2 o ms salidas en un mismo
punto sin provocar un corto circuito, siempre y cuando exista un control de activacin de cada una de las salidas
conectadas a dicha unin.
El circuito de salida tpico empleado en las compuertas TTL es el circuito de Totem Pole mostrado en la figura 1.3 para
una compuerta AND, en el cual se logran los estados de 0 lgico y 1 lgico al saturar y cortar a los transistores Q3 y
Q4 como se muestra en la tabla 1.1.
X
0V
0V
5V
5V
Y
0V
5V
0V
5V
Q3
Saturacin
Saturacin
Saturacin
Corte
Q4
Corte
Corte
Corte
Saturacin
Salida
0V
0V
0V
5V
UNAM
En este circuito los transistores Q3 y Q4 siempre estn en estados contrarios, nunca se establecen los 2 en corte o los 2
en saturacin, lo cual produce solo 2 posibles estados 0 y 1.
En la condicin de tercer estado mostrada en la figura 1.4, los 2 transistores de la salida Totem Pole Q3 y Q4 de una
compuerta NAND TTL se ponen en el estado de corte y por lo tanto presentan una impedancia alta entre la salida y
tierra y entre la salida y Vcc, en otras palabras al estar los 2 transistores en corte la terminal de salida es una terminal
abierta o flotante que no tiene valor de 0 o de 1.
Figura 1.3
Figura 1.4
En esta prctica se implementar adems un circuito denominado punta lgica el cual es capaz de identificar a travs
del encendido de 3 leds independientes, alguno de los 3 estados posibles de un circuito que presente alta impedancia
adems de los dos estados lgicos 0 y 1.
Debido a que el estado de alta impedancia es muy similar al estado de desconexin, entonces la punta de prueba al aire
mostrar un estado similar al tercer estado.
Este circuito debe ser implementado de forma permanente para emplearlo como instrumento de prueba en todas las
partes que forman al sistema de microprocesador, una posible forma de implementacin es la siguiente.
UNAM
Material
10 Resistencias de 0.47 k a W.
8 Diodo LED Rojo barra de 10 leds (debern adicionarse 2 resistencias de 0.47 k a W.)
1 Diodo LED Rojo
1 Diodo LED Verde
1 Diodo LED Amarillo
2 Resistencias de 1k a W.
1 Circuito Integrado 74LS00
1 Circuito Integrado 74LS125
1 Transistor BC547
Cables de conexin
Cable plano (30 cm.)
2 Bananas
Equipo
1 Multmetro
1 Proto Board
Alambres de conexin
Procedimiento Experimental
1.
2.
D0
D1
D2
D3
D4
D5
D6
D7
R9 - R18
0.47k
R1 - R8
0.47k
10
1
BAR-10UR
Barra de led's
D1 - D8
LED
11
Figura 1.7
3.
4.
5.
12
13
14
15
16
17
18
19
20
Figura 1.8
Este tipo de herramientas ayudan mucho en la determinacin rpida de las fallas en los circuitos que contienen
procesadores y por ello es necesario implementar alguna de ellas en forma permanente como se indica en las
figuras 1.1 y 1.2.
Implemente el circuito de la figura 1.9 considerando las terminales indicadas en cada una de las compuertas.
Alimente el circuito con 5V, as como la compuerta 74LS00 (terminal 14 = 5V. y terminal 7 = 0V.)
6.
UNAM
Compruebe el comportamiento del circuito llevando la punta lgica a los 3 posibles estados de un circuito lgico,
0 lgico igual a 0V., 1 lgico igual a 5V. y Z alta impedancia o tercer estado igual a punta al aire o
desconectada y proceda al llenando de la tabla 1.2.
5V
R4
0.47K
R1
D1 Led Rojo
"1" Logico
Q1
U1A
1k
BC547A
D2 Led Verde
"0" Logico
D3 Led Amarillo
"Z" Tercer Estado
1
3
2
Punta de Prueba
U1D
R3
0.47K
12
74LS00
11
13
U1B
R2
U1C
4
6
1k
74LS00
9
10
74LS00
74LS00
Voltaje de
Entrada
Estado
Led Rojo
Estado
Led Verde
Estado
Led Amarillo
0
1
Z
Tabla 1.2 Tabla de valores del circuito de punta lgica
7.
1
U1A
2
A1
Y1
74LS125A
UNAM
Cuestionario
1.
2.
3.
4.
Explique el comportamiento de la compuerta lgica de tercer estado mostrada en la figura 1.4 considerando la
entrada DIS.
Explique el concepto de compuertas con salida de colector abierto incluyendo el diagrama de una compuerta
comercial de este tipo.
Explique el concepto de OR alambrada e indique a travs de un diagrama de conexiones la forma en que funciona.
Explique porque se requiere que los circuitos de memoria y microprocesadores tengan salidas de tercer estado.
UNAM
Laboratorio de Microprocesadores
Prctica 2
Generador de reloj para microprocesador
Tema
2.1 Las seales
Objetivos
El alumno implementar diferentes circuitos de temporizacin empleados en la generacin de seales digitales de reloj
para sistemas basados en microprocesador.
Introduccin
Uno de los elementos que conforman el esquema de Von Neumann de un sistema digital que incluye un microprocesador,
es el circuito de reloj. Este sistema es el encargado de proporcionar una seal digital con una frecuencia caracterstica
definida por el microprocesador en cuestin.
Las seales de reloj de los microprocesadores tienen otras caractersticas importantes, tales como el ciclo de trabajo,
definido como la relacin entre el tiempo que la seal de reloj se mantiene en estado alto (th) y el periodo de la seal (T ),
tal y como se muestra en la figura 2.1.
th
tl
[%] =
100 =
100
Figura 2.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 2.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 permite 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 simple 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 2.3.
UNAM
Reloj
Microprocesador
Bus de Direcciones
Bus de Control
Bus de Datos
Memoria
ROM
(Programa)
Memoria
RAM
(Datos)
Puertos de
Entrada
Puertos de
Salida
Dispositivos Perifricos
UNAM
Una forma de generar la seal de reloj es emplear compuertas lgicas retroalimentadas, usando resistencias y capacitores.
La figura 2.5 muestra un circuito que emplea compuertas lgicas inversoras.
C1
0.1uF
R1
U1C
74LS04
5
6
Reloj
R2
Circuito
1K
1
74LS04
1K
2
U1A
74LS04
U1
VCC
14
GND
7
4
U1B
74LS04
(A)
(B)
Figura 2.6
En la figura 2.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.
XTAL
4 MHz
5
U1C
74LS04
6
Reloj
Circuito
R1
74LS04
1K
1
VCC
GND
R2
U1
14
1K
2
U1A
74LS04
4
U1B
74LS04
UNAM
Figura 2.8
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 2.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
1
2
1
1
1
Resistencias de 1 K, W.
Capacitor de 0.01 uF.
Capacitor de 0.1 uF
Capacitor de 470 uF
Circuito integrado 74LS04 o 7404
Cristal de cuarzo de 4 MHz.
Equipo
1
1
1
1
Procedimiento Experimental
1. Arme cada uno de los 2 circuitos de las figuras 2.5 y 2.7 polarizando los circuitos integrados a un voltaje de 5 V.
2. El circuito de la figura 2.5 se utilizar como el primer elemento del sistema con microprocesador y por lo tanto deber
mantenerse armado para las pruebas posteriores, en la figura 2.9 se muestra la conexin sobre la protoboard.
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 2.1 y dibuje las formas de onda obtenidas para cada uno de los dos circuitos.
Circuito
Frecuencia (f)
Periodo (T)
Fig 3.5
Fig 3.7
Tabla 2.1
UNAM
10
UNAM
Laboratorio de Microprocesadores
Prctica 3
Circuito de auto reset para microprocesador
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:
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 VIL considerado como 0 lgico por un tiempo lo suficientemente
largo para que transcurran 3 ciclos de reloj del microprocesador.
5V
VIL = 0.8V
5
Reloj
t=0.174
Figura 3.1 Diagrama de tiempo para el reset del microprocesador.
Prctica 3 Circuito de auto reset para microprocesador
11
UNAM
La ecuacin que describe comportamiento de carga del capacitor esta definida por:
() = 5 (1 )
y el tiempo necesario para alcanzar el valor de VIL = 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 3.2.
Reloj
Microprocesador
Bus de Direcciones
Bus de Control
Bus de Datos
Memoria
ROM
(Programa)
Memoria
RAM
(Datos)
Puertos de
Entrada
Puertos de
Salida
Dispositivos Perifricos
Material
1 Capacitor de 0.1 uF
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
Prctica 3 Circuito de auto reset para microprocesador
12
UNAM
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 3.3 considerando que ya se tiene armado el circuito de reloj y adicione
solamente el circuito de reset y el microprocesador Z80.
C1
0.1uF
5
R1
R2
1K
1K
2
U1A
74LS04
U1C
74LS04
6
U2
6
18
23
27
28
4
U1B
74LS04
+5V
16
17
24
25
CLK
HALT
BUSAK
M1
REFSH
INT
NMI
WAIT
BUSRQ
+5V
26
20
R3
1k
D1
1N4001
19
22
21
C2
0.1uF
Z80 CPU
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
RST
IORQ
MREQ
WR
RD
D0
D1
D2
D3
D4
D5
D6
D7
30
31
32
33
34
35
36
37
38
39
40
1
2
3
4
5
Circuito
74LS04
Z80 CPU
U1
U2
VCC
GND
14
11
7
29
14
15
12
8
7
9
10
13
SW1
RESET
Figura 3.3
2.
Figura 3.4
3.
Observe la seal de reset en la salida del circuito y compruebe su comportamiento al presionar y liberar el botn de
reset (SW1).
13
4.
5.
6.
7.
8.
9.
UNAM
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.
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.
,
y
Compruebe el estado de las seales: BUSAK
HALT,
M1,
REFRESH,
MREQ,
IORQ, RD
WR mientras la seal
de reset est activa (0V) empleando el circuito de leds.
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.
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 empleando el circuito de leds y el osciloscopio.
Observe el comportamiento de las seales anteriores, con el circuito de reset en su estado inactivo (5V).
Cuestionario
1.
2.
3.
4.
Indique el estado de los registros del microprocesador Z80 al insertar la seal de reset activa en 0 V.
Investigue las condiciones que se producen al insertar la seal de reset en el microprocesador 8086 de Intel y en el
microprocesador Intel Pentium 4. (Checar en internet Manual Pentium 4).
Describa el funcionamiento de las seales
M1,
REFRESH,
MREQ,
IORQ,
RD y
WR del microprocesador Z80.
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.
14
UNAM
Laboratorio de Microprocesadores
Prctica 4
Memoria EEPROM o memoria de programa
Tema
3.2 Estructura de los sistemas de memoria
Objetivos
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
Bus de Direcciones
Bus de Control
Bus de Datos
Memoria
ROM
(Programa)
Memoria
RAM
(Datos)
Puertos de
Entrada
Puertos de
Salida
Dispositivos Perifricos
15
UNAM
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 4.2, con una capacidad de (2K x 8)
que se utilizar para el almacenamiento de los programas de prueba del sistema de microprocesador.
EEPROM
AT28C16
2K x 8
0000H
07FFH
16 bits
64K
65536 localidades
de memoria
SIN USAR
5 bits
Posicin
11 bits
Localidad
16
UNAM
En la figura 4.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.
La memoria se conectar a partir de la direccin 0000H ya que al insertar el pulso de RESET, este microprocesador
inicializa el valor del contador de programa (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
(A15 A11) = 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 4.4 e
implementada dentro de un dispositivo lgico programable GAL22V10D .
A15
A14
A13
A12
A11
2
3
4
5
6
7
8
/CE_EEPROM
/MREQ
/RD
Material
1 Sistema mnimo con microprocesador, circuito de reloj y circuito de reset
Prctica 4 Memoria EEPROM o memoria de programa
17
C2
0.1uF
R3
1k
SW1
RESET
D1
1N4001
U1B
74LS04
+5V
U1C
74LS04
6
21
22
19
20
26
16
17
24
25
18
23
27
28
RD
WR
MREQ
IORQ
RST
INT
NMI
WAIT
BUSRQ
HALT
BUSAK
M1
REFSH
CLK
U2
+5V
1K
1K
U1A
74LS04
R2
D0
D1
D2
D3
D4
D5
D6
D7
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
Z80 CPU
14
15
12
8
7
9
10
13
30
31
32
33
34
35
36
37
38
39
40
1
2
3
4
5
1
2
3
4
5
6
7
8
9
10
11
13
14
U3
I/CLK
I
I
I
I
I
I
I
I
I
I
I
I/O
23
22
21
20
19
18
17
16
15
GAL22V10
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
OE
CE
WE
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
U4
Circuito
U1
U2
U3
U4
D0
D1
D2
D3
D4
D5
D6
D7
AT28C16
74LS04
Z80 CPU
GAL22V10D
AT28C16
+5V
20
18
21
8
7
6
5
4
3
2
1
23
22
19
9
10
11
13
14
15
16
17
GND
7
29
12
12
VCC
14
11
24
24
1.
R1
C1
0.1uF
Procedimiento experimental
Implemente el circuito mostrado en la figura 4.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 4.6
18
2.
UNAM
Utilizando el software Z80 Simulator IDE, cuyo icono se muestra a continuacin, seleccione la pestaa
Tools/Assembler para abrir la ventana de edicin segn se muestra en la figura 4.8.
Edite el programa en lenguaje ensamblador mostrado en la figura 4.9 y slvelo con el nombre prac04.asm
Active la opcin para generar el cdigo hexadecimal del programa y proceda a ensamblarlo para obtener el cdigo
de mquina, tal y como se muestra en la figura 4.10, con esta opcin se generarn 3 archivos adicionales: prac04.lst
19
UNAM
que contiene un listado de cdigos e instrucciones, prac04.obj cdigo objeto que sirve para hacer la simulacin y
prac04.hex que se utiliza para hacer la programacin de la memoria EEPROM.
El cdigo de mquina generado se muestra en la figura 4.11, indicndose a travs del recuadro en rojo la localidad
de memoria, el cdigo de mquina y la instruccin correspondiente.
Programe la memoria EEPROM en el programador universal empleando el archivo prac04.hex que se gener en el
paso anterior y se almacen en el mismo subdirectorio.
Escriba la funcin decodificadora de direccin para la habilitacin de la memoria EEPROM en un proyecto de
ISPLEVER tal y como se muestra en las figuras 4.12, 4.13 y 4.14
Adicione un archivo fuente del tipo VHDL Module y defina todas las terminales de entrada y salida de la GAL tal
como se muestra en la figura 4.13
20
UNAM
Figura 4.13 Pasos para adicionar una archivo fuente en un proyecto en ISPLEVER
21
UNAM
Cuestionario
1.
2.
Calcule el tiempo de ejecucin de un ciclo completo del programa de la figura 4.9 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.
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.
22
UNAM
Laboratorio de Microprocesadores
Prctica 5
Puertos de entrada / salida (Input / Output)
Tema
8.3. Interfaces integrados: PIA, PIO, PPI y similares
Objetivos
Introduccin
Otro elemento 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 5.1 nos muestra estos elementos.
Reloj
Microprocesador
Bus de Direcciones
Bus de Control
Bus de Datos
Memoria
ROM
(Programa)
Memoria
RAM
(Datos)
Puertos de
Entrada
Puertos de
Salida
Dispositivos Perifricos
23
UNAM
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.
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 5.2
D0-7
A1
Port A
PA0-7
Port B
PB0-7
A0
RESET
/RD
Puerto de
Control
Port C
/WR
CH
PC4-7
CL
PC0-3
/CS
Vcc (+5V)
GND (0V)
24
UNAM
A1
0
0
1
1
A0
0
1
0
1
Puerto
Puerto A
Puerto B
Puerto C
Puerto de Control
Direccin
00H
01H
02H
03H
00H
4x8
PPI 8255
03H
256 puertos
SIN USAR
A4
A3
A2
/CE_PPI
OR5
IORQ
U?
2
RD
1
3
WR
XNOR2
U?A
1
RST
RESET
74LS04
25
UNAM
La seleccin de que patrn se visualizar se determinar a travs del bit PB0 del PPI, insertndole 0V 5V.
Para reducir la velocidad de encendido de los leds, se deber incrementar el valor del capacitor C1 del oscilador de
seal cuadrada a 1uF o a 10 uF.
Este programa no permite la utilizacin de subrutinas debido a que no se cuenta an con memoria SRAM y no se puede
establecer la localidad donde se localizar la pila y por lo tanto el programa repite 8 veces una serie de instrucciones de
consumo de tiempo debido a que el programa debe ser solo secuencial.
Para configurar el PPI 8255 con el puerto A de salida en modo 0, el puerto B de entrada en modo 0 y el puerto C de
salida en modo 0, se deber escribir la palabra de control (82H) de 8 bits en el puerto 03H de acuerdo a la siguiente
asignacin mostrada en la figura 5.7.
D7
1
D6
0
D5
0
D4
0
D3
0
D2
0
D1
1
D0
0
Material
1 Sistema mnimo con Microprocesador Z80, circuito de reloj, circuito de reset, memoria EEPROM AT28C16 y
decodificador de direcciones con la GAL22V10D.
1 Circuito Integrado PPI 8255.
1 Capacitor de 1uF.
1 Capacitor de 10 uF.
Equipo
1 Fuente de C.D.
1 Osciloscopio
1 Multmetro
1 Punta lgica para prueba de tercer estado
1 Circuito de Leds de prueba
Prctica 5 Puertos de entrada / salida (Input / Output)
26
UNAM
Procedimiento Experimental
1.
2.
Implemente el circuito mostrado en la figura 5.11 considerando que ya se tiene armado el sistema mnimo de
microprocesador con la memoria EEPROM y solo deber adicionarse el circuito integrado PPI 8255.
Utilice la figura 5.8 para guiarse en la implementacin fsica.
Edite el programa en lenguaje ensamblador que se muestra en la figura 5.9 y obtenga el cdigo de mquina.
27
UNAM
28
UNAM
Programe la memoria EEPROM en el programador universal con el archivo P05 Registro de Luces.hex.
Escriba la funcin habilitadora de la seal CE para el circuito PPI 8255 y un inversor para la seal de RESET en un
proyecto de ISPLEVER tal y como se muestra en la figura 5.10.
29
6.
7.
UNAM
Programe la GAL con el archivo con terminacin .JED generado en el programa ISPLEVER y pruebe el sistema
completo.
Conecte el circuito probador de 8 leds en el puerto A del PPI 8255 y la seal que controla que secuencia de leds que
encender en el bit PB0 y compruebe el funcionamiento de ambos corrimientos.
Cuestionario
1.
2.
3.
4.
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.
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.
Explique el funcionamiento del programa empleado en este sistema.
Justifique la utilizacin de las ecuaciones de decodificacin del sistema empleadas en la GAL.
30
C2
0.1uF
R3
1k
+5v
Circuito
+5v
U1C
74LS04
6
74LS04
Z80 CPU
GAL22V10D
AT28C16
6116 SRAM
PPI 8255
RESET
SW1
D1
1N4001
U1B
74LS04
1K
1K
U1A
74LS04
R2
R1
C1
0.1uF
U1
U2
U3
U4
U5
U6
21
22
19
20
26
16
17
24
25
18
23
27
28
GND
7
29
12
12
12
7
14
11
24
24
24
26
D0
D1
D2
D3
D4
D5
D6
D7
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
Z80 CPU
VCC
RD
WR
MREQ
IORQ
RST
INT
NMI
WAIT
BUSRQ
HALT
BUSAK
M1
REFSH
CLK
U2
14
15
12
8
7
9
10
13
30
31
32
33
34
35
36
37
38
39
40
1
2
3
4
5
U3
I/CLK
I
I
I
I
I
I
I
I
I
I
I
I/O
23
22
21
20
19
18
17
16
15
GAL22V10
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
1
2
3
4
5
6
7
8
9
10
11
13
14
+5V
20
18
21
8
7
6
5
4
3
2
1
23
22
19
U4
OE
CE
WE
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
9
10
11
13
14
15
16
17
U6
8255
35
5
36
9
8
34
33
32
31
30
29
28
27
RESET
CS
RD
WR
A0
A1
D0
D1
D2
D3
D4
D5
D6
D7
AT28C16
D0
D1
D2
D3
D4
D5
D6
D7
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
14
15
16
17
13
12
11
10
18
19
20
21
22
23
24
25
4
3
2
1
40
39
38
37
31
UNAM
Laboratorio de Microprocesadores
Prctica 6
Memoria SRAM o memoria de datos
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 GAL22V10D 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. Esta memoria debe
realizar las funciones de lectura y escritura, es decir que debe ser memoria RWM (Read Write Memory), aunque
tpicamente se le conoce como memoria RAM, aun cuando el concepto RAM se refiere al mtodo de acceso y no al tipo
de operaciones posibles, la figura 6.1 nos muestra este elemento.
Reloj
Microprocesador
Bus de Direcciones
Bus de Control
Bus de Datos
Memoria
ROM
(Programa)
Memoria
RAM
(Datos)
Puertos de
Entrada
Puertos de
Salida
Dispositivos Perifricos
32
UNAM
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.
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.
EEPROM
AT28C16
2K x 8
0000H
07FFH
SIN USAR
SRAM
6116
2K x 8
3000H
37FFH
64K
65536 localidades
de memoria
SIN USAR
33
UNAM
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.
La seal de activacin de la memoria SRAM se har a travs de una funcin OR con las seales mostradas en la figura 6.4
y la cul se implementar dentro del circuito GAL22V10D.
A15
A14
A13
A12
2
3
4
5
6
7
8
A11
/WR
/CE_SRAM
U?
/MREQ
/RD
2
1
3
XNOR2
Material
1 Sistema mnimo con Microprocesador, circuito de reloj, circuito de reset, memoria EEPROM, PPI 8255 y decodificador
de direcciones con GAL22V10D.
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
Prctica 6 Memoria SRAM o memoria de datos
34
UNAM
Procedimiento Experimental
1.
2.
Implemente el circuito mostrado en la figura 6.8 considerando que ya se tiene armado el sistema mnimo de
microprocesador incluyendo la memoria EEPROM y el PPI 8255 y solo deber adicionarse el circuito integrado 6116
que integra la memoria SRAM.
Utilice la figura 6.5 para guiarse en la implementacin fsica.
Edite el siguiente programa en lenguaje ensamblador, tal y como se muestra en la figura 6.6 y obtenga el cdigo de
mquina.
35
4.
5.
6.
7.
UNAM
Programe la memoria EEPROM en el programador universal con el archivo P06 Registro de corrimiento.hex.
Escriba la funcin decodificadora de direccin en un proyecto de ISPLEVER tal y como se muestra en la figura 6.7.
Programe la GAL con el archivo con terminacin .jed y pruebe el sistema completo para comprobar el
funcionamiento del sistema.
Mida el tiempo de encendido del led y el tiempo entre cambios producido por el sistema, comprobando que se
cumplan los tiempos de diseo.
Es posible llamar una y otra vez en forma recursiva a las subrutinas con la estructura de la pila de este
microprocesador ?
Porque se establece la direccin inicial de la pila en la direccin final de la SRAM y no en la posicin inicial.
Justifique la expresin de Boole empleada para la activacin de la SRAM.
Explique el concepto LIFO empleado en la pila del microprocesador Z80.
Como identifica el microprocesador a cul de las 2 memorias del circuito se est accediendo.
36
C2
0.1uF
R3
1k
+5V
U1
U2
U3
U4
U5
U6
U7
+5V
U1C
74LS04
6
Circuito
74LS04
Z80 CPU
GAL22V10D
AT28C16
PPI 8255
6116 SRAM
MMC74C922
RESET
SW1
D1
1N4001
U1B
74LS04
1K
1K
U1A
74LS04
R2
R1
C1
0.1uF
7
29
12
12
7
12
9
14
11
24
24
26
24
18
D0
D1
D2
D3
D4
D5
D6
D7
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
Z80 CPU
GND
RD
WR
MREQ
IORQ
RST
INT
NMI
WAIT
BUSRQ
HALT
BUSAK
M1
REFSH
CLK
U2
VCC
21
22
19
20
26
16
17
24
25
18
23
27
28
14
15
12
8
7
9
10
13
30
31
32
33
34
35
36
37
38
39
40
1
2
3
4
5
U3
GAL22V10
1
2
3
4
5
6
7
8
9
10
11
13
14
I/CLK
I
I
I
I
I
I
I
I
I
I
I
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
23
22
21
20
19
18
17
16
15
+5V
20
18
21
8
7
6
5
4
3
2
1
23
22
19
18
20
21
8
7
6
5
4
3
2
1
23
22
19
U4
OE
CE
WE
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
CE
OE
WE
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
U6
9
10
11
13
14
15
16
17
9
10
11
13
14
15
16
17
U5
8255
35
5
36
9
8
34
33
32
31
30
29
28
27
RESET
CS
RD
WR
A0
A1
D0
D1
D2
D3
D4
D5
D6
D7
AT28C16
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
6116
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
14
15
16
17
13
12
11
10
18
19
20
21
22
23
24
25
4
3
2
1
40
39
38
37
37
UNAM
Laboratorio de Microprocesadores
Prctica 7
Conexin de dispositivo perifrico de entrada (Teclado)
Tema
6.1.1. Control de dispositivos con tcnicas de programacin
Objetivos
Introduccin
El circuito desarrollado hasta la prctica 6 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 tal como se muestra en la figura 7.1.
Reloj
Microprocesador
Bus de Direcciones
Bus de Control
Bus de Datos
Memoria
ROM
(Programa)
Memoria
RAM
(Datos)
Puertos de
Entrada
Puertos de
Salida
Dispositivos Perifricos
38
UNAM
dispositivos apuntadores como Mouse, Track Ball, Touch Screen, tarjetas de red, audio o video, discos duros, CD, o DVD
y en general cualquier dispositivo que permita enviar datos hacia el microprocesador.
Es por eso que en esta prctica se propone adicionar un teclado matricial de 12 teclas como el mostrado en la figura 7.2,
que nos permitir insertar datos numricos o an alfanumricos si seleccionamos otro tipo de teclado.
A
B
C
D
Tecla
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
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
Tabla 7.2 Decodificacin rengln columna de teclado de 16 teclas
39
UNAM
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 (X4), 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 7.4 se muestra la equivalencia.
0
Figura 7.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 7.3
Cdigo
74C922
Tecla
Figura 7.5 Grficas para seleccin de los capacitores de oscilacin y anti rebotes
Practica 7 Conexin de dispositivo perifrico de entrada (Teclado)
40
UNAM
Actividades Previas
1.
2.
3.
4.
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.
2.
Implemente el circuito mostrado en la figura 7.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.
Utilice la figura 7.6 para establecer la posicin de los circuitos y sus conexiones.
41
C2
0.1uF
R3
1k
Rojo
RESET
SW1
D1
1N4001
Naranja
Am arillo
Azul
Violeta
Gris
+5V
U1A
74LS04
U1B
74LS04
1K
1K
R2
R1
C1
0.1uF
+5V
U1C
74LS04
6
Verde
21
22
19
20
26
16
17
24
25
18
23
27
28
RD
WR
1
2
3
4
5
6
11
10
8
7
14
15
12
8
7
9
10
13
30
31
32
33
34
35
36
37
38
39
40
1
2
3
4
5
C?
0.1uF
D0
D1
D2
D3
D4
D5
D6
D7
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
Z80 CPU
C?
0.01uF
MREQ
IORQ
RST
INT
NMI
WAIT
BUSRQ
HALT
BUSAK
M1
REFSH
CLK
U2
OD
OC
OSC
KBONSMSK OB
OA
CLMX1
CLMX2
CLMX3
CLMX4
ROWY 1 DAVBL
OE
ROWY 2
ROWY 3
ROWY 4
I/CLK
I
I
I
I
I
I
I
I
I
I
I
I/O
14
15
16
17
U7
MM74C922
12
13
U3
GAL22V10
1
2
3
4
5
6
7
8
9
10
11
13
14
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
23
22
21
20
19
18
17
16
15
+5V
20
18
21
8
7
6
5
4
3
2
1
23
22
19
18
20
21
8
7
6
5
4
3
2
1
23
22
19
U4
OE
CE
WE
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
CE
OE
WE
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
U6
9
10
11
13
14
15
16
17
9
10
11
13
14
15
16
17
U5
8255
35
5
36
9
8
34
33
32
31
30
29
28
27
RESET
CS
RD
WR
A0
A1
D0
D1
D2
D3
D4
D5
D6
D7
AT28C16
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
6116
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
14
15
16
17
13
12
11
10
18
19
20
21
22
23
24
25
4
3
2
1
40
39
38
37
Circuito
74LS04
Z80 CPU
GAL22V10D
AT28C16
PPI 8255
6116 SRAM
MMC74C922
U1
U2
U3
U4
U5
U6
U7
14
11
24
24
26
24
18
VCC
7
29
12
12
7
12
9
GND
D1 - D8
LED
R1 - R8
0.47k
42
3.
UNAM
Edite el programa en lenguaje ensamblador de la figura 7.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).
43
UNAM
Programe la GAL con el archivo .jed y pruebe el sistema completo para comprobar el funcionamiento del teclado.
Compruebe que el cdigo binario mostrado en las terminales de los 4 bits menos significativos del puerto A son los
correspondientes a cada una de las teclas presionadas.
Cuestionario
1.
2.
3.
4.
Disee un sistema de decodificacin de 32 teclas si se emplea para esa funcin a circuitos MM74C922.
Justifique el valor del byte de configuracin enviado al PPI en su puerto 03H.
Porque es necesario deshabilitar las interrupciones cuando se ejecuta la subrutina de interrupcin.
Describa cual es el proceso de interrupcin empleado en este programa, justificando la configuracin y la direccin
de la subrutina.
44
UNAM
Laboratorio de Microprocesadores
Prctica 8
Conexin de dispositivo perifrico de salida (Display LCD)
Tema
6.1.1. Control de dispositivos con tcnicas de programacin
Objetivos
El alumno realizar la conexin de una pantalla LCD de 16 caracteres por 2 lneas 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
Bus de Direcciones
Bus de Control
Bus de Datos
Memoria
ROM
(Programa)
Memoria
RAM
(Datos)
Puertos de
Entrada
Puertos de
Salida
Dispositivos Perifricos
45
UNAM
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 cdigos en caracteres ASCII y que convierte el cdigo a un mapa de pixeles que se puede desplegar
sobre cada uno de los 16 caracteres de la pantalla o almacenarlo en la memoria interna del display (DDRAM).
Descripcin
Tiempo de
Ejecucin
Limpia Display
Regreso al Origen
I/D
Control de Encendido /
Apagado del Display
31us
S/C
R/L
31us
Formato de datos
DL
31us
Direccin de la CGRAM
31us
Direccin de la DDRAM
31us
Bandera de ocupado en
lectura y direccin
BF
0us
AC
AC
AC
AC
AC
AC
AC
1.28 ms
1.28 ms
31us
31us
31us
46
UNAM
Para la conexin de esta pantalla LCD se utilizarn 2 puertos del circuito PPI 8255:
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 (E) y seleccin de comando o
dato (RS).
Se requieren estas seales de datos y control debido a que el display a emplear tiene 16 terminales como se muestra en
la figura 8.3.
Vss
Vcc
Vee
RS
R/W
D0
Seales de control
D1
D2
D3
D4
D5
D6
D7
LD+
LD-
Seales de datos
Seal
Vss
Vcc
Vee
4
5
6
7 - 14
15
16
RS
R/W
E
D0 D7
LD+
LD-
Descripcin
Tierra
+ 5 V.c.d.
Voltaje de control de contraste
0 V. = Contraste mnimo
Seal de Comando RS =0 Dato RS = 1
Seal de Lectura R/W = 1 Escritura R/W =0
Seal de habilitacin del display E = 1
Bus de datos
Positivo del led de iluminacin trasera
Negativo del led de iluminacin trasera
Seal
RS
R/W
E
D0
D1
D2
D3
D4
D5
D6
D7
Puerto - bit
PB1
Tierra
PB0
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
Tabla 8.3 Asignacin de terminales del display a los puertos del PPI
47
UNAM
Actividades Previas
1.
2.
3.
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
Procedimiento Experimental
1.
2.
3.
Implemente el circuito mostrado en la figura 8.7 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.
Edite el programa en lenguaje ensamblador de la figura 8.4, obtenga el cdigo de mquina.
Programe la memoria EEPROM.
48
UNAM
49
6.
7.
UNAM
Compruebe que se despliega correctamente el mensaje en el display de acuerdo a la figura 8.5 y que despus se
desplaza el mensaje sobre el display como en la figura 8.6. Modifique la programacin de la memoria para que la
fecha del semestre debe sea la correcta para el semestre actual (2015-2).
Describa las modificaciones que deben hacerse al programa para realizar un desplazamiento a la derecha del
mensaje.
Cuestionario
1.
2.
3.
Describa el procedimiento para programar el display usando datos de 4 bits en lugar de datos de 8 bits.
Porque es necesario correr una subrutina de consumo de tiempo despus del envo de cada comando o dato.
Existe alguna otra forma de checar que el display est libre para ejecutar el siguiente comando ?
50
C2
0.1uF
R3
1k
Rojo
RESET
SW1
D1
1N4001
U1B
74LS04
Naranja
Am arillo
Azul
Violeta
Gris
+5V
U1A
74LS04
1K
1K
R2
R1
C1
0.1uF
+5V
U1C
74LS04
6
Verde
21
22
19
20
26
16
17
24
25
18
23
27
28
RD
WR
1
2
3
4
5
6
11
10
8
7
14
15
12
8
7
9
10
13
30
31
32
33
34
35
36
37
38
39
40
1
2
3
4
5
C?
0.1uF
D0
D1
D2
D3
D4
D5
D6
D7
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
Z80 CPU
C?
0.01uF
MREQ
IORQ
RST
INT
NMI
WAIT
BUSRQ
HALT
BUSAK
M1
REFSH
CLK
U2
OD
OC
OSC
KBONSMSK OB
OA
CLMX1
CLMX2
CLMX3
CLMX4
ROWY 1 DAVBL
OE
ROWY 2
ROWY 3
ROWY 4
I/CLK
I
I
I
I
I
I
I
I
I
I
I
I/O
14
15
16
17
U7
MM74C922
12
13
U3
GAL22V10
1
2
3
4
5
6
7
8
9
10
11
13
14
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
23
22
21
20
19
18
17
16
15
+5V
20
18
21
8
7
6
5
4
3
2
1
23
22
19
18
20
21
8
7
6
5
4
3
2
1
23
22
19
U4
OE
CE
WE
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
CE
OE
WE
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
U6
9
10
11
13
14
15
16
17
9
10
11
13
14
15
16
17
U5
8255
35
5
36
9
8
34
33
32
31
30
29
28
27
RESET
CS
RD
WR
A0
A1
D0
D1
D2
D3
D4
D5
D6
D7
AT28C16
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
6116
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
14
15
16
17
13
12
11
10
18
19
20
21
22
23
24
25
4
3
2
1
40
39
38
37
+5V
74LS04
Z80 CPU
GAL22V10D
AT28C16
PPI 8255
6116 SRAM
MMC74C922
Circuito
14
11
24
24
26
24
18
7
29
12
12
7
12
9
GND
Display 16 x 2
U1
U2
U3
U4
U5
U6
U7
VCC
51
UNAM
Laboratorio de Microprocesadores
Prctica 9
Control de velocidad de motor de CD con PWM
Tema
6.1.1. Control de dispositivos con tcnicas de programacin
Objetivos
El alumno realizar la integracin de todos los elementos del sistema mnimo para realizar un control de
velocidad de un motor de CD empleando el mtodo de modulacin por ancho de pulso (PWM).
El alumno crear y probar un programa en lenguaje ensamblador para controlar a travs del teclado el
incremento o decremento del ciclo de trabajo de la seal PWM.
Introduccin
A travs de esta prctica el alumno implementar un sistema de control de velocidad de un motor de corriente directa
empleando el mtodo de modulacin por ancho de pulso (PWM) y utilizar el teclado para seleccionar a travs de las
teclas * y #, el incremento y decremento de la velocidad respectivamente. El display se utilizar para mostrar el
letrero que identifica al sistema Motor de CD y para mostrar a travs del signo + - si se est incrementando o
decrementando la velocidad.
Reloj
Microprocesador
Bus de Direcciones
Bus de Control
Bus de Datos
Memoria
ROM
(Programa)
Memoria
RAM
(Datos)
Puertos de
Entrada
Puertos de
Salida
Dispositivos Perifricos
Motor de CD
Display LCD
52
UNAM
El mtodo denominado modulacin por ancho de pulso (PWM) se lleva a cabo generando una seal cuadrada con un
periodo fijo, lo que define la frecuencia de la seal y controlando el tiempo que dura en estado alto lo cual define el ciclo
de trabajo, o sea el porcentaje de tiempo que la seal dura en estado alto con respecto al periodo de tiempo.
La figura 9.2 muestra las relaciones entre los parmetros periodo (T ), el tiempo en estado alto (th) y el tiempo en
estado bajo (tl ), as como la definicin matemtica del ciclo de trabajo (DC ).
th
tl
T
T = Periodo
th = Tiempo en estado alto
tl = Tiempo en estado bajo
DC (duty cycle) = Ciclo de trabajo =
Donde:
DC = 20%
= 1.0V
= 2.3V
DC = 50%
= 4.8V
DC = 95%
Figura 9.3 Seal PWM con ciclos de trabajo y voltajes medios crecientes
Por lo tanto el programa controlar la anchura del tiempo en estado alto pero manteniendo el valor del periodo de
trabajo, dicho cambio se har incrementando o disminuyendo el valor a travs de las teclas * y #.
La seal generada por el microprocesador en el bit 6 del puerto B se aplicar a travs de un transistor de potencia en la
configuracin de seguidor de emisor, tal y como se muestra en la figura 9.4. En este diagrama la alimentacin del motor
es de +5V, pero si el motor es de +12V entonces la alimentacin del colector del transistor deber adecuarse a estas
condiciones.
+5V
Q1
TIP31
Bit 6 puerto B
Motor CD
Figura 9.4 Seguidor de emisor para control del motor de CD con seal PWM.
Prctica 9 Control de velocidad de motor de CD con PWM
53
UNAM
Actividades Previas
1.
2.
3.
4.
5.
Ancho de
pulso
54
UNAM
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.
2.
3.
Implemente el circuito mostrado en la figura 9.9 considerando que ya se tiene armado el sistema mnimo de Von
Neumann, el teclado, la pantalla LCD con sus conexiones de alimentaciones, bus de datos y seales de control.
Considere que deber adecuar la alimentacin del colector del transistor en funcin del voltaje nominal del motor
de CD. que vaya a usar.
Edite el programa en lenguaje ensamblador de la figura 9.7, y obtenga el cdigo de mquina.
Figura 9.7 Programa para control de velocidad del motor de CD. (Parte 1)
55
UNAM
Figura 9.7 Programa para control de velocidad del motor de CD. (Parte 2)
4.
5.
6.
7.
56
UNAM
Reduzca la velocidad al valor mnimo posible presionando y liberando la tecla # y anote el voltaje medio en CD,
medido en la terminal del emisor del transistor, que es el mismo que se aplica al motor de CD.
9. Haga una tabla de 5 valores del periodo, tiempo en estado alto, tiempo en estado bajo y ciclo de trabajo.
10. Aumente la velocidad al valor mximo posible presionando y liberando la tecla * y anote el voltaje medio en CD,
medido en la terminal del emisor del transistor, que es el mismo que se aplica al motor de CD.
11. Haga una tabla de 5 valores del periodo, tiempo en estado alto, tiempo en estado bajo y ciclo de trabajo.
Cuestionario
1.
2.
Indique en qu forma se comporta el voltaje medio de la seal de alimentacin del motor en funcin del ciclo de
trabajo de la seal PWM.
Qu ventajas tiene controlar sistemas de CD empleando seales PWM.
57
C2
0.1uF
R3
1k
Rojo
RESET
SW1
D1
1N4001
U1B
74LS04
Naranja
Am arillo
Azul
Violeta
Gris
+5V
U1A
74LS04
1K
1K
R2
R1
C1
0.1uF
Verde
+5V
U1C
74LS04
6
5
21
22
19
20
26
16
17
24
25
18
23
27
28
RD
WR
1
2
3
4
5
6
11
10
8
7
14
15
12
8
7
9
10
13
30
31
32
33
34
35
36
37
38
39
40
1
2
3
4
5
C?
0.1uF
D0
D1
D2
D3
D4
D5
D6
D7
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
Z80 CPU
C?
0.01uF
MREQ
IORQ
RST
INT
NMI
WAIT
BUSRQ
HALT
BUSAK
M1
REFSH
CLK
U2
OD
OC
OSC
KBONSMSK OB
OA
CLMX1
CLMX2
CLMX3
CLMX4
ROWY 1 DAVBL
OE
ROWY 2
ROWY 3
ROWY 4
I/CLK
I
I
I
I
I
I
I
I
I
I
I
I/O
14
15
16
17
U7
MM74C922
12
13
U3
GAL22V10
1
2
3
4
5
6
7
8
9
10
11
13
14
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
23
22
21
20
19
18
17
16
15
+5V
20
18
21
8
7
6
5
4
3
2
1
23
22
19
18
20
21
U4
OE
CE
WE
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
CE
OE
WE
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
U6
9
10
11
13
14
15
16
17
9
10
11
13
14
15
16
17
U5
8255
35
5
36
9
8
34
33
32
31
30
29
28
27
RESET
CS
RD
WR
A0
A1
D0
D1
D2
D3
D4
D5
D6
D7
AT28C16
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
6116
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
14
15
16
17
13
12
11
10
18
19
20
21
22
23
24
25
4
3
2
1
40
39
38
37
+5V
U1
U2
U3
U4
U5
U6
U7
Motor CD
74LS04
Z80 CPU
GAL22V10D
AT28C16
PPI 8255
6116 SRAM
MMC74C922
Circuito
7
29
12
12
7
12
9
GND
+5V
Q1
TIP31
Display 16 x 2
14
11
24
24
26
24
18
VCC
8
7
6
5
4
3
2
1
23
22
19
58