You are on page 1of 2

Gua 2 de microcontroladores: Mis primeros programas en C para PIC

Los microcontroladores PIC tienen un set de unas pocas instrucciones para ser programados, estas instrucciones son en lenguaje ensamblador o assembler, pero como este lenguaje es demasiado rustico se han creado otros lenguajes un poco ms cercanos al usuario. Uno de estos lenguajes es el C para PIC, el cual permite en unas pocas lneas de cdigo crear firmwares con todo tipo de utilidades para los microcontroladores. Un ejemplo bsico de un programa en C es: #include <16f88.h> #fuses XT,NOPROTECT,NOWDT,NOLVP #use delay(clock=4000000) void main() { while(TRUE) { output_high(PIN_B0); delay_ms(200); output_low(PIN_B0); delay_ms(200); } }

Estas instrucciones pueden ser modificadas, las dems son obligatorias en la mayora de los casos

#include <16f88.h>: Esta instruccin es conocida como Directiva de dispositivo. Designa el PIC que se va a usar. #fuses XT,NOPROTECT,NOWDT,NOLVP: Esta instruccin es conocida como Directiva de fusibles. Configura el microcontrolador y activa/desactiva algunas propiedades de este: XT : Permite usar ciertos tipos de cristales, en este caso de 4MHz NOPROTECT: Permite que PIC pueda ser grabado multiples veces NOWDT: Desactiva el watchdog NOLVP: El PIC debe ser grabado al voltaje predeterminado. #use delay(clock=4000000): Configura el cristal a 4MHz void main(): Es la funcin principal, siempre debe ir y debe empezar y terminar con corchetes. while(TRUE): Esta instruccin permite repetir infinitas veces las instrucciones dentro de ella. Empieza y termina con corchetes. output_high(PIN_B0);: Esta instruccin permite configurar al pin b0 como salida y enviar un uno. Este tipo de instrucciones debe terminar siempre con punto y coma (;). El pin configurarse desde el PIN_B0 al PIN_B7 y desde el PIN_A0 al PIN_A5. delay_ms(200);: Esta instruccin hace una pausa en 200 milisegundos. output_low(PIN_B0);: Esta instruccin permite configurar al pin b0 como salida y enviar un cero. Este tipo de instrucciones debe terminar siempre con punto y coma (;). El pin configurarse desde el PIN_B0 al PIN_B7 y desde el PIN_A0 al PIN_A5. Todas las funciones deben ir con corchetes, deben abrirse al iniciar la funcin y cerrarse al finalizar este.

Este firmware se debe escribir en el programa CCS. Para iniciar un nuevo archivo se debe ir al inicio => New => Source file. Se debe grabar el archivo en la carpeta deseada. El programa una vez finalizado se debe compilar Esto significa que se debe generar el archivo que debe ir dentro del PIC. Este archivo est escrito en hexadecimal, por ende queda con extensin de archivo .hex. Para compilar se debe pulsar la tecla F9. En Proteus se puede simular el firmware, para esto pruebe arme el siguiente circuito: Materiales: Pic 16f88 Resistencia de 220 ohm Led-yellow Se debe clickear el PIC, aparecer una nueva ventana, en program files se debe buscar el archivo .hex generado y adems se debe modificar el valor de Processor clock frecuency a 4MHz.

Actividades 1. Escriba el firmware en CCS, cree el circuito indicado en la imagen y pruebe su funcionamiento. 2. Modifique el programa cambiando los tiempos de pausa, primero para 50ms, luego para 100ms y luego para 500ms. 3. Modifique el programa para encender y apagar el PIN_A3 4. Modifique el programa encender y apagar dos pines a la vez: PIN_A1 y PIN_B3. Agregue los componentes necesarios a Proteus.