bueno yo la convercion la realizo diferente. Le metemos al adc de 0v a 5v y sabemos que el adc internamente hace la convercion de 0 a 256 vdd?
entonces el Lm35 te entrega 10mv/°C donde si tenemos 30°C estos son 300Mv los cuales yo los amplifoco con un OPAM, amplificador no inverzor con una ganancia de 5 y tengo 1.5v a la salida del OPAM lo cual es mas manejable para el micro que los 300mv, deacuerdo?
entonces una regla de 3.
5v---------255 bin
1.5v------- X donde X=77 bin aprox.
y luego uso esta rutinita para sacar los °C espero darme a entender
x=read_adc(5);//LO QUE ESTA LEYENDO EN EL ADC5 LO GUARDA EN LA VARIABLE "X"
t=(x*10000)/255;//SE GUARDA EN T LA MULTIPLICACION DE X*10000 ENTRE 255
entonces en t vamos a tener un 300 y para eso uso otra rutina para desplegarlo en la pantalla
d=prom/1000;//DECENAS LA DIVIDE ENTRE 1000 PARA SACAR EL NUMERO
r=prom%1000;//SE SACA EL RECIDUO DE LAS DECENAS PARA USARLO DE NUEVO
u=r/100;//EN UNIDADES DE GUARDA LA DIVICION DEL RECIDUO DE DECENAS PARA SACAR EL NUMERO
r=r%100;//SE GUARDA EN r EL RECIDUO DE UNIDADES
dec=r/10;//SE GUARDA EN DECIMAS EL RECIDUO DE UNIDADES ENTRE 10 PARA SACAR DECIMAS
r=r%10;//SE GUARDA EN r EL RECIDUO DE DECIMAS
cen=r;//SE GUARDA EN CENTESIMAS EL RECIDUO DE DECIMAS PARA ESCRIBIR EL NUMERO
lcd_gotoxy(5,3);//POSICIONA EL CURSOR EN (5,3) PARA COMENZAR A ESCRIBIR DESDE AHI
lcd_putchar(d+0x30);//ESCRIBE EN LA POSICION SEÑALADA ARRIBA LA VARIABLE "d"
lcd_putchar(u+0x30);//ESCRIBE LA VARIABLE "u" DESPUES DE LA VARIABLE "d"
lcd_gotoxy(8,3);//POSICIONA EL CURSOR EN (8,3) PARA COMENZAR A ESCRIBIR DESDE AHI
lcd_putchar(dec+0x30);//ESCRIBE EN LA POSICION SEÑALADA ARRIBA LA VARIABLE "den"
lcd_putchar(cen+0x30);//ESCRIBE LA VARIABLE "cen" DESPUES DE LA VARIABLE "dec"
y fin tienes en tu pantalla geniales 30°C espero te hallan servido y suerte