SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este...

27
D D E E P P A A R R T T A A M M E E N N T T O O D D E E L L A A B B O O R R A A T T O O R R I I O O S S G G U U I I A A S S D D E E L L A A B B O O R R A A T T O O R R I I O O D D E E S S I I S S T T E E M M A A D D I I G G I I T T A A L L B B A A S S A A D D O O E E N N M M I I C C R R O O P P R R O O C C E E S S A A D D O O R R GUIAS ÚNICAS DE LABORATORIO SISTEMA DIGITAL BASADO EN MICROPROCESADOR AUTOR: ALBERTO CUERVO SANTIAGO DE CALI UNIVERSIDAD SANTIAGO DE CALI DEPARTAMENTO DE LABORATORIOS

Transcript of SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este...

Page 1: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

GUIAS ÚNICAS DE LABORATORIO

SISTEMA DIGITAL BASADO EN MICROPROCESADOR

AUTOR: ALBERTO CUERVO

SANTIAGO DE CALI UNIVERSIDAD SANTIAGO DE CALI

DEPARTAMENTO DE LABORATORIOS

Page 2: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

SISTEMA DIGITAL BASADO EN MICROPROCESADOR

Introducción El artículo presente tiene como objetivo describir el diseño de un sistema digital basado en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado por la firma Intel Corporation y consiste de una versión 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, además 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 analógico/digital el cual es utilizado para obtener el valor de la temperatura de un líquido contenido en un recipiente. El sistema digital diseñado es apropiado para ser implementado como proyecto de curso de un semestre de duración por estudiantes relacionados con el tema de microprocesadores. El microprocesador La distribución 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 alimentación de + 5 voltios conectada entre los terminales 20 y 40. Las líneas TRAP, RST 7.5, RST 6.5, RST 5.5 e INTR (Interrupt Request) son entradas de interrupción por donde los dispositivos periféricos pueden solicitar atención del microprocesador . Presentan distintos niveles de prioridad, siendo TRAP la línea más prioritaria e INTR la de menor prioridad. A una solicitud de interrupción por la línea INTR, el microprocesador contesta con un pulso negativo INTA´ (Interrupt Acknowledge) si acepta la interrupción. Durante el pulso INTA´, el dispositivo periférico deberá colocar en el bus de datos del microprocesador el vector de interrupción el cual consiste de un código de 8 bits que tiene la información de la dirección de memoria donde está ubicada la subrutina de servicio del dispositivo.

Page 3: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

El código de este vector de interrupción o RSTn es igual a 11NNN111, donde n es un número de 3 bits igual a NNN. Introduciendo este código con el pulso INTA´ el microprocesador guarda la dirección de memoria de retorno en la pila y salta a la dirección 8 * n. Se debe destacar que el microprocesador genera automáticamente en su interior los distintos vectores de interrupción a solicitudes efectuadas por las otras entradas de interrupción, por lo que se producirá una bifurcación de forma automática a las direcciones de memoria donde deberán estar ubicadas las subrutinas de atención 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 OUTSODSID

TRAP

RST 7.5RST 6.5RST 5.5

INTR

INTAAD0

AD1AD2

AD3AD4

AD5AD6AD7

8085

Vcc (+5v.)

HOLD

HLDA(CLK) OUT

RESET INREADY

IO/MS1

RDWR

ALES0

A15A14

A13A12

A11A10

A9A8

MICROPROCESADOR

Figura 1. Distribución de terminales

Bifurca a la dirección: 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 bifurcación.

Page 4: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

La línea RST 7.5 tiene una característica distinta a las otras. El flip-flop de solicitud de interrupción asociado al dispositivo se encuentra internamente en el microprocesador, lo que hace que esta línea sea sensible al flanco de subida de un pulso aplicado a la misma por el hardware del dispositivo. En cualquier otra línea (INTR, RST 6.5 Y RST 5.5) debe permanecer un nivel de 1 fijo hasta que la interrupción sea reconocida por el microprocesador. El flip-flop interno de solicitud de interrupción asociado a la línea 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 instrucción SIM (Set Interrupt Mask) con el bit 4 del acumulador en 1.

3. Automáticamente con un reconocimiento del microprocesador a una solicitud de interrupción por la línea RST 7.5.

La línea 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 interrupción. Una nueva interrupción no será reconocida hasta que esta línea vaya a 0 y después nuevamente a 1. Las líneas de interrupción excepto TRAP pueden ser enmascaradas o inhabilitadas mediante una instrucción 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 líneas de interrupción excepto TRAP que es una línea no-enmascarable. Con la instrucción EI (Enable Interrupt) se coloca al flip-flop INTE en 1 habilitando todas las líneas de interrupción. Cuando el microprocesador reconoce una interrupción, automáticamente coloca INTE=0 inhabilitando todas las líneas enmascarables, por lo que en el software habrá que ejecutar la instrucción EI para permitir futuras interrupciones por estas líneas. Si INTE=1, las líneas RST 7.5, RST 6.5 y RST 5.5 pueden ser inhabilitadas individualmente colocando un código apropiado en un registro interno del microprocesador denominado registro de máscaras como se muestra en la figura 2.

M7.5 M6.5 M5.5MSER7.5XSOESOD

01234567

Figura 2. Reg. de máscaras del microprocesador

Las funciones de los distintos bits colocados en el registro de máscaras se describen a continuación.

Page 5: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

Bits 0, 1 y 2. Un 1 colocado en estos bits del registro inhabilita la línea respectiva. Un 0 la habilita. Bit 3 MSE (Mask Set Enable). La instrucción SIM mueve el contenido del acumulador al registro de máscaras. El bit 3 debe estar en 1 cuando se ejecute la instrucción 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 interrupción asociado a la línea 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 réplica de este bit del registro de máscaras el cual puede ser colocado en un determinado nivel lógico mediante la instrucción SIM. Con esta instrucción, el bit 7 del acumulador es colocado en el bit 7 del registro de máscaras si el bit 6 (SOE= Serial Output Enable) es colocado en 1. La instrucción RIM (Read Interrupt Mask) almacena en el acumulador del microprocesador el estado de las máscaras de interrupción, 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 están inhabilitadas pero pendientes, el programa puede de forma selectiva habilitar una línea en particular para atender una solicitud de interrupción en cuestión. El contenido del acumulador después de una instrucción RIM se muestra en la figura 3.

M6.5 M5.5M7.5I EI 5.5I 6.5I 7.5SID

Máscaras deinterrupción

INTE

Interrupciones pendientes

Serial Input Data

Figura 3. Contenido del acumulador después 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)´.

Page 6: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

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 instrucción que se encuentre en la dirección 0000H cuando (Reset In)´ regrese a 1.

2. Las líneas de datos y direcciones, así como las líneas 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 interrupción asociado con la línea RST 7.5 y se colocan en 1 las máscaras de interrupción.

Mientras (Reset In)´ = 0, el microprocesador se encuentra en el estado de Reset en el cual la línea de salida Reset Out, terminal 3, se activa con un 1. Se utiliza generalmente como señal 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 señal 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 señal HLDA (Hold Acknowledge), terminal 38. Esto último le indica al dispositivo que el microprocesador libera los buses de datos y direcciones, las señales de RD´, WR´ e IO/M´ colocando todas estas líneas 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 intervención del microprocesador. Las señales de RD´ y WR´ son pulsos negativos generados por el microprocesador por los terminales 32 y 31 respectivamente cuando va a efectuar una operación de lectura o escritura en la memoria o en un puerto de entrada/salida. Las señales S1, S0 e IO/M´ son señales de estado del microprocesador obtenidas en los terminales 33, 29 y 34 respectivamente que identifican el ciclo de máquina en curso en el microprocesador, esto es, si se trata de un ciclo de búsqueda, de un ciclo de lectura de memoria, de un ciclo de escritura de memoria, etc. De estas, la más utilizada es IO/M´ que indica si la operación de lectura o escritura se realiza en memoria o en un puerto de entrada/salida. IO/M´ = 0 indica que la operación se realiza en la memoria e IO/M´= 1 indica que la operación se efectúa 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 operación de lectura, 10 una operación de escritura y 11 que se encuentra en el ciclo de máquina de búsqueda en el cual lee de la memoria el código de operación de una instrucción.

Page 7: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

La duración de un estado en el microprocesador se identifica con un período de los pulsos de reloj. Todos los ciclos de máquina tienen 3 estados, excepto el ciclo de búsqueda que puede tener 4 ó 6 estados dependiendo de la instrucción. Todo un ciclo de instrucción consta de uno o más ciclos de máquina, entendiéndose que se produce un nuevo ciclo de máquina cada vez que el microprocesador hace referencia a memoria o a un dispositivo de entrada/salida. Así por ejemplo, la instrucción STA 2382H (Store Accumulator) que almacena el contenido del acumulador en la dirección de memoria especificada consta de 4 ciclos de máquina. Un primer ciclo de búsqueda donde se lee de la memoria el código de operación de la instrucción el cual le indica al microprocesador las actividades que debe realizar a continuación, 2 ciclos de lectura de memoria (Memory Read) en los cuales se lee la dirección de 16 bits especificada por la instrucción y un último ciclo de escritura de memoria (Memory Write) en donde el microprocesador saca por el bus de direcciones la dirección leída anteriormente para almacenar en esta localización de memoria el contenido del acumulador que está sacando por el bus de datos. La señal de READY (terminal 35) es utilizada por un dispositivo de entrada/salida o la memoria para poder solicitar al microprocesador uno o más estados de espera intercalados entre los estados T2 y T3 de un ciclo de máquina. Así por ejemplo, durante un ciclo de lectura de memoria en el estado T1 al comienzo del ciclo de máquina el microprocesador coloca la dirección de la localización 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 señal 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 216 = 64 Kbytes de memoria. A8 a A15 (terminales 21-28) constituyen los bits de mayor orden de la dirección y los bits AD0 a AD7 (terminales 12-19) son líneas compartidas por el bus de datos y los 8 bits de menor orden de la dirección. Esto es, las líneas AD0-AD7 constituyen un bus multiplexado. Al comienzo de un ciclo de máquina estas líneas son unidireccionales y contienen los 8 bits de menor orden A0-A7 de la dirección de memoria o de un puerto de entrada/salida seleccionado. Posteriormente en el ciclo de máquina estas líneas 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 máquina para indicar que la parte baja de una dirección se encuentra en las líneas AD0-AD7 como se ilustra en la figura 4.

Page 8: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

parte alta de la dirección

parte baja de ladirección

Datoválido

Ciclo de lectura de memoria (Memory Read)

T1 T2 T3 T1

Reloj

A8-A15

ALE

RD

AD0-AD7

dato

Figura 4. Señales durante un ciclo de lectura de memoria

En esta figura se han representado las señales que ocurren durante un ciclo de lectura de memoria. Al comienzo del estado T1 del ciclo de máquina el microprocesador coloca el byte de mayor orden de la dirección en las líneas A8-A15 y permanece constante hasta el final del estado T3 y el byte de menor orden de la dirección lo coloca en las líneas AD0-AD7. Este byte sin embargo permanece en estas líneas solamente hasta el comienzo del estado T2 en cuyo momento las líneas AD0-AD7 se convierten en líneas de datos. Observe que el pulso ALE es generado mientras la parte baja de la dirección se encuentra en las líneas 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 líneas AD0-AD7. Con el flanco positivo del reloj en el estado T3 el microprocesador almacena internamente el dato que le llega por estas líneas. Durante todo el ciclo, la señal IO/M´ = 0 indicando que la operación de lectura se efectúa en la memoria. De acuerdo con la descripción anterior se hace necesario demultiplexar o retener la parte baja de la dirección como se muestra en la figura 5.

Page 9: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

A15A14A13A12A11A10A9A8

ALE C ocLatch

74LS373

10 Kohmios

20picofaradios

X1

X2

8085

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0

D7D6D5D4D3D2D1D0

AD7AD6AD5AD4AD3AD2AD1AD0

+

+5V.

R

C

Reset

Bus deDirecciones

Bus deDatos

R : 47 KohmiosC : 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 dirección. 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 energía eléctrica. El diodo es de señal de silicio para proteger la entrada (Reset In)´ de cualquier posible oscilación. 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 dirección 0000H.

Page 10: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

Como la EPROM tiene 13 líneas de dirección, las localizaciones de la misma se podrán acceder con las direcciones que van de 0000H hasta 1FFFH. Para la RAM se utiliza el circuito integrado TMS4016. La RAM debe comenzar a continuación de la EPROM. Como la RAM tiene 11 líneas de dirección, las direcciones en la misma irán desde 2000H hasta 27FFH como se muestra en la figura 6.

EPROM

0000 0000 0000 0000

0001 1111 1111 11110010 0000 0000 0000

0010 0111 1111 1111

8 Kbytes

2 Kbytes

64 Kbytes

A15 A0. . . . . . .

RAM

Direcciones

Figura 6. Mapa de memoria

bit 13bit 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 línea 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 línea de HOLD y a todas las entradas de interrupción que no se utilicen. En la tabla 2 se muestran las funciones de las líneas de las pastillas utilizadas.

Decodificador Memoria RAM Memoria EPROM G´ : entrada de habilitación G´: habilitación de salida CE´: entrada de selección BA:entradas, B mayor orden S´: entrada de selección OE´: habilitación de salida Y0-Y3: salidas W´: habilitación de

escritura A0-A12: líneas de dirección

A0-A10: líneas de dirección DQ0-DQ7: salida de datos DQ1-DQ8: entrada/salida

Tabla 2. Funciones de las líneas.

Page 11: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

A15ALE

A14

A13

A12

A11

A10 A9

A8

AD

0A

D1

AD

2

AD

3

AD

4

AD

5A

D6

AD

7

EPROM 27C64

74LS

373

C OC

B AG

Y3 Y2 Y1 Y0

1/2 74LS139A

DEC

IO/M

Figura 7. Memoria

X1

X210 Kohmios

20 picofaradios

Reset In

Reset Out

Reset 10 microfaradios

47 Kohmios on/off

A la alimentaciónde los CIs

+5v.

Rea

dy

TR

AP

RS

T 5

.5R

ST

7.5

INT

RH

OLD

INT

AH

LDA S1

S0

SID

SO

D

microprocesador

CLK OUT

RD

WR

RS

T 6

.5

CEOE A12 A0.....VccVppPGM´ DQ7 DQ0.....

alimentación+5v.

4.7K

A10 A0

SGW

RAM TMS4016.....

DQ8 DQ1....

D7

A15

A0

Convertidor analógico/digital El convertidor analógico/digital seleccionado consiste del circuito integrado ADC0801 o similar el cual tiene una resolución 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 conversión, 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 alimentación de + 5 voltios. Este convertidor responde a un voltaje diferencial analógico [Vin(+) – Vin(-)] aplicado en sus entradas. La distribución de terminales se muestra en la figura 8.

Page 12: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

1

2

3

4

5

6

7

8

9

10 11

12

13

14

15

16

17

18

19

20

Figura 8. Distribución 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 conversión. La orden de comenzar la conversión de la señal analógica aplicada a la entrada del convertidor se efectúa cuando van a 0 las señales CS´ y WR´ como se muestra en la figura 9a. Cuando se completa la conversión y el dato digital está disponible, el convertidor responde colocando INTR´ en 0. Por tanto esta última señal puede ser utilizada como “Fín de Conversión” pudiendo ser monitoreada bajo el control del programa o utilizada para solicitar interrupción del microprocesador.

Inicie conversión

Conversiónterminada

CS

WR

INTR

INTR

CS

RD

Dato3er estado 3er estado

Figura 9 Señales 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 interrupción (INTR´ va a 1) y coloca el dato digital con su demora intrínseca en sus líneas DB7-DB0 como se muestra en la figura 9b. Voltaje de Referencia.

Page 13: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

El voltaje de referencia del Conv. A/D determina el rango dinámico de la señal diferencial de entrada VIN = VIN(+) – VIN(-). VREF = Vcc si no se aplica ningún 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 variación de VIN. En esta situación, los escalones en VIN (variación en VIN en que no cambia la salida digital) será igual a 4/28 = 15.625 milivoltios como se muestra en la figura 10. Se cumple que VIN = escalón 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 escalón.

00000000

00000001

00000010

00000011

00000100

00000101

entradaanalógica

VIN

11111111

......

salidadigital

15.625 mV

15.6

25 m

V

31.2

5 m

V

46.8

75 m

V

62.5

mV

78.1

25 m

V

3.98

4 v

Figura 10. Función transferencial

escalón

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 próximo a 640 KHz recomendado por el fabricante para obtener garantizada la exactitud del Conv. A/D.

Page 14: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

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 según especificación del fabricante. Su distribución de terminales se muestra en la figura 12. Por lo anterior a 0ºC su voltaje será 2980mV – 10x25= 2.73v y a 100ºC 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 básico

salida

10 mv/ºC

RR

10K

sensor calibrado

2.98v a 25ºC

V+

Figura 12. Sensor de temperatura LM335

El potenciómetro de 10 K se utiliza para ajustar el voltaje de salida exactamente en 2.982 voltios a 25ºC y obtener mayor exactitud del dispositivo. Rango de temperaturas Se desea medir temperaturas comprendidas en el rango 0ºC ≤ T < 100 ºC. Como el coeficiente de temperaturas del sensor es de 10 mV/ºC, se utilizará un VREF/2 en el convertidor analógico/digital igual a 1.28 voltios. Esto produce un rango dinámico en el mismo de 2.56 voltios y un escalón en VIN igual a 2.56/28 v = 10 mV. Es decir entonces que para cada grado centígrado de aumento en la temperatura, la salida digital se incrementa en la unidad.

Page 15: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

Por otro lado, como el sensor produce un voltaje de 2.73 voltios a 0ºC, se colocará este valor en VIN(-). Así cuando la temperatura sea de 0ºC, VIN(+) (salida del sensor) = 2.73v y VIN = VIN(+) – VIN(-) = 0 voltios produciendo el convertidor analógico/digital una salida igual a 00000000. El circuito para efectuar lo anteriormente expuesto se muestra en la figura 13.

LM4050-4.1diodo de precisión

de referencia

al busde datos

alimentaciónde +5 v.

+

VREF/2VIN(-)

VIN(+)

A GND

D GND

10microfaradios

tantalio

7.5K5%

1K

330ohmios

1.28v

2.73v

Figura 13 Sensor de Temperatura y Convertidor A/D

A/D

1K

R1R2sensor de

temperatura

+5v.LM335

1.2K10 mV/ºC

WR

RDCS

selección

0.01microfaradios

1

2

3

LM4050-4.1

VR

T= 20 ppm/ºC

DB0DB1DB2DB3DB4DB5DB6DB7

CLK R

CLK IN

Vcc

10K150

picofaradios

INTR

3.3K / 5%3.9K / 5%9.1K / 5%

Los pequeños potenciómetros R1 y R2 se utilizan para ajustar los voltajes en VREF/2 y VIN(-) en 1.28 y 2.73v respectivamente. El potenciómetro R2 ajusta la salida del conv. A/D a 00hex cuando la temperatura sea de 0ºC y R1 a que tenga una resolución (escalón) de 10 mV. R1 varía 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 precisión de referencia utilizado para obtener un voltaje estabilizado de 4.1 voltios con un coeficiente de temperatura muy pequeño. Este voltaje solamente varía con la temperatura a razón de 20 ppm (partes por millón) por cada ºC. El capacitor de 10 microfaradios conectado a la alimentación de +5v. del A/D debe ser de tantalio para eliminar los impulsos de ruido que puedan venir por la línea de alimentación de +5v. y estar físicamente conectado lo más próximo posible al terminal de Vcc del convertidor analógico/digital.

Page 16: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

El cable de conexión del sensor de temperatura debe ser trenzado para evitar ruido inducido y conectado a tierra lo más cerca posible del terminal marcado como AGND (analog ground : tierra analógica) del A/D. El sensor de temperatura LM335 debe ir encerrado en un tubo metálico o de vidrio para construir la sonda que se introduce en el líquido. 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 líquido. Puertos Programables Se plantea como requerimiento la implementación del sistema digital con tres puertos programables, por lo que se utiliza la interface periférica programable 82C55 de la compañía Intel Corporation. Este circuito integrado goza de gran aceptación al ser utilizadas sus funciones en la implementación 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 distribución 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 función 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 operación en el modo 0 ocasiona que las líneas del grupo funcionen como líneas de entradas con buffer de 3 estados o como líneas de salida con registro. Constituye el modo básico de operación. Modo 1. En el modo 1 de operación, se efectúa una transferencia controlada por pulsos por los puertos A o B, mientras que el puerto C proporciona las señales de diálogo 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.

Page 17: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

PA0PA1PA2PA3PA4PA5PA6PA7

PB0PB1PB2PB3PB4PB5PB6PB7

PC0PC1PC2PC3PC4PC5PC6PC7

D0D1D2D3D4D5D6D7

RDWRA0A1

CSRESET

82C55

Pue

rto

AP

uert

o B

Pue

rto

C

Bus

de

dato

s

1415161713121110

2524232221201918

37383940123434

33323130292827

53698156

Vcc: 26GND : 7

A1 A0 Selección 0 0 Puerto A 0 1 Puerto B 1 0 Puerto C 1 1 Registro de comando

(a)

Figura 14. Interface periférica programable (a) distribución de terminales y (b) bytes de comando

Puerto C : PC3-PC01=entrada0=salida

Puerto B1=entrada0 = salida

Modo0=Modo 01=Modo 1

Grupo B

Grupo A

byte de comando A

Puerto C : PC7-PC41=entrada0 = salida

Puerto A1=entrada0 = salida

Modo00 = modo 001 = modo 11X = modo 2

1

7 6 5 4 3 2 1 0

0 X X X

7 6 5 4 3 2 1 0byte de comando B

selección de 1 bit Bit Set/Reset1 = Set

0 = Reset

(b)

Modo 2. El modo 2 de operación sólo es permitido para el grupo A. El puerto A se convierte en bidireccional pudiéndose efectuar una transmisión y recepción de datos a través de las mismas líneas. Puerto de entrada en modo 1. En este modo de operación, 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 señales en este modo de operación, en donde las líneas PC3, PC4 y PC5 del puerto C no manejan datos,

Page 18: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

sino señales de diálogo 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 señales 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 interrupción del puerto A. Un

1 en esta salida puede ser utilizado para interrumpir al microprocesador. Esta solicitud de interrupción 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.

puer

to A

al dispositivo

puer

to B

STBA

IBFA

INTRA

PC4

PC5

PC3

PC6,PC7

PC0

PC2

PC1OBFB

ACKB

INTRB

dato

dato almacenadoen el puerto

dato leído porel microprocesador

STBA

IBFA

INTRA

RD

PA0-PA7

RD

WRWR

OBFB

INTRB

ACKB

dato enviadoal puerto

82C55 PB0-PB7

Figura 15. Señales de diálogo

BufferA lleno

Solicitud de interrupción

BufferB lleno

dato leídodel puerto

2

dato del dispositivo

El dispositivo coloca un dato en sus líneas de salida y lo almacena en el puerto A al generar un pulso STBA´ si el buffer del puerto A está vacío. Este pulso activa las señales IBFA (buffer de entrada lleno) e INTRA (solicitud de interrupción). 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 señales IBFA e INTRA a

Page 19: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

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 operación, 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 señales asociadas al puerto B operando como salida en el modo 1 se describe a continuación.

1. OBF´B: (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 leído del puerto por un dispositivo externo.

2. ACK´B: (Acknowledge: Reconocimiento). Esta señal es una respuesta del dispositivo externo que indica que ha recibido el dato del puerto. Ocasiona que OBF´B regrese a 1 para indicar que el puerto está vacío. También ocasiona que INTRB regrese a 1 para solicitar una nueva interrupción.

3. INTRB : (Interrupt request: solicitud de interrupción). Señal 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 señales de diálogo quedan como líneas de entrada/salida de propósito general. En el ejemplo de la figura 15 serían los bits PC6 y PC7, los cuales quedan programados o como entrada o salida en dependencia de cómo 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 señales de diálogo con el dispositivo periférico como se ha visto. La lectura del contenido del puerto C permite al programador monitorear y comprobar el “estado” de cada dispositivo periférico y en concordancia tomar la decisión requerida. En la figura 16a se muestra un resumen de las señales de diálogo en el modo 1 y en b se muestran los distintos bits cuando se efectúa una lectura del puerto C. Señales en el modo 2. Solamente el grupo A se puede programar en el modo 2, convirtiéndose el puerto A en bidireccional. Esto permite la transmisión y recepción de datos a través de las mismas ocho líneas. Las señales de diálogo en este modo de operación se muestran en la figura 17.

Page 20: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

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 INTRBINTEA INTEB

D7 D6 D5 D4 D3 D2 D1 D0

Programación como entrada

Grupo A Grupo B

D7 D6 D5 D4 D3 D2 D1 D0Programación como salida

Grupo A Grupo B

(a) (b)

Figura 16. Bits del puerto C, (a) resumen modo 1 y (b) lectura del puerto C

Page 21: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

Figura 17. Señales en el modo 2

dato delperiféricoal 82C55

dato del 82C55al periférico

dato del 82C55al microprocesador

dato del microprocesadoral 82C55

WR

OBFA

INTRA

ACKA

STBA

IBFA

busperiférico

RD

Observación: cualquier secuencia donde WR´ ocurra antes que ACK´,y STB´ ocurra antes que RD´ es permitida

bus periférico

RD

WR

PA0-PA7

INTRA

OBFA

ACKA

STBA

IBFA

PC3

PC7

PC6

PC4

PC5

82C55

3PC0-PC2

E/S

INTE1: INTE asociado con OBF´: controlado por la acciónde set o reset de PC6

INTE2: INTE asociado con IBF´: controlado por la acciónde 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 conexión 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 conexión efectuada las direcciones de los distintos puertos, el registro de comando del 82C55 y el Conv A/D serán como se muestra en la tabla 3.

Page 22: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

Puerto A Puerto C Puerto B

DB

7

DB

0

DB

6D

B5

DB

4D

B3

DB

2D

B1

del sensorde temperatura

bus

de d

atos

RDWRIO/M

CS RD WR

Reset Out

RST 6.5

Res

etC

S

A0A1A2A3

del bus de direcciones

A1 A0G B A

Y0Y1Y2Y31/2 74LS139A

Dec

D7

D0

VIN (+)

A/D ADC0801

RD WRD7

D6

D5

D4

D3

D2

D1

D0

INTR

74LS04

Figura 18. Conexión de los puertos y el convertidor a los buses

82C55

74LS04

D6D5D4D3D2D1

PA7.....PA0 PC7.....PC0PB7.....PB0

Dirección 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

Page 23: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

3. La señal 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 interrupción por la línea 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 señal Reset Out proveniente del microprocesador. Dispositivos periféricos. Además del convertidor A/D, el sistema digital debe constar de un display de dos dígitos para colocar el valor de la temperatura leída , una alarma luminosa cuando la temperatura sobrepase un valor preestablecido y un teclado de 4 switches para fijar este valor. Por tanto, la conexión de estos elementos se ilustra en la figura 19. Todos los puertos deben estar configurados en el modo 0. El display está conectado a través 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 leída. La entrada RBI´ de las decenas está conectada a tierra para que el cero no se ilumine. El teclado de 4 switches tiene como misión 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 30ºC, etc. Un switch cerrado coloca un 0 y abierto un 1. Los switches están conectados a las líneas PA4-PA7 del puerto A el cual debe ser programado como entrada. El bit PC0 del puerto C es utilizado como señal 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 iluminándose la lámpara. Por tanto, el puerto C debe ser programado como un puerto de salida. El opto-aislador tiene como misión aislar eléctricamente las señales débiles de la alta corriente alterna de 60 HZ que circula por la lámpara de 40 vatios cuando ésta se encuentre iluminada y de las líneas de alimentación 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 lámpara.

Page 24: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

PB7PB6PB5PB4PB3PB2PB1PB0

PC0

display

+5V

PA7PA6PA5PA4

+5v.

4.7K

8 4 2 1

220ohmios

C C

+5V

74LS04

110v60 Hz

Figura 19. Display, switches y alarma

Opto-aislador

lámpara40 vatios

0.01microfaradios

200 voltios

TRIAC

220ohmios

33ohmios

MOC3020

switches

NTE5641

470ohmios

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 ALT

RBORBI

LTRBORBI

agfedc

b

74LS47A 74LS47Agfedc

ba

4.7K

+5v.

NTE3050ánodo común

NTE3050ánodo común

decenas

unidades

74LS47A : decodificador BCD/7 segmentos

Software El programa requerido debe inicializar los puertos del 82C55, ordenar el inicio de la conversión al convertidor analógico/digital y esperar a que éste produzca una solicitud de interrupción por la línea RST 6.5 para leer su dato digital de salida.

Page 25: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

La lectura del dato se hará en la rutina de servicio. Igualmente se hace una conversión 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 código colocado en los switches para la toma de la decisión de iluminar la alarma. En la tabla 4 se muestra el programa.

Programa para leer la temperatura de un líquido,actualizar alarma, visualizar la temperatura en un display y leer una temperatura establecida mediante switches

CONV EQU 00H ; Dirección del convertidor PTOA EQU 04H ;Dirección del puerto A PTOB EQU 05H ;Dirección del puerto B PTOC EQU 06H ;Dirección del puerto C COMAN EQU 07H ;Dirección reg de comando 82C55 ORG 0000H 0000 C3 40 00 JMP INICIO ORG 0034H ;Dirección del salto por

interrupción 0034 C3 55 00 JMP SERV ORG 0040H ;Dirección 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 línea RST 6.5 y 004D 30 SIM ;se lleva al registro de máscaras 004E D3 00 OUT CONV ;Inicie conversión 0050 FB EI ;Habilita interrupción 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 analógico/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 próxima 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

Page 26: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

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 conversión 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 válida 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 posición 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 posición 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 fácilmente utilizado en otras muchas aplicaciones pués constituye un pequeño 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

Page 27: SISTEMA DIGITAL BASADO EN MICROPROCESADOR · en el microprocesador de 8 bits 8085 de Intel. Este sería el último de los microprocesadores de 8 bits de propósito general desarrollado

DDDEEEPPPAAARRRTTTAAAMMMEEENNNTTTOOO DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOOSSS

GGGUUUIIIAAASSS DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO DDDEEE SSSIIISSSTTTEEEMMMAAA DDDIIIGGGIIITTTAAALLL BBBAAASSSAAADDDOOO EEENNN MMMIIICCCRRROOOPPPRRROOOCCCEEESSSAAADDDOOORRR

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 precisión LM4050, éste puede reemplazarse por un pequeño diodo zener de 3.9 voltios, ½ vatio, (por ejemplo, el NTE5007A) aunque no se obtenga la misma exactitud en la medición. Igualmente el ADC0801 puede ser reemplazado por el ADC0804, el cual tiene las mismas características diferenciándose solamente en la precisión. El diseño anteriormente descrito ya ha sido montado y debidamente comprobado su funcionamiento con resultados completamente satisfactorios, por lo que no contiene el más mínimo error, tanto en el hardware como en el software desarrollado. Bibliografía 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” , Volúmenes 1 y 2, 1985