mensaje1 dt "ABCDEFGHIJKLM", 0xfd dt 0x3E,0x41,0x49,0x55,0x5E,0x00 ; @ 0x40
dt 0x7E,0x11,0x11,0x11,0x7E,0x00 ; A 0x41
dt 0x7F,0x49,0x49,0x49,0x36,0x00 ; B 0x42
dt 0x3E,0x41,0x41,0x41,0x22,0x00 ; C 0x43
dt 0x7F,0x41,0x41,0x22,0x1C,0x00 ; D 0x44
dt 0x7F,0x49,0x49,0x49,0x41,0x00 ; E 0x45
dt 0x7F,0x09,0x09,0x09,0x01,0x00 ; F 0x46
dt 0x3E,0x41,0x49,0x49,0x3A,0x00 ; G 0x47
dt 0x7F,0x08,0x08,0x08,0x7F,0x00 ; H 0x48
dt 0x00,0x41,0x7F,0x41,0x00,0x00 ; I 0x49
dt 0x20,0x41,0x41,0x3F,0x00,0x00 ; J 0x4A
dt 0x7F,0x08,0x14,0x22,0x41,0x00 ; K 0x4B
dt 0x7F,0x40,0x40,0x40,0x40,0x00 ; L 0x4C
dt 0x7F,0x02,0x0C,0x02,0x7F,0x00 ; M 0x4D
dt 0x7F,0x04,0x08,0x10,0x7F,0x00 ; N 0x4E
dt 0x3E,0x41,0x41,0x41,0x3E,0x00 ; O 0x4F
BUSCO_CARACTER
MOVLW 0X07 ; REPETICIONES DE BUSQUEDA DE CARACTER
MOVWF TEMP_1
movlw UPPER ASCII_CODES
movwf MsnAddressUpper_ASCII
movlw HIGH ASCII_CODES
movwf MsnAddressHigh_ASCII
movlw LOW ASCII_CODES
movwf MsnAddressLow_ASCII
movff MsnAddressUpper_ASCII,TBLPTRU
movff MsnAddressHigh_ASCII,TBLPTRH
movff MsnAddressLow_ASCII,TBLPTRL
DIRECCIONO
movlw 0X04 ; Aca coloco la direccion en donde esta el caracter en la tabla
ADDWF TBLPTRH,F ; Direccion alta de principio de frase
movlw 0X74 ; Aca coloco la direccion en donde esta el caracter en la tabla
ADDWF TBLPTRL,F ; Direccion baja de principio de frase
BUSCO
tblrd *+ ; Incrementa puntero de tabla antes de su lectura
NOP
movff TABLAT,TEMP_CARACTER
MOVF TEMP_CARACTER,W
DCFSNZ TEMP_1 ; Decremento el contador asi obtengo el caracter entero.
GOTO COMANDO_FIN ; Si termino mi cod. termina de buscar.
CALL TX_SPI_D ; Lo envio al LCD
TBLRD *+ ; Leo la tabla nuevamente para saltearme un dato
movff TABLAT,TEMP_CARACTER ; Cargo el dato
CLRF TEMP_CARACTER ; y lo borro
GOTO BUSCO ; Vuelvo a buscar
; PC
ASCII_CODES ; HEX DEC
dt 0x00,0x00,0x00,0x00,0x00,0x00 ;SP 0x20 00 00
dt 0x00,0x00,0x2f,0x00,0x00,0x00 ; ! 0x21 0C 12
dt 0x00,0x07,0x00,0x07,0x00,0x00 ; " 0x22 18 24
dt 0x14,0x7f,0x14,0x7f,0x14,0x00 ; # 0x23 24 36
dt 0x24,0x2a,0x7f,0x2a,0x12,0x00 ; $ 0x24 30 48
dt 0xc4,0xc8,0x10,0x26,0x46,0x00 ; % 0x25 3C 60
dt 0x36,0x49,0x55,0x22,0x50,0x00 ; & 0x26 48 72
dt 0x00,0x05,0x03,0x00,0x00,0x00 ; ' 0x27 54 84
dt 0x00,0x1c,0x22,0x41,0x00,0x00 ; ( 0x28 60 96
dt 0x00,0x41,0x22,0x1C,0x00,0x00 ; ) 0x29 6C 108