Autor Tema: Ayuda con LCD 2x16 YJ-162A !!  (Leído 2870 veces)

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

Desconectado Peliparado

  • PIC10
  • *
  • Mensajes: 14
Ayuda con LCD 2x16 YJ-162A !!
« en: 05 de Abril de 2005, 14:24:00 »
Holas, los saludo !!!

Pues resulta que me he comprado un LCD modelo YJ-162A Backlight de 2x16. Primero que todo en internet "no existe" este display, nadie tiene datasheets, ni siquiera se sabe quien es el que lo fabrica, despues de 1 semana de busqueda de info, nada de nada.

Me dicen que siga los estandares de HITACHI 44780, y bueno, programo mis rutinas de inicio del LCD, otras cuantas mas (respetando los tiempos) y lo pongo a correr y este es el problema:

1. Cuando muestro numeros, solo me muestra los impares
2. Cuando muestro letras, solo me muestra las impares.

No entiendo que puede estar pasando, por favor, ayudenme, me voy a volver loco con este LCD, les voy mostrar como manejo mi LCD "ojo a los comentarios" :


; GENERA EL PULSO E

LCD_E     E_POSITIVO
                NOP
                E_NEGATIVO
   CALL E40US
                RETURN      

; aqui me dicen que espere 40 micro seg, porque segun una pagina de x-robotics, los LCDs baratos (el mio supongo) requieren que se mantenga E en 0 durante este tiempo.

; ESPERAR AL LCD OCUPADO  
                             
LCD_BUSY  RS_NEGATIVO
   RW_POSITIVO
                BSF STATUS,5      
                MOVLW 0xFF  
                MOVWF TRISD          
                BCF STATUS,5  
   E_POSITIVO  
   NOP                          
L_BUSY    BTFSC PORTD,7          
                GOTO L_BUSY  
   E_NEGATIVO  
   CALL E40US
   BSF STATUS,5        
                CLRF TRISD          
                BCF STATUS,5        
   RW_NEGATIVO
                RETURN        

; entiendo que RD7 es para el flag busy, pero no entiendo porque se genera un pulso E en este paso de averiguar si esta o no ocupado.

; ENVIO DE COMANDOS
                             
LCD_REG  MOVWF WSAVE
   CALL LCD_BUSY
   MOVF WSAVE,0
   RS_NEGATIVO
                MOVWF PORTD  
   CALL LCD_BUSY              
                GOTO LCD_E    
   RETURN      

; aqui todo OK, aunque uno nunca sabe que pueda estar malo.

; ENVIO DE DATOS A MOSTRAR
                             
LCD_DATOS MOVWF WSAVE
     CALL LCD_BUSY
   MOVF WSAVE,0
   RS_POSITIVO
   RW_NEGATIVO
   MOVWF PORTD  
   CALL LCD_BUSY  
   RS_POSITIVO  
   GOTO LCD_E  
   RETURN

; aqui tambien, todo bien, aunque uno nunca sabe ...

; EL PELIGROSO - EL INICIO DEL LCD
                             
LCD_INI   CALL E5MS
   CALL E5MS
   CALL E5MS
   RS_NEGATIVO
   RW_NEGATIVO
   MOVLW b"00111001"
                CALL LCD_REG    
     CALL E5MS
   RS_NEGATIVO
   RW_NEGATIVO      
                MOVLW b"00111001"
                CALL LCD_REG    
   CALL E160US
   RS_NEGATIVO
   RW_NEGATIVO  
                MOVLW b"00111001"
                CALL LCD_REG        
   RS_NEGATIVO
   RW_NEGATIVO
   CALL LCD_BUSY
      MOVLW b"00000001"    
                CALL LCD_REG
   RS_NEGATIVO
   RW_NEGATIVO
   CALL LCD_BUSY
      MOVLW b"00001111"    
                CALL LCD_REG
   CALL LCD_BUSY
   RS_NEGATIVO
   RW_NEGATIVO  
                MOVLW b"00000110"
                CALL LCD_REG
   CALL LCD_BUSY      
   RS_NEGATIVO
   RW_NEGATIVO  
                MOVLW b"00010100"
                CALL LCD_REG
   CALL LCD_BUSY          
      RETURN                  

; aqui segui estrictamente los tiempos del datasheet de Hitachi, pero no estoy muy seguro de su orden (quien va primero). Y de nuevo, me quedo en las mismas, cualquier cosa puede estar mal.

Esto es todo, por favor si alguien encuenta un error, que me ayude, por favor.
Mi PIC es el 16F877A, uso el puerto D para los datos y el C (0,1,2) para el control.

Solo necesito saber si estas rutinas estan bien elaboradas.

Desconectado Meybel

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 60
RE: Ayuda con LCD 2x16 YJ-162A !!
« Respuesta #1 en: 05 de Abril de 2005, 14:40:00 »
Esto tiene la pinta de tener la patilla DB0 del LCD SIN conectar al micro. ¿No es verdad?.