版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 隨著農(nóng)業(yè)產(chǎn)業(yè)規(guī)模的提高,對于數(shù)量較多的大棚,傳統(tǒng)的溫度控制措施就顯現(xiàn)出很大的局限性。為此,在現(xiàn)代化的蔬菜大棚管理中通常有溫濕度自動控制系統(tǒng),以控制蔬菜大棚溫濕度,適應(yīng)生產(chǎn)需要。本論文主要闡述了基于P89LPC938單片機的溫室大棚溫濕度監(jiān)測系統(tǒng)設(shè)計原理,主要電路設(shè)計及軟件設(shè)計等。該系統(tǒng)采用LPC938單片機作為控制器,DH
2、T11進(jìn)行溫濕度采集,并通過無線模塊NRF24L01進(jìn)行主機與從機的無線通信,利用其I2C總線技術(shù)控制SRL_11280W_LCD液晶實時顯示。使用戶在控制室即可監(jiān)測溫室大棚內(nèi)的實時溫濕度,從而方便用戶對溫室大棚的管理。</p><p> 關(guān)鍵詞: 單片機P89LPC938; 傳感器DHT11;液晶SRL_11280W_LCD; 無線模塊 NRF24L01</p><p><b&g
3、t; 第一章 緒 論</b></p><p> 1.1 課題研究背景</p><p> 目前,我國農(nóng)業(yè)正處于從傳統(tǒng)農(nóng)業(yè)向以優(yōu)質(zhì)、高效、高產(chǎn)為目標(biāo)的現(xiàn)代化農(nóng)業(yè)轉(zhuǎn)化新階段。而大棚作為現(xiàn)代化農(nóng)業(yè)設(shè)施的重要產(chǎn)物,在國內(nèi)多數(shù)地區(qū)得到了廣泛應(yīng)用。大棚可以避開外界種種不利因素的影響,人為控制或創(chuàng)造適宜農(nóng)作物生長的氣候環(huán)境,可以看成是一個半封閉式的人工生態(tài)環(huán)境。由于大棚中各種環(huán)境因素是可
4、以人為控制的,因此控制技術(shù)直接決定著大棚中農(nóng)作物的產(chǎn)量和質(zhì)量。</p><p> 大棚監(jiān)測系統(tǒng)一般包括三個模塊:環(huán)境參數(shù)采集模塊、數(shù)據(jù)處理模塊和執(zhí)行模塊。在目前的監(jiān)測系統(tǒng)中,需采集的環(huán)境參數(shù)主要包括溫度、濕度、CO2濃度、光照強度、土壤濕度等。在實際設(shè)計中還需根據(jù)大棚的規(guī)模及所在區(qū)域設(shè)定不同的采集方式,確保數(shù)據(jù)采集的準(zhǔn)確性。例如我國北方地區(qū),冬季寒冷而漫長,大棚監(jiān)測最主要的一部分就是溫度的調(diào)節(jié)。這時可將一天分為
5、午前、午后、前半夜和后半夜4個時段來進(jìn)行溫度調(diào)節(jié)。午前以增加同化量為主,一般應(yīng)將棚溫保持在25~30℃為宜;午后光合作用呈下降趨勢,以20~25℃為好,避免高溫下養(yǎng)分消耗過多;日落后4~5h內(nèi),要將棚內(nèi)溫度從20℃逐漸降到15℃上下,以促進(jìn)體內(nèi)同化物的運轉(zhuǎn)。此后,再將夜溫降到10~12℃,以抑制呼吸、減少消耗、增加積累,但也不能降得過低,以免凍傷植物 。考慮外界環(huán)境因素的同時也不能忽略植物本身的生理過程,比如植物的蒸騰作用、光合作用等,
6、事實上大棚內(nèi)的水分養(yǎng)料供給可以通過蒸騰這樣的實測數(shù)據(jù)來決定;而CO2濃度則可根據(jù)光合作用的情況來決定,這一系列監(jiān)測過程都可通過單片機系統(tǒng)來實現(xiàn)。</p><p> 1.2國內(nèi)外研究概況</p><p> 1.2.1國外研究概況</p><p> 美國是最早發(fā)明計算機的國家,也是將計算機應(yīng)用于大棚控制和管理最早、最多的國家之一。美國開發(fā)的大棚計算機控制與管理系統(tǒng)
7、可以根據(jù)作物的特點和生長發(fā)育所需要的條件,對大棚內(nèi)光照、溫度、水、氣、肥等諸多因子進(jìn)行自動調(diào)控,還可利用溫差管理技術(shù)實現(xiàn)對花卉、果蔬等產(chǎn)品的開花和成熟期進(jìn)行控制。</p><p> 在日本,作為設(shè)施農(nóng)業(yè)主要內(nèi)容的設(shè)施園藝相當(dāng)發(fā)達(dá),塑料大棚和其它人工栽培設(shè)施達(dá)到普遍應(yīng)用,設(shè)施栽培面積位居世界前列,蔬菜、花卉、水果等普遍實行設(shè)施栽培生產(chǎn)。針對種苗生產(chǎn)設(shè)施的高溫、多濕等不良環(huán)境,日本進(jìn)行了幾種設(shè)施項目的研究,主要有設(shè)
8、施內(nèi)播種裝置、苗接觸刺激裝置、苗灌水裝置、換氣扇的旋轉(zhuǎn)和遮光裝置的開閉裝置(溫度、濕度及光照控制)、缺苗不良苗的監(jiān)測及去除和補栽裝置、CO2施肥裝置等方面的自動化研究。</p><p> 2002年,英國倫敦大學(xué)農(nóng)學(xué)院利用計算機遙控技術(shù),可以觀測50km以外大棚內(nèi)的溫度、濕度等環(huán)境狀況并進(jìn)行遙控。為保證CO2氣體在大棚分布均勻,大棚中通常安裝通風(fēng)機,攪動空氣使大棚中的CO2濃度一致。</p>&l
9、t;p> 荷蘭的園藝大棚也發(fā)展較早,由于地處高緯度地區(qū),日照短,全年平均氣溫較低,因此,集中較大力量發(fā)展經(jīng)濟(jì)價值高的鮮花和蔬菜,大規(guī)模地發(fā)展玻璃大棚和配套的工程設(shè)施,全部采用計算機控制。</p><p> 另外,國外大棚業(yè)正致力于高科技發(fā)展。遙測技術(shù)、網(wǎng)絡(luò)技術(shù)、控制局域網(wǎng)已逐漸應(yīng)用于大棚的管理與控制中,隨著工業(yè)制造工藝的不斷發(fā)展,越來越多高精度、低價格的傳感器件也在溫室大棚中廣泛應(yīng)用,并且近幾年各國溫濕
10、度控制技術(shù)提出建立大棚行業(yè)標(biāo)準(zhǔn),也使得大棚行業(yè)朝著網(wǎng)絡(luò)化,大規(guī)模,無人化的方向發(fā)展。</p><p> 1.2.2國內(nèi)研究概況</p><p> 國內(nèi)的計算機應(yīng)用開始于上世紀(jì)70年代中期,當(dāng)時主要用于數(shù)據(jù)的統(tǒng)計分析和計算。70年代末起,我國陸續(xù)從以色列、美國、日本、荷蘭等國引進(jìn)了許多先進(jìn)的現(xiàn)代化大棚,在吸收國外發(fā)達(dá)國家高科技大棚生產(chǎn)技術(shù)的基礎(chǔ)上,我國農(nóng)業(yè)科研工作人員進(jìn)行了大棚內(nèi)部溫度、
11、濕度、光照、CO2濃度等環(huán)境參數(shù)控制技術(shù)的綜合研究。</p><p> 1987年中國農(nóng)業(yè)科學(xué)院引進(jìn)了FELIXC 512系統(tǒng),并建立了全國農(nóng)業(yè)系統(tǒng)的第一個計算機應(yīng)用研究機構(gòu)。到了90年代初期,計算機開始用于大棚的管理和控制領(lǐng)域。</p><p> 2000年,金鈺研究了工業(yè)控制機IPC在自動化大棚控制中的應(yīng)用。該研究是以工業(yè)控制機為核心采集環(huán)境信息,控制執(zhí)行機構(gòu)。實現(xiàn)了大棚的封閉環(huán)境
12、控制,但該系統(tǒng)布線復(fù)雜,維護(hù)困難且成本過高。</p><p> 2005年,杜輝等研究了基于藍(lán)牙技術(shù)的分布式大棚監(jiān)控系統(tǒng)。該系統(tǒng)將藍(lán)牙技術(shù)和現(xiàn)場總線技術(shù)相結(jié)合運用于大棚群的監(jiān)控,提高了系統(tǒng)的可靠性、降低了數(shù)據(jù)傳輸過程中干擾。但由于藍(lán)牙技術(shù)本身的不成熟,該系統(tǒng)的實際應(yīng)用仍需要一定的時間。</p><p> 2007年,唐娟等研究了基于新型AVR單片機的大棚測控系統(tǒng)。該系統(tǒng)把個體生產(chǎn)和規(guī)模
13、化生產(chǎn)相結(jié)合,在單個大棚生產(chǎn)實現(xiàn)智能自動化的基礎(chǔ)上實現(xiàn)連棟大棚的規(guī)?;a(chǎn)。但是所有性能都集中在單片機上,單片機系統(tǒng)一旦出現(xiàn)故障,整個系統(tǒng)都會失控。</p><p> 2008年,周茂雷,郭康權(quán)研究出了基于ARM7微處理器的大棚控制器系統(tǒng)。該系統(tǒng)能通過AD算法實現(xiàn)大棚各路模擬量、開關(guān)量實時動態(tài)采集,將采集到的數(shù)據(jù)經(jīng)處理后定時保存并送出控制量。</p><p> 1.3選題的現(xiàn)實意義&l
14、t;/p><p> 隨著單片機和傳感技術(shù)的迅速發(fā)展,自動檢測領(lǐng)域發(fā)生了巨大變化,溫室環(huán)境自動監(jiān)測控制方面的研究有了明顯的進(jìn)展,并且必將以其優(yōu)異的性能價格比,逐步取代傳統(tǒng)的溫濕度控制措施。但是,目前應(yīng)用于溫室大棚的溫濕度監(jiān)測系統(tǒng)大多采用模擬溫度傳感器、多路模擬開關(guān)、A/D轉(zhuǎn)換器及單片機等組成的傳輸系統(tǒng)。這種溫濕度度采集系統(tǒng)需要在溫室大棚內(nèi)布置大量的測溫電纜,才能把現(xiàn)場傳感器的信號送到采集卡上,安裝和拆卸繁雜,成本也高
15、。同時線路上傳送的是模擬信號,易受干擾和損耗,測量誤差也比較大。為了克服這些缺點,本文參考了一種基于單片機并采用數(shù)字化單總線技術(shù)的溫度測控系統(tǒng)應(yīng)用于溫室大棚的的設(shè)計方案,根據(jù)實用者提出的問題進(jìn)行了改進(jìn),提出了一種新的設(shè)計方案,在單總線上傳輸數(shù)字信號。即采用DHT11溫濕度傳感器解決傳輸模擬量誤差大的問題,以及采用高技術(shù)的無線收發(fā)模塊來代替之前大量的電纜,具有更好的經(jīng)濟(jì)與實用價值。</p><p> 本文介紹的溫
16、濕度測控系統(tǒng)就是基于單總線技術(shù)及其器件組建的。該系統(tǒng)能夠?qū)Υ笈飪?nèi)的溫濕度進(jìn)行采集,利用溫濕度傳感器將溫室大棚內(nèi)溫濕度的變化,變換成數(shù)字量,其值由單片機處理,最后由單片機去控制液晶顯示器,顯示溫室大棚內(nèi)的實際溫濕度,同時通過無線通信模塊,將大棚內(nèi)的溫濕度自動發(fā)送給控制室,并在控制室的液晶顯示器上實時顯示出來。這種設(shè)計方案實現(xiàn)了溫濕度實時測量、顯示和無線傳輸。該系統(tǒng)抗干擾能力強,具有較高的測量精度,不需要任何固定網(wǎng)絡(luò)的支持,安裝簡單方便,性
17、價比高,可維護(hù)性好。這種溫濕度測控系統(tǒng)可應(yīng)用于農(nóng)業(yè)生產(chǎn)的溫室大棚,實現(xiàn)對溫濕度的實時監(jiān)測,是一種比較智能、經(jīng)濟(jì)的方案,適于大力推廣,以便促進(jìn)農(nóng)作物的生長,從而提高溫室大棚的畝產(chǎn)量,以帶來很好的經(jīng)濟(jì)效益和社會效益。</p><p> 1.4課題主要研究內(nèi)容與目標(biāo)</p><p> 本課題主要研究如何制作一個應(yīng)用于中小型大棚的可達(dá)到溫濕度實時監(jiān)測功能的系統(tǒng)。設(shè)計完成包括環(huán)境參數(shù)采集、數(shù)據(jù)處
18、理、實時顯示以及無線傳輸?shù)饶K。具體實施主要通過選擇傳感器件、設(shè)計應(yīng)用電路、編寫功能程序等步驟來實現(xiàn)該課題所需要求。</p><p> 系統(tǒng)的最終目標(biāo)是達(dá)到大棚溫濕度參數(shù)實時測量及顯示,并通過無線傳輸模塊將數(shù)據(jù)發(fā)送至控制室并顯示。</p><p> 第二章 溫室大棚溫濕度監(jiān)測系統(tǒng)設(shè)計方案論證</p><p><b> 2.1設(shè)計思想</b>
19、;</p><p> 系統(tǒng)的一大特點是用戶可以通過控制室內(nèi)(主機)的液晶顯示屏實時監(jiān)測大棚內(nèi)的溫濕度,也可以通過大棚內(nèi)(從機)的液晶顯示屏直接監(jiān)測,從而實現(xiàn)用戶對大棚內(nèi)溫濕度更加方便快捷的監(jiān)測,為用戶控制大棚參數(shù)提供數(shù)據(jù)基礎(chǔ)。系統(tǒng)從機設(shè)在種植植物的大棚內(nèi),從機中的溫濕度傳感器可以將環(huán)境中的溫濕度非電量參數(shù)轉(zhuǎn)化成電量信號,再將這些信號進(jìn)行處理后送至從機中的單片機,單片機讀取數(shù)據(jù)后將數(shù)據(jù)送到緩沖區(qū)內(nèi),通過液晶LCD
20、進(jìn)行實時顯示。同時從機中的無線通信模塊不斷將單片機處理過的數(shù)據(jù)發(fā)送出去,控制室內(nèi)的主機中的無線通信模塊則不斷的接收數(shù)據(jù),接收到數(shù)據(jù)后再送到主機中的單片機,單片機讀取數(shù)據(jù)后將數(shù)據(jù)送到緩沖區(qū)內(nèi),通過液晶LCD進(jìn)行實時顯示。</p><p><b> 2.2要實現(xiàn)的功能</b></p><p> 溫室大棚溫濕度監(jiān)測系統(tǒng)要實現(xiàn)以下幾大功能:</p><
21、p> ?。?)數(shù)據(jù)采集:接通從機電源后,溫濕度傳感器自動采集實時數(shù)據(jù),并將采集到的溫濕度轉(zhuǎn)換成數(shù)字信號,然后發(fā)送給單片機進(jìn)行處理。</p><p> ?。?)現(xiàn)場顯示:將發(fā)送到單片機中的數(shù)字信號處理后,通過LCD實時顯示出來。</p><p> ?。?)無線傳輸:利用無線傳輸模塊將采集來的數(shù)據(jù)傳輸?shù)礁浇目刂剖遥粗鳈C。</p><p> ?。?)主機顯示:該
22、功能是將無線傳輸過來的數(shù)據(jù)在控制室中顯示出來,方便用戶的實時監(jiān)測。</p><p> ?。?)無線傳輸:利用無線傳輸模塊收發(fā)離自己較近的節(jié)點的控制系統(tǒng)的數(shù)據(jù)并傳給PC機實現(xiàn)實時監(jiān)控。</p><p> 2.3方案可行性論證</p><p> 最終方案:溫室大棚溫濕度監(jiān)測系統(tǒng)結(jié)構(gòu)框圖如圖2-1所示。</p><p> 圖2-1溫室大棚溫濕
23、度監(jiān)測系統(tǒng)結(jié)構(gòu)框圖</p><p> 最終方案可行性論證:</p><p> ?。?)適應(yīng)系統(tǒng)要求?,F(xiàn)代大棚的實質(zhì)是實現(xiàn)環(huán)境因子實時顯示并自動調(diào)節(jié)作物生長環(huán)境條件,這些功能是通過一個閉環(huán)系統(tǒng)來實現(xiàn)的。因此,傳感器的性能應(yīng)該與控制系統(tǒng)相適應(yīng),尤其是傳感器的長距離布點、傳感器靈敏度的一致性、傳感器的響應(yīng)時間等,這樣才能使系統(tǒng)真正做到快速反應(yīng)和高效調(diào)控環(huán)境。本方案中采用的傳感器、無線模塊等均滿
24、足現(xiàn)代大棚的環(huán)境監(jiān)測要求。</p><p> (2)長期穩(wěn)定性好。本方案中采用的DHT11傳感器具有著良好的穩(wěn)定性,且其測量范圍廣,能夠適應(yīng)大棚內(nèi)的使用環(huán)境。</p><p> (3)優(yōu)良的性能價格比??紤]到實際運用與較大環(huán)境內(nèi)的信息監(jiān)測,則需要用到大量的傳感器,因此,必須要求其價格較低廉,否則難以推廣。本方案中采用的元器件均為低能耗、低價格器件,價格低廉但性能強大,所以具有一定的可行
25、性。</p><p> 第三章 溫室大棚溫濕度監(jiān)測系統(tǒng)硬件設(shè)計</p><p><b> 3.1 單片機部分</b></p><p><b> 3.1.1 概述</b></p><p> P89LPC938 是一款單片封裝的微控制器。它采用了高性能的處理器結(jié)構(gòu),指令執(zhí)行時間只需2 到4個時鐘
26、周期。6倍于標(biāo)準(zhǔn)80C51 器件。P89LPC938集成了許多系統(tǒng)級的功能,這樣可大大減少元件的數(shù)目和電路板面積并降低系統(tǒng)的成本,在這里本文只介紹本系統(tǒng)使用到的部分。</p><p><b> 3.1.2管腳信息</b></p><p> 圖3-1 P89LPC938管腳信息</p><p> 3.1.3 CPU時鐘(OSCCLK)<
27、;/p><p> LPC938 提供幾個可由用戶選擇的振蕩器選項來產(chǎn)生CPU 時鐘。本系統(tǒng)用到的是RCCLK內(nèi)部振蕩器輸出的7.373MHZ時鐘信號。這樣就省去了外部晶振部分,給設(shè)計帶來很大方便。</p><p><b> 3.1.4 中斷</b></p><p> P89LPC938 采用4個中斷優(yōu)先級結(jié)構(gòu)。有4個特殊功能寄存器與四個中斷優(yōu)
28、先級相關(guān),分別是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、四種輸出類型分別為:推挽,準(zhǔn)雙向口(標(biāo)準(zhǔn)8051 輸出模式),開漏輸出或僅為輸入。每個口配置2個控制寄存器控制每個管腳輸出類型。P1.5 ( RST ) 只能作為輸入口,無法進(jìn)行配置。P1.2 (SCL/T0) 和P1.3(SDA/ INT0 )只能配置為輸入口或開漏口。本系統(tǒng)把P0口配置成純輸入口,而P2則配置成準(zhǔn)雙向I/O口。</p><p> 3.1.6 定時器/計數(shù)器0 </p><
30、p> P89LPC938 有兩個通用定時/計數(shù)器,與標(biāo)準(zhǔn)80C51 定時器0 及定時器1 兼容。定時器0 及定時器1 有5 種工作模式(模式0, 1, 2, 3 和6)。模式0、1、2 和6 對于兩個定時/計數(shù)器是一樣的。模式3 則不同。</p><p> 3.1.7 A/D 轉(zhuǎn)換器</p><p> P89LPC938 包含1個10 位、8 路逐步逼近式模數(shù)轉(zhuǎn)換模塊。每個A/
31、D 轉(zhuǎn)換器由一個8 輸入多路轉(zhuǎn)換器組成。多路轉(zhuǎn)換器的輸出通過采樣保持電路,為兩個比較器提供一個輸入信號。控制邏輯連同逐次逼近式寄存器(SAR)來驅(qū)動一個數(shù)模轉(zhuǎn)換器,為比較器提供另外一個輸入。比較器的輸出又回到SAR。本系統(tǒng)用到的是AD0通道。</p><p> A/D轉(zhuǎn)換的啟動有多種模式,可以連續(xù)、多通道掃描、或由定時器的溢出啟動,因而CPU在這方面不需要花費時間。轉(zhuǎn)換結(jié)束后可使用中斷服務(wù)程序?qū)?shù)據(jù)取出處理。A
32、/D轉(zhuǎn)換器使用單電源,僅支持單極性信號的A/D轉(zhuǎn)換。對于雙極性信號,必須加上模擬電壓偏移電路,必要時,可能還需要增加信號壓縮電路。</p><p> 8路10位分辨力的逐次比較式A/D轉(zhuǎn)換器的功能很強:有8對寄存器用于存放轉(zhuǎn)換結(jié)果;轉(zhuǎn)換器有6種操作模式;有三種轉(zhuǎn)換啟動模式;A/D轉(zhuǎn)換的時鐘頻率為9MHz時,轉(zhuǎn)換時間僅4μs;可以以中斷或者輪詢方式工作;具有高、低邊界檢測中斷功能;帶時鐘分頻器;具有掉電工作模式。
33、</p><p> 3.1.8 串行外圍接口(SPI)</p><p> P89LPC938 還提供另一種高速串行通信接口——SPI 接口。SPI 是一種全雙工、高速、同步的通信總線,有兩種操作模式:主模式和從模式。主模式或從模式可支持高達(dá)3Mbit/s的速率。還具有傳輸完成標(biāo)志和寫沖突標(biāo)志保護(hù)。SPI 接口有4個管腳:SPICLK, MOSI, MISO 和SS , SPICLK,
34、MOSI 和MISO 通常和兩個或更多SPI 器件連接在一起。數(shù)據(jù)通過MOSI(主機輸出從機輸入)從主機傳送到從機,通過MISO(主機輸入從機輸出)從機傳送到主機。SPICLK 信號在主模式時為輸出,在從模式時為輸入。如果SPI 系統(tǒng)被禁止,即SPEN(SPCTL.6)=0(復(fù)位值),這些管腳都可作為I/O 口使用。 SS 為從機選擇管腳。在典型的配置中,SPI 主機使用I/O 口選擇一個SPI 器件作為當(dāng)前的從機。SPI 從器件通過其
35、SS 腳確定是否被選擇。本系統(tǒng)的無線模塊將用此接口。</p><p> 無線模塊的SPI總線,在該系統(tǒng)中,僅調(diào)試到可以通信,其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位數(shù)據(jù),同時從MISO輸出1位數(shù)據(jù)</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置低,開始傳輸數(shù)據(jù)</p><p>
40、 status = SPI_RW(reg); // 選擇寄存器,同時返回狀態(tài)字</p><p> SPI_RW(value); // 然后寫數(shù)據(jù)到該寄存器</p><p> CSN = 1; // CSN拉高,結(jié)束數(shù)據(jù)傳輸</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置低,開始傳輸數(shù)據(jù)</p><p> SPI_RW(reg); // 選擇寄存器</p><p> reg_val = SPI_RW(0); // 然后從該寄存器讀數(shù)據(jù)</p><p> CSN = 1;
43、 // CSN拉高,結(jié)束數(shù)據(jù)傳輸</p><p> return(reg_val); // 返回寄存器數(shù)據(jù)</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置低,開始傳輸數(shù)據(jù)</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拉高,結(jié)束數(shù)據(jù)傳輸</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置低,開始傳輸數(shù)據(jù)</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拉高,結(jié)束數(shù)據(jù)傳輸</p><p> return(status);
49、 // 返回狀態(tài)寄存器</p><p><b> }</b></p><p> 3.1.9 I2C接口</p><p> I2C 總線用兩條線(SDA 和SCL)在總線和器件之間傳遞信息??偩€的主要特性如下:</p><p> 主機和從機之間為雙向數(shù)據(jù)傳送;多主機總線(無中央主機)多主機同時傳送時
50、進(jìn)行仲裁避免總線上數(shù)據(jù)沖突;;串行時鐘同步使得不同位速率的器件可以通過一條串行總線進(jìn)行通信;串行時鐘同步可作為握手機制,用于掛起和恢復(fù)串行傳輸;I2C 總線可用于測試和診斷。P89LPC938 器件提供字節(jié)方式的I2C 接口。所支持的最大數(shù)據(jù)傳輸速率為400kHz。本系統(tǒng)的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個數(shù)據(jù)字節(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ā)完后釋放數(shù)據(jù)線,準(zhǔn)備接收應(yīng)答位</p><p><b> SomeNOP;</b></p><p> LCD_SCL=1;</p><p><b> SomeNOP;</
59、b></p><p> if(LCD_SDA==1) ack=0; //判斷是否接收到應(yīng)答信號</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é)數(shù)據(jù)接收,收好后用應(yīng)答函數(shù)</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ā)送應(yīng)答&
65、lt;/p><p><b> {</b></p><p> if(bit_ack) LCD_SDA=1; //發(fā)出應(yīng)答或非應(yīng)答信號</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 單片機外圍接口擴(kuò)展</p>&
67、lt;p> 由于還有很多外圍電路,以及很多擴(kuò)展功能的應(yīng)用以待將來開發(fā),因此很有必要做出一些擴(kuò)展接口,所以在硬件上做出了一些擴(kuò)展口以待將來使用。此擴(kuò)展口為P2口。</p><p><b> 3.2電源部分</b></p><p> P89LPC938采用3V直流電源供電,該系統(tǒng)選擇的電源芯片是TAR5S33電源芯片,該芯片可以將5V直流電源轉(zhuǎn)換成3.3V電源
68、提供給單片機。其輸出電壓最低為3.21V最高電壓為3.39V。</p><p> TAR5S33特點:(1)低待機電流;(2)過溫/過電流保護(hù);(3)工作電壓范圍寬;(4)最大輸出電流為高;(5)在輸入電壓和輸出電壓差低;(6)小型封裝;(7)陶瓷電容器都可以使用。原理圖如3-2所示。</p><p><b> 圖3-2電源原理圖</b></p>&
69、lt;p> 3.3 串口通信部分</p><p> P89LPC938 具有一個增強型的UART。它和傳統(tǒng)的80C51 UART 兼容,但有一點除外,即定時器2 的溢出不能用于產(chǎn)生波特率。UART 具有4 種操作模式:移位寄存器、8 位UART、9位UART 和CPU 時鐘/32 或CPU 時鐘/16。本系統(tǒng)用的UART串口用作單片機下載ISP接口,又加了RS232的轉(zhuǎn)換支持單片機遇PC之間的通信。本系
70、統(tǒng)設(shè)計的RS232部分如下圖3-3所示。</p><p> 圖3-3 RS232串口通信接口</p><p> 3.4 溫濕度傳感器數(shù)據(jù)采集部分</p><p> 3.4.1 DHT11數(shù)字溫濕度傳感器概述</p><p> DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度
71、傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強、性價比極高等優(yōu)點。每個DHT11傳感器都在極為精確的濕度校驗室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲存在OTP內(nèi)存中,傳感器內(nèi)部在檢測信號的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達(dá)20米以上
72、,使其成為各類應(yīng)用甚至最為苛刻的應(yīng)用場合的最佳選則。產(chǎn)品為 4 針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供。</p><p> 3.4.2 DHT11數(shù)字溫濕度傳感器性能說明</p><p> 表3.1 DHT11數(shù)字溫濕度傳感器性能</p><p> 建議連接線長度短于20米時用5K上拉電阻,大于20米時根據(jù)實際情況使用合適的上拉電阻。DH
73、T11的供電電壓為3——5.5V。傳感器上電后,要等待 1s 以越過不穩(wěn)定狀態(tài)在此期間無需發(fā)送任何指令。電源引腳(VDD,GND)之間可增加一個100nF 的電容,用以去耦濾波。典型應(yīng)用電路如圖3-4所示。</p><p> 圖3-4 典型應(yīng)用電路</p><p> DATA 用于微處理器與 DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時間4ms左右,數(shù)據(jù)分小數(shù)部分和整
74、數(shù)部分,具體格式在下面說明,當(dāng)前小數(shù)部分用于以后擴(kuò)展,現(xiàn)讀出為零.操作流程如下:</p><p> 一次完整的數(shù)據(jù)傳輸為40bit,高位先出,數(shù)據(jù)格式:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù),+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗和</p><p> 數(shù)據(jù)傳送正確時校驗和數(shù)據(jù)等于“8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)
75、”所得結(jié)果的末8位。</p><p> 用戶MCU發(fā)送一次開始信號后,DHT11從低功耗模式轉(zhuǎn)換到高速模式,等待主機開始信號結(jié)束后,DHT11發(fā)送響應(yīng)信號,送出40bit的數(shù)據(jù),并觸發(fā)一次信號采集,用戶可選擇讀取部分?jǐn)?shù)據(jù).從模式下,DHT11接收到開始信號觸發(fā)一次溫濕度采集,如果沒有接收到主機發(fā)送開始信號,DHT11不會主動進(jìn)行溫濕度采集.采集數(shù)據(jù)后轉(zhuǎn)換到低速模式。</p><p>
76、總線空閑狀態(tài)為高電平,主機把總線拉低等待DHT11響應(yīng),主機把總線拉低必須大于18毫秒,保證DHT11能檢測到起始信號。DHT11接收到主機的開始信號后,等待主機開始信號結(jié)束,然后發(fā)送80us低電平響應(yīng)信號。主機發(fā)送開始信號結(jié)束后,延時等待20-40us后, 讀取DHT11的響應(yīng)信號,主機發(fā)送開始信號后,可以切換到輸入模式,或者輸出高電平均可, 總線由上拉電阻拉高。</p><p> 總線為低電平,說明DHT1
77、1發(fā)送響應(yīng)信號,DHT11發(fā)送響應(yīng)信號后,再把總線拉高80us,準(zhǔn)備發(fā)送數(shù)據(jù),每一bit數(shù)據(jù)都以50us低電平時隙開始,高電平的長短定了數(shù)據(jù)位是0還是1.格式見下面圖示.如果讀取響應(yīng)信號為高電平,則DHT11沒有響應(yīng),請檢查線路是否連接正常.當(dāng)最后一bit數(shù)據(jù)傳送完畢后,DHT11拉低總線50us,隨后總線由上拉電阻拉高進(jìn)入空閑狀態(tài)。</p><p> 測量分辨率分別為 8bit(溫度)、8bit(濕度)。&l
78、t;/p><p> 3.4.3 DHT11數(shù)字溫濕度傳感器使用注意事項</p><p> DHT11電器特性如表3.2所示,超出建議的工作范圍可能導(dǎo)致高達(dá)3%RH的臨時性漂移信號。返回正常工作條后,傳感器會緩慢地向校準(zhǔn)狀態(tài)恢復(fù)。</p><p> 表3.2 DHT11電氣特性</p><p> 電阻式濕度傳感器的感應(yīng)層會受到化學(xué)蒸汽的干
79、擾,化學(xué)物質(zhì)在感應(yīng)層中的擴(kuò)散可能導(dǎo)致測量值漂移和靈敏度下降。在一個純凈的環(huán)境中,污染物質(zhì)會緩慢地釋放出去。下文所述的恢復(fù)處理將加速實現(xiàn)這一過程。高濃度的化學(xué)污染會導(dǎo)致傳感器感應(yīng)層的徹底損壞。</p><p> 置于極限工作條件下或化學(xué)蒸汽中的傳感器,通過如下處理程序,可使其恢復(fù)到校準(zhǔn)時的狀態(tài)。在50-60℃和< 10%RH的濕度條件下保持2 小時(烘干);隨后在20-30℃和>70%RH的濕度條件下
80、保持 5小時以上。</p><p> 氣體的相對濕度,在很大程度上依賴于溫度。因此在測量濕度時,應(yīng)盡可能保證濕度傳感器在同一溫度下工作。如果與釋放熱量的電子元件共用一個印刷線路板,在安裝時應(yīng)盡可能將DHT11遠(yuǎn)離電子元件,并安裝在熱源下方,同時保持外殼的良好通風(fēng)。為降低熱傳導(dǎo),DHT11與印刷電路板其它部分的銅鍍層應(yīng)盡可能最小,并在兩者之間留出一道縫隙。</p><p> 長時間暴露在
81、太陽光下或強烈的紫外線輻射中,會使性能降低。</p><p> DATA信號線材質(zhì)量會影響通訊距離和通訊質(zhì)量,推薦使用高質(zhì)量屏蔽線。</p><p> 手動焊接,在最高260℃的溫度條件下接觸時間須少于10秒。</p><p> (1)避免結(jié)露情況下使用。</p><p> (2)長期保存條件:溫度10-40℃,濕度60%以下。<
82、;/p><p> 3.5 LCD顯示部分</p><p> 本系統(tǒng)用到的液晶是SRL_11280W_LCD。電路原理圖如圖3-5所示。</p><p> 圖3-5液晶顯示原理圖</p><p> 3.5.1 顯示特性</p><p> ?。?) FSTN 方式正性顯示,高透式(2) 顯示顏色(色調(diào)隨溫度及驅(qū)動器電壓
83、不同而略有改變)顯示顏色:顯示數(shù)據(jù)“1”:黑背景顏色:顯示數(shù)據(jù)“0”:白色(3) 視角:6 點鐘方向(4) 驅(qū)動占空比:1/80</p><p> 3.5.2 操作原理和方法</p><p> 該模塊采用PCF8811 DRIVER 驅(qū)動,I2C 總線控制。當(dāng)/RESET 收到一個復(fù)位脈沖超過500ns 時,芯片內(nèi)部電路恢復(fù)到初始化狀態(tài)。</p><p> 液
84、晶顯示部分,采集到到的模擬量可以實時顯示到液晶屏上面,同時對于不同的工作狀態(tài)均有不同的狀態(tài)指示,該液晶屏用到的是I2C總線。LCD的最外面一層是透明的玻璃基體,玻璃基體中間就是薄膜電晶體。顏色過濾器和液晶層可以顯示紅、藍(lán)和綠三種最基本的顏色。通常,LCD后面都有照明燈以顯示畫面。一般只要電流不變動,液晶都在非結(jié)晶狀態(tài)。這時液晶允許任何光線通過。液晶受到電壓變化的影響后,液晶之間允許一定數(shù)量的光線通過。光線的反射角度按照液晶控制。當(dāng)液晶的
85、供應(yīng)電壓變動時,液晶就會產(chǎn)生變形,因而光線的折射角度就會不同,從而產(chǎn)生色彩的變化。一個完整的液晶顯示屏由很多像素構(gòu)成,每個像素就像一個可以開關(guān)的晶體管。這樣就可以控制液晶顯示屏的分辨率。如果一個LCD的分辨率可以達(dá)到1024×768,那么它就有那么多的像可以顯示,這里的像素是112×80。還有該液晶模塊采用PCF8811DRIVER掃描驅(qū)動。其初始化程序見附錄一掃描驅(qū)動的種類及特征如圖3-6所示。</p>
86、<p> 圖3-6 掃描驅(qū)動的種類及特征</p><p> 3.6 無線模塊部分</p><p> NRF24L01 是NORDIC 公司最近生產(chǎn)的一款無線通信通信芯片,采用FSK 調(diào)制,內(nèi)部集成NORDIC 自己的Enhanced Short Burst 協(xié)議??梢詫崿F(xiàn)點對點或是1 對6 的無線通信。無線通信速度可以達(dá)到2M(bps)。NORDIC 公司提供通信模塊的
87、GERBER 文件,可以直接加工生產(chǎn)。嵌入式工程師或是單片機愛好者只需要為單片機系統(tǒng)預(yù)留5個GPIO,1個中斷輸入引腳,就可以很容易實現(xiàn)無線通信的功能,非常適合用來為MCU 系統(tǒng)構(gòu)建無線通信功能。2.4G 全球開放ISM 頻段,最大0dBm 發(fā)射功率,免許可證使用支持六路通道的數(shù)據(jù)接收, 2Mbit/s使得高質(zhì)量的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總線可在軟件的控制下構(gòu)成各種系統(tǒng)。如1個主MCU和幾個從MCU、幾個從MCU相互連接構(gòu)成多主機系統(tǒng)(分布式系統(tǒng))、1個主MCU和1個或幾個從I
89、/O設(shè)備所構(gòu)成的各種系統(tǒng)等。在大多數(shù)應(yīng)用場合,可使用1個MCU作為控機來控制數(shù)據(jù),并向1個或幾個從外圍器件傳送該數(shù)據(jù)。從器件只有在主機發(fā)命令時才能接收或發(fā)送數(shù)據(jù)。其數(shù)據(jù)的傳輸格式是高位(MSB)在前,低位(LSB)在后。當(dāng)一個主控機通過SPI與幾種不同的串行I/O芯片相連時,必須使用每片的允許控制端,這可通過MCU的I/O端口輸出線來實現(xiàn)。但應(yīng)特別注意這些串行I/O芯片的輸入輸出特性:首先是輸入芯片的串行數(shù)據(jù)輸出是否有三態(tài)控制端。平時未
90、選中芯片時,輸出端應(yīng)處于高阻態(tài)。若沒有三態(tài)控制端,則應(yīng)外加三態(tài)門。否則MCU的MISO端只能連接1個輸入芯片。其次是輸出芯片的串行數(shù)據(jù)輸入是否有允許控制端。因此只有在此芯片允許時,SCK脈沖才把串行數(shù)據(jù)移入該芯片;在禁止時,SCK對芯片無影響。若沒有允許控制端,則應(yīng)在外圍用門電路對SCK進(jìn)行控制,然后再加到芯片的時鐘輸入端;當(dāng)然,也可以只在SPI總線上連接1個芯片,而不再連接其它輸入或輸出芯片。</p><p>
91、 無線傳輸模塊用的是NRF24L01,與單片機的接口用的是SPI總線。該總線是一種高速串行通信接口,全雙工、高速、同步的通信總線。兩種工作模式:主模式和從模式。該系統(tǒng)中通過通信協(xié)議,我的系統(tǒng)可以接收最近節(jié)點的數(shù)據(jù)同時向最近的節(jié)點發(fā)送,同時將收發(fā)的數(shù)據(jù)發(fā)送到液晶屏上。</p><p> NRF24l01產(chǎn)品性能:1)2.4GHZ全球開放ISM頻段免許可使用。2) 最高工作速率2Mbps,GFSK高效調(diào)制。3)
92、125個頻道滿足多點通訊和跳頻通訊需求。4) 1.9-3.6V工作,低功耗,待機模式僅1uA.。5) 雙通道數(shù)據(jù)接收,內(nèi)置環(huán)行天線,體積僅17*34mm,通信距離在100m之內(nèi),軟件編簡單。6) 內(nèi)置硬件8/16位CRC校驗,收發(fā)中斷標(biāo)志,每次可發(fā)28字節(jié)。NRF2401實物圖見圖3-7所示。</p><p> 圖3-7 NRF 24L01實物圖</p><p> 第四章 溫室大棚溫濕
93、度監(jiān)測系統(tǒng)軟件的設(shè)計</p><p> 4.1 主程序及流程圖</p><p> 結(jié)合要實現(xiàn)的功能,主程序部分分為主機部分和從機部分。分別編寫為:</p><p> 從機程序:首先初始化,即將各個模塊分別進(jìn)行初始化,然后溫濕度傳感器開始采集數(shù)據(jù),采集到實時數(shù)據(jù)后,傳感器DHT11將數(shù)據(jù)轉(zhuǎn)化為數(shù)字信號,并向單片機輸出轉(zhuǎn)換過的數(shù)字信號。單片機收到數(shù)據(jù)后,再將此時的
94、數(shù)據(jù)發(fā)送給液晶顯示屏,并通過SPI總線驅(qū)動LCD,LCD將實時溫濕度顯示出來;同時,單片機將數(shù)據(jù)發(fā)送到無線模塊,并給其一個脈沖信號,無線模塊收到驅(qū)動脈沖后則將數(shù)據(jù)發(fā)送出去。最后程序再回到數(shù)據(jù)采集部分,以此循環(huán)下去。</p><p> 主機程序:首先初始化各模塊,無線模塊開始接收信號,接收完一組信號后,無線模塊將數(shù)據(jù)發(fā)送給單片機,單片機再將數(shù)據(jù)送給LCD,并驅(qū)動LCD顯示收到的數(shù)據(jù)。由于無線模塊不斷的接收數(shù)據(jù),所
95、以液晶屏的數(shù)據(jù)也不斷刷新。流程圖如圖4-1所示。</p><p> ?。?)從機流程圖 (2)主機流程圖</p><p> 圖4-1 主程序流程圖</p><p> 4.2 各子程序及流程圖</p><p> 4.2.1 A/D模塊</p>
96、<p> 本設(shè)計選擇AD0通道進(jìn)行連續(xù)轉(zhuǎn)換,轉(zhuǎn)換結(jié)果順序存放在8個結(jié)果寄存器中。用戶可選擇每完成4 次或8 次轉(zhuǎn)換后是否產(chǎn)生中斷。其它額外的轉(zhuǎn)換結(jié)果將循環(huán)存放到結(jié)果寄存器對中,將之前的結(jié)果覆蓋。連續(xù)轉(zhuǎn)換過程由用戶終止。</p><p> A/D轉(zhuǎn)換的過程主要包括采樣,量化和編碼。采樣使模擬信號在時間上離散化;量化就是用一個基本的計量單位(量化電平)使模擬量變?yōu)橐粋€整數(shù)的數(shù)字量;編碼是把已將量化的模
97、擬量(它是量化電平的整數(shù)倍)用二進(jìn)制碼、BCD碼或其他數(shù)碼表示??傊?,量化與編碼就是把采集后所得到的離散幅值通過舍入的方式變換成與輸入量成比例的二進(jìn)制數(shù)。涉及到的技術(shù)主要有:轉(zhuǎn)換時間和轉(zhuǎn)換頻率、分辨率、轉(zhuǎn)換精度、量化誤差。</p><p> 本系統(tǒng)中的A/D轉(zhuǎn)換程序為:主程序開始時,定義電壓實測值函數(shù)初始化,A/D口初始化,按鍵按下進(jìn)行光控的A/D啟動,固定通道單次轉(zhuǎn)換,立即啟動。等待轉(zhuǎn)換結(jié)束,延時,轉(zhuǎn)換的的高
98、八位與低八位送入寄存器,返回轉(zhuǎn)換結(jié)果。A/D轉(zhuǎn)換流程圖如圖4-2所示。</p><p> 圖4-2 A/D轉(zhuǎn)換流程圖</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; //結(jié)果寄存器地址</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; //單次轉(zhuǎn)換<
103、/p><p><b> }</b></p><p> void ad_start(void)</p><p><b> {</b></p><p> ADCON0=0X05; / /固定通道、單次轉(zhuǎn)換、立即啟動&l
104、t;/p><p> while(!ADCON0&0x08); / /等待轉(zhuǎn)換完畢</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ā)生器電路,有多個時鐘源可用于產(chǎn)生標(biāo)準(zhǔn)波特率。接收數(shù)據(jù)緩沖機制允許UART在軟件尚未讀取前一個數(shù)據(jù)字節(jié)的情況下可開始接受第二個數(shù)據(jù)字節(jié)。</p><p> UART有串行控制數(shù)據(jù)控制寄存器(SCON)和串行數(shù)據(jù)緩沖器(SBUF)兩個相關(guān)特殊功能寄存器,用同一個SBUF地址可以訪問發(fā)送寄存器和接收寄存器。寫SBUF時,自動訪問發(fā)送寄存器;讀SUB
107、F時,自動訪問寄存器,不可能從發(fā)送數(shù)據(jù)寄存器中都數(shù)據(jù)。如果UART中斷被允許,則每次發(fā)送完成(SCON中的TI位被置1)或接收到數(shù)據(jù)字節(jié)時(SCON中的RI位置1)時將產(chǎn)生一個中斷。當(dāng)CPU轉(zhuǎn)向中斷服務(wù)子程序時,軟件清除中斷標(biāo)志位。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> 液晶驅(qū)動初始化程序如下:</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寫數(shù)據(jù)</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坐標(biāo)</p><p> wr_i2c_one_byte(0x10); //寫入x坐標(biāo)</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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 溫室大棚溫濕度監(jiān)測系統(tǒng)設(shè)計畢業(yè)論文(設(shè)計)
- 溫室大棚溫濕度監(jiān)測系統(tǒng)設(shè)計
- 智能溫室大棚溫濕度檢測系統(tǒng)設(shè)計
- 蔬菜溫室大棚溫濕度監(jiān)控系統(tǒng)
- 蔬菜大棚溫濕度實時測控系統(tǒng)的設(shè)計-畢業(yè)論文
- 大棚溫濕度測控系統(tǒng)畢業(yè)設(shè)計
- 自動化畢業(yè)論文-蔬菜大棚溫濕度測控系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計---溫室大棚中溫濕度測控系統(tǒng)的研究與設(shè)計
- 畢業(yè)設(shè)計(論文)倉庫溫濕度監(jiān)測系統(tǒng)
- 溫室溫濕度控制系統(tǒng)畢業(yè)論文
- 畢業(yè)設(shè)計--溫室大棚溫濕度控制系統(tǒng)(含開題報告)
- 優(yōu)秀畢業(yè)論文(設(shè)計)基于單片機(mcu)的蔬菜大棚溫濕度監(jiān)測系統(tǒng)設(shè)計
- 倉庫溫濕度的監(jiān)測系統(tǒng)畢業(yè)論文
- 倉庫溫濕度檢測系統(tǒng)設(shè)計-畢業(yè)論文
- 畢業(yè)論文(無源程序)倉庫溫濕度監(jiān)測系統(tǒng)設(shè)計
- 大棚溫濕度自動監(jiān)控系統(tǒng)設(shè)計
- 倉庫溫濕度的監(jiān)測系統(tǒng)-畢業(yè)設(shè)計論文
- 基于51單片機的溫室大棚溫濕度測控系統(tǒng)設(shè)計【自動化畢業(yè)論文】
- 基于51單片機的溫室大棚溫濕度測控系統(tǒng)設(shè)計【自動化畢業(yè)論文】
- 畢業(yè)設(shè)計----溫濕度的監(jiān)測系統(tǒng)
評論
0/150
提交評論