You are on page 1of 2

#include <16f877a.

h>
#device adc=8
#fuses NOPROTECT,NOPUT,NOWDT,XT
#use delay (clock=4Mhz)
#define LCD_DB4 PIN_B3
#define LCD_DB5 PIN_B2
#define LCD_DB6 PIN_B1
#define LCD_DB7 PIN_B0
#define LCD_RS PIN_B5
#define LCD_E
PIN_B4
#include <lcd1.c>
Int Grados=0;
void main()
{
set_tris_a(0b1);
//disable_interrupts(global);
//setup_comparator(NC_NC_NC_NC);
SETUP_ADC(ADC_CLOCK_INTERNAL);
setup_adc_ports(AN0);
setup_ccp1(ccp_pwm);
setup_timer_2(t2_div_by_16,249,1);// el prescaler sera de 16
set_pwm1_duty(0);
lcd_init();
delay_ms(50);
lcd_gotoxy(1,1);
delay_ms(20);
printf(lcd_putc,"Sensor de tempe..");
lcd_gotoxy(1,2);
delay_ms(20);
printf(lcd_putc,"Tempe.
grados");
set_adc_channel(0);
delay_ms(50);
while(1)
{
Grados=read_adc();
delay_ms(50);
lcd_gotoxy(8,2);
delay_ms(20);
Grados=Grados+10;
printf(lcd_putc,"%u",Grados);
delay_ms(200);
if(Grados<=24)
{
set_pwm1_duty(0);
}
if(Grados>=35)
{
set_pwm1_duty(250);
}
else if(Grados>=30)
{
set_pwm1_duty(140);

}
else if(Grados>=25)
{
set_pwm1_duty(80);
}
}
}

You might also like