Hola a todos
Les pido ayuda con un LCD q no logro escriba algo, segun el datasheet las asignaciones de memoria son diferentes, primero les pongo los codigos q usa el proteus en sus lcd
Tabla 3. Código de direcciones de caracteres (valores hexadecimales):
Display Position 1 2 3 4 5 6 7 8
DD RAM Address 80 81 82 83 84 85 86 87
DD RAM Address C0 C1 C2 C3 C4 C5 C6 C7
y esto me dice el datasheet del LCD WinStar16x2
Código de direcciones de caracteres (valores hexadecimales):
Display Position 1 2 3 4
DD RAM Address 00 01 02 03
DD RAM Address 40 41 42 43 etc
con cualquiera de las dos tablas de codigos solo se ilumina el lcd y algunas veces muestra cualquier caracter aleatorio conocido o no.
este es el programa q uso con un pic16f877a
'prueba LCD
DEFINE OSC 4
DEFINE LCD_BITS 4
DEFINE LCD_DREG PORTD 'UTILIZAR 4 BITS DEL PUERTO D PARA TX DE DATOS
DEFINE LCD_DBIT 4 'DESDE EL BIT D.4 AL BIT D.7
DEFINE LCD_RSREG PORTC 'SELECCIÓN DEL PUERTO DEL REGISTRO C
DEFINE LCD_RSBIT 6 'EN EL BIT C.6
DEFINE LCD_EREG PORTC 'UTILIZAR EL ENABLE EN EL PUERTO C
DEFINE LCD_EBIT 7 'EN EL BIT C.7
DEFINE LCD_LINES 2 ' Number of lines on LCD
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50
TRISD.4 = 0 ' PUERTOS D COMO SALIDA
TRISD.5 = 0 ' PUERTOS D COMO SALIDA
TRISD.6 = 0 ' PUERTOS D COMO SALIDA
TRISD.7 = 0 ' PUERTOS D COMO SALIDA
PAUSE 500 ' PAUSA DE INICIO DEL LCD
'----------------------------------------------------------------------
inicio:
LCDOUT $FE, 1 ' LIMPIAR LCD
LCDOUT $FE, 1, "AUDIO" ' ESCRIBIR EN LA PRIMERA LÍNEA
LCDOUT $FE, $40, "BIENVENIDO" ' ESCRIBIR EN LA SEGUNDA LÍNEA
PAUSE 1000
goto inicio
end
Repito el lcd solo enciende la luz de la pantalla
que puedo hacer? sera el PIC? gracias
Les pido ayuda con un LCD q no logro escriba algo, segun el datasheet las asignaciones de memoria son diferentes, primero les pongo los codigos q usa el proteus en sus lcd
Tabla 3. Código de direcciones de caracteres (valores hexadecimales):
Display Position 1 2 3 4 5 6 7 8
DD RAM Address 80 81 82 83 84 85 86 87
DD RAM Address C0 C1 C2 C3 C4 C5 C6 C7
y esto me dice el datasheet del LCD WinStar16x2
Código de direcciones de caracteres (valores hexadecimales):
Display Position 1 2 3 4
DD RAM Address 00 01 02 03
DD RAM Address 40 41 42 43 etc
con cualquiera de las dos tablas de codigos solo se ilumina el lcd y algunas veces muestra cualquier caracter aleatorio conocido o no.
este es el programa q uso con un pic16f877a
'prueba LCD
DEFINE OSC 4
DEFINE LCD_BITS 4
DEFINE LCD_DREG PORTD 'UTILIZAR 4 BITS DEL PUERTO D PARA TX DE DATOS
DEFINE LCD_DBIT 4 'DESDE EL BIT D.4 AL BIT D.7
DEFINE LCD_RSREG PORTC 'SELECCIÓN DEL PUERTO DEL REGISTRO C
DEFINE LCD_RSBIT 6 'EN EL BIT C.6
DEFINE LCD_EREG PORTC 'UTILIZAR EL ENABLE EN EL PUERTO C
DEFINE LCD_EBIT 7 'EN EL BIT C.7
DEFINE LCD_LINES 2 ' Number of lines on LCD
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50
TRISD.4 = 0 ' PUERTOS D COMO SALIDA
TRISD.5 = 0 ' PUERTOS D COMO SALIDA
TRISD.6 = 0 ' PUERTOS D COMO SALIDA
TRISD.7 = 0 ' PUERTOS D COMO SALIDA
PAUSE 500 ' PAUSA DE INICIO DEL LCD
'----------------------------------------------------------------------
inicio:
LCDOUT $FE, 1 ' LIMPIAR LCD
LCDOUT $FE, 1, "AUDIO" ' ESCRIBIR EN LA PRIMERA LÍNEA
LCDOUT $FE, $40, "BIENVENIDO" ' ESCRIBIR EN LA SEGUNDA LÍNEA
PAUSE 1000
goto inicio
end
Repito el lcd solo enciende la luz de la pantalla
que puedo hacer? sera el PIC? gracias