Huquen:
Muchas gracias por el aporte que has dado. Mira ya cambie totalmente el programa
y mide bastante bien, el problema es que tengo que medir temperaturas negativas y si bien estoy definiendo las variables como "signed int" y "signed long" las cuales manejan signo. Por el lado del LM35 lo subi de masa unos 1,25 V por lo que si mido con el tester pueo ver perfectament las temperaturas negativas lo cual no es asi con el programa. No se si el problema esta en la funcion Read_Adc().
Les paso el programa por si a alguno se le ocurre algo. Tendia que poder medir de -20ª a -7" C.
#include<16F877.h>
#device ADC=10
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=10000000)
#use rs232(baud=19200,parity=N,xmit=PIN_C4,rcv=PIN_C5)//,ERRORS,stream = PORT1)
#include<stdio.h>
#include<STDLIB.h>
#include <LCD2.h>
#zero_ram
signed int value;
signed long Value1;
void main()
{
lcd_init();
set_tris_d(0x00);
output_d(0x00);
pepe = 30;
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(ALL_ANALOG);
set_adc_channel(2);
while(1)
{
value = read_adc();
delay_us(10);
value1 = (5 * value * (100/1023)); // Convierto la medicion a ºC.
lcd_gotoxy(1,1);
printf(lcd_putc,"Temperatura: %3.0Ld", value1);
delay_ms(1000);
}
}