Sie sind auf Seite 1von 62

INSTITUTO TECNOLOGICO NACIONAL DE MEXICO

CAMPUS ISTMO

INGENIERIA EN MECATRONICA

MICROCONTROLDADORES
MC GASTON DEHESA VALENCIA

UNIDAD I1
ARQUITECTURA DE LOS MICROCONTROLADORES

SANTIAGO LOPEZ MARCO ANTONIO


CULAJAY SANTIAGO KIMBER GIOVANI
ALONSO VICENTE LEIBNIZ
7 MT

31/10/17

1
Contenido
Microcontroladores.....................................................................................................................................3
Arquitectura de los microcontroladores ........................................................................................................4
La arquitectura Harvard y sus ventajas: .............................................................................................5
Arquitectura interna de un microcontrolador. .....................................................................................6
CPU (unidad central de proceso): .......................................................................................................6
Memoria: ..................................................................................................................................................6
Unidades de entrada/salida: .................................................................................................................7
Arquitectura RISC y CISC .....................................................................................................................8
1.1 Diferencia entre microcomputadora y, microprocesador y microcontrolador ........................................9
1.2 Caractersticas y aplicaciones de microcontroladores. ..........................................................................11
1.3 Tipos de arquitecturas computacionales ...............................................................................................18
1.4 Tipos de microcontroladores y sus fabricantes .....................................................................................22
1.5 Componentes del microcontrolador ......................................................................................................29
1.5.1 Registros internos...............................................................................................................................30
1.5.2 Tipos y distribucin de las memorias internas ...................................................................................39
1.5.3 Perifricos ..........................................................................................................................................41
1.5.4 Instrucciones del microcontrolador. ...................................................................................................43
1.5.6 El reset y sus posibles fuentes. ...........................................................................................................48
1.6 Caractersticas de la fuente de alimentacin y consumo de potencia del microcontrolador. ................54
1.7 Ambiente integrado de desarrollo (IDE) ...............................................................................................54
1.7.1 Ensamblador y compilador. ...............................................................................................................55
1.7.2 Simulador, debugger y emulador. ......................................................................................................57
1.7.3 Equipos programadores (downloaders)..............................................................................................59
1.8 Herramientas de desarrollo. ..................................................................................................................60
Bibliografa .................................................................................................................................................62

2
Microcontroladores

Figura 1.1 microcontrolador

Primero que todo comenzaremos definiendo que son los microcontroladores: Los
microcontroladores (abreviado C, UC o MCU) son circuitos integrados que son
capaces de ejecutar rdenes que fueron grabadas en su memoria. Su composicin est
dada por varios bloques funcionales, los cuales cumplen una tarea especfica.

Son dispositivos que operan uno o ms procesos, por lo general los microcontroladores
estn basados en la arquitectura de Harvard, la cual consiste en dispositivos de
almacenamiento separados (memoria de programa y memoria de datos).
El termino microcontrolador est dado por dos palabras que son Micro-Controlador
las cuales tienen por significado pequeo (en tamao) y maniobrar o controlar
(funcin principal) procesos los cuales son definidos mediante la programacin. Un
micro controlador est constituido en su interior por las tres principales unidades
funcionales de una computadora.

Las cuales son: unidad central de procesamiento, memoria y perifricos de entrada y


salida. En fin un microcontrolador es un sistema completo, con unas prestaciones
limitadas que no pueden modificarse y que puede llevar a cabo las tareas para las que
ha sido programado de forma autnoma. En cuanto a la arquitectura de los
microcontroladores la detallaremos con mayor profundidad a continuacin

3
Arquitectura de los microcontroladores

Arquitectura Von Neumann La arquitectura tradicional:

Figura 1.2 arquitectura

La arquitectura tradicional de computadoras y microcontroladores se basa en el


esquema propuesto por John Von Neumann, en el cual la unidad central de proceso, o
CPU, est conectada a una memoria nica que contiene las instrucciones del programa
y los datos.

El tamao de la unidad de datos o instrucciones est fijado por el ancho del bus de la
memoria. Las dos principales limitaciones de esta arquitectura tradicional son:

a) Que la longitud de las instrucciones est limitada por la unidad de longitud de


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

b) La velocidad de operacin (o ancho de banda de operacin) est limitada por


el efecto de cuello de botella que significa un bus nico para datos e instrucciones que
impide superponer ambos tiempos de acceso.

La arquitectura Von Neumann permite el diseo de programas con cdigo


automodificable, prctica bastante usada en las antiguas computadoras que solo tenan
acumulador y pocos modos de direccionamiento, pero innecesaria, en las
computadoras modernas.

4
La arquitectura Harvard y sus ventajas:

Figura 1.3 memoria

La arquitectura conocida como Harvard, consiste simplemente en un esquema en el


que el CPU est conectado a dos memorias por intermedio de dos buses separados.
Una de las memorias contiene solamente las instrucciones del programa, y es llamada
Memoria de Programa.

La otra memoria solo almacena los datos y es llamada 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 la memoria de programa.

Pueden disearse de manera tal que todas las instrucciones tengan una sola posicin
de memoria de programa de longitud. Adems, como los buses son independientes, el
CPU puede estar accediendo a los datos para completar la ejecucin de una instruccin,
y al mismo tiempo estar leyendo la prxima instruccin a ejecutar. Podemos observar
claramente que las principales ventajas de esta arquitectura son:

a) El tamao de las instrucciones no est relacionado con el de los datos, y por


lo tanto puede ser optimizado para que cualquier instruccin ocupe una sola posicin
de memoria de programa, logrando as mayor velocidad y menor longitud de programa.

b) El tiempo de acceso a las instrucciones puede superponerse con el de los


datos, logrando una mayor velocidad de operacin.

Una pequea desventaja de los procesadores con arquitectura Harvard, es que deben
poseer instrucciones especiales para acceder a tablas de valores constantes que pueda
ser necesario incluir en los programas, ya que estas tablas se encontraran

5
fsicamente en la memoria de programa (por ejemplo en la EPROM de un
microprocesador).

Arquitectura interna de un microcontrolador.

Figura 1.4 arquitectura interna

CPU (unidad central de proceso):

Podemos decir que la CPU, siglas en ingls de unidad central de proceso, es el ncleo
del microcontrolador. Se encarga de ejecutar las instrucciones almacenadas en la
memoria, de la que hablaremos ms adelante. Es lo que habitualmente llamamos
procesador o microprocesador, trmino que a menudo se confunde con el de
microcontrolador.

En esta lnea cabe aclarar que, tal y como estamos viendo, ambos trminos no son lo
mismo: el microprocesador es una parte de un microcontrolador y sin l no sera til; un
microcontrolador, en cambio, es un sistema completo que puede llevar a cabo de forma
autnoma una labor.

Memoria:

Entendemos por memoria los diferentes componentes del microcontrolador que se


emplean para almacenar informacin durante un periodo determinado de tiempo. La
informacin que necesitaremos durante la ejecucin del programa ser, por un lado, el
propio cdigo, y por otro, los diferentes datos que usemos durante la ejecucin del
mismo.

Hablaremos por tanto de memoria de programa y de memoria de datos,


respectivamente. La diferente naturaleza de la informacin que hay que almacenar
hace necesario el uso de diferentes tipos memorias. Sin hacer especial nfasis en este

6
apartado, s habr que tener en cuenta una clasificacin bsica, que distingue entre
memoria voltil y no voltil. La primera es aquella que pierde la informacin que
almacena al desconectarla de la alimentacin; la segunda, como resulta obvio, no.

Por lo tanto, se hace evidente que al menos la memoria de programa deber ser no
voltil: no sera prctico que el programa grabado en el microcontrolador se borrara
cada vez que apagramos el dispositivo. Con respecto a la memoria de datos, diremos
por el momento segn la situacin puede interesarnos una u otra.

Unidades de entrada/salida:

Las unidades de entrada/salida son los sistemas que emplea el microcontrolador para
comunicarse con el exterior. Imaginemos una televisin: por un lado tiene un dispositivo
de salida, como es la pantalla, y por otro lado, de entrada, como son los botones de
subir o bajar volumen y de cambio de canal.

As, los dispositivos de entrada nos permitirn introducir informacin en el


microcontrolador y los de salida nos servirn para que ste la saque al exterior.

7
Arquitectura RISC y CISC

Figura 1.5 RISC y CISC

RISC (Reduced Instruction Set Computer) Computadora con Juego de Instrucciones Reducidas.

En este caso la idea es que el microcontrolador reconoce y ejecuta slo operaciones


bsicas (sumar, restar, copiar etc.) Las operaciones ms complicadas se realizan al
combinar stas (por ejemplo, multiplicacin se lleva a cabo al realizar adicin sucesiva).

Es como intentar explicarle a alguien con pocas palabras cmo llegar al aeropuerto en
una nueva ciudad. Sin embargo, no todo es tan oscuro. Adems, el microcontrolador es
muy rpido as que no es posible ver todas las acrobacias aritmticas que realiza.

El usuario slo puede ver el resultado final de todas las operaciones. Por ltimo, no es
tan difcil explicar dnde est el aeropuerto si se utilizan las palabras adecuadas tales
como: a la derecha, a la izquierda, el kilmetro etc.

8
1.1 Diferencia entre microcomputadora y, microprocesador y microcontrolador

El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso


(CPU), tambin llamado procesador, de un computador. El CPU est formado por la
Unidad de Control, que interpreta las instrucciones, y el BUS de Datos, que los ejecuta.
Los pines de un microprocesador sacan al exterior.

Las lneas de sus buses de direcciones, datos y control, para permitir conectarle con la
Memoria y los Mdulos de (ENTRADA / SALIDA) E/S y configurar un computador
implementado por varios circuitos integrados. Se dice que un microprocesador es un
sistema abierto porque su configuracin es variable de acuerdo.

Con la aplicacin a la que se destine. El microcontrolador es un sistema cerrado. Todas


las partes del computador estn contenidas en su interior y slo salen al exterior las
lneas que gobiernan los perifricos. Las caractersticas de un sistema cerrado
representan una desventaja con relacin a los Microprocesadores.

Pero en la prctica cada fabricante de microcontroladores oferta un elevado nmero de


modelos diferentes, desde los ms sencillos hasta los ms poderosos. Es difcil no
encontrar uno que se adapte a nuestros requerimientos del momento. Es posible
seleccionar la capacidad de las memorias, el nmero de lneas.

De (ENTRADA / SALIDA) E/S, la cantidad y potencia de los elementos auxiliares, la


velocidad de funcionamiento, etc. Por todo ello, un aspecto muy destacado del diseo
es la seleccin del microcontrolador a utilizar. Podemos concluir con que la diferencia
fundamental entre un Microprocesador y un Microcontrolador: es.

Que el Microprocesador es un sistema abierto con el que se puede construirse un


computador con las caractersticas que se desee, acoplndole los mdulos necesarios.
Los productos que para su regulacin incorporan un microcontrolador disponen de las
siguientes ventajas: Aumento de prestaciones, un mayor control sobre un determinado
elemento.

9
Representa una mejora considerable en el mismo. Aumento de la habilidad al
reemplazar el microcontrolador por un elevado nmero de elementos disminuye el
riesgo de averas y se precisan menos ajustes. Reduccin del tamao en el producto
acabado. La integracin del microcontrolador en un chip disminuye el volumen.

La mano de obra y los stocks. Mayor flexibilidad: las caractersticas de control estn
programadas por lo que su medicacin slo necesita cambios en el programa de
instrucciones.

Una microcomputadora o microordenador es una computadora pequea, con un


microprocesador como su unidad central de procesamiento (CPU). Generalmente, el
microprocesador incluye los circuitos de almacenamiento (o memoria cach) y
entrada/salida en el mismo circuito integrado (o chip).

10
1.2 Caractersticas y aplicaciones de microcontroladores.

Recibe el nombre de controlador el dispositivo que se emplea para el gobierno de uno o


varios procesos. Por ejemplo, el controlador que regula el funcionamiento de un horno
dispone de un sensor que mide constantemente su temperatura interna y, cuando
traspasa los lmites prefijados.

Genera las seales adecuadas que accionan los actuadores que intentan llevar el valor
de la temperatura dentro del rango estipulado. Aunque el concepto de controlador ha
permanecido invariable a travs del tiempo, su implementacin fsica ha variado
frecuentemente.

Hace tres dcadas los controladores se construan exclusivamente con componentes


de lgica discreta; posteriormente se emplearon los microprocesadores, que se
rodeaban con chips de memoria y E/S sobre una tarjeta de circuito impreso.

En la actualidad, todos los elementos del controlador se han podido incluir en un chip,
el cual recibe el nombre de microcontrolador. Realmente consiste en un sencillo pero
completo computador contenido en el corazn (chip) de un circuito integrado.

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. Otra parte de memoria ser tipo RAM,
voltil, y se destina a guardar las variables y los datos.

La RAM en estos dispositivos es de poca capacidad pues slo debe contener las
variables y los cambios de informacin que se produzcan en el transcurso del programa.
Por otra parte, como slo existe un programa activo, no se requiere guardar una copia
del mismo en la RAM pues se ejecuta directamente desde la ROM

11
Segn el tipo de memoria ROM que dispongan los microcontroladores, la aplicacin y
utilizacin de los mismos es diferente. Se describen las cinco versiones de memoria no
voltil que se pueden encontrar en los microcontroladores del mercado.

1. ROM con mscara

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

2. OTP

El microcontrolador contiene una memoria no voltil de slo lectura programable una


sola vez por el usuario. OTP (One Time Programable). La versin OTP es
recomendable cuando es muy corto el ciclo de diseo del producto, o bien, en la
construccin de prototipos y series muy pequeas.

3 EPROM

Los microcontroladores que disponen de memoria EPROM (Erasable Programmable


Read Only Memory) pueden borrarse y grabarse muchas veces. La grabacin se
realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si,
posteriormente, se desea borrar el contenido, disponen de una ventana de cristal.

En su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios


minutos. Las cpsulas son de material cermico y son ms caros que los
microcontroladores con memoria OTP que estn hechos con material plstico.

4 EEPROM

Se trata de memorias de slo lectura, programables y borrables elctricamente


EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la
programacin como el borrado, se realizan elctricamente desde el propio grabador y
bajo el control programado de un PC. Es muy cmoda y rpida la operacin de grabado y
la de borrado.

12
Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito,
pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito.
Para ello se usan grabadores en circuito que confieren una gran flexibilidad y rapidez.

A la hora de realizar modificaciones en el programa de trabajo. Se va extendiendo en


los fabricantes la tendencia de incluir una pequea zona de memoria EEPROM en los
circuitos programables para guardar y modificar cmodamente una serie de parmetros
que adecuan el dispositivo a las condiciones del entorno.

5 FLASH

Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar.
Funciona como una ROM y una RAM pero consume menos y es ms pequea. A
diferencia de la ROM, la memoria FLASH es programable en el circuito. Es ms rpida y
de mayor densidad que la EEPROM.

La alternativa FLASH est recomendada frente a la EEPROM cuando se precisa gran


cantidad de memoria de programa no voltil. Es ms veloz y tolera ms ciclos de
escritura/borrado.

Las memorias EEPROM y FLASH son muy tiles al permitir que los microcontroladores
que las incorporan puedan ser reprogramados en circuito, es decir, sin tener que sacar
el circuito integrado de la tarjeta. As, un dispositivo con este tipo de memoria
incorporado al control del motor de un automvil.

Permite que pueda modificarse el programa durante la rutina de mantenimiento


peridico, compensando los desgastes y otros factores tales como la compresin, la
instalacin de nuevas piezas, etc. La reprogramacin del microcontrolador puede
convertirse en una labor rutinaria dentro de la puesta a punto.

Puertas de Entrada y Salida

La principal utilidad de las patitas que posee la cpsula que contiene un


microcontrolador es soportar las lneas de E/S que comunican al computador interno
con los perifricos exteriores.

13
Reloj principal

Todos los microcontroladores disponen de un circuito oscilador que genera una onda
cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la
sincronizacin de todas las operaciones del sistema. 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 consistir en un cristal de cuarzo junto a elementos pasivos o bien un resonador
cermico o una red R-C. Aumentar la frecuencia de reloj supone disminuir el tiempo en
que se ejecutan las instrucciones pero lleva aparejado un incremento del consumo de
energa.

Recursos especiales

Cada fabricante oferta numerosas versiones de una arquitectura bsica de


microcontrolador. En algunas ampla las capacidades de las memorias, en otras
incorpora nuevos recursos, en otras reduce las prestaciones al mnimo para
aplicaciones muy simples, etc.

La labor del diseador es encontrar el modelo mnimo que satisfaga todos los
requerimientos de su aplicacin. De esta forma, minimizar el coste, el hardware y el
software. Los principales recursos especficos que incorporan los microcontroladores
son:

Temporizadores o Timers: Se emplean para controlar periodos de tiempo y para


llevar la cuenta de acontecimientos que suceden en el interior.

Perro guardin o Watchdog: Es un temporizador que cuando se desborda y pasa


por cero provoca un reset automticamente en el sistema.

Estado de reposo o de bajo consumo: Es un estado del sistema donde se detiene el


reloj principal y sus circuitos asociados con el objetivo de ahorrar energa en periodos
de tiempo donde el microcontrolador se mantiene en espera de instrucciones.

Conversor A/D: Procesa seales analgicas convirtindolas en seales digitales.

14
Comparador analgico: Algunos modelos de microcontroladores disponen
internamente de un amplificador operacional que acta como comparador entre una
seal fija de referencia y otra variable que se aplica por una de las patitas de la cpsula.
La salida del comparador proporciona un nivel lgico 1 0 segn una seal sea mayor
o menor que la otra.

Puertas de Entrada y Salida

La principal utilidad de las patitas que posee la cpsula que contiene un


microcontrolador es soportar las lneas de E/S que comunican al computador interno
con los perifricos exteriores.
Reloj principal
Todos los microcontroladores disponen de un circuito oscilador que genera una onda
cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la
sincronizacin de todas las operaciones del sistema. 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


consistir en un cristal de cuarzo junto a elementos pasivos o bien un resonador cermico
o una red R-C. Aumentar la frecuencia de reloj supone disminuir el tiempo en que se
ejecutan las instrucciones pero lleva aparejado un incremento del consumo de energa.

Recursos especiales
Cada fabricante oferta numerosas versiones de una arquitectura bsica de
microcontrolador. En algunas ampla las capacidades de las memorias, en otras
incorpora nuevos recursos, en otras reduce las prestaciones al mnimo para
aplicaciones muy simples, etc. La labor del diseador es encontrar el modelo mnimo
que satisfaga.

15
Todos los requerimientos de su aplicacin. De esta forma, minimizar el coste, el
hardware y el software. Los principales recursos especficos que incorporan los
microcontroladores son:

Temporizadores o Timers: Se emplean para controlar periodos de tiempo y para


llevar la cuenta de acontecimientos que suceden en el interior.

Perro guardin o Watchdog: Es un temporizador que cuando se desborda y pasa


por cero provoca un reset automticamente en el sistema.

Estado de reposo o de bajo consumo: Es un estado del sistema donde se detiene el


reloj principal y sus circuitos asociados con el objetivo de ahorrar energa en periodos
de tiempo donde el microcontrolador se mantiene en espera de instrucciones.

Conversor A/D: Procesa seales analgicas convirtindolas en seales digitales.

Comparador analgico: Algunos modelos de microcontroladores disponen


internamente de un amplificador operacional que acta como comparador entre una
seal fija de referencia y otra variable que se aplica por una de las patitas de la cpsula.
La salida del comparador proporciona un nivel lgico 1 0 segn una seal sea mayor
o menor que la otra.

Aplicaciones

Cada vez existen ms productos que incorporan un microcontrolador con el fin de


aumentar sustancialmente sus prestaciones, reducir su tamao y coste, mejorar su
fiabilidad y disminuir el consumo. Algunos fabricantes de microcontroladores superan
el milln de unidades de un modelo determinado producidas en una semana.

Este dato puede dar una idea de la masiva utilizacin de estos componentes. Los
microcontroladores estn siendo empleados en multitud de sistemas presentes en la
vida diaria, como pueden ser juguetes, horno microondas, frigorficos, televisores,
computadoras, impresoras, mdems, el sistema de arranque de nuestro coche, etc.

Otras aplicaciones como instrumentacin electrnica, control de sistemas en una nave


espacial, etc. Una aplicacin tpica podra emplear varios microcontroladores para

16
controlar pequeas partes del sistema. Estos pequeos controladores podran
comunicarse entre ellos y con un procesador central, probablemente ms potente, para
compartir la informacin y coordinar sus acciones, como, de hecho, ocurre ya
habitualmente en cualquier PC.

Aplicacin tpica podra emplear varios microcontroladores para controlar pequeas


partes del sistema. Estos pequeos controladores podran comunicarse entre ellos y
con un procesador central, probablemente ms potente, para compartir la informacin
y coordinar sus acciones, como, de hecho, ocurre ya habitualmente en cualquier PC.

Actualmente los microcontroladores tienen gran uso en ramos como:

Industria automotriz: Control de motor, alarmas, regulador del servofreno,


dosificador, etc.

Industria de los electrodomsticos: control de calefacciones, lavadoras, cocinas


elctricas, etc.

Informtica: como controlador de perifricos.

Industria de imagen y sonido: tratamiento de la imagen y sonido, control de los


motores de arrastre del giradiscos, video, etc.

17
1.3 Tipos de arquitecturas computacionales

En ciencias de la computacin y la ingeniera, la arquitectura de computadoras es un


conjunto de disciplinas que describen un sistema informtico mediante la especificacin
de las partes y sus relaciones. La Arquitectura de computadoras es diferente de la
arquitectura de los edificios, esta ltima es una forma de arte visual.

Mientras que la primera es parte de la informtica. En ambos casos (edificios y equipo),


un diseo completo tiene muchos detalles, y algunos detalles estn implcitos en la
prctica comn. Por ejemplo, en un nivel alto, la arquitectura de la computadora puede
estar enfocado en cmo acta.

La unidad de procesamiento central (CPU) y la forma en que utiliza la memoria del


ordenador. Algunas arquitecturas informticas de moda incluyen computacin en
clster y no uniforme a memoria. Los Arquitectos informticos utilizan computadoras
para disear nuevos equipos. Los Software de emulacin puede ejecutar programas
escritos.

En un conjunto de instrucciones propuesto. Mientras que el diseo es muy fcil de


cambiar en esta etapa, los diseadores del compilador colaboran con frecuencia con
los arquitectos, lo que sugiere mejoras en el conjunto de instrucciones. Emuladores
modernos pueden medir el tiempo en ciclos de reloj:

El consumo de energa estimado en julios y dar estimaciones realistas de tamao de


cdigo de bytes. Estos afectan a la comodidad del usuario, la vida de una batera, y el
tamao y el costo de la mayor parte fsica de la computadora: su memoria. Es decir,
que ayudan a estimar el valor de un diseo por ordenador.

Subcategoras.

El arte de la arquitectura de la computadora tiene tres categoras principales:

Arquitectura del conjunto de instrucciones o ISA. El ISA se definen los cdigos


que un procesador central lee y acta sobre. Es el lenguaje de mquina (o
lenguaje ensamblador), incluyendo el conjunto de instrucciones, tamao de la

18
palabra, los modos de direccin de memoria, registros del procesador, y los formatos
de datos y de direcciones.

Microarquitectura, tambin conocido como la organizacin Computacional


describe las rutas de datos, elementos de procesamiento de datos y elementos
de almacenamiento de datos, y describe cmo deben aplicar la ISA. [2] El
tamao de un ordenador cach de CPU por ejemplo, es un problema de
organizacin que por lo general no tiene nada que ver con la ISA.

Diseo del sistema incluye todos los dems componentes de hardware dentro
de un sistema de computacin. Estos incluyen:

1. Rutas de datos, tales como buses ordenador e interruptores.

2. Controladores de memoria y jerarquas.

3. El procesamiento de datos que no sea la CPU, tales como acceso directo a


memoria (DMA).

4. Temas diversos tales como la virtualizacin, multiprocesamiento y software


de funciones. Algunos arquitectos de empresas como Intel y AMD utilizan
distinciones ms sutiles:

MacroArquitectura: capas arquitectnicas ms abstractos de la


microarquitectura, por ejemplo: ISA.

Arquitectura del conjunto de instrucciones (ISA): que el anterior pero sin:

Asamblea ISA: un ensamblador inteligente puede convertir un lenguaje


ensamblador abstracto comn a un grupo de mquinas en poco diferente
lenguaje de mquina para diferentes implementaciones

19
Programador MacroArquitectura Visible: herramientas de lenguaje de alto nivel,
tales como compiladores puede definir una interfaz consistente o contrato para
los programadores que utilizan ellos, abstraer diferencias subyacentes ISA,
CASD y microarquitecturas. Por ejemplo: la C , C + + o Java estndares definen
diferente Programmer MacroArquitectura Visible aunque en la prctica la
microarquitectura C para un equipo en particular incluye

CASD (microcdigo Instruction Set Architecture), una familia de mquinas con


diferentes microarquitecturas nivel de hardware, pueden compartir una
arquitectura microcdigo comn, y por lo tanto una CASD.

Pin Arquitectura: Las funciones de hardware que el microprocesador debe


proporcionar a una plataforma de hardware, por ejemplo, el 86 pines A20m,
FERR / IGNNE o un color. Adems, los mensajes que el procesador debe emitir
para que externos caches pueden ser invalidadas (vaciado). Funciones
arquitectura.

Pin son ms flexibles que las funciones de ISA porque el hardware externo puede
adaptarse a las nuevas codificaciones, o cambiar de un alfiler a un mensaje. El trmino
"arquitectura" se ajusta, porque las funciones deben ser proporcionados para los
sistemas compatibles, incluso si los cambios detallados mtodo.
Tipos.
Arquitectura computacional RISC.
En arquitectura computacional, RISC del ingls Reduced Instruction Set Computer
(Computadora con Conjunto de Instrucciones Reducido). Tipo de microprocesadores
con las siguientes caractersticas fundamentales:

1. Instrucciones de tamao fijo y presentado en un reducido nmero de


formatos.

20
2. Slo las instrucciones de carga y almacenamiento acceden a memoria a por
datos.

RISC es una filosofa de diseo de CPU para computadora que est a favor de
conjuntos de instrucciones pequeos y simples que toman menor tiempo para
ejecutarse. El tipo de procesador ms comnmente utilizado en equipos de escritorio,
el x86, est basado en CISC en lugar de RISC.

Aunque las versiones ms nuevas traducen instrucciones basadas en CISC x86 a


instrucciones ms simples basadas en RISC para uso interno antes de su ejecucin.

Arquitectura computacional CISC.


Del ingls Complex Instruction Set Computer. Conjunto de microprocesadores cuyo
conjunto de instrucciones se caracteriza por ser muy amplio y permitir operaciones
complejas entre operandos situados en la memoria o en los registros internos, en
contraposicin a la arquitectura RISC.

Los CISC pertenecen a la primera corriente de construccin de procesadores, antes del


desarrollo de los RISC. Ejemplos de ellos son: Motorola 68000, Zilog Z80 y toda la
familia Intel x86 usada en la mayora de ordenadores personales del planeta.

Diferencias ente CISC y RISC


Todos los CPUs x86 compatibles con la PC son procesadores CISC (Computadora de
Conjunto de Instrucciones Complejas), pero en las Mac nuevas o en alguna que se
hagan dibujos de ingeniera complejos, probablemente tengan un CPU RISC
(Computadora de Conjunto de Instrucciones Reducido).

La diferencia prctica entre CISC y RISC es que los procesadores CISCx86 corren a
DOS, Windows 3.1 y Windows 95 en el modo nativo; es decir, sin la traduccin de
software que disminuya el desempeo. Pero CISC y RISC tambin reflejan dos
filosofas de computacin rivales.

21
1.4 Tipos de microcontroladores y sus fabricantes

Los microcontroladores suelen clasificarse por familias o por el nmero de Bits que
manejan (4, 8, 16 32 bits). Lgicamente los microcontroladores de 16 y 32 bits son
superiores a los de 4 y 8 bits en cuanto a funcionalidades, siendo que los
microcontroladores de 8 bits dominan el mercado.

Prcticamente la totalidad de los microcontroladores actuales se fabrican con


tecnologa CMOS 4 (Complementary Metal Oxide Semiconductor). Esta tecnologa
supera a las tcnicas anteriores por su bajo consumo y alta inmunidad al ruido.

Arquitectura de 8-bits.

PIC10: Es la familia "Baseline" de Microchip, son micros con 12-bit de palabra


de programa y destacan por su bajo precio y nmero de pines escasos, hay
micros de 6 a 14 pines. Son micros potentes ya que segn modelo pueden
contener perifricos de reloj interno, convertidor A/D, comparadores,
interrupciones externas.
Por lo tanto son ideales para cuando el tamao es escaso y la cantidad de pines no es
demasiado grande para nuestros proyectos.

PIC12: En esta familia, podemos distinguir en dos grandes grupos, el grupo


"Baseline" y la "Mid-Range", es decir el medio rango de Microchip. Son micros
ms potentes que la familia PIC10 por tener ms prestaciones. En caso de que
nuestro proyecto necesiten ms pines y perifricos internos que los que nos
ofrece la familia PIC10, esta es nuestra familia ideal, bajos coste y un nmero
abundante de perifricos internos.

PIC16: Esta familia es muy parecida a la PIC12, en cambio, dispone de ms


pines por lo tanto en algunos PIC's de esta familia, podemos encontrar varios
perifricos juntos y listos para poder ser usados con sus respectivos pines. En
esta familia tambin naci el mtico PIC16C84, un microcontrolador que alz las
venta y la publicidad de la empresa Microchip.

22
PIC18: Es la familia ms alta de Microchip, y una de las que se estn usando
ms acorde al paso del tiempo, los usuarios descubren esta fantstica familia y
quedan encantados, micros con una cantidad de pines y perifricos
considerables, por lo tanto, los hacen ideales para proyectos con envergadura
y complejidad media-alta.

Arquitectura de 16-bits.

Microchip, pone a disposicin del usuario, dos familias cuyo procesador es de 16-bits.
Una es la llamada PIC24, que sigue la lnea de microcontroladores de 8-bits, y la otra
es la denominada dsPIC, es la apuesta de Microchip en el mundo del procesado de
seal.

PIC24: Microcontroladores con un alto rendimiento y de bajo coste. Podemos


encontrar dos subfamilias, la denominada PIC24F, es la subfamilia que ofrece
Microchip para aplicaciones de bajo coste, donde podemos encontrar
microcontroladores con memoria flash hasta 128kBytes y una velocidad de
procesado de 16MIPS.

La otra subfamilia, es la denominada PIC24H, sta es la hermana mayor que la anterior,


donde son ideales para proyectos con un alto rendimiento, con una velocidad de
procesado de 40MIPS y memoria flash de programa hasta 256kBytes entre otras cosas.

dsPIC: Son dispositivos especializados en trabajar en el procesado digital de


seales, encontramos dos subfamilias, la subfamilia menor denominada
dsPIC30, cuya aplicacin es necesaria para proyectos de sistemas embebidos
en tiempo real con una alimentacin de 5V a una velocidad de procesado de
30MIPS.
La subfamilia grande, es la llamada dsPIC33F, y se distinguen de la anterior subfamilia,
que la tensin de alimentacin a una velocidad de procesado de 40MIPS es de 3.3V,
aparte sta subfamilia dispone de ms memoria de programa flash y de memoria RAM.

23
Arquitectura de 32-bits.

En esta categora, encontramos slo una familia, la denominada PIC32, diseados para
aplicaciones embebidas que requieran una cantidad de memoria mayor, un procesado
de la informacin mayor, y una cantidad considerable de perifricos. Para el trabajo con
esta categora, Microchip ofrece el entorno de trabajo MPlab, el cual incluye:

El compilador en ensamblador de forma gratuita denominado ASM32, pero para esta


categora, se aconseja utilizar un lenguaje de nivel medio-alto, tal como es el caso del
lenguaje C. A continuacin una tabla comparativa entre algunos tipos de
Microcontroladores de diferentes marcas y diferente nmero de bits:

24
ARQUITECTUR
FABRICANTE FAMILIA IDE
A

CISC 8 bits
ADUC8xx -
8051
Analog Device www.analog.com
RISC 32 bits
ADUC7xx -
ARM7

Prog.
CISC 8 bits
AT89xxx independiente
8051
s

Prog.
TS87xxx CISC 8 bits independiente
Atmel www.atmel.com
s

AVR RISC 8 bits AVR studio

RISC 16 bits
AT91xxx -
ARM7/9

RISC 32 bits
EP73xxx -
ARM7
Cirrus Logic www.cirrus.com
RISC 32 bits
EP93xxx -
ARM9

CISC 8 bits
Cygnal www.silabs.com C8051F -
8051

CISC 8 bits
HC05 -
6800

CISC 8 bits
HC08 Code Warrior
6809
Freescale (Motorola) www.freescale.com
CISC 8 bits
HC11 -
6809

HC12 CISC 16 bits -

25
HCS12 CISC 16 bits Code Warrior

HC16 CISC 16 bits -

56800 CISC 16 bits -

CISC 32 bits
68K -
68000

ColdFire CISC 32 bits -

RISC 32 bits
MAC7100 -
ARM7

F2MC-8 CISC 8 bits -

Fujitsu www.fujitsu.com F2MC-16 CISC 16 bits -

FR RISC 32 bits -

CISC 8 bits
C5xxx -
8051

CISC 8 bits
C8xxx -
8051
Infineon www.infineon.com
C16xxx CISC 16 bits -

XC16xxx CISC 16 bits -

TCxxx CISC 32 bits -

CISC 8 bits
MCS251 -
8051
Intel www.intel.com

MCS96/296 CISC 16 bits -

CISC 8 bits
DS80Cxxx -
8051
Maxim (Dallas) www.maxim-ic.com
CISC 8 bits
DS83Cxxx -
8051

26
CISC 8 bits
DS89Cxxx -
8051

MAXQ RISC 16 bits -

PIC
10,12,14,16,17,1 RISC 8 bits MPLAB
Microchip www.microchip.com 8

dsPIC RISC 16 bits MPLAB

COP8xxx CISC 8 bits Webench

NS (NATIONAL
CR16Cxxx CISC 16 bits -
SEMICONDUCTOR) www.national.com

CP3000 RISC 16 bits -

CISC 8 bits
P8xxx -
8051

Philips www.semiconductors.philips.com Xaxxx CISC 16 bits -

RISC 32 bits
LPC2xxx -
ARM7

Rabbit Rabbit2000 CISC 8 bits -


Semiconductor www.rabbitsemiconductor.co
m Rabbit3000 CISC 8 bits -

740 CISC 8 bits -

H8 CISC 16 bits HEW

H8S CISC 16 bits HEW

Renesas www.renesas.com M16C CISC 16 bits -

7700 CISC 16 bits -

H8SX CISC 32 bits -

Super H CISC 32 bits HEW

27
ST5 CISC 8 bits Visual FIVE

ST6 CISC 8 bits -

ST7 CISC 8 bits STVD 7

ST9 CISC 8 bits STVD 9


ST (SGS-THOMSON) www.stm.com

ST9 CISC 16 bits STVD 9

ST10 CISC 16 bits -

RISC 32 bits
ARM7 -
ARM7

CISC 8 bits
MSC12xxx -
8051

Texas Instruments www.ti.com MSP430 CISC 16 bits Eclipse

RISC 32 bits
TMS470 -
ARM7

870 CISC 8 bits -

Toshiba chips.toshiba.com 900/900H CISC 16 bits -

900/900H CISC 32 bits -

Ubicom (Scenix) www.ubicom.com SXxx RISC 8 bits -

Z8xxx CISC 8 bits Z80 -

Zilog www.zilog.com Z8Encore! CISC 8 bits Z80 -

eZ80Aclaim CISC 8 bits Z80 -

28
1.5 Componentes del microcontrolador

Recibe el nombre de controlador el dispositivo que se emplea para el gobierno de


uno o varios procesos. Por ejemplo, el controlador que regula el funcionamiento de
un horno dispone de un sensor que mide constantemente su temperatura interna
y, cuando traspasa los lmites prefijados, genera las seales adecuadas.

Que accionan los efectores que intentan llevar el valor de la temperatura dentro del
rango estipulado. Aunque el concepto de controlador ha permanecido invariable a
travs del tiempo, su implementacin fsica ha variado frecuentemente. Hace tres
dcadas, los controladores se construan exclusivamente con componentes de
lgica discreta.

Posteriormente se emplearon los microprocesadores, que se rodeaban con CI de


memoria y E/S sobre una tarjeta de circuito impreso. En la actualidad, todos los
elementos del controlador se han podido incluir en un CI, el cual recibe el nombre
de microcontrolador.

Realmente consiste en un sencillo pero completo computador contenido en un


circuito integrado. Un microcontrolador dispone normalmente de los siguientes
componentes:

CPU

Memoria RAM para Contener los datos.

Memoria para el programa tipo ROM/PROM/EPROM.

Lneas de E/S para comunicarse con el exterior.

Diversos mdulos para el control de perifricos (temporizadores,

Puertos Serie y Paralelo, CAD y CDA, etc.).

TIMER que sincroniza el funcionamiento de todo el sistema.

29
1.5.1 Registros internos

La computadora que disearemos requiere una serie de registros de 8 y 16 bits que


tanto el usuario como el CPU pueden utilizar. Los registros de 8 bits, denominados
acumuladores, sirven nicamente como dispositivos de almacenamiento. Los
registros de 16 bits, denominados registros contadores, tienen mayor funcionalidad,
pues adems de servir como dispositivos de almacenamiento, permiten incrementar
o decrementar el dato guardado.

Registros acumuladores
Los registros acumuladores de 8 bits estn conectados directamente a las entradas
de la UPA, de esta manera se pueden efectuar operaciones lgico aritmticas en
forma directa.
La figura 5.4 muestra el diagrama de bloques del acumulador. Como puede
observar, el acumulador est formado por un registro latch y por tres transeivers.
Los transeivers tienen la funcin de aislar o conectar el latch a los diferentes buses
de datos del acumulador (A, B y C).

30
Figura 5.4. Diagrama de bloques del acumulador.

Las lneas de control E1 y E0 permiten seleccionar alguno de los buses de entrada


conectados al acumulador. La tabla 5.2 muestra la relacin existente entre estas
lneas y el bus que seleccionan.

E1 E0 Bus Seleccionado
0 0 Ninguno
0 1 A
1 0 B
1 1 C

Tabla 5.2. Relacin entre las seales de


control E1:E0 y los buses
que seleccionan.

La lnea w habilita la carga de datos en el acumulador, de manera que si presenta

31
un nivel lgico bajo (0), escribir el dato del bus seleccionado en el latch. Si por el
contrario, presenta un nivel lgico alto (1), entonces el registro latch estar habilitado
slo para lectura.

Tambin existen dos seales de salida: la bandera de cero (Z) y la bandera de


negativo (N). La bandera Z vale uno si el dato en el acumulador es cero, y vale cero
en caso contrario. La bandera N refleja el signo del nmero guardado, dicho signo
est dado por el bit ms significativo del acumulador.

La siguiente figura muestra una configuracin de la UPA con los registros


acumuladores para efectuar la multiplicacin de dos nmeros. Tenga en cuenta que
el algoritmo de debe estar implementado en la mquina de estados.

La lnea w habilita la carga de datos en el acumulador, de manera que si presenta


un nivel lgico bajo (0), escribir el dato del bus seleccionado en el latch. Si por el
contrario, presenta un nivel lgico alto (1), entonces el registro latch estar habilitado
slo para lectura.

Tambin existen dos seales de salida: la bandera de cero (Z) y la bandera de


negativo (N). La bandera Z vale uno si el dato en el acumulador es cero, y vale cero
en caso contrario. La bandera N refleja el signo del nmero guardado, dicho signo
est dado por el bit ms significativo del acumulador.

32
Algoritmo de la multiplicacin
La siguiente figura muestra una configuracin de la UPA con los registros
acumuladores para efectuar la multiplicacin de dos nmeros. Tenga en cuenta que
el algoritmo de multiplicacin debe estar implementado en la mquina de estados.

Figura 5.6. Acumuladores A y B conectados a la UPA para efectuar la multiplicacin de dos


nmeros.

33
Usando como base este diseo se pueden efectuar multiplicaciones. El siguiente ejemplo
ilustra la multiplicacin de 2 valores de 8 bits cada uno.

0 0 0 0 0 1 1 1
X 0 0 0 0 0 1 0 1
0 0 0 0 0 1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1

Bsicamente, esta multiplicacin se puede hacer con sumas y corrimientos. El siguiente


algoritmo muestra cmo hacer la multiplicacin.

B = Multiplicando A = Multiplicador Q = A
A=0
FOR j = 0:7
IF (Q0 = 1) THEN A = A + B
Q = Corrimiento a la derecha de Q un bit, con Q7 = A0
A = Corrimiento a la derecha de A un bit. Si Q0 = 1 entonces A7 = Acarreo de A+B, si no A7 =
0 END FOR
B=Q
Finalmente, el resultado de AxB queda en los acumuladores A (parte ms significativa) y B
(parte menos significativa). La siguiente tabla muestra los clculos efectuados por la UPA
para obtener el resultado de AxB.

34
Registro Registro Registro Acciones
B A Q
0000 0000 XXXXXXX -----------
X
0111 0101
0000 0000 0000 QA, A0
0111 0000 0101
0000 0000 0000 Como Qo=1 entonces
0111 0111 0101 AA+B
Corrimiento de A y Q a la
0000 0000 1000
derecha con Q7=Ao y
0111 0011 0010
A7=Acarreo de A+B

0000 0000 1000 Como Qo=0 no hace nada


0111 0011 0010
Corrimiento de A y Q a la
0000 0000 1100
derecha con Q7=Ao y
0111 0001 0001
A7=0

0000 0000 1100 Como Qo=1 entonces


0111 1000 0001 AB+A
0000 0000 0110 Corrimiento de A y Q a la
0111 0100 0000 derecha
0000 0000 0110 Como Qo=0 no se hace nada
0111 0100 0000
0000 0000 0011 Corrimiento de A y Q a la
0111 0010 0000 derecha
0000 0000 0011 Como Qo=0 no se hace nada
0111 0010 0000
0000 0000 0001 Corrimiento de A y Q a la
0111 0001 1000 derecha
0000 0000 0001 Como Qo=0 no se hace nada
0111 0001 1000
0000 0000 1000 Corrimiento de A y Q a la
0111 0000 1100 derecha
0000 0000 1000 Como Qo=0 no se hace nada
0111 0000 1100
0000 0000 0100 Corrimiento de A y Q a la
0111 0000 0110 derecha
0000 0000 0100 Como Qo=0 no se hace nada
0111 0000 0110
0000 0000 0010 Corrimiento de A y Q a la
0111 0000 0011 derecha
0010 0000 0010 BQ
0011 0000 0011
X - Significa no importa

Tabla 5.3. Operaciones para efectuar la multiplicacin de A por B.

35
La figura 5.7 muestra la carta ASM que ejecuta la multiplicacin de dos operandos de 8 bits.
Observe como las salidas de la carta ASM son las que controlan las funciones de la UPA.

Figura 5.7. Carta ASM para la multiplicacin de dos operandos de 8 bits.

36
Registro contador de 16 bits
La figura 5.8a muestra un registro contador de 16 bits, y tres transeivers que lo aslan o lo
conectan a los buses de la arquitectura.

Figura 5.8a. Diagrama de bloques de un registro contador de 16 bits.

Figura 5.8b. Registro contador de 16 bits.

37
La tabla 5.4 muestra la relacin entre las lneas de control C2, C1 y C0, y las
operaciones que realiza el contador.

Lneas de Control
Funcin del Contador
C2 C1 C0
0 0 0 Mantiene su valor (Lectura)
0 0 1 Incrementa en 1
0 1 0 Decrementa en 1
0 1 1 Carga un valor en la Parte Baja (Escritura)
1 0 0 Carga un valor en la Parte Alta (Escritura)
1 0 1 Carga un valor de 16 bits (Escritura)
1 1 0 Corrimiento a la Izquierda
1 1 1 Corrimiento a la Derecha

Tabla 5.4. Operaciones del registro contador.

Finalmente, las seales E2 , E1 y E0 permiten seleccionar los buses de


entrada/salida en el registro. Por ejemplo, E2 selecciona el bus E, E1 selecciona el
bus C y E0 selecciona el bus D.

38
1.5.2 Tipos y distribucin de las memorias internas
Tipos de Memorias

Hay dos arquitecturas conocidas; la clsica de von Neumann, y la arquitectura


Harvard.
Arquitectura Von Neumann Dispone de una sola memoria principal donde se
almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a
travs de un sistema de buses nico (direcciones, datos y control).

Arquitectura Harvard Dispone de dos memorias independientes, una que contiene


slo instrucciones, y otra que contiene slo datos. Ambas disponen de sus
respectivos sistemas de buses de acceso y es posible realizar operaciones de
acceso (lectura o escritura) simultneamente en ambas memorias, sta es la
estructura para los PIC's

39
El procesador o UCP

Es el elemento ms importante del microcontrolador. Se encarga de direccionar la


memoria de instrucciones, recibir el cdigo OP de la instruccin en curso,
decodificarlo y ejecutarlo, tambin realiza la bsqueda de los operandos y almacena
el resultado

Estructura genrica de un microcontrolador

40
1.5.3 Perifricos
Ese nombre indica las distintas tareas que el microcontrolador puede realizar con
ese pin dentro del circuito electrnico. Algunos pines se pueden usar para leer un
valor analgico, otros para generar una seal PWM, para establecer una
comunicacin mediante un protocolo serie, etc.. Es decir el nombre del pin indica a
que parte del hardware del microcontrolador se puede conectar dicho pin.
En la hoja de caractersticas del microcontrolador podemos ver los distintos mdulos
hardware (perifricos) que lo componen:

Cada cuadrado de la imagen anterior lo podemos ver como un circuito electrnico


que est dentro del microcontrolador y capaz de realizar una funcin determinada.
Los mdulos se comunican con la CPU del microcontrolador, donde se ejecutan las
instrucciones del programa, y con el mundo exterior mediante los pines de entrada

41
y salida.
En el programa que hacemos para el microcontrolador se configura el
funcionamiento de los distintos mdulos, as como qu mdulo va conectado a cada
pin del microcontrolador. Para saber cmo se configuran y se usan los distintos
mdulos (perifricos) del microcontrolador tenemos que mirar cmo se estructura
su memoria.
El microcontrolador tiene 3 tipos de memorias: la memoria de programa FLASH, la
memoria de datos SRAM, y la memoria de datos EEPROM.

42
1.5.4 Instrucciones del microcontrolador.
Juego de instrucciones
El juego de instrucciones para los microcontroladores 16F8XX incluye 35
instrucciones en total. La razn para un nmero tan reducido de instrucciones yace
en la arquitectura RISC. Esto quiere decir que las instrucciones son bien
optimizadas desde el aspecto de la velocidad operativa, la sencillez de la
arquitectura y la compacidad del cdigo. Lo malo de la arquitectura RISC es que se
espera del programador que haga frente a estas instrucciones. Por supuesto, esto
es relevante slo si se utiliza el lenguaje ensamblador para la programacin. Este
libro se refiere a la programacin en el lenguaje de alto nivel C, lo que significa que
la mayor parte del trabajo ya fue hecho por alguien ms. As, slo se tienen que
utilizar instrucciones relativamente simples.

Tiempo de ejecucin de instrucciones


Todas las instrucciones se ejecutan en un ciclo. La nicas excepciones pueden ser
las instrucciones de ramificacin condicional o las instrucciones que cambian el
contenido del contador de programa. En ambos casos, dos ciclos de reloj son
necesarios para la ejecucin de la instruccin, mientras que el segundo ciclo se
ejecuta como un NOP (No operation). Las instrucciones de un ciclo consisten en
cuatro ciclos de reloj. Si se utiliza un oscilador de 4 MHz, el tiempo nominal para la
ejecucin de la instruccin es 1S. En cuanto a las instrucciones de ramificacin, el
tiempo de ejecucin de la instruccin es 2S.
Juego de instrucciones de los microcontroladores PIC de 14 bits:

INSTRUCCIN DESCRIPCIN OPERACIN BANDERA CLK *

Instrucciones para la transmisin de datos

MOVLW k Mover literal a W k -> w 1

Mover el contenido de
MOVWF f W -> f 1
Waf

Mover el contenido de 1,
MOVF f,d f -> d Z 1
fad 2

Borrar el contenido de
CLRW 0 -> W Z 1
W

43
Borrar el contenido de
CLRF f 0 -> f Z 1 2
f

Intercambiar de f(7:4),(3:0) -> 1,


SWAPF f,d 1
nibbles en f f(3:0),(7:4) 2

Instrucciones aritmtico lgicas

ADDLW k Sumar literal a W W+k -> W C, DC, Z 1

Sumar el contenido 1,
ADDWF f,d W+f -> d C, DC ,Z 1
de W y f 2

SUBLW k Restar W de literal k-W -> W C, DC, Z 1

1,
SUBWF f,d Restar W de f f-W -> d C, DC, Z 1
2

ANDLW k AND W con literal W AND k -> W Z 1

1,
ANDWF f,d AND W con f W AND f -> d Z 1
2

OR inclusivo de W
IORLW k W OR k -> W Z 1
con literal

OR inclusivo de W 1,
IORWF f,d W OR f -> d Z 1
con f 2

OR exclusivo de W 1,
XORWF f,d W XOR k -> W Z 1
con literal 2

OR exclusivo de W
XORLW k W XOR f -> d Z 1
con f

1,
INCF f,d Sumar 1 a f f+1 -> f Z 1
2

1,
DECF f,d Restar 1 a f f-1 -> f Z 1
2

Rotar F a la izquierda
1,
RLF f,d a travs del bit de C 1
2
Acarreo

Rotar F a la derecha a
1,
RRF f,d travs del bit de C 1
2
Acarreo

1,
COMF f,d Complementar f f -> d Z 1
2

Instrucciones orientadas a bit

44
Poner a 0 el bit b del 1,
BCF f,b 0 -> f(b) 1
registro f 2

Poner a 1 el bit b del 1,


BSF f,b 1 -> f(b) 1
registro f 2

Instrucciones de control de programa

Saltar si bit b de 1
BTFSC f,b Skip if f(b) = 0 3
registro f es 0 (2)

Saltar si bit b de reg. f 1


BTFSS f,b Skip if f(b) = 1 3
es 1 (2)

Disminuir f en 1. 1,
f-1 -> d skip if 1
DECFSZ f,d Saltar si el resultado 2,
Z=1 (2)
es 0 3

Incrementar f en 1. 1,
f+1 -> d skip if 1
INCFSZ f,d Saltar si el resultado 2,
Z=0 (2)
es 1 3

GOTO k Saltar a una direccin k -> PC 2

Llamar a una PC -> TOS, k -


CALL k 2
subrutina > PC

Retornar de una
RETURN TOS -> PC 2
subrutina

Retornar con literal en k -> W, TOS -


RETLW k 2
W > PC

Retornar de una TOS -> PC, 1


RETFIE 2
interupcin -> GIE

Otras instrucciones

TOS -> PC, 1


NOP No operacin 1
-> GIE

Reiniciar el
0 -> WDT, 1 ->
CLRWDT temporizador perro TO, PD 1
TO, 1 -> PD
guardin

Poner en estado de 0 -> WDT, 1 ->


SLEEP TO, PD 1
reposo TO, 0 -> PD

45
1 Si un registro de E/S est modificado, el valor utilizado ser el valor presentado
en los pines del microcontrolador.
2 Si la instruccin se ejecuta en el registro TMR y si d=1, el pre-escalador ser
borrado.
3 Si la instruccin se ejecuta en el registro TMR y si d=1, el pre-escalador ser
borrado.

1.5.5 Distribucin de terminales.


Terminales del microcontrolador y sus respectivas funciones:
sta sera la disposicin de sus terminales y sus respectivos nombres.

Encapsulado DIP - PIC16C84/F84

Patas 1, 2, 3, 17 y 18 (RA0-RA4/TOCKI): Es el PORT A. Corresponden a 5 lneas


bidireccionales de E/S (definidas por programacin). Es capaz de entregar niveles
TTL cuando la alimentacin aplicada en VDD es de 5V 5%. El
pin RA4/TOCKI como entrada puede programarse en funcionamiento normal o
como entrada del contador/temporizador TMR0. Cuando este pin se programa como
entrada digital, funciona como un disparador de Schmitt (Schmitt trigger), puede
reconocer seales un poco distorsionadas y llevarlas a niveles lgicos (cero y cinco
voltios). Cuando se usa como salida digital se comporta como colector abierto; por
lo tanto se debe poner una resistencia de pull-Up (resistencia externa conectada a
un nivel de cinco voltios, ...no te preocupes, ms abajo lo entenders mejor). Como
salida, la lgica es inversa: un "0" escrito al pin del puerto entrega a la salida un "1"
lgico. Este pin como salida no puede manejar cargas como fuente, slo en el modo
sumidero.

46
Pata 4 (MCLR / Vpp): Es una pata de mltiples aplicaciones, es la entrada de Reset
(master clear) si est a nivel bajo y tambin es la habilitacin de la tensin de
programacin cuando se est programando el dispositivo. Cuando su tensin es la
de VDD el PIC funciona normalmente.

Patas 5 y 14 (VSS y VDD): Son respectivamente las patas de masa y alimentacin.


La tensin de alimentacin de un PIC est comprendida entre 2V y 6V aunque se
recomienda no sobrepasar los 5.5V.

Patas 6, 7, 8, 9, 10, 11, 12, 13 (RB0-RB7): Es el PORT B. Corresponden a ocho


lneas bidireccionales de E/S (definidas por programacin). Pueden manejar niveles
TTL cuando la tensin de alimentacin aplicada en VDD es de 5V 5%. RB0 puede
programarse adems como entrada de interrupciones externas INT. Los pines RB4
a RB7 pueden programarse para responder a interrupciones por cambio de estado.
Las patas RB6 y RB7 se corresponden con las lneas de entrada de reloj y entrada
de datos respectivamente, cuando est en modo programacin del integrado.

Patas 15 y 16 (OSC1/CLKIN y OSC2/CLKOUT): Corresponden a los pines de la


entrada externa de reloj y salida de oscilador a cristal respectivamente.

47
1.5.6 El reset y sus posibles fuentes.

El Reset es una accin con la cual se inicia el trabajo de los microprocesadores y


microcontroladores. Esta accin se ejecuta cuando se aplica una seal denominada
reset- aun terminal, designado tambin como reset.

Reset de un Pic
En un microprocesador, la seal de reset se genera manualmente al pulsar un
botn(reset manual) o cuando se pone en marcha el sistema(reset por encendido)
En un microcontrolador hay otras posibles fuentes de reset como son el reset por
fallo de alimentacin(power-glitch reset, brown-out reset) y el rest por
desbordamiento del perro guardin.
El reset por desbordamiento del perro guardin se produce cuando la tensin de
alimentacin cae momentneamente por debajo de un cierto valor umbral, de modo
que C se descarga parcialmente y se alcanza y se alcanza la condicin Vreset <
Vumbral.
El Reset por desbordamiento del perro guardin se produce cuando por alguna
razn no se ha refrescado(borrado) a tiempo el perro guardin. Generalmente ello
significa que el microcontrolador se ha perdido en la ejecucin del programa, es
decir, se ha salido de la secuencia correcta.
es muy importante que el microcontrolador efecte una accin de reset cuando se
poducen falos de este tipo. Ello garantiza que en situaciones como stas, en las que
el microcontrolador perdera inexorablemente la
secuencia correcta de instrucciones del programa, no salte a
una direccin aleatoria sino que vaya a una direccin determinada( la del valor de
reset) donde se pueden efectuar acciones que contrarresten el fallo que ha

48
producido

El Perro Guardian

Wathdog Timer o perro guardin


Es un recurso disponible en muchos microcontroladores. Consta de un oscilador
binario de N bits. El oscilador puede ser el oscilador principal del microcontrolador,
aunque se prefiere un oscilador independiente. La salida de la ltima etapa del
contador va conectada al circuito de reset del microcontrolador. El conteo no se
puede detener de ninguna forma, pero el contador se puede borrar, es decir poner
a 0, desde el programa.
El funcionamiento del perro guardin es como sigue. El oscilador enva sus pulsos
peridica y y permanentemente a la entrada de reloj del contador. Si el contador
llega a contar los N pulsos, se desborda, su salida se activa y produce el reset del
microcontrolador.
El objetivo del programador es evitar el desbordamiento del wathdog. Dado que una
vez iniciado el conteo, el perro guardin no se puede detener, la nica manera
es llevar el contador a 0, para evitar el desbordamiento y hacerlo a intervalos de
tiempo ms cortos que el tiempo que se tarda en contar los N pulsos. Para hacerlo
el programador debe distribuir a lo largo del programa las instrucciones que borran
el perro guardin.

49
Si el programa se ejecuta correctamente, el perro guardin nunca se desbordara
pus antes de hacerlo ha sidi borrado del programa. En cambio, el microcontrolador
se pierde y el programa deja de ser ejecutado en la secuencia correcta, el perro
guardin no es borrado a tiempo, se desborda y produce el reset del
microcontrolador, con lo que es posible retomar el control y reconducir el programa
por el camino correcto.
Temporizador Watchdog API Llamadas al sistema
Sistema de llamada Propsito
wdt_alloc () Devuelve un identificador vlido que identifica el temporizador de
vigilancia asignado
wdt_realloc () Reasigna el temporizador de vigilancia, que fue devuelto por la
ltima llamada a wdt_alloc () . Esto permite que un nuevo actor
crea en un altamente disponible (HA) entorno a asumir la gestin de
vigilancia para un actor que ha muerto. Si el temporizador de
vigilancia est armado, tambin se volver a cargar en la presente
convocatoria.
wdt_free () Desarma y libera el temporizador de vigilancia
wdt_get_maxinterval Devuelve el intervalo de tiempo de espera mximo que se puede
() establecer para el temporizador
wdt_set_interval () Establece el intervalo de tiempo de espera para el temporizador de
vigilancia. Si ambos componentes de intervalo son cero, el
temporizador est desarmado.
wdt_get_interval () Devuelve el conjunto de tiempo de espera actual para el intervalo
de temporizador de vigilancia
wdt_arm () Inicia un nuevo intervalo de tiempo de espera, la duracin del cual
ser fijado por wdt_set_interval ()
wdt_disarm () Desarma el temporizador de vigilancia
wdt_is_armed () Devuelve el estado del temporizador de vigilancia. Un valor
positivo se devuelve si el temporizador est activado.
wdt_pat () Vuelve a cargar el temporizador de vigilancia. El temporizador se
inicia un nuevo intervalo de tiempo de espera, la duracin de los
cuales se establece por wdt_set_interval () .
wdt_startup_commit Indica si el temporizador de vigilancia de la secuencia de arranque
() se ha completado con xito. La conclusin con xito indica que el
sistema ya no necesita ser reiniciado si el dispositivo de modo
watchdog restablecimiento armados por el marco arranque
expire. Debido a que el dispositivo de modo watchdog reset no
debe ser desarmado, el sistema continuar para recargar el
dispositivo de modo de reinicio en silencio hasta que se apague o
hasta que el temporizador de vigilancia est destinado de forma
explcita y armados por el marco HA (u otra aplicacin).

50
Sistema de llamada Propsito
wdt_shutdown () Indica si el sistema se est cerrando. Durante el apagado, el
dispositivo de modo watchdog reset no debe volver a cargar por
ms que el intervalo de tiempo de espera configurado. Esto
asegurar que el sistema se restablece, incluso si la secuencia de
apagado no se completa dentro del perodo de tiempo de espera. La
presente convocatoria se producir un error si se invoca cuando el
dispositivo de vigilancia est armado.

Componente de un Microcontrolador

Componentes de un microcontrolador
Un microcontrolador combina los recursos fundamentales disponibles en un
microcomputador, es decir, la unidad central de procesamiento CPU), la memoria y
los recursos de entrada y salida, en un nico circuito integrado.
La fig que vemos a continuacin muestra el diagrama en bloque interno de un micro
controlador.
Los Micro controladores disponen de un oscilador que genera los pulsos que
sincronizan todas las operaciones internas. El oscilador puede ser del tipo RC,
aunque generalmente se prefiere que est controlado por un cristal de cuarzo
(XTAL) debido a su gran estabilidad de frecuencia. La velocidad de ejecucin de las
instrucciones del programa est en relacin directa con la frecuencia del oscilador
del micro controlador.
La MAR :es el registro de direcciones de memoria (memory adress register).
MBR: Este registro es el buffer de datos de la memoria (memory buffer register).

51
ROP: Este registro contiene el cdigo de operacin de la ALU
Al igual que un microcomputador, la CPU es el cerebro del micro controlador Esta
unidad trae las instrucciones del programa , una a una, desde la memoria donde
estn almacenadas, las interpreta (descodifica) y hace que se ejecuten. En
la CPU se incluyen los circuitos ALU para realizar operaciones aritmticas y lgicas
elementales con los datos binarios
La CPU de un micro controlador dispone de diferentes registros algunos de
propsito general y otros para propsitos especficos. Entre estos ltimos estn el
registro de Instruccin, el Acumulador, el registro de estado, el contador de
Programa, el registro de Direcciones de datos y el Puntero de la Pila.
El Registro de Instruccin (RI) almacena la instruccin que est siendo ejecutada
por la CPU. El RI es invisible para el programador.
El Acumulador (ACC: Accumulator), es el registro asociado a al operaciones
aritmticas y lgicas que se pueden realizar en la ALU. En cualquier operacin, uno
de los adatos debe estar en el ACC y el resultado se obtiene en ACC. El ACC no
existe en los microcontroladores PIc que tienen en cambio en el registro W
(Working Register), con caractersticas muy parecidas a las del ACC.
El Registro de estado (STATUS) agrupa los bits indicadores de las caractersticas
del resultado de las operaciones aritmticas y lgicas realizadas en la ALU. Entre
los indicadores estn el signo el resultado ( si es + o -) si el resultado es 0, si hay
acarreos o prstamos, el tipo de paridad (par o Impar) del resultado, etc.
El contador de Programa (PC. Program Counter) es el registro de la CPU donde se
almacenan direcciones de instrucciones. cada vez que la CPU busca una
instruccin en la memoria, el PC se incrementa, apuntando as a la siguiente
instruccin. En un instante de tiempo dado, el PC contiene la direccin de las
instruccin que ser ejecutada a continuacin. Las instrucciones de transferencia
de control modifican el valor del PC.
El registro de Direcciones de Datos (RDD) almacenan direcciones de datos
situados en la memoria. este registro de datos (RDD) amacena direcciones de datos
situados en la memoria. este registro es indispensable para el direccionamiento
indirecto de datos en al memoria. El RDD toma diferentes nombres segn el micro

52
controlador . En los PIC, el RDD es el registro FSR (File Select Register).
El Puntero de la Pila(SP: Stack Pointer) es el registro que almacena direcciones de
datos en la pila. Los micro controladores PIC carecen de registro SP.
La memoria del Micro controlador es el lugar donde son almacenadas las
instrucciones del programa y los datos que manipula. En un micro controlador hay
2 tipos de memoria. la memoria RAM( Randon Acces Memory) y la ROM( Random
Only Memory).
Tanto la memoria RAM como la memoria ROM son de acceso aleatorio, pero la
costumbre ha de dejado el nombre RAM para las memorias de lectura y escritura.
El trminoacceso aleatorio se refiere a que el tiempo necesario para localizar un
dato no depende del lugar de la memoria donde est almacenado. En las memorias
de acceso secuencial, en cambio, cuando ms alejado est un dato de la posicin a
la que se ha accedido por ltima vez, ms se tarda en localizar.
La cantidad de memoria ROM disponible es normalmente muy superior a la cantidad
de memoria RAM. sto se debe a dos razones: la 1era es que la gran mayora de las
aplicaciones requieren programas que manejen pocos datos;la 2da razn es que la
memoria RAM ocupa mucho ms espacio en el circuito integrado que la memoria
ROM, de modo que es mucho ms costosa que sta.
La entrada y la salida es particularme importante en los microcontroladores, pues a
travs de ella el microcontrolador interacciona con el exterior.

53
1.6 Caractersticas de la fuente de alimentacin y consumo de potencia del
microcontrolador.

1.7 Ambiente integrado de desarrollo (IDE)


Un entorno de desarrollo integrado o IDE (acrnimo en ingles de integrated
development environment), es un programa informtico compuesto por un conjunto
de herramientas de programacin. Puede dedicarse en exclusiva a un solo lenguaje
de programacin o bien, poder utilizarse para varios.
Un IDE es un entorno de programacin que ha sido empaquetado como un
programa de aplicacin, es decir, consiste en un editor de cdigo, un compilador,
un depurador y un constructor de interfaz grfica (GUI).
Los IDE proveen un marco de trabajo amigable para la mayora de los lenguajes de
programacin tales como C++, PHP, Python, Java, C#, Delphi, Visual Basic, etc. En
algunos lenguajes, un IDE puede funcionar como un sistema en tiempo de
ejecucin, en donde se permite utilizar el lenguaje de programacin en forma
interactiva, sin necesidad de trabajo orientado a archivos de texto.
Algunos ejemplos de entornos integrados de desarrollo (IDE) son los siguientes:
Eclipse
NetBeans
IntelliJ IDEA
JBuilder de Borland
JDeveloper de Oracle
KDevelop
Anjunta
Clarion
MS Visual Studio
Visual C++

54
1.7.1 Ensamblador y compilador.

Ensamblador
Ensamblador se refiere a un tipo de programa, informtico que se encarga de
traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto
que contiene cdigo mquina ejecutable directamente por la mquina para la que
se ha generado.
La tarea fundamental de un ensamblador es traducir un programa en lenguaje de
ensamblador al cdigo correspondiente en lenguaje de mquina.
Tipos De Ensambladores
Ensambladores cruzados: Se denominan as a los ensambladores que se utilizan
en una computadora que posee el procesador diferente al que tendrn las
computadoras donde se va a ejecutar el programa objeto producido.
Ensambladores residentes: Son aquellas que permanecen en la memoria principal
de la computadora y cargar para su ejecucin al programa objeto producido.
Micro ensambladores: Al programa que indica al intrprete de instrucciones de la
CPU como debe actuar se le denomina microprograma. El programa que ayuda a
realizar este microprograma se llama micro ensamblador.
Macro ensambladores: Son ensambladores que permiten el uso de
macroinstrucciones.
Ensambladores de una fase: leen una lnea y la traducen directamente para producir
una instruccin de lenguaje maquina o la ejecuta si se trata de una
pseudosinstruccin. Se construye la tabla de smbolos a medida que aparecen las
definiciones de variables, etiquetas, etc.
Ensambladores de dos fases: Realiza la traduccin en dos etapas: 1 fase leen el
programa fuente y construyen la tabla de smbolos, 2 fase vuelve a leer el programa
fuente y pueden ir traduciendo totalmente pues reconocen la totalidad de los
smbolos.

Compilador
Un compilador es un programa informtico que traduce un programa escrito en un
lenguaje de programacin a otro lenguaje de programacin, generando un

55
programa equivalente que la maquina ser capaz de interpretar. Usualmente el
segundo lenguaje es lenguaje de mquina, pero tambin puede ser simplemente
texto. Este proceso de traduccin se conoce como compilacin.
Un compilador es un programa que permite traducir el cdigo fuente de un programa
en lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje de
maquina). De esta manera un programador puede disear un programa en un
lenguaje mucho ms cercano a cmo piensa un ser humano, para luego compilarlo
a un programa ms manejable por una computadora.
Fases del compilador

Clasificacin De Compiladores
De una pasada: Examina el cdigo fuente una vez, generando el cdigo o programa
objeto.
Pasadas mltiples: Requiere pasos intermedios para producir cdigo en otro
lenguaje y una pasada final para producir y optimizar el cdigo producido durante
pasos anteriores.
Compiladores incrementales: Generan un cdigo objeto, instruccin por instruccin
cuando el usuario teclea cada orden individual.
Compilador cruzado: Se genera cdigo en lenguaje objeto para una maquina
diferente a la que se est utilizando para compilar.
Compilador con montador: Compila distintos mdulos de forma independiente y
despus es capaz de aplazarlos.

56
1.7.2 Simulador, debugger y emulador.
Simulador
Programa que reproduce por software el comportamiento del microcontrolador en la
ejecucin de un programa.
Tipos de simuladores y definicin
MPSIM ------ Es un simulador de Microchip para los PIC.
SIMUPIC 84 ------ Es un simulador de Microsystems Engineering, slo til
para los PIC16X84.
MPLAB ------- Simula programas en ensamblador.

Debugger
Un depurador (en ingls, debugger), es un programa que permite depurar o limpiar
los errores de otro programa informtico.
Al iniciarse la depuracin, el depurador lanza el programa a depurar. Este se ejecuta
normalmente hasta que el depurador detiene su ejecucin, permitiendo al usuario
examinar la situacin.
El depurador permite detener el programa en:
Un punto determinado mediante un punto de ruptura.
Un punto determinado bajo ciertas condiciones mediante un punto de ruptura
condicional.
Un momento determinado cuando se cumplan ciertas condiciones.
Un momento determinado a peticin del usuario.

Emulador
Un emulador es un programa capaz de actuar de intrprete en la mquina destino
para que un software originalmente escrito para otra plataforma pueda ser ejecutado
en ella.

57
El emulador traduce el cdigo de la mquina original al cdigo de la de destino , por
lo que nuestra computadora ni siquiera sabe que est comportndose como otra
plataforma (otro sistema operativo diferente al que ejecuta por defecto), y tan solo
ejecuta el programa siguiendo su propio juego de instrucciones pero adaptado
desde la plataforma original.
Para poder ejecutarse, los desarrolladores de este tipo de aplicaciones se
documentan sobre la arquitectura interna de las mquinas a emular (procesador,
juego de instrucciones, tipo y cantidad de registros y de memoria,
direccionamientos, etc.) e implementan un comportamiento idntico al de las
mismas, gracias a la traduccin de cada una de las operaciones al cdigo de la
mquina destino.
Gracias a la potencia de las computadoras actuales, el proceso de traduccin, que
en otro caso conllevara un tiempo elevado, se realiza en un instante, lo que permite
dar la impresin de estar ejecutando el juego o la aplicacin como si del original se
tratase, aunque en algunos casos las velocidades pueden ser tanto mayores como
menores de las observadas en la plataforma nativa.

58
1.7.3 Equipos programadores (downloaders).

Un programador es una herramienta hardware que traduce informacin de un


determinado lenguaje (hex, ASCII,?) en informacin que pueda interpretar el
microcontrolador para el funcionamiento correcto de la placa que utilicemos.
Caractersticas generales
Pueden programar distintos tipos de memorias y microcontroladores
Conexin serie o paralela segn modelos
Fcilmente actualizables
Permiten testear circuitos integrados

Programador Universal SCM MPUNIV

Programador universal expansible por software


Soporta una amplia familia de dispositivos programables
Funcin de testeo de circuitos integrados digitales
Convertible en un emulador de ROM mediante un opcional soportando
memorias de hasta 4Mb

Advantech Lab TOOL 48


Programador universal con zcalo ZIF de 48 pines DIP
Conectado a PC por puerto paralelo
Software para Windows 95/98/2000/NT
Fcilmente actualizable mediante Internet
Gran rapidez de programacin (utilizando memoria flash de 8Mb)
La programacin se inicia al insertar el componente en el zcalo
No necesita adaptadores para componentes en DIP

Programador De Memoria Y Microcontroladores

59
Es capaz de programar diferentes tipos de memorias como EPROM,
Flash... y microcontroladores como 8051y sus derivaciones
Soporta archivos en formato hexadecimal, binario,etc
Programa dispositivos con encapsulados DIP, QFP, LCC y PLCC
Incluye conversores de formato
Software para Dos y Windows

1.8 Herramientas de desarrollo.


Uno de los factores que ms importancia tiene a la hora de seleccionar un
microcontrolador entre todos los dems es el soporte tanto software como hardware
de que dispone. Un buen conjunto de herramientas de desarrollo puede ser decisivo
en la eleccin, ya que pueden suponer una ayuda inestimable en el desarrollo del
proyecto.
Las principales herramientas de ayuda al desarrollo de sistemas basados en
microcontroladores son:
Desarrollo del software:
Ensamblador. La programacin en lenguaje ensamblador puede resultar un tanto
ardua para el principiante, pero permite desarrollar programas muy eficientes, ya
que otorga al programador el dominio absoluto del sistema. Los fabricantes suelen
proporcionar el programa ensamblador de forma gratuita y en cualquier caso
siempre se puede encontrar una versin gratuita para los microcontroladores ms
populares.
Compilador. La programacin en un lenguaje de alto nivel (como el C) permite
disminuir el tiempo de desarrollo de un producto. No obstante, si no se programa

60
con cuidado, el cdigo resultante puede ser mucho ms ineficiente que el
programado en ensamblador. Las versiones ms potentes suelen ser muy caras,
aunque para los microcontroladores ms populares pueden encontrarse versiones
demo limitadas e incluso compiladores gratuitos.
Depuracin: debido a que los microcontroladores van a controlar dispositivos
fsicos, los desarrolladores necesitan herramientas que les permitan comprobar el
buen funcionamiento del microcontrolador cuando es conectado al resto de
circuitos.
Simulador. Son capaces de ejecutar en un PC programas realizados para el
microcontrolador. Los simuladores permiten tener un control absoluto sobre la
ejecucin de un programa, siendo ideales para la depuracin de los mismos. Su
gran inconveniente es que es difcil simular la entrada y salida de datos del
microcontrolador. Tampoco cuentan con los posibles ruidos en las entradas, pero,
al menos, permiten el 20 paso fsico de la implementacin de un modo ms seguro
y menos costoso, puesto que ahorraremos en grabaciones de chips para la prueba
in-situ.
Placas de evaluacin. Se trata de pequeos sistemas con un microcontrolador ya
montado y que suelen conectarse a un PC desde el que se cargan los programas
que se ejecutan en el microcontrolador. Las placas suelen incluir visualizadores
LCD, teclados, LEDs, fcil acceso a los pines de E/S, etc. El sistema operativo de
la placa recibe el nombre de programa monitor. El programa monitor de algunas
placas de evaluacin, aparte de permitir cargar programas y datos en la memoria
del microcontrolador, puede permitir en cualquier momento realizar ejecucin paso
a paso, monitorizar el estado del microcontrolador o modificar los valores
almacenados los registros o en la memoria.
Emuladores en circuito. Se trata de un instrumento que se coloca entre el PC
anfitrin y el zcalo de la tarjeta de circuito impreso donde se alojar el
microcontrolador definitivo. El programa es ejecutado desde el PC, pero para la
tarjeta de aplicacin es como si lo hiciese el mismo microcontrolador que luego ir
en el zcalo. Presenta en pantalla toda la informacin tal y como luego suceder
cuando se coloque la cpsula.

61
Bibliografa

Microcontroladores Pic; E. Martn Cuenca, J. M. Angulo Usategui, I. Angulo


Martinz; Paraninfo, 5 edicin, 2001.
Microcontroladores: Fundamentos y aplicaciones con PIC; F. E. Valds Prez, R.
Palls Areny; Alfaomega; 2007.
Microcontroladores PIC: Diseo prctico de aplicaciones, 2 parte; J.M. Angulo
Usategui, S. Romero Yesa, I. Angulo Martnez; McGraw Hill; 2 edicin; 2006.

https://documents.tips/documents/23-tipos-y-distribucion-de-las-memorias-
internas.html

62