#include <16F877A.h>
#fuses XT,NOWDT,PUT,NOBROWNOUT,NOLVP
#use delay(Clock = 4MHz)
#include <1Wire2.c>
#include <lcd420.c>
#include <DS18B20-2.c>
float temp1,temp2;
int a,b;
void ajustes(void);
void temperaturas(void);
void main()
{
lcd_init();
Setup_ADC_Ports(NO_ANALOGS);
Setup_Comparator(NC_NC_NC_NC);
lcd_gotoxy(1,1);
lcd_putc(" SENSOR DIGITAL ");
lcd_gotoxy(1,2);
lcd_putc(" SENSOR DIGITAL ");
delay_ms(100);
temp1 =DS18B20_read(0); // Lee el sensor DS18B20
temp2 =DS18B20_read(1); // Lee el sensor DS18B20
while (true)
{
if(input(pin_d0))
{
delay_ms(100);
ajustes();
}
lcd_gotoxy(1,1);
printf(lcd_putc,"SENSOR Nß1..%02.0fßC",temp1); //Enseña sensor Nº1
lcd_gotoxy(1,2);
printf(lcd_putc,"SENSOR Nß2..%02.0fßC",temp2); //Enseña sensor Nº2
}
}
void temperaturas(void)
{
while(true)
{
temp1 =DS18B20_read(0); // Lee el sensor DS18B20
temp2 =DS18B20_read(1); // Lee el sensor DS18B20
lcd_gotoxy(1,1);
printf(lcd_putc,"SENSOR Nß1..%02.0fßC",temp1); //Enseña sensor Nº1
lcd_gotoxy(1,2);
printf(lcd_putc,"SENSOR Nß2..%02.0fßC",temp2); //Enseña sensor Nº2
if (temp1>=a) // Comprueba sensor Nº1
{
output_high(pin_d1); // Si es igual o mayor que a enciende led
}
else
{
output_low(pin_d1); // Por el contrario lo tiene apagado
}
if(temp2>=b) // Comprueba sensor Nº2
{
output_high(pin_d2); // Si es igual o mayor que b enciende led
}
else
{
output_low(pin_d2); // Por el contrario lo tiene apagado
}
}
}
void ajustes(void)
{
while(true)
{
lcd_gotoxy(1,1);
printf(lcd_putc,"SENSOR Nß1..%02.0d",a);
lcd_gotoxy(1,2);
printf(lcd_putc,"SENSOR Nß2..%02.0d",b);
if(input(pin_d4))
{ a+=10;delay_ms(200);} // aumenta a de 10º en 10º
if(input(pin_d5))
{ a+=1; delay_ms(200);} // aumenta a de 1º en 1º
if (a>60) // Si al ajustar a pasamos de 60º
{
a=00; // Lo pone a 00
}
if(input(pin_d6))
{ b+=10;delay_ms(200);} // aumenta b de 10º en 10º
if(input(pin_d7))
{ b+=1; delay_ms(200);} // aumenta b de 1º en 1º
if(b>60) // Si al ajustar b pasamos de 60º
{
b=00; // Lo pone a 00
}
if(input(pin_d3))
{
delay_ms(100);
temperaturas();
}
}
}