0% encontró este documento útil (0 votos)
72 vistas7 páginas

Microcontroladores Lab Dirigido 03

Este documento describe un laboratorio dirigido sobre el manejo de una pantalla LCD alfanumérica de 2x16 usando un microcontrolador PIC18F4550. Incluye definiciones preliminares, conexión del circuito, e implementación de funciones para transmitir instrucciones, inicializar, ubicar el cursor, imprimir caracteres y cadenas, y probar instrucciones adicionales. También discute el uso de la función sprintf para facilitar la impresión en la LCD.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
72 vistas7 páginas

Microcontroladores Lab Dirigido 03

Este documento describe un laboratorio dirigido sobre el manejo de una pantalla LCD alfanumérica de 2x16 usando un microcontrolador PIC18F4550. Incluye definiciones preliminares, conexión del circuito, e implementación de funciones para transmitir instrucciones, inicializar, ubicar el cursor, imprimir caracteres y cadenas, y probar instrucciones adicionales. También discute el uso de la función sprintf para facilitar la impresión en la LCD.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Universidad Tecnológica del Perú

Programación de Microcontroladores

Laboratorio Dirigido N°3

Manejo de LCD alfa-numérica

2019 - 2
Escuela de Electrónica

MANEJO DE LCD ALFA-NUMÉRICA

Objetivo:

“Configuración y manejo de una pantalla de cristal líquido alfa-numérica”

Este laboratorio consiste en implementar un conjunto de funciones que permitan controlar


una pantalla de cristal líquido (LCD) alfa-numérica de 2 x 16. Las funciones construidas
permitirán al usuario transmitir un solo caracter a la vez y también transmitir una cadena de
caracteres.

I. Pre-Laboratorio

1) Realizar la definición de cada uno de los pines que serán utilizados en la


comunicación entre el microcontrolador y la LCD: DB7, DB6, DB5, DB4, RS, R/W y E.
No olvide que debe haber una definición para el registro TRIS, otra para el registro
LAT y otra para el pin correspondiente.

2) Realizar la definición de la cantidad de líneas, la cantidad de caracteres en cada línea


de la DDRAM del HD44780, la cantidad de caracteres en cada línea de la LCD, y la
dirección del inicio de cada línea en el HD44780.

3) Realizar la definición de las instrucciones más relevantes de la LCD, las cuales se


indicaron en el material proporcionado en clase.

4) Realizar la definición de las macros LCD_E_HIGH(), LCD_E_LOW(), LCD_RS_HIGH()


y LCD_RS_LOW, las cuales llevan a cabo las acciones E = 1, E = 0, RS = 1 y RS = 0,
respectivamente.

II. Desarrollo del laboratorio dirigido

 Implementar el circuito básico de funcionamiento del microcontrolador PIC18F4550.


Luego, verificar si los terminales correspondientes al backlight de la LCD coinciden con
los pines 15 y 16. De ser ese el caso, conectar la pantalla LCD al PUERTO B del
microcontrolador, tal y como se muestra en el diagrama de la Figura 01.
Escuela de Electrónica

Figura 01

 Si los terminales correspondientes a los terminales del backlight coinciden con los pines
1 y 2, entonces la conexión entre el microcontrolador y la LCD debe ser tal y como se
muestra en el diagramad e la Figura 02.

Figura 02
Escuela de Electrónica

Transmisión de una instrucción

 Basándose en la información proporcionada en clase, y en la hoja de especificaciones


del driver HD44780, construir una función que reciba como parámetro un número natural
de 8 bits, y que permita transmitirlo a la LCD como si fuera una instrucción.

 El nombre de esta función debe ser LCD_Tx_Command, y debe presentar el siguiente


formato:

void LCD_Tx_Command(uint8_t command)

Inicialización de la LCD

 Basándose en la información proporcionada en clase, y en la hoja de especificaciones


del driver HD44780, construir una función que inicialice la LCD alfa-numérica para
trabajar en modo 4 bits, con caracteres de 5x8 pixeles.

 El nombre de esta función debe ser LCD_Init_4_Bits, y debe presentar el siguiente


formato:

void LCD_Init_4_Bits(void);

Ubicación del cursor en la LCD

 Basándose en la información proporcionada en clase, y en la hoja de especificaciones


del driver HD44780, construir una función que permita ubicar el cursor en una posición
específica de la LCD (coordenadas verticales, coordenadas horizontales). Recuerde que
existen 32 ubicaciones posibles, ya que la LCD es de 2 líneas de 16 caracteres cada
una.

 El nombre de esta función debe ser LCD_Goto_XY, y debe presentar el siguiente


formato:

void LCD_Goto_XY(uint8_t pos_x, uint8_t pos_y);


Escuela de Electrónica

Impresión de un caracter

 Basándose en la información proporcionada en clase, y en la hoja de especificaciones


del driver HD44780, construir una función que permita imprimir en la LCD un caracter, el
cual se encuentre almacenado en una variable.

 El nombre de esta función debe ser LCD_Put_Char, y debe presentar el siguiente


formato:

void LCD_Put_Char(char byte)

 Una vez que haya verificado el correcto funcionamiento de esta función, construir una
función similar, la cual permita imprimir en la LCD un caracter constante (un literal de tipo
char). El nombre de esta función debe ser LCD_Put_Const_Char, y debe presentar el
siguiente formato:

void LCD_Put_Const_Char(const char byte)

 Verificar el funcionamiento de la función creada, imprimiendo los caracteres ‘h’, ‘o’, ‘l’,
‘a’, en la primera línea de la LCD y , ‘m’, ‘u’, ‘n’, ‘d’, ‘o’, en la segunda línea.

Impresión de una cadena de caracteres

 Basándose en la información proporcionada en clase, y en la hoja de especificaciones


del driver HD44780, construir una función que permita imprimir en la LCD una cadena de
caracteres, la cual se encuentre almacenada en forma de arreglo.

 El nombre de esta función debe ser LCD_Put_String, y debe presentar el siguiente


formato:

void LCD_Put_String(char str[ ])

 Una vez que haya verificado el correcto funcionamiento de esta función, construir una
función similar, la cual permita imprimir en la LCD una cadena de caracteres constante
(un literal de tipo string). El nombre de esta función debe ser LCD_Put_Const_String, y
debe presentar el siguiente formato:

void LCD_Put_Const_String(const char *str)

 Verificar el funcionamiento de la función creada, imprimiendo en la LCD el mensaje


mostrado en la Figura 03.
Escuela de Electrónica

Figura 03

Prueba de instrucciones adicionales

Para verificar el funcionamiento de las instrucciones de la LCD, llevar a cabo la siguiente


secuencia:

 Imprimir “Curso de” en la primera línea y “Microcontroladores” en la segunda línea de


la LCD.

 Hacer visible el cursor.

 Desplazar el texto en pantalla cuatro veces hacia la derecha, dejando un intervalo de 1


segundo entre cada desplazamiento.

 Transmitir la instrucción LCD_HOME para regresar el texto a su posicón original.

 Hacer que el cursor parpadee.

 Desplazar el texto en pantalla cuatro veces hacia la izquierda, dejando un intervalo de


1 segundo entre cada desplazamiento.

 Trasnmitir la instrucción LCD_HOME para regresar el texto a su posición original.

 Hacer invisible el cursor y también desactivar el parpadeo.

 Esperar 5 segundos y luego apagar la pantalla.


Escuela de Electrónica

III. Post-laboratorio

Cuando escribimos un programa en C en una computadora personal, es posible imprimir


datos empleando la función printf. Esto no es posible en un microcontrolador, ya que este
último puede contar con diferentes salidas (LEDs, displays de 7 segmentos, pantallas, etc.) y
la función printf no tiene definido el funcionamiento de cada dispositivo de salida.

Por otro lado, existe una función cuya forma de manejo es muy similar a la de printf, y puede
utilizarse para facilitar la impresión de caracteres coon un microcontrolador. El nombre de
esta función es sprintf.

Investigar el uso de la función sprintf y responder:

 ¿Qué archivo debe incluirse para poder utilizar esta función?

 ¿Para qué sirve esta función?

 ¿Cómo es que esta función puede facilitar la escritura de código?

 ¿Qué aplicación se le puede dar al trabajar con una LCD alfa-numérica?

También podría gustarte