Está en la página 1de 33

Arquitectura y Operación del Microprocesador 8085A 101

Arq ui t e c t ura y O p e ra c i ó n d e l μ P

4.1 GENERALIDADES

El 8085A de INTEL es un microprocesador de 8 bits para uso general cons-


truido usando tecnología NMOS. El dispositivo incorpora un generador de reloj in-
terno y es capaz de tener acceso hasta 64 Kbytes de memoria y 256/256 puertos de
E/S. Con este dispositivo puede realizarse un sistema microcomputador mínimo
usando solo 3 circuitos integrados, alimentados con una fuente de poder de +5 V.

La figura 4.1a es una imagen del área de integración de los 20000 transistores
MOS de canal N que componen el circuito del μP. El CI se presenta en un encapsu-
lado tipo DIP-40, mostrado en la figura 4.1b, el cual era el estándar industrial para la
fabricación de circuitos integrados VLSI, durante la década de los 70. El 8085A tiene
un ciclo de instrucción de 1.3 μs, estando disponibles en versiones más rápidas con
códigos 8085A-2, 8085AH, 8085AH-1 y 8085AH-2.

(a) (b)

Fig. 4.1 (a) Foto microscópica del μP8085A. (b) Encapsulado DIP-40
Arquitectura y Operación del Microprocesador 8085A 102

El μP puede ejecutar un conjunto de 74 instrucciones sincronizado por un re-


loj derivado de un oscilador interno, el cual usa un cristal externo de resonancia para-
lela y frecuencia máxima de 6.25 MHz. Esta señal base es dividida por 2 en el inter-
ior del dispositivo para producir el reloj interno que controla todas las operaciones
del 8085A. Una versión avanzada, el 8085A-2 puede operar a 5 MHz con un cristal
de 10 Mhz.

X1 Vcc
X2 HOLD
RESET OUT HLDA
SOD CLK OUT
SID RESET IN
TRAP READY
RST 7.5 IO/M
RST 6.5 S1
RST 5.5 RD
INTR 8085A WR
INTA ALE
AD0 S0
AD1 A15
AD2 A14
AD3 A13
AD4 A12
AD5 A11
AD6 A10
AD7 A9
Vss A8

Fig. 4.2. Disposición de los terminales del microprocesador 8085A

De los 40 terminales, 12 son entradas, 18 salidas, 8 son bidireccionales, y 2


están destinadas a la alimentación del circuito, como ilustra la figura 4.2. La fuente de
poder de +5 V, se aplica los terminales VCC (+) y VSS (-). El cristal de cuarzo se
aplica a la entradas X1-X2. El diagrama de la derecha en la figura 4.2 indica el senti-
do del flujo de información en los terminales del 8085.

Como ilustra la figura 4.2, el 8085 no presenta buses de datos y direcciones


separados. En este μP, mientras que el byte de orden alto de la dirección se presenta
en las líneas A8-A15, los 8 bits menos significativos de la dirección aparecen en los
mismos terminales (AD0-AD7) que el bus de datos. Las funciones de estos ocho pines
se presentan multiplexadas en el tiempo, encargándose la señal ALE (Address Latch
Enable) de indicar a dispositivos externos cuando la información presente correspon-
de a datos o direcciones.

La razón de la aparente complicación que representa el multiplexado de seña-


les está relacionada con el estado de la tecnología de fabricación de circuitos LSI en
la década de los 70. En esa época, como en la actualidad, durante el proceso de pro-
ducción los chips eran probados usando equipos especiales y costosos para garantizar
el correcto funcionamiento del producto final. En los inicios de los setenta, tales ins-
trumentos sólo podían verificar el funcionamiento de circuitos integrados en receptá-
culos de hasta 42 terminales. Esto no significa que treinta años atrás no se fabricaran
CI de más de 40 pines, se hacían de 64 pines, pero su prueba representaba un proceso
engorroso para el fabricante.
Arquitectura y Operación del Microprocesador 8085A 103

Aunque los µPs fabricados hasta ese momento residían en paquetes tipo DIP-
40, las innovaciones con las cuales INTEL acompañó el desarrollo de su nuevo pro-
ducto exigía un número mayor de entradas y salidas para cumplir con las especifica-
ciones del diseño. Si se considera que el 8085A requería 2 líneas para el cristal ex-
terno, 2 para la fuente de poder, 16 para el bus de direcciones, y 8 para el bus datos,
solo restan 12 terminales para el bus de control. Una docena de líneas de control no
permitía la integración de todas las funciones establecidas para el dispositivo, razón
por la cual INTEL recurre al multiplexado de las líneas de datos y direcciones del µP.

El μP 8085 fue diseñado para disminuir el número de componentes necesarios


para la construcción de un sistema microcomputador típico. Antes de la aparición en
el mercado de este µP, la construcción de una CPU completa (8080, por ejemplo)
requería el uso de al menos tres chips LSI: el μP propiamente dicho (8080), el gene-
rador de reloj (8224), y el controlador del sistema (8228), este último se encargaba de
separar el bus de control y el de datos, los cuales estaban multiplexados en este pro-
cesador. En el 8085A se integran las funciones de los circuitos 8224 y 8228, de mo-
do que basta con conectar un cristal a las entradas X1-X2, para disponer de una CPU
autónoma. A la par, se mantuvo la compatibilidad de programación con el 8080 y de
hardware con los componentes periféricos más utilizados en el desarrollo de aplica-
ciones de µPs.

Por supuesto un lector perspicaz pudiese alegar: Al estar multiplexado los da-
tos con las direcciones. ¿No se requiere incluir un latch, externo al μP, para separar
estas funciones, necesitándose por lo menos dos circuitos, uno LSI y otro MSI, para
la CPU? La respuesta es, si... es cierto. Pero, una de las bondades del 8085, radica en
los dispositivos LSI introducidos como periféricos para garantizar la integración del
sistema, estos son: el 8155/56 y el 8355/8755. Los nuevos componentes combinaban
funciones de memoria, puertos de E/S y temporizadores, a la vez que se conectaban
directamente a los buses multiplexados del µP. Como resultado de esta estrategia,
INTEL disminuyó desde quince (con el 8080) a tres (con el 8085) la cantidad de com-
ponentes necesarios para un µC mínimo.

El uso de cápsulas de 40 pines con estructura de buses multiplexados se man-


tuvo en los μPs de 16 bits 8086 (AD8-AD15) y 8088 (AD0-AD7). El 80186 y el
80188, también de 16 bits, usan 68 terminales, los μPs de 32 bits 386DX y 486DX
disponen de 132 y 168 pines respectivamente, mientras que el Pentium básico, con
arquitectura interna de 64 bits y diseño superescalar, ocupa una pastilla de 273 termi-
nales.

Aunque este procesador es un producto INTEL originalmente introducido en


el año 1977, es fabricado actualmente por varias empresas. Como segundas fuentes
de del 8085 se encuentran: Siemens, NEC, AMD, OKI, Hitachi, y Toshiba.
Arquitectura y Operación del Microprocesador 8085A 104

4.2 ESTRUCTURA FUNCIONAL DEL 8085A

Para entender como funciona un µP es necesario conocer los tipos de registros


internos del dispositivo y el modo en el cual se realiza la transferencia de datos entre
éstos. El conjunto de los registros y el repertorio de instrucciones son atributos de la
arquitectura de la máquina, y constituyen el modelo de programación por excelencia.
El conocimiento de la función de cada uno y una técnica apropiada de utilización
permiten la programación del µP. Con el propósito de introducir la arquitectura del
8085 y la manera en la cual se organizan las unidades funcionales en un microproce-
sador real, se reproduce en la figura 4.3 un diagrama de bloques del µP, tal como es
suministrado por INTEL en la hoja técnica del dispositivo.

INTA RST 5.5 TRAP


INTR RST 6.5 RST7.5 SID SOD

Control de Interrupciones Canal Serie

Bus Interno de Datos (8)

Acumulador Reg. Temp. Registro de


Instrucciones (8)
Flags

Decodificador de B (8) C (8)

Instrucciones D (8) E (8)


ALU y H (8) L (8)
Codificador de Apuntador de Pila
Ciclo de Máquina Contador de Programa (16)
GND ± Registro de Dir.
+5V
Buffer Dir Buffer Dir/Dat
Lógica de Control y Tiempo
Gen.
X1 Reloj CONTROL ESTADO DMA RESET A0 - A15 AD0 - AD7
X2
Bus De Bus de
CLK OUT S0 S1 IO/ M HLDA RESET OUT
READY
RD WR ALE
HOLD Direcciones Direcciones/Datos
RESET IN
Bus de Control

Fig.4.3. Diagrama funcional del 8085ª

En el 8085 están integradas todas las funciones de una unidad de procesa-


miento central capaz de ejecutar el conjunto de instrucciones del µP, además de un
grupo de funciones adicionales, tales como: la generación del reloj, la selección y
asignación de la prioridad de las interrupciones y el control del canal de comunica-
ción serie.

El circuito integrado µP 8085 contiene un número considerable de compo-


nentes digitales interconectados para formar unidades funcionales. Éstas pueden estar
Arquitectura y Operación del Microprocesador 8085A 105

constituidas por algunos elementos digitales o por arreglos complejos de puertas


lógicas, registros y biestables. En el diagrama de la figura 4.3 solo se muestran las los
bloques que ejecutan las funciones básicas del dispositivo, tales son:

• El conjunto del Registro de Instrucciones, el Decodificador de Instruccio-


nes y la lógica de Control y Tiempo, la cual conforman la Unidad de Con-
trol del microprocesador.

• El Banco de Registros de propósito general (B,C,D,E,H,L) de 8 bits. El


Apuntador de Pila (SP), el Contador de Programa (PC), y el registro de di-
recciones de memoria (MAR), de 16 bits.

• La Unidad Aritmética y Lógica (ALU), el Acumulador (A), el Registro


Temporal y las Banderas de Estado.

• El control de selección y asignación de prioridad de las interrupciones.

• El Control del Canal de Comunicación Serie.

• Los buffers de datos y datos/direcciones.

4.2.1 La unidad de control

Toda operación realizada por el 8085 durante la ejecución del programa de


instrucciones almacenado en memoria, ocurren como respuestas a señales de control
generadas por esta sección del microprocesador. El µP incorpora un generador inter-
no de reloj, el cual usa un cristal conectado a las entradas X1-X2 para fijar la fre-
cuencia de oscilación. La lógica de control utiliza esta base de tiempo maestra o reloj
del sistema para generar comandos de sincronismo para toda operación interna y ex-
terna realizada por el dispositivo. En esta sección también se libera una salida CLK
OUT, a la misma frecuencia del reloj interno, la cual puede ser usada como reloj de
componentes externos.

Como se observa en la figura 4.3, las entradas de la lógica de control y tiem-


po son los terminales del cristal de cuarzo, las salidas de la sección de decodificación
de instrucciones y codificación de ciclo de máquina, y señales externas generadas por
dispositivos externos a la CPU.

Las entradas externas a la lógica de control son tres: RESET IN , READY y


HOLD., éstas permiten a circuitos periféricos modificar el modo normal de funcio-
namiento del µP.
Arquitectura y Operación del Microprocesador 8085A 106

En el caso de RESET IN , si por un tiempo de al menos tres ciclos de reloj se


aplica un nivel lógico bajo a este terminal, la lógica de control inicializa el µP car-
gando cero en el contador de programa, en el registro de instrucciones y en varios bits
internos de control. La entrada al estado de reset es anunciada al exterior por la acti-
vación de la salida RESET OUT.

El terminal de entrada READY tiene como función permitir el intercambio de


información entre dispositivos periféricos lentos y el microprocesador. Si esta señal
es activada a cero durante una operación de acceso a memoria o puerto de E/S, signi-
fica que un dispositivo externo notifica que no está listo para transferir datos, de ma-
nera que solicita al µP que proceda a entrar en un estado de espera hasta cuando pue-
da transmitir o recibir la información. El 8085 saldrá del estado de espera cuando
READY retorne al nivel lógico alto.

La entrada restante de control (HOLD) es utilizada por componentes externos


para indicar al 8085 que requieren hacer uso exclusivo de los buses del sistema para
realizar una operación de acceso directo a la memoria. La activación de HOLD (nivel
lógico alto) implica una solicitud al CPU para que libere las líneas de datos y direc-
ciones una vez que culmine el ciclo de máquina en desarrollo. Este modo de opera-
ción es usado por circuitos controladores LSI para realizar transferencias de datos a
memoria sin intervención del µP.

La función HOLD es necesaria porque ninguna instrucción del µP permite el


intercambio directo de datos entre dispositivos externos, de modo que toda transfe-
rencia de información desde un periférico a memoria debe usar al 8085 como recep-
tor intermedio. Este modo de operación es demasiado lento para transmitir cantidades
masivas de datos desde un disco o tarjeta de video.

La lógica de control genera una salida HLDA para informar al dispositivo ex-
terno que acepta la solicitud de HOLD, y que procede a llevar a tercer estado el bus
de direcciones, el bus de datos/direcciones y algunas salidas de control. Una vez cul-
minada la transferencia, el periférico desactivada la señal HOLD y el 8085 recupera
el control de los buses.

El 8085 es un dispositivo microprogramado, lo cual significa que en su inter-


ior reside un µprograma encargado de trasladar la instrucción depositada en el IR a
una secuencia de microinstrucciones necesarias para realizar las funciones ordenadas
por el programa. El µprograma está almacenado en una memoria de solo lectura y no
es accesible al usuario

La figura 4.4 muestra al registro de instrucciones conectado al decodificador


de instrucciones, el cual identifica la instrucción en ejecución y selecciona el µpro-
grama correspondiente. El decodificador de instrucciones transfiere a la lógica de
control y tiempo el resultado de la interpretación de la instrucción.
Arquitectura y Operación del Microprocesador 8085A 107

Bus Interno de Datos

Registro de
Instrucciones

Buffer de
Decodificador de Dir/Datos
Instrucciones y
Codificador de
Ciclo de Máquina
Bus Dir/Datos

Lógica de
Señales Internas
Control y
de Control
Tiempo

E/S externas

Fig.4.4. Sección de decodificación y control del μP

Sincronizada por el reloj interno, la lógica de control y tiempo tiene la res-


ponsabilidad de ejecutar la secuencia de microinstrucciones que controla la búsqueda,
decodificación y ejecución de las líneas de código almacenadas en la memoria. Según
la naturaleza de la instrucción, la lógica de control emitirá señales internas destinadas
a sincronizar la transferencia de datos entre registros, o entre éstos y la ALU. Además,
se encarga de generar señales externas dirigidas al control de la memoria, puertos de
E/S y otros periféricos del sistema. La sincronización de la transferencia de datos por
las líneas de interconexión y la interpretación del estado de las entradas a la CPU, son
también responsabilidad de a lógica de control.

Las salidas externas del bloque de control son S1, S0, IO/M, RD, RW, ALE,
CLK OUT, RESET OUT y HLDA. Para entender las funciones de las seis primeras de
éstas, considere una operación de búsqueda en memoria. Durante el arranque del sis-
tema, una red de RESET automático pone a cero el contador de programa. Cuando el
µP sale del estado de RESET, la lógica de control genera las señales de estado
IO/M=0, S1=1, S0=1, anunciando que se dispone a realizar una operación de búsque-
da del código de operación de la instrucción almacenada en la posición 0000H.
Arquitectura y Operación del Microprocesador 8085A 108

El siguiente paso es transferir desde el contador de programa al buffer de da-


tos/direcciones los 8 bits de menor peso de las direcciones (A0-A7), mientras que el
byte de orden alto del PC (A8-A15) se carga en el buffer de direcciones. Simultánea-
mente la UC emite una señal de control ALE para indicar a lógica externa que el con-
tenido del bus multiplexado corresponde a direcciones.

Una vez que la dirección se estabiliza en el bus, la lógica de control envía a la


memoria un comando RD de lectura indicando que el código de operación debe ser
trasladado desde la memoria hasta el buffer de datos a través del bus externo de datos,
y de allí al registro de instrucciones para su posterior decodificación. Si la operación
fuese de escritura en memoria se hubiese generado un comando de escritura WR. A
continuación se incrementa en uno el PC para apuntar a la posición de la memoria
donde se almacena el siguiente byte de la instrucción o la próxima instrucción a eje-
cutar.
Si la instrucción en progreso contiene más de un byte, la UC ordenará uno o
dos accesos adicionales a la memoria hasta tanto toda la información relacionada con
la instrucción sea transferida al interior del µP. En este momento se inicia la ejecu-
ción propiamente dicha. De acuerdo con el tipo de instrucción, la UC generará todas
las señales internas y externas necesarias para la transferencia entre registros, uso de
la ALU, o acceso a memoria o puertos de E/S.

4.2.2 Los registros internos

La figura 4.3 indica que el 8085 tiene un grupo de registros de 8 y 16 bits, a


los cuales se tiene acceso por medio del bus interno de datos. Siete de estos registros
son direccionables y están a la disposición de programador. El acumulador (A) es un
registro especial de 8 bits asociado a la ALU, debido a que es usado por casi todas las
instrucciones aritméticas y lógicas. Los seis registros restantes (B,C,D,E,H,L), tam-
bién de 8 bits, son de propósito general y están disponibles para almacenamiento de
datos durante la ejecución del programa.

Para permitir la realización de algunas operaciones con operandos de 16 bits,


los registros de propósito general pueden ser usados como tres registros pares de 16
bits: BC, DE, y HL. El 8085 posee instrucciones que hacen referencia a registros pa-
res. Por ejemplo: LXI D, dato, cargará el dato de 16 bits especificado por el operan-
do de la instrucción en el registro par DE.

El uso adecuado de los registros internos resulta en la escritura de programas


eficientes y de rápida ejecución. Al existir 7 registros de 8 bits accesibles por el pro-
gramador, son necesarios sólo tres bits para identificarlos, de modo que las instruc-
ciones de transferencia entre registros y las aritméticas (exceptuando las de suma y
resta inmediata) son de un byte, al igual que en la máquina hipotética. Una instruc-
ción corta es procesada con rapidez debido a que el µP debe realizar un acceso único
a memoria en busca de la instrucción, y toda operación adicional es realizada dentro
de la propia CPU.
Arquitectura y Operación del Microprocesador 8085A 109

Una particularidad del arreglo de registros programables es que cuando se tra-


tan como registros pares, pueden almacenar la dirección de una posición de memoria
a la cual se puede transferir, o desde la cual se pueden obtener datos.
Bus interno de Datos

W Z
B C
D E
H L
MAR
PC

Buffer Buffer datos/


SP Direcciones Direcciones

A8-A15 AD0-AD7

Fig. 4.5. Registros que pueden alterar el contenido de registro de direcciones de memoria.

La figura 4.5 indica que existen cuatro fuentes posibles para cargar una direc-
ción específica en el registro de direcciones de memoria (MAR), el cual es de 16 bits.
Estas son: el PC, los registros de propósito general, el apuntador de pila SP y dos
registros W y Z de 8 bits no accesibles por el programador. EL generador por exce-
lencia de direcciones del μP es el contador de programa, el cual es un registro de 16
bits que mantiene la dirección de la próxima instrucción a ejecutar, o la dirección de
búsqueda del 2do o 3er byte de una instrucción multibyte en proceso. Al final de la
ejecución de una instrucción, o al concluir una búsqueda en memoria, el PC es in-
crementando automáticamente en 1 para apuntar a la siguiente posición de memoria.

Cuando el arreglo de registros de propósito general actúa como fuente de una


dirección, ésta debe ser cargada en el registro par por el programa. Instrucciones sub-
siguientes que hacen referencia a memoria utilizan esta información, por ejemplo:
LDAX D, transfiere al acumulador el contenido de la posición de memoria cuya di-
rección especifica el contenido del registro par DE.

El contenido del SP, otro registro de 16 bits, representa la dirección del tope
de un bloque de memoria con estructura LIFO manejado por programa, y en la cual
se pueden almacenar datos en forma temporal, recuperándolos oportunamente. La
utilidad de la zona de la pila es obvia si se considera que debido al número reducido
de registros del microprocesador la capacidad de almacenamiento interno de la CPU
puede agotarse rápidamente. Durante la ejecución de un programa determinado los
registros ocupados pueden ser liberados y los datos antiguos preservados usando la
pila como área de almacenamiento.

La dirección de la base de la pila se fija en el inicio del programa. Cuando se


ejecuta una instrucción que haga referencia a la pila, el SP es incrementado, o decre-
Arquitectura y Operación del Microprocesador 8085A 110

mentado, por la unidad de control. El SP también permite, como se explicará más


adelante, el manejo de subrutinas como técnica de programación.

En la figura 4.5 se observan dos registros de 8 bits, W y Z, de uso exclusivo


por la unidad de control del μP para el almacenamiento intermedio de datos o direc-
ciones durante la ejecución de una instrucción. Como ejemplo, durante la ejecución
de una instrucción de tres bytes, tal como JMP dirección, el μP busca en memoria el
primer byte correspondiente al código de operación de la instrucción, lo traslada al
IR, y lo interpreta; se incrementa el PC y se busca el segundo byte de la instrucción y
se deposita en Z, se vuelve a incrementar el PC en la búsqueda del tercer byte, el
cual se almacena en W. Concluida la fase de búsqueda, el registro par WZ contiene
la dirección de salto. Durante la ejecución de la instrucción, el contenido de WZ se
transfiere al registro de direcciones de memoria, y el contenido del PC es sustituido
por WZ+1, para apuntar a la próxima posición de memoria.

4.2.3 La unidad aritmética y lógica


La ALU ejecuta operaciones aritméticas o lógicas con números binarios de 8
bits. Si la función se realiza sobre dos operandos (puede ser sobre un operando), uno
estará almacenado en el acumulador y el otro en un registro de propósito general. El
resultado de cualquier operación siempre se deposita en el acumulador, destruyendo
el contenido anterior del registro. La ALU puede realizar las siguientes operaciones
aritméticas y lógicas: Suma y resta binaria, AND, OR, OR Exclusivo, y NOT, y rota-
ción del acumulador hacia la derecha o izquierda. La figura 4.6 presenta a la unidad
aritmética lógica del 8085 y sus registros de soporte.

A Reg.Temp.
Banderas

ALU

Fig. 4.6. La unidad aritmética lógica.

Se observa en la figura 4.6 el Registro de Estados o Banderas, de 5 bits, donde


la ALU deposita información vinculada con el resultado de una operación aritmética o
lógica. Las condiciones pueden ser probadas por programa.

S Z AC P CY

Fig. 4.7 Registro de condiciones de estado del 8085A


Arquitectura y Operación del Microprocesador 8085A 111

• La bandera de Acarreo (CY) es activada (1 lógico) cuando el resultado de una operación


aritmética produce un desborde del bit 7 del acumulador, en otras palabras CY =1 cuando el
resultado no puede ser expresado por 8 bits, como se expuso en párrafos anteriores. Si no
ocurre desborde, CY = 0.

• La condición de Acarreo Auxiliar (AC) indica con un nivel alto el desborde desde el bit 3
del acumulador. Es útil cuando se realizan operaciones BCD.

• El bit de Signo (S) se activa si el bit más significativo del resultado almacenado en A, es 1.
Es puesta por instrucciones que usan el bit 7 del acumulador como bit de signo. En estos
casos se permiten números entre -128 a + 127.

• La bandera de Cero (Z) es 1, si el resultado de operaciones lógicas o aritméticas es cero. Si


el resultado es distinto de cero, entonces Z = 0.

• El bit de Paridad (P) va a 1 si número de bits en 1 del registro acumulador, es par. Si es


impar, P = 0.

4.2.4 El bus interno de datos

El 8085A es un µP con estructura de bus único, lo cual significa que toda transfe-
rencia de información en el interior del dispositivo se realiza a través del bus interno
de datos de 8 bits. Las líneas internas de interconexión están separadas de los buses
externos por medio de dos buffers de almacenamiento de 8 bits, cuyas salidas son de
tres estados. Estos se denominan: buffer de direcciones y buffer de datos/direcciones.

Durante una operación de acceso a memoria o puerto de E/S, el µP debe usar


el bus de direcciones para distinguir el dispositivo con el cual desea comunicarse.
Para cargar el bus externo con una dirección, el µP transfiere el byte alto del registro
de direcciones de memoria al buffer de direcciones y el orden bajo del mismo registro
se carga en el buffer de datos/direcciones, el cual debe estar habilitado en modo de
salida. Debido a que el bus interno es de 8 bits, el µP debe realizar dos transferencias
internas para emitir los 16 bits de la dirección.

La dirección permanece estable sobre el bus por un tiempo equivalente a un


ciclo de reloj, permitiendo que alguna lógica externa retenga el estado de las ocho
líneas de menor peso de la dirección. Al final del ciclo de reloj, la unidad de control
lleva a tercer estado las salidas del buffer de datos/direcciones. Dependiendo del tipo
de operación a realizar con el dispositivo externo, las salidas del buffer permanecerán
flotantes para que el dato en el bus externo sea transferido al interior del µP durante
una operación de lectura, o abandonarán el tercer estado para que la CPU transmita el
dato hacia el exterior durante una operación de escritura.
Arquitectura y Operación del Microprocesador 8085A 112

Finalmente, en la figura 4.8 se muestran el control de interrupciones y el canal


de comunicación series, ambos conectados al bus interno de datos del 8085. Estos
tópicos serán discutidos con detalle en capítulos próximos.

Fig. 4.8. Funciones auxiliares integradas en el 8085

En la próximas dos páginas se presenta una relación completa de la definición


funcional de los terminales del microprocesador 8085A. Muchas de estas señales son
conocidas, otras adquirirán sentido a medida que el estudiante progrese en la lectura
de este trabajo.

DEFINICIÓN FUNCIONAL DE LOS TERMINALES DEL 8085


VCC +5V
VSS Tierra

X1 -X2 Terminales de entrada para un cristal de cuarzo o una red LC o RC para activar el
reloj interno del microprocesador
CLK OUT Salida de la señal de reloj del μP para usar como reloj del sistema. La frecuencia
de CLK es la mitad de la de la señal en X1 X2.
Entrada que inicializa el contador de programa y los flip flops de habilitación de
RESET IN interrupción y HLDA. Los buses de datos y direcciones y las líneas de control
permanecen en tercer estado durante el proceso de RESET. Los contenidos de los
registros internos del procesador, incluyendo el de banderas, pueden ser alterados
por RESET.
RESET OUT Salida que indica que el procesador está siendo inicializado, puede utilizarse para
restablecer los demás componentes del sistema.
Bus de direcciones. Los 8 bits más significativos de las direcciones de memoria o
A8-A15 de dispositivos de E/S. Permanecen en tercer estado durante el proceso de RESET
o en los modos HOLD y HALT.
Bus de datos/direcciones multiplexado. Los 8 bits menos significativos de las
AD0-AD7 direcciones de memoria o dispositivos de E/S aparecen en el bus durante el primer
estado un ciclo de máquina. El bus de datos se presenta durante el 2do y 3er ciclo
de reloj.
Es una salida que indica si el contenido del bus AD0-AD7 corresponde a direccio-
ALE nes o datos. Se activa durante el primer ciclo de reloj de un ciclo de máquina y
permite usar un registro de 8 bits externo al procesador para memorizar la parte
baja del bus de direcciones. Nunca está en tercer estado.
Arquitectura y Operación del Microprocesador 8085A 113

Son salidas que indican si el ciclo de máquina 1 en progreso corresponde a: Bús-


S0,S1-IO/M queda del código de operación, escritura en memoria o en puerto de E/S, lectura
en memoria o en puerto de E/S, reconocimiento de interrupción o estado HALT.
Señal de lectura. Un nivel bajo en RD indica que el μP desea leer la memoria o
RD dispositivo de E/S seleccionado, y que el bus de datos está listo para la transferen-
cia de información. Permanece en tercer estado durante el proceso de RESET o en
los modos HOLD y HALT.
Señal de escritura. Un nivel lógico bajo en este terminal indica que el contenido
WR del bus de datos va a ser escrito en la memoria o dispositivo de E/S seleccionado,
y que el bus de datos está listo para la transferencia de información. Permanece en
tercer estado durante el proceso de RESET o en los modos HOLD y HALT.
Si tiene nivel lógico alto durante un ciclo de lectura o escritura, indica que la
READY memoria o dispositivo de E/S está listo para recibir o transferir datos. Si presenta
nivel bajo, el procesador esperará un número entero de ciclos de reloj para que
READY vaya a nivel alto y completar el ciclo de lectura o escritura. Se utiliza
cuando el sistema se comunica con periféricos lentos cuyos tiempos de acceso
sean superiores al periodo del dispositivo microprocesador.
Entrada que indica que otro procesador o controlador solicita el uso de los buses
HOLD de direcciones y datos. el CPU abandona el uso de estos buses una vez finalizado
el ciclo de máquina en progreso, poniendo en estado de alta impedancia las si-
guientes líneas: A8-A15, AD0-AD7, RD , WR , e IO / M .
Reconocimiento de HOLD. Salida que indica que el μP ha recibido una petición
HLDA de HOLD y que los buses entrarán en tercer estado. HLDA vuelve a nivel bajo
una vez que la solicitud de HOLD es removida.

Reconocimiento de interrupción. Después que una solicitud de interrupción ha


INTA sido aceptada, esta salida se usa, en lugar de RD, para activar el circuito que gene-
ra la interrupción.

TRAP Entrada de interrupción no enmascarable. Es la interrupción de más alta prioridad.


SID Entrada de datos en serie. Los datos en la entrada SID son cargados en el bit 7 del
acumulador se ejecuta una instrucción RIM.
SOD Salida de datos en serie. Usando la instrucción SIM, el estado del bit 7 del acu-
mulador es cargado en esta salida.

Tabla. 4.1. Tipos de ciclos de máquina y señales de estado


IO/M S1 S0 ESTADO
0 0 1 Escritura en memoria
0 1 0 Lectura de memoria
1 0 1 Escritura a puerto de E/S
1 1 0 Lectura de puerto de E/S
0 1 1 Búsqueda de OP
1 1 1 Reconocimiento de interrupción
Z 0 0 HALT
Z X X HOLD
Z X X RESET

1
Ver tabla 4.1.
Arquitectura y Operación del Microprocesador 8085A 114

4.3 CONSIDERACIONES DE TIEMPO PARA EL 8085A


En la sección 3.1 se trató al µP imaginario como una máquina de estado. Tal
discusión reveló aspectos de interés sobre el modo como la CPU ejecuta las instruc-
ciones y el tiempo invertido en ejecutar cada una. En el manual del usuario del
8085A se encuentra abundante información sobre aspectos relativos a la sincroniza-
ción de las señales del 8085 y sobre el número de ciclos de reloj necesarios para pro-
cesar cada instrucción. No obstante, el autor estima que una guía sobre el funciona-
miento de un µP no puede soslayar este tópico, por ser fundamental para comprender
la dinámica del proceso de búsqueda y ejecución de una instrucción.

Características del cristal

f = 2fclk

CL ≤ 30 pf, CS ≤ 7 pf, RS ≤ 75 Ω
L Ce Ci
Red LC de resonancia paralela
1
f =
2π L (C e + C i )

Con Ce ≥ 2Ci para un Δfmin ≈ 10 %


20 pf 10 KΩ Ci
Red RC de resonancia paralela

f = 3 Mhz
Fig. 4.9. Circuitos para fijar la frecuencia del reloj.

Toda operación realizada por el 8085A durante el procesamiento de una de-


terminada instrucción esta sincronizada por el reloj maestro del sistema, el cual puede
ser generado en el interior del dispositivo o suministrado por una fuente externa. Para
usar la opción de reloj interno, debe aplicarse a las entrada X1-X2 un cristal de cuar-
zo, una red RC, o un circuito sintonizado LC. En cualquier caso el valor de la fre-
cuencia de oscilación interna debe estar comprendido entre 1 MHz y 3.125 MHZ, a
menos que se use la versión 8085A-2, la cual soporta hasta 5 MHz. La figura 4.9
ilustra el modo de conexión para cada una de las posibilidades de uso del generador
interno.

Con el uso de un cristal de cuarzo se obtiene precisión y una gran estabilidad


del valor de la frecuencia del reloj. El oscilador LC funciona en forma adecuada para
frecuencias hasta 5 MHz. Si se elige está opción, la tolerancia de la frecuencia será de
10 %, la cual puede considerarse apropiada para algunas aplicaciones. En los casos
donde el µP no requiera realizar tareas que involucren medidas o control de tiempo
puede recurrirse a una red RC oscilando a 3 Mhz. En este último caso, el fabricante
no recomienda otro valor de frecuencia.
Arquitectura y Operación del Microprocesador 8085A 101

4.3.1 El ciclo de instrucción

Al igual que el µP del capítulo anterior, cuando se aplica potencia al procesa-


dor, éste inicia la ejecución de las instrucciones en la posición 0000H de la memoria,
esto se logra porque el sistema está provisto de una red para autoreset de la CPU. El
microprocesador buscará la primera instrucción en memoria y la ejecutará, procesan-
do todo el programa hasta su finalización. Este modo de operación se mantiene, a
menos que el μP sea forzado a entrar, por una instrucción HLT, en un estado de para-
da (HALT). Existen otros métodos para modificar el proceso de ejecución normal de
un programa, tales como las interrupciones o la petición de operación en modo
HOLD.

M1 M2 M3 M4
T1 T2 T3 T4 T1 T2 T3 T1 T2 T3 T1 T2 T3
Estado

CLK

Ciclo de Máquina
Ciclo de Instrucción

Fig. 4.10. Estados y ciclos de máquina del microprocesador.

El tiempo necesario para que el µP busque y ejecute una instrucción represen-


ta un ciclo de instrucción. Para completar la ejecución de una instrucción, el 8085A
debe realizar de 1 a 5 operaciones de lectura/escritura a memoria o puerto de E/S.
Cada uno de estos accesos a dispositivos externos a la CPU constituyen un ciclo de
máquina (Mi), los cuales se realizan internamente por medio de una secuencia de mi-
croinstrucciones almacenadas en ROM. Cada paso de esta secuencia comprende un
estado (Ti), necesitándose de 3 a 6 estados para completar un ciclo de máquina. Un
estado corresponde a un ciclo del reloj del sistema. En la figura 4.10 se muestra un
ciclo de instrucción de cuatro ciclos de máquina.

Los ciclos de máquina de posible aparición durante la ejecución de una ins-


trucción son:

• Búsqueda del código de operación


• Lectura de memoria
• Escritura de memoria.
• Lectura de puerto de E/S.
• Escritura en puerto de E/S
• Reconocimiento de interrupción.
Arquitectura y Operación del Microprocesador 8085A 102

• Modo de bus inactivo.


En el transcurso del primer estado cualquier ciclo de máquina, el microproce-
sador asigna los estados de las señales IO/M, S1, S0, para informar a dispositivos
periféricos el tipo de ciclo de máquina que se inicia. La tabla 4.2 muestra el estado
de las señales de estado y control para cada tipo de ciclo de máquina.

Tabla. 4.2. Ciclos de máquina del 8085A.


SEÑALES DE ESTADO SEÑALES DE CONTROL

IO/M S1 S0 CICLO DE MÁQUINA RD WR INTA


0 1 1 Búsqueda del código de operación 0 1 1
0 0 1 Escritura en memoria 1 0 1
0 1 0 Lectura en memoria 0 1 1
1 0 1 Escritura a puerto de E/S 1 0 1
1 1 0 Lectura de puerto de E/S 0 1 1
1 1 1 Reconocimiento de interrupción 1 1 0
0 1 0 Bus inactivo DAD 1 1 1
1 1 1 RST/TRAP 1 1 1
Z 0 0 HALT Z Z 1

Durante el ciclo de máquina de bus inactivo no se realizan operaciones con


memoria o puerto de E/S. Este tiempo es usado para operaciones internas con los
registros y la ALU.

El número de ciclos de máquina necesarios para completar la ejecución nor-


mal de una instrucción depende del total de operaciones de lectura o escritura que se
realice a la memoria o dispositivo de E/S y de la complejidad de la instrucción. Algu-
nas instrucciones de un byte, como INX rp, requieren un ciclo de máquina único para
obtener el OC de memoria y completar su ejecución; mientras que DAD rp, también
de un byte, se procesa durante tres ciclos de máquina. En este último caso, los ciclos
M2 y M3, ambos del tipo de bus inactivo, son utilizados por el µP para realizar opera-
ciones internas necesarias para completar la ejecución de la instrucción.

Considerando las instrucciones multybyte, por ejemplo JMP dirección, ésta


exige tres lecturas de la memoria o ciclos de máquina para obtener el código de ope-
ración, la dirección de salto y culminar la ejecución. En cualquier caso, ninguna ins-
trucción del 8085A requiere más de cinco ciclos de máquina. La fase de búsqueda del
código que identifica a toda instrucción se realiza durante el primer ciclo de máquina
M1. En cada ciclo se invierten tres estados, excepto el ciclo de búsqueda del código
de operación, el cual utiliza cuatro o seis ciclos de reloj.

Para ilustrar la secuencia de operaciones necesarias para la ejecución de una


instrucción, considere INX H, la cual produce que el contenido del registro par HL se
incremente en 1. En la figura 4.11 se observa el estado de los registros del µP antes
de ejecutar la instrucción. El contenido de IR (21H) corresponde al código de opera-
ción de la última instrucción ejecutada, LXI H,20FFH, usada para cargar en HL, el
dato de 16 bits 20FFH.
Arquitectura y Operación del Microprocesador 8085A 103

Fig. 4.11. Registros del CPU antes de ejecutar la instrucción INX H

Observe, en la figura 4.12, que una vez procesada la instrucción aritmética, el


registro par contiene el valor 2100H y el registro IR mantiene el código de opera-
ción,23H, de la instrucción INX rp.

Fig. 4.12 Estado interno del CPU después de la ejecución de INX H.

Las figuras mostradas son una copia de la salida del programa MICRO 85, el
cual simula en ambiente WINDOWS la operación de un microcomputador basado en
el µP8085. Esta es una herramienta de gran valor didáctico y práctico, pero nuestro
interés actual se centra en los detalles de la secuencia de operaciones internas que
conducen a la ejecución de una instrucción.
Arquitectura y Operación del Microprocesador 8085A 104

4.3.2 Secuencia de transición de estados


El diagrama de la figura 4.13 muestra la sucesión de eventos por los cuales
transita el 8085A durante el desarrollo de un ciclo de máquina.

RESET
RESET TR
RESET

HALT
T1
HALT HOLD·
READY INTVAL
READY
T2 TW THALT
READY HOLD INTVAL

BITHLDA = 1 BITHALT= 0
SI
HOLD = 1 BITHLDA = 1

no
BITINTA = 1
M1 CC=6 BITINTE = 0
SI
T3 T4 HOLD = 1

CC=4 no BITHLDA = 1

T6 T5

SI
BITHLDA = 1

no HOLD
THOLD
no ÚLTIMO
CICLO HOLD

SI BITHLDA = 0

no INT.
VÁLIDA
SI
SI HALT = 1

BITINTA = 1 no
BITINTE = 0

Fig. 4.13 Diagrama de transición de estados del µP 8085A

Para distinguir los modos de operación del µP, se analiza el diagrama de la


figura 4.13 considerando sólo aquellos sucesos que modifican la transición normal de
la ejecución entre los estados T1 y T6. Debe recordarse que durante un ciclo de má-
quina el µP pasa por tres estados, a menos que se trate del ciclo de búsqueda, el cual
tiene una duración de cuatro o seis estados.
Arquitectura y Operación del Microprocesador 8085A 105

Cuando el µP sale del estado de reset, después del arranque del sistema, ini-
cia en el estado T1 el ciclo de máquina M1 de búsqueda del código de operación. En
este análisis se considera que M1 es el único ciclo de máquina y consta de seis esta-
dos. En T2 se inspecciona el estado de la entrada READY. Si está en nivel lógico
alto, el µP transitará hacia T3 y luego a T4, porque el ciclo en desarrollo es M1. Si por
el contrario READY está en nivel bajo, el 8085A entrará en un estado de espera TW,
donde se mantendrá hasta cuando READY vuelva a nivel alto, instante en el cual pro-
cederá hasta los estados T3 y T4.

En el estado T4 el µP captura el estado de la línea HOLD y pone a 1 un bit in-


terno (BITHLDA), si la entrada HOLD está en 1. Si HOLD es cero el ciclo de máquina
se completa con los estados T5 y T6. Observe en el diagrama de la figura 4.13, que si
el ciclo M1 consta de 4 estados, la prueba de la línea HOLD se realiza, mientras el
reloj CLK =1 durante los estados T2 o TW. Esto también ocurre si el ciclo en desarro-
llo no es de búsqueda del código de operación, en cuyo caso finaliza en T3.

Después de T6, o de T4 si M1 es de 4 estados, se examina el bit de estado


HLDA, si está en 1 el 8085 entra en un estado THOLD en el próximo pulso de reloj; si
el resultado de la prueba del BITHLDA indica un nivel bajo y el ciclo en progreso es el
último o único ciclo de máquina de la instrucción, el µP verifica si hay interrupcio-
nes pendientes. Si no las hay, procederá al estado T1 del ciclo M1 de la próxima ins-
trucción, o del siguiente ciclo, en caso que la instrucción tenga más de uno. Si exis-
ten interrupciones diferidas, se carga uno en el bit de reconocimiento de interrupción
BITINTA, y se desactivan las interrupciones poniendo a cero el BITINTE de habilitación
de interrupciones. En el siguiente pulso de reloj, se inicia un ciclo de máquina de
reconocimiento de interrupción.

Una vez ejecutada la instrucción, cuando el µP sale del estado T6 y no exis-


ten solicitudes de interrupción, el 8085 se traslada estado T1 del ciclo de búsqueda
del código de operación de la siguiente instrucción. En T1 prueba un bit interno que,
cuando está en uno, indica que última instrucción ejecutada fue HLT. Si este es el
caso, el diagrama de la figura 4.13 indica que el µP entrará en un estado de parada
(HALT). Durante el modo de operación HALT, el 8085 permanece inactivo y los
terminales AD0-AD7, A8-A15, IO / M, RD y WR se mantienen flotantes.

El 8085A puede abandonar temporalmente THALT cuando la línea HOLD sea


puesta en alto por un dispositivo externo en solicitud de acceso directo a memoria
(DMA). El µP se trasladará al estado THOLD, atenderá la petición externa y retornará a
THALT cuando HOLD vuelva cero, señalando que finalizó la operación de DMA.

Solo por la ocurrencia de un evento externo, el 8085A podrá salir del estado
THALT e iniciar la ejecución de una nueva instrucción. Si se activa una interrupción
válida, el µP deshabilitará el sistema de interrupciones cargando cero en el BITINTE y
transitará hacia el estado T1del ciclo M1 de la próxima instrucción. En ausencia de
solicitud de interrupción, sólo un comando de RESET permitirá que el µP abandone
Arquitectura y Operación del Microprocesador 8085A 106

THALT. En este caso el sistema será reiniciado en TR y procederá a ejecutar la instruc-


ción en la dirección 0000H de la memoria, cuando la orden de RESET sea levantada.

Con el análisis previo, basado en el diagrama de estados de la figura 4.13, se


pretende mostrar los modos de operación del microprocesador 8085A, más que deta-
llar los sucesos que ocurren durante cada estado por el cual pasa la CPU. Debe que-
dar claro que si la última instrucción ejecutada no fue HLT y si además ningún peri-
férico: solicita estados de espera, entrada en el modo de operación HOLD o inte-
rrumpe al µP; éste se trasladará en forma libre desde el estado T1 hasta completar la
ejecución de la instrucción en el estado T4 o T6, si se trata de una instrucción con un
ciclo de máquina.

Si la búsqueda o la ejecución de la instrucción requieren más de una acceso a


la memoria, el primer ciclo M1 constará de cuatro o seis estados y los subsiguientes
de sólo tres. Tal situación la describe el diagrama de transición de la figura 4.14.

RESET

RESET TR

RESET

T1

T2

T3 T4

T6 T5

Fig. 4.14 Diagrama de transición de estados del µP 8085A sin considerar los estados THALT, THOLD,
TW, ni solicitudes de interrupción.

Retomando el caso de la instrucción INX H, cuyo ciclo de instrucción está


constituido por un ciclo de máquina de seis estados, a continuación se detallan todas
las operaciones, tanto externas como internas, realizadas por el 8085A durante cada
estado.

Se supone que la instrucción INX H, de un byte, se ejecuta inmediatamente


después que el µP sale del estado de RESET y que todo ciclo de máquina Mi se inicia
en el estado T1.
Arquitectura y Operación del Microprocesador 8085A 107

T1
Externas:
Al inicio de T1, el µP identifica el ciclo de máquina en progreso emitiendo
las señales, IO / M =0, S0=1 y S1=1. Para indicar a la memoria la direc-
ción de la posición donde se encuentra la instrucción, transfiere el conteni-
do del contador de programa al buffer de datos/direcciones y al buffer de
direcciones. Simultáneamente, el 8085A genera la señal ALE, activa en al-
to, para informar a dispositivos externos que el contenido del bus AD0-AD7
corresponde a los 8 bits de orden bajo de la dirección.
Internas:
Examina el flip flop de estado HALT.
T2
Externas:
El µP activa la señal RD de lectura y coloca en tercer estado las salidas del
buffer de datos/direcciones para permitir que el dispositivo de memoria
transfiera el código de operación de la instrucción INX H.
Internas
El contador de programa es incrementado. El estado de las entrada READY
es capturado en el flanco de subida de T2, si es bajo se introduce un estado
de espera. La entrada HOLD es examinada y si está en nivel alto se carga
uno en el BITHLDA.
T3
Externas:
El código de operación de la instrucción es cargado en el registro de ins-
trucciones del µP. RD pasa a nivel alto.
Internas:
El código de operación es pasado al decodificador de instrucciones.
T4
Externas:
Ninguna
Internas:
El código de operación es interpretado. En este punto el µP sabe que en el
próximo pulso debe transitar hacia el estado T5 por tratarse de la instruc-
ción INX H. Si el ciclo de búsqueda de la instrucción en ejecución tuviese
cuatro estados, al salir de T4, iniciaría un nuevo ciclo de máquina en T1.
Durante T4 de instrucciones de 4T, se examina el BITHLDA, si es uno los bu-
ses pasan a tercer estado, se activa a uno la salida HLDA y el µP entra en
un estado THOLD. Durante T4 de instrucciones de 6T, la entrada HOLD es
muestreada, y si está en uno el BITHLDA es cargado con uno.
T5-6
Externas:
Ninguna
Internas:
El registro HL es incrementado. Se detecta el estado del BITHLDA, si está en
uno el µP se traslada al estado THOLD en el próximo pulso de reloj.

La información de las operaciones externas realizadas en cada estado del ciclo


de máquina M1 durante el procesamiento de la instrucción INX H, se muestra como
un diagrama de tiempo en la figura 4.15.
Arquitectura y Operación del Microprocesador 8085A 108

M1 M1
SEÑAL
T1 T2 T3 T4 T5 T6 T1

CLK
S1,S0
IO / M IO / M = 0, S 1 = 1, S 0 = 1

A8-A15 PCH Indeterminado

AD0-AD7 PCL 23H

ALE

RD

Fig. 4.15 Ciclo de instrucción (Ciclo de máquina de búsqueda ) para la instrucción INX H (OC=23H).

En la mayoría de las instrucciones del 8085, el ciclo de búsqueda tiene cuatro


estados, de modo que como indica el diagrama de figura 4.14, al final del estado T4 la
transición ocurre hacia el estado T1 del ciclo de máquina siguiente. Las instrucciones
en las cuales se invierte 6 estados durante el ciclo de búsqueda son: CALL, CALL
condicional, DCX, INX, PCHL, PUSH, SPHL, y RET condicional. La función de
cada una se describirá oportunamente.

El 8085A requiere seis estados para completar la ejecución de la instrucción


INX rp. Si la frecuencia de la fundamental del cristal de cuarzo externo es 6.25 MHz,
cada estado interno tendrá una duración de 2000/6.25 ns o 320 ns. Esto significa que
para realizar la operación de incrementar cualquiera de los registros pares, el 8085A
invierte un tiempo de 6 estados x 320 ns/estados = 1.92 µs. La hoja técnica del µP
señala un ciclo de instrucción de 1.3 µs. En realidad esta información se refiere
tiempo que corresponde a la ejecución de las instrucciones de cuatro estados, 4x320
ns = 1.28 µs. Existen instrucciones de 18 estados, en cuya ejecución se invierte un
tiempo de 5.76 µs. Una versión más rápida, el 8085A-2 tiene un ciclo de instrucción
de 0.8 µs, operando a 5 MHz. También una versión CMOS de OKI semiconductor
liberada en 1998 y con código MSM80C85AHRS, opera a esta velocidad.

4.3.3 El estado de espera.

Si un periférico de E/S o un circuito de memoria son lentos comparados con


los tiempos estipulados para que el 8085A realice una operación de lectura o escritu-
ra, el dispositivo externo puede optar por solicitar al µP que pase a un estado de espe-
ra por un número entero de periodos de reloj, como indica la figura 4.16.
Arquitectura y Operación del Microprocesador 8085A 109

RESET

RESET TR
RESET

T1

READY
READY
T2 TW
READY

T3 T4
Fig. 4.16 Diagrama de transición de estados del µP 8085A considerando el estado TW.

T6 T5
En el caso de la instrucción INX H, la entrada al estado TW no modifica nin-
guna de las operaciones externas o internas realizadas durante el desarrollo del ciclo
de máquina, excepto que a la salida del estado T2 el µP no pasa a T3. En su lugar, al
estar la entrada READY activada en nivel bajo, la transición ocurre hacia un estado de
espera. Las actividades realizadas por el µP durante el estado TW son las siguientes:

T1;
...
T2;
...
TW
Externas:
Las líneas de direcciones, datos, y control mantienen los niveles existentes
durante T2.

Internas
Se muestrea la entrada READY en el flanco de subida del estado TW, si se mantiene en
nivel bajo se introduce otro estado de espera.
T3:
...
T4:
...
T5-6
:...

El diagrama de tiempos de la ejecución de la instrucción INX H con estado de


espera es el de la figura 4.17.
Arquitectura y Operación del Microprocesador 8085A 110

M1 M1
SEÑAL
T1 T2 T3 T4 T5 T6 T1

CLK

S1,S0
IO / M = 0, S 1 = 1, S 0 = 1
IO / M
A8-A15 PCH Indeterminado

AD0-AD7 PCL 23H

ALE

RD

READY

Fig. 4.17 Ciclo de instrucción (Ciclo de máquina de búsqueda) para INX H (OC=23H) con estado de
espera.

El estado de espera puede ser solicitado por dispositivos de memoria con


tiempo de acceso tacc mayor que el tiempo especificado para que el 8085A lea un dato
válido, después que la dirección está estabilizada en las líneas de direcciones. En la
figura 4.18 se muestra un ciclo de lectura de memoria, especificándose el tiempo tAD
(A0-15 valid to valid data in).

Fig. 4.18 Ciclo lectura en memoria.

El tiempo tAD es el lapso del cual dispone un dispositivo externo para cargar un
dato válido en el bus de datos, después que el 8085A presenta una dirección válida
en las líneas de direcciones.

El fabricante especifica un valor de tAD = 575 ns para un cristal de 6.25 MHz.


Si la memoria tiene un tiempo de acceso mayor que tAD, deberá solicitar al µP que
Arquitectura y Operación del Microprocesador 8085A 111

agregue uno o más estados de espera al ciclo de máquina en progreso. El valor de tAD
para cualquier frecuencia del cristal dentro del rango válido está dado por la expre-
sión (2.5+N).T-225 ns, donde N es el número de estados de espera. Por cada estado
de espera, el tiempo tAD tendrá un incremento efectivo de 320 ns, a la frecuencia es-
pecificada.

Aunque el concepto de estado de espera fue originalmente introducido para


sincronizar la transferencia de datos entre el µP y memorias o periféricos de veloci-
dad baja, es posible utilizarlo para detener el programa cada vez que se ejecute una
instrucción o un ciclo de máquina. Estos modos de operación son de gran utilidad en
la fase de desarrollo de un programa.

4.3.4 El modo de operación paso a paso


Debido a que el microprocesador 8085A debe operar con un reloj interno con
una frecuencia de al menos 500 KHz, no es posible ejecutar el programa suministrán-
dole pulsos de reloj a una cadencia lo suficientemente lenta como desearía un diseña-
dor en la fase de depuración de un programa. No obstante, si utilizando lógica externa
se introducen n estados de espera durante el ciclo de búsqueda del código de opera-
ción de cada instrucción del programa, este será ejecutado instrucción por instruc-
ción.
El circuito mostrado en la figura 4.19 permite llevar a la práctica el modo de
operación de ejecución de instrucciones por pasos. El funcionamiento del circuito de
paso simple se entiende mejor si se examina el diagrama de tiempos de la figura
4.20. El objetivo es detener la ejecución de un programa cada vez que se ejecuta una
instrucción, debiéndose pulsar el interruptor paso de la figura 4.18 para procesar la
instrucción siguiente.
Considere el inicio de la ejecución de un programa después de haber reinicia-
do el µP. Una vez que el 8085A sale del estado de RESET, procesa la primera ins-
trucción del programa hasta el estado T2 del ciclo de máquina M1 de búsqueda del
código de operación. Durante T1 el µP identifica el ciclo en progreso emitiendo las
señales de estado IO / M, S0 , y S1 . Por tratarse del ciclo de búsqueda, IO / M estará en
nivel lógico cero, mientras que S0 y S1 estarán en alto, de modo que la salida de la
puerta 74LS11 pasará a nivel alto. En el flanco descendente de la señal ALE, también
generada durante el estado T1, se carga uno en U2A y la entrada READY del 8085
conmutará a nivel lógico bajo.

Durante el flanco de subida del ciclo T2, el µP examina la línea READY y en


siguiente pulso de reloj entrará en un estado de espera TW. El µP cesará toda activi-
dad por la duración de N pulsos de reloj, hasta cuando se reciba un comando PS
(CLKU2B) de paso simple.
Arquitectura y Operación del Microprocesador 8085A 126

Fig. 4.19. Circuito para paso simple.


Arquitectura y Operación del Microprocesador 8085A 127

Fig. 4.20 Ejecución de una instrucción de un ciclo de máquina y cuatro estados usando el modo de
paso simple.

En la transición positiva de PS, el biestable U2B forzará un cero en U2A, oca-


sionando que la entrada READY regrese a uno. El µP realizará la transición hacia los
estados T3 y T4 de M1 y hacia los estados T1 y T2 de la siguiente instrucción, repitién-
dose el proceso descrito hasta la ejecución de la última instrucción del programa en
proceso.

4.3.5 Ciclos de lectura y escritura en memoria y puertos de E/S.

Para instrucciones de más de un byte, el 8085A debe realizar al menos un ci-


clo de máquina adicional al de búsqueda para obtener todos los bytes de la instruc-
ción y completar la ejecución.

Considere la figura 4.21, donde se presentan los estados y ciclos de máquina


necesarios para ejecutar la instrucción STA dirección. La ejecución de STA direc-
ción causa que los ocho bits almacenados en el acumulador sean copiados en la posi-
ción de memoria especificada por el operando dirección.

Para procesar esta instrucción, el 8085A deben obtener tres bytes desde la
memoria del sistema: el código de operación y los dos bytes que identifican la direc-
ción a la cual se debe realizar la transferencia.

Durante el ciclo de máquina M1, el microprocesador interpreta el código de


operación de la instrucción y detecta que debe realizar otro acceso a la memoria en
búsqueda de la dirección a la cual debe transferirse el contenido del registro acumu-
lador.
Arquitectura y Operación del Microprocesador 8085A 128

Fig. 4.21 Ciclos de instrucción de STA dirección.

Los ciclos de máquina M2 y M3, ambos del tipo de lectura en memoria, son
necesarios para obtener el operando dirección de STA, mientras que durante M4 se
escribe a memoria el byte en el acumulador. El µP invierte cuatro ciclos de máquinas
y un total de trece estados en procesar STA dirección.

Fig. 4.22 Ciclo de instrucción para OUT 01H (OC=32H).

Los ciclos de máquina de lectura o escritura pueden ser de acceso a memoria


o a un puerto de E/S. En el repertorio de instrucciones del 8085A existen sólo dos
instrucciones para comunicación con puertos: IN puerto y OUT puerto. La ejecución
de la instrucción de dos bytes OUT puerto, carga el contenido del acumulador en el
bus de datos, mientras que en las dieciséis líneas de direcciones se duplica el número
de ocho bits del operando puerto. Como resultado, la información en el registro A es
transferida al dispositivo de salida con la dirección especificada por puerto. En la
Arquitectura y Operación del Microprocesador 8085A 129

figura 4.22 se muestra el diagrama de tiempos de los ciclo de máquina de búsqueda y


ejecución de la instrucción OUT 01H. El ciclo de instrucción de OUT puerto lo
constituyen tres ciclos de máquina distintos, el primero de búsqueda de OC, seguido
de un ciclo de lectura en memoria para obtener la dirección del puerto, y finalmente
un ciclo de escritura a memoria para realizar la transferencia hacia el dispositivo ex-
terno. Cada ciclo de máquina es identificado por las señales de estado
IO / M, S1 , y S 0 , como puede apreciarse en la figura 4.22. Estas salidas son generadas
al inicio de cada ciclo y mantienen sus niveles durante el transcurso del ciclo de má-
quina.

Durante el ciclo de búsqueda M1, la dirección en el PC es cargada en las lí-


neas de direcciones y el PC es incrementado para apuntar al siguiente byte de la ins-
trucción. El µP activa la línea de lectura RD y el código de operación de OUT puer-
to (32H) es transferido desde la memoria hasta interior del µP, donde es decodificado.
A la salida de T4 , el 8085A ha interpretado el OC y está enterado que debe regresar a
la memoria y extraer el número del puerto. En el estado T1 de M2, la dirección PC+1
es presentada en el bus de direcciones, se activa de nuevo RD y entonces la memoria
coloca en el bus de datos el número del puerto (01H), la cual se almacena en el µP.
Finalizado el ciclo de máquina M2, toda la información relativa a la instrucción en
proceso está en poder del 8085A y solo resta mover el contenido de A hacia el puerto
01H para completar la ejecución.

Para que en el ciclo M3 de escritura a puerto se realice la transferencia del by-


te en el A hacia el exterior del µP, es necesario cargar la dirección de 8 bits del puerto
en las líneas de direcciones. Para convertir el número del puerto en una dirección de
16 bits se repite la dirección (0101H) y se carga en el bus, como se observa en la fi-
gura 4.22. Al inicio del estado T2 de M3, el µP activa la señal de escritura WR , y
carga en el bus externo de datos el contenido de A. Durante T3 se completa la transfe-
rencia hacia el periférico identificado por los 8 bits altos o bajos del bus de direccio-
nes.

4.4 LA SECUENCIA DE INICIO DEL 8085

Cuando se suministra potencia a una aplicación basada en el 8085A, es de im-


portancia vital para el funcionamiento adecuado del sistema, que el soporte físico de
la máquina garantice que el µP entre en un estado inicial definido, una vez que la
tensión de alimentación alcance su valor mínimo de operación y que la señal de reloj
se haya estabilizado. La entrada RESET IN del 8085A se usa con el propósito de
llevar a la CPU al estado inicial deseado, después del proceso de arranque; o para
restituir las condiciones iniciales, si el µP está bloqueado o funcionando en situación
de falla. En ambos casos es necesario aplicar un nivel bajo al terminal, y mantenerlo
por un tiempo mayor o igual a la duración de tres ciclos del reloj interno.
Arquitectura y Operación del Microprocesador 8085A 130

Como resultado de la aplicación de una señal válida a RESET IN , el µP en-


tra en el estado de RESET (TR) y ejecuta una secuencia interna Durante el proceso de
inicio se pone en cero el contador de programa y el registro de instrucciones y se in-
habilita el sistema de interrupciones del µP. Todos los bits de control y de estado aso-
ciados a las líneas HOLD, READY, HLDA, y SOD, y los bits de ciclos de máquina y
estados de máquina, son cargados con cero. La figura 4.23 muestra el diagrama de
tiempos de la secuencia de inicio.

M1 M1
SEÑAL
T1 T2 TR TR TR TR T1

CLK

RESET IN

RESET OUT

Fig. 4.23 Secuencia de RESET.

Un comando de RESET finaliza la ejecución del programa y lleva a tercer es-


tado los buses de direcciones y datos y las líneas de control. Las banderas de condi-
ción de estados y los registros internos del µP no son manipulados durante la secuen-
cia de inicio, pero no puede asegurarse que mantengan su contenido después de una
operación de RESET.

El nivel de la entrada RESET IN es examinado durante cada pulso del reloj.


Cuando un nivel bajo es detectado, el µP, entra en TR y activa a uno la salida
RESET OUT , tal como indica la figura 4.23, para notificar al exterior que el µP esta
siendo iniciado. RESET OUT es sincrónica con el reloj CLK y permanece activa
durante un número entero de ciclos de reloj. Esta salida puede usarse para el inicio de
circuitos externos del sistema.

Mientras RESET IN permanezca en cero transcurren nuevos TR y se continúa


examinando el nivel de RESET IN . Durante este tiempo se ejecuta la secuencia de
inicio. Cuando se detecta el regreso a nivel alto de la línea RESET IN , la salida
RESET OUT vuelve a cero y el 8085A entra en el estado T1 del ciclo de máquina
M1 de la primera instrucción del programa.

Cuando el µP sale del estado TR, el contador de programa contiene la direc-


ción 0000H, de modo que después de una operación de RESET la primera instrucción
Arquitectura y Operación del Microprocesador 8085A 131

será buscada en esta dirección. Por esta razón conviene que la memoria EPROM de
sistemas basados en el 8085A ocupe la zona inicial del espacio de direcciones del µP.
Es usual que esta área de la memoria contenga la identificación del sistema, rutinas
de detección de fallas y comandos para programar los periféricos y controladores
asociados al sistema.

Es obvio que si el dispositivo no es iniciado durante TR, la naturaleza aleato-


ria de los estados iniciales alcanzados por registros y flip flops internos afectaría en
forma severa el funcionamiento del sistema. La ejecución de la secuencia de inicio
permite cargar los componentes internos de la CPU con valores lógicos procedentes
para la búsqueda y ejecución de la primera instrucción del programa.

Existen otras situaciones en las cuales es necesario forzar el 8085A al estado


inicial. Por ejemplo, es común insertar una instrucción HLT en un programa para
suspender temporalmente la ejecución en espera de una solicitud de interrupción por
parte de un periférico. Si no ocurre la interrupción, una operación de RESET es el
único medio para sacar al µP del estado THALT.

6.125 MHz

+5V

R1 8085A
5.1 KΩ 1N914

RESET C1
10μf

Fig. 4.24 Circuito de RESET.

En las versiones CMOS del 8085A, por ejemplo MSM80C85A, existe una
forma de operación conocida como modo de consumo bajo (power down mode), du-
rante el cual el µP mantiene la información en memoria, pero se suspenden las activi-
dades internas a tal punto que el consumo de potencia global se reduce en forma apre-
ciable. Reiniciar el µP, es una de las opciones para salir del modo de bajo consumo.
Un circuito típico para generar la señal de RESET, tanto en modo automático como
manual, se presenta en la figura 4.24.

Al activarse la fuente de +5V, el capacitor C1 aplicará un nivel bajo en la en-


trada RESET IN , iniciándose el estado TR. A continuación C1 se carga a través del
resistor R1 con constante de tiempo τ = R1C1. El µP se mantendrá en TR hasta cuando
Arquitectura y Operación del Microprocesador 8085A 132

el voltaje en C1 alcance el valor mínimo reconocido como uno lógico por el circuito
disparador de Schmitt de la entrada RESET IN . Este es VIHR = 2.4 V.

En condiciones normales de operación, el capacitor C1 mantiene en nivel alto


la entrada de RESET. Si se acciona el pulsador de la figura 2.24, se lleva a nivel bajo
a RESET IN por algunos milisegundos, al final de este periodo se repite el proceso
de carga de C1. El diodo D1 permite la descarga rápida del C1 al desconectarse al
energía.

La duración de TR es fijada por el valor deτ, de modo que bastará con selec-
cionarla para que asegure el mantenimiento de RESET IN en cero por un tiempo
equivalente al menos al de tres ciclos del reloj. No obstante deben tenerse presente
dos condiciones de operación que obligan a prolongar el tiempo de RESET. Primero,
debe considerarse que el voltaje de alimentación requiere algunos milisegundos para
alcanzar un nivel del 95% de VCC, o 4.75 V, especificado en la hoja técnica del dispo-
sitivo como voltaje mínimo de operación.

En segundo lugar, INTEL especifica que no garantiza, por razones concernien-


tes a la tecnología de fabricación del dispositivo, el funcionamiento correcto del µP
hasta 10 ms después que la tensión de alimentación VCC se eleve a 4.75 V . En conse-
cuencia, conviene que durante el arranque se retarde la subida a nivel alto de la entra-
da RESET IN , por un tiempo mayor a t95 + 10 ms, donde t95 es el tiempo transcurrido
desde la activación de la fuente de poder hasta cuando VCC = 4.75 V.

Fig. 4.25 Salida de la fuente de poder y señal RESET IN durante el arranque del µP.

La figura 4.25 ilustra la situación descrita. Una vez estabilizado VCC en 4.75
V, se deja transcurrir un tiempo 10 ms + tR. En el inicio de tR el µP funciona en con-
diciones normales y la línea RESET IN está en cero. La rutina de inicio se ejecuta y
Arquitectura y Operación del Microprocesador 8085A 133

el µP entrará al último estado TR, durante el cual se detectara un nivel alto en


RESET IN , y el 8085A transitará al ciclo de búsqueda de la primera instrucción del
programa. En realidad no representa un problema crítico la selección de la constante
de tiempoτ. El valor de 51 ms seleccionado para τ en el circuito de la figura 4.24,
mantiene a RESET IN en cero (por debajo de 2.4 V) durante 33 largos ms, desde el
momento de accionarse el interruptor de la fuente de poder.

Con la descripción del circuito que hace posible el transito del 8085A hacia el
estado TR, culmina la discusión del tópico de análisis de tiempos iniciada en este ca-
pítulo. Los diagramas de tiempos correspondientes a los ciclos de máquina de reco-
nocimiento de interrupción y operación en el estado HOLD y HALT, se analizan en
capítulos posteriores.

También podría gustarte