Procesadores y microprocesadores Intel
Microprocesador 8085
 
 
     

 

El microprocesador 8085

Introducción

El siguiente microprocesador creado por la empresa Intel fue el 8085 en 1977. La alimentación es única: requiere sólo +5V. Esto se debe a la nueva tecnología utilizada para la fabricación llamada HMOS (High performance N-channel MOS) que además permite una mayor integración, llegando a la VLSI (Very Large Scale of Integration o muy alta escala de integración) con más de diez mil transistores (el 8085 no es VLSI, pero sí el 8088, como se verá más adelante). Tiene incorporado el generador de pulsos de reloj con lo que sólo hace falta un cristal de cuarzo y un par de capacitores externos (para el 8080 se necesitaba el circuito integrado auxiliar que lleva el código 8224). Además está mejorado en lo que se refiere a las interrupciones. Incluye las 74 instrucciones del 8080 y posee dos adicionales (RIM y SIM) referidas a este sistema de interrupciones y a la entrada y salida serie. El bus de datos está multiplexado con los ocho bits menos significativos del bus de direcciones (utiliza los mismos pines para ambos buses), con lo que permite tener más pines libres para el bus de control del microprocesador (el 8080 necesitaba un integrado especial, el 8228, para generar el bus de control). Intel produjo ROMs, RAMs y chips de soporte que tienen también el bus multiplexado de la misma manera que el microprocesador. Todos estos integrados forman la familia MCS-85.

Debido a la gran densidad de integración comparado con el 8080, se utilizó mucho este microprocesador en aplicaciones industriales. Sin embargo, para aplicaciones de computación de uso general, se extendió más el uso del microprocesador Z-80 como se indicó en el apartado referente al 8080.

Interrupciones

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

Dip 40

 

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