Sistemas Con Microprocesadores_cap1

48
Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 1 CAPITULO 1 SISTEMAS BASADOS EN MICROPROCESADORES La ciencia es el arte del ensayo y el error, su producto más importante es la razón.... Los sistemas lógicos basados en transistores poseen las mismas ventajas que los circuitos electrónicos de estado sólido: son seguros, confiables, pequeños, rápidos y baratos. Desde el punto de vista del usuario industrial, su única falla es su difícil modificación con el cambio de aplicación. Hoy en día se ha popularizado un nuevo enfoque en la construcción de sistemas lógicos industriales. En este nuevo enfoque, la toma de decisiones del sistema se lleva a cabo por instrucciones codificadas las cuales están almacenadas en un circuito de memoria y ejecutadas por un microcroprocesador , por lo que, a la hora de cambiar de aplicación será suficiente cambiar las instrucciones codificadas, haciendo que estos sistemas sean más flexibles. PRE-REQUISITOS Para la comprensión adecuada del contenido de Microprocesadores, se requiere los conocimientos previos de: Electrónica básica: semiconductores, transistores, elementos de visualización (LEDs, Displays, etc.). Electrónica Digital: Sistemas de numeración, Circuitos Combinacionales y Secuenciales (Compuertas lógicas, Registros, etc.). Sistemas Análogo-Digitales : Amplificadores operacionales, memorias. Programación: Definiciones básicas, algoritmos y diagramas de flujo. OBJETIVOS Establecer los fundamentos necesarios para la comprensión adecuada del funcionamiento de la estructura de los sistemas basados en microprocesadores para el desarrollo de diversas aplicaciones, sean estas industriales o de comunicaciones. Al finalizar el estudio de este capítulo, el estudiante estará en capacidad de: Realizar un análisis comparativo entre los controladores tradiciones y los sistemas basados en microprocesadores. Describir correctamente la estructura física y funcional de un sistema basado en microprocesadores. Identificar con criterio fundamentado las diferentes partes que constituyen los sistemas basados en microprocesadores. Realizar un diseño correcto de un sistema básico basado en microprocesadores de 8 bits. Utilizar las instrucciones de Lenguaje Ensamblador, en la programación de un sistema básico de microprocesador de 8 bits, orientado al control de periféricos de señal digital.

Transcript of Sistemas Con Microprocesadores_cap1

Page 1: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 1

CAPITULO 1

SISTEMAS BASADOS EN MICROPROCESADORES

La ciencia es el arte del ensayo y el error, su producto más importante es la razón....

Los sistemas lógicos basados en transistores poseen las mismas ventajas que los circuitos electrónicos deestado sólido: son seguros, confiables, pequeños, rápidos y baratos. Desde el punto de vista del usuarioindustrial, su única falla es su difícil modificación con el cambio de aplicación. Hoy en día se ha popularizadoun nuevo enfoque en la construcción de sistemas lógicos industriales. En este nuevo enfoque, la toma dedecisiones del sistema se lleva a cabo por instrucciones codificadas las cuales están almacenadas en uncircuito de memoria y ejecutadas por un microcroprocesador, por lo que, a la hora de cambiar de aplicaciónserá suficiente cambiar las instrucciones codificadas, haciendo que estos sistemas sean más flexibles.

PRE-REQUISITOS

Para la comprensión adecuada del contenido de Microprocesadores, se requiere los conocimientos previosde:

Electrónica básica: semiconductores, transistores, elementos de visualización (LEDs, Displays,etc.).

Electrónica Digital: Sistemas de numeración, Circuitos Combinacionales y Secuenciales(Compuertas lógicas, Registros, etc.).

Sistemas Análogo-Digitales: Amplificadores operacionales, memorias.

Programación: Definiciones básicas, algoritmos y diagramas de flujo.

OBJETIVOS

Establecer los fundamentos necesarios para la comprensión adecuada del funcionamiento de la estructurade los sistemas basados en microprocesadores para el desarrollo de diversas aplicaciones, sean estasindustriales o de comunicaciones.

Al finalizar el estudio de este capítulo, el estudiante estará en capacidad de:

Realizar un análisis comparativo entre los controladores tradiciones y los sistemas basados enmicroprocesadores.

Describir correctamente la estructura física y funcional de un sistema basado enmicroprocesadores.

Identificar con criterio fundamentado las diferentes partes que constituyen los sistemas basadosen microprocesadores.

Realizar un diseño correcto de un sistema básico basado en microprocesadores de 8 bits. Utilizar las instrucciones de Lenguaje Ensamblador, en la programación de un sistema básico de

microprocesador de 8 bits, orientado al control de periféricos de señal digital.

Page 2: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 2

1.1 COMPONENTES DE BASE DE UN SISTEMA DE MICROPROCESADORES

1.1.1 INTRODUCCION

Con el avance tecnológico, los procesos de producción industriales han sufrido grandes cambios, por lo que quienesestamos involucrados con el tema, debemos estar permanentemente informados acerca de los nuevos productos,métodos de proceso, solución de fallas, sistemas, etc.

En la actualidad, la automatización es un área que está en permanente contacto con nosotros, por esta razón,debemos estar preparados y conocer el funcionamiento de dichos sistemas.

Encontramos sistemas basados enmicroprocesadores en la mayoría de productossean estos de uso doméstico (hornos demicroondas, estéreos, reproductores de CD’s,etc.), industrial (automotriz, textil, plástica,etc.), equipos de comunicación, de oficina,instrumentos de laboratorio, etc., por talrazón, es muy importante que cualquiertécnico en electrónica comprenda la manerade detectar los problemas en losmicroprocesadores.

Se dice que en la primera parte de la revolución industrial las máquinas reemplazaron los músculos, mientras queen la segunda, la actual, los microprocesadores y sus aplicaciones intentan reemplazar la POTENCIA DELCEREBRO; igualmente podemos afirmar que el computador digital es, junto al motor eléctrico, uno de los inventosdecisivos de la humanidad. Todos los sistemas tecnológicos modernos están compuestos por un método demovimiento y un sistema de control. El motor y el computador digital ocupan, en su orden, estos lugares.

Un microprocesador es un circuito electrónico programable que requiere de apoyo para su funcionamiento.

1.1.2 ROL Y ESTRUCTURA

Teniendo en cuenta que la palabra“sistema” sugiere un conjunto deelementos relacionados entre sí, pararealizar una función bien definida queninguno podría hacerlo por sí solo;podríamos decir que un sistema basadoen microprocesadores es un conjunto decomponentes (circuitos electrónicos)interconectados capaces de efectuarsobre la información proveniente delproceso, representada en forma binaria,operaciones aritméticas y lógicas, yrealizar la transferencia de datos con losdiferentes periféricos conectados alsistema. Bajo este aspecto tenemos:

Periféricos de entrada (Sensores o Captores) son quienes reciben la información de cambios físicos delproceso. Están representados por los sensores captores de señal de tipo digital o analógico: pulsadores,interruptores, contactos eléctricos, CAD, etc.

Evolución

Año

1968: Se sustituyen los relés con transistores

1973: Se incorpora el mP

1977: Aparecen mejoras enlenguaje de programación

1980: Aparecen los robots controladospor ordenador

1990: Aparece la comunicación en reden el control de procesos

2000: Los PLC’s van de la mano conlos microcontroladores

xxxx: Comunicaciones y controles con elementos mecánicosEvolución

Año

1968: Se sustituyen los relés con transistores

1973: Se incorpora el mP

1977: Aparecen mejoras enlenguaje de programación

1980: Aparecen los robots controladospor ordenador

1990: Aparece la comunicación en reden el control de procesos

2000: Los PLC’s van de la mano conlos microcontroladores

xxxx: Comunicaciones y controles con elementos mecánicos

Fig.1.1 Evolución de los controladores industriales

OPERADOR

SENSORES OCAPTORES ACTUADORES

EQUIPO A CONTROLAR OPROCESO INDUSTRIAL

UNIDAD DECONTROL

Elementos de programaci ón Información recibida

Informacionesdel sistema

Ordenes a serejecutadas

OPERADOR

SENSORES OCAPTORES ACTUADORES

EQUIPO A CONTROLAR OPROCESO INDUSTRIAL

UNIDAD DECONTROL

Elementos de programaci ón Información recibida

Informacionesdel sistema

Ordenes a serejecutadas

Fig. 1.2 Sistema de control de procesos

Page 3: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 3

La Unidad de control procesa la información recibida en base a un programa (secuencia lógica deinstrucciones) y entrega los resultados para ser ejecutados.

Periféricos de salida (Actuadores) que son los encargados de ejecutar las órdenes en función de los resultadosde la Unidad de Control. Están representados por: solenoides, relés, contactores, display’s, CDA, etc.

Existen dos soluciones para implementar un circuito digital que resuelva un determinado problema:a. Lógica cableada: Son circuitos diseñados exclusivamente para realizar una aplicación concreta,

es decir son muy rígidos, lo que significa que para una nueva aplicación se debe diseñar unnuevo circuito.

b. Lógica programada: Es un concepto más amplio que dio lugar a las máquinas universalesprogramadas. Se trata de máquinas potentes y flexibles capaces de realizar la mayoría de lasfunciones básicas necesarias para cualquier aplicación. Trabajan de forma secuencial ejecutandoprogresivamente las operaciones necesarias en base a un programa.

CARACTERÍSTICAS DEL SISTEMA CABLEADA PROGRAMABLE Mantenimiento Costo Adaptación de procesos Posibilidades de ampliación Interconexión y cableado exterior Estructuración en bloques independientes

MuchoBajoDifícilBajasMuchoDifícil

PocoAltoFácilAltasPocoFácil

El problema mayor que existe al realizarun sistema basado en microprocesadores,es aquel que se necesita personal expertopara su diseño y mantenimiento.

Como se dijo anteriormente, un sistemabasado en microprocesadores consta de unaserie de elementos para la entrada, salida,procesamiento, control y almacenamiento deinformación. Los enlaces entre estoselementos se establecen a través de caminosde señal, por ejemplo cables, que llevan otransmiten información digital entre unpunto y otro.

PROBLEMA PROGRAMADOR

ANALISIS

CONOCIMIENTOS

PROGRAMA SISTEMA mP SOLUCION

DATOS DEL PROBLEMA

PROBLEMA PROGRAMADOR

ANALISIS

CONOCIMIENTOS

PROGRAMA SISTEMA mP SOLUCION

DATOS DEL PROBLEMA

Fig. 1.3 Solución de un problema

UNIDAD DECONTROL

UNIDAD DECONTROL

ALUALU

UNIDAD DEENTRADA

UNIDAD DEENTRADA

UNIDAD DESALIDA

UNIDAD DESALIDA

MEMORIARAM

MEMORIARAM

MEMORIAROM

MEMORIAROM

Unidad E/S CPU o mP Unidad de memoria

UNIDAD DECONTROL

UNIDAD DECONTROL

ALUALU

UNIDAD DEENTRADA

UNIDAD DEENTRADA

UNIDAD DESALIDA

UNIDAD DESALIDA

MEMORIARAM

MEMORIARAM

MEMORIAROM

MEMORIAROM

Unidad E/S CPU o mP Unidad de memoria

Fig. 1.4 Estructura de un sistema de microprocesadores

Page 4: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 4

La función principal de un sistema basado en microprocesadores consta en el procesamiento de informaciónrecogida del exterior por medio de los periféricos de entrada y la transmisión de los resultados sea directamente alproceso, sea al operador, por medio de los periféricos de salida conectados al sistema. El procesamiento de lainformación de entrada se realiza en base a un programa escrito en la memoria del sistema, la misma que puedetener los resultados finales o intermedios. La comunicación entre el sistema y los periféricos se realiza por elconjunto de circuitos que constituyen el denominado Módulo de Entrada/Salida del sistema. En esta forma sedistinguen tres partes fundamentales: UNIDAD CENTRAL DE PROCESAMIENTO (CPU), BLOQUE DEMEMORIA y el MÓDULO DE ENTRADA/SALIDA, interconectados entre ellos por intermedio de los BUSES.

Como aplicación de lo expuesto hasta el momento, vamos a describir brevemente el principio general defuncionamiento de un control de temperatura de un horno con microprocesador, tipo On/Off. El diagrama prácticode conexión se muestra en la figura 5, mientras que el diagrama de bloques en la figura 6.

La temperatura deseada seajusta de la perilla que tieneuna escala marcada en gradoscentígrados. Esta lectura selleva a través de una interfacede entrada y se almacena enuna parte de la memoriaRAM.

Posteriormente, elmicroprocesador lee latemperatura actual por mediode un sensor apropiado ytambién, a través de unainterface, la convierte en unaseñal digital equivalente a losgrados leídos.

Este dato se almacena en una casilla o posición de memoria RAM. Estas dos operaciones están dirigidas por unprograma que, generalmente para este tipo de sistemas, está almacenado o grabado en la memoria ROM.

SISTEMA DE mPe INTERFACES

SISTEMA DE mPe INTERFACES

HORNO ELECTRICO

ELEMENTO CALEFACTOR

INT. DE SEGURIDAD

SEÑAL DE CONTROL

SEÑAL DEL SENSOR

SEÑAL DE SEGURIDAD

SEÑAL DEALARMA

SEÑAL DEREFERENCIA

SEÑAL DEENERGIZACION

PANEL DE CONTROL

0 6 5 ºCON

OFF

SISTEMA DE mPe INTERFACES

SISTEMA DE mPe INTERFACES

HORNO ELECTRICO

ELEMENTO CALEFACTOR

INT. DE SEGURIDAD

SEÑAL DE CONTROL

SEÑAL DEL SENSOR

SEÑAL DE SEGURIDAD

SEÑAL DEALARMA

SEÑAL DEREFERENCIA

SEÑAL DEENERGIZACION

PANEL DE CONTROL

0 6 5 ºCON

OFF

Fig. 1. 5 Esquema práctico de control de temperatura con microprocesador

SENSOR DE TEMP.(TERMISTOR,

TERMOCUPLA,RTD, etc)

SENSOR DE TEMP.(TERMISTOR,

TERMOCUPLA,RTD,etc)

INTERFACE DEENTRADA

(CONVERTIDOR A/D)

INTERFACE DEENTRADA

(CONVERTIDOR A/D)

SISTEMA DE mP(CPU, RAM, ROM, E/S)

SISTEMA DE mP(CPU, RAM, ROM, E/S)

INTERFACE DEENTRADA

(CONVERTIDOR A/D)

INTERFACE DEENTRADA

(CONVERTIDOR A/D)

SELECTOR DE TEMP(PERILLA GRADUADA

EN ºC)

SELECTOR DE TEMP(PERILLA GRADUADA

EN ºC)

INTERFACE DESALIDA

(TRANSISTOR,RELE, TRIAC, etc)

INTERFACE DESALIDA

(TRANSISTOR,RELE, TRIAC, etc)

ELEMENTOCALEFACTOR

ELEMENTOCALEFACTOR

IN IN

OUT

SENSOR DE TEMP.(TERMISTOR,

TERMOCUPLA,RTD, etc)

SENSOR DE TEMP.(TERMISTOR,

TERMOCUPLA,RTD,etc)

INTERFACE DEENTRADA

(CONVERTIDOR A/D)

INTERFACE DEENTRADA

(CONVERTIDOR A/D)

SISTEMA DE mP(CPU, RAM, ROM, E/S)

SISTEMA DE mP(CPU, RAM, ROM, E/S)

INTERFACE DEENTRADA

(CONVERTIDOR A/D)

INTERFACE DEENTRADA

(CONVERTIDOR A/D)

SELECTOR DE TEMP(PERILLA GRADUADA

EN ºC)

SELECTOR DE TEMP(PERILLA GRADUADA

EN ºC)

INTERFACE DESALIDA

(TRANSISTOR,RELE, TRIAC, etc)

INTERFACE DESALIDA

(TRANSISTOR,RELE, TRIAC, etc)

ELEMENTOCALEFACTOR

ELEMENTOCALEFACTOR

IN IN

OUT

Fig. 1.6 Diagrama de bloques

Page 5: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 5

Con estos dos datos se hace una operación lógica de comparación en la unidad Aritmético-Lógica de la CPU. Deacuerdo a los resultados y las instrucciones del programa, la CPU envía una señal a la interface de salida que activao desactiva un elemento calefactor o resistencia.

Si la temperatura a controlar es más baja de lo deseado, se envía un alto (1 lógico) por una línea del bus de datos yse enciende la resistencia. Si la temperatura está más alta de lo deseado, se deja la resistencia sin funcionarenviando un bajo (0 lógico) por la misma línea para que la resistencia no funcione. De esta manera la temperaturase irá ajustando hasta el valor marcado por la perilla.

La unidad de control del microprocesador enviará todas las señales propias a todas las demás unidades para querealicen las operaciones de lectura y accionamiento de los sensores y de la resistencia.

El objetivo del sistema es mantener la temperatura del horno dentro de un estrecho margen con respecto a latemperatura de referencia indicada mediante unos interruptores rotativos situados en el panel de control. Desde estepanel se realiza también el encendido y apagado general del horno.

Para evitar un consumo excesivo de potencia y proteger a los usuarios que se encuentren en las proximidades, lapuerta del horno debe permanecer cerrada en condiciones normales de funcionamiento. Por esta razón, al horno sele incorpora un conmutador de seguridad, el cual se activa cuando la puerta está completamente cerrada.

Si el conmutador de seguridad está desconectado, mientras el horno está funcionando, el microprocesadordesenergiza el elemento calefactor, enfriando el sistema. Además, bajo esta condición, el microprocesador activatambién una señal de alarma.

Las señales proporcionadas por los distintos dispositivos de entrada se leen y se comprueban periódicamente. Elprograma almacenado en la memoria decide lo que debe hacerse en cada momento y la información que debeenviar a los dispositivos de salida conectados al sistema.

En la siguiente figura, se detallan las partes de un sistema basado en microprocesador, las mismas que acontinuación las vamos a analizar.

1.1.2.1 UNIDAD CENTRAL DE PROCESAMIENTO (CPU)

Es mejor conocida como procesador central y se encarga del procesamiento de la información proveniente delexterior. Este bloque contiene los circuitos lógicos, aritméticos y de control que dirigen y coordinan las operacionesdel sistema y los dispositivos periféricos.

En esta unidad se distinguen: la Unidad de Control, la Unidad Aritmético-lógica y el bloque de Registros internos.En la práctica, la CPU se encuentra en forma de un circuito integrado llamado MICROPROCESADOR.

SalidaRAM ROM

CPUCPU

Bloque E/S

Entrada

Bloque dememoria

Periféricos deentrada

Periféricos deentrada

Periféricos desalida

Periféricos desalida

Bus de datos

Bus de direcciones

Bus de control

CLKSalidaRAM ROM

CPUCPU

Bloque E/S

Entrada

Bloque dememoria

Periféricos deentrada

Periféricos deentrada

Periféricos desalida

Periféricos desalida

Bus de datos

Bus de direcciones

Bus de control

CLK

Fig. 1.7 Partes de un sistema de microprocesador

Page 6: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 6

La Unidad de Control se encarga de la interpretación y ejecución de las instrucciones del programa.También genera las señales que son requeridas por la unidad Aritmética y otros componentes del sistemapara permitirle realizar la tarea encomendada. Nos indica el sentido de los datos (si entran o salen) o eldispositivo al que se accesa (memoria o dispositivo de E/S). Estas señales son enviadas a través de laslíneas llamadas buses.

Esta contiene circuitos lógicos y de temporización que generan las señales adecuadas necesarias paraejecutar cada instrucción en un programa. Esta unidad extrae una instrucción de la memoria enviando unadirección y un comando de lectura a la unidad de memoria. La instrucción almacenada en la posición dememoria se transfiere a ella para después ejecutarse.

La Unidad Aritmético-lógica se encarga de realizar las operaciones lógicas y aritméticas usando comobase la suma y la notación del complemento de dos. Estas operaciones (SUMA, RESTA,COMPLEMENTO DE DOS, AND, OR, NOT, XOR y la COMPARACIÓN) las realiza con datos de lamemoria, con datos de los registros internos o con datos de la unidad de entrada. El tipo de operación quese realizará, se determina por medio de señales de la unidad de control.

Conectados pormedio del businterno seencuentran losRegistros Internospara elalmacenamientotemporal de datos.Cabe mencionar quetodomicroprocesadortiene un registromuy importantellamadoACUMULADORel cual contiene elprimer operando deuna operación y elresultado de lamisma luego dehaberla ejecutado.

Procesa información binariaen base de un programa escritoen la memoria

CPU o mP

Ejecuta e interpreta las instrucciones.

Sincroniza el funcionamiento detodos los componentes del sistema

Ejecuta e interpreta las instrucciones.

Sincroniza el funcionamiento detodos los componentes del sistema

Ejecuta operaciones:Aritméticas: +, -, complemento a dos.Lógicas: and, or, not, xor, comparación.Además: desplazamiento, rotaci ón y traslado

de información digital

Ejecuta operaciones:Aritméticas: +, -, complemento a dos.Lógicas: and, or, not, xor, comparación.Además: desplazamiento, rotaci ón y traslado

de información digital

UNIDAD DE CONTROLUNIDAD DE CONTROL

UNIDAD ARITMETICO-LOGICAUNIDAD ARITMETICO -LOGICA

Memorias para almacenamiento temporalde datos necesarios para el desarrollo delas actividades del mP.

Memorias para almacenamiento temporalde datos necesarios para el desarrollo delas actividades del mP.

BLOQUE DE REGISTROSBLOQUE DE REGISTROS

Procesa información binariaen base de un programa escritoen la memoria

CPU o mP

Ejecuta e interpreta las instrucciones.

Sincroniza el funcionamiento detodos los componentes del sistema

Ejecuta e interpreta las instrucciones.

Sincroniza el funcionamiento detodos los componentes del sistema

Ejecuta operaciones:Aritméticas: +, -, complemento a dos.Lógicas: and, or, not, xor, comparación.Además: desplazamiento, rotaci ón y traslado

de información digital

Ejecuta operaciones:Aritméticas: +, -, complemento a dos.Lógicas: and, or, not, xor, comparación.Además: desplazamiento, rotaci ón y traslado

de información digital

UNIDAD DE CONTROLUNIDAD DE CONTROL

UNIDAD ARITMETICO-LOGICAUNIDAD ARITMETICO -LOGICA

Memorias para almacenamiento temporalde datos necesarios para el desarrollo delas actividades del mP.

Memorias para almacenamiento temporalde datos necesarios para el desarrollo delas actividades del mP.

BLOQUE DE REGISTROSBLOQUE DE REGISTROS

Fig. 1.8 Bloques de la CPU

REGISTROSDE PROPOSITO

GENERAL

REGISTROSDE PROPOSITO

GENERAL

SRSR

ACAC

ALUALU

PCPC

IRIR

BUSES INTERNOS

REGISTRO INTERMEDIODE DATOS

REGISTRO INTERMEDIODE DATOS

REGISTRO INTERMEDIODE DIRECCIONES

REGISTRO INTERMEDIODE DIRECCIONES

LOGICA DECONTROL

YTEMPORIZACION

LOGICA DECONTROL

YTEMPORIZACION

ACUMULADOR

REG. ESTADOSCONTADOR DE PROG.

REG. INSTRUCCIONES

BUS DEL SISTEMA HACIA LA MEMORIA PRINCIPAL Y DISPOSITIVOS DE E/S

BUS DE DATOS BUS DE DIRECCION BUS DE CONTROL

REGISTROSDE PROPOSITO

GENERAL

REGISTROSDE PROPOSITO

GENERAL

SRSR

ACAC

ALUALU

PCPC

IRIR

BUSES INTERNOS

REGISTRO INTERMEDIODE DATOS

REGISTRO INTERMEDIODE DATOS

REGISTRO INTERMEDIODE DIRECCIONES

REGISTRO INTERMEDIODE DIRECCIONES

LOGICA DECONTROL

YTEMPORIZACION

LOGICA DECONTROL

YTEMPORIZACION

ACUMULADOR

REG. ESTADOSCONTADOR DE PROG.

REG. INSTRUCCIONES

BUS DEL SISTEMA HACIA LA MEMORIA PRINCIPAL Y DISPOSITIVOS DE E/S

BUS DE DATOS BUS DE DIRECCION BUS DE CONTROL

Fig. 1.9 Estructura interna de la CPU

Page 7: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 7

Los registros tienen ciertas funciones específicas que cumplir dentro de la CPU, a saber:

Registro Contador de Programa (PC), es el que indica al microprocesador la dirección de memoriadonde se está ejecutando el programa. Cada vez que se lee una instrucción, el PC se incrementaautomáticamente para suministrar la dirección de la posición de memoria donde se encuentra la siguienteinstrucción o dato del programa.

Registro de instrucciones (IR). Cada vez que el microprocesador capta una instrucción, esta se almacenaen el registro IR, con el fin de proceder a su decodificación o interpretación y buscar en la ROM delmicroprograma el conjunto de microinstrucciones necesarios para su ejecución. Esta función la realiza uncircuito denominado decodificador de instrucciones.

El Registro Acumulador (Ac) es utilizado por muchas instrucciones como fuente o destino de datos. Enél, generalmente, se deposita el resultado de una operación.

El Registro de estado (SR) suministra, a través de sus bits (llamados banderas (flags)), informaciónrelativa a la ejecución de ciertas instrucciones como signo, sobreflujo, paridad, generación de acarreo,resultado negativo o cero, etc.

Mediante la verificación del estado de estas banderas se pueden realizar bifurcaciones en la secuencia delprograma.

Registros de propósito general. Son utilizados para almacenar direcciones de memoria, datos, resultadosintermedios y otros propósitos. El número y tipos de registros que posee un microprocesador es una partemuy importante en su arquitectura y su programación.

A continuación, como ejemplo, se presentan la organización interna de un microprocesador de 8 bits (INTEL8085A) y también su diagrama esquemático con sus respectivas señales.

Fig. 1.10 Organización interna del mP INTEL 8085A

Page 8: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 8

1.1.2.2 BLOQUE DE MEMORIA

La memoria se emplea para dos funciones básicas:

Almacenamiento de las instrucciones que constituyen el programa. Las instrucciones se codifican mediantesu Código de Operación (COP), formado por uno o varios Bytes.

Almacenamiento de los datos y variables del programa. Normalmente agrupados en paquetes de 8 bits(Byte), 16 bits (Word) o 32 bits (Long Word).

El bloque de memoria consta de una serie de registros que forman lasdenominadas posiciones de memoria las cuales guardan en formatemporal o definitiva una información. Una memoria tiene un númerodeterminado de registros (posiciones) y de igual forma cada posición dememoria tiene un número determinado de bits. A cada registro oposición de memoria se le asigna un número llamado dirección dememoria.

La operación de la memoria es controlada por la unidad de control, lacual indica una operación de lectura o escritura. Por medio de la Unidadde Control se puede acceder a una posición de memoria, la cualproporciona el código de dirección adecuado.

A continuación se detallan las principales características de la memoria de un sistema basado enmicroprocesadores:

Longitud de la palabra de datos representa el número de bits a los cuales se pueden tener acceso en una solaoperación (de lectura o escritura), es decir el número de bits que pueden ser escritos o leídos en una posición dememoria.

Capacidad de memoria representa el número de bits que pueden ser memorados. Considerando una palabrade 8 bits, la unidad de medida usual para la capacidad de memoria es el Kilobyte. La unidad 1KB representa210, es decir 1024 bytes. De esta forma tenemos los siguientes tipos de memoria: 1Kx1, 256Kx4, 2Kx8, lo cualnos permite la identificación directa de las posiciones de memoria, 1024, 256 y respectivamente 2048 ofrecidaspor el circuito y el número de bits de cada posición, 1, 4 y 8 respectivamente.

Tiempo de acceso representa el intervalo de tiempo entre el momento en el cual se da una orden de lectura delcontenido de una posición de memoria y el momento en el cual la palabra de la posición seleccionada se

01

N-2N-1

Nr. De bits

01

N-2N-1

Nr. De bits

Fig. 1.12 La memoria

MIC

RO

PR

OC

ESA

DO

R80

85

82

2

5

BUS DE DIRECCIONES

BUS DE DATOS/DIRECCIONES

CONTROL DE DIRRECCIONES

SELECCIÓN DE LECTURA

SELECCIÓN DE ESCRITURA

HABILITACION DE M-I/O

ESTADO DEL CICLO MAQUINA

PETICION DE DMACONFORMIDAD EN EL DMAPETICION DE ESPERA

BU

SD

EC

ON

TR

OL

ALIMENTACION

PUESTA A CERO

RELOJ

CONTROL DEINTERRUPCIONES

PUERTA DEE / S SERIE

MIC

RO

PR

OC

ESA

DO

R80

85

82

2

5

BUS DE DIRECCIONES

BUS DE DATOS/DIRECCIONES

CONTROL DE DIRRECCIONES

SELECCIÓN DE LECTURA

SELECCIÓN DE ESCRITURA

HABILITACION DE M-I/O

ESTADO DEL CICLO MAQUINA

PETICION DE DMACONFORMIDAD EN EL DMAPETICION DE ESPERA

BU

SD

EC

ON

TR

OL

ALIMENTACION

PUESTA A CERO

RELOJ

CONTROL DEINTERRUPCIONES

PUERTA DEE / S SERIE

Fig. 1.11 Diagrama esquemático del mP 8085A

Page 9: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 9

encuentra en el bus de datos. Los valores del tiempo de acceso para los circuitos usuales, realizados entecnología MOS, son del orden de nanosegundos, por ejemplo para una memoria INTEL es de 70ns.

El bloque de memoria está compuesto por dos tipos de memoria, a saber:

MEMORIA RAM que es aquella que guarda en forma temporal (mientras dure la alimentación con tensión alsistema) los datos. Este tipo de memoria permite leer y escribir datos en sus posiciones.

MEMORIA ROM destinada únicamente a la escritura de programas o datos que van a ser guardados en formadefinitiva.

Las Memorias RAM son de dos tipos:

o RAM ESTATICAS (SRAM) , cuyas características son:

Usa flip-flops.

Rápida.

Usa más espacio de silicio.

Consume mucha energía.

Generalmente celdas de 8 bits.

o RAM DINAMICAS (DRAM), cuyas características son:

Usa capacitores.

Requiere refresco.

Usa menos espacio de silicio.

Consume menos energía.

Generalmente celdas de 1 bit.

Las Memorias de tipo ROM son:

1. ROM con máscara

Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la fabricación del chip. El elevado costedel diseño de la máscara sólo hace aconsejable el empleo de los microprocesadores con este tipo de memoriacuando se precisan cantidades superiores a varios miles de unidades.

MODULO DE MEMORIAMODULO DE MEMORIA

MEMORIA LECTURA/ESCRITURA(ACCESO ALEATORIO)

MEMORIA LECTURA/ESCRITURA(ACCESO ALEATORIO)

MEMORIA DE VALOR FIJO(SOLO LECTURA)

MEMORIA DE VALOR FIJO(SOLO LECTURA)

RAM ESTATICAS(SRAM)

RAM ESTATICAS(SRAM)

RAM DINAMICAS(DRAM)

RAM DINAMICAS(DRAM)

PROMPROGRAMABLESPOR EL USUARIO

PROMPROGRAMABLESPOR EL USUARIO

ROMPROGRAMABLESPOR MASCARA

ROMPROGRAMABLESPOR MASCARA

ALMACENAMIENTOSECUNDARIO

ALMACENAMIENTOSECUNDARIO

PROMPROM EPROMEPROM OTPOTP EEPROMEEPROM FLASHFLASH

MODULO DE MEMORIAMODULO DE MEMORIA

MEMORIA LECTURA/ESCRITURA(ACCESO ALEATORIO)

MEMORIA LECTURA/ESCRITURA(ACCESO ALEATORIO)

MEMORIA DE VALOR FIJO(SOLO LECTURA)

MEMORIA DE VALOR FIJO(SOLO LECTURA)

RAM ESTATICAS(SRAM)

RAM ESTATICAS(SRAM)

RAM DINAMICAS(DRAM)

RAM DINAMICAS(DRAM)

PROMPROGRAMABLESPOR EL USUARIO

PROMPROGRAMABLESPOR EL USUARIO

ROMPROGRAMABLESPOR MASCARA

ROMPROGRAMABLESPOR MASCARA

ALMACENAMIENTOSECUNDARIO

ALMACENAMIENTOSECUNDARIO

PROMPROM EPROMEPROM OTPOTP EEPROMEEPROM FLASHFLASH

Fig. 1.13 Tipos de memorias

Page 10: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 10

2. OTP

El microprocesador contiene una memoria no volátil de sólo lectura “programable una sola vez” por el usuario.OTP (One Time Programmable). Es el usuario quien puede escribir el programa en el chip mediante un sencillograbador controlado por un programa desde un PC.

La versión OTP es recomendable cuando es muy corto el ciclo de diseño del producto, o bien, en la construcción deprototipos y series muy pequeñas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptaciónmediante fusibles para proteger el código contenido.

3. EPROM

Los sistemas de microprocesadores que disponen de memoria EPROM (Erasable Programmable Read OnlyMemory) pueden borrarse y grabarse muchas veces. La grabación se realiza, como en el caso de los OTP, con ungrabador gobernado desde un PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana decristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cápsulasson de material cerámico y son más caros que los microcontroladores con memoria OTP que están hechos conmaterial plástico.

4. EEPROM

Se trata de memorias de sólo lectura, programables y borrables eléctricamente EEPROM (Electrical ErasableProgrammable Read OnIy Memory). Tanto la programación como el borrado, se realizan eléctricamente desde elpropio grabador y bajo el control programado de un PC. Es muy cómoda y rápida la operación de grabado y la deborrado. No disponen de ventana de cristal en la superficie.

Los sistemas de microprocesadores dotados de memoria EEPROM una vez instalados en el circuito, puedengrabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan “grabadores encircuito” que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa detrabajo.

El número de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo que no es recomendableuna reprogramación continua. Son muy idóneos para la enseñanza y la Ingeniería de diseño.

Se va extendiendo en los fabricantes la tendencia de incluir una pequeña zona de memoria EEPROM en loscircuitos programables para guardar y modificar cómodamente una serie de parámetros que adecuan el dispositivoa las condiciones del entorno.

Este tipo de memoria es relativamente lenta.

5. FLASH

Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM yuna RAM pero consume menos y es más pequeña.

A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es más rápida y de mayor densidad quela EEPROM.

La alternativa FLASH está recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria deprograma no volátil. Es más veloz y tolera más ciclos de escritura/borrado.

Las memorias EEPROM y FLASH son muy útiles al permitir que los sistemas de microprocesadores que lasincorporan puedan ser reprogramados “en circuito”, es decir, sin tener que sacar el circuito integrado de la tarjeta.Así, un dispositivo con este tipo de memoria incorporado al control del motor de un automóvil permite que puedamodificarse el programa durante la rutina de mantenimiento periódico, compensando los desgastes y otros factorestales como la compresión, la instalación de nuevas piezas, etc. La reprogramación de la memoria puede convertirseen una labor rutinaria dentro de la puesta a punto.

Page 11: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 11

Estas memorias son llamadas también de memorias de almacenamiento primario. Otro tipo de memorias son lasde almacenamiento secundario que generalmente almacenan gran cantidad de información entre ellas podemosmencionar: discos duros, discos flexibles, discos ópticos, etc.

Las memorias son circuitos integrados que tienen las siguientes señales típicas:

Bus de Datos: Do-Dn, por él entran y salen los datos a la memoria semiconductora.

Bus de Direcciones: Ao-An, por aquí se realiza el direccionamiento de las posiciones.

OE (Output Enable): Terminal de lectura, habilita la memoria para que en la salida este lo que voy a leer.

WE (Write Enable): Terminal que permite la escritura en la memoria.

CS (Chip Select): Terminal que permite la activación o desactivación de la memoria.

Memoria de Datos (RAM) permite la escritura y la lectura,mediante WE y OE respectivamente, así como su selecciónmediante el CS, mientras que la Memoria de programa (ROM)permite solo la lectura y la habilitación, mediante OE y CS.

El acceso a la memoria se puede realizar en formacombinada, conforme se muestra en la figura 1.15:

Aquí la memoria de datos y la de programase selecciona de manera combinada a la horade ubicar las lecturas se anidan el PSEN delmicro que habilita lectura en la memoria dedatos y el Rd del micro que habilita lecturaen la memoria de datos a un and lógico paraque se seleccione cada una a su momento, setrabaja por la tabla de la verdad del andlógico.

A continuación presentamos como ejemplostres circuitos de memoria, a saber:RAM6116, EPROM 2716 y EEPROM2816.

MEMORIA RAM 6116

El dispositivo 6116 es una memoria de acceso aleatorio (RAM), cuenta con una capacidad de 2048 palabras de 8bits cada una, es una memoria estática de alta velocidad, fabricada con la tecnología CMOS, opera con una fuentede alimentación de +5.0V y está dispuesta en una pastilla de 24 terminales.

Las principales características de esta memoria son:

Organización de la memoria: 2048 X 8 Alta velocidad: tiempo de acceso 150 nseg.

Fig. 1.14 Señales de una memoria

Fig. 1.15 Acceso a la memoria de manera combinada

Page 12: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 12

Baja potencia en estado inactivo: 10 uW Baja potencia en estado activo: 160 mW RAM completamente estática: No requiere reloj

para su funcionamiento Temperatura de operación: 0.75 grados centígrados Temperatura de almacenamiento: De -55 a +125

grados centígrados. Potencia de disipación: 1 Watts Todas sus entradas y salidas son compatibles

directamente con la tecnología TTL Es directamente compatible con las memorias de

16K estándar, tipo RAM 6132

La descripción de las terminales se detalla a continuación:

A0-A10: Líneas de direcciones E/S0-E/S7: Entrada y Salida de datos CS Habilitador de la pastilla OE Habilitador de salidas WE Habilitador para la escritura Vcc Voltaje de alimentación +5.0 Volts GND Terminal de tierra 0.0 Volts

Siendo este circuito una memoria RAM puede entonces, realizar las operaciones de lectura y escritura.

OPERACIÓN DE LECTURA

Un dato será leído del dispositivo de almacenamiento RAM 6116, mediante la aplicación de un nivel alto en laterminal (#WE), un nivel bajo en (#CS), y estando en nivel bajo la terminal (#OE), con estas conexiones se disponeque se pueda leer la memoria RAM 6116, si se coloca un nivel alto en la terminales (#OE) y/o (#CS) las líneas deE/S y/o la pastilla 6116 se ponen en estado de alta impedancia, respectivamente.

(#CS) posee la función de controlar la activación de la pastilla, la cual puede ser usada por un sistema conmicroprocesadores para la selección del dispositivo.

La terminal (#OE) habilita las salidas, o las pone en estado de alta impedancia, la cual puede ser habilitada cada vezque el microprocesador requiera leer la memoria.

OPERACIÓN DE ESCRITURA

Un dato es escrito en el dispositivo RAM 6116 mediante la aplicación de un nivel bajo en la terminal (#WE), unnivel bajo en (#CS), y un nivel alto o bajo en la terminal (#OE).

La terminal (#WE) al ser activa provoca que las terminales E/S de la memoria RAM 6116 se habiliten para aceptarla información, en estas condiciones la terminal (#OE) posee la opción de ser colocada en estado de alto bajo, pararealizar así la operación de escritura.

Nota: el símbolo # sustituye la raya superior de la señal y denota negación.

MEMORIA EPROM 2716

La EPROM 2716 contiene características borrables y es eléctricamente reprogramable, es de alta velocidad yproporciona acceso a 16 Kbits de información, está diseñada para aplicaciones en donde son importantes loscambios rápidos en la tensión.

Fig. 1.16 Patillaje de la RAM6116

Page 13: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 13

La EPROM 2716 está empacada en un circuito integrado de 24 terminales, usa una placa transparente en su dorso,lo cual nos permite exponer el chip a rayos ultravioleta ópticos, que se utilizan para borrar la memoria, se le puededepositar una nueva información aún después de estar borrada siguiendo los procedimientos de programaciónadecuados, esta EPROM 2716 está constituida con tecnología de alta densidad con compuertas CMOS de canal N.

Las principales características son:

Tiempo de acceso menor que 250 nseg. Bajo consumo de potencia

Disipación en estado activo: 525 mW máx.Disipación en estado inactivo: 132 mW máx.

Fuente de alimentación de +5 VoltsRango de temperatura de -40 hasta +85 grados centígrados Características estáticas (no requiere refrescamiento por medio del reloj) Entradas y salidas compatibles con la tecnología TTL Capacidad de colocarse en tercer estado.

Las terminales de esta memoria son:

A0-A10: Lineas de direccionesD0-D7: Salida de datos #CE Habilitador de la pastilla #OE Habilitador de salidasPGM Condición de programaciónVcc Voltaje de alimentación +5.0 VoltsVss Terminal de tierra 0.0 VoltsVpp Voltaje de programaciónNC No conexión

OPERACIÓN DE LECTURA

Para leer la memoria se deben hacer las conexiones de las terminales que a continuación se especifican, la terminalVpp se conecta a Vcc para inhibir con esto la programación, las entradas (#OE) y (#CE) se colocan a tierra y conestas simples conexiones se puede leer la memoria, los datos estarán sobre las terminales D1 - D7, la informaciónse puede visualizar con LED'S quienes indican el dato direccionado por las terminales A0 - A10, cuya capacidad esde (2Kx8), 2048 localidades de 8 bits cada una.

MODO DE PROGRAMACIÓN

Para programar la memoria se requieren las siguientes conexiones:

En la terminal 18 se debe depositar un pulso de Tw = 45 mseg aproximadamente, dicho pulso deberá estar dado porun monoestable.

La terminal 20 que es el habilitador de salidas se conecta a la polarización de +5.0V (la alimentación).

La terminal 21, voltaje de programación se conecta a un voltaje fijo de +25.0V, la memoria normalmente cuandono está grabada contiene "unos", por lo tanto en la operación de grabación se procede a depositar ceros.

PRECAUCIONES

Excediendo de los 25 Volts en la terminal Vpp (pin 21) se dañará la EPROM 2716 y después todos los bitsquedaran en el estado uno lógico.

Fig. 1.17 EPROM2716

Page 14: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 14

La información debe ser introducida usando el modo de programación, depositando solamente ceros lógicos en lalocalidad seleccionada y con la combinación deseada, aunque ambos unos y ceros pueden ser presentados comodatos de entrada en la palabra de información a grabar.

La única manera de cambiar los ceros por los unos es borrando totalmente la memoria EPROM 2716 a través deuna intensa luz ultravioleta.

La EPROM 2716 está en la modalidad de programación cuando la fuente de alimentación de Vpp está en +25 Voltsy (#OE) en estado lógico alto.

Se requiere un capacitor de 0.1 uF dispuesto entre +Vcc y GND para suprimir los estados transitorios de tensiónque puedan dañar al dispositivo EPROM 2716.

La información debe ser programada en 8 bits en paralelo dispuestos en las terminales de salida del chip, losniveles deben ser compatibles con la tecnología TTL.

Cuando la dirección y el programa son estables, se debe hacer presente el pulso activo de programación durante 45mseg.

Se puede programar cualquier localidad en cualquier tiempo en forma secuencial o con acceso aleatorio.

El pulso de programación debe tener una duración máxima de 55 mseg.

La EPROM 2716 no debe ser programada con una señal de CD en la terminal de programación (CE)'.

Se pueden programar varias EPROM 2716 en paralelo con la misma información, debido a la simplicidad de losrequerimientos de programación.

MEMORIA EEPROM 2816

El circuito integrado EEPROM 2816 es una memoria reprogramable y borrable que contiene 2048 localidades dememoria con 8 bits cada una, (2K X 8) y opera con una sola fuente de alimentación de + 5 Volts, con tiempossimilares a los de una RAM estática en modo de lectura, tiene dos modos de programación una de +5 Volts y otrade alto voltaje.

El modo de programación de +5 Volts se inicia con un pulso de escritura con una transición alto/bajo de nivel TTLcon una duración de 200 nseg, el circuito automáticamente borra el byte seleccionado antes de escribir otro datonuevo, se completa un ciclo de borrado/escritura en un tiempo máximo de 10 mseg, el tiempo de acceso a lectura esde 250 nseg, todas sus salidas son compatibles con la tecnología TTL.

Las características de esta memoria son: Organización de la memoria 2048 X8 Tipo de funcionamiento; chip estático Tiempos de acceso a lectura; 250 nseg. Capacidad de corrección para un solo bit Tiempo de escritura max, 10 mseg.Compatible con la arquitectura de microprocesadores Potencia de disipación

a) Estado activo; 610 mWb) Estado inactivo: 295 mW

A continuación se describen las terminales de la memoria:A0 - A10 Líneas de direccionesE/S0 E/S7 Entrada y salida de datos #CE Habilitador del chip Fig. 1.18 EEPROM2816

Page 15: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 15

#OE Habilitador de las salidasVpp Voltaje de programaciónVcc + 5 VoltsVss 0.0 Volts tierra.

OPERACIÓN DE LECTURA

Un dato es leído de la memoria EEPROM 2816 mediante la aplicación de un nivel alto en Vpp, (voltaje deprogramación conectada a Vcc), un nivel bajo en (#CE) y un nivel bajo en (#OE), con estas condiciones se obtieneinformación de terminales E/S estarán en estado de alta impedancia siempre y cuando (#OE) y/o (#CE) están en unnivel alto.

La función de la terminal (#CE) es la de poder controlar la activación del chip, puede ser usado por un sistema conmicroprocesadores para la selección del dispositivo.

La terminal que habilita las salidas, o las pone en estado de alta impedancia, si se tiene en cuenta que las entradasson estables el tiempo de acceso es igual al tiempo de retardo de la terminal (#CE), los datos están disponiblesdespués de un tiempo de retardo de la terminal (#OE).

OPERACIÓN DE ESCRITURA (modo de programación de + 5 Volts)

El ciclo de escritura es iniciado por la aplicación de un nivel bajo en Vpp, 200 nseg, mientras que (#OE) debe estaren estado alto y (#CE) en estado bajo, la dirección es doblemente almacenada a la caída y a la salida de Vpp, unavez realizado esto la arquitectura interna de la memoria borrara automáticamente el dato seleccionado y procederá aescribir el nuevo dato en un tiempo de l0 mseg, mientras tanto las terminales E/S o E/S; permanecerán en estado dealta impedancia durante un tiempo igual al de la operación del proceso de escritura,

La EEPROM 2816 se escribe y se borra eléctricamente utilizando un voltaje de +5 Volts para grabar y leer, lacondición de grabado es "borrado antes de escribir", esta memoria es del tipo ROM reprogramable, en caso de quese desconecte el circuito de alimentación de la energía la información no se pierde, se puede usar el modo de "standby" para que la información no se borre.

La 2816 se borra y se programa eléctricamente y no ópticamente como lo requieren normalmente las EPROMS, enestas, se borra la información con luz ultravioleta, el dispositivo EEPROM 2816 ofrece flexibilidad para borrar unsolo bit o todo el chip si así se desea.

Para escribir en una localidad en particular, el bit existente se borra antes de escribir el nuevo bit, los niveles de lasterminales E/S deben ser compatibles con la tecnología TTL en cuanto a sus equivalentes de niveles lógicosdeseados como niveles de grabación, la programación debe durar mínimo 9 msg y un máximo de 15 mseg.

OPERACIÓN DE BORRADO

Si se desean borrar todas las direcciones de la EEPROM 2816, el dispositivo ofrece una función para borradoinmediato de todas las localidades.

1.1.2.3 BUSES

Los tres componentes principales de un sistema basado en microprocesadores (CPU, Bloque de memoria y módulode E/S) están interconectados entre ellos por cables eléctricos denominados buses del sistema.

Un bus representa una reunión de líneas las cuales realizan la transferencia uni o bidireccional de la información.La presencia de un determinado bit (0 o 1) en una línea del bus está marcada de un determinado valor del potencialeléctrico en esa línea. Por ejemplo, un potencial entre 2.4-5V marca el bit “1” y un potencia 0-0.4V el bit “0”.

Page 16: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 16

En función del tipo de información que se transportapor las líneas del bus, este puede ser: BUS DE DATOS,BUS DE DIRECCIONES Y BUS DE CONTROL. Acontinuación presentamos algunas característicasprincipales:

Bus de datos está constituido por líneasbidireccionales. El número N de líneas del bus dedatos es en general, igual con la longitud de lapalabra de datos del microprocesador. Por el busde datos de transfiere la información binaria entreel microprocesador y los periféricos o entre elmicroprocesador y la memoria, o directamenteentre el periférico y la memoria, en caso de existirdispositivos de acceso directo a la memoria. Por lo

tanto éste bus determina el tipo de procesador ( 4, 8 16 o 32 bits) y el número de periféricos que se puedenconectar al microprocesador (por ejemplo para un microprocesador de 8 bits se conectarán 27 periféricos). Estebus es tri-state.

Bus de direcciones está formado por líneas unidireccionales. Es utilizado para la transferencia de informaciónnecesaria para la selección de una determinada posición de memoria o de un puerto del módulo de E/S. Estainformación representa la dirección de una posición de memoria o de un puerto de entrada o salida (del módulode E/S), seleccionados para la realización de la transferencia de datos por bus respectivo. El bus de direccionesdetermina la capacidad de memoria del sistema.

Bus de control está formado por líneas, en general,unidireccionales. En este bus cada línea tiene unsignificado y denominación distinta. El bus decontrol contiene la información que envía elmicroprocesador a los elementos del sistema o bienrecibe de estos con el propósito de sincronizar suoperación con la operación de la circuitería externa.El número de líneas del bus de control es variable ydepende dl microprocesador particular utilizado.

Un conjunto típico de señales de control disponibleen la mayoría de microprocesadores disponibles, semuestran en la siguiente figura.

CLK IN (entrada de reloj) es usado por el microprocesador para generar pulsos de reloj y producirsecuencias de tiempo y control para las funciones internas.

CLK OUT (salida de reloj). Los pulsos de reloj de este Terminal son usados por los módulos externos parasincronizar sus operaciones con las operaciones del microprocesador.

RESET IN (petición de reset) se usa para inicializar el microprocesador. RESET OUT (petición de reset) informa a la circuitería externa que el microprocesador se encuentra en

estado de reset. INTERRUPT IN (petición de interrupción). Se utiliza para interrumpir la operación normal del

microprocesador, obligándolo a suspender la ejecución del programa corriente y transferir el control a unasubrutina. La señal de interrupción proviene generalmente de una unidad de E/S.

INTERRUPT OUT (reconocimiento de interrupción). Informa a la circuitería externa que la interrupciónha sido atendida. Una vez ejecutada la interrupción, el microprocesador retorna al programa previo.

HOLD (petición e bus). Se utiliza para suspender la operación del microprocesador y llevarlo a un estadollamado hold en el cual todos los buses quedan en alta impedancia.

HOLDA (garantía de bus). Informa que la petición de hold a terminado. Las líneas READ y WRITE informan al componente seleccionado por el bus de direcciones la dirección

de transferencia esperada en el bus de datos.

MIC

RO

PR

OC

ES

AD

OR

BUS DEDIRECCIONES

BUS DEDATOS

ENTRADASDE CONTROL

SALIDASDE CONTROL

FUENTE DEALIMENTACION

BUS DECONTROL

MIC

RO

PR

OC

ES

AD

OR

BUS DEDIRECCIONES

BUS DEDATOS

ENTRADASDE CONTROL

SALIDASDE CONTROL

FUENTE DEALIMENTACION

BUS DECONTROL

Fig. 1.19 Buses de un sistema conmicroprocesador

MIC

RO

PR

OC

ES

AD

OR

CLK OUT

RESET OUT

INTP OUT

HLDA

WRITE

READ

CLK IN

RESET IN

INTP IN

HOLD

MIC

RO

PR

OC

ES

AD

OR

CLK OUT

RESET OUT

INTP OUT

HLDA

WRITE

READ

CLK IN

RESET IN

INTP IN

HOLD

Fig. 1.20 Señales típicas de control

Page 17: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 17

1.1.2.4 CIRCUITO DE RELOJ Y RESET

Todo microcomputador necesita de un generador de pulsos de reloj para controlar el contador de programa ysincronizar sus funciones internas. En la mayoría de microprocesadores este reloj viene incorporado, pudiéndosecontrolar externamente su frecuencia mediante un cristal de cuarzo, una red RC conectados a los pines respectivos.

En la figura 21 se ilustran las posibilidades del control de la frecuencia. Cuando la estabilidad de la frecuencia noes de importancia, se prefiere una red RC, en los otros casos, por ejemplo para las comunicaciones seriales oparalelas es necesaria la utilización de un cristal.

El microprocesador puedeser fácilmente conectado odesconectado por hardwaremanejando adecuadamentesu entrada de reset. Cuandoesta línea recibe un bajo elmicroprocesador ingresa alestado de reset. Bajo estacondición, el contador deprograma se carga con cerosy se borran los flip-flopshabilitadores de interrupcióny de reconocimiento de hold.

Al mismo tiempo, los buses de datos y direcciones se sitúanen el estado de alta impedancia. Debido a su naturalezaasíncrona, la señal de reset puede afectar el contenido de losregistros internos de la CPU, incluido el de estados obanderas.

1.1.2.5 MODULO DE ENTRADA/SALIDA. TECNICAS DE INTERFACE

Para que el sistema basado enmicroprocesadores pueda ser utilizado enforma efectiva, el sistema debe estar de unbloque de circuitos lógicos que permitan laintroducción de datos, visualización deresultados y eventual la modificación delprograma, es decir un dispositivo decomunicación con el operador, este bloquese denomina MODULO DE E/S y estádestinado a asegurar la transferencia deinformación, representada en binario, entreel sistema y diversos periféricosconectados a éste (teclados, pulsadores,interruptores, contactos eléctricos, LEDs,ASS, CAD, CDA, etc.).

mP+

Memoria

mP+

Memoria

PERIFERICOS• LED’s• DISPLAY’s• ZUMBADORES• INTERRUPTORES• SENSORES

ANALOGICOS• TECLADOS• Etc.

PERIFERICOS• LED’s• DISPLAY’s• ZUMBADORES• INTERRUPTORES• SENSORES

ANALOGICOS• TECLADOS• Etc.

ENTRADAENTRADA

ESTADOESTADO

SALIDASALIDA

mP+

Memoria

mP+

Memoria

PERIFERICOS• LED’s• DISPLAY’s• ZUMBADORES• INTERRUPTORES• SENSORES

ANALOGICOS• TECLADOS• Etc.

PERIFERICOS• LED’s• DISPLAY’s• ZUMBADORES• INTERRUPTORES• SENSORES

ANALOGICOS• TECLADOS• Etc.

ENTRADAENTRADA

ESTADOESTADO

SALIDASALIDA

Fig. 1.23 Módulos de entrada/salida

a. Cristal de cuarzo b. Red RC (3MHz) c. Reloj externo (1 a 6 MHz)a. Cristal de cuarzo b. Red RC (3MHz) c. Reloj externo (1 a 6 MHz)

Fig. 1.21 Circuitos de reloj

Fig. 1.22 Circuito de Reset

Page 18: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 18

El módulo de E/S tiene una estructura diferente, en función de la aplicación del sistema basado enmicroprocesadores, lo cual implica la proyección de unos componentes de este módulo, en función de losperiféricos que van a ser conectados.

Un puerto puede definirse como un dispositivo a través del cual el microprocesador intercambia información conun dispositivo externo previamente seleccionado. En otras palabras un puerto E/S es un elemento de interconexióno interface entre un microprocesador y un periférico. Los puertos también se denominan adaptadores periféricos deinterface.

La estructura de un puerto puede ser extremadamente simple o altamente compleja, dependiendo de cadaaplicación. En algunos casos solo se requieren de un flip-flop, buffer o registro tri-state, mientras que en otros deberecurrirse a circuitos de alta escala (LSI) muy especializados, como es el caso del 8212, 8216, 8255, 8155, etc., quese analizarán más adelante.

Las funciones que debe cumplir un puerto o dispositivo de interface E/S se pueden resumir en las siguientes: Identificar direcciones con el fin de establecer la conexión con los buses de datos y de control del mismo

sistema cuando se selecciona un dispositivo periférico de E/S específico. Interpretar órdenes. Generalmente, las

órdenes enviadas por el microprocesador alpuerto E/S se reducen a señales de lectura yescritura. Estas señales pueden venir yacodificadas o necesitar una codificaciónprevia.

Adaptar físicamente el microprocesador a losrequisitos del periférico. Esto incluye lautilización de manejadores (drivers) de líneasde transmisión, eliminadores de ruido,optoacopladores, conversores de formato seriea paralelo, conversores de señal, etc.

Temporizar la transferencia de informacióncon el fin de garantizar que el flujo de datosentre el microprocesador y el periférico eserealice de una forma ordenada y eficiente.

El direccionamiento de un puerto (activación de lalínea CS o CE) se realiza a través del mismo bus dedirecciones, sea por medio de un decodificador o uncircuito lógico de selección (RLS).

La generación de la señal de selección de un puerto por el decodificador o de la RLS, debe producirse solamentecuando en el bus de direcciones se pone una palabra binaria, específica de cada puerto, llamada dirección de puertoy de ha activado además la señal ALE, que marca el acceso al puerto de E/S.

Veamos, como ejemplos, algunas realizaciones prácticas depuertos de E/S de algunos periféricos.

PUERTO DE SALIDA CON LED

En la figura 1.25 se muestra un ejemplo sencillo de puertode salida con flip-flop D, cuya función es transferir el estadodel bit de datos D0 a un LED que actúa como dispositivoperiférico. Esto sucede cuando la línea de dirección A15 esalta y la señal de escritura (WR) es baja.

Después de habilitado, el flip-flop retiene la informaciónpreviamente almacenada mientras el microprocesador sededica a otras tareas.

0 1 2 3

S1 S0 EN

DECODIFICADOR

A0A1

ALE

D0-D7

MIC

RO

PR

OC

ES

AD

OR

BUS DE DATOS

CS

CS

CSO

CS1

PS

PE

0 1 2 3

S1 S0 EN

DECODIFICADOR

A0A1

ALE

D0-D7

MIC

RO

PR

OC

ES

AD

OR

BUS DE DATOS

CS

CS

CSO

CS1

PS

PE

Fig. 1.24 Direccionamiento de un puerto

QD

WR

A15

A0 -A14

mPD0

D1-D7

CLK

MICROPROCESADOR PUERTO DE SALIDA PERIFERICO

LINEA DE SELECCION

LINEA DE ESCRITURA

QD

WR

A15

A0 -A14

mPD0

D1-D7

CLK

MICROPROCESADOR PUERTO DE SALIDA PERIFERICO

LINEA DE SELECCION

LINEA DE ESCRITURA

Fig. 1.25 Puerto de salida con flip-flop

Page 19: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 19

PUERTO DE ENTRADA DE INTERRUPTOR

En la figura 1.26, se muestra en cambio un puerto deentrada con flip-flop. En este caso, el dispositivoperiférico es un interruptor y su estado (alto o bajo)se transfiere a la línea de datos D0 cuando la línea dedireccionameinto A15 es alta y la línea de control delectura (RD) es baja.

Una vez que el microprocesador acepta el bit D0presente en el bus de datos, lo transfiere alacumulador y situa la salida del puerto de entrada enestado de alta impedancia con el fin de de que nointerfiera con otras transferencias de datos.

PUERTO DE SALIDA CON REGISTRO DE DATOS

En la siguiente figura se muestra un puertode salida con registro tipo latch. El circuitotransfiere el patrón de 8 bits presente en elbus de datos al display periférico de sietesegmentos cuando la línea de dirección A15es alta y la línea de escritura (WR) es baja.

Una forma más elegante de realizar una interface es utilizando los circuitos especializados como son: los puertos8212, 8216, los puertos E/S programables 8155 y 8255, el controlador USART 8251 (para el mP8085A), PIA6821(para el Motorola 6800) y ACIA y Z80-PIO (para sistemas con Z80).

Dentro de las principales características de estos circuitos especializados podemos mencionar: Son fáciles de conectar con los buses del sistema puesto que disponen de líneas de adaptación directa con

las salidas del respectivo microprocesador. Son circuitos de E/S programables. Esta característica permite adaptarlos fácilmente a las condiciones de la

circuitería externa utilizando únicamente comandos de programación. Algunos módulos de E/S poseen cierta capacidad de decisión propia, independientemente del procesador.

Esta circunstancia libera del microprocesador de la ejecución d ciertas tareas rutinarias y de control, lascuales delega en el dispositivo de interface.

Por la función que realizan, los puertos de interface programables se pueden dividir en tres categorías: interfacesdedicadas, interfaces de propósito general e interfaces universales.

Las interfaces dedicadas se especializan en una función específica, por ejemplo controlar interrupciones,temporizar eventos, controlar periféricos, etc. Como ejemplos podemos mencionar el controlador programable deinterrupciones 8259, controlador programable de acceso directo de memoria (DMA) 8257, etc.

Las interfaces de propósito general, como su nombre lo indica, son más universales y pueden adaptarse a una granvariedad de aplicaciones. Como ejemplos tenemos: el PPI 8255, controlador USART 8251.

D

H

L

Q

D0

D1 -D7

CLK

LINEA DE SELECCION

LINEA DE LECTURA

A15

A0-A14

RD

MICROPROCESADOR

PUERTO DE ENTRADA

PERIFERICO

D

H

L

Q

D0

D1 -D7

CLK

LINEA DE SELECCION

LINEA DE LECTURA

A15

A0-A14

RD

MICROPROCESADOR

PUERTO DE ENTRADA

PERIFERICO

Fig. 1.26 Puerto de entrada con flip-flop

Q1Q2Q3Q4Q5Q6Q7Q8

abcdefgdp

A15

WR

A0-A14 D0-D7

LINEA DE ESCRITURA

LINEA DE SELECCION

CS

LINEA DE HABILITACION

MICROPROCESADOR PUERTO DE SALIDA DISPOSITIVO PERIFERICO

Q1Q2Q3Q4Q5Q6Q7Q8

abcdefgdp

A15

WR

A0-A14 D0-D7

LINEA DE ESCRITURA

LINEA DE SELECCION

CS

LINEA DE HABILITACION

MICROPROCESADOR PUERTO DE SALIDA DISPOSITIVO PERIFERICO

Fig. 1.27 Puerto de salida con registro tipo latch

Page 20: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 20

Una interface universal es un microcomputador en un chip que realiza tareas de E/S altamente complejas bajo elcontrol de un microprocesador maestro. Como ejemplo podemos mencionar la interface universal de periféricosUPI 8741 de Intel.

Dentro de los periféricos más empleados, podemos mencionar los de la siguiente tabla:

TIPO DISPOSITIVOENTRADA Interruptores ON/OFF

TecladosSensores y transductores de entrada

SALIDA Visualizadores (Led, LCD, etc)Pantallas TRCImpresoras (láser, de jet de tinta, de impacto,etc)Motores eléctricos y actuadotes

ENTRADA/SALIDA Terminales interactivosMemorias secundariasUnidades de disco magnéticoEnlaces de comunicacionesLíneas telefónicas

De acuerdo a la velocidad de operación, los dispositivos de E/S se pueden agrupar en tres categorías:lentos, de velocidad media y de alta velocidad. Además según la señal que transmiten a los periféricostenemos: digitales (todo o nada) y analógicos (sensores de temperatura, caudal, presión, etc.). Cada unade estas categorías presenta sus propias características de interface.

• PERIFERICOS LENTOS: Su estado cambia una vez por segundo y requieren varios milisegundospara estabilizarse en su nuevo estado. En esta categoría tenemos los displays luminosos, relés,microinterruptores, sensores de posición, contactos, botoneras, etc.

La interface de estos dispositivos esrelativamente fácil y necesitan muypocas señales de control. El únicoproblema que aparece en este casoes el proceso transitorio en elmomento de cambio de estado (porejemplo el interruptor al cerrarseproduce rebotes).

Por multiplexaje es posible controlarvarios periféricos lentos con unmismo puerto.

• PERIFERICOS DE VELOCIDAD MEDIA: Son aquellos que transfieren datos desde 1bps a10000 bps. Dentro de esta categoría se incluyen los teclados, impresoras normales, CAD, CDA, sistemasde adquisición de datos, etc.

En este caso, el microprocesador no puede asumir que retienen datos por mucho tiempo o recibeninformación en cualquier instante. En su lugar, el microprocesador debe ser capaz de determinar cuando eldispositivo tiene un nuevo dato de entrada o está listo para recibir un dato de salida.

Lo anterior implica que un dispositivo de mediana velocidad debe estar sincronizado de alguna manera conel reloj del microprocesador. Este último debe también disponer de algún medio para decirle al dispositivoque hay un nuevo dato de salida disponible o que el dato de entrada previamente suministrado por aquel hasido receptado.

SEÑAL DESELECCION

IN

S1

S0

0

1

2

3

DE

MU

X

SA

LID

AD

ED

AT

OS

PUERTO DESALIDA

CS

CLK

CONTADOR

BUS DEDATOS

SEÑAL DESELECCION

IN

S1

S0

0

1

2

3

DE

MU

X

SA

LID

AD

ED

AT

OS

PUERTO DESALIDA

CS

CLK

CONTADOR

BUS DEDATOS

IN

S1

S0

0

1

2

3

DE

MU

X

SA

LID

AD

ED

AT

OS

PUERTO DESALIDA

CS

CLK

CONTADOR

BUS DEDATOS

Fig. 1.28 Control de varios periféricos lentos de salida

Page 21: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 21

Uno de los procedimientos más comunes para interfazar microprocesadores con dispositivos de medianavelocidad en forma asincrónica es el saludo protocolario o handshake. En este caso, el transmisor indica ladisponibilidad del dato al receptor y transfiere el dato. El receptor completa el saludo reconociendo larecepción del dato.

• PERIFERICOS DE ALTA VELOCIDAD: Son aquellos que transfieren datos a velocidadessuperiores a 10000 bps. Dentro de esta categoría se incluyen los Discos magnéticos y ópticos, impresorasláser, líneas de comunicación de alta velocidad, pantallas de video (TRC), etc.

La interface de este tipo de periféricos requiere métodos especiales. La técnica más usual es utilizar uncontrolador de propósito especial que transfiera datos directamente entre la memoria y el dispositivo deE/S. Este proceso se denomina acceso directo de memoria o DMA.

El controlador DMA debe forzar al microprocesador a liberar los buses, proporcionar direcciones y señalesde control a la memoria y transferir los datos. Inicialmente, la CPU debe informarle al controlador dondedebe comenzar la transferencia y la cantidad de información que debe transferir.

Un microprocesador puede comunicarse con un dispositivo periféricoen paralelo o serie. Primariamente el bus de datos de unmicroprocesador está diseñado para transferir datos en paralelo. Sinembargo, existen situaciones donde es deseable, preferible o necesariotransferir datos en serie.

En una comunicación en paralelo (fig. 29) todos los bits que configuranla palabra de datos se transmiten simultáneamente, por líneas separadas.En una comunicación serie (fig. 30) todos los bits de la palabra setransmiten en forma secuencial, uno tras otro, por una sola línea dedatos. Los datos transferidos en serie se envían en grupos de bits queforman palabras o caracteres.

En ambos casos, además de las líneas de datos, se requiere el envío deuna señal de reloj para sincronizar la transferencia. En una transmisiónparalelo, la señal de reloj le indica al receptor cuando la palabradisponible en la líneas de datos es válida mientras que una transmisiónserie le indica donde empieza y termina cada bit.

La transmisión en paralelo es intrínsecamente más rápida que latransmisión en serie y se utiliza para comunicaciones de alta velocidad.Sin embargo, a medida que aumenta la distancia entre el transmisor y elreceptor, la comunicación serie tiende a ser más económica. En general,la transmisión serie resulta apropiada en los siguientes casos:

Cuando el dispositivo de E/S hacia el cual ha de transferirse el dato es de naturaleza serie. Se incluyen enesta categoría los cartuchos de cinta magnética, los discos flexibles, los modems.

Cuando la distancia entre el microprocesador y el dispositivo periférico de E/S es relativamente grande,superior a 4 metros. En estos casos, resulta más económica la transmisión serie, a pesar de requerir delógica de control y programación adicionales.

1.2 APLICACIÓN. DISEÑO DE UN SISTEMA BASICO CON UN MICROPROCESADORDE 8 BITS

Como hemos podido comprobar hasta el momento, el microprocesador ofrece gran potencialidad en la realización ydesarrollo de funciones y actuaciones de control en general. Sin embargo también habremos constatado que por símismo el microprocesador resulta inoperante, es decir, es preciso acompañarlo de los componentes necesarios paraque pueda llevar a cabo la ejecución práctica de los programas que se diseñen.

TR

AN

SM

ISO

R

RE

CE

PT

OR

LINEAS DEDATOS

RELOJ

TR

AN

SM

ISO

R

RE

CE

PT

OR

LINEAS DEDATOS

RELOJ

Fig. 1.29 Transmisión paraleloTRAN

SM

ISO

R

RECEPTO

R

LINEA DEDATOS

RELOJTRAN

SM

ISO

R

RECEPTO

R

LINEA DEDATOS

RELOJ

Fig. 1.30 Transmisión serie

Page 22: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 22

Estos componentes asociados son de muy diversas características y todos y cada uno de ellos desempeñanfunciones determinadas y muy concretas.

En este tema se verá la estructura de cada uno y se realizará un estudio de componentes concretos, queemplearemos para ir configurando una tarjeta básica sobre la que posteriormente desarrollaremos diferentesprogramas.

Los componentes asociados que necesitaremos, deberán resolvernos problemas lógicos, de control, dedireccionamiento, de tratamiento de buses, de almacenamiento de datos, de comunicación de entrada/salida (E/S),etc. Esto nos da idea de la gran variedad de componentes que podemos encontrar para llevar a cabo estas tareas. Sinembargo aquí se tratarán únicamente los elementos imprescindibles para nuestros propósitos, comodecodificadores, memorias RAM, memorias EPROM, etc. Además, de forma sistemática y paulatina, se irádesarrollando la forma de acoplamiento de todos los elementos, para finalmente llegar a la construcción de nuestrosistema básico de trabajo.

1.2.1 TRATAMIENTO DE LOS BUSES

Como se ha visto en el tema anterior, una de las principales características que presenta el microprocesador 8085 esposeer un bus de datos (de 8 líneas) multiplexado con la parte baja del bus de direcciones.

Este multiplexado quiere decir que en un instante determinado tendremos en las 8 líneas del bus la informaciónperteneciente a una dirección y un instante más tarde tendremos en esas mismas líneas la información pertenecientea un dato.

Corresponde por tanto a la circuitería externa, separar estasseñales de modo apropiado, tal que no se produzcaninterferencias por informaciones erróneas en el resto de loscomponentes del sistema. De esta forma se obtendrá unaseparación total entre el bus de datos (8 bits) y el bus dedirecciones (16 bits).

Como sabemos el microprocesador 8085 dispone de una líneade “control” o “sincronización” denominada ALE, por mediode la cual suministra un pulso de tensión de nivel lógico 1cuando se presenta la parte baja de una dirección en el busAD0,...,AD7 y cuando aparece un dato la señal ALE pasa alestado lógico 0. Deberemos por tanto emplear esta señal decontrol para separar estas informaciones utilizando un circuitointegrado que actúe de cerrojo (latch) y realice la separaciónfísica. El esquema de principio responde a la Fig. 31.

Mientras ALE está a nivel lógico 1, la información presente en lasentradas del cerrojo, procedente de las líneas AD0,...,AD7 delmicroprocesador, pasa a las salidas, configurando de este modo la partebaja de las direcciones. En el instante en que ALE pasa a nivel 0, esainformación queda almacenada y retenida en las salidas del cerrojo, queno cambiaran su estado mientras ALE no pase a nivel 1. Por tanto ahorapuede cambiar la información presente en las líneas AD0,...,AD7 delmicroprocesador, que nos suministrará el dato oportuno, sin afectar a laparte baja de las direcciones.

Son varios los circuitos que pueden emplearse para este cometido. Unode los más comúnmente empleados es el 74LS373 cuya constitución yfuncionamiento pueden encontrarse en diversos textos.

Fig. 1.31 Tratamiento de buses

Fig. 1.32 Puerto 8212

Page 23: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 23

Nosotros estudiaremos el circuito integrado 8212, fabricado por INTEL y que desarrolla esta función de formaadecuada.

En realidad el 8212 es un puerto de E/S de 8 bits en paralelo. A su salida posee un latch con buffers de salida en tri-estado. También dispone de una serie de flip-flop que utiliza para atender peticiones de servicio de interrupciones.Con este componente podremos llevar a cabo varias funciones periféricas y de entrada/salida del microprocesador.Se presenta en un encapsulado de 24 patillas que podemos ver representado en la Fig. 32.

A continuación se describirá de forma concisa la función de todas las patillas de este componente:

DO0,... DO7. Son las 8 líneas de salida de datos que están conectadas a 8 buffers no inversores que pueden sercolocados en estado de alta impedancia.

DI0,... DI7. Son las 8 líneas de entradas de datos a los 8 flip-flop internos de tipo D. La salida de estos flip-floptoman los valores de las entradas mientras la señal STB esté a nivel alto. Cuando STB pasa a nivel bajo seproduce el enclavamiento. Los datos de salida se borraran mediante la entrada de puesta a cero CLR.

GND. Terminal de conexión a masa, o tensión de referencia. Vcc. Terminal de alimentación (+5V). STB. Es la entrada Strobe o impulso de referencia se toma como clock para el latch de datos. MD. Señal de control del estado del buffer de salida y que determina el origen de los impulsos de clock que

llegan al latch de datos. DS1 y DS2. Son dos entradas de selección de dispositivo. Con DS1=0 y DS2=1 el componente estará

seleccionado. CLR. Pone a cero el latch de datos. Nivel bajo activo INT. Línea de salida para una interrupción. Nivel bajo activo.

Dentro de las posibles aplicaciones o modos deconexión del 8212 pueden mencionarse: su utilizacióncomo controlador para un bus bidireccional empleandopara ello dos componentes en oposición; conexióncomo puerto para entrada de interrupciones; comopuerto de salida; como latch para separar las direccionesde orden bajo con el microprocesador 8085 (será laforma en que nosotros lo conectaremos), etc. Sideseamos obtener información adicional de estecomponente, como pueden ser sus diagramas detiempos, características de conmutación, etc., debemosacudir a las hojas de características técnicassuministradas por los fabricantes.

La conexión de este circuito integrado con elmicroprocesador 8085, se realiza de forma muy simple,según se muestra en la Fig. 33. Como podemos apreciarlos pasos a seguir son:

Conectar directamente a +5V los terminales Vcc, DS2 y CLR. Conectar a masa los terminales GND, MD y DS1. Llevar la patilla STB directamente a la salida ALE del microprocesador. Unir las líneas DI0, DI1, DI2, ..., DI7, a las líneas del microprocesador AD0, AD1, AD2, ..., AD7,

respectivamente.

Realizada la conexión de este modo, cuando el microprocesador inicie su funcionamiento normal, tendremos en lassalidas del 8212, la parte baja del bus de direcciones, correspondiendo las salidas DO0, DO1, DO2, ..., DO7 con laslíneas de direcciones A0, A1, A2, ..., A7 respectivamente.

8212

GN

D

MD

DS1

ALESTB

Vcc

DS2

CL

R

+5V

8085

BU

SD

IRE

CCIO

NE

S

BUS DATOS

AD0 DI0 DO0 A0

AD1 DI1 DO1 A1AD2 DI2 DO2 A2

AD3 DI3 D03 A3

AD4 DI4 DO4 A4AD5 DI5 DO5 A5

AD6 DI6 DO6 A6AD7 DI7 DO7 A7

INT

8212

GN

D

MD

DS1

ALESTB

Vcc

DS2

CL

R

+5V

8085

BU

SD

IRE

CCIO

NE

S

BUS DATOS

AD0 DI0 DO0 A0

AD1 DI1 DO1 A1AD2 DI2 DO2 A2

AD3 DI3 D03 A3

AD4 DI4 DO4 A4AD5 DI5 DO5 A5

AD6 DI6 DO6 A6AD7 DI7 DO7 A7

INT

Fig. 1.33 Acoplamiento del mP8085 con el 8212

Page 24: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 24

1.2.2 DECODIFICACION DE DIRECCIONES

Debemos entender que la mayoría de los componentes que se emplean en los diseños con microprocesadores,necesitan ser conectados a los buses de datos y direcciones, por tanto deben poseer la característica de permitirdejar en estado de alta impedancia las líneas que se conecten a dichos buses. De este modo podremos conectarvarios componentes al mismo conjunto de líneas sin que se produzcan interferencias entre ellos, ya que solamentepermanecerá activo aquel que sea “seleccionado”, quedando el resto en estado de alta impedancia (tri-estado).

Por tanto los componentes sobre los que debe actuar el microprocesador, además de las líneas necesarias paraconectarse a los buses, deben poseer algún terminal que permita al microprocesador “habilitarlo” para trabajar conél o por el contrario, dejarlo fuera de servicio. Este terminal será el que realiza la selección del componente.

Por otro lado sabemos que el bus de direcciones sirve para seleccionar algún registro (o alguna dirección)determinado en un componente, por tanto tendremos dos tipos de selecciones simultáneas:

Se debe seleccionar el componente que contiene la dirección o registro al que necesitamos acceder. Hay que indicar el registro o la dirección que deseamos dentro del componente.

Para llevar a cabo estos procesos emplearemos el “direccionamiento por decodificación”, aunque hay otrosmétodos posibles.

Las líneas de dirección más bajas, son las que normalmente seemplean para apuntar a un registro determinado o a una dirección daday las líneas de dirección más altas (A15, A14, A13,...) se llevan a lasentradas de un circuito integrado “decodificador” que será el que conuna de sus salidas, seleccione el componente que deseamos.

Existen varios decodificadores que pueden ser empleados para estetrabajo y que son de uso corriente. En nuestro caso será utilizado el74LS138. Se trata de un conocido decodificador de 3 a 8 líneas delógica transistor-transistor que se presenta en un encapsulado de 16patillas cuya distribución puede apreciarse en la Fig. 34.

La función de cada una de sus líneas se describe a continuación:

A0, A1 y A2 son las señales de entrada en código binario. O0,..., O7 son las líneas de salida con nivel bajo activo. GND es el terminal de masa o tensión de referencia. Vcc es la patilla de alimentación (+5V). E3 es una señal de habilitación activa a nivel alto. E1 y E2 son señales de habilitación activas a nivel bajo.

A continuación se muestra la tabla de la verdad, a través de cuya observación y análisis puede apreciarseperfectamente la forma de actuar del decodificador.

A2 A1 A0 O0 O1 O2 O3 O4 O5 O6 O70 0 0 0 1 1 1 1 1 1 10 0 1 1 0 1 1 1 1 1 10 1 0 1 1 0 1 1 1 1 10 1 1 1 1 1 0 1 1 1 11 0 0 1 1 1 1 0 1 1 11 0 1 1 1 1 1 1 0 1 11 1 0 1 1 1 1 1 1 0 11 1 1 1 1 1 1 1 1 1 0

A0A1A2E1E2E3O7GND

VccO0O1O2O3O4O5O6

74L

S138

12345678

16151413121110

9

A0A1A2E1E2E3O7GND

VccO0O1O2O3O4O5O6

74L

S138

12345678

16151413121110

9

Fig. 1.34 Registro latch 74LS138

Page 25: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 25

En la Fig. 35 puede apreciarse el modo en que se puede conectar el decodificador al microprocesador 8085.

Como vemos se emplean la línea de dirección másalta (A15) para atacar la entrada de control E3,mientras que las entradas de datos binarias deldecodificador (A0, A1, A2) son manejadas por lasdirecciones A12, A13 y A14 del microprocesador. Deesta forma puede utilizarse la línea de dirección A15también para seleccionar una memoria EPROM,puesto que al comenzar su ejecución elmicroprocesador arranca en la dirección 0000H en sucontador de programa, por lo que tendremos un 0 enla línea A15 con la que podemos seleccionar unaEPROM al tiempo que bloqueamos el 74LS138. Lasotras dos líneas de control E1 y E2 se colocan a nivelbajo para dejar activo el decodificador. De todasformas es posible dar otra función a estas líneas decontrol en el diseño global del sistema.

Las líneas de salida O0, O1, O2,..., O7 deldecodificador quedarán disponibles para seleccionarlos componentes deseados. En cada una de ellas, secolocará una resistencia a +5V para asegurar el nivellógico 1, en las salidas no activas.

1.2.3 LA MEMORIA

Para un sistema electrónico diseñado sobre la base de un microprocesador determinado, la memoria es el lugarexterno donde se almacenan los programas y los datos, tanto los iniciales como los que se van generando a medidaque se ejecuta el programa.

Las memorias deberán disponer de un bus de datos (generalmente de 8 bits), un bus de direcciones cuyo númerode bits depende de la capacidad de almacenaje y de los terminales de control adecuados que permitan un correctofuncionamiento del dispositivo, así como un fácil acceso y la posibilidad de situar los terminales del bus de datosen estado de alta impedancia.

Dentro de las características más destacables de una memoria y esenciales para su valoración se encuentran los“tiempos de escritura y lectura”, el “tiempo de acceso”, los “tiempos de ciclo”, la “capacidad” (número de bits quepueden almacenarse en la memoria), etc. Todos estos datos, junto a otra serie de parámetros típicos puedenencontrarse en las hojas de especificaciones técnicas que suministran los fabricantes.

Para trabajar con un microprocesador, se dispone básicamente de dos tipos de memorias:a. Las memorias “pasivas”, de solo lectura, que generalmente se emplean para almacenar las instrucciones que

configuran el programa y los datos necesarios permanentes.b. Las memorias “activas”, de lectura y escritura, de las que se puede leer y en las que se puede escribir la

información deseada. Lo normal es almacenar en ellas los datos y valores que se van generando durante laejecución del programa, la información que contienen es volátil, es decir puede perderse por un fallo en laalimentación.

A continuación veremos un resumen de las distintas memorias de cada tipo:

Memoria RAM dinámica: Este tipo de memoria RAM se caracteriza por almacenar los bits que representan lainformación, en forma de cargas eléctricas, aprovechando la capacidad generada en un transistor MOS queconstituye la “celda” elemental de información. Sin embargo esta carga así almacenada, se va perdiendo con eltiempo, llegando a desaparecer al cabo de unos ms, debido a fugas eléctricas. Es por tanto imprescindible coneste tipo de memorias emplear “circuitos de refresco” cuya misión es leer la información que contiene la

74L

S138

8085

4K7

+5V

VccG

ND

E1

E2

A15 E3

A14 A2

A13 A1

A12 A0

O7 CS7

O6 CS6

O5 CS5

O4 CS4

O3 CS3

O2 CS2

O1 CS1

O0 CS0

74L

S138

8085

4K7

+5V

VccG

ND

E1

E2

A15 E3

A14 A2

A13 A1

A12 A0

O7 CS7

O6 CS6

O5 CS5

O4 CS4

O3 CS3

O2 CS2

O1 CS1

O0 CS0

Fig. 1.35 Conexión del mP con el decodificador

Page 26: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 26

memoria y volver a guardarla exactamente igual a intervalos de tiempo próximos a 1 o 2 ms. Haymicroprocesadores que incluyen un sistema de refresco para trabajar con este tipo de memorias, en casocontrario sería preciso diseñar uno. Las RAM dinámicas poseen gran capacidad de memoria y son muyeconómicas, suelen emplearse en sistemas que requieren mucha memoria.

Memoria RAM estática: Es la memoria que emplearemos nosotros en nuestro sistema. Esta constituida a partirde elementos flip-flop que configuran las celdillas de información, es decir, cada celdilla o flip-flop representaun bit. Su contenido permanece estable (a diferencia de las dinámicas) hasta que eliminemos la tensión dealimentación, momento en que perdemos toda la información almacenada. Si deseamos retener la informaciónde la RAM, no tendremos más alternativa, que diseñar un sistema de alimentación auxiliar (con baterías porejemplo) que sustituya a la tensión principal cuando desaparezca.

Existen RAM estáticas de diferente ancho de palabra, en nuestro caso solo trataremos la RAM de 8 bits.

Disponemos en el mercado de una amplia variedad de componentes RAM entre los que es posible elegir paradiseñar un sistema. Nosotros vamos a emplear la memoria RAM 6116, que se presenta en un encapsulado de24 patillas y podemos ver representada en la Fig. 36. Se trata de una memoria fabricada con tecnología"CMOS" de bajo consumo con una capacidad de 16384 bits, es decir, 2 Kbytes para lectura/escritura.

La descripción de los distintos terminales es la siguiente:

- Patillas A0,... A10. Son el bus de direcciones.- Patillas D0,... D7. Constituyen el bus de datos.- Patilla GND. Es el terminal de masa o tensión de referencia.- Patilla Vcc. Es el terminal de alimentación (+5V).- Patilla CS . Entrada de selección de componente.- Patilla OE. Entrada de lectura.- Patilla WE. Entrada de escritura.

(Recuerde que las señales marcadas en negrita tienen nivel activo BAJO).

Para llevar a cabo la interconexión entre estamemoria y el microprocesador, debemosfijarnos en el esquema de la Fig. 37. Comopodemos apreciar, las conexiones a realizar sonlas siguientes:

- Las líneas de dirección A0, A1, A2, ..., A7son conectadas a las salidas DO0, DO1,DO2, ..., DO7 del 8212.

- Las líneas de dirección A8, A9 y A10, seconectan a las líneas correspondientes A8,A9 y A10 del bus de direcciones delmicroprocesador.

- Los terminales D0, D1, D2, ..., D7 de lamemoria RAM se conectan a las líneasAD0, AD1, AD2, ..., AD7 del bus de datosdel microprocesador, respectivamente.

- El terminal GND será conectado a masa,mientras que Vcc se lleva a la alimentaciónde +5V.

- La línea CS, de selección de chip, esconectada a una de las salidas deldecodificador de direcciones 74LS138.

RA

M61

16

A7A6A5A4A3A2A1A0D0D1D2GND

VccA8A9WEOEA10CSD7D6D5D4D3

123456789101112

242322212019181716151413

RA

M61

16

A7A6A5A4A3A2A1A0D0D1D2GND

VccA8A9WEOEA10CSD7D6D5D4D3

123456789101112

242322212019181716151413

Fig. 1.36 Memoria RAM 6116

8212

74LS138

CS

+5V

Vcc

GND

RAM

6116

AD7 A7 D7AD6 A6 D6AD5 A5 D5AD4 A4 D4

AD3 A3 D3AD2 A2 D2AD1 A1 D1AD0 A0 D0

WR WERD OE

A10A9A8

A15 E3 O7

A14 A2 O6A13 A1 O5A12 A0 O4A11 O3A10 O2

A9 O1A8 O0

8085

8212

74LS138

CS

+5V

Vcc

GND

RAM

6116

AD7 A7 D7AD6 A6 D6AD5 A5 D5AD4 A4 D4

AD3 A3 D3AD2 A2 D2AD1 A1 D1AD0 A0 D0

WR WERD OE

A10A9A8

A15 E3 O7

A14 A2 O6A13 A1 O5A12 A0 O4A11 O3A10 O2

A9 O1A8 O0

8085

Fig. 1.37 Conexión de la RAM al microprocesador

Page 27: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 27

- El terminal WE se conecta a la señal WR del microprocesador.- La patilla OE se conecta a la salida RD del microprocesador.

Memoria ROM: Se trata de una memoria de solo lectura y se emplea para almacenar los programas, dado quesu contenido no se pierde aún en ausencia de la tensión de alimentación. Este tipo de memoria debe ser grabadapor el fabricante, mientras que el usuario no tiene la posibilidad de variar su contenido. Solo se empleancuando se requiere un gran volumen de producción y no es preciso introducir modificaciones en los programas.

Memoria PROM: Tiene características similares a la anterior, con una distribución de terminales idéntica, porlo que pueden reemplazarlas. Las PROM se compran “vacías” o “limpias”, es decir, sin información alguna yes el usuario quien mediante un “programador” adecuado, les carga el programa. Las celdillas de informaciónposeen dispositivos “fusibles” que según permanezcan intactos o fundidos, representarán los dos posiblesestados de información (1 ó 0). Por supuesto, una vez almacenado el programa en la PROM, no podremosmodificar su contenido.

Memoria EPROM: Se trata de una memoria de solo lectura, que también puede ser programada por el usuariocon el dispositivo programador adecuado. Sin embargo las EPROM tienen la particularidad de disponer de unaventana de cuarzo que permite el paso de los rayos de luz hasta la cápsula que contiene la memoria en sí. Sihacemos incidir radiaciones ultravioletas sobre dicha ventana conseguimos eliminar la información existente enla memoria, quedando la EPROM dispuesta para ser grabada de nuevo. Este proceso puede repetirse en muchasocasiones. Son más caras que las anteriores y sus terminales no son totalmente compatibles.

Nosotros emplearemos la EPROM 27256, que posee una capacidad de 32 Kbytes de memoria, es decir,262144 bits. Su distribución de patillas puede verse en la Fig. 38.

A continuación se describe la función de sus terminales:- Patillas A0,... A14. Representan el bus de direcciones.- Patillas D0,... D7. Representan el bus de datos.- Patilla GND. Representa la tensión de referencia o masa.- Patilla Vcc. Tensión de alimentación.- Patilla Vpp. Entrada de programación.- Patilla CS . Terminal de selección de chip.- Patilla OE. Terminal que habilita las salidas.

Para llevar a cabo la interconexión entre estaEPROM y el microprocesador, no tendremosmás que conectar de forma adecuada las líneascorrespondientes de los buses de datos ydirecciones, según se muestra en la Fig. 39. Hayque destacar que al disponer esta memoria de 15líneas de direcciones, emplearemos las líneasA0,... A14 del microprocesador para direccionartodas las posiciones disponibles de la EPROM,efectuando la selección de chip con la línea dedirecciones A15 de forma directa y empleándolaal mismo tiempo para bloquear el decodificador74LS138. También debemos conectar la señalRD del microprocesador a la entrada OE de lamemoria para efectuar la lectura de datos.

EP

RO

M27

256

VppA12A7A6A5A4A3A2A1A0D0D1D2GND

VccA14A13A8A9A11CSA10OED7D6D5D4D3

1234567891011121314

2827262524232221201918171615

EP

RO

M27

256

VppA12A7A6A5A4A3A2A1A0D0D1D2GND

VccA14A13A8A9A11CSA10OED7D6D5D4D3

1234567891011121314

2827262524232221201918171615

Fig. 1.38 Memoria EPROM

8212

RD

+5V

Vcc

GND

EPR

OM

2725

6

A15Vpp

8085

A15

A14

A13A12

A11A10

A9A8

OE

A14A13A12

A11

A10A9A8

AD7 A7 D7AD6 A6 D6AD5 A5 D5

AD4 A4 D4AD3 A3 D3

AD2 A2 D2AD1 A1 D1

AD0 A0 D0

8212

RD

+5V

Vcc

GND

EPR

OM

2725

6

A15Vpp

8085

A15

A14

A13A12

A11A10

A9A8

OE

A14A13A12

A11

A10A9A8

AD7 A7 D7AD6 A6 D6AD5 A5 D5

AD4 A4 D4AD3 A3 D3

AD2 A2 D2AD1 A1 D1

AD0 A0 D0

Fig. 1.39 Conexión de la EPROM al microprocesador

Page 28: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 28

El terminal Vpp (de entrada de programación) debemos conectarlo a +5V, durante su estado de funcionamientonormal.

Si deseamos añadir más memorias EPROM, podremos situarlas en las direcciones que deseemos dentro del “mapade memoria” disponible, aunque lo normal es situar las EPROM en bancos consecutivos.

Otras memorias: El desarrollo de las tecnologías de fabricación y los continuos avances en la investigación,hacen que el campo de las memorias esté evolucionando constantemente, consiguiéndose componentes conmayores capacidades de almacenamiento, velocidades de acceso mayores y costes más reducidos. Al mismotiempo se trabaja sobre otros tipos de memorias intentando mejorar determinadas características. Podemosmencionar:

- Las memorias EAROM, que almacenan la información de forma permanente, pero pueden ser leídas yescritas electrónicamente (aunque los tiempos de escritura son muy superiores a los de lectura).

- Las memorias de “burbujas” que se caracterizan por poseer una densidad elevadísima dealmacenamiento aunque son lentas y caras.

- Las memorias PLA o de matriz lógica programable. Se emplean para decodificar o codificar señaleslógicas.

1.2.4 DISEÑO DEL SISTEMA BASICO

Apoyándonos ahora en todo lo visto hasta el momento, podemos realizar nuestro diseño de sistema, para llevar acabo operaciones básicas con el microprocesador 8085.

Esta tarjeta que estará constituida esencialmente por los componentes mencionados con anterioridad, responde alesquema de la Fig. 40.

En ella podemos ver cómo la conexión de la memoria EPROM se realiza del mismo modo que se ha indicado en elapartado anterior (ver Fig. 39).

El banco de memorias RAM estará constituido en este caso por tres unidades 6116, con idéntico modo de conexiónen todas sus líneas a excepción de las líneas de selección de chip, que en este caso serán las CS0, CS1, y CS2procedentes del decodificador 74LS138.

En lo que se refiere a la conexión del 8212, vemos que nada varía respecto a lo expuesto en la Fig. 33, únicamentemencionar la colocación de una resistencia de 4K7 a +5V en la señal ALE al objeto de reafirmar los niveles detensión en esta salida del microprocesador.

Este mismo sistema se emplea en la parte alta del bus de direcciones en el que se sitúa un bloque de 8 resistenciasde 10k cada una conectadas a +5V.

El decodificador de direcciones 74LS138, sigue el mismo esquema de conexión que el mostrado en la Fig. 35.Ahora además se refuerzan las salidas del mismo colocando un bloque de 8 resistencias de 4K7 a +5V. Puede versecomo en este caso las salidas CS0, CS1, y CS2, tomadas de las patillas 15, 14 y 13 respectivamente se empleanpara direccionar las tres pastillas de memorias RAM que hemos colocado en el sistema.

Page 29: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 29

Puede verse con claridad cómo el microprocesador se sirve de un cristal de cuarzo de 4 MHz y un condensador de18 pF, que colocados entre las patillas 1 y 2 generan la oscilación que produce la frecuencia de reloj a la quefuncionará el sistema. Es decir, se genera la “frecuencia de trabajo”.

Fig. 1.40 Sistema básico con mP 8085A

Page 30: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 30

Destacamos además el circuito situado en la señal de entrada RESET IN del microprocesador (patilla 36) formadopor una resistencia de 1K en paralelo con un diodo y un condensador electrolítico de 1 uF. Este circuito es el queasegura un arranque correcto del sistema en el momento de conexión a red iniciándose el contador de programa enla dirección 0000H, después de que la patilla 36 haya alcanzado el nivel lógico 1 (ALTO). Este circuito produce unretardo en el arranque que viene dado aproximadamente por la constante de tiempo RC.

En la parte izquierda de la FIG.1.40 puede verse que las señales INTR, TRAP, RST 7.5, RST 6.5, RST 5.5 yHOLD son conectadas directamente a masa para conseguir un correcto funcionamiento del sistema mientras novayamos a emplearlas. Estas conexiones deben realizarse individualmente para cada señal y mediante puentesfácilmente eliminables de modo que si en un momento dado, para una determinada aplicación deseamos emplearalguna de ellas, podamos hacerlo sin más que eliminar el puente a masa correspondiente y tratando dicha entradadel modo adecuado.

Además deben colocarse distribuidos sobre la tarjeta condensadores de desacoplo. Lo más usual es situar uno porcada circuito integrado y deberán ir soldados mediante conexiones cortas y a ser posible directamente sobre laspatillas de alimentación de los circuitos integrados. Este es un medio eficaz y sencillo para impedir la creación deseñales parásitas de alta frecuencia que son derivadas a masa a través del condensador. Normalmente estoscondensadores son de 100 nF.

Puede apreciarse también cómo la tarjeta dispone, para su conexión a otros circuitos, de cuatro conectores:

CON1: Constituido por 16 líneas en las cuales podemos encontrar el bus de direcciones completo (A0, A1,A2,..., A15).

CON2: Constituido por 8 líneas en las que podemos encontrar el bus de datos completo (D0, D1, ..., D7). CON3: Constituido por un total de 24 líneas entre las que encontramos el bus de control, el bloque completo de

señales de interrupción (que podremos utilizar desde el exterior eliminando previamente los puentes a masa) ylas señales de selección de chip que se toman del decodificador 74LS138.

CON4: Constituido por nueve líneas divididas en dos grupos que sirven para suministrar la alimentación a latarjeta (+5V y MASA).

Realizadas todas estas consideraciones, no queda más que analizar con detenimiento, las direcciones de memoriaque ocupa cada uno de los componentes que integran esta tarjeta y las direcciones que quedan disponibles parafuturas ampliaciones.

Como puede deducirse de la Fig. 41 y apoyándonos en los valores que adquieren las entradas A0, A1, A2 y E3 deldecodificador, se tendrá la siguiente distribución de direcciones:

EPROM 27256 Desde 0000H hasta 7FFFHRAM 6116-1 Desde 8000H hasta 87FFHRAM 6116-2 Desde 9000H hasta 97FFHRAM 6116-3 Desde A000h hasta A7FFH

Al mismo tiempo, los terminales del decodificador 74LS138 que quedan libres para añadir nuevos elementos alsistema, responderán a las siguientes direcciones:

CS3 B000HCS4 C000HCS5 D000HCS6 E000HCS7 F000H

1.2.5 INTERCONEXION DEL 8155 CON EL MICROPROCESADOR 8085

Es claro, por todo lo estudiado hasta el momento, que el 8155 es un periférico programable cuya estructura permitesu utilización directa con el microprocesador 8085.

Page 31: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 31

El 8155 dispone de ciertas características que hacen posible su conexión al microprocesador de dos formasclaramente diferenciadas que veremos a continuación:

POSIBILIDAD 1

Dada la estructura del 8155, no tendremos más que:

- Unir las patillas AD0, AD1, AD2, AD3, AD4, AD5, AD6 y AD7 a las patillas correspondientes del busde datos/direcciones del microprocesador.

- Unir la patilla de RESET del 8155 a la patilla RESET OUT del microprocesador, colocando uncondensador a masa de 15 pF.

- Conectar los terminales de masa (GND) y alimentación (Vcc) a la masa y alimentación delmicroprocesador (+5V). Es conveniente colocar un condensador a masa de 100 nF en el terminal dealimentación.

- Conectar las señales ALE, RD y WR del 8155 directamente a las patillas ALE, RD y WR delmicroprocesador.

- La patilla TIMER IN del 8155 se conectará a la salida CLK OUT del microprocesador.

- La patilla CS (selección de chip) será controlada mediante una de las salidas libres del decodificador dedirecciones. En este caso elegiremos la salida CS4.

- El terminal IO/M del 8155 se conecta directamente a la señal de control IO/M de idénticadenominación del microprocesador.

- Finalmente dispondremos de 22 líneas para comunicarse con el exterior que forman los tres puertos deentrada/salida del 8155 y de una línea de salida de un contador o temporizador denominada TIMEROUT.

De esta forma tendremos perfectamente acoplado este nuevo componente a nuestro sistema. En la Fig. 41puede verse el esquema de esta conexión. No nos queda ahora más que estudiar la forma de acceso almismo, o lo que es igual, encontrar las direcciones de sus registros internos y puertos de entrada/salida.Para ello debemos darnos cuenta que para efectuar la selección del dispositivo hay que hacer activa lasalida CS4 del decodificador de direcciones, es decir, hay que colocar en la parte alta del bus de direcciones(A15, A14, A13 y A12) el valor binario 1100, por lo que dicha combinación es obligatoria. Por tenerconectada la señal IO/M del microprocesador, para acceder a los puertos de E/S será necesario emplear lasinstrucciones OUT PORT e IN PORT para sacar o leer datos del exterior y como sabemos por el tema 4, (alemplear estas instrucciones el microprocesador entiende que deseamos tener acceso a una entrada/salida yautomáticamente coloca un 1 lógico en la señal IO/M) el operando PORT representa el puertoseleccionado. Tendremos por tanto que situar en los bits de dirección más bajos (A0, A1 y A2) los códigoscorrespondientes a los puertos A, B, C y el código correspondiente del registro de estado, según elelemento al que deseemos tener acceso. Ambas instrucciones (OUT e IN) tienen el mismo efecto sobre elbus de direcciones, duplican el valor asignado a PORT en dicho bus. Por ejemplo con la instrucción OUTB1H, sacaríamos hacia el exterior el contenido del acumulador, y en el bus de direcciones tendríamos elvalor B1B1H. De modo similar con la instrucción IN B3H, cargaríamos un dato del exterior en elacumulador y tendríamos en el bus de direcciones el valor B3B3H.

Page 32: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 32

Fig. 1.41 Puerto programable paralelo 8155

Por tanto en nuestro caso, para acceder a los puertos y registro de estado del 8155 tendríamos que colocarcomo valor de PORT:

Puerto A PORT = C1HPuerto B PORT = C2HPuerto C PORT = C3HTimer Low PORT = C4HTimer High PORT = C5HRegistro de estado PORT = C0H

Cuando deseemos trabajar con la memoria interna del 8155, no podremos utilizar la instruccionesespeciales OUT e IN, sino que habrá que emplear instrucciones normales como LDA o bien STA, segúnsea el caso, seguidas de la dirección de memoria a la que deseemos acceder, que en el caso que estamostratando, serán los 256 octetos comprendidos entre las direcciones siguientes:

RAM 8155 C000H hasta C0FFH

POSIBILIDAD 2.

La segunda posibilidad de conectar este integrado, es en todo similar a la anterior, la única diferencia radicaen que la señal IO/M del 8155 no se conecta a la equivalente IO/M del microprocesador, sino que secontrola mediante una línea del bus de direcciones. Nosotros elegiremos este método y conectaremos adicha señal la línea de direcciones A10 (podríamos haber elegido otra). Para acceder a los puertos deentrada/salida o al registro de estado no podremos utilizar ahora las instrucciones OUT e IN puesto que nousamos la salida IO/M del microprocesador. En este caso, tanto para los puertos y registro de estado, comopara las direcciones de RAM interna, se utilizarán instrucciones como STA o bien LDA seguidas de ladirección correspondiente.

21 PA022 PA1

23 PA2

24 PA327 PA425 PA526 PA628 PA7

PC0 37PC1 38PC2 39PC3 1PC4 2PC5 5AD0 12AD1 13AD2 14AD3 15AD4 16AD5 17AD6 18AD7 19

29 PB030 PB131 PB232 PB333 PB434 PB535 PB636 PB7

6 TIMER OUT4 RESET

ALE 11WR 10RD 9

IO/M 7CS 8

TIMER IN 3

+5V100 nF

40 20

D0D1D2D3D4D5D6D7

ALEWRRDIO/MCS4

CLKOUT

RESETOUT

15pF

PUERTO CPUERTO A

PUERTO B

BUS8085

8155

Page 33: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 33

Al igual que en el caso anterior, para seleccionar el chip debemos colocar en la parte alta del bus dedirecciones (A15, A14, A13, A12) el dato binario 1100. Además hay que colocar en la parte baja (A0, A1,A2) el código correspondiente al elemento que deseemos utilizar. Y finalmente, tendremos que colocar lalínea de direcciones A10 a nivel lógico 1 para acceder a los puertos y registro de estado y a nivel lógico 0para tener acceso a las posiciones de memoria RAM interna.

Por tanto las direcciones a considerar en nuestro caso serán:

Puerto A C401HPuerto B C402HPuerto C C403HTimer Low C404HTimer High C405HRegistro de estado C/E C400H

RAM 8155 C000H hasta C0FFH

En la Fig. 42 puede verse la representación esquemática de esta conexión, que será la que finalmenteutilizaremos en nuestro sistema.

Fig. 1.42 Posibilidad 2 de conexión del 8155

1.3 SOFTWARE. PROGRAMACION DE UN SISTEMA CON MICROPROCESADOR

1.3.1 INTRODUCCION

Los sistemas construidos sobre la base de los microprocesadores, requieren para su puesta en marcha, el desarrollodel software, es decir, el desarrollo de programas que una vez construidos, son almacenados en las memoriaspermanentes (PROM, EPROM,...) del sistema, donde son buscados por el microprocesador para desarrollar todaslas funciones y tareas deseadas.

21 PA022 PA123 PA224 PA3

27 PA425 PA526 PA6

28 PA7

PC0 37PC1 38PC2 39PC3 1

PC4 2PC5 5AD0 12AD1 13AD2 14AD3 15

AD4 16AD5 17AD6 18

AD7 19

29 PB030 PB1

31 PB232 PB3

33 PB434 PB535 PB6

36 PB7

6 TIMER OUT4 RESET

ALE 11WR 10RD 9

IO/M 7CS 8

TIMER IN 3

+5V100 nF

40 20

D0D1D2D3D4D5D6D7

ALEWRRDA10CS4

CLKOUT

RESETOUT

15pF

BUS8085

PUERTO CPUERTO A

PUERTO B

8155

Page 34: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 34

Un programa está constituido por un conjunto ordenado de instrucciones, que constituyen el cuerpo principal delprograma y uno o más bloques de datos iniciales necesarios para una correcta ejecución. El proceso básico deejecución de un programa requiere por parte del microprocesador, la repetición de los siguientes pasos:

1. Construir la dirección de la posición de memoria donde se encuentra la instrucción y situarla en el bus dedirecciones. Esta función, como se mencionó anteriormente, la realiza el contador de programa.

2. Leer la instrucción por medio de una orden de lectura enviada a través del bus de control. En respuesta, laposición de memoria direccionada transmite el código de la instrucción al bus de datos. Esta información sealmacena en el registro de instrucciones.

3. Decodificar la instrucción para determinar en la ROM del microprograma la secuencia de microinstruccionesnecesarias para llevarlas a cabo. Esta función la realiza el decodificador de instrucciones del microprocesador.

4. Leer, si la instrucción así lo exige, cualquier dato almacenado en una posición de memoria o traerlo desde unpuerto de entrada.

5. Ejecutar las operaciones especificadas por la instrucción. Esta función la realizan la ALU, el Acumulador ydemás registros asociados a la unidad de ejecución.

6. Almacenar, si al instrucción así lo exige, los resultados en una determinada posición de memoria o llevarlos aun puerto de salida.

Todas estas acciones están sincronizadas por la señal de reloj del sistema y constituyen lo que se denomina ciclo deinstrucción, que en algunos microprocesadores pueden tomar 2 o 4 ciclos reloj.

Estos 6 pasos se pueden resumir en tres fases, a saber:

Leer de la memoria una instrucción del programa. Interpretar la instrucción leída. Ejecutar dicha instrucción.

Debemos considerar además que los microprocesadores trabajan solamente con lenguaje de bajo nivel, es decir,trabajan con lenguaje máquina. Cada microprocesador o familia de microprocesadores, posee su propio lenguajemáquina que determina las capacidades propias de cada familia. Las instrucciones máquina son almacenadas en lamemoria en forma de bytes, es decir, en forma de unos y ceros empleando por tanto el sistema binario denumeración. Sin embargo este sistema es muy complejo para trabajar directamente con él, por lo que se empleanotros sistemas como el hexadecimal, BCD, etc. para la representación de datos.

Para construir los programas, normalmente se emplean lenguajes de alto nivel, y luego se transforman losprogramas así escritos a lenguaje máquina asequible para el microprocesador. No obstante en nuestro casoemplearemos un lenguaje de bajo nivel (ensamblador) que trabaja con abreviaturas alfabéticas denominadasmnemónicos que constituyen las operaciones e instrucciones que ejecutará el microprocesador.

1.3.2 ARQUITECTURAS DE LOS SISTEMAS DE MICROPROCESADORES. TIPOS DEPROCESADORES

1.3.2.1 ARQUITECTURAS VON NEUMANN Y HARVARD

La arquitectura de los sistemas digitales programablespueden ser de tipo Von Neumann o Harvard. En laArquitectura Von Neumann la CPU está conectada auna memoria única que contiene las instrucciones delprograma y datos. A esta memoria se accede a través deun único sistema de buses único. La única ventaja queposee es que simplifica la lógica del sistema.

Las limitaciones de esta arquitectura tradicional son:

La longitud de las instrucciones está limitada por lalongitud de los datos, por lo tanto, elmicroprocesador debe hacer varios accesos a lamemoria para buscar instrucciones complejas.

CPUCPUMEMORIA DEPROGRAMA

Y DATOS

MEMORIA DEPROGRAMA

Y DATOSCPUCPU

MEMORIA DEPROGRAMA

Y DATOS

MEMORIA DEPROGRAMA

Y DATOS

Fig. 1.43 Arquitectura Von Neumann

Page 35: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 35

La velocidad de operación está limitada por el efecto de cuello de botella que significa un único bus dedatos e instrucciones, que impide superponer ambos tiempos de acceso.

Otros sistemas de microprocesadores utilizan laArquitectura Harvard que dispone de dos tiposde memorias independientes (memoria de datos ymemoria de programa) a la que se conectamediante dos grupos de buses separados, conformela figura 1.44.

Ambos buses son totalmente independientes ypueden ser de distintos anchos, esto permite que laCPU pueda acceder de forma independiente ysimultánea a la memoria de datos y a la deinstrucciones, consiguiendo que las instruccionesse ejecuten en menos ciclos de reloj.

Se puede concluir que las principales ventajas de la arquitectura Harvard son:

El tamaño de las instrucciones no está relacionado con el de los datos y, por lo tanto, puede ser optimizadopara que cualquier instrucción ocupe una sola posición de memoria de programa. Así se logra mayorvelocidad y una menor longitud de programa.

El tiempo de acceso a las instrucciones puede superponerse con el de los datos logrando una mayorvelocidad de operación.

1.3.2.2 PROCESADOR SEGMENTADO O PIPELINE

Un procesador Segmentado o Pipeline realiza simultáneamente la ejecución de la instrucción y la búsqueda delcódigo de la siguiente, de esta manera, se puede ejecutar una instrucción en un solo ciclo máquina.

Este sistema acompañado de una estructura Harvard, permite que las instrucciones se ejecuten en un solo ciclomáquina, salvo en el caso de saltos de programa.

1.3.2.3 PROCESADOR SEGÚN EL NUMERO DE INSTRUCCIONES

Las CPU’s atendiendo al tipo de instrucciones que utilizan pueden clasificarse fundamentalmente en:

CPUCPUMEMORIA DEPROGRAMA

(ROM)

MEMORIA DEPROGRAMA

(ROM)

MEMORIA DEDATOS(RAM)

MEMORIA DEDATOS(RAM)CPUCPU

MEMORIA DEPROGRAMA

(ROM)

MEMORIA DEPROGRAMA

(ROM)

MEMORIA DEDATOS(RAM)

MEMORIA DEDATOS(RAM)

Fig. 1.44 Arquitectura Harvard

OSC

PC PC+1

BUSQUEDA INST (PC)

EJECUTA INST (PC-1) BUSQUEDA INST (PC+1)

EJECUTA INST (PC)

CICLO MAQUINA

OSC

PC PC+1

BUSQUEDA INST (PC)

EJECUTA INST (PC-1) BUSQUEDA INST (PC+1)

EJECUTA INST (PC)

CICLO MAQUINA

PC PC+1

BUSQUEDA INST (PC)

EJECUTA INST (PC-1) BUSQUEDA INST (PC+1)

EJECUTA INST (PC)

CICLO MAQUINA

Fig. 1.45 Ciclo máquina en un procesador segmentado

Page 36: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 36

CISC (Complex Instruction Set Computer) . Son procesadores con un juego de instrucciones complejo.Su repertorio de instrucciones es elevado y algunas de ellas son muy sofisticadas y potentes. Su problemaes que requieren de muchos ciclos de reloj para ejecutar las instrucciones.

RISC (Reduced Instruction Set Computer). Son microprocesadores con un repertorio de insruccionesreducido. Las instrucciones son muy simples y suelen ejecutarse en un solo ciclo máquina. Losprocesadores RISC suelen tener una estructura Pipeline y ejecutar casi todas las instrucciones en el mismotiempo.

SISC (Specific Instruction Set Computer). Estos procesadores poseen un juego de instruccionesespecífico para cada aplicación. Están destinadas a aplicaciones muy concretas.

1.3.2.4 ARQUITECTURA DEL PROCESADOR SEGÚN EL FORMATO DE LASINSTRUCCIONES

En un procesador con ArquitecturaOrtogonal una instrucción puedeutilizar cualquier elemento de laarquitectura como fuente o destino.Esta es una diferencia muy significativarespecto de la arquitectura tradicional.

En las siguientes figuras se representanlas Arquitecturas Tradicional yOrtogonal.

La principal diferencia entre ambos radica en la ubicación del registro de trabajo (Acumulador). En losprocesadores tradicionales todas las operaciones se realizan sobre el Acumulador. La salida del mismo estaconectada a una de las entradas de la ALU y, por lo tanto, este es siempre uno de los dos operandos de cualquierinstrucción. La salida de la ALU va solamente a la entrada del Acumulador, el resultado de cualquier operaciónsiempre quedará en este registro.

En la estructura Ortogonal la salida de la ALU va al registro de trabajo y también a la memoria de datos, así elresultado puede guardarse en cualquiera de los dos destinos. En las instrucciones de doble operando, uno de los dosdatos siempre debe estar en el registro de trabajo. La gran ventaja de esta arquitectura es que permite un granahorro de instrucciones ya que el resultado d cualquier instrucción que opere con la memoria, puede dejarse en lamisma posición de memoria o en el registro de trabajo.

1.3.3 LENGUAJES DE PROGRAMACION. EL ENSAMBLADOR

Los lenguajes de programación se pueden dividir grosso modo, en las siguientes jerarquías: Lenguajes de microprogramación. Lenguajes de máquina. Lenguajes ensambladores. Lenguajes de alto nivel.

El Lenguaje de microprogramación es, normalmente invisible para el usuario de un microprocesador, porquereside en la parte interna del mismo llamada ROM del microprograma. El microprograma interpreta las

MEMORIADE DATOSMEMORIADE DATOS

ACUMULADORACUMULADOR

ALU

MEMORIADE DATOSMEMORIADE DATOS

ACUMULADORACUMULADOR

ALU

Fig. 1.46 ArquitecturaTradicional

MEMORIADE DATOS

MEMORIADE DATOS WW

ALU

MEMORIADE DATOS

MEMORIADE DATOS WW

ALU

Fig. 1.47 ArquitecturaOrtogonal

Page 37: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 37

instrucciones en lenguaje máquina recibidas por el microprocesador y es el responsable de generar lasmicroinstrucciones necesarias para ejecutar correctamente cada instrucción.

El Lenguaje Máquina, es la forma binaria (0’s y 1’s) del programa y es el único lenguaje que, en última instanciaentiende el microprocesador. Una forma simplificada es el código objeto, el cual representa cada código binario porse equivalente hexadecimal.

El Lenguaje Ensamblador y los lenguajes de alto nivel (Pascal, Basic, C, C++, etc) consisten en una serie deinstrucciones especiales (statements) que son más fáciles de entender por la personas que las instrucciones enlenguaje máquina o código objeto.

El Lenguaje Ensamblador utiliza Nemónicos que son grupos de caracteres alfanuméricos que simbolizan lasórdenes o tareas a realizar con cada instrucción. De manera general, los nemónicos se corresponden con lasiniciales del nombre de la instrucción en inglés, d forma que “recuerdan” la operación que realiza la instrucción, loque facilita su memorización.

Para ser comprendidas las instrucciones escritas en otro lenguaje, estas deben ser convertidas a lenguaje demáquina por medio de un programa llamado traductor o compilador.

El código fuente está compuesto por una sucesión de líneas de programa. Todos los ficheros fuente poseen unaestructura similar independientemente del procesador utilizado. Cada línea de programa suele estar compuesta de 4campos separados por uno o más espacios o tabulaciones. Estos campos son:

1. Campo de las etiquetas

2. Campo del código de operación

3. Campo de operandos y datos

4. Campo de comentarios.

ETIQUETA OP-CODE OPERANDOS COMENTARIOS

SUM1:SUM2:RESUL:

ORGEQUEQUEQUMVIMVIADDSTAHLT

0000H08H07H0020HA,SUM1B,SUM2BRESUL

;Empezar en la dir. 0000h;Define dato1 SUM1=08h;Define dato2 SUM2=07h;Define dir de resultado RESUL=0020h;Carga reg. Ac. con el dato1;Carga reg. B con dato2;Suma dato1+dato2;Lleva resultado a la posición RESUL;Stop

El primer campo corresponde a la etiqueta. Como se mencionó anteriormente, es un nemónico alfanumérico de 5 o6 caracteres (siendo el primero una letra) para referirse a direcciones que son específicamente conocidas.Normalmente, una etiqueta termina en dos puntos (:) para separarla de los otros campos.

El segundo campo corresponde al nemónico del op-code de la instrucción a ser ejecutada. Cada procesador tiene supropio conjunto de códigos nemónicos para designar cada una de las instrucciones a las que responde.

CODIGO FUENTE

PROGRAMA ENENSAMBLADOR,BASIC, etc.

TRADUCTOR

ENSAMBLADOR,COMPILADOR,INTERPRETE, etc

CODIGO FUENTE

PROGRAMA ENLENGUAJE DEMAQUINA

CODIGO FUENTE

PROGRAMA ENENSAMBLADOR,BASIC, etc.

TRADUCTOR

ENSAMBLADOR,COMPILADOR,INTERPRETE, etc

CODIGO FUENTE

PROGRAMA ENLENGUAJE DEMAQUINA

Fig. 1.48 Conversión de Lenguaje Ensamblador a Lenguaje de máquina

Page 38: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 38

El tercer campo corresponde a los operandos o parámetros requeridos por la instrucción. Contiene, separados porcomas (,), las designaciones de los registros y/o los datos o direcciones sobre los cuales actúa la misma.

El cuarto campo corresponde a os comentarios. En esta área se escribe, entre otras cosas, notas especiales quesirven de referencia no solamente al programador sino a cualquier persona que consulte el programa. Loscomentarios deben dar explicaciones de la instrucción o grupos de instrucciones desde el punto de vista de laaplicación.

Los comentarios comienzan con asterisco (*) o punto y coma (;) y no son ejecutables.

1.3.4 LAS INSTRUCCIONES. MODOS DE DIRECCIONAMIENTO

1.3.4.1 LAS INSTRUCCIONES

Básicamente puede decirse que el bloque de instrucciones debe ser completo y eficaz de modo que podamosrealizar todos los cálculos necesarios de la forma más rápida y precisa posible.

Una de las principales características de todo microprocesador es disponer de un buen conjunto de instruccionesque le den la mayor versatilidad posible. Se establecen los siguientes grupos, tipos o conjuntos de instrucciones:

1. Aritméticas: Son las instrucciones que realizan operaciones de tipo aritmético como sumas, restas,incrementos, decrementos, etc. Todas las operaciones de este tipo afectan al registro de estado, es decira los flags.

2. Movimiento de datos: Este tipo de instrucciones de movimiento o transferencia de datos, permitenrealizar una copia del contenido de un registro o dirección de memoria (origen), en otro registro odirección de memoria (destino), sin alterar el contenido del origen.

3. Instrucciones lógicas: Realizan operaciones lógicas entre los operandos. Afectan a los flags según seael caso y las operaciones se realizan bit a bit entre los datos.

4. Instrucciones de comparación: Son operaciones de restar o operaciones XOR entre dos operandos.Afectan a los flags pero no se almacena el resultado.

5. Instrucciones de salto: Son instrucciones de modificación de secuencia que alteran la ejecuciónnormal del programa, cargando el contador de programa con la nueva dirección en la que deseamoscontinúe ejecutándose el programa. Los saltos o bifurcaciones pueden ser:

Condicionales: Cuando son controlados por el estado de un indicador o flag, y basándose en dichoestado se decide si se salta o no.

Incondicionales: Cuando modifican el contador de programa sin condición previa.

Dentro de cada uno de estos tipos, podemos encontrar además la particularidad de que al efectuar lossaltos se realicen con posibilidad de retorno o no.

6. Instrucciones de entrada/salida: Son en realidad instrucciones de transferencia, pero no entreregistros o posiciones de memoria, sino con elementos periféricos que permiten la comunicación delmicroprocesador con el exterior.

7. Instrucciones de control: Sirven para actuar internamente sobre el microprocesador, provocandodetenciones en la ejecución del programa, etc.

8. Instrucciones de bit: Trabajan o tratan bits independientes.

9. Instrucciones de desplazamiento: Desplazan o rotan hacia la izquierda o hacia la derecha los bits deun registro (Acumulador).

Page 39: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 39

1.3.4.2 MODOS DE DIRECCIONAMIENTO

Los modos de direccionamiento son aquellos procedimientos empleados por el microprocesador para poder accedera determinados operandos, instrucciones, posiciones de memoria, registros de entrada/salida, etc. Por tanto, elobjeto del direccionamiento es un valor o dato que se encuentra en un lugar de la memoria, en algún registro o en lapropia instrucción. Los diferentes modos de direccionamiento que pueda emplear un microprocesador leproporcionan un determinado nivel de potencialidad, permitiéndole manejar datos y realizar operaciones con mayorfacilidad.

En general podemos diferenciar los siguientes tipos o modos de direccionamiento:

1. Direccionamiento inmediato: En este caso el objeto (un operando) se encuentra incluido en la instrucción, esdecir, a continuación del código de la instrucción se añade el operando propiamente dicho. Las instruccionesque emplean este direccionamiento pueden ser de dos o tres bytes y son instrucciones de ejecución rápida ysencilla.

2. Direccionamiento implícito: Las instrucciones que emplean este modo de direccionamiento tienen un solobyte y es la propia instrucción la que indica qué registro o dirección de memoria se va a utilizar en laoperación.

3. Direccionamiento absoluto: En este caso las instrucciones incluyen la dirección de memoria donde seencuentra el dato con el que se va a operar. En este tipo de direccionamiento pueden darse tres supuestos:

a. La instrucción apunta a un registro que contiene la información deseada (direccionamiento tambiénllamado de registro).

b. La instrucción contiene la dirección completa en la que se encuentra el dato, empleando para ello tresbytes.

c. Cuando la instrucción se refiere solo a una parte de la memoria (página). En este caso el byte más alto losuministra el contador de programa y el byte más bajo se expresa a continuación del código de instrucción,por tanto solo se emplean dos bytes (Este direccionamiento también se llama de página base).

4. Direccionamiento directo relativo: La instrucción en este caso contiene un valor determinado al que podemosllamar V. La dirección total se calcula sumando a V el valor que esté almacenado en un registro al que hagareferencia la instrucción. El valor de V puede ser tanto positivo como negativo.

5. Direccionamiento indirecto: La instrucción contiene una dirección a la que llamaremos D1. El contenido deD1 no es el objeto directo de nuestra instrucción, sino que contiene otra dirección que llamaremos D2. Estanueva dirección D2 es la que contiene el dato que sí es objeto de la instrucción.

Expresados ya los modos de direccionamiento con carácter general, pasamos ahora a ver los modos dedireccionamiento que utiliza el microprocesador 8085 en particular, que son los cuatro siguientes:

Direccionamiento Directo Absoluto. La instrucción contiene la dirección exacta y completa donde seencuentra el dato. Por ejemplo:

LHLD A716H

Direccionamiento por Registro. La instrucción lleva el registro en el que está el dato que va a sertratado. Por ejemplo:

MOV A,BMOV B,C

Page 40: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 40

Direccionamiento por Registro Indirecto. En la instrucción se especifica un registro cuyo contenidoapunta a una dirección de memoria en la que se encuentra el dato. Por ejemplo:

MOV A,M

M es una referencia simbólica a una dirección de memoria apuntada o señalada por el par de registrosHL.

Direccionamiento Inmediato. La instrucción contiene el dato con el que se desea operar, pudiendo ser eldato de uno o dos bytes.

LXI H,A0B7HADI 3AH

1.4 EJERCICIOS BASICOS DE PROGRAMACION

Para las prácticas vamos a utilizar el entrenador del microprocesador 8085A del laboratorio, que tiene el siguientediagrama de bloques.

Para realizar los programas en Lenguaje Ensamblador, se recomienda construir:

El algoritmo. Diagrama de flujo. Escribir los mnemónicos de las instrucciones.

1. Empleo de las instrucciones básicas

a) Mayor de dos números: Leer un número de una dirección de memoria determinada, si es mayor que 12cargarlo en el registro B y en caso contrario cargarlo en el registro C.

En primer lugar debemos analizar el problema detenidamente hasta entenderlo de forma correcta y poder asírealizar las especificaciones y acotaciones que consideremos oportunas.

Se hace referencia a una dirección de memoria, por tanto se trata de un byte que contiene el Dato buscado. Sesupone que buscamos un número positivo (no dicen nada en contra). Y además añadimos que la dirección dememoria en la que se encuentra el Dato, la tenemos en el registro par HL.

Fig. 49 Diagrama de bloques del Entrenador uP8085A

Page 41: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 41

Además, podemos intuir que se trata de una toma de decisión sencilla ya que establece una acción a ejecutar si secumple una condición determinada y en caso contrario debe hacer nada debe ejecutar otra acción.

De esta forma el algoritmo sería de la siguiente manera:

NOMBRE: MENOR12FUNCION: Leer dato memoria y almacenarlo en B (>12) o en CPRECONDICIONES: HL = Dirección memoria, B=0, C=0POSTCONDICIONES: Dato en B o en C

Leer Dato de la memoriaSI Dato > 12B = Dato

SI NOC = Dato

FIN DE SIFin del Programa

A continuación se muestra el diagrama de flujo correspondiente a estepseudocódigo, donde se puede comprobar el desarrollo del programa.

----------------------------------------------------------------------------------------------1 ;------------------------------------------2 ;NOMBRE : MENOR123 ;FUNCION : Si Dato>12 va a B si no va a C4 ;PRECONDICION : HL=Dirección Dato, B=0, C=05 ;POSTCONDICION : Resultado en B o en C6 ;------------------------------------------78 0000 MENOR12:9 0000 F5 PUSH PSW

10 0001 7E MOV A,M11 0002 FE 0C CPI 1212 0004 CA 0D 00 JZ SALT113 0007 DA 0D 00 JC SALT114 000A 46 MOV B,M15 000B F1 FIN POP PSW16 000C END17 000D 4E SALT1 MOV C,M18 000E C3 0B 00 JMP FIN

----------------------------------------------------------------------------------------------

b) Suma decimal de varios dígitos.

Con este ejercicio se llevará a cabo la suma de dos números decimales de varias cifras. Puesto que no nos dicennada en el enunciado, supondremos que se trata de números de ocho cifras. Los números a sumar (los sumandos) seencuentran almacenados en la memoria RAM expresados según el sistema decimal (BCD). Puesto que en cada bytedisponemos de ocho bits, podemos tener representadas dos cifras decimales en cada byte, por lo que para completarlas ocho cifras de cada número se necesitarán cuatro bytes por número.

La dirección donde se encuentra almacenado el primer byte del primer sumando, vendrá dada por SUM1 y el restoen direcciones consecutivas. La dirección del primer byte del segundo sumando, estará dada por SUM2 y el restoen direcciones consecutivas. El resultado de la operación será almacenado en las direcciones del primer sumando,por tanto, éste se perderá.

Necesitamos desarrollar un bucle que sume los cuatro bytes representativos de cada número. Para realizar esteproceso, es preciso iniciar un Contador que nos permita establecer el final del bucle.

Fig. 1.50 Diagrama de flujo

Page 42: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 42

El pseudocódigo propuesto es el siguiente:

NOMBRE: SUMAFUNCION: Suma dos números decimales de 8 cifras cada unoPRECONDICIONES:Primer sumando en SUM1

Segundo sumando en SUM2POSTCONDICIONES: El resultado se almacena en

lugar de SUM1

Apuntar a SUM1Apuntar a SUM2Iniciar Contador = 4

MIENTRAS Contador > 0Sumar bytes SUM1+SUM2Ajuste decimalGuardar resultado en SUM1Apuntar a SUM1+1Apuntar a SUM2+1Contador = Contador – 1

FIN DE MIENTRASFin del Programa

En la 1.51 se representa el diagrama de flujo correspondiente este pseudocódigo y en él puede apreciarse eldesarrollo o flujo de las órdenes a ejecutar por la computadora o sistema.

----------------------------------------------------------------------------------------------

1 ;------------------------------------------2 ;NOMBRE : SUMA3 ;FUNCION : Suma dos núm decimales 8 cifras4 ;PRECONDICION : SUM1 Y SUM2 conocidos5 ;POSTCONDICION : Resultado en SUM16 ;------------------------------------------7 20 80 SUM1 EQU 8020H8 30 80 SUM2 EQU 8030H9

10 0000 SUMA:11 0000 F5 PUSH PSW12 0001 E5 PUSH H13 0002 C5 PUSH B14 0003 D5 PUSH D15 0004 21 20 80 LXI H,SUM116 0007 11 30 80 LXI D,SUM217 000A A7 ANA A18 000B 06 04 MVI B,0419 000D 1A SALT1 LDAX D20 000E 8E ADC M21 000F 27 DAA22 0010 77 MOV M,A23 0011 23 INX H24 0012 13 INX D25 0013 05 DCR B26 0014 C2 0D 00 JNZ SALT127 0017 D1 POP D28 0018 C1 POP B29 0019 E1 POP H30 001A F1 POP PSW31 001B END-------------------------------------------------------------------------------------------

Fig. 1.51 Diagrama de flujo

Page 43: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 43

c) Subrutina: Retardo

En este caso nos piden desarrollar una subrutina o un programa de temporización. No se nos indicacuánto tiempo se debe permanecer en este estado, por lo que será una característica que impondremosnosotros. Tampoco se dice nada acerca de qué debe hacer el microprocesador durante ese tiempo.

El programa básicamente consistirá en desarrollar un bucle o ciclo que se repita durante un tiempo, o undeterminado número de veces, y en el que el microprocesador “no haga nada”. Es decir, estableceremosun tiempo de espera. Como se ha hecho en otras ocasiones se establecerá un Contador que nos señale elfinal del bucle y por tanto el final del tiempo de espera.

Según las condiciones expresadas, tendremos el siguiente pseudocódigo:

NOMBRE: TEMPORIZFUNCION: Realiza un tiempo de esperaPRECONDICIONES: Conocemos el dato del ContadorPOSTCONDICIONES: Ninguna

Iniciar el ContadorMIENTRAS Contador > 0

No hacer nadaDecrementar Contador

FIN DE MIENTRASFinal del Programa

En la Fig. 1.52 se muestra el diagrama de flujo.

----------------------------------------------------------------------------------------------

1 ;------------------------------------------2 ;NOMBRE : TEMPORIZ3 ;FUNCION : Realiza un tiempo de espera4 ;PRECONDICION : Contador=CONTA5 ;POSTCONDICION : Ninguna6 ;------------------------------------------78 0000 TEMPORIZ:9 0000 F5 PUSH PSW

10 0001 1B SALT1 DCX D11 0002 7A MOV A,D12 0003 B3 ORA E13 0004 00 NOP14 0005 00 NOP15 0006 00 NOP16 0007 C2 01 00 JNZ SALT117 000A F1 POP PSW18 000B C9 RET1920 000C END

-------------------------------------------------------------------------------------------------------------------------------------

Para el llamado de la subrutina se emplea la instrucción CALL name.

2. Control de un juego de LEDs: Se desea rotar a la izquierda los LEDs conectados al PORTA cada ciertotiempo.

Antes de realizar el programa, revisemos la configuración de los puertos en el 8155 de nuestro entrenador delaboratorio. En la tabla siguiente se presenta las direcciones de los Puertos que tiene el 8155.

Fig. 1.52 Diagrama de flujo

Page 44: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 44

DIRECCIONES I/O SELECCIÓNx – puede ser 0 o 1A7 A6 A5 A4 A3 A2 A1 A0

x x x x x 0 0 0 Registro de Comandos/Estadosx x x x x 0 0 1 PORTA. Propósito general E/Sx x x x x 0 1 0 PORTB. Propósito general E/Sx x x x x 0 1 1 PORTC. Propósito general E/S o controlx x x x x 1 0 0 Registro inferior de temporizaciónx x x x x 1 0 1 Registro superior de temporización

El formato de la palabra de configuración es la siguiente.

7 6 5 4 3 2 1 0TM2 TM1 IEB IEA PC PC PB PA

PA<7:0> 0 - EntradaPB<7:0> 1 - Salida

00 - Entradas11 - Salidas

PC<5:0> 01 - Activa las interrupciones10 – Activa las interrupciones

Habilita la interrupción del PORTAHabilita la interrupción del PORTB

Comando delTemporizador

En este programa solo se presenta el código, dejando como tarea al estudiante la realización del algoritmo ydiagrama de flujo.

----------------------------------------------------------------------------------------------------------------------------------------ORG 0000H ; Dirección de inicio de programaMVI A,0Fh ; Carga palabra de control paraOUT 00 ; configurar PORTA como salidaLXI SP,00FFh ; Inicializa Stack PointerMVI A,01h ; Dato para primer LED

LED OUT 01 ; Encender LEDCALL Tiempo ; Subrutina de retardoRAL ; Rotar un bit a la izquierdaJMP LED ; Encender el siguiente LED

; ---------------------------------------------------------------------------------------

ORG 0040h ; Dirección de inicio de subrutinaTiempo MVI B,60h ; Cargar contador externoLoop1 MVI C,0FFh ; Cargar contador internoLoop2 DCR C ; Decrementa contador interno

JNZ Loop2 ; Nuevo ciclo internoDCR B ; Decrementa contador externoJNZ Loop1 ; Nuevo ciclo externoRET ; Regresa a programa principal

----------------------------------------------------------------------------------------------

En la siguiente la siguiente figura se muestra la conexión de un LED al PORTA del 8155.

Fig. 1.53 Conexión de LEDs al PORTA

Page 45: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 45

3. Control del giro de un motor DC

El giro de un motor DC va a ser controlado en función de la siguiente tabla de verdad.

S1 S0 Operación0 0 Stop0 1 Giro a la derecha1 0 Giro a la izquierda1 1 No se utiliza

El programa, con sus respectivos comentarios, es el siguiente:

----------------------------------------------------------------------------------------------------------------------------------------ORG 0000H ; Dirección de inicio de programaMVI A,02h ; Carga palabra de control para configurarOUT 00 ; PORTA como entrada y PORTB como salidaLXI SP,00FFh ; Inicializa Stack PointerMVI A,00h ; Empieza con el motor apagadoOUT 02h

MOTOR IN 01h ; Lee estado de interruptoresANI 03h ; Filtra bits no utilizadosSUI 00h ; Si es ceroJZ MOTOR

IN 01h ; Lee estado de interruptoresANI 03h ; Filtra bits no utilizadosSUI 01h ; Si no es unoJNZ MOTOR ; Verifica de nuevo los interruptoresCALL MOTOR_DER ; Si es uno, gira motor a la derecha

IN 01h ; Lee estado de interruptoresANI 03h ; Filtra bits no utilizadosSUI 02h ; Si no es dosJNZ MOTOR ; verifica de nuevo los interruptoresCALL MOTOR_IZQ ; Si es dos, gira motor a la izquierda

JMP MOTOR ; Verifica por siempre estado de interruptores

; ---------------------------------------------------------------------------------------

ORG 0040h ; Dirección de inicio de subrutinaMVI A,01h ; Cargar datoOUT 02h ; y enviar al PORTBRET ; Regresa al programa principal

ORG 0050h ; Dirección de inicio de subrutinaMVI A,02h ; Cargar datoOUT 02h ; y enviar al PORTBRET ; Regresa al programa principal

----------------------------------------------------------------------------------------------

Fig. 1.54 Conexión de un motor DC

Page 46: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 46

AUTOEVALUACION

1. ¿Qué integrados forman parte de las siguientes escalas de integración: Baja escala de integración (SSI),mediana escala de integración (MSI), alta escala de integración (LSI) y muy alta escala de integración(VLSI).

2. Complete el siguiente cuadro comparativo de los métodos de diseño digital, según el ejemplo.

CUADRO COMPARATIVO DE LOS METODOS DE DISEÑO DIGITAL

CLASE DE DISEÑO METODOS DE DISEÑO PARAMETROS DEEVALUACION

Con circuitos SSI

(Especificar ¿Qué elementosforman parte de esta escala deintegración?)

Procesos sistemáticos como elAlgebra de Boole, los Mapas deKarnaught, Tablas de verdad, etc.

Menor número de elementos.(Especificar ¿cuáles elementos?)

Con circuitos MSI

Con circuitos LSI

Con circuitos VLSI

3. ¿Cuáles cree usted serían las ventajas de la utilización de los sistemas basados en microprocesadores frentea los sistemas electrónicos de lógica cableada? Explique cuatro de ellas.

4. Anotar cuatro aplicaciones de los microprocesadores en las siguientes ramas tecnológicas: industria,medicina, telecomunicaciones, informática, medición y cálculo, consumo doméstico, comercio y banca.

5. Investigar el funcionamiento de una de las aplicaciones anotadas anteriormente en cada caso.

6. Busque en libros, revistas técnicas nacionales o internacionales o en sitios de INTERNET, algún artículosobre la evolución y desarrollo de los microprocesadores y haga un resumen para presentarlo. Indique lafuente de consulta.

7. En los sitios de INTERNET, consulte el funcionamiento de un equipo de comunicaciones que utilice elmicroprocesador y haga un resumen para presentarlo. Indique la fuente de consulta.

8. En los sitios de INTERNET, consulte el funcionamiento de un equipo empleado en la automatizaciónindustrial que utilice los microprocesadores y haga un resumen para presentarlo. Indique la fuente deconsulta.

9. De acuerdo a sus conocimientos, realice un diagrama de bloques de los componentes de un computadorpersonal (PC).

10. ¿Por qué, según Ud., no se emplea una PC en los procesos industriales, debiéndose para ello diseñardispositivos dedicados a la industria?

11. Defina los siguientes términos especificando su función según sea el caso: Unidad Aritmética y Lógica(ALU), Unidad de Control, Memoria RAM, Unidad de Entrada/Salida, Periférico (enumere 10 de ellos),Bus (indique los tipos y su función), Instrucción, Programa, Software, Hardware, Firmware, UnidadCentral de Procesamiento (CPU).

Page 47: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 47

12. Indique la función de los registros siguientes: Contador de programa, Registro de trabajo o Acumulador,Registro de Instrucciones, Registro de estado, Registro Puntero de Pila (SP).

13. ¿Cuáles son las características de una memoria?

14. ¿En qué se diferencia un bus de datos y direcciones?

15. ¿Qué parte de un sistema de microprocesadores se encarga se sincronizar el funcionamiento con los demásdispositivos y mediante que líneas lo hace?

16. ¿Cuántas líneas forman el Bus de Direcciones y de qué depende este número?

17. Además de la CPU ¿qué circuitos integrados interviene en un sistema de microprocesadores?

18. ¿Cuáles son las diferencias entre un PPI8155 y un PPI8255?

19. ¿Qué es un ciclo de instrucción. Describa las fases que lo conforman en base a un ejemplo?

20. ¿Cuál es la diferencia entre un programa y un algoritmo?

21. ¿Cuáles son las funciones de: la señal de RESET, del Oscilador, del integrado 8212?

22. Enumere las características técnicas del microprocesador 8085A.

23. Investigue las características de los microprocesadores MC6800 y Z80 y realice un cuadro comparativoentre los tres microprocesadores.

24. ¿Qué son los Mnemónicos y cómo se obtienen los códigos de máquina con ayudas computacionales?

25. ¿Qué son los modos de direccionamiento? Explique dos de ellos en base a un ejemplo.

26. Indique y explique los pasos a seguir para guardar datos en una memoria RAM.

27. ¿Cuáles son las diferencias entre un microprocesador de Arquitectura Von Neumann y Harvard.

28. ¿Qué elementos componen un sistema básico de un microprocesador de 8 bits 8085A?

29. ¿En función de que se clasifican las instrucciones de un microprocesador y cuáles son estos tipos?

30. ¿Qué función realizan las líneas de control y de donde toman la información?

Page 48: Sistemas Con Microprocesadores_cap1

Sistemas basados en microprocesadores Parte I

Ing. Gerardo Collaguazo 48

BIBLIOGRAFIA

1. Luque Sacaluga David, Electrónica Digital y Microprogramable, Ed. Alfa-Omega, Mexico2006.

2. Vallejo Horacio, Microprocesadores y Microcontroladores, Ed. Televisa SA, Mexico 2002.

3. Moga Mihai, Conducerea proceselor din Energetica cu Calculatoare de Proces, Ed. Miton,Timisoara 1999.

4. Moga Mihai, Sisteme cu Microprocesor Z80, Ed. Mirton, Timisoara 1998.

5. Enciclopedia Electrónica Digital y Microprocesadores, CEKIT 1999.

6. Kammerer y otros, Módulos de la Microelectrónica, Curso de Electrónica III, Libro de Texto,GTZ, Munchen 1992.

7. Vallejo Horacio, Revista Saber Electrónica No. 126.

8. Vallejo Horacio, Revista Saber Electrónica No. 132.

9. Datasheets: CI8212, uP 8085A, 8155, PPI 8255A, RAM6116, EPROM2716, EEPROM2816.

Direcciones de Internet.1. www.monografias.com/trabajos32/microprocesador-8085/microprocesador-8085.shtml2. www.alpertron.com.ar/8085.htm3. http://www.iuma.ulpgc.es/~armas/asignaturas/fundamentos/tutorial/intel8085/ppframe.htm4. http://www,webelectronica.com.ar/news05/news06.htm5. www.geocities.com/hesovi/introduccionA|8085.pdf6. www.mmtraining.com.ve/cursos/DanyCocchioni/Microprocesador.htm