(完整版)基于单片机的智能温室温湿度控制系统的毕业设计论文_第1页
(完整版)基于单片机的智能温室温湿度控制系统的毕业设计论文_第2页
(完整版)基于单片机的智能温室温湿度控制系统的毕业设计论文_第3页
(完整版)基于单片机的智能温室温湿度控制系统的毕业设计论文_第4页
(完整版)基于单片机的智能温室温湿度控制系统的毕业设计论文_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

1、基于单片机的智能温室温湿度控制系统的设计摘要:在农业生产中,温室大棚的应用越来越广泛,为人们创造了更高的经济效益。在温室大棚中,最关键的是温湿度控制方法。传统的温湿度控制方法完全是人工的,不仅费时费力,而且效率低。本文旨在论述一种温室大棚温湿度控制系统的设计,该系统主要由单片机AT89S52、温湿度传感器DHT11、无线通信模块nRF2401、液晶显示LCD1602等组成。采用温湿度传感器DHT11来测量温湿度,它的精确度高,而且DHT11直接是输出数字信号,可直接与单片机相连。通过无线传感器nRF2401来进行信号传送,这样能够降低布线的麻烦。显示部分使用的是LCD1602来显示温湿度。本系

2、统的核心是单片机AT89S52,接收传感器所测的数据并处理,然后执行各种操作。本系统智能度高,可靠性高,系统工作稳定,且综合性价比较高,具有较大的市场应用前景。关键词:单片机,温湿度控制系统,温湿度传感器DHT11,LCD显示,无线模块nRF2401DesignoftemperatureandSCMAbstract:Inagriculturalproduction,moreandmoreextensiveapplicationinthegreenhouse,createmoreeconomicbenefitsforthepeople.Inthegreenhouse,themostcritica

3、listhetemperatureandisbedirectlyconnectedwiththesingle-chipmicrocomputer.ThroughtheNRF2401totransmitsignals,itcanreducethetroubleofwiring.ThedisplaypartisusingLCD1602todisplaythetemperatureandperformvariousoperations.Thesystemofisstable,andthe,Temperatureandx4mm封装9供电电压为1.9V36V引脚说明S5UVUUVSSIRIIMLrSJM

4、lSi12017VI)13nRr24L01图3.12nRF24L01nRF24L01引脚排列如图312所示。各引脚功能如下:CE:使能发射或接收;CSN,SCK,MOSI,MISO:SPI引脚端,微处理器可通过此引脚配置nRF24L01;IRQ:中断标志位;VDD:电源输入端;VSS:电源地;XC2,XC1:晶体振荡器引脚;VDD_PA:为功率放大器供电,输出为1.8V;ANTI,ANT2:天线接口。工作模式通过配置寄存器可将nRF24L01配置为发射、接收、空闲及掉电四种工作模式,如表3.2所示:表3.2工作模式模式PWR_UPPRIM_RXCEFIFO寄存器状态接收模式111发射模式101

5、数据在TXFIFO寄存器中发射模式100停留在发送模式,直至数据发送完待机模式2101TX_FIFO为空待机模式110无数据传输掉电0待机模式1主要用于降低电流损耗,在该模式下晶体振荡器仍然是工作的;待机模式2则是在当FIFO寄存器为空且CE=1时进入此模式;待机模式下,所有配置字仍然保留。在掉电模式下电流损耗最小,同时nRF24L01也不工作,但其所有配置寄存器的值仍然保留。工作原理3.JV22QpFcciioa20115.6pFHHl_IS西LKC7D83.3-r-aupid.2-rOSHAVJ_LRF_M5SAVTD91ss1.73.033.1CTXD)P3.2PTTOl!P33EFmA

6、T89S52图318报警系统电路图4系统软件设计本系统软件系统设计包括:系统初始化模块,数据采集模块,无线模块,1602LCD显示模块,报警模块。系统软件总体流程图如图4.1:开始终止范围NO判断1YES初始化无线信号发送单片机处理LCD显示光声报警温湿度检测图4.1系统流程图系统初始化模块系统初始化模块的主要功能是完成系统的初始化以及设定系统的工作状态,初始化部分包括以下方面的内容:1单片机初始化以及各种引脚定义2.1602液晶初始化及工作方式3係统进入正常工作状态数据采集模块温湿度检测模块是本系统中的核心模块之一,它负责完成温度和湿度的测量及模拟量转换为数字量的全过程,这也是它为什么重要的

7、原因。数字式温湿度传感器DHT11直接把检测到的模拟量转化为数字量送给单片机,在经过单片机的处理,把温湿度值显示在1602液晶上。温湿度传感器的精确度值直接影响到整个系统的检测与控制,所以本系统采用数字式温湿度传感器DHT11采集温室内的温湿度25。温湿度判断控制模块也是系统的核心模块之一,所谓判断控制模块,就是对当前温室内的实际温湿度与给定的温湿度范围进行比较,先进行判断,然后再进行控制,控制模块是决定系统将要进行什么工作的。如温度和湿度高于上限时或低于下限时需要进行启动警报,并且将温湿度结果以无线进行通信等。温湿度传感器程序流程图如图4.2所示:NY图4.2温湿度传感器程序流程图无线模块无

8、线发射模块部分首先进行初始化操作,初始化包括设置单片机IO和SPI相关寄存器两部分其可以和nRF24L01通信。通过SPI总线配置射频芯片使其进入正确的工作模式。发射数据时,首先将nRF24L01配置为发射模式26。接着把发送端待发射数据的目标地址TX-ADDR和数据TX-PLD写入nRF24L01缓冲区,延时后发射数据,其流程图如图4.3所示:上电曰结束是否接受到应答信号?写数据并开启发送配置24L01为发射模式初始化单片机是向串口传输数据否图4.3无线发射软件流程图无线接收模块部分接收数据时,首先将nRF24L01配置为接收模式。接着延迟进入接收状态等待数据的到来。当接收方检测到有效地址和

9、CRC时,就将数据包储存在接收堆栈中,同时状态寄存器中的中断标志位RX-DR置高,产生中断使IRQ引脚变为低电平,以便通知MCU去取数据,其流程图如图4.4所示:图4.4无线接收软件流程图显示模块本系统采用1602液晶显示温湿度值,当系统刚开始上电时1602液晶不显示任何数据,等待AM2301的监测数据,双行显示在1602液晶上。第一行显示:TRHRH:-%,第二行显示:TRHT:-C。图4.5显示流程图报报警模块具备两项功能,即为报警灯和声音报警。报警灯模块是完成LED有规律的转换,以便从视觉上提醒用户。LED是由单片机控制LED灯组成的,其转换规律为:1.系统温湿度值在给定的范围时,LED

10、不亮。2系统温湿度值超出给定的范围时,红色LED亮。在LED灯转换的同时,声音报警也会同时启动,可采用延时的方式来延长声音报警的声音。警报灯由1个LED灯组成,一共需要1根数据线,使用单片机AT89S52控制。要实现的功能是使LED灯有规律亮与熄灭,当系统上电后,系统进行实时的采样,并判断出当前温湿度与给定温湿度之间的差异,如果当前温湿度低于用户给定的下限温湿度值,则说明当前温湿度过低,系统自动启动红色警报灯,直至温湿度值升到适合范围时警报灯熄灭。反之,如果当前温湿度高于用户设定的上限温湿度值,则说明当前温湿度过高,系统也会自动启动警报灯,直至温湿度值降到适当范围时警报灯熄灭。5硬件调试使用A

11、T89S52单片机为控制核心芯片,DHT11温湿度传感器为空气温湿度检测模块,nRF24L01无线模块进行数据传输,进行数据的实时显示。在单片机开发板上连接好电路进行调试:图5.1正常室温中温湿度检测结果(湿度:22%,温度:31C)图5.2使用热水进行高温加热,查看其温湿度变化图5.3不断的进行使用热水加热,当温度超过其范围时报警,LED等同时亮图5.4当温度上升到超过适当范围时检测的温湿度值接收图5.6温湿度数据接收板图5.7无线模块接收发送的数据后经单片机处理后在显示屏上显示的结果结论到此智能温室温湿度控制系统的设计已经完成了,在这段时间里,先后完成了资料的收集、设计方案的拟订、画图等多

12、方面的工作。首先,通过这次应用系统设计,在很大程度上提高了自己的独立思考能力和单片机的专业知识,其次,我也深刻了解写一篇应用系统的步骤和格式,有过这样的一次训练,相信在接下来的日子我们都会了,而且会做得更好。本系统主要根据目前温室大棚技术的发展趋势和国内实际的应用特点和要求,采用了自动化的结构形式,实现对空气温湿度的自动检测和控制。系统以单片机AT89S52为核心部件,单片机系统完成对温湿度信号的采集、处理、显示等功能。该系统的主要特点是:适用性强,用户只需对参数进行设置并启动系统正常运行便可实现对温室温湿度的实时监控。实现无线信号传输。可对作物的生产环境进行适时、适当的控制,不仅有利于作物的

13、生长发育,而且避免了了资源的浪费,起到了提高作物产量的作用。附录发送部分程序#includereg52.);voidStartUART(void);voidinit_NRF24L01(void);uintSPI_RW(uintuchar);ucharSPI_Read(ucharreg);voidSetRX_Mode(void);uintSPI_RW_Reg(ucharreg,ucharvalue);uintSPI_Read_Buf(ucharreg,uchar*pBuf,ucharuchars);uintSPI_Write_Buf(ucharreg,uchar*pBuf,ucharuchars

14、);unsignedcharnRF24L01_RxPacket(unsignedchar*rx_buf);*voidnRF24L01_TxPacket(unsignedchar*tx_buf);voidread_TRH();charreceive();voidDelay(unsignedints)unsignedinti;for(i=0;is;i+);for(i=0;is;i+);voiddelay_ms(unsignedcharms)unsignedchari;while(ms-)for(i=0;i0;n-)_nop_();*NRF24L01初始化voidinit_NRF24L01(void

15、)inerDelay_us(100);CE=0;chipenableCSN=1;SpidisableSCK=0;SpiclocklineinitsetSCKlowagainreturn(uchar);returnreaduchar*函数:ucharSPI_Read(ucharreg)*功能:NRF24L01的SPI时序ucharSPI_Read(ucharreg)ucharreg_val;CSN=0;CSNlow,initializeSPIcommunication.SPI_RW(reg);Selectregistertoreadfrom.reg_val=SPI_RW(0);.thenread

16、registervalueCSN=1;CSNreturn(reg_val);returnregistervalue*功能:NRF24L01读写寄存器函数*uintSPI_RW_Reg(ucharreg,ucharvalue)uintstatus;CSN=0;status=SPI_RW(reg)SPI_RW(value);CSN=1;return(status);CSNlow,initSPItransactionselectregister.andwritevaluetoit.CSNreturnnRF24L01statusucharCSN=1;关闭SPICSN=1;关闭SPIstatus=SPI

17、_RW(reg);Selectregistertowritetoandreadstatusucharfor(uchar_ctr=0;uchar_ctruchars;uchar_ctr+)pBufuchar_ctr=SPI_RW(0);CSN=1;return(status);returnnRF24L01statusuchar*函数:uintSPI_Write_Buf(ucharreg,uchar*pBuf,ucharuchars)*功能:用于写数据:为寄存器地址,pBuf:为待写入数据地址,uchars:写入数据的个数uintSPI_Write_Buf(ucharreg,uchar*pBuf,

18、ucharuchars)uintstatus,uchar_ctr;CSN=0;SPI使能status=SPI_RW(reg);for(uchar_ctr=0;uchar_ctruchars;uchar_ctr+)SPI_RW(*pBuf+);return(status);*函数:voidnRF24L01_TxPacket(unsignedchar*tx_buf)*功能:发送tx_buf中数据voidnRF24L01_TxPacket(unsignedchar*tx_buf)CE=0;StandByI模式SPI_Write_Buf(WRITE_REG+RX_ADDR_P0,TX_ADDRESS,

19、TX_ADR_WIDTH);装载接收端地址SPI_Write_Buf(WR_TX_PLOAD,tx_buf,TX_PLOAD_WIDTH);装载数据SPI_RW_Reg(WRITE_REG+CONFIG,0 x0e);IRQ收发完成中断响应,16位CRC,主发送CE=1;置高CE,激发数据发送inerDelay_us(10);voidmain(void)uchartemp=0;init_NRF24L01();nRF24L01_TxPacket(TxBuf);TransmitTxbufferdataDelay(6000);while(1)read_TRH();nRF24L01_TxPacket(

20、TxBuf);TransmitTxbufferdataDelay(10000);可变SPI_RW_Reg(WRITE_REG+STATUS,0XFF);flag=0;charreceive()unsignedchari;ST=0;com_data=0;for(i=0;i=7;i+)respond=2;while(!TRH)&respond+);delay_us();delay_us();delay_us();if(TRH)temp=1;respond=2;while(TRH)&respond+);elsetemp=0;com_data45#avM#pppPIAaoqY:()poo厂PAUB!P

21、ptoaaoiYJOporo-nnipPTOA*vaMYWilWyupspPIOAJ0禹龄工9Pniui#吃&xo=ZIjngxiJZ3X0=IIjngxi:(H叫PpTL+0X0)(eq。)=0Ijngxi卑嫌p2卩0=6jngxiJ(01%即epRL+OEXO)(mqo)=8jngxiJ(0IT3P_Hl+0SX0)(mqo)=Zjngxivoidchange(intdat);unsignedcharcodedianliu1=设置电流:mA;unsignedcharcodedianliu2=实际电流:mA;sbitsid=P36LCD串行数据输入端sbitclk=P34;LCD时钟输入端s

22、bitcs=P3八5;LCD片选unsignedcharkey_button=0;unsignedcharkey3,j=0,i=0;KEY数组用来存放按键按下的值unsignedintad1,ad2,advalue;用于取AD采样值bitflag=0;intd_data,pf_data,t_data;unsignedcharz1_data,z2_data;intknum,aa=0,p_data,z_data,t_on;#defineTX_ADR_WIDTH5#defineRX_ADR_WIDTH5#defineTX_PLOAD_WIDTH32#defineRX_PLOAD_WIDTH32uin

23、tconst0 x34,0 x43,0 x10,0 x10,0 x01uintconst0 x34,0 x43,0 x10,0 x10,0 x015uintsTXaddresswidth5uintsRXaddresswidth20uintsTXpayload20uintsTXpayloadTX_ADDRESSTX_ADR_WIDTH本地地址RX_ADDRESSRX_ADR_WIDTH接收地址*肖舉(寸ZJMU)Ids*麵毕HHXO囹xo令eOHIH呈鄴烬建囹xo令ffiOHIHSISH0ovxo19X0令e離悴wrozxo00X0dONeucep#qdlxE-IHSflHHQcosXHHsfn

24、HeuICHep#XMlHSInHoacosavoadlxNlaMeucep#avodlxalaHQcosoHHIaLI臣euep#OsQi*令轻幣悴軸10寸ZHHN*IsWHS*墨慕專4mSS2SM囂盘梟4nlSW蓍聲o墓蚤禺g5t-HwoOlocoo5gwo9woz舄ogsg0;n-)_nop_();voiddelayms(unsignedchari)rx_buf);voidnRF24L01_TxPacket(unsignedchar*tx_buf);voidDelay(unsignedints)unsignedinti;for(i=0;is;i+)for(i=0;is;i+)uintbd

25、atasta;状态标志sbitRX_DR=sta6;sbitTX_DS=sta八5;sbitMAX_RT=sta4;unsignedcharj=120;while(i-)while(j-);voidsendcom(unsignedcharcom)向LCD发命令unsignedchara,i;cs=1;clk=0;a=0 xf8;for(i=0;i8;i+)sid=(bit)(a&0 x80)clk=0;clk=1;a=a1;a=com&0 xf0;for(i=0;i8;i+)sid=(bit)(a&0 x80);clk=0;clk=1;a=a1;a=com4;for(i=0;i8;i+)sid

26、=(bit)(a&0 x80);clk=0;clk=1;a=a1;cs=0;delayms(1);voidsenddata(unsignedchardat)向LCD发数据unsignedchara,i;cs=1;clk=0;a=0 xfa;for(i=0;i8;i+)sid=(bit)(a&0 x80);clk=0;clk=1;a=a1;a=dat&0 xf0;for(i=0;i8;i+)sid=(bit)(a&0 x80);clk=0;clk=1;a=a1;a=dat4;for(i=0;i8;i+)sid=(bit)(a&0 x80);clk=0;clk=1;a=a=3)i=0;if(fla

27、g=1)按下过START后才执行以下程序P2=0 xfe;temp=P2;temp=temp&0 xf0;if(temp!=0 xf0)delayms(10);temp=P2;temp=temp&0 xf0;if(temp!=0 xf0)temp=P2;key_button+;switch(temp)case0 xee:keyi+=1;break;case0 xde:keyi+=2;break;case0 xbe:keyi+=3;break;case0 x7e:keyi+=4;break;while(temp!=0 xf0)temp=P2;temp=temp&0 xf0;P2=0 xfd;te

28、mp=P2;temp=temp&0 xf0;if(temp!=0 xf0)delayms(10);temp=P2;temp=temp&0 xf0;if(temp!=0 xf0)temp=P2;key_button+;switch(temp)case0 xed:keyi+=5;break;case0 xdd:keyi+=6;break;case0 xbd:keyi+=7;break;case0 x7d:keyi+=8;break;while(temp!=0 xf0)temp=P2;temp=temp&0 xf0;P2=0 xfb;temp=P2;temp=temp&0 xf0;if(temp!=

29、0 xf0)delayms(10);temp=P2;temp=temp&0 xf0;if(temp!=0 xf0)temp=P2;switch(temp)case0 xeb:if(flag=1)按下过START后才执行以下程序keyi+=9;key_button+;break;case0 xdb:if(flag=1)按下过START后才执行以下程序keyi+=0;key_button+;break;case0 xbb:if(flag=1)按下过START后才执行以下程序keyi+=.;break;case0 x7b:key0=0;key1=0;key2=0;Break;while(temp!=

30、0 xf0)temp=P2;temp=temp&0 xf0;P2=0 xf7;temp=P2;temp=temp&0 xf0;if(temp!=0 xf0)delayms(10);temp=P2;temp=temp&0 xf0;if(temp!=0 xf0)temp=P2;switch(temp)case0 xe7:i=0;flag=1;break;case0 xd7:i=0;flag=0;break;case0 xb7:if(!(key0=5&key1=0&key0=0)key2=key2+5;if(key2=10)key2=0;key1+;if(key1=10)key1=0;key0+;B

31、reak;case0 x77:if(key20|key00|key10)if(key2=0)key2=5;if(key1=0)key1=9;key0-;elsekey1-;elsekey2=key2-5;Break;while(temp!=0 xf0)temp=P2;temp=temp&0 xf0;voidda_in()将KEY数组中的数送入DA中if(flag=0)未按下START,或按下了ENDP1=40*key0+4*key1+4*(key2+5)10;0200,0500if(key_button=2)key_button=0;P1=10*key0+key1elseif(key_butt

32、on=3)key_button=0;P1=100*key0+10*key1+key2;0200,0500;voiddianya_to_lcd()将电压按键值和AD采样值分别送入LCD显示unsigneda;if(od_data!=d_data)sendcom(0 x85);for(i=0;i6;i+)senddata();if(od_data!=d_data)sendcom(0 x95);for(i=0;i6;i+)senddata();if(od_data!=d_data)sendcom(0 x8d);for(i=0;i6;i+)senddata();od_data=d_data;op_da

33、ta=pf_data;oz_data=t_on;sendcom(0 x80);for(a=0;a9;a+)senddata(dianya1a);senddata(RxBuf0);senddata(RxBuf1);senddata(RxBuf2);senddata(RxBuf3)senddata(RxBuf4);senddata(RxBuf5);senddata(RxBuf6)sendcom(0 x90);for(a=0;a9;a+)senddata(dianya2a);senddata(RxBuf7);senddata(RxBuf8);senddata(RxBuf9);senddata(RxB

34、uf10);senddata(RxBuf11);senddata(RxBuf12);voidT_init()定时器初始化TMOD=0 x11;TH0=0 xf0;TL0=0 xff;TH1=0 x4f;TL1=0 xff;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;*NRF24L01初始化voidinit_NRF24L01(void)inerDelay_us(100);CE=0;chipenableCSN=1;SpidisableSCK=0;SpiclocklineinitsetSCKlowagainreturn(uchar);returnreaduchar*函数:ucharSP

35、I_Read(ucharreg)*功能:NRF24L01的SPI时序CSN=1;CSNCSN=1;CSNucharSPI_Read(ucharreg)ucharreg_val;CSNlow,initializeSPISelectregistertoreadfrom.thenreadregistervalueCSNreturnregistervalueCSN=0;communication.SPI_RW(reg);reg_val=SPI_RW(0);CSN=1;return(reg_val);*功能:NRF24L01读写寄存器函数uintSPI_RW_Reg(ucharreg,ucharvalu

36、e)uintstatus;CSN=0;CSNlow,initSPItransactionstatus=SPI_RW(reg);selectregisterSPI_RW(value);.andwritevaluetoit.return(status);returnnRF24L01statusuchar*函数:uintSPI_Read_Buf(ucharreg,uchar*pBuf,ucharuchars)*功能:用于读数据,reg:为寄存器地址,pBuf:为待读出数据地址,uchars:读出数据的个数*uintSPI_Read_Buf(ucharreg,uchar*pBuf,ucharuchar

37、s)uintstatus,uchar_ctr;CSN=0;SetCSNlow,initSPItranactionstatus=SPI_RW(reg);Selectregistertowritetoandreadstatusucharfor(uchar_ctr=0;uchar_ctruchars;uchar_ctr+)pBufuchar_ctr=SPI_RW(0);CSN=1;return(status);returnnRF24L01statusuchar*函数:uintSPI_Write_Buf(ucharreg,uchar*pBuf,ucharuchars)*功能:用于写数据:为寄存器地址,

38、pBuf:为待写入数据地址,uchars:写入数据的个数uintSPI_Write_Buf(ucharreg,uchar*pBuf,ucharuchars)uintstatus,uchar_ctr;CSN=0;SPI使能status=SPI_RW(reg);for(uchar_ctr=0;uchar_ctruchars;uchar_ctr+)SPI_RW(*pBuf+);CSN=1;关闭SPIreturn(status);*函数:voidSetRX_Mode(void)*功能:数据接收配置voidSetRX_Mode(void)revale=1;读取数据完成标志CE=0;SPI_RW_Reg(

39、WRITE_REG+CONFIG,OxOf);IRQ收发完成中断响应,16位CRC,主接收CE=1;inerDelay_us(13O);*函数:unsignedcharnRF24L01_RxPacket(unsignedchar*rx_buf)*功能:数据读取后放如rx_buf接收缓冲区中unsignedcharnRF24L01_RxPacket(unsignedchar*rx_buf)unsignedcharrevale=0;sta=SPI_Read(STATUS);读取状态寄存其来判断数据接收状况if(RX_DR)判断是否接收到数据CE=0;SPI使能SPI_Read_Buf(RD_RX_

40、PLOAD,rx_buf,TX_PLOAD_WIDTH);readreceivepayloadfromRX_FIFObufferSPI_RW_Reg(WRITE_REG+STATUS,sta);接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标志returnrevale;*函数:voidnRF24L01_TxPacket(unsignedchar*tx_buf)*功能:发送tx_buf中数据voidnRF24L01_TxPacket(unsignedchar*tx_buf)CE=0;StandByI模式SPI_Write_Buf(WRITE_REG+RX_ADDR

41、_P0,TX_ADDRESS,TX_ADR_WIDTH);装载接收端地址SPI_Write_Buf(WR_TX_PLOAD,tx_buf,TX_PLOAD_WIDTH);装载数据SPI_RW_Reg(WRITE_REG+CONFIG,0 x0e);IRQ收发完成中断响应,16位CRC,主发送CE=1;置高CE,激发数据发送inerDelay_us(10);voidStartUART(void)波特率4800TM0D=0 x21;设置定时器1为工作方式2TH1=0 xfa;TL1=0 xfa;TH0=()256;TL0=()%256;TR1=1;TR0=1;ET0=1;REN=1;SM0=0;S

42、M1=1;EA=1;ES=1;*通过串口将接收到数据发送给PC端*voidR_S_Byte(ucharR_Byte)SBUF=R_Byte;while(TI=0);查询法TI=0;*主函数*voidmain(void)uchari;init_NRF24L01();StartUART();T_init();lcd_init();key0=0;key1=0;key2=0;P1=0;Delay(600);while(1)SetRX_Mode();if(nRF24L01_RxPacket(RxBuf)dianya_to_lcd();delayms(5);参考文献1高职富温室环境控制技术的现状及发展前景

43、J中国市场,2007年第35期:吉红自动控制在国外设施农业中的应用J农业环境与发展,2007(5):52-54杨志强,周士冲,陈磊我国设施农业的发展分析J农业机械化,2006年第12期:42-43王世明,王冰.现代农业温室系统J山西农业科学(9):69-73毕玉革,麻硕士我国现代温室环境控制硬件系统的应用现状及发展J农业化研究,2009年第3期:范薇薇基于无线传感器网络的温室控制系统研究D.中国知网,2010王中心.温室土壤温湿度无线信息采集与监控系统的设计与实现.中国知网,2010李文仲,段朝玉短距离无线数据通信入门与实战M,北京航空航天大学出版社,2006张金波,张学武制约数据远距离传输的

44、因素及解决方法J微型机与应用,(10):77-82徐爱钧单片机原理实用教程电子工业出版社朱定华单片机原理与接口技术电子工业出版社刘瑞新单片机原理及应用教程机械工业出版社李朝青.PC机及单片机数据通信技术M.北京:北京航空航天大学出版社,2000刘文涛单片机应用开发实例M清华大学出版社,2005韩太林.单片机原理及应用M电子工业出版社,2005李迎霞,杜尚丰中国温室环境智能控制算法研究进展N农业工程学报(2):LEWISR.ModelingcontrolsystemusingIEC61499MInstitutionofElectricalEngineers,2001CHRISTENSENJH.BasicconceptofIEC61499C.FachtagungVerteilteAutomatisierung,MagdeburgDE,2000:22-23IEC65240CD,Functionblocksforindustrial-processmeasuremen

温馨提示

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

评论

0/150

提交评论