利用AT89c51制作温度控制器低于0度报警高于30度报警的程序
时间: 2024-03-23 15:43:48 浏览: 92
好的,以下是利用AT89c51制作温度控制器低于0度报警高于30度报警的程序:
```c
#include <reg51.h>
#include <DS18B20.h> // DS18B20库文件
sbit relay=P2^0; // 继电器控制引脚
sbit beep=P2^3; // 蜂鸣器控制引脚
sbit led=P2^2; // LED灯控制引脚
int main(void)
{
float temp = 0; // 温度
int low_alarm = 0; // 低温报警温度
int high_alarm = 30; // 高温报警温度
int i = 0;
while(1)
{
temp = DS18B20_GetTemp(); // 读取温度
if(temp <= low_alarm) // 温度低于低温报警温度
{
for(i = 0; i < 100; i++)
{
beep = 1; // 发出警报声
led = ~led; // LED灯闪烁
relay = 1; // 继电器通电
delay_ms(50); // 延时
beep = 0; // 停止警报声
led = 0; // 关闭LED灯
relay = 0; // 继电器断电
delay_ms(50); // 延时
}
}
else if(temp >= high_alarm) // 温度高于高温报警温度
{
for(i = 0; i < 100; i++)
{
beep = 1; // 发出警报声
led = ~led; // LED灯闪烁
relay = 1; // 继电器通电
delay_ms(50); // 延时
beep = 0; // 停止警报声
led = 0; // 关闭LED灯
relay = 0; // 继电器断电
delay_ms(50); // 延时
}
}
else // 温度在正常范围内
{
led = 0; // 关闭LED灯
relay = 0; // 继电器断电
}
}
return 0;
}
```
以上程序中同样用到了DS18B20库文件,需要在程序中引入该库文件。同时,程序中设置了一个低温报警温度和一个高温报警温度,当温度低于低温报警温度或高于高温报警温度时,蜂鸣器会发出警报声,并且LED灯会闪烁,同时继电器会通电,直到温度恢复到正常范围内。
阅读全文