Está en la página 1de 27

D

DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR









GUIAS NICAS DE LABORATORIO









SISTEMA DIGITAL BASADO EN MICROPROCESADOR

AUTOR: ALBERTO CUERVO













SANTIAGO DE CALI
UNIVERSIDAD SANTIAGO DE CALI
DEPARTAMENTO DE LABORATORIOS










D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

SISTEMA DIGITAL BASADO EN MICROPROCESADOR



Introduccin

El artculo presente tiene como objetivo describir el diseo de un sistema digital basado
en el microprocesador de 8 bits 8085 de Intel.

Este sera el ltimo de los microprocesadores de 8 bits de propsito general desarrollado
por la firma Intel Corporation y consiste de una versin mejorada de su microprocesador
8080.

Se seleccion el microprocesador 8085 por las ventajas que ste ofrece entre los
microprocesadores de 8 bits, entre las cuales se pueden nombrar su generador interno
de reloj, su controlador interno del sistema, su bajo costo y su amplio repertorio de
chips de soporte que lo hacen atractivo en aplicaciones de control.

El sistema descrito consiste, adems del microprocesador, de una memoria RAM de 2
Kbytes, una memoria EPROM de 8 Kbytes en la cual residir el programa, 3 puertos de
entrada/salida programables y un convertidor analgico/digital el cual es utilizado para
obtener el valor de la temperatura de un lquido contenido en un recipiente.

El sistema digital diseado es apropiado para ser implementado como proyecto de curso
de un semestre de duracin por estudiantes relacionados con el tema de
microprocesadores.

El microprocesador
La distribucin de terminales del circuito integrado del microprocesador 8085 se muestra
en la figura 1.

Como se puede observar en la figura, este microprocesador opera con una sola fuente de
alimentacin de + 5 voltios conectada entre los terminales 20 y 40.

Las lneas TRAP, RST 7.5, RST 6.5, RST 5.5 e INTR (Interrupt Request) son entradas de
interrupcin por donde los dispositivos perifricos pueden solicitar atencin del
microprocesador .

Presentan distintos niveles de prioridad, siendo TRAP la lnea ms prioritaria e INTR la
de menor prioridad.

A una solicitud de interrupcin por la lnea INTR, el microprocesador contesta con un
pulso negativo INTA (Interrupt Acknowledge) si acepta la interrupcin. Durante el pulso
INTA, el dispositivo perifrico deber colocar en el bus de datos del microprocesador el
vector de interrupcin el cual consiste de un cdigo de 8 bits que tiene la informacin
de la direccin de memoria donde est ubicada la subrutina de servicio del dispositivo.

D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

El cdigo de este vector de interrupcin o RSTn es igual a 11NNN111, donde n es un
nmero de 3 bits igual a NNN.

Introduciendo este cdigo con el pulso INTA el microprocesador guarda la direccin de
memoria de retorno en la pila y salta a la direccin 8 * n.

Se debe destacar que el microprocesador genera automticamente en su interior los
distintos vectores de interrupcin a solicitudes efectuadas por las otras entradas de
interrupcin, por lo que se producir una bifurcacin de forma automtica a las
direcciones de memoria donde debern estar ubicadas las subrutinas de atencin
correspondientes o un salto a las mismas como se muestra en la tabla 1.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
X1
X2
RESET OUT
SOD
SID
TRAP
RST 7.5
RST 6.5
RST 5.5
INTR
INTA
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
8085
Vcc (+5v.)
HOLD
HLDA
(CLK) OUT
RESET IN
READY
IO/M
S1
RD
WR
ALE
S0
A15
A14
A13
A12
A11
A10
A9
A8
MICROPROCESADOR
Figura 1. Distribucin de terminales


Bifurca a la direccin: Solicitud por:
decimal binario hexadecimal
TRAP 36 0000000000100100 0024
RST 7.5 60 0000000000111100 003C
RST 6.5 52 0000000000110100 0034
RST 5.5 44 0000000000101100 002C

Tabla 1. Direcciones de bifurcacin.

D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR


La lnea RST 7.5 tiene una caracterstica distinta a las otras. El flip-flop de solicitud de
interrupcin asociado al dispositivo se encuentra internamente en el microprocesador, lo
que hace que esta lnea sea sensible al flanco de subida de un pulso aplicado a la misma
por el hardware del dispositivo.

En cualquier otra lnea (INTR, RST 6.5 Y RST 5.5) debe permanecer un nivel de 1 fijo
hasta que la interrupcin sea reconocida por el microprocesador.
El flip-flop interno de solicitud de interrupcin asociado a la lnea RST 7.5 se resetea con
una de las siguientes acciones:

1. Reseteando al microprocesador, esto es, colocando un 0 en la entrada (Reset
In).
2. Mediante el software con una instruccin SIM (Set Interrupt Mask) con el bit 4 del
acumulador en 1.
3. Automticamente con un reconocimiento del microprocesador a una solicitud de
interrupcin por la lnea RST 7.5.

La lnea TRAP es sensible tanto a un flanco como a un nivel aplicado. Esta entrada debe
ir a 1 y permanecer en 1 hasta que sea reconocida la solicitud de interrupcin. Una
nueva interrupcin no ser reconocida hasta que esta lnea vaya a 0 y despus
nuevamente a 1.

Las lneas de interrupcin excepto TRAP pueden ser enmascaradas o inhabilitadas
mediante una instruccin DI (Disable Interrupt) lo cual coloca al flip-flop interno INTE en
el estado 0. Este flip-flop es el responsable de habilitar o inhabilitar las lneas de
interrupcin excepto TRAP que es una lnea no-enmascarable. Con la instruccin EI
(Enable Interrupt) se coloca al flip-flop INTE en 1 habilitando todas las lneas de
interrupcin.

Cuando el microprocesador reconoce una interrupcin, automticamente coloca INTE=0
inhabilitando todas las lneas enmascarables, por lo que en el software habr que
ejecutar la instruccin EI para permitir futuras interrupciones por estas lneas.
Si INTE=1, las lneas RST 7.5, RST 6.5 y RST 5.5 pueden ser inhabilitadas individualmente
colocando un cdigo apropiado en un registro interno del microprocesador denominado
registro de mscaras como se muestra en la figura 2.
M7.5 M6.5 M5.5 MSE R7.5 X SOE SOD
0 1 2 3 4 5 6 7
Figura 2. Reg. de mscaras del microprocesador

Las funciones de los distintos bits colocados en el registro de mscaras se describen a
continuacin.


D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

Bits 0, 1 y 2. Un 1 colocado en estos bits del registro inhabilita la lnea respectiva. Un 0
la habilita.

Bit 3 MSE (Mask Set Enable). La instruccin SIM mueve el contenido del acumulador al
registro de mscaras. El bit 3 debe estar en 1 cuando se ejecute la instruccin SIM para
poder alterar los bits 0, 1 y 2 anteriores.

Bit 4 R7.5. Un 1 colocado en el bit 4 resetea el flip-flop interno de solicitud de
interrupcin asociado a la lnea RST 7.5.

Bit 7 SOD = Serial Output Data. El terminal 4 del microprocesador por el cual se
transmiten datos en forma serial es una rplica de este bit del registro de mscaras el
cual puede ser colocado en un determinado nivel lgico mediante la instruccin SIM. Con
esta instruccin, el bit 7 del acumulador es colocado en el bit 7 del registro de mscaras
si el bit 6 (SOE= Serial Output Enable) es colocado en 1.

La instruccin RIM (Read Interrupt Mask) almacena en el acumulador del
microprocesador el estado de las mscaras de interrupcin, las interrupciones
pendientes y el nivel del terminal 5 SID (Serial Input Data) utilizado para recibir datos en
forma serial. De esta forma el estado de las interrupciones puede ser monitoreado bajo
el control del programa. Cuando las interrupciones estn inhabilitadas pero pendientes,
el programa puede de forma selectiva habilitar una lnea en particular para atender una
solicitud de interrupcin en cuestin.

El contenido del acumulador despus de una instruccin RIM se muestra en la figura 3.

M6.5 M5.5 M7.5 I E I 5.5 I 6.5 I 7.5 SID
Mscaras de
interrupcin
INTE
Interrupciones pendientes
Serial Input Data
Figura 3. Contenido del acumulador despus de RIM


Terminales 1 y 2. (X1) y (X2).
Estos terminales son utilizados para fijar la frecuencia interna de los pulsos de reloj. En
estos terminales se puede colocar un cristal de cuarzo o una resistencia cuando la
estabilidad de la frecuencia del reloj no es un factor determinante. En el sistema digital
descrito se utiliza una resistencia de 10 Kohmios que fija la frecuencia de los pulsos de
reloj 1.5 MHz.

Terminal 36 (Reset In).

D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

Colocando esta entrada en 0 se resetea el microprocesador provocando las siguientes
acciones.

1. Se limpia el contador de programa, por lo que el microprocesador comenzar
ejecutando la instruccin que se encuentre en la direccin 0000H cuando (Reset
In) regrese a 1.
2. Las lneas de datos y direcciones, as como las lneas de control se colocan en el
estado de alta impedancia mientras (Reset In) = 0.
3. Coloca al flip-flop INTE en 0 inhabilitando las interrupciones. Igualmente se
resetea el flip-flop interno de solicitud de interrupcin asociado con la lnea RST
7.5 y se colocan en 1 las mscaras de interrupcin.

Mientras (Reset In) = 0, el microprocesador se encuentra en el estado de Reset en el
cual la lnea de salida Reset Out, terminal 3, se activa con un 1. Se utiliza generalmente
como seal general de reset del sistema y est sincronizada con los pulsos de reloj del
microprocesador los cuales pueden ser obtenidos del terminal 37 identificado como CLK
OUT.

La seal HOLD, terminal 39, le indica al microprocesador que un dispositivo externo
solicita tener acceso directo a memoria (DMA : Direct Memory Access). Cuando el
microprocesador acepta o reconoce la solicitud, responde colocando en 1 la seal HLDA
(Hold Acknowledge), terminal 38. Esto ltimo le indica al dispositivo que el
microprocesador libera los buses de datos y direcciones, las seales de RD, WR e
IO/M colocando todas estas lneas en el estado de alta impedancia. Esto permite al
dispositivo externo tomar el control de los buses del sistema para efectuar una
transferencia de datos directamente con la memoria sin la intervencin del
microprocesador.

Las seales de RD y WR son pulsos negativos generados por el microprocesador por los
terminales 32 y 31 respectivamente cuando va a efectuar una operacin de lectura o
escritura en la memoria o en un puerto de entrada/salida.

Las seales S1, S0 e IO/M son seales de estado del microprocesador obtenidas en los
terminales 33, 29 y 34 respectivamente que identifican el ciclo de mquina en curso en
el microprocesador, esto es, si se trata de un ciclo de bsqueda, de un ciclo de lectura
de memoria, de un ciclo de escritura de memoria, etc. De estas, la ms utilizada es
IO/M que indica si la operacin de lectura o escritura se realiza en memoria o en un
puerto de entrada/salida. IO/M = 0 indica que la operacin se realiza en la memoria e
IO/M= 1 indica que la operacin se efecta en un puerto.

De la misma forma, S1S0=00 indica que el microprocesador se encuentra detenido en el
estado de ALTO, 01 que se encuentra realizando una operacin de lectura, 10 una
operacin de escritura y 11 que se encuentra en el ciclo de mquina de bsqueda en el
cual lee de la memoria el cdigo de operacin de una instruccin.


D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

La duracin de un estado en el microprocesador se identifica con un perodo de los
pulsos de reloj. Todos los ciclos de mquina tienen 3 estados, excepto el ciclo de
bsqueda que puede tener 4 6 estados dependiendo de la instruccin. Todo un ciclo de
instruccin consta de uno o ms ciclos de mquina, entendindose que se produce un
nuevo ciclo de mquina cada vez que el microprocesador hace referencia a memoria o a
un dispositivo de entrada/salida.

As por ejemplo, la instruccin STA 2382H (Store Accumulator) que almacena el
contenido del acumulador en la direccin de memoria especificada consta de 4 ciclos de
mquina. Un primer ciclo de bsqueda donde se lee de la memoria el cdigo de
operacin de la instruccin el cual le indica al microprocesador las actividades que debe
realizar a continuacin, 2 ciclos de lectura de memoria (Memory Read) en los cuales se
lee la direccin de 16 bits especificada por la instruccin y un ltimo ciclo de escritura
de memoria (Memory Write) en donde el microprocesador saca por el bus de direcciones
la direccin leda anteriormente para almacenar en esta localizacin de memoria el
contenido del acumulador que est sacando por el bus de datos.

La seal de READY (terminal 35) es utilizada por un dispositivo de entrada/salida o la
memoria para poder solicitar al microprocesador uno o ms estados de espera
intercalados entre los estados T2 y T3 de un ciclo de mquina.

As por ejemplo, durante un ciclo de lectura de memoria en el estado T1 al comienzo del
ciclo de mquina el microprocesador coloca la direccin de la localizacin de memoria
que va a leer en el bus de direcciones y en el estado T3 almacena internamente el
contenido del bus de datos. Si el tiempo de acceso de la memoria es tal que no le da
tiempo a la misma a colocar el dato en el bus de datos tendr que solicitar espera
intercalando estados del mismo nombre entre los estados T2 y T3 mientras la seal
READY=0.

El microprocesador consta de un bus de datos de 8 bits y un bus de direcciones de 16
bits, pudiendo direccionar por tanto 2
16
= 64 Kbytes de memoria.

A8 a A15 (terminales 21-28) constituyen los bits de mayor orden de la direccin y los bits
AD0 a AD7 (terminales 12-19) son lneas compartidas por el bus de datos y los 8 bits de
menor orden de la direccin. Esto es, las lneas AD0-AD7 constituyen un bus
multiplexado. Al comienzo de un ciclo de mquina estas lneas son unidireccionales y
contienen los 8 bits de menor orden A0-A7 de la direccin de memoria o de un puerto de
entrada/salida seleccionado. Posteriormente en el ciclo de mquina estas lneas son
bidireccionales y se convierten en el bus de datos del sistema.

El pulso ALE (Address Latch Enable) es generado por el microprocesador por el terminal
30 al comienzo de un ciclo de mquina para indicar que la parte baja de una direccin
se encuentra en las lneas AD0-AD7 como se ilustra en la figura 4.


D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

parte alta de la direccin
parte baja de la
direccin
Dato
vlido
Ciclo de lectura de memoria (Memory Read)
T1 T2 T3 T1
Reloj
A8-A15
ALE
RD
AD0-AD7
dato
Figura 4. Seales durante un ciclo de lectura de memoria


En esta figura se han representado las seales que ocurren durante un ciclo de lectura
de memoria.

Al comienzo del estado T1 del ciclo de mquina el microprocesador coloca el byte de
mayor orden de la direccin en las lneas A8-A15 y permanece constante hasta el final
del estado T3 y el byte de menor orden de la direccin lo coloca en las lneas AD0-AD7.
Este byte sin embargo permanece en estas lneas solamente hasta el comienzo del
estado T2 en cuyo momento las lneas AD0-AD7 se convierten en lneas de datos.
Observe que el pulso ALE es generado mientras la parte baja de la direccin se
encuentra en las lneas AD0-AD7.

Durante el estado T2 el pulso de lectura RD va a 0 habilitando la salida de memoria y
colocando sta con su demora inevitable su dato en las lneas AD0-AD7. Con el flanco
positivo del reloj en el estado T3 el microprocesador almacena internamente el dato que
le llega por estas lneas. Durante todo el ciclo, la seal IO/M = 0 indicando que la
operacin de lectura se efecta en la memoria.

De acuerdo con la descripcin anterior se hace necesario demultiplexar o retener la
parte baja de la direccin como se muestra en la figura 5.


D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

A15
A14
A13
A12
A11
A10
A9
A8
ALE C oc
Latch
74LS373
10 Kohmios
20
picofaradios
X1
X2
8085
A15
A14
A13
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
D7
D6
D5
D4
D3
D2
D1
D0
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
+
+5V.
R
C
Reset
Bus de
Direcciones
Bus de
Datos
R : 47 Kohmios
C : 10 microfaradios
Figura 5. El microprocesador con el bus de direcciones demultiplexado
RESET IN


En esta figura se ha utilizado el latch de 8 bits con salidas de 3 estados 74LS373 para
retener el byte de menor orden de la direccin. Las salidas se encuentran
permanentemente habilitadas al estar conectada su entrada OC (Output Control) a
tierra 0 voltios.

El pulso ALE del microprocesador alimenta la entrada C del latch, por tanto, cuando ALE
se hace 1 las salidas del latch toman los valores de sus entradas y cuando ALE regresa a
0 estos valores son retenidos en el latch.

La red RC de 47 Kohmios y 10 microfaradios es utilizada para resetear al
microprocesador en el instante inicial que se conecte la energa elctrica. El diodo es de
seal de silicio para proteger la entrada (Reset In) de cualquier posible oscilacin. El
switch de Reset se utiliza para resetear al microprocesador manualmente.

Entre los terminales X1 y X2 se ha conectado una resistencia de 10 Kohmios para fijar la
frecuencia de los pulsos de reloj a un valor aproximado de 1.5 MHz.

Interface con memoria.
Se debe proveer al sistema digital de una memoria EPROM de 8 Kbytes y una memoria
RAM de 2 Kbytes. Para cumplir con estos requerimientos se utilizar el circuito integrado
de una EPROM de 8 Kbytes 27C64. Las direcciones de la EPROM deben comenzar en la
direccin 0000H.

D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

Como la EPROM tiene 13 lneas de direccin, las localizaciones de la misma se podrn
acceder con las direcciones que van de 0000H hasta 1FFFH.
Para la RAM se utiliza el circuito integrado TMS4016. La RAM debe comenzar a
continuacin de la EPROM. Como la RAM tiene 11 lneas de direccin, las direcciones en
la misma irn desde 2000H hasta 27FFH como se muestra en la figura 6.
EPROM
0000 0000 0000 0000
0001 1111 1111 1111
0010 0000 0000 0000
0010 0111 1111 1111
8 Kbytes
2 Kbytes
64 Kbytes
A15 A0
. . . . . . .
RAM
Direcciones
Figura 6. Mapa de memoria
bit 13
bit 14


Como se puede observar, A14A13 = 00 en las direcciones de EPROM y A14A13 = 01 en la
RAM, por lo que se utilizar un decodificador 2 a 4 para seleccionar estas pastillas como
se muestra en la figura 7.

En la misma se muestra al microprocesador con su sistema de memoria. A la lnea de
READY se le ha colocado un 1 fijo ya que los tiempos de acceso de las pastillas de
memoria utilizadas son adecuados para la frecuencia de los pulsos de reloj fijada con la
resistencia de 10 Kohmios. Igualmente se ha colocado un 0 fijo a la lnea de HOLD y a
todas las entradas de interrupcin que no se utilicen.

En la tabla 2 se muestran las funciones de las lneas de las pastillas utilizadas.

Decodificador Memoria RAM Memoria EPROM
G : entrada de habilitacin G: habilitacin de salida CE: entrada de seleccin
BA:entradas, B mayor orden S: entrada de seleccin OE: habilitacin de salida
Y0-Y3: salidas W: habilitacin de
escritura
A0-A12: lneas de direccin
A0-A10: lneas de direccin DQ0-DQ7: salida de datos
DQ1-DQ8: entrada/salida

Tabla 2. Funciones de las lneas.

D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR


A
1
5
A
L
E
A
1
4
A
1
3
A
1
2
A
1
1
A
1
0
A
9
A
8
A
D
0
A
D
1
A
D
2
A
D
3
A
D
4
A
D
5
A
D
6
A
D
7
EPROM 27C64
7
4
L
S
3
7
3
C
OC
B A
G
Y3 Y2 Y1 Y0
1/2 74LS139A
DEC
I
O
/
M
Figura 7. Memoria
X1
X2
10 Kohmios
20 picofaradios
Reset In
Reset Out
Reset 10 microfaradios
47 Kohmios
on/off
A la alimentacin
de los CIs
+5v.
R
e
a
d
y
T
R
A
P
R
S
T

5
.
5
R
S
T

7
.
5
I
N
T
R
H
O
L
D
I
N
T
A
H
L
D
A
S
1
S
0
S
I
D
S
O
D
microprocesador
CLK OUT
R
D
W
R
R
S
T

6
.
5
CEOE
A12 A0
.....
Vcc
Vpp
PGM
DQ7 DQ0
.....
alimentacin
+5v.
4.7K
A10 A0
S
GW
RAM TMS4016
.....
DQ8 DQ1
....
D7
A15
A0



Convertidor analgico/digital
El convertidor analgico/digital seleccionado consiste del circuito integrado ADC0801 o
similar el cual tiene una resolucin de 8 bits. Tiene salida de 3 estados por lo que se
puede acoplar directamente al bus de datos del microprocesador como un puerto de
entrada. Tiene un generador de reloj interno para el proceso de conversin, aunque se
puede utilizar con el reloj del microprocesador aplicado a su terminal CLK IN si la
frecuencia estuviese comprendida entre 100 y 1460 KHz. Utiliza una simple fuente de
alimentacin de + 5 voltios. Este convertidor responde a un voltaje diferencial
analgico [Vin(+) Vin(-)] aplicado en sus entradas. La distribucin de terminales se
muestra en la figura 8.

D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Figura 8. Distribucin de terminales del A/D
Vcc
CLK R
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
CS
RD
WR
CLK IN
INTR
VIN(+)
VIN(-)
A GND
D GND
VREF/2
A/D
ADC0801


Comienzo de la conversin.
La orden de comenzar la conversin de la seal analgica aplicada a la entrada del
convertidor se efecta cuando van a 0 las seales CS y WR como se muestra en la
figura 9a. Cuando se completa la conversin y el dato digital est disponible, el
convertidor responde colocando INTR en 0. Por tanto esta ltima seal puede ser
utilizada como Fn de Conversin pudiendo ser monitoreada bajo el control del
programa o utilizada para solicitar interrupcin del microprocesador.

Inicie conversin
Conversin
terminada
CS
WR
INTR
INTR
CS
RD
Dato
3er estado 3er estado
Figura 9 Seales en el Convertidor A/D
(a) (b)


Lectura del dato.
Para leer el dato digital convertido se hacen 0 CS y RD. El convertidor responde
quitando la solicitud de interrupcin (INTR va a 1) y coloca el dato digital con su
demora intrnseca en sus lneas DB7-DB0 como se muestra en la figura 9b.
Voltaje de Referencia.

D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

El voltaje de referencia del Conv. A/D determina el rango dinmico de la seal
diferencial de entrada VIN = VIN(+) VIN(-).

VREF = Vcc si no se aplica ningn voltaje al terminal marcado como VREF/2. Si se aplica
un voltaje externo a este terminal, por ejemplo 2 voltios, entonces VREF = 4 voltios y
ste ser el rango de variacin de VIN.

En esta situacin, los escalones en VIN (variacin en VIN en que no cambia la salida
digital) ser igual a 4/2
8
= 15.625 milivoltios como se muestra en la figura 10.
Se cumple que VIN = escaln x (valor digital). Por ejemplo, si la salida digital es
00000101 = 5dec, entonces VIN = 5 x 15.625 mV = 78.125 mV, correspondiendo este valor
al centro del escaln.

00000000
00000001
00000010
00000011
00000100
00000101
entrada
analgica
VIN
11111111
.
.
.
.
.
.
salida
digital
15.625 mV
1
5
.
6
2
5

m
V
3
1
.
2
5

m
V
4
6
.
8
7
5

m
V
6
2
.
5

m
V
7
8
.
1
2
5

m
V
3
.
9
8
4

v
Figura 10. Funcin transferencial
escaln
0

v
.


Reloj.
La frecuencia de los pulsos de reloj debe estar en el rango comprendido entre 100 y
1460 KHz. Como la frecuencia del reloj del microprocesador 1.5 MHz, no puede ser
utilizada para alimentar la entrada CLK IN del convertidor.

La frecuencia de reloj del A/D puede ser fijada con una red RC externa como se muestra
en la figura 11. Con R = 10 Kohmios y C = 150 picofaradios se obtiene una frecuencia del
reloj del A/D 606 KHz, valor prximo a 640 KHz recomendado por el fabricante para
obtener garantizada la exactitud del Conv. A/D.

D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

R
C
CLK IN
CLK R
CLK
Frec =
1.1RC
1
A/D
Figura 11. Ajuste de la frecuencia


Sensor de temperatura
El sensor de temperatura seleccionado consiste del circuito integrado LM335 el cual
tiene un coeficiente de temperatura de 10 mV/ C. A la temperatura ambiente de 25 C
tiene un voltaje 2.98 voltios segn especificacin del fabricante. Su distribucin de
terminales se muestra en la figura 12.

Por lo anterior a 0C su voltaje ser 2980mV 10x25= 2.73v y a 100C el voltaje en el
sensor ser igual a 2730mV + 10 x 100 = 3.73v.
1
2
3
4 5
6
7
8
LM335
ajuste
+
-
NC
NC
NC
NC
NC
V+
salida
10 mv/C
circuito bsico
salida
10 mv/C
R
R
10K
sensor calibrado
2.98v a 25C
V+
Figura 12. Sensor de temperatura LM335


El potencimetro de 10 K se utiliza para ajustar el voltaje de salida exactamente en
2.982 voltios a 25C y obtener mayor exactitud del dispositivo.

Rango de temperaturas
Se desea medir temperaturas comprendidas en el rango 0C T < 100 C.
Como el coeficiente de temperaturas del sensor es de 10 mV/C, se utilizar un VREF/2
en el convertidor analgico/digital igual a 1.28 voltios. Esto produce un rango dinmico
en el mismo de 2.56 voltios y un escaln en VIN igual a 2.56/2
8
v = 10 mV. Es decir
entonces que para cada grado centgrado de aumento en la temperatura, la salida
digital se incrementa en la unidad.


D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

Por otro lado, como el sensor produce un voltaje de 2.73 voltios a 0C, se colocar este
valor en VIN(-). As cuando la temperatura sea de 0C, VIN(+) (salida del sensor) = 2.73v
y VIN = VIN(+) VIN(-) = 0 voltios produciendo el convertidor analgico/digital una salida
igual a 00000000.

El circuito para efectuar lo anteriormente expuesto se muestra en la figura 13.

LM4050-4.1
diodo de precisin
de referencia
al bus
de datos
alimentacin
de +5 v.
+
VREF/2
VIN(-)
VIN(+)
A GND
D GND
10
microfaradios
tantalio
7.5K
5%
1K
330
ohmios
1.28v
2.73v
Figura 13 Sensor de Temperatura y Convertidor A/D
A/D
1K
R1
R2
sensor de
temperatura
+5v. LM335
1.2K 10 mV/C
WR
RD
CS
seleccin
0.01
microfaradios
1
2
3
LM4050-4.1
VR
T
= 20 ppm/C
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
CLK R
CLK IN
Vcc
10K
150
picofaradios
INTR
3.3K / 5%
3.9K / 5% 9.1K / 5%


Los pequeos potencimetros R1 y R2 se utilizan para ajustar los voltajes en VREF/2 y
VIN(-) en 1.28 y 2.73v respectivamente. El potencimetro R2 ajusta la salida del conv.
A/D a 00hex cuando la temperatura sea de 0C y R1 a que tenga una resolucin (escaln)
de 10 mV. R1 vara el voltaje entre 1.14 y 1.43v y R2 entre 2.66 y 2.95v
aproximadamente.

El LM4050-4.1 es un diodo de precisin de referencia utilizado para obtener un voltaje
estabilizado de 4.1 voltios con un coeficiente de temperatura muy pequeo. Este voltaje
solamente vara con la temperatura a razn de 20 ppm (partes por milln) por cada C.
El capacitor de 10 microfaradios conectado a la alimentacin de +5v. del A/D debe ser
de tantalio para eliminar los impulsos de ruido que puedan venir por la lnea de
alimentacin de +5v. y estar fsicamente conectado lo ms prximo posible al terminal
de Vcc del convertidor analgico/digital.

D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

El cable de conexin del sensor de temperatura debe ser trenzado para evitar ruido
inducido y conectado a tierra lo ms cerca posible del terminal marcado como AGND
(analog ground : tierra analgica) del A/D.

El sensor de temperatura LM335 debe ir encerrado en un tubo metlico o de vidrio para
construir la sonda que se introduce en el lquido. Debe estar embebido en grasa de
silicona para garantizar una buena transferencia de calor y el extremo abierto del tubo
debe ir sellado con sellante de silicona de alta temperatura para evitar la entrada de
lquido.

Puertos Programables
Se plantea como requerimiento la implementacin del sistema digital con tres puertos
programables, por lo que se utiliza la interface perifrica programable 82C55 de la
compaa Intel Corporation. Este circuito integrado goza de gran aceptacin al ser
utilizadas sus funciones en la implementacin de computadores personales recientes
basados en el Pentium II y empleado para implementar una interface con el teclado y el
puerto paralelo de la impresora en muchos computadores personales.

En la figura 14a se muestra la distribucin de terminales del 82C55, as como las
direcciones internas para seleccionar los distintos registros del mismo.

Consta de 3 puertos A, B y C de entrada/salida los cuales son programados como grupos
como se muestra en la figura 14b. Es programado por medio de 2 bytes de comando,
donde el bit 7 selecciona el byte de comando A o el B. El byte de comando A programa
la funcin de los grupos A y B mientras que el byte de comando B coloca en 1 0 en
forma individual bits del puerto C del 82C55.

Los grupos pueden ser programados en tres modos diferentes. El grupo B puede ser
programado en el modo 0 1 y el grupo A en los modos 0, 1 2. Ambos grupos pueden
ser programados como entrada o como salida.

Modo 0.
La operacin en el modo 0 ocasiona que las lneas del grupo funcionen como lneas de
entradas con buffer de 3 estados o como lneas de salida con registro. Constituye el
modo bsico de operacin.

Modo 1.
En el modo 1 de operacin, se efecta una transferencia controlada por pulsos por los
puertos A o B, mientras que el puerto C proporciona las seales de dilogo o
handshaking requeridas para estos puertos. Ya est configurado el puerto como
entrada o salida, el dato es almacenado en el mismo como en un registro.


D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
D0
D1
D2
D3
D4
D5
D6
D7
RD
WR
A0
A1
CS
RESET
82C55
P
u
e
r
t
o

A
P
u
e
r
t
o

B
P
u
e
r
t
o

C
B
u
s

d
e

d
a
t
o
s
14
15
16
17
13
12
11
10
25
24
23
22
21
20
19
18
37
38
39
40
1
2
3
4 34
33
32
31
30
29
28
27
5
36
9
8
15
6
Vcc: 26
GND : 7
A1 A0 Seleccin
0 0 Puerto A
0 1 Puerto B
1 0 Puerto C
1 1 Registro de comando
(a)
Figura 14. Interface perifrica programable (a) distribucin de terminales y
(b) bytes de comando
Puerto C : PC3-PC0
1=entrada
0=salida
Puerto B
1=entrada
0 = salida
Modo
0=Modo 0
1=Modo 1
Grupo B
Grupo A
byte de comando A
Puerto C : PC7-PC4
1=entrada
0 = salida
Puerto A
1=entrada
0 = salida
Modo
00 = modo 0
01 = modo 1
1X = modo 2
1
7 6 5 4 3 2 1 0
0 X X X
7 6 5 4 3 2 1 0
byte de comando B
seleccin de 1 bit
Bit Set/Reset
1 = Set
0 = Reset
(b)


Modo 2.
El modo 2 de operacin slo es permitido para el grupo A. El puerto A se convierte en
bidireccional pudindose efectuar una transmisin y recepcin de datos a travs de las
mismas lneas.

Puerto de entrada en modo 1.
En este modo de operacin, el puerto funciona como un registro con almacenamiento
del dato. Esto permite que el dato permanezca en el puerto hasta que el
microprocesador se encuentre listo para leerlo. La figura 15 muestra las seales en este
modo de operacin, en donde las lneas PC3, PC4 y PC5 del puerto C no manejan datos,

D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

sino seales de dilogo del puerto A. En la figura 15 se ha supuesto que el puerto A est
programado como entrada y el puerto B como salida.

El significado de estas seales es el siguiente.
1. STBA: Entrada de pulso que almacena el dato en el puerto A.
2. IBFA (Input Buffer Full) : Salida que indica que el puerto A contiene un dato
3. INTRA : (Interrupt Request) : Salida de solicitud de interrupcin del puerto A. Un
1 en esta salida puede ser utilizado para interrumpir al microprocesador. Esta
solicitud de interrupcin puede ser in/habilitada con el flip-flop INTEA interno al
82C55. Este flip-flop puede ser colocado en 1 0 con el bit PC4 mediante el byte
de comando B para el caso del puerto A programado como entrada.

p
u
e
r
t
o

A
al dispositivo
p
u
e
r
t
o

B
STBA
IBFA
INTRA
PC4
PC5
PC3
PC6,PC7
PC0
PC2
PC1
OBFB
ACKB
INTRB
dato
dato almacenado
en el puerto
dato ledo por
el microprocesador
STBA
IBFA
INTRA
RD
PA0-PA7
RD
WR
WR
OBFB
INTRB
ACKB
dato enviado
al puerto
82C55
PB0-PB7
Figura 15. Seales de dilogo
BufferA lleno
Solicitud de interrupcin
BufferB lleno
dato ledo
del puerto
2
dato del dispositivo


El dispositivo coloca un dato en sus lneas de salida y lo almacena en el puerto A al
generar un pulso STBA si el buffer del puerto A est vaco. Este pulso activa las seales
IBFA (buffer de entrada lleno) e INTRA (solicitud de interrupcin). Una vez que el
microprocesador reconoce por medio del software (IBFA) o hardware (INTRA) que un
dato est almacenado en el puerto A, lo lee enviando un pulso de lectura RD. Al leerse
el dato del puerto A por el microprocesador, se resttituyen las seales IBFA e INTRA a

D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

sus estados inactivos hasta que el siguiente dato sea escrito de nuevo en el puerto A por
el dispositivo.

Puerto de salida en modo 1.
En este modo de operacin, el puerto funciona como un registro que almacena el dato
enviado por el microprocesador por el bus de datos con el pulso WR. El significado de
las seales asociadas al puerto B operando como salida en el modo 1 se describe a
continuacin.

1. OBFB: (Output Buffer Full: Buffer lleno). Esta salida se coloca en 0 para indicar
que hay un dato escrito o almacenado en el puerto. Regresa a 1 para indicar que
el dato fue ledo del puerto por un dispositivo externo.
2. ACKB: (Acknowledge: Reconocimiento). Esta seal es una respuesta del
dispositivo externo que indica que ha recibido el dato del puerto. Ocasiona que
OBFB regrese a 1 para indicar que el puerto est vaco. Tambin ocasiona que
INTRB regrese a 1 para solicitar una nueva interrupcin.
3. INTRB : (Interrupt request: solicitud de interrupcin). Seal utilizada
normalmente para interrumpir al microprocesador. Puede ser inhabilitada
colocando un 0 en INTEB. Esto ltimo puede ser efectuado colocando un 0 en el
bit PC2 con el byte de comando B siempre que el puerto B sea programado como
salida.

Los bits del puerto C no utilizados por seales de dilogo quedan como lneas de
entrada/salida de propsito general. En el ejemplo de la figura 15 seran los bits PC6 y
PC7, los cuales quedan programados o como entrada o salida en dependencia de cmo se
haya programado el puerto C del grupo A con el byte de comando A.

Lectura del puerto C. Modo 1.
En el modo 1 el puerto C genera o acepta seales de dilogo con el dispositivo perifrico
como se ha visto. La lectura del contenido del puerto C permite al programador
monitorear y comprobar el estado de cada dispositivo perifrico y en concordancia
tomar la decisin requerida.
En la figura 16a se muestra un resumen de las seales de dilogo en el modo 1 y en b se
muestran los distintos bits cuando se efecta una lectura del puerto C.

Seales en el modo 2.
Solamente el grupo A se puede programar en el modo 2, convirtindose el puerto A en
bidireccional. Esto permite la transmisin y recepcin de datos a travs de las mismas
ocho lneas.
Las seales de dilogo en este modo de operacin se muestran en la figura 17.


D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

STBB
Modo 1
entrada salida
INTRB
IBFB
INTRA
STBA
IBFA
E/S
E/S
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
INTRB
OBFB
ACKB
INTRA
E/S
E/S
ACKA
OBFA
E/S E/S IBFA INTEA INTRA INTEB IBFB INTRB
OBFA E/S E/S INTRA OBFB INTRB INTEA INTEB
D7 D6 D5 D4 D3 D2 D1 D0
Programacin como entrada
Grupo A Grupo B
D7 D6 D5 D4 D3 D2 D1 D0
Programacin como salida
Grupo A Grupo B
(a) (b)
Figura 16. Bits del puerto C, (a) resumen modo 1 y (b) lectura del puerto C



D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

Figura 17. Seales en el modo 2
dato del
perifrico
al 82C55
dato del 82C55
al perifrico
dato del 82C55
al microprocesador
dato del microprocesador
al 82C55
WR
OBFA
INTRA
ACKA
STBA
IBFA
bus
perifrico
RD
Observacin: cualquier secuencia donde WR ocurra antes que ACK,
y STB ocurra antes que RD es permitida
bus perifrico
RD
WR
PA0-PA7
INTRA
OBFA
ACKA
STBA
IBFA
PC3
PC7
PC6
PC4
PC5
82C55
3
PC0-PC2
E/S
INTE1: INTE asociado con OBF: controlado por la accin
de set o reset de PC6
INTE2: INTE asociado con IBF: controlado por la accin
de set o reset de PC4
INTR= INTE2.IBF.STB.RD + INTE1.OBF.ACK.WR



La entrada de RESET del 82C55 ocasiona que todos los puertos sean inicializados como
puertos de entrada en el modo 0.

Interface del 82C55 y el Conv A/D a los buses.
En la figura 18 se ilustra la conexin del 82C55 y el convertidor A/D al sistema de buses
del microprocesador 8085.

Se han utilizado los bits A3 y A2 para seleccionar a estos 2 circuitos integrados. Observe
que el decodificador queda habilitado con IO/M= 1. De acuerdo con la conexin
efectuada las direcciones de los distintos puertos, el registro de comando del 82C55 y el
Conv A/D sern como se muestra en la tabla 3.

D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

Puerto A Puerto C Puerto B
D
B
7
D
B
0
D
B
6
D
B
5
D
B
4
D
B
3
D
B
2
D
B
1
del sensor
de temperatura
b
u
s

d
e

d
a
t
o
s
RD
WR
IO/M
CS
RD WR
Reset Out
RST 6.5
R
e
s
e
t
C
S
A0
A1
A2
A3
del bus de direcciones
A1 A0
G B A
Y0 Y1 Y2 Y3
1/2 74LS139A
Dec
D7
D0
VIN (+)
A/D ADC0801
RD WR
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
INTR
74LS04
Figura 18. Conexin de los puertos y el convertidor a los buses
82C55
74LS04
D6
D5
D4
D3
D2
D1
PA7.....PA0 PC7.....PC0PB7.....PB0

Direccin Dispositivo
Binario Hexadecimal
Convertidor A/D 00000000 00H
Puerto A 00000100 04H
Puerto B 00000101 05H
Puerto C 00000110 06H
Registro de comando 00000111 07H

Tabla 3. Direcciones de los dispositivos

En la figura 18 se pueden observar los siguientes aspectos:
1. A3A2 = 00 selecciona el convertidor y 01 selecciona el 82C55
2. Con A3A2 = 01, los bits A1A0 seleccionan los distintos elementos del 82C55

D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

3. La seal IO/M = 1, habilita el decodificador, por lo que tanto el convertidor
como los elementos del 82C55 se pueden acceder con las instrucciones IN o OUT
del microprocesador
4. El convertidor solicita interrupcin por la lnea RST 6.5 del microprocesador.
5. Todos los puertos son inicialmente colocados como entradas en el modo 0 al ser
reseteado el 82C55 con la seal Reset Out proveniente del microprocesador.

Dispositivos perifricos.
Adems del convertidor A/D, el sistema digital debe constar de un display de dos dgitos
para colocar el valor de la temperatura leda , una alarma luminosa cuando la
temperatura sobrepase un valor preestablecido y un teclado de 4 switches para fijar
este valor.
Por tanto, la conexin de estos elementos se ilustra en la figura 19.
Todos los puertos deben estar configurados en el modo 0. El display est conectado a
travs de decodificadores BCD/7 segmentos al puerto B el cual debe ser programado
como un puerto de salida donde se almacenar el valor de la temperatura leda. La
entrada RBI de las decenas est conectada a tierra para que el cero no se ilumine.
El teclado de 4 switches tiene como misin establecer un valor de temperatura sobre el
cual debe activarse la alarma. Este valor debe ser colocado en binario, as si se coloca el
0011, la alarma debe iluminarse si la temperatura es mayor de 30C, etc. Un switch
cerrado coloca un 0 y abierto un 1. Los switches estn conectados a las lneas PA4-PA7
del puerto A el cual debe ser programado como entrada.

El bit PC0 del puerto C es utilizado como seal para hacer iluminar la alarma. As,
cuando este bit sea 1 hace conducir al diodo emisor de luz infraroja del aislador ptico
cerrando al TRIAC NTE5641 e iluminndose la lmpara. Por tanto, el puerto C debe ser
programado como un puerto de salida.

El opto-aislador tiene como misin aislar elctricamente las seales dbiles de la alta
corriente alterna de 60 HZ que circula por la lmpara de 40 vatios cuando sta se
encuentre iluminada y de las lneas de alimentacin de 110 voltios.

La resistencia de 33 ohmios en serie con el condensador de 0.01 microfaradios tiene
como objetivo minimizar la interferencia de radiofrecuencias cuando se conmuta una
alta corriente con el TRIAC NTE5641 como la de la lmpara.

D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
PC0
display
+5V
PA7
PA6
PA5
PA4
+5v.
4.7K
8 4 2 1
220
ohmios
C C
+5V
74LS04
110v
60 Hz
Figura 19. Display, switches y alarma
Opto-aislador
lmpara
40 vatios
0.01
microfaradios
200 voltios
TRIAC
220
ohmios
33
ohmios
MOC3020
switches
NTE5641
470
ohmios
MT1
G
MT2
a b c d e f g
alarma
a b c d e f g
D C B A D C B A
LT
RBO
RBI
LT
RBO
RBI
a
g
f e d c
b
74LS47A 74LS47A
g
f e d c
b a
4.7K
+5v.
NTE3050
nodo comn
NTE3050
nodo comn
decenas
unidades
74LS47A : decodificador BCD/7 segmentos


Software
El programa requerido debe inicializar los puertos del 82C55, ordenar el inicio de la
conversin al convertidor analgico/digital y esperar a que ste produzca una solicitud
de interrupcin por la lnea RST 6.5 para leer su dato digital de salida.

D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

La lectura del dato se har en la rutina de servicio. Igualmente se hace una conversin
de binario a BCD para llevar en este formato el dato al puerto B y alimentar los
decodificadores BCD/7 segmentos.
De forma similar se analiza el cdigo colocado en los switches para la toma de la
decisin de iluminar la alarma. En la tabla 4 se muestra el programa.

Programa para leer la temperatura de un lquido,actualizar alarma, visualizar la
temperatura en un display y leer una temperatura establecida mediante switches
CONV EQU 00H ; Direccin del convertidor
PTOA EQU 04H ;Direccin del puerto A
PTOB EQU 05H ;Direccin del puerto B
PTOC EQU 06H ;Direccin del puerto C
COMAN EQU 07H ;Direccin reg de comando 82C55
ORG 0000H
0000 C3 40 00 JMP INICIO
ORG 0034H ;Direccin del salto por
interrupcin
0034 C3 55 00 JMP SERV
ORG 0040H ;Direccin de comienzo
0040 3E 90 INICIO : MVI A,90H ;Programa los puertos y se lleva
0042 D3 07 OUT COMAN ;al registro de comando del 82C55
0044 3E 00 MVI A,00H ;Para desactivar la alarma y
0046 D3 06 OUT PTOC ;se lleva al puerto C PC0=0
0048 31 FF 20 OTRA : LXI SP,20FFH ;Inicializa puntero de la pila en
RAM
004B 3E 0D MVI A,0DH ;Para habilitar la lnea RST 6.5 y
004D 30 SIM ;se lleva al registro de mscaras
004E D3 00 OUT CONV ;Inicie conversin
0050 FB EI ;Habilita interrupcin
0051 00 LAZO : NOP ;Se queda esperando hasta que el
0052 C3 51 00 JMP LAZO ;convertidor A/D interrumpa
;Lectura del dato del convertidor analgico/digital cuando interrumpe al
microprocesador
0055 DB 00 SERV: IN CONV ;Se lee el dato del convertidor
0057 CD 63 00 CALL DMRA ;Tiempo para prxima lectura
005A CD 73 00 CALL BIBCD ;Transforma dato binario en BCD
005D CD 91 00 CALL DSPLY ;Actualiza display y alarma
0060 C3 48 00 JMP OTRA ;Realizar siguiente lectura
;Subrutina de demora para producir un intervalo de tiempo adecuado entre lecturas
0063 F5 DMRA: PUSH PSW ;Guarda el dato en la pila
0064 3E FF MVI A,FFH
0066 06 FF EXT: MVI B,FFH ;Lazo exterior
0068 05 INT: DCR B ;Lazo interior
0069 00 NOP
006A C2 68 00 JNZ INT

D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

006D 3D DCR A
006E C2 66 00 JNZ EXT
0071 F1 POP PSW ;Restituye el dato en el acumulador
0072 C9 RET ;Retorna
;Subrutina para efectuar la conversin de binario a BCD del dato del convertidor
0073 06 00 BIBCD: MVI B,00H ;Limpia registro B
0075 48 MOV C,B ;Limpia registro C
0076 D6 0A DIEZ: SUI 0AH ;Resta 10 dec al dato
0078 DA 7F 00 JC SUMA ;Si acarreo se hallaron las decenas
007B 04 INR B ;En B quedan las decenas
007C C3 76 00 JMP DIEZ
007F C6 0A SUMA: ADI 0AH ;La ltima resta no es vlida
0081 D6 01 UNO: SUI 01H ;Para colocar unidades en el reg C
0083 DA 8A 00 JC ACOM ;Si acarreo se hallaron las unidades
0086 0C INR C
0087 C3 81 00 JMP UNO
008A 78 ACOM: MOV A,B ;Las decenas al acumulador
008B 07 RLC ;Se reubica o acomoda en su sitio
008C 07 RLC
008D 07 RLC
008E 07 RLC
008F B1 ORA C ;Se colocan las unidades en A
0090 C9 RET ;A qued con el dato en BCD
;Subrutina para actualizar el display y activar alarma de acuerdo a la posicin de los Sw.
0091 D3 05 DSPLY: OUT PTOB ;Dato al display
0093 47 MOV B,A ;Se guarda el dato en el reg B
0094 DB 04 IN PTOA ;se lee la posicin de los switches
0096 E6 F0 ANI F0H ;Cero a los bits de menor orden
0098 B8 CMP B ;Compara switches con el dato
0099 DA A3 00 JC SET ;Si acarreo activar alarma
009C 3E 00 MVI A,00H ;Para desactivar la alarma
009E D3 06 OUT PTOC ;Se coloca PC0 en 0
00A0 C3 A7 00 JMP FIN
00A3 3E FF SET: MVI A,FFH
00A5 D3 06 OUT PTOC ;Se coloca PC0 en 1
00A7 C9 FIN: RET
END

Tabla 4. Programa

Consideraciones finales
El sistema digital descrito puede ser fcilmente utilizado en otras muchas aplicaciones
pus constituye un pequeo microcomputador con puertos programables y 10 Kbytes de
memoria, 8 Kbytes de EPROM y 2 Kbytes de RAM. El programa ilustrado en la tabla 4

D
DDE
EEP
PPA
AAR
RRT
TTA
AAM
MME
EEN
NNT
TTO
OO D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OOS
SS
G
GGU
UUI
II A
AAS
SS D
DDE
EE L
LLA
AAB
BBO
OOR
RRA
AAT
TTO
OOR
RRI
II O
OO D
DDE
EE S
SSI
II S
SST
TTE
EEM
MMA
AA D
DDI
II G
GGI
II T
TTA
AAL
LL B
BBA
AAS
SSA
AAD
DDO
OO E
EEN
NN M
MMI
II C
CCR
RRO
OOP
PPR
RRO
OOC
CCE
EES
SSA
AAD
DDO
OOR
RR

puede ser grabado en la EPROM con el programador universal del laboratorio de la
universidad.
Si el estudiante encuentra alguna dificultad en conseguir en el mercado de Cali el diodo
de precisin LM4050, ste puede reemplazarse por un pequeo diodo zener de 3.9
voltios, vatio, (por ejemplo, el NTE5007A) aunque no se obtenga la misma exactitud
en la medicin. Igualmente el ADC0801 puede ser reemplazado por el ADC0804, el cual
tiene las mismas caractersticas diferencindose solamente en la precisin.
El diseo anteriormente descrito ya ha sido montado y debidamente comprobado su
funcionamiento con resultados completamente satisfactorios, por lo que no contiene el
ms mnimo error, tanto en el hardware como en el software desarrollado.

Bibliografa
1.- www.intel.com
2.- www.national.com
3.- www.ti.com
4.- Barry B. Brey, Los Microprocesadores Intel, 5 ed, Prentice-Hall, 2001
5.- Intel, Microsystem Components Handbook , Volmenes 1 y 2, 1985

También podría gustarte