Problemas con Display LCD en CCS

por lo visto es la librería de lcd.c, que necesita actualizarse, ya que los dos ejemplos , tanto el tuyo como el del otro chavo, funcionan de maravilla, me podrias sugerir que debo hacer para actualizarla
 
Estas usando el pic 16f877A o el 16f877 ???

probablemente ahi este el problema
Nop. Por ahí no está el problema...
16F877X_16F877A_Diferencias.JPG



me podrias sugerir que debo hacer para actualizarla
Claro.
La actualización se realiza a través del mismo programa.
Pero necesitas ser usuario registrado.

También puedes probar con la librería Flex_LCD416 que funciona muy bien.

Suerte.
 
Última edición:
hola que tal, tengo un problema con el pic 16f887 y una pantalla lcd 2x16 y espero y me puedan ayudar. El problema es que no logro que el lcd muestre lo que deseo y he llegado al punto de tratar que muestre el tradicional mensaje de HOLA pero no pasa nada, espero y me puedan ayudar a ver que estoy haciendo mal. Pongo los programas y las imagenes de la simulacion.

programa 1 de prueba:
Código:
#include <16F887.h>
#fuses XT, NOWDT, NOPROTECT, PUT
#use delay(clock=4000000)
#include <lcd.c>
#use fast_io(D)

void main(void)
{
   lcd_init();
   printf(lcd_putc,"HOLA");
}

programa que tengo que lograr que muestre:

Código:
#include <16f887.h>
#fuses XT, NOWDT, NOPROTECT, PUT
#use delay(clock=4000000)
#include <lcd.c>
#use fast_io(D)
int x;

main() 
{
       lcd_init();
       while(TRUE)
       {
                  for(x=0;x<16;x++)
                  {
                  lcd_gotoxy(x,1);
                  printf(lcd_putc,"  Hola");
                  delay_ms(500);
                  lcd_getc(x,2);
                  printf(lcd_putc,"  Como estas?");
                  }
         }
}
 

Adjuntos

  • pic16f887.jpg
    pic16f887.jpg
    181.9 KB · Visitas: 39
Última edición por un moderador:
El problema es que no logro que el lcd muestre lo que deseo y he llegado al punto de tratar que muestre el tradicional mensaje de HOLA pero no pasa nada, espero y me puedan ayudar a ver que estoy haciendo mal.
Saludos.
Moví aquí tu tema por tratarse del mismo problema, y para tener la información agrupada.
Mira desde el post #10. Posiblemente encuentres la solución a tu problema.

Si no encuentras la solución a tu problema en este tema, coméntanos por favor.

Suerte.
 
Tenia un problema similar que no pude solucionar con las respuestas de este post, pero leyendo mucho encontré que hay un problema del archivo LCD.C, por lo que busque una versión anterior y funciono. Saludos
 
Hola a todos, tengo un problema con el pic 16f887... lo que sucede es que hice un programa en CCS para que salga un mensaje en un LCD, pero cuando conecto el LCD a los puertos D, del microcontrolador, no pasa nada... . Vi con el voltimetro si el pic mandaba señal y tampoco manda nada... . En el mismo programa tengo un led que parpadea y lo hace de forma normal...

Adjunto mi programa, quisas ahí esté el problema...
 

Adjuntos

  • 16f887.txt
    667 bytes · Visitas: 45
Tendrías que definir en algún sitio los pines a los que conectas el LCD.

#define use_portb_lcd TRUE

Además te sobra el espacio antes de ( en: (aunque no se si esto es importante o no)
lcd_gotoxy (1,1);
 
Josemax ya le aumente el #define use_portb_lcd TRUE y le arregle lo del lcd_gotoxy(1,1) , pero aun nada... el pic sigue sin mandar señal al LCD.... cual podría ser la razón??... mi circuito funciona normal... los leds prenden como deberían... pero el LCD no muestra nada y el PIC no manda señales. Mi programa lo estoy haciendo con PIC-C compiler... el programa podría ser el problema??
 
Sí está bien conectado, El Vss a tierra, Vdd a 5v, Vee con el potenciometro, de D0 a D3 a tierra y de D4 a D7 a los pines del PIC del puerto D... . Con el voltimetro veo si el PIC manda señal por el Puerto D pero no manda nada... . En otro blog lei que quisas sea porque la libreria del LCD.C de mi programa no está actualizada... podría ser por eso?
 
Te quiero avisar que no soy experto en C, aprendiendo. Pero ese enable que te he puesto es para el puerto B, no el D

La conexión es: (CCS C)

PORT.D0 -> enable
PORT.D1 -> rs
PORT.D2 -> rw
PORT.D4 -> D4
PORT.D5 -> D5
PORT.D6 -> D6
PORT.D7 -> D7

No se yo si un voltímetro reaccionara suficientemente rápido a estos pulsos. Esto se mira con un analizador lógico. Uno bien barato http://jwasys.home.xs4all.nl/old/diy2.html
 
También lo estoy viendo con una punta lógica pero nada. El enable que me mandaste lo pase a #define use_portd_lcd TRUE... creo que así se refiere al puerto D, pero el PIC no manda nada aún... . Vi si funcinaba con el Puerto B, pero igual el PIC no manda nada
 
A mi me pasaba lo mismo busca en ves del lcd.c busca en internet el flex_lcd.c ademas tambien antes del include le tienes que decir que pines vas a usar para la transmision algo asi

#define LCD_DB4 PIN_A0
#define LCD_DB5 PIN_A1
#define LCD_DB6 PIN_A2
#define LCD_DB7 PIN_A3
#define LCD_RS PIN_C0
#define LCD_RW PIN_C1
#define LCD_E PIN_C2
 
Gracias albertoxx, el pic ya manda señales :)... pero igual no sale nada en el LCD, creo que el LCD es genérico y no es hitachi... ese podría ser un problema también verdad?
 
Le puse un potenciometro pero nada aun :S , quisas haya puesto algo mal en mi código... lo adjunto para que lo veas... quisas algo esté mal
 

Adjuntos

  • 16f887.txt
    1.1 KB · Visitas: 35
Le puse un potenciometro pero nada aun :S , quisas haya puesto algo mal en mi código... lo adjunto para que lo veas... quisas algo esté mal
Antes de que continues haciendo pruebas fallidas...
¿Ya te tomaste la molestia de leer todo el contenido del tema?
Lo más seguro es que encuentres la solución a tu problema.
También te recomiendo que adjuntes un esquema de las conexiones de tu pantalla al PIC.



creo que el LCD es genérico y no es hitachi... ese podría ser un problema también verdad?
Cuando se habla de pantallas genericas por lo regular se trata de pantallas basadas en el controlador Hitachi HD44780
 
Última edición:
Atrás
Arriba