{ 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