Autor Tema: codigo en proton con pic18f452 y lcd20x4  (Leído 3072 veces)

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

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 666
codigo en proton con pic18f452 y lcd20x4
« en: 16 de Noviembre de 2009, 14:37:57 »
Hola buenos dias estoy presentando un problema con un codigo de prueba que elabore para una lcd20x4 usando pic18f452; ojo en la simulacion en proteus me funciona perfecto pero en la realidad no me muestra nada en la lcd. Aca le coloco el codigo para ver si entre todos damos con el fallo porque ya estoy loco y nada que me funciona y ese mismo codigo lo probe pero con un pic16f887a y me corre de maravilla tanto en proteus como en la realidad.

Device = 18F452    'ASIGNA EL TIPO DE PIC A USAR EN ESTE CASO PIC18F452
      XTAL = 20  'INDICA QUE EL CRISTAL ES DE 20 MHZ
      
'...................................CONFIGURACION DE PUERTOS........................................................    
        TRISA=0
        ALL_DIGITAL TRUE
'...................................ASIGNACION DE PINES AL LCD.......................................................
        LCD_DTPIN = PORTA.0
        LCD_RSPIN = PORTE.0
        LCD_ENPIN = PORTA.4
        LCD_LINES = 4    
        LCD_INTERFACE = 4
'..................................DECLARACION DE VARIABLES..........................................................        
      
'....................................BIENVENIDA........................................................................
        Print $fe,1    'borra la lcd                        
        DelayMS 200
        Print $FE,2, "   HARD BY ALEX`S"
      Print $fe,$c0, "    Version 1.2"
      Print $fe,$d4, "Celular=04148244577"
      End

saludos y tambien le subo la simulacion.
Atten.
Alexander Santana.
Barcelona-Venezuela
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE

Desconectado Felixls

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 300
Re: codigo en proton con pic18f452 y lcd20x4
« Respuesta #1 en: 16 de Noviembre de 2009, 16:43:06 »
Me parece que te está faltando
TRISE = 0

Si mirás el datasheet la inicialización del puerto E es así:

CLRF  PORTE  ; Initialize PORTE by
             ; clearing output
             ; data latches
CLRF  LATE   ; Alternate method
             ; to clear output
             ; data latches
MOVLW 0x07   ; Configure A/D
MOVWF ADCON1 ; for digital inputs
MOVLW 0x05   ; Value used to
             ; initialize data
             ; direction
MOVWF TRISE  ; Set RE<0> as inputs
             ; RE<1> as outputs
             ; RE<2> as inputs

Por lo cual AllDigital debería estar antes de la iniciación de la dirección de los datos.

y luego
TRISE = 0
TRISA = 0

saludos.

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 666
Re: codigo en proton con pic18f452 y lcd20x4
« Respuesta #2 en: 16 de Noviembre de 2009, 17:05:09 »
hola buenas tardes, ya logre reolver mi problema era con el pin  r/w de la lcd que yo el mi circuito lo mando a cero logico desde el mismo pic y por fortuna en el pic16f877a el pin que tenia destinado para eso se coloccaba a cero por defecto y en el pic18f452 no pasaba lo mismo lo que me costo mucho verlo porque la placa en la cual tengo mi proyecto la cree hace mucho tiempo y pense que el pin r/w de la lcd la tenia directo a tierra pero no era asi la gobernaba desde un pin del micro que en mi caso era el RA5 lo que hice fue agregar esto al codigo
LOW PORTA.5 y listo codigo 100%  funcionar.

ojo en la simulacion en proteus si tengo el pin R/W directo a tierra pero en la plca fisica no lo tengo de esa manera por eso no veia la cosa yo cuando cree esa placa destine un pin del micro para el control de R/W de la lcd.

Saludo y mil disculpa por mi errrrror pero como siempre de eso se aprende y mucho.
Atten.
Alexander Santana
Barcelona-Venezuela.

Me parece que te está faltando
TRISE = 0

Si mirás el datasheet la inicialización del puerto E es así:

CLRF  PORTE  ; Initialize PORTE by
             ; clearing output
             ; data latches
CLRF  LATE   ; Alternate method
             ; to clear output
             ; data latches
MOVLW 0x07   ; Configure A/D
MOVWF ADCON1 ; for digital inputs
MOVLW 0x05   ; Value used to
             ; initialize data
             ; direction
MOVWF TRISE  ; Set RE<0> as inputs
             ; RE<1> as outputs
             ; RE<2> as inputs

Por lo cual AllDigital debería estar antes de la iniciación de la dirección de los datos.

y luego
TRISE = 0
TRISA = 0

saludos.
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE


 

anything