Hola, que tal, estoy muy aturdido con el tema de las conversiones del ADC, pude llegar a hacer la prueba con el termostato de pablin, y LCD, y anda perfecto.
Lo que no puedo hacer es mostrar el numero en 3 digitos 7 segmentos, con ningula libreria BIN_BCD u otras, no me funciona nada.
Solo me salio con 1 digito ( unidades ) probando y probando, cuenta de 0 a 9 pero cuando pasa a ( decena ) incrementa a 1 , la unidad a 0,
pero la unidad sigue contando en binario fuera de la tabla del 0 al 9
Osea escribe cualquier cosa ..Les muestro el pedazo que uso ...
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 buffer, 0 ;Dato digitalizado -> W
ACA UTILIZO EL DATO QUE HAY EN W Y LO PASO A LA UNIDAD
MOVWF UNIDAD
MOVF UNIDAD,W
SUBLW D'10'
BTFSC STATUS,2
CALL INCREMENTAR DECENAS Y PONER A CERO
CALL MUESTRO LOS 3 DISPLAYS
GOTO CICLO
INCREMENTAR DECENAS Y PONER A CERO
CLRF UNIDAD
MOVF BUFFER,W
MOVWF DECENA
MOVF DECENA,W
SUBLW D'10'
...................................... ETC .........
RETURN
MUESTRO LOS 3 DISPLAY
MOVF UNIDAD,W
CALL TABLA 0 A 9
MOVWF PORTB
BSF ENCIENDO UNIDAD
CALL TIEMPO
BCF APAGO DISPLAY
MOVWF DECENA,W
................................. ETC
RETURN
Gracias y espero me ayuden que me estoy volviendo loco !!!!