Saludos Rildho.
No entiendo porq estas utilizando un conversor analogico digital el pic877 tiene interno como 6 entradas analogicas y el pic877 ya trae el protocolo de comunicacion serial.
te voy a colocar un programa completo que convierte y envia datos serial al PC.
cual quier cosa que no entiendas pega un grito.
LIST P=16F877
INCLUDE <P16F877.INC>
__CONFIG(3D39)
;--------------DECLARACION DE REGISTROS-------------
CBLOCK 20H
UNIDAD
DECENA
CENTENA
DECIMAL
AUX1
AUX
DATO1
DATO2
CONT0
CONT1
CONT2
CONT3
CONT4
CONT5
DATO3
PDel0
NUM_L
NUM_H
REG1
BINARIO
RESULT
TEMP
MULTIP
SETPOIN
ENDC
;--------------DELCALRACIONES DE BIT----------------
#DEFINE RS PORTB,1
#DEFINE EN PORTB,2
;-------------------VECTORES-----------------
ORG 0000H
GOTO INICIO
ORG 0004H
BTFSC PIR1,RCIF
GOTO RCRX
RETFIE
TABLA1 MOVLW " "
CALL DATO
MOVLW " "
CALL DATO
MOVLW " "
CALL DATO
MOVLW "C"
CALL DATO
MOVLW "O"
CALL DATO
MOVLW "N"
CALL DATO
MOVLW "T"
CALL DATO
MOVLW "R"
CALL DATO
MOVLW "O"
CALL DATO
MOVLW "L"
CALL DATO
MOVLW " "
CALL DATO
MOVLW "D"
CALL DATO
MOVLW "E"
CALL DATO
MOVLW " "
CALL DATO
MOVLW " "
CALL DATO
MOVLW " "
CALL DATO
RETURN
TABLA2 MOVLW " "
CALL DATO
MOVLW " "
CALL DATO
MOVLW "T"
CALL DATO
MOVLW "E"
CALL DATO
MOVLW "M"
CALL DATO
MOVLW "P"
CALL DATO
MOVLW "E"
CALL DATO
MOVLW "R"
CALL DATO
MOVLW "A"
CALL DATO
MOVLW "T"
CALL DATO
MOVLW "U"
CALL DATO
MOVLW "R"
CALL DATO
MOVLW "A"
CALL DATO
MOVLW " "
CALL DATO
MOVLW " "
CALL DATO
MOVLW " "
CALL DATO
RETURN
INICIO BSF STATUS,RP0
BCF STATUS,RP1
MOVLW 82H ; PUERTO A PARA ENTRADAS ANALOGICAS
MOVWF ADCON1 ; Y PUERTO E PARA E/S DIGITALES
MOVLW 0FFH
MOVWF PORTA ; ENTRADAS ANALOGICAS
MOVLW B'00000000'
MOVWF PORTB
MOVLW B'10000000'
MOVWF PORTC
BANKSEL INTCON
MOVLW B'11010000'
MOVWF INTCON
CALL BANCO1
BSF PIE1,RCIE
MOVLW B'00100100'
MOVWF TXSTA
MOVLW .25 ;9600
MOVWF SPBRG
CALL BANCO0
MOVLW B'10010000'
MOVWF RCSTA
BANKSEL OPTION_REG
MOVLW B'10000000'
MOVWF OPTION_REG
CALL BANCO0
CALL CONFIG
CLRF UNIDAD
CLRF DECENA
CLRF CENTENA
CLRF BINARIO
CLRF RESULT
CLRF PORTB
CLRF SETPOIN
CLRF NUM_L
CLRF NUM_H
CALL LINEA1
CALL TABLA1
CALL LINEA2
CALL TABLA2
CALL R_1SEG
CALL R_1SEG
BSF PORTB,3
CALL LIMPIA
GOTO TEMPERA
TRTX
MOVWF TXREG
CALL BANCO1
BTFSS TXSTA,TRMT
GOTO $-1
CALL BANCO0
RETURN
RCRX BCF PIR1,RCIF
MOVF RCREG,W
CALL TRTX
RETFIE
TEMPERA MOVLW 09H ; CANAL 2
MOVWF ADCON0 ; ADC ON
CALL LINEA1
CALL TABLA2
MOVLW 0CBH
CALL CONTROL
CALL RETARDO
CALL CONVERCION_AD
CALL MOSTRAR_T
BSF PORTB,3
GOTO TEMPERA
CONVERCION_AD
CALL RETARDO_AD
BSF ADCON0,2 ; INICIO DE CONVERSION
CHEQUE BTFSC ADCON0,2
GOTO CHEQUE
TRANSFORMA
CALL BANCO1
MOVF ADRESL,0
CALL BANCO0
MOVWF NUM_L
MOVF ADRESH,0
MOVWF NUM_H
CALL RETARDO
CLRF CENTENA
CLRF DECENA
CLRF UNIDAD
CLRF DECIMAL
CALL BCD
SALI RETURN
MOSTRAR_T
MOVLW 0C5H
CALL CONTROL
MOVLW 30H
ADDWF DECENA,1
MOVF DECENA,0
CALL DATO
MOVF DECENA,0
CALL TRTX
MOVLW 30H
ADDWF UNIDAD,1
MOVF UNIDAD,0
CALL DATO
MOVF UNIDAD,0
CALL TRTX
MOVLW ","
CALL DATO
MOVLW ","
CALL TRTX
MOVLW 30H
ADDWF DECIMAL,1
MOVF DECIMAL,0
CALL DATO
MOVF DECIMAL,0
CALL TRTX
MOVLW " "
CALL DATO
MOVLW " "
CALL TRTX
MOVLW "C"
CALL DATO
MOVLW "C"
CALL TRTX
RETURN
BCDBIN CLRF BINARIO
; MOVF CENTENA,0
; CALL POR_100
; ADDWF BINARIO,1
MOVF DECENA,0
CALL POR_10
ADDWF BINARIO,1
MOVF UNIDAD,0
ADDWF BINARIO,1
MOVF BINARIO,0
MOVWF SETPOIN
RETURN
POR_100 MOVWF TEMP
MOVLW .100
MOVWF MULTIP
GOTO SIGUE
POR_10 MOVWF TEMP
MOVLW .10
MOVWF MULTIP
SIGUE CLRF RESULT
ETIQ MOVF TEMP,0
ADDWF RESULT,1
DECFSZ MULTIP,1
GOTO ETIQ
MOVF RESULT,0
RETURN
;----------CONTROL DE LA LCD 4 BIT------------------
CONTROL BCF RS
GOTO NEXT
DATO BSF RS
NEXT BSF EN
MOVWF AUX
MOVLW 0FH
ANDWF PORTB
MOVF AUX,W
ANDLW 0F0H
IORWF PORTB
CALL R_.75MS
BCF EN
CALL R_.75MS
BSF EN
MOVLW 0FH
ANDWF PORTB
SWAPF AUX,W
ANDLW 0F0H
IORWF PORTB
CALL R_.75MS
BCF EN
CALL R_.75MS
RETURN
;-------------CONF. LCD A 4 BIT---------------------
CONFIG CALL R_16MS
MOVLW 02H
CALL CONTROL
MOVLW 28H
CALL CONTROL
MOVLW 0CH
CALL CONTROL
MOVLW 06H
CALL CONTROL
MOVLW 01H
CALL CONTROL
RETURN
;-----------------LIMPIAR LCD-----------------------
LIMPIA MOVLW 01H
CALL CONTROL
RETURN
;-------------------LINEA 1-------------------------
LINEA1 MOVLW 80H
CALL CONTROL
RETURN
;-------------------LINEA 2-------------------------
LINEA2 MOVLW 0C0H
CALL CONTROL
RETURN
BCD MOVF NUM_L,1
BTFSC STATUS,Z
GOTO CHEK_H
DECF NUM_L,1
GOTO CON_BCD
CHEK_H MOVF NUM_H,1
BTFSS STATUS,Z
GOTO DE_H
RETURN
CON_BCD
INCF DECIMAL,1 ;DECIMAL
MOVLW .4
ADDWF DECIMAL,1
MOVF DECIMAL,0
XORLW 0AH
BTFSS STATUS,2
GOTO BCD
INCF UNIDAD,1 ;UNIDAD
CLRF DECIMAL
MOVF UNIDAD,0
XORLW 0AH
BTFSS STATUS,2
GOTO BCD
INCF DECENA,1 ;DECENA
CLRF UNIDAD
MOVF DECENA,W
XORLW 0AH
BTFSS STATUS,2
GOTO BCD
INCF CENTENA,1 ;CENTENA
CLRF DECENA
MOVF CENTENA,W
XORLW 0AH
BTFSS STATUS,2
GOTO BCD
; MOVLW 0H
; MOVWF CENTENA
MOVLW 09H
MOVWF CENTENA
MOVWF DECENA
MOVWF UNIDAD
MOVWF DECIMAL
GOTO SAL1
DE_H DECF NUM_H
MOVLW 0FFH
MOVWF NUM_L
GOTO BCD
SAL1 RETURN
;--------------RETARDO DE 16MS----------------------
R_16MS MOVLW .15
MOVWF CONT0
PLOOP1 MOVLW .177
MOVWF CONT1
PLOOP2 CLRWDT
PDELL1 GOTO PDELL2
PDELL2 DECFSZ CONT1,1
GOTO PLOOP2
DECFSZ CONT0,1
GOTO PLOOP1
PDELL3 GOTO PDELL4
PDELL4 GOTO PDELL5
PDELL5 CLRWDT
RETURN
;---------------RETARDO DE 16MS----------------------
R_.75MS MOVLW .186
MOVWF CONT2
LOOP0 CLRWDT
DELL1 GOTO DELL2
DELL2 GOTO DELL3
DELL3 DECFSZ CONT2,1
GOTO LOOP0
DELL4 GOTO DELL5
DELL5 CLRWDT
RETURN
;------------------RETARDO 1 SEG---------------------
R_1SEG MOVLW .14
MOVWF CONT3
PLOP0 MOVLW .72
MOVWF CONT4
PLOP1 MOVLW .247
MOVWF CONT5
PLOP2 CLRWDT
DECFSZ CONT5,1
GOTO PLOP2
DECFSZ CONT4,1
GOTO PLOP1
DECFSZ CONT3,1
GOTO PLOP0
PDEL1 GOTO PDEL2
PDEL2 CLRWDT
RETURN
RETARDO MOVLW 0FFH
MOVWF AUX1
DECFSZ AUX1,1
GOTO $-1
RETURN
RETARDO_AD
MOVLW 15H
GOTO $+2
RETARDITO
MOVLW 02H
BRINCO MOVWF REG1
DECFSZ REG1
GOTO $-1
RETURN
BANCO0 BCF STATUS,RP0
BCF STATUS,RP1
RETURN
BANCO1 BSF STATUS,RP0
BCF STATUS,RP1
RETURN
BANCO2 BCF STATUS,RP0
BSF STATUS,RP1
RETURN
BANCO3 BSF STATUS,RP0
BSF STATUS,RP1
RETURN
END