Autor Tema: LCD NOKIA 3310 Caracteres invertidos  (Leído 1292 veces)

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

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
LCD NOKIA 3310 Caracteres invertidos
« en: 12 de Marzo de 2012, 12:00:56 »
Hola, estoy enviando unos caracteres a mi lcd pero estos me salen en negativo, o sea donde deberia habe un punto esta en blanco, les paso el cod.
Código: [Seleccionar]
INIT_LCD
       BCF    LCD_RST     ; Activa reset a nivel bajo
       MOVLW  D'50'
       CALL   DELAY         ; Retardo en ms, que se carga en W.
       BSF    LCD_RST     ; Activa reset a nivel alto

SET_LCD
       MOVLW  D'1'
       CALL   DELAY              ; Retardo en ms, que se carga en W.
   movlw   0x21          ; Chip enable solamente.
   call    TX_SPI_C
   movlw   0xC8          ; Vop
   call    TX_SPI_C
   movlw   0x06          ; Set Temp coefficent.
   call    TX_SPI_C
       movlw   0x13          ; LCD bias mode 1:48.
       call    TX_SPI_C
       movlw   0x20               ; Horizontal mode, normal set command.
       call    TX_SPI_C     
       movlw   0x08          ; Mod control all dots on 9
       call    TX_SPI_C     
       MOVLW   D'10'
       CALL    DELAY              ; Retardo en ms, que se carga en W.
       movlw   0x0C          ; Mod control normal.
       CALL    TX_SPI_C        ; Transmicion por SPI de comandos
       MOVLW   D'50'
       CALL    DELAY              ; Retardo en ms, que se carga en W.
       CALL    CLEAR_LCD
   RETLW   0X00

Y si le envió el comando de invertir el video me pone  la pantalla en negro donde no hay caracteres y no me sirve así.
Hay alguna forma de que los caracteres se vean normales así como la pantalla.
Saludos

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Re: LCD NOKIA 3310 Caracteres invertidos
« Respuesta #1 en: 14 de Marzo de 2012, 11:05:50 »
Hola tenia un problema con mi lectura de tabla:

Código: [Seleccionar]
SEND_COMANDO_9
movlw UPPER tabla1
movwf MsnAddressUpper
movlw HIGH tabla1
movwf MsnAddressHigh
movlw LOW tabla1
movwf MsnAddressLow

CARGO_COMANDO2
movff MsnAddressUpper,TBLPTRU
movff MsnAddressHigh,TBLPTRH
movff MsnAddressLow,TBLPTRL

CARGO_CARACTER2
TBLRD*+                         ; Leo la tabla
movff TABLAT,TEMP_CARACTER    ; Cargo el dato
movf TEMP_CARACTER ,W        ; Cargo W para comparar
    xorlw   0xfd
    BTFSC   STATUS,Z
    GOTO    COMANDO_FIN
CALL TX_SPI_D         ; y lo envio
TBLRD*+                         ; Leo la tabla nuevamente para saltearme un dato
movff TABLAT,TEMP_CARACTER    ; Cargo el dato
    CLRF    TEMP_CARACTER           ; y lo borro
bra     CARGO_CARACTER2         ; Vuelvo a empezar

COMANDO_FIN
RETLW   0X00                    ; Vuelve al programa principal.


En esta parte:

Código: [Seleccionar]
    movf    TEMP_CARACTER ,W        ; Cargo W para comparar
    xorlw    0xfd
    BTFSC   STATUS,Z


Aca depende del valor de test que le ponia, 0xFD, me modificaba TEMP_CARACTER, ya que usaba XORWF.
Saludos


 

anything