Post on 21-Jul-2015
www.novellius.comcontacto@novellius.com
Capacitación Certificada, Componentes & Soluciones en Electrónica y Programación
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
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
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“.
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.
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
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. }
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.
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.
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.
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.
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
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.
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.
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.
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.
www.novellius.com
17
3) Pulsa sobre el botón Write para programar el PIC.
Fig. 20 Programación del Microcontrolador PIC.
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.
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.
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