【《基于51单片机的温室温湿度采集与显示系统设计》8300字(论文)】_第1页
【《基于51单片机的温室温湿度采集与显示系统设计》8300字(论文)】_第2页
【《基于51单片机的温室温湿度采集与显示系统设计》8300字(论文)】_第3页
【《基于51单片机的温室温湿度采集与显示系统设计》8300字(论文)】_第4页
【《基于51单片机的温室温湿度采集与显示系统设计》8300字(论文)】_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

XIX参考文献[1]黄语燕,王涛,郑鸿艺,康育鑫,李传辉,钟陈声,陈永快.福建省薄膜温室温湿度采集系统的实现及湿热环境分析[J]江苏农业科学,2019,47(23):264-268.[2]王仁增,任凯,金大维,边疆.基于ZM5168模块的农业温室大棚温湿度采集节点的设计[J].种子科技,2017,35(08):135+138[3]任凯,金大维,马超,李硕.基于蓝牙4.0技术的农业温室大棚温湿度采集节点的设计[J].现代农业科技,2017(10):167+170.[4]孙浩文.基于单片机的温室温湿度采集系统设计[J].自动化与仪器仪表,2017(10):167+170.[5]胡古月,黄丽华.基于STM32的温室温湿度采集系统[J].浙江农业科学,2013(08):1053-1055.[6]王慧.小型温室温湿度实时采集与控制系统设计[D]内蒙古农业大学,2013.[7]刘志强,董秀曼,杨光.基于ZigBee的温室环境温湿度采集系统的设计[J].内蒙古工业大学学报(自然科学版),201534(02):118-124.[8]田孟.基于LabVIEW的温室湿度采集系统[J].科技信息,2012(16):249-250.[9]王中心.温室土壤温湿度无线信息采集与监控系统的设计与实现[D].安徽大学,2010.[10]柳兆军.基于ARM的温室环境监控系统的湿度采集设计[D].安徽农业科学,2009[11]刘翼宁,陈春玲,崔琳.日光温室控制系统中温湿度采集的滤波方法[J].新农业,2015(21):4-7.[12]AComputer-BasedMonitoringSystemtoMaintainOptimumAirTemperatureandRelativeHumidityinGreenhouses[13]李宇松.\t"1/kns/brief/_blank"基于ZigBee和CC2530的农业大棚温湿度采集系统设计.农家参谋2020[14]庄立运.\t"1/kns/brief/_blank"基于CC2530的大棚温湿度无线采集节点设计与实现.湖北农业科学2014[15]于永会.基于单片机的温湿度采集系统[J]现代机械,2013(3):41-43.[16]苏远锋.智能化温室自动控制系统设计研究[J]企业技术开发(下半月),2015,34[17]严芳芳.农业大棚太阳能供电数据采集系统设计[J]农机化研究,2013,(5):103-106.[18]张银鸿.基于以太网的多协议温湿度采集系统研制[J]核电子学与探测技术,2015,附录温湿度传感器DHT11模块#include<intrins.h>//_nop_();延时函数用#defineucharunsignedchar#defineuintunsignedintsbittemp_out=P1^3;sbithumi_out=P1^4;sbittemp_led=P1^5;sbithumi_led=P1^6;uintcount;uchards1,ds2,ds3,ds4;ucharU8FLAG,k;ucharU8count,U8temp;ucharU8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;ucharU8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;ucharU8comdata;uintU16temp1,U16temp2;sbitIO=P1^7;//voidDelay1(uintj){uchari;for(;j>0;j--){for(i=0;i<27;i++);}}voidDelay_10us(void){uchari=5;for(;i>0;i--);}voidCOM(void){uchari;for(i=0;i<8;i++){U8FLAG=2;//while((!IO)&&U8FLAG++);Delay_10us();Delay_10us();//Delay_10us();U8temp=0;if(IO)U8temp=1;U8FLAG=2;while((IO)&&U8FLAG++);////P2_1=0;//P2_1=1;//if(U8FLAG==1)break;U8comdata<<=1;U8comdata|=U8temp;}}//voidRH(void){IO=0;Delay1(180);IO=1;Delay_10us();Delay_10us();Delay_10us();Delay_10us();IO=1;if(!IO){U8FLAG=2;while((!IO)&&U8FLAG++);U8FLAG=2;while((IO)&&U8FLAG++);COM();U8RH_data_H_temp=U8comdata;COM();U8RH_data_L_temp=U8comdata;COM();U8T_data_H_temp=U8comdata;COM();U8T_data_L_temp=U8comdata;COM();U8checkdata_temp=U8comdata;IO=1;U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);if(U8temp==U8checkdata_temp){U8RH_data_H=U8RH_data_H_temp;U8RH_data_L=U8RH_data_L_temp;U8T_data_H=U8T_data_H_temp;U8T_data_L=U8T_data_L_temp;U8checkdata=U8checkdata_temp;}}}voidconvdat(){ds1=U8RH_data_H/10;ds2=U8RH_data_H%10;ds3=U8T_data_H/10;ds4=U8T_data_H%10;}LCD1602显示模块#defineucharunsignedchar#defineuintunsignedintsbitRS=P1^2;sbitRW=P1^1;sbitE=P1^0;uchard;ucharcodetab_t[]={"TEMPERATURE:C"};ucharcodetab_h[]={"HUMIDITY:%"};ucharcodetab_time[]={"TIME:"};ucharcodetab_set_temp_H[]={"SET_TEMP_HIGH"};ucharcodetab_set_temp_L[]={"SET_TEMP_LOW"};ucharcodetab_set_humi_H[]={"SET_HUMI_HIGH"};ucharcodetab_set_humi_L[]={"SET_HUMI_LOW"};ucharcodetab_set_hour[]={"SET_HOUR"};ucharcodetab_lcd_num[]={'0','1','2','3','4','5','6','7','8','9'};voiddelay_1602(ucharx){uchara,b;for(a=0;a<10;a++){for(b=x;b>0;b--);}}voidwrite_cmd(ucharx){E=0;RS=0;RW=0;E=1;P0=x;delay_1602(50);}/*ucharread_dat(){RS=1;RW=1;E=1;d=P0;delay(5);returnd;}*/voidwrite_dat(uchary){E=0;RS=1;RW=0;E=1;P0=y;delay_1602(50);E=0;}voidbusy(){uchara;while(a==0x80){E=0;RS=0;RW=1;E=1;delay_1602(50);a=P0;}}voidinit_lcd(){busy();write_cmd(0x38);delay_1602(5);busy();write_cmd(0x01);delay_1602(5);busy();write_cmd(0x0C);delay_1602(5);}温湿度控制系统程序#include<reg51.h>//52单片机头文件#include<dht11.h>//温湿度传感器DHT11头文件#include<lcd_1602.h>//液晶屏1602头文件uchari,key_flag;ucharset_temp_H,set_temp_H_shi,set_temp_H_ge;//设定温度的变量ucharset_temp_L,set_temp_L_shi,set_temp_L_ge;//设定温度的变量ucharset_humi_H,set_humi_H_ge,set_humi_H_shi;//设置湿度的变量ucharset_humi_L,set_humi_L_ge,set_humi_L_shi;//设置湿度的变量sbitk1=P2^0;//定义按键K1sbitk2=P2^1;//定义按键K2sbitk3=P2^2;//定义按键K3sbitk4=P2^3;//定义按键K4sbitbaojing=P3^3;/////////////////////////延时函数/////////////////////////////voiddelay(ucharx){uchara,b;for(a=0;a<20;a++){for(b=x;b>0;b--);}}/////////////////////////显示温度和湿度//////////////////////////voiddisp_t_h(){write_cmd(0x8c);write_dat(tab_lcd_num[ds3]);//显示温度十位write_cmd(0x8d);write_dat(tab_lcd_num[ds4]);//显示温度个位write_cmd(0xcc);write_dat(tab_lcd_num[ds1]);//显示温湿度十位write_cmd(0xcd);write_dat(tab_lcd_num[ds2]);//显示温湿度个位}///////////////////////开机显示////////////////////////////////////voiddisp_start(){for(i=0;i<16;i++){write_cmd(0x80+i);write_dat(tab_t[i]);//温度}for(i=0;i<16;i++){write_cmd(0xc0+i);write_dat(tab_h[i]);//湿度}}///////////////////////扫描按键////////////////////////////////voidkey_scan(){if(k1==0)//按下K1{//设置温度上限////////////////////////////////if(key_flag==0)//按键标志0{write_cmd(0x01);//清屏write_cmd(0x80);//显示位置第一行第一列for(i=0;i<13;i++)write_dat(tab_set_temp_H[i]);//显示SETTEMPERATURE字符while(k4==1)//按下K4{if(k2==0)//按下K2{while(k2==0);set_temp_H++;//设置温度数值加if(set_temp_H==100)//到100,清0set_temp_H=0;}if(k3==0)//按下K2{while(k3==0);//松手检测set_temp_H--;//设置温度数值减if(set_temp_H==0)//到0,加为100set_temp_H=100;}set_temp_H_ge=set_temp_H%10;//计算设置温度个位set_temp_H_shi=set_temp_H/10;//计算设置温度十位write_cmd(0xc6);write_dat(tab_lcd_num[set_temp_H_shi]);//显示设置温度个位write_cmd(0xc7);write_dat(tab_lcd_num[set_temp_H_ge]);//显示设置温度十位}delay(200);}//设置温度下限////////////////////////////////if(key_flag==1)//按键标志1{write_cmd(0x01);//清屏write_cmd(0x80);//显示位置第一行第一列for(i=0;i<13;i++)write_dat(tab_set_temp_L[i]);//显示SETTEMPERATURE字符while(k4==1)//按下K4{if(k2==0)//按下K2{while(k2==0);set_temp_L++;//设置温度数值加if(set_temp_L==100)//到100,清0set_temp_L=0;}if(k3==0)//按下K2{while(k3==0);//松手检测set_temp_L--;//设置温度数值减if(set_temp_L==0)//到0,加为100set_temp_L=100;}set_temp_L_ge=set_temp_L%10;//计算设置温度个位set_temp_L_shi=set_temp_L/10;//计算设置温度十位write_cmd(0xc6);write_dat(tab_lcd_num[set_temp_L_shi]);//显示设置温度个位write_cmd(0xc7);write_dat(tab_lcd_num[set_temp_L_ge]);//显示设置温度十位}}////设置湿度上限///////////////////////////////////////////////////if(key_flag==2)//按键标志2{write_cmd(0x01);//清屏write_cmd(0x80);//显示位置第一行第一列for(i=0;i<13;i++)write_dat(tab_set_humi_H[i]);//显示SETHUMIDITY字符while(k4==1){if(k2==0){while(k2==0);set_humi_H++;//设置湿度数值加if(set_humi_H==100)set_humi_H=0;}if(k3==0){while(k3==0);set_humi_H--;//设置湿度数值减if(set_humi_H==0)set_humi_H=100;}set_humi_H_ge=set_humi_H%10;//计算设置湿度个位set_humi_H_shi=set_humi_H/10;//计算设置湿度十位write_cmd(0xc6);write_dat(tab_lcd_num[set_humi_H_shi]);//显示设置湿度十位write_cmd(0xc7);write_dat(tab_lcd_num[set_humi_H_ge]);//显示设置湿度个位}}////设置湿度下限///////////////////////////////////////////////////if(key_flag==3)//按键标志3{write_cmd(0x01);//清屏write_cmd(0x80);//显示位置第一行第一列for(i=0;i<13;i++)write_dat(tab_set_humi_L[i]);//显示SETHUMIDITY字符while(k4==1){if(k2==0){while(k2==0);set_humi_L++;//设置湿度数值加if(set_humi_L==100)set_humi_L=0;}if(k3==0){while(k3==0);set_humi_L--;//设置湿度数值减if(set_humi_L==0)set_humi_L=100;}set_humi_L_ge=set_humi_L%10;//计算设置湿度个位set_humi_L_shi=set_humi_L/10;//计算设置湿度十位write_cmd(0xc6);write_dat(tab_lcd_num[set_humi_L_shi]);//显示设置湿度十位write_cmd(0xc7);write_dat(tab_lcd_num[set_humi_L_ge]);//显示设置湿度个位}}//按键功能结束/////////////////////////////////////////////key_flag++;if(key_fl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论