Programacion LCD con 8 ó 4 bits

#1
Hola amigos:

Tengo una duda que aún no logro despejar, pues estoy programando una LCD de 16x2 con un PIC16F88 en lenguaje BASIC. La duda que tengo es ¿Cual es la diferencia de usar 8 ó 4 bits para la programación de la LCD??....:unsure:

De antemano, gracias por su ayuda :cool:
 
#2
Menos pines con 4 bits, pero no hay diferencia o al menos solo en cuanto a velocidad de escritura/lectura ya que los datos siempre son de 8 bits pero al ser el bus de 4 bits, el dato lo debe de enviar en dos secuencias... primero los 4 bits más bajos y luego los 4 bits más altos (o al revés)... no afecta en nada más.
 
#3
Hola ByAxel, primeramente agradecerte por tu pronta respuesta. Pero fíjate que al definir en el programa que el LCD trabajará con 4 bits y pongo a marchar la simulación (bajo PROTEUS), no logro visualizar nada en dicha pantalla. Cuales son los bits de la LCD que tengo que utilizar para 4 bits?
 
#4
Con basic supongo que te refieres el PicBasicPro. Con:
DEFINE LCD_BITS ''' Le indicas de cuantos bits es el bus (4 u 8).
DEFINE LCD_DREG ''' Escoges el puerto para el bus de datos y con
DEFINE LCD_DBIT ''' Le indicas el bit de inicio del bus de datos. Con '0' usa los pines 0, 1, 2 y 3 del puerto para el bus y con '4' usa los pines 4, 5, 6 y 7 del puerto para el bus.
De acuerdo como quieras, vas a poder usar los 4 pines más altos o 4 más bajos para enviar datos al LCD con un bus de 4 bits.

Y los bits del LCD cuando usas un bus de 4 bits son D7, D6, D5, y D4, es decir, los bits más altos del bus de datos.

saludos.
 
#6
hola que tal, tengo un problema similar con el 16f877a, solo logro visualizar 8 caracteres de los 16 que tiene el dysplay.

se agradecen sugerencias :)
 
#7
hola que tal, tengo un problema similar con el 16f877a, solo logro visualizar 8 caracteres de los 16 que tiene el dysplay.

se agradecen sugerencias :)
Supongo que tu LCD es de 1x16, en este la memoria interna de la 1ra linea son los 8 primeros caracteres y los 8 siguientes son de la segunda línea... Es decir que debes escribir en dos partes para rellenar los 16 caracteres:

comando 1ra línea y escribes 8 caracteres, luego
comando 2da línea y escribes 8 caracteres.

saludos
 
#8
Supongo que tu LCD es de 1x16, en este la memoria interna de la 1ra linea son los 8 primeros caracteres y los 8 siguientes son de la segunda línea... Es decir que debes escribir en dos partes para rellenar los 16 caracteres:

comando 1ra línea y escribes 8 caracteres, luego
comando 2da línea y escribes 8 caracteres.

saludos
mi lcd es 1 x16 efectivamente
por favor me podrias dar un ejemplo de un codigo basico de como hacerlo
(se el comando lcd out, pero no se como mandar los datos en el orden que mencionaste, tendria que declarar que es un lcd de dos lineas?)
muchisimas gracias
 
Última edición:
#9
Código:
lcdout $fe, 1, "12345678"
lcdout $fe, $c0, "12345678"
Revisa los comandos en el Help del compilador (supongo que usas el MicrocodeStudio + PBP) donde:

$FE, 1 >> Esto borra la pantalla y pone el cursor en la 1ra posición de la 1ra línea.
$FE, $C0 >> Esto pone el cursor en la 1ra posición de la 2da línea.

tendria que declarar que es un lcd de dos lineas?
Si.

Si sigue fallando puede que el LCD esté mal :cry:

saludos.
 
#10
Código:
lcdout $fe, 1, "12345678"
lcdout $fe, $c0, "12345678"
Revisa los comandos en el Help del compilador (supongo que usas el MicrocodeStudio + PBP) donde:

$FE, 1 >> Esto borra la pantalla y pone el cursor en la 1ra posición de la 1ra línea.
$FE, $C0 >> Esto pone el cursor en la 1ra posición de la 2da línea.


Si.

Si sigue fallando puede que el LCD esté mal :cry:

saludos.
LCDOut $fe,$c0," xxxd"
¿de esta forma estaria escribiendo en la segunda linea?
 
Arriba