【《溫室中溫濕度檢測控制系統(tǒng)設計》13000字(論文)】_第1頁
【《溫室中溫濕度檢測控制系統(tǒng)設計》13000字(論文)】_第2頁
【《溫室中溫濕度檢測控制系統(tǒng)設計》13000字(論文)】_第3頁
【《溫室中溫濕度檢測控制系統(tǒng)設計》13000字(論文)】_第4頁
【《溫室中溫濕度檢測控制系統(tǒng)設計》13000字(論文)】_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

溫室中溫濕度檢測控制系統(tǒng)設計摘要在社會的不斷發(fā)展中,農(nóng)業(yè)生產(chǎn)也不僅限于自然生產(chǎn),溫室生產(chǎn)反而占比農(nóng)業(yè)生產(chǎn)比較重要的部分。而在溫室生產(chǎn)中,對于溫濕度的控制則是溫室當中非常重要的部分,并且對生產(chǎn)的產(chǎn)量有著很大的影響。近年來,傳感器技術的發(fā)展讓溫室的溫濕度控制得到更加的完善,但因為造價比較昂貴,還不能得到廣泛的運用。因此應對這種情況,開發(fā)一套能夠在保證性能的基礎上同時造價比較低廉,能夠被廣泛使用的溫室控制系統(tǒng)對我們溫室的發(fā)展有著挺大的意義。這次設計是以STC89C52型號單片機作為主要部分,用DHT11傳感器去對溫濕度進行處理,同時加上1602液晶顯示屏讓我們能夠隨時觀察實時的溫濕度檢測情況,加上蜂鳴器的報警裝置,能夠讓我們對溫室環(huán)境更進一步的了解。相對于其他的溫室加測系統(tǒng),本次設計將使得溫室的檢測更加的穩(wěn)定,性能比較優(yōu)越,同時造價比較低安全性能也比較高,更適用于大部分的溫室。關鍵詞:STC89C52;DHT11;溫濕度感應控制;報警;單片機目錄1緒論 頁1緒論選題的背景及意義我國是以農(nóng)業(yè)作為最重要的產(chǎn)業(yè)之一,同時我們國家也擁有世界第一農(nóng)業(yè)大國的稱號,所以我國的經(jīng)濟發(fā)展中,農(nóng)業(yè)生產(chǎn)處于非常重要的地方。而農(nóng)業(yè)生產(chǎn)想要完善,良好的氣候條件與生態(tài)環(huán)境是非常必要的,但我國雖然地大物博,卻不是所有的地方都有著非常適宜的農(nóng)業(yè)生產(chǎn)條件,在有限的土地中進行滿足我國人民日常所需使我們所需要面對的難題。再此條件下,溫室則算是應運而生的農(nóng)業(yè)生產(chǎn)方式,通過溫室,我們可以在各地進行農(nóng)業(yè)化生產(chǎn),一些擁有惡劣環(huán)境的地方也不會擔心因天然災害而無法進行溫飽。而隨著科技的不斷發(fā)展,從事農(nóng)業(yè)方面的人是不斷減少的,但是我們對農(nóng)產(chǎn)品的需求確實不斷提高的,所以對于溫室的推廣以及升級是應運而生的。溫室的作用是將四周的環(huán)境改變成適合農(nóng)作物生長的環(huán)境,以次為農(nóng)作物提供最優(yōu)的生活條件,可以使農(nóng)作物的生長發(fā)育更加優(yōu)渥,同時也可以提高農(nóng)作物的質(zhì)量以及產(chǎn)量。因此溫室當中,關于溫濕度的檢測和控制簡直就是溫室生產(chǎn)中的重中之重。只有我們能夠實時準確的檢測出環(huán)境中的溫濕度狀況,并根據(jù)我們所需的溫濕度狀況去改變,溫室的發(fā)展才能夠順利的、普及的發(fā)展下去?,F(xiàn)在的溫室中環(huán)境的檢測和控制是各不相同的,究其主要原因是因為溫室環(huán)境的控制系統(tǒng)由于硬件的昂貴以及軟件編寫的復雜,使得溫室的主要控制系統(tǒng)造價昂貴,只有一些規(guī)模比較大的溫室才會使用,并不會大規(guī)模、廣泛的去運用。因此,我想在造價比較低的基礎上讓溫室的控制仍然能夠滿足我們的需求。隨著單片機的不斷發(fā)展,單片機也被逐漸利用到其他領域當中,我們此次就是利用單片機來設計一個溫濕度監(jiān)測控制系統(tǒng),這個系統(tǒng)可以讓我們設定我們所需的溫濕度范圍,并且實時自動監(jiān)測環(huán)境中的溫濕度,如果溫濕度不符合我們的要求,系統(tǒng)將會發(fā)出報警并啟動控制功能,對相應的不符合的溫濕度進行控制,直至在我們所需的范圍內(nèi)停止控制。這個設計的實現(xiàn)將會使我們的溫室農(nóng)業(yè)發(fā)展更進一步,我們能夠更方便的去了解溫室的溫濕度狀況,讓溫室的發(fā)展變得更加簡單方便。國內(nèi)外發(fā)展概況溫室生產(chǎn)在國外的發(fā)展中,上個世紀70年代開始較快的進行發(fā)展,尤其是在發(fā)達國家比如美國等在這個時候溫室發(fā)展已經(jīng)逐步開始實現(xiàn)機械化方向的發(fā)展。隨著計算機技術的不斷發(fā)展,在80年代的時候,溫室發(fā)展開始利用計算機進行控制溫室的環(huán)境,即將我們進行溫室生產(chǎn)的農(nóng)作物的各種生長發(fā)育階段所需要的生長環(huán)境錄入程序中,使得環(huán)境能夠隨著農(nóng)作物的生長而改變,這種方法交多因素綜合控法。而這種方法在90年代時,又進行了升級,加入模糊控制、多變量控制等技術使得技術更進一步,利用計算機去控制溫室的環(huán)境的方法逐漸變得更加合理。而現(xiàn)在美國、荷蘭、日本等發(fā)達國家可以自動調(diào)控溫室環(huán)境使得環(huán)境更加適合農(nóng)作物的生長。我國在上個世紀30年代時就有地區(qū)生產(chǎn)蔬菜時使用“日光溫室”這種技術,但由于當時技術不夠,所以生產(chǎn)的局限性很大。之后到上世紀80年代中期,人們對原有的粗糙的方法進行改進,使得可以生產(chǎn)的農(nóng)作物品種增加,但產(chǎn)量相對比較低,在此之前都是靠人們憑借經(jīng)驗的培育知道80年代末90年代初,我國通過引進外國技術并在原有的基礎上取得了更好的成效,目前我國溫室仍和國外有這一定距離,我國仍有很大的發(fā)展空間。本文的主要內(nèi)容設計溫濕度檢測控制系統(tǒng)的第一步就是按照自己的需求對溫濕度的所需要范圍進行輸入,在此之后將經(jīng)過DHT11傳感器檢測獲得到的溫濕度數(shù)值傳輸給單片機進行判斷,當判斷出的數(shù)值在范圍內(nèi),單片機正常運轉,而不在范圍內(nèi),則會進行警報,啟動相應的控制程序。所以這個系統(tǒng)需要完成以下幾種任務:①上下限制的溫濕度值能夠根據(jù)不同的需求進行不同的調(diào)整,并通過鍵盤完成調(diào)整且能夠在顯示器中顯示出來。②能夠準確而又無延遲的檢測出當時場景中的溫濕度值,并顯示出來。③能夠通過檢測出來的溫濕度值去判斷是否在預設值的上下限范圍之內(nèi),并通過判斷確認是否啟動報警裝置。這個設計最為核心且最為重要的部分是對溫濕度的采集、顯示和控制。單片機的選我們使用STC89C52單片機進行運轉,STC89C52單片能夠很快的執(zhí)行指令,而且對工作環(huán)境的要求比較低;而對于傳感器的選擇,我選擇DHT11傳感器,這款傳感器比較以往的單獨測量溫度和濕度的傳感器,更加的便捷。溫濕度監(jiān)測控制系統(tǒng)的設計首先是根據(jù)需求進行溫濕度上下范圍進行設置,然后使用DHT11傳感器對當前環(huán)境下的實時溫濕度進行檢測,之后將數(shù)據(jù)傳輸給單片機進行處理,單片機接收傳感器發(fā)過來的數(shù)據(jù)后對數(shù)據(jù)進行分析,并通過分析得出的結論來處理這些數(shù)據(jù),之后數(shù)據(jù)將會傳輸給液晶顯示模塊,,讓數(shù)據(jù)在液晶顯示模塊中顯示出來讓我們能夠一眼便知。我們在系統(tǒng)設計中添加了控制報警模塊,在單片機處理數(shù)據(jù)時,如果有數(shù)據(jù)不在我們預先設計的范圍中,報警模塊將會被觸發(fā),蜂鳴器將會發(fā)出警報讓我們知曉溫濕度環(huán)境發(fā)生變化,同時會啟動相應的控制方式,例如升溫、降溫、加濕或除濕的控制方式,使得環(huán)境中的溫濕度在控制中逐漸到達我們所設置的溫濕度范圍中,從而讓我們能夠對溫室環(huán)境按我們的需求進行控制。有此可見,我們設計的檢測控制系統(tǒng)主要包含以下五個部分:以STC89C52單片機為主要核心的模塊、傳感器檢測模塊、液晶顯示模塊、控制報警模塊和軟件的編寫。2溫濕度監(jiān)測控制系統(tǒng)總體方案設計2.1溫濕度監(jiān)測控制系統(tǒng)的預期功能1、能夠透過DHT11傳感器檢測到溫濕度數(shù)據(jù),并能夠及時的發(fā)送給單片機;2、單片機對接收到溫濕度傳感器發(fā)來的信號進行分析處理,并將處理后的數(shù)據(jù)發(fā)送到1602液晶顯示屏進行顯示;3、1602液晶顯示屏會顯示單片機發(fā)送過來的數(shù)據(jù)信息;4、能夠從自身需求出發(fā)設置溫濕度的上下限數(shù)值(范圍在給定的系統(tǒng)測量最大范圍之內(nèi)),同時接入蜂鳴器,使實時數(shù)值不在設定范圍內(nèi)時能夠發(fā)出警報;5、當溫濕度不在上下限范圍內(nèi)使,繼電器將根據(jù)具體情況去進行升降溫、升降濕去控制外接溫濕度在預設值范圍之內(nèi)。2.2溫濕度監(jiān)測控制系統(tǒng)的設計思路系統(tǒng)的硬件電路主要包括溫濕度采集模塊、顯示模塊、處理報警模塊。該系統(tǒng)以STC89C52單片機為核心控制電路,控制DHT11傳感器實時發(fā)送數(shù)據(jù)并顯示在1602液晶屏上。同時,通過對實時數(shù)據(jù)的判斷,確定是否報警。這些指令程序將通過軟件編程導入應用程序。2.3溫濕度監(jiān)測控制系統(tǒng)的方案論證2.3.1關于溫濕度傳感器的選擇選用DHT11型溫濕度傳感器作為溫濕度檢測模塊。DHT11是一種具有校準數(shù)字信號輸出的溫濕度復合傳感器。采用特殊的數(shù)字模塊采集技術和溫濕度傳感技術,保證產(chǎn)品的高可靠性和優(yōu)良的長期穩(wěn)定性。該傳感器由電阻式濕度傳感器和NTC溫度傳感器組成,并與高性能8位MCU相連。因此,該產(chǎn)品具有質(zhì)量優(yōu)良、響應速度超快、抗干擾能力強、性價比高等優(yōu)點。同時,DHT11傳感器采用了單線串行接口,使得系統(tǒng)集成更加方便快捷。它的超小尺寸和低功耗使其成為苛刻應用中此類應用的最佳選擇。產(chǎn)品采用4針單排插針包裝,連接方便。2.3.2關于顯示器的選擇方案一:選擇12864液晶。12864LCD是128*64分辨率的點陣??娠@示8*4個漢字。由于型號不同,有的有漢字庫,有的沒有,可以顯示圖像效果。它可以直接與CPU接口,并提供兩個接口連接微處理器。同時,12864液晶屏具有光標顯示、畫面平移、睡眠模式等多種功能,其體積相對較小,不會占用大面積。然而,12864液晶顯示器顯示的信息量大,使得編程和連接電路相對復雜和昂貴。方案二:選擇1602液晶屏。1602液晶顯示器是一種工業(yè)字符液晶顯示器,它可以顯示32個字符,只能顯示字母、數(shù)字和符號,但它的寄存器不僅是32個,而且1602液晶顯示器的控制相對簡單,成本相對較低。同時,其顯示字符字體大小有限。比較兩種方案,在編程方面,兩種方案在難度和原理上基本相同。它們都是寫指令、地址、數(shù)據(jù)等。12864液晶顯示更全面,字符更多。相對而言,12864顯示屏可以比1602顯示屏更生動地實現(xiàn)顯示功能。但當兩者都能滿足我們的要求時,1602的價格比12864便宜,考慮到這一點,我們選擇1602作為更好的選擇。2.3.3關于單片機主芯片的選擇方案一:選擇AT89C51。AT89C51是美國ATMEL公司生產(chǎn)的低電壓、高性能CMOS8位微控制器。該芯片包含4K字節(jié)的可再擦除只讀程序存儲器和128字節(jié)的隨機存取數(shù)據(jù)存儲器(RAM)。該器件采用ATMEL公司的高密度、非易失性存儲器技術,兼容標準MCS-51指令系統(tǒng),芯片內(nèi)置8位CPU和閃存單元,功能強大??梢詾槲覀兲峁┰S多高性價比的應用,可以靈活的應用到各種控制領域。方案二:選擇STC89C52。STC89C52與AT89C51系列完全兼容,但在運行中存在一些問題。與AT89C51相比,STC89C52的速度非???,大約是AT89C51的3-30倍。但對于時序要求嚴格的模塊,STC89C52應注意延長延時。STC89C52單片機對工作環(huán)境要求較低。當電壓低于5V時,即使在3V到4V之間,也能正常工作。然而,AT89C51不能在這樣的環(huán)境下工作。結論:相比之下,STC89C52的性能優(yōu)于AT89C51。同時,AT89C51不帶ISP下載,所以需要使用下載程序。STC89C52可以用你的USB到串口下載,下載的軟件可以去STC廠商的網(wǎng)絡。此時,我們選擇STC89C52使用更方便2.4總體的設計框圖根據(jù)系統(tǒng)功能的要求,在保證功能穩(wěn)定使用的基礎上,盡最大努力使系統(tǒng)的組成更具性價比,因此組成了如下圖2.1的系統(tǒng)方案圖。P2.0P2.0STC89C52主控模塊P2.2~P2.4P0.7DHT11傳感器模塊1602字符液晶模塊報警模塊傳感器與之相連1602字符液晶與之相連圖2.1系統(tǒng)方案圖在這個原理圖中,我們可以很容易地看到我們的系統(tǒng)由四個模塊組成:主控模塊、DHT11傳感器模塊、1602字符液晶顯示模塊和報警模塊。同時盡量使設計簡單明了,所有外圍模塊均采用串行方式與微處理器模塊進行接口。本設計以STC89C51系列單片機為控制核心,實現(xiàn)溫濕度采集和顯示的基本功能。在系統(tǒng)的設計中,為了更好地采用模塊化的設計方法,對各個單元的功能模塊進行了分步設計,系統(tǒng)的硬件部分可以分為四個部分:使用傳感器、單片機控制、1602液晶顯示和報警。3系統(tǒng)硬件設計3.1概述溫濕度檢測控制系統(tǒng)的設計主要由主控模塊、傳感器模塊、液晶顯示模塊和報警模塊組成。在這四個模塊中,主控模塊是本次畢業(yè)設計的核心模塊。在設計中,主要參考STC89C52芯片,控制整個系統(tǒng)的運行,并利用其端口分別控制其他模塊,使其他模塊成為一個整體,實現(xiàn)所需的功能;報警模塊主要是將蜂鳴器連接到單片機電路上,通過實時溫濕度檢測和設定的溫濕度檢測范圍判斷是否需要報警;傳感器模塊適用于實驗周圍溫度、濕度的實時檢測,與單片機連接后將實時數(shù)據(jù)傳輸給單片機;最后將液晶顯示模塊與單片機相連,實現(xiàn)對溫濕度的實時監(jiān)測。3.2主控模塊的設計3.2.1STC89C52芯片的簡介特點:STC89C52是STC公司生產(chǎn)的低功耗、高性能CMOS8位微控制器,具有8K字節(jié)系統(tǒng)可編程閃存。STC89C52采用了經(jīng)典的MCS-51內(nèi)核,但為了使芯片具有傳統(tǒng)51單片機所不具備的功能,對其進行了許多改進。在單芯片上,采用智能8位CPU和系統(tǒng)內(nèi)可編程閃存,STC89C52為許多嵌入式控制應用系統(tǒng)提供了一種高度靈活有效的解決方案,如圖3-1所示。同時,STC89C52具有以下標準功能:8K字節(jié)閃存、256字節(jié)ram、32位I/O端口線、看門狗定時器、內(nèi)置4KBEEPROM、max810復位電路、4個外部中斷、7矢量4級中斷結構(兼容傳統(tǒng)的515矢量2級中斷結構)、全雙工串口、,兩個數(shù)據(jù)指針、三個16位定時器/計數(shù)器、一個6矢量兩級中斷結構、全雙工串行端口、片上晶體振蕩器和時鐘電路。此外,AT89S52還可以簡化為0Hz靜態(tài)邏輯運算,支持兩種軟件選擇節(jié)電模式。在空閑模式下,CPU停止工作,并允許ram、定時器/計數(shù)器、串行端口和中斷繼續(xù)工作。在掉電保護模式下,ram內(nèi)容被保存,振蕩器被凍結,MCU的所有工作停止,直到下一個中斷或硬件復位主要特點:兼容MCS51單片機產(chǎn)品,8K字節(jié)程序存儲空間,512字節(jié)數(shù)據(jù)存儲空間,4K字節(jié)EEPROM存儲空間,8K字節(jié)系統(tǒng)可編程閃存,1000個擦除周期,全靜態(tài)工作:0Hz~33hz

、三級加密程序存儲器

、32個可編程I/O端口

、三個16位定時器/計數(shù)器、八個中斷源、全雙工UART串行通道、低功耗空閑和掉電模式、掉電中斷后喚醒、看門狗定時器、雙數(shù)據(jù)指針、掉電標識符,可通過串口直接下載。圖3.1STC89C52原理圖管腳說明:VCC:供電電壓。GND:接地。端口P0:端口P0是一個8位開漏雙向I/O端口,每個引腳可以吸收8ttl門極電流。當P1端口的引腳第一次寫入1時,它被定義為高電阻輸入。P0可用于外部程序數(shù)據(jù)存儲器,可定義為數(shù)據(jù)/地址的第八位。在fIash編程中,端口p0用作原始代碼的輸入端口。當fIash檢查時,端口p0輸出原始代碼。此時,端口p0必須向上拉端口P1:P1端口是一個8位雙向I/O端口,在內(nèi)部提供上拉電阻。P1端口緩沖器可接收輸出4ttl門電流。端口P1的引腳寫入1后,它在內(nèi)部被拉高,可以用作輸入。當端口P1的引腳從外部向下拉至低電平時,它將輸出電流。這是由于內(nèi)部上拉。在閃存編程和驗證中,P1端口作為第八個地址接收。端口P2:P2端口是一個帶有內(nèi)部上拉電阻器的8位雙向I/O端口。P2端口緩沖器可以接收和輸出4個TTL門電流。當P2端口寫為“1”時,其引腳被內(nèi)部上拉電阻器拉高,用作輸入。因此,作為輸入,P2端口的引腳從外部向下拉,輸出電流。這是由于內(nèi)部上拉。當P2端口用于訪問外部程序存儲器或16位地址外部數(shù)據(jù)存儲器時,P2端口輸出地址的上8位。當給出地址“1”時,它利用了內(nèi)部上拉的優(yōu)勢。當它讀寫外部8位地址數(shù)據(jù)存儲器時,P2端口輸出其特殊功能寄存器的內(nèi)容。P2端口接收閃存編程和驗證中的高8位地址信號和控制信號。P3端口:P3端口引腳為8個雙向I/O端口,帶有內(nèi)部上拉電阻,可接收和輸出4個TTL門電流。當P3端口寫入“1”時,它們被拉到高電平并用作輸入。作為輸出,由于外部下拉是低電平,P3端口將輸出電流(ill),這是由于上拉。P3口也可作為STC89C52的一些特殊功能的端口,如下表3.1所示:管腳備選功能:表3.1P3口的第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外部中斷0)P3.3/INT1(外部中斷1)P3.4T0(記時器0外部輸入)P3.5T1(記時器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲器寫選通)P3.7/RD(外部數(shù)據(jù)存儲器讀選通)P3口同時接收一些控制信號進行閃存編程和編程驗證。Rst:復位輸入。當振蕩器復位設備時,有必要在兩個機器周期內(nèi)保持rst引腳高。Ale/prog:訪問外部存儲器時,地址鎖存器允許的輸出電平用于鎖存地址的狀態(tài)字節(jié)。在閃存編程期間,該引腳用于輸入編程脈沖。通常情況下,ale輸出頻率為振蕩器頻率的1/6,周期恒定的正脈沖信號。因此,它可用作外部輸出或定時的脈沖。然而,應當注意的是,每當它被用作外部數(shù)據(jù)存儲器時,ale脈沖被跳過。如果要禁用ale輸出,可以在sfr8eh地址上設置0。此時,ale僅在執(zhí)行MOVX且MOVC指令為ale時工作。此外,銷稍微向上拉。如果微處理器處于外部執(zhí)行狀態(tài)aledisabled,則設置無效。/PSEN:外部程序存儲器的門信號。在從外部程序內(nèi)存獲取期間,每個機器周期兩次/PSEN是有效的。然而,當訪問外部數(shù)據(jù)存儲器時,這兩個有效的/PSEN信號將不會出現(xiàn)。/EA/VPP:當/EA保持在低電平時,在此期間將使用外部程序內(nèi)存(0000hffffh),無論是否有內(nèi)部程序內(nèi)存。請注意,在加密模式1中,/EA鎖定內(nèi)部以重置;當/EA側保持高電平時,這里使用內(nèi)部程序存儲器。在閃存編程期間,該引腳還用于應用12V編程電源(VPP)。XTAL2:來自反向振蕩器的輸出。Xtal1和xtal2分別是反向放大器的輸入和輸出。反向放大器可以配置為片上振蕩器。晶體振蕩和陶瓷振蕩均可使用。如果使用外部時鐘源驅動程序,則不應連接Xtal2。對內(nèi)部時鐘信號的冗余輸入需要通過二進制觸發(fā)器,因此對外部時鐘信號的脈沖寬度沒有要求,但必須確保所需的高電平和低電平脈沖寬度。3.2.2主控模塊電路設計圖單片機主控模塊起到連接所有硬件電路的核心作用。主控模塊將會通過對DHT11傳感器所實時獲得的數(shù)據(jù)信號進行讀取并將得到的信號進行分析處理,之后將處理好的信號發(fā)送給液晶顯示模塊,在完成信號的接收與發(fā)送之后,連接報警系統(tǒng)并控制報警系統(tǒng)是否進行報警。如圖3-2所示圖3.2STC89C52模塊電路原理圖3.3DHT11傳感器模塊設計3.3.1DHT11傳感器簡介DHT11數(shù)字溫濕度傳感器是一種具有校準數(shù)字信號輸出的溫濕度復合傳感器。采用特殊的數(shù)字模塊采集技術和溫濕度傳感技術,保證產(chǎn)品具有高可靠性和優(yōu)良的長期穩(wěn)定性。該傳感器由電阻式濕度傳感器和NTC溫度傳感器組成,并與高性能MCU相連。因此,該傳感器具有響應速度快、抗干擾能力強、性價比高等優(yōu)點。每個DHT11傳感器在非常精確的濕度校準室中進行校準。校準系數(shù)以程序的形式存儲在OTP存儲器中,在傳感器內(nèi)部的信號處理過程中調(diào)用。DHT11型數(shù)字溫濕度傳感器采用單線串行接口,使系統(tǒng)集成方便快捷。同時,由于其體積超小、功耗極低、信號傳輸距離超過20米,成為各種應用甚至要求最苛刻的應用的最佳選擇。產(chǎn)品為4針單排包裝。連接方便,可根據(jù)用戶需要提供特殊的包裝形式。而DHT11傳感器的實物圖如下圖3.3所示。圖3.3DHT11傳感器的實物圖(1)引腳介紹:Pin1:(VDD),電源引腳,供電電壓為3~5.5V。Pin2:(DATA),串行數(shù)據(jù),單總線。Pin3:(NC),空腳,請懸浮。Pin4(VDD),接地端,電源負極。(2)接口說明:當連接線長度小于20m時,建議使用5K的上拉電阻;當連接線長度大于20m時,建議使用合適的上拉電阻。圖3.4DHT11典型應用電路(3)數(shù)據(jù)幀的描述:數(shù)據(jù)用于微處理器和DHT11之間的通信和同步。采用單總線數(shù)據(jù)格式。每次通信時間約4ms。數(shù)據(jù)分為小數(shù)部分和整數(shù)部分。具體格式如下。當前小數(shù)部分用于將來的擴展,現(xiàn)在讀作零。操作過程如下:一個完整的數(shù)據(jù)傳輸是40位,高位先出。數(shù)據(jù)格式:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)當數(shù)據(jù)傳輸正確時,校驗和數(shù)據(jù)等于“8位濕度整數(shù)數(shù)據(jù)+8位濕度十進制數(shù)據(jù)+8位溫度整數(shù)數(shù)據(jù)+8位溫度十進制數(shù)據(jù)”結果的最后8位。圖3.5產(chǎn)品尺寸圖(4)電氣特性:VDD=5V,T=25℃,除非特殊標注表3.2DHT11的電氣特性參數(shù)條件Mintypmax單位供電DC355.5V供電電流測量0.52.5mA平均0.21mA待機100150uA采樣周期秒1次注:采樣周期間隔不得低于1秒鐘。(5)時序描述:用戶MCU發(fā)出啟動信號后,DHT11從低功耗模式切換到高速模式。在等待主機啟動信號結束后,DHT11發(fā)送響應信號,發(fā)送40位數(shù)據(jù),并觸發(fā)信號采集。用戶可以選擇讀取部分數(shù)據(jù)。在從屬模式下,DHT11接收啟動信號以觸發(fā)溫度和濕度采集。如果沒有收到主機的啟動信號,DHT11將不會主動采集溫濕度。采集數(shù)據(jù)后,轉換為低速模式。通訊過程如下圖3.6所示。圖3.6通訊過程當總線空閑狀態(tài)為high時,主機將總線拉下并等待DHT11響應。主機拉下總線時,必須大于18ms,以確保DHT11能檢測到啟動信號。在接收到主機的啟動信號后,DHT11等待啟動信號結束,然后發(fā)送80us低電平響應信號。主機發(fā)出啟動信號后,等待20-40us,讀取DHT11的響應信號。主機發(fā)出啟動信號后,可以切換到輸入模式或輸出大功率,通過上拉電阻將總線上拉。總線為低電平,表示DHT11發(fā)送響應信號。DHT11發(fā)出響應信號后,將總線上拉80us,準備發(fā)送數(shù)據(jù)。每一位數(shù)據(jù)從一個50uS的低電平插槽開始。高位的長度決定了數(shù)據(jù)位是0還是1,格式如下圖所示。如果讀取響應信號高,則DHT11不響應。請檢查線路連接是否正常。當傳輸最后一位數(shù)據(jù)時,DHT11拉下總線50uS,然后通過上拉電阻器拉起總線進入空閑狀態(tài)。數(shù)字0信號表示方法如下圖3.7所示。圖3.7數(shù)字0信號的表示方法數(shù)字1信號表示方法如下圖3.8所示。圖3.8數(shù)字1的信號表示方法3.3.2DHT11傳感器模塊電路原理圖DHT11傳感器在溫濕度監(jiān)控系統(tǒng)的電路圖中比較簡單。在單片機的p2.0口中,數(shù)據(jù)口用來打開和發(fā)送串行數(shù)據(jù)。由于與傳感器相連的Pin2(單總線,串行數(shù)據(jù))的測量范圍小于20米,為了保證測量的準確性和安全性,我們需要增加一個5K的上拉電阻,所以我們選擇在傳感器Pin2端口和玉甸園之間連接一個5K的電阻。同時,DHT11傳感器的Pin1和pin4分別連接到MCU的VDD和GND。傳感器的第三條腿懸空。DHT11傳感器原件的原理圖如下圖3.9所示:圖3.9DHT11傳感器原件電路原理圖3.41602液晶顯示模塊設計3.4.11602液晶顯示屏簡介1602LCD是一種工業(yè)字符LCD,可同時顯示16x02或32個字符(16列2行)。在日常生活中,我們對液晶顯示器并不陌生。液晶顯示模塊已被廣泛應用于計算器、萬用表、電子手表、家用電子產(chǎn)品等電子產(chǎn)品中。顯示主要是數(shù)字、特殊符號和圖形。在單片機的人機界面中,一般的輸出方式有:LED、LED、LCD。常用LED和LED,軟硬件相對簡單。在單片機系統(tǒng)中,采用液晶顯示器作為輸出器件有許多優(yōu)點由于接收到信號后,LCD的每個點都保持相同的顏色和亮度,因此不需要像CRT那樣刷新新的高光。因此,LCD具有高圖像質(zhì)量并且不閃爍。液晶顯示為數(shù)字顯示,與單片機系統(tǒng)的接口更簡單可靠,操作更方便。液晶顯示器(LCD)是通過顯示器上的電極來控制液晶的分子狀態(tài),從而達到顯示的目的,比同等顯示面積重量的傳統(tǒng)顯示器要輕得多。相對而言,LCD的功耗主要消耗在其內(nèi)部電極和驅動芯片上,因此其功耗遠低于其他顯示器。字符液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等的點陣液晶顯示模塊,目前常用的有16*1、16*2、20*2、40*2行。(1)引腳說明:第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL是LCD的對比度調(diào)節(jié)端子,連接正極電源時對比度最弱,接地時對比度最高。如果對比度太高,就會產(chǎn)生“鬼影”。使用時,可通過10k電位計進行調(diào)節(jié)。第4腳:RS用于寄存器選擇,數(shù)據(jù)寄存器用于高電平,指令寄存器用于低電平。第5腳:R/W是讀/寫信號線,用于高電平的讀操作和低電平的寫操作。當RS和R/W處于低電平時,它們可以寫指令或顯示地址。當RS處于低電平時,R/W處于高電平時,它們可以讀取忙信號。當RS處于高電平時,R/W處于低電平時,它們可以寫入數(shù)據(jù)。第6腳:E端子是啟用端子。當e終端從高電平跳到低電平時,LCD模塊執(zhí)行命令。第7~14腳:D0~D7是8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負極。(2)1602LCD的RAM地址映射及標準字庫表LCD1602液晶顯示模塊內(nèi)部字符生成存儲器中存儲了160種不同的點陣字符圖形,這些字符圖形有:阿拉伯數(shù)字、英文字母大小寫、常用符號和日語假名,每個字符都有固定的編碼,如大寫英文字母“a”的編碼是01000001b(41h),當顯示模塊在地址41h中顯示點陣字符圖形時,我們可以看到字母。其讀寫操作、屏幕和光標操作均通過指令編程實現(xiàn)(注:1為高級,0為低級)。指令1:清除顯示,命令代碼01h,光標復位到地址00h位置。指令2:光標復位,光標返回到地址00H。指令3:光標及顯示方式設置I/D:光標移動方向,高位右,低位左。S:屏幕上的所有文字是向左還是向右移動。高級別表示有效,低級別表示無效。指令4:顯示開關控制。D:控制整體顯示的開與關,高電平顯示,低電平顯示。C:控制光標的開閉,高電平表示有光標,低電平表示沒有光標。B:控制光標是否閃爍,高位閃爍,低位不閃爍。指令5:光標或顯示移位s/C:將顯示的文本移到高位,將光標移到低位。指令6:功能設置命令DL:高電平4位總線,低電平8位總線。N:低電平為單線顯示,高電平為雙線顯示。F:低層顯示5x7的點陣字符,高層顯示5x10的點陣字符(部分模塊為DL:高層8位總線,低層4位總線)。指令7:字符發(fā)生器RAM地址設置。指令8:DDRAM地址設置。指令9:讀取忙信號和光標地址。BF是忙標志位,高電平表示忙,此時模塊不能接收命令或數(shù)據(jù),如果低電平表示不忙,模塊可以接收相應的命令或數(shù)據(jù)。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。LCD模塊是一個慢顯示設備,因此在執(zhí)行每條指令之前,確保模塊的忙標志為低電平,這意味著不忙,否則指令將無效。當需要顯示字符時,首先需要輸入顯示字符的地址,即告訴模塊在哪里顯示字符。1602內(nèi)部顯示地址如圖3.10所示。圖3.101602內(nèi)部顯示地址例如,如果第二行第一個字符的地址是40H,您是否可以直接寫入40H以將光標定位在第二行第一個字符的位置?這是不好的,因為在寫入顯示地址時,要求最高位D7為常量高電平1,因此要寫入的實際數(shù)據(jù)應該是01000000B(40H)+10000000B(80h)=1100000b(C0H)。在初始化LCD模塊時,應先設置顯示模式,光標自動向右移動,無需手動干預。每次輸入指令前都要判斷LCD模塊是否處于忙碌狀態(tài)。1602液晶模塊內(nèi)部cgrom存儲了160種不同的點陣字符圖形,如下圖所示。這些字符包括阿拉伯數(shù)字、英文字母的大小寫、常用符號和日語假名。每個字符都有一個固定的代碼。例如,大寫英文字母“A”的代碼為01000001b(41h),當顯示模塊在地址41h中顯示點陣字符圖形時,我們可以看到字母“A”。3.4.21602液晶顯示模塊電路原理圖液晶顯示的原理是利用液晶的物理特性,通過電壓來控制顯示區(qū)域,這樣,在接通電源后,顯示器就可以顯示我們需要的東西。液晶顯示器還具有厚度薄的特點,適合大規(guī)模集成電路直接驅動,更容易實現(xiàn)全彩顯示。目前,它已被廣泛應用于許多領域,如計算機、數(shù)碼相機等。而在我們這個系統(tǒng)當中,1602液晶顯示屏則是通過接收單片機的信號來進行顯示的,由于信號是實時傳輸?shù)?,所以顯示屏上的數(shù)據(jù)就是我們實時檢測的數(shù)據(jù)。原理圖圖3.11如下:圖3.111602顯示模塊3.5報警模塊3.5.1蜂鳴器介紹蜂鳴器是一個集成的電子蜂鳴器。廣泛應用于電腦、打印機、復印機、報警器、電子玩具、汽車電子設備、電話、計時器等電子產(chǎn)品中。蜂鳴器主要分為兩類:壓電蜂鳴器和電磁蜂鳴器。蜂鳴器由電路中的字母“H”或“ha”表示(舊標準使用“FM”、“LB”、“JD”等)。3.5.2蜂鳴器工作原理報警模塊是通過接收到單片機傳輸過來的信號來判斷是否開啟報警,其原理圖如下圖3.12:圖3.12蜂鳴器工作原理圖

4系統(tǒng)軟件設計當我們對硬件電路圖了解的差不多,同時能夠準確的判斷出我們應該先去執(zhí)行什么,在去執(zhí)行什么。我們便需要先把程序框架通過流程圖建立起來使得我們對與程序該怎樣設計一目了然,在建立起整個流程圖之后,我們對總流程圖劃分出不同的模塊,每個模塊將自身的功能完成,在每個模塊劃分出來之后,我們將每個小模塊通過合理的連接,構成我們總的程序。主程序先要對整個系統(tǒng)進行初始化,之后,我們在根據(jù)我們的設定,采集的溫濕度數(shù)據(jù)信號是系統(tǒng)的主要流程圖。主流程圖如下圖4.1所示:圖4.1主程序流程圖在完成主流程的制定之后,我們在去進行每個模塊的設計。4.11602液晶顯示模塊設計液晶顯示模塊是一種慢顯示器件。在執(zhí)行每條指令之前,我們必須首先確認模塊的忙標志為低電平,這意味著它不忙,否則將不執(zhí)行該指令。當我們要顯示字符時,首先需要輸入顯示字符的地址,告訴模塊字符在哪里。1602液晶顯示模塊可直接與STC89C52接口。軟件流程圖如圖4.2所示:開始LCD初始化開始LCD初始化延時設第一行顯示位置顯示第一行內(nèi)容設第二行顯示位置顯示第二行內(nèi)容圖4.21602液晶顯示模塊程序流程圖4.2傳感器模塊設計隨著科技不斷地發(fā)展,溫濕度傳感器的用途也變得更加廣泛,汽車、空調(diào)、除濕器、烘干機等等我們生活中越來越多的電器的使用離不開對溫濕度環(huán)境得要求,因此,溫濕度傳感器也在不斷的更新需求中。新一代數(shù)字傳感器不再需要外接A/D轉換模塊,而且保存后有自己的標準,使用非常方便,也使其得到了廣泛的應用。DHT11傳感器是一種新型的單總線溫濕度數(shù)字傳感器,使其具有更多的優(yōu)點,同時也使其系統(tǒng)設計更加簡單方便,易于控制,易于實現(xiàn)。DHT11傳感器模塊的軟件流程圖如下圖4.3所示:圖4.3DHT11傳感器模塊程序流程圖

5結論溫濕度檢測控制系統(tǒng)經(jīng)過幾個月的研究與實踐已經(jīng)全部編寫完畢。本系統(tǒng)是以單片機為核心部件,利用程序編程進而實現(xiàn)自己定下的目標。通過對硬件電路的選擇,我們能夠很輕易地做出食物圖,經(jīng)過自行測試驗證,雖有不足,但瑕不掩瑜,還是挺好的,只是對于精準度還有一定的改善空間,對于實驗環(huán)境還是不夠精準,所以會有點小誤差。首先我們了解了設計的重要組成,并通過對組成的了解去明白了我們做的溫濕度檢測控制系統(tǒng)的工作原理和構成,簡要的介紹了我們對設計的零件是怎樣去選擇的,以及不同的零件有什么不同的性能。其次我們將我們的設計分成了四大模塊,即主控模塊、傳感器模塊、LCD液晶顯示模塊和報警模塊。在此基礎上我們先去了解每一個模塊應該發(fā)生什么作用,我們怎樣設計能夠讓他發(fā)揮作用,同時我們也同步編寫每個模塊所需要的運行的程序。最后我們將四大模塊連接到一起去,使其功能能夠發(fā)揮出來,然后理順我們程序應該從什么地方開始,之后補全程序之后進行性能測試。觀察我們的設計所測試出來的結果與我們預先想要的結果是否一致,雖然實測與預計中的不完全相同,凡是在誤差不是很大的情況下,我們的設計也基本算是成功了。在這個設計中,我們還能夠進行更好性能的零件選擇,不同的零件編寫的程序不一樣,我們的溫濕度傳感器還能有很大的進步空間,比如精確度、靈敏度等等。

參考文獻余軍,隋韌鋒.基于單片機STC89C52溫濕度測控系統(tǒng)的設計.吉林化工學院,2012韓丹翱,王菲.DHT11數(shù)字式溫濕度傳感器的應用型研究.電子設計工程,2013馮媛碩,宋吉江.基于單片機的溫濕度檢測控制系統(tǒng)設計.山東理工大學學報,2014羅壽歡.基于單片機的大棚溫濕度控制器設計.數(shù)字通信世界,2020董小艷,王娟琴,李梅.基于AT89C52的農(nóng)業(yè)溫濕度智能控制系統(tǒng)設計.西北農(nóng)林科技大學,2019孫慶波,鮑忠宇.基于單片機的溫室大棚濕度監(jiān)測和控制設計.山東協(xié)和學院,2018龍建明,熊剛.基于STC89C52的問世到鞥溫濕度控制器.計算機與現(xiàn)代化,2012附錄附錄1原理圖附錄2程序#include<reg52.h>#defineucharunsignedchar//無符號字符型宏定義變量范圍0~255#defineuintunsignedint//無符號整型宏定義變量范圍0~65535#include<intrins.h>sbitbeep=P1^4;//蜂鳴器IO口定義sbitrelay1=P1^3;//溫度報警繼電器IO口定義sbitrelay2=P1^6;//濕度報警繼電器IO口定義uchara_a;ucharflag_en=1;bitflag_300ms;//按鍵的IO變量的定義ucharkey_can; //按鍵值的變量ucharmenu_shudu=20;//用來控制連加的速度ucharmenu_1;//菜單設計的變量uintt_high=30; //溫度報警參數(shù)uints_high=30; //濕度報警參數(shù)ucharkey_time,flag_value;//用做連加的中間變量bitkey_500ms;/****************************************************************名稱:delay_1ms()*功能:?óê±1msoˉêy*輸入:q*輸出:無****************************************************************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<120;j++);}sbitdht11=P1^5; //溫度傳感器IO口定義uchartable_dht11[5]={1,2,3,4,5};ucharcodetable_num[]="0123456789abcdefg";sbitrs=P1^0; //寄存器選擇信號H:數(shù)據(jù)寄存器 L:指令寄存器sbitrw=P1^1; //寄存器選擇信號H:數(shù)據(jù)寄存器 L:指令寄存器sbite=P1^2; //片選信號下降沿觸發(fā)/*********************************************************************名稱:delay_uint()*功能:小延時。*輸入:無*輸出:無***********************************************************************/voiddelay_uint(uintq){ while(q--);}/*********************************************************************名稱:write_com(ucharcom)*功能:1602命令函數(shù)*輸入:輸入的命令值*輸出:無***********************************************************************/voidwrite_com(ucharcom){ e=0; rs=0; rw=0; P0=com; delay_uint(25); e=1; delay_uint(100); e=0;}/*********************************************************************名稱:write_data(uchardat)*功能:1602寫數(shù)據(jù)函數(shù)*輸入:需要寫入1602的數(shù)據(jù)*輸出:無***********************************************************************/voidwrite_data(uchardat){ e=0; rs=1; rw=0; P0=dat; delay_uint(25); e=1; delay_uint(100); e=0; }/***********************lcd1602上顯示特定的字符****0XDF度********************/voidwrite_zifu(ucharhang,ucharadd,uchardate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(date); }/***********************lcd1602上顯示兩位十進制數(shù)************************/voidwrite_sfm2(ucharhang,ucharadd,uintdate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(0x30+date/10%10); write_data(0x30+date%10); }/***********************lcd1602上顯示這字符函數(shù)************************/voidwrite_string(ucharhang,ucharadd,uchar*p){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); while(1) { if(*p=='\0')break; write_data(*p); p++; } }/***********************lcd1602初始化設置************************/voidinit_1602() //lcd1602初始化{ write_com(0x38); write_com(0x0c); write_com(0x06); delay_uint(1000); write_string(1,0,"Wendu:00WH:00"); write_string(2,0,"Shidu:00%SH:00%"); write_zifu(1,8,0xdf); //顯示度 write_sfm2(2,6,table_dht11[0]);//顯示濕度 write_sfm2(1,6,table_dht11[2]); //顯示溫度 write_sfm2(1,13,t_high); //顯示溫度 write_sfm2(2,13,s_high);//顯示濕度 }/*************定時器0初始化程序***************/voidtime_init() { EA=1; //開總中斷 TMOD=0X01; //定時器0、定時器1工作方式1 ET0=1; //開定時器0中斷 TR0=1; //允許定時器0定時}/********************獨立按鍵程序*****************/ucharkey_can; //按鍵值voidkey() //獨立按鍵程序{ staticucharkey_new; key_can=20;//按鍵值還原 P3|=0xf0; if((P3&0xf0)!=0xf0) //按鍵按下 { delay_1ms(1); //按鍵消抖動 if(((P3&0xf0)!=0xf0)&&(key_new==1)) { //確認是按鍵按下 key_new=0; switch(P3&0xf0) { case0xe0:key_can=1;break; //得到k1鍵值 case0xd0:key_can=2;break; //得到k2鍵值 case0xb0:key_can=3;break; //得到k3鍵值 } beep=0; delay_1ms(50); beep=1; } } else key_new=1; }/****************按鍵顯示函數(shù)***************/voidkey_with(){ if(key_can==1) //設置鍵 { menu_1++; if(menu_1>2) { menu_1=0; init_1602();//lcd1602初始化 } } if(menu_1==1) //設置高溫報警 { if(key_can==2) { t_high++; //設置高溫值加1 if(t_high>99) t_high=99; } if(key_can==3) { t_high--; //設置高溫值減1 if(t_high<=1) t_high=1; } write_sfm2(1,13,t_high); //顯示溫度 write_sfm2(2,13,s_high);//顯示濕度 write_com(0x80+12);//將光標移動到秒個位 write_com(0x0f);//顯示光標并且閃爍 } if(menu_1==2) //設置高濕報警 { if(key_can==2) { s_high++; //設置高濕值加1 if(s_high>99) s_high=99; } if(key_can==3) { s_high--; //設置高濕值減1 if(s_high<=1) s_high=1; } write_sfm2(1,13,t_high); //顯示溫度 write_sfm2(2,13,s_high);//顯示濕度 write_com(0x80+0x40+12);//將光標移動到秒個位 write_com(0x0f);//顯示光標并且閃爍 } }/*****************讀溫濕度傳感器程序****************/voiddst11(){ staticuintvalue; uchari,j; //讀溫濕度時不能中斷 dht11=0; delay_1ms(18); dht11=1; delay_uint(4); //50us if(dht11==0) //判斷是否響應0為響應 { value=0; while(dht11==0); { value++; if(value>=1000) return; } value=0; while(dht11==1); //等待響應時間過完 { value++; if(value>=2000) return; } for(i=0;i<5;i++) { for(j=0;j

溫馨提示

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

最新文檔

評論

0/150

提交評論