Professional Documents
Culture Documents
Programacin
Prctica II
Control de un LED a travs
de un Botn
www.novellius.com
contacto@novellius.com
www.novellius.com
ndice de Contenido
Objetivo............................................................................................................................................................................................................ 4
Solucin Propuesta................................................................................................................................................................................. 4
Material Requerido................................................................................................................................................................................... 4
Software Necesario................................................................................................................................................................................. 4
Desarrollo del Programa de Control en Lenguaje C........................................................................................................ 5
Acondicionamiento de la TEMPIC-45....................................................................................................................................... 12
Programacin del Microcontrolador........................................................................................................................................... 16
Comprobacin del Funcionamiento del Programa de Control................................................................................ 19
Prcticas Propuestas.............................................................................................................................................................................. 20
www.novellius.com
ndice de Figuras
Fig. 1
www.novellius.com
Objetivo
Introducir al estudiante a la programacin de entradas de datos para implementar un sencillo
sistema de control.
Solucin Propuesta
Este ejemplo consiste en encender los diodos LED de la tarjeta de desarrollo TEMPIC-45 cada vez
que un botn, conectado al microcontrolador sea presionado, y apagar los LEDs una vez que el
botn sea liberado.
Material Requerido
1) Tarjeta Entrenadora TEMPIC-45.
2) Programador para Microcontroladores PIC (PICKit 2 o equivalente).
3) Microcontrolador PIC18F45501.
4) Oscilador de 20 MHz.
5) Cables Dupont.
6) Push Button.
7) Resistencia de 220 .
Software Necesario
Compilador CCS PCWH IDE (PIC C Compiler) o superior.
http://www.ccsinfo.com/downloads.php
1
Se pueden implementar una diversa varierdad de PICs. Vase el Manual de Usuario en la seccin Microcontroladores Compatibles.
www.novellius.com
Fig. 1
2) Para crear un nuevo archivo de cdigo fuente C, pulsa sobre el men principal del programa y
elige New > Source File.
Fig. 2
www.novellius.com
3) Elige la ruta donde deseas salvar el proyecto de control, edita el nombre del archivo a
LEDBoton.c y pulsa sobre el botn Guardar.
Fig. 3
4) Para crear un nuevo proyecto, pulsa sobre el men principal del compilador y elige New > Project
Manual.
Fig. 4
www.novellius.com
5) Elige el archivo de cdigo fuente C previamente creado y pulsa sobre el botn Abrir.
Fig. 5
Fig. 6
1
Se pueden implementar una diversa varierdad de PICs. Vase el Manual de Usuario en la seccin
Microcontroladores Compatibles.
www.novellius.com
7) A continuacin se presenta un diagrama de flujo para comprender la lgica que debe seguir el
programa.
Incluir archivos
cabecera y libreras
necesarios.
Configurar fusibles
Mantener apagados
los LEDs del
Puerto B
Establecer el Puerto
B como Salida
No
Establecer el Puerto
A como entrada
digital
Ciclo Infinito
Fig. 7
El botn ha sido
presionado?
Si
Mantener
encendidos los LEDs
del Puerto B
set_tris_b(0x00);
8.
set_tris_a(0xFF);
9.
output_B(0x00);
10.
for(;;){
11.
if( input(PIN_A0) == 1 ){
12.
output_B(0xFF);
13.
14.
else{
15.
output_B(0x00);
16.
17.
18.
}
}
www.novellius.com
Cdigo 1-2
1. #include <18F4550.h>
2. #fuses HSPLL, PLL5
Cdigo 3-5
La lnea 3 declara la velocidad del reloj fsico implementado en el PIC, en este caso 20 MHz.
La lnea 4 junto con la lnea 5 declaran que los puertos B y A sern implementados como
E/S dependiendo del valor que se almacene en el registro TRISX de cada puerto.
Cdigo 6-8
6. void main(){
7.
set_tris_b(0x00);
8.
set_tris_a(0xFF);
La lnea 6 declara el comienzo del programa, es decir el mtodo principal. Ya que la directiva
#use fast_io(X) no modifica previamente el registro TRISX, es necesario declarar la lnea
7, la cual establece el valor cero hexadecimal en el registro TRISB. Esto configura al Puerto B
en su totalidad como salida digital de datos. La lnea 8 escribe el valor FF en hexadecimal en
el registro TRISA, para indicar que el Puerto A va a ser implementado como entrada digital
de datos.
Para conocer la totalidad de fusibles disponibles para la familia PIC18 visita el siguiente vnculo:
http://ww1.microchip.com/downloads/en/DeviceDoc/51537a.pdf
www.novellius.com
Cdigo 9-12
9.
output_B(0x00);
10.
for(;;){
11.
if( input(PIN_A0) == 1 ){
12.
output_B(0xFF);
La lnea 9 asigna el valor de cero hexadecimal al puerto B. Esto tendr como consecuencia
que inicialmente los LEDs de la TEMPIC-45 se muestren apagados. La lnea 10 es el
comienzo de un ciclo infinito para estar continuamente probando el valor del botn.En la
lnea 11 se pregunta si el botn conectado al Pin RA0 (Puerto A, bit 0) ha sido pulsado. En
caso de que esto sea verdadero, la lnea 12 encender los LEDs en su totalidad, los cuales
estn conectados al Puerto B. Esto se logra escribiendo en el puerto el valor FF hexadecimal.
Cdigo 13-18
13.
14.
else{
15.
output_B(0x00);
16.
17.
}
}
18. }
10
www.novellius.com
9) Compila el programa pulsando sobre el botn Compile, que se halla en el apartado del mismo
nombre.
Fig. 8
10) Si el programa no presenta errores de sintaxis, deber aparecer el siguiente cuadro de dilogo.
De no ser as, se enlistarn los errores que existen junto con la lnea donde estn situados.
Fig. 9
11
www.novellius.com
Acondicionamiento de la TEMPIC-45
1) Asegrate de que la palanca de la Base ZIF se encuentre en posicin vertical y coloca el PIC
corroborando que su muesca se encuentre en direccin hacia la palanca de la Base ZIF.
Fig. 10
Fig. 11
12
www.novellius.com
Fig. 12
Fig. 13
13
www.novellius.com
5) Con base en el siguiente diagrama esquemtico, realiza la conexin del Botn al PIC como se
indica.
+5V
220OHM
2
3
4
5
6
7
14
13
33
34
35
36
37
38
39
40
18
RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT/RCV
RA5/AN4/SS/LVDIN/C2OUT
RA6/OSC2/CLKO
OSC1/CLKI
RB0/AN12/INT0/FLT0/SDI/SDA
RB1/AN10/INT1/SCK/SCL
RB2/AN8/INT2/VMO
RB3/AN9/CCP2/VPO
RB4/AN11/KBI0/CSSPP
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD
VUSB
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2/UOE
RC2/CCP1/P1A
RC4/D-/VM
RC5/D+/VP
RC6/TX/CK
RC7/RX/DT/SDO
RD0/SPP0
RD1/SPP1
RD2/SPP2
RD3/SPP3
RD4/SPP4
RD5/SPP5/P1B
RD6/SPP6/P1C
RD7/SPP7/P1D
RE0/AN5/CK1SPP
RE1/AN6/CK2SPP
RE2/AN7/OESPP
RE3/MCLR/VPP
15
16
17
23
24
25
26
19
20
21
22
27
28
29
30
8
9
10
1
PIC18F4550
Fig. 14
Fig. 15
14
www.novellius.com
7) Conecta el programador de PICs (PICKit 2 o compatible) al Mdulo de Programacin de la
TEMPIC-45. Asegrate de que la secuencia de los pines est en perfecto orden.
Fig. 16
Fig. 17
15
www.novellius.com
Fig. 18
2) Verifica de que el programa reconozca el modelo del microcontrolador PIC, de lo contrario revisa
nuevamente el Acondicionamiento de la TEMPIC-45.
Fig. 19
16
www.novellius.com
3) Para importar el archivo compilado del proyecto de control, pulsa sobre File > Import Hex. Navega
hasta la ruta donde salvaste el proyecto de control y elige el archivo llamado LEDBoton.hex.
Pulsa sobre el botn Abrir.
Fig. 20
4) Una vez importado el archivo con extensin .hex, deber aparecer el aviso de xito en
la importacin. Si no es as, inspecciona nuevamente la conexin del programador de
Microcontroladores a la TEMPIC-45.
Fig. 21
17
www.novellius.com
5) Pulsa sobre el botn Write para programar el PIC. Cuando el proceso haya finalizado se mostrar
la siguiente notificacin informando que la programacin del Microcontrolador ha sido exitosa.
Fig. 22
18
www.novellius.com
Fig. 23
2) Ahora suelta el botn y comprueba como los diodos LED de la tarjeta entrenadora han dejado
de iluminarse.
Fig. 24
19
www.novellius.com
Prcticas Propuestas
Nuevamente se presentan algunas prcticas para que demuestres tus habilidades en la
programacin de microcontroladores. Estos retos comprenden la Prctica I y II que acompaan a
la TEMPIC-45.
1) Realiza un programa el cual simule el control de una lmpara por medio de dos apagadores,
bajo los siguientes criterios:
2) Disea un programa para simular una cerradura electrnica basndote en los siguientes
puntos.
a. Utiliza los LEDs de RB0 hasta RB3 para simular los indicadores de confirmacin de la
contrasea o la alarma, en caso de una secuencia incorrecta.
b. Conecta 4 botones de RB4 a RB7 para introducir la combinacin de la cerradura.
c. Sea el switch conectado en RB4 el botn A, RB5 el botn B, RB6 el botn C y RB7 el
botn D respectivamente.
d. La combinacin correcta para abrir la cerradura deber ser: A-A-C-D-B, cualquier otra
combinacin activa la alarma.
e. Al introducir la combinacin correcta los LEDs de RB0 a RB3 se encendern, para
indicar que la combinacin es correcta.
f. Una vez abierta la cerradura se proceder a esperar 10 segundos y se deber volver a
cerrar, esperando una nueva combinacin.
g. Si al introducir una combinacin un caracter no coincide con la secuencia correcta,
se activar la alarma haciendo parpadear los LEDs de RB0 a RB3 por 10 segundos.
Despus se deber esperar nuevamente alguna contrasea.
20
www.novellius.com
Para descargar las prcticas propuestas, adems de conocer la totalidad de cursos y productos en
electrnica que ofrecemos visita:
www.novellius.com
o escrbenos todas tus inquietudes y comentarios a:
contacto@novellius.com
soporte@novellius.com