Hola, estoy haciendo un proyecto (el primero) con un 16F876 y creo que me va bastante bien hasta que he llegado a la conversion de un sensor de temperatura.
Conozco (o eso creo) como funcionan los registros para configurar la conversion y los puertos adcon1 y 0.
En principio habia pensado en conectar el lm35 directamente a la patilla a3 del pic, pero he leido en el foro que recomiendan utilizar un AOP, ¿por qué?
Una vez que lo tengo conectado al pic y usando las tensiones de referencia Vdd y masa (no puedo usar otras porque estoy justisimo de pines, no me sobra ni uno solo jeje) se que a cada incremento de bit en adres le corresponde 4.8 mV, pero ¿cómo relaciono estos voltios con grados? ¿haciendo una macro-tabla?
Necesito tener la temperatura para operar con ella (restarle un valor que introduce el usuario) y tambien he de imprimirla en un lcd, pasando a decenas, centenas y un decimal. He encontrado este codigo buscando por el foro pero no acabo de entenderlo del todo... ¿pueden explicarlo un poco?
CENTENAS movlw .100
subwf DATO,W ;DATO-100=W.
btfss STATUS,C ;¿DATO es menor ke .100?
goto DECENAS ;Si.
movwf DATO ;No,salva el resto.
incf centena,F
goto CENTENAS
DECENAS movlw .10
subwf DATO,W
btfss STATUS,C ;¿DATO es menor ke .10?
goto UNIDADES ;Si.
movwf DATO ;Salva el resto.
incf decena,F
goto DECENAS
UNIDADES movf DATO,W
movwf unidad
clrf DATO
movlw .0
subwf ADRESH,W
btfsc STATUS,Z ;¿ADRESH=.0?
goto MUESTRA ;Si,no agrega nada.
Y la ultima duda que tengo es la de imprimir y trabajar un valor de temperatura negativo... Conozco algo como funciona el complemento a dos pero no se como es un un pic...
Muchisimas gracias de antemano!!!
Un saludo!