基于物聯(lián)網技術的溫室大棚控制系統(tǒng)設計電科_第1頁
基于物聯(lián)網技術的溫室大棚控制系統(tǒng)設計電科_第2頁
基于物聯(lián)網技術的溫室大棚控制系統(tǒng)設計電科_第3頁
基于物聯(lián)網技術的溫室大棚控制系統(tǒng)設計電科_第4頁
基于物聯(lián)網技術的溫室大棚控制系統(tǒng)設計電科_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

的溫室大棚控制系統(tǒng)設計電科基于物聯(lián)網技術的溫室大棚控制系統(tǒng)設計劉娟(德州學院物理系,山東德州253023)摘要基于物聯(lián)網技術的溫室大棚控制系統(tǒng)以AT89S52人工補光;使用SHT10數(shù)字式溫濕度傳感器、FDS-100型土壤水分傳感器、SH-300-DH二氧化碳傳感器和TSL2561光強傳感器,將采集的大棚內的數(shù)據信息在液晶1602上顯示出來,并通過無線通信模塊nRF905濃度等環(huán)境參數(shù),以直觀的數(shù)據顯示給用戶,并可以根據種植作物的需求提供報警信息。關鍵詞AT89S52;傳感器;nRF9051緒論待。物聯(lián)網一種物體、機器間不需要人的參與即可完成信息交互的通信方式(Internetofthings)便應運而生[1]整個信息采集、傳遞、計算的過程中無需人的參與交互。源利用精準化、效率最大化[2]。無線傳感網絡由部署在監(jiān)測區(qū)域內大量的微型傳感器節(jié)點通過無線通信形數(shù)的信息[3]氣、光、熱等植物生長所必需的條件控制到最佳狀態(tài),保證作物的增產增收。出一種基于物聯(lián)網技術的溫室大棚控制系統(tǒng)。2系統(tǒng)方案與論證本設計給出了三種方案。2.1方案論述AT89S52SHT10數(shù)字式溫濕度傳感器、FDS-100型土壤水分傳感器、SH-300-DH二氧化碳傳感器和TSL2561光強傳感器分別檢測溫室大棚的AT89S52單1602上顯示出來,并通過無線通信模塊nRF905將信號傳到從機。此外,主機完成各項數(shù)值預制和光燈的控制功能。系統(tǒng)的總體結構框圖,如圖2.1所示。無線土壤水分傳感MAX485圖2.1系統(tǒng)框圖MSP430為主控制器用來總體協(xié)調控制整個系統(tǒng),對內部A/D采集的數(shù)據進行處理,與內部設定的數(shù)據庫比較,根據設定的MSP430采用兩塊TMP275溫度傳感器,來采集大棚內外的溫度值。濕度和光強利用MSP430內部A/D通過P6.0~P6.3的4TGS4160見圖2.2。MSP430主控制器圖2.2系統(tǒng)框圖方案三:本溫室大棚控制系統(tǒng)的核心采用AT89C51單片機;溫度傳感器采用改進型智能傳感器DS18B20;智能濕度傳感器采用SHT11;光照度傳感器采用GZD-01CO2傳感器選用紅外線氣敏傳感器。A/D轉換模塊采用逐次漸近型8路A/D轉換器ADC0809,利用AT89C51單片機的串行I/O口,采用了專用電平轉換芯片MAX232,把TTL電平轉換成RS232電平,將數(shù)據傳給上位機(PC機),進行數(shù)據的存儲。采用液晶顯示器(LCD)進行實時顯示,系統(tǒng)框圖如圖2.3所示。A/D圖2.3系統(tǒng)框圖變2.2方案比較方案一使用的控制器為AT89S52單片機,方案二使用的控制器為MSP430單片機,方案三使用的控制器為AT89C51單片機,沒有數(shù)據存儲功能。與方案二和方案三的單片機相比較,AT89S52單片機功耗低,性能高而且成本不高,并且完全能夠滿足本方案的需求。方案一使用SHT10數(shù)字式溫濕度傳感器來檢測溫室大棚中空氣的溫濕度,方案二選擇兩塊TMP275感器DS18B20SHT10數(shù)字號,無需經過AD轉換,連接簡單,可以有效地解決傳統(tǒng)溫、濕度傳感器的不足。方案一使用FDS-100型土壤水分傳感器檢測土壤中水分的含量,方案二的濕度和光強利用MSP430內部A/D通過P6.0~P6.3的4案三濕度傳感器SHT11FDS-100型各種土壤的真實水分含量,密封性好,可長期埋入土壤中使用,且不受腐蝕。方案一使用SH-300-DH二氧化碳傳感器檢測溫室大棚中二氧化碳的含量,方案二使用TGS4160固態(tài)電化學型二氧化碳傳感器檢測溫室大棚中二氧化碳的濃度,但TGS41602二氧化碳濃度。與方案二和方案三相比較,SH-300-DH二氧化碳傳感器具有對二氧化碳靈敏度高、受溫濕度環(huán)境影響小、穩(wěn)定性好、使用方便、成本低等特點。方案一使用TSL2561的濕度和光強利用MSP430內部A/D通過P6.0~P6.3的4個端口進行多通道序列采集,方案三使用GZD-01型光照度感應探頭。與方案二與方案三相比較,方案一的TSL2561方便、線性度好、傳輸距離長、抗干擾能力強。精確度較高,連接簡單的要求,選擇方案一來設計本溫室大棚控制系統(tǒng)。3系統(tǒng)硬件設計電路模塊,顯示電路模塊,報警電路模塊、通信電路模塊、控制電路模塊組成。3.1控制器模塊本設計的控制器模塊選用AT89S52CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術制造,與工業(yè)80C51產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程FlashAT89S52在眾多嵌入式控制應用系統(tǒng)中得到廣泛應用。(1)標準功能:8K字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時216位定時器/6向量2工串行口,片內晶振及時鐘電路[4]。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2CPURAM/RAM單片機一切工作停止,直到下一個中斷或硬件復位為止。(2)AT89S52單片機和MCS-51種封裝形式,分別是PDIP形式,為40針腳;PLCC形式,為44針腳;TAFP形式,也為44針腳[5]。其中,常用的為PDIP形式,如圖3.1所示。圖3.1AT89S52的引腳圖3.2空氣溫濕度測量電路模塊本設計選擇SHT10數(shù)字式溫濕度傳感器來檢測溫室大棚中空氣的溫濕度。SHT10數(shù)字式溫濕度傳感器是由Sensirion公司推出的一種可以同時測量濕號放大、A/D轉換、I2C總線接口全部集成于一個芯片上(CMOSens技術)定性;測量精度高,濕度的精度為±3.5,溫度的精度為±0.5℃(在20℃時);可靠的CRC數(shù)據傳輸校驗功能;片內裝載的校準系數(shù),保證100%的互換性;電源電壓為2.4~5.5V[6]。引腳功能:1(GND):接地;2(DATA)與3(SCK):串行數(shù)字接口,其中DATA為數(shù)據線;4(VDD):接電源。如圖3.2所示,SHT10數(shù)字式溫濕度傳感器來檢測溫室大棚中空氣的溫濕度,并將檢測到的信號傳送給單片機的P0口,讓單片機處理。圖3.2SHT10數(shù)字式溫濕度傳感器連接電路圖3.3土壤濕度測量電路模塊本設計選擇FDS-100型土壤水分傳感器檢測土壤中水分的含量。FDS-100型土壤水分傳感器引腳功能[7]如下:紅線(VDD):5-12V電源輸入黃線(V-OUT):電壓輸出0~1.875VDC黑線(GND):地線功能及特點:(1)本傳感器體積小巧化設計,攜帶方便,安裝、操作及維護簡單。(2)結構設計合理,不繡鋼探針保證使用壽命。(3)受腐蝕。(4)土質影響較小,應用地區(qū)廣泛。(5)測量精度高,性能可靠,確保正常工作。(6)響應速度快,數(shù)據傳輸效率高。FDS-100型土壤水分傳感器經過LM358經信號放大輸送至單片機P0口,電路如圖3.3所示。圖3.3FDS-100型土壤水分傳感器連接電路圖3.4光強測量電路模塊本設計選擇TSL2561光強傳感器檢測溫室大棚的光照度。各引腳的功能[8]如下:腳1和腳3分別是電源引腳和信號地。其工作電壓工作范圍是是2.7V-3.5V。腳23個不同的訪問地址。腳4和腳6,總線的時鐘信號線和數(shù)據線。腳5中斷信號輸出引腳。當光強度超過用戶編程設置的上或下閾值時器件會輸出一個中斷信號。TSL2561光強度數(shù)字轉換芯片與單片機P03.4所示。圖3.4TSL2561光強傳感器連接電路圖3.5二氧化碳測量電路模塊本設計采用SH-300-DH塊主要應用于CO2含量的檢測,具有體積小,反應靈敏,檢測精度高等優(yōu)點。其主要性能參數(shù)[9]如下所示:(1)檢測范圍:0-3000PPM;(2)精度:0-3000PPM,10-50℃;(3)響應時間:小于30秒(0-80%),數(shù)據更新時間:2秒;(4)預熱;<90秒(25℃);(5)輸出:模擬:0-3V;數(shù)字UART:默認波特率9600bps;(6)輸入電壓:DC7V-12V;字通信方式,該傳感器的數(shù)字輸出腳直連到單片機的RXD管腳上。電路圖如圖3.5所示。圖3.5SH-300-DH二氧化碳傳感器連接電路3.6顯示電路模塊本設計采用LCD1602作為輸出器件,其特點如下:(1)顯示質量高:由于LCD每一個點在收到信息后就一直保持那中色彩和亮度,恒定發(fā)光,不需要不斷的刷新亮點,因此畫質高且不會閃爍。(2)數(shù)字式接口,與單片機系統(tǒng)的接口簡單,操作更方便。(3)體積小,質量輕。(4)功耗低,耗電量比其他顯示器件小得多。電路原理圖如圖3.6所示。圖3.6LCD1602顯示電路圖3.7報警電路模塊I/O口數(shù)長時間(具體時間由程序設定)與單片機的連接電路如圖3.7所示。圖3.7報警電路3.8通信電路模塊本系統(tǒng)的通信電路模塊分為主機與從機之間的無線通信和單片機與上位機之間的串口通信。主機與從機之間的無線通信主要是主機把采集到的空氣溫濕度、土壤濕度、二氧化碳濃度以及光強照度的數(shù)據通過一對配置的nRF905無線收發(fā)模塊發(fā)送到子系統(tǒng)的運行。nRF905是挪威Nordic公司推出的單片射頻發(fā)射器芯片,工作電壓為1.9~3.6V32引腳QFN5mm×5mm433/868/915MHz3個ISM頻道。nRF905可以自動完成處理字頭和CR(循環(huán)冗余碼校驗)動完成曼徹斯特編碼/解碼,使用SPI接口與微控制器通信,配置非常方便,其-10dBm的輸出功率發(fā)射時電流只有11mA12.5mA[10]。單片機由I/O端口控制nRF905模塊的狀態(tài)接口、模式接口和SPI接口。nRF905詳細結構圖如圖3.8所示。3.8nRF905結構圖AT89S52單片機為微控制nRF905連接電路由一對配置nRF905模塊構成,其中一端作為發(fā)送端,另一端作為接收端。主機與從機之間無線通信連接電路圖見附錄1。本系統(tǒng)的單片機與上位機之間的串口通訊采用符合RS-485電氣標準的MAX485芯片。RS-485/接收,共模抑制比高,抗干擾10Mb/s(傳送15m)MODEM100kb/s的距離為1.2km;能實現(xiàn)多點對多點的通信,RS-485允許平衡電纜上連接32個發(fā)送器/接收器對。它非常適合溫室大棚規(guī)模擴大時的測控系統(tǒng)的擴展。單片機和上位機之間的通信必須用RS232/RS485轉換器EM485B將電平進行轉換。MAX-485與單片機連接電路,如圖3.9所示。圖3.9單片機與上位機通信電路圖3.9控制電路模塊通常應用于自動控制電路中,它實際上是用較小的電流去控制較大電流的一種“自動開關。故在電路中起著自動調節(jié)、安全保護、轉換電路等作用。如圖3.10所示,從機從主機接受指令控制繼電器的開關,從而使各類執(zhí)行器件起到對溫室環(huán)境調節(jié)的作用。圖3.10繼電器控制電路3.10電源電路模塊本設計中用到3種電源,分別為-5V、+5V、+12V。如圖3.11所示,220V交流電經變壓器降壓、橋式整流、電容濾波后由7905、7805、7812三端集成穩(wěn)壓管分別得到-5V、+5V、+12V電壓,為整個系統(tǒng)供電。圖3.11電源電路圖4系統(tǒng)軟件設計根據空氣溫濕度、土壤濕度、二氧化碳濃度、光照度等數(shù)據的特點和農作PIDAT89S52進行比較,經過PID算法得到控制量并由單片機輸出去控制加熱爐、補光光源。4.1PID控制算法原理控制器本身是一種基于對“過去、“現(xiàn)在”和“未來”信息估計的簡單控制算法。常規(guī)的控制系統(tǒng)主要由控制器和被控對象組成。作為一種線性控制器,組合構成控制量,對被控對象進行控制,故稱控制器。PID控制器的輸出u(t)與輸入e(t)微分的關系。即(4.1)寫成傳遞函數(shù)的形式(4.2)PID控制器各個參數(shù)對系統(tǒng)的動態(tài)和穩(wěn)態(tài)性能有不同的影響[11]。A比例作用產生控制作用,使偏差向減小的趨勢變化。(1)對動態(tài)特性的影響比例控制參數(shù)KcKcKcKc系統(tǒng)的動作緩慢。(2)對穩(wěn)態(tài)特性的影響加大比例系數(shù)Kcess精度,但是加大Kc只是減少ess,卻不能完全消除穩(wěn)態(tài)誤差。在PID下快速克服。B積分作用積分作用的引入,主要是為了保證被控量在穩(wěn)態(tài)時對設定值的無靜差跟蹤,它對系統(tǒng)的性能影響可以體現(xiàn)在以下兩方面:(1)對動態(tài)特性的影響Ti太小系統(tǒng)將不穩(wěn)定,TiTi太大,對系統(tǒng)性能的影響減少,當Ti合適時,過渡特性比較理想。(2)對穩(wěn)態(tài)特性的影響積分作用能消除系統(tǒng)的穩(wěn)態(tài)誤差,提高控制系統(tǒng)的控制精度。但是Ti太大時,積分作用太弱,以至不能減小穩(wěn)態(tài)誤差。C微分作用PD控制或者PID控制。量較小,調節(jié)時間縮短,允許加大比例控制,使穩(wěn)態(tài)誤差減小,提高控制精度。當微分時間TdTd偏小時,超調量也較大,調節(jié)時間也較長只有合適時,可以得到比較滿意的過渡過程。直觀地分析,來變化趨勢之間形成近似的比例關系。從頻域分析的角度講,微分作用等效于一個高通濾波器,即有可能在控制輸出中引入較強的高頻噪聲,這是實際控制所不希望的。計算機控制系統(tǒng),用軟件實現(xiàn)PID控制算法,而且可以利用計算機的邏輯功能,使PID值計算控制量。因此,連續(xù)PID控制算法不能直接使用,需要采用離散化方法。在計算機PIDPIDPID控制算法以及增量式PID控制算法[12]。本系統(tǒng)采用了增量數(shù)字化PID對數(shù)值時,就可以使用增量式PID控制器進行控制[13]。PID遞推原理可得(4.3)用式(4.3)減式(4.4),可得增量式PID控制算法(4.4)式(4.5)稱為增量式PID控制算法,將其進一步可改寫為(4.5)增量式控制雖然只是算法上作了一點改進,卻帶來了不少的優(yōu)點[14]:(1)法去掉。(2)手動/自動切換時沖擊小,便于實現(xiàn)無擾動切換。此外,當計算機發(fā)生故障時,由于輸出通道或執(zhí)行裝置具有信號的鎖存作用,故仍能保持原值。(3)算式中不需要累加??刂圃隽縰(k)的確定,僅與最近k次的采樣值有關,所以較容易通過加權處理而獲得比較好的控制效果。但是增量式控制也有其不足之處[15]:積分截斷效應大,有靜態(tài)誤差;溢出門作為執(zhí)行器的系統(tǒng)中,則可采用增量式控制算法。4.2系統(tǒng)下位機主程序流程圖設計本系統(tǒng)軟件下位機程序主要由下位機各數(shù)據測控、上位機與下位機通訊、4.1碳濃度后進入下一個循環(huán)重新開始比較空氣溫濕度。NYN空氣濕度是否在YN土壤濕度是否YNYNNY圖4.1主程序圖5結論AT89S52PIDCO2模塊nRF905將采集信息傳送給控制主機,再結合有線技術傳送給上位機,將無具有良好的擴展性和實用性,對于實現(xiàn)溫室的智能化測控管理,降低勞動強度,提高生產效率,創(chuàng)造大棚生產的最佳效益將產生積極作用。參考文獻[1]管繼剛.物聯(lián)網技術在智能農業(yè)中的應用[J].通信管理與技術,2010(3):24-27.[2]孫科.物聯(lián)網在現(xiàn)代農業(yè)上的應用[J].無線互聯(lián)科技,2012(3):19.[3]龔道禮.基于無線傳感器網絡的環(huán)境監(jiān)測系統(tǒng)研制[D].中國地質大學,2011:8.[4]胡漢才.單片機原理及系統(tǒng)設計[M].北京:清華大學出版社,2001:20-26.[5]劉守義.單片機應用技術[M].西安:西安電子科技大學出版社,2002.[6].基于AT89S52單片機的多功能智能溫室測控系統(tǒng)[J].農機化研究,2009(5):139.[7]龔元石,李子忠.FDS探針兩種埋設方式下土壤水分的測定及其比較[J].農業(yè)工程學報,1997,13(2):242-244.[8]來清民.傳感器與單片機接口及實例[M].北京:北京航空航空大學出版社,2008:139-141.[9]鐘亞飛.基于單片機的溫室二氧化碳測控系統(tǒng)的設計[D].山東科技大學,2011:13.[10]nRF905的無線數(shù)據傳輸系統(tǒng)[J]2008,(1):29-31.[11]趙建華,沈永良.一種自適應PID控制算法[J].自動化學報,2001,27(2):417-420.[12]劉金琨.先進PID控制MATLAB仿真[M].北京:電子工業(yè)出版社(第2版),2004,9.[13]張宇河,金鈺.計算機控制系統(tǒng)[M].北京;北京理工大學出版社,1996.[14]IbrahimKayaNusretTanDerekP.Atherton.ArefinementprocedureforPIDcontrollers[J].ElectricalEngineering,(2006)(88):215–221.[15][美]KatsuhikoOgata.陸伯英,于海勛等(譯).現(xiàn)代控制工程(第三版)[M]子工業(yè)出版社,2000,3.DesignoftheIntelligentMonitoringSystemforGreenhouseBaseduponInternetofThingsLiuJuan(DepartmentofPhysics,DezhouUniversity,Dezhou,253023)AbstractBasedonthecontentofthenetworkingtechnologiesgreenhousecanopycontrolsystembyAT89S52singlechipmicrocomputerasthecore,theheatingfurnaceandfan,sprinklerirrigationandirrigation,fluorescentlamp,respectively,andtoincreasetheheatshedgreenhousecarbondioxideconcentration,increasetheairhumidity,irrigation,artificiallightsupplement;SHT10digitaltemperatureandhumiditysensors,usingFDS-100typesoilmoisturesensor,SH-300-DHcarbondioxidesensorandTSL2561stronglightsensor,willshedthedatacollectedintheinformationintheliquidcrystaldisplayonthe1602,andthroughtheserialcablecommunicationwillsignalstofromthemachine.Thehosttofinishthenumericalprecastandalarmcircuitmodulefunction,andfromthecompletecollectionofmachinenumericaldisplayandheatingandfan,sprinklerirrigationandirrigationandfluorescentlampcontrolfunctions.Inthispaperthedesigngreenhousecanopycontrolsystem,cancollectreal-timecontroloftheairtemperatureandhumidityingreenhouse,soilhumidity,lightintensity,theconcentrationofcarbondioxideandotherenvironmentalparameterstointuitivedatashowstotheuser,andmay,accordingtothedemandofplantingcropsprovidealarminformation.KeywordsAT89S52;SHT10;FDS-100;SH-300-DH;TSL2561致謝選題、構思和資料的收集方面,還是在論文的中期過程檢查以及成文定稿方面,地感謝和深深的謝意。學們,在我論文設計過程中給予的幫助,使我能夠順利的完成論文設計?!鄵狃B(yǎng)我長大的父母,謝謝您們!附錄1主機與從機無線通信模塊電路圖附錄2系統(tǒng)總電路圖附錄3程序#include<reg52.h>//"頭文件"#include<1602.h>#include<cat24c.h>#include<ds1302.h>#include<0832.h>#include<wenshi.h>#include<image.h>sfrAUXR=0x8e;sfrAUXR1=0xa2;//"key記錄鍵值;k自動控制標志;i、b用于顯示"unsignedcharkey=0,k=0,i=0,b=0,m=0,j=0,l=0,g=10,s=0;//"m、l、j、g用于計時"unsignedcharxdatashow[8];//"用于顯示轉換"unsignedcharxdatawet[6];//"濕度[0:1]、溫度[2:3]、CO2[4]、光強[5]"unsignedcharxdatamax[6]={0};unsignedcharxdatamin[6]={0};unsignedcharxdatat0ime[8]={1,2,3,5,6,7,8,9};/**///"比較參量0,時間[0:1]、濕度[2:3]、溫度[4:5]、CO2[6]、光強[7]"unsignedcharxdatat1ime[8]={1,2,3,5,6,7,8,9};/**///"比較參量1,時間[0:1]、濕度[2:3]、溫度[4:5]、CO2[6]、光強[7]"unsignedcharaddress=0x10;//"RAM地址"sbitkey1=P1^7;//"按鍵1"sbitkey2=P0^1;//"2"sbitkey3=P0^2;//"3"sbitkey4=P0^0;//"4"sbitled=P0^3;//"12864背燈"sbitco2=P3^7;//"CO2加熱"sbitmo=P2^0;//"電機"sbitli=P2^1;//"加熱燈"voidmenu();voidwelcome()//"歡迎界面"{chn_disp(0x92,4,"歡迎使用");chn_disp(0x98,8,"吉林大學電子學院");}voidreadall()//"讀取時間、濕、溫、CO2、光強"{Read_RTC();RH(wet);wet[4]=Adc0832(1);wet[5]=Adc0832(1);}voidchange(unsignedcharn)//"數(shù)據格式轉換"{unsignedchark;unsignedintg;switch(n){case0:for(k=0;k<3;k++){show[6-3*k]=set_rtc_code[k]/16+'0';show[7-3*k]=set_rtc_code[k]%16+'0';}show[5]=show[2]=':';break;case1:show[0]=set_rtc_code[6]/16+'0';show[1]=set_rtc_code[6]%16+'0';show[4]=set_rtc_code[4]/16+'0';show[5]=set_rtc_code[4]%16+'0';show[6]=set_rtc_code[3]/16+'0';show[7]=set_rtc_code[3]%16+'0';break;case2:show[0]=t0ime[1]/16+'0';show[1]=t0ime[1]%16+'0';show[3]=show[2]='-';show[4]=t0ime[0]/16+'0';show[5]=t0ime[0]%16+'0';break;case3:show[0]=t1ime[1]/16+'0';show[1]=t1ime[1]%16+'0';show[3]=show[2]='-';show[4]=t1ime[0]/16+'0';show[5]=t1ime[0]%16+'0';break;case4:g=wet[0]*0x100+wet[1];show[0]=g/100+'0';show[1]=(g/10)%10+'0';show[2]='.';show[3]=g%10+'0';show[4]='%';break;case5:g=wet[2]*0x100+wet[3];show[0]=g/100+'0';show[1]=(g/10)%10+'0';show[2]='.';show[3]=g%10+'0';break;case6:g=CO2_deal(wet[4]);show[0]=g/1000+'0';show[1]=(g/100)%10+'0';show[2]=(g/10)%10+'0';show[3]=g%10+'0';show[4]='p';show[5]='p';show[6]='m';break;case7:show[0]=wet[5]/16+'0';show[1]=wet[5]%16+'0';show[2]='p';show[3]='p';show[4]='m';break;}}voidclean()//"清屏"{wr_lcd(comm,0x30);wr_lcd(comm,0x01);lat_disp(0,0);delay1(100);}voidz()//"制作"{clean();chn_disp(0x80,2,"制作");chn_disp(0x92,2,"肖輝");chn_disp(0x8a,3,"呂興東");chn_disp(0x9a,3,"王大美");}voidshowall(chara)//"1602顯示所有"{switch(a){case0:readall();wr_lcd(comm,0x0c);clean();change(0);chn_disp(0x80,4,show);chn_disp(0x85,2,"星期");show[0]=set_rtc_code[5]+'0';chn_disp_1(0x87,0,1,show);change(4);chn_disp_1(0x90,0,5,show);change(5);chn_disp_1(0x95,0,5,show);chn_disp_1(0x97,0,2,"℃");change(6);chn_disp_1(0x88,0,7,show);change(7);chn_disp_1(0x8d,0,5,show);chn_disp(0x98,4,"功能設置");break;case1:chn_disp(0x80,4,"參量設置");chn_disp(0x90,4,"模式設置");chn_disp(0x88,4,"記錄處理");chn_disp(0x98,2,"復位");break;case2:chn_disp(0x82,4,"參量設置");chn_disp(0x90,4,"測量間隔");chn_disp(0x88,4,"時間設置");chn_disp(0x98,4,"濕度范圍");break;case9:chn_disp(0x82,4,"參量設置");chn_disp(0x90,4,"溫度范圍");chn_disp_1(0x88,0,4,"CO^2");chn_disp(0x8a,2,"濃度");chn_disp(0x98,4,"光強范圍");break;case3:chn_disp(0x82,4,"測量間隔");show[0]=s/10+'0';show[1]=s%10+'0';chn_disp_1(0x91,0,2,show);chn_disp(0x92,2,"分鐘");show[0]='/';chn_disp_1(0x94,0,1,show);chn_disp(0x95,1,"次");chn_disp(0x98,2,"確定");break;case4:chn_disp(0x82,4,"時間設置");change(1);chn_disp(0x92,4,show);chn_disp(0x91,3,show);chn_disp(0x92,1,"年");chn_disp(0x94,1,"月");chn_disp(0x96,1,"日");change(0);chn_disp(0x8a,4,show);show[5]=show[4];show[4]=show[3];chn_disp(0x89,3,show);chn_disp(0x8a,1,"時");chn_disp(0x8c,1,"分");chn_disp(0x8e,1,"秒");chn_disp(0x9a,2,"星期");show[0]=set_rtc_code[5]+'0';chn_disp_1(0x9c,0,1,show);break;case5:chn_disp(0x82,4,"濕度范圍");wet[0]=t0ime[2];wet[1]=t0ime[3];change(4);chn_disp_1(0x95,0,5,show);wet[0]=t1ime[2];wet[1]=t1ime[3];change(4);chn_disp_1(0x8d,0,5,show);break;case6:chn_disp(0x82,4,"溫度范圍");wet[2]=t0ime[4];wet[3]=t0ime[5];change(5);chn_disp_1(0x95,0,5,show);wet[2]=t1ime[4];wet[3]=t1ime[5];change(5);chn_disp_1(0x8d,0,5,show);chn_disp_1(0x8f,0,2,"℃");break;case7:chn_disp_1(0x81,0,3,"CO2");chn_disp(0x83,4,"濃度范圍");wet[4]=t0ime[6];change(6);chn_disp_1(0x95,0,5,show);wet[4]=t1ime[6];change(6);chn_disp_1(0x8d,0,5,show);break;case8:chn_disp(0x82,4,"光強范圍");wet[5]=t0ime[7];change(7);chn_disp_1(0x95,0,5,show);wet[5]=t1ime[7];change(7);chn_disp_1(0x8d,0,5,show);break;case12:chn_disp(0x82,4,"模式設置");chn_disp(0x90,4,"自動補償");chn_disp(0x88,4,"手動補償");chn_disp(0x98,4,"定時補償");break;case11:chn_disp(0x82,4,"定時補償");chn_disp(0x90,1,"從");change(2);chn_disp(0x95,3,show);chn_disp(0x88,1,"到");change(3);chn_disp(0x8d,3,show);chn_disp(0x98,2,"確定");break;case22:chn_disp(0x82,4,"記錄處理");chn_disp(0x90,4,"上次記錄");chn_disp(0x88,2,"作圖");chn_disp(0x98,2,"確定");break;case23:chn_disp(0x82,4,"上次記錄");change(0);chn_disp(0x90,4,show);change(4);chn_disp_1(0x88,0,5,show);change(5);chn_disp_1(0x8d,0,5,show);change(6);chn_disp_1(0x98,0,7,show);change(7);chn_disp_1(0x9d,0,5,show);break;case24:chn_disp(0x80,4,"濕度作圖");chn_disp(0x90,4,"溫度作圖");chn_disp_1(0x88,0,3,"CO2");chn_disp(0x8a,2,"濃度");chn_disp(0x98,4,"光強作圖");break;case32:chn_disp(0x80,5,"確定將系統(tǒng)");chn_disp(0x91,6,"恢復初始狀態(tài)");chn_disp_1(0x97,0,1,"?");chn_disp(0x98,2,"確定");break;case46:clean();chn_disp(0x92,5,"設置已保存");break;}if((4<a)&&(a<9)){chn_disp(0x90,2,"最高");chn_disp(0x88,2,"最低");chn_disp(0x98,2,"確定");}if(a%23)chn_disp(0x9e,4,"返回");}voidchoose(unsignedchara,unsignedcharw)//"反白"{w=(0xff)*w;switch(a){case0:con_disp(w,w,0x80,0x80,4,16);//"第一行前4個字反白"break;case1:con_disp(w,w,0x80,0x90,4,16);//"第二行前4個字反白"break;case2:con_disp(w,w,0x88,0x80,4,16);//"第三行前4個字反白"break;case3:con_disp(w,w,0x88,0x90,4,16);//"第四行前4個字反白"break;case11:con_disp(w,w,0x85,0x90,3,16);//"第二行后3個字反白"break;case12:con_disp(w,w,0x8d,0x80,3,16);//"第三行后3個字反白"break;case100:con_disp(w,w,0x81,0x90,1,16);//"第二行第2個字反白"break;case101:con_disp(w,w,0x83,0x90,1,16);//"第二行第4個字反白"break;case102:con_disp(w,w,0x85,0x90,1,16);//"第二行第6個字反白"break;case103:con_disp(w,w,0x87,0x90,1,16);//"第二行第8個字反白"break;case104:con_disp(w,w,0x89,0x80,1,16);//"第二行第2個字反白"break;case105:con_disp(w,w,0x8b,0x80,1,16);//"第三行第4個字反白"break;case106:con_disp(w,w,0x8d,0x80,1,16);//"第三行第6個字反白"break;case107:con_disp(w,w,0x8f,0x80,1,16);//"第三行第8個字反白"break;case108:con_disp(w,w,0x8c,0x90,1,16);//"第四行第5個字反白"break;}}voidsend()//"數(shù)據從串口送入計算機"{;/**/}voidwriteall()//"數(shù)據寫入RAM"{Writepage(set_rtc_code,address,4);Writepage(wet,address+0x04,6);//"記錄數(shù)據"address+=0x0a;if(address>0xf5){send();//"寫滿送入串口"address=0x10;}}voidrecord()//"將參量寫入RAM"{Writepage(t0ime,0,8);Writepage(t1ime,8,8);}voidok()//"顯示設置已保存"{showall(46);delay1(4000);b=i=m=0;menu();}voidadd(unsignedcharb)//"調整時間"{switch(b){case0:set_rtc_code[6]++;if((set_rtc_code[6]&0x0f)>9)set_rtc_code[6]+=6;if((set_rtc_code[6]&0x0f0)>0x9f)set_rtc_code[6]=0;break;case1:set_rtc_code[4]++;if((set_rtc_code[4]&0x0f)>9)set_rtc_code[4]+=6;if(set_rtc_code[4]>0x12)set_rtc_code[4]=1;break;case2:set_rtc_code[3]++;if((set_rtc_code[3]&0x0f)>9)set_rtc_code[3]+=6;if(set_rtc_code[3]>0x31)set_rtc_code[3]=1;switch(set_rtc_code[4]){case4:case6:case9:case0x11:if(set_rtc_code[3]>0x30)set_rtc_code[3]=1;break;case2:if(set_rtc_code[3]>0x29)set_rtc_code[3]=1;if((set_rtc_code[6]%16)%4)if(set_rtc_code[3]>0x28)set_rtc_code[3]=1;break;}break;case3:set_rtc_code[2]++;if((set_rtc_code[2]&0x0f)>9)set_rtc_code[2]+=6;if(set_rtc_code[2]>0x23)set_rtc_code[2]=0;break;case4:case5:set_rtc_code[5-b]++;if((set_rtc_code[5-b]&0x0f)>9)set_rtc_code[5-b]+=6;if(set_rtc_code[5-b]>0x59)set_rtc_code[5-b]=0;break;case6:set_rtc_code[5]++;if(set_rtc_code[5]>7)set_rtc_code[5]=1;break;}}voidfuwei()//"復位函數(shù),用于將系統(tǒng)恢復初始狀態(tài)"{unsignedcharysh[2];ysh[0]=10+'0';ysh[1]='0';Writepage(ysh,0xfe,2);k=0;g=10;}voiddraw(unsignedcharqd)//"畫圖函數(shù)"{unsignedcharqe,qr;unsignedintqw,qq,qp;clean();switch(qd){case0:qr=0x14;qq=max[0]*0x100+max[1];qp=min[0]*0x100+min[1];break;case1:qr=0x16;qq=max[2]*0x100+max[3];qp=min[2]*0x100+min[3];break;case2:qr=0x18;qq=max[4];qp=min[4];break;}D2=1;D0=D1=D3=D4=D5=D6=D7=0;for(;qw<address;qr+=10){qe=Read24C02(qr);if(qd<2)qw=qe*0x100+Read24C02(qr+1);elseqw=qe;image_deal(qe,0x00+(set_rtc_code[2]/0x10)*10+(set_rtc_code[2]%0x10),qd,qq,qp,(address-0x06)/10);qr+=0x0a;}}voidmenu()//"菜單"{switch(i){case0:showall(i++);b=0;choose(3,1);break;case1:switch(key){case1:clean();showall(i++);choose(3,0);choose(b,1);break;case2:case3:showall(0);choose(3,1);break;case4:led=0;//wr_lcd(comm,0x08);i=b=0;break;}break;case2:switch(key){case1:i=i+10*b;clean();showall(i++);choose((b/3)*2+1,1);b=0;break;case2:showall(i-1);choose(b,0);b++;if(b>3)b=0;choose(b,1);break;case3:showall(i-1);choose(b,0);if(!b)b=4;b--;choose(b,1);break;case4:i=0;menu();break;}break;case3:switch(key){case1:clean();if(!b)s=g;showall((i++)+b);if(b>1)choose(1,1);elsechoose(100,1);i+=b;b=0;break;case2:choose((b%3)+1,0);b++;if(b>5)b=0;showall(i-1+(b/3)*7);choose((b%3)+1,1);break;case3:choose((b%3)+1,0);if(!b)b=6;b--;showall(i-1+(b/3)*7);choose((b%3)+1,1);break;case4:i--;clean();showall(i-1);choose(b=0,1);break;}break;case4:switch(key){case1:g=s;Write24C02(g,0xfe);ok();break;case2:if(s<10)s++;elseif(s<30)s+=5;elseif(s<90)s+=10;showall(3);break;case3:if(s>30)s-=10;elseif(s>10)s-=5;elseif(s>0)s--;showall(3);break;case4:i--;clean();showall(i-1);choose(1,1);b=0;break;}break;case5:switch(key){case1:Initial();ok();break;case2:showall(i-1);choose(b/3+b+100,0);b++;if(b>6)b=0;choose(b/3+b+100,1);break;case3:add(b);showall(i-1);choose(b/3+b+100,1);break;case4:i=3;clean();showall(i-1);choose(2,1);b=1;break;}break;case6:switch(key){case1:if(b>2){record();ok();}else{choose(1+b,0);b+=2;choose(9+b,1);}break;case3:if(b<2){choose(1+b,0);if(b)b=0;elseb=1;choose(1+b,1);}elseif(b==2){t0ime[3]++;if(!t0ime[3]){if(t0ime[2]<0x03)t0ime[2]++;elset0ime[2]=0x03;}if(t0ime[2]==0x03){if(t0ime[3]>0xe7)t0ime[3]=0xe7;}}elseif(b>2){t1ime[3]++;if(!t1ime[3]){if(t1ime[2]<0x03)t1ime[2]++;elset1ime[2]=0x03;}if(t1ime[2]==0x03){if(t1ime[3]>0xe7)t1ime[3]=0xe7;}}showall(i-1);break;case2:if(b<2){choose(1+b,0);if(b)b=0;elseb=1;choose(1+b,1);}elseif(b==2){if(!t0ime[3]){if(t0ime[2]){t0ime[2]--;t0ime[3]=0xff;}}elset0ime[3]--;}elseif(b>2){if(!t1ime[3]){if(t1ime[2]){t1ime[2]--;t1ime[3]=0xff;}}elset1ime[3]--;}showall(i-1);break;case4:if(b<2){clean();b=i-4;showall(2+(b/3)*7);choose((b%3)+1,1);i=3;}else{choose(9+b,0);b-=2;choose(1+b,1);}break;}break;case7:switch(key){case1:if(b>2){record();ok();}else{choose(1+b,0);b+=2;choose(9+b,1);}break;case3:if(b<2){choose(1+b,0);if(b)b=0;elseb=1;choose(1+b,1);}elseif(b==2){t0ime[5]++;if(!t0ime[5]){if(t0ime[4]<0x01)t0ime[4]++;elset0ime[4]=0x01;}if(t0ime[4]==0x01){if(t0ime[5]>0x2c)t0ime[5]=0x2c;}}elseif(b>2){t1ime[5]++;if(!t1ime[5]){if(t1ime[4]<0x01)t1ime[4]++;elset1ime[4]=0x01;}if(t1ime[4]==0x01){if(t1ime[5]>0x2c)t1ime[5]=0x2c;}}showall(i-1);break;case2:if(b<2){choose(1+b,0);if(b)b=0;elseb=1;choose(1+b,1);}elseif(b==2){if(!t0ime[5]){if(t0ime[4]){t0ime[4]--;t0ime[5]=0xff;}}elset0ime[5]--;}elseif(b>2){if(!t1ime[5]){if(t1ime[4]){t1ime[4]--;t1ime[5]=0xff;}}elset1ime[5]--;}showall(i-1);break;case4:if(b<2){clean();b=i-4;showall(2+(b/3)*7);choose((b%3)+1,1);i=3;}else{choose(9+b,0);b-=2;choose(1+b,1);}break;}break;case8:switch(key){case1:if(b>2){record();ok();}else{choose(1+b,0);b+=2;choose(9+b,1);}break;case3:if(b<2){choose(1+b,0);if(b)b=0;elseb=1;choose(1+b,1);}elseif(b==2){t0ime[6]++;if(!t0ime[6])t0ime[6]=0xff;}elseif(b>2){t1ime[6]++;if(!t1ime[6])t1ime[6]=0xff;}showall(i-1);break;case2:if(b<2){choose(1+b,0);if(b)b=0;elseb=1;choose(1+b,1);}elseif(b==2){if(t0ime[6])t0ime[6]--;}elseif(b>2){if(t1ime[6])t1ime[6]--;}showall(i-1);break;case4:if(b<2){clean();b=i-4;showall(2+(b/3)*7);choose((b%3)+1,1);i=3;}else{choose(9+b,0);b-=2;choose(1+b,1);}break;}break;case9:switch(key){case1:if(b>2){record();ok();}else{choose(1+b,0);b+=2;choose(9+b,1);}break;case3:if(b<2){choose(1+b,0);if(b)b=0;elseb=1;choose(1+b,1);}elseif(b==2){t0ime[7]++;if(!t0ime[7])t0ime[7]=0xff;}elseif(b>2){t1ime[7]++;if(!t1ime[7])t1ime[7]=0xff;}showall(i-1);break;case2:if(b<2){choose(1+b,0);if(b)b=0;elseb=1;choose(1+b,1);}elseif(b==2){if(t0ime[7])t0ime[7]--;}elseif(b>2){if(t1ime[7])t1ime[7]--;}showall(i-1);break;case4:if(b<2){clean();b=i-4;showall(2+(b/3)*7);choose((b%3)+1,1);i=3;}else{choose(9+b,0);b-=2;choose(1+b,1);}break;}break;case13:switch(key){case1:k=b;Write24C02(k,0xff);if(b==2){Readpage(t0ime,0,4);clean();showall(11);i=12;b=0;choose(102,1);}elseok();break;case2:showall(i-1);choose(b+1,0);b++;if(b>2)b=0;choose(b+1,1);break;case3:showall(i-1);choose(b+1,0);if(!b)b=3;b--;choose(b+1,1);break;case4:i=2;clean();showall(i-1);choose(b=1,1);break;}break;case12:switch(key){case1:record();ok();break;case2:showall(11);choose((b/2)*2+102+b,0);b++;if(b>3)b=0;choose((b/2)*2+102+b,1);break;case3:switch(b){case0:t0ime[1]++;if(t0ime[1]>0x23)t0ime[1]=0;if((t0ime[1]&0x0f)>9)t0ime[1]+=6;break;case2:t1ime[1]++;if(t1ime[1]>0x23)t1ime[1]=0;if((t1ime[1]&0x0f)>9)t1ime[1]+=6;break;case1:t0ime[0]++;if(t0ime[0]>0x59)t0ime[0]=0;if((t0ime[0]&0x0f)>9)t0ime[0]+=6;break;case3:t1ime[0]++;if(t1ime[0]>0x59)t1ime[0]=0;if((t1ime[0]&0x0f)>9)t1ime[0]+=6;break;}showall(11);choose((b/2)*2+102+b,1);break;case4:i=13;clean();showall(i-1);choose(b=3,1);break;}break;case23:switch(key){case1:if(!b){Readpage(set_rtc_code,address-10,4);Readpage(wet,address-0x06,6);}clean();showall(i+=b);if(b)choose(0,1);i++;b=0;break;case2:showall(i-1);choose(b+1,0);if(b)b=0;elseb=1;choose(b+1,1);break;case3:showall(i-1);choose(b+1,0);if(b)b=0;elseb=1;choose(b+1,1);break;case4:i=2;clean();showall(i-1);choose(b=2,1);break;}break;case24:if(key==1){b=i=m=0;menu();break;}el

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論