Hola a Todos
Viendo el programa principal veo que cuando comienza haces un GOTO PRINCIPAL y luego de hay saltas a CALL INICIO
en la subrutina inicio configuras los puertos y demas dentro de la BANCO 1 y terminas con return sin volver antes al BANCO 0 al salir ?
siguiendo el programa veo que si vuelves al BANCO 0 pero dentro de la rutina siguiente LEDS ? creo que tendrias que modificar esto porque estando en el banco1 no podras volver del llamado
.
Tambien vi que cuando inicializas el lcd no tienes una demora antes de comenzar con los comandos ,tendrias que esperar un tiempo antes de comenzar con esto ya que la velocidad de inicio del microcontrolador es mayor a la del lcd y puede que no este listo para recivir comandos de forma inmediata.
principal
call Inicio ; Inicia todo lo necesario
Lazo
goto Leds ; Recibe la informacion
;Inicialización del puerto A:
INICIO
CLRF STATUS ;Selecciona Banco 0
CLRF PORTB ;Inicializa latches de datos de PORTB
MOVLW 0x41 ;Selecciona el Fosc/8,canal 0 del adc, enciende el conversor
MOVWF ADCON0
BSF STATUS, RP0 ; Se selecciona el banco 1
BCF STATUS, RP1
MOVLW 0x01 ;Selecciona todos los pines analogicos y el resultado se guerda en ADRESL
MOVWF ADCON1
MOVLW 0xFF ;configura todas patitas del puerto A como entradas
MOVWF TRISA
MOVLW 0x00 ;configura todas patitas de puerto B
MOVWF TRISB ;como salidas digitales
MOVWF TRISC ;como salidas digitales
BCF STATUS,RP0
BCF STATUS,RP1
RETURN
;-----------------------------------------------------------------------------------
;Una vez inicializado el puerto
Leds
call inicialcd ;CONFIGURA EL LCD(INICIALIZA EL LCD)
Saludos!!