modificar entrada analogica termostato pablin!

Hola. ¿Que tal? Gracias a la ayuda del foro pude hacer andar el termostato de pablin!
Ahora lo que quiero lograr es invertir la entrada analógica.
Originalmente cuanto mayor es la tensión (0-1500mv) mayor es la temperatura (0-150°c).
¿Qué tendría que modificar para que funcione al revés? (mayor voltaje menor temperatura).
Estuve intentando modificar esto y no tuve suerte!
Si alguno sabe y me puede explicar como hacerlo se lo agradecería!
Código:
adres    equ    0x1E        ;Resultado de la conversión A/D (HIGH / LOW)
adcon    equ    0x1F        ;Configuración del conversor A/D

CICLO    bsf    ADGO        ;Inicia la conversión A/D
    btfsc    ADGO        ;Espera que termine de convertir
    goto    $ -1
    
    bsf    MP0        ;Pasa a página 1 (para acceder a los ocho bits bajos del resultado)
    movf    adres, 0    ;Resultado de conversión -> W
    bcf    MP0        ;Pasa a página 1

    movwf    buffer    ;Guarda el dato obtenido de ADRESL en el buffer temporal
    bcf    CARRY        ;Limpia el CARRY
    btfsc    adres, 0    ;Mira el bit menos significativo de ADRESH (Bit 8)
    bsf    CARRY        ;Si está en 1 pone en uno el carry
    rrf    buffer, 1    ;Hace desaparecer el bit 0 de ADRESL, mete el bit 0 de ADRESH por el 7 de ADRESL

    movf    menor, 0    ;Punto de activación -> W
    addlw    d\'1\'        ;Suma 1 a W
    subwf    buffer, 0   ;W = Temp. Actual - (Menor + 1)
    btfss    CARRY        ;Si dio negativo es porque la temp. medida es igual o menor al punto de activación
    bsf    RELE        ;Si dio negativo (si carry = 0) acciona el relé
    
    movf    mayor, 0    ;Punto de desactivación -> W
    subwf    buffer, 0    ;W = Temp. Actual - (Mayor)
    btfsc    CARRY        ;Si dio negativo es porque aún no alcanzó la temp. de desactivación
    bcf    RELE        ;Si dio positivo (si carry = 1) desactiva el relé

    movf    buffer, 0    ;Dato digitalizado -> W
    call    DECIMAL        ;Obtiene UNI, DEC y CEN con el agregado de 30h para la tabla ASCII
    
    movlw    0x8A        ;Coloca el cursor en la posición 0Dh de la pantalla.
    call    CONTROL

    movf    cen, 0        ;Coloca en el LCD las centenas
    call    DATO
    movf    dec, 0        ;Coloca las decenas
    call    DATO
    movf    uni, 0        ;Coloca las unidades
    call    DATO

    btfss    MINS        ;Mira el pulsador de incremento en temp. de activación
    call    SUBEMIN
    btfss    MINB        ;Mira el pulsador de decremento en temp. de activación
    call    BAJAMIN
    btfss    MAXS        ;Mira el pulsador de incremento en temp. de desactivación
    call    SUBEMAX
    btfss    MAXB        ;Mira el pulsador de decremento en temp. de desactivación
    call    BAJAMAX
    
    goto    CICLO        ;Vuelve a medir y mostrar ...
 
Última edición por un moderador:
Atrás
Arriba