基于51单片机的大棚温湿度检测系统的设计与实现

{ Nhumi+=1; //按下一次,湿度数值加1

if(Nhumi>=99) {Nhumi=99;}

write_eeprom(); //保存数据,写数据到单片机内部的eeprom中

S_Temp=Nhumi;

set_temp();}}} //调用湿度设置函数

if(!K3) //按下减按键

{ delay_1ms(80); if(!K3) { //光线 if(yemian==1)

{ Nlight-=1; //每按下一次,数值减1

if(Nlight<=1) {Nlight=1;}

write_eeprom(); //保存数据,写数据到单片机内部的eeprom中

Light=Nlight*100; set_light();}

//温度 if(yemian==2)

{ Ntemp-=1; //每按下一次,数值减1

if(Ntemp<=1) {Ntemp=1;}

write_eeprom(); //保存数据,写数据到单片机内部的eeprom中

S_Temp=Ntemp; set_temp();}

//湿度 if(yemian==3)

{ Nhumi-=1; //每按下一次,数值减1

if(Nhumi<=1) {Nhumi=1;}

write_eeprom(); //保存数据,写数据到单片机内部的eeprom中

S_Temp=Nhumi;

31

set_temp();}}}}

4.3.2数据采集模块

系统元件和端口初始化完成,系统稳定之后,开始监测温湿度及光照度,并在LCD1602液晶显示屏上显示温湿度及光照度。 (1)温湿度监测的核心代码如下:

void receive() //接收数据

{ uchar T_H,T_L,R_H,R_L,check,num_check;//定义各参数的高八位、低八位 uchar count;

start(); //开始信号 io=1;

if(!io) //读取DHT11响应信号

{ count=2;

while((!io)&&count++); //DHT11高电平80us是否结束 count=2;

while((!io)&&count++); //DHT11高电平80us是否结束 T_H=receive_byte(); T_L=receive_byte(); check=receive_byte();

io=0; //拉低延时50us delay1();delay1();delay1();delay1();delay1(); io=1;

num_check=R_H+R_L+T_H+T_L; if(num_check=check) { RH

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@)