El microprocesador 8085 posee un complejo y completo sistema


de interrupciones. Esta uP posee cinco terminales destinados al tratamiento de interrupciones.

Recordemos que una interrupción es un artificio hardware/software por el cual es posible detener el programa en curso para que, cuando se produzca un evento predeterminado, después de concluir la instrucción que está ejecutando, efectúe un salto a una determinada subrutina en donde se efectuará el tratamiento de la interrupción; una vez acabado éste, el uP continúa con la instrucción siguiente del programa principal.

Así pues, el 8085 dispone de tres formas diferentes de tratar las interrupciones que le llegan por los citados cinco terminales. Los nombres de estos cinco terminales son:

INTR (Interrupt Request): Por esta entrada se introduce una interrupción que es aceptada o no según haya sido previamente indicado por las instrucciones EI (Permitir interrupciones) o DI (No permitir interrupciones). Cuando una interrupción es permitida y ésta se ha producido, la CPU busca una instrucción RST (de un sólo byte), que es presentada por el bus de datos por el periférico que interrumpe. Este byte tiene el formato binario 11 XXX 111. La subrutina se ubicará en la dirección 00 XXX 000.

RST 5.5, RST 6.5 y RST 7.5: Los terminales de RST 5.5 y RST 6.5 detectan la interrupción sólo si la señal que se les aplica es un uno lógico o nivel alto de una cierta duración, lo mismo que la entrada anterior INTR; sin embargo, la entrada de interrupción correspondiente al terminal RST 7.5 se excita por flanco ascendente, es decir, por una transición de cero a uno. Esta transición se memoriza en un biestable en el interior del uP.

Estas interrupciones se pueden habilitar o deshabilitar mediante las instrucciones EI y DI, como en el caso de INTR; pero además son enmascarables por software mediante la instrucción SIM (Set Interrupt Mask). Es posible leer tanto el estado de la máscara como las interrupciones que se han producido y aún no se atendieron mediante la instrucción RIM.

TRAP: Es una interrupción no enmascarable que es activada cuando el terminal del mismo nombre se lleva a nivel lógico uno. Esta interrupción es la de más alta prioridad, por lo que puede ser usada para tratar los acontecimientos más relevantes, tales como errores, fallos de alimentación, etc.

Nivel de prioridad Nombre de la interrupción Valor leído en el bus de datos Dirección de la subrutina en hexadecimal

Mayor prioridad TRAP No importa 0024

- RST 7.5 003C

- RST 6.5 0034

- RST 5.5 002C

Menor prioridad INTR 11000111 0000

11001111 0008

11010111 0010

11011111 0018

11100111 0020

11101111 0028

11110111 0030

11111111 0038

Control de entrada/salida serie

Este microprocesador posee dos terminales denominados SID (Serial Input Data) y SOD (Serial Output Data). Estos terminales se pueden usar con propósitos generales. Por ejemplo el terminal SID se puede conectar a un interruptor y el SOD a un LED (a través de una compuerta inversora externa). Para leer el estado del terminal SID se ejecuta la instrucción RIM, con lo que se puede leer en el bit 7 del acumulador el estado de dicho terminal.

Para enviar un dato por el terminal SOD se ejecuta la instrucción SIM, donde el bit 7 del acumulador debe tener el valor a poner en el terminal, y el bit 6 debe estar a uno.

Conjunto de instrucciones del 8085

Aparte de las 74 instrucciones del 8080, este procesador posee dos instrucciones más.

SIM (Set interrupt mask): Sirve para poner la máscara de interrupción de RST 5.5, RST 6.5 y RST 7.5 y para enviar un dato por la puerta serie (terminal SOD).

Estos datos deben estar cargados en el acumulador y son:

Bit 7: Valor a enviar al terminal SOD

Bit 6: Permiso para cambiar el estado del terminal SOD. Sólo se puede cambiar si vale 1.

Bit 5: No usado.

Bit 4: R 7.5 (Reset 7.5): Bit para poner a cero el biestable de la interrupción RST 7.5.

Bit 3: MSE (Mask Select Enable): Cuando vale 1, se puede cambiar la máscara de interrupción.

Bit 2: M 7.5 (Mask 7.5): Se habilita la interrupción RST 7.5 si este bit vale 1 y se ejecutó previamente la instrucción EI.

Bit 1: M 6.5 (Mask 6.5): Se habilita la interrupción RST 6.5 si este bit vale 1 y se ejecutó previamente la instrucción EI.

Bit 0: M 5.5 (Mask 5.5): Se habilita la interrupción RST 5.5 si este bit vale 1 y se ejecutó previamente la instrucción EI.

RIM (Read interrupt mask): Sirve para leer la máscara de interrupción general, y de RST 5.5, RST 6.5, RST 7.5, las interrupciones pendientes y para leer el dato de la puerta serie (terminal SID).

Luego de la ejecución de esta instrucción, el acumulador tiene lo siguiente:

Bit 7: Valor leído del terminal SID

Bit 6: I 7.5 (Interrupt Pending 7.5): Indica que todavía no se ejecutó la interrupción RST 7.5.

Bit 5: I 6.5 (Interrupt Pending 6.5): Indica que todavía no se ejecutó la interrupción RST 6.5.

Bit 4: I 5.5 (Interrupt Pending 5.5): Indica que todavía no se ejecutó la interrupción RST 5.5.

Bit 3: IE (Interrupt Enable): Cuando vale 1 la interrupción INTR está habilitada.

Bit 2: M 7.5 (Mask 7.5): Si este bit y IE valen 1, la interrupción RST 7.5 está habilitada.

Bit 1: M 6.5 (Mask 6.5): Si este bit y IE valen 1, la interrupción RST 6.5 está habilitada.

Bit 0: M 5.5 (Mask 5.5): Si este bit y IE valen 1, la interrupción RST 5.5 está habilitada.

Terminales (pinout) del 8085

Este microprocesador estaba encapsulado en el formato DIP (Dual Inline Package) de 40 patas (veinte de cada lado). La distancia entre las patas es de 0,1 pulgadas (2,54 milímetros), mientras que la distancia entre patas enfrentadas es de 0,6 pulgadas (15,32 milímetros).

Nótese en el gráfico el semicírculo que identifica la posición de la pata 1. Esto sirve para no insertar el chip al revés en el circuito impreso.

Las funciones de las 40 patas con las que se conecta el 8085 con el exterior son las siguientes:

Pata Nombre Descripción

1 X1 Entre estas dos patas se ubica el cristal

2 X2

3 RESET OUT Para inicializar periféricos

4 SOD Salida serie

5 SID Entrada serie

6 TRAP Entrada de interrupción no enmascarable

7 RST 7.5 Entrada de interrupción (máxima prioridad)

8 RST 6.5 Entrada de interrupción

9 RST 5.5 Entrada de interrupción

10 INTR Entrada de interrupción (mínima prioridad)

11 /INTA Reconocimiento de interrupción

12 AD0 Bus de direcciones y datos multiplexado

13 AD1 Bus de direcciones y datos multiplexado

14 AD2 Bus de direcciones y datos multiplexado

15 AD3 Bus de direcciones y datos multiplexado

16 AD4 Bus de direcciones y datos multiplexado

17 AD5 Bus de direcciones y datos multiplexado

18 AD6 Bus de direcciones y datos multiplexado

19 AD7 Bus de direcciones y datos multiplexado

20 GND Referencia de tierra. Todas las tensiones se miden con respecto a este punto.

21 A8 Bus de direcciones

22 A9 Bus de direcciones

23 A10 Bus de direcciones

24 A11 Bus de direcciones

25 A12 Bus de direcciones

26 A13 Bus de direcciones

27 A14 Bus de direcciones

28 A15 Bus de direcciones

29 S0 Bit de estado del 8085

30 ALE Cuando está uno indica que salen direcciones por las patas ADn, en caso contrario, entran o salen datos

31 /WR Cuando vale cero hay una escritura

32 /RD Cuando vale cero hay una lectura

33 S1 Bit de estado del 8085

34 IO/M Si vale 1: operaciones con ports, si vale 0: operaciones con la memoria

35 READY Sirve para sincronizar memorias o periféricos lentos

36 /RESET IN Cuando está a cero inicializa el 8085

37 CLK OUT Salida del reloj para los periféricos

38 HLDA Reconocimiento de HOLD

39 HOLD Sirve para poner los buses en alta impedancia para el manejo de DMA (acceso directo a memoria)

40 VCC tensión de alimentación: +5Vdc