Autor Tema: Envio De Datos A LCD (hd44780u)  (Leído 2269 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado T-RAVE.

  • PIC10
  • *
  • Mensajes: 9
Envio De Datos A LCD (hd44780u)
« en: 07 de Junio de 2006, 15:51:36 »
Saludos, estoy realizando un proyecto donde uso entre otras cosas un RTC (PCF8583) , la cuestion es que no he conseguido visualizar correctamente la hora.  El lcd es un hitachi hd44780u y esta controlado por un PIC16f628 que muestra un mensaje de inicio. Este mismo PIC esta conectado al principal 16f873 el cual es el que le envia el CS,DT y CK.   La comunicacion entre los micros esta hecha incluso tengo un programa que envia una cadena de caracteres al display, pero a la hora de decirle que envie la hora solo veo simbolos raros.

por ejemplo esto es lo que envio mediante la funcion Envia

char mensa1[18]="INTRODUCIR CODIGO";

para visualizarlo hago lo siguente:

Envia(CMD,CLR); //borramos display
   
for(i=0;i<18;i++){
     Envia(1,mensa1); //enviamos mensa1
 ....


lo del reloj he visto en algun sitio que lo envian asi, pero no he podido visualizarlo, ni con libreria lcd2.c de Pedro M. Jimenez  que creo que sirve para ese tipo de lcd's

//parte del codigo para el RTC

 h.horas=23;  h.minutos=59;  h.segundos=00;   //ponemos una hora  H:M:S
   escribir_en_reloj(&h);                       //rutina para escribir en el PCF8583
    while(1)
      {
        lcd_gotoxy(1,1);
        leer_todo_el_reloj(&h);
        printf(lcd_putc,"%i : %i : %i" ,h.horas,h.minutos,h.segundos);
      }
        delay_ms(900);

he probado substituyendo esa funcion (lcd puts)por la mia(Envia) y nada

haber si alguien puede exarme un cable si se necesitan mas datos diganlo saludos y gracias.



Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Envio De Datos A LCD (hd44780u)
« Respuesta #1 en: 07 de Junio de 2006, 16:06:30 »
Hola, te hago 2 preguntas, ya que no utilizo C para programar PICs:
lcd_gotoxy(1,1); Estas seguro que 1,1 son las primeras coordenadas del LCD?
Segundo:

    while(1)
      {
        lcd_gotoxy(1,1);
        leer_todo_el_reloj(&h);
        printf(lcd_putc,"%i : %i : %i" ,h.horas,h.minutos,h.segundos);
      }
        delay_ms(900);

Lo estas matando! pobrecito :mrgreen: No llega a escribir la hora que lo haces volver a escribirla, tal vez x esto no veas correctamente la hora. La linea delay_ms(900) deberia ir dentro del while! es decir, asi:

    while(1)
      {
        lcd_gotoxy(1,1);
        leer_todo_el_reloj(&h);
        printf(lcd_putc,"%i : %i : %i" ,h.horas,h.minutos,h.segundos);
        delay_ms(900);
      }

Exitos!
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado T-RAVE.

  • PIC10
  • *
  • Mensajes: 9
Re: Envio De Datos A LCD (hd44780u)
« Respuesta #2 en: 07 de Junio de 2006, 16:09:03 »
gracias, ahora mismo voy a programarlo ya comentare si se soluciona algo

pues no hubo suerte :S
« Última modificación: 07 de Junio de 2006, 17:02:13 por T-RAVE. »

Desconectado T-RAVE.

  • PIC10
  • *
  • Mensajes: 9
Re: Envio De Datos A LCD (hd44780u)
« Respuesta #3 en: 08 de Junio de 2006, 14:06:19 »
ya lo he resuelto he cambiado una funcion y ya esta el problema estaba en la funcion lcd_putc he cambiado la ultima funcion por la mia la Envia y ya esta

void lcd_putc( char c) {
   switch (c) {
     case '\f'   : Envia(cmd,clr);
                   delay_ms(20);
                   break;
     case '\n'   : lcd_gotoxy(1,2);               break;
     case '\b'   : Envia(cmd,0x10);  break;
     default     : Envia(1,c);        break;
   }
}


 

anything