Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

17/11/2010 #1

Avatar de eduardo.eca

Programacion LCD con 8 ó 4 bits
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??....

De antemano, gracias por su ayuda
17/11/2010 #2

Avatar de ByAxel

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.
18/11/2010 #3

Avatar de eduardo.eca

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?
18/11/2010 #4

Avatar de ByAxel

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.
19/11/2010 #5

Avatar de eduardo.eca

Hoy si me ha quedado muy claro este asunto ....Infinitas gracias, te estoy muy agradecido!!

Saludos!!!
19/11/2010 #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
19/11/2010 #7

Avatar de ByAxel

donelias dijo: Ver Mensaje
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
19/11/2010 #8


ByAxel dijo: Ver Mensaje
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
19/11/2010 #9

Avatar de ByAxel

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

saludos.
19/11/2010 #10


ByAxel dijo: Ver Mensaje
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

saludos.
LCDOut $fe,$c0," xxxd"
¿de esta forma estaria escribiendo en la segunda linea?
19/11/2010 #11

Avatar de ByAxel

donelias dijo: Ver Mensaje
LCDOut $fe,$c0," xxxd"
¿de esta forma estaria escribiendo en la segunda linea?
Si
19/11/2010 #12


ByAxel dijo: Ver Mensaje
Si
gracias, me sirvio de mucho ya lo probe con el micro y me funciono.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.