Vous êtes sur la page 1sur 10

Microcontroladores PIC.

Que es un microcontrolador? Un microcontrolador PIC (Peripheral Interface Controller, en espaol: controlador de interfaz perifrico), es un circuito integrado el cual tiene la capacidad de ser programado para cumplir diferentes funciones de control de dispositivos. Existen varios tipos de microcontroladores, con diferentes nmeros de pines (patas), temporizadores, comparadores de voltaje, etc. Dependiendo de la necesidad. Ejemplo;

(PIC 16F84A, 18 patas, 2 temporizadores, 1kbyte de memoria)

Diferencias con el microprocesador (CPU)

CPU, abreviatura de Central Processing Unit (unidad de proceso central), se pronuncia como letras separadas. La CPU es el cerebro del ordenador. A veces es referido simplemente como el procesador o procesador central, la CPU es donde se producen la mayora de los clculos. Como dice su nombre, este circuito integrado; recibe informacin, la procesa y luego enva informacin. Esa informacin es tomada por un microcontrolador para controlar dispositivos, como motores, luces o lo que se necesite. La diferencia radica en la potencia de cada uno. Un microprocesador es potente en memoria (para realizar clculos, programas extensos, recibir informacin, mientras la procesa, etc.) Un microcontrolador es potente en control, es decir su objetivo es recibir seales y gracias a su capacidad de entregar buenos voltajes y corrientes puede controlar cargas. Ej. En el computador, al insertar un CD, la CPU recibe esa informacin y le enva una orden al microcontrolador para que gire el motor y poder leer el CD.

Como se controlan los dispositivos? El control de dispositivos en su forma ms bsica, es que desde los pines del integrado salga una seal de 5v (1 lgico) o de 0v (0 lgico). Es decir, se puede programar: que por la pata 6 del integrado salgan 5v durante 1 segundo, y luego que salgan 0v por un segundo Por ultimo, que siempre se repita esas dos acciones., de esta forma si conectamos un Led a la patita, tendramos un Led que parpadea cada un segundo. Para controlar motores, paneles de Led, etc. Cargas que necesiten ms corriente y/o voltaje, las seales se llevan a una etapa de potencia. Lenguajes de programacin. Lo primero es recordar que programar se refiere a darle instrucciones al circuito integrado, para que acte como uno desee. Pero, el problema es que el microcontrolador solo entiende instrucciones en cdigo binario o hexadecimal. Gran problema al momento de querer decirle al integrado las cosas que uno quiere que haga, puesto que no podemos decirle que por la pata 6 salgan 5v durante 1 segundo sino que abra que traducir esa instruccin a Cdigo maquina, y quedara algo parecido a 010100101 01 01 010 1001 . etc. Bueno, justo para esto es que existen los lenguajes de programacin. Estos consisten en un orden de escritura, palabras claves, instrucciones ms entendibles por el ser humano. Despus un traductor, transforma lo escrito por nosotros al cdigo maquina. Existen varios lenguajes de programacin: -assembler (ensamblador) - Lenguaje C - Lenguaje C++ - BASIC - PASCAL - JAVA Entre otros. Cada uno con sus reglas de orden y de escritura. (Sintaxis) Veamos un ejemplo de un fragmento en lenguaje C. Do { -------------> // empiezo dicindole haz lo siguiente y abro un parntesis.

Output_High(pin_b6); -------> // aqu le digo quiero en nivel alto(5v) el pin 6 Delay_ms(1000); ----->// aqu le digo espera 1000 milisegundos(1s) antes de seguir Output_low(pin_b6); ----->// ahora quiero que el pin 6 est en nivel bajo(0v) Delay_ms(1000); ------>// espera 1000 milisegundos(1s) antes de seguir } ------------------->// cierro el parntesis. While(true);----------->//por ultimo le digo que se repita todo de nuevo, por siempre

No es necesario que te aprendas las palabras claves ni el orden ni menos cuando se usan los parntesis, mas adelante estudiaremos el Lenguaje C. Las palabras estn en ingles, pero no son difciles de traducir, solo se necesita un nivel bsico del idioma. Es casi como escribir en ingles las cosas que quieres que haga el microcontrolador.

Pero, donde, cuando y como escribo las instrucciones? Bueno ya te debes haber hecho estas preguntas, sino igual las responder. Las instrucciones las escribes en tu PC. En un compilador, que es un software (programa de PC) el cual puede ser de lenguaje C, Pascal, assembler u otro dependiendo del lenguaje que quieras o sepas ocupar. Dentro de este programa podrs escribir las instrucciones que le dars al microcontrolador. Estos software compiladores tienen la opcin de traducir lo que escribiste al cdigo maquina, creando un archivo el cual solo contendr ceros (0) y unos (1), este archivo tendr la extensin .HEX (por ejemplo led parpadeante.hex). Y es este mismo archivo el que se cargara al microcontrolador. (Parecido a cargar msica en un mp3). Como se carga un archivo .HEX al microcontrolador?

Luego de tener el archivo .HEX gracias al compilador, Abres otro software llamado PROGRAMADOR. El software programador te permitir abrir el archivo .HEX y poder cargarlo al microcontrolador. Adems el programador te permite leer el cdigo que ya tiene cargado el microcontrolador, borrarlo, guardarlo entre otras opciones. Pero, en que parte del PC se coloca el microcontrolador para cargarle los archivos .HEX con el cdigo? Claro, si tengo un circuito integrado es imposible ponerlo en el lector de CD, o de disquete. Entonces como se hace? Primero el microcontrolador se coloca en un circuito llamado quemador o simplemente programador (este es hardware). Como el siguiente:

Existen varios tipos de quemadores, este es del tipo JDM. No necesita pilas ni batera funciona conectndolo directo al PC en el puerto serie. Otros si necesitan bateras y pueden conectarse por USB.

El puerto serie esta ubicado en la parte posterior del PC, generalmente al lado del cable para el monitor.

Ya tengo cargado el archivo .HEX al microcontrolador Y ahora que hago? Ahora simplemente lo llevas a tu circuito para hacerlo funcionar, puedes montarlo en protoborad si deseas probar el funcionamiento primero.

Resumen: Proceso de Grabacin del Microcontrolador

Aqu Comienza lo bueno


Ya teniendo una idea clara de que pasos seguir para hacer funcionar un microcontrolador, necesitamos saber: Un poco de hexadecimal. Microcontrolador a utilizar y sus caractersticas. Conexin fija del microcontrolador. Configuracin del puerto serie del PC. Diagrama del quemador. Software Programador a utilizar y su configuracin. Compilador a utilizar. Un poco de Lenguaje C.

Creas que todo era bonito, pues no. Ahora empieza lo que son los nmeros y complicaciones as que a poner atencin. Un poco de Hexadecimal Antes de aprender un nuevo sistema numrico, conozcamos una caracterstica del nuestro. El sistema decimal consta de 10 caracteres (por eso decimal), 0-1-2-3-4-5-6-7-8 y 9. Bueno lo ms importante que necesito que te des cuenta es el orden. El primer carcter es el 0, siguiendo la secuencia 00 01 02 03 04 05 06 07 08 09 Que pasa cuando llegamos al ultimo carcter de nuestro sistema numrico? Sumamos 1 a la decena, y empezamos otra vez de 0 en las unidades, 10 11 12 13 14 15 16 17 18 19 Este proceso se repite infinitas veces

Para el sistema hexadecimal es lo mismo con la nica diferencia que este sistema numrico tiene 16 caracteres. 0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F. Cada uno tiene su propio valor en decimal. Hex. 0 = 1 = 2 = 3 = 4 = 5 = 6 = 7 = 8 = 9 = A = B = C = D = E = F = Dec. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Que numero viene despus de F? Siguiendo la secuencia el nmero que viene seria el 10(16 en decimal). Veamos: 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F

Entonces en hexadecimal, que numero vendra despus de 99? No es 100, parece que no entendiste nada. Despus del 99 viene el A0, medtalo: . 97 98 99 A0 A1 A2

As entonces, el mayor numero de dos dgitos en hexadecimal seria FF.

Lo que nos interesa del sistema hexadecimal es su relacin con el sistema binario. De hecho el hexadecimal es una simplificacin del sistema binario. Por lo tanto ahora nos centraremos en la conversin binario-hexadecimal y viceversa. Conversin de Binario a Hexadecimal Suponiendo que ya sabes binario, har una breve explicacin de la conversin, no es para nada difcil. Por ejemplo si quisiramos convertir el numero binario 10010111, con lo que sabemos hasta ahora tendramos que pasarlo primero a decimal y luego a hexadecimal para poder hacer la conversin. Quedara ms o menos as: 27 26 25 24 23 22 21 20 1 0 0 1 0 1 1 1 = 27 +24+22 +21+20 =128 +16+4+2+1=151(dec) = 97(hex)

Pero, para hacerlo ms fcil separamos el nmero 10010111 en grupos de 4 dgitos, 1001 y 0111. Ahora hacemos el mismo procedimiento solo que ser mucho ms fcil si lo hacemos por grupos de 4 dgitos: 23 22 21 1 0 0 23 22 21 0 1 1 20 1 = 23 +20=8+1=9(dec)=9(hex) 20 1= 22 +21+20=4+2+1=7(dec)=7(hex)

Ahora juntamos los nmeros que obtuvimos en hex: el 9 y el 7 y el valor queda 97. Medio complicado no? Ejercitemos para fortalecer nuestro conocimiento: 1) 11101001 = 2) 10101010 = 3) 11110011 = 4) 01110111 = 5) 00000010 = 6) 10000000 =

Sers capaz de convertir de hexadecimal a binario? Intntalo: A1 = 82 = 45 = B9 = 6C = F0 = Bueno, no olvides esto, ser til para escribir programas mas adelante. Practica!

Microcontrolador a utilizar El microcontrolador PIC que utilizaremos ser el PIC 16F84A, puesto que es uno de los mas bsicos y del cual existe mas informacin en Internet. Caractersticas Generales:
Memoria de 1K x 14 de tipo Flash Memoria de datos EEPROM de 64 bytes 13 lneas de E/S con control individual Frecuencia de funcionamiento mxima de 20 Mhz. Cuatro fuentes de interrupcin - Activacin de la patita RB0/INT - Desbordamiento del TMR0 - Cambio de estado en alguna pata RB4-RB7 - Fin de la escritura de la EEPROM de datos - Temporizador/contador TMR0 programable de 8 bits - Perro Guardin o WatchDog. Lo importante de esto son las lneas de entrada-salidas (E/S) que son 13, Eso quiere decir que tenemos 13 de 18 patitas del PIC, para usarlas como pulsadores (entradas) o para controlar cargas. (Led, transistores, motores, etc.). Esto lo configuramos dentro de la programacin, puedes usar cualquiera como entrada o cualquiera como salida, son independientes. Por ejemplo: 4 entradas y 9 salidas, o 1 entrada y 12 salidas. o simplemente 13 salidas.

T decides eso.

Conexin fija De lo anterior las 5 patas que nos quedan son MCLR (+5v), Vss (0v), VDD (+5v) y OSC1-OSC2 que es donde va el oscilador, luego explicaremos para que sirve.

Configurar el puerto serie del PC - Hacer click dereco en Mi PC, y entrar en Administrador de dispositivos.