使用Keil uVision5编程利用ds18b20温度传感器测量温度。温度超过24℃,启动开发板上的扬声器发出声音进行报警;温度超过30℃,启动电机正向转动的c51单片机程序
时间: 2024-03-19 08:46:06 浏览: 141
基于51单片机和DS18B20的温度检测和报警系统,可设置报警温度上下限,输出温度采用数码管显示.zip
以下是使用Keil uVision5编程,利用ds18b20温度传感器测量温度,并根据温度值控制扬声器和电机的代码示例:
```c
#include <reg52.h>
#include <ds18b20.h>
sbit speaker = P1^0;
sbit motor = P1^1;
void delay_ms(unsigned int ms) {
unsigned int i, j;
for(i = 0; i < ms; i++)
for(j = 0; j < 110; j++);
}
void alarm() {
speaker = 1;
delay_ms(500);
speaker = 0;
delay_ms(500);
}
void main() {
float temp;
while(1) {
temp = ds18b20_get_temp();
if(temp > 24) {
alarm();
if(temp > 30) {
motor = 1;
} else {
motor = 0;
}
}
delay_ms(1000);
}
}
```
其中,`ds18b20.h` 是 ds18b20 温度传感器的驱动程序头文件,需要根据具体硬件进行修改。`speaker` 和 `motor` 分别为扬声器和电机的控制引脚。`delay_ms` 函数为延时函数,用于在程序中添加延时。`alarm` 函数为报警函数,控制扬声器发出声音进行报警。在 `main` 函数中,不断获取温度值并判断是否超过预设值,如果超过则进行相应的控制操作,并进行延时。
阅读全文