mira esto para un potenciometro en rao.
disculpas por las mayusculas
LIST P=16F873
#INCLUDE<P16F873.INC>
;DECLARACION DE VARIABLES
PCL EQU 02
STATUS EQU 03
PORTA EQU 05
PORTB EQU 06
ADCON0 EQU 1F
ADRESL EQU 9E
ADRESH EQU 1E
INTCON EQU 0B
JAI_LOW EQU 22
JAI_HIG EQU 23
REG1 EQU 28
REG2 EQU 29
REG3 EQU 2A
;BITS DE CONVERSION ANALO DIGITAL
ADIF EQU 6
GODONE EQU 2
ADON EQU 0
ADFM EQU 7
ORG 00
GOTO INICIO
RETAR MOVLW .180
MOVWF REG2
DEC5 MOVLW .160
MOVWF REG3
DEC6 DECFSZ REG3,1
GOTO DEC6
DECFSZ REG2,1
GOTO DEC5
RETURN
RETARD MOVLW .100
MOVWF REG1
nop
nop
nop
nop
DEC9 DECFSZ REG1,1
GOTO DEC9
RETURN
INICIO
BSF STATUS,5
BCF STATUS,6
CLRF PORTB ;SALIDA A LOS LEDS
MOVLW B'00000001' ;RA1 RA2 SALIDAS A LOS LEDS ADRESH
MOVWF PORTA
CONVERSIONANALOGODIGITAL
MOVLW B'10001110' ;RA0 ANALOGO JUSTIFICACION LOS OCHO ;PRIMEROS
MOVWF ADCON1 ;BITS DE ADRESL Y DOS BITS DE ADRESH. ;RA0 ANALOGO
BCF STATUS,5 ;RA1 RA2 DIGITAL.
EEE MOVLW B'10000001' ;FOSC/32 CANALRA0
MOVWF ADCON0
CALL RETARD ;RETARDO DE PROGRAMACION
BCF PIR1,ADIF ;BORRAR INDICADOR DE FIN DE CONVERSION
BSF ADCON0,GODONE ;COMIENZA CONVERSION.
CALL RETARD
E BTFSS PIR1,ADIF ;¿TERMINÒ CONVERSION? (SI ADIF=1) (NO ;ADIF=0)
GOTO E ;SI LA CONVERSION NO HA TERMINADO ADIF ;=0
BSF STATUS,5 ;CAMBIO A BANCO1 PARA ACCEDER A ADRESL
MOVF ADRESL,0 ;LOW PARTE
BCF STATUS,5 ;ACCEDO A BANCO0 PARA MOVER RESULTADO A ;JAI_LOW
MOVWF JAI_LOW
MOVWF PORTB ;MUESTRO CONVERSION EN LEDS,CADA ;CONVERSION EQUIVALE
CALL RETAR ;AL VALOR (BINARIO_DECIMAL x ;4.88mv/bits) O SEA
MOVF ADRESH,0 ;SALIDA DIGITAL B'0011100101' ENTRADA
;ANALOGA=......
MOVWF JAI_HIG ;(229X4.88=1.117VOLTIOS APROX).
BCF STATUS,0 ;RAO ES ENTRADA ANALOGA, RA1 Y RA2 ;VISUALIZAN
RLF JAI_HIG,0 ;LA PARTE ALTA DE LA CONVERSION POR ESO ;ROTO
MOVWF PORTA ;A LA IZQUIEDA EL RESULTADO "ADRESH"
CALL RETAR
GOTO CONVERSIONANALOGODIGITAL
END