Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
En este apartado se comentará sobre las pantallas LCD de 2×16 caracteres es decir pantallas LCD de
2 lineas por 16 columnas como las que se muestran en la imagen, estas pantallas lcd dejan ver 16
caracteres por fila, permitiendo por lo tanto la observación de hasta 32 caracteres, pero en realidad
por cada fila se puede almacenar hasta 40 caracteres dando un total de 80 caracteres.
Los caracteres están almacenados dentro de una memoria interna que tienen las pantallas lcd, son
controlador por un microcontrolador HD44780 o algún otro compatible que viene con la pantalla;
entonces para utilizarlas lo que hay que hacer es que el microcontolador que se esté utilizando ya sea
un PIC, un AVR, un ARDUINO o algún otro, se comunique con el microcontrolador del LCD,
interactuen y nos permitan ver información en las pantallas LCD mediante caracteres.
Las pantallas LCD tienen una serie de pines, las cuales tienen unos nombres especiales que por
supuesto tienen un orden de conexión, son 14 pines ordenados del
1 al 14, esto siempre viene
indicado en la placa de las pantallas lcd, estos pines son para
Política la alimentación,
y privacidad de Cookiesel control y la
comunicación, el envió y recibo de datos, tienen ademas 2 pines para el uso de un led interno que
algunas pantallas lcd lo tienen y otras no, normalmente serán como se ve en la siguiente imagen.
El siguiente es un vídeo publicado por MrElberni, donde se da una breve introducción a las
características de las pantallas LCD, se hacen unas pruebas en cuanto a la alimentación, el contraste
de los caracteres y del led interno del LCD.
En este enlace encontrarás información mas detallada sobre las características de las pantallas lcd.
Para utilizar las pantallas LCD con los microcontroladores, primeramente hay que alimentar
adecuadamente el LCD, con su pin 1 al negativo o tierra, su pin 2 al positivo, y su pin 3 a un
potenciometro para regular el contraste de los caracteres, en el vídeo anterior se muestra como hacer
esto. Sus pines 4, 5 y 6 que son los pines de control se conectarán cada uno a un pin diferente del
microcontrolador, los pines 7 a 14 son los pines a través de los cuales se enviarán los datos del
microcontrolador al LCD, para este envío de datos no es necesario utilizar los 8 pines que van del 7 al
14, se puede utilizar solo 4 de estos pines que es lo que normalmente se hará para hacer que el LCD
trabaje adecuadamente, de esta manera se utilizan menos pines del microcontrolador que podrán ser
utilizados para otras labores, en la siguiente imagen se muestra como hacer esto.
No es necesario conocer el funcionamiento interno de las pantallas LCD para su utilización ya que es
un tanto complejo aunque si es muy interesante, si te interesa lo puedes ver en este enlace,
normalmente los programas como el PicBasicPro, el CCS, el ARDUINO, entre otros traen drivers para
el manejo de los microcontroladores, solo hay que indicar los pines del microcontrolador donde se
conectarán los pines del LCD, luego utilizar una serie de funciones del programa que se esté
utilizando para poder trabajar con el microcontrolador y el LCD.
DEFINE LCD_DREG PORTX ‘Se utiliza el puerto x para los datos a enviar al LCD.
DEFINE LCD_DBIT 4 ‘Se utilizarán los pines D4, D5, D6 y D7 del LCD.
Una vez configurados los pines a utilizar, mediante la instrucción lcdout del PBP se hace que las
pantallas LCD hagan algo.
En el canal de Youtube de MrElberni se han publicado 3 vídeos para el manejo de las pantallas LCD
mediante el PBP.
Microcontroladores PIC en PBP pantallas LCD ejemplo 1, en este primer vído publicado por
MrElberni se realiza un primer programa para el manejo de una pantalla LCD de 2×16 con el PBP, en
este caso se utiliza el PIC16F84A; se comenta sobre la forma en que hay que escribir el código para
decirle al programa que pines del PIC serán utilizados para datos y que pines serán los de control;
luego mediante la instrucción lcdout del PBP se enviarán mensajes que se podrán ver en la pantalla
LCD.
lcdout dato,dato,dato…
Donde dato puede ser una instrucción para la pantalla LCD, y si dato va entre comillas será eso lo
que se imprima en la pantalla.
En este caso se utiliza la instrucción $fe,1 la cual sirve para limpiar o borrar la pantalla LCD, es decir
que borre todo lo escrito en la pantalla.
El vídeo es el siguiente:
Para ver los datos numéricos en forma decimal se utiliza la palabra dec o el caracter #
dec dato
# dato
bin dato
hex dato
Si no se antepone ninguna de las palabras anteriores al dato numérico, este se verá en la pantalla lcd
en su equivalente ASII.
En este ejemplo también se trata sobre como se puede cambiar de línea en la pantalla LCD de 2×16,
para eso se utilizan las siguientes instrucciones:
El vídeo es el siguiente:
Microcontroladores PIC en PBP pantallas LCD ejemplo 3, en este tercer vídeo publicado por
MrElberni se realiza un programa en el PBP, para poder visualizar información sobre lo que está
ocurriendo en el PIC, dicha información se verá a través de una pantalla LCD de 2×16 caracteres, se
usa el programador pickit3, se usa el PIC16F84A.
En este caso se crea una variable, cuyo valor irá cambiando con el tiempo, este valor lo podremos ver
en la pantalla LCD, además se activarán unos pines donde se conectan unos leds los cuales
encenderán o apagarán de acuerdo al valor que vaya tomando la variable, en la pantalla LCD se
informará cual de los leds se ha activado.
El vídeo es el siguiente:
El diagrama de flujo del programa utilizado es el siguiente:
#include <lcd.c>
Este driver trabaja por defecto con el puerto D y permite utilizar las pantallas LCD para que trabajen
con 4 bits de datos, siendo los pines a conectar como se muestra a continuación.
RD0 E
RD1 RS
RD2 RW
RD4 D4
RD5 D5
RD6 D6
RD7 D7
También se puede hacer que trabaje con el puerto B agregando la siguiente linea de código
Siendo el orden de conexión de los pines el mismo pero en este caso en el puerto B
La elección de los pines a utilizar del microcontrolador PIC, tambíen se puede seleccionar con el
asistente al crear el programa, se puede elegir cualquier pin para los pines de control y para los pines
de datos, en la siguiente imagen se muestra el asistente del CCS para elegir el uso de pantallas LCD
con el pic, se selecciona la casilla Use LCD, luego se seleccionan los pines que se usaran para el
control y el envió de datos a la pantalla LCD.
Al darle en Create Project, el programa incluirá automaticamente el archivo de cabecera, las
definiciones de los pines a utilizar los cuales deben ir antes de la inclusión del archivo de cabecera
para el uso de las pantallas LCD, además crea la función lcd_init() tal como se muestra en la
siguiente imagen:
Una vez incluido el archivo de cabecera y elegido los pines del microcontrolador a utilizar ya se
pueden utilizar las funciones para el manejo de las pantallas lcd, la primera función que hay que
llamar siempre es
lcd_gotoxy(int8 x, int8 y);//para ubicar el cursor en una posición de la pantalla x para la columna
e y para la fila, por ejemplo lcd_gotoxy(4,1) que indica en la primera fila la cuarta columna.
printf(lcd_putc,”timer1 = %u”,timer1);// donde %u es para indicarle que el dato timer1 será de tipo
entero sin signo, para datos de tipo cadena sería %s, en la siguiente tabla se pueden ver los
formatos para los diferentes tipos de datos.
%c Caracter
%s Cadena o caracter
Si esto se ve en una forma mas general tendrían esta forma %t donde t puede ser cualesquiera de
los indicados, esto se puede manipular mas si se usa la forma %nt, donde n representa una opción
para mejorar la presentación de los números en la pantalla.
por ejemplo %3d indica un entero con signo de 3 caracteres, %.3f indica un numero real con 3
decimales.
Ejemplito 1 El siguiente es un ejemplo del uso de las pantallas lcd con el CCS, en este caso se está
utilizando el PIC16F877A del cual previamente se han configurado sus bits, está trabajando con un
cristal de 4Mhz, este programa solo imprimirá el mensaje Amor mio en la pantalla LCD como se ve
luego de la imagen del programa.
Borra la pantalla, imprime “amor mio”, espera 200ms, vuelve a borrar la pantalla, vuelve a imprimir
“amor mio”, vuelve a esperar 200ms, vuelve a borrar la pantalla, vuelve a imprimir “amor mio”,
vuelve a borrar la pantalla, vuelve a…. y así hasta el infinito, lo que pasa es que ocurre muy rápido
por eso que no se ve.
Borra o limpia la pantalla, el cursor del lcd se ubica en la primera columna de la primera fila, a partir
de esa posición imprime Junto a ti Amor, luego el cursor se ubica en la primera columna de la
segunda fila, a partir de allí imprime Tiempo = valor de la variable tiempo, la variable tiempo
aumentará en una unidad cada 200ms esto no se podrá ver en la imagen que sigue pero se verá
algún valor entre 0 y 255, cuando el valor de la variable tiempo es igual a 255 la variable tiempo se
pondrá a 0 nuevamente.
El circuito funcionando es el siguiente:
En el siguiente vídeo publicado por MrElberni, se comenta sobre la forma de lograr ver datos
numéricos en una pantalla LCD la cual se encuentra conectada al PIC16F877A, se utiliza el CCS para
lograr esto.