Práctica III. Mostrar un mensaje en una pantalla LCD

20
www.novellius.com [email protected] Capacitación Certificada, Componentes & Soluciones en Electrónica y Programación Práctica III Mostrar un Mensaje en una Pantalla LCD

Transcript of Práctica III. Mostrar un mensaje en una pantalla LCD

Page 1: Práctica III. Mostrar un mensaje en una pantalla LCD

[email protected]

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

Práctica III

Mostrar un Mensaje en una Pantalla LCD

Page 2: Práctica III. Mostrar un mensaje en una pantalla LCD

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 ....................................................................................................................................... 10

Programación del Microcontrolador ........................................................................................................................................... 16

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

Prácticas Propuestas .............................................................................................................................................................................. 19

Page 3: Práctica III. Mostrar un mensaje en una pantalla LCD

www.novellius.com

Índice de Figuras

Fig. 1 Creación de un nuevo archivo de código fuente C para el PIC. ............................................................5

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

Fig. 3 Incorporación de un proyecto a un archivo de código fuente C. .........................................................6

Fig. 4 Diagrama de flujo de la lógica del programa de control. ...........................................................................6

Fig. 5 Compilación del programa de control. ....................................................................................................................9

Fig. 6 Colocación y aseguramiento del PIC a la Tarjeta Entrenadora. ............................................................ 10

Fig. 7 Colocación del oscilador en la TEMPIC-45. .........................................................................................................10

Fig. 8 Evitar alimentación de la TEMPIC-45 mediante el programador de PICs ..................................... 11

Fig. 9 Alimentación de la TEMPIC-45 mediante la Interfaz USB. ...................................................................... 11

Fig. 10 Diagrama de conexión de una Pantalla LCD a la TEMPIC-45. .............................................................. 12

Fig. 11 Conexión de una Pantalla LCD a la TEMPIC-45. ..............................................................................................12

Fig. 12 Colocación de la Pantalla LCD en la TEMPIC-45. ............................................................................................ 13

Fig. 13 Revisión de la conexión del Display LCD a la TEMPIC-45. .......................................................................13

Fig. 14 Conexión del Cable USB tipo B a la Interfaz USB de la TEMPIC-45. ............................................... 14

Fig. 15 Alimentación de la TEMPIC-45 vía USB. ............................................................................................................... 14

Fig. 16 Conexión del Programador de PICs a la TEMPIC-45. ................................................................................... 15

Fig. 17 Conexión del programador de PICs al puerto USB de la computadora. ........................................ 15

Fig. 18 Ventana principal del programa PICKit 2® Programmer. ...........................................................................16

Fig. 19 Importación del archivo Hexadecimal a la aplicación PICKit 2® Programmer. ....................16

Fig. 20 Programación del Microcontrolador PIC. ...............................................................................................................17

Fig. 21 Comprobación del despliegue del Mensaje en la Pantalla LCD. ........................................................ 18

Page 4: Práctica III. Mostrar un mensaje en una pantalla LCD

www.novellius.com

4

Objetivo

Introducir al estudiante al control de una pantalla LCD de 16x2 caracteres mediante un Microcontrolador PIC.

Solución Propuesta

Esta práctica consiste en crear un programa de control que permita mostrar un mensaje en el Display LCD de 16x2 caracteres que acompaña a la 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.

5) Cables Dupont.

6) Pantalla LCD de 16x2 caracteres.

7) Cable USB Tipo B.

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 diversos modelos de Microcontroladores PIC. Véase el Manual de Usuario en la sección “Microcontroladores Compatibles“.

Page 5: Práctica III. Mostrar un mensaje en una pantalla LCD

www.novellius.com

5

Desarrollo del Programa de Control en Lenguaje C

1) Crea un nuevo archivo de código fuente para el Microcontrolador. Pulsa sobre el menú principal de la aplicación PIC C Compiler y elige New > Source File.

Fig. 1 Creación de un nuevo archivo de código fuente C para el PIC.

2) Selecciona la ruta donde deseas salvar el proyecto de control, y nombra el archivo como “MensajeLCD.c“. Pulsa sobre el botón Guardar.

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

Page 6: Práctica III. Mostrar un mensaje en una pantalla LCD

www.novellius.com

6

3) Añade un nuevo proyecto al archivo “MensajeLCD.c“, implementando el PIC18F45501.

Fig. 3 Incorporación de un proyecto a un archivo de código fuente C.

4) Como en prácticas anteriores, te presentamos un diagrama de flujo para modelar la lógica que debe obedecer el programa de control.

Fig. 4 Diagrama de flujo de la lógica del programa de control.

1 Se pueden implementar diversos modelos de Microcontroladores PIC. Véase el Manual de Usuario en la sección “Microcontroladores Compatibles“.

Incluir archivos cabecera y librerías

necesarios. Configurar fusibles

Inicializar la Pantalla LCD Ciclo Infinito

Situar el cursor en la columna , renglón 1

Mostrar la primer línea del mensaje

Situar el cursor en la columna , renglón 2

Mostrar la segunda línea del mensaje

Page 7: Práctica III. Mostrar un mensaje en una pantalla LCD

www.novellius.com

7

5) Captura el siguiente código en lenguaje C, sobre el archivo “MensajeLCD.c“.

Código 1-2

1. #include <18F4550.h>

2. #fuses HSPLL, NOWDT, NOPROTECT, PLL5, NOMCLR

La línea 1 declara la inclusión del archivo cabecera del PIC18F4550 en el programa de control. La línea 2 estipula los fusibles2 implementados para la aplicación, los cuales se detallan a continuación.

HSPLL. High Speed Crystal/Resonator with PLL enabled)

Cristal/Resonador (Oscilador) de Alta Velocidad con Pre-escalador (PLL) Habilitado

NOWDT. No Watch Dog Timer Temporizador Perro Guardián Deshabilitado

NOPROTECT. Code not protected from reading

Código sin protección contra lectura.

PLL5. Divide By 5 (20MHz oscillator input)Pre-escalador con divisor de frecuencia por 5, para osciladores de 20MHz.

NOMCLR. Master Clear pin used for I/O Usar el pin MCLR como E/S.

2 ParaconocerlaconfiguracióndefusiblesdisponibleparalafamiliaPIC18véase:http://ww1.microchip.com/downloads/en/DeviceDoc/51537a.pdf

1. #include <18F4550.h>

2. #fuses HSPLL, NOWDT, NOPROTECT, PLL5, NOMCLR

3. #use delay(clock=20MHz)

4. #include <lcd.c>

5. void main(){

6. lcd_init();

7. while(true) {

8. lcd_gotoxy(1,1);

9. printf(lcd_putc,”Mensaje desde”);

10. lcd_gotoxy(1,2);

11. printf(lcd_putc,”una pantalla LCD”);

12. }

13. }

Page 8: Práctica III. Mostrar un mensaje en una pantalla LCD

www.novellius.com

8

Código 3-4

3. #use delay(clock=20MHz)

4. #include <lcd.c>

La línea 3 declara la velocidad del cristal de cuarzo que acompaña a la TEMPIC-45, la cual es de 20 MHz. La línea 4 incluye en el programa la librería que contiene el conjunto de funciones para controlar la Pantalla LCD de 16x2 caracteres (es decir, 16 caracteres por 2 renglones).

Código 5-7

5. void main(){

6. lcd_init();

7. while(true) {

La línea 5 declara el comienzo del programa de control. La línea 6 invoca la función lcd_init, la cual ejecuta un conjunto de rutinas para inicializar la Pantalla LCD. Al realizar el control de una Pantalla LCD, esta instrucción deberá ser siempre la primera a invocar. La línea 7 se trata de un ciclo infinito para estar continuamente mostrando el mensaje en el Display LCD de 16x2 caracteres.

Código 8-13

8. lcd_gotoxy(1,1);

9. printf(lcd_putc,”Mensaje desde”);

10. lcd_gotoxy(1,2);

11. printf(lcd_putc,”una pantalla LCD”);

12. }

13. }

La línea 8 posiciona el cursor del Display LCD de 16x2 caracteres en la columna 1, renglón 1. La línea 9 se trata de un conjunto de funciones que se desglosan a continuación:

printf Función que imprime un valor con un formato especificado.

lcd_putc Función para escribir un sólo caracter en la Pantalla LCD.

”Mensaje desde” Cadena de caracteres a mostrar.

La razón de usar este conjunto de funciones es para imprimir en una línea de código una cadena de caracteres, evitando así una iteración para mostrar una serie de caracteres con la función lcd_putc.

Page 9: Práctica III. Mostrar un mensaje en una pantalla LCD

www.novellius.com

9

La línea 10 sitúa el cursor de la Pantalla LCD en la columna 1, renglón 2; esto para desplegar un mensaje en la segunda línea del Display LCD. La línea 11 imprime el mensaje ”una pantalla LCD” en el Display LCD de 16x2 caracteres. La línea 12 indica el cierre del ciclo infinito creado en la línea 7. Finalmente la línea 13 establece el fin del programa (o sea el final del método principal).

6) Compila el programa pulsando sobre el botón Compile, encontrado en la sección del mismo nombre. Si existen errores de compilación, revisa nuevamente la sintaxis del programa de control.

Fig. 5 Compilación del programa de control.

Page 10: Práctica III. Mostrar un mensaje en una pantalla LCD

www.novellius.com

10

Acondicionamiento de la TEMPIC-45

1) Coloca y asegura el Microcontrolador en la Base ZIF de 40 pines de la TEMPIC-45.

Fig. 6 Colocación y aseguramiento del PIC a la Tarjeta Entrenadora.

2) Asegúrate de que el cristal de 20 MHz esté colocado en el Conector para Oscilador (XTAL).

Fig. 7 Colocación del oscilador en la TEMPIC-45.

Page 11: Práctica III. Mostrar un mensaje en una pantalla LCD

www.novellius.com

11

3) Coloca el Jumper Selector desde Alimentación desde el Programador en la posición “OFF”, para evitar que la solución de control obtenga voltaje desde el Programador de PICs.

Fig. 8 Evitar alimentación de la TEMPIC-45 mediante el programador de PICs

4) Para alimentar la TEMPIC-45 desde la Interfaz USB, coloca el Selector de Entrada de Alimentación en la posición “USB”.

Fig. 9 Alimentación de la TEMPIC-45 mediante la Interfaz USB.

Page 12: Práctica III. Mostrar un mensaje en una pantalla LCD

www.novellius.com

12

5) Observa el siguiente diagrama esquemático, y realiza la conexión del Display LCD de 16x2 caracteres a la tarjeta entrenadora como se indica.

Fig. 10 Diagrama de conexión de una Pantalla LCD a la TEMPIC-45.

6) Una vez realizadas las conexiones, verifica que el resultado sea similar a la siguiente figura.

Fig. 11 Conexión de una Pantalla LCD a la TEMPIC-45.

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA3/AN3/VREF+5

RA4/T0CKI/C1OUT/RCV6

RA5/AN4/SS/LVDIN/C2OUT7

RA6/OSC2/CLKO14

OSC1/CLKI13

RB0/AN12/INT0/FLT0/SDI/SDA33

RB1/AN10/INT1/SCK/SCL34

RB2/AN8/INT2/VMO35

RB3/AN9/CCP2/VPO36

RB4/AN11/KBI0/CSSPP37

RB5/KBI1/PGM38

RB6/KBI2/PGC39

RB7/KBI3/PGD40

RC0/T1OSO/T1CKI15

RC1/T1OSI/CCP2/UOE16

RC2/CCP1/P1A17

VUSB18

RC4/D-/VM23

RC5/D+/VP24

RC6/TX/CK25

RC7/RX/DT/SDO26

RD0/SPP019

RD1/SPP120

RD2/SPP221

RD3/SPP322

RD4/SPP427

RD5/SPP5/P1B28

RD6/SPP6/P1C29

RD7/SPP7/P1D30

RE0/AN5/CK1SPP8

RE1/AN6/CK2SPP9

RE2/AN7/OESPP10

RE3/MCLR/VPP1

PIC18F4550

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW

5R

S4

VS

S1

VD

D2

VE

E3

LCD 16x2 Caracteres

Page 13: Práctica III. Mostrar un mensaje en una pantalla LCD

www.novellius.com

13

7) Coloca el Display LCD de 16x2 caracteres en el Módulo de Conexión para Pantalla LCD de la TEMPIC-45.

Fig. 12 Colocación de la Pantalla LCD en la TEMPIC-45.

8) Inspecciona que los pines 1 y 16 del Display LCD se encuentren perfectamente conectados al Módulo de Conexión para Pantalla LCD.

Fig. 13 Revisión de la conexión del Display LCD a la TEMPIC-45.

Page 14: Práctica III. Mostrar un mensaje en una pantalla LCD

www.novellius.com

14

9) Conecta el Cable USB tipo B en la Interfaz USB de la TEMPIC-45.

Fig. 14 Conexión del Cable USB tipo B a la Interfaz USB de la TEMPIC-45.

10) Para energizar la TEMPIC-45, conecta el otro extremo del cable USB tipo B en el puerto USB de tu equipo de cómputo.

Fig. 15 Alimentación de la TEMPIC-45 vía USB.

Page 15: Práctica III. Mostrar un mensaje en una pantalla LCD

www.novellius.com

15

11) Conecta el programador de PICs en el Módulo de Programación de la tarjeta entrenadora. Verifica que los pines del programador se encuentren conectados perfectamente.

Fig. 16 Conexión del Programador de PICs a la TEMPIC-45.

12) Conecta el programador de PICs al puerto USB de tu computadora.

Fig. 17 Conexión del programador de PICs al puerto USB de la computadora.

Page 16: Práctica III. Mostrar un mensaje en una pantalla LCD

www.novellius.com

16

Programación del Microcontrolador

1) Ejecuta el programa PICKit 2® Programmer (o equivalente). Verifica que la aplicación reconozca el modelo de Microcontrolador implementado en la TEMPIC-45. De lo contrario inspecciona nuevamente el acondicionamiento de la tarjeta.

Fig. 18 Ventana principal del programa PICKit 2® Programmer.

2) Importa el archivo “MensajeLCD.hex“ a la aplicación PICKit 2® Programmer.

Fig. 19 Importación del archivo Hexadecimal a la aplicación PICKit 2® Programmer.

Page 17: Práctica III. Mostrar un mensaje en una pantalla LCD

www.novellius.com

17

3) Pulsa sobre el botón Write para programar el PIC.

Fig. 20 Programación del Microcontrolador PIC.

Page 18: Práctica III. Mostrar un mensaje en una pantalla LCD

www.novellius.com

18

Comprobación del Funcionamiento del Programa de Control

1) Observa como el mensaje programado es desplegado en la Pantalla LCD de 16x2 caracteres.

Fig. 21 Comprobación del despliegue del Mensaje en la Pantalla LCD.

Page 19: Práctica III. Mostrar un mensaje en una pantalla LCD

www.novellius.com

19

Prácticas Propuestas

A continuación te presentamos algunas prácticas para que incrementes tus habilidades en la programación de Microcontroladores PIC. Estos retos comprenden el conocimiento adquirido en esta Práctica, junto con las Prácticas I y II.

1) Realizar un programa el cual muestre un mensaje giratorio en el Display de 16x2 caracteres, bajo los siguientes criterios.

a. La cadena de caracteres “Mensaje en“ deberá mostrarse en el primer renglón de la

Pantalla LCD; mientras que la cadena “movimiento“ deberá ser mostrada en el segundo

renglón.

b. Los dos renglones deberán moverse una posición (caracter) a la vez hacia la derecha.

c. El retraso del movimiento de las secuencias de caracteres será igual a 250ms.

2) Diseñar un programa para el control de 4 mensajes giratorios, desplegados en la Pantalla LCD basándose en los siguientes puntos.

a. Los 4 textos de los mensajes son de tu elección.

b. Inicialmente el programa deberá mostrar un mensaje desplazándose hacia la izquierda.

c. Conecta 4 botones a los bits RB0, RB1, RB2 y RB3, para controlar el sistema embebido.

d. El botón en RB0 deberá cambiar el mensaje a mostrar en el Display LCD. Recuerda que

sólo deberán existir 4 mensajes disponibles; así que este botón sólo va intercambiando

el mensaje a mostrar en el orden de tu elección.

e. El botón conectado en RB1 deberá controlar el sentido del desplazamiento del mensaje

mostrado. Es decir si es presionado cambia el sentido del movimiento del mensaje de

derecha a izquierda y viceversa.

f. El botón asociado al bit RB3 incrementará la velocidad del movimiento del mensaje.

Programa solo 3 velocidades disponibles de 150ms, 250ms y 500ms.

g. El botón conectado en RB3 deberá disminuir la velocidad del movimiento del mensaje.

Recuerda que tanto el incremento como decremento de la velocidad siempre deberán

oscilar entre las 3 velocidades del punto f.

Page 20: Práctica III. Mostrar un mensaje en una pantalla LCD

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]