# include <16f877a.h>
# device *=16 //Use 16 bit pointers (FOR 14 bit parts)
# device adc=10
#fuses xt,nowdt,noput,nobrownout,nolvp,noprotect
# use delay(clock=4M)
# include <lcd.c>
float temperatura0;
float temperatura1;
float temperatura2;
float temperatura3;
float temperatura4;
float temperatura5;
float temperatura6;
float temperatura7;
float contadorconfiguracion;
float temperaturadecimal;
long valor_adc = 0;
//FLOAT temperaturaentero;
void main()
{
//*******************************
delay_ms(20);
setup_adc_ports (all_analog);
//setup_adc_ports(RE0_RE1_RE3_ANALOG);//entrada del LM35
setup_adc(ADC_CLOCK_INTERNAL);
setup_COUNTERS(RTCC_internal.rtcc_div_1);//marca de divicion
//*******************************
lcd_init();
delay_ms(350);
//lcd_putc("\f"); //Limpia pantalla
contadorconfiguracion = 0;
temperaturadecimal = 0;
WHILE(true)
{
set_adc_channel(0);
delay_ms(20);
valor_adc = read_adc();
temperatura0=(FLOAT)(valor_adc/2);
set_adc_channel(1);
delay_ms(20);
valor_adc = read_adc();
temperatura1=(FLOAT)(valor_adc/2);
set_adc_channel(2);
delay_ms(20);
valor_adc = read_adc();
temperatura2=(FLOAT)(valor_adc/2);
set_adc_channel(3);
delay_ms(20);
valor_adc = read_adc();
temperatura3=(FLOAT)(valor_adc/2);
set_adc_channel(4);
delay_ms(20);
valor_adc = read_adc();
temperatura4=(FLOAT)(valor_adc/2);
set_adc_channel(5);
delay_ms(20);
valor_adc = read_adc();
temperatura5=(FLOAT)(valor_adc/2);
set_adc_channel(6);
delay_ms(20);
valor_adc = read_adc();
temperatura6=(FLOAT)(valor_adc/2);
set_adc_channel(7);
delay_ms(20);
valor_adc = read_adc();
temperatura7=(FLOAT)(valor_adc/2);
IF(input(Pin_C0)==1)
{
//contadorconfiguracion = 1;
//printf(lcd_putc,"\f");
contadorconfiguracion = contadorconfiguracion + 1;
delay_ms (200) ;
}
IF (contadorconfiguracion == 0) //si no se pulso configuracion entonces
{
IF(temperatura0>6)
{temperatura0 = temperatura0-0.5;}
IF(temperatura0>25)
{temperatura0 = temperatura0-0.5;}
IF(temperatura0>45)
{temperatura0 = temperatura0-0.5;}
/*IF(temperatura0>65)
{temperatura0 = temperatura0-0.5;}
IF(temperatura0>85)
{temperatura0 = temperatura0-0.5;}
IF(temperatura0>104)
{temperatura0 = temperatura0-0.5;}
IF(temperatura0>124)
{temperatura0 = temperatura0-0.5;}
IF(temperatura0>144)
{temperatura0 = temperatura0-0.5;}*/
lcd_gotoxy(1,1);
printf(lcd_putc
,"%0.1f",temperatura0
);
IF(temperatura1>6)
{temperatura1 = temperatura1-0.5;}
IF(temperatura1>25)
{temperatura1 = temperatura1-0.5;}
IF(temperatura1>45)
{temperatura1 = temperatura1-0.5;}
/*IF(temperatura1>65)
{temperatura1 = temperatura1-0.5;}
IF(temperatura1>85)
{temperatura1 = temperatura1-0.5;}
IF(temperatura1>104)
{temperatura1 = temperatura1-0.5;}
IF(temperatura1>124)
{temperatura1 = temperatura1-0.5;}
IF(temperatura1>144)
{temperatura1 = temperatura1-0.5;}*/
lcd_gotoxy(12,1);
printf(lcd_putc
,"%0.1f",temperatura1
);
IF(temperatura2>6)
{temperatura2 = temperatura2-0.5;}
IF(temperatura2>25)
{temperatura2 = temperatura2-0.5;}
IF(temperatura2>45)
{temperatura2 = temperatura2-0.5;}
/*IF(temperatura2>65)
{temperatura2 = temperatura2-0.5;}
IF(temperatura2>85)
{temperatura2 = temperatura2-0.5;}
IF(temperatura2>104)
{temperatura2 = temperatura2-0.5;}
IF(temperatura2>124)
{temperatura2 = temperatura2-0.5;}
IF(temperatura2>144)
{temperatura2 = temperatura2-0.5;}*/
lcd_gotoxy(1,2);
printf(lcd_putc
,"%0.1f",temperatura2
);
IF(temperatura3>6)
{temperatura3 = temperatura3-0.5;}
IF(temperatura3>25)
{temperatura3 = temperatura3-0.5;}
IF(temperatura3>45)
{temperatura3 = temperatura3-0.5;}
/*IF(temperatura3>65)
{temperatura3 = temperatura3-0.5;}
IF(temperatura3>85)
{temperatura3 = temperatura3-0.5;}
IF(temperatura3>104)
{temperatura3 = temperatura3-0.5;}
IF(temperatura3>124)
{temperatura3 = temperatura3-0.5;}
IF(temperatura3>144)
{temperatura3 = temperatura3-0.5;}*/
lcd_gotoxy(12,2);
printf (lcd_putc
, " %0.1f", temperatura3
); }
IF (contadorconfiguracion == 1) //se pulso configuracion
{
//printf(lcd_putc,"\f");
lcd_gotoxy(1,1);
printf(lcd_putc
,"%0.1f",temperatura4
);
IF(temperatura4>6)
{
temperatura4 = temperatura4 - 0.5;
}
IF(temperatura4>25)
{
temperatura4 = temperatura4 - 0.5;
}
IF(temperatura4>45)
{
temperatura4 = temperatura4 - 0.5;
}
lcd_gotoxy(12,1);
printf(lcd_putc
,"%0.1f",temperatura5
);
IF(temperatura5>6)
{
temperatura5 = temperatura5 - 0.5;
}
IF(temperatura5>25)
{
temperatura5 = temperatura5 - 0.5;
}
IF(temperatura5>45)
{
temperatura5 = temperatura5 - 0.5;
}
lcd_gotoxy(1,2);
printf(lcd_putc
,"%0.1f",temperatura6
);
IF(temperatura6>6)
{
temperatura6 = temperatura6 - 0.5;
}
IF(temperatura6>25)
{
temperatura6 = temperatura6 - 0.5;
}
IF(temperatura6>45)
{
temperatura6 = temperatura6 - 0.5;
}
lcd_gotoxy(12,2);
printf(lcd_putc
,"%0.1f",temperatura7
);
IF(temperatura7>6)
{
temperatura7 = temperatura7 - 0.5;
}
IF(temperatura7>25)
{
temperatura7 = temperatura7 - 0.5;
}
IF(temperatura7>45)
{
temperatura7 = temperatura7 - 0.5;
}
}
IF (contadorconfiguracion == 2)
{
//lcd_gotoxy(1,1);
//Lcd_putc ("temperatura en :");
lcd_gotoxy(1,2);
printf(lcd_putc
,"%0.1f",temperaturadecimal
); lcd_gotoxy(5,2);
delay_ms(200);
IF(input(Pin_C1)==1)
{
temperaturadecimal = temperaturadecimal+0.50;
}
IF(input(Pin_C2)==1)
{
temperaturadecimal = temperaturadecimal-0.50;
}
}
IF (contadorconfiguracion >= 3)
{
contadorconfiguracion = 0;
lcd_putc("\f"); //Limpia pantalla
}
IF (temperaturadecimal > temperatura1)
output_high(pin_B0);
ELSE
output_low(pin_B0);
IF (temperaturadecimal > temperatura2)
output_high(pin_B1);
ELSE
output_low(pin_B1);
}
}