Buenas estimados
ultimamente me he estado cabeceando para que no muestre el 0.30(como se ve en la foto), mi objetivo es que muestre los 30 con sus respectivos decimales cuando lo conecte en la vida real y en la simulación en proteus via LCD.
estoy usando un lm35 y un pic 16f877a.
aquí va el código:
#include <16F877a.h>
#device adc=10 //Ponemos que se usen 10 bits para A/D
#use delay(clock=4000000) //Frecuencia de reloj de 4MHz
#include <LCD420.c>
void main()
{
int16 lectura;
float voltios;
/************************Configuración delPIC*****************************/
setup_adc_ports(ALL_ANALOG); //Todos los puertos A como analogicos
setup_adc(ADC_CLOCK_INTERNAL); //Reloj interno para laconversion ADC
setup_comparator(NC_NC_NC_NC);
set_tris_a (0b11111111); //Configuramos todo el puerto A como entrada
/************************************************************************/
lcd_init(); //Inicializamos el display LCD
while(true)
{
set_adc_channel(0); //PIN_A0 como canal analogico
delay_us(20);
lectura=read_adc(); //Leemos el nivel del PIN
voltios=5.0*lectura/1024.0; //
//10mV/1K -273= ºC
printf(lcd_putc,"\f"); //Limpiamos la LCD
delay_ms(1);
printf(lcd_putc,"Temperatura ");
printf(lcd_putc,"\n %1.2f C", voltios);
delay_ms(500);
}
}
espero su ayuda, por favor.
saludos cordiales
Daniel Villavicencio