Parpadear un LED
En el siguiente ejercicio, haremos un ejercicio clásico que es el de hacer parpadear un LED, para eso utilizaremos el PIC 16F877A, a medida que avancemos en el código iremos explicando lo que se necesita en la programación, para el código utilizaremos el IDE PIC C Compiler y para la simulación usaremos el ISIS Proteus.
Ahora veremos el circuito para hacer parpadear el LED:
Ahora veremos el circuito para hacer parpadear el LED:
Ahora crearemos un archivo en el PIC C Compiler
1. El primer paso es ir al icono de la carpeta, luego New- Source file y creamos nuestro archivo
2, Después de guardarlo nos vamos otra vez al icono de la carpeta luego New - Project Manual, elegimos el PIC que queremos utilizar, añadimos (+Add) nuestro archivo antes guardado y luego en aplicar(Apply).
Una vez creada nuestro archivo, empezamos con la programacion:
// Parpadear un LED - PIC en C
#include <16f877a.h> // incluimos nuestro PIC a utilizar
#include <16f877a.h> // incluimos nuestro PIC a utilizar
#use delay(clock = 20000000) // usamos un reloj de 20 Mhz
#fuses HS,NOWD,NOLVP // HS: high speed adecuado para reloj de 20 Mhz
#use fast_IO(B) // declaramos los registro TRIS y PORT del puerto B
void main () // funcion principal
{
set_tris_B(0x00) ; // Configuramos los pines del puerto B como salida
// output = 0 (salida) , input = 1 (entrada)
while(true) // bucle infinito donde haremos parpadear al LED
{
output_high(pin_B0) ; // ponemos en alto(5V) el pin B0
delay_ms(1000); // Le indicamos que este en 5V durante 1000mseg = 1seg
output_low(pin_B0); // ponemos en 0 (0V) el pin B0
delay_ms(1000);
} // Fin del bucle
} // Fin del programa
void main () // funcion principal
{
set_tris_B(0x00) ; // Configuramos los pines del puerto B como salida
// output = 0 (salida) , input = 1 (entrada)
while(true) // bucle infinito donde haremos parpadear al LED
{
output_high(pin_B0) ; // ponemos en alto(5V) el pin B0
delay_ms(1000); // Le indicamos que este en 5V durante 1000mseg = 1seg
output_low(pin_B0); // ponemos en 0 (0V) el pin B0
delay_ms(1000);
} // Fin del bucle
} // Fin del programa
Tenés un error en el programa:
ResponderEliminar#fuses HS,NOWD,NOLVP // HS: high speed adecuado para reloj de 20 Mhz
Para desactivar el WatchDog es NOWDT, osea quedaría así:
#fuses HS,NOWDT,NOLVP // HS: high speed adecuado para reloj de 20 Mhz
Lo demás muy bien.