Problema con programa LCD a través de 4 Bit con 16f877A

Perdón, ya se porque no te anda. Tu estás utilizando el 16F877, este PIC tiene entradas analógicas por el puerto A. Cuando se produce un reset, o lo que es lo mismo, cuando se inicializa, los pines del puerto A, están configuradas como entradas analógicas. Antes de inicializar al LCD, debes configurar el PORTA como salidas digitales.

Para ello, consulta el datasheet del PIC. Ahí hay un ejemplo de como configurarlo como salidas digitales.

Espero novedades.
 
Hola Leon, pues no tiene nombre el chip en el LCD porque esta en una pastilla o oblea, te adjunto los pdf's de los 2 lcd's que estoy usando. te adjunto los pdf's para que verifiques sale? en el programa que subí en mi primer post intenté usar la configuración que viene en el pdf, pues simulaba bien en el proteus pero ya sabes el triste final al implementarlo

Saludos y gracias

ericklarva: gracias por tu programa que me has enviado, voy a intentar revisarlo.
 

Adjuntos

  • ts1620_1and35828and26126and20070_319.pdf
    292.4 KB · Visitas: 77
  • aa16202_840.pdf
    48.8 KB · Visitas: 93
Hola Leon pero porque es necesario configurar al puerto A como salidas digitales si no lo estoy usando? pues como sabrás estoy usando solo el puerto D

Estaré atento a tu respuesta
 
Perdón, me fie en el texto explicativo y no en las instrucciones ops: pero eso hiso darme cuenta de cual es el error. El error es que utilizas mal el mismo puerto para conectar todo el LCD. Para poder hacer esto, cuando envías datos al LCD por el puerto D, de la forma que está echa la rutina, modifica todo al puerto D incluyendo los pines conectados R/W, E, RS cuando no deberían ser afectados. Recuerda que esta rutina, fue creada para enviar datos por un puerto y controlar al LCD por otro.

Tienes dos opciones:


  • 1- Modificar la rutina para que, cuando envíes los datos al LCD, no se afecten las 3 líneas R/W, E, RS

    2- Cambiar estas 3 líneas a otro puerto.
 
Hola Leon, gracias por tu respuesta y tu apreciación, pues entonces parece que eso pasa, lo que te quería pedir de favor es que veas el primer programa que puse en el post, tambien lo simula bien el proteus y por lo que he visto al colocar en el proteus un voltimetro y haciendo los retardos extremos para que se vean pues la rutina no modifica esos 2 pines, digo 2 porque r/w está siempre a tierra si puedes ponerlo en ese diseño de proteus que he diseñado te podrás dar cuenta pues es ahí donde no se cual sea el error pues estoy casi seguro que ese codigo no modifica los pines e y rs.
Saludos
 
Yo no utilizo el proteus porque no es fiable en la simulación de PIC por ahora. Muchas cosas que ahí andaban, en la realidad no, y muchas cosas que ahí no andan, en la realidad si. Y por eso, no está más el proteus en mi PC.

Intenta hacer lo siguiente. Deja la librería como estaba (original) y respeta la conexión. Si anda, sabemos que tu LCD funciona bien. Si no anda, prueba con mi librería y también respeta la conexión. Si no anda, tenemos dos opciones:

1- El lcd roto

2- No es compatible con tu lcd.

Ahora no puedo simular paso por paso tu programa porque estoy trabado con el mío (ya hace dos días que estoy trabado)

Si logro salir de mi embrollo y confirmamos que tu LCD anda, vemos como modificar a la librería para que funcione.
 
Ok, Leon, gracias por tu tiempo, voy a probar lo que me has dicho y te aviso.

Que programas me recomiendas para simular bien con pics así como el proteus?

Saludos
 
Estimado Jamo_o:

Resolviste el problema?, la verdad es que tengo el mismo problema que tu, con la única diferencia que estoy programando en C, la verdad es que ya no se que hacer he cambiado todo de todo y no logro hacer que el LCD ande,(en PROTEUS funciona perfecto), pero en la realidad nada solo esa maldita linea negra.........., si encontraste el error por favor dime que es lo que hay que hacer.
Gracias de Antemano
 
como dice leon elec lo mejor para manejar una lcd con 16f877 es utilizar un puerto completo para los datos de la lcd y otros 3 pines de otros puertos para el E, RW y RS. puedes utilizar para estos 3 el Port E.
 
Muchas veces la linea negra se debe a error en la inicializacion.... verifiquen que la rutina de inicializacion del display sea adecuada y tenga los tiempos minimos requeridos...
 
Hola jam0_0, tengo el mismo problema que vos y no se que mas probar. Yo programe en CCS. En proteus todo perfecto pero cuando paso a la realidad no pasa nada. La primera Linea del LCD se queda negra y no hay manera de hacerla andar. Si solucionaste y lo puedes publicar estaria agradecido
 
Hola que tal..

Ps si su simulacion anda en proteus el diseño y la programacion deben estar bien, yo siempre simulo mis circuitos alli y e la realidad andan como debe de ser.

Espero y esten conectando a su LCD el potenciometro de contraste. Este potenciometro debe ser de 10 a 20K y se conecta al pin VEE (VO) de la LCD.
no esta demas agregar una resistencia de 4.7K a RS y a voltaje. Formando un divisor.

Cito estas sugerencias ya que por lo general se nos pasan por alto estos detalles..


Saludos...;)




Perdon no habia visto la primera pagina del post. Asi que el problema puede ser por los retardos en el envio de la informacion a la LCD, me paso varias veces.
Y es mas fiable si utilizas un puerto para el envio de informacion y otro para el control de la LCD, es decir los pines RW, RS, E. deberias probar con este diagrama. a mi me funciona.
 

Adjuntos

  • LCD.jpg
    LCD.jpg
    105.6 KB · Visitas: 130
Última edición:
Hola Jamo o.
Yo estoy haciendo un proyectico y tengo el mismo problema que tu. yo hice el programa en pic c, lo simule en proteus todo perfecto cuando lo monto en la realidad una linea negra en la lcd y no he podido desaparecer. No hace mas nada. Si tienes la solucion te lo agradesco ya no encuentro que hacer..
Es para el montaje de mi tesis. me quedan 4 dias.
Saludos
 
hola al fin pude ingresar de nuevo a mi perfil bueno lo voy a hacer simple por lo general los pic's de gama alta necesitan estabilizar su voltaje y si no lo hacen se paran reseteando esto en los pic's de la gama alta 18, para los 16f tb se debe cumplir lo mismo el problema que tienes es por que el lcd no se inicializa tal vez para probar lo que te digo direcciona un pin de otro puerto y enciende y apaga un led cierto tiempo, si esto sucede el problema esta en la circuiteria entre el lcd y el pic, espero comentarios, lo que el proteus es obiar algunas conexiones logicas como vcc y vss, nos vemos bye.:):):)

osea el proteus obia algunas conexiones, como la alimentacion de los integrados,etc.
 
Última edición:
Atrás
Arriba