Amigos necesito de su colaboracion. Estoy realizando un ejercicio con un LCD y un Pic16f877a y no se me desplega en el LCD nada de nada. Ya que lo estoy simulando en Proteus. Les comento que estoy utilizando el PuertoD del pic que va conectado al bus del LCD, los pines REO y RE1 como salidas de control de E y RS respectivamente. He tratado de diversas formas y no me funciona. Les dejo el Programa en ASM para que porfa me ayuden, ya he gastado mucho tiempo buscando el problema.
INCLUDE "P16F877A.INC"
__CONFIG _XT_OSC & _CP_OFF & _PWRTE_ON & _WDT_OFF & _BODEN_ON & _WRT_OFF & _LVP_OFF & _CPD_OFF & _DEBUG_OFF
REG0 EQU H'22'
CONTA EQU H'23'
RESET ORG H'00'
GOTO INICIO
ORG H'05'
;****************************
TABLA_1 ADDWF PCL,1
RETLW " "
RETLW "S"
RETLW "A"
RETLW "M"
RETLW "U"
RETLW "E"
RETLW "L"
RETLW " "
RETLW "D"
RETLW "A"
RETLW "V"
RETLW "I"
RETLW "D"
;***********************************************************************
PANTALLAZO1 CLRF CONTA
OTRA MOVF CONTA,0
CALL TABLA_1
CALL DATO
CALL RET_LCD
INCF CONTA,1 ;SIGUE CON LA TABLA_1
MOVLW D'13'
XORWF CONTA,0
BTFSS STATUS,2 ;TERMINO MENSAJE?
GOTO OTRA ;NO
RETURN ;SI
;***********************************************************************
COMANDO MOVWF PORTD ;COLOCA EL COMANDO EN EL BUS DE 8BITS
BCF PORTE,1 ;RS=0 --> ES UN COMANDO
GOTO HABILITADOR
DATO MOVWF PORTD ;COLOCA EL CARACTER DEL MENSAJE EN EL BUS DE 8BITS
BSF PORTE,1 ;RS=1 --> ES DATO DEL MENSAJE
HABILITADOR BSF PORTE,0 ;E=1 ---> LCD HABILITADO
CALL RET_LCD
BCF PORTE,0 ;E=0 ---> LCD DESABILITADO
RETURN
;***********************************************************************
INI_LCD MOVLW B'00000001' ;LIMPIAR PANTALLA LCD Y REGRESA CURSOR AL INICIO
CALL COMANDO ;
RETURN
;***********************************************************************
RET_LCD MOVLW H'FF' ;RETARDO DEL LCD
MOVWF REG0 ;
LOOP DECFSZ REG0,1 ;
GOTO LOOP ;
RETURN
;***********************************************************************
INICIO CLRF PORTD
CLRF PORTE
BANKSEL TRISD ;SELECCIONAMOS BANCO 1
CLRF TRISD ;CONFIGURAMOS PUERTOD COMO SALIDA
CLRF TRISE ;CONFIGURAMOS PUERTOE COMO SALIDA
BANKSEL PORTD ;;SELECCIONAMOS BANCO O
;**************** CONFIGURACION DE TRABAJO DEL LCD *******************
LCD_CONFIG MOVLW B'00111000' ;INTERFACE 8 BITS, 4 LINEAS
CALL COMANDO
MOVLW B'00000110' ;INCREMENTA CURSOR, MENSAJE FIJO
CALL COMANDO
MOVLW B'00001101' ;DISPLAY ON, CURSOR ON Y PARPADEO CURSOR ON
CALL COMANDO
;***********************************************************************
CALL INI_LCD
CALL PANTALLAZO1
ACA NOP
GOTO ACA
;*******************************
END