;;;;;;PERMITE LEER EL VOLTAJE APLICADO A A0  PROVENIENTE DE UN SENSOR DE TANQUE
;;;;;;QUE SE ENCIENDE CUANDO EL MISMO LLEGA A TENER UN NIVEL MAXIMO (5L)


    list		p=16f887	; list directive to define processor
    #include	<p16f887.inc>	; processor specific variable definitions

    __CONFIG    _CONFIG1, _LVP_OFF & _FCMEN_ON & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
 ;  __CONFIG _CONFIG1, 2007h; LAS PALABRAS DE CONFIGURACION DE ARRIBA EN HEXA
   __CONFIG _CONFIG2,  2008h
;   __CONFIG    _CONFIG2, _WRT_OFF & _BOR21V


AUX EQU 0X20
    org 0x000 ;INICIO

    MOVLW B'11111111'
    MOVWF AUX

    BCF STATUS,RP0 ;BQNCO 0
    BCF STATUS,RP1
    MOVLW B'01000001' ;A/D conversion Fosc/8
    movwf ADCON0

    BSF STATUS,RP0 ;BANCO 1
    BCF STATUS,RP1
    CLRF TRISC ;PORTC salida
    MOVLW b'00000111'
    MOVWF OPTION_REG ;TMR0 preescaler, 1:156
    MOVLW B'00001110' ;A/D Port A0
    MOVWF ADCON1

    BSF TRISA,0 ;entrada para el ADC
    BCF STATUS,RP0 ;BANCO 0
    BCF STATUS,RP1
    CLRF PORTC ;Limpiar PORTC
    
_bucle

;    BTFSS INTCON,T0IF
;    GOTO _bucle 
    BCF INTCON,T0IF ;Limpiar el indicador de desborde
    BSF ADCON0,GO ;Empezar la conversion A/D

_espera
    BTFSC ADCON0,GO ;ADCON0 es 0? (la conversion esta completa?)
    GOTO _espera 
    MOVF ADRESH,W ;Si, W=ADRESH


VERIFICA
    XORWF AUX,W
    ;SUBWF AUX
    BTFSS STATUS,Z
    GOTO APAGA
    GOTO PRENDE
  

PRENDE
    BSF PORTC,1
    GOTO _bucle
   
APAGA
    BCF PORTC,1
     GOTO _bucle
    

    
         END