al iniciar LCD con 18f2550 solo se ve una linea

Hola, os escribo porque tengo un lcd que al final he conseguido hacer funcionar a excepcion de que solo se ve una linea y es de 16x2.

Cuando intento usar la funcion de cambio de linea para escribir en la linea 2 ya no se ve nada.

Puede que haya inicializado mal?

lo hago asi:

OpenXLCD(FOUR_BIT & LINES_5X7);

Existe alguna directriz mas? Me suena que habia una para indicar el numero de lineas verdad?

Espero que me podais ayudar, gracias
 
Hola, que tal? Tal vez algo de esto te pueda ayudar...
Yo no utilizo pic, utilizo freescale, programando en assembler...
La primer vez que quise utilizar un LCD, me pasaba lo mismo, solo se veía la primer línea y de ahí no mostraba nada mas que eso...
Busque y busque y no encontraba fallo en la rutina (una rutina para controlar LCD que me habían pasado)...
Entonces cansado de renegar, hice mi propia rutina y ahí recién me di cuenta de lo que le faltaba a la otra rutina...
Para mostrar los caracteres en el LCD, utilizo un registro con direccionamiento indexado, el cual apunta a una tabla, donde ahí están escritos los caracteres a mostrar...
Termina de mostrar toda la primer línea, cundo el caracter que carga es cero (no el número cero, ya que este en la tabla ASCII posee el valor 30 en hexadecimal)...
Cuando es cero el caracter cargado, y voy a mostrar la segunda línea, incremento el puntero del registro para que salga del cero, porque sino, quedará siempre en un lazo cerrado.

Código:
DISPLAY_L1      LDA #$80                        ; ME POSICIONO EN EL COMIENZO DE LA PRIMERA LINEA
                JSR W_CTRL                      ; ENVIO COMANDOS AL LCD
                JSR DELAY40U                    ; ESPERO 40 uSeg
                BRA CARACTER
DISPLAY_L2      LDA #$C0                        ; ME POSICIONO EN EL COMIENZO DE LA SEGUNDA LINEA
                JSR W_CTRL                      ; ENVIO COMANDOS AL LCD
                JSR DELAY40U                    ; ESPERO 40 uSeg
CARACTER        LDA T_MSJS,X                    ; ACC->1ER CARAC. DE TABLA T_MSJS, APUNTO CON X
                BEQ OUT
                JSR W_DATA                      ; ESCRIBO CARACTER EN LCD
                INCX                            ; INCR. PUNTERO AL PROX. CAR.
                BRA CARACTER                    ; BUSCO OTRO CARACTER
                OUT INCX ; PARA SALIR DE 0
                RTS ; Retorno
*************************
* MENSAJES *
*************************
T_MSJS
DB ' HOLA!! '
DB 0
DB ' PROBANDO '
DB 0
 
Última edición:
Atrás
Arriba