1、使用DS18B20测环境温度 2、将所测得的温度通过LCD1602显示出来 3、当温度高于32摄氏度,电机打开,降温;白炽灯关闭。 当温度高于28摄氏度且低于30摄氏度,电机关闭;白炽灯关闭。 当温度低于25摄氏度,电机关闭;白炽灯打开,升温。 4、每隔1秒,将温度传感器所测得温度通过串口发送给上位机 生成c语言代码
时间: 2024-03-22 12:42:37 浏览: 98
下面是生成的C语言代码,需要用到DS18B20和LCD1602的库函数,请先下载相应的库函数并添加到工程中:
```
#include <reg52.h>
#include <stdio.h>
#include "ds18b20.h"
#include "lcd1602.h"
sbit motor = P1^0;
sbit bulb = P1^1;
void delay(unsigned int t)
{
while(t--);
}
void main()
{
unsigned char temperature[5];
float temp;
char str[16];
lcd1602_init();
ds18b20_init();
while(1)
{
temp = ds18b20_read();
sprintf(temperature, "%2.1f", temp);
lcd1602_write_string(0, 0, "Temp:");
lcd1602_write_string(6, 0, temperature);
lcd1602_write_char(11, 0, 0xDF);
lcd1602_write_char(12, 0, 'C');
if(temp > 32)
{
motor = 1;
bulb = 0;
}
else if(temp > 28 && temp < 30)
{
motor = 0;
bulb = 0;
}
else if(temp < 25)
{
motor = 0;
bulb = 1;
}
printf("Temperature: %2.1fC\r\n", temp);
delay(10000);
}
}
```
阅读全文