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.
No hay comentarios:
Publicar un comentario