Materiales
Software Proteus 7 o superior
Software PIC C Compiler
Software WinPic800_V3_64 o Superior
Grabador para PIC
--------------------------------------------
PIC16F84A de Microchips
2 resistencias de 10 Kohm
2 condensadores ceramicos de 27 pF
1 Cristal XT de 4.000 MHz
1 boton Pulsador
--------------------------------------------
1 Diodos led blancos o amarillos o del color q prefieran
las resistencias son de 1/2
1 resistencias de 220 Ohm o 1 resistencias de 180 Ohm
--------------------------------------------
Fuente de Poder DC de 0 a 20 V
debemos hacer es el algoritmo o pseudocodigo de nuestro ejemplo
Esto indicaría que en un lenguaje común sepamos que queremos que haga el PIC:
- Llamar al PIC16F84A
- Para el pin B0 encender LED
- esperar 200 ms
- Para el pin B1 encender LED
- esperar 200 ms
- Para el pin B2 encender LED
- esperar 200 ms
- Para el pin B3 encender LED
- esperar 200 ms
- Para el pin B4 encender LED
- esperar 200 ms
- Para el pin B0 apagar el LED
- esperar 200 ms
- Para el pin B1 apagar el LED
- esperar 200 ms
- Para el pin B2 apagar el LED
- esperar 200 ms
- Para el pin B3 apagar el LED
- esperar 200 ms
- Para el pin B4 apagar el LED
- esperar 200 ms
- Repetir todo desde la orden 2.
Ahora lo llevamos a Lenguaje C. para lo cual lo haremos de forma simple, aunque existen ordenes que simplificarían el programa, las cuales veremos mas adelante.
1: #include < 16F84A . h > 
2: #use delay ( clock = 4000000 ) 
3: #fuses XT , NOWDT 
4: #use standard_io ( B ) 
5: 
6: void main ( void ) 
7: 
8: 
9: { 
10: Do { 
11: 
12: OUTPUT_HIGH ( PIN_B0 ); 
13: delay_ms ( 200 ); 
14: 
15: OUTPUT_HIGH ( PIN_B1 ); 
16: delay_ms ( 200 ); 
17: 
18: OUTPUT_HIGH ( PIN_B2 ); 
19: delay_ms ( 200 ); 
20: 
21: OUTPUT_HIGH ( PIN_B3 ); 
22: delay_ms ( 200 ); 
23: 
24: OUTPUT_HIGH ( PIN_B4 ); 
25: delay_ms ( 200 ); 
26: 
27: OUTPUT_LOW ( PIN_B0 ); 
28: delay_ms ( 200 ); 
29: 
30: OUTPUT_LOW ( PIN_B1 ); 
31: delay_ms ( 200 ); 
32: 
33: OUTPUT_LOW ( PIN_B2 ); 
34: delay_ms ( 200 ); 
35: 
36: OUTPUT_LOW ( PIN_B3 ); 
37: delay_ms ( 200 ); 
38: 
39: OUTPUT_LOW ( PIN_B4 ); 
40: delay_ms ( 200 ); 
41: 
42: } 
43: 
44: WHILE ( TRUE );
45:
46: }
Ahora esta listo para ser probado
Compilamos el programa y verificamos que no haya errores
Ahora cargamos el programa en proteus y listo
ahora armamos el circuito en un protoboard y probamos si funciona
En el vídeo uso el PIC16F877A y en el programa solo se hace el cambio en la linea 1 por 1: #include < 16F877A . h > con un retraso de 2 s osea delay_ms(2000) encendiendo y apagando cada led en orden asi:
12: OUTPUT_HIGH ( PIN_B0 );
13: delay_ms ( 2000 );
14: OUTPUT_LOW ( PIN_B0 );
15: delay_ms ( 2000 );
16: OUTPUT_HIGH ( PIN_B1 );
17: delay_ms ( 2000 );
18: OUTPUT_LOW ( PIN_B1 );
19: delay_ms ( 2000 );
Espero le haya servido este ejemplo, la próxima semana continuamos con encender leds usando pulsadores.




