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!
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: