• Miércoles 15 de Mayo de 2024, 04:01

Autor Tema:  Lcd Hitachi 44780  (Leído 3567 veces)

roseta

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Lcd Hitachi 44780
« en: Jueves 17 de Agosto de 2006, 11:12 »
0
Hoa a todos,

Mi problema esta en que cuando yo hago el programa en c para inicializar mi LCD siguiendo el diagrama marcado por el fabricante, no me hae caso.

Preguntaba a ve si alguien podria mandarme un codigo de inicializacion del LCD con un PIC18F458.

Soy nueva en el foro, así que pido disculpas por adelantado si no he seguido alguna norma del foro.

Muchas gracias.

allisap

  • Miembro MUY activo
  • ***
  • Mensajes: 259
  • Nacionalidad: mx
    • Ver Perfil
Re: Lcd Hitachi 44780
« Respuesta #1 en: Jueves 17 de Agosto de 2006, 16:46 »
0
Hola :hola:

primero que nada bienvenida al foro, :D


bueno, con respecto al lcd, no dices que compilador estas usando....
el CCS es el unico que he probado y ya tiene rutinas predefinidas para el uso del LCD y funcionan bien, checa el archivo EX_LCDKB.C, tambien revisa el archivo LCD.C que te indica como conectar el LCD al PIC


saludos :hola:

Huguen_aus_Tirol

  • Miembro MUY activo
  • ***
  • Mensajes: 318
    • Ver Perfil
    • http://www.erhard-automation.co.cc
Re: Lcd Hitachi 44780
« Respuesta #2 en: Jueves 17 de Agosto de 2006, 17:45 »
0
Saludos!
Como dice Allisap, danos algunos datos más... Usas el display en modo 8 bits o 4? y como lo has conectado.
Yo tengo unas rutinas que las uso con los 18F y funciona bien; tambien me dieron algo de trabajo, pero ya estan probadas.
En su tiempo encontré varias hojas de datos de distintos fabricantes, y ninguna es exactamente igual a la otra, aunque pareciera que sí lo son...
Respondenos y te paso las rutinas!

Saludos!

roseta

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Lcd Hitachi 44780
« Respuesta #3 en: Viernes 18 de Agosto de 2006, 10:06 »
0
Hola!!!

Perdonad por los pocos datos que os di, iré mejorando...Mi compilador es el MPLAb IDE 7.20 con el programador ICD2. Los puertos que uso son:

PORTE para los bits de control y PORTD para el bus de datos. El bus de datos es de 8 bits.

Las opciones que pretendo configurar son: 2-line mode, 5x8 Dots...aunque esto ya se que es secundario y se puede cambiar.

Tambié pediría por favor al final una pequeña función que me saque una letra.

Espero haberos dado toda la información, si necesito buscar alguna otra información ponedme sobre la pista y ya la busco.

muchísimas gracias.

Huguen_aus_Tirol

  • Miembro MUY activo
  • ***
  • Mensajes: 318
    • Ver Perfil
    • http://www.erhard-automation.co.cc
Re: Lcd Hitachi 44780
« Respuesta #4 en: Viernes 18 de Agosto de 2006, 14:57 »
0
Hola Roseta!
Disculpa que responda con otra pregunta... pero dices que programas en C, y usas el MPLab; tienes instalado el compilador C de Microchip?
De cualquier manera, fijate que tienes bien configurados los bits de dirección de cada puerto (registros TRISx), y asegurate de no tener configurado el puerto D como PSP.
Igual dejo adjunto el archivo con las funciones que uso.

Saludos
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

roseta

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Lcd Hitachi 44780
« Respuesta #5 en: Martes 22 de Agosto de 2006, 10:38 »
0
Hola,

Primero daros la gracias por contestar a mi POST. Quzá la pregunta sea un poco tonta pero el el programa q enviaste(lcd.h) es para un display de 4bits de datos no??Entonces lo que tengo q hacer es aplicarlo con un LCD de 8 bits, no??O sea, la función send_nibble puede ser directamente de 8 bits, no?? Me parece que mi compilador no reconoce la variable byte(puede ser??). Y también tengo problemas con el boolean dentro la estructura. Sabéis como puedo arreglar esto?? Declarando boolean como variable?? Tengo que declarar tb la estructura?? Qué hago con el Byte??

Bueno, perdonad por las múltiples preguntas que os hago. Supongo que las podre ir reparando yo misma con el tiempo..

oid init_lcd()
{
   port_lcd.lcd_rs = 0;
   port_lcd.lcd_e = 0;
   delay_ms( 60 );
   lcd_send_nibble( 3 );
   delay_ms( 20 );
   lcd_send_nibble( 3 );
   delay_ms( 20 );
   lcd_send_nibble( 3 );
   delay_ms( 20 );
   lcd_send_nibble( 2 );

No estiendo esta parte del código a la hora de inicializar?? Pq 4 veces la funcion send_nible???

Muchísimas gracias!!!

Nos vemos!!

Huguen_aus_Tirol

  • Miembro MUY activo
  • ***
  • Mensajes: 318
    • Ver Perfil
    • http://www.erhard-automation.co.cc
Re: Lcd Hitachi 44780
« Respuesta #6 en: Martes 22 de Agosto de 2006, 17:23 »
0
Hola Roseta!
Si usas el LCD en modo 8 bits, nada más tienes que escribir los 8 bits en el puerto y listo; no necesitas de send_nibble(). Tambien vas a tener que modificar el valor de un bit al inicializar el LCD, para indicar que trabaje en 8 bits (lo encontraras en la hoja de datos)
No se que compilador usas, pero prueba reemplazar la declaración byte por int, o int8. En el caso del bool no se que decir ahora; pero seguro que el compilador tiene ayuda y allí encontrarás como declarar las variables.
Por qué 4 veces? Bueno, es algo que encontré en una de las tantas hojas de datos que bajé, lo hize así y me funcionó sin problemas (primero no había funcionado). Por qué, no lo se... :(

Saludos, y suerte!

roseta

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Lcd Hitachi 44780
« Respuesta #7 en: Jueves 24 de Agosto de 2006, 10:42 »
0
Hola,

Muchas gracias por haberme ayudado. El display continua sin funcionar pero espero que algun día de estos funcione (esto del pic es desesperante).

Tengo una pregunta tecnica y he pensado haber si m podeis ayudar.

Mi pic(18F458) funciona a 40MHz, y yo calculé que una instruccion duraba 25.6 us.
No se si está bién. Otra cosa que quisiera saber es si el tema del prescaler afecta al timpo de una instruccion. Diria que no, q afecta a temas de timer y eso, pero ya  no se que mirar.

Lo del send nibbe, me limite a poner q PORTD=dat(en hexadecimas de 8 bits) y hacer un strobe con el enable.

Bueno, muchísimas gracias por todo!!!

Adios!!!

Huguen_aus_Tirol

  • Miembro MUY activo
  • ***
  • Mensajes: 318
    • Ver Perfil
    • http://www.erhard-automation.co.cc
Re: Lcd Hitachi 44780
« Respuesta #8 en: Jueves 24 de Agosto de 2006, 13:16 »
0
Hola Roseta!
Bueno, si usas un cristal de 40MHz, cada instruccion que se ejecute en un ciclo necesita solo de 25nseg (es la inversa de la frecuencia del cristal por 4)
Es muy probable que el problema del display venga por alli, hay tiempos que se deben respetar para que el LCD procese la informacion. Incluso en los pulsos de strobe y enable (fijate en la hoja de datos)
No se a que prescaler te refieres, pero ninguno afecta al tiempo de instruccion, es fijo y depende del cristal.

Sigue probando, que ya lo haras funcionar!

Saludos