Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manejo Basico de LCD PDF
Manejo Basico de LCD PDF
La mayoría de displays de cristal líquido se usan con controlador del tipo HD44780, con un número
de líneas variable y una cantidad de caracteres también variable, por ejemplo, en la figura 1 se
observa un LCD de 2 líneas de 16 caracteres cada una, con el cual se realizan muchas de las
aplicaciones de tipo académico.
El bus de datos es de 8 bits, aunque también existe la posibilidad de trabajar con 4 bits (con un
número menor de caracteres). El compilador C incluye un fichero (archivo lcd.c en la carpeta
drivers) al instalarse, el cual contiene las funciones básicas necesarias para manejar el LCD en
lenguaje C con solo incluir este fichero (#include) al inicio del programa.
lcd_init();
Es la primera función que debe ser llamada.
Borra el LCD y lo configura en el formato de 4bits, con 2 líneas y con caracteres de 5 x 8 puntos, en
modo de encendido, cursor apagado y sin parpadeo.
Configura el LCD con un autoincremento del puntero de direcciones y sin desplazamiento del
display real.
lcd_gotoxy(byte x, byte y);
Indica la posición de acceso al LCD. Por ejemplo, (1,1) indica la primera posición de la primera línea
y (1,2) indica la primera posición de la segunda línea.
lcd_getc(byte x, byte y);
Lee el carácter de la posición (x,y).
lcd_putc(char s);
S es una variable de tipo char. Esta función escribe la variable en la posición correspondiente. Se
pueden usar caracteres de escape como:
• \f : Limpia el LCD.
• \n : Lleva el cursor hacia la posición (1,2).
• \b : Retrocede el cursor una posición.
El compilador de C ofrece una función más versátil para trabajar con el LCD:
printf (string)
printf (cstring, values…)
printf (fname, cstring, values…)
String es una cadena ó un arreglo (array) de caracteres, values es una lista de variables separadas
por comas y fname es una función.
El formato es %nt, donde n es opcional y puede ser:
1-9: para especificar cuantos caracteres se deben especificar.
01-09: para indicar la cantidad de ceros a la izquierda.
1.1-9.9: para coma flotante.
t puede indicar:
c carácter
s cadena o carácter
u entero sin signo
d entero con signo
Lu entero largo sin signo
Ld entero largo con signo
x entero Hexadecimal minúsculas
X entero Hexadecimal mayúscula
Lx entero largo Hexadecimal minúscula
LX entero largo Hexadecimal mayúscula
f flotante truncado
g flotante con redondeo
e flotante en formato exponencial
w entero sin signos con decimales insertados. La 1ª cifra indicada el total, la 2ª el
número de decimales.
El driver LCD.c está pensando para trabajar con el PORTD o el PORTB. Por defecto, utiliza el PORTD
a menos que se le indique lo contrario mediante:
Por defecto este driver utiliza siete terminales de comunicación entre el LCD y el PIC. En la figura 2
se observa parte del archivo LCD.c donde se encuentran definidas las conexiones utilizadas y la
posibilidad de cambiar el puerto usado (subrayado en azul).
Figura 2. Segmento de código del driver LCD.c dado por el fabricante del compilador PICC
También se puede trabajar con otros puertos, por ejemplo con el PORTC, ó con pines diferentes a
los que se han predefinido para los puertos B ó D. Para este procedimiento es necesario realizar
varias modificaciones del archivo LCD.c como se muestra en el archivo EjemploLCD y los archivos
lcd_modificado_lewin y lcd_modificado_lewin2.
En este compilador es posible manejar un LCD gráfico con una controladora KS0108 (Ver figura 3).
Figura 4. Segmento de código del archivo GLCD.c para ver la distribución de pines.
glcd_init(mode);
Debe ser la primera función en usarse o invocarse. Mode puede ser ON u OFF, si es ON, enciende
el LCD.
glcd_pixel(x, y, color);
glcd_fillScreen(color);
glcd_line(x1,y1,x2,y2,color)
Dibuja una línea del punto (x1,y1) al punto (x2,y2) con el color dado. Puede activarse o
desactivarse (color ON u OFF).
glcd_rect(x1,y1,x2,y2,fill,color)
Dibuja un rectángulo entre en punto (x1,y1) extremo superior izquierdo al punto (x2,y2) extremo
inferior derecho. Fill indica si es o no rellenado en su interior. Puede activarse o desactivarse (color
ON u OFF).
glcd_bar(x1,y1,x2,y2,width,color)
Dibuja una barra (linea amplia) del primer punto (x1,y1) al Segundo (x2,y2). Width es la cantidad
de pixeles de ancho. El color puede activarse o desactivarse (ON/OFF).
glcd_circle(x,y,radius,fill,color)
Dibuja un circulo con centro en (x,y) y radio radius. Puede ser o no rellenado en su interior. El color
puede activarse o desactivarse (ON/OFF).
glcd_text57(x,y,textptr,size,color)
Escribe el texto indicado por textptr. Se inicia su despliegue en las coordenadas (x,y) y se puede
escalar el tamaño 7x5 por defecto (size = 1). El color puede activarse o desactivarse (ON/OFF).
En el archivo glcd_pic compilando el programa picCCS_006 se puede comprobar una forma de usar
este tipo de dispositivos.