You are on page 1of 20

por Vctor Rossano

CONCTESE CON LOS MEJORES

LIBROS DE COMPUTACIN
usershop.redusers.com

DOMINE EL SISTEMA OPERATIVO MS ESTABLE


MANUALES USERS I 320 pginas I ISBN 978-987-1347-94-0

UNA ALTERNATIVA COMPETITIVA A LOS MTODOS TRADICIONALES

DESARROLLADORES I 336 pginas I ISBN 978-987-1347-97-1

CONOZCA LAS TCNICAS DE LOS HACKERS


MANUALES USERS I 320 pginas I ISBN 978-987-1347-93-3

DESARROLLE DESDE LA PERSPECTIVA DE LOS MODELOS


DESARROLLADORES I 320 pginas I ISBN 978-987-1347-95-7

Microcontroladores PIC

Captulo

Introduccin a los microcontroladores


Los microcontroladores son muy utilizados hoy en da para mltiples aplicaciones, desde las ms sencillas hasta las ms complejas y poderosas, tanto a nivel aficionado como profesional e industrial. En este captulo estudiaremos qu es un microcontrolador y daremos los primeros pasos para introducirnos en este interesante tema.
Microprocesadores Los microcontroladores Los microcontroladores PIC Herramientas necesarias Componentes Editores y ensambladores Simuladores Grabadores El PIC16F84A Alimentacin del PIC16F84A Resumen Actividades 14 18 19 20 20 20 21 22 24 25 27 28

SERVICIO DE ATENCIN AL LECTOR: lectores@redusers.com

1. INTRODUCCIN A LOS MICROCONTROLADORES

MICROPROCESADORES
Un microprocesador es un circuito integrado que contiene un circuito digital complejo, que se encarga de realizar diferentes tareas. Est diseado para ejecutar una serie de instrucciones que nosotros le daremos en una lista, de acuerdo con lo que necesitemos. Esta lista se denomina programa y las instrucciones sern ejecutadas una a una por el microprocesador. De esta forma, al ser un sistema programado, podemos lograr que el circuito realice tareas distintas con tan slo cambiar el programa que ejecutar.

Bus de datos Registro temporal Registro de instrucciones Contador de programa

Bus de direcciones

ALU

Decodificador de instrucciones

Bus de control Acumulador Bloque de control

Reloj

Figura 1. Un microprocesador es un circuito integrado digital que es capaz de realizar mltiples funciones.

En la Figura 1 vemos un diagrama simplificado de un microprocesador, el cual consta de un contador de programa (PC), que no es ms que un contador binario que inicia desde cero al arrancar el sistema, y se va incrementando automticamente. Su propsito es generar el acceso a las instrucciones que el microprocesador ejecutar. El contenido de este contador apunta a la direccin de memoria en donde estn almacenadas las instrucciones del microprocesador a travs del bus de direcciones. De esta manera, podemos ver que necesitaremos una memoria donde grabaremos las instrucciones que forman nuestro Figura 2. El microprocesador programa (llamada, precisamente, memoria de proCore2quad Q9650 es uno grama) y una memoria donde guardaremos los datos de los ms poderosos. a procesar (llamada memoria de datos).
14

Microprocesadores

El contador de programa contiene la direccin 0 (cero) al inicio. En esa direccin se almacena la primera instruccin, luego se incrementa para acceder a la direccin 1 y ejecutar la instruccin almacenada ah, y as sucesivamente. Podemos tener dos tipos de arquitecturas dependiendo de la separacin o no de la memoria de datos y de programa: la arquitectura Harvard y la Von Neumman.
Memoria Memoria Memoria

Programa

Micropocesador

Datos

Micropocesador

Programa Datos

Reloj Arquitectura Harvard

Reloj Arquitectura Von Neumann

Figura 3. Comparacin entre la arquitectura Harvard y la Von Neumman.

El contador de programa va accediendo secuencialmente a las direcciones de la memoria de programa de donde se leern las instrucciones almacenadas all y pasarn al microprocesador para ser decodificadas y ejecutadas una a una. La unidad aritmtico-lgica (ALU) es la encargada de llevar a cabo las operaciones necesarias, ya sean lgicas o aritmticas, tal como lo indica su nombre, con los datos.
Dato Dato

Control

ALU

Resultado

Figura 4. La unidad aritmtico-lgica es una parte fundamental de todo microprocesador.

A la salida de la ALU tenemos un registro especial llamado acumulador, que es en donde se guardarn los resultados de las operaciones. Este registro es muy importante ya que prcticamente todos los datos que maneja el microprocesador pasan por l. El bloque de control se encarga de llevar la correcta sincrona entre todos los
15

1. INTRODUCCIN A LOS MICROCONTROLADORES

dems bloques, y de los elementos externos, por ejemplo, indicando a la memoria de datos si se va a leer o escribir en ella. Como podemos darnos cuenta, el microprocesador necesita de algn medio externo a l para almacenar tanto las instrucciones como los datos que se estn procesando, por lo que debemos agregar las memorias adecuadas para lograr que el sistema funcione. Adems de las memorias, el microprocesador tambin puede comunicarse con otros dispositivos a travs de sus buses.
Perifricos Seal de salida

Seal de entrada Micropocesador Memoria de Programa Memoria de Datos

Unidad E/S

Bus de direcciones Bus de datos Bus de control

Figura 5. Comunicacin de un microprocesador con otros dispositivos. Podemos tener ms de una unidad de entrada/salida.

De esta forma, mediante las unidades de entrada/salida (E/S) el microprocesador puede comunicar datos hacia el exterior o recibir datos. Por ejemplo, puede enviar datos hacia un display o una impresora, o recibir datos de un teclado o un convertidor analgico a digital. Estos dispositivos con los que el microprocesador se puede comunicar a travs de la unidad E/S son comnmente llamados perifricos. A un sistema completo de microprocesador, memorias y unidades de E/S se lo llama usualmente microcomputadora.

MILLONES DE TRANSISTORES

Los microprocesadores son circuitos integrados digitales complejos. Desde su nacimiento, all por el ao 1971, se han tornado cada vez ms y ms complejos y poderosos. Por ejemplo, los microprocesadores modernos que se usan en las computadoras pueden contener ms de 300 millones de transistores.

16

Microprocesadores

Figura 6. Una computadora es una de las aplicaciones clsicas de los microprocesadores.

Para que el microprocesador realice las tareas que necesitamos, debemos darle la lista de instrucciones o programa, que lo grabaremos o guardaremos en la memoria de programa para que el sistema lo ejecute desde ah. Las instrucciones son valores binarios que harn que se ejecute algn proceso especfico en el microprocesador. De esta forma, tenemos un sistema muy flexible y poderoso, ya que podemos elegir la cantidad de memoria de datos y de programa que necesitemos, adems de cules y cuntos perifricos necesitamos integrar a nuestro sistema. Pero a su vez, es un sistema complejo, caro, y difcil de implementar, dado que tendremos varios circuitos integrados independientes que debemos interconectar (el microprocesador, las memorias y las unidades de E/S necesarias), hacindolo difcil y lento de construir, por lo que podemos fcilmente cometer errores. El uso de varios circuitos integrados eleva el costo final y el tamao del sistema. Es por eso que un sistema de microprocesador no es lo ms conveniente siempre, sobre todo en aplicaciones sencillas o de propsito especfico.

NACE UN GIGANTE

Los microprocesadores nacen en 1971 con el lanzamiento del modelo 4004 de Intel, un microprocesador de tan slo 4 bits, que fue utilizado en calculadoras. Los microprocesadores son uno de los mayores desarrollos de las ltimas dcadas en la electrnica moderna.

17

1. INTRODUCCIN A LOS MICROCONTROLADORES

LOS MICROCONTROLADORES
Para resolver el problema de la complejidad y el alto costo de los sistemas basados en microprocesadores, se crean los microcontroladores, que no es otra cosa que un sistema de microcomputadora completo. Es decir, un microcontrolador contiene en un solo circuito integrado el microprocesador, la memoria de datos, la memoria de programa y las unidades de entrada/salida, lo cual lo hace muy pequeo, barato y fcil de manejar, por lo que es ideal para muchas aplicaciones de propsito especfico.
CPU RAM

E/S

ROM

Figura 7. Un microcontrolador encierra todos los elementos de una microcomputadora en un solo circuito integrado.

Los microcontroladores son cada vez ms utilizados en muchos campos debido a sus ventajas y a la facilidad de disear circuitos con ellos, desde los ms sencillos, hasta las aplicaciones ms complejas. Desde aficionados hasta profesionales, incluso a nivel industrial, cada vez son ms los sistemas que son gobernados por uno o varios microcontroladores. Por ejemplo, un horno de microondas, una lavadora, un juguete, los sistemas computarizados de los automviles, los sistemas de alarma, etctera, utilizan microcontroladores en sus circuitos. Actualmente, puede resultar ms fcil, rpido y hasta ms barato implementar un circuito electrnico con un microcontrolador que hacerlo con componentes discretos (compuertas,

SISTEMAS ABIERTOS Y CERRADOS

Las computadoras son sistemas basados en microprocesadores, y son llamados sistemas abiertos, debido a la flexibilidad y posibilidad de elegir o cambiar sus componentes (el propio procesador, la memoria, los perifricos, etctera), mientras que un microcontrolador es un sistema cerrado.

18

Los microcontroladores

multivibradores, contadores, registros, y dems). Es por eso que el aprendizaje del manejo de microcontroladores cada vez toma mayor importancia para los aficionados y profesionales de la electrnica.

Micropocesador Perifricos Memoria de Programa

Memoria de Datos Perifricos Unidades E/S

Microcontrolador

Figura 8. Un sistema basado en microcontrolador es ms pequeo, sencillo y econmico.

Existe una gran gama de microcontroladores de muchos fabricantes con caractersticas y prestaciones muy variadas. En la actualidad, los fabricantes ms importantes son: Microchip, Freescale (Motorola), Intel, Atmel. Nosotros elegiremos en esta ocasin los microcontroladores PIC de la firma Microchip para estudiar su estructura, programacin y utilizacin prctica, ya que son ampliamente usados actualmente debido a su facilidad de uso, bajo costo, su gran oferta con una amplia gama de dispositivos, y a la facilidad de encontrar herramientas, tanto de software como de hardware, para el desarrollo de proyectos con estos verstiles microcontroladores.

Los microcontroladores PIC


Los microcontroladores PIC ofrecen una amplia gama de dispositivos desde 6 hasta 100 pines, desde los ms sencillos de 8 bits hasta los ms poderosos de 32 bits. La gama de microcontroladores de 8 bits consta de ms de 400 modelos diferentes para elegir. Microchip es actualmente el mayor fabricante de microcontroladores de 8 bits en todo el mundo. Sus familias de 8 bits ms importantes son: PIC12, PIC16 y PIC18. En particular, para nuestro estudio de introduccin a los microcontroladores PIC, elegiremos el PIC16F84A, que es de gama media, muy verstil, econmico y fcil de usar. Este PIC es ideal para aprender las bases tanto del Figura 9. El PIC16F84A es uso como de la programacin de microcontroladores un simple circuito integrado PIC. Adems, una vez que conozcamos bien a fondo de 18 pines, pero encierra este dispositivo, la migracin hacia cualquier otro un dispositivo muy poderoso.
19

1. INTRODUCCIN A LOS MICROCONTROLADORES

microcontrolador PIC ser bastante fcil. Incluso la compatibilidad entre los microcontroladores PIC hace que los programas puedan migrar de uno hacia otro con muy pocos cambios en ellos. Es por eso que el PIC16F84A nos servir de plataforma para entrar en el mundo de los microcontroladores PIC.

HERRAMIENTAS NECESARIAS
Para el desarrollo de nuestros proyectos con microcontroladores PIC, necesitaremos algunas herramientas tanto de software como de hardware. Trataremos de que dichas herramientas sean fciles de encontrar y de que sean gratuitas o de bajo costo, al menos la mayor parte de ellas. A lo largo de este libro veremos que realmente no necesitamos invertir una fortuna para poder construir poderosos circuitos electrnicos con microcontroladores PIC.

Componentes
Por supuesto que para construir nuestros proyectos necesitaremos los propios componentes. En primer lugar, el microcontrolador, por lo que es recomendable comprar al menos uno de ellos y, si podemos, uno ms ya que nunca se sabe cundo cometeremos un error. Adems, debemos adquirir otros componentes que estudiaremos a lo largo del libro, como por ejemplo, displays, teclados, leds, algunos circuitos integrados, etctera, los cuales iremos detallando en el momento en que sea necesario.

Editores y ensambladores
Sabemos que el microcontrolador es un dispositivo que funciona a travs de un programa que escribiremos nosotros, por lo que debemos tener herramientas de software para poder escribir nuestros programas y ensamblarlos (ms adelante estudiaremos qu es esto de ensamblar un programa), para luego poder grabarlos en la memoria de nuestro PIC. En este caso utilizaremos el entorno de desarrollo

OTROS PIC C

Generalmente, la C en los microcontroladores PIC indicaba una memoria EPROM, con excepcin del PIC16C84 que contaba con memoria EEPROM. Los modelos C han sido reemplazados casi por completo por modelos F con memoria Flash. La mayora de los dispositivos C slo podan ser grabados una sola vez.

20

Herramientas necesarias

llamado MPLAB IDE, que es distribuido gratuitamente por el propio fabricante de los microcontroladores PIC, Microchip. Este entorno de desarrollo contiene todas las herramientas de software necesarias para poder escribir nuestros programas. En el Captulo 4 estudiaremos con detalle el uso de este software.

Figura 10. El programa MPLAB de la empresa Microchip contiene las herramientas de desarrollo de programas de forma gratuita.

Simuladores
Existe software para la PC que permite simular el funcionamiento de los programas que estamos escribiendo para nuestro microcontrolador. stos pueden ser muy tiles para el desarrollo, la depuracin y la correccin de errores, as evitamos tener que grabar varias veces nuestro microcontrolador para probar si los programas funcionan como deben, lo cual nos ahorrar tiempo y esfuerzo. El programa MPLAB contiene un simulador integrado llamado MPLAB SIM, que nos ser de mucha utilidad, y que tambin estudiaremos en el Captulo 4. Adems de MPLAB SIM, existen otros simuladores, como PIC Simulator IDE o el simulador de circuitos Proteus VSM, que es uno de los mejores simuladores de circuitos electrnicos en la actualidad, ya que permite la simulacin de cualquier tipo de circuito electrnico con animacin y anlisis de seales, incluyendo, por supuesto, circuitos con microcontroladores PIC. Los dos ltimos simuladores que mencionamos tienen licencias pagas, por lo que quedar en nosotros la decisin de comprarlos para usarlos como herramientas de desarrollo. Por ahora nos bastar con estudiar MPLAB SIM, que es gratuito.
21

1. INTRODUCCIN A LOS MICROCONTROLADORES

Figura 11. Existe una gran gama de software de simuladores para verificar el funcionamiento de los programas.

Grabadores
Despus de desarrollar los programas debemos grabarlos de alguna forma en la memoria de nuestro PIC para que el sistema quede completo. Para esto tenemos que contar con un grabador, que no es ms que un circuito que se conecta a la PC por medio de algn puerto, ya sea el puerto paralelo, serial, o USB, para poder enviar el programa desde la PC hacia la memoria de nuestro PIC. Existen multitud de grabadores para microcontroladores PIC; Microchip ofrece algunos que aseguran un perfecto funcionamiento y estn listos para usar. La desventaja es que algunos pueden ser caros y difciles de encontrar en las tiendas locales.

EVOLUCIN DEL PIC16X84

El microcontrolador que estamos estudiando es ya un veterano en el mercado: naci originalmente como PIC16C84. La C indica una memoria de programa de tipo EEPROM, mientras que el PIC16F84, que fue su predecesor, tiene memoria de programa tipo Flash. Despus viene el PIC16F84A, donde la A indica que es una versin mejorada.

22

Herramientas necesarias

Figura 12. Mediante un grabador se puede leer o escribir en la memoria de programa del PIC.

Por otra parte, estn los grabadores que podemos adquirir en algunas tiendas del ramo, con diferentes tipos de conexin a la PC, y algunos pueden ser baratos y tambin estn armados y listos para usar. La alternativa ms econmica, aunque puede que resulte la ms difcil, es armar nuestro propio grabador de PICs. Existe suficiente informacin para poder hacerlo, slo necesitamos unos cuantos componentes, un cable para la conexin a la PC y un poco de paciencia. En el Captulo 5 veremos cules son los tipos de grabadores y propondremos un circuito para la construccin de un verstil y econmico grabador, adems de estudiar su uso por completo. El grabador que propondremos para su construccin se conectar a nuestra computadora a travs del puerto serial, y no ser necesario construirlo si ya contamos con algn grabador de microcontroladores PIC. Slo lo proponemos para quienes todava no tengan uno. stas son las herramientas bsicas que necesitaremos para desarrollar nuestros proyectos con microcontroladores PIC. Existen otras, como por ejemplo los compiladores, que permiten escribir programas en un lenguaje de alto nivel, como Basic o C, y los sistemas de desarrollo o emuladores, pero estas herramientas pueden ser complejas de usar para los principiantes, adems de ser caras. Al menos, para usos sencillos, no las necesitaremos.

PIC16F84 Y PIC16F84A

La A al final en el PIC16F84A indica que es una versin modernizada con respecto al PIC16F84, ya que tiene una memoria Flash mejorada, adems de contar con la posibilidad de trabajar a una frecuencia mayor: 20 MHz para el PIC16F84A-20 contra 10 MHz mximos que puede funcionar el PIC16F84.

23

1. INTRODUCCIN A LOS MICROCONTROLADORES

EL PIC16F84A
Comencemos a conocer la estructura de nuestro microcontrolador, que no es ms que un circuito integrado de 18 pines. En la Figura 13 vemos un diagrama completo con la disposicin de los pines y el nombre que toma cada uno. Las flechas indican si el pin es de salida, de entrada o de entrada/salida.

RA2 RA3 RA4/T0CKI MCLR Vss RB0/INT RB1 RB2 RB3

1 2 3 4 5 6 7 8 9 PIC16F84A

18 17 16 15 14 13 12 11 10

RA1 RA0 OSC1/CLKIN OSC2/CLKOUT Vdd RB7 RB6 RB5 RB4

Figura 13. Nombre que reciben los pines del PIC16F84A. Algunos tienen ms de una funcin.

Veamos a grandes rasgos cul es la funcin de cada uno de los pines. Por ahora no es necesario que los entendamos, ya que a lo largo de nuestro estudio hablaremos con detalle de cada funcin: RA0:RA4: pertenecen al puerto A y cada uno de estos pines puede utilizarse como entrada o salida de datos, y pueden configurarse independientemente como entrada o como salida, segn necesitemos. El pin RA4 est marcado tambin

HOJAS DE DATOS

Como todo componente electrnico, el PIC16F84A tiene una hoja de datos (datasheet), que proporciona la empresa Microchip, con la descripcin completa de su arquitectura y su funcionamiento. Si vamos a la pgina oficial del fabricante (www.microchip.com) podremos descargarla, aunque se encuentra solamente en ingls.

24

El PIC16F84A

como T0CKI, lo que significa que adems cumple otra funcin que es la de servir de entrada a una seal para el Timer 0. En las secciones donde hablaremos del timer detallaremos esta funcin. MCLR (Master clear): este pin es el de reset. Es decir que si ponemos un nivel bajo en l, el microcontrolador ir al estado de reset y si hay un nivel alto, el microcontrolador funcionar normalmente. Vss, Vdd: estos pines pertenecen al voltaje de alimentacin de nuestro PIC. En Vdd debemos poner un voltaje de 5 V y si es un voltaje regulado, mejor. En Vss debemos poner tierra (masa). OSC1/CLKIN, OSC2/CLKOUT: estos pines son la entrada y salida de la seal de reloj necesaria para que el sistema funcione correctamente. Ms adelante hablaremos en detalle de este tema. RB0:RB7: pertenecen al puerto B y la funcin es la misma que la de los pines del puerto A. El pin RB0 adems cumple con la funcin de entrada de interrupcin externa (INT), que tambin detallaremos en su momento.

Alimentacin del PIC16F84A


Como acabamos de mencionar, este PIC requiere de un voltaje de alimentacin de 5 V entre las terminales Vdd y Vss, as que debemos tener una fuente de 5 V para poder trabajar con los circuitos que armemos.

1 5V 2 3 4 Vss 5 6 7 8 9 PIC16F84A

18 17 16 15 14 13 12 11 10 Vdd

Figura 14. El PIC16F8A requiere de un voltaje de 5 V entre las terminales Vdd (positivo) y Vss (tierra).
25

1. INTRODUCCIN A LOS MICROCONTROLADORES

Es recomendable tener un voltaje regulado, entonces tenemos varias opciones: Si ya contamos con alguna fuente de 5 V regulados y que pueda entregar al menos 1A de corriente, podemos utilizarla. Si contamos con alguna fuente no regulada que entregue entre 7 y 12 V de potencia y al menos 1A a su salida, podemos agregar el regulador para obtener el voltaje de 5 V, como vemos en el diagrama de la Figura 15. No obstante ello, debemos tener en cuenta que tal vez sea necesario agregar un disipador de calor al regulador para evitar que se dae por sobrecalentamiento (pero esto slo si vamos a utilizar ms de 500 mA de corriente).
7805 + Vin GND Vin 7 a 12V 0,33uF Vout 5V 10uF/10V al pin Vss Vout al pin Vdd

Figura 15. El LM7805 nos proporcionar una salida de 5 V regulados al colocarlo en una fuente no regulada.

Si no contamos con ninguna fuente de alimentacin, podemos construirla siguiendo el diagrama de la Figura 16. De todos modos, ms all de que podamos armar nuestra propia fuente de alimentacin, siempre es recomendable colocar un disipador de calor al regulador. Es recomendable tambin, en cualquier caso, colocar un capacitor de desacoplo de 100 nf (0.1 uf) entre los pines Vss y Vdd del microcontrolador, lo ms cercano posible a ellos para asegurar un correcto funcionamiento.

SISTEMAS DE DESARROLLO

Un sistema de desarrollo es un conjunto de herramientas de software y hardware que permiten el rpido desarrollo de proyectos con PICs. Consiste en una placa con mltiples perifricos listos para funcionar, como teclados, displays, sensores, etctera, e incluso permiten grabar el PIC en ellos. La desventaja es que el precio es generalmente alto.

26

El PIC16F84A

T 9V/1A W02M o similar 7805 Lnea 1 Vi GND 2 FUSIBLE 1A 2200uF/25V 0,1uF 10uF/10V Vo 3 5V

Figura 16. Podemos construir esta fuente de alimentacin para nuestros circuitos con el PIC16F84A.

En el captulo siguiente continuaremos estudiando la estructura interna del PIC16F84A para comprender su funcionamiento y posteriormente poder aprender a escribir programas en lenguaje ensamblador, y as tener la posibilidad de comenzar a disear y construir circuitos electrnicos con microcontroladores PIC.

RESUMEN
En este primer captulo comprendimos qu es un microprocesador, cmo funciona y para qu sirve. Tambin vimos qu es un microcontrolador y la diferencia con un microprocesador. Adems, conocimos cules son las herramientas que necesitaremos para el desarrollo de proyectos con microcontroladores PIC, y tambin comenzamos a estudiar el PIC16F84A, del cual hablaremos a lo largo de los captulos siguientes.

27

ACTIVIDADES
TEST DE AUTOEVALUACIN
1 Qu es un microprocesador? 2 Qu es el contador de programa? 3 Para qu sirve una ALU? 4 Cmo se llama la serie de instrucciones que ejecuta un microprocesador? 5 Cul es la diferencia entre la arquitectura Harvard y la Von Neumann? 6 Qu es una microcomputadora? 7 Qu es un microcontrolador? 8 Cuntos pines tiene el PIC16F84A? 9 Para qu sirven el Puerto A y el Puerto B del PIC16F84A? 10 Cul es el voltaje con el que se debe alimentar el PIC16F84A?

28

You might also like