Está en la página 1de 2

#include <16f877A.

h> // Utilizamos el PIC 16F877A


#device adc=10 // Usa resolución de 10 bits
#use delay(clock=20M) // Cristal a utilizar
#fuses HS,NOWDT,NOPROTECT

#define lcd_rs_pin pin_B0


#define lcd_rw_pin pin_B1
#define lcd_enable_pin pin_B2
#define lcd_data4 pin_b4
#define lcd_data5 pin_b5
#define lcd_data6 pin_b6
#define lcd_data7 pin_b7

#include <lcd.c>
#use standard_io (B)

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
//**********************************************************//
printf(lcd_putc,"%02.1f",temper); // xxx.x °C
delay_ms (1000);
}
}

También podría gustarte