Problema con LCD 16x2

#41
Hay alguna forma de hacer que los pines de datos empiecen desde B3 hacia atrás? Es decía qué D4 = Rb3 , D5 = Rb2 y así sucesivamente... Es que al momento de hacer la PCB me equivoqué y lo hice al revés... Pic 16f887 programado en proton ide
 
#42
Se puede... pero tendrias que crear una libreria especial para eso con los comandos en los pines correctos...
 
#44
hay que editar la libreria que usas... y cambiar todos y cada uno de los comandos y reasignarlos a los pines que tienes...

Por ejemplo si para encender el display mandabas '10011100' ahora hay que cambiarlo por '00111001' igual para los caracteres...
 
#45
quiero controlar un display lcd jhd162a con el pic16f690 pero no logro nada solo muestra la segunda línea en negro alguien con experiencia que le pueda echar un vistazo al código y me ayude..

uso mplab x ide y cx8 compiler
 

Adjuntos

#46
Tienes definidos para la pantalla los pines RC0 a RC5, pero los pines RC0 a RC3 por defecto funcionan en modo análogo porque tienen ADC.

Debes configurar que esos pines sean digital I/O y eso lo haces configurando el registro ANSEL en 0
Agrega ANSEL = 0x00; en el main de tu programa y haz una prueba.
 
#47
Gracias Darkbytes por el tiempo que te tomaste en revisar el código.
Ya probé con tu sugerencia y no funcionó, ahora no aparece nada en el display.

Seguiré intentando:
PHP:
int main()
{
  unsigned int a;
  TRISC =0x00;
  ANSEL =0x00;
  Lcd_Init();
  while(1)
  {
    Lcd_Clear();
    Lcd_Set_Cursor(1,1);
    Lcd_Write_String("HOLA");
    Lcd_Set_Cursor(2,1);
    Lcd_Write_String("MUNDO");
    __delay_ms(2000);
 
Última edición por un moderador:
#48
OK. Se me hace extraño. Haz una prueba con el .hex del código adjunto.
Ahora está configurado para usar el oscilador interno @ 4 MHz.
Ésto es porque tengo dudas sobre los tiempos de la librería trabajando a 10 MHz.

También adjunto la simulación en donde se muestra el valor de los registros.
 

Adjuntos

#49
Sigue sin funcionar.
Ya probé muchas opciones y sigo sin hacerlo funcionar.
Pero seguiré porque creo que no estoy muy lejos de lograrlo con tantas pruebas. Jejeje.
 
Última edición por un moderador:
#50
Ya probé muchas opciones y sigo sin hacerlo funcionar.
Espero que hayas logrado hacer funcionar la pantalla JHD-162A con XC8.
Si aún no lo has logrado, te comento que conseguí un PIC16F690 para probar la librería, y funciona bien.
Compilé el programa del post #48 y funciona físicamente sin ningún problema.
A la primera salió mostrando el texto en pantalla.

También realicé la prueba con el cristal de 10 MHz (FOSC = HS) y funciona correctamente.
 
#52
OK. Pues sí, como te mencioné, funciona sin problemas.
Y tanto me gustó ese PIC, que decidí comprar una tira con 25. :)
Supera en características a otros PIC de gama media y me viene perfecto para un proyecto en desarrollo.

Cuando puedas y si te es posible, adjunta una foto del montaje.
Pero si tienes todo bien conectado, tal cual como en el esquema que adjunté, debería funcionar sin problemas.
Si de plano no logras que funcione, entonces puede estar dañado el PIC o la pantalla.

La pantalla la puedes probar con otro microcontrolador y el PIC lo puedes probar activando todos los puertos.
O sea, puedes hacer que todos los puertos se pongan en 1 y luego en 0 al mismo tiempo durante un segundo.
La lectura de estados la puedes realizar con una punta lógica o con un LED.
Con un LED es más complicado porque lo tienes que estar invirtiendo para comprobar los dos estados.
Al menos con eso puedes comprobar que funcionen bien cómo salidas.
 
#53
darkbytes, probé el pic y el lcd realizando un programa en mikroc y funciona bien, no logro determinar por que no funciona en mplab x, el detalle que me aferre a hacerlo en mplab x por que en mikroc me dan problemas las funciones aritméticas desestabilizando el display, se me ocurre que si me puedes pasar el archivo .hex para cargarlo al pic?

de antemano gracias...
 
#55
darkbytes ya funcionó no entiendo por que, pero primero cargue el hex y funcionó y luego ya pude modificar el código y complilarlo y programarlo y ya funciona.

gracias por tu tiempo....
 
#56
OK. Se me hace extraño. Haz una prueba con el .hex del código adjunto.
Ahora está configurado para usar el oscilador interno @ 4 MHz.
Ésto es porque tengo dudas sobre los tiempos de la librería trabajando a 10 MHz.

También adjunto la simulación en donde se muestra el valor de los registros.
Buenos días para mi desde Buenos Aires.
He visto los circuítos básicos de simulación de LCD y quiero pasar mi experiencia.
Poner a ground los pines D0, D1, D2 y D3 todo bien para la simulación, incluso para algunos LCD con O.S. Hitachi. Pero ciertos clones de dicho LCD hacen locuras.
Me ha pasado que un sistema super probado, al hacer la segunda producción (unos 120), algunos andaban y otros no. Solución: Hay que dejarlos float!.
Saludos
 
#58
La hoja de datos del HD44780 aclara en un apartado casi casi con letras chiquitas que las líneas DB0-DB7 incorporan "pull-up's".
Creo que no son del todo piratas sino son chips de otras marcas que emulan (no del todo por lo que se comenta) al HD44780.

De allí que se recomienda, en caso de conectar, DB0-DB7 sea a Vcc y no a GND.

TriloByte, esos que comentas he escuchado que se quejan por que el mapeo de las direcciones no coincide con el del 44780. :LOL:
 
#59
si he oido de esos famosos LCD marca patito que son nadamas un vidrio y sus patitas

nunca los he usado ni se donde los venden pero si , es cierto lo que dices , en la hoja de datos se ve como se configura, algunas data sheets son moderadamente confusas.
 
#60
Es que los clones son solución de costo/prestación muchas veces. De hecho yo nunca tuve un HD44780 original en mis manos. Siempre clones a veces de marca reconocida, otras no tanto, je.
 

Temas similares

Arriba