tempic-45 práctica i. control de un led

25
www.novellius.com [email protected] Capacitación Certificada, Componentes & Soluciones en Electrónica y Programación Práctica I Control de un LED

Upload: iihhhii

Post on 19-Jul-2015

454 views

Category:

Engineering


2 download

TRANSCRIPT

[email protected]

Capacitación Certificada, Componentes & Soluciones en Electrónica y Programación

Práctica I

Control de un LED

www.novellius.com

Índice de Contenido

Objetivo ............................................................................................................................................................................................................ 4

Solución Propuesta .................................................................................................................................................................................4

Material Requerido ...................................................................................................................................................................................4

Software Necesario .................................................................................................................................................................................4

Desarrollo del Programa de Control en Lenguaje C ........................................................................................................ 5

Acondicionamiento de la TEMPIC-45 ....................................................................................................................................... 14

Programación del Microcontrolador ........................................................................................................................................... 18

Comprobación del Funcionamiento del Programa de Control ................................................................................ 23

Prácticas Propuestas .............................................................................................................................................................................. 24

www.novellius.com

Índice de Figuras

Fig. 1 Ubicación de PIC C Compiler en Windows 8®. .................................................................................................5

Fig. 2 Localización del PIC C Compiler en Windows 7®. .........................................................................................6

Fig. 3 Ruta del ejecutable de PIC C Compiler en Windows XP®. .......................................................................6

Fig. 4 Creación de un nuevo archivo de código fuente C. ......................................................................................7

Fig. 5 Elección de la ruta para guardar el archivo de código fuente C. .........................................................7

Fig. 6 Creación de un proyecto para un archivo de código fuente C. ............................................................8

Fig. 7 Inserción de un proyecto al archivo de código fuente C. .........................................................................8

Fig. 8 Elección del modelo de Microcontrolador a implementar en el proyecto de control. .........9

Fig. 9 Diagrama de la lógica del programa de control. .............................................................................................9

Fig. 10 Compilación del código fuente creado en lenguaje C................................................................................12

Fig. 11 Confirmación exitosa de la compilación del programa de control. ...................................................13

Fig. 12 Colocación del Microcontrolador en la TEMPIC-45. ....................................................................................14

Fig. 13 Aseguramiento del Microcontrolador a la TEMPIC-45. .............................................................................14

Fig. 14 Conexión del Programador de Microcontroladores en la TEMPIC-45. ..........................................15

Fig. 15 Configuración de la TEMPIC-45 para ser alimentada desde el Programador. .........................15

Fig. 16 Configuración de la TEMPIC-45 para alimentación externa. .................................................................16

Fig. 17 Habilitación de los diodos LED de la TEMPIC-45. .........................................................................................16

Fig. 18 Colocación del oscilador de cuarzo en la TEMPIC-45. ...............................................................................17

Fig. 19 Alimentación la TEMPIC-45 por medio del programador de PICs. ...................................................17

Fig. 20 Ubicación del programa PICKit 2 Programmer v 2.XX en Windows 8®. ........................................18

Fig. 21 Localización del programa PICKit 2 Programmer en Windows 7®. ...................................................19

Fig. 22 Ubicación del Programa PICKit 2 Programmer en Windows XP®. ....................................................19

Fig. 23 Ventana principal del Programa PICKit 2® Programmer...........................................................................20

Fig. 24 Importación del archivo Hexadecimal para la grabación del PIC. ......................................................20

Fig. 25 Selección del archivo Hexadecimal. .........................................................................................................................21

Fig. 26 Importación exitosa del archivo Hexadecimal. ................................................................................................21

Fig. 27 Programación del Microcontrolador PIC. ..............................................................................................................22

Fig. 28 Notificación de programación exitosa del Microcontrolador. ...............................................................22

Fig. 29 Funcionamiento del programa de control. ..........................................................................................................23

www.novellius.com

4

Objetivo

Introducir al estudiante a la programación de Microcontroladores PIC bajo lenguaje C usando la tarjeta entradora TEMPIC-45.

Solución Propuesta

Este ejemplo consiste en desarrollar un programa para un PIC, el cual controle el estado de los indicadores LED situados en la tarjeta de desarrollo TEMPIC-45.

Material Requerido

1) Tarjeta Entrenadora TEMPIC-45.

2) Programador para Microcontroladores PIC (PICKit 2® o equivalente).

3) Microcontrolador PIC18F45501.

4) Oscilador de 20 MHz.

Software Necesario

• Compilador CCS PCWH IDE (PIC C Compiler) o superior.

http://www.ccsinfo.com/downloads.php

• PICKit® 2 Programmer o equivalente.

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDoc-Name=en023805

1 Se pueden implementar una diversa varierdad de PICs. Véase el Manual de Usuario en la sección “Microcontro-ladores Compatibles“.

www.novellius.com

5

Desarrollo del Programa de Control en Lenguaje C

1) Ejecuta el entorno de desarrollo PIC C Compiler.

A) Windows 8®

a. Abre el Menú Inicio.

b. Arrastra el cursor hacia la derecha hasta encontrar el ícono llamado PIC C Compiler.

Fig. 1 Ubicación de PIC C Compiler en Windows 8®.

www.novellius.com

6

B) Windows 7®

a. Pulsa sobre el Menú Inicio.

b. Abre la sección Todos los Programas.

c. Pulsa sobre la carpeta PIC-C.

d. Pulsa sobre el ícono PIC C Compiler.

Fig. 2 Localización del PIC C Compiler en Windows 7®.

C) Windows XP®

a. Pulsa sobre el Menú Inicio.

b. Abre la sección de Todos los Programas.

c. Pulsa sobre la carpeta PIC-C.

d. Pulsa sobre el ícono PIC C Compiler.

Fig. 3 Ruta del ejecutable de PIC C Compiler en Windows XP®.

www.novellius.com

7

2) Pulsa sobre el Menú principal del programa y elige la opción New; ahora pulsa sobre el menú Source File. Esto creará un nuevo archivo de código fuente para el Microcontrolador.

Fig. 4 Creación de un nuevo archivo de código fuente C.

3) Aparecerá un cuadro de dialogo para guardar el archivo. Ubica la carpeta donde deseas salvar el archivo de código fuente y edita el nombre del archivo a “LED.c”. En seguida pulsa sobre el botón Guardar.

Fig. 5 Elección de la ruta para guardar el archivo de código fuente C.

www.novellius.com

8

4) Pulsa nuevamente sobre el menú principal del compilador y ahora elige la opción New > Project Manual.

Fig. 6 Creación de un proyecto para un archivo de código fuente C.

5) Se desplegará una pantalla donde deberás elegir el archivo “LED.c” previamente creado. Una vez seleccionado el archivo pulsa sobre el botón Abrir.

Fig. 7 Inserción de un proyecto al archivo de código fuente C.

www.novellius.com

9

6) En la pantalla titulada Project Options, la cual se mostrará a continuación, dirígete a la sección denominada Target. Ahora selecciona el modelo de Microcontrolador a implementar, en este caso selecciona el PIC18F45501. Una vez hallado el modelo del Microcontrolador pulsa sobre el botón Apply.

Fig. 8 Elección del modelo de Microcontrolador a implementar en el proyecto de control.

7) A continuación se presenta el siguiente diagrama de flujo para modelar la lógica del programa de control.

Fig. 9 Diagrama de la lógica del programa de control.

1 Se pueden implementar una diversa varierdad de PICs. Véase el Manual de Usuario en la sección “Microcontro-ladores Compatibles“.

Incluir archivos cabecera y librerías

necesarios. Configurar fusibles

Establecer el Puerto B como Salida

Ciclo Infinito Generar un retardoEncender los LEDs del Puerto B

Inicialmente mostrar apagados

los LEDs

Apagar los LEDs del Puerto B

www.novellius.com

10

8) Una vez conociendo la lógica que debe seguir nuestro programa en forma general, realiza la traducción del diagrama de flujo a código C. Captura el siguiente código en el compilador PIC C Compiler sobre el archivo “LED.c”.

1. #include <18F4550.h>

2. #fuses HSPLL, PLL5

3. #use delay (clock = 20MHz)

4. #use fast_io(B)

5. void main(){

6. set_tris_b(0x00);

7. for(;;){

8. output_B(0xFF);

9. delay_ms(500);

10. output_B(0x00);

11. delay_ms(500);

12. }

13. }

Código 1-2

1. #include <18F4550.h>

2. #fuses HSPLL, PLL5

La línea 1 declara que se va a incluir el archivo cabecera del modelo de Microcontrolador que vamos a implementar. En este archivo se encuentran asociadas direcciones de memoria a constantes más fáciles de entender. En la línea 2 se configuran los fusibles2 mínimos necesarios la nuestra aplicación de control.

2 Para conocer la totalidad de fusibles disponibles para los PIC18 visita el siguiente vínculo: http://ww1.microchip.com/downloads/en/DeviceDoc/51537a.pdf

www.novellius.com

11

Código 3-5

3. #use delay (clock = 20MHz)

4. #use fast_io(B)

5. void main(){

La línea 3 estipula la velocidad del reloj físico del Microcontrolador, que en este caso es de 20MHz. Por otra parte la línea 4 declara que el Puerto B va a ser implementado como E/S (Entrada/Salida). Los pines de un puerto E/S son configurados en forma individual para emitir o leer señales discretas de voltaje (o sea, 0V y 5V), dependiendo del valor que se almacene en el registro TRISB. La línea 5 es el comienzo del programa de control, a esta línea también se le conoce como el método principal del programa.

Código 6-7

6. set_tris_b(0x00);

7. for(;;){

La línea 6 escribe en el registro TRISB el valor cero en hexadecimal, provocando que el Puerto B sea implementado como Salida digital de datos. En la línea 7 se crea un ciclo infinito con la finalidad de estar continuamente encendiendo y apagando los diodos LED de la TEMPIC-45.

Código 8-11

8. output_B(0xFF);

9. delay_ms(500);

10. output_B(0x00);

11. delay_ms(500);

La línea 8 establece el valor FF hexadecimal en el Puerto B, lo cual ocasiona que los LEDs de la TEMPIC-45 enciendan. La línea 9 genera un retardo de 500 ms (milisegundos), mientas que la línea 10 escribe en el Puerto B el valor cero en hexadecimal, provocando que los LEDs de la tarjeta dejen de iluminarse. La línea 11 genera nuevamente un retardo de 500 ms. La finalidad de estas demoras es que el proceso de iluminar y apagar los LEDs de la tarjeta de desarrollo sea visible al ojo humano, ya que sin estos retardos los diodos LEDs aparentemente estarían siempre encendidos, aunque realmente no sea así.

www.novellius.com

12

Código

12. }

13. }

La línea 12 es la llave que indica el cierre del ciclo infinito creado en la línea 7. Finalmente la línea 13 indica el fin del método principal hallado en la línea 6, es decir, el fin de la ejecución del programa de control.

9) Una vez capturado el programa de control, compílalo para buscar errores de sintaxis. Si el código se capturó correctamente se generará un archivo con extensión “.hex”, el cual es el tipo de archivo para grabar dentro del PIC. Para compilar el programa, pulsa sobre la opción Compile, dentro de la sección del mismo nombre.

Fig. 10 Compilación del código fuente creado en lenguaje C.

www.novellius.com

13

10) Si el código fue escrito correctamente, se mostrará la siguiente ventana indicando que la compilación fue exitosa. De lo contrario se enlistarán todos los errores existentes en el programa, así como la línea en donde fueron generados. Recuerda que la compilación genera un archivo hexadecimal preparado para ser almacenado en la memoria no volátil del PIC mediante el proceso conocido como “quemar o grabar el PIC”.

Fig. 11 Confirmación exitosa de la compilación del programa de control.

www.novellius.com

14

Acondicionamiento de la TEMPIC-45

En esta sección se indicará como realizar la configuración de la TEMPIC-45 para que la solución de control sea totalmente funcional.

1) Asegúrate que la palanca de la Base ZIF de la TEMPIC-45 esté totalmente vertical; ahora coloca el PIC18F4550 verificando que la muesca de éste se encuentre en dirección hacia la palanca de la Base ZIF.

Fig. 12 Colocación del Microcontrolador en la TEMPIC-45.

2) Una vez colocado el PIC, desliza hacia abajo la palanca de la Base ZIF para asegurarlo.

Fig. 13 Aseguramiento del Microcontrolador a la TEMPIC-45.

www.novellius.com

15

3) Coloca el programador de PICs en el Módulo de Programación, haciendo coincidir la secuencia de los pines en perfecto orden.

Fig. 14 Conexión del Programador de Microcontroladores en la TEMPIC-45.

4) Ya que nuestro programa de control obtendrá voltaje desde el programador de PICs, verifica que el Jumper Selector de Alimentación desde el Programador se encuentre habilitado, es decir, en la posición “ON”.

Fig. 15 Configuración de la TEMPIC-45 para ser alimentada desde el Programador.

www.novellius.com

16

5) Para completar la configuración de alimentación desde el programador de PICs, revisa que el jumper situado en el Módulo de Selección de Alimentación de la TEMPIC-45 se encuentre en la posición “EXT“ (Externo).

Fig. 16 Configuración de la TEMPIC-45 para alimentación externa.

6) Con el fin de que los diodos LED de la TEMPIC-45 se encuentren habilitados, asegúrate que el jumper Selector de Encendido/Apagado de LEDs se encuentre en la posición “ON” (Habilitado).

Fig. 17 Habilitación de los diodos LED de la TEMPIC-45.

www.novellius.com

17

7) Coloca el oscilador de 20MHz como se muestra a continuación; recuerda que este componente no tiene polaridad.

Fig. 18 Colocación del oscilador de cuarzo en la TEMPIC-45.

8) Finalmente, conecta tu programador de Microcontroladores PIC al puerto USB de tu equipo de cómputo.

Fig. 19 Alimentación la TEMPIC-45 por medio del programador de PICs.

www.novellius.com

18

Programación del Microcontrolador

1) Ejecuta el programa PICKit 2® Programmer (o equivalente):

A) Windows 8®

a. Abre el Menú Inicio.

b. Arrastra el cursor hacia la derecha hasta encontrar el ícono llamado PICKit 2 v 2.XX.

Fig. 20 Ubicación del programa PICKit 2 Programmer v 2.XX en Windows 8®.

www.novellius.com

19

B) Windows 7®

a. Pulsa sobre el Menú Inicio.

b. Abre la sección de Todos los Programas.

c. Pulsa sobre la carpeta Microchip.

d. Pulsa sobre el ícono PICKit v2.XX.

Fig. 21 Localización del programa PICKit 2 Programmer en Windows 7®.

C) Windows XP®

a. Pulsa sobre el Menú Inicio.

b. Abre la sección de Todos los Programas.

c. Pulsa sobre la carpeta Microchip.

d. Pulsa sobre el ícono PICKit 2 v2.XX.

Fig. 22 Ubicación del Programa PICKit 2 Programmer en Windows XP®.

www.novellius.com

20

2) A continuación, aparecerá la ventana del principal del programa. Si todas las conexiones se realizaron correctamente, la leyenda “PICKit 2 found and connected PIC Device Found” se mostrará. Esto significa que el programador ha reconocido el Microcontrolador de la TEMPIC-45 correctamente. También deberá reconocer el modelo del PIC que estamos implementando en nuestra tarjeta entrenadora, así como mostrar su modelo en la parte superior izquierda.

Fig. 23 Ventana principal del Programa PICKit 2® Programmer.

3) Para importar el archivo hexadecimal, producto de la compilación del programa de control, elige la opción File > Import Hex.

Fig. 24 Importación del archivo Hexadecimal para la grabación del PIC.

www.novellius.com

21

4) A continuación se presentará un cuadro de dialogo para elegir la ruta donde se encuentre un archivo con extensión “.hex”. Una vez dentro de la carpeta donde guardaste el archivo de código fuente (.c), selecciona el archivo “LED.hex”. Pulsa sobre el botón Abrir.

Fig. 25 Selección del archivo Hexadecimal.

5) Una vez importado el archivo hexadecimal, deberá aparecer la leyenda “Hex successfully imported” dentro de la aplicación PICKit 2® Programmer. Si no es así, corrobora nuevamente el acondicionamiento de la TEMPIC-45.

Fig. 26 Importación exitosa del archivo Hexadecimal.

www.novellius.com

22

6) Para grabar el archivo compilado, pulsa sobre el botón Write del programa PICKit 2® Programmer.

Fig. 27 Programación del Microcontrolador PIC.

7) Una vez terminada la programación del Microcontrolador, se nos mostrará el aviso “Programming Succesfull”, lo cual quiere decir que estás listo para probar la solución de control.

Fig. 28 Notificación de programación exitosa del Microcontrolador.

www.novellius.com

23

Comprobación del Funcionamiento del Programa de Control

1) Inmediatamente después de la programación del Microcontrolador, observa como los diodos LED de la TEMPIC-45 encienden y después de un retardo dejan de iluminarse.

Fig. 29 Funcionamiento del programa de control.

www.novellius.com

24

Prácticas Propuestas

Ahora ya conoces el funcionamiento básico de la tarjeta entrenadora TEMPIC-45. Es momento de demostrar tus habilidades en la programación e implementación de sistemas embebidos, para lo cual se presentan algunas prácticas.

1) Desarrolla un péndulo usando los LEDs de la TEMPIC-45 en base a los siguientes puntos:

a. El LED asociado al pin RB0 deberá encender primero.

b. Después de un retardo de 300 ms se iluminará el LED conectado al pin RB1, apagando

el LED del pin RB0 previamente. La secuencia deberá continuar así hasta llegar al diodo

LED asociado al pin RB7.

c. Cuando la serie alcance al pin RB7, se procederá a recorrer la misma secuencia en

forma inversa hasta llegar al LED del pin RB0.

d. Repite la secuencia colocándola dentro de un ciclo infinito.

2) Codifica un programa para controlar una secuencia usando LEDs de la siguiente forma:

a. Los LEDs encontrados en los pines RB3 y RB4 deberán encender al mismo tiempo.

b. Después de generar un retardo de 250 ms los diodos LED asociados a los pines RB2

y RB5 deberán iluminarse al mismo tiempo, apagando previamente los LEDs de los

pines RB3 y RB4.

c. Repite la secuencia hasta tener iluminados los LEDs conectados a los pines RB0 y RB7.

d. Una vez alcanzados los LEDs de los pines RB0 y RB7 itera la serie hasta llegar a los

LEDs de los pines RB3 y RB4.

e. La secuencia deberá estar siempre en perfecta sincronía.

f. Itera continuamente la serie con la ayuda de un ciclo infinito.

www.novellius.com

Para descargar las prácticas propuestas, además de conocer la totalidad de cursos y productos en electrónica que ofrecemos visita:

www.novellius.com

o escríbenos todas tus inquietudes y comentarios a:

[email protected]

¿Tienes dudas acerca de esta Práctica?

Échale un vistazo a nuestro Curso Básico de Microcontroladores, el cual te impartimos a tu propio ritmo, con instructores calificados y sin salir de tu escuela.

Para preguntas acerca de soporte técnico escríbenos a:

[email protected]