Sei sulla pagina 1di 6

Introduccin a los Microcontroladores PIC

Sistema embebido
Un sistema embebido es tpicamente un sistema diseado haciendo uso de la potencia de un
pequeo microcontrolador, como el MCU Microchip PIC o dsPIC (Digital Signal Controller) para
gestionar una sola tarea o bien un grupo de tareas denidas. Estos microcontroladores combinan
una unidad de microprocesador (como la CPU en un PC de escritorio) con algunos circuitos adi-
cionales llamados "perifricos", adems de algunos circuitos adicionales en el mismo chip para
hacer un pequeo mdulo de control que requiere pocos dispositivos externos. Este nico disposi-
tivo puede ser embebido en otros dispositivos electrnicos y mecnicos para bajo costo de control
digital.
Denicin de microcontrolador
Un microcontrolador es un circuito integrado programable que contiene todos los componen-
tes de un computador. 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 conere la denominacin de controlador incrustado (embed-
ded controller). El microcontrolador es un computador dedicado. En su memoria slo reside un
programa destinado a gobernar una aplicacin determinada; sus lneas de entrada/salida sopor-
tan el conexionado de los sensores y actuadores del dispositivo a controlar, y todos los recursos
complementarios disponibles tienen como nica nalidad atender sus requerimientos. Una vez
programado y congurado el microcontrolador solamente sirve para gobernar la tarea asignada.
Actualmente el uso de los microcontroladores esta extendido a todas las reas, practicamente
todos los dispositivos electrnicos que nos rodean hacen uso de algn tipo de microcontrolador.
Existen varias empresas que fabrican microcontroladores, entre las cuales podemos destacar:
Microchip: Actualmente uno de los fabricantes mas conocidos de microcontroladores, prin-
cipalmente por los famosos PIC.
Atmel: Este fabricante es conocido por la linea de microcontroladores Atmega que son los
microcontroladores en los que se basa la famosa placa de desarrollo Arduino.
Freescale: Fabrica diversos tipos de microcontroladores de 8, 16 y 32 bits, de entre ellos
podemos destacar los de la 8 bits de la familia HC08.
Texas Intruments: Se destaca por el bajo consumo de su linea de microcontroladores, entre
ellos la familia MSP430.
Diferencia entre un microcontrolador y un microprocesador
Los microprocesadores son usados por todos los computadores actuales, entre ellos destacan
la linea de Intel, AMD con la arquitectura x86 o AMD64, tambin tenemos los microprocesadores
basados en arquitectura ARM usada en la mayora de smartphones y tablets.
La diferencia entre estos dispositivos y un microcontrolador se puede denir principalmente en
que un microprocesador es un sistema abierto ya que su conguracin es variable de acuerdo con
la aplicacin a la que se destine, mientras que un microcontrolador es un sistema cerrado.
El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso (UCP),
tambin llamada procesador. La UCP est formada por la Unidad de Control, que interpreta las
1
(a) Diagrama de un microprocesador (b) Diagrama de un microcontrolador
Figura 1: Diagramas microprocesador y microcontrolador
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 congurar un computador implementado por varios circuitos
integrados.
Un microcontrolador es un chip en el que ya vienen todos los elementos integrados, es decir,
hay que adaptarse a la cantidad de memoria que el dispositivo trae, a los elementos de E/S
que trae implementados, etc, ya que no pueden ser modicados. Por lo tanto se le denomina
un sistema cerrado. Es el encargado de disear la aplicacin el que debe decidir el modelo de
microcontrolador que se adapte a sus necesidades.
Si slo se dispusiese de un modelo de microcontrolador, ste debera tener muy potenciados
todos sus recursos para poderse adaptar a las exigencias de las diferentes aplicaciones. Esta
potenciacin supondra en muchos casos un despilfarro. En la prctica cada fabricante de micro-
controladores oferta un elevado nmero de modelos diferentes, desde los ms sencillos hasta los
ms poderosos. Es posible seleccionar la capacidad de las memorias, el nmero de lneas de E/S,
la cantidad y potencia de los elementos auxiliares, la velocidad de funcionamiento, etc. Por todo
ello, un aspecto muy destacado del diseo es la seleccin del microcontrolador a utilizar.
El PIC 16F88
El microcontrolador que se usara en estas experiencias es el PIC16f88, este es un PIC de 8
bits de gama baja, entre sus principales caracteristicas podemos destacar:
Posee 18 pines.
Es compatible con el modo de programacin ICSP.
Posee modulo comparador y PWM.
Comunicacin serial RS232.
7 comversores A/D.
En la gura 2 puede verse un esquema con sus pines y las funciones de cada uno de ellos.
2
Figura 2: Esquema de PIC16F88
Circuito bsico para el funcionamiento del PIC
Antes de comenzar a programar el PIC es necesario conocer el circuito bsico que necesario
para el funcionamiento del PIC, para ello se necesitan los siguientes elementos.
Una fuente de alimentacin de 5 Volts.
Un cristal, en nuestro caso uno de 4 MHz, aunque puede servir de cualquier frecuencia.
Una resistencia que se conectara al MCLR, se recomienda que sea de un valor entre 220
y 1 K.
Un pulsador para usar de reset, este elemento es opcional ya que en caso de necesitar
resetear se puede enviar el pin MCLR a tierra manualmente.
2 condensadores para el cristal, de 22pF cada uno.
La conexin debe realizarse de la manera como se muestra en la gura 3, en ella se muestra un
esquema con las conexiones. Para ubicar el pin 1 del PIC hay que buscar el lado que tiene una
muesca, el pin 1 es el que queda al lado izquierdo de esta mirando el integrado desde encima.
Figura 3: Esquema circuito bsico para el PIC
3
Elementos para la creacin y carga del programa al PIC
IDE de desarrollo
Para crear el programa a cargar en el PIC se usara un IDE proporcionado por Microchip, este
IDE es llamado MPLABX, algunas de las principales cosas a destacar es que esta basado en el
conocido IDE Netbeans y es OpenSource, al estar basado en Netbeans y por lo tanto programado
en java es multiplataforma.
Compilador
El lenguaje natural de programacin de un microcontrolador es el assembler, sin embargo,
existen compiladores para muchos otros lenguajes de mas alto nivel, en este caso, usaremos el
compilador XC8 que proporciona de manera gratuita Microchip para la programacin de los PIC
en lenguaje C.
Cargador
Un cargador es un elemento hardware que nos permite grabar en la memoria del del PIC el
programa creado, para ello primero debe realizarse la compilacin del programa y luego mediante
este elemento se graba en el PIC y queda almacenado en este hasta que sea sobreescrito. El
cargador que usaremos es el PICKit3, el cual es un cargador ocial vendido por Microchip y que
es totalmente compatible con MPLABX.
La instalacin y funcionamiento de todos estos elementos sera explicada en la clase.
Manejo de los puertos del PIC como salida
En esta etapa se enseara como se programa el PIC para usar sus pines o puertos como
salidas.
Ejemplo
El programa de ejemplo es lo mas basico que puede realizarse con un PIC, esto es el encen-
dido y apagado de un Led, para ello se debe montar el circuito mostrado en la gura 4, este es el
circuito basico al cual se agrega un led con una resistencia conectados al pin 6 (RB0) del PIC.
Figura 4: Circuito led
4
El codigo necesario para realizar esto se muestra el el algoritmo 1, los puntos principales
a tener en cuenta estan explicados en los comentarios incluidos en el cdigo. Cualquier duda
consultar en la clase.
Algorithm 1 Cdigo para encender y apagar led
/
*
librerias necesarias
*
/
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
/
*
bits de configuracin del PIC
*
/
#pragma config BOREN = OFF, CPD = OFF, CCPMX = RB3, DEBUG = OFF, WRT = OFF,
FOSC = XT
#pragma config MCLRE = OFF, WDTE = OFF, CP = OFF, LVP = OFF, PWRTE = OFF
/
*
Se define la frecuancia del cristal,
*
necesario para usar los delay
*
/
#define _XTAL_FREQ 4000000
int main(int argc, char
**
argv) {
/
*
Se configura el pin 0 del puerto B como salida
*
/
TRISBbits.TRISB0=0;
/
*
Se entra en un ciclo infinito
*
/
while(1){
/
*
Se saca un estado alto o 1 por el pin 6 (RB0), enciende el LED
*
/
PORTBbits.RB0=1;
/
*
Se espera un segundo
*
/
__delay_ms(1000);
/
*
Se saca un estado bajo o 0 por el pin 6 (RB0), apaga el LED
*
/
PORTBbits.RB0=0;
/
*
Se espera otro segundo
*
/
__delay_ms(1000);
}
return (EXIT_SUCCESS);
}
Actividades
1. Cambiar el Led usado por un led RGB.
2. Conectar un display de 7 segmentos y mostrar el codigo hexadecimal.
Manejo del los puertos del PIC como entrada
En esta etapa se enseara a usar los puertos del PIC como entrada de datos.
5
Ejemplo
En esta ocasin se ha agregado al circuito del ejemplo anterior un pulsador para poder usar
el puerto como entrada, lo que haremos sera que al presionar el pulsador se encienda el led y si
este se sulta se apague. El circuito a montar es el mostrado en la gura 5, y el programa necesario
se muestra en el algoritmo 2, en esta ocasin solo se muestra el cdigo que va dentro del main(),
el cogido que va antes es igual que el ejemplo anterior.
Figura 5: Esquema circuito con pulsador
Algorithm 2 Programa para ejemplo de pulsador
int main(int argc, char
**
argv) {
TRISBbits.TRISB0=0;
/
*
Ahora se configura el pin 10 (RB4) como entrada
*
/
TRISBbits.TRISB4=1;
while(1){
/
*
Se pregunta por el valor leido en el pin 10
*
/
if(PORTBbits.RB4==0){
/
*
Si es un 0 se enciende el led
*
/
PORTBbits.RB0=1;
}else{
/
*
Si es un 1 se apaga el led
*
/
PORTBbits.RB0=0;
}
}
return (EXIT_SUCCESS);
}
Actividades
1. Modique el programa de ejemplo para que al presionar el pulsador el led cambie su estado
y mantenga el nuevo para siempre.
2. Utilice pulsadores para elegir el color que se mostrara en un led RGB.
6

Potrebbero piacerti anche