Hola a todos espero que esten bien,
Lo primero quería pedir ayuda con un proyecto que estoy realizando con un pic16f877a mido temperatura este es el programa:
///////////////////////////////////////////////////
#include "16f877.h"
#device adc=10 //Usa resolución de 10 bits
#use delay(clock=4000000)
#fuses xt,nowdt,noput,nobrownout,nolvp,noprotect
#include "lcd.c"
#use standard_io (D)
///////////////////////////////////////////////////////
void main (void)
{
float temper,medicion;
lcd_init(); //Inicia LCD
lcd_putc(" Termometro\n"); //Saca texto
lcd_putc(" con LM35"); //Saca texto
delay_ms(2000);
lcd_putc("\f"); //Limpia pantalla
lcd_putc("Temperatura\n"); //Saca texto
lcd_putc("actual"); //Saca texto
delay_ms(1000);
lcd_gotoxy(14,2); //Acomoda cursor LCD
lcd_putc("oC");
while (1)
{
lcd_gotoxy(8,2); //Acomoda cursor LCD
lcd_putc(" "); //Limpia ese sector de pantalla
lcd_gotoxy(8,2); //Acomoda cursor LCD
setup_adc (adc_clock_internal);
setup_adc_ports (all_analog);
set_adc_channel (0); //Elige canal a medir RA0
delay_us (20);
medicion=read_adc (); //Hace conversión AD
setup_adc (adc_off); //Apaga ADC
temper=medicion*(0.48875); //Pasa binario a °C
//////////////////////////////////////////////////////////////////////////////////
// el "0.48875" sale de dividir 5/1023 y el resultado de eso multiplicarlo por 100
// el 5 sale de los 5 voltios aplicado a el voltage de referencia, los 1023 salen
// de los 10 bit de resolucion del conversor analogico digital que seleccionamos.
// Si utlizaramos la resolucion de 8 bist del conversor analogico digital, la
// formula fuera (5/255)*100 ya que con 8 bits el numero maximo posible es de 0-255
//////////////////////////////////////////////////////////////////////////////////
printf(lcd_putc,"%02.1f",temper); //xxx.x °C
delay_ms (1000);
}
}
El programa ya esta probado con el proteus
Mi problema es que ocupo que mida voltaje un aproximado de de 400vcd, esa seria mi pregunta me seria mucha ayuda sus consejos.
Se acepta libros o teorías para realizar el proyecto
Nota:
Este programa lo conseguí navegando por Internet

Lo primero quería pedir ayuda con un proyecto que estoy realizando con un pic16f877a mido temperatura este es el programa:
///////////////////////////////////////////////////
#include "16f877.h"
#device adc=10 //Usa resolución de 10 bits
#use delay(clock=4000000)
#fuses xt,nowdt,noput,nobrownout,nolvp,noprotect
#include "lcd.c"
#use standard_io (D)
///////////////////////////////////////////////////////
void main (void)
{
float temper,medicion;
lcd_init(); //Inicia LCD
lcd_putc(" Termometro\n"); //Saca texto
lcd_putc(" con LM35"); //Saca texto
delay_ms(2000);
lcd_putc("\f"); //Limpia pantalla
lcd_putc("Temperatura\n"); //Saca texto
lcd_putc("actual"); //Saca texto
delay_ms(1000);
lcd_gotoxy(14,2); //Acomoda cursor LCD
lcd_putc("oC");
while (1)
{
lcd_gotoxy(8,2); //Acomoda cursor LCD
lcd_putc(" "); //Limpia ese sector de pantalla
lcd_gotoxy(8,2); //Acomoda cursor LCD
setup_adc (adc_clock_internal);
setup_adc_ports (all_analog);
set_adc_channel (0); //Elige canal a medir RA0
delay_us (20);
medicion=read_adc (); //Hace conversión AD
setup_adc (adc_off); //Apaga ADC
temper=medicion*(0.48875); //Pasa binario a °C
//////////////////////////////////////////////////////////////////////////////////
// el "0.48875" sale de dividir 5/1023 y el resultado de eso multiplicarlo por 100
// el 5 sale de los 5 voltios aplicado a el voltage de referencia, los 1023 salen
// de los 10 bit de resolucion del conversor analogico digital que seleccionamos.
// Si utlizaramos la resolucion de 8 bist del conversor analogico digital, la
// formula fuera (5/255)*100 ya que con 8 bits el numero maximo posible es de 0-255
//////////////////////////////////////////////////////////////////////////////////
printf(lcd_putc,"%02.1f",temper); //xxx.x °C
delay_ms (1000);
}
}
El programa ya esta probado con el proteus
Mi problema es que ocupo que mida voltaje un aproximado de de 400vcd, esa seria mi pregunta me seria mucha ayuda sus consejos.
Se acepta libros o teorías para realizar el proyecto
Nota:
Este programa lo conseguí navegando por Internet