lean manufacturing and its definition for industries
Práctica III. Mostrar un mensaje en una pantalla LCD
1. Capacitación Certificada, Componentes & Soluciones en Electrónica y
Programación
Práctica III
Mostrar un Mensaje en
una Pantalla LCD
www.novellius.com
contacto@novellius.com
2. 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
3. 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
4. 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“.
5. 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.
6. 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.
LCD Ciclo Infinito
Situar el cursor en la
columna , renglón 1
Mostrar la segunda
línea del mensaje
Fig. 4 Diagrama de flujo de la lógica del programa de control.
Incluir archivos
cabecera y librerías
necesarios.
Configurar fusibles
Inicializar la Pantalla
Mostrar la primer
línea del mensaje
Situar el cursor en la
columna , renglón 2
1 Se pueden implementar diversos modelos de Microcontroladores PIC. Véase el Manual de Usuario en la sección
“Microcontroladores Compatibles“.
7. www.novellius.com
7
5) Captura el siguiente código en lenguaje C, sobre el archivo “MensajeLCD.c“.
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. }
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 Para conocer la configuración de fusibles disponible para la familia PIC18 véase:
http://ww1.microchip.com/downloads/en/DeviceDoc/51537a.pdf
8. 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.
9. www.novellius.com
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.
9
Fig. 5 Compilación del programa de control.
10. 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.
11. www.novellius.com
3) Coloca el Jumper Selector desde Alimentación desde el Programador en la posición “OFF”, para
11
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.
12. www.novellius.com
5) Observa el siguiente diagrama esquemático, y realiza la conexión del Display LCD de 16x2
12
caracteres a la tarjeta entrenadora como se indica.
D6
D5
D4
D3
D2
LCD 16x2 Caracteres
D1
D0
RW
RS
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/AN0
2
RA1/AN1
3
RA2/AN2/VREF-/CVREF
4
RA3/AN3/VREF+
5
RA4/T0CKI/C1OUT/RCV
6
RA5/AN4/SS/LVDIN/C2OUT
7
RA6/OSC2/CLKO
14
OSC1/CLKI
13
RB0/AN12/INT0/FLT0/SDI/SDA
33
RB1/AN10/INT1/SCK/SCL
34
RB2/AN8/INT2/VMO
35
RB3/AN9/CCP2/VPO
36
RB4/AN11/KBI0/CSSPP
37
RB5/KBI1/PGM
38
RB6/KBI2/PGC
39
RB7/KBI3/PGD
40
RC0/T1OSO/T1CKI
15
RC1/T1OSI/CCP2/UOE
16
RC2/CCP1/P1A
17
VUSB
18
RC4/D-/VM
23
RC5/D+/VP
24
RC6/TX/CK
25
RC7/RX/DT/SDO
26
RD0/SPP0
19
RD1/SPP1
20
RD2/SPP2
21
RD3/SPP3
22
RD4/SPP4
27
RD5/SPP5/P1B
28
RD6/SPP6/P1C
29
RD7/SPP7/P1D
30
RE0/AN5/CK1SPP
8
RE1/AN6/CK2SPP
9
RE2/AN7/OESPP
10
RE3/MCLR/VPP
1
PIC18F4550
D7
14
13
12
11
10
9
8
7
E
6
5
4
VSS
1
VDD
2
VEE
3
13. www.novellius.com
7) Coloca el Display LCD de 16x2 caracteres en el Módulo de Conexión para Pantalla LCD de la
13
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.
14. 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.
15. www.novellius.com
11) Conecta el programador de PICs en el Módulo de Programación de la tarjeta entrenadora. Verifica
15
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.
16. 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.
17. www.novellius.com
17
3) Pulsa sobre el botón Write para programar el PIC.
Fig. 20 Programación del Microcontrolador PIC.
18. 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.
19. 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.
20. 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:
contacto@novellius.com
¿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:
soporte@novellius.com