Hola no es pesades, siempre es bueno quedar claros con las dudas. BUeno aqui vamos:
Primero que nada quisiera decirte que le pierdas el miedo a los LCD's muchos dicen que si los tiempos que si el backlight etc. Los tiempos se refieren a la escritura entre mensaje y mensaje, a las intrucciones enviadas y son manejadas por el compilador, solo hay que poner una pausa de 1 segundo al inicio del programa para garantizar que se inicialice bien el LCD. El backlight es un LED que no todos los LCD's poseen para verlos con mayor claridad en el dia o en la noche genralmente basta con una resistencia de 100ohms a tierra en la terminal correspondiente para no quemarlo. Puede ser tratado com un PWM. La libreria para manejar los LCD es compatible con controladores tipo HITACHI 44780, quien es el que hace todas las operaciones, como sacar las letras, cambiar lineas limpiar etc.
Una conexion Tipica de un LCD es la siguiente con un 16f84 y usando PBP:
Vamos a empezar describiendo lo que es cada pin -los pines pueden cambiar con respecto al fabricante-
PIN1 --- VSS --- Conexion a Tierra en nuestro sistema
PIN2 --- VDD --- Conexion a VCC = 5V en nuestro Sistema
PIN3 --- VEE/Vo -- Sirve para controlar el Contraste del LCD, puede ser conectado a GND.
PIN4 --- RS --- Una de las lineas de control del LCD
PIN5 --- R/W --- Linea de control nos permite Leer o Escribir en el LCD. Puede ir a GND si solo escribes en el LCD
PIN6 --- E --- Enable, Habilita el LCD
PIN7-14- Bus de datos- Cuando Usamos Interface a 8 bits se usan todos, cuando usamos interface a 4 bits se usan los ultimos 4.
PIN15* -- LED+ -- Anodo del Led backlight
PIN16* -- LED- -- Catodo del Led backlight
* En algunos LCD cambia, verifica el datasheet del LCD.
A
grosso modo la comuicacion 8 bits es mas rapida que la de 4 bits, los tiempos son menores aunque conlleva a un uso mayor de pines.
Como habiamos comentado los LCD tienen un controlador interno, lo que hacemos es mandarle las instrucciones correspondientes para que despliegue texto, limpie y otras funciones. En el manual podras ver la tabla siguiente que posee los comandos mas usados.
Command Operation
$FE, 1 Clear display
$FE, 2 Return home (beginning of first line)
$FE, $0C Cursor off
$FE, $0E Underline cursor on
$FE, $0F Blinking cursor on
$FE, $10 Move cursor left one position
$FE, $14 Move cursor right one position
$FE, $C0 Move cursor to beginning of second line
$FE, $94 Move cursor to beginning of third line
$FE, $D4 Move cursor to beginning of fourth line
Como podras ver son comandos muy usados, de ahi que la mayoria usemos en nuestros programas. INvestigando por aqui encontre que los comandos:
$FE, $1C y $FE,$18 mueven el texto de izquierda a derecha o viceversa.
Tambien los LCDs poseen una memoria llamada CGRAM en la cual puedes escribir tus propios caracteres o simbolos por ejemplo este programa lo que hace muestra un simbolo similar al de Microchip en un LCD de 16x2 con ayuda de la CGRAM
Pause 1000
'//////////////// Creacion del logo en 6 Partes ////////////////////
lcdout $fe,1 ' limpias el LCD
lcdout $fe,64 ' comienzas a escribir en la posicion 64 de la CGRAM
LCDOUT 0 ,1 ,2, 4 ,14 ,15 ,31 ,0 'Caracter 1 -- Posicion 0
LCDOUT 30 ,31 ,28, 12 ,12 ,6 ,2 ,0 'Caracter 2 -- Posicion 1
LCDOUT 0 ,0 ,0, 16 ,0 ,8 ,8 ,0 'Caracter 3 -- Posicion 2
LCDOUT 0 ,1 ,19, 15 ,7 ,3 ,1 ,0 'Caracter 4 -- Posicion 3
LCDOUT 17 ,19 ,31, 31 ,31 ,31 ,31 ,0 'Caracter 5 -- Posicion 4
LCDOUT 2 ,18 ,16, 28 ,24 ,16 ,0 ,0 'Caracter 6 -- Posicion 5
LCDOUT $fe,1
main
lcdout $fe,1,0,1,2 'Limpiamos y mostramos los 3 primeros caracteres
lcdout $fe,$c0,3,4,5 'Saltamos a la segunda linea y mostramos los otros 3 caracteres
pause 500
goto main
Eso lo puedes hacer usando programas que estan aquien el foro para crear caracteres, bien de vuelat a lo que no interesa, sobre la duda del programa lo que hace es lo siguiente
Cuando me meti a ver como se movian los textos en un LCD al poner el comando $1C o $18 no veia que pasaba si lo hacia o no, quizas no es la mejor forma pero solo asi yo pude conseguir ver el barrido metiendo el FOR por eso:
FOR C=0 TO 22 ' Barremos 22 caracteres o mas segun el codigo original
LCDOUT $FE,$C0 ' AQui me pase a la segunda linea porque queria que saliera ahi
lcdout $fe,$18, "Hellloooo!!!" 'Puedes cambiarlo por el $18 por $1C haber que pasa
PAUSE 600 'Pausa para ver el mensaje con calma
NEXT C ' siguiente C
La mejor manera seria hacerlo como en Proton o en MKB pero PBP no permite indices o nunca encontre como pero esa es una forma de verlos.
Si bien no es dificl usar un LCD te recomiendo que verifiques siempre el PINOUT de tu LCD para verificar que este bien conectado porque suelen descomponerse muy rapido.
Espero te sirva Saludos.