Autor Tema: Incompatibilidad LCD.C y proteus???  (Leído 3691 veces)

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

Desconectado j_fernandez

  • PIC12
  • **
  • Mensajes: 89
Incompatibilidad LCD.C y proteus???
« en: 27 de Abril de 2005, 01:30:00 »
Wola !! He realizado un programilla con un PIC 16F873 en el que he utilizado la libreria LCD.c, pues bien, cuando lo simulo con Proteus la segunda linea no la muestra.
Si no me equivovo la libreria es para 16X2 y el dispositivo que he cogido es de 16x2.

Alguien le ha sucedido algo similar o sabe que puede estar pasando??

Gracias y un saludo

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Incompatibilidad LCD.C y proteus???
« Respuesta #1 en: 27 de Abril de 2005, 05:36:00 »
Lo que dices, es correcto. Pega el programa, y lo revisamos.

Un saludo

Desconectado j_fernandez

  • PIC12
  • **
  • Mensajes: 89
RE: Incompatibilidad LCD.C y proteus???
« Respuesta #2 en: 27 de Abril de 2005, 09:59:00 »
Gracias por tu atencion, mira el trozo de codigo es :

      lcd_putc("f"Giño;
      lcd_gotoxy(7,1);
      lcd_putc("MENU"Giño;
      lcd_gotoxy(2,2);
      lcd_putc("CONFIGURACION"Giño;
      delay_ms(1000);


Gracias de nuevo y un saludo

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Incompatibilidad LCD.C y proteus???
« Respuesta #3 en: 27 de Abril de 2005, 12:28:00 »
Oye, pués será una tontería porque lo que has puesto está bien.

Las conexiones a la LCD ¿estaran bien? Deben de estarlo, de lo contrario no te mostraría la primera línea (MENU): 3 bits de control y 4 de datos (total 7 a la LCD)

¿Qué versión de PROTEUS es? por preguntar algo. Pega el programa entero, si no te sale donde está el error.

Desconectado j_fernandez

  • PIC12
  • **
  • Mensajes: 89
RE: Incompatibilidad LCD.C y proteus???
« Respuesta #4 en: 28 de Abril de 2005, 01:23:00 »
Hola, gracias de nuevo. El resto de programa no creo que me afecte a la visualizacion, la version que utilizo es una francesa que encontre en emule "PROTEUS VSM DEVELOPMENT KIT 5.1". Sabes donde podria encontrar la version española?

Gracias y perdona las molestias

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Incompatibilidad LCD.C y proteus???
« Respuesta #5 en: 28 de Abril de 2005, 07:16:00 »
En castellano no hay. Busca en emule una versión superior que sí las hay.

Un saludo

Desconectado telekitor

  • PIC10
  • *
  • Mensajes: 30
RE: Incompatibilidad LCD.C y proteus???
« Respuesta #6 en: 02 de Mayo de 2005, 21:22:00 »
Pues si pues si, estas cosas pasan, porque el controlador del lcd que
utilizes no tiene por que ser igual que el del modelo de simulacion de proteus,
De hecho a veces no es asin. algun lcd 16x1 se tiene que configurar como de
2 lineas para que se encienda todo, y a veces para escribir en esa segunda linea hay que cambiar la direccion de memoria.

solucion puebra a cambiar el modo de display en la inicializacion
(numero lineas en la pantalla) y si se enciende pero solo escribes en la
primera mitad seguro que necesitas poner una direccion de memoria para
la segunda linea antes de seguir escribiendo.

la verdad que no se como es el LCD.C pero a lo mejor es que te cambia la
direccion cuando escribes en la segunda linea, y esa direccion no coincide con
la direccion de la segunda linea del modelo del proteus, eso explicaria
porque no escribe (escribe pero no se ve en el display).


PayasoPayasoPayaso

Desconectado j_fernandez

  • PIC12
  • **
  • Mensajes: 89
RE: Incompatibilidad LCD.C y proteus???
« Respuesta #7 en: 03 de Mayo de 2005, 02:53:00 »
Gracias telekitor, se que tiene q ir por hay por lo q he estado mirando en la configuracion, pero toque lo q toque demomento no lo he arreglado. Mientras me funcione cuando monte el circuito me conformo jejeje.

Gracias de nuevo y un saludo

Desconectado telekitor

  • PIC10
  • *
  • Mensajes: 30
RE: Incompatibilidad LCD.C y proteus???
« Respuesta #8 en: 03 de Mayo de 2005, 21:50:00 »
Rebotadoa ver ver, si quieres saber la direccion del modelo de proteus,
a mi el 16x2 es el LM016L , pincha con el boton derecho (se pone rojo)
le das con el boton izquierdo, tachan!!!!!!! se abre el edit component.
En propiedades avanzadas tienes row1 y row2 pincha en row2 y te dice las
direcciones , en mi caso sale C0-CF por lo que para escribir en la segunda linea
antes de mandar la cadena para la 2 linea tienes que escribir en el lcd la direccion
C0 lo demas es normal.

si la direccion de lcd.c para la segunda linea no es C0 no se vera nada en la segunda linea.

No te preocupes con el lcd real, si tiene otra direccion distinta de la del proteus
la miras en el datasheet y la cambias, funcionara igual.

visto uno vistos todos.

Sonrisa GiganteRebotadoSonrisa Gigante

Desconectado j_fernandez

  • PIC12
  • **
  • Mensajes: 89
RE: Incompatibilidad LCD.C y proteus???
« Respuesta #9 en: 04 de Mayo de 2005, 05:48:00 »
Hola telekitor, gracias por tu ayuda pero no funciona, eso ya lo habia probado.

Al colocarte en la ROW1, si te fijas empieza en la 80 y sin embargo el compilador me lo envia a la 00 y se visualiza perfectamente la primera pantalla.

Para la row 2 he probado a cambiar en la libreria la direccion y a cambiar en la configuracion del display y na de na.

Un saludo y gracias de todas formas

Desconectado telekitor

  • PIC10
  • *
  • Mensajes: 30
RE: Incompatibilidad LCD.C y proteus???
« Respuesta #10 en: 05 de Mayo de 2005, 13:23:00 »
a ver segun he visto por ahi la segunda linea empieza en 40 hexadecimal
te mando un link sobre lcds
http://home.iae.nl/users/pouweha/lcd/lcd.shtml
el punto 2.3.2  para 2 lineas

AngelitoAngelito

Desconectado j_fernandez

  • PIC12
  • **
  • Mensajes: 89
RE: Incompatibilidad LCD.C y proteus???
« Respuesta #11 en: 06 de Mayo de 2005, 02:30:00 »
Una pagina muy interesante telekitor, la he estado ojeando y efectivamente concuerda con los datasheets del lcd. El problema lo solucioné ayer por la tarde, no era problema de software, sino que al montar en proteus puse una resistencia entre la linea que une el pic con lcd (linea de enable) tal y como habia visto en un libro, y al quitarla (por xiripa) funciono correctamente.

De todas formas tal y como tu dices el pic manda para la primera linea la 0x00 y para la segunda 0x40 mientras que en el LCD de proteus son la 0x80 y la 0xC0 (raro no?), pero mientras funcione no le buscare mas explicaciones.

Gracias a todos por vuestra ayuda.

Un saludo

Desconectado telekitor

  • PIC10
  • *
  • Mensajes: 30
RE: Incompatibilidad LCD.C y proteus???
« Respuesta #12 en: 06 de Mayo de 2005, 13:03:00 »
probablemente esas direcciones se correspondan con algun
modelo de lcd del que se ha sacado el modelo para el proteus,
En la pagina que te di http://home.iae.nl/users/pouweha/lcd/lcd.shtml
dice algo de esas direcciones y da unos fabricantes, (nota1 2x16)

According to their datasheets DDRAM addresses 0x80..0x8F + 0xC0..0xCF are used.

bueno solucionado entonces Giño

RebotadoRebotadoRebotadolocoFumadorEnfurruñado

Desconectado Meybel

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 60
RE: Incompatibilidad LCD.C y proteus???
« Respuesta #13 en: 07 de Mayo de 2005, 04:34:00 »
Realmente las direcciones de la DDRAM para las posiciones iniciales de la línea 1 y 2 de la LCD es 0x00 y 0x40 ya que constan solamente de 7 bits. Lo que ocurre es que PROTEUS utiliza el dato completo de 8 bits que se envía al LCD por el bus de datos y el bit más alto para ese comando vale “1” y por eso cambia aparentemente. Me explico con un ejemplo:

El comando para situarse en una posición determinada de la DDRAM según el fabricante es:

“1 A6 A5 A4   A3 A2 A1 A0” , siendo Ax la dirección donde se quiere situar.

Así por ejemplo para situarlo en la primera posición de la segunda línea que según el fabricante es la dirección 0x40 resulta
A6 A5 A4    A3 A2 A1 A0 = 100  000

Añadiendo el “1” del bit más alto habría que enviar por el bus de datos lo siguiente:

1 A6 A5 A4 A3 A2 A1 A0 = 1100  0000 = 0xC0.

Y ahí está la confusión. PROTEUS, añade el “1” del bit más alto del comando que se envía por el bus de datos como integrante de la dirección.

Espero que se me haya entendido, aunque debo advertir, que esta conclusión la he deducido analizando el caso, realmente no lo he visto escrito por ningún sitio, por tanto puede ser discutible, aunque pienso que este razonamiento es impecable.

Saludos.

Desconectado j_fernandez

  • PIC12
  • **
  • Mensajes: 89
RE: Incompatibilidad LCD.C y proteus???
« Respuesta #14 en: 09 de Mayo de 2005, 02:43:00 »
Muy muy buena explicacion Meybel !! Ha quedado muy claro, no tenia ni idea de porque podia ser. Eres una makina!!!!

Gracias a todos por colaborar, me aveis ayudado mucho.

Un saludo