Guia_2_de_microcontroladores

Anuncio
Guía 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 más cercanos al usuario. Uno de
estos lenguajes es el C para PIC, el cual permite en unas pocas líneas de código crear firmwares
con todo tipo de utilidades para los microcontroladores.
Un ejemplo básico 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 demás son
obligatorias en la mayoría de los
casos
#include <16f88.h>: Esta instrucción es conocida como “Directiva de dispositivo”. Designa el
PIC que se va a usar.
#fuses XT,NOPROTECT,NOWDT,NOLVP: Esta instrucción 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 función principal, siempre debe ir y debe empezar y terminar con corchetes.
while(TRUE): Esta instrucción permite repetir infinitas veces las instrucciones dentro de ella.
Empieza y termina con corchetes.
output_high(PIN_B0);: Esta instrucción 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 instrucción hace una pausa en 200 milisegundos.
output_low(PIN_B0);: Esta instrucción 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 función 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
extensión 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 además 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.
Descargar