Justamente yo estoy trabajando con el TC1047A, pero lamentablemente en ASM.
Cuando logres habilitar el conversor AD en C te cuento el truquillo que he hecho para convertir la medición :
Con una referencia externa de 2,56v (lo puedes hacer con un LM336z 2,5 y ajustarlo a 2,56) y con la resolución a 8 bits te daría 01h / ºC (ideal para un LM35) . Entonces , cuando leo el ADRESH le resto 50 decimal para equiparar con el TC1047A y miro si me ha dado un valor negativo , en ese caso invierto totalmente el valor con un COMF y le sumo 1.
De esta manera me queda exactamente todo el rango de temperatura del TC1047C
MOVLW .50
SUBWF ADRESH,1 ;LE RESTAMOS 50 PARA EQUIPARAR. Y SI LA RESTA DA UN NUMERO NEGATIVO
BTFSS ADRESH,7 ; EL BIT 7 ESTARÁ A 1, ENTONCES TENDREMOS UN RANGO ENTRE +127 Y -128
GOTO SALTEA ;NO DIO NEGATIVO, SALTEAMOS
ESNEGATIVO
;ES NEGATIVO
COMF ADRESH ;HACEMOS SU COMPLEMENTO
INCF ADRESH,1 ;LE SUMAMOS 1
SALTEA
;sigue programa Y MUESTRA EL RESULTADO EN LCD, ETC ETC