El programa lo estoy haciendo en ensamblador y esto es lo que he programado del LCD basandome en el data sheet del ra8835 el cual no lo puedo poner aqui por que no me lo permiten, pero aqui dejo el programa.
__CONFIG _WDT_OFF&_PWRTE_ON&_XT_OSC&_LVP_OFF&_CP_OFF
;JUNXLAN_HUANG LCD MODULE JM320240E-5
LIST p=16F877A
INCLUDE <P16F877A.INC>
#DEFINE PAGE0 BCF H'03',5;STATUS bit 5
#DEFINE PAGE1 BSF H'03',5;STATUS bit 5
INTCON EQU H'0B' ;page 0, 1, 2, 3
TEMPA EQU H'25' ; temporal store
CLKCNT EQU H'26' ; counter for PAUSE val
cont1 EQU 0x44
cont2 EQU 0x45
ORG 0X20
BCF STATUS,RP0 ; ACCESO AL BANCO 0 PARA LIMPIAR INFORMACION DE PUERTOS
BCF STATUS,RP1
CLRF PORTA
CLRF PORTB
MOVLW B'00001111'
MOVWF PORTC
CLRF PORTD
CLRF PORTE
PAGE1 ; ACCESO AL BANCO 1 PARA CONFIGURACION
MOVLW B'00001000'
MOVWF TRISA
MOVLW B'11110000' ;CD /CE /RD /WR COMO PUERTO DE COMANDOS SALIDA DE DATOS
MOVWF TRISC
MOVLW B'00000000' ;PUERTO D COMO BUS DE SALIDA DE DATOS
MOVWF TRISD
PAGE0 ;BANCO 0 PARA MANIPULACION DE PUERTOS
PANTALLA1
CALL SETUP
CALL RETARDO
CALL ESCRIBIR_PANTALLA
MOVLW 0X20 ; ' '
CALL ENVIAR_DP
MOVLW 0X52 ; 'R'
CALL ENVIAR_DP
MOVLW 0X41 ; 'A'
CALL ENVIAR_DP
MOVLW 0X49 ; 'I'
CALL ENVIAR_DP
MOVLW 0X4F ; 'O'
CALL ENVIAR_DP
GOTO PANTALLA1
;******************************escribir en la pantalla de memoria********
ESCRIBIR_PANTALLA ;PUEDEN ESCRIBIRSE HASTA 16 PARAMETROS
MOVLW 0X42
CALL ENVIAR_COMANDO
RETURN
;******************conjunto de la dirección del movimiento del cursor************************
CURSOR_AUTOMATICO
MOVLW 0X4C ; MUEVE CURSOR HACIA LA IZQUIERDA AUTOMATICAMENTE
CALL ENVIAR_COMANDO
; 0X4C MOVER CURSOR A LA DERECHA
; 0X4E MOVER CURSOR HACIA ARRIBA
RETURN ; 0X4F MOVER CURSOR HACIA ABAJO
;***********habilitar y deshabilitar la visualización y la pantalla parpadea*****************
PANTALLA_ON
MOVLW 0X59 ;PANTALLA ENCENDIDA
CALL ENVIAR_COMANDO
RETURN
;***************************establecer el tipo de cursor*************************************
TIPO_DE_CURSOR
MOVLW 0X5D ;ESTABLECE TIPO DE CURSOR
CALL ENVIAR_COMANDO
MOVLW 0X04 ;TAMAÑO DE CURSOR EN X 5 PIXELES
CALL ENVIAR_DP
MOVLW 0X86 ;TAMAÑO DE CURSOR EN Y 7 PIXELES
CALL ENVIAR_DP ;CURSOR BLOQUEADO
RETURN
;******************************establecer la dirección del cursor*******************************
DIRECCION_CURSOR
MOVLW 0X46
CALL ENVIAR_COMANDO
MOVLW 0X00 ; ESCRIBIR DIRECCION DE MEMORIA DE DISPLAY EN 0X00
CALL ENVIAR_DP
MOVLW 0X00 ;PARAMETRO 2
CALL ENVIAR_DP
RETURN
PANTALLA_OFF
MOVLW 0X58 ;PANTALLA APAGADA
CALL ENVIAR_COMANDO
MOVLW 0X56 ;BLOQUE PANTALLA 1 2Hz, BLOEQUE PANTALLA 2 ON
CALL ENVIAR_DP ;BLOQUE PANTALLA 3 ON
RETURN
;********************Establezca el formato de visualización de superposición********************
FORMATO_VISUALIZACION
MOVLW 0X5B
CALL ENVIAR_COMANDO
MOVLW 0X01 ; VISUALIZACION TIPO TEXTO TRES CAPAS DE COMPOSICION
CALL ENVIAR_DP
RETURN
;******************conjunto de desplazamiento horizontal***************************************
DESPLAZAMIENTO_HORIZONTAL
MOVLW 0X5A
CALL ENVIAR_COMANDO
MOVLW 0X00 ;PARAMETRO 1
CALL ENVIAR_DP ;VARIACION HORIZONTAL DE 0
RETURN
;************conjunto de visualización regiones dirección de inicio y la pantalla*********
VISUALIZAR_INICIO_PANTALLA
MOVLW 0X44 ;VISUALIZACION DE LA DIRECCION DE INICIO DE PANTALLA
CALL ENVIAR_COMANDO
MOVLW 0X00 ; PARAMETRO 1
CALL ENVIAR_DP ;DIRECCION DE INICIO DE LA PRIMERA PANTALLA
MOVLW 0X00 ; PARAMETRO 2
CALL ENVIAR_DP ;COLOCAR EN 0000H
MOVLW 0XF0 ; PARAMETRO 3
CALL ENVIAR_DP ;240 LINEAS EN EL PRIMER BLOQUE
MOVLW 0X80 ; PARAMETRO 4
CALL ENVIAR_DP ;DIRECCION DE INICIO DE LA SEGUNDA PANTALLA
MOVLW 0X25 ; PARAMETRO 5
CALL ENVIAR_DP ;COLOCAR EN 1000H
MOVLW 0XF0 ; PARAMETRO 6
CALL ENVIAR_DP ;240 LINEAS EN LA SEGUNDA PANTALLA
MOVLW 0X00 ; PARAMETRO 7
CALL ENVIAR_DP ;DIRECCION DE INICIO DE LA TERCERA PANTALLA
MOVLW 0X4B ; PARAMETRO 8
CALL ENVIAR_DP ;COLOCAR 4B00H
MOVLW 0X00 ; PARAMETRO 9
CALL ENVIAR_DP ;DIRECCION DE INICIO DE LA CUARTA PANTALLA
MOVLW 0X00 ; PARAMETRO 10
CALL ENVIAR_DP ;COLOCAR 0000H
RETURN
INICIALIZA_LCD
MOVLW 0X40 ;CARGAMOS CON 40 AL PUERTO D PARA INICIALIZAR LCD
CALL ENVIAR_COMANDO
MOVLW 0X30 ;PARAMETRO 1,(0 0 IV 1 W/S M2 M1 M0) CG ROM INTERNA, CG RAM 32 CARACTERES MAXIMO, CONTROLADOR PARA DOBLE PANEL
CALL ENVIAR_DP ;SALA SUPERIOR EN LÍNEA DE CORRECCIÓN, UN PANEL,CARACTER DE 8 PIXELES
;D6 CORRECCION, CG ROM INTERNA
MOVLW 0X87 ; PARAMETRO 2
CALL ENVIAR_DP ;FX 8 PIXELES DOBLE PANEL
MOVLW 0X07 ; PARAMETRO 3
CALL ENVIAR_DP ;FY 16 PIXELES
MOVLW 0X27 ; PARAMETRO 4
CALL ENVIAR_DP ;39 CARACTERES POR LINEA 312 PIXELES TOTALES
MOVLW 0X2F ;PARAMETRO 5
CALL ENVIAR_DP ;47 DIRECCIONES POR LINEA
MOVLW 0XEF ;PARAMETRO 6
CALL ENVIAR_DP ;239 LINEAS
MOVLW 0X28 ;PARAMETRO 7
CALL ENVIAR_DP ;TAMAÑO HORIZONTAL DE 40 DIRECCIONES
MOVLW 0X00 ;PARAMETRO 8
CALL ENVIAR_DP
RETURN
ENVIAR_DP
MOVWF TEMPA ;MUEVE LA PALABRA DE COMANDO A TEMPA
CALL CHECK3 ;ESPERA PARA VER SI EL COMANDO SER PROCESADO
MOVF TEMPA,W ;MUEVE TEMPA A W
MOVWF PORTD ;SALIDA DE DATOS AL PUERTO D
NOP
MOVLW B'00000010' ;SE CONFIGURA PARA PODER ENVIAR PARAMETROS DE CONFIGURACION
MOVWF PORTC ;ENVIO DE DATOS
NOP
MOVLW B'00001111'
MOVWF PORTC
RETURN
ENVIAR_COMANDO
MOVWF TEMPA ;MUEVE LA PALABRA DE COMANDO A TEMPA
CALL CHECK3 ;ESPERA PARA VER SI EL COMANDO SER PROCESADO
MOVF TEMPA,W ;MUEVE TEMPA A W
MOVWF PORTD ;SALIDA DE DATOS AL PUERTO D
NOP
MOVLW B'00001010' ;CD H /CE L /RD H /WR L SE ACTIVA MODO COMANDO
MOVWF PORTC
NOP
MOVLW B'00001111'
MOVWF PORTC
RETURN
CHECK3 PAGE1 ; CONFIGURACION DEL PUERTO D PARA RECIBIR DATOS
MOVLW B'11111111' ;
MOVWF TRISD ; TODOS LOS PINES DEL PUERTO D COMO ENTRADA DE DATOS
PAGE0 ; BANCO 0 PARA MANIPULACION DE PUERTOS
MOVLW B'00000001' ; 0 0 0 1 ACTIVA LECTURA DE DE BANDERA
MOVWF PORTC ; WR ALTO
NOP
MOVLW B'00001111'
MOVWF PORTC
CK3 BTFSS PORTD,6 ; EL BIT 6 DEL PUERTO D TIENE 1?
GOTO CK3 ; no
PAGE1 ; BANCO 1 CONFIGURACION DE PUERTOS
CLRF TRISD ; SE CONFIGURA EL PUERTO D COMO SALIDA DE DATOS
PAGE0 ; BANCO 0 PARA MANIPULACION DE PUERTOS
RETURN
RETARDO MOVLW 0XF0
MOVWF cont1
Rep1 MOVLW 0XF0
MOVWF cont2
Rep2 DECFSZ cont2,1
GOTO Rep2
DECFSZ cont1,1
GOTO Rep1
RETURN
SETUP
MOVLW B'00001111'
MOVWF PORTC
CALL INICIALIZA_LCD ;SISTEM SET
CALL VISUALIZAR_INICIO_PANTALLA ;SCROLL
CALL DESPLAZAMIENTO_HORIZONTAL ;HDOT SCR
CALL FORMATO_VISUALIZACION ;OVLAY
CALL PANTALLA_OFF ;DISPLAY OFF
CALL DIRECCION_CURSOR ;CSRW
CALL TIPO_DE_CURSOR ;CSRFORM
CALL PANTALLA_ON ;DISPLAY ON
CALL CURSOR_AUTOMATICO ;CSR DIR
RETURN
END