溫室大棚溫濕度監(jiān)測系統設計畢業(yè)論文(設計)_第1頁
已閱讀1頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  隨著農業(yè)產業(yè)規(guī)模的提高,對于數量較多的大棚,傳統的溫度控制措施就顯現出很大的局限性。為此,在現代化的蔬菜大棚管理中通常有溫濕度自動控制系統,以控制蔬菜大棚溫濕度,適應生產需要。本論文主要闡述了基于P89LPC938單片機的溫室大棚溫濕度監(jiān)測系統設計原理,主要電路設計及軟件設計等。該系統采用LPC938單片機作為控制器,DH

2、T11進行溫濕度采集,并通過無線模塊NRF24L01進行主機與從機的無線通信,利用其I2C總線技術控制SRL_11280W_LCD液晶實時顯示。使用戶在控制室即可監(jiān)測溫室大棚內的實時溫濕度,從而方便用戶對溫室大棚的管理。</p><p>  關鍵詞: 單片機P89LPC938; 傳感器DHT11;液晶SRL_11280W_LCD; 無線模塊 NRF24L01</p><p><b&g

3、t;  第一章 緒 論</b></p><p>  1.1 課題研究背景</p><p>  目前,我國農業(yè)正處于從傳統農業(yè)向以優(yōu)質、高效、高產為目標的現代化農業(yè)轉化新階段。而大棚作為現代化農業(yè)設施的重要產物,在國內多數地區(qū)得到了廣泛應用。大棚可以避開外界種種不利因素的影響,人為控制或創(chuàng)造適宜農作物生長的氣候環(huán)境,可以看成是一個半封閉式的人工生態(tài)環(huán)境。由于大棚中各種環(huán)境因素是可

4、以人為控制的,因此控制技術直接決定著大棚中農作物的產量和質量。</p><p>  大棚監(jiān)測系統一般包括三個模塊:環(huán)境參數采集模塊、數據處理模塊和執(zhí)行模塊。在目前的監(jiān)測系統中,需采集的環(huán)境參數主要包括溫度、濕度、CO2濃度、光照強度、土壤濕度等。在實際設計中還需根據大棚的規(guī)模及所在區(qū)域設定不同的采集方式,確保數據采集的準確性。例如我國北方地區(qū),冬季寒冷而漫長,大棚監(jiān)測最主要的一部分就是溫度的調節(jié)。這時可將一天分為

5、午前、午后、前半夜和后半夜4個時段來進行溫度調節(jié)。午前以增加同化量為主,一般應將棚溫保持在25~30℃為宜;午后光合作用呈下降趨勢,以20~25℃為好,避免高溫下養(yǎng)分消耗過多;日落后4~5h內,要將棚內溫度從20℃逐漸降到15℃上下,以促進體內同化物的運轉。此后,再將夜溫降到10~12℃,以抑制呼吸、減少消耗、增加積累,但也不能降得過低,以免凍傷植物 ??紤]外界環(huán)境因素的同時也不能忽略植物本身的生理過程,比如植物的蒸騰作用、光合作用等,

6、事實上大棚內的水分養(yǎng)料供給可以通過蒸騰這樣的實測數據來決定;而CO2濃度則可根據光合作用的情況來決定,這一系列監(jiān)測過程都可通過單片機系統來實現。</p><p>  1.2國內外研究概況</p><p>  1.2.1國外研究概況</p><p>  美國是最早發(fā)明計算機的國家,也是將計算機應用于大棚控制和管理最早、最多的國家之一。美國開發(fā)的大棚計算機控制與管理系統

7、可以根據作物的特點和生長發(fā)育所需要的條件,對大棚內光照、溫度、水、氣、肥等諸多因子進行自動調控,還可利用溫差管理技術實現對花卉、果蔬等產品的開花和成熟期進行控制。</p><p>  在日本,作為設施農業(yè)主要內容的設施園藝相當發(fā)達,塑料大棚和其它人工栽培設施達到普遍應用,設施栽培面積位居世界前列,蔬菜、花卉、水果等普遍實行設施栽培生產。針對種苗生產設施的高溫、多濕等不良環(huán)境,日本進行了幾種設施項目的研究,主要有設

8、施內播種裝置、苗接觸刺激裝置、苗灌水裝置、換氣扇的旋轉和遮光裝置的開閉裝置(溫度、濕度及光照控制)、缺苗不良苗的監(jiān)測及去除和補栽裝置、CO2施肥裝置等方面的自動化研究。</p><p>  2002年,英國倫敦大學農學院利用計算機遙控技術,可以觀測50km以外大棚內的溫度、濕度等環(huán)境狀況并進行遙控。為保證CO2氣體在大棚分布均勻,大棚中通常安裝通風機,攪動空氣使大棚中的CO2濃度一致。</p>&l

9、t;p>  荷蘭的園藝大棚也發(fā)展較早,由于地處高緯度地區(qū),日照短,全年平均氣溫較低,因此,集中較大力量發(fā)展經濟價值高的鮮花和蔬菜,大規(guī)模地發(fā)展玻璃大棚和配套的工程設施,全部采用計算機控制。</p><p>  另外,國外大棚業(yè)正致力于高科技發(fā)展。遙測技術、網絡技術、控制局域網已逐漸應用于大棚的管理與控制中,隨著工業(yè)制造工藝的不斷發(fā)展,越來越多高精度、低價格的傳感器件也在溫室大棚中廣泛應用,并且近幾年各國溫濕

10、度控制技術提出建立大棚行業(yè)標準,也使得大棚行業(yè)朝著網絡化,大規(guī)模,無人化的方向發(fā)展。</p><p>  1.2.2國內研究概況</p><p>  國內的計算機應用開始于上世紀70年代中期,當時主要用于數據的統計分析和計算。70年代末起,我國陸續(xù)從以色列、美國、日本、荷蘭等國引進了許多先進的現代化大棚,在吸收國外發(fā)達國家高科技大棚生產技術的基礎上,我國農業(yè)科研工作人員進行了大棚內部溫度、

11、濕度、光照、CO2濃度等環(huán)境參數控制技術的綜合研究。</p><p>  1987年中國農業(yè)科學院引進了FELIXC 512系統,并建立了全國農業(yè)系統的第一個計算機應用研究機構。到了90年代初期,計算機開始用于大棚的管理和控制領域。</p><p>  2000年,金鈺研究了工業(yè)控制機IPC在自動化大棚控制中的應用。該研究是以工業(yè)控制機為核心采集環(huán)境信息,控制執(zhí)行機構。實現了大棚的封閉環(huán)境

12、控制,但該系統布線復雜,維護困難且成本過高。</p><p>  2005年,杜輝等研究了基于藍牙技術的分布式大棚監(jiān)控系統。該系統將藍牙技術和現場總線技術相結合運用于大棚群的監(jiān)控,提高了系統的可靠性、降低了數據傳輸過程中干擾。但由于藍牙技術本身的不成熟,該系統的實際應用仍需要一定的時間。</p><p>  2007年,唐娟等研究了基于新型AVR單片機的大棚測控系統。該系統把個體生產和規(guī)模

13、化生產相結合,在單個大棚生產實現智能自動化的基礎上實現連棟大棚的規(guī)模化生產。但是所有性能都集中在單片機上,單片機系統一旦出現故障,整個系統都會失控。</p><p>  2008年,周茂雷,郭康權研究出了基于ARM7微處理器的大棚控制器系統。該系統能通過AD算法實現大棚各路模擬量、開關量實時動態(tài)采集,將采集到的數據經處理后定時保存并送出控制量。</p><p>  1.3選題的現實意義&l

14、t;/p><p>  隨著單片機和傳感技術的迅速發(fā)展,自動檢測領域發(fā)生了巨大變化,溫室環(huán)境自動監(jiān)測控制方面的研究有了明顯的進展,并且必將以其優(yōu)異的性能價格比,逐步取代傳統的溫濕度控制措施。但是,目前應用于溫室大棚的溫濕度監(jiān)測系統大多采用模擬溫度傳感器、多路模擬開關、A/D轉換器及單片機等組成的傳輸系統。這種溫濕度度采集系統需要在溫室大棚內布置大量的測溫電纜,才能把現場傳感器的信號送到采集卡上,安裝和拆卸繁雜,成本也高

15、。同時線路上傳送的是模擬信號,易受干擾和損耗,測量誤差也比較大。為了克服這些缺點,本文參考了一種基于單片機并采用數字化單總線技術的溫度測控系統應用于溫室大棚的的設計方案,根據實用者提出的問題進行了改進,提出了一種新的設計方案,在單總線上傳輸數字信號。即采用DHT11溫濕度傳感器解決傳輸模擬量誤差大的問題,以及采用高技術的無線收發(fā)模塊來代替之前大量的電纜,具有更好的經濟與實用價值。</p><p>  本文介紹的溫

16、濕度測控系統就是基于單總線技術及其器件組建的。該系統能夠對大棚內的溫濕度進行采集,利用溫濕度傳感器將溫室大棚內溫濕度的變化,變換成數字量,其值由單片機處理,最后由單片機去控制液晶顯示器,顯示溫室大棚內的實際溫濕度,同時通過無線通信模塊,將大棚內的溫濕度自動發(fā)送給控制室,并在控制室的液晶顯示器上實時顯示出來。這種設計方案實現了溫濕度實時測量、顯示和無線傳輸。該系統抗干擾能力強,具有較高的測量精度,不需要任何固定網絡的支持,安裝簡單方便,性

17、價比高,可維護性好。這種溫濕度測控系統可應用于農業(yè)生產的溫室大棚,實現對溫濕度的實時監(jiān)測,是一種比較智能、經濟的方案,適于大力推廣,以便促進農作物的生長,從而提高溫室大棚的畝產量,以帶來很好的經濟效益和社會效益。</p><p>  1.4課題主要研究內容與目標</p><p>  本課題主要研究如何制作一個應用于中小型大棚的可達到溫濕度實時監(jiān)測功能的系統。設計完成包括環(huán)境參數采集、數據處

18、理、實時顯示以及無線傳輸等模塊。具體實施主要通過選擇傳感器件、設計應用電路、編寫功能程序等步驟來實現該課題所需要求。</p><p>  系統的最終目標是達到大棚溫濕度參數實時測量及顯示,并通過無線傳輸模塊將數據發(fā)送至控制室并顯示。</p><p>  第二章 溫室大棚溫濕度監(jiān)測系統設計方案論證</p><p><b>  2.1設計思想</b>

19、;</p><p>  系統的一大特點是用戶可以通過控制室內(主機)的液晶顯示屏實時監(jiān)測大棚內的溫濕度,也可以通過大棚內(從機)的液晶顯示屏直接監(jiān)測,從而實現用戶對大棚內溫濕度更加方便快捷的監(jiān)測,為用戶控制大棚參數提供數據基礎。系統從機設在種植植物的大棚內,從機中的溫濕度傳感器可以將環(huán)境中的溫濕度非電量參數轉化成電量信號,再將這些信號進行處理后送至從機中的單片機,單片機讀取數據后將數據送到緩沖區(qū)內,通過液晶LCD

20、進行實時顯示。同時從機中的無線通信模塊不斷將單片機處理過的數據發(fā)送出去,控制室內的主機中的無線通信模塊則不斷的接收數據,接收到數據后再送到主機中的單片機,單片機讀取數據后將數據送到緩沖區(qū)內,通過液晶LCD進行實時顯示。</p><p><b>  2.2要實現的功能</b></p><p>  溫室大棚溫濕度監(jiān)測系統要實現以下幾大功能:</p><

21、p> ?。?)數據采集:接通從機電源后,溫濕度傳感器自動采集實時數據,并將采集到的溫濕度轉換成數字信號,然后發(fā)送給單片機進行處理。</p><p> ?。?)現場顯示:將發(fā)送到單片機中的數字信號處理后,通過LCD實時顯示出來。</p><p> ?。?)無線傳輸:利用無線傳輸模塊將采集來的數據傳輸到附近的控制室,即主機。</p><p> ?。?)主機顯示:該

22、功能是將無線傳輸過來的數據在控制室中顯示出來,方便用戶的實時監(jiān)測。</p><p>  (5)無線傳輸:利用無線傳輸模塊收發(fā)離自己較近的節(jié)點的控制系統的數據并傳給PC機實現實時監(jiān)控。</p><p>  2.3方案可行性論證</p><p>  最終方案:溫室大棚溫濕度監(jiān)測系統結構框圖如圖2-1所示。</p><p>  圖2-1溫室大棚溫濕

23、度監(jiān)測系統結構框圖</p><p>  最終方案可行性論證:</p><p> ?。?)適應系統要求?,F代大棚的實質是實現環(huán)境因子實時顯示并自動調節(jié)作物生長環(huán)境條件,這些功能是通過一個閉環(huán)系統來實現的。因此,傳感器的性能應該與控制系統相適應,尤其是傳感器的長距離布點、傳感器靈敏度的一致性、傳感器的響應時間等,這樣才能使系統真正做到快速反應和高效調控環(huán)境。本方案中采用的傳感器、無線模塊等均滿

24、足現代大棚的環(huán)境監(jiān)測要求。</p><p> ?。?)長期穩(wěn)定性好。本方案中采用的DHT11傳感器具有著良好的穩(wěn)定性,且其測量范圍廣,能夠適應大棚內的使用環(huán)境。</p><p>  (3)優(yōu)良的性能價格比??紤]到實際運用與較大環(huán)境內的信息監(jiān)測,則需要用到大量的傳感器,因此,必須要求其價格較低廉,否則難以推廣。本方案中采用的元器件均為低能耗、低價格器件,價格低廉但性能強大,所以具有一定的可行

25、性。</p><p>  第三章 溫室大棚溫濕度監(jiān)測系統硬件設計</p><p><b>  3.1 單片機部分</b></p><p><b>  3.1.1 概述</b></p><p>  P89LPC938 是一款單片封裝的微控制器。它采用了高性能的處理器結構,指令執(zhí)行時間只需2 到4個時鐘

26、周期。6倍于標準80C51 器件。P89LPC938集成了許多系統級的功能,這樣可大大減少元件的數目和電路板面積并降低系統的成本,在這里本文只介紹本系統使用到的部分。</p><p><b>  3.1.2管腳信息</b></p><p>  圖3-1 P89LPC938管腳信息</p><p>  3.1.3 CPU時鐘(OSCCLK)<

27、;/p><p>  LPC938 提供幾個可由用戶選擇的振蕩器選項來產生CPU 時鐘。本系統用到的是RCCLK內部振蕩器輸出的7.373MHZ時鐘信號。這樣就省去了外部晶振部分,給設計帶來很大方便。</p><p><b>  3.1.4 中斷</b></p><p>  P89LPC938 采用4個中斷優(yōu)先級結構。有4個特殊功能寄存器與四個中斷優(yōu)

28、先級相關,分別是IP0、IP0H、IP1、IP1H。每個中斷都由兩個位IPx和IPxH(x=0,1)控制。</p><p>  3.1.5 I/O口</p><p>  P89LPC938 有4個I/O 口,P0、P1、P2 和P3。P0、P1 和P2 為8 位I/O 口而P3 為2位I/O 口。除了 3個口以外,P89LPC938 其他所有的I/O 口均可由軟件配置成4 種輸出類型之一。

29、四種輸出類型分別為:推挽,準雙向口(標準8051 輸出模式),開漏輸出或僅為輸入。每個口配置2個控制寄存器控制每個管腳輸出類型。P1.5 ( RST ) 只能作為輸入口,無法進行配置。P1.2 (SCL/T0) 和P1.3(SDA/ INT0 )只能配置為輸入口或開漏口。本系統把P0口配置成純輸入口,而P2則配置成準雙向I/O口。</p><p>  3.1.6 定時器/計數器0 </p><

30、p>  P89LPC938 有兩個通用定時/計數器,與標準80C51 定時器0 及定時器1 兼容。定時器0 及定時器1 有5 種工作模式(模式0, 1, 2, 3 和6)。模式0、1、2 和6 對于兩個定時/計數器是一樣的。模式3 則不同。</p><p>  3.1.7 A/D 轉換器</p><p>  P89LPC938 包含1個10 位、8 路逐步逼近式模數轉換模塊。每個A/

31、D 轉換器由一個8 輸入多路轉換器組成。多路轉換器的輸出通過采樣保持電路,為兩個比較器提供一個輸入信號??刂七壿嬤B同逐次逼近式寄存器(SAR)來驅動一個數模轉換器,為比較器提供另外一個輸入。比較器的輸出又回到SAR。本系統用到的是AD0通道。</p><p>  A/D轉換的啟動有多種模式,可以連續(xù)、多通道掃描、或由定時器的溢出啟動,因而CPU在這方面不需要花費時間。轉換結束后可使用中斷服務程序將數據取出處理。A

32、/D轉換器使用單電源,僅支持單極性信號的A/D轉換。對于雙極性信號,必須加上模擬電壓偏移電路,必要時,可能還需要增加信號壓縮電路。</p><p>  8路10位分辨力的逐次比較式A/D轉換器的功能很強:有8對寄存器用于存放轉換結果;轉換器有6種操作模式;有三種轉換啟動模式;A/D轉換的時鐘頻率為9MHz時,轉換時間僅4μs;可以以中斷或者輪詢方式工作;具有高、低邊界檢測中斷功能;帶時鐘分頻器;具有掉電工作模式。

33、</p><p>  3.1.8 串行外圍接口(SPI)</p><p>  P89LPC938 還提供另一種高速串行通信接口——SPI 接口。SPI 是一種全雙工、高速、同步的通信總線,有兩種操作模式:主模式和從模式。主模式或從模式可支持高達3Mbit/s的速率。還具有傳輸完成標志和寫沖突標志保護。SPI 接口有4個管腳:SPICLK, MOSI, MISO 和SS , SPICLK,

34、MOSI 和MISO 通常和兩個或更多SPI 器件連接在一起。數據通過MOSI(主機輸出從機輸入)從主機傳送到從機,通過MISO(主機輸入從機輸出)從機傳送到主機。SPICLK 信號在主模式時為輸出,在從模式時為輸入。如果SPI 系統被禁止,即SPEN(SPCTL.6)=0(復位值),這些管腳都可作為I/O 口使用。 SS 為從機選擇管腳。在典型的配置中,SPI 主機使用I/O 口選擇一個SPI 器件作為當前的從機。SPI 從器件通過其

35、SS 腳確定是否被選擇。本系統的無線模塊將用此接口。</p><p>  無線模塊的SPI總線,在該系統中,僅調試到可以通信,其SPI初始化程序如下:</p><p>  unsigned char SPI_RW(unsigned char byte)</p><p><b>  {</b></p><p>  unsi

36、gned char i;</p><p>  for(i=0; i<8; i++) // 循環(huán)8次</p><p><b>  {</b></p><p>  MOSI = (byte & 0x80); // byte最高位輸出到MOSI</p>

37、<p>  byte <<= 1; // 低一位移位到最高位</p><p>  SCK = 1; // 拉高SCK,nRF24L01從MOSI讀入1位數據,同時從MISO輸出1位數據</p><p>  byte |= MISO; // 讀MISO到byte最低位</p><p&

38、gt;  SCK = 0; // SCK置低</p><p><b>  }</b></p><p>  return(byte); // 返回讀出的一字節(jié)</p><p><b>  }</b></p><p>  unsigned char SPI_

39、RW_Reg(unsigned char reg, unsigned char value)</p><p><b>  {</b></p><p>  unsigned char status;</p><p>  CSN = 0; // CSN置低,開始傳輸數據</p><p> 

40、 status = SPI_RW(reg); // 選擇寄存器,同時返回狀態(tài)字</p><p>  SPI_RW(value); // 然后寫數據到該寄存器</p><p>  CSN = 1; // CSN拉高,結束數據傳輸</p><p>  return(status);

41、 // 返回狀態(tài)寄存器</p><p><b>  }</b></p><p>  unsigned char SPI_Read(unsigned char reg)</p><p><b>  {</b></p><p>  unsigned char reg_val;</p&

42、gt;<p>  CSN = 0; // CSN置低,開始傳輸數據</p><p>  SPI_RW(reg); // 選擇寄存器</p><p>  reg_val = SPI_RW(0); // 然后從該寄存器讀數據</p><p>  CSN = 1;

43、 // CSN拉高,結束數據傳輸</p><p>  return(reg_val); // 返回寄存器數據</p><p><b>  }</b></p><p>  unsigned char SPI_Read_Buf(unsigned char reg, unsigned char *

44、pBuf, unsigned char bytes)</p><p><b>  {</b></p><p>  unsigned char status, i;</p><p>  CSN = 0; // CSN置低,開始傳輸數據</p><p>  status = SPI_RW

45、(reg); // 選擇寄存器,同時返回狀態(tài)字</p><p>  for(i=0; i<bytes; i++)</p><p>  pBuf[i] = SPI_RW(0); // 逐個字節(jié)從nRF24L01讀出</p><p>  CSN = 1; // CSN拉高,結束數據傳輸</p&

46、gt;<p>  return(status); // 返回狀態(tài)寄存器</p><p><b>  }</b></p><p>  unsigned char SPI_Write_Buf(unsigned char reg, unsigned char * pBuf, unsigned char bytes)</p&g

47、t;<p><b>  {</b></p><p>  unsigned char status, i;</p><p>  CSN = 0; // CSN置低,開始傳輸數據</p><p>  status = SPI_RW(reg); // 選擇寄存器,同時返回狀態(tài)字<

48、;/p><p>  for(i=0; i<bytes; i++)</p><p>  SPI_RW(pBuf[i]); // 逐個字節(jié)寫入nRF24L01</p><p>  CSN = 1; // CSN拉高,結束數據傳輸</p><p>  return(status);

49、 // 返回狀態(tài)寄存器</p><p><b>  }</b></p><p>  3.1.9 I2C接口</p><p>  I2C 總線用兩條線(SDA 和SCL)在總線和器件之間傳遞信息??偩€的主要特性如下:</p><p>  主機和從機之間為雙向數據傳送;多主機總線(無中央主機)多主機同時傳送時

50、進行仲裁避免總線上數據沖突;;串行時鐘同步使得不同位速率的器件可以通過一條串行總線進行通信;串行時鐘同步可作為握手機制,用于掛起和恢復串行傳輸;I2C 總線可用于測試和診斷。P89LPC938 器件提供字節(jié)方式的I2C 接口。所支持的最大數據傳輸速率為400kHz。本系統的LCD就是用的這一總線。</p><p>  該液晶模塊主要用的是I2C總線,液晶I2C初始化程序如下:</p><p&g

51、t;  void start_i2c_bus(void) //啟動I2C總線</p><p><b>  { </b></p><p>  LCD_SDA=1;</p><p><b>  SomeNOP;</b></p><p>

52、;  LCD_SCL=1;</p><p><b>  SomeNOP;</b></p><p>  LCD_SDA=0;</p><p><b>  SomeNOP;</b></p><p>  LCD_SCL=0;</p><p><b>  SomeNOP;&

53、lt;/b></p><p><b>  }</b></p><p>  void stop_i2c_bus(void) //停止I2C總線</p><p><b>  {</b></p><p>  LCD_SDA=0;

54、</p><p><b>  SomeNOP;</b></p><p>  LCD_SCL=1;</p><p><b>  SomeNOP;</b></p><p>  LCD_SDA=1;</p><p><b>  SomeNOP;</b><

55、/p><p><b>  }</b></p><p>  void wr_i2c_one_byte(unsigned char send_data) //向虛擬I2C總線上發(fā)送1個數據字節(jié)</p><p>  { unsigned char bit_count;</p><p>  for(bit

56、_count=0;bit_count<8;bit_count++)</p><p><b>  {</b></p><p>  if((send_data&0x80)==0x80) LCD_SDA=1;</p><p>  else LCD_SDA=0;</p><p><b>  SomeNO

57、P;</b></p><p>  LCD_SCL=1;</p><p><b>  SomeNOP;</b></p><p>  LCD_SCL=0;</p><p>  send_data=send_data<<1;</p><p><b>  }</b&

58、gt;</p><p>  LCD_SDA=1; //8位發(fā)完后釋放數據線,準備接收應答位</p><p><b>  SomeNOP;</b></p><p>  LCD_SCL=1;</p><p><b>  SomeNOP;</

59、b></p><p>  if(LCD_SDA==1) ack=0; //判斷是否接收到應答信號</p><p>  else ack=1;</p><p>  LCD_SCL=0;</p><p><b>  SomeNOP;</b></p>&l

60、t;p><b>  }</b></p><p>  unsigned char rd_i2c_one_byte( ) //字節(jié)數據接收,收好后用應答函數</p><p><b>  { </b></p><p>  unsigned char read_out_data=

61、0;</p><p>  unsigned char bit_count;</p><p>  LCD_SDA=1;</p><p>  for(bit_count=0;bit_count<8;bit_count++)</p><p><b>  {</b></p><p><b>

62、;  SomeNOP;</b></p><p>  LCD_SCL=0;</p><p><b>  SomeNOP;</b></p><p>  LCD_SCL=1;</p><p><b>  SomeNOP;</b></p><p>  read_out_d

63、ata=read_out_data<<1;</p><p>  if(LCD_SDA==1) read_out_data++;</p><p><b>  SomeNOP;</b></p><p><b>  }</b></p><p>  LCD_SCL=0;</p>&

64、lt;p><b>  SomeNOP;</b></p><p>  return(read_out_data);</p><p><b>  }</b></p><p>  void ack_i2c(bit bit_ack ) //發(fā)送應答&

65、lt;/p><p><b>  {</b></p><p>  if(bit_ack) LCD_SDA=1; //發(fā)出應答或非應答信號</p><p>  else LCD_SDA=0;</p><p><b>  SomeNOP;</

66、b></p><p>  LCD_SCL=1;</p><p><b>  SomeNOP;</b></p><p>  LCD_SCL=0; </p><p><b>  }</b></p><p>  3.1.10 單片機外圍接口擴展</p>&

67、lt;p>  由于還有很多外圍電路,以及很多擴展功能的應用以待將來開發(fā),因此很有必要做出一些擴展接口,所以在硬件上做出了一些擴展口以待將來使用。此擴展口為P2口。</p><p><b>  3.2電源部分</b></p><p>  P89LPC938采用3V直流電源供電,該系統選擇的電源芯片是TAR5S33電源芯片,該芯片可以將5V直流電源轉換成3.3V電源

68、提供給單片機。其輸出電壓最低為3.21V最高電壓為3.39V。</p><p>  TAR5S33特點:(1)低待機電流;(2)過溫/過電流保護;(3)工作電壓范圍寬;(4)最大輸出電流為高;(5)在輸入電壓和輸出電壓差低;(6)小型封裝;(7)陶瓷電容器都可以使用。原理圖如3-2所示。</p><p><b>  圖3-2電源原理圖</b></p>&

69、lt;p>  3.3 串口通信部分</p><p>  P89LPC938 具有一個增強型的UART。它和傳統的80C51 UART 兼容,但有一點除外,即定時器2 的溢出不能用于產生波特率。UART 具有4 種操作模式:移位寄存器、8 位UART、9位UART 和CPU 時鐘/32 或CPU 時鐘/16。本系統用的UART串口用作單片機下載ISP接口,又加了RS232的轉換支持單片機遇PC之間的通信。本系

70、統設計的RS232部分如下圖3-3所示。</p><p>  圖3-3 RS232串口通信接口</p><p>  3.4 溫濕度傳感器數據采集部分</p><p>  3.4.1 DHT11數字溫濕度傳感器概述</p><p>  DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器。它應用專用的數字模塊采集技術和溫濕度

71、傳感技術,確保產品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。因此該產品具有品質卓越、超快響應、抗干擾能力強、性價比極高等優(yōu)點。每個DHT11傳感器都在極為精確的濕度校驗室中進行校準。校準系數以程序的形式儲存在OTP內存中,傳感器內部在檢測信號的處理過程中要調用這些校準系數。單線制串行接口,使系統集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達20米以上

72、,使其成為各類應用甚至最為苛刻的應用場合的最佳選則。產品為 4 針單排引腳封裝。連接方便,特殊封裝形式可根據用戶需求而提供。</p><p>  3.4.2 DHT11數字溫濕度傳感器性能說明</p><p>  表3.1 DHT11數字溫濕度傳感器性能</p><p>  建議連接線長度短于20米時用5K上拉電阻,大于20米時根據實際情況使用合適的上拉電阻。DH

73、T11的供電電壓為3——5.5V。傳感器上電后,要等待 1s 以越過不穩(wěn)定狀態(tài)在此期間無需發(fā)送任何指令。電源引腳(VDD,GND)之間可增加一個100nF 的電容,用以去耦濾波。典型應用電路如圖3-4所示。</p><p>  圖3-4 典型應用電路</p><p>  DATA 用于微處理器與 DHT11之間的通訊和同步,采用單總線數據格式,一次通訊時間4ms左右,數據分小數部分和整

74、數部分,具體格式在下面說明,當前小數部分用于以后擴展,現讀出為零.操作流程如下:</p><p>  一次完整的數據傳輸為40bit,高位先出,數據格式:8bit濕度整數數據+8bit濕度小數數據,+8bi溫度整數數據+8bit溫度小數數據+8bit校驗和</p><p>  數據傳送正確時校驗和數據等于“8bit濕度整數數據+8bit濕度小數數據+8bi溫度整數數據+8bit溫度小數數據

75、”所得結果的末8位。</p><p>  用戶MCU發(fā)送一次開始信號后,DHT11從低功耗模式轉換到高速模式,等待主機開始信號結束后,DHT11發(fā)送響應信號,送出40bit的數據,并觸發(fā)一次信號采集,用戶可選擇讀取部分數據.從模式下,DHT11接收到開始信號觸發(fā)一次溫濕度采集,如果沒有接收到主機發(fā)送開始信號,DHT11不會主動進行溫濕度采集.采集數據后轉換到低速模式。</p><p>  

76、總線空閑狀態(tài)為高電平,主機把總線拉低等待DHT11響應,主機把總線拉低必須大于18毫秒,保證DHT11能檢測到起始信號。DHT11接收到主機的開始信號后,等待主機開始信號結束,然后發(fā)送80us低電平響應信號。主機發(fā)送開始信號結束后,延時等待20-40us后, 讀取DHT11的響應信號,主機發(fā)送開始信號后,可以切換到輸入模式,或者輸出高電平均可, 總線由上拉電阻拉高。</p><p>  總線為低電平,說明DHT1

77、1發(fā)送響應信號,DHT11發(fā)送響應信號后,再把總線拉高80us,準備發(fā)送數據,每一bit數據都以50us低電平時隙開始,高電平的長短定了數據位是0還是1.格式見下面圖示.如果讀取響應信號為高電平,則DHT11沒有響應,請檢查線路是否連接正常.當最后一bit數據傳送完畢后,DHT11拉低總線50us,隨后總線由上拉電阻拉高進入空閑狀態(tài)。</p><p>  測量分辨率分別為 8bit(溫度)、8bit(濕度)。&l

78、t;/p><p>  3.4.3 DHT11數字溫濕度傳感器使用注意事項</p><p>  DHT11電器特性如表3.2所示,超出建議的工作范圍可能導致高達3%RH的臨時性漂移信號。返回正常工作條后,傳感器會緩慢地向校準狀態(tài)恢復。</p><p>  表3.2 DHT11電氣特性</p><p>  電阻式濕度傳感器的感應層會受到化學蒸汽的干

79、擾,化學物質在感應層中的擴散可能導致測量值漂移和靈敏度下降。在一個純凈的環(huán)境中,污染物質會緩慢地釋放出去。下文所述的恢復處理將加速實現這一過程。高濃度的化學污染會導致傳感器感應層的徹底損壞。</p><p>  置于極限工作條件下或化學蒸汽中的傳感器,通過如下處理程序,可使其恢復到校準時的狀態(tài)。在50-60℃和< 10%RH的濕度條件下保持2 小時(烘干);隨后在20-30℃和>70%RH的濕度條件下

80、保持 5小時以上。</p><p>  氣體的相對濕度,在很大程度上依賴于溫度。因此在測量濕度時,應盡可能保證濕度傳感器在同一溫度下工作。如果與釋放熱量的電子元件共用一個印刷線路板,在安裝時應盡可能將DHT11遠離電子元件,并安裝在熱源下方,同時保持外殼的良好通風。為降低熱傳導,DHT11與印刷電路板其它部分的銅鍍層應盡可能最小,并在兩者之間留出一道縫隙。</p><p>  長時間暴露在

81、太陽光下或強烈的紫外線輻射中,會使性能降低。</p><p>  DATA信號線材質量會影響通訊距離和通訊質量,推薦使用高質量屏蔽線。</p><p>  手動焊接,在最高260℃的溫度條件下接觸時間須少于10秒。</p><p>  (1)避免結露情況下使用。</p><p>  (2)長期保存條件:溫度10-40℃,濕度60%以下。<

82、;/p><p>  3.5 LCD顯示部分</p><p>  本系統用到的液晶是SRL_11280W_LCD。電路原理圖如圖3-5所示。</p><p>  圖3-5液晶顯示原理圖</p><p>  3.5.1 顯示特性</p><p> ?。?) FSTN 方式正性顯示,高透式(2) 顯示顏色(色調隨溫度及驅動器電壓

83、不同而略有改變)顯示顏色:顯示數據“1”:黑背景顏色:顯示數據“0”:白色(3) 視角:6 點鐘方向(4) 驅動占空比:1/80</p><p>  3.5.2 操作原理和方法</p><p>  該模塊采用PCF8811 DRIVER 驅動,I2C 總線控制。當/RESET 收到一個復位脈沖超過500ns 時,芯片內部電路恢復到初始化狀態(tài)。</p><p>  液

84、晶顯示部分,采集到到的模擬量可以實時顯示到液晶屏上面,同時對于不同的工作狀態(tài)均有不同的狀態(tài)指示,該液晶屏用到的是I2C總線。LCD的最外面一層是透明的玻璃基體,玻璃基體中間就是薄膜電晶體。顏色過濾器和液晶層可以顯示紅、藍和綠三種最基本的顏色。通常,LCD后面都有照明燈以顯示畫面。一般只要電流不變動,液晶都在非結晶狀態(tài)。這時液晶允許任何光線通過。液晶受到電壓變化的影響后,液晶之間允許一定數量的光線通過。光線的反射角度按照液晶控制。當液晶的

85、供應電壓變動時,液晶就會產生變形,因而光線的折射角度就會不同,從而產生色彩的變化。一個完整的液晶顯示屏由很多像素構成,每個像素就像一個可以開關的晶體管。這樣就可以控制液晶顯示屏的分辨率。如果一個LCD的分辨率可以達到1024×768,那么它就有那么多的像可以顯示,這里的像素是112×80。還有該液晶模塊采用PCF8811DRIVER掃描驅動。其初始化程序見附錄一掃描驅動的種類及特征如圖3-6所示。</p>

86、<p>  圖3-6 掃描驅動的種類及特征</p><p>  3.6 無線模塊部分</p><p>  NRF24L01 是NORDIC 公司最近生產的一款無線通信通信芯片,采用FSK 調制,內部集成NORDIC 自己的Enhanced Short Burst 協議??梢詫崿F點對點或是1 對6 的無線通信。無線通信速度可以達到2M(bps)。NORDIC 公司提供通信模塊的

87、GERBER 文件,可以直接加工生產。嵌入式工程師或是單片機愛好者只需要為單片機系統預留5個GPIO,1個中斷輸入引腳,就可以很容易實現無線通信的功能,非常適合用來為MCU 系統構建無線通信功能。2.4G 全球開放ISM 頻段,最大0dBm 發(fā)射功率,免許可證使用支持六路通道的數據接收, 2Mbit/s使得高質量的VoIP成為可能2MBPS 速率下接收時的峰值電流12.5mA在2Mbit/s速率下輸出時的峰值電流11mA掉電模式下的功耗

88、400nA待機模式下的功耗32uA130us的快速切換和喚醒時間可在1.9V低電壓工作。本文的無線模塊用單片機的SPI總線,SPI與2401的接口如下表3.3所示。</p><p>  表3.3 SPI與2401的接口</p><p>  利用SPI總線可在軟件的控制下構成各種系統。如1個主MCU和幾個從MCU、幾個從MCU相互連接構成多主機系統(分布式系統)、1個主MCU和1個或幾個從I

89、/O設備所構成的各種系統等。在大多數應用場合,可使用1個MCU作為控機來控制數據,并向1個或幾個從外圍器件傳送該數據。從器件只有在主機發(fā)命令時才能接收或發(fā)送數據。其數據的傳輸格式是高位(MSB)在前,低位(LSB)在后。當一個主控機通過SPI與幾種不同的串行I/O芯片相連時,必須使用每片的允許控制端,這可通過MCU的I/O端口輸出線來實現。但應特別注意這些串行I/O芯片的輸入輸出特性:首先是輸入芯片的串行數據輸出是否有三態(tài)控制端。平時未

90、選中芯片時,輸出端應處于高阻態(tài)。若沒有三態(tài)控制端,則應外加三態(tài)門。否則MCU的MISO端只能連接1個輸入芯片。其次是輸出芯片的串行數據輸入是否有允許控制端。因此只有在此芯片允許時,SCK脈沖才把串行數據移入該芯片;在禁止時,SCK對芯片無影響。若沒有允許控制端,則應在外圍用門電路對SCK進行控制,然后再加到芯片的時鐘輸入端;當然,也可以只在SPI總線上連接1個芯片,而不再連接其它輸入或輸出芯片。</p><p>

91、  無線傳輸模塊用的是NRF24L01,與單片機的接口用的是SPI總線。該總線是一種高速串行通信接口,全雙工、高速、同步的通信總線。兩種工作模式:主模式和從模式。該系統中通過通信協議,我的系統可以接收最近節(jié)點的數據同時向最近的節(jié)點發(fā)送,同時將收發(fā)的數據發(fā)送到液晶屏上。</p><p>  NRF24l01產品性能:1)2.4GHZ全球開放ISM頻段免許可使用。2) 最高工作速率2Mbps,GFSK高效調制。3)

92、125個頻道滿足多點通訊和跳頻通訊需求。4) 1.9-3.6V工作,低功耗,待機模式僅1uA.。5) 雙通道數據接收,內置環(huán)行天線,體積僅17*34mm,通信距離在100m之內,軟件編簡單。6) 內置硬件8/16位CRC校驗,收發(fā)中斷標志,每次可發(fā)28字節(jié)。NRF2401實物圖見圖3-7所示。</p><p>  圖3-7 NRF 24L01實物圖</p><p>  第四章 溫室大棚溫濕

93、度監(jiān)測系統軟件的設計</p><p>  4.1 主程序及流程圖</p><p>  結合要實現的功能,主程序部分分為主機部分和從機部分。分別編寫為:</p><p>  從機程序:首先初始化,即將各個模塊分別進行初始化,然后溫濕度傳感器開始采集數據,采集到實時數據后,傳感器DHT11將數據轉化為數字信號,并向單片機輸出轉換過的數字信號。單片機收到數據后,再將此時的

94、數據發(fā)送給液晶顯示屏,并通過SPI總線驅動LCD,LCD將實時溫濕度顯示出來;同時,單片機將數據發(fā)送到無線模塊,并給其一個脈沖信號,無線模塊收到驅動脈沖后則將數據發(fā)送出去。最后程序再回到數據采集部分,以此循環(huán)下去。</p><p>  主機程序:首先初始化各模塊,無線模塊開始接收信號,接收完一組信號后,無線模塊將數據發(fā)送給單片機,單片機再將數據送給LCD,并驅動LCD顯示收到的數據。由于無線模塊不斷的接收數據,所

95、以液晶屏的數據也不斷刷新。流程圖如圖4-1所示。</p><p> ?。?)從機流程圖 (2)主機流程圖</p><p>  圖4-1 主程序流程圖</p><p>  4.2 各子程序及流程圖</p><p>  4.2.1 A/D模塊</p>

96、<p>  本設計選擇AD0通道進行連續(xù)轉換,轉換結果順序存放在8個結果寄存器中。用戶可選擇每完成4 次或8 次轉換后是否產生中斷。其它額外的轉換結果將循環(huán)存放到結果寄存器對中,將之前的結果覆蓋。連續(xù)轉換過程由用戶終止。</p><p>  A/D轉換的過程主要包括采樣,量化和編碼。采樣使模擬信號在時間上離散化;量化就是用一個基本的計量單位(量化電平)使模擬量變?yōu)橐粋€整數的數字量;編碼是把已將量化的模

97、擬量(它是量化電平的整數倍)用二進制碼、BCD碼或其他數碼表示。總之,量化與編碼就是把采集后所得到的離散幅值通過舍入的方式變換成與輸入量成比例的二進制數。涉及到的技術主要有:轉換時間和轉換頻率、分辨率、轉換精度、量化誤差。</p><p>  本系統中的A/D轉換程序為:主程序開始時,定義電壓實測值函數初始化,A/D口初始化,按鍵按下進行光控的A/D啟動,固定通道單次轉換,立即啟動。等待轉換結束,延時,轉換的的高

98、八位與低八位送入寄存器,返回轉換結果。A/D轉換流程圖如圖4-2所示。</p><p>  圖4-2 A/D轉換流程圖</p><p>  A/D初始化程序如下:</p><p>  #include "reg932.h" //包含頭文件</p><p

99、>  sfr ADCON0 = 0x97; //定義ADC 用到的寄存器</p><p>  sfr ADMODA = 0xC0; //模式A地址</p><p>  sfr ADMODB = 0xA1;

100、 //模式B地址</p><p>  sfr ADINS = 0xA3; //結果寄存器地址</p><p>  unsigned char xdata AD0DAT0R _at_ 0xfffe; //定義AD0DAT0R 地址</p&

101、gt;<p>  unsigned char xdata AD0DAT0L _at_ 0xffff; //定義AD0DAT0L 地址</p><p>  float value_temp = 0; //實測電壓值</p><p>  void ad_init(vo

102、id)</p><p><b>  {</b></p><p>  ADINS=0x01; //選擇通道AD0</p><p>  ADMODA|=0x10; //單次轉換<

103、/p><p><b>  }</b></p><p>  void ad_start(void)</p><p><b>  {</b></p><p>  ADCON0=0X05; / /固定通道、單次轉換、立即啟動&l

104、t;/p><p>  while(!ADCON0&0x08); / /等待轉換完畢</p><p><b>  }</b></p><p>  float AD_Convert(float volt)</p><p><b>  {<

105、/b></p><p>  volt = volt/1024*3;</p><p>  return volt;</p><p><b>  }</b></p><p>  4.2.2 UART0串行通信</p><p>  將單片機的串口按所需波特率和功能初始化好,通過查詢方式從串口發(fā)送值

106、,改變發(fā)送值并延時。UART是一個異步、全雙工串口。具有增強的波特率發(fā)生器電路,有多個時鐘源可用于產生標準波特率。接收數據緩沖機制允許UART在軟件尚未讀取前一個數據字節(jié)的情況下可開始接受第二個數據字節(jié)。</p><p>  UART有串行控制數據控制寄存器(SCON)和串行數據緩沖器(SBUF)兩個相關特殊功能寄存器,用同一個SBUF地址可以訪問發(fā)送寄存器和接收寄存器。寫SBUF時,自動訪問發(fā)送寄存器;讀SUB

107、F時,自動訪問寄存器,不可能從發(fā)送數據寄存器中都數據。如果UART中斷被允許,則每次發(fā)送完成(SCON中的TI位被置1)或接收到數據字節(jié)時(SCON中的RI位置1)時將產生一個中斷。當CPU轉向中斷服務子程序時,軟件清除中斷標志位。UART流程圖如圖4-3所示。</p><p>  圖4-3 UART流程圖</p><p>  4.2.3 LCD液晶顯示模塊</p><

108、p>  I2C時序圖如圖4-4所示。</p><p>  圖4-4 I2C時序圖</p><p>  液晶驅動初始化程序如下:</p><p>  void init_lcd_pcf8811() //初始化</p><p>  { unsigned char code

109、* buf;</p><p>  unsigned char count;</p><p>  buf=& pcf8811_init[0];</p><p>  start_i2c_bus();</p><p>  for(count=0;count<21;count++) wr_i2c_one_byte(*buf++);

110、</p><p>  stop_i2c_bus();</p><p><b>  }</b></p><p>  void lcd_fill(unsigned char DATA) //往lcd寫數據</p><p><b>  { </b

111、></p><p>  unsigned char count_X;</p><p>  unsigned char count_Y;</p><p>  start_i2c_bus();</p><p>  wr_i2c_one_byte(PCF8811_WR_ADDR); //0X78</p><p>  

112、wr_i2c_one_byte(CTL_COMMD_N);</p><p>  wr_i2c_one_byte(0xB0); //寫入y坐標</p><p>  wr_i2c_one_byte(0x10); //寫入x坐標</p>&

113、lt;p>  wr_i2c_one_byte(0);</p><p>  start_i2c_bus();</p><p>  wr_i2c_one_byte(PCF8811_WR_ADDR); </p><p>  wr_i2c_one_byte(CTL_IN_DATA);</p><p>  for(count_Y=0;count_

溫馨提示

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

評論

0/150

提交評論