Está en la página 1de 33

Unidad 5.

"Arquitecturas Embebidas y Microcontroladores"

Antes de entrar al tema se explicara lo que es un sistema embebido.

Sistema Embebido
Un sistema embebido (anglicismo "embedded") o empotrado es
un sistema de computacin diseado para realizar una o algunas pocas
funciones dedicadas frecuentemente en un sistema de computacin en
tiempo real . Al contrario de lo que ocurre con los ordenadores de
propsito general (como por ejemplo una computadora personal o PC)
que estn diseados para cubrir un amplio rango de necesidades, los
sistemas embebidos se disean para cubrir necesidades especficas. En
un sistema embebido la mayora de los componentes se encuentran
incluidos en la placa base (la tarjeta de vdeo , audio, mdem , etc.).
Y tambin lo que es un microcontrolador:

Un microcontrolador (abreviado C, UC o MCU) es un circuito integrado


programable, capaz de ejecutar las rdenes grabadas en su memoria.
Est compuesto de varios bloques funcionales, los cuales cumplen una
tarea especfica. Un micro controlador incluye en su interior las tres
principales unidades funcionales de una computadora:
Unidad
central
procesamiento , memoria y perifricos de entrada/salida .
Tipos de Microcontroladores
Los microcontroladores se pueden clasificar en:
Microcontroladores embebidos de 8 bits.
Microcontroladores de 16-32 bits
Procesadores de seales digitales (DSP)

de

Fabricantes de microcontroladores
INTEL 8048 8051 80C196 80386
MOTOROLA 6805 68HC11 68HC12
HITACHI HD64180
PHILIPS 8051 (si es el de Intel)
SGS-THOMSON ST62XX
NATIONAL Semiconductor COP400 COP800
ZILOG Z8 Z86XX
TEXAS INSTRUMENT TMS370
TOSHIBA 68HC11 (si, el de Motorola)
MICROCHIP serie PIC
ATMEL 8051 - AT91SAM - AVR - AVR32

5.1 Organizacin del Microcontrolador.


Microcontroladores de 8 y 16 bits
Los microcontroladores de 8 bits dominan el mercado. La razn de esta
tendencia es que los microcontroladores 8 bits son apropiados para la
gran mayora de las aplicaciones, lo que hace absurdo emplear micros
ms potentes y consecuentemente ms caros. Uno de los sectores que
ms tira del mercado del microcontrolador es el mercado automovilstico
Un micro de 8 bits puede hacer operaciones lgicas y aritmticas con
operandos (datos) de hasta 8 bits con solo una instruccin, algo anlogo
suceder con los otros
Por ejemplo: El Motorola MC6800.
En cambio un micro de 16 bits maneja palabras del doble de capacidad,
esto te permite manejar valores numricos ms grandes en una sola
operacin (de 0 a 65535 o FFFFh) hacindolo un poco ms rpido en ese
tipo de operaciones, y uno de 32 bits maneja valores hasta de
4,294,967,295 (0 a FFFFFFFFh) en una sola operacin

La familia PIC se divide en cuatro gamas, gamas que podemos llamar


mini, 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
Los modelos 12C5xx pertenecen a esta gama, siendo el tamao de las
instrucciones de 12 bits; mientras que los 12C6xx son de la gama
media y sus instrucciones tienen 14 bits. Los modelos 12F6xx poseen
memoria Flash para el programa y EEPROM para los datos. Algunos
modelos disponen de conversores Analgico/Digital de 8 bits
incorporados.

La gama baja o bsica consiste en una serie de PIC de recursos


limitados, pero con una de la mejores relaciones
coste/prestaciones de la familia. Sus versiones estn encapsuladas
con 18 y 28 patitas y pueden alimentarse a partir de una tensin
de 2,5 V, lo que les 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. 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.

La denominada gama media es la ms variada y completa de los


PIC. Abarca modelos con encapsulado desde 18 hasta 68 pines,
cubriendo varias opciones que integran abundantes perifricos.
Dentro de esta gama se halla el famoso PIC16F84, quizs el
modelo ms utilizado en la historia de los microcontroladores,
aunque ya se lo considera obsoleto.

Encuadrado en la gama media tambin se halla la versin PIC14C000,


que soporta el diseo de controladores inteligentes para cargadores de
bateras, pilas pequeas, fuentes de alimentacin y UPS y cualquier
sistema de adquisicin y procesamiento de seales que requiera gestin
de la energa de alimentacin. Los PIC 14C000 admiten cualquier
tecnologa de las bateras como Li-Ion, NiMH, NiCd, Ph y Zinc.

La gama alta dispone de chips con 58 instrucciones de 16 bits en el


repertorio y que 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 8 k palabras en la memoria de instrucciones y 454 bytes en
la memoria de datos.
Microcontroladores de 8 bits
Todos los recursos necesarios estn incluidos en el chip.
Solo necesitan alimentacin y reloj.
Proporcionan control e interfaz con dispositivos externos de manera
econmica y programable.

Microcontroladores de 8 bits
Disponen de:
Reset
Reloj
Procesador
Memoria ROM para el programa e interfaz de programacin
Memoria RAM para variables.
I/O Pins.
Adicionalmente pueden incluir:
Capacidad de debugging
Interrupciones
I/O analgica
Comunicacin serial y/o paralela
Interfaz con memoria

FAMILIAS DE INTEL, MOTOROLA Y MICROSYSTEM

Familias Intel:
podemos mencionar como referencia histrica, a la familia MCS-48
compuesta principalmente por el 8048AH.

Los microcontroladores de esta familia poseen una CPU de 8 bits, 27


lneas de Entrada /
Salida, un Temporizador / contador (Timer /Counter) programable.
Dependiendo del modelo
(8050, 8049,8048) poseen respectivamente 256, 128 o 64 bytes de RAM
esttica. Existen en versiones ROM, EPROM, Flash.
Alguno de los microcontroladores, no poseen memoria para
almacenamiento de cdigo ejecutable, entonces se reservan algunas
lneas de Entrada / Salida para armar los tres buses necesarios
(direcciones, datos y control), de esta forma el programa puede ser
almacenado en cualquier memoria internas (ROM, EPROM, E2PROM,
FLASH, NVRAM, etc.) y accedido por estos buses.
Ms recientemente encontramos a la familia MCS-51, quizs la ms
prolfica en su momento, ya que un gran nmero de fabricantes de
hardware y software implementaron sistemas sobre la base de esta
familia de microcontroladores y una gran cantidad de herramientas de
desarrollo como compiladores de lenguaje C, simuladores, emuladores
en tiempo real3 ICEs (In Circuit Emulators), etc. Debido a que este
apunte est orientado en particular al estudio de esta familia, no la
trataremos en detalle por ahora, lo que podemos agregar es que no
existe compatibilidad con su antecesor (MCS-48) a nivel software o
hardware, si bien existe algunos programas (bastante primitivos, por
cierto) para convertir cdigo de MCS-48 a MCS-51.

Caractersticas

| Beneficios |

CPU de 8-bit optimizada para control de eventos | Eficiencia en el


diseo de control de
eventos |
Procesamiento booleano
manipulacin de bit
|
Memoria on-chip (32K)
pastilla
|

| Facilidad.simple
| Soluciones.Hace posible diseos en una sola

Perifricos on-chip (timer/contador, puerto serial, PCA, etc.)


| Alta
integracin. Hace posible diseos de bajo costo con puertos de I/O
|

INTEL (La familia 8051)


8051 es el primer microcontrolador de la familia introducida por Intel
Corporation. La familia 8051 de microcontroladores son controladores de
8 bits capaces de direccionar hasta 64 Kbyte de memoria de programa y
una separada memoria de datos de 64 Kbyte. El 8031(la versin sin ROM
interna del 8051, siendo esta la nica diferencia) tiene 128 bytes de RAM
interna (el 8032 tiene RAM interna de 256 bytes y un temporizador
adicional). El 8031 tiene dos temporizadores/contadores, un puerto
serie, cuatro puertos de entrada/salida paralelas de propsito general
(P0, P1, P2 y P3) y una lgica de control de interrupcin con cinco
fuentes de interrupciones. Al lado de la RAM interna, el 8031 tiene varios
Registros de Funciones especiales (SFR) (Special Function Registers) que
son para control y registros de datos. Los SFRs tambin incluyen el
registro acumulador, el registro B, y el registro de estado de programa
(Program Status Word)(PSW), que contienen los Flags del CPU.
Bloques separados de memoria de cdigo y de datos se denomina como
la Arquitectura Harvard. El 8051 tiene dos seales de lectura separadas,
los pines RD(P3.7, pin 17) y PSEN(pin 29).
El primero es activado cuando un byte va ser ledo desde memoria de
datos externo; el otro, cuando un byte va ser ledo desde memoria de
programa externo. Ambas de estas seales son seales activas en nivel
bajo.

Familias Motorola:

Al igual que en el campo de los microprocesadores, existe una batalla


comercial y un mercado que se reparten fundamentalmente entre Intel y
Motorola en lo que a Microcontroladores se refiere. Motorola posee una
familia de microcontroladores 6805 de bajo costo, muy popular y con el
que tambin se han desarrollado infinidad de aplicaciones y
herramientas, quizs con ms variedad de integrantes en su familia que
los Intel. Esta familia cuenta con versiones ROM, EPROM, E2PROM y
flash.
Una de las particularidades de esta familia es que sus integrantes son
autocontenidos, es decir que se debern utilizar exclusivamente los
recursos internos ya que no disponen de buses de expansin y por ende
no pueden conectarse memorias ni de datos ni de programa externas.
Otra familia importante y ms reciente es la de los Microcontroladores
68HC11,
razonablemente
compatible
con
sus
antecesores,
incorporando a diferencia que sus hermanos menores, conversores A/D
multiplexados, versiones OTP (One Time Programmable), mayor
cantidad de memoria para programas y datos, circuito de Watchdog4,
ms cantidad de temporizadores y ms funcionales, etc.
La familia Motorola 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 68HC05 y se utilizan en mltiples dispositivos
empotrados. El ms ocupado de 32 bits es:
El Freescale ColdFire es un microprocesador de arquitectura de 68k
fabricado para desarrollo de sistemas integrados por Freescale
(anteriormente el sector dedicado a semiconductores de Motorola).
Familias COP de National:
National Semiconductor posee unas familias de Microcontroladores de 4,
8 y 16 bits que denominaron COPS. Una caracterstica interesante de
estas familias es la utilizacin de un bus especial para perifricos
compatibles con dicha familia (conversores varios, memorias no
voltiles, etc.) llamado bus Microwire.

Familias Microchip PIC.


La caracterstica principal de esta familia es que el microprocesador de
estos microcontroladores es tipo RISC (Reduced Instruction Set
Computer) conteniendo algo ms de treinta instrucciones simples y
rpidas. Esto los hace mucho ms rpidos y con un cdigo ms
compacto (y repertorio de instrucciones ms fcil de manejar) que los de
tipo CISC (Complex Instruction Set Computer) pertenecientes a otros
fabricantes.
Existe compatibilidad de cdigo entre los distintos integrantes de la
familia, teniendo como atractivo trascendente su muy bajo costo y
disponibilidad de compiladores de libre disponibilidad as como
programadores fcilmente armables por el usuario.
5.2 CONJUNTO DE INSTRUCCIONES Y LENGUAJE ENSAMBLADOR
Conjunto de instrucciones
Un conjunto de instrucciones o repertorio de instrucciones, juego de
instrucciones o ISA (del ingls Instruction Set Architecture, Arquitectura
del Conjunto de Instrucciones) es una especificacin que detalla las
instrucciones que una CPU de un ordenador puede entender y ejecutar,
o el conjunto de todos los comandos implementados por un diseo
particular de una CPU. El trmino describe los aspectos del procesador
generalmente visibles a un programador, incluyendo los tipos de datos
nativos, las instrucciones, los registros, la arquitectura de memoria y las
interrupciones, entre otros aspectos.
Existe principalmente de 3 tipos: CISC (Complex Instruction Set
Computer), RISC (Reduced Instruction Set Computer) y SISC (Simple
Instruction Set Computing).
La arquitectura del conjunto de instrucciones (ISA) se emplea a veces
para distinguir este conjunto de caractersticas de la microarquitectura,
que son los elementos y tcnicas que se emplean para implementar el
conjunto de instrucciones. Entre estos elementos se encuentran las
microinstrucciones y los sistemas de cach.
Procesadores con diferentes diseos internos pueden compartir un
conjunto
de
instrucciones;
por
ejemplo,

el Intel Pentium y AMD Athlon implementan versiones casi idnticas del


conjunto de instrucciones x86, aunque tienen diseos diferentes.

Implementacin del conjunto de instrucciones


Cualquier conjunto de instrucciones se puede implementar de varias
maneras. Todas las maneras de implementar un conjunto de
instrucciones dan el mismo modelo programado, y todas pueden hacer
funcionar los mismos ejecutables binarios. Las varias maneras de
implementar un conjunto de instrucciones dan diversas compensaciones
entre el coste, el funcionamiento, el consumo de energa, el tamao, el
etc.
Al disear microarquitecturas, los ingenieros usaron bloques de circuitos
electrnicos duramente-conectados (diseado a menudo por
separado) por ejemplo, los multiplexores, los contadores, los registros,
ALUs etc. Un cierto tipo del lenguaje de transferencia de registros es a
menudo usado para describir la codificacin y la secuencia de cada
instruccin de ISA usando esta microarquitectura fsica.
Hay tambin algunos nuevos diseos de CPU que compilan el conjunto
de instruccin a una RAM escribible o FLASH dentro de la CPU (tal como
el procesador Recursiv y el Imsys Cjip), o FPGA (computacin
reconfigurable). Western Digital MCP-1600 es un ejemplo antiguo,
usando una ROM dedicada, separada del microcdigo.
ISA se puede tambin emular en software por un intrprete.
Naturalmente, debido a la interpretacin de overhead, es ms lento
que ejecutar programas directamente sobre el hardware emulado. Hoy,
es prctica para los vendedores de nuevos ISAs o microarchitectures
poner emuladores del software a disposicin de los desarrolladores de
programas informticos antes de que la implementacin del hardware
est lista.
Los detalles de la implementacin tienen una influencia fuerte en las
instrucciones particulares seleccionadas para el conjunto de instruccin.
Por ejemplo, muchas implementaciones de la instruccin pipline
permiten solamente una carga de memoria (load) o almacn en
memoria (store) por instruccin, llevando a carga-almacena arquitectura
(RISC). Por otro ejemplo, algunas maneras de implementar la instruccin
pipline llevaron a una ranura de retardo.

La demanda de procesamiento de seal digital de alta velocidad han


empujado en el sentido contrario, forzando la implementacin de
instruccin de manera particular. Por ejemplo, para realizar los filtros
digitales es bastante insuficiente, la instruccin del MAC en un
procesador tpico de seal digital (DSP) se debe implementar usando
una arquitectura de Harvard que pueda traer una instruccin y dos
palabras de datos simultneamente, y requiere un solo ciclo.

Diseo del conjunto de instrucciones


La densidad del cdigo
En computadoras antiguas, la memoria del programa era costosa, as
que minimizar el tamao de un programa para asegurar que va a caber
en la memoria limitada era a menudo central. As el tamao combinado
de todas las instrucciones necesit realizar una tarea particular, la
densidad del cdigo, era una caracterstica importante de cualquier
sistema de instruccin. Las computadoras con alta densidad del cdigo
tambin tenan a menudo instrucciones complejas para la entrada del
procedimiento, los retornos parametrizados, los lazos etc. Sin embargo, "
instrucciones CISC" combinan simplemente una operacin bsica de la
ALU, tal como " add", con el acceso de uno o ms operandos en
memoria (usando modos de direccin tales como directo, indirecto,
indexado). Ciertas arquitecturas pueden permitir dos o tres operandos
(incluido el resultado) directamente en memoria o pueden permitir
realizar funciones tales como el incremento automtico del puntero.
RISC, fueron los primeros implementados con profundidad en el perodo
de rpido crecimiento de las memorias de subsistemas, se reduce el
cdigo con el fin de simplificar el circuito de aplicacin y con ello tratar
de aumentar el rendimiento a travs de las frecuencias de reloj ms
elevadas y el uso de ms registros. Las instrucciones RISC suelen
realizar slo una operacin, como una "suma" de registros o una "carga"
de una posicin de memoria en un registro, tambin suelen utilizar una
longitud de instrucciones fijas, mientras que un conjunto de
instrucciones tpicas CISC tiene instrucciones muchos ms cortas que
esta longitud fija. Las instrucciones de longitud fija son menos
complicadas de manejar que las instrucciones de ancho variable, por
varias razones (por ejemplo: no tener que comprobar si una instruccin
se extiende a ambos lados de una lnea de cach o el lmite de memoria

virtual de la pgina), y por lo tanto algo ms fcil de optimizar la


velocidad . Sin embargo, como los equipos RISC normalmente requieren
ms y ms para implementar las instrucciones que ejecutan una
determinada tarea, hacen menos ptimo el uso del ancho de banda y de
la memoria cach.
Las computadoras mnimas del conjunto de instrucciones (MISC) son una
forma de mquina apilada, donde hay pocas instrucciones separadas
(16-64), para poder caber instrucciones mltiples en una sola palabra de
mquina. stos tipo de ncleos llevan a menudo poco silicio para
implementarse, as que pueden ser observadas fcilmente en un FPGA o
en una forma multinucleo. La densidad del cdigo es similar al RISC; la
densidad creciente de la instruccin es compensada requiriendo ms de
las instrucciones primitivas de hacer una tarea.
Nmero de operandos
El conjunto de instrucciones puede ser clasificado por el nmero mximo
de operandos explcitamente especificados en las instrucciones. (en los
ejemplos que siguen, a, b y c se refieren a celdas de memoria, mientras
que reg1 y sucesivos se refieren a los registros de la mquina).
0-operando, tambin llamada mquina de pila: todas las operaciones
aritmticas se ejecutan en la parte superior de una o dos posiciones de
la pila, push y pop son las instrucciones utilizadas para acceder a la
memoria: push a, push b, add, pop c.
1-operando (mquinas de una direccin), tambin llamadas mquinas de
acumulador, incluida en la mayora de las primeras computadoras y
muchos microcontroladores pequeos: la mayora de instrucciones
especifican un operando explcito a la derecha (un registro, una posicin
de memoria, o una constante) y un operando a la izquierda: load a, add
b, store c.
2-operando la mayora de las mquinas CISC y RISC entran en esta
categora: CISC load a, reg1, add reg1, b; store reg1, c RISC - cargas
que requieren la memoria explcita, las instrucciones seran: load a,reg1;
load b,reg2; add reg1,reg2; store reg2,c
3-operando, permite una mejor reutilizacin de los datos: CISC - bien
una sola instruccin: add a, b, c, o ms generalmente: move a,reg1; add
reg1,b,c como la mayora de las mquinas se limitan a dos operandos de
memoria. RISC - Debido a la gran cantidad de bits necesarios para

codificar los tres registros, este esquema no suele estar disponible en los
procesadores RISC con pequeas instrucciones de 16 bits: load a,reg1;
load b,reg2; add reg1+reg2->reg3; store reg3,c;
ms operandos, algunas mquinas CISC permiten una variedad de
modos de direccionamiento que permiten ms de 3 operandos (registros
o accesos a memoria), como el VAX "POLY", instruccin de evaluacin de
polinomi

Caractersticas que debe tener un conjunto de instrucciones


Las caractersticas que se pretende que tenga un conjunto de
instrucciones son cuatro, principalmente:

Completo: Que se pueda realizar en un tiempo finito cualquier


tarea ejecutable con un ordenador (computable o decidible).

Eficiente: Que permita alta velocidad de clculo sin exigir una


elevada complejidad en su UC y ALU y sin consumir excesivos
recursos (memoria), es decir, debe cumplir su tarea en un tiempo
razonable minimizando el uso de los recursos.

Autocontenidas: Esto es, que contengan en s mismas toda la


informacin necesaria para ejecutarse.

Independientes: Que no dependan de la ejecucin de alguna


otra instruccin.

Se puede comprobar que para que un conjunto de instrucciones sea


completo solo se necesitan cuatro instrucciones:
-> escritura
-> mover a la izquierda una posicin y leer
-> mover a la derecha una posicin y leer
-> parar
En esta idea se basan las arquitecturas RISC, no obstante, con este
conjunto no se puede conseguir la eficiencia del repertorio de
instrucciones por lo que en la prctica el conjunto suele ser ms amplio
en aras de conseguir un mejor rendimiento, tanto en uso de recursos
como en consumo de tiempo.

Tipos de instrucciones y ejemplos

Transferencia de datos: Copian datos de un origen a un destino,


sin modificar el origen y normalmente sin afectar a los flags o
indicadores de condicin. Pueden transferir palabras, fracciones de
palabras (bytes, media palabra) o bloques completos de n bytes o
palabras.

Estas operaciones pueden ser:


-> registro - registro
-> registro - memoria
-> memoria - registro
-> memoria - memoria
Nemotcnicos ms frecuentes:

move: copia el contenido de un registro(o memoria) a otro.

store: copia el contenido de un registro a memoria.

load: copia el contenido de una posicin de memoria a un


registro.

move block: copia un bloque de datos de una posicin de


memoria a otra.

move multiple: copia


memoria.

exchange: intercambia el contenido de dos operandos.

clear: pone a 0 el destinto. (todos los bits)

set: pone a 1 el destino. (todos los bits)

push: introduce un dato en la cabecera de la pila. (indicada por el


SP)

pop: saca un dato de la cabecera de la pila. (indicada por el SP)

Instrucciones aritmticas: Son efectuadas por la ALU y suelen


cambiar los flags o indicadores de condicin.

Nemotcnicos ms frecuentes:

del

origen

en

varias

posiciones

de

add: Suma.

add with carry: Suma con acarreo.

subtract: Resta.

subtract with borrow: Resta teniendo en cuenta el adeudo


anterior.

increment: incrementa en 1 un valor.

decrement: decrementa en 1 un valor.

multiply: multiplica.

divide: divide.

extend: aumenta el operando de tamao.

negate: cambia de signo.

absolute: valor absoluto.

-> Pueden tener instrucciones para tratar con nmeros en BCD e


incluyen operaciones en coma flotante, lo cual se identifica con una 'f'
antes del nombre del nemotcnico como por ejemplo:
fabsolute

Instrucciones de comparacin: Suelen preceder a una


instruccin de bifurcacin condicional y modifican los flags. No hay
que pensar que las instrucciones de salto condicional dependen de
este repertorio, ya que lo nico que hace el salto condicional es
consultar los flags y salta si precede, pero no depende de ninguna
instruccin de comparacin. (de hecho cualquier operacin
aritmtica realizada anteriormente a un salto condicional puede
provocar que este "salte").

Nemotcnicos ms frecuentes:

compare: Resta los dos operandos pero no almacena el resultado,


solo modifica los flags.

test: compara un cierto valor especificado con el 0.

Instrucciones lgicas: Realizan operaciones booleanas "bit a bit"


entre dos operandos. Como las aritmticas tambin modifican los
flags.

Nemotcnicos ms frecuentes:

and: el "y" lgico.

or: el "o inclusivo" lgico.

xor: el "o exclusivo" lgico.

not: la negacin lgica. (complemento a 1, no confundir con el


cambio de signo "negate" que es el complemento a 2)

Instrucciones de Desplazamiento: Pueden ser aritmtico o


lgico y pueden incluir o no rotaciones. Pueden ser de izquierda a
derecha.

Nemotcnicos ms frecuentes:

shift: desplazamiento aritmtico o lgico.

rotate: rotacin con o sin acarreo.

Instrucciones de bits: Comprueban un bit del operando y su


valor lo reflejan en el indicador de cero. Pueden poner un bit a 0 o
complementarlo.

Nemotcnicos ms frecuentes:

bit test: comprueba un bit.

bit clear: comprueba un bit y lo pone a 0.

bit set: comprueba un bit y lo pone a 1.

Instrucciones de control: Permiten modificar la secuencia


normal de ejecucin de un programa, puede hacerse por salto
condicional relativo o absoluto.

Se clasifican en cuatro grupos:


-> salto incondicional
-> salto condicional
-> Llamada a subrutinas
-> Gestin de las interrupciones

saltos: Pueden ser condicionales o incondicionales, se suelen


especificar como jump o brantch, y en el caso de los condicionales

se suele llamar jcond o bcond donde cond es una o ms letras que


indican la condicin que ha de cumplirse para que el salto se
produzca.
-> Incondicional: salta sin comprobar ninguna condicin.
Nemotcnicos ms frecuentes: jump o brantch
-> Condicional: salta si la condicin se cumple.
Nemotcnicos ms frecuentes: jcond o bcond

Llamadas a subrutinas: Invoca la ejecucin de funciones


anteriormente definidas.

Nemotcnicos ms frecuentes: call (llamada) y ret (retorno)

Gestin de interrupciones: Se usan para llamar a las rutinas de


servicio de interrupcin y esto se puede hacer por hardware o bien
por software. Necesita una instruccin similar a return para
retornar al contexto anterior pero restableciendo el estado de la
mquina, para no afectar a la aplicacin a la cual se interrumpi
(iret).

Instrucciones de E/S: Son instrucciones de transferencia salvo


que el origen/destino de dicho flujo es un puerto de un dispositivo
de E/S. Estas instrucciones pueden darse mediante dos
alternativas:

->E/S "mapeada" en memoria: Los perifricos tienen direcciones


asignadas de la MP por lo que no se necesitan instrucciones especiales y
las
operaciones
se
realizan
con
las
ya
vistas,
como
son: load, store y move.
->E/S independiente: Necesitan unas instrucciones especiales para
indicarle al procesador que nos estamos refiriendo al mapa de
direcciones de E/S, ya que este mapa y el mapa de memoria son
disjuntos.
Nemotcnicos ms frecuentes:

input o read: Pemite leer informacin de un puerto y trasladarla


a memoria principal.

output o write: Permite escribir informacin en un puerto de un


dispositivo.

test i/o: Lee informacin de control de un perifrico.

control i/o: Enva informacin de control hacia un perifrico.

Instrucciones de control y miscelneas:


Nemotnicos ms frecuentes:

halt: Detiene la ejecucin del programa


interrupcin arranca otro programa.

wait: Sirve para deterner la ejecucin de un programa hasta que


sucede un determinado evento que no es una interrupcin (otra
condicin externa al primer programa).

nop: No realiza ninguna operacin, sirve para rellenar huecos en


un programa o temporizar esperas.

enable: Habilita las interrupciones.

disable: Deshabilita las interrupciones.

test and set: Se utiliza para la implementacin de la exclusin


mutua, esto es, que un procesador no pueda acceder a un
determinado recurso que est siendo usado por otro procesador
en ese mismo momento.

hasta

que

una

Se usan como semforos, esto es, se declara una variable entera que
tendr el valor 0 si el recurso esta libre y 1 si est siendo utilizado, de
manera que si un procesador comprueba y el semforo est en 1 tendr
que esperar hasta que este cambie a 0. (1 = s.rojo y 0 = s.verde).

El lenguaje ensamblador
En el lenguaje ensamblador el programador utiliza instrucciones
simblicas en lugar de instrucciones de mquina y nombres descriptivos
para los elementos de datos y para las localidades de memoria. Usted
escribe un programa en ensamblador de acuerdo con un conjunto
estricto de reglas que despus utiliza el programa traductor de
ensamblador para convertir el programa ensamblador en cdigo
mquina.
Existen 2 clases de lenguajes de programacin: de alto nivel y de bajo
nivel. Los programadores que escriben en un lenguaje de alto nivel
(como C y Pascal), codifican comandos poderosos, cada uno de los

cuales puede generar muchas instrucciones en lenguaje de mquina. Por


otro lado, los programadores que escriben en un lenguaje ensamblador
de bajo nivel codifican instrucciones simblicas, cada una de las cuales
genera una instruccin en lenguaje mquina. A pesar del hecho de que
codificar en un lenguaje de alto nivel es ms productivo, algunas
ventajas de codificar en lenguaje ensamblador son:

Proporciona ms control sobre el manejo particular de los


requerimientos de hardware.

Genera mdulos ejecutables ms pequeos y ms compactos.

Con mayor probabilidad tiene una ejecucin ms rpida.

Una prctica comn es combinar los beneficios de ambos niveles de


programacin. Un lenguaje de alto nivel utiliza un compilador para
traducir el cdigo fuente a lenguaje mquina. Un lenguaje de bajo nivel
utiliza un ensamblador para realizar la traduccin.
Un programa en lenguaje ensamblador consiste en un conjunto de
enunciados. Los dos tipos de enunciados o lneas de programacin son:
1.- Instruccin, tal como MOV y ADD, que el ensamblador traduce a
cdigo objeto
2.- Directiva, que indican al ensamblador que realice una accin
especfica, como definir un elemento de dato.

El nico lenguaje que entienden los microcontroladores es el


cdigo mquina formado por ceros y unos del sistema binario.
El lenguaje ensamblador expresa las instrucciones de una forma
ms natural al hombre a la vez que muy cercana al
microcontrolador, ya que cada una de esas instrucciones se
corresponde con otra en cdigo mquina.
El lenguaje ensamblador trabaja con nemnicos, que son grupos
de caracteres alfanumricos que simbolizan las rdenes o tareas a
realizar.
La traduccin de los nemnicos a cdigo mquina entendible por
el microcontrolador la lleva a cabo un programa ensamblador.
El programa escrito en lenguaje ensamblador se denomina cdigo
fuente (*.asm). El programa ensamblador proporciona a partir de
este fichero el correspondiente cdigo mquina, que suele tener la
extensin *.hex.

LENGUAJE ENSAMBLADOR

En el lenguaje ensamblador el programador utiliza


instrucciones simblicas en lugar de instrucciones de mquina
y nombres descriptivos para los elementos de datos y para las
localidades de memoria. Usted escribe un programa en
ensamblador de acuerdo con un conjunto estricto de reglas que
despus utiliza el programa traductor de ensamblador para
convertir el programa ensamblador en cdigo mquina.
Existen 2 clases de lenguajes de programacin: de alto nivel y
de bajo nivel. Los programadores que escriben en un lenguaje
de alto nivel (como C y Pascal), codifican comandos poderosos,
cada uno de los cuales puede generar muchas instrucciones en
lenguaje de mquina. Por otro lado, los programadores que
escriben en un lenguaje ensamblador de bajo nivel codifican
instrucciones simblicas, cada una de las cuales genera una
instruccin en lenguaje mquina. A pesar del hecho de que
codificar en un lenguaje de alto nivel es ms productivo,
algunas ventajas de codificar en lenguaje ensamblador son:

Proporciona ms control sobre el manejo particular de los


requerimientos de hardware.
Genera mdulos ejecutables ms pequeos y ms compactos.
Con mayor probabilidad tiene una ejecucin ms rpida.
Una prctica comn es combinar los beneficios de ambos
niveles de programacin. Un lenguaje de alto nivel utiliza un
compilador para traducir el cdigo fuente a lenguaje mquina.
Un lenguaje de bajo nivel utiliza un ensamblador para realizar
la traduccin.
Un programa en lenguaje ensamblador consiste en un conjunto
de enunciados. Los dos tipos de enunciados o lneas de
programacin son:
1.- Instruccin, tal como MOV y ADD, que el ensamblador
traduce a cdigo objeto

2.- Directiva, que indican al ensamblador que realice una


accin especfica, como definir un elemento de dato.
CONJUNTO
DE
ENSAMBLADOR

INSTRUCCIONES

EN

LENGUAJE

ACALL

Llamar Absoluto

AADIR

Aadir Acumulador

ADDC

Aadir acumulador con Carry

AJMP

Salto Absoluto

ANL

Y lgico para las variables byte

ANL bits

Y lgico para las variables de bit

CJNE

Comparar y salta si no es igual

CLR A

Borrar Acumulador

Poco CLR

Claro bits

CPL A

Complementar Acumulador

Poco CPL

Poco Complemento

DA

Decimal Ajuste del acumulador

Diciembre

Disminuye el Registro

DIV

Divide Acumulador por B

DJNZ

Disminuye el Registro y Salta si no es


cero

INC

Incrementa el Registro

JB

Saltar si Set Bit

JBC

Saltar si Bit Set y Clear Bit

JC

Saltar si Set Carry

JMP @

Saltar indirecta para abordar

JNB

Saltar si Bit no activado

JNC

Saltar si Lleve Not Set

JNZ

Saltar si Acumulador No Zero

JZ

Saltar si Acumulador Zero

LCALL

Long Call

LJMP

Salto de longitud

MOV

Mueva la variable byte

Poco MOV

Poco Move

MOVC

Mueva Memoria Cdigo

MOVX

Mueva Memoria externa

MUL

Multiplicar por acumulador B

NOP

No Operacin

ORL

OR lgico de variables de tipo Byte

ORL bits

OR lgico de variables de bit

POP

Pop De Pila

PUSH

Empuje en la pila

RET

Regresa de la subrutina

RETI

Regreso de la interrupcin

RL

Gire Acumulador Izquierda

RLC

Gire Acumulador Izquierda travs Carry

RR

Gire Acumulador Derecha

RRC

Gire Acumulador derecha a travs de

Carry
SETB

Bit Set

SJMP

Corto Jump

SUBB

Restar de acumulador con Borrow

SWAP

Cambie los acumuladores Nibbles

XCH

Tipo Bytes

XCHD

Dgitos Tipo

XRL

OR exclusivo

??

Instruccin Indefinido

Ventajas y desventajas del Lenguaje Ensamblador


Una vez que hemos visto la evolucin de los lenguajes, cabe preguntarse: En
estos tiempos "modernos", para qu quiero el Lenguaje Ensamblador?
El proceso de evolucin trajo consigo algunas desventajas, que ahora veremos
cmo las ventajas de usar el Lenguaje Ensamblador, respecto a un lenguaje de
alto nivel:

Eficiencia de tamao

Flexibilidad

Por otro lado, al ser un lenguaje ms primitivo, el Ensamblador tiene ciertas


desventajas respecto a los lenguajes de alto nivel:

Tiempo de programacin

Programas fuente grandes

Peligro de afectar recursos inesperadamente

Falta de portabilidad

Velocidad
El proceso de traduccin que realizan los intrpretes, implica un proceso de
cmputo adicional al que el programador quiere realizar. Por ello, nos
encontraremos con que un intrprete es siempre ms lento que realizar la
misma accin en Lenguaje Ensamblador, simplemente porque tiene
el costoadicional de estar traduciendo el programa, cada vez que lo
ejecutamos.
De ah nacieron los compiladores, que son mucho ms rpidos que los
intrpretes, pues hacen la traduccin una vez y dejan el cdigo objeto, que ya
es Lenguaje de Mquina, y se puede ejecutar muy rpidamente. Aunque el
proceso de traduccin es ms complejo y costoso que el de ensamblar un
programa, normalmente podemos despreciarlo, contra las ventajas de codificar
el programa ms rpidamente.
Sin embargo, la mayor parte de las veces, el cdigo generado por un
compilador es menos eficiente que el cdigo equivalente que un programador
escribira. La razn es que el compilador no tiene tanta inteligencia, y requiere
ser capaz de crear cdigo genrico, que sirva tanto para un programa como
para otro; en cambio, un programador humano puede aprovechar las
caractersticas especficas del problema, reduciendo la generalidad pero al
mismo tiempo, no desperdicia ninguna instruccin, no hace ningn proceso
que no sea necesario.
Para darnos una idea, en una PC, y suponiendo que todos son buenos
programadores, un programa para ordenar una lista tardar cerca de 20 veces
ms en Visual Basic (un intrprete), y 2 veces ms en C (un compilador), que el
equivalente en Ensamblador.
Por ello, cuando es crtica la velocidad del programa, Ensamblador se vuelve un
candidato lgico como lenguaje.
Ahora bien, esto no es un absoluto; un programa bien hecho en C puede ser
muchas veces ms rpido que un programa mal hecho en Ensamblador; sigue
siendo sumamente importante la eleccin apropiada
de algoritmos y estructuras de datos. Por ello, se recomienda buscar optimizar
primero estos aspectos, en el lenguaje que se desee, y solamente usar
Ensamblador cuando se requiere ms optimizacin y no se puede lograr por
estos medios.
Tamao
Por las mismas razones que vimos en el aspecto de velocidad, los compiladores
e intrpretes generan ms cdigo mquina del necesario; por ello, el programa
ejecutable crece. As, cuando es importante reducir el tamao del ejecutable,

mejorando el uso de la memoria y teniendo tambin beneficios en velocidad,


puede convenir usar el lenguaje Ensamblador. Entre los programas que es
crtico el uso mnimo de memoria, tenemos a los virus y manejadores de
dispositivos (drivers). Muchos de ellos, por supuesto, estn escritos en lenguaje
Ensamblador.
Flexibilidad
Las razones anteriores son cuestin de grado: podemos hacer las cosas en otro
lenguaje, pero queremos hacerlas ms eficientemente. Pero todos los lenguajes
de alto nivel tienen limitantes en el control; al hacer abstracciones, limitan su
propia capacidad. Es decir, existen tareas que la mquina puede hacer, pero
que un lenguaje de alto nivel no permite. Por ejemplo, en Visual Basic no es
posible cambiar la resolucin del monitor a medio programa; es una limitante,
impuesta por la abstraccin del GUI Windows. En cambio, en ensamblador es
sumamente sencillo, pues tenemos el acceso directo al hardware del monitor.
Tiempo de programacin
Al ser de bajo nivel, el Lenguaje Ensamblador requiere ms instrucciones para
realizar el mismo proceso, en comparacin con un lenguaje de alto nivel. Por
otro lado, requiere de ms cuidado por parte del programador, pues es
propenso a que los errores de lgica se reflejen ms fuertemente en la
ejecucin.
Por todo esto, es ms lento el desarrollo de programas comparables en
Lenguaje Ensamblador que en un lenguaje de alto nivel, pues el programador
goza de una menor abstraccin.
Programas fuente grandes
Por las mismas razones que aumenta el tiempo, crecen los programas fuentes;
simplemente, requerimos ms instrucciones primitivas para
describirprocesos equivalentes. Esto es una desventaja porque dificulta
el mantenimiento de los programas, y nuevamente reduce la productividad de
los programadores.
Peligro de afectar recursos inesperadamente
Tenemos la ventaja de que todo lo que se puede hacer en la mquina, se
puede hacer con el Lenguaje Ensamblador (flexibilidad). El problema es que
todo error que podamos cometer, o todo riesgo que podamos tener, podemos
tenerlo tambin en este Lenguaje. Dicho de otra forma, tener muchopoder es
til pero tambin es peligroso.
En la vida prctica, afortunadamente no ocurre mucho; sin embargo, al
programar en este lenguaje vern que es mucho ms comn que la mquina

se "cuelgue", "bloquee" o "se le vaya el avin"; y que se reinicialize. Por qu?,


porque con este lenguaje es perfectamente posible (y sencillo) realizar
secuencias de instrucciones invlidas, que normalmente no aparecen al usar
un lenguaje de alto nivel.
En ciertos casos extremos, puede llegarse a sobrescribir informacin del CMOS
de la mquina (no he visto efectos ms riesgosos); pero, si no la conservamos,
esto puede causar que dejemos de "ver" el disco duro, junto con toda su
informacin.
Falta de portabilidad
Como ya se mencion, existe un lenguaje ensamblador para cada mquina; por
ello, evidentemente no es una seleccin apropiada de lenguaje cuando
deseamos codificar en una mquina y luego llevar los programas a
otros sistemas operativos o modelos de computadoras. Si bien esto es un
problema general a todos los lenguajes, es mucho ms notorio en
ensamblador: yo puedo reutilizar un 90% o ms del cdigo que desarrollo en
"C", en una PC, al llevarlo a una RS/6000 con UNIX, y lo mismo si despus lo
llevo a una Macintosh, siempre y cuando est bien hecho y siga los estndares
de "C", y losprincipios de la programacin estructurada. En cambio, si
escribimos el programa en Ensamblador de la PC, por bien que lo
desarrollemos y muchos estndares que sigamos, tendremos prcticamente
que reescribir el 100 % del cdigo al llevarlo a UNIX, y otra vez lo mismo al
llevarlo a Mac.

Veamos ahora como se organizan y una breve descripcin de los mismos:


Registro de 8 bits

R de 16 b al que pe

AF

AF

BC

BC

DE

DE

HL

HL

AF

AF

BC

BC

DE

DE

HL

HL

Xh

IX

Xl

IX

Yh

IY

Yl

IY

"IR"

"IR"
PC
SP

A parte de esos, tiene otro dos que son bolanos (1 slo bit), llamados iff0 y iff1
(y al menos otro registro interno de 8 bits para clculos internos suyos).
Los registros con un <> son alternativos. Digamos que estn en el banquillo
esperando que salga del juego su homlogo para entrar l. No se les puede
acceder directamente (habra ms jugadores de los reglamentarios), pero
siempre se puede hacer el cambio (aqu son ilimitados). Siempre que se
produce uno de stos cambios, se intercambia un registro de 16 bits enterito.
No vale cambiar slo uno de 8.

Xh, Yh, Xl, Yl son los registros de 8 bits que conforman IX e IY. Oficialmente, las
instrucciones que operan sobre ellos estn indocumentadas, pero me parece
una tontera el no hablar de ellos desde el principio.
PC contiene el "contador del programa", es decir, la direccin de memoria en
la cual el procesador leer su prxima instruccin
Modos de direccionamiento
Se les llama modos de direccionamiento a las distintas formas de combinar los
operadores segn el acceso que se hace a memoria.
Dicho de otra manera, un modo de direccionamiento ser una forma de
parmetro para las instrucciones. Una instruccin que lleve un parmetro, por
lo tanto, usar un modo de direccionamiento, que depender de cmo
direccionar (accesar) al parmetro; una instruccin de dos parmetros,
combinar dos modos de direccionamiento.

Modo registro

Usa solamente registros como operadores


Es el ms rpido, pues minimiza los recursos necesarios (toda la informacin
fluye dentro del EU del CPU).

Modo inmediato

Tiene dos operandos: un registro y una constante que se usa por su valor.
El valor constante no se tiene que buscar en memoria, pues ya se obtuvo al
hacer el "fetch" de la instruccin.
Por tanto, es rpido aunque no tanto como el modo registro; requiere ir al BIU
por el dato.

Modo directo

Uno de los operandos involucra una localidad especfica de memoria


El valor constante se tiene que buscar en memoria, en la localidad
especificada.
Es ms lento que los anteriores, pero es el ms rpido para ir a memoria, pues
ya "sabe" la localidad, la toma de la instruccin y no la tiene que calcular.

Modo indirecto

Se usan los registros SI, DI como apuntadores

El operando indica una localidad de memoria, cuya direccin (slo la parte


desplazamiento) est en SI o DI.
Es ms lento que los anteriores, pues tiene que "calcular" la localidad.

Modo indexado de base

Formato:
[
BX o BP
+ SI o DI (opcionales)
+ constante (opcional)
]
BX o BP indica una localidad base de la memoria
A partir de BX o BP, se puede tener un desplazamiento variable y uno
constante
La diferencia es el segmento sobre el que trabajan por defecto:
BX por defecto en el segmento de datos
BP por defecto en el segmento de pila.

5.3 Caractersticas y uso de elementos del microcontrolador.


Los micro-controlador son diseados para reducir el costo econmico y
el consumo de energa de un sistema en particular. El tamao de la
unidad central de procesamiento, la cantidad de memoria y los
perifricos incluidos dependern de la aplicacin.

Puertos de comunicacin.
Puerto serie

Este perifrico est presente en casi cualquier microcontrolador,


normalmente en forma de UART (Universal Asynchronous Receiver
Transmitter) o USART (Universal Synchronous Asynchronous Receiver
Transmitter) dependiendo de si permiten o no el modo sincrnico de
comunicacin.
El destino comn de este perifrico es la comunicacin con otro
microcontrolador o con una PC y en la mayora de los casos hay que
agregar circuitos externos para completar la interfaz de comunicacin.
La forma ms comn de completar el puerto serie es para comunicarlo
con una PC mediante la interfaz EIA-232 (ms conocida como RS-232),
es por ello que muchas personas se refieren a la UART o USART como
puerto serie RS-232, pero esto constituye un error, puesto que este
perifrico se puede utilizar para interconectar dispositivos mediante
otros estndares de comunicacin.
SPI
Este tipo de perifrico se utiliza para comunicar al microcontrolador con
otros microcontroladores o con perifricos externos conectados a l, por
medio de una interfaz muy sencilla. Hay solo un nodo controlador que
permite iniciar cualquier transaccin, lo cual es una desventaja en
sistemas complejos, pero su sencillez permite el aislamiento galvnico
de forma directa por medio de opto acopladores.
I2C
Cumple las mismas funciones que el SPI, pero requiere menos seales
de comunicacin y cualquier nodo puede iniciar una transaccin. Es muy
utilizado para conectar las tarjetas grficas de las computadoras
personales con los monitores, para que estos ltimos informen de sus
prestaciones y permitir la autoconfiguracin del sistema de vdeo.

USB
Los microcontroladores son los que han permitido la existencia de este
sistema de comunicacin. Es un sistema que trabaja
por polling (monitorizacin) de un conjunto de perifricos inteligentes
por parte de un amo, que es normalmente un computador personal.
Cada modo inteligente est gobernado inevitablemente por un
microcontrolador.
Temporizadores y contadores
Son circuitos sincrnicos para el conteo de los pulsos que llegan a su
poder para conseguir la entrada de reloj. Si la fuente de un gran conteo
es el oscilador interno del microcontrolador es comn que no tengan un
pin asociado, y en este caso trabajan como temporizadores. Por otra

parte, cuando la fuente de conteo es externa, entonces tienen asociado


un pin configurado como entrada, este es el modo contador.
Los temporizadores son uno de los perifricos ms habituales en los
microcontroladores y se utilizan para muchas tareas, como por ejemplo,
la medicin de frecuencia, implementacin de relojes, para el trabajo de
conjunto con otros perifricos que requieren una base estable de tiempo
entre otras funcionalidades. Es frecuente que un microcontrolador tpico
incorpore ms de un temporizador/contador e incluso algunos tienen
arreglos de contadores. Como veremos ms adelante este perifrico es
un elemento casi imprescindible y es habitual que tengan asociada
alguna interrupcin. Los tamaos tpicos de los registros de conteo son 8
y 16 bits, pudiendo encontrar dispositivos que solo tienen
temporizadores de un tamao o con ms frecuencia con ambos tipos de
registro de conteo.
Conversor analgico/digital
Como es muy frecuente el trabajo con seales analgicas, stas deben
ser convertidas a digital y por ello muchos microcontroladores
incorporan un conversor analgico-digital, el cual se utiliza para tomar
datos de varias entradas diferentes que se seleccionan mediante un
multiplexor.
Las resoluciones ms frecuentes son 8 y 10 bits, que son suficientes
para aplicaciones sencillas. Para aplicaciones en control e
instrumentacin estn disponibles resoluciones de 12bit, 16bit y
24bit.Tambin es posible conectar un convertidor externo, en caso de
necesidad.
5.4 APLICACIONES DE LOS MICROCONTROLADORES

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 nuestra vida diaria, como pueden ser juguetes, horno
microondas, frigorficos, televisores, computadoras, impresoras, mdems, el sistema de arranque de nuestro

automovil,

etc.

Y
otras
aplicaciones
con
las
que
seguramente
no
estaremos
tan
familiarizados
como instrumentacin electrnica, control de sistemas en una nave espacial, etc. Una 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

Los microcontroladores se encuentran por todas partes:

Sistemas de comunicacin: en grandes automatismos como


centrales y en telfonos fijos, mviles, fax, etc.

Electrodomsticos: lavadoras, hornos, frigorficos, lavavajillas,


batidoras, televisores, vdeos, reproductores DVD, equipos de
msica, mandos a distancia, consolas, etc.

Industria informtica: Se encuentran en casi todos los perifricos;


ratones, teclados, impresoras, escner, etc.

Automocin: climatizacin, seguridad, ABS, etc.

Industria: Autmatas, control de procesos, etc

Sistemas de supervisin, vigilancia y alarma: ascensores,


calefaccin, aire acondicionado, alarmas de incendio, robo, etc.

Otros: Instrumentacin, electromedicina, tarjetas (smartcard),


sistemas de navegacin, etc.

Aunque en el mercado de la microinformtica la mayor atencin la acaparan los


desarrollos de los microprocesadores, lo cierto es que se venden cientos de
microcontroladores
por
cada
uno
de
aqullos.
Produccin
mundial
de
microcontroladores por ao:

También podría gustarte