08/01/2015

Microcontroladores
Introducción
Jorge Rodríguez Arce, Phd

Presentación elaborada con material recopilado de la red e
información de Pearson Education.

¿Que es un microcontrolador? (I)
• Un microcontrolador es un circuito integrado de alta escala de
integración que contiene todos los componentes
fundamentales de un ordenador, aunque de limitadas
prestaciones y que se suele destinar a gobernar una sola
tarea.
• En su memoria sólo reside un programa que controla en
funcionamiento de una tarea determinada.
• Incluye líneas de entrada/salida listar para ser conectadas a
sensores y actuadores.
(2)

¿Que es un microcontrolador? (II)
• Un microcontrolador dispone normalmente de los siguientes
componentes:




Procesador o CPU (Unidad Central de Proceso).
Memoria RAM para contener los datos.
Memoria para el programa tipo ROM/EPROM/EEPROM/Flash.
Líneas de E/S para comunicarse con el exterior.
Diversos módulos para el control de periféricos (temporizadores,
puertos serie y paralelo, CAD:
• Conversores Analógico/Digital, CDA: Conversores
Digital/Analógico, etc.).
• Generador de impulsos de reloj que sincronizan el
funcionamiento de todo el sistema.

(3)

1

la velocidad de funcionamiento. • En el caso del PIC hay confusión. 8. refrigeradores. escáner. aire acondicionado. vigilancia y alarma: ascensores. impresoras. etc. ratones. lavavajillas. consolas. (6) 2 . la cantidad y potencia de los elementos auxiliares. • A mayor longitud del bus de datos. equipos de música. alarmas de incendio. Como el PIC usa arquitectura Harvard el tamaño de las instrucciones puede ser distinto al de la palabra de datos. éste debería tener muy potenciados todos sus recursos para poderse adaptar a las exigencias de las diferentes aplicaciones. 16 ó 32 bits. • Industria: Autómatas. televisores.etc. fax. etc. control de procesos. calefacción. batidoras. hornos. • Si sólo se dispusiese de un modelo de microcontrolador. etc • Sistemas de supervisión. mandos a distancia. vídeos. • En la práctica cada fabricante de microcontroladores oferta un elevado número de modelos diferentes • Es posible seleccionar la capacidad de las memorias. robo. ABS. • Electrodomésticos: lavadoras. reproductores DVD. seguridad.08/01/2015 Aplicaciones de un microcontrolador • Los microcontroladores se encuentran por todas partes. etc. mayor será la eficiencia del microcontrolador en operaciones con datos grandes. el número de líneas de E/S. (4) (5) Variedad de microcontroladores • La clasificación más importante de microcontroladores es: 4. etc. • Industria informática: Se encuentran en casi todos los periféricos. algunos ejemplos se muestran a continuación: • Sistemas de comunicación: teléfonos móviles. etc. • Automotriz: climatización. teclados.

buses. devices. • Multiprocessing systems use multiple CPUs to execute task simultaneously.08/01/2015 Microcontrollers/Microcomputers • A key trait of microcontrollers is the size and packaging of the CPU. Single-tasking. memory and peripherals. They are suited to “control” of I/O actuators. They are suited to “processing” high volumen of information. Normally use It is a general purpose programable device. robotics. • Microcontrollers are single-task systems – they execute only one program at a time. Cd-rom) They execute programs stored in the internal memory (ROM or Flash). ROM. (9) 3 . etc) are contained within a single integraded circuit. Speed Microcontroller It is a small computer on a single integrated circuit containing a processor core (CPU). may not handle a real time task. They are most used as the CPU in a computer system. (7) Microprocessor vs Microcontroller(I) Open-Architecture Close-Architecture (8) Microprocessor vs Microcontroller (II) Microprocessor Definition It incorporates the functions of a CPU on a singled integrated circuit. usually has to handle real time tasks. • The simultaneous execution is an illusion resulting from “timing slicing” CPU resources. • Personal Computers (minicomputers/mainframes) are multitasking-systems – they can execute many programs simultaneously. Faster in speed than microcontroller Lower in speed than microprocessor Function They execute their programs from external memory (RAM. Flash). control systems. Embedded systems. • All the basic components (CPU. They stored only one program in memory. etc Task Multi-tasking. They have storage devices (hdd.

08/01/2015 Detailed block diagram of a typical computer-system (10 ) Detailed block diagram of a microcontroller system (11) Detailed block diagram of a 8051 microcontroller (12) 4 .

suspending one process while executin another in response to an “event” • Ex. timers. The opening of a microwave oven’s door. etc) (13) Interrupts • Built-in interrup system • One of the main characteristics of the microcontrollers is their ability to respond to external stimuli in real time (interrupts) • Interrupts: • The ability of the microcontrollers to perform fast context switching. (14) Polling vs trigger (interrupt) Polling Triggering (15) 5 . and suddenly the user wants to call to his friend. general purpose) • Program memory • I/O ports • Clock • Peripheral devices controller (watchdog. ADC.08/01/2015 Basic elements of the µC systems • CPU • • • • • ALU Instruction decoder and control unit (IDCU) Program Counter – (PC) Instruction register (IR) Registers • Acumulador (W) • Data memory (specific function registers (SFR). A microcontroller’s on-chip circuitry includes all the interrupt handling circuitry necessary. ex: enabling and setting priority levels for interrupts. • Most microprocessors can also implement powerful interrrupt schemes. when a smart-phone is receiving an email. but external component are usually required.

• Instruction to enable/disable interrupts (16) Elementos de un microcontrolador Recursos comunes • Al estar todos los microcontroladores en un solo circuito integrado. such as AND. OR. jumping (if a bit is set or clear). su estructura fundamental y sus características básicas son muy parecidas. • Perform bit-oriented operations. etc • Addressing modes provide access to large arrays of data • Their instructions are focus on the control of the inputs and outputs. (18) 6 . a motor may be turned on and off by a 1-bit output port. bytes. • They have instructions to set and clear individual bits. • Bit-oriented instructions. • Todos disponen de los bloques esenciales: • • • • • • Procesador Memoria de datos Memoria de instrucciones Líneas (puertos) de E/S Oscilador de reloj Módulos controladores de periféricos.08/01/2015 Instruction Set Features Microprocessors Microcontrollers • Their instructions have powerful addressing modes • Their instructions operate on large volumes of data • Their instruction operate on nibbles. words. ex.

• Control program is stored in ROM. • They have a high ROM to RAM ratio. Como el µC solo se destina a una tarea en la memoria ROM.08/01/2015 Procesador o CPU • Se encarga de direccionar la memoria de instrucciones. (21) 7 . así como la búsqueda de los operandos y el almacenamiento del resultado. discos rígidos. • Hay dos particularidades que diferencian a los microcontroladores de las PC: • 1. En los µC no existen sistemas de almacenamiento masivo (cintas. las memorias de datos RAM poseen de 20 a 512 bytes. a las memorias las podemos llamar RAM (volátil) para aquellas que manejan datos y variables. mientrasque las memorias de programa ROM (o EEPROM) poseen 512 bytes a 8K bytes. • Según su uso específico dentro del sistema. y ROM (no volátil) a las que almacenan el programa. while RAM is used only for temporary storage • Control program is called firmware. una de datos y otra de instrucciones) • De acuerdo al set de instrucciones • CISC • RISC • SISC (19) Memoria (I) • La memoria de instrucciones y datos está integrada en el propio circuito integrado. • Como los microcontroladores se utilizan para sistemas pequeños. su decodificación y la ejecución de la operación que implica la instrucción. • Programs executing in a relatively large RAM space and hardware interfacing routines in a small ROM Microcontroller • Programmed for one task. etc) • 2. la cantidad de datos y variables en mucho menor que la cantidad de instrucciones de programa. (20) Memoria (II) Microprocessor • Ability to be programmed and the reprogrammed • They have a high RAM to ROM ratio. • Recordar que se pueden dividir en: • De acuerdo a su arquitectura: • Von-Neuman (misma memoria de datos e instrucciones) • Harvard (dos memorias independientes. solo hay que almacenar un único programa de trabajo. • En los microcontroladores PIC. diskettes. recibir el código OP de la instrucción en curso.

Existen 5 tipos de ROM: • 1. • Cada una de las líneas digitales de los Puertos puede configurarse como Entrada o como Salida cargando un 1 ó un 0 en el bit correspondiente de un registro destinado a su configuración.08/01/2015 Memoria (III) • Según el tipo de memoria de programa. salida y de control. EPROM: también llamadas UV-PROM. Se utilizan para series pequeñas de fabricación (prototipos). Funciona como una ROM y una RAM • Las memorias EEPROM y FLASH son muy útiles al permitir que los microcontroladores que las incorporan puedan ser reprogramados "en circuito". Tienen muy bajo costo. EEPROM: Borrables eléctricamente. Son más lentas que las EPROM. (22) Puertos de E/S (I) • La mayoría de las terminales que posee un µC son de E/S y se destinan a proporcionar el soporte a las señales de entrada. FLASH: Similar a las EEPROM pero de mayor densidad (más capacidad) y más veloces. es decir. ROM con máscara: se graba durante la fabricación del chip. • 2. sin tener que sacar el circuito integrado de la tarjeta. • Por lo general. Se borran mediante luz ultravioleta. Sólo es aconsejable el empleo de microcontroladores con este tipo de memoria cuando se fabrican más de 1000 unidades. Hoy día están siendo sustituidas por memorias de tipo Flash. • 5. • 3. Son relativamente más caras que las OTP pero son más veloces en la lectura. Pueden grabarse sin retirarse del circuito. la aplicación y utilización es diferente. • 4. OTP (One Time Programming): permiten una única grabación. • La configuración de cada terminal es independiente al resto de terminales en un mismo puerto (23) Puertos de E/S (II) • Salida de colector abierto (24) 8 . estas líneas se agrupan de ocho en ocho formando Puertos.

protección ante fallo de alimentación • Sleep .estado de reposo o bajo consumo • Conversor analógico a digitital (ADC) • Conversor digitital a analógico (DAC) • Comparador analógico • PWM .08/01/2015 Puertos E/S (III) • Resistencia pull-up (caso especial de colector abierto): • Asegura que la entrada a un sistema lógico sea el valor lógico esperado.temporizadores • Watchdog . resonador cerámico o una red R-C. • Generalmente. • Mejor el comportamiento de un 1 lógico. algunas veces el valor puede quedar entre 1 y 0 (alta impedancia). CAN. el reloj está incorporado en el µC y solo se necesitan unos pocos componentes externos: cristal de cuarzo. los principales recursos que se pueden ofrecen en los µC son: • Timers . I2C) • Protección de código (27) 9 . Ejemplos de uso: • Mantener un 1 lógico aún cuando el dispositivo externo no existe (no hay sistema conectado). USB.Modulador de ancho de pulso • Puertos de comucación (serial. • La resistencia de pull-up se conecta entre una señal lógica y el dispositivo. (25) Reloj principal (clock signal) • Todos los µC disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia que se utiliza para sincronizar todas las operaciones del sistema.perro guardián • Brownout . aún cuando el dispositivo externo sea desconectado o el sistema este en alta impedancia. (26) Recursos especiales (I) Dependen del fabricante. • Aumentar la frecuencia del reloj implica disminuir el tiempo de ejecución de las instrucciones pero lleva consigo un incremento de la temperatura. ej: cuando hay ruido o cambia la temperatura. • Esta señal del reloj es el motor del sistema y la que hace que el programa y los contadores avancen.

• El perro guardián o watchdog se encarga de resetar al sistema automáticamente. • Llevan la cuenta de acontecimientos que suceden en el exterior (contadores). provocará el reset del sistema. • Es muy útil para evitar datos erróneos por transiciones y ruidos en la línea de alimentación. (30) 10 . el mencionado registro se va incrementando o decrementando al ritmo de dichos cambios.08/01/2015 Recursos especiales (II) Timers – tienen dos funciones: • Controlan períodos de tiempo (temporizadores). • La única alternativa que nos queda en estos casos es resetear el sistema. comenzando a funcionar normalmente cuando sobrepasa dicho valor. (28) Recursos especiales (III) Watchdog – Perro guardian • Es muy útil cuando el procesador queda en un lazo infinito dejando de atender al resto del programa (tal vez por un mal diseño o mal funcionamiento del sistema). • Se debe diseñar el programa de de forma que refresque o inicialice al Perro guardián antes de que provoque el reset. • Si falla el programa o se bloquea. el programa no refrescará al Perro guardián y. • Cuando se desean contar acontecimientos que se materializan por cambios de nivel (flancos) en alguna de las terminales del microcontrolador. • Para la medida de tiempos se carga un registro con el valor adecuado y a continuación dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj hasta que se desborde y llegue a 0. al completar su temporización. momento en el que se produce un aviso. (29) Recursos especiales (IV) Brownout: • Es un circuito de protección que resetea al µC cuando el voltaje de alimentación (VDD) es inferior a un voltaje mínimo ("brownout") • Mientras el voltaje de alimentación sea inferior al de brownout el dispositivo se mantiene reseteado. en el momento que el sistema quede “colgado”.

(31) Recursos especiales (VI) Conversor A/D • Los µC que poseen conversores. Suelen disponer de un multiplexor para manejar varias entradas analógicas. • Sale de este estado al interrumpirse por el acontecimiento esperado. hasta que se produzca algún acontecimiento externo.08/01/2015 Recursos especiales (V) Sleep o Bajo consumo: • Útil en situaciones reales de trabajo en que el µC debe esperar sin hacer nada. Comparador analógico: • Algunos µC poseen un amplificador operacional que actúa como comparador entre una señal fija de referencia y otra variable. Conversor D/A • Transforma los datos digitales en su correspondiente señal analógica que saca al exterior por una de las terminales del microcontrolador. De este modo se ahorra energía. (33) 11 . La salida del comparador proporciona un 0 o un 1 según la señal sea mayor o menor que la de referencia. • En dicho estado se detiene el reloj principal y se congelan los circuitos asociados. pueden procesar señales analógicas. (32) Recursos especiales (VII) PWM: • Son circuitos que proporcionan en su salida impulsos de ancho variable.

ya que otorga al programador el dominio absoluto del sistema. Con pequeños cambios podrían recuperarse programas diseñados para el 8051 con estos microcontroladores. • El µC es capaz de entender exclusivamente el lenguaje binario (lenguaje máquina) grabado en la memoria. P8 de Philips y MSC12 de Texas Instruments. ex: BasicStamp. • Documentación existente • Herramientas de desarrollo disponibles y su precio • Precio del microcontrolador (36) 12 . y hay muchos microcontroladores actuales que derivan de este. nombres de registros. adaptador de comunicación serie síncrona y asíncrona • USB (Universal Serial Bus) • Bus I2C: Interfaz serie a dos hilos (Philips). • TCP/IP (34) Lenguajes de programación • Se han desarrollado todo tipo de lenguajes de programación para los µC. • CAN (Controller Area Network): utilizada para el cableado de dispositivos en automóviles. (35) Elegir un microcontrolador (I) • A la hora de decidirse sobre que tipo o familia de microcontroladores emplear hay que tener en cuenta varios factores. cada línea de código del programa en lenguaje de alto nivel habrá generado bastantes más líneas de código en lenguaje ensamblador. MCS251 de Intel. como pueden ser los AT89 de Atmel. Basic y el C (alto nivel). normalmente en una relación de uno a tres.08/01/2015 Recursos especiales (VIII) Puertos de comunicación: • Con el objeto de dotar al µC de la posibilidad de comunicarse con otros dispositivos externos o sistemas • USART. interprete de Basic. DS8 de Maxim (Dallas). • Los compiladores son programas que se encargan de traducir el programa escrito en lenguajes del alto nivel a código de máquina. • El lenguaje ensamblador permite desarrollar programas muy compactos y eficientes. pero los más usados son el ensamblador (bajo nivel). • Nota: esto podría significar que para utilizar un lenguaje de alto nivel necesitaremos un microcontrolador con una capacidad de memoria relativamente grande. • Los intérpretes son programas residentes en el µC que permiten la ejecución línea a línea de código no binario. modos de direccionamiento. como por ejemplo: • Experiencia previa • Por ejemplo. Salvo en determinados detalles se mantiene el conjunto de instrucciones. Desventaja lentos en ejecución. Cuando el compilador convierta el código del programa a un lenguaje ensamblado. el 8051 fué muy popular hace algún tiempo. etc.

RS232. • Necesidad de puertos de comunicaciones (I2C. • Necesidad de interfaces específicas como la de control de LCD. el número de bits del bus de datos y el núcleo del que deriva (8051. ARM. • Los microcontroladores de 16 y 32 bits. • Necesidad de un CAD o CDA. etc) así como si está disponible un IDE gratuito: (39) 13 . salidas y recursos internos: Para determinar las necesidades de entradas y salidas así como los recursos del sistema es conveniente dibujar un diagrama de bloques del mismo. deberán utilizarse si se realizan cálculos matemáticos o científicos. • Número y tamaño (8. si es CISC o RISC. incluyendo la resolución y número de entradas. 16 ó 32 bits) de los temporizadores necesarios. bus CAN. (38) Fabricantes de microcontroladores (I) • Fabricantes y modelos de microcontroladores incluyendo. Habrá que tener en cuenta: • Número de entradas y salidas necesarias. USB. (37) Elegir un microcontrolador (III) • Ancho de palabra: • Los modelos de 4 bits han desaparecido prácticamente del mercado • Utilizar un microcontrolador de 8 bits supone la mejor elección si el programa a desarrollar sólo controla unas pocas entradas y salidas y no utiliza cálculos complejos ni procesa grandes cantidades de datos (resultan perfectos si el ancho de los datos es de un byte). una gestión de Entrada/Salida potente o si se necesita un espacio de direccionamiento muy elevado. SPI u otros). • Necesidad de una o más salidas PWM. de tal forma que sea sencillo identificar la cantidad y tipo de señales a controlar.08/01/2015 Elegir un microcontrolador (II) • Entradas.

armar el sistema final. etc). 4.Si fuera necesario.Escribir el programa (tener siempre presente el circuito eléctrico). 8.Diseñar el circuito.Usar un simulador para verificar su buen funcionamiento del circuito y programa (puede ser junto o separado). 10. 7. Tener en cuenta características eléctricas (capacidades. 6. velocidades.Montar el microcontrolador y probar todo el proyecto.Pasar el programa al microcontrolador.Hacer el prototipo en protoboard o circuito impreso universal.08/01/2015 Fabricantes de microcontroladores (II) (40) Fabricantes de microcontroladores (III) (41) Metodología típica de diseño con microcontroladores 1. repetir los pasos anteriores. corrientes por puerto. 5. (42) 14 . 2. hasta obtener el funcionamiento esperado.Elaborar un diagrama de flujo del programa que tendrá el mC.Análisis del problema y planeación del comportamiento del circuito (tomar en cuenta los elementos que son necesarios controlar). 11. 9.Superando todas las etapas anteriores.Compilar el programa. 3.