Sunteți pe pagina 1din 153

MDULO DE MICROPROCESADORES

& MICROCONTROLADORES
Elaborado para la UNAD por:
Freddy Reynaldo Tllez Acua
1
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
FACULTAD DE CIENCIAS BSICAS E INGENIERA
2006
1
Docente de la Unad. Ingeniero Electricista UIS. Magster en Potencia Elctrica UIS.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
2
UNIDADES DIDCTICAS DEL CURSO
UNIDAD CAPTULO TEMAS
1. FUNDAMENTOS DE
MICROPROCESADORES
1.1 INTRODUCCIN AL
MICROPROCESADOR
1.2 MICROPROCESADORES
DE 8 BITS
1.3 MICROPROCESADORES
DE 16 y 32 BITS
1.1.1 Origen y evolucin
1.1.2 Generalidades del microprocesador
1.1.3 Estructura interna
1.1.4 Familias de microprocesadores
1.2.1 Caractersticas Generales
1.2.2 Funciones y diagrama de pines
1.2.3 Arquitectura interna
1.2.4 Modos de direccionamiento
1.2.5 Repertorio de instrucciones
1.3.1 Caractersticas Generales
1.3.2 Funciones y diagrama de pines
1.3.3 Arquitectura interna
1.3.4 Modos de direccionamiento
1.3.5 Repertorio de instrucciones
2. FUNDAMENTOS DE
MICROCONTROLADORES
2.1 INTRODUCCIN AL
MICROCONTROLADOR
2.2 MICROCONTROLADORES
DE 8 BITS
2.1.1 Generalidades del microcontrolador
2.1.2 Estructura interna
2.1.3 Familias de microcontroladores
2.2.1 Caractersticas Generales
2.2.2 Funciones y diagrama de pines
2.2.3 Arquitectura interna
2.2.4 Modos de direccionamiento
2.2.5 Repertorio de instrucciones
3. PROGRAMACIN DE
MICROPROCESADORES
Y MICROCONTROLADORES
3.1 INTRODUCCIN A LA
PROGRAMACIN
3.2 DESARROLLO DE
APLICACIONES
3.1.1 Lenguajes mquina y ensamblador
3.1.2 Repertorio de instrucciones
3.1.2.1 Aritmticas y lgicas
3.1.2.2 Transferencia de datos
3.1.2.3 Bifurcacin
3.1.2.4 Atencin a subrutinas
3.1.2.5 Miscelneas
3.2.1 Generalidades de programacin
3.2.2 Dispositivos de entrada
3.2.3 Dispositivos de salida
3.2.4 Aplicaciones
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
3
INTRODUCCIN
La llegada de nuevas tecnologas, trae como consecuencia la modernizacin de
las empresas, el aumento en la productividad y la realizacin de tareas de forma
ms precisa, prctica y segura. Los microprocesadores y los microcontroladores
son un claro ejemplo de ello.
Estos elementos constituyen un gran avance en el mundo de la electrnica,
dejando a su paso un gran nmero de componentes y haciendo peligrar la
existencia de otros elementos empleados en el control de procesos.
En la actualidad los microprocesadores y los microcontroladores se encuentran
presentes en muchas aplicaciones de la vida cotidiana, realizando las ms
diversas funciones. Entre sus efectos se destacan la reduccin del tamao de los
elementos que los emplean, un sobresaliente desempeo de los mismos y la
obtencin de mejores resultados en los diferentes procesos en que participan.
El uso de microprocesadores y microcontroladores de propsito general en
aplicaciones ms especializadas, como el procesamiento de seales digitales, ha
empezado a ser ms frecuente debido a las altas velocidades de procesamiento
que pueden alcanzar y a las caractersticas especiales que ofrecen.
El mundo actual exige entonces al futuro profesional, familiarizarse con estos
dispositivos electrnicos, como componentes imprescindibles de la tecnologa y el
desarrollo de nuevos campos productivos.
Los conceptos a tratar en este curso estn ntimamente ligados a su profesin y
son de gran importancia dentro del proceso de formacin integral de todo
ingeniero.
Se espera que el manejo de los diferentes temas y la comprensin de los
principales conceptos del curso, le den una visin ms amplia de su carrera y
potencien sus posibilidades de desempeo profesional.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
4
UNIDAD 1
FUNDAMENTOS DE MICROPROCESADORES
CONTENIDOS
Captulo 1. Introduccin al Microprocesador
1. Origen y evolucin
2. Generalidades del microprocesador
3. Estructura interna
4. Familias de microprocesadores
Captulo 2. Microprocesadores de 8 bits
1. Caractersticas Generales
2. Funciones y diagrama de pines
3. Arquitectura interna
4. Modos de direccionamiento
5. Repertorio de instrucciones
Captulo 3. Microprocesadores de 16 y 32 bits
1. Caractersticas Generales
2. Funciones y diagrama de pines
3. Arquitectura interna
4. Modos de direccionamiento
5. Repertorio de instrucciones
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
5
CAPTULO 1
INTRODUCCIN AL MICROPROCESADOR
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
6
1. ORIGEN Y EVOLUCIN
Los principales hechos histricos que condujeron al desarrollo del
microprocesador, y que permitieron tan sorprendente evolucin tecnolgica, se
describen brevemente a continuacin.
Era Mecnica.
La idea de implementar un sistema de cmputo ha existido desde antes que
apareciera la electricidad y la electrnica. Esta idea comenz cerca del ao 500
A.C. cuando los antiguos babilonios inventaron el baco, la primera calculadora
mecnica, la cual fue usada ampliamente y an en la actualidad se sigue usando.
El baco fue desplazado en 1642 cuando el matemtico Blaise Pascal invent una
calculadora construida con engranajes y ruedas.
Era Elctrica.
En el siglo XIX, con el surgimiento de la electricidad y el motor elctrico,
aparecieron las mquinas sumadoras movidas por motor, las cuales se basaban
en el modelo de calculadora de Blaise Pascal. Estas sumadoras fueron los
equipos de oficina hasta inicio de los aos sesenta del siglo XX.
Las mquinas mecnicas, movidas por motores elctricos, dominaron el mundo
del procesamiento de informacin hasta la construccin de la primera calculadora
electrnica, desarrollada en 1941 por el inventor alemn Honrad Zuse. Esta
computadora de clculo, la Z3, se utiliz en el diseo de aeronaves y misiles para
el ejrcito alemn durante la Segunda Guerra Mundial.
Se tiene conocimiento, por documentos militares britnicos de la poca, que la
primera computadora electrnica fue puesta en funcionamiento en 1943 para
descifrar cdigos militares alemanes. Por otra parte, el primer sistema de cmputo
electrnico, el cual usaba tubos al vaco, fue inventado por Alan Turing, quien lo
llam Colossus, probablemente a causa de su tamao.
La primera computadora electrnica programable de propsito general fue
desarrollada en 1946 en la Universidad de Pennsylvania. Esta primera
computadora moderna se llamaba ENIAC, y era tan enorme que contena ms de
17,000 tubos de vaco y ms de 800 kilmetros de cable; pesaba ms de 30
toneladas y an as slo realizaba 100,000 operaciones por segundo. La ENIAC
se programaba recableando sus circuitos; un proceso que tomaba varios das y
muchos trabajadores. Un problema que tena esta mquina era la vida til de los
bulbos, los cuales requeran mantenimiento constante.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
7
En 1948 Laboratorios Bell desarroll el transistor, seguido por la invencin del
circuito integrado en 1958 por Jack Kilby de Texas Instruments. Estos elementos
condujeron al desarrollo de los circuitos digitales integrados RTL ( Lgica
Resistencia Transistor ) en los aos sesenta y a la creacin del primer
microprocesador: el 4004 de Intel Corporation en 1971, el cual inici la revolucin
del microprocesador, la cual contina hasta hoy a un ritmo cada vez ms
acelerado.
El primer "PC" o Computador Personal fue construido por IBM en 1981 y aunque
ya existan otros computadores, el modelo de IBM tuvo gran xito, entre otras
cosas porque era fcil de producir en serie. En su interior tena un
microprocesador 8088, de la empresa Intel, que mejoraba las prestaciones de un
modelo anterior, el microprocesador 4004.
Computador IBM de Primera Generacin
Fuente: Internet (conozcasuhardware.com)
Con el paso de los aos surgieron nuevos y cada vez ms poderosos
microprocesadores. En las siguientes tablas se resumen las caractersticas de
algunos de ellos.
Procesadores de la dcada de los 70
4004 8008 8080 8086 8088
Fecha de introduccin 15/11/71 1/4/72 1/4/74 8/6/78 1/6/79
Velocidad de reloj 108KHz 108KHz 2MHz 5MHz,8MHz,10MHz 5MHz, 8MHz
Ancho de bus 4 bits 8 bits 8 bits 16 bits 8 bits
Nmero de transistores 2.300 3.500 6.000 29.000 29.000
Memoria direccionable 640 byte 16 kbyte 64 kbyte 1 Mbyte 1 Mbyte
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
8
Procesadores de la dcada de los 80
80286 Intel386TM DX Intel386TM SX Intel486TM DX
Fecha de
introduccin
1/2/82 17/10/85 16/6/88 10/4/89
Velocidad de reloj 6MHz - 12,5 MHz 16 MHz - 33 MHz 16 MHz - 33 MHz 25 MHz - 50 MHz
Ancho de bus 16 bits 32 bits 16 bits 32 bits
Nmero de
transistores
134,000 275,000 275,000 1,2 millones
Memoria
direccionable
16 Mbytes 4 Gbytes 4 Gbytes 4 Gbytes
Memoria virtual 1 Gbyte 64 Terabytes 64 Terabytes 64 Terabytes
Fuente: William Stallings
Posteriormente surgieron otras empresas como AMD y Cyrix que desarrollaron
chips compatibles con los Intel. Adems, lanzaron la lnea 386 que superaba las
prestaciones que ofreca la lnea de productos Intel. Despus surgi el 486, que
era un 386 con un co-procesador matemtico incorporado y una memoria cach
integrada, lo que lo haca ms rpido. Desde entonces todos los chips tienen este
conjunto en su interior.
Luego vino el Pentium, un nombre inventado para evitar que surgieran 586s marca
AMD o Cyrix, ya que no era posible patentar un nmero pero s un nombre, lo que
aprovecharon para sacar fuertes campaas de publicidad del "Intel Inside" (Intel
adentro).
En ltima generacin de microprocesadores, se destacan entre otras, la lnea de
Intel con los Pentium IV y la lnea Power PC de Mac. La siguiente figura muestra
un procesador PowerPC 970, actualmente uno de los ms avanzados del
mercado.
Fuente: Internet (5.ibm.com)
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
9
Para finalizar esta seccin, se presenta en la siguiente tabla la evolucin e
incremento de la cantidad de instrucciones por segundo (IPS) desarrolladas por
diversos procesadores.
Procesador IPS Reloj Ao
Intel 8080 640 KIPS 2 MHz 1974
Intel 8086 800 KIPS 5 MHz 1978
Motorola 68000 1 MIPS 8 MHz 1979
Intel 486DX 54 MIPS 50 MHz 1989
PowerPC 600s (G2) 35 MIPS 33 MHz 1994
PowerPC G3 525 MIPS 233 MHz 1997
Zilog eZ80 80 MIPS 50 MHz 1999
Pentium 4 Extreme Edition 9726 MIPS 3.2 GHz 2003
Xbox360 IBM "Xenon" Single Core 6400 MIPS 3.2 GHz 2005
AMD Athlon 64 8400 MIPS 2.8 GHz 2005
AMD Athlon 64 Dual Core 18500 MIPS 2.2 GHz 2005
AMD Athlon 64 3800+ X2 (Dual Core) 18900 MIPS 2.2 GHz 2005
Cell (cada PPE) 6400 MIPS 3.2 GHz 2006
Procesador Cell de la PlayStation 3 21800 MIPS 3.2 GHz 2006
AMD Athlon FX-60 (Dual Core) 22150 MIPS 2.6 GHz 2006
Overclocked AMD Athlon FX-60 (Dual Core) 27100 MIPS 3.0 GHz 2006
Fuente: Internet (mips.wikipedia.com)
2. GENERALIDADES DEL MICROPROCESADOR
Los sistemas de cmputo basados en microprocesadores constan de bloques
funcionales bsicos, que incluyen: una Unidad Central de Procesamiento (CPU),
Dispositivos de Memoria y Puertos de Entrada/Salida.
Estos bloques funcionales se conectan mediante los Buses del Sistema ( datos,
direccin y control ), como se presenta a continuacin.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
10
Fuente: Thomas Floyd
En un de sistema de cmputo, las instrucciones y los datos se encuentran
almacenados en unas posiciones especficas de la memoria. Cada posicin de
memoria tiene asociada una direccin exclusiva. La CPU ( el microprocesador )
obtiene las instrucciones y los datos colocando una direccin en el bus de
direcciones. Posteriormente las instrucciones y/o los datos se transfieren a travs
del bus de datos cuando son solicitados por la CPU.
La CPU ejecuta las instrucciones de un programa secuencialmente. Con
frecuencia, las instrucciones modifican los datos almacenados en memoria u
obtenidas a travs de un dispositivo de entrada. Los datos procesados pueden
almacenarse de nuevo en memoria o enviarse a un dispositivo de salida a travs
del bus de datos. La CPU tambin genera e interpreta las seales del bus de
control para coordinar estas y muchas ms operaciones.
El microprocesador
Un microprocesador es un circuito de gran escala de integracin, que contiene la
CPU completa de un computador en un nico circuito integrado. Segn han ido
evolucionando los microprocesadores, tambin lo han hecho los computadores,
los cules han ampliado sus prestaciones y capacidades de servicio, as como la
facilidad para su adquisicin.
Dispositivos de
Memoria: RAM,
ROM, Disco Duro
CPU
Microprocesador
Puertos de entrada Puertos de salida
Bus de direcciones
Bus de datos
Bus de control
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
11
Los microprocesadores se emplean tambin en muchas aplicaciones que
requieren funciones de control y supervisin, entre las que se incluyen el control
industrial y de maquinaria, los controles de motores y la telemetra, por nombrar
solo algunas.
Un microprocesador contiene varias unidades o estructuras, cada una de ellas
diseada para realizar un trabajo especfico. Las unidades en s, ms su diseo y
organizacin, se conocen comnmente como la arquitectura del microprocesador.
En la siguiente figura se presentan las principales unidades bsicas de todos los
microprocesadores: la unidad lgica y aritmtica (ALU), la matriz de registros y la
unidad de control. Existen otras unidades auxiliares que trabajan junto con estas
tres unidades bsicas para formar un microprocesador especfico.
Fuente: Thomas Floyd
El microprocesador, por medio de sus unidades bsicas, realiza las principales
tareas en un sistema de cmputo:
(1) procesamiento de la informacin; (2) control de la transferencia de datos entre
l mismo y la memoria o el sistema de entrada/salida; (3) realizacin de
operaciones lgicas y aritmticas, y (4) ejecucin de programas, por medio de los
cules se realizan una serie de operaciones o tareas.
El poder del microprocesador radica en su capacidad de ejecutar miles de millones
de instrucciones por segundo provenientes de un programa o software
almacenado en su sistema de memoria. Otra caracterstica que hace poderoso al
microprocesador es su capacidad para tomar decisiones simples basadas en
hechos numricos. Por ejemplo, un microprocesador puede decidir si un nmero
es cero, si es positivo, etc. Estas decisiones sencillas permiten al microprocesador
modificar el flujo del programa, de manera que los programas parecen razonar.
Buses del microprocesador
Un bus es un conjunto de conductores comunes que interconectan componentes
de un sistema de cmputo. Los tres buses mencionados anteriormente son parte
UNIDAD
ARITMTICO
LGICA
MATRIZ DE
REGISTROS
UNIDAD DE CONTROL
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
12
de las conexiones internas y externas que utilizan los microprocesadores para
enviar datos, direcciones y seales de control.
El bus de datos. El bus de datos es bidireccional, es decir, de doble sentido. Por
l los datos o las instrucciones se transfieren al microprocesador, y los resultados
de una operacin clculo son enviados desde el microprocesador. Los primeros
microprocesadores tenan buses de datos de 8 bits. Dependiendo de cada
microprocesador concreto, el tamao del bus de datos es de 8, 16, 32, o 64 bits.
El bus de direcciones. El bus de direcciones es unidireccional. Por medio de l
es que el microprocesador enva un cdigo de direccin a una memoria o a un
dispositivo externo. El tamao o ancho del bus de direcciones se especifica
mediante el nmero de lneas. Los primeros microprocesadores utilizados en
computadores tenan 16 lneas de direcciones, con las que se poda direccionar
2
16
posiciones distintas, es decir 64K. Cuantos ms bits tenga el bus de
direcciones, se puede acceder a ms posiciones de memoria. El nmero de lneas
de direccin se ha ido incrementando a 20, 24, 32 y 36 bits. El Pentium II, con 36
lneas, permite acceder a 64G.
El bus de control. El microprocesador utiliza el bus de control para coordinar las
operaciones y comunicarse con los dispositivos externos. El bus de control tiene
seales que permiten leer y escribir datos en la memoria o en un puerto de
entrada/salida en el instante apropiado. Las lneas de control tambin se utilizan
para insertar estados de espera para los dispositivos ms lentos y evitar
congestin en el bus, esta es una condicin que puede producirse cuando dos o
ms dispositivos intentan transmitir al mismo tiempo.
En la mayora de los sistemas de cmputo existen las siguientes lneas del bus de
control: MRDC (control de lectura de memoria), MWTC(control de escritura de
memoria), IORC (control de lectura de entrada/salida) e IOWC(control de escritura
de entrada/salida). Adems tambin se tienen las seales de reloj, reset y manejo
de interrupciones.
3. ESTRUCTURA INTERNA
Como se ha mencionado hasta el momento, la configuracin interna de un
microprocesador consta de tres unidades bsicas: la unidad aritmtico lgica
(ALU), la matriz de registros y la unidad de control. Cada una de ellas ser
descrita a continuacin.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
13
3.1 Unidad Aritmtico Lgica ( ALU )
La ALU es la parte del computador que realiza las operaciones aritmticas, como
la suma y la sustraccin, y las operaciones lgicas con los datos, como la NOT,
AND, OR y OR-exclusiva. El resto de los elementos del computador ( unidad de
control, registros, memoria y E/S ) estn principalmente para suministrar datos a la
ALU y para recuperar los resultados. En sntesis, la ALU se considera el ncleo o
la base del procesamiento matemtico del computador.
Una unidad aritmtico lgica y, en realidad, muchos de los componentes
electrnicos del computador, se basan en el uso de dispositivos lgicos digitales,
los cuales pueden almacenar dgitos binarios y realizar operaciones lgicas
booleanas elementales. La siguiente figura indica, en trminos generales, cmo se
interconecta la ALU con el resto del procesador.
Fuente: William Stallings
Los datos se presentan a la ALU en registros, y posteriormente all se almacenan
los resultados de las operaciones producidas por la ALU. Estos registros son
posiciones de memoria temporales, internas al procesador, que estn conectados
a la ALU. Adems se pueden activar indicadores ( flags o indicadores de estado )
como resultado de una operacin. Por ejemplo, un indicador de desbordamiento
se pondr a 1 si el resultado de una operacin excede la longitud del registro en
donde ste debe almacenarse. Los valores de los indicadores se almacenan
tambin en otro registro dentro del procesador ( registro de estado ). La unidad de
control, por su parte, proporciona las seales que gobiernan el funcionamiento de
la ALU y la transferencia de datos dentro y fuera de ella.
Representacin de los datos
Los datos manejados en la ALU tienen formato de complemento a dos, el cual
utiliza el bit ms significativo como bit de signo, facilitando de esta forma las
B
U
S

D
E
L

S
I
S
T
E
M
A
ALU
Indicadores de estado
Desplazador
Complementador
Lgica aritmtica
y booleana
Registros
Unidad de control
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
14
operaciones con los enteros negativos. Los bits restantes son interpretados tal y
como lo muestra la siguiente tabla.
RANGO DE VALORES -2
n-1
a 2
n-1
-1
N de representaciones del cero Una
Negacin
Ejecutar el complemento booleano de cada bit y
sumar 1 al patrn de bits resultante.
Ampliacin de la longitud de bits
Las posiciones de bit extra se aaden a la
izquierda, rellenndolas con el valor del bit de
signo original
Regla para el desbordamiento
Si se suman dos nmeros de igual signo (ambos
positivos o ambos negativos), hay desbordamiento
si, y slo si, el resultado tiene signo opuesto.
Regla para la resta
Para restar B de A, se toma el complemento a dos
de B y suma a A.
Fuente: William Stallings
El nmero cero se identifica como positivo y tiene, por tanto, un bit de signo ( 0 ) y
una magnitud de cero. El rango de nmeros positivos que se pueden representar
es desde el cero hasta 2
n-1
-1; en el caso de los nmeros negativos se pueden
representar desde el -1 hasta -2
n-1
.
3.2 Matriz de registros
Recordemos rpidamente algunas de las funciones que debe realizar la CPU,
como elemento principal de un sistema de cmputo:
Captar instrucciones: la CPU lee una instruccin de la memoria.
Interpretar instrucciones: la instruccin se decodifica para determinar que
acciones se deben realizar.
Captar datos: la ejecucin de una instruccin puede exigir leer datos de la
memoria o de un mdulo de entrada/salida.
Procesar datos: la ejecucin de una instruccin puede exigir llevar a cabo
alguna operacin aritmtica o lgica con los datos.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
15
Escribir datos: los resultados de una ejecucin pueden exigir escribir datos
en la memoria o en un mdulo de entrada/salida.
Para realizar estos procesos, es necesario que la CPU almacene alguna
informacin de forma temporal. Debe tambin recordar la posicin de la ltima
instruccin, de forma que pueda saber dnde ir a buscar la siguiente. Necesita
almacenar instrucciones y datos temporalmente mientras una instruccin est
ejecutndose. En otras palabras, la CPU requiere una pequea memoria interna.
Dentro de la CPU hay entonces, un conjunto de registros que funciona como un
nivel de memoria, por encima de la memoria principal y de la cache. Estos
registros de la CPU pueden ser de dos tipos:
Registros visibles para el usuario: Permiten al programador de
lenguaje mquina o ensamblador, minimizar las referencias a memoria
principal cuando optimiza el uso de registros.
Registros de control y de estado: Son utilizados por la unidad de
control para controlar el funcionamiento de la CPU, y por programas
privilegiados del sistema operativo para controlar la ejecucin de otros
programas.
Registros visibles para el usuario
Un registro visible para el usuario es aquel que puede ser referenciado por medio
del lenguaje mquina que ejecuta la CPU. Se pueden clasificar en las siguientes
categoras:
Propsito general
Datos
Direcciones
Cdigos de condicin
Los registros de propsito general pueden ser asignados por el programador a
diversas funciones. En realidad, no tienen asignada ninguna funcin especfica.
En algunos casos, los registros de propsito general pueden ser utilizados para
funciones de direccionamiento. En otros casos hay una separacin parcial o total
entre registros de datos y registros de direcciones. Los registros de datos
pueden usarse nicamente para contener datos y no se pueden emplear en el
clculo de una direccin de operando. Los registros de direccin pueden ser de
uso ms o menos general, o pueden estar dedicados a un modo de
direccionamiento particular.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
16
Los registros que han de contener direcciones, han de ser lo suficientemente
grandes como para guardar la direccin ms grande. Los registros de datos
deben ser capaces de contener valores de la mayora de tipos de datos. Algunas
mquinas permiten que dos registros contiguos sean usados como uno solo para
contener valores de doble longitud.
Los indicadores de estado cdigos de condicin, son bits fijados por el
hardware de la CPU como resultado de alguna operacin. Por ejemplo, una
operacin aritmtica puede producir un resultado positivo, negativo, nulo o con
desbordamiento. Adems de almacenar el resultado en un registro o en la
memoria, se obtiene tambin un cdigo de condicin.
Los cdigos de condicin se renen en uno o ms registros. Normalmente
forman parte de un registro de control. Por lo general, las instrucciones de
mquina permiten que estos bits sean ledos por referencia implcita, pero no
pueden ser alterados por el programador.
Otros registros de inters, son:
Acumulador: es un registro ( o registros ) asociado principalmente a las
operaciones de la ALU, y algunas veces a las operaciones de E/S.
Puede ser de 8, 16 o 32 bits. En l se almacenan los resultados de las
diferentes operaciones matemticas y lgicas que se realizan en la ALU.
Punteros de segmento: en una mquina con direccionamiento
segmentado ( ms adelante se tratar el tema de direccionamiento ) un
registro de segmento contiene la direccin de la base del segmento.
Puede haber mltiples registros: por ejemplo, uno para el sistema
operativo y otro para el proceso actual.
Registro ndice: se emplea para que contenga la direccin de un
operando, cuando se utiliza el modo de direccionamiento indexado.
Puntero de pila (SP): este registro sigue la pista de la siguiente
posicin de memoria disponible en la pila. La pila es un rea reservada
utilizada principalmente para el almacenamiento de direcciones de
vuelta y contenido de registros. La pila se utiliza durante las llamadas a
subrutina y durante las interrupciones.
Registros de control y estado
Hay diversos registros de la CPU que se emplean para controlar su
funcionamiento. La mayora de ellos, en gran parte de las mquinas, no son
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
17
visibles para el usuario. Algunos de ellos pueden ser visibles a instrucciones de
mquina ejecutadas en un modo de control o de sistema operativo.
Algunos de los registros para la ejecucin de una instruccin, son:
Contador de programa (PC): contiene la direccin de la instruccin a
captar.
Registro de instruccin (IR): contiene la instruccin captada ms
reciente.
Registro de direccin de memoria (MAR): contiene la direccin de
una posicin de memoria.
Registro intermedio de memoria (MBR): contiene la palabra de datos
a escribir en memoria, o la palabra leda ms recientemente.
Normalmente, la CPU actualiza el Contador de Programa despus de cada
captacin de instruccin, de manera que siempre apunta a la siguiente instruccin
a ejecutar. Una instruccin de bifurcacin o salto tambin modifica el contenido del
contador de programa. La instruccin captada se carga en el registro IR, donde
son analizados el cdigo de operacin y los campos del operando. Se
intercambian datos con la memoria por medio de los registros MAR y MBR. En un
sistema con organizacin de bus, MAR se conecta directamente al bus de
direcciones y MBR directamente al bus de datos. Los registros visibles por el
usuario intercambian repetidamente datos con MBR.
Los cuatro registros que se acaban de mencionar se usan tambin para la
transferencia de datos entre la CPU y la memoria. Dentro de la CPU, los datos
tienen que ofrecerse a la ALU para su procesamiento. La ALU puede tener acceso
directo a MBR y a los registros visibles para el usuario.
Todos los diseos de CPU incluyen un registro o un conjunto de registros de
estado ( status ), conocidos a menudo como Palabra de Estado del Programa
(PSW). Este registro contiene normalmente los cdigos de condicin, adems de
otra informacin de estado. La mayora de los sealizadores ( flags ) se asocian a
las operaciones de la ALU y son utilizados por las instrucciones de bifurcacin
para tomar decisiones.
Entre los campos o indicadores ms comunes, se incluyen los siguientes:
Signo: Contiene el bit de signo del resultado de la ltima operacin
aritmtica.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
18
Cero: Puesto a uno cuando el resultado es 0.
Acarreo: Puesto a uno si una operacin da lugar a un acarreo (suma) o
prstamo (resta) del bit ms significativo.
Igual: puesto a uno si el resultado de una comparacin lgica es la
igualdad.
Desbordamiento: usado para indicar un desbordamiento aritmtico.
Interrupciones habilitadas/deshabilitadas: usado para permitir o
inhabilitar interrupciones.
Supervisor: indica si la CPU funciona en modo de supervisor o usuario.
nicamente en modo supervisor se pueden ejecutar ciertas
instrucciones privilegiadas y se puede acceder a ciertas reas de
memoria.
3.3 Unidad de control
La unidad de control se encarga de procesar las instrucciones. Proporciona las
seales de temporizacin y control para extraer e introducir los datos en el
microprocesador y para sincronizar la ejecucin de las instrucciones.
La unidad de control realiza dos tareas bsicas:
Secuenciamiento: hace que el procesador avance a travs de una
serie de microoperaciones, basadas en el programa que est
ejecutando.
Ejecucin: la unidad de control hace que se ejecute cada
microoperacin.
Microoperaciones
Cuando se ejecuta un programa, se realiza una secuencia de ciclos de instruccin,
con una instruccin mquina por ciclo; y esta serie de ciclos de instruccin no es
necesariamente la misma secuencia de instrucciones del programa, ya que en
algunos casos existen instrucciones de salto.
Cada ciclo de instruccin puede considerarse compuesto por varias unidades ms
pequeas. Una subdivisin prctica es: captacin, ciclo indirecto, ejecucin e
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
19
interrupcin. Y cada uno de los ciclos ms pequeos implica una serie de pasos,
los cuales involucran ciertos registros del procesador. Estos pasos son las
microoperaciones.
En resumen, como se aprecia en el grfico, la ejecucin de un programa consiste
en la ejecucin secuencial de instrucciones. Cada instruccin se ejecuta durante el
ciclo de instruccin, compuesto por subciclos ms cortos. La ejecucin de cada
subciclo involucra una o ms operaciones sencillas, es decir, las
microoperaciones.
Fuente: William Stallings
Seales de control
Para que la unidad de control realice su funcin adecuadamente, debe tener las
entradas que le permitan determinar el estado del sistema, y las salidas que le
permitan controlar el comportamiento del mismo. stas son las especificaciones
externas de la unidad de control.
Internamente, la unidad de control ha de tener la lgica necesaria para realizar sus
funciones de secuenciamiento y ejecucin.
La siguiente figura es un modelo general de la unidad de control, la cual presenta
algunas de sus entradas y salidas ms utilizadas.
Ejecucin de un programa
Ciclo de instruccin Ciclo de instruccin
Ciclo de instruccin
Captacin Indirecto Ejecucin Interrupcin
uOP uOP uOP uOP uOP
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
20
Fuente: William Stallings
Las principales entradas son las siguientes:
Reloj: Es el encargado de mantener la hora exacta en el procesador. La
unidad de control hace que se ejecute una microoperacin (o conjunto de
microoperaciones simultneas) en cada pulso de reloj. ste a menudo, es
referenciado como tiempo de ciclo del procesador o perodo de reloj.
Registro de instruccin: El cdigo de operacin de la instruccin en curso
se usa para determinar qu microoperaciones hay que realizar durante el
ciclo de ejecucin.
Indicadores: Los necesita la unidad de control para determinar el estado
del procesador y el resultado de anteriores operaciones de la ALU. Por
ejemplo, para la instruccin incrementar y saltar si es cero, la unidad de
control incrementar el PC si el indicador de cero est en uno.
Seales de control del bus de control: La parte de control del bus del
sistema suministra seales a la unidad de control, tales como seales de
interrupcin y de reconocimiento.
Las principales salidas son las siguientes:
Seales de control internas al procesador: Son de dos tipos: las que
hacen que los datos se transfieran de un registro a otro, y las que activan
funciones especficas de la ALU.
Seales de control hacia el bus de control: Tambin las hay de dos
tipos: seales de control de la memoria y seales de control de las E/S.
UNIDAD DE
CONTROL
Indicadores
Temporizador
Reloj
Registro de instruccin
Bus
Seales de control
desde el bus del sistema
Seales de control
hacia el bus del sistema
Seales de control
internas a la CPU
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
21
4. FAMILIAS DE MICROPROCESADORES
En este apartado se van a describir las principales familias fabricantes de
microprocesadores.
4.1 Microprocesadores Zilog
Zilog, es un fabricante de microprocesadores de 8 bits, siendo su producto ms
reconocido el Zilog Z80. Fue fundado en California en 1974 por Federico Faggin,
quien trabaj perfeccionando el primer microprocesador de Intel, el Intel 4004.
En 1976 la compaa crea el Zilog Z80 que era un microprocesador basado en el
Intel 8080 con algunas mejoras. Con este nuevo producto Faggin realiz una gira
por el mundo buscando potenciales clientes. Un ao despus sale al mercado el
primer computador que hace uso del Z80, el TRS-80 Model 1 con un Z80 a
1,77 MHz y 4 KB de RAM. En 1989 sale la videoconsola Game Boy con un Z80 a
1,05 MHz y posteriormente la Sega Game Gear y la Sega Genesis, que tambin lo
usan.
En el ao 1995 crean el V-Chip y en el 2001 Zilog lanza el eZ80.
4.2 Microprocesadores Motorola
Uno de sus principales exponentes es el Motorota 6800, el cual fue lanzado al
mercado en 1975, poco despus del Intel 8080.
Su conjunto de instrucciones est formado por 78 de stas y posiblemente es el
primer microprocesador que cont con un registro ndice.
El 6800 normalmente se fabricaba en un encapsulado DIP de 40 pines.
Varios de los primeros microordenadores de los aos 1970, que usualmente eran
vendidos por correo (en piezas sueltas o ensamblados), usaron el 6800 como
procesador principal. Entre ellos se encuentran el SWTPC 6800 (el primero en
usarlo) y el MITS Altair 680.
Fuente: Internet
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
22
Partiendo del 6800 se crearon varios procesadores derivados, siendo uno de los
ms potentes el Motorola 6809, que fue usado en el sistema de videojuego
Vectrex y en el ordenador Tandy TRS-80, entre otros.
Tambin se han producido varios microcontroladores basados en el 6800, como el
Motorola 6805, 6807, 6808, 68HC11 y el 68HC12.
4.3 Microprocesadores SPARC
SPARC (del ingls Scalable Processor ARChitecture) es una arquitectura RISC,
es decir, una arquitectura con un conjunto reducido de instrucciones.
Fue originalmente diseada por Sun Microsystems en 1985 y se basa en los
diseos RISC I y II de la Universidad de California en Berkeley que fueron
definidos entre los aos 1980 y 1982.
La empresa Sun Microsystems dise esta arquitectura y la licenci a otros
fabricantes como Texas Instruments, Cypress, Fujitsu y LSI Logic.
SPARC es la primera arquitectura RISC abierta y como tal, las especificaciones de
diseo estn publicadas, as otros fabricantes de microprocesadores pueden
desarrollar su propio diseo.
La CPU SPARC est compuesta por una unidad entera (Integer Unit) que procesa
la ejecucin bsica y una unidad de punto flotante (Floating Point Unit) que ejecuta
las operaciones y clculos de reales.
Aunque no es una parte formal de la arquitectura, las computadoras basadas en
sistemas SPARC de Sun Microsystems tienen una unidad de manejo de memoria
(MMU) y un gran cach de direcciones virtuales (para instrucciones y datos) que
estn dispuestos perifricamente sobre un bus de datos y direcciones de 32 bits.
Fuente: Internet (sunsparc.wikipedia.com)
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
23
La siguiente tabla presenta algunas de las generaciones del SPARC.
Generacin Familia Especificacin general
Primera generacin (1987) SPARC
Frecuencia de reloj de 16 a 50MHz.
Diseo escalar
Segunda generacin (1992)
SUPER
SPARC
Frecuencia de reloj de 33 a 50MHz.
Diseo super escalar.
Tercera generacin (1996)
ULTRA
SPARC II
Arquitectura super escalar de 4 etapas y
de 64 bits. Cinco unidades de punto
flotante. Velocidades entre 250 y 300 Mhz
Fuente: Internet (sunsparc.wikipedia.com)
4.4 Microprocesadores Power PC
PowerPC es una arquitectura de computadoras de tipo RISC creada por la Alianza
AIM, un consorcio de empresas compuesto por Apple, IBM y Motorola, de cuyas
primeras letras, surgi la sigla. Los procesadores de esta familia son producidos
por IBM y Freescale Semiconductor que es la divisin de semiconductores y
microprocesadores de Motorola, siendo utilizados principalmente en ordenadores
o computadores Macintosh de Apple Computer.
Este microprocesador est diseado en base a la arquitectura POWER de IBM
con algunos componentes tomados del microprocesador Motorola 68000 para
darle compatibilidad con arquitectura de los ordenadores de Apple.
Procesador Power PC 970
Fuente: Internet (5.ibm.com)
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
24
4.5 Microprocesadores AMD
AMD surgi por la divisin que tuvo Intel en el proceso de integracin de sistemas.
Anteriormente AMD estaba asociada con Intel y creaban microprocesadores. Los
procesadores del tipo 8088, 8086 o 80286, por ejemplo, incluan a AMD con su
logotipo y despus a Intel como marca registrada. Con la separacin de Intel, AMD
empez a incursionar directamente en el campo de los microprocesadores.
Actualmente AMD es una empresa que desarrolla procesadores compatibles Intel,
permitiendo disponer de un sistema accesible con un alto rendimiento, imgenes y
grficos 3D reales, sonido y video de pantalla completa.
Tipos de procesadores AMD
Am9080: Es una copia, originalmente sin licencia, del Intel 8080. Posteriormente
se consigui un acuerdo con Intel para fabricarlo y fue renombrado a Am8080
Las primeras versiones del Am9080 fueron puestas a la venta en abril de 1974, y
funcionaban a una velocidad de reloj de 2 MHz.
Am286: Es un procesador copia del Intel 80286, creado con permiso de Intel,
debido a que IBM quera que Intel tuviese una segunda fuente para poder suplir la
demanda en caso de problemas.
Por lo tanto el Am286 es idntico al Intel 80286. Posteriomente AMD lo vendi
como procesador embedido.
Am386: Fue creado por AMD en 1991. Era un procesador con caractersticas
semejantes al Intel 80386 y compatible 100% con este ltimo, lo que le vali varios
recursos legales de Intel por copiar su tecnologa. Tena una velocidad de hasta
40 MHz lo que superaba a su competidor que slo lleg a los 33 MHz.
Am486: Fue presentado en 1993 por Advanced Micro Devices ( AMD ). Es un
procesador compatible x86, comparable al Intel 80486.
AMD 5x86: Es un procesador compatible x86 presentado en 1995 por Advanced
Micro Devices destinado a ser utilizado en ordenadores basados en un 486.
Presentado en noviembre de 1995, el AMD 5x86 es un procesador 486 estndar
con un multiplicador interno a 4x, permitindole funcionar a 133 Mhz en sistemas
para procesadores 486 DX2 o DX4 sin multiplicador. Tena una memoria cach L1
de 16 Kbytes. Esta combinacin permiti al 5x86 igualar e incluso sobrepasar
ligeramente un procesador Pentium a 75 Mhz. Adems, como fue concebido en
base a un 486, era compatible con sistemas ms antiguos, lo que perjudicaba
ligeramente a su rival ms rpido, el Cyrix Cx5x86.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
25
AMD K6: fue lanzado en 1997. Este procesador estaba diseado para funcionar
en placas base Pentium. La principal ventaja del AMD con respecto al Pentium era
su precio, bastante econmico con las mismas prestaciones. El K6 tuvo una gran
aceptacin en el mercado presentndose como un rival fuerte para Intel. Su
sucesor fue el microprocesador K6-2.
Fuente: Internet (AMDK6.wikipedia.com)
El K6 cuenta con una gama que va desde los 166 hasta los 300 Mhz y con el
juego de instrucciones MMX, que ya se ha convertido en un estndar.
AMD Duron: Es una gama de microprocesadores de bajo costo compatibles con
los Athlon, por lo tanto con arquitectura x86. Fueron diseados para competir con
la lnea de procesadores Celeron de Intel.
La diferencia principal entre los Athlon y los Duron es que los Duron solo tienen 64
KBytes de memoria cach L2, frente a los 256 KBytes de los Athlon.
El Athlon: Originalmente el Athlon Classic, fue el primer procesador x86 de
sptima generacin y en un principio mantuvo su liderazgo de rendimiento sobre
los microprocesadores de Intel.
El procesador Athlon se lanz al mercado el 21 de agosto de 1999. El primer
ncleo del Athlon, conocido en clave como "K7", estuvo disponible incialmente en
versiones de 500 a 650 MHz, pero despus alcanz velocidades de hasta 1 GHz.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
26
Internamente el Athlon es un rediseo de su antecesor, al que se le mejor
sustancialmente el sistema de coma flotante, esto es, 3 unidades de punto flotante
que pueden trabajar simultnemente y se le aument la memoria cach de primer
nivel (L1) a 128 KB (64 KB para datos y 64 KB para instrucciones). Adems
incluye 512 KB de cach de segundo nivel (L2) externa al circuito integrado del
procesador y funcionando, por lo general, a la mitad de velocidad del mismo.
El AMD Opteron: Fue el primer microprocesador con arquitectura x86 que us
conjunto de instrucciones AMD64, tambin conocido como x86-64. Tambin fue el
primer procesador x86 de octava generacin. Fue puesto a la venta el 22 de abril
de 2003 con el propsito de competir en el mercado de procesadores para
servidores, especialmente en el mismo segmento que el Intel Xeon.
La ventaja principal del Opteron es la capacidad de ejecutar tanto aplicaciones de
64 bits como de 32 bits sin ninguna penalizacin de velocidad. Las nuevas
aplicaciones de 64 bits pueden acceder a ms de 18 Hexabytes de memoria,
frente a los 4 gigabytes de las de 32 bits.
Sempron: Es un procesador de bajo costo con arquitectura X86 fabricado por
AMD. El AMD Sempron reemplaza al procesador Duron, siendo su principal
competidor el procesador Celeron de Intel. Las primeras versiones fueron
lanzadas al mercado en agosto de 2004.
Las versiones iniciales de este procesador estaban basadas en el ncleo
Thoroughbred/Thorton del Athlon XP, con una cach de segundo nivel de 256 KB
y un bus de 333 MHz.
Posteriormente el Sempron se bas en el ncleo Barton del Athlon XP. Esta
versin tena un ndice de prestaciones relativas de 3000+ y posea una cach de
segundo nivel de 512 KB.
AMD Turion 64: Es una versin de bajo consumo del procesador AMD Athlon 64
destinada a los ordenadores porttiles y constituye la respuesta comercial de AMD
a la plataforma Centrino de Intel. Se presentan en dos series, ML con un consumo
mximo de 35 W y MT con un consumo de 25 W, frente a los 27 W del Intel
Pentium M.
Es compatible con el Socket 754 de AMD y dispone de 512 o 1024 KB de cache
L2 y un controlador de memoria de 64 bit integrado.
4.6 MICROPROCESADOR CYRIX
Ha sido el tercero entre los procesadores Intel compatibles. Sus procesadores se
han caracterizado por tener una regular unidad de coma flotante, por lo que no es
una buena opcin para los que utilicen programas CAD, 3D, e incluso juegos.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
27
Adems de esto, se ha caracterizado tambin por sus diseos avanzados y
"originales" lo que le ha provocado ms de un inconveniente por falta de
compatibilidad.
Sus primeras versiones de 6x86 Cyrix tuvieron serios problemas debido a su alto
consumo, lo que generaba un calentamiento excesivo en los reguladores de
tensin de la placa base.
Fuente: Internet.
Estos dispositivos presentaban tambin un problema con Windows NT4, ya que
dicho sistema operativo desactivaba la cach del procesador, y por tanto ste se
ejecutaba muy lentamente.
6x86MX: Este es el primer microprocesador de Cyrix que lleva implementado el
juego de instrucciones MMX. Sus desventajas son el bajo rendimiento de su
coprocesador matemtico, lo que conlleva que por lo menos dos de sus
procesadores trabajen con una velocidad de bus de 75 y 83 Mhz.
De todas formas, para compensar este posible problema, Cyrix ha implementado
multiplicadores de x2, x2.5, x3 y x3.5, y garantizan que siempre se podr trabajar
con una frecuencia de bus ms normal y ajustar el multiplicador para que la CPU
trabaje a una frecuencia parecida a la autorizada.
MII: Su diseo es idntico al del 6x86MX, y slo consigue imponerse a aquel por
la mayor velocidad de sus nuevos modelos.
Fuente: Internet.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
28
El problema de este procesador es tener una FPU poco potente. Este problema se
agudiza con los actuales juegos 3D y unas cada vez mayores necesidades de este
tipo de clculos, lo que lo condena a quedar relegado a entornos ofimticos.
Una de las ventajas es que funciona con cualquier placa preparada para MMX, no
necesita de placas de ltima generacin con voltajes ms bajos de 2,9. Lo anterior
permite actualizar la mquina a 300 Mhz sin necesidad de cambiar de placa.
4.7 Microprocesadores INTEL
Intel Corporation es una compaa pionera en el desarrollo y comercializacin de
microprocesadores. Actualmente, tiene una cuota del mercado mundial de los
microprocesadores muy grande, ya que sus procesadores se utilizan en la
mayora de los computadores compatibles PC.
x86 es la denominacin genrica dada a ciertos procesadores de la familia Intel,
sus compatibles y a la arquitectura bsica de estos procesadores, por la
terminacin de sus nombres: 8086, 80286, 80386 y 80486. Los sucesores del
80486 pasaron a ser llamados por nombres no numricos, bajo la denominacin
Pentium; sin embargo todava se los llama procesadores de la familia x86. A
continuacin se describen los microprocesadores ms representativos.
Intel 4004: fue el primer microprocesador de 4 bits en un simple chip, as como el
primero disponible comercialmente.
Intel 4040: fue el sucesor del Intel 4004. Fue lanzado al mercado en 1974. El 4040
fue usado principalmente en juegos, pruebas, desarrollo, y equipos del control. El
paquete del 4040 era ms de dos veces el ancho del 4004 y tena 24 pines en
lugar de los 16 del 4004. El 4040 agreg 14 instrucciones, un espacio ms grande
para la pila ( 7 niveles en vez de 3 ), un espacio para programas de 8KB,
8 registros adicionales, y habilidades de interrupcin.
8080 y 8085: son procesadores de 8 bits fabricados por Intel a mediados de los
70. El 8085 era binariamente compatible con el 8080, pero exiga menos soporte
de hardware; de esta forma permita unos sistemas de microordenadores ms
simples y ms econmicos.
El nmero 5 de la numeracin del procesador 8085 proviene del hecho que
solamente requera una alimentacin de 5 voltios, no como el 8080 que necesitaba
unas alimentaciones de 5 y 12 voltios.
Entre las caractersticas del 8085 se destaca su bus de datos multiplexado, es
decir, comparte los pines del bus de datos con los del bus de direcciones.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
29
8086 y 8088: son dos microprocesadores de 16 bits diseados por Intel en 1978,
iniciadores de la arquitectura x86. La diferencia entre el 8086 y el 8088 es que el
8088 utiliza un bus externo de 8 bits, para el empleo circuitos de soporte al
microprocesador ms econmicos, en contraposicin al bus de 16 bits del 8086.
80186 y 80188: estos dos microprocesadores fueron desarrollados por Intel
alrededor de 1982. Los 80186 y los 80188 son una mejora del Intel 8086 y del Intel
8088 respectivamente. Al igual que el 8086, el 80186 tiene un bus externo de 16
bits, mientras que el 80188 lo tiene de 8 bits como el 8088, para hacerlo ms
econmico. La velocidad de reloj del 80186 y del 80188 es de 6 MHz.
Ambos microprocesadores no fueron muy usados en ordenadores personales,
sino que su uso principal fue como procesadores empotrados. Con el 80186 y el
80188 se introdujeron ocho nuevas instrucciones al conjunto de instrucciones x86.
80286: (llamado oficialmente iAPX 286, tambin conocido como i286 o 286) es un
microprocesador de 16 bits de la familia x86, que fue lanzado al mercado por Intel
el 1 de febrero de 1982. Las versiones iniciales del i286 funcionaban a 6 y 8 MHz,
pero acab alcanzando una velocidad de hasta 20 MHz. El i286 fue el
microprocesador ms empleado en los IBM PC y compatibles entre mediados y
finales de los aos 80.
IA32: Es la arquitectura de microprocesadores de 32 bits de Intel (Intel
Architecture 32). Son los microprocesadores ms usados en los ordenadores
personales (PC).
Esta gama de microprocesadores comenz con el 80386, conocido luego
popularmente como 386 o x86 para denominar a toda la gama. Los procesadores
de Intel que siguieron y mantuvieron la compatibilidad son el 486, Pentium ( 586),
Pentium II ( 686), Pentium III y Pentium IV.
La novedad de estos procesadores con respecto a sus predecesores es que
incluyen gestin de memoria avanzada (segmentacin, paginacin, soporte de
memoria virtual), unidad de punto flotante ( FPU ), y a partir del Pentium MMX
cuentan con soporte para operaciones matriciales complejas, muy usadas en
aplicaciones grficas y multimedia.
80386: (i386, 386) Es un microprocesador CISC con arquitectura x86. Durante su
diseo se le llam 'P3', debido a que era el prototipo de la tercera generacin x86.
El i386 fue empleado como la unidad central de proceso de muchos ordenadores
personales desde mediados de los aos 80 hasta principios de los 90.
80486: (i486, 486) son una familia de microprocesadores de 32 bits con
arquitectura x86 diseados por Intel. Las principales diferencias con el i386 son las
siguientes: tienen un conjunto de instrucciones optimizado, una unidad de coma
flotante y un cach unificado e integrado en el propio circuito del microprocesador
y una unidad de interfaz de bus mejorada.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
30
Pentium: este procesador se lanz al mercado el 22 de marzo de 1993,
sucediendo al procesador Intel 80486. Intel no lo llam 586 sino Pentium, para
poderlo registrar y as evitar que la competencia siguiera utilizando los mismos
nmeros que Intel para sus procesadores equivalentes (AMD 486, IBM 486, etc).
Tambin es conocido por su nombre clave P54C.
El procesador Intel Pentium est formado por 3,1 millones de transistores y
direcciona memoria con 64 bits. Integra dos memorias cach de 8 KBytes (una
para datos y otra para cdigo) y tiene dos unidades aritmtico lgicas (ALU), lo
que le permite hacer tratamiento paralelo. Por tanto el Pentium puede ejecutar
hasta dos instrucciones por ciclo de reloj. Est optimizado para ejecutar cdigo de
16 bits.
Evolucin del Pentium
En 1997, Intel present una evolucin de su procesador Pentium, llamado Pentium
MMX. Este se basaba en el mismo ncleo del Pentium original, pero se le aadi
una memoria cach L1 de 32 KBytes (frente a los 16 KBytes del Pentium comn),
siendo 16 KB para datos y 16 KB para instrucciones, ordenadas en 4 vas de 4 KB
cada una, y 57 nuevas instrucciones multimedia (de coma flotante), llamadas
MMX, con el fin de ejecutar ms rpidamente las futuras aplicaciones interactivas.
Este procesador funcionaba entre 166 y 233 MHz.
Fuente: Internet (wikipedia.com)
El nombre Pentium fue conservado por Intel para las generaciones siguientes de
sus procesadores (Pentium Pro, Pentium II, Pentium III, Pentium IV y actualmente
Pentium D), aunque exista una evolucin importante en las arquitecturas.
Pentium II: este microprocesador fue al mercado el 7 de mayo de 1997. Est
basado en una versin modificada del ncleo P6, usado por primera vez en el Intel
Pentium Pro.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
31
Fuente: Internet
Los cambios fundamentales fueron mejorar el rendimiento en la ejecucin de
cdigo de 16 bits, aadir el conjunto de instrucciones MMX y eliminar la memoria
cach de segundo nivel del ncleo del procesador, colocndola en una tarjeta de
circuito impreso junto a ste.
El Pentium II se comercializ en versiones que funcionaban a una frecuencia de
reloj de entre 166 y 450 MHz. La velocidad de bus era originalmente de 66 MHz,
pero en las versiones a partir de los 333 MHz se aument a 100 MHz.
Posea 32 KB de memoria cach de primer nivel repartida en 16 KB para datos y
otros 16 KB para instrucciones. La cach de segundo nivel era de 512 KB.
Como novedad respecto al resto de procesadores de la poca, el Pentium II se
presentaba en un encapsulado SEC, con forma de cartucho. El cambio de formato
de encapsulado se hizo para mejorar la disipacin de calor. Este cartucho se
conecta a las placas base de los equipos mediante una ranura Slot 1. este
microprocesador integra 7,5 millones de transistores.
Celeron: es el nombre que lleva la lnea de procesadores de bajo costo de Intel. El
primer Celeron fue lanzado en agosto de 1998, y estaba basado en el Pentium II.
Posteriormente, salieron nuevos modelos basados en las tecnologas Pentium III y
Pentium IV.
Los procesadores Celeron se dividen en dos grandes clases:
P6: Basada en los procesadores Pentium II y Pentium III
Netburst: Basada en los procesadores Pentium IV
Pentium III: es un microprocesador de arquitectura i686. Fue lanzado el 26 de
febrero de 1999. Las primeras versiones eran muy similares al Pentium II, siendo
la diferencia ms importante la introduccin de las instrucciones SSE. Al igual que
con el Pentium II, exista una versin Celeron de bajo costo y una versin Xeon
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
32
para quienes necesitaban gran poder de cmputo. Esta lnea ha sido
eventualmente reemplazada por el Pentium IV, aunque la lnea Pentium M est
basada en el Pentium III.
Fuente: Internet
Pentium IV: es un microprocesador de sptima generacin basado en la
arquitectura x86 y manufacturado por Intel. Es el primer microprocesador con un
diseo completamente nuevo desde el Pentium Pro de 1995. El Pentium IV
original, denominado Willamette, trabajaba a 1,4 y 1,5 GHz; y fue lanzado en
noviembre de 2000.
Para la sorpresa de la industria informtica, el Pentium IV no mejor el diseo P6
segn las dos tradicionales formas para medir el rendimiento: velocidad en el
proceso de enteros u operaciones de coma flotante. La estrategia de Intel fue
sacrificar el rendimiento de cada ciclo para obtener a cambio mayor cantidad de
ciclos por segundo y una mejora en las instrucciones SSE. Al igual que los dems
procesadores de Intel, el Pentium IV se comercializa en una versin para equipos
de bajo presupuesto (Celeron) y una orientada a servidores de gama alta (Xeon).
Pentium IV EDICIN EXTREMA: en septiembre de 2003, Intel anunci la edicin
extrema (Extreme Edition) del Pentium IV. Se destac en el rea de la codificacin
multimedia, ya que superaba la velocidad de los anteriores Pentium 4 y a toda la
lnea de AMD.
Pentium M: Fue Introducido en marzo de 2003. Este microprocesador cuenta con
una arquitectura x86 (i686). Originalmente fue diseado para uso en ordenadores
porttiles. Su nombre en clave antes de su introduccin era '''Banias'''. Todos los
nombres clave del Pentium M son lugares de Israel, la ubicacin del equipo de
diseo del Pentium M.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
33
El Pentium M es una versin fuertemente modificada del diseo del Pentium III.
Est optimizado para un consumo de potencia eficiente, una caracterstica vital
para ampliar la duracin de la batera de los ordenadores porttiles. Funciona con
un consumo medio muy bajo y desprende mucho menos calor que los
procesadores de ordenadores de sobremesa. El Pentium M funciona a una
frecuencia de reloj ms baja que los procesadores Pentium IV normales, pero con
un rendimiento similar, y puede igualar o superar el rendimiento de un Pentium IV
Prescott a 3 GHz.
Este procesador forma parte de la plataforma Intel Centrino.
Pentium D: fue introducido por Intel en 2005. Un chip Pentium D consta
bsicamente de dos procesadores Pentium IV (de ncleo Prescott) en una nica
pieza de silicio con un proceso de fabricacin de 90nm. El nombre en clave del
Pentium D antes de su lanzamiento era "Smithfield". Incluye una tecnologa DRM
(Digital Rights Management) para hacer posible un sistema de proteccin
anticopia de la mano de Microsoft.
Xeon: es la actual generacin de microprocesadores Intel para servidores PC. El
primer procesador Xeon apareci en 1998 como Pentium II Xeon.
El Pentium II Xeon utilizaba tanto el chipset 440GX como el 450NX. En el ao
2000, el Pentium II Xeon fue reemplazado por el Pentium III Xeon
El ltimo miembro aadido a la familia Xeon es el procesador Xeon MP, lanzado
en 2002, que combinaba la tecnologa Hyper-Threading con NetBurst. Sus
chipsets utilizan el socket 603 y tiene versiones GC-LE (2 procesadores, 16Gb de
memoria direccionable) y GC-HE (4 procesadores o ms, 64Gb direccionables),
todos usando un bus de 400MHz.
Como la familia x86/IA-32 estndar de Intel de procesadores PC de escritorio, la
lnea de procesadores Xeon es de 32 bits. Se planea una versin de 64 bits de
Xeon que complementar (o reemplazar) a la CPU Itanium de Intel.
El 26 de junio de 2006, Intel anunci la nueva generacin de Xeon con tecnologa
de doble ncleo. Intel afirma que este nuevo procesador brindar un 80% ms de
rendimiento por vatio y que ser hasta un 60% ms rpido que la competencia.
Intel Core Duo: es el microprocesador de Intel que cuenta con dos ncleos de
ejecucin. Fue lanzado en enero del 2006. El microprocesador Intel Core Duo est
optimizado para las aplicaciones de subprocesos mltiples y para la multitarea.
Puede ejecutar varias aplicaciones simultneamente, como juegos con grficos o
programas que requieran muchos clculos, al mismo tiempo que puede descargar
msica o analizar su PC con su antivirus en el segundo plano.
Este microprocesador implementa 2Mb de cach compartida para ambos ncleos
ms un bus frontal de 667Mhz; adems implementa un nuevo juego de
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
34
instrucciones para multimedia (SSE3) y mejoras para las SSD y SSD2; sin
embargo, el desempeo con enteros es ligeramente inferior debido a su cach con
mayor latencia
Intel Core Duo es el primer microprocesador de Intel usado en las computadoras
Apple Macintosh.
El Core Duo contiene 151 millones de transistores. El ncleo de ejecucin del
procesador contiene un pipeline de 12 etapas con velocidades previstas de
ejecucin entre 2.33 y 2.50 GHz. La comunicacin entre la cach L2 y los dos
ncleos de ejecucin es controlada por un mdulo de bus rbitro que elimina el
trfico de coherencia a travs del bus frontal (FSB), con el costo de elevar la
latencia de la comunicacin de ncleo a L2 de 10 ciclos de reloj. El incremento de
la frecuencia de reloj contrapesa el impacto del incremento en la latencia.
Las nuevas caractersticas de administracin de energa incluyen control mejorado
de temperatura, as como escalado independiente de energa entre los 2 ncleos,
lo que resulta en un manejo de energa mucho ms eficiente que los diseos
anteriores.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
35
CAPTULO 2
MICROPROCESADORES DE 8 BITS
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
36
MICROPROCESADORES de 8 bits: INTEL 8080 e INTEL 8085
A continuacin se har una descripcin general, de dos de los microprocesadores
de 8 bits, ms representativos.
1. CARACTERSTICAS GENERALES
El Intel 8080 fue el sucesor del Intel 8008; esto se dio fcilmente ya que eran
compatibles en muchos aspectos y porque utilizaban el mismo conjunto de
instrucciones. El i8080 sali al mercado en el ao de 1974, con un empaquetado
ms grande, DIP de 40 pines, lo que permiti al 8080 proporcionar un bus de
direcciones de 16 bits y un bus de datos de 8 bits, permitiendo el fcil acceso a 64
KB de memoria. Tena siete registros de 8 bits, seis de los cuales se podan
combinar en tres registros de 16 bits, un puntero de pila en memoria de 16 bits,
que reemplazaba la pila interna del 8008, y un contador de programa de 16 bits.
El 8080 poda manejar 256 puertos de E/S, los cules eran accesados por los
programas mediante instrucciones dedicadas de E/S. Este esquema usaba un
espacio de direcciones separado para las entradas/salidas, pero ahora es menos
comn que el de mapeo de memoria para dispositivos o puertos de E/S.
El 8080 fue implementado en muchos de los primeros microcomputadores, tales
como la Altair 8800 de MITS y el IMSAI 8080, formando la base para las mquinas
que corran el sistema operativo CP/M.
El primer microcomputador en una simple tarjeta fue construido en base al 8080.
Por medio de su arquitectura de conjunto de instrucciones (ISA), el 8080 hizo un
impacto duradero en historia del computador.
El Intel 8085 fue presentado en el ao de 1976 y se consider un estndar de la
industria de microprocesadores durante mucho tiempo. Tena 20.000 transistores,
funcionaba a 1 MHz y estaba encapsulado en un chip de 40 pines.
Este microprocesador tiene un total de 16 lneas de direccin. Las 8 lneas de
direccin ms significativas estn conectadas a los pines A
8
y A
15
, y se conectan
directamente al bus de direcciones. El bus de datos de 8 bits est compartido con
las 8 lneas de direccin menos significativas. Los pines de alimentacin V
CC
y V
SS
deben ser conectados a una fuente de +5V.
El 8085 tiene circuitera de reloj permanente y solo necesita conectar los pines de
entrada X
1
y X
2
a un cristal.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
37
2. FUNCIONES Y DIAGRAMA DE PINES
El microprocesador 8080 es un chip de 40 pines con encapsulado de doble lnea
o DIP. Tiene 16 lneas de direcciones ( pin 1, pines 25 al 27 y pines 29 al 40 ) y 8
lneas bidireccionales para el de bus datos ( pines 3 al 10 ). Todas estas lneas se
encargan del direccionamiento de la memoria y los dispositivos de entrada/salida,
y del manejo de los datos.
A continuacin se presenta el diagrama de pines del i8080 y se anexa una tabla
con la descripcin de cada una de sus funciones.
NOMBRE DEL PIN TIPO DESCRIPCIN
Lneas de direccin ( A
15
- A
0
) Salida
Provee la direccin de memoria o nmero de
dispositivo entrada/salida. A
0
denota el bit
menos significativo
Lneas de datos ( D
7
- D
0
) Entrada/Salida
Provee comunicacin bidireccional de
instrucciones o datos entre la CPU y la
memoria o dispositivos de entrada/salida.
D
0
es el bit menos significativo.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
38
Seal de sincronismo (SYNC) Salida
La seal de sincronismo indica el comienzo
de cada ciclo mquina.
Seal de entrada de datos (DBIN) Salida
Indica a los dispositivos externos que el bus
de datos est en modo de entrada.
Listo (READY) Entrada
Indica al 8080a que hay un dato vlido de la
memoria o dispositivo de entrada/salida en
el bus de datos. Esta seal permite
sincronizar la CPU con dispositivos ms
lentos. Si despus de enviar una direccin
no se recibe la seal de READY, la CPU
entra en estado de espera hasta recibirla.
Espera (WAIT) Salida
Indica que la CPU se encuentra en estado
de espera.
Escritura (WR)
Salida
Seal de control de escritura para la
memoria o dispositivo de entrada/salida.
Reposo (HOLD) Entrada
La CPU entra en estado de reposo, es
decir, permite que un dispositivo externo
tenga el control del bus de direcciones y de
datos.
Reconocimiento de reposo (HLDA) Salida
Esta seal aparece en respuesta a la seal
HOLD e indica que el bus de datos y
direcciones entran en estado de alta
impedancia.
Habilitacin de interrupcin (INTE) Salida
Indica el estado interno del flip-flop de
habilitacin de interrupcin. Cuando es 0 se
deshabilita la interrupcin y cuando es igual
a 1 es habilitada. Cuando la CPU se reinicia
las interrupciones son deshabilitadas.
Peticin de interrupcin (INT) Entrada
La CPU reconoce la peticin de interrupcin
y la atiende al final de la actual instruccin o
mientras est detenido. Si se encuentra en
estado de reposo o deshabilitadas las
interrupciones no atiende la peticin.
Reinicio (RESET) Entrada
Mientras la seal est activa el contador de
programa es borrado. Despus se
reanudar en la posicin de memoria 0.
Tierra (V
SS
) Alimentacin Tierra o referencia
V
DD
Alimentacin +12V % 5 V
V
CC
Alimentacin +5V % 5 V
V
BB
Alimentacin -5V % 5 V
Fases de reloj (
2 1
, ) Reloj 2 fases externas de reloj suplementarias
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
39
Al igual que el i8080, el microprocesador 8085, su sucesor, es un procesador de
8 bits con un encapsulado DIP de 40 pines. Su diagrama de pines se ilustra en la
siguiente figura. En la tabla anexa se resumen los nombres y descripciones de sus
pines.
NOMBRE DEL PIN TIPO DESCRIPCION
( AD
7
- AD
0
) Entrada/salida Bus de direcciones y datos, tres estados.
( A
15
- A
8
) Salida Bus de direcciones, tres estados.
ALE Salida Seal de habilitacin del cerrojo de direccin.
RD
Salida Control de lectura.
WR Salida Control de escritura.
IO/ M
Salida E/S o indicador de memoria.
S
0
, S
1
Salida Indicadores del estado del bus.
READY Entrada Peticin de estado de espera.
SID Entrada Entrada de datos serie.
SOD Salida Salida de datos serie
HOLD Entrada Peticin de reposo.
HLDA Salida Conocimiento de reposo.
INTR Entrada Peticin de interrupcin.
TRAP Entrada Peticin de interrupcin no enmascarable.
8085
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
X1
X2
RESET OUT
SOD
SID
TRAP
RST 7.5
RST 6.5
RST 5.5
INTR
INTA
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
V
SS
V
CC
(+5V)
HOLD
HLDA
CLOCK OUT
RESET IN
READY
IO/M
S1
RD
WR
ALE
S0
A15
A14
A13
A12
A11
A10
A9
A8
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
40
RST5.5 Entrada
Peticin de interrupcin hardware
vectorizadas.
RST6.5 Entrada
Peticin de interrupcin hardware
vectorizadas.
RST7.5 Entrada
Peticin de interrupcin hardware
vectorizadas.
INTA Salida Conocimiento de interrupcin.
ZACIN REINICIALI IN
Entrada Reinicializacin del sistema.
REINICIALIZACIN OUT Salida Reinicializacin de los perifricos
X
1,
X
2
Entrada Conexiones al cristal o RC.
CLK Salida Seal de reloj
V
CC,
V
ss
Alimentacin + 5V, tierra.
Con las funciones aadidas del 8085, los 40 pines del chip no eran suficientes
para todas las entradas y salidas. Por esta razn, el fabricante utiliza los pines 12
al 19 como lneas de propsito doble: de direcciones y datos (AD
7
- AD
0
). Se dice
entonces que esta unidad tiene un bus multiplexado de datos y direcciones.
El 8085 tiene una seal especial para informar a los perifricos cundo el bus de
direcciones/datos enva una direccin y cuando funciona como bus de datos. La
seal especial se denomina seal de control de habilitacin del cerrojo de
direcciones (ALE). Se debe observar que los pines del bus de direcciones/datos
son bidireccionales o pueden ser tambin de tres estados o alta impedancia.
Las salidas de control de lectura ( RD) y escritura (WR) son utilizadas para
informar a la memoria o dispositivos de entrada/salida cuando hay que enviar o
recibir datos va el bus de datos.
La entrada de reinicializacin ( ZACIN REINICIALI ) acta como el reset de la
CPU, ya que el contador de programa se ubica en la posicin 0000H de la
memoria. Los buses de datos y direcciones y lneas de control estn en triestado
durante la reinicializacin. El contenido de los registros internos tambin puede ser
alterado durante una reinicializacin. El pin REINICIALIZACIN OUT est
asociado con la operacin de reinicializacin. Como la CPU se est
reinicializando, el pin REINICIALIZACIN OUT enva una seal a los perifricos
que les informa que el sistema se va reiniciar.
La entrada de peticin de interrupcin (INTR) al 8085 es una interrupcin de
propsito general. Sin embargo, puede ser habilitada o deshabilitada por
instrucciones de software. Adems de la peticin regular de interrupciones, la CPU
tiene otras cuatro entradas de interrupcin. Estos son los pines de entrada TRAP,
RST7.5, RST6.5 y RST5.5. TRAP es la interrupcin de mayor prioridad.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
41
La interrupcin INTR salta a una direccin dictada por una instruccin especial
recibida, de un dispositivo perifrico, cuando es activada la salida de conocimiento
de interrupcin ( INTA) de la CPU.
EL pin de entrada HOLD (reposo) notifica a la CPU que otro dispositivo quiere
utilizar los buses de direcciones y datos. Esto puede ocurrir durante operaciones
de acceso directo a memoria. Despus de recibir una entrada HOLD, la CPU
completar las transferencias actuales de datos en los buses. Entonces los pines
de direcciones, datos, RD, WR e IO/ M del 8085 se ponen en alta impedancia
para no interferir con las transferencias de datos en los buses.
Una salida HLDA (conocimiento de reposo) indica a un perifrico que se ha
recibido una peticin HOLD y que el microprocesador abandonar el control de los
buses en el siguiente ciclo de reloj.
Las salidas IO/ M , S
0
y S
1
son seales de control que notifican a los perifricos el
tipo de ciclo de mquina que est realizando la CPU. Los tipos de ciclo de
mquina aparecen a la derecha de la tabla. La combinacin adecuada de las
seales de salida de los pines IO/ M , S
0
y S
1
se detalla en la columna de la
izquierda.
Seales de
control del 8085
IO/ M S
0
S
1
Status de ciclos de mquina
0 0 1 Escritura en memoria
0 1 0 Lectura de memoria
1 0 1 Escritura de E/S
1 1 0 Lectura de E/S
0 1 1 Bsqueda del cdigo de operacin
1 1 1 Conocimiento de interrupcin
* 0 0 Alto
* X X Reposo
* X X Reinicializacin
* = condicin de tres estados
X = no especificado.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
42
3. ARQUITECTURA INTERNA
La organizacin interna o arquitectura del microprocesador 8080 se muestra en
la siguiente figura.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
43
Registros
El formato de datos e instrucciones que se manejan, es de enteros de 8 bits.
Todas las transferencias sobre el bus de datos del sistema se realizan con este
formato.
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
Las instrucciones de programa pueden tener tamao de uno, dos o tres bytes de
longitud. Los mltiples bytes de instrucciones deben ser guardados en palabras
sucesivas en la memoria del programa. El formato de las instrucciones depender
de la operacin ejecutada en particular.
Las entradas o salidas de datos a la unidad, se realizan a travs del bus de datos
interno de 8 bits. Los datos pueden fluir desde el bus de datos interno al
acumulador de 8 bits o a los registros temporales, registro de instrucciones, unidad
de control de interrupcin, unidad de control de E/S o cualquiera de los registros
de propsito general (B, C, D, E, H y L). Cuenta tambin con un puntero de pila de
16 bits, un contador de programa de 16 bits y un buffer de datos/direcciones.
La unidad aritmtico lgica est alimentada por dos registros de 8 bits (registro
acumulador y registro temporal). Los flip-flops sealizadores tienen cinco
indicadores de estado.
El registro de instrucciones alimenta al decodificador de instrucciones, el cual
interpreta la instruccin actual y determina el microprograma que debe seguir. El
decodificador de instrucciones tambin indica a las secciones de control y
temporizacin sobre la secuencia de eventos que deben realizarse. La seccin de
temporizacin y control coordina las acciones del procesador y los perifricos.
El microprocesador 8085, cuenta con las mismas unidades estructurales del
i8080: una unidad de control, una unidad lgico aritmtica, un conjunto de
registros y un bus interno de interconexin; pero incluye dos componentes
adicionales bastante interesantes: una unidad para el control de las interrupciones
y una comunicacin serie sencilla.
Tambin utiliza registros de 8 y 16 bits. Seis de estos registros pueden utilizarse
como registros de 8 bits o como tres registros de 16 bits.
A continuacin se presenta el diagrama interno o la arquitectura del
microprocesador 8085.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
44
Algunos de los registros ms importantes, son los siguientes:
El acumulador: es el centro de todas las operaciones de la ALU, la cual incluye
instrucciones aritmticas, lgicas, de carga y de E/S. Es un registro de 8 bits.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
45
Los registros de propsito general BC, DE y HL pueden ser utilizados como
seis registros de 8 bits o como tres registros de 16 bits dependiendo de la
instruccin que se vaya a ejecutar. El registro HL llamado puntero de datos puede
ser utilizado para apuntar a direcciones. Pocas instrucciones utilizan los registros
BC y DE como punteros de direccin, ya que normalmente se utilizan como
registros de datos de propsito general.
El contador de programa (PC) siempre seala la posicin de memoria de la
siguiente instruccin que se va a ejecutar. Siempre contiene una direccin de 16
bits.
El puntero de pila (SP) es un puntero de direccin de propsito especial (o
puntero de dato) que siempre apunta a la parte superior de la pila de la RAM. Es
un registro de 16 bits. Este registro se decrementa cada vez que se introduce un
dato en la pila y se incrementa cada vez que se saca el dato de la pila.
El registro de sealizadores ( Flags ) contiene cinco sealizadores de 1 bit con
la informacin del estado de la CPU. Estos sealizadores son utilizados
generalmente por instrucciones de bifurcacin condicional y llamada y vuelta de
subrutina. Este registro se presentan a continuacin:
S Z AC P CY
B
7
B
6
B
5
B
4
B
3
B
2
B
1
B
0
El sealizador de arrastre (CY) es puesto a 1 0 por operaciones aritmticas, y su
estado es examinado por las instrucciones del programa. Un desbordamiento de
una suma de 8 bits genera en el registro un set (1) en la bandera CY. En la resta
el sealizador actua como un sealizador de prstamo, indicando que el
minuendo es menor que el sustraendo si el sealizador est en 1.
El sealizador de paridad (P) examina el nmero de bits 1 del acumulador. Si ste
contiene un nmero par de 1, se dice que existe paridad par y el sealizador de
paridad se pone a 1. Sin embargo, si el acumulador contiene un nmero impar de
1 (paridad impar), el sealizador de paridad se pone en 0.
El sealizador de arrastre auxiliar (AC) indica desbordamiento o arrastre del bit 3
del acumulador de la misma forma que el sealizador de arrastre indica
desbordamiento del bit 7. Esta sealizador es utilizado comnmente en aritmtica
BCD (decimal codificado binario).
El sealizador de cero (Z) se pone a 1 si el resultado de ciertas operaciones es
cero. El sealizador de cero est a 0 si el resultado no es cero.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
46
El sealizador de signo (S) indica la condicin del bit ms significativo del
acumulador despus de la ejecucin de instrucciones aritmtico-lgicas. Estas
instrucciones utilizan el MSB del dato para representar el signo del nmero
contenido en el acumulador. Un sealizador de signo a 1 representa un nmero
negativo, mientras que si es 0 representa un nmero positivo.
Los registros programables del i8085 se resumen en la siguiente tabla. El
acumulador principal de 8 bits se etiqueta A; los otros registro de propsito general
de 8 bits ( etiquetados B, C, D, E, H y L ) tambin se denominan acumuladores
secundarios o contadores de datos. Adems, los registros de 16 bits que son: el
puntero de pila (SP) y el contador de programa (PC).
PSW (8)
A (8)
B (8) C (8)
D (8) E (8)
H (8) L (8)
SP (16)
PC (16)
Unidad aritmtico lgica: las operaciones aritmticas, lgicas y de
desplazamiento son realizadas en la ALU. Los resultados de estas operaciones se
almacenan en el acumulador. La ALU basa su funcionamiento en el registro
acumulador, el registro de sealizadores y en algunos registros temporales que
son inaccesibles al programador.
Registro de instruccin y decodificador: durante una bsqueda de instruccin,
el primer byte de la instruccin, el cdigo de operacin, es transferido al registro
de instruccin de 8 bits. El contenido de dicho registro queda entonces disponible
para el decodificador de instrucciones. All se interpreta la instruccin, y a travs
de sus circuitos y seales de temporizacin y control, ejecuta las diferentes tareas
en los registros, la ALU, la memoria y los buffers de datos y direcciones.
Generador del reloj interno: el 8085 incorpora un generador completo de reloj en
el mismo chip. Requiere solamente la adicin de un cristal de cuarzo para
establecer la temporizacin de su operacin. El pin de salida CLK es una salida de
reloj que tiene una frecuencia de una vez y media la frecuencia del cristal.
Acumuladores secundarios/
contadores de datos
Puntero de pila
Contador de programa
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
47
4. MODOS DE DIRECCIONAMIENTO
Un modo de direccionamiento es la tcnica empleada para buscar el operando
deseado durante la ejecucin de una instruccin.
En los microprocesadores i8080 e i8085, se tienen principalmente cinco modos de
direccionamiento. Estos son:
Direccionamiento inmediato.
Direccionamiento directo.
Direccionamiento indirecto de registro.
Direccionamiento implicado.
Direccionamiento de registro.
Direccionamiento inmediato: las instrucciones que utilizan direccionamiento
inmediato tienen los datos inmediatamente a continuacin del cdigo de operacin
en la memoria del programa. Por ejemplo, se tiene la instruccin:
ADDI: suma inmediata
El microprocesador busca el cdigo de operacin en la memoria del programa.
Despus de decodificar la instruccin encuentra el dato inmediato en la siguiente
posicin consecutiva de la memoria del programa, despus del cdigo de
operacin. En este caso, el dato inmediato se suma al contenido del acumulador y
el resultado es guardado en el acumulador.
Las instrucciones inmediatas utilizan el acumulador como operando implicado; por
ejemplo la instruccin MVI puede transferir datos inmediatos a cualquier registro o
posicin de memoria. La instruccin LXI carga un registro par con un valor de 16
bits y por tanto no afecta al acumulador.
Direccionamiento directo: este tipo de instrucciones se especifican utilizando
formato de instruccin de 3 bytes. El byte 1 contiene el cdigo de operacin para
la instruccin de direccionamiento directo. El byte 2 contiene el byte de orden
inferior de la direccin del operando. El byte 3 de la instruccin contiene el byte de
orden superior de la direccin del operando. Por ejemplo, la instruccin:
LDA: cargar A directo
En este caso el cdigo de operacin es 3AH. Los 2 siguientes bytes de la memoria
son ensamblados por el microprocesador en una direccin de 16 bits. Esta
direccin de la memoria de datos es accedida por la CPU y su contenido cargado
en el acumulador.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
48
Las instrucciones que utilizan direccionamiento directo a veces son evitadas ya
que requieren de mucho espacio en la memoria de programa, al igual que tiempo
de ejecucin relativamente largo, debido a los numerosos accesos a memoria que
se necesitan.
Direccionamiento indirecto de registro: las instrucciones de registro indirecto
referencian la memoria utilizando el contenido de un registro par para sealar la
direccin del operando. Por ejemplo, la instruccin:
ADDM: sumar memoria
Esta instruccin suma el contenido del acumulador con el contenido de la posicin
de memoria indicado por la direccin del registro HL de la CPU.
Direccionamiento implicado: el modo de direccionamiento de ciertas
instrucciones es implicado o inherente a, por la funcin de la instruccin. Por
ejemplo, la instruccin:
STC: poner a 1 el sealizador de arrastre
Esta instruccin se relaciona con el sealizador de arrastre solamente y no con
otros registros o posiciones de memoria.
Direccionamiento de registro: cuando se utilizan el tipo de instrucciones que
utilizan direccionamiento de registro, se especifican la fuente del operando y la
operacin. Consideremos la ejecucin de la instruccin:
ADD C: sumar el registro C con el acumulador
Una vez que se ejecuta la instruccin el resultado se deposita en el acumulador.
Se considera del tipo de direccionamiento de registros porque ambos operandos
estaban localizados en registros internos del microprocesador. Estas instrucciones
son muy eficientes ya que solamente utilizan un espacio de la memoria de
programa de 1 byte. Tambin se ejecutan rpidamente porque no tienen que
buscar operandos en memoria. Los accesos de memoria aumentan el tiempo de
ejecucin de la instruccin.
Modos de direccionamiento combinados: algunas instrucciones son de
direccionamiento combinado, como por ejemplo la llamada a subrutina CALL, en la
cual se tiene direccionamiento directo e indirecto de registro.
En este caso el direccionamiento directo especifica la direccin de la subrutina
deseada y el direccionamiento indirecto es el del puntero de pila.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
49
5. REPERTORIO DE INSTRUCCIONES
El grupo de instrucciones que un microprocesador puede ejecutar, se denomina su
repertorio de instrucciones. Todas las instrucciones de un programa son
almacenadas en un rea denominada memoria de programa. El conjunto de
instrucciones del 8080 es el mismo del 8085; aunque este ltimo cuenta con dos
nuevas instrucciones en su repertorio.
Las instrucciones se pueden agrupar en las siguientes categoras funcionales:
Grupo de transferencia de datos: en este grupo se encuentran las instrucciones
de transferencias, cargas, almacenamientos e intercambios.
Algunas de las principales instrucciones de este tipo, con su direccionamiento,
ciclos, estados y sealizadores, son especificadas a continuacin.
MOV r1, r2 (transfiere registro)
(r1) (r2)
El contenido del registro r2 es transferido al registro r1.
Ciclos: 1
Estados: 4 (8085), 5 (8080)
Direccionamiento: registro
Sealizadores: ninguno
MOV r, M (transfiere de memoria)
(r) (H) (L)
El contenido de la posicin de memoria, cuya direccin est en los registros H y L
es transferido al registro r.
Ciclos: 2
Estados: 7
Direccionamiento: indirecto a registro
Sealizadores: ninguno
MOV M, r (transfiere a memoria)
(H) (L) (r)
El contenido del registo r es transferido a la posicin de memoria cuya direccin
est en los registros H y L.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
50
Ciclos: 2
Estados: 7
Direccionamiento: indirecto a registro
Sealizadores: ninguno
MVI r, dato (transferencia inmediata)
(r) (byte2)
El contenido del byte 2 de la instruccin es transferido al registro r.
Ciclos: 2
Estados: 7
Direccionamiento: inmediato
Sealizadores: ninguno
LDA addr (carga acumulador directo)
(A) (byte3) (byte2)
El contenido de la posicin de memoria, cuya direccin est especificada en los
bytes 2 y 3 de la instruccin, es transferido al registro A.
Ciclos: 4
Estados: 13
Direccionamiento: directo
Sealizadores: ninguno
Grupo aritmtico: en este grupo se encuentran las instrucciones que realizan
sumas, restas, incrementos o decrementos en datos de registros o memoria.
Algunas de las principales instrucciones de este tipo, con su direccionamiento,
ciclos, estados y sealizadores, son especificadas a continuacin.
ADDr (Suma registros)
(A) (A)+(r)
El contenido del registro r es sumado al contenido del acumulador. El resultado se
coloca en el acumulador.
Ciclos: 1
Estados: 4
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
51
Direccionamiento: registro
Sealizadores: Z,S,P,CY,AC
ADI dato (Suma inmediata)
(A) (A)+(byte2)
El contenido del segundo byte de la instruccin es sumado al contenido del
acumulador. El resultado se coloca en el acumulador.
Ciclos: 2
Estados: 7
Direccionamiento: inmediato
Sealizadores: Z,S,P,CY,AC
SUBr (Resta registro)
(A) (A)-(r)
El contenido del registro r es restado al contenido del acumulador. El resultado se
coloca en el acumulador.
Ciclos: 1
Estados: 4
Direccionamiento: registro
Sealizadores: Z,S,P,CY,AC
SUB M (Resta memoria)
(A) (A)-((H) (L))
El contenido de la posicin de memoria cuya direccin est contenida en los
registros H y L es restado al contenido del acumulador. El resultado se coloca en
el acumulador.
Ciclos: 2
Estados: 7
Direccionamiento: indirecto de registro
Sealizadores: Z,S,P,CY,AC
INRr (Incrementa registro)
(r) (r)+1
El contenido del registro r es incrementado en uno.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
52
Ciclos: 1
Estados: 4 (8085), 5(8080)
Direccionamiento: registro
Sealizadores: Z,S,P,AC
DCR M (Decrementa memoria)
(H) (L) (H) (L)-1
El contenido de la posicin de memoria cuya direccin est contenida en los
registros H y L es decrementado en uno. Todos los sealizadores son afectados
excepto CY.
Ciclos: 3
Estados: 10
Direccionamiento: indirecto de registro
Sealizadores: Z,S,P,AC
Grupo lgico: en este grupo se encuentran las instrucciones que realizan
operaciones AND, OR y XOR, comparaciones, desplazamientos circulares o
complementos de datos en registros o entre memoria y un registro.
Algunas de las principales instrucciones de este tipo, con su direccionamiento,
ciclos, estados y sealizadores, son especificadas a continuacin.
ANAr (And registro)
(A) (A) . (r)
El contenido del registro r realiza la operacin lgica AND con el contenido del
acumulador. El resultado se coloca en el acumulador
Ciclos: 1
Estados: 4
Direccionamiento: registro
Sealizadores: Z, S, P, CY, AC
ANA M (And memoria)
(A) (A) . ((H) (L))
El contenido de la posicin de memoria cuya direccin est contenida en los
registros H y L realiza la operacin lgica AND con el contenido del acumulador. El
resultado se coloca en el acumulador.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
53
Ciclos: 2
Estados: 7
Direccionamiento: indirecto de registro
Sealizadores: Z, S, P, CY, AC.
XRI dato (OR exclusiva inmediata)
(A) (A) (byte2)
El contenido del segundo byte de la instruccin realiza la operacin lgica OR
exclusiva con el contenido del acumulador. El resultado se coloca en el
acumulador.
Ciclos: 2
Estados: 7
Direccionamiento: inmediato
Sealizadores: Z, S, P, CY, AC.
CPI dato (Comparacin directa)
(A) - (byte2)
El contenido del segundo byte de la instruccin es restado del acumulador. El
sealizador Z se pone a 1 si (A)=(byte2).
Ciclos: 2
Estados: 7
Direccionamiento: inmediato
Sealizadores: Z, S, P, CY, AC.
RLC (Desplazamiento circular a la izquierda)
(A
n+1
) (A
n
); (A
0
) (A
7
)
(CY) (A
7
)
El contenido del acumulador es desplazado a la izquierda una posicin. El bit de
orden inferior y el sealizador CY contienen ahora el valor del bit de orden ms
elevado antes de la operacin de desplazamiento.
Ciclos: 1
Estados: 4
Sealizadores: CY.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
54
Grupo de bifurcacin: en este grupo se encuentran las instrucciones que
realizan saltos condicionales o incondicionales, llamadas, vueltas y
reinicializaciones.
Algunas de las principales instrucciones de este tipo, con su direccionamiento,
ciclos, estados y sealizadores, son especificadas a continuacin.
JMP addr (almacena acumulador directo)
(byte3) (byte2) (A)
El control es transferido a la instruccin cuya direccin est especificada en los
bytes 2 y 3 de la instruccin actual.
Ciclos: 3
Estados: 10
Direccionamiento: inmediato
Sealizadores: ninguno
CALL addr (llamada)
((SP) -1) (PCH)
((SP) -2) (PCL)
(SP) (SP)-2
(PC) (byte3) (byte2)
Los ocho bits de orden superior de la direccin de la siguiente instruccin son
transferidos a la posicin de memoria cuya direccin es una unidad menor que el
contenido del registro SP. Los ocho bits de orden inferior de la direccin de la
siguiente instruccin son transferidos a la posicin de memoria cuya direccin es
dos unidades menor que el contenido del registro SP. El contenido del registro SP
es decrementado en 2. El control es transferido a la instruccin cuya direccin est
especificada en los bytes 2 y 3 de la instruccin actual.
Ciclos: 5
Estados: 18 (8085)
17 (8080)
Direccionamiento: inmediato/ indirecto de registro.
Sealizadores: ninguno
Grupo de pila, E/S y de control de mquina: en este grupo se encuentran las
instrucciones para mantener la pila, leer los puertos de entrada, escribir en los
puertos de salida, inicializar y leer mscaras de interrupcin e inicializar y borrar
sealizadores.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
55
Algunas de las principales instrucciones de este tipo, con su direccionamiento,
ciclos, estados y sealizadores, son especificadas a continuacin.
PUSH rp (introducir)
((SP) -1) (rh)
((SP) -2) (rl)
(SP) (SP)-2
El contenido del registro de orden superior del registro par rp es transferido a la
posicin de memoria cuya direccin es una unidad menor que el contenido del
registro SP. El contenido del registro de orden inferior del registro par rp es
transferido a la posicin de memoria cuya direccin es dos unidades menor que el
contenido del registro SP.
Ciclos: 3
Estados: 12 (8085)
11 (8080)
Direccionamiento: indirecto de registro.
Sealizadores: ninguno
POP rp (sacar)
(rh) ((SP) -1)
(rl) ((SP) -2)
(SP) (SP)+2
El contenido de la posicin de memoria, cuya direccin est especificada por el
contenido del registro SP registro, es transferido de orden superior del registro par
rp. El contenido de la posicin de memoria, cuya direccin es una unidad mayor
que el contenido del registro SP, es transferido al registro rp. El contenido del
registro SP es incrementado en dos.
Ciclos: 3
Estados: 10
Direccionamiento: indirecto de registro.
Sealizadores: ninguno
IN puerto (Entrar)
(A) (dato)
El dato colocado en el bus de datos bidireccional de 8 bits, por el puerto
especificado, es transferido al registro A.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
56
Ciclos: 3
Estados: 10
Direccionamiento: directo
Sealizadores: ninguno.
OUT puerto (Salir)
(dato) (A)
El contenido del registro A es colocado en el bus de datos bidireccional de 8 bits,
para que se transmita al puerto especificado.
Ciclos: 3
Estados: 10
Direccionamiento: directo
Sealizadores: ninguno.
EI (habilita interrupciones)
El sistema de interrupcin es habilitado despus de la ejecucin de la siguiente
instruccin. Las interrupciones no son reconocidas durante la instruccin EI.
Ciclos: 1
Estados: 4
Sealizadores: ninguno
HLT (alto)
El procesador se detiene. Los registros y sealizadores no se afectan. (8080) Un
segundo ALE es generado durante la ejecucin de HLT para dar informacin del
status del ciclo Halt. (8085)
Ciclos: 1+(8085), 1(8080)
Estados: 5 (8085), 7(8080)
Sealizadores: ninguno
NOP (no operacin)
No se realiza ninguna operacin. Los registros y sealizadores no se afectan.
Ciclos: 1
Estados: 4
Sealizadores: ninguno
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
57
CAPTULO 3
MICROPROCESADORES DE 16 Y 32 BITS
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
58
MICROPROCESADORES de 16 y 32 bits: INTEL 80286 e INTEL 80386
A continuacin se har una descripcin general, de dos de los microprocesadores
de 16 y 32 bits, ms representativos.
1. CARACTERSTICAS GENERALES
El Intel 80286 (llamado oficialmente iAPX 286, tambin conocido como i286 o
286) es un microprocesador de 16 bits de la familia x86. Fue lanzado al mercado
por Intel el 1 de febrero de 1982. Las versiones iniciales del i286 funcionaban a 6
MHz y a 8 MHz, pero acab alcanzando una velocidad de hasta 20 MHz. El i286
fue el microprocesador ms empleado en los IBM PC y compatibles entre
mediados y finales de los aos 80.
El i286 funciona el doble de rpido que su predecesor, el Intel 8086, y puede
direccionar hasta 16 Mbytes de memoria RAM, en contraposicin a 1 Mbyte del
i8086. En mquinas DOS, esta memoria adicional solo poda ser accedida a travs
de emulacin de memoria expandida previamente habilitada mediante software la
memoria extendida. De todos modos, pocos ordenadores basados en el i286
tuvieron ms de 1 Mbyte de memoria.
Fuente: Internet
El i286 fue diseado para ejecutar aplicaciones multitarea, incluyendo
comunicaciones, control de procesos en tiempo real y sistemas multiusuario. A
pesar de su gran popularidad, hoy en da quedan pocos ordenadores con el i286
funcionando.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
59
El intel 80386 (i386 o 386) es un microprocesador CISC de 32 bits con
arquitectura x86. Durante su diseo se le llam 'P3', debido a que era el prototipo
de la tercera generacin x86. El i386 fue empleado como la unidad central de
proceso de muchos ordenadores personales desde mediados de los aos 80
hasta principios de los 90.
El procesador i386 fue lanzado al mercado el 16 de octubre de 1985. El i386
aadi una arquitectura de 32 bits y una unidad de translacin de pginas, lo que
hizo mucho ms sencillo implementar sistemas operativos que emplearan
memoria virtual.
Debido al alto grado de compatibilidad, la arquitectura del conjunto de
procesadores compatibles con el i386 suele ser llamada arquitectura i386. El
conjunto de instrucciones para dicha arquitectura se conoce actualmente como
IA-32.
Fuente: Internet (answers.com/topic/intel-i386-jpg)
Despus de que comenzara la produccin del 80386, Intel introdujo el i80386SX.
El i386SX fue diseado como una versin econmica del i386. Los i386SX, como
todos los i386, tienen una arquitectura de 32 bits, pero se comunican con el
exterior mediante un bus externo de 16 bits. Esto hace que sean el doble de lentos
al acceder al exterior, pero por el contrario el diseo los circuitos auxiliares del
microprocesador es mucho ms sencillo. El i386 original fue renombrado a Intel
80386DX para evitar la confusin.
Desde un punto de vista comercial, el i386 fue importante debido a que fue el
primer microprocesador disponible desde una nica fuente.
2. FUNCIONES Y DIAGRAMA DE PINES
a) i80286
La siguiente figura presenta la asignacin de terminales del microprocesador
80286. La descripcin de sus pines ms importantes se har en conjunto con el
microprocesador i80386DX.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
60
b) i80386
Al igual que en las versiones anteriores de los microprocesadores de la familia
Intel, el 80386 requiere solamente una fuente de alimentacin de +5V. La corriente
promedio de la fuente de alimentacin es 550 mA para la versin de 25MHz,
500mA para la versin de 20MHz y 450mA para la versin de 16MHz.
Este dispositivo contiene mltiples conexiones de V
cc
y V
ss
, las cules deben
estar conectadas, respectivamente, a +5V y tierra para una correcta operacin.
Algunas terminales estn etiquetadas como N/C y no deben ser conectadas.
Cada terminal de salida del 80386 es capaz de proporcionar 4mA (conexiones de
direccin y datos) o 5mA (otras conexiones). Esto representa un incremento en la
corriente de salida en comparacin con los 2mA disponibles en los terminales de
salida de los anteriores 8086, 8088 y 80286. Cada Terminal de entrada representa
una carga pequea, requiriendo aproximadamente 10 A de corriente. En algunos
sistemas, exceptuando a los ms pequeos, estos niveles de corriente requieren
buffers de bus.
READY
CLK
RESET
S0
S1
M/IO
LOCK
NMI
INTR
HOLD
HOLDA
ERROR
BUSY
PERECQ
PEACK
COD/INTA
CAP
D4
D5
D6
D7
D8
D9
D10
D11
D12
D13
D14
D15
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
A16
A17
A18
A19
A20
A21
A22
A23
BHE
D0
D1
D2
D3
80286
34
33
32
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
8
7
1
36
38
40
42
63
31
29
5
4
67
68
59
57
64
65
53
54
61
6
66
52
44
46
48
50
37
39
41
43
45
47
49
51
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
61
La siguiente figura muestra la asignacin de terminales del microprocesador
80386DX. El 80386DX est encapsulado en un empaque PGA (arreglo reticular de
terminales) de 132 pines.
Fuente: Internet
A continuacin se presenta la funcin de cada grupo de terminales del 80386DX:
A31-32: Las conexiones del bus de direcciones permiten acceder a
cualquiera de las localidades de memoria de 1GX32 bits encontradas en el
sistema de memoria de los 80386. Las seales A
0
y A
1
son codificadas en
las seales de habilitacin de bus de 32 bits. Debido a que el 80386SX
posee un bus de datos de 16 bits en vez de uno de 32, las seales de
seleccin de banco son sustituidas por BHE y BLE . La seal BHE habilita
la mitad superior del bus de datos; la seal BLE habilita la mitad inferior del
bus de datos.
D31-D0: Las conexiones del bus de datos transfieren datos entre el
microprocesador y su sistema de memoria y E/S.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
62
0 3 BE BE : Las seales de habilitacin de banco seleccionan el acceso de
un byte, una palabra, o doble palabra de datos. El microprocesador genera
internamente estas seales a partir de los bits de direccin A
1
y A
0
.
M/ IO: El Terminal de memoria/ES selecciona un dispositivo de memoria
cuando tiene un valor 1 lgico, o un dispositivo de E/S cuando tiene un
valor de 0 lgico. Durante la operacin de E/S, el bus de direcciones
contiene una direccin de E/S de 16 bits en las conexiones de direccin
A15-A2.
W/ R : Escritura/lectura indica que el ciclo de bus actual es de escritura
cuando contiene 1 lgico, o de lectura cuando contiene un 0 lgico.
ADS : El pulso de direccionamiento est activo cuando el 80386 haya
emitido una direccin vlida de memoria o de E/S. Esta seal es combinada
con la seal W/ R para generar las seales separadas de lectura y escritura
existentes en los sistemas anteriores, basados en los microprocesadores
8086 y 80286.
RESET: la restauracin inicializa al 80386, que comienza a ejecutar el
software a partir de la localidad de memoria FFFFFFF0H. El 80386 es
restaurado en el modo real, y las 12 lneas de direccin ms significativas
permanecen con el valor de 1 lgico (FFFH), hasta que un salto lejano o
llamada lejana es ejecutada. Esto establece la compatibilidad con los
microprocesadores anteriores.
CLK2: El reloj por 2 es alimentado por una seal de reloj que tiene una
frecuencia igual al doble de la frecuencia de operacin del 80386.
READY : Ready controla el nmero de estados de espera insertados en un
ciclo de acceso para aumentar el tiempo de acceso a memoria.
LOCK : El Terminal de candado asume un valor 0 lgico siempre que una
instruccin tenga el prefijo LOCK. Esto se utiliza con mayor frecuencia
durante los accesos de DMA.
D/ C : Datos/control indica que el bus de datos contiene datos para, o desde
la memoria o E/S cuando tiene un valor 1 lgico. Si D/ C es un 0 lgico, el
microprocesador es detenido o ejecuta una aceptacin de interrupcin.
16 BS : El tamao de bus 16 selecciona ya sea un bus de datos de 32 bits
( 16 BS =1), o un bus de datos de 16bits ( 16 BS =0).
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
63
NA: Siguiente direccin ocasiona que el 80386 emita la direccin de la
siguiente instruccin, o a los datos del ciclo de bus actual.
HOLD: Detencin solicita una accin de DMA.
HOLDA: La solicitud de coprocesador pide al 80386 que ceda el control, y
es una conexin directa al coprocesador aritmtico 80387.
PEREQ: Reconocimiento de detencin indica que el 80386 est
actualmente en una condicin de detencin.
BUSY : Ocupado es una entrada utilizada por la instruccin WAIT o FWAIT
que espera a que el coprocesador se desocupe. Esta es tambin una
conexin directa entre el 80387 y el 80386.
ERROR: indica al microprocesador que el coprocesador ha detectado un
error.
INTR: es utilizada por los circuitos externos para solicitar una interrupcin.
NMI: Una interrupcin no enmascarable es solicitada igual que en las
versiones anteriores del microprocesador.
3. ARQUITECTURA INTERNA
a) i80286
La siguiente figura muestra el diagrama de bloques interno del microprocesador
80286. Este microprocesador no incorpora perifricos internos; en lugar de ello,
contiene una unidad de administracin de memoria (MMU), referida como unidad
de direccionamiento en el diagrama de bloques.
Las terminales A
23
-A
0
, BUSY , CAP, ERROR, PEREQ y PEACK son terminales
nuevas o adicionales que no aparecen en el microprocesador 8086. Las seales
BUSY , CAP, ERROR, PEREQ y PEACK son utilizadas con la extensin del
microprocesador, o coprocesador, del cual el 80387 es un ejemplo. El bus de
direcciones es de 24 bits para controlar los 16 MB de memoria fsica.
Las unidades bsicas del microprocesador se conservan, aunque su complejidad y
rendimiento han aumentado considerablemente. ( comparados con los anteriores
microprocesadores de 8 bits )
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
64
El conjunto de registros del i80286 se describe a continuacin. Cabe anotar que
casi todos los registros son iguales a los utilizados por los microprocesadores
8086/8088 y 80186/80188. Sin embargo se observa que el 80286 contiene un
registro adicional de palabra de status de mquina (MSW), en donde el bit MSW
controla si el 80286 est en el modo real o protegido.
AH AL
DH DL
CH CL
BH BL
Registro base
Registro ndice
Registro ndice
Puntero de pila
Sealizadores
puntero de
instruccin
palabra status
mquina
Selector de segmento
de cdigo
Selector de segmento
de datos
Selector de segmento
de pila
Selector de segmento
extra
Unidad de ejecucin (EU)
Unidad de
instrucciones (IU)
Unidad de bus (BU)
Unidad de direccionamiento (AU)
Bases de segmento
Tamaos de segmento Verificador de
lmites de segmento
Sumador de
direccin fsica
Sumador de
desplazamiento
registros
ALU
control
Registros de direcciones y
controladores
Unidad de
lectura
adelantada
Interfaz de
extensin del
procesador
Control del bus
Receptor/ transmisor de
datos
Cola de lectura adelantada
de 6 bytes
Cola de 3
instrucciones
decodificadas
Decodificador
de
instrucciones
NMI INTR ERROR BUSY
Funciones
especiales
de registro
Nombre de
registro de
16 bits
7 0 7 0
Registros generales
Registro de status y control
Byte
direccionable
(nombre de
registro de 8
bits) registro base
AX
DX
CX
BX
BP
SI
DI
SP
15 0 15 0
Registro de segmentos
CS
DS
SS
ES
F
IP
MSW
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
65
El registro de sealizadores del 80286 se aprecia a continuacin.
NT IOPL OF DF IF TF SF ZF AF PF CF
Los principales sealizadores son:
bit nmero nombre
11 desbordamiento
10 sealizador de direccin
9 habilita interrupcin
8 sealizador de trampa
7 signo
6 cero
4 arrastre auxiliar
2 paridad
0 arrastre
b) I80386
La siguiente figura presenta el diagrama de bloques de la estructura interna del
microprocesador 80386DX. El i80386DX direcciona 4GB de memoria por medio de
su bus de direcciones de 32 bits y tiene un bus de datos de 32 bits. El 80386SX es
ms parecido al 80286, y direcciona 16MB de memoria con su bus de direcciones
de 24 bits y cuenta con un bus de datos de 16 bits. El 80386SX es encontrado en
muchas aplicaciones que no requieren una versin completa del bus de 32 bits.
El sistema de memoria
El sistema de memoria fsica del 80386DX tiene una capacidad de 4GB y es
diseccionado como tal. Si se recurre a direccionamiento virtual, la unidad de
administracin de memoria y los descriptores mapean 64 TB en los 4 GB de
espacio fsico.
La memoria est dividida en cuatro bancos de memoria de 8 bits, y cada uno con
una capacidad hasta 1 GB de memoria. Esta organizacin de memoria de 32 bits
permite el acceso directo a bytes, palabras o dobles palabras de datos de
memoria. El 80386DX transfiere un nmero de hasta 32 bits en un solo ciclo de
memoria, mientras el 8088 requiere cuatro ciclos para completar la misma
transferencia, y los 80286 y el 80386SX requieren dos ciclos. Actualmente, el
ancho de datos es importante, especialmente para el manejo de nmeros de punto
flotante con precisin sencilla de 32 bits.
15 14 13-12 11 10 9 8 7 6 5 4 3 2 1 0
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
66
Normalmente, el software de alto nivel utiliza nmeros de punto flotante para el
almacenamiento de datos, as que las localidades de memoria de 32 bits aceleran
la ejecucin de software de alto nivel, sacando as el mximo provecho de esta
memoria ms ancha.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
67
La CPU del i80386 contiene registros en las siguientes categoras:
Registros de propsito general.
Registros de segmento.
Puntero de instruccin y sealizadores.
Registros de control.
Registros de direcciones del sistema.
Registros de depuracin.
Registros de prueba.
Los registros de propsito general de 32 bits, los registros selectores de
segmento de 16 bits y el puntero de instrucciones y sealizadores se muestran en
la siguiente figura.
Reg. Direccin y Generales de datos
31 16 15 0
AX
BX
CX
DX
SI
DI
BP
SP
Sealizadores
15 0
CS
SS
DS
ES
FS
GS
Cdigo
de pila
puntero de instruccin y registro de sealizadores
31 16 15 0
IP
sealizadores
dato
Reservado VM RF 0 NT
IO
PL
OF DF IF TF SF ZF 0 AF 0 CF
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
68
bit nombre
VM modo virtual
RF sealizador de resumen
NT sealizador de tareas anidadas
IOPL nivel de privilegio de E/S
OF desbordamiento
DF sealizador de direccin
IF habilitacin de interrupcin
TF sealizador de trampa
SF sealizador de signo
ZF sealizador de cero
AF arrastre auxiliar
PF sealizador de paridad
CF sealizador de arrastre
Los otros tipos de registro (control, direcciones del sistema, depuracin y prueba)
son ms usados por el software del sistema. Por ejemplo, el registro MSW del
80286 es parte del registro de control de la CPU del 80386.
Pipelines y cachs. La memoria cach es una memoria buffer que permite que el
80386 funcione ms eficientemente con velocidades de DRAM ms bajas. Un
pipeline es una forma especial de manejar accesos a memoria con tiempos de
acceso de 50 ns o menos para operar a mxima velocidad. De hecho actualmente
las DRAMs ms rpidas tienen un tiempo de acceso de 60 ns o mayor. Esto
significa que debe encontrarse alguna tcnica para establecer una interfaz con
estos dispositivos de memoria, que son ms lentos a lo requerido por el
microprocesador. Tres tcnicas estn disponibles: memoria entrelazada, uso de
memoria cach y un pipeline.
Cuando una instruccin es obtenida de la memoria, el microprocesador dispone
frecuentemente de un tiempo adicional antes de leer la siguiente instruccin.
Durante este tiempo adicional, la direccin de la siguiente instruccin es emitida
por el bus de direcciones en forma anticipada. Este tiempo adicional (un perodo
de reloj) es utilizado para emitir un mayor tiempo de acceso a componentes de
memoria ms lentos. En trminos generales, el pipeline es una caracterstica que
reduce costos y que disminuye el tiempo de acceso requerido por el sistema de
memoria en sistemas de baja velocidad.
Una cach es un sistema de memoria de alta velocidad ubicado entre el
microprocesador y el sistema de memoria DRAM. Los dispositivos de memoria
cach son normalmente componentes de memoria RAM esttica, con tiempos de
acceso menores a 25 ns. La capacidad de la memoria cach est determinada
ms por la aplicacin, que por microprocesador. Si un programa es pequeo y
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
69
hace referencia a pocos datos de memoria, una cach pequea es benfica. Si un
programa es grande y hace referencia a bloques grandes de memoria, es
recomendable que el tamao de cach sea lo ms grande posible.
Un sistema de memoria entrelazada es otro mtodo para mejorar la velocidad del
sistema. Su nica desventaja es que debido a su estructura requiere
considerablemente ms memoria. Los sistemas de memoria entrelazada existen
en algunos sistemas, para que puedan alargarse los tiempos de acceso sin
necesidad de tiempos de espera; adems requiere dos o ms conjuntos completos
de buses de direcciones y un controlador que proporcione las direcciones a cada
bus.
El sistema de E/S
El sistema de entrada y salida del 80386 es el mismo encontrado en cualquier
sistema basado en microprocesadores 8086 de la familia Intel. Si se instrumenta
una E/S aislada, existen 64 KB de espacio disponible de E/S. Con la E/S aislada,
las instrucciones IN y OUT se utilizan para transferir datos de E/S entre el
microprocesador y los dispositivos de E/S. La direccin de puerto de E/S aparece
en las conexiones A15-A2 del bus de direcciones, donde 0 3 BE BE se utilizan
para seleccionar un byte, palabra o doble palabra de datos de E/S. Si se
instrumenta la E/S ubicada en memoria, entonces el nmero de localidades de E/S
puede ser cualquier cantidad, hasta 4GB. Con la E/S ubicada en memoria,
cualquier instruccin que transfiera datos entre el microprocesador y el sistema de
memoria se puede utilizar para transferencias de E/S, porque el dispositivo de E/S
es tratado como un dispositivo de memoria.
La nica caracterstica agregada al 80386, con respecto a la E/S, es la informacin
del privilegio de E/S, aadida al final del TSS cuando el 80386 opera en modo
protegido. Una localidad de E/S puede bloquearse o inhibirse en el modo
protegido, entonces si una localidad de E/S bloqueada es direccionada, se genera
una interrupcin. Este esquema es agregado para que el acceso a la E/S pueda
ser prohibido en un ambiente multiusuario. El bloqueo es una extensin de la
operacin en modo protegido, como lo son los niveles de privilegio.
Seales de control de memoria y E/S
La memoria y la E/S se controlan con seales separadas. La seal M/ IO indica si
la transferencia de datos es entre el microprocesador y la memoria (M/ IO=1) o la
E/S (M/ IO=0). Adicionalmente a M/ IO, la memoria y los sistemas de E/S deben
leer o escribir datos. La seal W/
R
es un 0 lgico para una operacin de lectura, y
un 1 lgico para una operacin de escritura. La seal ADS se utiliza para calificar
las seales de control W/
R
y M/ IO. ste es un cambio con respecto a los
anteriores microprocesadores que no utilizaban a ADS para la calificacin.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
70
4. MODOS DE DIRECCIONAMIENTO
La CPU ( i80286 o i80386 ) puede operar en dos modos. El primero es el modo de
direcciones reales, en el cual puede acceder hasta 1 Mbyte de memoria, igual
que los microprocesadores 8086 y 80186. El segundo es el modo de direcciones
virtuales protegidas, que tambin se denomina modo protegido. En el modo
protegido, la CPU formatea 1 Gbyte de direcciones virtuales por tarea, en un
espacio de direcciones reales de 16 Mbytes. El modo protegido se denomina as
ya que proporciona proteccin de memoria para aislar a los datos y programas de
las tareas individuales. Esto permite la multitarea y una fcil conexin en red de
los computadores. El modo protegido proporciona acceso a la gestin de memoria,
paginacin y capacidades de privilegio de CPU.
La memoria virtual es un espacio de memoria mayor (1GB para el 80286) en un
espacio de memoria fsica mucho ms pequeo (16 MB para el 80286), lo que
permite que un sistema muy grande pueda ser ejecutado en sistemas de memoria
fsica menor. Esto es realizado por medio de un intercambio de datos y programas
entre el sistema de memoria de disco duro y la memoria fsica. El direccionamiento
de un sistema de memoria de 1GB es realizado por los descriptores en el
microprocesador 80286. Cada descriptor del 80286 describe un segmento de
memoria de 64KB. El i80286 acepta hasta 16K descriptores, lo que corresponde a
1GB de memoria.
Los descriptores describen al segmento de memoria en el modo protegido. El
80286 tiene descriptores que definen cdigos, datos, segmentos de pila,
interrupciones, procedimientos y tareas. Los accesos a descriptores son
realizados cargando un registro de segmento con un selector en el modo
protegido. El selector accede a un descriptor que describe un rea de memoria.
i80386
El microprocesador 80386 tambin tiene dos modos de operacin: el modo de
direcciones reales (modo real) y el modo de direcciones virtuales protegidas
(modo protegido). En el modo real, el 80386 opera como un microprocesador 8086
muy rpido. En el modo protegido proporciona acceso a la gestin de memoria,
paginacin y capacidades de privilegio de la CPU.
Para asegurar un alto rendimiento, la interfaz del bus del 80386 ofrece
encauzamiento de direcciones (pipeling), bus dinmico de datos y seales directas
de habilitacin de bytes para cada byte del bus de datos. El microprocesador
puede ejecutar de esta forma unas tres millones de instrucciones por segundo.
Adems soporta diferentes tipos de datos. Entre stos se encuentran: bit, campo
de bits, cadena de bits, byte, entero, entero grande, cadruple palabra con signo,
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
71
cadena, BCD y BCD empaquetado. Cuando el 80386 se conecta al coprocesador
numrico 80387, se soportan los nmeros con signo en punto flotante.
5. REPERTORIO DE INSTRUCCIONES
A continuacin se muestra una seleccin del conjunto de instrucciones de los
microprocesadores 80286 y 80386, el cual contiene el cdigo de operacin
nemotcnico y una breve descripcin del propsito de la instruccin.
ARPL (ajusta el nivel de privilegio solicitado)
Formato: ARPL reg, reg.
0 1 1 0 0 0 1 1
o o r r r m m m
80286 80386
Ciclos 10 20
sealizadores Z
BOUND (verifica arreglo contra lmite)
Formato: BOUND reg, mem.
0 1 1 0 0 0 1 0
o o r r r m m m
80286 80386
Ciclos 13 10
sealizadores ninguno
BSF (exploracin de bit en sentido directo)
Formato: BSF reg, reg.
0 0 0 0 1 1 1 1
1 0 1 1 1 1 0 0
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
72
80286 80386
Ciclos - 10+3n
sealizadores Z
BT (verificacin de bit)
Formato: BT reg, inm8.
0 0 0 0 1 1 1 1
1 0 1 1 1 0 1 0
80286 80386
Ciclos - 3
sealizadores C
CALL (llamar procedimiento(subrutina))
Formato: Call etiqueta.
1 1 1 0 1 0 0 0
80286 80386
Ciclos 7 3
sealizadores ninguno
CMP (compara)
Formato: CMP reg, reg.
0 0 1 1 1 0 d w
80286 80386
Ciclos 2 2
sealizadores S, Z, A, P, C.
CWDE (convierte palabra en doble palabra extendida)
Formato: CWDE
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
73
1 0 0 1 1 0 0 0
80286 80386
Ciclos - 3
sealizadores ninguno
ENTER (crea un marco de pila)
Formato: ENTER inm, 0.
1 1 0 0 1 0 0 0
80286 80386
Ciclos 11 10
sealizadores ninguno
HLT (para)
Formato: HLT
1 1 1 1 0 1 0 0
IN (Lee dato de puerto)
Formato: IN acc, pt.
1 1 1 0 0 1 0 w
puerto
80286 80386
Ciclos 5 12
sealizadores ninguno
JMP (salta)
Formato: JMP etiqueta
80286 80386
Ciclos 2 5
sealizadores ninguno
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
74
1 1 1 0 1 0 1 1
80286 80386
Ciclos 7 7
sealizadores ninguno
LFS (carga apuntador lejano a FS y registro)
Formato: LFS reg, mem.
0 0 0 0 1 1 1 1
1 0 1 1 0 1 0 0
dato
80286 80386
Ciclos - 7
sealizadores ninguno
LOOP (repite hasta que CX=0 o ECX=0)
Formato: LOOP etiqueta.
1 1 1 0 0 0 1 0
dato
80286 80386
Ciclos 8/4 11
sealizadores ninguno
MOVS (mueve dato de cadena)
Formato: MOVSB
1 0 1 0 0 1 0 w
80286 80386
Ciclos 5 7
sealizadores ninguno
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
75
OUT (escribe dato a puerto)
Formato: OUT pt, acc.
1 1 1 0 0 1 1 w
puerto
80286 80386
Ciclos 3 10
sealizadores ninguno
POP (recupera dato de pila)
Formato: POP reg
0 1 0 1 1 r r r
80286 80386
Ciclos 5 4
sealizadores ninguno
RET (regreso de procedimiento)
Formato: RET
1 1 0 0 0 0 1 1
80286 80386
Ciclos 11 10
sealizadores ninguno
SET condition (establece condicionalmente)
Formato: SETcnd, reg8.
0 0 0 0 1 1 1 1
1 0 0 1 c c c c
o o 0 0 0 m m m
80286 80386
Ciclos - 4
sealizadores ninguno
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
76
SMSW (Almacena palabra de estado de mquina (80286))
Formato: SMSW reg.
0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 1
o o 1 0 0 m m m
80286 80386
Ciclos 2 10
sealizadores ninguno
TEST (verifica operandos (comparacin lgica))
Formato: TEST reg,reg.
0 1 0 1 1 r r r
80286 80386
Ciclos 2 2
sealizadores C=0,P, Z, S
WAIT (espera al coprocesador)
Formato: WAIT
1 0 0 1 1 0 1 1
80286 80386
Ciclos 3 6
sealizadores ninguno
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
77
UNIDAD 2
FUNDAMENTOS DE MICROCONTROLADORES
CONTENIDOS
Captulo 1. Introduccin al Microcontrolador
1. Generalidades del microprocesador
2. Estructura interna
3. Familias de microcontroladores
Captulo 2. Microcontroladores de 8 bits
1. Caractersticas Generales
2. Funciones y diagrama de pines
3. Arquitectura interna
4. Modos de direccionamiento
5. Repertorio de instrucciones
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
78
CAPTULO 1
INTRODUCCIN AL MICROCONTROLADOR
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
79
1. GENERALIDADES DEL MICROCONTROLADOR
A partir de 1980, aproximadamente, aparece en el mundo de la electrnica un
nuevo componente para el control, medicin e instrumentacin, al que llamaron
microcomputador en un solo chip, o de forma ms exacta microcontrolador.
Un microcontrolador es un circuito integrado que contiene en su interior toda la
estructura de un computador, es decir, la Unidad Central de Procesamiento
( CPU ), la memoria de lectura y escritura ( RAM ), la memoria de slo lectura
( ROM ) y los puertos o circuitos de entrada / salida ( I / O ), como se aprecia en la
siguiente figura.
Los microcontroladores negocian su velocidad por la flexibilidad y facilidad de uso.
Sus aplicaciones son mltiples y estn encaminadas hacia el control de
dispositivos y pequeos procesos.
Los microcontroladores se suelen confundir constantemente con los
microprocesadores, por el hecho que contienen internamente una CPU. Sin
embargo se puede afirmar que aunque son menos poderosos que un
microprocesador, su prctico uso los hace apropiados en el desarrollo de
aplicaciones de mediana complejidad.
Las principales caractersticas que diferencian un microcontrolador de un
microprocesador son:
Los microcontroladores son sistemas cerrados, ya que contienen todos sus
elementos internos, con caractersticas fijas, y dentro de un solo chip; mientras
que los microprocesadores son sistemas abiertos, ya que tienen las lneas de los
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
80
buses de datos, direcciones y control al exterior, para la conexin con elementos
de expansin como memorias, interfaces de E/S, etc.
Los microcontroladores son de propsito especfico, es decir, son programados
para realizar una nica tarea, mientras que los microprocesadores son de
propsito general, ya que realizan mltiples tareas en funcin de los programas
que contenga.
La memoria que maneja un microcontrolador es pequea pero adecuada para
las aplicaciones de control e instrumentacin que realiza, en donde no se necesita
almacenar grandes cantidades de informacin. Un microprocesador puede
manejar grandes volmenes de informacin ya que ejecuta programas de alto
nivel.
Cuando se trabaja con microcontroladores no es necesario el diseo de
circuitos decodificadores de direcciones, ya que los mapas de memoria y de
puertos estn implcitos en el microcontrolador. Esto trae como consecuencia la
simplificacin de los circuitos impresos en el desarrollo de proyectos.
Si se quieren emplear estos elementos en algn proyecto, se deben tener en
cuenta las anteriores diferencias, ya que cada parte tiene sus ventajas y su
ubicacin especial dentro de las aplicaciones electrnicas.
Un microcontrolador, tpicamente consta de:
CPU o procesador: Es el cerebro del sistema, el cual procesa todos los datos que
viajan a lo largo del bus.
Memorias: Est formada por una no voltil (ROM, EEPROM, FLASH) donde se
almacenan los programas y una voltil (RAM) donde se almacenan los datos.
Reloj principal: Normalmente todos los microcontroladores necesitan de circuitos
osciladores para su funcionamiento.
Puertos E/S (Entrada/Salida): Son los que soportan las lneas que comunican al
microcontrolador con los perifricos externos.
Mdulos especiales: Son aquellos mdulos que permiten realizar tareas
especficas dentro del microcontrolador y que le dan el valor agregado al mismo.
Entre los ms comunes se tienen:
Temporizadores: para controlar periodos de tiempo.
Contadores de eventos
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
81
Convertidores Analgico/Digital y Digital/Analgico
Comparadores analgicos
Moduladores de ancho de impulsos.
Puertos de comunicacin: Tanto serie como paralelo.
Control de interrupciones
Debido a que los microcontroladores incluyen estas caractersticas especficas
slo para algunos modelos, su costo es relativamente bajo y depende de la
aplicacin que se les quiera dar.
El mercado de los microcontroladores est creciendo cada ao y parece no tener
barreras. Los microcontroladores a menudo se encuentran en aplicaciones
domsticas (microondas, refrigeradores, televisin, equipos de msica),
computadores con sus componentes (impresoras, mdems, lectores de discos),
automviles (ingeniera de control, diagnstico, control de climatizacin), control
medioambiental (invernaderos, fbricas, casas), instrumentacin, aeronutica, y
miles de usos ms. En muchos componentes podemos encontrar ms de un
microcontrolador.
2. ESTRUCTURA INTERNA
Es de gran importancia conocer la estructura interna de un microcontrolador. Es
por eso que abordaremos este tema en la presente seccin.
Tipos de Arquitecturas de Microcontroladores
a) Arquitectura Von Neumann
La arquitectura tradicional de computadoras y microprocesadores est basada en
la arquitectura Von Neumann, en la cual la unidad central de procesos (CPU), est
conectada a una memoria nica donde se guardan las instrucciones del programa
y los datos.
El tamao de la unidad de datos e instrucciones est dado por el ancho del bus
que comunica la memoria con la CPU. As un microprocesador de 8 bits ( con un
CPU MEMORIA
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
82
bus de 8 bits ) tendr que manejar datos e instrucciones de una o ms unidades
de 8 bits de longitud. Si tiene que acceder a una instruccin o dato de ms de un
byte de longitud, tendr que realizar ms de un acceso a la memoria; y el tener un
nico bus hace que la CPU sea ms lenta en su respuesta, ya que no puede
buscar en memoria una nueva instruccin mientras no finalicen las transferencias
de datos de la instruccin anterior.
Resumiendo todo lo anterior, las principales limitaciones que se tienen con la
arquitectura Von Neumann son:
La limitacin de la longitud de las instrucciones por el bus de datos, que hace
que la CPU tenga que realizar varios accesos a memoria para buscar
instrucciones complejas.
La limitacin de la velocidad de operacin a causa del bus nico para datos e
instrucciones que no deja acceder simultneamente a unos y otras, lo cual impide
superponer ambos tiempos de acceso.
b) Arquitectura Harvard
La arquitectura Harvard tiene la unidad central de proceso (CPU) conectada a dos
memorias (una con las instrucciones y otra con los datos) por medio de dos buses
diferentes. Una de las memorias contiene solamente las instrucciones del
programa (Memoria de Programa), y la otra slo almacena datos (Memoria de
Datos). Ambos buses son totalmente independientes y pueden ser de distintos
anchos.
Para un procesador de Set de Instrucciones Reducido, o RISC (Reduced
Instruccin Set Computer), el set de instrucciones y el bus de memoria de
programa pueden disearse de tal manera que todas las instrucciones tengan una
sola posicin de memoria de programa de longitud. Adems, al ser los buses
independientes, la CPU puede acceder a los datos para completar la ejecucin de
una instruccin, y al mismo tiempo leer la siguiente instruccin a ejecutar.
Las ventajas de esta arquitectura 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
CPU
Memoria de datos
Memoria de
programa
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
83
de memoria de programa, logrando as mayor velocidad y menor longitud de
programa.
El tiempo de acceso a las instrucciones puede superponerse con el de los
datos, logrando una mayor velocidad en cada operacin.
Estructura y Elementos Internos de los Microcontroladores
CPU
Es el elemento ms importante del microcontrolador y determina sus principales
caractersticas, tanto a nivel hardware como software. Se encarga, entre otras
funciones, de direccionar la memoria de instrucciones, de recibir el cdigo de la
instruccin en curso, decodificarlo y ejecutar de la operacin que implica la
instruccin, as como tambin de la bsqueda de los operandos y el
almacenamiento del resultado.
Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los
procesadores actuales:
a) CISC (Computadores de Juego de Instrucciones Complejo): un gran nmero de
procesadores usados en los microcontroladores estn basados en la filosofa
CISC. Generalmente disponen de ms de 80 instrucciones mquina en su
repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo
muchos ciclos para su ejecucin. Una ventaja de los procesadores CISC es que
ofrecen al programador instrucciones complejas que actan como macros.
b) RISC (Computadores de Juego de Instrucciones Reducido): en estos
procesadores el repertorio de instrucciones mquina es muy reducido y las
instrucciones son simples, y generalmente, se ejecutan en un ciclo. La sencillez y
rapidez de las instrucciones permiten optimizar el hardware y el software del
procesador.
c) SISC (Computadores de Juego de Instrucciones Especfico): en los
microcontroladores destinados a aplicaciones muy concretas, el juego de
instrucciones, adems de ser reducido, es especfico, es decir, las instrucciones
se adaptan a las necesidades de la aplicacin prevista.
Memoria
En los microcontroladores la memoria de instrucciones y datos est integrada en
el propio chip. Una parte debe ser no voltil, tipo ROM, y se destina a contener el
programa de instrucciones que gobierna la aplicacin. La otra parte de la memoria
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
84
ser tipo RAM, voltil, y se destina a guardar las variables y los datos que se
emplean en la ejecucin del programa.
Hay dos particularidades referentes a las memorias, que diferencian a los
microcontroladores de las computadoras personales:
No existen sistemas de almacenamiento masivo, como discos duros, ya que el
microcontrolador slo se destina a una tarea concreta y su memoria ROM debe
almacenar un nico programa de trabajo.
La memoria RAM en los microcontroladores es de poca capacidad, pues slo
debe contener las variables y los cambios de informacin que se produzcan en el
transcurso del programa.
Los usuarios de computadoras personales estn habituados a manejar Megabytes
y Gigabytes de memoria, pero en el trabajo con microcontroladores se tienen
capacidades de ROM comprendidas entre 512 bytes y 8 Kbytes y de RAM entre
20 y 512 bytes.
Segn el tipo de memoria ROM que dispongan los microcontroladores, la
aplicacin y utilizacin de los mismos es diferente. A continuacin se describen las
principales versiones de memoria no voltil que se pueden encontrar en los
microcontroladores hoy en da.
a) EPROM: los microcontroladores que disponen de memoria EPROM (Erasable
Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. La
grabacin se realiza con un hardware programador 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 la EPROM a rayos ultravioleta durante
varios minutos.
b) EEPROM o E2PROM: se trata de memorias ROM 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 de un PC. Es muy cmoda y rpida su operacin de
grabado y de borrado. No necesitan de una ventana de cristal en la superficie.
Estos microcontroladores son recomendados para la enseanza y el diseo de
proyectos.
c) 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
energa y es ms pequea. A diferencia de la EEPROM, la memoria FLASH es
ms rpida y de mayor densidad.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
85
Las memorias EEPROM y FLASH son muy tiles al permitir que los
microcontroladores que las incorporan puedan ser reprogramados en circuito, es
decir, sin tener que sacar el circuito integrado de la tarjeta de operacin.
Puertos de Entrada y Salida
Los puertos de Entrada y Salida (E/S) permiten comunicar la CPU con el mundo
exterior o con otros dispositivos, a travs de interfaces. Estos puertos ocupan la
mayor parte de los pines de un microprocesador. Segn los controladores de
perifricos que posea cada modelo de microcontrolador, las lneas de E/S se
destinan a proporcionar el soporte a las seales de entrada, salida y control.
Reloj principal
Todos los microcontroladores disponen de un circuito oscilador que genera una
onda cuadrada de alta frecuencia ( impulsos de reloj ), los cules son usados en la
sincronizacin de todas las operaciones del sistema. Esta seal del reloj es el
motor del sistema y permite que el programa y los contadores avancen.
Generalmente, el circuito de reloj est incorporado en el microcontrolador y slo se
necesitan unos pocos componentes exteriores para seleccionar y estabilizar la
frecuencia de trabajo. Dichos componentes suelen ser: un cristal de cuarzo junto a
elementos pasivos, un resonador cermico o una red R-C.
Al aumentar la frecuencia de reloj se disminuye el tiempo en que se ejecutan las
instrucciones, pero ello lleva asociado un incremento en el consumo de energa y
en el calor generado.
Recursos Especiales
Cada fabricante oferta numerosas versiones de una arquitectura bsica de
microcontrolador. En algunos casos ampla las capacidades de memoria, en otras
incorpora nuevos recursos, en otras ms reduce las prestaciones al mnimo para
aplicaciones muy simples, etc. La labor del diseador es encontrar el modelo
adecuado que satisfaga todos los requerimientos de su aplicacin. De esta forma,
minimizar los costos, el hardware y el software.
Los principales recursos especficos que incorporan los microcontroladores son:
Temporizadores o Timers.
Perro guardin o Watchdog.
Proteccin ante fallo de alimentacin o Brown out.
Estado de reposo o de bajo consumo (Sleep mode).
Conversor A/D (Analgico a Digital).
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
86
Conversor D/A (Digital a Analgico).
Comparador analgico.
Modulador de anchura de impulsos o PWM (Pulse Wide Modulation).
Puertas de E/S digitales.
Puertas de comunicacin.
En la medida en que se vaya profundizando en el tema, se irn conociendo las
diferentes posibilidades que ofrecen los microcontroladores y cmo emplearlas en
el desarrollo de proyectos.
3. FAMILIAS DE MICROCONTROLADORES
Existen muchas familias fabricantes de microcontroladores, entre las ms
comunes estn:
Atmel (AVR ), Hitachi (H8), Intel de 8 bits (8XC42, MCS51, 8xC251) o Intel de 16
bits (MCS96, MXS296), National Semiconductor (COP8), Microchip, Motorola de 8
bits (68HC05, 68HC08, 68HC11) o de 16 bits (68HC12, 68HC16) o de 32 bits
(683xx ), NEC (78K), Texas Instruments (TMS370) y Zilog (Z8, Z86E02).
Sin embargo en nuestro medio se destacan slo dos de ellas: la empresa
Microchip y la empresa Motorola.
La Familia PIC
Esta familia, desarrollada por la casa Microchip, se divide en varias gamas: enana,
baja, media y alta.
Las principales diferencias entre estas gamas radica en el nmero de
instrucciones y su longitud, el nmero de puertos y funciones, lo cual se refleja en
el encapsulado, la complejidad interna y de programacin, y en el nmero de
aplicaciones.
a) Gama enana
Su principal caracterstica es su reducido tamao, al disponer todos sus
componentes de 8 pines. Se alimentan con un voltaje de corriente continua
comprendido entre 2,5 V y 5,5 V, y consumen menos de 2 mA cuando trabajan a 5
V y 4 MHz. El formato de sus instrucciones puede ser de 12 o de 14 bits y su
repertorio es de 33 o 35 instrucciones, respectivamente. En la Figura se muestra
el diagrama de pines de uno de estos PIC.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
87
Aunque los PIC enanos slo tienen 8 pines, pueden destinar hasta 6 como lneas
de E/S para los perifricos porque disponen de un oscilador interno R-C, lo cual es
una de su principales caractersticas.
En la siguiente tabla se presentan las principales caractersticas de los modelos de
esta subfamilia. En los modelos 12C5xx el tamao de las instrucciones es de 12
bits; mientras que en los 12C6xx sus instrucciones tienen 14 bits. Los modelos
12F6xx poseen memoria Flash para el programa y EEPROM para los datos.
Modelo
Mem. de
programa
Mem. de
datos
Frecuencia
Lneas
de E/S
ADC
de 8
bits
Temporizador
PIC12C508 512x12 25x8 4MHz 6 --- TRM0+WDT
PIC12C509 1024x12 41x8 4MHz 6 --- TRM0+WDT
PIC12C670 512x14 80x8 4MHz 6 --- TRM0+WDT
PIC12C671 1024x14 128x8 4MHz 6 2 TRM0+WDT
PIC12C672 2048x14 128x8 4MHz 6 4 TRM0+WDT
PIC12F680
512x12
FLASH
80x8 16x8
EEPROM
4MHz 6 4 TRM0+WDT
PIC12F681
1024x14
FLASH
80x8 16x8
EEPROM
4MHz 6 4 TRM0+WDT
b) Gama baja
Se trata de una serie de PICs de recursos limitados, pero con una de la mejores
relaciones costo/prestaciones.
Sus versiones estn encapsuladas con 18 y 28 pines y pueden alimentarse a partir
de una tensin de 2,5 V, lo que los hace ideales en las aplicaciones que funcionan
con pilas, teniendo en cuenta su bajo consumo (menos de 2 mA a 5 V y 4 MHz).
Tienen un repertorio de 33 instrucciones cuyo formato consta de 12 bits. En la
Figura se muestra el diagrama de pines de uno de estos PICs.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
88
Al igual que todos los miembros de la familia PIC16/17, los componentes de la
gama baja se caracterizan por poseer los siguientes recursos: Sistema Power On
Reset, Perro guardin (Watchdog o WDT), Cdigo de proteccin, etc. Sus
principales desventajas o limitaciones son que la pila slo tiene dos niveles y que
no admiten interrupciones.
En la siguiente tabla se presentan las principales caractersticas de los modelos de
esta subfamilia.
Modelo
Mem. de
programa
Mem. de
datos
Frecuencia
Lneas
de E/S
Temporizador pines
PIC16C52 384 25 bytes 4 MHz 12 TRM0+WDT 18
PIC16C54 512 25 bytes 20 MHz 12 TRM0+WDT 18
PIC16C55 512 24 bytes 20 MHz 20 TRM0+WDT 28
PIC16C56 1K 25 bytes 20 MHz 12 TRM0+WDT 18
PIC16C57 2K 72 bytes 20 MHz 20 TRM0+WDT 28
PIC16C58A 2K 73 bytes 20 MHz 12 TRM0+WDT 18
c) Gama media
Es la gama ms variada y completa de los PIC. Abarca modelos con encapsulado
desde 18 pines hasta 68, cubriendo varias opciones que integran diversos
perifricos.
En esta gama sus componentes aaden nuevas prestaciones a las que posean
los de la gama baja, hacindoles ms adecuados en las aplicaciones complejas.
Admiten interrupciones, poseen comparadores de magnitudes analgicas,
convertidores A/D, puertos serie y diversos temporizadores. El repertorio de
instrucciones es de 35, compatible con el de la gama baja.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
89
Sus distintos modelos contienen todos los recursos que se precisan en las
aplicaciones de los microcontroladores de 8 bits. Tambin dispone de
interrupciones y una pila de 8 niveles que permite el anidamiento de subrutinas.
En la siguiente tabla se presentan las principales caractersticas de algunos de los
modelos de esta familia.
Modelo PINES I / O EPROM RAM Interrup Voltaje (V)
PIC16C61 18 13 1Kx14 36x8 3 3.0-6.0
PIC16C62 28 22 2Kx14 128x8 10 2.5-6.0
PIC16C63 28 22 4Kx14 192x8 10 3.0-6.0
PIC16C64 40 33 2Kx14 128x8 8 3.0-6.0
PIC16C65 40 33 4Kx14 192x8 11 3.0-6.0
PIC16C620 18 13 512x14 80x8 4 3.0-6.0
PIC16C621 18 13 1Kx14 80x8 4 3.0-6.0
PIC16C622 18 13 2Kx14 128x8 4 3.0-6.0
Modelo PINES I / O EPROM RAM Interrup Canales A / D
PIC16C70 18 13 512x14 36x8 4 4 canales
PIC16C71 18 13 1Kx14 36x8 4 4 canales
PIC16C72 28 22 2Kx14 128x8 8 5 canales
PIC16C73 28 22 4Kx14 192x8 11 5 canales
PIC16C74 40 33 4Kx14 192x8 12 8 canales
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
90
d) Gama alta: PIC17CXXX
En esta gama se alcanzan las 58 instrucciones de 16 bits en el repertorio y sus
modelos disponen de un sistema de gestin de interrupciones vectorizadas muy
potente. Tambin incluyen variados controladores de perifricos, puertos de
comunicacin serie y paralelo con elementos externos, un multiplicador hardware
de gran velocidad y mayores capacidades de memoria, que alcanza los 8K
palabras en la memoria de instrucciones y 454 bytes en la memoria de datos.
Quizs la caracterstica ms destacable de los componentes de esta gama es su
arquitectura abierta, que consiste en la posibilidad de ampliacin del
microcontrolador con elementos externos. Para este fin, los pines comunican al
exterior las lneas de los buses de datos, direcciones y control, a las que se
conectan memorias o controladores de perifricos. Esta facultad obliga a estos
componentes a tener un elevado nmero de pines comprendido entre 40 y 44.
Esta filosofa de construccin del sistema es la que se empleaba en los
microprocesadores y no suele ser una prctica habitual cuando se emplean
microcontroladores.
En la siguiente tabla se presentan las caractersticas ms relevantes de los
modelos de esta gama, que slo se utilizan en aplicaciones espaciales.
Modelo
Mem. de
programa
RAM / EEPROM
Mem. de
programa
Mem. de
datos
INT
Lneas
de E/S
Temporizador
PIC16F83 36 64 512X14 FLASH 25 bytes 4 13 TRM0+WDT
PIC16C84 36 64
1KX14
EEPROM
25 bytes 4 13 TRM0+WDT
PIC16F84 68 64 1KX14 FLASH 25 bytes 4 13 TRM0+WDT
Modelo CAP PWM
Multiplica
hardware
Mem. de
programa
Mem. de
datos
RAM
Lneas
de E/S
Temp. pines
PIC17C42A 2 2 8X8 2KX16 232 33 4+WDT 18
PIC17C43 2 2 8X8 4KX16 454 33 4+WDT 18
PIC17C44 2 2 8X8 8KX16 454 33 4+WDT 18
PIC17C52 4 1 8X8 8KX16 454 50 4+WDT 18
PIC17C56 4 1 8X8 16KX16 902 50 4+WDT 28
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
91
La Familia Freescale
Esta familia, desarrollada por la casa Motorola, se divide en las siguientes
subfamilias:
a) Familia HC08
Son microcontroladores de propsito general. Cada miembro de esta familia
cuenta con diferentes perifricos internos, pero con una CPU comn que permite
migrar aplicaciones entre ellos, facilitando con ello el diseo.
El 68HC08 es un microcontrolador de 8 bits y arquitectura Von Neumann, con un
solo bloque de memoria. Es conocido tambin simplemente por HC08.
Entre los perifricos internos con los que cuentan estos microcontroladores, estn:
conversores analgicos-digitales, mdulo de control de tiempos y sistemas de
comunicacin como SPI, IC, USB o SSCI entre otros.
b) Familia 68HC11 (abreviado HC11 o 6811)
Es una familia de microcontroladores de Motorola, derivada del microprocesador
Motorola 6800. Los microcontroladores 68HC11 son ms potentes y costosos que
los de la familia 68HC08 y se utilizan en mltiples dispositivos empotrados.
Siguen la arquitectura Von Newman. Internamente, el conjunto de instrucciones de
la familia 68HC11 es compatible con la de la mayora de sus predecesores.
La familia 68HC11 emplea instrucciones de longitud variable y se considera que
emplea una arquitectura CISC. Tienen dos acumuladores de ocho bits (A y B), dos
registros ndice de 16 bits (X e Y), un registro de banderas, un puntero de pila y un
contador de programa.
Los 68HC11 tienen cinco puertos externos (A, B, C, D y E), cada uno de ocho bits
excepto el E, que es generalmente de seis bits.
El puerto A se emplea en captura de eventos, salida comparada, acumulador de
pulsos y otras funciones de reloj. El puerto D para E/S serie y el puerto E como
conversor analgico-digital.
La familia 68HC11 puede funcionar tanto con memoria interna o externa. En caso
de emplear memoria externa, los puertos B y C funcionan como bus de datos y
direcciones respectivamente.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
92
CAPTULO 2
MICROCONTROLADORES DE 8 BITS
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
93
En este captulo se estudiarn dos de los ms importantes microcontroladores de
8 bits de la familia PIC de Microchip que, como se describi en el captulo anterior,
corresponden a la familia de gama media. Los microcontroladores en cuestin son
el PIC16F84 y el PIC16F877, dos de los microcontroladores ms populares y ms
empleados en aplicaciones de electrnica.
1. PIC16F84
a) CARACTERSTICAS GENERALES
Bajo consumo de energa
Frecuencia de reloj externa mxima de 10MHz
No posee conversores analgicos/digitales ni digitales/analgicos
Pipe-line de 2 etapas, 1 para bsqueda de instruccin y otra para la ejecucin
de la instruccin (los saltos ocupan un ciclo ms).
Repertorio de instrucciones reducido (RISC), con tan solo 35 instrucciones
4 tipos distintos de instrucciones: orientadas a byte, orientadas a bit,
operacin entre registros y de salto.
1024 palabras de memoria de programa
Memoria de datos RAM de 68 bytes
Memoria de datos EEPROM de 64 bytes
Palabras de instruccin de 14 bits
Bytes de datos de 8 bits
15 registros especiales de funcin hardware
8 niveles de pila
Modos de direccionamiento: directo, indirecto y relativo
Cuatro fuentes de interrupcin
TMR0 de 8 bits con pre-escala programable
Perro guardin (watchdog)
b) FUNCIONES Y DIAGRAMA DE PINES
La siguiente figura muestra el diagrama de pines del PIC16F84 en encapsulado
PDIP, SOIC.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
94
La descripcin de las funciones de los pines de este microcontrolador se presenta
en la siguiente tabla.
NOMBRE DEL PIN TIPO DESCRIPCION
RA0 a RA3 Entrada/salida Lneas de E/S digitales del Puerto A
RA4/T0CKI Entrada/salida
E/S digital o entrada de reloj externo
para el TMR0.
RB0/INT a RB7 Entrada/salida
E/S digitales del Puerto B.
RB0/INT puede actuar como INT externa.
RB4-RB7 pueden provocar una interrupcin cuando
cambian de estado.
OSC1/CLKIN Entrada Entrada de cristal oscilador / entrada de reloj externo.
OSC2/CLKOUT Salida
Salida del cristal oscilador.
En el modo RC, la salida del pin de OSC2/CLKOUT,
tiene de la frecuencia de OSC1 (ciclo de instruccin)
V
SS
Alimentacin Tierra para los pines lgicos y de E/S
V
DD
Alimentacin Fuente de tensin positiva ( Tpicamente 5V )
MCLR/V
PP
Entrada
Entrada maestra de borrado (Reset)/ voltaje de
programacin. El reset del dispositivo es activo bajo.
c) ARQUITECTURA INTERNA
Como se ha mencionado, el microcontrolador emplea una arquitectura Harvard, en
la cual, programa y datos se acceden de memorias separadas usando diferentes
buses. Esto trae como consecuencia la existencia de dos buses independientes y
la posibilidad de tener un ancho diferente. En este caso, el bus de datos es de 8
bits y el bus de programa es de 14 bits.
La secuencia de las instrucciones de un programa, est controlada por el registro
contador de programa ( Program Counter ). Este registro se incrementa en cada
paso para ejecutar el programa grabado en la memoria ROM del microcontrolador.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
95
El contador de programa tambin est conectado a los registros de Stack o pila,
que son los que soportan llamadas consecutivas a una subrutina.
El diagrama de bloques de la estructura interna del PIC16F84 se presenta en la
siguiente figura.
El microcontrolador tambin posee una unidad lgica aritmtica ( ALU ) de 8 bits y
un registro de trabajo ( W ). La ALU ejecuta funciones aritmticas y booleanas
entre datos del registro de trabajo y cualquier otro registro o constante. Tambin
es capaz de realizar operaciones lgicas, adiciones y sustracciones entre datos de
8 bits.
El registro de trabajo ( W ), es un registro de 8 bits de gran importancia para el
buen funcionamiento del microcontrolador. Se emplea intensamente en las
operaciones que requieren transferencia interna de datos, como por ejemplo, en
las operaciones de la ALU o en las comunicaciones entre registros.
Para la ejecucin de un programa, las palabras de la memoria de programa se
llevan al registro de instrucciones, el cual, las comunica al decodificador de
instrucciones, en donde se da la orden de iniciar su ejecucin.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
96
A continuacin se presenta una breve descripcin de los principales componentes
del microcontrolador.
Organizacin de la memoria
La memoria de programa tiene implementado 1024 palabras de 14 bits cada una,
para el almacenamiento de las instrucciones del programa a ejecutar. Tambin
cuenta con dos vectores empleados para el manejo de las Interrupciones y el
estado de Reinicializacin (reset) del microcontrolador.
La memoria de datos est particionada en dos reas. La primera es para los
registros de funciones especiales (SFR), y la segunda rea es para los registros
de propsito general (GPR). Los registros especiales controlan las operaciones del
dispositivo.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
97
Toda la memoria de datos puede ser accedida ya sea por direccionamiento directo
utilizando direcciones absolutas de cada registro de fila o indirecto a travs del
registro de seleccin de fila (FSR).
Puertos de Entrada/Salida
El microcontrolador PIC16F84, cuenta con dos puertos bidireccionales: Puerto A y
Puerto B. Algunos pines de estos puertos son multiplexados con una funcin
alternativa de los perifricos del dispositivo. En general, cuando un perifrico es
habilitado, el pin correspondiente no puede ser utilizado como pin de E/S de
propsito general. A continuacin se describen los puertos de este
microcontrolador.
Puerto A: este puerto bidireccional tiene un tamao de 5 bits ( RA4:RA0 ). Tiene
adems 2 registros asociados que se muestran en la siguiente tabla y que
corresponden a:
Control de direccin de los pines del puerto A (TRISA)
Estado de los pines del puerto A (PORTA)
Puerto B: este puerto bidireccional tiene un tamao 8 bits ( RB7:RB0 ). Tiene
adems 4 registros asociados que se muestran en la siguiente tabla.
Timer0: el mdulo temporizador/contador de 8 bits TMR0 puede ser ledo y escrito
continuamente y se puede seleccionar un reloj interno o uno externo para trabajar
con el. Adems cuenta con preescalador progamable de 8 bits, y con interrupcin
por desbordamiento desde FFh a 00h. El diagrama de bloques del mdulo se
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
98
muestra en la siguiente figura y los registros relacionados con el Timer0 se
presentan posteriormente.
Configuracin del oscilador
El PIC16F84 puede operar con cuatro configuraciones de oscilador. El usuario
puede seleccionar la ms conveniente, segn su necesidad
LT: baja potencia de cristal
XT: cristal/ resonador
HS: cristal de alta velocidad/ resonador
CS: resistor/ capacitor
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
99
La siguiente tabla muestra los valores de capacitor para las configuraciones: LP,
XT y HS; junto con el valor del rango de frecuencia de resonancia.
Interrupciones
El PIC16F84 tiene cuatro fuentes de interrupcin:
Interrupcin externa a travs del pin RBO/INT
Interrupcin por desbordamiento del TMR0
Interrupcin PORTB (RB7:RB4)
Interrupcin de la memoria EEPROM cuando la escritura ha finalizado.
Watchdog (perro guardin)
El temporizador watchdog es un recurso de vigilancia del microcontrolador. Cuenta
libremente con el oscilador RC del chip, por lo tanto no necesita componentes
externos. Tiene un perodo nominal de finalizacin de 18ms.
Durante la operacin normal del microcontrolador, una finalizacin del
temporizador watchdog genera un reinicio o RESET; pero si el dispositivo est en
modo SLEEP provoca que se retome nuevamente la operacin normal del
dispositivo. El wachtdog puede ser habilitado o deshabilitado por software.
2. PIC16F877
a) CARACTERSTICAS GENERALES
El microcontrolador PIC16F877 tiene como caractersticas generales:
Arquitectura RISC y 35 instrucciones de palabra sencilla
Todas las instrucciones son de un solo ciclo, excepto los saltos ( dos ciclos )
Velocidades de operacin: DC hasta 20MHz con entrada de reloj y DC hasta
200ns ciclo de instruccin.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
100
Hasta 8Kx14 palabras de memoria programable FLASH, 368x8 bytes de
memoria de datos RAM y 256x8 bytes de memoria de datos EEPROM.
Capacidad de interrupcin (hasta 14 fuentes).
8 niveles de pila
Perro guardin (watchdog)
Modos de direccionamiento: directo, indirecto y relativo
Conversor analgico digital multicanal de 10 bits.
TRM0, TRM2 de 8 bits contador/ preescalar.
TRM1 de 16 bits contador/ prescalar.
Tiene dos mdulos de comparacin, captura de 16 bits y PWM de 10 bits.
Receptor/transmisor USART / SCI.
Puerto paralelo esclavo de 8 bits con lneas de control externo.
b) FUNCIONES Y DIAGRAMA DE PINES
La asignacin de pines del PIC16F877 se muestra en la siguiente figura.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
101
El PIC16F877 viene en una pastilla integrada de 40 pines. 33 pines conforman los
cinco puertos bidireccionales que posee, mientras que los siete pines restantes se
emplean para la aplicacin del voltaje de alimentacin ( 4 ), el circuito oscilador
( 2 ) y el circuito de Reset.
La descripcin de las funciones de los pines del microcontrolador PIC16F877 se
presenta a continuacin.
NOMBRE DEL PIN TIPO DESCRIPCION
RA0/AN0 - RA2/AN2 Entrada/salida
Lneas de E/S digitales del Puerto A, o
entradas analgicas.
RA3/AN3/VREF Entrada/salida
E/S digital, analgica o entrada
externa de referencia
RA4/T0CKI Entrada/salida
E/S digital o entrada de reloj externo
para TMR0.
RA5/AN4/SS Entrada/salida
E/S digital, analgica o seleccin del puerto
sncrono
RB0/INT - RB7 Entrada/salida
E/S digitales del Puerto B.
RB0/INT puede actuar como entrada de
interrupcin externa.
RB4-RB7 pueden provocar una interrupcin
cuando cambian de estado.
RC0/T1OSO/T1CKI Entrada/salida
E/S digital del Puerto C. Conexin del oscilador
externo para el temporizador TMR1 o entrada
de reloj para el TMR1.
RC1/T1OSI/CCP2 Entrada/salida
Conexin del oscilador externo para el TMR1 o
salida del mdulo 2 de captura/comparacin.
RC2/CCP1 Entrada/salida Salida del mdulo 1 de captura/comparacin.
RC3/SCK/SCL Entrada/salida
E/S de reloj para el Puerto Serie Sncrono
(SSP) en los mdulos SPI o I2C.
RC4/SDI/SDA Entrada/salida
E/S digital. Entrada de datos serie en el modo
SPI. E/S de datos serie en modo I2C.
RC5/SDO Entrada/salida E/S digital. Salida de datos serie en modo SPI
RC6/TX/CK Entrada/salida
E/S digital. Transmisin serie asncrona.
Entrada de reloj para comunicacin serie
sncrona.
RC7/RX/DT Entrada/salida
E/S digital. Recepcin serie asncrona. Lnea
de datos en la comunicacin serie sncrona.
RD0/PSP0 - RD7/PSP7 Entrada/salida
E/S digitales del Puerto D. Este puerto puede
trabajar como puerto paralelo esclavo para
interconexin con un bus de datos de 8 bits de
otro microprocesador.
RE0/RD/AN5 Entrada/salida
E/S digital del Puerto E. Seal de lectura del
puerto paralelo esclavo. Entrada analgica.
RE1/WR/AN6 Entrada/salida
E/S digital del Puerto E. Seal de escritura del
puerto paralelo esclavo. Entrada analgica.
RE2/CS /AN7 Entrada/salida
E/S digital. Seal de activacin del puerto
paralelo esclavo. Entrada analgica.
OSC1/CLKIN Entrada Entrada del cristal / entrada de reloj externo.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
102
OSC2/CLKOUT Salida
Salida del cristal oscilador. Conecta el cristal o
el resonador en el modo cristal oscilador. En el
modo RC, la salida del pin de OSC2 CLKOUT,
tiene de la frecuencia de OSC1
V
SS
Alimentacin Tierra para los pines lgicos y de E/S
V
DD
Alimentacin Fuente de Tensin Positiva
MCLR Entrada
Entrada maestra de borrado (Reset)/ voltaje de
programacin. El reset del dispositivo es activo
bajo.
c) ARQUITECTURA INTERNA
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
103
A continuacin se presenta una breve descripcin de los principales mdulos del
microcontrolador.
Organizacin de la memoria
Existen principalmente dos bloques de memoria en el interior del microcontrolador:
la memoria de datos y la memoria de programa, cada una con su propio bus.
- Organizacin de la Memoria de Programa
El microcontrolador tiene un contador de programa de 13 bits capaz de direccional
un espacio de memoria de programa de 8K x 14, es decir 8192 palabras de
memoria FLASH.
El vector de RESET est en la direccin 0000h y el vector de interrupcin en la
0004h. Adems cuenta con 8 niveles de pila como lo muestra la figura.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
104
- Organizacin de la memoria de datos
La memoria de datos est particionada en mltiples bancos ( 4 ) que contienen
registros de propsito general y registros de funcin especial.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
105
Los bits RP1 (bit 6) y RP0 (bit 5) del registro de estatus seleccionan los bancos de
memoria como lo muestra la siguiente figura.
Puertos de Entrada/Salida
El microcontrolador 16F877 cuenta con cinco puertos de E/S (A, B, C, D, E), los
cules suman 33 pines bidireccionales para el trabajo con diversas seales
externas.
Hay que destacar que algunos pines de E/S estn multiplexados con una funcin
alternativa de los perifricos del dispositivo. En general, cuando un perifrico es
habilitado el pin correspondiente no puede ser utilizado como pin de E/S de
propsito general.
Puerto A: este puerto bidireccional tiene un tamao de 6 bits (RA5:RA0). Tiene
adems 3 registros asociados que se muestran en la tabla y que corresponden a:
Estado de los pines del puerto A (PORTA)
Control de direccin de los pines del puerto A (TRISA)
El perifrico de conversin analgico digital (ADCON1)
Puerto B: este puerto bidireccional tiene un tamao de 8 bits (RB7:RB0). Tiene
adems 3 registros asociados que se muestran en la Error! No se encuentra el
origen de la referencia. y que corresponden a:
Estado de los pines del puerto B (PORTB)
Control de direccin de los pines del puerto B (TRISB)
Interrupcin externa pin RB0 (OPTION-REG bit INTEDG)
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
106
Puerto C: este puerto bidireccional tiene un tamao de 8 bits (RC7:RC0). Tiene
adems 2 registros asociados que se muestran en la Error! No se encuentra el
origen de la referencia. y que corresponden a:
Estado de los pines del puerto C (PORTC)
Control de direccin de los pines del puerto C (TRISC)
Puerto D: este puerto bidireccional tiene un tamao de 8 bits (RD7:RD0) con
entradas bufferadas de schmit trigger (disparo). Puede ser configurado como
puerto paralelo esclavo y en este modo los buffers de entrada son TTL. Tiene
adems 3 registros asociados que se muestran en la Error! No se encuentra el
origen de la referencia. y que corresponden a:
Estado de los pines del puerto D (PORTD)
Control de direccin de los pines del puerto D (TRISD)
Control de configuracin puerto paralelo esclavo (TRISE)
Puerto E: este puerto bidireccional tiene un tamao de 3 bits (RE2:RE0), con
entradas bufferadas de schmit trigger (disparo). Puede ser configurado como
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
107
puerto paralelo esclavo, en este modo los buffers de entrada son TTL. Tiene
adems 3 registros asociados que se muestran en la Error! No se encuentra el
origen de la referencia. y que corresponden a:
Operacin de lectura / escritura de los pines RE cuando son entradas
analgicas o puerto paralelo esclavo (PORTE)
Control de configuracin puerto paralelo esclavo y control de la direccin de
los pines RE (TRISE)
Configuracin de entrada/salida digital (ADCON1)
Mdulo Timer0
Este temporizador/contador de 8 bits, tiene las caractersticas de ser de escritura y
lectura, preescalador de 8 bits programable por software, seleccin de reloj interno
o externo e interrupcin por desbordamiento. La siguiente figura muestra el
diagrama de bloques y la tabla con los registros relacionados con el Timer0.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
108
Mdulo Timer1
El timer1 es un mdulo contador/temporizador de 16 bits que consta de dos
registros de 8 bits, los cuales pueden ser escritos y ledos continuamente. El
mdulo puede operar como temporizador o como contador. En el modo
temporizador el TIMER1 se incrementa cada ciclo de instruccin, en el modo
contador se incrementa con el flanco de bajada de la entrada de reloj externa. El
diagrama de bloques del mdulo se muestra en la siguiente figura y la tabla
muestra los registros relacionados con el Timer0.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
109
Mdulo de Puerto Serial Maestro Sncrono
Es una interfaz serial utilizada para comunicarse con otros perifricos o
microcontroladores. Estos dispositivos perifricos pueden ser memorias EEPROM
seriales, registros de desplazamiento, manejadores de display, conversores A/D
entre otros. El mdulo MSSP puede operar en dos modos: interfaz serial perifrica
(SPI) circuito inter-integrado (I
2
C)
a) Interfaz Serial Perifrica (SPI): El SPI permite transmitir y recibir datos de 8
bits simultneamente. Adems soporta las cuatro modalidades que son:
Salida serial de dato (SDO)
Entrada serial de dato (SDI)
Reloj serial (SCK)
Seleccin esclavo ( SS )
b) Circuito inter- integrado (I
2
C): El mdulo soporta todas las configuraciones
maestro y esclavo, provee interrupciones por hardware de los bits de arranque y
parada y determina cuando libera el bus.
Conversor analgico digital
El conversor analgico/digital del PIC16F877 tiene 8 entradas multiplexadas y una
resolucin mxima de 10 bits.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
110
La seal analgica de entrada es muestreada y cargada en un capacitor a la
entrada del conversor; el cual genera como resultado un valor digital del nivel
analgico a travs de aproximaciones sucesivas.
La conversin analgico/digital de la seal analgica de entrada tiene una
resolucin mxima de 10 bits. El mdulo cuenta tambin con un nivel alto y bajo
de voltaje de referencia programado por software, escogiendo entre los pines V
SS
,
V
DD
, RA3 y RA2.
El conversor A/D tiene la caracterstica de operar mientras el microcontrolador se
encuentra en modo SLEEP. El reloj del A/D es derivado del oscilador interno del
conversor.
El tiempo mnimo de adquisicin es de 19,72 s. El tiempo de conversin del A/D
por bit se denomina T
AD
; en el caso del mdulo se necesitan 12 T
AD
para 10 bits.
La fuente del reloj de conversin se selecciona por software y pueden ser: 2T
OSC
,
8 T
OSC
, 32 T
OSC
mdulo oscilador interno del ADC. La siguiente tabla muestra los
registros asociados con el A/D.
3. MODOS DE DIRECCIONAMIENTO
Existen tres modos de direccionamiento en los microcontroladores PIC: directo,
indirecto y relativo.
En el direccionamiento directo se utilizan los valores de RP1 y RP0 para
seleccionar el banco y la localizacin a travs del formato de instruccin
(OPCODE).
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
111
En el caso particular de esta familia, el direccionamiento indirecto est
determinado por los registros INDF y FSR. Hay que destacar que el registro INDF
no es un registro fsico, pero a travs de el es que se realiza el direccionamiento
indirecto. Cualquier instruccin que utilice el registro INDF accede al registro
puntero de seleccin de fila, FSR.
Si se lee solamente el registro INDF el valor de FSR es igual a 0, es decir, la
direccin leda es igual 00H. Los 9 bits de direccin efectiva son el resultado de
concatenar los 8 bits del registro FSR y el bit 7 (IRP) del registro de estado.
El direccionamiento relativo se logra sumando el contenido del registro de trabajo
W al registro contador de programa ( PC ). Este direccionamiento se utiliza
ampliamente en la elaboracin de tablas de saltos.
La siguiente figura ilustra la diferencia entre el direccionamiento directo y el
indirecto.
4. REPERTORIO DE INSTRUCCIONES
Cada instruccin de los PIC16F84 y PIC16F877 es una palabra de 14 bits, dividida
entre el OPCODE, la cual especifica el tipo de instruccin y uno o ms operandos
segn la instruccin.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
112
Se presenta a continuacin el listado de instrucciones de estos
microcontroladores.
Hexu NemotcnIco escvIpcIn IuncIn
OII!ACIOIS !ITI!A!IS Y I COT!O!
3I kk A!W k sumn un IIfornI n w k + w w
39 kk A!W k A onfro un IIfornI y w k .A. w w
2k kk CA!! k IInmn unn subrufInn IC + l IIn, k IC
00 64 C!!WT IImIn oI uo/clJog (WDT) 0 uo/clJog /iner
2k kk COTO k snIfn n unn dIroccIon k IC ( 9 Ii/e )
38 kk IO!!W k O! IncI onfro un IIfornI y w k .O!. w w
30 kk MOV!W k muovo oI IIfornI n w k w
00 09 !ITIII rofornn do InforrucIon IIn PC, 1 G11
34 kk !IT!W k rofornn y cnrgn IIfornI on w k w, IIn IC
00 08 !IT!! rofornn do unn subrufInn IIn IC
00 63 S!III n modo do bnjo consumo 0 WT, nrn oscIIndor
3C kk S!I!W k rosfn w doI IIfornI k - w w
3A kk XO!!W k O! oxcI onfro un IIfornI y w k .XO!. w w
OII!ACIOIS O!IITAAS A !ICIST!OS
0? ff AWI f,d sumn w y f w + f d
05 ff AWI f,d A onfro w y f w .A. f d
0l 8f C!!I f IImIn f 0 f
0l 00 C!!W IImIn w 0 w
09 ff COMI f,d comIomonfn f .OT. f d
03 ff ICI f,d docromonfn f f - l d
0I ff ICISZ f,d doc. f, snIfn sI coro f - l d, snIfn sI coro
0A ff ICI f,d Incromonfn f f + l d
0I ff ICISZ f,d Inc. f, snIfn sI coro f + l d, snIfn sI coro
04 ff IO!WI f,d O! IncIusIvn onfro w y f w . O!. f d
08 ff MOVI f,d muovo f f d
00 8f MOVWI f muovo w n f w f
00 00 OI no oorn
0 ff !!I f,d rofn n In IzquIordn f corr, d(0), f(7) corr,
0C ff !!I f,d rofn n In dorochn f corr, d(7), f(0) corr,
02 ff S!IWI f,d rosfn w do f f - w d
0I ff SWAII f,d InforcnmbIn mIfndos do f f <0:3> f <4:?> d
06 ff XO!WI f,d O! oxcIusIvn onfro w y f w . XO!. f d
OII!ACIOIS O!IITAAS A B1TS
lb ff ICI f,b IImIn oI Ii/ 0 f(b)
lb ff ISI f,b ncfIvn oI Ii/ l f(b)
lb ff ITISC f,b ruobn oI Ii/, salta si cero snIfn sI f(b) = 0
lb ff ITISS f,b ruobn oI Ii/, salta si uno snIfn sI f(b) = l
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
113
UNIDAD 3
PROGRAMACIN DE MICROCONTROLADORES
Y MICROPROCESADORES
CONTENIDOS
Captulo 1. Introduccin a la programacin
1. Lenguajes mquina y ensamblador
2. Repertorio de instrucciones
2.1 Aritmticas y lgicas
2.2 Transferencia de datos
2.3 Bifurcacin
2.4 Atencin a subrutinas
2.5 Miscelneas
Captulo 2. Desarrollo de aplicaciones
1. Generalidades de programacin
2. Dispositivos de entrada
3. Dispositivos de salida
4. Aplicaciones
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
114
CAPTULO 1
INTRODUCCIN A LA PROGRAMACIN
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
115
1. LENGUAJES MQUINA Y ENSAMBLADOR
En el nivel ms bsico, el microprocesador responde a un conjunto de
operaciones que se denomina programa mquina. Este programa est escrito en
un lenguaje apropiado para la mquina (computadora), ya que sus instrucciones
son cadenas binarias ( series de caracteres de dgitos 0 y 1).
Este programa mquina ( o en cdigo mquina ), estar conformado por las
diferentes rdenes o instrucciones que debe ejecutar el microprocesador para el
desarrollo de una tarea particular. Cada una de las instrucciones ser expresada
en su correspondiente cdigo de operacin y almacenada en la memoria de
programa. Un ejemplo de un programa en cdigo mquina, se escribe a
continuacin.
Dir de
memoria
Cdigo ( bin ) Cdigo ( hex )
0000 00111110 3E
0001 10110100 B4
0002 00101111 2F
0003 00110010 32

El programa se puede expresar en binario o en hexadecimal, sin embargo siguen
siendo muy difciles de comprender para cualquier persona.
Las instrucciones en lenguaje mquina dependen del hardware de la
computadora, y por lo tanto dependern del fabricante del microprocesador.
La principal ventaja del Lenguaje Mquina es la posibilidad de cargar ( transferir
un programa a la memoria ) sin necesidad de traduccin posterior, lo que supone
una velocidad de ejecucin superior a la de cualquier otro lenguaje de
programacin.
Las desventajas del Lenguaje Mquina seran: dificultad y lentitud en la
codificacin, poca fiabilidad, gran dificultad para verificar y poner a punto los
programas y la dependencia con el microprocesador ya que los programas slo
son ejecutables determinada CPU.
En la actualidad, las desventajas superan a las ventajas, lo que hace
prcticamente no recomendables a los lenguajes mquina.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
116
Lenguajes de bajo nivel.
Estos lenguajes son ms fciles de utilizar que los lenguajes mquina, pero al
igual que ellos, dependen de la mquina en particular. El lenguaje de bajo nivel
por excelencia es el ensamblador ( o assembler ). Las instrucciones en lenguaje
ensamblador son instrucciones conocidas como nemotcnicos, es decir, se
emplean trminos de fcil asociacin para la realizacin de un programa.
Por ejemplo, nemotcnicos tpicos de operaciones aritmticas son: ADD, SUB,
DIV, etc. ( en ingls ) o podran ser: SUM, RES, DIV, etc. ( en espaol )
Una instruccin tpica de suma sera:
ADD M, N, P
Esta instruccin significa "sumar el contenido de la posicin de memoria M al
nmero almacenado en la posicin de memoria N y almacenar el resultado en la
posicin de memoria P". Evidentemente es ms sencillo recordar la instruccin
anterior con un nemotcnico, que su equivalente en cdigo mquina:
0110 1001 1010 1011
Un programa escrito en lenguaje ensamblador, requiere de una fase de traduccin
al lenguaje mquina para poder ser ejecutado directamente por la computadora.
Esta tarea se realiza generalmente con un software especial conocido como
programa ensamblador
El programa original escrito en lenguaje ensamblador se denomina programa
fuente y el programa traducido en lenguaje mquina se conoce como programa
objeto, el cual ya es directamente entendible por la computadora.
La principal ventaja del lenguaje ensamblador frente al lenguaje mquina, es su
mayor facilidad de codificacin y, en general, su velocidad de clculo.
Las desventajas del lenguaje ensamblador seran: dependencia total de la
mquina, lo que impide la posibilidad de ejecutar un programa en diferentes
mquinas y la formacin requerida ya que exige buenos conocimientos, no solo en
las tcnicas de programacin, sino tambin en el interior de la mquina
Los lenguajes ensamblador tienen aplicaciones especficas y se centran
bsicamente en desarrollos de tiempo real, control de procesos y en dispositivos
electrnicos.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
117
2. REPERTORIO DE INSTRUCCIONES
En esta seccin se estudiar con ms detalle el repertorio completo de las
instrucciones de los microcontroladores PIC.
Los operandos afectados al ejecutar una instruccin, se definen en el siguiente
cuadro.
OPERANDOS DESCRIPCIN
f direccin del registro ( de 00h a FFh )
W registro de trabajo ( acumulador )
b direccin del bit dentro de un registro
k literal, constante o etiqueta
d
selector de destino
d = 0, almacena el resultado en W
d = 1, almacena el resultado en el registro
2.1 Instrucciones aritmticas y lgicas
ADDLW suma un literal al reg. W
Sintaxis: ( etiqueta ) ADDLW k
Operandos: 0 < k < 255
Operacin: ( W ) + k W
Estados Afectados: C, DC, Z
Cdigo: 11 111x kkkk kkkk
Descripcin: el contenido del reg. W es adicionado al literal k de 8-bits y el resultado es
almacenado en el reg. W.
ADDWF suma a W con el reg. f
Sintaxis: ( etiqueta ) ADDWF f,d
Operandos: 0 < f < 127, d e | 0,1 |
Operacin: ( W ) + ( f ) ( destino )
Estados Afectados: C, DC, Z
Cdigo: 00 0111 d f f f f f f f
Descripcin: el contenido del reg. W es adicionado al contenido del reg. f y el resultado
es almacenado en el reg. W o en el reg. f segn d.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
118
ANDLW AND entre un literal y W
Sintaxis: ( etiqueta ) ANDLW k
Operandos: 0 < k < 255
Operacin: ( W ) .AND.( k ) W
Estados Afectados: Z
Cdigo: 11 1001 kkkk kkkk
Descripcin: realiza la operacin AND entre un literal k de 8-bits y el reg. W. El
resultado se almacena en el reg. W.
ANDWF AND entre W y el reg. f
Sintaxis: ( etiqueta ) ANDWF f,d
Operandos: 0 < f < 127, d e | 0,1 |
Operacin: ( W ) .AND. ( f ) ( dest )
Estados Afectados: Z
Cdigo: 00 0101 d f f f f f f f
Descripcin: realiza la operacin AND entre W y el reg. f. El resultado es almacenado
en el reg. W o en el reg. f segn d.
COMF complementa el reg. f
Sintaxis: ( etiqueta ) COMF f,d
Operandos: 0 < f < 127, d e | 0,1 |
Operacin: ( f ) ( destino )
Estados Afectados: Z
Cdigo: 00 1001 d f f f f f f f
Descripcin: el contenido del reg. f se complementa y almacena en el reg. W o en el reg.
f segn d.
DECF decrementa el reg. f
Sintaxis: ( etiqueta ) DECF f,d
Operandos: 0 < f < 127, d e | 0,1 |
Operacin: ( f ) - 1 ( destino )
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
119
Estados Afectados: Z
Cdigo: 00 0011 d f f f f f f f
Descripcin: decrementa el reg. f. El resultado es almacenado en el reg. W o en el reg. f
segn d.
INCF incrementa el reg. f
Sintaxis: ( etiqueta ) INCF f,d
Operandos: 0 < f < 127, d e | 0,1 |
Operacin: ( f ) + 1 ( destino )
Estados Afectados: Z
Cdigo: 00 1010 d f f f f f f f
Descripcin: incrementa el reg. f. El resultado es almacenado en el reg. W o en el reg. f
segn d.
IORLW OR incl entre un literal y W
Sintaxis: ( etiqueta ) IORLW k
Operandos: 0 < k < 255
Operacin: ( W ) .OR. ( k ) ( W )
Estados Afectados: Z
Cdigo: 11 1000 kkkk kkkk
Descripcin: realiza la operacin OR inclusiva entre el reg. W y el literal k de 8-bits. El
resultado se almacena en el reg. W.
IORWF OR inclusiva entre W y f
Sintaxis: ( etiqueta ) IORWF f,d
Operandos: 0 < f < 127, d e | 0,1 |
Operacin: ( W ) .OR. ( f ) ( dest )
Estados Afectados: Z
Cdigo: 00 0100 d f f f f f f f
Descripcin: realiza la operacin OR inclusiva entre el reg. W y el reg. f. El resultado es
almacenado en el reg. W o en el reg. f segn d.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
120
RLF rota a la izquierda el reg. f
Sintaxis: ( etiqueta ) RLF f,d
Operandos: 0 < f < 127, d e | 0,1 |
Operacin: carry d ( 0 ),
f ( 7 ) carry
Estados Afectados: C
Cdigo: 00 1101 d f f f f f f f
Descripcin: el contenido del reg. f es rotado bit por bit hacia la izquierda a travs del bit
CARRY ( STATUS < 0 > ) y el resultado se almacena en el reg. W o en el
reg. f segn d.
RRF rota a la derecha el reg. f
Sintaxis: ( etiqueta ) RRF f,d
Operandos: 0 < f < 127, d e | 0,1 |
Operacin: carry d ( 7 ),
f ( 0 ) carry
Estados Afectados: C
Cdigo: 00 1100 d f f f f f f f
Descripcin: el contenido del reg. f es rotado bit por bit hacia la derecha a travs del bit
CARRY ( STATUS < 0 > ) y el resultado se almacena en el reg. W o en el
reg. f segn d.
SUBLW resta W de un literal
Sintaxis: ( etiqueta ) SUBLW k
Operandos: 0 < k < 255
Operacin: k - ( W ) ( W )
Estados Afectados: C, DC, Z
Cdigo: 11 110x kkkk kkkk
Descripcin: el reg. W es sustrado del literal k de 8-bits por el mtodo del complemento
a dos. El resultado se almacena en el reg. W.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
121
SUBWF resta W del reg. f
Sintaxis: ( etiqueta ) SUBWF f,d
Operandos: 0 < f < 127, d e | 0,1 |
Operacin: f - ( W ) ( destino )
Estados Afectados: C, DC, Z
Cdigo: 00 0010 d f f f f f f f
Descripcin: el reg. W es sustrado del reg. f por el mtodo del complemento a dos. El
resultado es almacenado en el reg. W o en el reg. f segn d.
SWAPF intercambia mitades de f
Sintaxis: ( etiqueta ) SWAPF f,d
Operandos: 0 < f < 127, d e | 0,1 |
Operacin: f < 3:0 > d < 7:4 >
f < 7:4 > d < 3:0 >
Estados Afectados: ninguno
Cdigo: 00 1110 d f f f f f f f
Descripcin: la mitad superior del reg. f se cambia con la mitad inferior. El resultado se
almacena en el reg. W o en el reg. f segn d.
XORLW OR excl entre un literal y W
Sintaxis: ( etiqueta ) XORLW k
Operandos: 0 < k < 255
Operacin: ( W ) .XOR. k ( W )
Estados Afectados: Z
Cdigo: 11 1010 d f f f f f f f
Descripcin: realiza la operacin OR exclusiva entre el reg. W y el literal k de 8-bits. El
resultado es almacenado en el reg. W.
XORWF OR exclusiva entre W y f
Sintaxis: ( etiqueta ) XORWF f,d
Operandos: 0 < f < 127, d e | 0,1 |
Operacin: ( W ) .XOR. ( f ) ( dest )
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
122
Estados Afectados: Z
Cdigo: 00 0110 d f f f f f f f
Descripcin: realiza la operacin OR exclusiva entre el reg. W y el reg. f. El resultado es
almacenado en el reg. W o en el reg. f segn d.
2.2 Instrucciones de transferencia de datos
MOVLW mueve el literal a W
Sintaxis: ( etiqueta ) MOVLW k
Operandos: 0 < k < 255
Operacin: ( k ) ( W )
Estados Afectados: ninguno
Cdigo: 11 00xx kkkk kkkk
Descripcin: el literal k de 8-bits es almacenado en el registro de trabajo W.
MOVF mueve el registro f
Sintaxis: ( etiqueta ) MOVF f,d
Operandos: 0 < f < 127, d e | 0,1 |
Operacin: ( f ) ( destino )
Estados Afectados: Z
Cdigo: 00 1000 d f f f f f f f
Descripcin: el contenido del registro f es movido a su destino d. Si d=0 el destino es el
reg. W. Si d=1 el destino es el mismo registro.
MOVWF el contenido de W va a f
Sintaxis: ( etiqueta ) MOVWF f
Operandos: 0 < f < 127
Operacin: ( W ) ( f )
Estados Afectados: ninguno
Cdigo: 00 0000 1 f f f f f f f
Descripcin: mueve el contenido del registro W al el registro f.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
123
2.3 Instrucciones de bifurcacin
BTFSC prueba el bit, salta si cero
Sintaxis: ( etiqueta ) BTFSC f,b
Operandos: 0 < f < 127, 0 < b < 7
Operacin: salta si ( f < b > ) = 0
Estados Afectados: ninguno
Cdigo: 01 10bb b f f f f f f f
Descripcin: si el bit b del reg. f es cero la siguiente instruccin es saltada.
Ciclos: 1 ( 2 )
BTFSS prueba el bit, salta si uno
Sintaxis: ( etiqueta ) BTFSS f,b
Operandos: 0 < f < 127, 0 < b < 7
Operacin: salta si ( f < b > ) = 1
Estados Afectados: ninguno
Cdigo: 01 11bb b f f f f f f f
Descripcin: si el bit b del reg. f es uno la siguiente instruccin es saltada.
Ciclos: 1 ( 2 )
DECFSZ decrementa f, salta si cero
Sintaxis: ( etiqueta ) DECFSZ f,d
Operandos: 0 < f < 127, d e | 0,1 |
Operacin: ( f ) - 1 ( destino )
salta si el resultado = 0
Estados Afectados: ninguno
Cdigo: 00 1011 d f f f f f f f
Descripcin: decrementa el contenido del reg. f. El resultado es almacenado en el reg.
W o en el reg. f segn d. Si el resultado es cero, la siguiente instruccin es
saltada.
Ciclos: 1 ( 2 )
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
124
GOTO salto a una direccin
Sintaxis: ( etiqueta ) GOTO k
Operandos: 0 < k < 2047
Operacin: k PC < 10:0 >,
( PCLATH<4:3> ) PC<12:11>
Estados Afectados: ninguno
Cdigo: 10 1kkk kkkk kkkk
Descripcin: salta a una direccin determinada. El contador de programa se carga con
la nueva direccin.
Ciclos: 2
INCFSZ incrementa f, salta si cero
Sintaxis: ( etiqueta ) INCFSZ f,d
Operandos: 0 < f < 127, d e | 0,1 |
Operacin: ( f ) + 1 ( destino )
salta si el resultado = 0
Estados Afectados: ninguno
Cdigo: 00 1111 d f f f f f f f
Descripcin: incrementa el contenido del reg. f. El resultado es almacenado en el reg. W
o en el reg. f segn d. Si el resultado es cero, la siguiente instruccin es
saltada.
Ciclos: 1 ( 2 )
2.4 Instrucciones de atencin a subrutinas
CALL llamada a una subrutina
Sintaxis: ( etiqueta ) CALL k
Operandos: 0 < k < 2047
Operacin: ( PC ) + 1 TOS,
k PC < 10:0 >,
( PCLATH<4:3> ) PC<12:11>
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
125
Estados Afectados: ninguno
Cdigo: 10 0kkk kkkk kkkk
Descripcin: llama una subrutina. La direccin ( PC+1 ) se lleva a la pila y el contador
de programa se carga con la direccin de la subrutina.
Ciclos: 2
RETLW retorna y carga literal en W
Sintaxis: ( etiqueta ) RETLW k
Operandos: 0 < k < 255
Operacin: k W
TOS PC
Estados Afectados: ninguno
Cdigo: 11 01xx kkkk kkkk
Descripcin: el reg. W es cargado con el literal k de 8-bits. Se retorna de una subrutina
al cargar el contador de programa con la ltima direccin de la pila.
Ciclos: 2
RETURN retorno de una subrutina
Sintaxis: ( etiqueta ) RETURN
Operandos: ninguno
Operacin: TOS PC
Estados Afectados: ninguno
Cdigo: 00 0000 0000 1000
Descripcin: retorna de una subrutina. La ltima direccin de la pila es cargada en el
contador de programa.
Ciclos: 2
2.5 Instrucciones miscelneas
BCF limpia un bit del registro f
Sintaxis: ( etiqueta ) BCF f,b
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
126
Operandos: 0 < f < 127, 0 < b < 7
Operacin: 0 f < b >
Estados Afectados: ninguno
Cdigo: 01 00bb b f f f f f f f
Descripcin: el bit b del registro f es limpiado, es decir, puesto a cero.
BSF en set un bit del registro f
Sintaxis: ( etiqueta ) BSF f,b
Operandos: 0 < f < 127, 0 < b < 7
Operacin: 1 f < b >
Estados Afectados: ninguno
Cdigo: 01 01bb b f f f f f f f
Descripcin: el bit b del registro f es set, es decir, puesto a uno.
CLRF limpia el registro f
Sintaxis: ( etiqueta ) CLRF f
Operandos: 0 < f < 127
Operacin: 00h f
1 Z
Estados Afectados: Z
Cdigo: 00 0001 1 f f f f f f f
Descripcin: el contenido del registro f es limpiado y el bit Z es puesto a uno.
CLRW limpia el registro W
Sintaxis: ( etiqueta ) CLRW
Operandos: ninguno
Operacin: 00h ( W )
1 Z
Estados Afectados: Z
Cdigo: 00 0001 0xxx xxxx
Descripcin: el contenido del registro W es limpiado y el bit Z es puesto a uno.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
127
CLRWDT limpia el watchdog
Sintaxis: ( etiqueta ) CLRWDT
Operandos: ninguno
Operacin: 00h WDT
0 WDT pre-escalador
1 TO, PD
Estados Afectados: TO, PD
Cdigo: 00 0000 0110 0100
Descripcin: esta instruccin resetea el temporizador del circuito de vigilancia
( watchdog ) as como su pre-escalador.
NOP posicin de no operacin
Sintaxis: ( etiqueta ) NOP
Operandos: ninguno
Operacin: no opera
Estados Afectados: ninguno
Cdigo: 00 0000 0xx0 0000
Descripcin: en esta posicin no se realiza ninguna operacin
RETFIE retorno de interrupcin
Sintaxis: ( etiqueta ) RETFIE
Operandos: ninguno
Operacin: TOS PC,
1 GIE
Estados Afectados: ninguno
Cdigo: 00 0000 0000 1001
Descripcin: se retorna de una interrupcin. La ltima direccin de la pila es cargada en
el contador de programa. Se habilitan las interrupciones por medio de la
activacin del bit GIE ( INTCON < 7 > )
Ciclos: 2
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
128
SLEEP modo de bajo consumo
Sintaxis: ( etiqueta ) SLEEP
Operandos: ninguno
Estados Afectados: TO, PD
Cdigo: 00 0000 0110 0011
Descripcin: el temp. del circuito de vigilancia ( watchdog ), su pre-escalador y el bit PD
son limpiados. El bit TO es puesto a uno. El procesador es puesto en
modo de bajo consumo.
Ciclos: 1
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
129
CAPTULO 2
DESARROLLO DE APLICACIONES
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
130
1. GENERALIDADES DE PROGRAMACIN
Para programar con xito un microprocesador o microcontrolador, es necesario
conocer con cierta profundidad, la arquitectura general del sistema, los registros
disponibles, el repertorio de instrucciones y comprender claramente la aplicacin a
desarrollar.
Sin embargo, los siguientes pasos pueden ayudar en la realizacin de un proyecto
en particular:
Definir claramente el proyecto.
Realizar un diagrama de flujo con la solucin del problema.
Seleccionar el hardware ms conveniente.
Escribir el programa en lenguaje ensamblador.
Simular el programa ( dependiendo de su complejidad )
Programar y verificar el desempeo de la aplicacin.
Por medio de la siguiente aplicacin, van a presentar otras recomendaciones e
indicaciones para el desarrollo de un proyecto con el microcontrolador PIC16F84.
Proyecto: Control del encendido de un diodo LED por medio de un pulsador.
Diagrama de Flujo:
Pulsador
presionado ?
inicio
Definicin de
variables
Inicializacin
de registros
Configuracin
de puertos
Encender LED Apagar LED
S
No
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
131
Hardware Recomendado:
El microcontrolador, adems del circuito de reset, el circuito oscilador y la
alimentacin, debe ir conectado a los siguientes componentes electrnicos:
1 pulsador y una resistencia de 10 k ( pulsador en el pin RA0 )
1 LED y una resistencia de 220 ( LED en el pin RB0 )
Programa en lenguaje ensamblador:
Cuando se escribe un programa en lenguaje ensamblador, se acostumbra dividir
cada sentencia en 4 campos:
(etiqueta) (nemotcnico) (operando) ; (comentarios )
Por ejemplo:
START CLRF PORTA ; comienza formalmente el programa
Verifique esta estructura en el siguiente programa.
; CONTROL DE UN LED POR MEDIO DE UN PULSADOR
; DEFINO VARIABLES
STATUS EQU 3
PORTA EQU 5 ; PULSADOR EN RA0
TRISA EQU 85
PORTB EQU 6 ; LED EN RB0
TRISB EQU 86
TECLA EQU 0C
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
132
; INICIALIZO REGISTROS
START CLRF PORTA ; COMIENZA FORMALMENTE EL PROGRAMA
CLRF PORTB
CLRF TECLA
; CONFIGURO PUERTOS
BSF STATUS,5
MOVLW B11111 ; PUERTO A COMO IN
MOVWF TRISA
MOVLW B00000000 ; PUERTO B COMO OUTS
MOVWF TRISB
BCF STATUS,5
; LECTURA DEL ESTADO DEL PULSADOR
LAZO MOVF PORTA,W
MOVWF TECLA
BTFSS TECLA,0
GOTO TAREA2
GOTO TAREA1
TAREA1 MOVLW B00000001
MOVWF PORTB
GOTO LAZO
TAREA2 MOVLW B00000000
MOVWF PORTB
GOTO LAZO
END
Despus de escribir el programa, se compila, simula y programa la aplicacin en el
correspondiente microcontrolador. Si el desempeo real no es el esperado, se
procede a corregir el programa y se repite el proceso de implantacin en la
aplicacin.
2. DISPOSITIVOS DE ENTRADA
Algunos de los principales circuitos de entrada o perifricos ms empleados
cuando se trabaja comnmente con un microcontrolador, son los siguientes:
circuito de reset, circuito oscilador, pulsadores, interruptores y sensores en
general.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
133
Circuito de Reset
El microcontrolador presenta varios tipos de reset, los cules pueden ser activados
internamente como parte de su inicializacin o funcionamiento, o por medio de un
circuito externo de reset. Estos tipos de reset son:
Al encendido ( Power on Reset ).
Al rebasar el conteo del temporizador del circuito de vigilancia ( WDT ) durante
la operacin normal o en modo de bajo consumo.
Por medio del terminal MCLR del microcontrolador durante la operacin normal
o en modo de bajo consumo.
El reset al encendido ( POR ) se produce cuando el microcontrolador detecta que
el voltaje de alimentacin es aplicado ( 1.6 V a 1.8 V ). Este reset define el estado
o las condiciones de inicializacin de los registros de funciones especiales y
prepara al microcontrolador para la ejecucin del programa. Tambin permite que
el voltaje de alimentacin llegue a un nivel aceptable y se estabilice.
El microcontrolador opera en modo normal mientras el terminal MCLR est
conectado al voltaje positivo de alimentacin ( VDD ). En la siguiente figura se
muestra el diagrama de tiempos de la secuencia del reset al encendido.
El temporizador del circuito de vigilancia ( watchdog ), cuando se habilita, tambin
genera un reset en el microcontrolador, cada vez que el temporizador rebasa su
cuenta. Si el microcontrolador se encuentra en modo de bajo consumo ( SLEEP )
cuando se produce el rebase del temporizador, se saca al microcontrolador de
este estado y se contina con la operacin normal. Para evitar que se produzcan
reset no deseados por causa del temporizador de vigilancia, se recomienda
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
134
deshabilitarlo en el momento de la programacin o limpiarlo continuamente por
medio de la instruccin CLRWDT.
Adems de las anteriores opciones de reset, se puede implementar un circuito
fsico de reset externo en el microcontrolador y emplearlo en cualquier momento.
La utilidad de este circuito es que inicializa el programa y los registros, permitiendo
que el proceso vuelva a empezar cada vez que se desee.
En caso de alguna falla externa al microcontrolador o si se quiere iniciar el proceso
por cualquier motivo, se puede hacer uso de este circuito.
Cabe anotar que despus de que se produce un reset en el microcontrolador, los
registros de funciones especiales se cargan, segn la causa que produjo el reset,
con un valor determinado. Este valor se denomina estado de reset del registro y es
establecido por el fabricante.
Finalmente, el circuito fsico de reset permite realizar de forma sencilla la conexin
del pin MCLR del microcontrolador al voltaje positivo de alimentacin. Por medio
del interruptor que posee se puede llevar momentneamente este pin a un estado
lgico bajo y activar el reset en cualquier momento.
Los valores recomendados en el circuito de reset son: las resistencias R y R1 de
22 K y 1 K respectivamente y el condensador de 10 F. Se recomienda para la
resistencia R valores menores a 40 K y para R1 valores comprendidos entre
100 y 1 K. El circuito de reset recomendado es el siguiente.
Circuito oscilador
Un microcontrolador, generalmente puede operar en cualquiera de sus cuatro
opciones de oscilacin. Estas son:
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
135
LP ( cristal de baja potencia y velocidad )
XT ( cristal / resonador )
HS ( cristal de alta velocidad / resonador )
RC ( red resistor - capacitor )
En los modos LP, XT o HS, el cristal o resonador cermico se conecta a los pines
OSC1 y OSC2 del microcontrolador para establecer la oscilacin.
El modo RC es el ms econmico pero el ms inestable ( figura b. ). Se puede
emplear en aplicaciones que no requieran de mucha precisin en el cumplimiento
de las rutinas de tiempo. Su frecuencia de oscilacin es funcin del voltaje de
alimentacin, de los componentes de la red y de la temperatura de operacin.
Si se implementa una red RC como circuito oscilador, se recomienda para la
resistencia valores comprendidos entre 3 K y 100 K y para el condensador
valores superiores a 20 pF.
El modo de oscilacin XT, con un cristal oscilador de 4 Mhz y dos condensadores
de 20 pF, en la configuracin recomendada ( figura a. ), es una buena opcin. Este
cristal asegura el cumplimiento de los tiempos de oscilacin y ofrece una velocidad
de procesamiento adecuada para el desarrollo de un gran nmero de aplicaciones.
En el microcontrolador, el ciclo de instruccin se define como el perodo de tiempo
en el cual un sistema programado obedece a una instruccin tpica, y es igual al
perodo de reloj multiplicado por cuatro. Para un cristal de 4 Mhz, el perodo de
reloj es de 0,25 s. y el tiempo de cada ciclo de instruccin es de 1 s.
En la siguiente figura se presenta el diagrama de tiempos del microcontrolador y la
forma como se ejecutan las instrucciones. Hay que destacar que cada ciclo de
instruccin se compone de 4 ciclos Q.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
136
Pulsadores o interruptores
Otro importante elemento para el desarrollo de tareas en un microcontrolador, son
los pulsadores o interruptores, ya que con ellos se pueden construir arreglos de
pulsadores o teclados.
El circuito base es muy sencillo de implementar y su finalidad es colocar un cero
lgico o un uno lgico en determinado pin del microcontrolador y as dar una
orden, que segn el programa, se interprete y realice.
La resistencia R limita la corriente que circula cuando se presiona un pulsador y
generalmente se utiliza una resistencia de 5.1 kO para que realice esta funcin.
El circuito presentado es para pulsadores normalmente abiertos. Se puede
apreciar que en caso de no estar presionados, envan un cero lgico al pin al que
estn conectados.
3. DISPOSITIVOS DE SALIDA
Algunos de los principales circuitos de salida o perifricos ms empleados
cuando se trabaja comnmente con un microcontrolador, son los siguientes:
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
137
diodos LEDs, rels, zumbadores, motores, displays de 7 segmentos y LCDs
( visualizadores de cristal lquido )
De acuerdo a cada proyecto o aplicacin, se emplear un elemento en particular o
un conjunto de elementos de salida.
El ms sencillo de estos elementos es el diodo LED, el cual se puede conectar
directamente a cualquier pin, por medio de una resistencia limitadora. Hay que
destacar que la corriente tpica que suministra un pin de un microcontrolador es de
20 mA, por lo que en algunos casos ser necesario emplear circuitos manejadores
de corriente ( drivers ) para la conexin con diversos elementos de salida.
El display de cristal lquido ( LCD )
Un display de cristal lquido, es un elemento de mucha utilidad en cualquier
proyecto, ya que permite visualizar directamente todos los datos y variables
involucradas en la aplicacin. Los displays ms comunes tienen dos lneas de 14,
16, 20 o ms caracteres cada una y viene con los circuitos necesarios para su
funcionamiento.
El display cuenta generalmente con 14 terminales de conexin. Tres terminales
para el suministro del voltaje de alimentacin, tres para el control del display y los
ocho terminales restantes para la interfase de datos con el microcontrolador.
Pin N Smbolo Nivel Funcin
1 Vss Tierra o referencia
2 VDD Voltaje positivo ( 5 V. )
3 Vee Voltaje de manejo
4 RS H / L Control Selector de Registros
1 = modo entrada de datos.
0 = modo entrada de comandos.
5 R / W H / L Control de Lectura y Escritura
1 = Lectura de Datos.
0 = Escritura de Datos.
6 E H, H L Seal de Habilitacin
7 DB0 H / L
8 DB1 H / L
9 DB2 H / L Terminales del
10 DB3 H / L
11 DB4 H / L Bus de Datos
12 DB5 H / L
13 DB6 H / L
14 DB7 H / L
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
138
El display puede trabajarse en cualquiera de sus dos modos de operacin: como
una interfase de datos de 8-bits o como una interfase de 4-bits. Cuando opera en
el modo de 4-bits se hace necesario la transferencia de dos caracteres por
terminal. El modo de 8-bits es ms fcil de implementar y utiliza menos espacio de
memoria pero requiere los ocho terminales del bus de datos.
El circuito de alimentacin del display y la interfase con el PIC se muestran en la
siguiente figura. La resistencia R2 se remplaza generalmente por una resistencia
variable de 1 K que permita realizar el contraste del display.
Para el buen funcionamiento del display se deben tener en cuenta los siguientes
aspectos:
El display debe contar con un voltaje de alimentacin adecuado.
Antes de poner a funcionar el display, es necesario realizar una secuencia de
inicializacin en la que se definen sus condiciones de operacin. Una vez
inicializado el display, cada uno de los caracteres es individualmente
direccionable.
Para evitar conflictos en el display, se debe contar con el tiempo suficiente para
la ejecucin de las diferentes instrucciones.
4. APLICACIONES
En esta seccin se presentan algunas de las aplicaciones ms comunes de los
microcontroladores. Se adjunta adems un programa ejemplo, el cual puede servir
de gua para el proceso de programacin del microcontrolador.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
139
Configuracin de puertos de un microcontrolador
Los diferentes puertos que posee un microcontrolador, pueden operar como
entradas o salidas digitales segn se necesite o desee.
Cada puerto se configura por separado y cada pin puede configurarse
individualmente como entrada o como salida, dependiendo de la funcin que vaya
a realizar. Si algn puerto no se utiliza, es configurado por el microcontrolador
como entrada digital.
Cabe mencionar que un 1 lgico en el registro TRISx configura al pin
correspondiente como entrada digital y un cero 0 como salida digital.
En el siguiente ejemplo se muestra la configuracin bsica de los pines de un
puerto y la forma de realizar la lectura y escritura en los mismos.
Ejemplo: configure el Puerto A de un microcontrolador PIC primero con todos sus
pines como salidas digitales y luego como entradas digitales.
; cnbocorn doI rogrnmn
; doscrIcIon do rogIsfros osocInIos, nuxIIInros y bIfs.
w oqu 0 ; Bi/e do dosfIno
f oqu l
STAT!S oqu 3 ; !ogIsfro do osfndos
!I0 oqu 5 ; Bi/ do soIoccIon do bnncos
IO!TA oqu 5 ; ConfonIdo doI Iuorfo A
T!ISA oqu 85 ; !ogIsfro do confIgurncIon
; do Inos doI oI Iuorfo A
!ICl oqu 0C ; !ogIsfro nuxIIInr
; omIozn oI rogrnmn
STA!T cIrf IO!TA ; So InIcInIIzn oI Iuorfo A
bsf STAT!S,!I0 ; !ogIsfros doI Innco l
movIw b'00000000' ; Todos Ios Inos como
movwf T!ISA ; snIIdns dIgIfnIos
bcf STAT!S,!I0 ; !ogIsfros doI Innco 0
movIw b'0l0l0l0l' ; So oscrIbo osfn sonnI on
movwf IO!TA ; oI Iuorfo A
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
140
Operacin del teclado
La comunicacin entre el usuario y el control se hace posible como consecuencia
de la interaccin entre el PIC y el teclado.
Existen muchas formas de hacer interactuar estos elementos con el programa. Por
ejemplo, se puede llevar la lectura del puerto donde se encuentra el teclado a un
registro auxiliar y all se verifica el estado de cada tecla ( bit ) por medio de la
instruccin BTFSC. En caso de estar presionada alguna tecla se leer un 1
lgico en la posicin asignada a dicha tecla y esto le indicar al microcontrolador
la tarea a realizar.
En el siguiente ejemplo se presenta como hacer esta lectura de teclado.
Ejemplo: realice la lectura de una tecla ubicada en el Puerto B y de acuerdo a su
estado salte a la TAREA1 o a la TAREA2.
bsf STAT!S,!I0
movIw b'llllllll' ; Todos Ios Inos como
movwf T!ISA ; onfrndns dIgIfnIos
bcf STAT!S,!I0
movf IO!TA,w ; II confonIdo doI Iuorfo A
movwf !ICl ; so nImnconn on !ICl
ond ; IIn doI rogrnmn
; In osfo rogrnmn so ubIcn unn focIn on oI In !I0.
STAT!S oqu 3
!I0 oqu 5
IO!TI oqu 6 ; oI Iuorfo I mnnojn In focIn
T!ISI oqu 86
TIC!A oqu 0C ; rogIsfro nuxIIInr nrn In focIn
STA!T cIrf IO!TI
bsf STAT!S,!I0
movIw b'0000000l' ; so confIgurn In onfrndn
movwf T!ISI ; nocosnrIn nrn In focIn
bcf STAT!S,!I0
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
141
Retardo por software
En muchos casos se hace necesario colocar retardos en el tiempo para la
visualizacin de algn efecto o la realizacin de determinada tarea.
Para ello se puede emplear la siguiente subrutina, la cual depende del valor que
se le asigne a la variable time .
; fIomo doI rofnrdo = ( fImo * 5,00lms )
!ITA!O movIw .fImo
movwf vnIl
T!IS movIw .l85
movwf vnI2
OS movIw .?
movwf vnI3
no
!O docfsz vnI3,f
gofo !O
docfsz vnI2,f
gofo OS
docfsz vnIl,f
gofo T!IS
rofurn
; oI mIcroconfroIndor ormnnoco on oI sIguIonfo Inzo hnsfn quo so rosIono
..; In focIn, on osfo cnso so omIon In InsfruccIon btIsc nrn oI snIfo
!OOIl movf IO!TI,w ; Iocfurn doI Iuorfo I
movwf TIC!A
bffsc TIC!A,0 ; rovIsn In focIn
gofo TA!IAl ; sI focIn = l
gofo TA!IA2 ; sI focIn = 0
TA!IAl ; nI rosIonnr In focIn so soIoccIonn In TA!IAl
TA!IA2 ; sI no so rosIonn In focIn so soIoccIonn In TA!IA2
ond
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
142
Interfase PIC Display de cristal lquido
La interfase que se va a implementar, para el trabajo con el display de cristal
lquido, es la del bus de datos de 8-bits. Antes de presentar un programa que
controla el comportamiento del display, se van a describir en el siguiente cuadro
las instrucciones tpicas para su manejo y configuracin.
Instruccin RS R/W DB DB DB DB DB DB DB DB
Descripcin
7 6 5 4 3 2 1 0
Limpiar 0 0 0 0 0 0 0 0 0 1 limpia el display y lleva el
Display cursor a la direccin cero
Cursor 0 0 0 0 0 0 0 0 1 * lleva el cursor a la direccin
at Home cero sin cambiar el contenido
Modo 0 0 0 0 0 0 0 1 I/D S controla el movimiento del cursor y
entry set activa el desplazamiento del display
Control 0 0 0 0 0 0 1 D C B activa o desactiva el display, el
ON/OFF cursor y el parpadeo del cursor
Cursor / 0 0 0 0 0 1 S/C R/L * * mueve el cursor o desplaza el display
Display sin cambiar al contenido de la pantalla
Funcin 0 0 0 0 1 DL N F * * define el ancho de interfase, el nmero
SET de lneas del display y caracteres
Direccin 0 0 0 1 ACG define la direccin en el display
DDRAM del RAM del generador de caracteres
Direccin 0 0 1 ADD define la direccin en el display
DDRAM del RAM de datos del display
Busy Flag / 0 1 BF AC indica si la operacin interna est en
Addres
Read
proceso y lee direcciones de contenido
Escritura 1 0 Escritura de Datos escribe los datos en el DDRAM
de Datos o en el CGRAM
Lectura 1 1 Lectura de Datos lee datos del DDRAM o del CCRAM
de Datos
En el cuadro de instrucciones del display se emplearon las siguientes
abreviaturas:
* : posicin no vlida.
I / D : direccin del cursor. 1, hacia la derecha. 0, hacia la izquierda.
S : desplazamiento del display. 1, activado. 0, desactivado.
D : display. 1, activado. 0, desactivado.
C : cursor. 1, activado. 0, desactivado.
B : parpadeo del cursor. 1, activado. 0, desactivado.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
143
S /C : desplazamiento / cursor. 1, desplazamiento del display.
0, movimiento del cursor.
R / L : desplaza el display. 1, hacia la derecha. 0, hacia la izquierda.
DL : ancho de la interfase. 1, 8-bits. 0, 4-bits.
N : lneas del display. 1, dos lneas. 0, una lnea.
F : puntos de los caracteres. 1, 5x10 puntos. 0, 5x7 puntos.
BF : 1, operacin interna en proceso. 0, instruccin aceptada.
DDRAM : RAM de datos del display.
CGRAM : RAM del generador de caracteres.
ACG : direccin del CGRAM
ADD : direccin del DDRAM.
AC : contador de direcciones.
Despus de inicializar el display, se realiza el programa de interfase, el cual
permite que se visualicen los mensajes, datos y resultados que se necesiten o se
quieran presentar durante la aplicacin.
En el siguiente ejemplo se presenta la interfase de 8-bits PIC - display, en la que
se indica la forma de inicializar el display y de visualizar un mensaje.
; In osfo rogrnmn so omIonn fros subrufInns do grnn nyudn nrn oI onvo
; y ojocucIon do Ins InsfruccIonos quo mnnojnn oI Jieplo,: !!IVA!, I!SY
; y SI_CHA!.
STAT!S oqu 3
!I0 oqu 5
IO!T oqu 8 ; oI Iuorfo mnnojn oI bus do dnfos
T!IS oqu 88
IO!TI oqu 9 ; oI Iuorfo I mnnojn oI bus do confroI.
T!ISI oqu 89
I oqu 0 ; Ii/e doI Iuorfo I
!S oqu l
!_W oqu 2
CHA! oqu 2l ; rogIsfros nuxIIInros
TIMI oqu 22
STA!T cIrf IO!T
cIrf IO!TI
bsf STAT!S,!I0
cIrf T!IS
cIrf T!ISI
bcf STAT!S,!I0
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
144
; InIcInIIzncIon y confIgurncIon doI Jieplo,
ISI!AY_IIT movIw b'00lll000' ; IuncIon SIT
cnII !!IVA!
movIw b'0000l000' ; Dieplo, OII
cnII !!IVA!
movIw b'0000ll00' ; Dieplo, O
cnII !!IVA!
movIw b'00000ll0' ; Modo onfry ee/
cnII !!IVA!
movIw b'0000000l' ; !ImInr Jieplo,
cnII !!IVA!
movIw b'l000000l' ; !AM n In osIcIon 2
cnII !!IVA!
; so vn n onvInr oI monsnjo: 'H`, `O`, '!`, 'A`
movIw 'H`
cnII SI_CHA!
movIw 'O`
cnII SI_CHA! ; Ios doms monsnjos so
movIw '!`
cnII SI_CHA! ; onvnn do IgunI formn
movIw 'A`
cnII SI_CHA!
; subrufInns
!!IVA! movwf CHA! ; modInnfo osfn subrufInn so
cnII I!SY ; onvnn hncIn oI Jieplo, Ios
movf CHA!,w ; codIgos do Ins InsfruccIonos
movwf IO!T
bcf IO!TI,!_W
bcf IO!TI,!S
bsf IO!TI,I
bcf IO!TI,I
rofurn
SI_CHA! movwf CHA! ; modInnfo osfn subrufInn so
cnII I!SY ; onvnn hncIn oI Jieplo, Ios
movf CHA!,w ; cnrncforos quo comonon Ios
movwf IO!T ; dIforonfos monsnjos
bcf IO!TI,!_W
bsf IO!TI,!S
bsf IO!TI,I
bcf IO!TI,I
rofurn
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
145
I!SY bsf STAT!S,!I0 ; osfn subrufInn so oncnrgn
movIw b'llllllll' ; do vorIfIcnr sI oI cnrncfor o
movwf T!IS ; InsfruccIon yn so hn rocIbIdo
bcf STAT!S,!I0 ; y rocosndo on oI moduIo doI
bcf IO!TI,!S ; Jieplo,.
bsf IO!TI,!_W
bsf IO!TI,I
bcf IO!TI,I
movf IO!T,w
movwf TIMI
bffsc TIMI,?
gofo I!SY
bcf IO!TI,!_W
bsf STAT!S,!I0
movIw b'00000000'
movwf T!IS
bcf STAT!S,!I0
rofurn
ond ; IIn doI rogrnmn
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
146
GLOSARIO DE TRMINOS
ACUMULADOR: Registro de la unidad aritmtica y lgica del ordenador que
almacena los resultados intermedios.
ADC: Acrnimo de Analog to Digital Converter ( Conversor anlogo a digital )
ADMINISTRADOR DE MEMORIA EXTENDIDA: Programa que impide que
distintas aplicaciones utilicen la misma rea de memoria extendida al mismo
tiempo.
ALGORITMO: Procedimiento o conjunto de procedimientos que describen una
asociacin de datos lgicos destinados a la resolucin de un problema. Los
algoritmos permiten automatizar tareas.
ANCHO DE BANDA: Es la cantidad de informacin, normalmente expresada en
bits por segundo, que puede transmitirse en una conexin durante la unidad de
tiempo elegida. Es tambin conocido por su denominacin inglesa: bandwith.
ARCHIVO DE SISTEMA: Archivo que contiene la informacin necesaria para
ejecutar el sistema operativo.
AREA DE MEMORIA ALTA: (HMA) Los primeros 64 KB de memoria extendida.
Esta rea es utilizada por algunas aplicaciones, entre ellas Windows.
AREA DE MEMORIA SUPERIOR: rea de 384 KB adyacentes a los 640 KB de
memoria convencional. Esta rea se reserva usualmente para el funcionamiento
de los componentes de hardware del sistema, tal como el monitor, y no se
considera parte de la memoria total, ya que las aplicaciones no pueden almacenar
informacin en ella.
ASCII: Siglas de American Standar Code for Information Exchange. Se trata de un
cdigo casi universal para caracteres, nmeros y smbolos, asignndole un
nmero entre el 0 y el 255 a cada uno de ellos, como por ejemplo, el 65 para la
letra A.
ASYNC: Acrnimo de Asyncronous ( Asncrono ). Es el tipo de comunicacin por
el cual los datos se pasan entre dispositivos de forma asncrona o sea que la
transmisin de un caracter es independiente del resto de los dems caracteres.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
147
BANDERA: Indicador interior del programa que da informacin sobre una
condicin determinada.
BAUDIO: Unidad que mide la velocidad de transmisin de los datos. Normalmente
representa el nmero de bits por segundo.
BIT DE INICIO: Primer bit en un conjunto de datos que indica que los siguientes
son datos.
BIT DE PARADA: ltimo bit en un conjunto de datos que indica que los anteriores
son datos.
BIT DE PARIDAD: Se trata del mtodo ms elemental de deteccin de errores.
Consiste en un nico bit que indica si el nmero de bits enviados es par o impar.
BITS POR SEGUNDO: Se abrevia usualmente como 'bps'. Es el nmero de bits
de datos enviados por segundo y es la autntica velocidad de transmisin.
BLOQUES DE MEMORIA SUPERIOR: (UMOS) Zonas no utilizadas del rea de
memoria superior. Si se dispone de una computadora con un procesador 80386 o
80486, es posible copiar en los bloques de memoria superior informacin
procedente de otros tipos de memoria, liberando as ms memoria convencional
(los primeros 640 KB).
BUCLE: Conjunto de instrucciones que se repiten varias veces seguidas.
BUFFER: rea de almacenamiento temporal de informacin.
BUS: ( Lnea ) Cableado utilizado para transmitir un conjunto de seales de
informacin entre dispositivos de un computador. De su amplitud ( expresada en
bits simultneos ) depende su velocidad.
CACH DE DISCO: Una porcin de la memoria reservada para almacenar
temporalmente informacin leda en un disco.
CAMPO: Coleccin de caracteres que forman un grupo distinto, como un cdigo
de identificacin, un nombre o una fecha. Generalmente un campo forma parte de
una informacin.
CHECKSUM: ( Suma de comprobacin ). Es el ms elemental de los controles de
errores. Consiste normalmente en un nico byte obtenido mediante una o varias
operaciones matemticas realizadas sobre todos los bytes de un bloque de datos
con el fin de controlar los posibles errores que se produzcan durante una
transmisin.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
148
COMPILADOR: Programa que pasa otro programa escrito en un lenguaje de alto
nivel ( parecido al humano ) al lenguaje de la mquina de modo que sta lo
entienda perfectamente.
COMUNICACIN SNCRONA: Es el tipo de comunicacin por el cual los datos se
pasan entre dispositivos de forma sncrona o sea que la transmisin depende de la
meticulosa sincronizacin de los datos transmitidos, enviados y de sus propios
mecanismos de transmisin. No requiere ni bit de inicio ni bit de parada, a
diferencia de la comunicacin asncrona.
CPU: Acrnimo de Central Processing Unit ( unidad central de procesamiento ) Es
el procesador central del computador encargado de controlar rutinas, realizar
funciones aritmticas, y otras tareas propias. Cada vez se le suele descargar de
ms tareas, consiguiendo de esta forma un mayor rendimiento.
DAC: Acrnimo de Digital to Analog Converter ( Conversor de digital a analgico )
DEPURAR: ( debug ). Eliminar los errores de un programa.
DIAGRAMA DE FLUJO ( FLOW-CHART ): Trazado de la escritura y curso de un
programa en el que se utilizan formas diferentes, como un rectngulo o un
cuadrado para indicar una accin del ordenador, y un rombo para las decisiones
tomadas por ste. Normalmente, se suele hacer el grfico o diagrama del
programa antes de introducir una sola lnea de ste en el computador.
DIRECCIN: Nmero que se refiere a la posicin, generalmente en la memoria
del computador, en la que se almacena la informacin.
DIRECCIONES DE E/S: ( Entrada /Salida ) Posiciones dentro del espacio de
direccin de entrada/salida de la computadora que son utilizadas por un
dispositivo, como puede ser una impresora o un mdem. La direccin es utilizada
para la comunicacin entre el software y el dispositivo.
DMA: Acrnimo de Direct Memory Access ( Acceso directo a memoria ).
DOBLE PALABRA: Agrupacin de 32 bits consecutivos equivalente a cuatro
bytes.
E/S: Acrnimo de 'Entrada/Salida'. Suele aplicarse al flujo de datos. Tambin es
conocido por su acrnimo ingls 'I/O'.
EMULADOR DE MEMORIA EXPANDIDA: Utilidad que convierte memoria
extendida en memoria expandida.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
149
ENSAMBLADOR ( ASSEMBLER ): Es un programa que convierte otro programa
escrito en lenguaje de ensamble ( assembly language ) en un cdigo que el
microprocesador puede ejecutar directamente.
ENTRADA ( INPUT ): Toda la informacin que se introduce en un programa
durante su ejecucin.
FIRMWARE: Son los programas que funcionan dentro del computador,
relacionados ntimamente con el hardware. El firmware puede alterarse, hasta
cierto punto, por medio del software.
I/O: Acrnimo de Input/Output ( Entrada/Salida ). Suele aplicarse al flujo de datos.
Tambin es conocido por su acrnimo castellano 'E/S' ( Entrada/Salida ).
INSTRUCCIN: Elemento del cdigo de programacin que le dice al computador
que lleve a cabo una tarea determinada. Una instruccin en lenguaje de ensamble,
por ejemplo, podra ser ADD, con lo que le dice al ordenador que realice una
suma.
INTEL: Uno de los mayores fabricantes de procesadores, chips y circuitos
integrados del mundo, de nacionalidad estadounidense. Sus 'CPUs' ms
conocidas son: 8086, 8088, 80286, 80386, 80486, Pentium y su co-procesador
matemtico: 80387.
INTERFAZ: Conexin mecnica o elctrica que permite el intercambio de
informacin entre dos dispositivos o sistemas. Habitualmente se refiere al
'software' y 'hardware' necesarios para unir dos elementos de proceso en un
sistema o bien para describir los estndares recomendados para realizar dichas
interconexiones. Es ms conocido por su denominacin inglesa: 'interface'.
INTERRUPCIN: Seal que un dispositivo enva a la computadora cuando dicho
dispositivo, por ejemplo, no est listo para aceptar o enviar informacin.
IRQ: Acrnimo de Interrupt ReQuest ( Peticin de interrupcin ). Seal que enva
un dispositivo para ser atendido por el programa encargado de gestionarlo. En un
PC ( no inferior a un 80286 ) existen 15 IRQs de las cuales slo los nmeros 10,
11, 12 y 15 estn realmente libres ya que las otras las ocupa el propio sistema.
Conocido simplemente como: interrupcin.
K: Abreviatura de kilobyte; 1 K= 1.024 bytes .
KB/S: Acrnimo de Kilobytes per second ( Kilo-bytes por segundo )
KBIT/S: Acrnimo de Kilobits per second ( Kilobits por segundo )
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
150
LENGUAJE DE ALTO NIVEL: Lenguaje de programacin que utiliza instrucciones
escritas con palabras comunes.
LENGUAJE DE BAJO NIVEL: Lenguaje parecido al utilizado en el computador.
LENGUAJE DE MQUINA: Es el escaln inferior al lenguaje de bajo nivel; es el
lenguaje que el ordenador entiende directamente .
LNEAS DE INTERRUPCIN REQUERIDA: ( IRO ) Lneas del hardware sobre las
cuales los dispositivos pueden enviar seales de interrupcin, las que indican si el
dispositivo est listo para aceptar o enviar informacin. Por lo general, cada uno
de los dispositivos conectados a la computadora utiliza una lnea IRQ
independiente.
MAINFRAME: Computador muy potente al que se conectan una o varias
estaciones de trabajo.
MB/S: Acrnimo de Megabytes per second ( Mega-bytes por segundo]
MBIT/S: Acrnimo de Megabits per second ( Megabits por segundo )
MEGABYTE: Equivale a: 1024 Kilo-bytes 1.048.576 bytes ( 2 elevado a la 20 ).
MEMORIA CONVENCIONAL: Primeros 640 KB de memoria que utiliza el
MS-DOS para ejecutar aplicaciones.
MEMORIA EXPANDIDA: Memoria que utilizan algunas aplicaciones No-Windows
adems de la memoria convencional. La memoria expandida es un estndar
antiguo que se est sustituyendo hoy por la memoria extendida. Slo el software
compatible con EMS puede utilizar memoria expandida. Cuando Windows se
ejecuta en el modo extendido del 386, simula memoria expandida para aquellas
aplicaciones que la necesiten. Tambin denominada Memoria EMS.
MEMORIA EXTENDIDA: Memoria ms all de un megabyte (MB) en las
computadoras basadas en los procesadores 80286, 80386 y 80486. Windows
utiliza memoria extendida para administrar y ejecutar aplicaciones. Por lo general,
la memoria extendida no podr ser utilizada por las aplicaciones No-Windows ni
por MS-DOS.
MEMORIA VIRTUAL: Sistema de administracin de memoria utilizado por
Windows en el modo extendido del 386, que permite ejecutar Windows como si
hubiese ms memoria de la que existe en realidad. La cantidad de memoria virtual
disponible ser igual a la cantidad de memoria RAM libre sumada al volumen de
espacio de disco asignado a un archivo de intercambio que Windows utiliza para
simular memoria RAM adicional.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
151
MEMORIA VOLATIL: Un mecanismo de memoria que pierde sus contenidos
cuando se le corta la energa elctrica.
MICRO: Abreviatura de microcomputador.
MICROCHIP: Diminuto circuito de silicio que funciona como memoria, procesador,
etc .
MICROPROCESADOR: El chip que hace de corazn del computador o de su
parte pensante.
MODO EXTENDIDO DEL 386: Modo en el que se ejecuta Windows para tener
acceso a las capacidades de memoria virtual del procesador Intel 80386. En este
modo, Windows parece utilizar ms memoria de la disponible fsicamente y puede
trabajar en el modo de multitarea con aplicaciones No-Windows.
MODO PROTEGIDO: Modo de funcionamiento de la computadora que permite
tener acceso directamente a la memoria extendida.
MSB: Acrnimo de Most Significant Bit ( Bit ms significativo )
MULTITAREA: Capacidad que tiene una computadora de ejecutar varias
aplicaciones al mismo tiempo.
MULTIUSUARIO: Capacidad de permitir el acceso a varios usuarios simultneos
a un determinado programa, aplicacin, sistema o servicio telemtico en lnea sin
destruir la integridad de mismo.
NIBBLE: Agrupacin de 4 bits consecutivos equivalente a medio byte.
PALABRA: Word. Agrupacin de 16 bits consecutivos equivalente a dos bytes.
PAQUETE: Conjunto de caracteres enviados conjuntamente durante una
comunicacin. Los bloques ms comunes suelen ser de 64, 128 1024.
PC: Acrnimo de Personal Computer ( Computadora personal ) Computador
presentado por 'IBM' el 12 de agosto de 1981 en EE.UU. y comercializado en
1982. Fue el primer ordenador que se vendi masivamente en todo el mundo
siendo su denominacin original: 'IBM PC'. Con la idea de que el ordenador deba
transportarse, surgi su primer competidor: 'Compaq' que lanz en 1982 su propio
porttil. El despegue real del 'PC' lleg en 1983 cuando 'IBM' anunci un autntico
estndar: el 'PC XT' siendo posteriormente culminado por el 'PC AT'.
PERIFRICO: Dispositivo externo o interno que se conecta al computador.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
152
POR DEFECTO: Dcese del disco, el programa, etc. que entra en funcionamiento
cuando no se da ninguna otra instruccin.
PUERTO: Canal o interfaz que une un perifrico a un microprocesador. Puede ser
serie ( enva los datos bit a bit ) o paralelo ( enva los datos byte a byte ).
REGISTRO: Parte de la memoria del computador que contiene datos de uso
frecuente .
SALIDA (OUTPUT): Todos los datos producidos por el computador mientras est
procesando, ya aparezcan estos datos en la pantalla, ya los entregue a la
impresora o los utilice internamente.
SERVIDOR: Computadora que suministra espacio de disco, impresoras u otros
servicios a computadoras conectadas con ella a travs de una red.
TERMINAL: Dispositivo de entrada/salida de datos. El terminal "tonto" ( a veces
denominado 'TTY' ) maneja simplemente dicha entrada/salida mientras que el
"inteligente" utiliza un microprocesador para realizar esa tarea con capacidades
adicionales no disponibles en el anterior.
TIEMPO DE ESPERA: Cantidad de tiempo que deber esperar la computadora
cuando un dispositivo no ejecute una determinada tarea, antes de presentar un
mensaje de error.
TIEMPO REAL: Modalidad de funcionamiento de un sistema de proceso de datos
que controla una actividad en curso, con un tiempo de respuesta prcticamente
nulo a la recepcin de las seales de entrada.
UNIDAD: Dispositivo de un computador que acepta discos o cintas en los que lee
o graba datos.
UNIDAD CENTRAL DE PROCESAMIENTO: Es el corazn del computador, en
donde se llevan a cabo las funciones aritmticas, lgicas, de procesamiento y de
control.
VLSI: Acrnimo de Very Large Scale Integration ( Integracin a muy gran escala )
Este tipo de integracin permite disear circuitos cada vez ms reducidos en
tamao lo que, en la prctica, hace que nuestros computadores, mdems, etc
sean cada vez ms diminutos, aumentando paradjicamente sus prestaciones.
UNIVERSIDADNACIONAL ABIERTA Y A DISTANCIA
FACULTADDE CIENCIAS BSICAS E INGENIERA
153
FUENTES DOCUMENTALES
DOCUMENTOS IMPRESOS
MDULO DE ESTUDIO: Microprocesadores UNAD.
ANGULO, Jos M. Microcontroladores PIC: Diseo Prctico de Aplicaciones.
( 2 edicin ). Editorial Mc Graw Hill. Espaa, 1999.
BREY, Barry. Los microprocesadores INTEL. ( 5 edicin ). Editorial Prentice-
Hall. Mxico, 2001.
CEKIT. Curso bsico de microprocesadores.
STALLINGS, William. Organizacin y Arquitectura de Computadores. ( 5 edicin ).
Editorial Prentice-Hall. Madrid, 2000.
TOKHEIM, Roger. Fundamentos de los Microprocesadores. ( 2 edicin ).
Editorial Mc Graw Hill. Mxico, 1985.
URUUELA, Jos M. Microprocesadores: Programacin e Interconexin.
( 2 edicin ). Editorial Mc Graw Hill. Espaa, 1995.
DIRECCIONES DE SITIOS WEB
http://www.duiops.net/hardware/micros/micros.htm#Principio
http://usuarios.lycos.es/irojasb/El_Microprocesador.htm
http://www.alpertron.com.ar/INTEL.HTM
http://www.conocimientosweb.net/dcmt/ficha4227.html
http://www.unicrom.com/Tut_PICs1.asp
http://perso.wanadoo.es/chyryes/tutoriales/pic0.htm
http://www.abcdatos.com/tutoriales/electronicayelectricidad/electronica/microcontroladorespic.html

S-ar putea să vă placă și