TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: holk en 30 de Septiembre de 2005, 16:13:00

Título: Proton+ y LCD Optrex DMC-20481
Publicado por: holk en 30 de Septiembre de 2005, 16:13:00
Hola,

  estoy comenzando el desarrollo de un datalogger de temperaturas y como pantalla LCD conseguí unas Optrex DMC-20481, llevan el controlador HD44780 y son de 4x20, pero no consigo hacerlas funcionar, al menos de forma útil, lo más que consigo es sacar caracteres pero "a lo loco", mas o menos aparecen los que yo envío pero se repiten en la misma línea y nunca se paran, quiero decir que de contínuo se están moviendo caracteres entre la misma línea o las siguientes.
Probando con un modulo seiko de 2x20 funciona perfectamente ¿?¿?!!
A continuación pongo el código que estoy usando para hacer pruebas, está en Proton+ 2.1.3


--------------------------------------------------
DEVICE = 16F876
XTAL = 10

" Configuracion del LCD
DECLARE LCD_TYPE 0
DECLARE LCD_DTPIN PORTB.4
DECLARE LCD_ENPIN PORTB.2
DECLARE LCD_RSPIN PORTB.3
DECLARE LCD_INTERFACE 4
DECLARE LCD_LINES 4
DECLARE LCD_COMMANDUS 2000
DECLARE LCD_DATAUS 70
Symbol  LINEA1 $80
Symbol  LINEA2 $C0
Symbol  LINEA3 $94
Symbol  LINEA4 $D4

main:   
      ADCON1 = 7
      TRISA = %01111111

      pause 2000
      LCDOUT $fe,$20
      LCDOUT $fe,$28
      LCDOUT $fe,$0C
      LCDOUT $fe,$06
      delayms 5

start:        PRINT $fe, 1
      delayms 5
      PRINT $fe,LINEA1,"01234567890123456789"
      PRINT $fe,LINEA2,"ABCDEFGHIJKLMNÑOPQRS"
      
      HIGH PORTA.0
      Delayms 250
      LOW PORTA.0
      Delayms 250
      
      Goto start
-------------------------------------------------------------------

Gracias. Un saludo.
Título: RE: Proton+ y LCD Optrex DMC-20481
Publicado por: LordLafebre en 30 de Septiembre de 2005, 23:06:00
Hola:

Yo acabo de probar en proteus y funciona bien...



Aqui esta el Codigo:

Codigo:
DEVICE = 16F876
XTAL = 10

" Configuracion del LCD
DECLARE LCD_TYPE 0
DECLARE LCD_DTPIN PORTB.4
DECLARE LCD_ENPIN PORTB.2
DECLARE LCD_RSPIN PORTB.3
DECLARE LCD_INTERFACE 4
DECLARE LCD_LINES 4

main:

pause 250

start:
      Print at 1,7, "LINEA 1"  
      Print at 2,7, "LINEA 2"  
      Print at 3,7, "LINEA 3"  
      Print at 4,7, "LINEA 4"  
      Delayms 250
goto start
Título: RE: Proton+ y LCD Optrex DMC-20481
Publicado por: holk en 01 de Octubre de 2005, 04:23:00
Hola,

  sip, en proteus yo también lo he probado, tanto tu código como el mío y simulan perfectamente pero en la práctica no ocurre lo mismo, parece que este módulo tiene algo de especial porque con otros (de 2x20) todo se ejecuta correctamente. Por lo que hace tengo la impresión que hay un problema de timing en las señales pero no estoy seguro. Seguiré investigando.

Estas son dos fotos de tu programa en ejecución, cada vez se ejecuta de una manera al igual que el mío.






  Gracias por interesarte. Un saludo.
Título: RE: Proton+ y LCD Optrex DMC-20481
Publicado por: LordLafebre en 01 de Octubre de 2005, 10:15:00
Hola:

Lastima que no te funciono y creo que no te podria ayudar mas, solo tengo aqui conmigo lcds de 16x2 y es extraño porque en la simulacion con proteus funciona bien, debe ser como tu dices algun problema de Timing.... Llorando
Título: RE: Proton+ y LCD Optrex DMC-20481
Publicado por: holk en 01 de Octubre de 2005, 10:41:00
Gracias de todas formas, dicen que la intención es lo que cuenta, yo sigo buscando, mirando por san google he visto que más gente se ha encontrado con problemas al usar este módulo pero aún asi de las soluciones que he localizado ninguna funciona y otros no dicen como solucionaron el asunto, en fin, si consigo hechar a andar esto prometo colgar un manual bien clarito....

Un saludo desde España.
Título: RE: Proton+ y LCD Optrex DMC-20481
Publicado por: holk en 08 de Octubre de 2005, 14:02:00
   Bueno.... después de hacer tropecientas cábalas he dado con el problema, el programa está perfecto, eso estaba claro, y el módulo lcd no tiene nada raro respecto al timing, resulta que el problema es del print del proton+ 2.1.3 a 10MHz, si compilo con un oscilador mas bajo, por ej. 4MHz y lo pruebo -logicamente colocando un cristal correspondiente a esa frecuencia- FUNCIONA!!!  en la última versión del proton parece que funciona bien a cualquier frecuencia según un amigo que lo ha probado.
   Al final voy a desarrollar este proyecto en CCS debido a esta limitación.

   Un saludo a tod@s.