#define relay GP3
#define led GP0
#define set_temp 25
void delay(unsigned int t)
{
while(t--)
{
__delay_ms(1);
}
}
void main()
{
unsigned int temp = 0;
ADCON0 = 0b00000001; // set ADC channel to GP2
CMCON0 = 0b00000111; // disable comparator
ANSEL = 0b00000100; // set GP2 as analog input
TRISIO = 0b00000100; // set GP2 as input, others as output
relay = 0; // set GP3 to output low
led = 0; // set GP0 to output low
while(1)
{
// read LM35 temperature sensor value
GO = 1;
while(GO); // wait for ADC conversion
temp = (ADRESH<<8) | ADRESL;
temp = (temp*500)/102
// control relay based on temperature
if(temp > set_temp)
{
relay = 1; // turn on relay
led = 1; // turn on LED
}
else
{
relay = 0; // turn off relay
led = 0; // turn off LED
}
delay(1000); // delay for 1 second
}
}
#define relay GP3
#define led GP0
#define set_temp 25
void delay(unsigned int t)
{
while(t--)
{
__delay_ms(1);
}
}
void main()
{
unsigned int temp = 0;
ADCON0 = 0b00000001; // set ADC channel to GP2
CMCON0 = 0b00000111; // disable comparator
ANSEL = 0b00000100; // set GP2 as analog input
TRISIO = 0b00000100; // set GP2 as input, others as output
relay = 0; // set GP3 to output low
led = 0; // set GP0 to output low
while(1)
{
// read LM35 temperature sensor value
GO = 1;
while(GO); // wait for ADC conversion
temp = (ADRESH<<8) | ADRESL;
temp = (temp*500)/1024;
// control relay based on temperature
if(temp > set_temp)
{
relay = 1; // turn on relay
led = 1; // turn on LED
}
else
{
relay = 0; // turn off relay
led = 0; // turn off LED
}
delay(1000); // delay for 1 second
}
}
請注意,在程式碼中使用了一個名為delay的函數,它的作用是讓系統等待一定時間。在這個程式中,delay函數的參數是以毫秒為單位的時間值。該函數使用了一個while迴圈和__delay_ms函數,以實現等待指定時間的效果。如果您希望調整延遲時間,可以更改delay函數的參數值。