Está en la página 1de 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);
Estas instrucciones pueden
delay_ms(200);
ser modificadas, las dems
output_low(PIN_B0);
son obligatorias en la
delay_ms(200);
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.

También podría gustarte