Está en la página 1de 68

UNIDAD 03

Microcontroladores

Controlador
Recibe el nombre de controlador, el dispositivo que se emplea para el gobierno de uno o varios procesos. Aunque el concepto de controlador ha permanecido invariable a travs de los tiempos, 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 dcada de los 70, los fabricantes de circuitos integrados iniciaron la difusin de un nuevo circuito para control, medicin e instrumentacin al que llamaron microcomputador en un slo chip o de manera ms exacta microcontrolador.

Microcontrolador
Un microcontrolador es un circuito integrado programable que contiene todos los componentes de un computador aunque de limitadas prestaciones. Se emplea para controlar el funcionamiento de una tarea determinada y, debido a su reducido tamao, suele ir incorporado en el propio dispositivo al que gobierna. Esta ltima caracterstica es la que le confiere la denominacin de controlador incrustado (Embedded controller).

Microcontrolador
El microcontrolador es un dispositivo dedicado. En su memoria slo reside un programa destinado a gobernar una aplicacin determinada; sus lneas de entrada/salida soportan el conexionado de sensores y actuadores del dispositivo a controlar y todos los recursos complementarios disponibles tienen como nica finalidad atender sus requerimientos. Una vez programado y configurado el microcontrolador solamente sirve para gobernar la tarea asignada.

Diferencia entre microprocesador y microcontrolador.

Microprocesador
El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso (UCP), tambin llamada procesador, de un computador. La UCP est formada por la Unidad de Control, que interpreta las instrucciones, y el Camino de Datos, que las ejecuta. Las patitas 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 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 deacuerdo con la aplicacin a la que se destina.

Estructura de un sistema abierto basado en un microprocesador. La disponibilidad de los buses en el exterior permite que se configure a la medida de la aplicacin.

Microcontrolador
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.

Los componentes de los que dispone normalmente un microcontrolador son


Procesador o UCP (Unidad central de proceso). 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, puertas serie y paralelo, CAD, etc.) Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema.

Estructura tpica de un microcontrolador.

Segn el modelo de microcontrolador que se trate, el tamao y el tipo de memoria pueden diferir, as como el nmero de lneas de E/S y los mdulos de control de perifricos. La diversificacin de modelos, permite seleccionar el ms adecuado segn la aplicacin de que se trate. Una estructura interna fija supone una limitacin, que se convierte en una ventaja en el caso de que en un simple circuito integrado residan todos los componentes que necesita el controlador. La nica limitacin que tienen las aplicaciones de los microcontroladores actuales est en la imaginacin del diseador

Los campos ms destacados en los que se emplean microcontroladores son los siguientes
Automatizacin industrial. Medida y control de procesos. Enseanza e investigacin. Perifricos y dispositivos auxiliares de las computadoras. Electrodomsticos. Aparatos porttiles y de bolsillo. Mquinas expendedoras y juguetera. Instrumentacin. Industria de la automocin. Electromedicina. Robtica. Sistemas de navegacin. Sistemas de seguridad y alarma. Domtica. Termorregulacin.

El mercado de los microcontroladores


Existe una gran diversidad de microcontroladores Quiz la clasificacin ms importante sea entre microcontroladores de 4, 8, 16 32 bits. Aunque las prestaciones de los microcontroladores de 16 y 32 bits son superiores a los de 4 y 8 bits, la realidad es que los microcontroladores de 8 bits dominan el mercado y los de 4 bits se resisten a Desaparecer.

Uno de los sectores que ms tira del mercado del microcontrolador es el mercado automovilstico. El mercado del automvil es adems uno de los ms exigentes: los componentes electrnicos deben operar bajo condiciones extremas de vibraciones, choques, ruido, etc. y seguir siendo fiables. El fallo de cualquier componente en un automvil puede ser el origen de un accidente.

Tambin los modernos microcontroladores de 32 bits van afianzando sus posiciones en el mercado, siendo las reas de ms inters el procesamiento de imgenes, las comunicaciones, las aplicaciones militares, los procesos industriales y el control de los dispositivos de almacenamiento masivo de datos.

Tcnicas de fabricacin
En cuanto a las tcnicas de fabricacin, cabe decir que 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.

La industria de la informtica acapara gran parte de los microcontroladores que se fabrican. Casi todos los perifricos de un ordenador, desde el ratn hasta la impresora o el teclado, son regulados por el programa de un microcontrolador. Los electrodomsticos de gama blanca (lavadoras, hornos, lavavajillas, etc.) y de lnea marrn (televisores, vdeos, aparatos musicales, etc.) incorporan numerosos microcontroladores. Igualmente los sistemas de supervisin, vigilancia y alarma en los edificios utilizan estos chips para optimizar el rendimiento de ascensores, calefaccin, aire acondicionado, alarmas de incendio y robo, etc.

Las comunicaciones y sus sistemas de transferencia de informacin utilizan profusamente estos pequeos computadores, incorporndolos en los grandes automatismos y en los modernos telfonos. La instrumentacin y la electromedicina son dos campos idneos para la implantacin de estos circuitos integrados. Una importante industria consumidora de microcontroladores es la de automocin, que los aplica en el control de aspectos tan populares como la climatizacin o los frenos ABS.

La distribucin de las ventas segn su aplicacin es la siguiente

Distribucin por sectores de aplicacin.

EJEMPLO Un horno microondas se gobierna mediante un microcontrolador en el que se almacena el programa de control de 382 instrucciones, cada una de las cuales ocupa una palabra de la memoria de cdigo. Para soportar el teclado y la pantalla LCD se necesitan 12 lneas de EIS. Cul de los tres siguientes microcontroladores ser el ms recomendable utilizar?
MODELO MEMORIA DE INSTRUCCIONES (PALABRAS LNEAS E/S PRECIO (PESETAS)

PIC 16F83 PIC16C84 PIC 16C74

512 1024 4096

13 13 33

380 690 2100

ARQUITECTURA BASICA

Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clsica de von Neumann, en el momento presente se impone la arquitectura Harvard. La arquitectura de von Neumann se caracteriza por disponer 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).

En la arquitectura de von Neumann la UCP se comunicaba a travs de un sistema de buses con la Memoria, donde se guardaban las instrucciones y los datos.

En la arquitectura Harvard son independientes la memoria de instrucciones y la memoria de datos y cada una dispone de su propio sistema de buses para el acceso. Esta dualidad, adems de propiciar el paralelismo, permite la adecuacin del tamao de las palabras y los buses a los requerimientos especficos de las instrucciones y de los datos. Tambin la capacidad de cada memoria es diferente

ARQUITECTURA INTERNA
Un microcontrolador posee todos los componentes de un computador, pero con unas caractersticas fijas que no pueden alterarse. Las partes principales de un microcontrolador son

1. Procesador 2. Memoria no voltil para contener el programa 3. Memoria de lectura y escritura para guardar los datos 4. Lneas de EIS para los controladores de perifricos: a) Comunicacin paralelo b) Comunicacin serie c) Diversas puertas de comunicacin (bus l2C, USB, etc.) 5. Recursos auxiliares: a) Circuito de reloj b) Temporizadores c) Perro Guardn (watchdog) d) Conversores AD y DA e) Comparadores analgicos f) Proteccin ante fallos de la alimentacin g) Estado de reposo o de bajo consumo

EL PROCESADOR O UCP

CISC: (Computadores de Juego de Instrucciones Complejo). Un gran nmero de procesadores usados en los microcontroladores estn basados en la filosofa CISC. RISC: (Computadores deJuego de Instrucciones Reducido). Tanto la industria de los Computadores comerciales como la de los microcontroladores estn decantndose hacia la filosofa RISC. En estos procesadores el repertorio de instrucciones mquina es muy reducido y las instrucciones son simples y,generalmente, se ejecutan en un ciclo. SISC: (Computadores de Juego de Instrucciones Especfico). En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, adems de ser reducido, es especfico, o sea, las instrucciones se adaptan a las necesidades de la aplicacin prevista.

MEMORIA
1. ROM con mscara 2. OTP programable una sola vez 3 EPROM. Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. 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. 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.

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. UART, adaptador de comunicacin serie asncrona. USART, adaptador de comunicacin serie sncrona y asncrona Puerta paralela esclava para poder conectarse con los buses de otros microprocesadores. USB (Universal Serial Bus), que es un moderno bus serie para los PC. Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips. CAN (Controller Area Network), para permitir la adaptacin con redes de conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos en automviles. En EE.UU. se usa el J185O.

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.

RECURSOS AUXILIARES
Segn las aplicaciones a las que orienta el fabricante cada modelo de microcontrolador, incorpora una diversidad de complementos que refuerzan la potencia y la flexibilidad del dispositivo. Entre los recursos ms comunes se citan a los siguientes: a) Circuito de reloj, encargado de generar los impulsos que sincronizan el funcionamiento de todo el sistema. b) Temporizadores, orientados a controlar tiempos. c) Perro Guardin (watchdog), destinado a provocar una reinicializacin cuando el programa queda bloqueado. d) Conversores AD y DA, para poder recibir y enviar seales analgicas. e) Comparadores analgicos, para verificar el valor de una seal analgica. f) Sistema de proteccin ante fallos de la alimentacin. g) Estado de Reposo, en el que el sistema queda congelado y el consumo de energa se reduce al mnimo.

Microcontroladores Eleccin
1. Sencillez de manejo: Tienen un juego de instrucciones reducido; 35 en la gama media. 2. Buena informacin, fcil de conseguir y econmica. 3. Precio: Su coste es comparativamente inferior al de sus competidores. 4. Poseen una elevada velocidad de funcionamiento. Buen promedio de parmetros: velocidad, consumo, tamao, alimentacin, cdigo compacto, etc. 5. Herramientas de desarrollo fciles y baratas. Muchas herramientas software se pueden recoger libremente a travs de Internet desde Microchip (http://www.microchip.com).

La gama enana: PIC12C(F)XXX de 8 patitas


Su principal caracterstica es su reducido tamao, al disponer todos sus componentes de 8 patitas. Se alimentan con un voltaje de corriente continua comprendido entre 2,5 V y 5,5 V, y consumen menos de 2 mA cuando trabajan a 5 V y 4 MHz. El formato de sus instrucciones puede ser de 12 o de 14 bits y su repertorio es de 33 o 35 instrucciones, respectivamente.

En la Tabla se presentan las principales caractersticas de los modelos de esta subfamilia, que el fabricante tiene la intencin de potenciar en un futuro prximo. Los modelos 12C5xx pertenecen a la gama baja, siendo el tamao de las instrucciones de 12 bits

Gama baja o bsica: PIC16C5X con instrucciones de 12 bits.


Se trata de una serie de PIC de recursos limitados, pero con una de la mejores relaciones coste/prestaciones. 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

Caractersticas de los modelos PIC16C(R)5X de la gama baja

Gama media. PIC16CXXX con instrucciones de 14 bits


Es la gama ms variada y completa de los PIC. Abarca modelos con encapsulado desde 18 patitas hasta 68, cubriendo varias opciones que integran abundantes perifricos. Dentro de esta gama se halla el fabuloso PIC16X84 y sus variantes.

Caractersticas relevantes de los modelos PIC16X8X de la gama media.

Gama alta: PIC17CXXX con instrucciones de 16 bits.


Se alcanzan las 58 instrucciones de 16 bits en el repertorio y sus modelos disponen de un sistema de gestin de interrupciones vectorizadas muy potente. Tambin incluyen variados controladores de perifricos, puertas 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.

PIC 16F84
PIC16F84
1
VDD : Voltaje de alimentacin. VSS : Tierra. OSC1/CLKIN : Entrada del oscilador externo. OSC2/CLKOUT : Pin auxiliar del oscilador. MCLR : Reinicializacin o Reset del PIC. Se activa con el nivel lgico bajo. Durante la grabacin de la memoria de programa se introduce por este pin el voltaje VPP (12 a 14V). RA0 RA4/T0CKI : Lneas de E/S digitales de la puerta A. La lnea RA4/T0CKI multiplexa la entrada externa para alimentar al temporizador interno TMR0. RB0/INT RB7 : Lneas de E/S digitales de la puerta B. La lnea RB0/INT multiplexa la entrada a una peticin externa de una interrupcin.

RA2 RA3

RA1 RA0

18 17 16 15 14 13 12 11 10

2 3 4 5 6 7 8 9

RA4/TOCKI OSC2/CLKOUT MCLR Vss RB0/IN T RB1 RB2 RB3 OSC1/CLKIN VDD RB7 RB6 RB5 RB4

VARIANTES DEL PIC 16F84

PROCESADOR SEGMENTADO

Configuraciones del Oscilador


C1

Clock from external system OCS1

OCS1

XTAL

PIC16FXX
OPEN

PIC16FXX

C2

OCS2

OCS2

VDD Rext

OCS1
Cext

PIC16FXX

Fosc/4

OCS2

Los PIC16X8X tienen 5 causas que provocan el reseteo del sistema:


Conexin de la alimentacin. POR (Power On Reset). Activacin del pin MCLR# en funcionamiento normal. Activacin del pin MCLR# en estado de reposo. Desbordamiento del WDT en funcionamiento normal. Desbordamiento del WDT en estado de reposo.

Se puede producir un reset activando el pin MCLR# con el circuito simple que se muestra
VDD

PIC16FXX
100 1 MCLR

10K

RESET

NUESTRO PRIMER PROGRAMA.


Al escribir un programa en lenguaje ensamblador es recomendable seguir ciertas reglas, que aunque no son obligatorias, facilitan la escritura y comprensin del programa. Estas son: Usar comentarios aclaratorios despus de las instrucciones o cuando sea necesario. Esto se hace insertando primero el smbolo ; y luego el comentario. Escribir las directivas en maysculas. Los nombres de las variables en maysculas. Las instrucciones en minsculas.

EJERCICIO. Empezaremos a programar el PIC para que realice una simple suma. Le indicaremos al PIC, a travs del programa, que sume los valores de las variables SUMANDO1 y SUMANDO2 y almacene el resultado en la variable RESULTADO. El programa es explicado a continuacin: ; SUMANDO.ASM: Este programa suma el contenido de las posiciones 10h y ; 11h de memoria y almacena el resultado en la posicin 12h. ;-------------------------------------------------------------------------------------------- LIST P = 16F84 ; Modelo de PIC usado. Es una directiva. ;-------------------------------------------------------------------------------------------- ;definicin de variables SUMANDO1 EQU 0x10 ; A la posicin de memoria 0x10 (10h) se ; le da el nombre SUMANDO1 ; definindose as la posicin del primer ; sumando SUMANDO2 EQU 0x11 ; define la posicin del segundo sumando RESULTADO EQU 0x12 ; define la posicin del resultado ;-------------------------------------------------------------------------------------------- movlw 03 ; mover 3 al registro W (primera ; instruccin) movwf SUMANDO1 ; mover el valor de W a SUMANDO1 movllw 06 ; mover 6 al registro W movwf SUMANDO2 ; mover el valor de W a SUMANDO2 addwf SUMANDO1 ; W + SUMANDO1, guardar el resultado ; en W movwf RESULTADO ; mover el valor de W a RESULTADO ;-------------------------------------------------------------------------------------------- END ; Fin de programa. Es una directiva. ;---------------------------------------------------------------------------------------------

ARMAR NUESTRO PRIMER CIRCUITO


+5V

10K

VDD

14

27 pF

4 15 16

MCLR OSC1/CLKIN OSC2/CLKOUT

RA0 RA1 RA2 RA3 RA4/TOCKI RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7

17 18 1 2 3 6 7 8 9 10 11 12 13

4 MHz

27 pF PIC16F84

Vss

MANEJANDO LINEAS DE ENTRADAS Y SALIDAS.


Las lneas de E/S digitales normalmente forman grupos de 8 bits a los que se les llama PUERTOS. El PIC16X84 tiene dos puertos, PUERTO A (PA) y PUERTO B (PB). PA slo tiene 5 lneas (RA0-RA4) mientras que PB tiene 8 lneas (RB0-RB7). Cada una de las lneas de ambos puertos pueden manejarse en forma independiente como entrada o salida. El valor de los datos de E/S estn almacenados en los registros PORTA y PORTB. Existen dos registros para configurar las lneas de los puertos PA y PB como entrada o salida. Si se graba un 1 en uno de los bits, la lnea correspondiente del puerto acta como entrada; mientras que si se graba un 0, acta como salida. Estos registros son TRISA, que controla PA, y TRISB, que controla PB. La memoria de datos del PIC 16X84 est dividida en dos bancos: banco 0 y banco 1. En las posiciones 5 y 6 del banco 0 se ubican los registros PORTA y PORTB. En igual situacin, pero en el banco 1, se encuentran los registros TRISA y TRISB. Despus de conectar la alimentacin o despus de un reset, se activa automticamente el acceso al banco 0. Para acceder al banco 1 hay que poner a 1 el bit 5 del registro STATUS que se encuentra duplicado en la posicin 3 del banco 0 y del banco 1.

MEMORIA DE DATOS PIC16F83/CR83/C84 00h 01h 02h 03h 04h 05h 06h 07h INDF(1) TMR0 PCL STATUS FSR PORTA PORTB INDF(1) OPTION PCL STATUS FSR TRISA TRISB 80h 81h 82h 83h 84h 85h 86h 87h EEDATA EEADR PCLATH INTCON EECON1(1) EECON2(1) PCLATH INTCON 88h 89h 8Ah 8Bh 8Ch 36 General Purpose Registers (SRAM) 2Fh 30h No No implementado implementado Mapped in Bank 0 00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch

MEMORIA DE DATOS PIC16F84 INDF(1) TMR0 PCL STATUS FSR PORTA PORTB INDF(1) OPTION PCL STATUS FSR TRISA TRISB 80h 81h 82h 83h 84h 85h 86h 87h EEDATA EEADR PCLATH INTCON EECON1(1) EECON2(1) PCLATH INTCON 88h 89h 8Ah 8Bh 8Ch 68 General Purpose Registers (SRAM) AFh B0h 4Fh 50h No No implementado implementado CFh D0h Mapped in Bank 0

Bancos de Memoria de Datos

08h 09h 0A h 0B h 0C h

7Fh Bank 0 Bank 1

FFh

7Fh Bank 0 Bank 1

FFh

Nota 1: No es un registro fsico

Nota 1: No es un registro fsico

MICROCONTROLADOR

PIC 16F877

Bajo el nombre de esta subfamilia de microcontroladores, actualmente encontramos cuatro modelos: EL PIC 16F873/4/6 y 7. Estos microcontroladores disponen de una memoria e programa FLASH de 4 a 8 KBytes de 14 bits, considerable menta superior frente al PIC 16F84 en el que solo disponamos de l Kbyte de 14 bits. De los microcontroladores indicados, el 16F873 y el 16FS76 son de 28 pines, mientras que 16F874 y el 16F877 tienen 40 patillas, lo que les permite disponer de hasta 33 lneas de E/S

CARACTERISTICAS (I)

MEM PROGRAMA CPU RISC 8K-PALABRAS (FLASH) ARQUITECTURA HARVARD 368 KB MEM RAM 35 INSTRUCCIONES DE DATOS DE ENSAMBLADOR 256 KB MEM EEPROM DE DATOS EJECUCION EN 1 CICLO MQUINA MXIMA VEL 20MHZ

CARACTERISTICAS (II)
PUERTO 1 WATCHDOG PARALELO 3 TIMERS (8,16,8bits) ESCLAVO DE 8 2 CANALES PWM BITS 8 CONVER. A/D de 33 PINES E/S EN 10bits 5 PUERTOS PILA HARWARE PUERTOS SERIE: DEBUGGER IN SPI CIRCUIT IIC
USART

PUERTO A
Puerto de e/s de 6 pines RA0 RA0 y AN0 RA1 RA1 y AN1 RA2 RA2, AN2 y VrefRA3 RA3, AN3 y Vref+ RA4 RA4 (Salida en colector abierto) y T0CKI(Entrada de reloj del modulo Timer0) RA5 RA5, AN4 y SS (Seleccin esclavo para el puerto serie sncrono)

PUERTO B
Puerto e/s 8 pines Resistencias pull-up programables RB0 Interrupcin externa RB4-7 Interrupcion por cambio de flanco RB5-RB7 y RB3 programacion y debugger in circuit

PUERTO C
Puerto e/s de 8 pines RC0 RC0, T1OSO (Timer1 salida oscilador) y T1CKI (Entrada de reloj del modulo Timer1). RC1-RC2 PWM/COMP/CAPT RC1 T1OSI (entrada osc timer1) RC3-4 IIC RC3-5 SPI RC6-7 USART

PUERTO D
Puerto e/s de 8 pines Bus de datos en PPS (Puerto paralelo esclavo)

PUERTO E
Puerto de e/s de 3 pines RE0 RE0 y AN5 y Read de PPS RE1 RE1 y AN6 y Write de PPS RE2 RE2 y AN7 y CS de PPS

REGISTROS DE DIRECCION
Confuguran si un pin es de entrada o de salida. Se denominan:
TRISA TRISB ...

0 significa Output (salida) 1 significa Inpu (entrada)