Está en la página 1de 48

Sistemas basados en microprocesadores

Parte I

CAPITULO 1

SISTEMAS BASADOS EN MICROPROCESADORES


La ciencia es el arte del ensayo y el error, su producto ms importante es la razn....
Los sistemas lgicos basados en transistores poseen las mismas ventajas que los circuitos electrnicos de
estado slido: son seguros, confiables, pequeos, rpidos y baratos. Desde el punto de vista del usuario
industrial, su nica falla es su difcil modificacin con el cambio de aplicacin. Hoy en da se ha popularizado
un nuevo enfoque en la construccin de sistemas lgicos industriales. En este nuevo enfoque, la toma de
decisiones del sistema se lleva a cabo por instrucciones codificadas las cuales estn almacenadas en un
circuito de memoria y ejecutadas por un microcroprocesador, por lo que, a la hora de cambiar de aplicacin
ser suficiente cambiar las instrucciones codificadas, haciendo que estos sistemas sean ms flexibles.
PRE-REQUISITOS
Para la comprensin adecuada del contenido de Microprocesadores, se requiere los conocimientos previos
de:
Electrnica bsica: semiconductores, transistores, elementos de visualizacin (LEDs, Displays,
etc.).
Electrnica Digital: Sistemas de numeracin, Circuitos Combinacionales y Secuenciales
(Compuertas lgicas, Registros, etc.).
Sistemas Anlogo-Digitales: Amplificadores operacionales, memorias.
Programacin: Definiciones bsicas, algoritmos y diagramas de flujo.
OBJETIVOS
Establecer los fundamentos necesarios para la comprensin 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 captulo, el estudiante estar en capacidad de:
Realizar un anlisis comparativo entre los controladores tradiciones y los sistemas basados en
microprocesadores.
Describir correctamente la estructura fsica y funcional de un sistema basado en
microprocesadores.
Identificar con criterio fundamentado las diferentes partes que constituyen los sistemas basados
en microprocesadores.
Realizar un diseo correcto de un sistema bsico basado en microprocesadores de 8 bits.
Utilizar las instrucciones de Lenguaje Ensamblador, en la programacin de un sistema bsico de
microprocesador de 8 bits, orientado al control de perifricos de seal digital.

Ing. Gerardo Collaguazo

Sistemas basados en microprocesadores

Parte I

1.1 COMPONENTES DE BASE DE UN SISTEMA DE MICROPROCESADORES


1.1.1

INTRODUCCION

Con el avance tecnolgico, los procesos de produccin industriales han sufrido grandes cambios, por lo que quienes
estamos involucrados con el tema, debemos estar permanentemente informados acerca de los nuevos productos,
mtodos de proceso, solucin de fallas, sistemas, etc.
En la actualidad, la automatizacin es un rea que est en permanente contacto con nosotros, por esta razn,
debemos estar preparados y conocer el funcionamiento de dichos sistemas.
Evolucin
xxxx: Comunicaciones y controles con elementos mecnicos
1968: Se sustituyen los rel s con transistores
1973: Se incorpora el mP
1977: Aparecen mejoras en
lenguaje de programacin
1980: Aparecen los robots controlados
por ordenador
1990: Aparece la comunicaci n en red
en el control de procesos
2000: Los PLCs van de la mano con
los microcontroladores

Ao
Fig.1.1 Evolucin de los controladores industriales

Encontramos
sistemas
basados
en
microprocesadores en la mayora de productos
sean estos de uso domstico (hornos de
microondas, estreos, reproductores de CDs,
etc.), industrial (automotriz, textil, plstica,
etc.), equipos de comunicacin, de oficina,
instrumentos de laboratorio, etc., por tal
razn, es muy importante que cualquier
tcnico en electrnica comprenda la manera
de detectar los problemas en los
microprocesadores.

Se dice que en la primera parte de la revolucin industrial las mquinas reemplazaron los msculos, mientras que
en la segunda, la actual, los microprocesadores y sus aplicaciones intentan reemplazar la POTENCIA DEL
CEREBRO; igualmente podemos afirmar que el computador digital es, junto al motor elctrico, uno de los inventos
decisivos de la humanidad. Todos los sistemas tecnolgicos modernos estn compuestos por un mtodo de
movimiento y un sistema de control. El motor y el computador digital ocupan, en su orden, estos lugares.
Un microprocesador es un circuito electrnico programable que requiere de apoyo para su funcionamiento.

1.1.2 ROL Y ESTRUCTURA


Teniendo en cuenta que la palabra
sistema sugiere un conjunto de
elementos relacionados entre s, para
realizar una funcin bien definida que
ninguno podra hacerlo por s solo;
podramos decir que un sistema basado
en microprocesadores es un conjunto de
componentes (circuitos electrnicos)
interconectados capaces de efectuar
sobre la informacin proveniente del
proceso, representada en forma binaria,
operaciones aritmticas y lgicas, y
realizar la transferencia de datos con los
diferentes perifricos conectados al
sistema. Bajo este aspecto tenemos:

EQUIPO A CONTROLAR O
PROCESO INDUSTRIAL

SENSORES O
CAPTORES
Informaciones
del sistema

ACTUADORES

UNIDAD DE
CONTROL

Elementos de programaci n

Ordenes a ser
ejecutadas

Informaci n recibida

OPERADOR

Fig. 1.2 Sistema de control de procesos

Perifricos de entrada (Sensores o Captores) son quienes reciben la informacin de cambios fsicos del
proceso. Estn representados por los sensores captores de seal de tipo digital o analgico: pulsadores,
interruptores, contactos elctricos, CAD, etc.
Ing. Gerardo Collaguazo

Sistemas basados en microprocesadores

Parte I

La Unidad de control procesa la informacin recibida en base a un programa (secuencia lgica de


instrucciones) y entrega los resultados para ser ejecutados.

Perifricos de salida (Actuadores) que son los encargados de ejecutar las rdenes en funcin de los resultados
de la Unidad de Control. Estn representados por: solenoides, rels, contactores, displays, CDA, etc.
Existen dos soluciones para implementar un circuito digital que resuelva un determinado problema:

a. Lgica cableada: Son circuitos diseados exclusivamente para realizar una aplicacin concreta,
es decir son muy rgidos, lo que significa que para una nueva aplicacin se debe disear un
nuevo circuito.
b. Lgica programada: Es un concepto ms amplio que dio lugar a las mquinas universales
programadas. Se trata de mquinas potentes y flexibles capaces de realizar la mayora de las
funciones bsicas necesarias para cualquier aplicacin. Trabajan de forma secuencial ejecutando
progresivamente las operaciones necesarias en base a un programa.
CARACTERSTICAS DEL SISTEMA
Mantenimiento
Costo
Adaptacin de procesos
Posibilidades de ampliacin
Interconexin y cableado exterior
Estructuracin en bloques independientes

CABLEADA
Mucho
Bajo
Difcil
Bajas
Mucho
Difcil

PROGRAMABLE
Poco
Alto
Fcil
Altas
Poco
Fcil

ANALISIS

PROBLEMA

PROGRAMADOR

PROGRAMA

SISTEMA mP

SOLUCION

El problema mayor que existe al realizar


un sistema basado en microprocesadores,
es aquel que se necesita personal experto
para su diseo y mantenimiento.

CONOCIMIENTOS

DATOS DEL PROBLEMA

Fig. 1.3 Solucin de un problema

Como se dijo anteriormente, un sistema


basado en microprocesadores consta de una
serie de elementos para la entrada, salida,
procesamiento, control y almacenamiento de
informacin. Los enlaces entre estos
elementos se establecen a travs de caminos
de seal, por ejemplo cables, que llevan o
transmiten informacin digital entre un
punto y otro.

Unidad E/S

CPU o mP

UNIDADDE
DE
UNIDAD
ENTRADA
ENTRADA

UNIDADDE
DE
UNIDAD
CONTROL
CONTROL

MEMORIA
MEMORIA
RAM
RAM

UNIDADDE
DE
UNIDAD
SALIDA
SALIDA

ALU
ALU

MEMORIA
MEMORIA
ROM
ROM

Unidad de memoria

Fig. 1.4 Estructura de un sistema de microprocesadores

Ing. Gerardo Collaguazo

Sistemas basados en microprocesadores

Parte I

La funcin principal de un sistema basado en microprocesadores consta en el procesamiento de informacin


recogida del exterior por medio de los perifricos de entrada y la transmisin de los resultados sea directamente al
proceso, sea al operador, por medio de los perifricos de salida conectados al sistema. El procesamiento de la
informacin de entrada se realiza en base a un programa escrito en la memoria del sistema, la misma que puede
tener los resultados finales o intermedios. La comunicacin entre el sistema y los perifricos se realiza por el
conjunto de circuitos que constituyen el denominado Mdulo de Entrada/Salida del sistema. En esta forma se
distinguen tres partes fundamentales: UNIDAD CENTRAL DE PROCESAMIENTO (CPU), BLOQUE DE
MEMORIA y el MDULO DE ENTRADA/SALIDA, interconectados entre ellos por intermedio de los BUSES.
Como aplicacin de lo expuesto hasta el momento, vamos a describir brevemente el principio general de
funcionamiento de un control de temperatura de un horno con microprocesador, tipo On/Off. El diagrama prctico
de conexin se muestra en la figura 5, mientras que el diagrama de bloques en la figura 6.
ELEMENTO CALEFACTOR
SEAL DE CONTROL
SEAL DEL SENSOR

SISTEMADE
DEmP
mP
SISTEMA
e
INTERFACES
e INTERFACES

SEAL DE
ALARMA

SEAL DE SEGURIDAD

HORNO ELECTRICO
SE AL DE
REFERENCIA

SEAL DE
ENERGIZACION

INT. DE SEGURIDAD

ON

0 6 5

OFF
PANEL DE CONTROL

Fig. 1. 5 Esquema prctico de control de temperatura con microprocesador

SENSOR DE TEMP.
SENSOR DE TEMP.
(TERMISTOR,
(TERMISTOR,
TERMOCUPLA,
TERMOCUPLA,
RTD, etc)
RTD, etc)

INTERFACE DE
INTERFACE DE
ENTRADA
ENTRADA
(CONVERTIDOR A/D)
(CONVERTIDOR A/D)

INTERFACE DE
INTERFACE DE
ENTRADA
ENTRADA
(CONVERTIDOR A/D)
(CONVERTIDOR A/D)

IN

IN

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

ELEMENTO
ELEMENTO
CALEFACTOR
CALEFACTOR

INTERFACE DE
INTERFACE DE
SALIDA
SALIDA
(TRANSISTOR,
(TRANSISTOR,
RELE, TRIAC, etc)
RELE, TRIAC, etc)

Fig. 1.6 Diagrama de bloques

SELECTOR DE TEMP
SELECTOR DE TEMP
(PERILLA GRADUADA
(PERILLA GRADUADA
EN C)
EN C)

La temperatura deseada se
ajusta de la perilla que tiene
una escala marcada en grados
centgrados. Esta lectura se
lleva a travs de una interface
de entrada y se almacena en
una parte de la memoria
RAM.
Posteriormente,
el
microprocesador
lee
la
temperatura actual por medio
de un sensor apropiado y
tambin, a travs de una
interface, la convierte en una
seal digital equivalente a los
grados ledos.

Este dato se almacena en una casilla o posicin de memoria RAM. Estas dos operaciones estn dirigidas por un
programa que, generalmente para este tipo de sistemas, est almacenado o grabado en la memoria ROM.

Ing. Gerardo Collaguazo

Sistemas basados en microprocesadores

Parte I

Con estos dos datos se hace una operacin lgica de comparacin en la unidad Aritmtico-Lgica de la CPU. De
acuerdo a los resultados y las instrucciones del programa, la CPU enva una seal a la interface de salida que activa
o desactiva un elemento calefactor o resistencia.
Si la temperatura a controlar es ms baja de lo deseado, se enva un alto (1 lgico) por una lnea del bus de datos y
se enciende la resistencia. Si la temperatura est ms alta de lo deseado, se deja la resistencia sin funcionar
enviando un bajo (0 lgico) por la misma lnea para que la resistencia no funcione. De esta manera la temperatura
se ir ajustando hasta el valor marcado por la perilla.
La unidad de control del microprocesador enviar todas las seales propias a todas las dems unidades para que
realicen 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 la
temperatura de referencia indicada mediante unos interruptores rotativos situados en el panel de control. Desde este
panel se realiza tambin 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, la
puerta del horno debe permanecer cerrada en condiciones normales de funcionamiento. Por esta razn, al horno se
le 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 microprocesador
desenergiza el elemento calefactor, enfriando el sistema. Adems, bajo esta condicin, el microprocesador activa
tambin una seal de alarma.
Las seales proporcionadas por los distintos dispositivos de entrada se leen y se comprueban peridicamente. El
programa almacenado en la memoria decide lo que debe hacerse en cada momento y la informacin que debe
enviar 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 a
continuacin las vamos a analizar.
Bus de datos
Bus de direcciones

CPU
CPU

CLK

Bus de control

Bloque de
memoria

RAM

ROM

Perifricos
ricos de
de
Perif
entrada
entrada

Bloque E/S
Entrada

Salida

Perifricos
Perifricosde
de
salida
salida

Fig. 1.7 Partes de un sistema de microprocesador

1.1.2.1

UNIDAD CENTRAL DE PROCESAMIENTO (CPU)

Es mejor conocida como procesador central y se encarga del procesamiento de la informacin proveniente del
exterior. Este bloque contiene los circuitos lgicos, aritmticos y de control que dirigen y coordinan las operaciones
del sistema y los dispositivos perifricos.
En esta unidad se distinguen: la Unidad de Control, la Unidad Aritmtico-lgica y el bloque de Registros internos.
En la prctica, la CPU se encuentra en forma de un circuito integrado llamado MICROPROCESADOR.

Ing. Gerardo Collaguazo

Sistemas basados en microprocesadores

Parte I
UNIDAD DE CONTROL
UNIDAD DE CONTROL
Ejecutaeeinterpreta
interpretalas
lasinstrucciones.
instrucciones.
Ejecuta
Sincroniza el funcionamiento de
Sincroniza el funcionamiento de
todos los componentes del sistema
todos los componentes del sistema

CPU o mP
Procesa informacin binaria
en base de un programa escrito
en la memoria

UNIDADARITMETICO
ARITMETICO-LOGICA
-LOGICA
UNIDAD
Ejecutaoperaciones:
operaciones:
Ejecuta
Aritmticas:
ticas:+,+,-,-,complemento
complementoaados.
dos.
Aritm
Lgicas: and, or, not, xor, comparacin.
Lgicas: and, or, not, xor, comparacin.
Adem s: desplazamiento, rotaci n y traslado
Adem s: desplazamiento, rotaci n y traslado
de informacin digital
de informaci n digital

BLOQUEDE
DEREGISTROS
REGISTROS
BLOQUE
Memoriaspara
paraalmacenamiento
almacenamientotemporal
temporal
Memorias
dedatos
datosnecesarios
necesariospara
paraeleldesarrollo
desarrollode
de
de
lasactividades
actividadesdel
delmP
mP. .
las

Fig. 1.8 Bloques de la CPU

La Unidad de Control se encarga de la interpretacin y ejecucin de las instrucciones del programa.


Tambin genera las seales que son requeridas por la unidad Aritmtica y otros componentes del sistema
para permitirle realizar la tarea encomendada. Nos indica el sentido de los datos (si entran o salen) o el
dispositivo al que se accesa (memoria o dispositivo de E/S). Estas seales son enviadas a travs de las
lneas llamadas buses.
Esta contiene circuitos lgicos y de temporizacin que generan las seales adecuadas necesarias para
ejecutar cada instruccin en un programa. Esta unidad extrae una instruccin de la memoria enviando una
direccin y un comando de lectura a la unidad de memoria. La instruccin almacenada en la posicin de
memoria se transfiere a ella para despus ejecutarse.
La Unidad Aritmtico-lgica se encarga de realizar las operaciones lgicas y aritmticas usando como
base la suma y la notacin del complemento de dos. Estas operaciones (SUMA, RESTA,
COMPLEMENTO DE DOS, AND, OR, NOT, XOR y la COMPARACIN) las realiza con datos de la
memoria, con datos de los registros internos o con datos de la unidad de entrada. El tipo de operacin que
se realizar, se determina por medio de seales de la unidad de control.

REG. ESTADOS

SR
SR

ACUMULADOR

AC
AC

REGISTROS
REGISTROS
DEPROPOSITO
PROPOSITO
DE
GENERAL
GENERAL

CONTADOR DE PROG.

PC
PC
REG. INSTRUCCIONES

IR
IR
ALU
ALU

BUSES INTERNOS

REGISTROINTERMEDIO
INTERMEDIO
REGISTRO
DEDATOS
DATOS
DE
BUS DE DATOS

LOGICADE
DE
LOGICA
CONTROL
CONTROL
YY
TEMPORIZACION
TEMPORIZACION

REGISTRO
REGISTROINTERMEDIO
INTERMEDIO
DE
DEDIRECCIONES
DIRECCIONES
BUS DE DIRECCION

BUS DE CONTROL

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

Fig. 1.9 Estructura interna de la CPU

Ing. Gerardo Collaguazo

Conectados
por
medio
del
bus
interno
se
encuentran
los
Registros Internos
para
el
almacenamiento
temporal de datos.
Cabe mencionar que
todo
microprocesador
tiene un registro
muy
importante
llamado
ACUMULADOR
el cual contiene el
primer operando de
una operacin y el
resultado
de
la
misma luego de
haberla ejecutado.
6

Sistemas basados en microprocesadores

Parte I

Los registros tienen ciertas funciones especficas que cumplir dentro de la CPU, a saber:
Registro Contador de Programa (PC), es el que indica al microprocesador la direccin de memoria
donde se est ejecutando el programa. Cada vez que se lee una instruccin, el PC se incrementa
automticamente para suministrar la direccin de la posicin de memoria donde se encuentra la siguiente
instruccin o dato del programa.
Registro de instrucciones (IR). Cada vez que el microprocesador capta una instruccin, esta se almacena
en el registro IR, con el fin de proceder a su decodificacin o interpretacin y buscar en la ROM del
microprograma el conjunto de microinstrucciones necesarios para su ejecucin. Esta funcin la realiza un
circuito 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 operacin.
El Registro de estado (SR) suministra, a travs de sus bits (llamados banderas (flags)), informacin
relativa a la ejecucin de ciertas instrucciones como signo, sobreflujo, paridad, generacin de acarreo,
resultado negativo o cero, etc.
Mediante la verificacin del estado de estas banderas se pueden realizar bifurcaciones en la secuencia del
programa.
Registros de propsito general. Son utilizados para almacenar direcciones de memoria, datos, resultados
intermedios y otros propsitos. El nmero y tipos de registros que posee un microprocesador es una parte
muy importante en su arquitectura y su programacin.
A continuacin, como ejemplo, se presentan la organizacin interna de un microprocesador de 8 bits (INTEL
8085A) y tambin su diagrama esquemtico con sus respectivas seales.

Fig. 1.10 Organizacin interna del mP INTEL 8085A

Ing. Gerardo Collaguazo

Sistemas basados en microprocesadores

Parte I

BUS DE DIRECCIONES

ALIMENTACION

BUS DE DATOS/DIRECCIONES
2

RELOJ

CONTROL DE
INTERRUPCIONES

CONTROL DE DIRRECCIONES
SELECCIN DE LECTURA
SELECCIN DE ESCRITURA
HABILITACION DE M-I/O
ESTADO DEL CICLO MAQUINA
PETICION DE DMA
CONFORMIDAD EN EL DMA
PETICION DE ESPERA

PUERTA DE
E / S SERIE

BUS DE CO NT RO L

M IC R OP R OC ES A D O R
8 08 5

PUESTA A CERO

Fig. 1.11 Diagrama esquemtico del mP 8085A

1.1.2.2

BLOQUE DE MEMORIA

La memoria se emplea para dos funciones bsicas:


Almacenamiento de las instrucciones que constituyen el programa. Las instrucciones se codifican mediante
su Cdigo de Operacin (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).
N-1
N-2

Nr. De bits
1
0

Fig. 1.12 La memoria

El bloque de memoria consta de una serie de registros que forman las


denominadas posiciones de memoria las cuales guardan en forma
temporal o definitiva una informacin. Una memoria tiene un nmero
determinado de registros (posiciones) y de igual forma cada posicin de
memoria tiene un nmero determinado de bits. A cada registro o
posicin de memoria se le asigna un nmero llamado direccin de
memoria.
La operacin de la memoria es controlada por la unidad de control, la
cual indica una operacin de lectura o escritura. Por medio de la Unidad
de Control se puede acceder a una posicin de memoria, la cual
proporciona el cdigo de direccin adecuado.

A continuacin se detallan las principales caractersticas de la memoria de un sistema basado en


microprocesadores:

Longitud de la palabra de datos representa el nmero de bits a los cuales se pueden tener acceso en una sola

operacin (de lectura o escritura), es decir el nmero de bits que pueden ser escritos o ledos en una posicin de
memoria.

Capacidad de memoria representa el nmero de bits que pueden ser memorados. Considerando una palabra
de 8 bits, la unidad de medida usual para la capacidad de memoria es el Kilobyte. La unidad 1KB representa
2 10, es decir 1024 bytes. De esta forma tenemos los siguientes tipos de memoria: 1Kx1, 256Kx4, 2Kx8, lo cual
nos permite la identificacin directa de las posiciones de memoria, 1024, 256 y respectivamente 2048 ofrecidas
por el circuito y el nmero de bits de cada posicin, 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 del
contenido de una posicin de memoria y el momento en el cual la palabra de la posicin seleccionada se
Ing. Gerardo Collaguazo

Sistemas basados en microprocesadores

Parte I

encuentra en el bus de datos. Los valores del tiempo de acceso para los circuitos usuales, realizados en
tecnologa 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 alimentacin con tensin al
sistema) 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 forma
definitiva.

MODULODE
DEMEMORIA
MEMORIA
MODULO

MEMORIADE
DEVALOR
VALORFIJO
FIJO
MEMORIA
(SOLOLECTURA)
LECTURA)
(SOLO

MEMORIA
MEMORIALECTURA/ESCRITURA
LECTURA/ESCRITURA
(ACCESO
(ACCESOALEATORIO)
ALEATORIO)

RAM ESTATICAS
RAM ESTATICAS
(SRAM)
(SRAM)

PROM
PROM
PROGRAMABLES
PROGRAMABLES
POR
EL
POR ELUSUARIO
USUARIO

RAM DINAMICAS
RAM DINAMICAS
(DRAM)
(DRAM)

PROM
PROM

EPROM
EPROM

OTP
OTP

ROM
ROM
ALMACENAMIENTO
PROGRAMABLES ALMACENAMIENTO
PROGRAMABLES
SECUNDARIO
SECUNDARIO
POR
MASCARA
POR MASCARA

EEPROM
EEPROM

FLASH
FLASH

Fig. 1.13 Tipos de memorias

Las Memorias RAM son de dos tipos:


o

RAM ESTATICAS (SRAM) , cuyas caractersticas son:


Usa flip-flops.
Rpida.
Usa ms espacio de silicio.
Consume mucha energa.
Generalmente celdas de 8 bits.

RAM DINAMICAS (DRAM), cuyas caractersticas son:


Usa capacitores.
Requiere refresco.
Usa menos espacio de silicio.
Consume menos energa.
Generalmente celdas de 1 bit.

Las Memorias de tipo ROM son:


1. ROM con mscara
Es una memoria no voltil de slo lectura cuyo contenido se graba durante la fabricacin del chip. El elevado coste
del diseo de la mscara slo hace aconsejable el empleo de los microprocesadores con este tipo de memoria
cuando se precisan cantidades superiores a varios miles de unidades.

Ing. Gerardo Collaguazo

Sistemas basados en microprocesadores

Parte I

2. OTP
El microprocesador contiene una memoria no voltil de slo 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 sencillo
grabador controlado por un programa desde un PC.
La versin OTP es recomendable cuando es muy corto el ciclo de diseo del producto, o bien, en la construccin de
prototipos y series muy pequeas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptacin
mediante fusibles para proteger el cdigo contenido.
3. EPROM
Los sistemas de microprocesadores que disponen de memoria EPROM (Erasable Programmable Read Only
Memory) pueden borrarse y grabarse muchas veces. La grabacin se realiza, como en el caso de los OTP, con un
grabador gobernado desde un PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de
cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cpsulas
son de material cermico y son ms caros que los microcontroladores con memoria OTP que estn hechos con
material plstico.
4. EEPROM
Se trata de memorias de slo lectura, programables y borrables elctricamente EEPROM (Electrical Erasable
Programmable Read OnIy Memory). Tanto la programacin como el borrado, se realizan elctricamente desde el
propio grabador y bajo el control programado de un PC. Es muy cmoda y rpida la operacin de grabado y la de
borrado. No disponen de ventana de cristal en la superficie.
Los sistemas de microprocesadores dotados de memoria EEPROM una vez instalados en el circuito, pueden
grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan grabadores en
circuito que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de
trabajo.
El nmero de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo que no es recomendable
una reprogramacin continua. Son muy idneos para la enseanza y la Ingeniera de diseo.
Se va extendiendo en los fabricantes la tendencia de incluir una pequea zona de memoria EEPROM en los
circuitos programables para guardar y modificar cmodamente una serie de parmetros que adecuan el dispositivo
a las condiciones del entorno.
Este tipo de memoria es relativamente lenta.
5. FLASH
Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y
una RAM pero consume menos y es ms pequea.
A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es ms rpida y de mayor densidad que
la EEPROM.
La alternativa FLASH est recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de
programa no voltil. Es ms veloz y tolera ms ciclos de escritura/borrado.
Las memorias EEPROM y FLASH son muy tiles al permitir que los sistemas de microprocesadores que las
incorporan 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 automvil permite que pueda
modificarse el programa durante la rutina de mantenimiento peridico, compensando los desgastes y otros factores
tales como la compresin, la instalacin de nuevas piezas, etc. La reprogramacin de la memoria puede convertirse
en una labor rutinaria dentro de la puesta a punto.

Ing. Gerardo Collaguazo

10

Sistemas basados en microprocesadores

Parte I

Estas memorias son llamadas tambin de memorias de almacenamiento primario. Otro tipo de memorias son las
de almacenamiento secundario que generalmente almacenan gran cantidad de informacin entre ellas podemos
mencionar: discos duros, discos flexibles, discos pticos, etc.

Las memorias son circuitos integrados que tienen las siguientes seales tpicas:
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 activacin o desactivacin de la memoria.

Memoria de Datos (RAM) permite la escritura y la lectura,


mediante WE y OE respectivamente, as como su seleccin
mediante el CS, mientras que la Memoria de programa (ROM)
permite solo la lectura y la habilitacin, mediante OE y CS.

El acceso a la memoria se puede realizar en forma


combinada, conforme se muestra en la figura 1.15:

Fig. 1.14 Seales de una memoria

Aqu la memoria de datos y la de programa


se selecciona de manera combinada a la hora
de ubicar las lecturas se anidan el PSEN del
micro que habilita lectura en la memoria de
datos y el Rd del micro que habilita lectura
en la memoria de datos a un and lgico para
que se seleccione cada una a su momento, se
trabaja por la tabla de la verdad del and
lgico.
A continuacin presentamos como ejemplos
tres circuitos de memoria, a saber:
RAM6116, EPROM 2716 y EEPROM2816.

Fig. 1.15 Acceso a la memoria de manera combinada

MEMORIA RAM 6116


El dispositivo 6116 es una memoria de acceso aleatorio (RAM), cuenta con una capacidad de 2048 palabras de 8
bits cada una, es una memoria esttica de alta velocidad, fabricada con la tecnologa CMOS, opera con una fuente
de alimentacin de +5.0V y est dispuesta en una pastilla de 24 terminales.
Las principales caractersticas de esta memoria son:
Organizacin de la memoria: 2048 X 8
Alta velocidad: tiempo de acceso 150 nseg.
Ing. Gerardo Collaguazo

11

Sistemas basados en microprocesadores

Parte I

Baja potencia en estado inactivo: 10 uW


Baja potencia en estado activo: 160 mW
RAM completamente esttica: No requiere reloj
para su funcionamiento
Temperatura de operacin: 0.75 grados centgrados
Temperatura de almacenamiento: De -55 a +125
grados centgrados.
Potencia de disipacin: 1 Watts
Todas sus entradas y salidas son compatibles
directamente con la tecnologa TTL
Es directamente compatible con las memorias de
16K estndar, tipo RAM 6132
La descripcin de las terminales se detalla a continuacin:

A0-A10: Lneas 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 alimentacin +5.0 Volts
GND Terminal de tierra 0.0 Volts

Fig. 1.16 Patillaje de la RAM6116

Siendo este circuito una memoria RAM puede entonces, realizar las operaciones de lectura y escritura.
OPERACIN DE LECTURA
Un dato ser ledo del dispositivo de almacenamiento RAM 6116, mediante la aplicacin de un nivel alto en la
terminal (#WE), un nivel bajo en (#CS), y estando en nivel bajo la terminal (#OE), con estas conexiones se dispone
que se pueda leer la memoria RAM 6116, si se coloca un nivel alto en la terminales (#OE) y/o (#CS) las lneas de
E/S y/o la pastilla 6116 se ponen en estado de alta impedancia, respectivamente.
(#CS) posee la funcin de controlar la activacin de la pastilla, la cual puede ser usada por un sistema con
microprocesadores para la seleccin del dispositivo.
La terminal (#OE) habilita las salidas, o las pone en estado de alta impedancia, la cual puede ser habilitada cada vez
que el microprocesador requiera leer la memoria.
OPERACIN DE ESCRITURA
Un dato es escrito en el dispositivo RAM 6116 mediante la aplicacin de un nivel bajo en la terminal (#WE), un
nivel 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 aceptar
la informacin, en estas condiciones la terminal (#OE) posee la opcin de ser colocada en estado de alto bajo, para
realizar as la operacin de escritura.
Nota: el smbolo # sustituye la raya superior de la seal y denota negacin.

MEMORIA EPROM 2716


La EPROM 2716 contiene caractersticas borrables y es elctricamente reprogramable, es de alta velocidad y
proporciona acceso a 16 Kbits de informacin, est diseada para aplicaciones en donde son importantes los
cambios rpidos en la tensin.

Ing. Gerardo Collaguazo

12

Sistemas basados en microprocesadores

Parte I

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 puede
depositar una nueva informacin an despus de estar borrada siguiendo los procedimientos de programacin
adecuados, esta EPROM 2716 est constituida con tecnologa de alta densidad con compuertas CMOS de canal N.
Las principales caractersticas son:
Tiempo de acceso menor que 250 nseg.
Bajo consumo de potencia

Disipacin en estado activo: 525 mW mx.

Disipacin en estado inactivo: 132 mW mx.

Fuente de alimentacin de +5 Volts

Rango de temperatura de -40 hasta +85 grados centgrados


Caractersticas estticas (no requiere refrescamiento por medio del reloj)
Entradas y salidas compatibles con la tecnologa TTL
Capacidad de colocarse en tercer estado.
Las terminales de esta memoria son:
A0-A10: Lineas de direcciones
D0-D7: Salida de datos
#CE Habilitador de la pastilla
#OE Habilitador de salidas
PGM Condicin de programacin
Vcc Voltaje de alimentacin +5.0 Volts
Vss Terminal de tierra 0.0 Volts
Vpp Voltaje de programacin
NC No conexin

Fig. 1.17 EPROM2716

OPERACIN DE LECTURA
Para leer la memoria se deben hacer las conexiones de las terminales que a continuacin se especifican, la terminal
Vpp se conecta a Vcc para inhibir con esto la programacin, las entradas (#OE) y (#CE) se colocan a tierra y con
estas simples conexiones se puede leer la memoria, los datos estarn sobre las terminales D1 - D7, la informacin
se puede visualizar con LED'S quienes indican el dato direccionado por las terminales A0 - A10, cuya capacidad es
de (2Kx8), 2048 localidades de 8 bits cada una.
MODO DE PROGRAMACIN
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 por
un monoestable.
La terminal 20 que es el habilitador de salidas se conecta a la polarizacin de +5.0V (la alimentacin).
La terminal 21, voltaje de programacin se conecta a un voltaje fijo de +25.0V, la memoria normalmente cuando
no est grabada contiene "unos", por lo tanto en la operacin de grabacin se procede a depositar ceros.
PRECAUCIONES
Excediendo de los 25 Volts en la terminal Vpp (pin 21) se daar la EPROM 2716 y despus todos los bits
quedaran en el estado uno lgico.

Ing. Gerardo Collaguazo

13

Sistemas basados en microprocesadores

Parte I

La informacin debe ser introducida usando el modo de programacin, depositando solamente ceros lgicos en la
localidad seleccionada y con la combinacin deseada, aunque ambos unos y ceros pueden ser presentados como
datos de entrada en la palabra de informacin a grabar.
La nica manera de cambiar los ceros por los unos es borrando totalmente la memoria EPROM 2716 a travs de
una intensa luz ultravioleta.
La EPROM 2716 est en la modalidad de programacin cuando la fuente de alimentacin de Vpp est en +25 Volts
y (#OE) en estado lgico alto.
Se requiere un capacitor de 0.1 uF dispuesto entre +Vcc y GND para suprimir los estados transitorios de tensin
que puedan daar al dispositivo EPROM 2716.
La informacin debe ser programada en 8 bits en paralelo dispuestos en las terminales de salida del chip, los
niveles deben ser compatibles con la tecnologa TTL.
Cuando la direccin y el programa son estables, se debe hacer presente el pulso activo de programacin durante 45
mseg.
Se puede programar cualquier localidad en cualquier tiempo en forma secuencial o con acceso aleatorio.
El pulso de programacin debe tener una duracin mxima de 55 mseg.
La EPROM 2716 no debe ser programada con una seal de CD en la terminal de programacin (CE)'.
Se pueden programar varias EPROM 2716 en paralelo con la misma informacin, debido a la simplicidad de los
requerimientos de programacin.

MEMORIA EEPROM 2816


El circuito integrado EEPROM 2816 es una memoria reprogramable y borrable que contiene 2048 localidades de
memoria con 8 bits cada una, (2K X 8) y opera con una sola fuente de alimentacin de + 5 Volts, con tiempos
similares a los de una RAM esttica en modo de lectura, tiene dos modos de programacin una de +5 Volts y otra
de alto voltaje.
El modo de programacin de +5 Volts se inicia con un pulso de escritura con una transicin alto/bajo de nivel TTL
con una duracin de 200 nseg, el circuito automticamente borra el byte seleccionado antes de escribir otro dato
nuevo, se completa un ciclo de borrado/escritura en un tiempo mximo de 10 mseg, el tiempo de acceso a lectura es
de 250 nseg, todas sus salidas son compatibles con la tecnologa TTL.
Las caractersticas de esta memoria son:
Organizacin de la memoria 2048 X8
Tipo de funcionamiento; chip esttico
Tiempos de acceso a lectura; 250 nseg.
Capacidad de correccin para un solo bit
Tiempo de escritura max, 10 mseg.

Compatible con la arquitectura de microprocesadores


Potencia de disipacin
a) Estado activo; 610 mW
b) Estado inactivo: 295 mW
A continuacin se describen las terminales de la memoria:

A0 - A10 Lneas de direcciones

E/S0 E/S7 Entrada y salida de datos


#CE Habilitador del chip
Ing. Gerardo Collaguazo

Fig. 1.18 EEPROM2816

14

Sistemas basados en microprocesadores

Parte I

#OE Habilitador de las salidas


Vpp Voltaje de programacin
Vcc + 5 Volts
Vss 0.0 Volts tierra.

OPERACIN DE LECTURA
Un dato es ledo de la memoria EEPROM 2816 mediante la aplicacin de un nivel alto en Vpp, (voltaje de
programacin conectada a Vcc), un nivel bajo en (#CE) y un nivel bajo en (#OE), con estas condiciones se obtiene
informacin de terminales E/S estarn en estado de alta impedancia siempre y cuando (#OE) y/o (#CE) estn en un
nivel alto.
La funcin de la terminal (#CE) es la de poder controlar la activacin del chip, puede ser usado por un sistema con
microprocesadores para la seleccin del dispositivo.
La terminal que habilita las salidas, o las pone en estado de alta impedancia, si se tiene en cuenta que las entradas
son estables el tiempo de acceso es igual al tiempo de retardo de la terminal (#CE), los datos estn disponibles
despus de un tiempo de retardo de la terminal (#OE).
OPERACIN DE ESCRITURA (modo de programacin de + 5 Volts)
El ciclo de escritura es iniciado por la aplicacin de un nivel bajo en Vpp, 200 nseg, mientras que (#OE) debe estar
en estado alto y (#CE) en estado bajo, la direccin es doblemente almacenada a la cada y a la salida de Vpp, una
vez realizado esto la arquitectura interna de la memoria borrara automticamente el dato seleccionado y proceder a
escribir el nuevo dato en un tiempo de l0 mseg, mientras tanto las terminales E/S o E/S; permanecern en estado de
alta impedancia durante un tiempo igual al de la operacin del proceso de escritura,
La EEPROM 2816 se escribe y se borra elctricamente utilizando un voltaje de +5 Volts para grabar y leer, la
condicin de grabado es "borrado antes de escribir", esta memoria es del tipo ROM reprogramable, en caso de que
se desconecte el circuito de alimentacin de la energa la informacin no se pierde, se puede usar el modo de "stand
by" para que la informacin no se borre.
La 2816 se borra y se programa elctricamente y no pticamente como lo requieren normalmente las EPROMS, en
estas, se borra la informacin con luz ultravioleta, el dispositivo EEPROM 2816 ofrece flexibilidad para borrar un
solo 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 las
terminales E/S deben ser compatibles con la tecnologa TTL en cuanto a sus equivalentes de niveles lgicos
deseados como niveles de grabacin, la programacin debe durar mnimo 9 msg y un mximo de 15 mseg.
OPERACIN DE BORRADO
Si se desean borrar todas las direcciones de la EEPROM 2816, el dispositivo ofrece una funcin para borrado
inmediato de todas las localidades.

1.1.2.3

BUSES

Los tres componentes principales de un sistema basado en microprocesadores (CPU, Bloque de memoria y mdulo
de E/S) estn interconectados entre ellos por cables elctricos denominados buses del sistema.
Un bus representa una reunin de lneas las cuales realizan la transferencia uni o bidireccional de la informacin.
La presencia de un determinado bit (0 o 1) en una lnea del bus est marcada de un determinado valor del potencial
elctrico en esa lnea. Por ejemplo, un potencial entre 2.4-5V marca el bit 1 y un potencia 0-0.4V el bit 0.

Ing. Gerardo Collaguazo

15

Sistemas basados en microprocesadores

BUS DE
DATOS

MICROPROCESADOR

BUS DE
DIRECCIONES

ENTRADAS
DE CONTROL

BUS DE
CONTROL

SALIDAS
DE CONTROL

Parte I
En funcin del tipo de informacin que se transporta
por las lneas del bus, este puede ser: BUS DE DATOS,
BUS DE DIRECCIONES Y BUS DE CONTROL. A
continuacin presentamos algunas caractersticas
principales:

Bus de datos est constituido por lneas


FUENTE DE
ALIMENTACION

Fig. 1.19 Buses de un sistema con


microprocesador

bidireccionales. El nmero N de lneas del bus de


datos es en general, igual con la longitud de la
palabra de datos del microprocesador. Por el bus
de datos de transfiere la informacin binaria entre
el microprocesador y los perifricos o entre el
microprocesador y la memoria, o directamente
entre el perifrico y la memoria, en caso de existir
dispositivos de acceso directo a la memoria. Por lo

tanto ste bus determina el tipo de procesador ( 4, 8 16 o 32 bits) y el nmero de perifricos que se pueden
conectar al microprocesador (por ejemplo para un microprocesador de 8 bits se conectarn 2 7 perifricos). Este
bus es tri-state.

Bus de direcciones est formado por lneas unidireccionales. Es utilizado para la transferencia de informacin
necesaria para la seleccin de una determinada posicin de memoria o de un puerto del mdulo de E/S. Esta
informacin representa la direccin de una posicin de memoria o de un puerto de entrada o salida (del mdulo
de E/S), seleccionados para la realizacin de la transferencia de datos por bus respectivo. El bus de direcciones
determina la capacidad de memoria del sistema.

Bus de control est formado por lneas, en general,

Un conjunto tpico de seales de control disponible


en la mayora de microprocesadores disponibles, se
muestran en la siguiente figura.

CLK OUT
CLK IN
RESET IN
INTP IN
HOLD

M IC R O P R O C E S A D O R

unidireccionales. En este bus cada lnea tiene un


significado y denominacin distinta. El bus de
control contiene la informacin que enva el
microprocesador a los elementos del sistema o bien
recibe de estos con el propsito de sincronizar su
operacin con la operacin de la circuitera externa.
El nmero de lneas del bus de control es variable y
depende dl microprocesador particular utilizado.

RESET OUT
INTP OUT
HLDA
WRITE
READ

Fig. 1.20 Seales tpicas de control

CLK IN (entrada de reloj) es usado por el microprocesador para generar pulsos de reloj y producir
secuencias de tiempo y control para las funciones internas.
CLK OUT (salida de reloj). Los pulsos de reloj de este Terminal son usados por los mdulos externos para
sincronizar sus operaciones con las operaciones del microprocesador.
RESET IN (peticin de reset) se usa para inicializar el microprocesador.
RESET OUT (peticin de reset) informa a la circuitera externa que el microprocesador se encuentra en
estado de reset.
INTERRUPT IN (peticin de interrupcin). Se utiliza para interrumpir la operacin normal del
microprocesador, obligndolo a suspender la ejecucin del programa corriente y transferir el control a una
subrutina. La seal de interrupcin proviene generalmente de una unidad de E/S.
INTERRUPT OUT (reconocimiento de interrupcin). Informa a la circuitera externa que la interrupcin
ha sido atendida. Una vez ejecutada la interrupcin, el microprocesador retorna al programa previo.
HOLD (peticin e bus). Se utiliza para suspender la operacin del microprocesador y llevarlo a un estado
llamado hold en el cual todos los buses quedan en alta impedancia.
HOLDA (garanta de bus). Informa que la peticin de hold a terminado.
Las lneas READ y WRITE informan al componente seleccionado por el bus de direcciones la direccin
de transferencia esperada en el bus de datos.
Ing. Gerardo Collaguazo

16

Sistemas basados en microprocesadores

1.1.2.4

Parte I

CIRCUITO DE RELOJ Y RESET

Todo microcomputador necesita de un generador de pulsos de reloj para controlar el contador de programa y
sincronizar sus funciones internas. En la mayora de microprocesadores este reloj viene incorporado, pudindose
controlar 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 no
es de importancia, se prefiere una red RC, en los otros casos, por ejemplo para las comunicaciones seriales o
paralelas es necesaria la utilizacin de un cristal.

a. Cristal de cuarzo

b. Red RC (3MHz)

c. Reloj externo (1 a 6 MHz)

Fig. 1.21 Circuitos de reloj

El microprocesador puede
ser fcilmente conectado o
desconectado por hardware
manejando adecuadamente
su entrada de reset. Cuando
esta lnea recibe un bajo el
microprocesador ingresa al
estado de reset. Bajo esta
condicin, el contador de
programa se carga con ceros
y se borran los flip-flops
habilitadores de interrupcin
y de reconocimiento de hold.

Al mismo tiempo, los buses de datos y direcciones se sitan


en el estado de alta impedancia. Debido a su naturaleza
asncrona, la seal de reset puede afectar el contenido de los
registros internos de la CPU, incluido el de estados o
banderas.

Fig. 1.22 Circuito de Reset

1.1.2.5

MODULO DE ENTRADA/SALIDA. TECNICAS DE INTERFACE

ENTRADA
ENTRADA

mP
mP
++
Memoria
Memoria

ESTADO
ESTADO
SALIDA
SALIDA

Fig. 1.23

Mdulos de entrada/salida

Ing. Gerardo Collaguazo

PERIFERICOS
PERIFERICOS

LEDs
LEDs

DISPLAYs
DISPLAYs

ZUMBADORES
ZUMBADORES

INTERRUPTORES
INTERRUPTORES
SENSORES
SENSORES
ANALOGICOS
ANALOGICOS

TECLADOS
TECLADOS
Etc.
Etc.

Para que el sistema basado en


microprocesadores pueda ser utilizado en
forma efectiva, el sistema debe estar de un
bloque de circuitos lgicos que permitan la
introduccin de datos, visualizacin de
resultados y eventual la modificacin del
programa, es decir un dispositivo de
comunicacin con el operador, este bloque
se denomina MODULO DE E/S y est
destinado a asegurar la transferencia de
informacin, representada en binario, entre
el sistema y diversos perifricos
conectados a ste (teclados, pulsadores,
interruptores, contactos elctricos, LEDs,
ASS, CAD, CDA, etc.).

17

Sistemas basados en microprocesadores

Parte I

El mdulo de E/S tiene una estructura diferente, en funcin de la aplicacin del sistema basado en
microprocesadores, lo cual implica la proyeccin de unos componentes de este mdulo, en funcin de los
perifricos que van a ser conectados.
Un puerto puede definirse como un dispositivo a travs del cual el microprocesador intercambia informacin con
un dispositivo externo previamente seleccionado. En otras palabras un puerto E/S es un elemento de interconexin
o interface entre un microprocesador y un perifrico. Los puertos tambin se denominan adaptadores perifricos de
interface.
La estructura de un puerto puede ser extremadamente simple o altamente compleja, dependiendo de cada
aplicacin. En algunos casos solo se requieren de un flip-flop, buffer o registro tri-state, mientras que en otros debe
recurrirse a circuitos de alta escala (LSI) muy especializados, como es el caso del 8212, 8216, 8255, 8155, etc., que
se analizarn ms adelante.

MICROPROCESADOR

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 conexin con los buses de datos y de control del mismo
sistema cuando se selecciona un dispositivo perifrico de E/S especfico.
Interpretar rdenes. Generalmente, las
rdenes enviadas por el microprocesador al
BUS DE DATOS
puerto E/S se reducen a seales de lectura y
D0-D7
escritura. Estas seales pueden venir ya
PS
codificadas o necesitar una codificacin
CSO
CS
previa.
Adaptar fsicamente el microprocesador a los
requisitos del perifrico. Esto incluye la
PE
utilizacin de manejadores (drivers) de lneas
CS1
de transmisin, eliminadores de ruido,
CS
optoacopladores, conversores de formato serie
a paralelo, conversores de seal, etc.
0 1 2 3
Temporizar la transferencia de informacin
DECODIFICADOR
con el fin de garantizar que el flujo de datos
S1 S0
EN
entre el microprocesador y el perifrico ese
A0
realice de una forma ordenada y eficiente.
El direccionamiento de un puerto (activacin de la
lnea CS o CE) se realiza a travs del mismo bus de
direcciones, sea por medio de un decodificador o un
circuito lgico de seleccin (RLS).

A1
ALE

Fig. 1.24 Direccionamiento de un puerto

La generacin de la seal de seleccin de un puerto por el decodificador o de la RLS, debe producirse solamente
cuando en el bus de direcciones se pone una palabra binaria, especfica de cada puerto, llamada direccin de puerto
y de ha activado adems la seal ALE, que marca el acceso al puerto de E/S.
PUERTO DE SALIDA

MICROPROCESADOR

mP

D0

D1-D7
A0 -A14

CLK

A15
WR

LINEA DE ESCRITURA
LINEA DE SELECCION

Fig. 1.25 Puerto de salida con flip-flop

Ing. Gerardo Collaguazo

PERIFERICO

Veamos, como ejemplos, algunas realizaciones prcticas de


puertos de E/S de algunos perifricos.
PUERTO DE SALIDA CON LED
En la figura 1.25 se muestra un ejemplo sencillo de puerto
de salida con flip-flop D, cuya funcin es transferir el estado
del bit de datos D0 a un LED que acta como dispositivo
perifrico. Esto sucede cuando la lnea de direccin A15 es
alta y la seal de escritura (WR) es baja.
Despus de habilitado, el flip-flop retiene la informacin
previamente almacenada mientras el microprocesador se
dedica a otras tareas.
18

Sistemas basados en microprocesadores

Parte I

PUERTO DE ENTRADA DE INTERRUPTOR


En la figura 1.26, se muestra en cambio un puerto de
entrada con flip-flop. En este caso, el dispositivo
perifrico es un interruptor y su estado (alto o bajo)
se transfiere a la lnea de datos D0 cuando la lnea de
direccionameinto A15 es alta y la lnea de control de
lectura (RD) es baja.

PERIFERICO
PUERTO DE ENTRADA
H
D
L

Una vez que el microprocesador acepta el bit D0


presente en el bus de datos, lo transfiere al
acumulador y situa la salida del puerto de entrada en
estado de alta impedancia con el fin de de que no
interfiera con otras transferencias de datos.

CLK

MICROPROCESADOR
LINEA DE SELECCION

A15

D0

A0-A14

LINEA DE LECTURA

RD

D1 -D7

Fig. 1.26 Puerto de entrada con flip-flop

PUERTO DE SALIDA CON REGISTRO DE DATOS


MICROPROCESADOR

A0-A14

PUERTO DE SALIDA
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8

D0-D7

A15
WR

LINEA DE ESCRITURA

DISPOSITIVO PERIFERICO
a
b
c
d
e
f
g
dp

En la siguiente figura se muestra un puerto


de salida con registro tipo latch. El circuito
transfiere el patrn de 8 bits presente en el
bus de datos al display perifrico de siete
segmentos cuando la lnea de direccin A15
es alta y la lnea de escritura (WR) es baja.

CS

LINEA DE SELECCION

LINEA DE HABILITACION

Fig. 1.27 Puerto de salida con registro tipo latch

Una forma ms elegante de realizar una interface es utilizando los circuitos especializados como son: los puertos
8212, 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 caractersticas de estos circuitos especializados podemos mencionar:
Son fciles de conectar con los buses del sistema puesto que disponen de lneas de adaptacin directa con
las salidas del respectivo microprocesador.
Son circuitos de E/S programables. Esta caracterstica permite adaptarlos fcilmente a las condiciones de la
circuitera externa utilizando nicamente comandos de programacin.
Algunos mdulos de E/S poseen cierta capacidad de decisin propia, independientemente del procesador.
Esta circunstancia libera del microprocesador de la ejecucin d ciertas tareas rutinarias y de control, las
cuales delega en el dispositivo de interface.
Por la funcin que realizan, los puertos de interface programables se pueden dividir en tres categoras: interfaces
dedicadas, interfaces de propsito general e interfaces universales.
Las interfaces dedicadas se especializan en una funcin especfica, por ejemplo controlar interrupciones,
temporizar eventos, controlar perifricos, etc. Como ejemplos podemos mencionar el controlador programable de
interrupciones 8259, controlador programable de acceso directo de memoria (DMA) 8257, etc.
Las interfaces de propsito general, como su nombre lo indica, son ms universales y pueden adaptarse a una gran
variedad de aplicaciones. Como ejemplos tenemos: el PPI 8255, controlador USART 8251.
Ing. Gerardo Collaguazo

19

Sistemas basados en microprocesadores

Parte I

Una interface universal es un microcomputador en un chip que realiza tareas de E/S altamente complejas bajo el
control de un microprocesador maestro. Como ejemplo podemos mencionar la interface universal de perifricos
UPI 8741 de Intel.
Dentro de los perifricos ms empleados, podemos mencionar los de la siguiente tabla:
TIPO

DISPOSITIVO

ENTRADA

Interruptores ON/OFF
Teclados
Sensores y transductores de entrada
Visualizadores (Led, LCD, etc)
Pantallas TRC
Impresoras (lser, de jet de tinta, de impacto,etc)
Motores elctricos y actuadotes
Terminales interactivos
Memorias secundarias
Unidades de disco magntico
Enlaces de comunicaciones
Lneas telefnicas

SALIDA

ENTRADA/SALIDA

De acuerdo a la velocidad de operacin, los dispositivos de E/S se pueden agrupar en tres categoras:
lentos, de velocidad media y de alta velocidad. Adems segn la seal que transmiten a los perifricos
tenemos: digitales (todo o nada) y analgicos (sensores de temperatura, caudal, presin, etc.). Cada una
de estas categoras presenta sus propias caractersticas de interface.
PERIFERICOS LENTOS : Su estado cambia una vez por segundo y requieren varios milisegundos
para estabilizarse en su nuevo estado. En esta categora tenemos los displays luminosos, rels,
microinterruptores, sensores de posicin, contactos, botoneras, etc.

BUS DE
DATOS

PUERTO DE
SALIDA

0
IN
D EMUX

CS
SEAL DE
SELECCION

CLK

S1

CONTADOR

S0

1
2
3

Fig. 1.28 Control de varios perifricos lentos de salida

SALID A DE DAT OS

La interface de estos dispositivos es


relativamente fcil y necesitan muy
pocas seales de control. El nico
problema que aparece en este caso
es el proceso transitorio en el
momento de cambio de estado (por
ejemplo el interruptor al cerrarse
produce rebotes).
Por multiplexaje es posible controlar
varios perifricos lentos con un
mismo puerto.

PERIFERICOS DE VELOCIDAD MEDIA: Son aquellos que transfieren datos desde 1bps a
10000 bps. Dentro de esta categora se incluyen los teclados, impresoras normales, CAD, CDA, sistemas
de adquisicin de datos, etc.
En este caso, el microprocesador no puede asumir que retienen datos por mucho tiempo o reciben
informacin en cualquier instante. En su lugar, el microprocesador debe ser capaz de determinar cuando el
dispositivo 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 con
el reloj del microprocesador. Este ltimo debe tambin disponer de algn medio para decirle al dispositivo
que hay un nuevo dato de salida disponible o que el dato de entrada previamente suministrado por aquel ha
sido receptado.

Ing. Gerardo Collaguazo

20

Sistemas basados en microprocesadores

Parte I

Uno de los procedimientos ms comunes para interfazar microprocesadores con dispositivos de mediana
velocidad en forma asincrnica es el saludo protocolario o handshake. En este caso, el transmisor indica la
disponibilidad del dato al receptor y transfiere el dato. El receptor completa el saludo reconociendo la
recepcin del dato.

PERIFERICOS DE ALTA VELOCIDAD: Son aquellos que transfieren datos a velocidades


superiores a 10000 bps. Dentro de esta categora se incluyen los Discos magnticos y pticos, impresoras
lser, lneas de comunicacin de alta velocidad, pantallas de video (TRC), etc.
La interface de este tipo de perifricos requiere mtodos especiales. La tcnica ms usual es utilizar un
controlador de propsito especial que transfiera datos directamente entre la memoria y el dispositivo de
E/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 seales
de control a la memoria y transferir los datos. Inicialmente, la CPU debe informarle al controlador donde
debe comenzar la transferencia y la cantidad de informacin que debe transferir.

Fig. 1.29 Transmisin paralelo

En una comunicacin en paralelo (fig. 29) todos los bits que configuran
la palabra de datos se transmiten simultneamente, por lneas separadas.
En una comunicacin serie (fig. 30) todos los bits de la palabra se
transmiten en forma secuencial, uno tras otro, por una sola lnea de
datos. Los datos transferidos en serie se envan en grupos de bits que
forman palabras o caracteres.

En ambos casos, adems de las lneas de datos, se requiere el envo de


una seal de reloj para sincronizar la transferencia. En una transmisin
paralelo, la seal de reloj le indica al receptor cuando la palabra
disponible en la lneas de datos es vlida mientras que una transmisin
serie le indica donde empieza y termina cada bit.
La transmisin en paralelo es intrnsecamente ms rpida que la
transmisin en serie y se utiliza para comunicaciones de alta velocidad.
Sin embargo, a medida que aumenta la distancia entre el transmisor y el
receptor, la comunicacin serie tiende a ser ms econmica. En general,
la transmisin serie resulta apropiada en los siguientes casos:

LINEA DE
DATOS

RECEPTOR

RELOJ

Un microprocesador puede comunicarse con un dispositivo perifrico


en paralelo o serie. Primariamente el bus de datos de un
microprocesador est diseado para transferir datos en paralelo. Sin
embargo, existen situaciones donde es deseable, preferible o necesario
transferir datos en serie.

TRANSMISOR

RECEPTOR

TRANSMISOR

LINEAS DE
DATOS

RELOJ

Fig. 1.30 Transmisin serie

Cuando el dispositivo de E/S hacia el cual ha de transferirse el dato es de naturaleza serie. Se incluyen en
esta categora los cartuchos de cinta magntica, los discos flexibles, los modems.
Cuando la distancia entre el microprocesador y el dispositivo perifrico de E/S es relativamente grande,
superior a 4 metros. En estos casos, resulta ms econmica la transmisin serie, a pesar de requerir de
lgica de control y programacin adicionales.

1.2

APLICACIN. DISEO DE UN SISTEMA BASICO CON UN MICROPROCESADOR


DE 8 BITS

Como hemos podido comprobar hasta el momento, el microprocesador ofrece gran potencialidad en la realizacin y
desarrollo de funciones y actuaciones de control en general. Sin embargo tambin habremos constatado que por s
mismo el microprocesador resulta inoperante, es decir, es preciso acompaarlo de los componentes necesarios para
que pueda llevar a cabo la ejecucin prctica de los programas que se diseen.

Ing. Gerardo Collaguazo

21

Sistemas basados en microprocesadores

Parte I

Estos componentes asociados son de muy diversas caractersticas y todos y cada uno de ellos desempean
funciones determinadas y muy concretas.
En este tema se ver la estructura de cada uno y se realizar un estudio de componentes concretos, que
emplearemos para ir configurando una tarjeta bsica sobre la que posteriormente desarrollaremos diferentes
programas.
Los componentes asociados que necesitaremos, debern resolvernos problemas lgicos, de control, de
direccionamiento, de tratamiento de buses, de almacenamiento de datos, de comunicacin 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. Sin
embargo aqu se tratarn nicamente los elementos imprescindibles para nuestros propsitos, como
decodificadores, memorias RAM, memorias EPROM, etc. Adems, de forma sistemtica y paulatina, se ir
desarrollando la forma de acoplamiento de todos los elementos, para finalmente llegar a la construccin de nuestro
sistema bsico de trabajo.

1.2.1

TRATAMIENTO DE LOS BUSES

Como se ha visto en el tema anterior, una de las principales caractersticas que presenta el microprocesador 8085 es
poseer un bus de datos (de 8 lneas) multiplexado con la parte baja del bus de direcciones.
Este multiplexado quiere decir que en un instante determinado tendremos en las 8 lneas del bus la informacin
perteneciente a una direccin y un instante ms tarde tendremos en esas mismas lneas la informacin perteneciente
a un dato.
Corresponde por tanto a la circuitera externa, separar estas
seales de modo apropiado, tal que no se produzcan
interferencias por informaciones errneas en el resto de los
componentes del sistema. De esta forma se obtendr una
separacin total entre el bus de datos (8 bits) y el bus de
direcciones (16 bits).

Fig. 1.31 Tratamiento de buses

Como sabemos el microprocesador 8085 dispone de una lnea


de control o sincronizacin denominada ALE, por medio
de la cual suministra un pulso de tensin de nivel lgico 1
cuando se presenta la parte baja de una direccin en el bus
AD0,...,AD7 y cuando aparece un dato la seal ALE pasa al
estado lgico 0. Deberemos por tanto emplear esta seal de
control para separar estas informaciones utilizando un circuito
integrado que acte de cerrojo (latch) y realice la separacin
fsica. El esquema de principio responde a la Fig. 31.

Mientras ALE est a nivel lgico 1, la informacin presente en las


entradas del cerrojo, procedente de las lneas AD0,...,AD7 del
microprocesador, pasa a las salidas, configurando de este modo la parte
baja de las direcciones. En el instante en que ALE pasa a nivel 0, esa
informacin queda almacenada y retenida en las salidas del cerrojo, que
no cambiaran su estado mientras ALE no pase a nivel 1. Por tanto ahora
puede cambiar la informacin presente en las lneas AD0,...,AD7 del
microprocesador, que nos suministrar el dato oportuno, sin afectar a la
parte baja de las direcciones.
Son varios los circuitos que pueden emplearse para este cometido. Uno
de los ms comnmente empleados es el 74LS373 cuya constitucin y
funcionamiento pueden encontrarse en diversos textos.
Ing. Gerardo Collaguazo

Fig. 1.32 Puerto 8212

22

Sistemas basados en microprocesadores

Parte I

Nosotros estudiaremos el circuito integrado 8212, fabricado por INTEL y que desarrolla esta funcin de forma
adecuada.
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 triestado. Tambin 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 perifricas y de entrada/salida del microprocesador.
Se presenta en un encapsulado de 24 patillas que podemos ver representado en la Fig. 32.
A continuacin se describir de forma concisa la funcin de todas las patillas de este componente:
DO0,... DO7. Son las 8 lneas de salida de datos que estn conectadas a 8 buffers no inversores que pueden ser
colocados en estado de alta impedancia.
DI0,... DI7. Son las 8 lneas de entradas de datos a los 8 flip-flop internos de tipo D. La salida de estos flip-flop
toman los valores de las entradas mientras la seal STB est a nivel alto. Cuando STB pasa a nivel bajo se
produce el enclavamiento. Los datos de salida se borraran mediante la entrada de puesta a cero CLR.
GND. Terminal de conexin a masa, o tensin de referencia.
Vcc. Terminal de alimentacin (+5V).
STB. Es la entrada Strobe o impulso de referencia se toma como clock para el latch de datos.
MD. Seal 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 seleccin de dispositivo. Con DS1=0 y DS2=1 el componente estar
seleccionado.
CLR. Pone a cero el latch de datos. Nivel bajo activo
INT. Lnea de salida para una interrupcin. Nivel bajo activo.

STB

ALE

DO0

DI1
DI2

DO1
DO2

A1
A2

AD3

DI3

D03

A3

AD4
AD5

DI4
DI5

DO4
DO5

A4
A5

AD6
AD7

DI6
DI7

DO6
DO7

A6
A7

DS1

BUS DATOS

8212

DI0

AD1
AD2

MD

AD0

GND

8085

INT

BUS DIRECCIONES

CLR

Vcc

DS2

+5V

Fig. 1.33 Acoplamiento del mP8085 con el 8212

A0

Dentro de las posibles aplicaciones o modos de


conexin del 8212 pueden mencionarse: su utilizacin
como controlador para un bus bidireccional empleando
para ello dos componentes en oposicin; conexin
como puerto para entrada de interrupciones; como
puerto de salida; como latch para separar las direcciones
de orden bajo con el microprocesador 8085 (ser la
forma en que nosotros lo conectaremos), etc. Si
deseamos obtener informacin adicional de este
componente, como pueden ser sus diagramas de
tiempos, caractersticas de conmutacin, etc., debemos
acudir a las hojas de caractersticas tcnicas
suministradas por los fabricantes.
La conexin de este circuito integrado con el
microprocesador 8085, se realiza de forma muy simple,
segn se muestra en la Fig. 33. Como podemos apreciar
los 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 lneas DI0, DI1, DI2, ..., DI7, a las lneas del microprocesador AD0, AD1, AD2, ..., AD7,
respectivamente.

Realizada la conexin de este modo, cuando el microprocesador inicie su funcionamiento normal, tendremos en las
salidas del 8212, la parte baja del bus de direcciones, correspondiendo las salidas DO0, DO1, DO2, ..., DO7 con las
lneas de direcciones A0, A1, A2, ..., A7 respectivamente.

Ing. Gerardo Collaguazo

23

Sistemas basados en microprocesadores

1.2.2

Parte I

DECODIFICACION DE DIRECCIONES

Debemos entender que la mayora de los componentes que se emplean en los diseos con microprocesadores,
necesitan ser conectados a los buses de datos y direcciones, por tanto deben poseer la caracterstica de permitir
dejar en estado de alta impedancia las lneas que se conecten a dichos buses. De este modo podremos conectar
varios componentes al mismo conjunto de lneas sin que se produzcan interferencias entre ellos, ya que solamente
permanecer 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, adems de las lneas necesarias para
conectarse a los buses, deben poseer algn 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 seleccin del componente.
Por otro lado sabemos que el bus de direcciones sirve para seleccionar algn registro (o alguna direccin)
determinado en un componente, por tanto tendremos dos tipos de selecciones simultneas:
Se debe seleccionar el componente que contiene la direccin o registro al que necesitamos acceder.
Hay que indicar el registro o la direccin que deseamos dentro del componente.

Las lneas de direccin ms bajas, son las que normalmente se


emplean para apuntar a un registro determinado o a una direccin dada
y las lneas de direccin ms altas (A15, A14, A13,...) se llevan a las
entradas de un circuito integrado decodificador que ser el que con
una de sus salidas, seleccione el componente que deseamos.
Existen varios decodificadores que pueden ser empleados para este
trabajo y que son de uso corriente. En nuestro caso ser utilizado el
74LS138. Se trata de un conocido decodificador de 3 a 8 lneas de
lgica transistor-transistor que se presenta en un encapsulado de 16
patillas cuya distribucin puede apreciarse en la Fig. 34.
La funcin de cada una de sus lneas se describe a continuacin:

A0
A1
A2
E1
E2
E3
O7
GND

1
2
3
4
5
6
7
8

74LS138

Para llevar a cabo estos procesos emplearemos el direccionamiento por decodificacin, aunque hay otros
mtodos posibles.

16
15
14
13
12
11
10
9

Vcc
O0
O1
O2
O3
O4
O5
O6

Fig. 1.34 Registro latch 74LS138

A0, A1 y A2 son las seales de entrada en cdigo binario.


O0,..., O7 son las lneas de salida con nivel bajo activo.
GND es el terminal de masa o tensin de referencia.
Vcc es la patilla de alimentacin (+5V).
E3 es una seal de habilitacin activa a nivel alto.
E1 y E2 son seales de habilitacin activas a nivel bajo.

A continuacin se muestra la tabla de la verdad, a travs de cuya observacin y anlisis puede apreciarse
perfectamente la forma de actuar del decodificador.
A2 A1 A0
0
0 0
0
0 1
0
1 0
0
1 1
1
0 0
1
0 1
1
1 0
1
1 1

Ing. Gerardo Collaguazo

O0
0
1
1
1
1
1
1
1

O1
1
0
1
1
1
1
1
1

O2
1
1
0
1
1
1
1
1

O3
1
1
1
0
1
1
1
1

O4
1
1
1
1
0
1
1
1

O5
1
1
1
1
1
0
1
1

O6
1
1
1
1
1
1
0
1

O7
1
1
1
1
1
1
1
0

24

Sistemas basados en microprocesadores

Parte I

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

Vcc

O6

CS6

A14

A2

O5

CS5

A13

A1

O4

A12

A0

CS4
CS3

O2

CS2

O1

CS1

O0

CS0

E2

E1

GND

8085

O3

4K7

CS7

E3

74LS138

O7

A15

Fig. 1.35 Conexin del mP con el decodificador

1.2.3

Como vemos se emplean la lnea de direccin ms


alta (A15) para atacar la entrada de control E3,
mientras que las entradas de datos binarias del
decodificador (A0, A1, A2) son manejadas por las
direcciones A12, A13 y A14 del microprocesador. De
esta forma puede utilizarse la lnea de direccin A15
tambin para seleccionar una memoria EPROM,
puesto que al comenzar su ejecucin el
microprocesador arranca en la direccin 0000H en su
contador de programa, por lo que tendremos un 0 en
la lnea A15 con la que podemos seleccionar una
EPROM al tiempo que bloqueamos el 74LS138. Las
otras dos lneas de control E1 y E2 se colocan a nivel
bajo para dejar activo el decodificador. De todas
formas es posible dar otra funcin a estas lneas de
control en el diseo global del sistema.
Las lneas de salida O0, O1, O2,..., O7 del
decodificador quedarn disponibles para seleccionar
los componentes deseados. En cada una de ellas, se
colocar una resistencia a +5V para asegurar el nivel
lgico 1, en las salidas no activas.

LA MEMORIA

Para un sistema electrnico diseado sobre la base de un microprocesador determinado, la memoria es el lugar
externo donde se almacenan los programas y los datos, tanto los iniciales como los que se van generando a medida
que se ejecuta el programa.
Las memorias debern disponer de un bus de datos (generalmente de 8 bits), un bus de direcciones cuyo nmero
de bits depende de la capacidad de almacenaje y de los terminales de control adecuados que permitan un correcto
funcionamiento del dispositivo, as como un fcil acceso y la posibilidad de situar los terminales del bus de datos
en estado de alta impedancia.
Dentro de las caractersticas ms destacables de una memoria y esenciales para su valoracin se encuentran los
tiempos de escritura y lectura, el tiempo de acceso, los tiempos de ciclo, la capacidad (nmero de bits que
pueden almacenarse en la memoria), etc. Todos estos datos, junto a otra serie de parmetros tpicos pueden
encontrarse en las hojas de especificaciones tcnicas que suministran los fabricantes.
Para trabajar con un microprocesador, se dispone bsicamente 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
informacin deseada. Lo normal es almacenar en ellas los datos y valores que se van generando durante la
ejecucin del programa, la informacin que contienen es voltil, es decir puede perderse por un fallo en la
alimentacin.
A continuacin veremos un resumen de las distintas memorias de cada tipo:
Memoria RAM dinmica: Este tipo de memoria RAM se caracteriza por almacenar los bits que representan la
informacin, en forma de cargas elctricas, aprovechando la capacidad generada en un transistor MOS que
constituye la celda elemental de informacin. Sin embargo esta carga as almacenada, se va perdiendo con el
tiempo, llegando a desaparecer al cabo de unos ms, debido a fugas elctricas. Es por tanto imprescindible con
este tipo de memorias emplear circuitos de refresco cuya misin es leer la informacin que contiene la
Ing. Gerardo Collaguazo

25

Sistemas basados en microprocesadores

Parte I

memoria y volver a guardarla exactamente igual a intervalos de tiempo prximos a 1 o 2 ms. Hay
microprocesadores que incluyen un sistema de refresco para trabajar con este tipo de memorias, en caso
contrario sera preciso disear uno. Las RAM dinmicas poseen gran capacidad de memoria y son muy
econmicas, suelen emplearse en sistemas que requieren mucha memoria.
Memoria RAM esttica: Es la memoria que emplearemos nosotros en nuestro sistema. Esta constituida a partir
de elementos flip-flop que configuran las celdillas de informacin, es decir, cada celdilla o flip-flop representa
un bit. Su contenido permanece estable (a diferencia de las dinmicas) hasta que eliminemos la tensin de
alimentacin, momento en que perdemos toda la informacin almacenada. Si deseamos retener la informacin
de la RAM, no tendremos ms alternativa, que disear un sistema de alimentacin auxiliar (con bateras por
ejemplo) que sustituya a la tensin principal cuando desaparezca.
Existen RAM estticas de diferente ancho de palabra, en nuestro caso solo trataremos la RAM de 8 bits.

La descripcin 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 tensin de referencia.
Patilla Vcc. Es el terminal de alimentacin (+5V).
Patilla CS. Entrada de seleccin de componente.
Patilla OE. Entrada de lectura.
Patilla WE. Entrada de escritura.

A7
A6
A5
A4
A3
A2
A1
A0
D0
D1
D2
GND

1
2
3
4
5
6
7
8
9
10
11
12

RAM 6116

Disponemos en el mercado de una amplia variedad de componentes RAM entre los que es posible elegir para
disear un sistema. Nosotros vamos a emplear la memoria RAM 6116, que se presenta en un encapsulado de
24 patillas y podemos ver representada en la Fig. 36. Se trata de una memoria fabricada con tecnologa
"CMOS" de bajo consumo con una capacidad de 16384 bits, es decir, 2 Kbytes para lectura/escritura.
24
23
22
21
20
19
18
17
16
15
14
13

Vcc
A8
A9
WE
OE
A10
CS
D7
D6
D5
D4
D3

(Recuerde que las seales marcadas en negrita tienen nivel activo BAJO).
Fig. 1.36 Memoria RAM 6116
E3

O7

A14
A13
A12
A11
A10

A2
A1
A0

O6
O5
O4
O3
O2

A9
A8

O1
O0

+5V

CS

74LS138

WR
RD

AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0

WE
OE

8212

8085

A10
A9
A8

Vcc
GND

Para llevar a cabo la interconexin entre esta


memoria y el microprocesador, debemos
fijarnos en el esquema de la Fig. 37. Como
podemos apreciar, las conexiones a realizar son
las siguientes:
-

RAM 6116

A15

A7
A6
A5
A4

D7
D6
D5
D4

A3
A2
A1
A0

D3
D2
D1
D0

Fig. 1.37 Conexin de la RAM al microprocesador

Ing. Gerardo Collaguazo

Las lneas de direccin A0, A1, A2, ..., A7


son conectadas a las salidas DO0, DO1,
DO2, ..., DO7 del 8212.
Las lneas de direccin A8, A9 y A10, se
conectan a las lneas correspondientes A8,
A9 y A10 del bus de direcciones del
microprocesador.
Los terminales D0, D1, D2, ..., D7 de la
memoria RAM se conectan a las lneas
AD0, AD1, AD2, ..., AD7 del bus de datos
del microprocesador, respectivamente.
El terminal GND ser conectado a masa,
mientras que Vcc se lleva a la alimentacin
de +5V.
La lnea CS, de seleccin de chip, es
conectada a una de las salidas del
decodificador de direcciones 74LS138.

26

Sistemas basados en microprocesadores


-

Parte I

El terminal WE se conecta a la seal 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 que
su contenido no se pierde an en ausencia de la tensin de alimentacin. Este tipo de memoria debe ser grabada
por el fabricante, mientras que el usuario no tiene la posibilidad de variar su contenido. Solo se emplean
cuando se requiere un gran volumen de produccin y no es preciso introducir modificaciones en los programas.
Memoria PROM: Tiene caractersticas similares a la anterior, con una distribucin de terminales idntica, por
lo que pueden reemplazarlas. Las PROM se compran vacas o limpias, es decir, sin informacin alguna y
es el usuario quien mediante un programador adecuado, les carga el programa. Las celdillas de informacin
poseen dispositivos fusibles que segn permanezcan intactos o fundidos, representarn los dos posibles
estados de informacin (1 0). Por supuesto, una vez almacenado el programa en la PROM, no podremos
modificar su contenido.
Memoria EPROM: Se trata de una memoria de solo lectura, que tambin puede ser programada por el usuario
con el dispositivo programador adecuado. Sin embargo las EPROM tienen la particularidad de disponer de una
ventana de cuarzo que permite el paso de los rayos de luz hasta la cpsula que contiene la memoria en s. Si
hacemos incidir radiaciones ultravioletas sobre dicha ventana conseguimos eliminar la informacin existente en
la memoria, quedando la EPROM dispuesta para ser grabada de nuevo. Este proceso puede repetirse en muchas
ocasiones. Son ms caras que las anteriores y sus terminales no son totalmente compatibles.

28
27
26
25
24
23
22
21
20
19
18
17
16
15

Vcc
A14
A13
A8
A9
A11
CS
A10
OE
D7
D6
D5
D4
D3

A continuacin se describe la funcin de sus terminales:


- Patillas A0,... A14. Representan el bus de direcciones.
- Patillas D0,... D7. Representan el bus de datos.
- Patilla GND. Representa la tensin de referencia o masa.
- Patilla Vcc. Tensin de alimentacin.
- Patilla Vpp. Entrada de programacin.
- Patilla CS. Terminal de seleccin de chip.
- Patilla OE. Terminal que habilita las salidas.
A15
A14
A13
A12

Fig. 1.38 Memoria EPROM

Para llevar a cabo la interconexin entre esta


EPROM y el microprocesador, no tendremos
ms que conectar de forma adecuada las lneas
correspondientes de los buses de datos y
direcciones, segn se muestra en la Fig. 39. Hay
que destacar que al disponer esta memoria de 15
lneas de direcciones, emplearemos las lneas
A0,... A14 del microprocesador para direccionar
todas las posiciones disponibles de la EPROM,
efectuando la seleccin de chip con la lnea de
direcciones A15 de forma directa y emplendola
al mismo tiempo para bloquear el decodificador
74LS138. Tambin debemos conectar la seal
RD del microprocesador a la entrada OE de la
memoria para efectuar la lectura de datos.
Ing. Gerardo Collaguazo

+5V

A11
A10
A9
A8

Vcc

A15

Vpp

A14
A13
A12

8085

A11
A10
A9
A8
OE

RD

EPROM 27256

1
2
3
4
5
6
7
8
9
10
11
12
13
14

AD7
AD6
AD5

A7
A6
A5

D7
D6
D5

AD4
AD3

A4
A3

D4
D3

AD2
AD1

A2
A1

D2
D1

AD0

A0

8212

Vpp
A12
A7
A6
A5
A4
A3
A2
A1
A0
D0
D1
D2
GND

EPRO M 27256

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

D0
GND

Fig. 1.39 Conexin de la EPROM al microprocesador

27

Sistemas basados en microprocesadores

Parte I

El terminal Vpp (de entrada de programacin) debemos conectarlo a +5V, durante su estado de funcionamiento
normal.
Si deseamos aadir ms memorias EPROM, podremos situarlas en las direcciones que deseemos dentro del mapa
de memoria disponible, aunque lo normal es situar las EPROM en bancos consecutivos.
Otras memorias: El desarrollo de las tecnologas de fabricacin y los continuos avances en la investigacin,
hacen que el campo de las memorias est evolucionando constantemente, consiguindose componentes con
mayores capacidades de almacenamiento, velocidades de acceso mayores y costes ms reducidos. Al mismo
tiempo se trabaja sobre otros tipos de memorias intentando mejorar determinadas caractersticas. Podemos
mencionar:
-

1.2.4

Las memorias EAROM, que almacenan la informacin de forma permanente, pero pueden ser ledas y
escritas electrnicamente (aunque los tiempos de escritura son muy superiores a los de lectura).
Las memorias de burbujas que se caracterizan por poseer una densidad elevadsima de
almacenamiento aunque son lentas y caras.
Las memorias PLA o de matriz lgica programable. Se emplean para decodificar o codificar seales
lgicas.

DISEO DEL SISTEMA BASICO

Apoyndonos ahora en todo lo visto hasta el momento, podemos realizar nuestro diseo de sistema, para llevar a
cabo operaciones bsicas con el microprocesador 8085.
Esta tarjeta que estar constituida esencialmente por los componentes mencionados con anterioridad, responde al
esquema de la Fig. 40.
En ella podemos ver cmo la conexin de la memoria EPROM se realiza del mismo modo que se ha indicado en el
apartado anterior (ver Fig. 39).
El banco de memorias RAM estar constituido en este caso por tres unidades 6116, con idntico modo de conexin
en todas sus lneas a excepcin de las lneas de seleccin de chip, que en este caso sern las CS0, CS1, y CS2
procedentes del decodificador 74LS138.
En lo que se refiere a la conexin del 8212, vemos que nada vara respecto a lo expuesto en la Fig. 33, nicamente
mencionar la colocacin de una resistencia de 4K7 a +5V en la seal ALE al objeto de reafirmar los niveles de
tensin en esta salida del microprocesador.
Este mismo sistema se emplea en la parte alta del bus de direcciones en el que se sita un bloque de 8 resistencias
de 10k cada una conectadas a +5V.
El decodificador de direcciones 74LS138, sigue el mismo esquema de conexin que el mostrado en la Fig. 35.
Ahora adems se refuerzan las salidas del mismo colocando un bloque de 8 resistencias de 4K7 a +5V. Puede verse
como en este caso las salidas CS0, CS1, y CS2, tomadas de las patillas 15, 14 y 13 respectivamente se emplean
para direccionar las tres pastillas de memorias RAM que hemos colocado en el sistema.

Ing. Gerardo Collaguazo

28

Sistemas basados en microprocesadores

Parte I

Fig. 1.40 Sistema bsico con mP 8085A

Puede verse con claridad cmo el microprocesador se sirve de un cristal de cuarzo de 4 MHz y un condensador de
18 pF, que colocados entre las patillas 1 y 2 generan la oscilacin que produce la frecuencia de reloj a la que
funcionar el sistema. Es decir, se genera la frecuencia de trabajo.

Ing. Gerardo Collaguazo

29

Sistemas basados en microprocesadores

Parte I

Destacamos adems el circuito situado en la seal de entrada RESET IN del microprocesador (patilla 36) formado
por una resistencia de 1K en paralelo con un diodo y un condensador electroltico de 1 uF. Este circuito es el que
asegura un arranque correcto del sistema en el momento de conexin a red inicindose el contador de programa en
la direccin 0000H, despus de que la patilla 36 haya alcanzado el nivel lgico 1 (ALTO). Este circuito produce un
retardo 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 seales INTR, TRAP, RST 7.5, RST 6.5, RST 5.5 y
HOLD son conectadas directamente a masa para conseguir un correcto funcionamiento del sistema mientras no
vayamos a emplearlas. Estas conexiones deben realizarse individualmente para cada seal y mediante puentes
fcilmente eliminables de modo que si en un momento dado, para una determinada aplicacin deseamos emplear
alguna de ellas, podamos hacerlo sin ms que eliminar el puente a masa correspondiente y tratando dicha entrada
del modo adecuado.
Adems deben colocarse distribuidos sobre la tarjeta condensadores de desacoplo. Lo ms usual es situar uno por
cada circuito integrado y debern ir soldados mediante conexiones cortas y a ser posible directamente sobre las
patillas de alimentacin de los circuitos integrados. Este es un medio eficaz y sencillo para impedir la creacin de
seales parsitas de alta frecuencia que son derivadas a masa a travs del condensador. Normalmente estos
condensadores son de 100 nF.
Puede apreciarse tambin cmo la tarjeta dispone, para su conexin a otros circuitos, de cuatro conectores:
CON1: Constituido por 16 lneas en las cuales podemos encontrar el bus de direcciones completo (A0, A1,
A2,..., A15).
CON2: Constituido por 8 lneas en las que podemos encontrar el bus de datos completo (D0, D1, ..., D7).
CON3: Constituido por un total de 24 lneas entre las que encontramos el bus de control, el bloque completo de
seales de interrupcin (que podremos utilizar desde el exterior eliminando previamente los puentes a masa) y
las seales de seleccin de chip que se toman del decodificador 74LS138.
CON4: Constituido por nueve lneas divididas en dos grupos que sirven para suministrar la alimentacin a la
tarjeta (+5V y MASA).
Realizadas todas estas consideraciones, no queda ms que analizar con detenimiento, las direcciones de memoria
que ocupa cada uno de los componentes que integran esta tarjeta y las direcciones que quedan disponibles para
futuras ampliaciones.
Como puede deducirse de la Fig. 41 y apoyndonos en los valores que adquieren las entradas A0, A1, A2 y E3 del
decodificador, se tendr la siguiente distribucin de direcciones:
EPROM 27256
RAM 6116-1
RAM 6116-2
RAM 6116-3

Desde 0000H hasta 7FFFH


Desde 8000H hasta 87FFH
Desde 9000H hasta 97FFH
Desde A000h hasta A7FFH

Al mismo tiempo, los terminales del decodificador 74LS138 que quedan libres para aadir nuevos elementos al
sistema, respondern a las siguientes direcciones:
CS3
CS4
CS5
CS6
CS7

1.2.5

B000H
C000H
D000H
E000H
F000H

INTERCONEXION DEL 8155 CON EL MICROPROCESADOR 8085

Es claro, por todo lo estudiado hasta el momento, que el 8155 es un perifrico programable cuya estructura permite
su utilizacin directa con el microprocesador 8085.
Ing. Gerardo Collaguazo

30

Sistemas basados en microprocesadores

Parte I

El 8155 dispone de ciertas caractersticas que hacen posible su conexin al microprocesador de dos formas
claramente diferenciadas que veremos a continuacin:
POSIBILIDAD 1
Dada la estructura del 8155, no tendremos ms que:
-

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

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

Conectar los terminales de masa (GND) y alimentacin (Vcc) a la masa y alimentacin del
microprocesador (+5V). Es conveniente colocar un condensador a masa de 100 nF en el terminal de
alimentacin.

Conectar las seales ALE, RD y WR del 8155 directamente a las patillas ALE, RD y WR del
microprocesador.

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

La patilla CS (seleccin de chip) ser controlada mediante una de las salidas libres del decodificador de
direcciones. En este caso elegiremos la salida CS4.

El terminal IO/M del 8155 se conecta directamente a la seal de control IO/M de idntica
denominacin del microprocesador.

Finalmente dispondremos de 22 lneas para comunicarse con el exterior que forman los tres puertos de
entrada/salida del 8155 y de una lnea de salida de un contador o temporizador denominada TIMER
OUT.

De esta forma tendremos perfectamente acoplado este nuevo componente a nuestro sistema. En la Fig. 41
puede verse el esquema de esta conexin. No nos queda ahora ms que estudiar la forma de acceso al
mismo, 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 seleccin del dispositivo hay que hacer activa la
salida 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 combinacin es obligatoria. Por tener
conectada la seal IO/M del microprocesador, para acceder a los puertos de E/S ser necesario emplear las
instrucciones OUT PORT e IN PORT para sacar o leer datos del exterior y como sabemos por el tema 4, (al
emplear estas instrucciones el microprocesador entiende que deseamos tener acceso a una entrada/salida y
automticamente coloca un 1 lgico en la seal IO/M) el operando PORT representa el puerto
seleccionado. Tendremos por tanto que situar en los bits de direccin ms bajos (A0, A1 y A2) los cdigos
correspondientes a los puertos A, B, C y el cdigo correspondiente del registro de estado, segn el
elemento al que deseemos tener acceso. Ambas instrucciones (OUT e IN) tienen el mismo efecto sobre el
bus de direcciones, duplican el valor asignado a PORT en dicho bus. Por ejemplo con la instruccin OUT
B1H, sacaramos hacia el exterior el contenido del acumulador, y en el bus de direcciones tendramos el
valor B1B1H. De modo similar con la instruccin IN B3H, cargaramos un dato del exterior en el
acumulador y tendramos en el bus de direcciones el valor B3B3H.

Ing. Gerardo Collaguazo

31

Sistemas basados en microprocesadores


+5V

PC0
PC1
PC2
PUERTO C
PC3
PC4
PC5
D0
AD0
D1
AD1
D2
AD2
BUS
D3
AD3
8085
D4
AD4
D5
AD5
D6
AD6
D7
AD7
ALE
ALE
WR
WR
RD
RD
IO/M
IO/M
CS4
CS
CLK TIMER IN
OUT

37
38
39
1
2
5
12
13
14
15
16
17
18
19
11
10
9
7
8
3

Parte I

100 nF
40

20

8155

21
22
23

PA0
PA1
PA2

24
27
25
26
28
29
30
31
32
33
34
35
36

PA3
PA4
PA5
PA6
PA7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7

6
4

PUERTO A

PUERTO B

TIMER OUT
RESET

RESET
OUT

15pF

Fig. 1.41 Puerto programable paralelo 8155

Por tanto en nuestro caso, para acceder a los puertos y registro de estado del 8155 tendramos que colocar
como valor de PORT:
Puerto A
Puerto B
Puerto C
Timer Low
Timer High
Registro de estado

PORT = C1H
PORT = C2H
PORT = C3H
PORT = C4H
PORT = C5H
PORT = C0H

Cuando deseemos trabajar con la memoria interna del 8155, no podremos utilizar la instrucciones
especiales OUT e IN, sino que habr que emplear instrucciones normales como LDA o bien STA, segn
sea el caso, seguidas de la direccin de memoria a la que deseemos acceder, que en el caso que estamos
tratando, sern 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 radica
en que la seal IO/M del 8155 no se conecta a la equivalente IO/M del microprocesador, sino que se
controla mediante una lnea del bus de direcciones. Nosotros elegiremos este mtodo y conectaremos a
dicha seal la lnea de direcciones A10 (podramos haber elegido otra). Para acceder a los puertos de
entrada/salida o al registro de estado no podremos utilizar ahora las instrucciones OUT e IN puesto que no
usamos la salida IO/M del microprocesador. En este caso, tanto para los puertos y registro de estado, como
para las direcciones de RAM interna, se utilizarn instrucciones como STA o bien LDA seguidas de la
direccin correspondiente.

Ing. Gerardo Collaguazo

32

Sistemas basados en microprocesadores

Parte I

Al igual que en el caso anterior, para seleccionar el chip debemos colocar en la parte alta del bus de
direcciones (A15, A14, A13, A12) el dato binario 1100. Adems hay que colocar en la parte baja (A0, A1,
A2) el cdigo correspondiente al elemento que deseemos utilizar. Y finalmente, tendremos que colocar la
lnea de direcciones A10 a nivel lgico 1 para acceder a los puertos y registro de estado y a nivel lgico 0
para tener acceso a las posiciones de memoria RAM interna.
Por tanto las direcciones a considerar en nuestro caso sern:
Puerto A
Puerto B
Puerto C
Timer Low
Timer High
Registro de estado C/E
RAM 8155

C401H
C402H
C403H
C404H
C405H
C400H
C000H hasta C0FFH

En la Fig. 42 puede verse la representacin esquemtica de esta conexin, que ser la que finalmente
utilizaremos en nuestro sistema.
+5V

PUERTO C

PC0
PC1
PC2
PC3

37
38
39
1

PC4
PC5
AD0
AD1
AD2
AD3

2
5
12
13
14
15

D0
D1
D2
BUS
D3
8085
D4
AD4
AD5
D5
AD6
D6
D7
AD7
ALE
ALE
WR
WR
RD
RD
A10
IO/M
CS
CS4
CLK TIMER IN
OUT

16
17
18
19
11
10
9
7
8
3

100 nF
40

20

8155

21
22
23
24

PA0
PA1
PA2
PA3

27
25
26

PA4
PA5
PA6

28
29
30

PA7
PB0
PB1

31
32

PB2
PB3

33
34
35

PB4
PB5
PB6

36

PB7

6
4

PUERTO A

PUERTO B

TIMER OUT
RESET

RESET
OUT

15pF

Fig. 1.42 Posibilidad 2 de conexin 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 desarrollo
del software, es decir, el desarrollo de programas que una vez construidos, son almacenados en las memorias
permanentes (PROM, EPROM,...) del sistema, donde son buscados por el microprocesador para desarrollar todas
las funciones y tareas deseadas.
Ing. Gerardo Collaguazo

33

Sistemas basados en microprocesadores

Parte I

Un programa est constituido por un conjunto ordenado de instrucciones, que constituyen el cuerpo principal del
programa y uno o ms bloques de datos iniciales necesarios para una correcta ejecucin. El proceso bsico de
ejecucin de un programa requiere por parte del microprocesador, la repeticin de los siguientes pasos:
1. Construir la direccin de la posicin de memoria donde se encuentra la instruccin y situarla en el bus de
direcciones. Esta funcin, como se mencion anteriormente, la realiza el contador de programa.
2. Leer la instruccin por medio de una orden de lectura enviada a travs del bus de control. En respuesta, la
posicin de memoria direccionada transmite el cdigo de la instruccin al bus de datos. Esta informacin se
almacena en el registro de instrucciones.
3. Decodificar la instruccin para determinar en la ROM del microprograma la secuencia de microinstrucciones
necesarias para llevarlas a cabo. Esta funcin la realiza el decodificador de instrucciones del microprocesador.
4. Leer, si la instruccin as lo exige, cualquier dato almacenado en una posicin de memoria o traerlo desde un
puerto de entrada.
5. Ejecutar las operaciones especificadas por la instruccin. Esta funcin la realizan la ALU, el Acumulador y
dems registros asociados a la unidad de ejecucin.
6. Almacenar, si al instruccin as lo exige, los resultados en una determinada posicin de memoria o llevarlos a
un puerto de salida.
Todas estas acciones estn sincronizadas por la seal de reloj del sistema y constituyen lo que se denomina ciclo de
instruccin, 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 instruccin del programa.
Interpretar la instruccin leda.
Ejecutar dicha instruccin.
Debemos considerar adems que los microprocesadores trabajan solamente con lenguaje de bajo nivel, es decir,
trabajan con lenguaje mquina. Cada microprocesador o familia de microprocesadores, posee su propio lenguaje
mquina que determina las capacidades propias de cada familia. Las instrucciones mquina son almacenadas en la
memoria en forma de bytes, es decir, en forma de unos y ceros empleando por tanto el sistema binario de
numeracin. Sin embargo este sistema es muy complejo para trabajar directamente con l, por lo que se emplean
otros sistemas como el hexadecimal, BCD, etc. para la representacin de datos.
Para construir los programas, normalmente se emplean lenguajes de alto nivel, y luego se transforman los
programas as escritos a lenguaje mquina asequible para el microprocesador. No obstante en nuestro caso
emplearemos un lenguaje de bajo nivel (ensamblador) que trabaja con abreviaturas alfabticas denominadas
mnemnicos que constituyen las operaciones e instrucciones que ejecutar el microprocesador.

1.3.2

ARQUITECTURAS DE LOS SISTEMAS DE MICROPROCESADORES. TIPOS DE


PROCESADORES

1.3.2.1 ARQUITECTURAS VON NEUMANN Y HARVARD

CPU
CPU

MEMORIADE
DE
MEMORIA
PROGRAMA
PROGRAMA
DATOS
YYDATOS

La arquitectura de los sistemas digitales programables


pueden ser de tipo Von Neumann o Harvard. En la
Arquitectura Von Neumann la CPU est conectada a
una memoria nica que contiene las instrucciones del
programa y datos. A esta memoria se accede a travs de
un nico sistema de buses nico. La nica ventaja que
posee es que simplifica la lgica del sistema.
Las limitaciones de esta arquitectura tradicional son:

Fig. 1.43 Arquitectura Von Neumann

Ing. Gerardo Collaguazo

La longitud de las instrucciones est limitada por la


longitud de los datos, por lo tanto, el
microprocesador debe hacer varios accesos a la
memoria para buscar instrucciones complejas.
34

Sistemas basados en microprocesadores

Parte I

La velocidad de operacin est limitada por el efecto de cuello de botella que significa un nico bus de
datos e instrucciones, que impide superponer ambos tiempos de acceso.
Otros sistemas de microprocesadores utilizan la
Arquitectura Harvard que dispone de dos tipos
de memorias independientes (memoria de datos y
memoria de programa) a la que se conecta
mediante dos grupos de buses separados, conforme
la figura 1.44.
Ambos buses son totalmente independientes y
pueden ser de distintos anchos, esto permite que la
CPU pueda acceder de forma independiente y
simultnea a la memoria de datos y a la de
instrucciones, consiguiendo que las instrucciones
se ejecuten en menos ciclos de reloj.

MEMORIA
MEMORIADE
DE
PROGRAMA
PROGRAMA
(ROM)
(ROM)

CPU
CPU

MEMORIADE
DE
MEMORIA
DATOS
DATOS
(RAM)
(RAM)

Fig. 1.44 Arquitectura Harvard

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


El tamao de las instrucciones no est relacionado con el de los datos y, por lo tanto, puede ser optimizado
para que cualquier instruccin ocupe una sola posicin de memoria de programa. As se logra mayor
velocidad y una menor longitud de programa.
El tiempo de acceso a las instrucciones puede superponerse con el de los datos logrando una mayor
velocidad de operacin.

1.3.2.2 PROCESADOR SEGMENTADO O PIPELINE


Un procesador Segmentado o Pipeline realiza simultneamente la ejecucin de la instruccin y la bsqueda del
cdigo de la siguiente, de esta manera, se puede ejecutar una instruccin en un solo ciclo mquina.
Este sistema acompaado de una estructura Harvard, permite que las instrucciones se ejecuten en un solo ciclo
mquina, salvo en el caso de saltos de programa.
CICLO MAQUINA

OSC

PC

PC+1

BUSQUEDA INST (PC)


EJECUTA INST (PC -1)

BUSQUEDA INST (PC+1)


EJECUTA INST (PC)

Fig. 1.45 Ciclo mquina en un procesador segmentado

1.3.2.3 PROCESADOR SEGN EL NUMERO DE INSTRUCCIONES


Las CPUs atendiendo al tipo de instrucciones que utilizan pueden clasificarse fundamentalmente en:

Ing. Gerardo Collaguazo

35

Sistemas basados en microprocesadores

Parte I

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 problema
es que requieren de muchos ciclos de reloj para ejecutar las instrucciones.
RISC (Reduced Instruction Set Computer). Son microprocesadores con un repertorio de insrucciones
reducido. Las instrucciones son muy simples y suelen ejecutarse en un solo ciclo mquina. Los
procesadores RISC suelen tener una estructura Pipeline y ejecutar casi todas las instrucciones en el mismo
tiempo.
SISC (Specific Instruction Set Computer). Estos procesadores poseen un juego de instrucciones
especfico para cada aplicacin. Estn destinadas a aplicaciones muy concretas.

1.3.2.4 ARQUITECTURA DEL PROCESADOR SEGN EL FORMATO DE LAS


INSTRUCCIONES

MEMORIA
MEMORIA
DE
DEDATOS
DATOS

ALU

MEMORIA
MEMORIA
DEDATOS
DATOS
DE

W
W

ALU

ACUMULADOR
ACUMULADOR

Fig. 1.46 Arquitectura


Tradicional

En un procesador con Arquitectura


Ortogonal una instruccin puede
utilizar cualquier elemento de la
arquitectura como fuente o destino.
Esta es una diferencia muy significativa
respecto de la arquitectura tradicional.
En las siguientes figuras se representan
las Arquitecturas Tradicional y
Ortogonal.

Fig. 1.47 Arquitectura


Ortogonal

La principal diferencia entre ambos radica en la ubicacin del registro de trabajo


procesadores tradicionales todas las operaciones se realizan sobre el Acumulador. La
conectada a una de las entradas de la ALU y, por lo tanto, este es siempre uno de los dos
instruccin. La salida de la ALU va solamente a la entrada del Acumulador, el resultado
siempre quedar en este registro.

(Acumulador). En los
salida del mismo esta
operandos de cualquier
de cualquier operacin

En la estructura Ortogonal la salida de la ALU va al registro de trabajo y tambin a la memoria de datos, as el


resultado puede guardarse en cualquiera de los dos destinos. En las instrucciones de doble operando, uno de los dos
datos siempre debe estar en el registro de trabajo. La gran ventaja de esta arquitectura es que permite un gran
ahorro de instrucciones ya que el resultado d cualquier instruccin que opere con la memoria, puede dejarse en la
misma posicin de memoria o en el registro de trabajo.

1.3.3

LENGUAJES DE PROGRAMACION. EL ENSAMBLADOR

Los lenguajes de programacin se pueden dividir grosso modo, en las siguientes jerarquas:
Lenguajes de microprogramacin.
Lenguajes de mquina.
Lenguajes ensambladores.
Lenguajes de alto nivel.
El Lenguaje de microprogramacin es, normalmente invisible para el usuario de un microprocesador, porque
reside en la parte interna del mismo llamada ROM del microprograma. El microprograma interpreta las
Ing. Gerardo Collaguazo

36

Sistemas basados en microprocesadores

Parte I

instrucciones en lenguaje mquina recibidas por el microprocesador y es el responsable de generar las


microinstrucciones necesarias para ejecutar correctamente cada instruccin.
El Lenguaje Mquina, es la forma binaria (0s y 1s) del programa y es el nico lenguaje que, en ltima instancia
entiende el microprocesador. Una forma simplificada es el cdigo objeto, el cual representa cada cdigo binario por
se equivalente hexadecimal.
El Lenguaje Ensamblador y los lenguajes de alto nivel (Pascal, Basic, C, C++, etc) consisten en una serie de
instrucciones especiales (statements) que son ms fciles de entender por la personas que las instrucciones en
lenguaje mquina o cdigo objeto.
El Lenguaje Ensamblador utiliza Nemnicos que son grupos de caracteres alfanumricos que simbolizan las
rdenes o tareas a realizar con cada instruccin. De manera general, los nemnicos se corresponden con las
iniciales del nombre de la instruccin en ingls, d forma que recuerdan la operacin que realiza la instruccin, lo
que facilita su memorizacin.
Para ser comprendidas las instrucciones escritas en otro lenguaje, estas deben ser convertidas a lenguaje de
mquina por medio de un programa llamado traductor o compilador.

CODIGO FUENTE

TRADUCTOR

CODIGO FUENTE

PROGRAMA EN
ENSAMBLADOR,
BASIC, etc.

ENSAMBLADOR,
COMPILADOR,
INTERPRETE, etc

PROGRAMA EN
LENGUAJE DE
MAQUINA

Fig. 1.48

Conversin de Lenguaje Ensamblador a Lenguaje de mquina

El cdigo fuente est compuesto por una sucesin de lneas de programa. Todos los ficheros fuente poseen una
estructura similar independientemente del procesador utilizado. Cada lnea de programa suele estar compuesta de 4
campos separados por uno o ms espacios o tabulaciones. Estos campos son:
1. Campo de las etiquetas
2. Campo del cdigo de operacin
3. Campo de operandos y datos
4. Campo de comentarios.
ETIQUETA
SUM1:
SUM2:
RESUL:

OP-CODE
ORG
EQU
EQU
EQU
MVI
MVI
ADD
STA
HLT

OPERANDOS
0000H
08H
07H
0020H
A,SUM1
B,SUM2
B
RESUL

COMENTARIOS
;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 posicin RESUL
;Stop

El primer campo corresponde a la etiqueta. Como se mencion anteriormente, es un nemnico alfanumrico de 5 o


6 caracteres (siendo el primero una letra) para referirse a direcciones que son especficamente conocidas.
Normalmente, una etiqueta termina en dos puntos (:) para separarla de los otros campos.
El segundo campo corresponde al nemnico del op-code de la instruccin a ser ejecutada. Cada procesador tiene su
propio conjunto de cdigos nemnicos para designar cada una de las instrucciones a las que responde.

Ing. Gerardo Collaguazo

37

Sistemas basados en microprocesadores

Parte I

El tercer campo corresponde a los operandos o parmetros requeridos por la instruccin. Contiene, separados por
comas (,), las designaciones de los registros y/o los datos o direcciones sobre los cuales acta la misma.
El cuarto campo corresponde a os comentarios. En esta rea se escribe, entre otras cosas, notas especiales que
sirven de referencia no solamente al programador sino a cualquier persona que consulte el programa. Los
comentarios deben dar explicaciones de la instruccin o grupos de instrucciones desde el punto de vista de la
aplicacin.
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


Bsicamente puede decirse que el bloque de instrucciones debe ser completo y eficaz de modo que podamos
realizar todos los clculos necesarios de la forma ms rpida y precisa posible.
Una de las principales caractersticas de todo microprocesador es disponer de un buen conjunto de instrucciones
que le den la mayor versatilidad posible. Se establecen los siguientes grupos, tipos o conjuntos de instrucciones:
1. Aritmticas: Son las instrucciones que realizan operaciones de tipo aritmtico como sumas, restas,
incrementos, decrementos, etc. Todas las operaciones de este tipo afectan al registro de estado, es decir
a los flags.
2. Movimiento de datos: Este tipo de instrucciones de movimiento o transferencia de datos, permiten
realizar una copia del contenido de un registro o direccin de memoria (origen), en otro registro o
direccin de memoria (destino), sin alterar el contenido del origen.
3. Instrucciones lgicas: Realizan operaciones lgicas entre los operandos. Afectan a los flags segn sea
el caso y las operaciones se realizan bit a bit entre los datos.
4. Instrucciones de comparacin: 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 modificacin de secuencia que alteran la ejecucin
normal del programa, cargando el contador de programa con la nueva direccin en la que deseamos
contine ejecutndose el programa. Los saltos o bifurcaciones pueden ser:
Condicionales: Cuando son controlados por el estado de un indicador o flag, y basndose en dicho
estado se decide si se salta o no.
Incondicionales: Cuando modifican el contador de programa sin condicin previa.
Dentro de cada uno de estos tipos, podemos encontrar adems la particularidad de que al efectuar los
saltos se realicen con posibilidad de retorno o no.
6. Instrucciones de entrada/salida: Son en realidad instrucciones de transferencia, pero no entre
registros o posiciones de memoria, sino con elementos perifricos que permiten la comunicacin del
microprocesador con el exterior.
7. Instrucciones de control: Sirven para actuar internamente sobre el microprocesador, provocando
detenciones en la ejecucin 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 de
un registro (Acumulador).
Ing. Gerardo Collaguazo

38

Sistemas basados en microprocesadores

Parte I

1.3.4.2 MODOS DE DIRECCIONAMIENTO


Los modos de direccionamiento son aquellos procedimientos empleados por el microprocesador para poder acceder
a determinados operandos, instrucciones, posiciones de memoria, registros de entrada/salida, etc. Por tanto, el
objeto del direccionamiento es un valor o dato que se encuentra en un lugar de la memoria, en algn registro o en la
propia instruccin. Los diferentes modos de direccionamiento que pueda emplear un microprocesador le
proporcionan un determinado nivel de potencialidad, permitindole manejar datos y realizar operaciones con mayor
facilidad.
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 instruccin, es
decir, a continuacin del cdigo de la instruccin se aade el operando propiamente dicho. Las instrucciones
que emplean este direccionamiento pueden ser de dos o tres bytes y son instrucciones de ejecucin rpida y
sencilla.
2. Direccionamiento implcito: Las instrucciones que emplean este modo de direccionamiento tienen un solo
byte y es la propia instruccin la que indica qu registro o direccin de memoria se va a utilizar en la
operacin.
3. Direccionamiento absoluto: En este caso las instrucciones incluyen la direccin de memoria donde se
encuentra el dato con el que se va a operar. En este tipo de direccionamiento pueden darse tres supuestos:
a. La instruccin apunta a un registro que contiene la informacin deseada (direccionamiento tambin
llamado de registro).
b. La instruccin contiene la direccin completa en la que se encuentra el dato, empleando para ello tres
bytes.
c. Cuando la instruccin se refiere solo a una parte de la memoria (pgina). En este caso el byte ms alto lo
suministra el contador de programa y el byte ms bajo se expresa a continuacin del cdigo de instruccin,
por tanto solo se emplean dos bytes (Este direccionamiento tambin se llama de pgina base).
4. Direccionamiento directo relativo: La instruccin en este caso contiene un valor determinado al que podemos
llamar V. La direccin total se calcula sumando a V el valor que est almacenado en un registro al que haga
referencia la instruccin. El valor de V puede ser tanto positivo como negativo.
5. Direccionamiento indirecto: La instruccin contiene una direccin a la que llamaremos D1. El contenido de
D1 no es el objeto directo de nuestra instruccin, sino que contiene otra direccin que llamaremos D2. Esta
nueva direccin D2 es la que contiene el dato que s es objeto de la instruccin.
Expresados ya los modos de direccionamiento con carcter general, pasamos ahora a ver los modos de
direccionamiento que utiliza el microprocesador 8085 en particular, que son los cuatro siguientes:
Direccionamiento Directo Absoluto. La instruccin contiene la direccin exacta y completa donde se
encuentra el dato. Por ejemplo:
LHLD

A716H

Direccionamiento por Registro. La instruccin lleva el registro en el que est el dato que va a ser
tratado. Por ejemplo:
MOV
MOV

Ing. Gerardo Collaguazo

A,B
B,C

39

Sistemas basados en microprocesadores

Parte I

Direccionamiento por Registro Indirecto. En la instruccin se especifica un registro cuyo contenido


apunta a una direccin de memoria en la que se encuentra el dato. Por ejemplo:
MOV

A,M

M es una referencia simblica a una direccin de memoria apuntada o sealada por el par de registros
HL.
Direccionamiento Inmediato. La instruccin contiene el dato con el que se desea operar, pudiendo ser el
dato de uno o dos bytes.
LXI H,A0B7H
ADI 3AH
1.4

EJERCICIOS BASICOS DE PROGRAMACION

Para las prcticas vamos a utilizar el entrenador del microprocesador 8085A del laboratorio, que tiene el siguiente
diagrama de bloques.

Fig. 49 Diagrama de bloques del Entrenador uP8085A

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


El algoritmo.
Diagrama de flujo.
Escribir los mnemnicos de las instrucciones.
1. Empleo de las instrucciones bsicas
a) Mayor de dos nmeros: Leer un nmero de una direccin de memoria determinada, si es mayor que 12
cargarlo 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 direccin de memoria, por tanto se trata de un byte que contiene el Dato buscado. Se
supone que buscamos un nmero positivo (no dicen nada en contra). Y adems aadimos que la direccin de
memoria en la que se encuentra el Dato, la tenemos en el registro par HL.
Ing. Gerardo Collaguazo

40

Sistemas basados en microprocesadores

Parte I

Adems, podemos intuir que se trata de una toma de decisin sencilla ya que establece una accin a ejecutar si se
cumple una condicin determinada y en caso contrario debe hacer nada debe ejecutar otra accin.
De esta forma el algoritmo sera de la siguiente manera:
NOMBRE: MENOR12
FUNCION: Leer dato memoria y almacenarlo en B (>12) o en C
PRECONDICIONES: HL = Direccin memoria, B=0, C=0
POSTCONDICIONES: Dato en B o en C
Leer Dato de la memoria
SI Dato > 12
B = Dato
SI NO
C = Dato
FIN DE SI
Fin del Programa
A continuacin se muestra el diagrama de flujo correspondiente a este
pseudocdigo, donde se puede comprobar el desarrollo del programa.

Fig. 1.50 Diagrama de flujo

---------------------------------------------------------------------------------------------1
;-----------------------------------------2
;NOMBRE : MENOR12
3
;FUNCION : Si Dato>12 va a B si no va a C
4
;PRECONDICION : HL=Direccin Dato, B=0, C=0
5
;POSTCONDICION : Resultado en B o en C
6
;-----------------------------------------7
8
0000
MENOR12:
9
0000
F5
PUSH PSW
10
0001
7E
MOV A,M
11
0002
FE 0C
CPI 12
12
0004
CA 0D 00
JZ SALT1
13
0007
DA 0D 00
JC SALT1
14
000A
46
MOV B,M
15
000B
F1
FIN
POP PSW
16
000C
END
17
000D
4E
SALT1
MOV C,M
18
000E
C3 0B 00
JMP FIN
----------------------------------------------------------------------------------------------

b) Suma decimal de varios dgitos.


Con este ejercicio se llevar a cabo la suma de dos nmeros decimales de varias cifras. Puesto que no nos dicen
nada en el enunciado, supondremos que se trata de nmeros de ocho cifras. Los nmeros a sumar (los sumandos) se
encuentran almacenados en la memoria RAM expresados segn el sistema decimal (BCD). Puesto que en cada byte
disponemos de ocho bits, podemos tener representadas dos cifras decimales en cada byte, por lo que para completar
las ocho cifras de cada nmero se necesitarn cuatro bytes por nmero.
La direccin donde se encuentra almacenado el primer byte del primer sumando, vendr dada por SUM1 y el resto
en direcciones consecutivas. La direccin del primer byte del segundo sumando, estar dada por SUM2 y el resto
en direcciones consecutivas. El resultado de la operacin 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 nmero. Para realizar este
proceso, es preciso iniciar un Contador que nos permita establecer el final del bucle.

Ing. Gerardo Collaguazo

41

Sistemas basados en microprocesadores

Parte I

El pseudocdigo propuesto es el siguiente:


NOMBRE: SUMA
FUNCION: Suma dos nmeros decimales de 8 cifras cada uno
PRECONDICIONES:Primer sumando en SUM1
Segundo sumando en SUM2
POSTCONDICIONES: El resultado se almacena en
lugar de SUM1
Apuntar a SUM1
Apuntar a SUM2
Iniciar Contador = 4
MIENTRAS Contador > 0
Sumar bytes SUM1+SUM2
Ajuste decimal
Guardar resultado en SUM1
Apuntar a SUM1+1
Apuntar a SUM2+1
Contador = Contador 1
FIN DE MIENTRAS
Fin del Programa
En la 1.51 se representa el diagrama de flujo correspondiente este pseudocdigo y en l puede apreciarse el
Fig. 1.51 Diagrama de flujo
desarrollo o flujo de las rdenes a ejecutar por la computadora o sistema.
---------------------------------------------------------------------------------------------1
;-----------------------------------------2
;NOMBRE : SUMA
3
;FUNCION : Suma dos nm decimales 8 cifras
4
;PRECONDICION : SUM1 Y SUM2 conocidos
5
;POSTCONDICION : Resultado en SUM1
6
;-----------------------------------------7
20 80
SUM1
EQU
8020H
8
30 80
SUM2
EQU
8030H
9
10
0000
SUMA:
11
0000
F5
PUSH PSW
12
0001
E5
PUSH H
13
0002
C5
PUSH B
14
0003
D5
PUSH D
15
0004
21 20 80
LXI H,SUM1
16
0007
11 30 80
LXI D,SUM2
17
000A
A7
ANA A
18
000B
06 04
MVI B,04
19
000D
1A
SALT1
LDAX D
20
000E
8E
ADC M
21
000F
27
DAA
22
0010
77
MOV M,A
23
0011
23
INX H
24
0012
13
INX D
25
0013
05
DCR B
26
0014
C2 0D 00
JNZ SALT1
27
0017
D1
POP D
28
0018
C1
POP B
29
0019
E1
POP H
30
001A
F1
POP PSW
31
001B
END
-------------------------------------------------------------------------------------------

Ing. Gerardo Collaguazo

42

Sistemas basados en microprocesadores

Parte I

c) Subrutina: Retardo

En este caso nos piden desarrollar una subrutina o un programa de temporizacin. No se nos indica
cunto tiempo se debe permanecer en este estado, por lo que ser una caracterstica que impondremos
nosotros. Tampoco se dice nada acerca de qu debe hacer el microprocesador durante ese tiempo.
El programa bsicamente consistir en desarrollar un bucle o ciclo que se repita durante un tiempo, o un
determinado nmero de veces, y en el que el microprocesador no haga nada. Es decir, estableceremos
un tiempo de espera. Como se ha hecho en otras ocasiones se establecer un Contador que nos seale el
final del bucle y por tanto el final del tiempo de espera.
Segn las condiciones expresadas, tendremos el siguiente pseudocdigo:
NOMBRE: TEMPORIZ
FUNCION: Realiza un tiempo de espera
PRECONDICIONES: Conocemos el dato del Contador
POSTCONDICIONES: Ninguna
Iniciar el Contador
MIENTRAS Contador > 0
No hacer nada
Decrementar Contador
FIN DE MIENTRAS
Final del Programa

Fig. 1.52 Diagrama de flujo

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


---------------------------------------------------------------------------------------------1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

;-----------------------------------------;NOMBRE : TEMPORIZ
;FUNCION : Realiza un tiempo de espera
;PRECONDICION : Contador=CONTA
;POSTCONDICION : Ninguna
;-----------------------------------------0000
0000
0001
0002
0003
0004
0005
0006
0007
000A
000B

F5
1B
7A
B3
00
00
00
C2 01 00
F1
C9

000C

TEMPORIZ:
PUSH PSW
SALT1
DCX D
MOV A,D
ORA E
NOP
NOP
NOP
JNZ SALT1
POP PSW
RET
END

------------------------------------------------------------------------------------------------------------------------------------Para el llamado de la subrutina se emplea la instruccin CALL name.


2. Control de un juego de LEDs: Se desea rotar a la izquierda los LEDs conectados al PORTA cada cierto
tiempo.
Antes de realizar el programa, revisemos la configuracin de los puertos en el 8155 de nuestro entrenador de
laboratorio. En la tabla siguiente se presenta las direcciones de los Puertos que tiene el 8155.

Ing. Gerardo Collaguazo

43

Sistemas basados en microprocesadores

A7
x
x
x
x
x
x

A6
x
x
x
x
x
x

DIRECCIONES I/O
A5 A4 A3 A2
x
x
x
0
x
x
x
0
x
x
x
0
x
x
x
0
x
x
x
1
x
x
x
1

Parte I

A1
0
0
1
1
0
0

A0
0
1
0
1
0
1

SELECCIN
x puede ser 0 o 1
Registro de Comandos/Estados
PORTA. Propsito general E/S
PORTB. Propsito general E/S
PORTC. Propsito general E/S o control
Registro inferior de temporizacin
Registro superior de temporizacin

El formato de la palabra de configuracin es la siguiente.


7
6
5
4
TM2 TM1 IEB IEA

3
PC

2
PC

1
PB

0
PA
PA<7:0>
PB<7:0>
PC<5:0>

0 - Entrada
1 - Salida
00 - Entradas
11 - Salidas
01 - Activa las interrupciones
10 Activa las interrupciones

Habilita la interrupcin del PORTA


Habilita la interrupcin del PORTB
Comando del
Temporizador
En este programa solo se presenta el cdigo, dejando como tarea al estudiante la realizacin del algoritmo y
diagrama de flujo.
---------------------------------------------------------------------------------------------------------------------------------------ORG
0000H
; Direccin de inicio de programa
MVI
A,0Fh
; Carga palabra de control para
OUT
00
; configurar PORTA como salida
LXI
SP,00FFh
; Inicializa Stack Pointer
MVI
A,01h
; Dato para primer LED
LED OUT
01
; Encender LED
CALL Tiempo
; Subrutina de retardo
RAL
; Rotar un bit a la izquierda
JMP
LED
; Encender el siguiente LED
; ---------------------------------------------------------------------------------------

ORG
0040h
; Direccin de inicio de subrutina
MVI
B,60h
; Cargar contador externo
MVI
C,0FFh
; Cargar contador interno
DCR
C
; Decrementa contador interno
JNZ
Loop2
; Nuevo ciclo interno
DCR
B
; Decrementa contador externo
JNZ
Loop1
; Nuevo ciclo externo
RET
; Regresa a programa principal
---------------------------------------------------------------------------------------------Tiempo
Loop1
Loop2

En la siguiente la siguiente figura se muestra la conexin de un LED al PORTA del 8155.

Fig. 1.53 Conexin de LEDs al PORTA

Ing. Gerardo Collaguazo

44

Sistemas basados en microprocesadores

Parte I

3. Control del giro de un motor DC


El giro de un motor DC va a ser controlado en funcin de la siguiente tabla de verdad.
S1
0
0
1
1

S0
0
1
0
1

Operacin
Stop
Giro a la derecha
Giro a la izquierda
No se utiliza

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


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

MOTOR

ORG
MVI
OUT
LXI
MVI
OUT

0000H
A,02h
00
SP,00FFh
A,00h
02h

;
;
;
;
;

Direccin de inicio de programa


Carga palabra de control para configurar
PORTA como entrada y PORTB como salida
Inicializa Stack Pointer
Empieza con el motor apagado

IN
ANI
SUI
JZ

01h
03h
00h
MOTOR

; Lee estado de interruptores


; Filtra bits no utilizados
; Si es cero

IN
ANI
SUI
JNZ
CALL

01h
03h
01h
MOTOR
MOTOR_DER

;
;
;
;
;

Lee estado de interruptores


Filtra bits no utilizados
Si no es uno
Verifica de nuevo los interruptores
Si es uno, gira motor a la derecha

IN
ANI
SUI
JNZ
CALL

01h
03h
02h
MOTOR
MOTOR_IZQ

;
;
;
;
;

Lee estado de interruptores


Filtra bits no utilizados
Si no es dos
verifica de nuevo los interruptores
Si es dos, gira motor a la izquierda

JMP

MOTOR

; Verifica por siempre estado de interruptores

; --------------------------------------------------------------------------------------ORG
MVI
OUT
RET

0040h
A,01h
02h

;
;
;
;

Direccin de inicio de subrutina


Cargar dato
y enviar al PORTB
Regresa al programa principal

ORG
MVI
OUT
RET

0050h
A,02h
02h

;
;
;
;

Direccin de inicio de subrutina


Cargar dato
y enviar al PORTB
Regresa al programa principal

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

Fig. 1.54 Conexin de un motor DC

Ing. Gerardo Collaguazo

45

Sistemas basados en microprocesadores

Parte I

AUTOEVALUACION
1. Qu integrados forman parte de las siguientes escalas de integracin: Baja escala de integracin (SSI),
mediana escala de integracin (MSI), alta escala de integracin (LSI) y muy alta escala de integracin
(VLSI).
2. Complete el siguiente cuadro comparativo de los mtodos de diseo digital, segn el ejemplo.
CUADRO COMPARATIVO DE LOS METODOS DE DISEO DIGITAL
CLASE DE DISEO

METODOS DE DISEO

PARAMETROS DE
EVALUACION

Con circuitos SSI

Procesos sistemticos como el


Algebra de Boole, los Mapas de
Karnaught, Tablas de verdad, etc.

Menor nmero de elementos.


(Especificar cules elementos?)

(Especificar Qu elementos
forman parte de esta escala de
integracin?)
Con circuitos MSI
Con circuitos LSI
Con circuitos VLSI

3. Cules cree usted seran las ventajas de la utilizacin de los sistemas basados en microprocesadores frente
a los sistemas electrnicos de lgica cableada? Explique cuatro de ellas.
4. Anotar cuatro aplicaciones de los microprocesadores en las siguientes ramas tecnolgicas: industria,
medicina, telecomunicaciones, informtica, medicin y clculo, consumo domstico, comercio y banca.
5. Investigar el funcionamiento de una de las aplicaciones anotadas anteriormente en cada caso.
6. Busque en libros, revistas tcnicas nacionales o internacionales o en sitios de INTERNET, algn artculo
sobre la evolucin y desarrollo de los microprocesadores y haga un resumen para presentarlo. Indique la
fuente de consulta.
7. En los sitios de INTERNET, consulte el funcionamiento de un equipo de comunicaciones que utilice el
microprocesador 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 automatizacin
industrial que utilice los microprocesadores y haga un resumen para presentarlo. Indique la fuente de
consulta.
9. De acuerdo a sus conocimientos, realice un diagrama de bloques de los componentes de un computador
personal (PC).
10. Por qu, segn Ud., no se emplea una PC en los procesos industriales, debindose para ello disear
dispositivos dedicados a la industria?
11. Defina los siguientes trminos especificando su funcin segn sea el caso: Unidad Aritmtica y Lgica
(ALU), Unidad de Control, Memoria RAM, Unidad de Entrada/Salida, Perifrico (enumere 10 de ellos),
Bus (indique los tipos y su funcin), Instruccin, Programa, Software, Hardware, Firmware, Unidad
Central de Procesamiento (CPU).

Ing. Gerardo Collaguazo

46

Sistemas basados en microprocesadores

Parte I

12. Indique la funcin de los registros siguientes: Contador de programa, Registro de trabajo o Acumulador,
Registro de Instrucciones, Registro de estado, Registro Puntero de Pila (SP).
13. Cules son las caractersticas 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 dems
dispositivos y mediante que lneas lo hace?
16. Cuntas lneas forman el Bus de Direcciones y de qu depende este nmero?
17. Adems de la CPU qu circuitos integrados interviene en un sistema de microprocesadores?
18. Cules son las diferencias entre un PPI8155 y un PPI8255?
19. Qu es un ciclo de instruccin. Describa las fases que lo conforman en base a un ejemplo?
20. Cul es la diferencia entre un programa y un algoritmo?
21. Cules son las funciones de: la seal de RESET, del Oscilador, del integrado 8212?
22. Enumere las caractersticas tcnicas del microprocesador 8085A.
23. Investigue las caractersticas de los microprocesadores MC6800 y Z80 y realice un cuadro comparativo
entre los tres microprocesadores.
24. Qu son los Mnemnicos y cmo se obtienen los cdigos de mquina 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. Cules son las diferencias entre un microprocesador de Arquitectura Von Neumann y Harvard.
28. Qu elementos componen un sistema bsico de un microprocesador de 8 bits 8085A?
29. En funcin de que se clasifican las instrucciones de un microprocesador y cules son estos tipos?
30. Qu funcin realizan las lneas de control y de donde toman la informacin?

Ing. Gerardo Collaguazo

47

Sistemas basados en microprocesadores

Parte I

BIBLIOGRAFIA
1. Luque Sacaluga David, Electrnica Digital y Microprogramable, Ed. Alfa-Omega, Mexico
2006.
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 Electrnica Digital y Microprocesadores, CEKIT 1999.
6. Kammerer y otros, Mdulos de la Microelectrnica, Curso de Electrnica III, Libro de Texto,
GTZ, Munchen 1992.
7. Vallejo Horacio, Revista Saber Electrnica No. 126.
8. Vallejo Horacio, Revista Saber Electrnica No. 132.
9. Datasheets: CI8212, uP 8085A, 8155, PPI 8255A, RAM6116, EPROM2716, EEPROM2816.

1.
2.
3.
4.
5.
6.

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

Ing. Gerardo Collaguazo

48

También podría gustarte