無線溫度濕度采集系統(tǒng)的設(shè)計(jì)_第1頁
無線溫度濕度采集系統(tǒng)的設(shè)計(jì)_第2頁
無線溫度濕度采集系統(tǒng)的設(shè)計(jì)_第3頁
無線溫度濕度采集系統(tǒng)的設(shè)計(jì)_第4頁
無線溫度濕度采集系統(tǒng)的設(shè)計(jì)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、畢 業(yè) 設(shè) 計(jì) (論 文)題 目:無線溫度濕度采集系統(tǒng)的設(shè)計(jì)院 系:專 業(yè):班 級:姓 名:學(xué) 號:指導(dǎo)教師:無線溫度濕度采集系統(tǒng)的設(shè)計(jì)【摘要】隨著工業(yè)農(nóng)業(yè)等相關(guān)產(chǎn)業(yè)的不斷發(fā)展,溫度和濕度的測量在實(shí)際生活中的應(yīng)用越來越廣泛。如現(xiàn)代溫室大棚,釀造酒類,微生物發(fā)酵,藥物制造等方面均對溫度濕度的要求嚴(yán)格。本設(shè)計(jì)為一個(gè)無線溫濕度采集系統(tǒng)。以STC89S52為主要芯片,利用數(shù)字式溫濕度傳感器DHT11采集溫濕度,把收集到的數(shù)據(jù)傳給單片機(jī)STC89S52,再用無線發(fā)射模塊Nrf24l01將經(jīng)過處理的數(shù)據(jù)發(fā)射出去。單片機(jī)通過模擬SPI口跟NRF24L01之間傳送數(shù)據(jù)。同時(shí),NRF24L01具有接收功能,接收

2、模塊的NRF24L01將接收到的數(shù)據(jù)傳給STC89S52,最后用數(shù)字顯示屏LCD1602將經(jīng)過單片機(jī)處理后的數(shù)據(jù)顯示出來。【關(guān)鍵詞】STC89S52 數(shù)據(jù)處理 溫度 濕度Design of wireless temperature humidity acquisition system【Abstract】With the continuous development of industry and agriculture and related industries, the temperature and humidity measurement used more and more wid

3、ely in the practical life. Such as modern greenhouses, brewing wine, microbial fermentation, so on drugs manufacture of temperature humidity requirements strictly. Therefore, to design a wireless temperature and humidity acquisition system. STC89S52 as the main chip, using digital temperature and hu

4、midity sensor DHT11 to collect temperature and humidity. Pass the collected data to MCU STC89S52, reoccupy NRF24L01 wireless transmitting module data will be processed. Single chip microcomputer simulation SPI mouth to transmit data between NRF24L01, meanwhile, has the function of receiving, receivi

5、ng modules NRF24L01 will receives the data to STC89S52 devices, with digital display LCD1602 will finally after dealing with the single chip microcomputer of data displayed.【Key word】STC89S52 data processing Temperature humidity目 錄1 緒論11.1 引言11.2 選題背景及意義11.3 國內(nèi)外現(xiàn)狀及發(fā)展趨勢11.4 研究內(nèi)容22 系統(tǒng)總體設(shè)計(jì)方案32.1 溫濕度傳感器

6、的選擇32.2 無線發(fā)射模塊的元器件選擇32.2.2 NRF24L01的工作模式42.3 單片機(jī)的選擇52.4顯示模塊的選擇63 硬件電路設(shè)計(jì)73.1 溫濕度采集模塊的設(shè)計(jì)83.2 無線發(fā)射接收模塊設(shè)計(jì)93.2.1 溫濕度數(shù)據(jù)的控制發(fā)送93.2.2 溫濕度數(shù)據(jù)的接收103.2.3 模擬SPI口的實(shí)現(xiàn)103.3 LCD1602液晶顯示模塊設(shè)計(jì)113.4 電源模塊設(shè)計(jì)124 軟件設(shè)計(jì)124.1 采集模塊軟件設(shè)計(jì)124.2 發(fā)送接收模塊軟件設(shè)計(jì)134.3顯示模塊軟件設(shè)計(jì)174.4 調(diào)試17結(jié)論18附錄A 系統(tǒng)總體電路圖20附錄B 部分程序221 緒論1.1 引言溫度濕度在工農(nóng)業(yè)生產(chǎn)中占有很重要的地位

7、,是工農(nóng)業(yè)生產(chǎn)的重要組成數(shù)據(jù)。溫濕度過高會造成糧食發(fā)霉長芽,還會引起大棚蔬菜一系列的病害。因此,對其適時(shí)準(zhǔn)確的測量就顯得尤為重要。而一般的測量過程較為復(fù)雜繁瑣,誤差還大。比如現(xiàn)在所使用的水銀,酒精溫度計(jì)進(jìn)行溫度檢測和用傳統(tǒng)的物理模擬量的方法進(jìn)行的濕度檢測,這些溫濕度檢測計(jì)的刻度間隔通常都很密,不容易準(zhǔn)確分辨,讀數(shù)困難,而且他們的熱容量還比較大,達(dá)到熱平衡所需的時(shí)間較長,因此很難讀準(zhǔn),并且使用非常不方便。本設(shè)計(jì)以STC89S52為主要芯片,利用數(shù)字式溫濕度傳感器DHT10采集溫濕度,把收集到的數(shù)據(jù)傳給單片機(jī)AT89S52,再用無線發(fā)射模塊NRF24L01將經(jīng)過處理的數(shù)據(jù)發(fā)射出去。單片機(jī)通過模擬S

8、PI口跟NRF24L01之間傳送數(shù)據(jù)。同時(shí),NRF24L01具有接收功能,接收模塊的NRF24L01將接收到的數(shù)據(jù)傳給STC89S52,最后用數(shù)字顯示屏LCD1602將經(jīng)過單片機(jī)處理后的數(shù)據(jù)顯示出來。單片機(jī)體積小,價(jià)格低,且穩(wěn)定性較強(qiáng),操作靈活簡單,誤差較小,具有很高的應(yīng)用價(jià)值。1.2 選題背景及意義溫濕度的測量控制在農(nóng)業(yè)生產(chǎn),工業(yè)制造,倉庫管理,科學(xué)研究等方面都有廣泛的應(yīng)用。然而,溫度和濕度卻是最不易保障的指標(biāo)。由于溫濕度控制不當(dāng),可能會導(dǎo)致無法估計(jì)的損失。傳統(tǒng)的測量方法是有線測控法,實(shí)施起來不僅難度大,成本比較高,系統(tǒng)靈活性較差,而且維護(hù)起來也比較困難。針對這一情況,研制可靠且實(shí)用的溫度和

9、濕度檢測與控制系統(tǒng)就顯得非常重要。如今,隨著科技的進(jìn)步,無線通信技術(shù)日趨成熟,如果將無線通信技術(shù)應(yīng)用到溫濕度的測量系統(tǒng)中,通過無線傳輸將傳感器收集到的溫濕度信息傳送到控制顯示終端,這樣設(shè)計(jì)系統(tǒng)具有結(jié)構(gòu)簡單,采樣點(diǎn)可靈活設(shè)置,系統(tǒng)適應(yīng)性強(qiáng)等特點(diǎn)。符合向智能化,小型化方向的發(fā)展。另外此系統(tǒng)不需要A/D轉(zhuǎn)換器將電信號轉(zhuǎn)換成數(shù)字信號,而使用DHT10直接得到數(shù)字量,減去了不必要的麻煩。由此為出發(fā)點(diǎn),根據(jù)自己所學(xué)的專業(yè)知識,用新型智能溫度傳感器DHT10,無線發(fā)射模塊NRF24L01,單片機(jī)STC89S52,數(shù)字液晶顯示器件LCD1602等主要元件設(shè)計(jì)這套無線溫度濕度采集系統(tǒng)。1.3 國內(nèi)外現(xiàn)狀及發(fā)展趨

10、勢隨著科技的飛速發(fā)展和普及,高性能設(shè)備也越來越多,各行各業(yè)對溫濕度的要求也越來越高。 傳統(tǒng)的溫濕度監(jiān)測模式是以人為基礎(chǔ),依靠人工輪流值班,人工巡回查看等方式來測量和記錄環(huán)境狀況信息。在這種模式下,不僅效率低下,還浪費(fèi)大量人才資源及財(cái)力資源,而且缺乏科學(xué)性,許多重大事故都是因?yàn)槿藶橐蛩卦斐傻?,人工維護(hù)缺乏完整的管理系統(tǒng)。而無線監(jiān)控系統(tǒng)就可以解決這樣人才資源浪費(fèi),管理不及時(shí)的問題,這是由于它的智能化設(shè)計(jì)所決定的。它的工作步驟如下:感應(yīng)環(huán)境溫濕度;單片機(jī)判斷感應(yīng)到的溫濕度是否異常;若感應(yīng)到的溫濕度異常,實(shí)行措施進(jìn)行調(diào)節(jié);判斷異常是否超過預(yù)設(shè)時(shí)間,若超過預(yù)設(shè)時(shí)間,則輸出異常信號報(bào)警;判斷異常是否處理完

11、畢,若處理完畢,解除報(bào)警。這樣就可以利用控制器對機(jī)房溫濕度進(jìn)行監(jiān)控,從而實(shí)現(xiàn)環(huán)境溫濕度管理的實(shí)時(shí)性和有效性。故本次設(shè)計(jì)對于類似項(xiàng)目還具有普遍意義智能溫度傳感器(亦稱數(shù)字溫度傳感器)在20世紀(jì)90年代中期問世。它是微電子技術(shù)、計(jì)算機(jī)技術(shù)和自動(dòng)測試技術(shù)(ATE_)的結(jié)晶。目前,國際上已開發(fā)出多種智能溫度傳感器系列產(chǎn)品。智能溫度傳感器內(nèi)部包含溫度傳感器、A/D傳感器、信號處理器、存儲器(或寄存器)和接口電路。有的產(chǎn)品還帶多路選擇器、中央控制器(CPU)、隨機(jī)存取存儲器(RAM)和只讀存儲器(ROM)。智能溫度傳感器能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種微控制器(MCU),并且可通過軟件來實(shí)現(xiàn)測試

12、功能,溫度計(jì)也越來越智能化。跟電子溫度計(jì)一樣濕度計(jì)隨著濕度傳感器的發(fā)展趨于成熟。現(xiàn)在常用的溫度傳感器AD590,DS18B20濕度傳感器HMxx系列,HS1xx系列,DHT系列隨著溫濕度計(jì)的發(fā)展溫室監(jiān)控系統(tǒng)也越來越成熟,更好的為人們服務(wù)。對于國內(nèi)外對溫濕度檢測的研究,從復(fù)雜模擬量檢測到現(xiàn)在的數(shù)字智能化檢測越發(fā)的成熟,現(xiàn)在的對于溫濕度研究,檢測系統(tǒng)向著智能化、小型化、低功耗的方向發(fā)展。在發(fā)展過程中,以單片機(jī)為核心的溫濕度控制系統(tǒng)發(fā)展為體積小、操作簡單、量程寬、性能穩(wěn)定、測量精度高,等諸多優(yōu)點(diǎn)在生產(chǎn)生活的各個(gè)方面實(shí)現(xiàn)著至關(guān)重要的作用。1.4 研究內(nèi)容設(shè)計(jì)以STC89S52基本系統(tǒng)為核心的一套檢測系

13、統(tǒng)。由溫濕度采集、數(shù)據(jù)分析、數(shù)據(jù)處理三個(gè)部分。包括單片機(jī)系統(tǒng),復(fù)位電路,溫度檢測,濕度檢測,顯示部分等模塊。該系統(tǒng)包括了硬件組成和軟件的設(shè)計(jì),該系統(tǒng)在硬件設(shè)計(jì)上主要是通過溫濕度傳感器對溫濕度進(jìn)行采集,通過A/D轉(zhuǎn)換器,將模擬信號轉(zhuǎn)化為對應(yīng)的數(shù)字溫度信號電壓。其硬件設(shè)計(jì)中最為核心的器件是單片機(jī)NRF24L012 系統(tǒng)總體設(shè)計(jì)方案無線溫度濕度采集系統(tǒng)是基于一種射頻技術(shù)的無線溫濕度檢測的裝置。2.1 溫濕度傳感器的選擇溫度檢測采用最基本的熱電偶,熱電偶應(yīng)用廣泛,雖然其價(jià)格便宜而且耐用。種類多,能夠覆蓋非常寬的溫度范圍,但是其非線性、響應(yīng)速度慢、精度中等、靈敏度低、穩(wěn)定性低、高溫下容易老化和有線性漂移

14、,并且測量需要參考量。濕度檢測采用濕敏元件,其主要分為電阻式和電容式。濕敏電阻的種類多,靈敏度高,但是起線性度和產(chǎn)品的互換性差。濕敏電容靈敏度高,響應(yīng)速度快,偏于實(shí)現(xiàn)產(chǎn)品小型化和集成化,但精度一般比濕敏電阻要低一些。綜合濕敏元件,其線性度可抗污染性差,在濕度的檢測環(huán)境中濕敏元件需要時(shí)刻在檢測環(huán)境中,很容易受到環(huán)境污染從而影響其測量精度和持續(xù)的穩(wěn)定性。數(shù)字式傳感器DHT10是sensiron公司生產(chǎn)的智能化溫濕度傳感器。體積與火柴頭大小相似。不僅能夠測量溫度,還能同時(shí)測量相對濕度。所以能把SHT10作為溫濕度檢測的一個(gè)整體。DHT10作為典型的溫濕度傳感器,在測量過程中可對相對溫濕度進(jìn)行自動(dòng)校準(zhǔn)

15、,準(zhǔn)確的測量溫濕度。產(chǎn)品互換性好,相應(yīng)速度快,抗干擾性強(qiáng)。 由上可知,DHT10與溫濕敏元件的溫濕度測量相比,數(shù)字溫濕度傳感器低成本,內(nèi)部集成復(fù)雜,在測量過程中可對相對溫濕度進(jìn)行自動(dòng)校準(zhǔn),準(zhǔn)確的測量溫濕度。而且能夠提供數(shù)字輸出,簡化外部測量電路,精度高,適用廣泛的測量范圍,并且本設(shè)計(jì)的溫濕度檢測系統(tǒng)相適合。因此,選擇溫度濕度傳感器SHT10作為此次設(shè)計(jì)中的測量元件。2.2 無線發(fā)射模塊的元器件選擇本設(shè)計(jì)發(fā)射模塊采用單片射頻收發(fā)芯片NRF24L01,該芯片工作于433MHz的ISM頻段,由一個(gè)完全集成的頻率調(diào)制器,一個(gè)帶解調(diào)器的接收器,一個(gè)功率放大器,一個(gè)晶體震蕩器和一個(gè)調(diào)節(jié)器組成。輸出功率和通

16、信頻道可通過程序進(jìn)行配置。芯片能耗非常低,以10dBm 的功率發(fā)射時(shí)工作電流僅有 30mA,接收時(shí)工作電流只有 12.5mA,多種低功率工作模式,待機(jī)模式下電流僅為12.5A,節(jié)能設(shè)計(jì)更方便。其ShockBurst技術(shù)可在通訊時(shí)自動(dòng)生成前導(dǎo)碼和CRC校驗(yàn)位。nRF905適用于多種無線通信的場合,如無線數(shù)據(jù)傳輸系統(tǒng)、報(bào)警及安全系統(tǒng)、家庭自動(dòng)化、遙感監(jiān)測。2.2.1 NRF24L01主要包括三種接口NRF24L01表1 NRF24L01各個(gè)引腳的功能及說明管腳名稱管腳功能說明1VCC電源電源+3.33.6V DC2TX_EN數(shù)字輸入TX_EN=1 TX模式 TX_EN=0 RX模式3TRX_CE數(shù)

17、字輸入使能芯片發(fā)射或接收4PWR_UP數(shù)字輸入芯片上電5uCLK時(shí)鐘輸出本模塊該引腳廢棄不用,向后兼容6CD數(shù)字輸出載波檢測7AM數(shù)字輸出地址匹配8DR數(shù)字輸出接收或發(fā)射數(shù)據(jù)完成9MISOSPI接口SPI輸出10MOSISPI接口SPI輸入11SCKSPI時(shí)鐘SPI時(shí)鐘12CSNSPI使能SPI使能13GND地接地14GND地接地2.2.2 NRF24L01的工作模式表2 nRF905的工作模式PWR_UPTRX_CETX_EN工作模式0XX掉電和SPI編程10XStandby和SPI編程110ShockBurstEX 111ShockBurst TX2.3 單片機(jī)的選擇STC89S52是一種

18、低功耗,高性能CMOS 8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術(shù)制造。與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89S52在眾多嵌入式控制應(yīng)用系統(tǒng)中得到廣泛應(yīng)用。STC89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,看門狗定時(shí)器,三個(gè)16位定時(shí)器/計(jì)數(shù)器,32 位I/O口線,一個(gè)6向量2級中斷結(jié)構(gòu),2個(gè)數(shù)據(jù)指針,全雙工串行口,片內(nèi)晶振及時(shí)鐘電路??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口

19、、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。STC89S52是片內(nèi)有ROM/EPROM的單片機(jī),當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時(shí)鐘或用于定時(shí)目的。用AT單片機(jī)構(gòu)成最小系統(tǒng)時(shí),只要將單片機(jī)接上時(shí)鐘電路和復(fù)位電路即可,如圖 STC89S52單片機(jī)最小系統(tǒng)所示。由于集成度的限制,單片機(jī)最小應(yīng)用系統(tǒng)只能作一些小型的控制單元。其應(yīng)用特點(diǎn):有可供用戶使用的大量I/O口線; 內(nèi)部存儲器容量有限;應(yīng)用系統(tǒng)開

20、發(fā)具有特殊性。STC89S52的復(fù)位是由外部的復(fù)位電路實(shí)現(xiàn)的。復(fù)位引腳RST通過一個(gè)斯密特觸發(fā)器來抑制噪聲,在每個(gè)機(jī)器周期的S5P2,斯密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號。STC89S52雖然有內(nèi)部振蕩電路,但要形成時(shí)鐘,必須外部附加電路。AT89S52單片機(jī)的時(shí)鐘產(chǎn)生方法有兩種,一種是內(nèi)部方式,利用時(shí)鐘內(nèi)部的振蕩電路產(chǎn)生;另一種是外部方式,時(shí)鐘信號由外部引入。本設(shè)計(jì)采用內(nèi)部時(shí)鐘方式,利用芯片內(nèi)部的振蕩電路,在XTAL1、XTAL2引腳上外接定時(shí)元件,內(nèi)部的振蕩電路便產(chǎn)生自激振蕩。本設(shè)計(jì)采用最常用的內(nèi)部時(shí)鐘方式,即用外接晶體和電容組成的并聯(lián)諧振電路。振

21、蕩晶體可以在1.2MHZ到24MHZ之間選擇,常用的晶振頻率有6MHZ、12MHZ和11.0592MHZ。電容CX1和CX2主要是幫助起振,稱為諧振電容,電容值無嚴(yán)格要求,但電容的取值對振蕩頻率輸出的穩(wěn)定性、大小、振蕩電路起振速度有少許影響,CX1、CX2可在20pF到100pF之間取值,當(dāng)時(shí)鐘頻率為12MHZ時(shí)典型值為22pF。所以本設(shè)計(jì)中振蕩晶體采用12MHZ,電容選擇22pF。圖2 單片機(jī)最小系統(tǒng)2.4顯示模塊的選擇顯示器可以選擇數(shù)碼管顯示或者液晶顯示。數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,起驅(qū)動(dòng)方式分別為靜態(tài)驅(qū)動(dòng)和動(dòng)態(tài)驅(qū)動(dòng),靜態(tài)驅(qū)動(dòng)編程簡單,顯示亮度高但是占用I/O端口多,增加了硬件

22、電路的復(fù)雜性。動(dòng)態(tài)電路是最廣泛的顯示方式之一,其能夠節(jié)省大量的I/O端口,功耗低。但是,針對數(shù)碼管,其顯示單調(diào)不具備數(shù)據(jù)的直觀性。LCD1602液晶顯示,具有字符發(fā)生器ROM可以顯示192種字符。具有64個(gè)字節(jié)的自定義字符RAM,可自定義8個(gè)5´8點(diǎn)陣字符或四個(gè)5´11點(diǎn)陣字符。具有80個(gè)字節(jié)的RAM,標(biāo)準(zhǔn)的接口特性,適配M6800系列MPU的操作時(shí)序。模塊結(jié)構(gòu)緊湊、輕巧、裝配容易,像素尺寸小,分辨率高。考慮到以上情況,顯示終端選擇LCD1602,它能把溫濕度直觀的顯示出來,設(shè)計(jì)起來簡潔明了,大大降低了系統(tǒng)的復(fù)雜性。LCD1602各個(gè)引腳的說明及作用為第一腳:VSS為接地電

23、源。第二腳:VDD接5V正電源。第三腳:VL為液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接地時(shí)對比度最高,對比度過高時(shí)會產(chǎn)生“幻影”,使用時(shí)可以通過一個(gè)可調(diào)電位器調(diào)整對比度。第四腳:RS為寄存器選擇,高電平時(shí)為數(shù)據(jù)寄存器、低電平時(shí)為指令寄存器。第五腳:R/W為讀寫操作信號線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號,當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。第六腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令第七十四腳:D0D7為8位雙向數(shù)據(jù)線。第十五腳:背光源正極。第十六腳:

24、背光源負(fù)極。表3 LCD1602各個(gè)引腳的說明編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極3 硬件電路設(shè)計(jì)該采集系統(tǒng)是以STC89S52芯片為主要,利用數(shù)字式溫濕度傳感器DHT10進(jìn)行收集,將收集數(shù)據(jù)傳給單片機(jī)STC89S52,經(jīng)過處理從無線發(fā)送模塊NRF24L01發(fā)射出去,單片機(jī)與NRF24L01NRF24L01接受模塊通過NRF24L01將數(shù)據(jù)傳給STC89S52,單片機(jī)經(jīng)處理

25、后,將數(shù)據(jù)傳給顯示屏LCD1602.完成無線數(shù)據(jù)采集與發(fā)送。本設(shè)計(jì)的重點(diǎn)在于數(shù)據(jù)如何在各個(gè)模塊之間傳輸。3.1 溫濕度采集模塊的設(shè)計(jì)DHT11溫濕度檢測模塊采用單總線數(shù)據(jù)傳輸,DATA引腳與單片機(jī)相連,用于MCU與DHTI1之間的數(shù)據(jù)傳輸。DATA的狀態(tài)在串行始終DATA的下降沿之后發(fā)生改變,在DATA的上升沿有效。在數(shù)據(jù)傳輸期間,當(dāng)DATA為高電平時(shí),DATA數(shù)據(jù)線上必須保持穩(wěn)定狀態(tài)。為避免數(shù)據(jù)發(fā)生沖突,MCU應(yīng)該驅(qū)動(dòng)DATA使其處于低電平狀態(tài),而外部接一個(gè)上拉電阻,將信號拉至高電平。 “000 00101”為相對濕度(RH)測量,“000 00011”為溫度(T)測量。發(fā)送一組測量命令后控

26、制器要等待測量結(jié)束,這個(gè)過程大約需要2080320 ms,對應(yīng)其81214位的測量。測量時(shí)間隨內(nèi)部晶振的速度而變化,最多能夠縮短30 %。DHT11下拉DATA至低電平而使其進(jìn)入空閑模式。重新啟動(dòng)SCK時(shí)鐘讀出數(shù)據(jù)之前,控制器必須等待這個(gè)“數(shù)據(jù)準(zhǔn)備好”信號。接下來傳輸2個(gè)字節(jié)的測量數(shù)據(jù)和1個(gè)字節(jié)的CRC校驗(yàn)。MCU必須通過拉低DATA來確認(rèn)每個(gè)字節(jié)。所有的數(shù)據(jù)都從MSB開始,至LSB有效。例如對于12位數(shù)據(jù),第5個(gè)SCK時(shí)鐘時(shí)的數(shù)值作為MSB位;而對于8位數(shù)據(jù),第1個(gè)字節(jié)(高8位)數(shù)據(jù)無意義。確認(rèn)CRC數(shù)據(jù)位之后,通信結(jié)束。如果不使用CRC一8校驗(yàn),控制器可以在測量數(shù)據(jù)LSB位之后,通過保持A

27、CK位為高電平來結(jié)束本次通信。測量和通信結(jié)束后,DHT11自動(dòng)進(jìn)入休眠狀態(tài)模式。3.2 無線發(fā)射接收模塊設(shè)計(jì)本系統(tǒng)通過數(shù)字溫濕度傳感器DHT11實(shí)現(xiàn)溫濕度的采集,由單片機(jī)STC89S52控制,通過射頻芯片NRF24L01進(jìn)行無線傳輸和接收NRF24L01提供給應(yīng)用的微控制器一個(gè)SPI接口,速率由微控制器自己設(shè)定的接口速度決定。3.2.1 溫濕度數(shù)據(jù)的控制發(fā)送NRF24L01數(shù)據(jù)的發(fā)送過程為自動(dòng)開啟射頻寄存器;打包數(shù)據(jù)(加字頭和CRC校驗(yàn)碼);發(fā)送數(shù)據(jù)包;E.當(dāng)TRX_CE被置低,NRF24L01發(fā)送過程完成,自動(dòng)進(jìn)入空閑模式。3.2.2 溫濕度數(shù)據(jù)的接收A.當(dāng)TRX_CE為高電平、TX_EN為

28、低電平時(shí)NRF24L01進(jìn)入ShockBurstTM接收模式;B. NRF24L01不斷監(jiān)測,等待接收數(shù)據(jù),當(dāng)檢測到同一頻段的載波時(shí),載波檢測引腳被置高;C.當(dāng)接收到一個(gè)相匹配的地址時(shí),地址匹配引腳被置高;D.當(dāng)接收完一個(gè)正確的數(shù)據(jù)包后,NRF24L01自動(dòng)移去字頭、地址和CRC校驗(yàn)位,然后把數(shù)據(jù)準(zhǔn)備好引腳置高;E.微控制器將TRX_CE置低,NRF24L01進(jìn)入空閑模式;F.微控制器通過SPI口,以一定的速率把數(shù)據(jù)傳送到微控制器內(nèi);G.當(dāng)所有的數(shù)據(jù)接收完畢,NRF24L01把數(shù)據(jù)準(zhǔn)備好引腳和地址匹配引腳置低。此時(shí)NRF24L01此時(shí)可以進(jìn)入ShockBurstTM接收模式、ShockBurs

29、tTM發(fā)送模式或關(guān)機(jī)模式。當(dāng)NRF24L01正在接收一個(gè)數(shù)據(jù)包時(shí),TRX_CE或TX_EN任意一引腳的狀態(tài)發(fā)生改變,NRF24L01隨之改變其工作模式,接收的數(shù)據(jù)包丟失。當(dāng)微處理器接到地址匹配引腳的信息之后,其就知道NRF24L01正在接收數(shù)據(jù)包,其可以決定是讓NRF24L01繼續(xù)接收該數(shù)據(jù)包還是進(jìn)入另一個(gè)工作模式。由于接收模塊單片機(jī)與NRF24L01的連接電路相同,只是程序不同,這里,不在給出接收模塊單片機(jī)與NRF24L01連接圖。詳細(xì)連接電路圖見附錄A3.2.3 模擬SPI口的實(shí)現(xiàn)圖5 SPI讀操作時(shí)序圖6 SPI寫操作時(shí)序3.3 LCD1602液晶顯示模塊設(shè)計(jì)本次設(shè)計(jì)可以采用的顯示芯片很

30、多,考慮到顯示效果的精確度和成本等方面的因素,本設(shè)計(jì)采用LCD1602顯示,經(jīng)過無線傳輸后,溫、濕度數(shù)據(jù)信息將在1602液晶顯示芯片上進(jìn)行顯示,1602液晶顯示芯片采用標(biāo)準(zhǔn)的16腳接口。將以上的傳感器電路,用LCD顯示一個(gè)字符時(shí)比較復(fù)雜,因?yàn)橐粋€(gè)字符由6×8或8×8點(diǎn)陣組成,既要找到和顯示屏幕上某幾個(gè)位置對應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點(diǎn)亮,為“0”的不亮。這樣一來就組成某個(gè)字符。但LCD1602內(nèi)帶字符發(fā)生器,顯示字符就比較簡單了,根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)找出顯示RAM對應(yīng)的地址,設(shè)立光標(biāo),在此送上該字

31、符對應(yīng)的代碼即可。通過單片機(jī)發(fā)送不同的指令即可控制LCD使其顯示相應(yīng)的溫濕度信息。各個(gè)引腳的連接圖如下圖7 LCD1602模塊電路圖3.4 電源模塊設(shè)計(jì)本設(shè)計(jì)電路采用+5V直流電源供電圖8 電源模塊電路圖4 軟件設(shè)計(jì)本設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)是由采集模塊和顯示模塊構(gòu)成,程序設(shè)計(jì)主要有單片微處理器數(shù)據(jù)采集程序,NRF24L01發(fā)送和接收程序,液晶顯示程序構(gòu)成4.1 采集模塊軟件設(shè)計(jì)首先,將DHT11初始化,將采集到的溫度濕度信息傳送到單片機(jī),通過單片機(jī)的P1.7腳控制DHT11的數(shù)據(jù)線DATA。主機(jī)通過SPI接口向NRF24L01配置寄存器寫入信息并通過天線發(fā)送。表4 DHT11命令集命令代碼預(yù)留00

32、00x溫度測量00011濕度測量00101讀狀態(tài)寄存器00111寫狀態(tài)寄存器00110接口復(fù)位111104.2 發(fā)送接收模塊軟件設(shè)計(jì)接收模塊主要包括nRF24L01接收程序和液晶顯示程序。與發(fā)送模塊相同,在接收模塊軟件設(shè)計(jì)中,同樣要先將NRF24L01設(shè)置為接收狀態(tài),TRX_CE=1,TX_EN=0,這樣主機(jī)才能NRF24L01讀取數(shù)據(jù)。圖10 發(fā)送模塊流程圖NRF24L01NRF24L01NRF24L01NRF24L01NRF24L01NRF24L01圖11 接收模塊主程序當(dāng)NRF24L01正在接收一個(gè)數(shù)據(jù)包時(shí),TRX_CE或TX_EN任意一引腳的狀態(tài)發(fā)生改變,NRF24L01隨之改變其工作

33、模式,接收的數(shù)據(jù)包丟失。當(dāng)微處理器接到地址匹配引腳的信息之后,其就知道NRF24L01正在接收數(shù)據(jù)包,其可以決定是讓NRF24L01繼續(xù)接收該數(shù)據(jù)包還是進(jìn)入另一個(gè)工作模式。4.3顯示模塊軟件設(shè)計(jì)圖13 LCD1602顯示數(shù)據(jù)流程圖顯示模塊軟件設(shè)計(jì)過程為,先將LCD1602初始化,初始化程序見附錄。單片機(jī)通過數(shù)據(jù)傳輸端口P0.0P0.6向顯示器傳送溫濕度數(shù)據(jù)信息。若LCD1602正確接收到數(shù)據(jù)信息,顯示收到溫濕度信息。延時(shí)0.8S后,重新開始讀取下一個(gè)時(shí)間段溫濕度數(shù)據(jù),進(jìn)入循環(huán)。若LCD1602讀取數(shù)據(jù)錯(cuò)誤,則直接返回,重新讀取。4.4 調(diào)試軟件調(diào)試主要使用Proteus軟件和Keil C51軟

34、件。在軟件調(diào)試中,首先在Proteusz中繪制電路圖,并設(shè)置各元器件的參數(shù)。然后在Keil C51軟件編寫程序。在元器件的布局方面,把相互有關(guān)的元件放得比較近,例如:晶振、單片機(jī)的時(shí)鐘輸入端都容易產(chǎn)生噪音,在放置元件時(shí)的時(shí)候把它們放的靠近些。地線應(yīng)構(gòu)成閉環(huán)形式,提高電路的抗干擾能力,電路提供的電源是具有穩(wěn)壓作用的+5V電源。單片機(jī)選用12MHZ的晶振,因?yàn)檫@樣有利于得到?jīng)]有誤差的波特率。特別是當(dāng)與單片機(jī)進(jìn)行通信的話,選用這種晶振比較好。由于單線數(shù)字溫度傳感器DHT11,測溫相當(dāng)準(zhǔn)確,我們主要時(shí)間要花在單片機(jī)軟件程序的編輯和調(diào)試以及電路模塊的制作方面。結(jié)論通過這次設(shè)計(jì),使我們更加深入的了解了溫度

35、傳感器,無線傳輸模塊,以及單片機(jī)的結(jié)構(gòu)功能和具體應(yīng)用,也使我們對電路PCB板有了更深的認(rèn)識。在老師和同學(xué)們的幫助下,我完成了本次設(shè)計(jì),本設(shè)計(jì)可以實(shí)現(xiàn)溫度的無線采集和實(shí)時(shí)顯示,并且相當(dāng)精確。我們的電路板雖然簡單,沒有運(yùn)放等元件,但可以基本上完成此系統(tǒng)的任務(wù),在電源的穩(wěn)定等方面,我也相應(yīng)的補(bǔ)充改進(jìn)了我的設(shè)計(jì)方案。附錄A:總體原理圖附錄B:部分程序#include"reg52.h"#include"Allhead.h"sbit CE = P10;sbit CSN= P11;sbit SCLK= P12;sbit MOSI= P13;sbit MISO= P14

36、;sbit IRQ = P15;unchar RevTempDate5;/最后一位用來存放結(jié)束標(biāo)志#include"reg52.h"#include"Allhead.h"#define uint unsigned int #define uchar unsigned char#define DBPort P0sbit rs = P25 ; sbit rw = P26 ;sbit ep = P27 ;typedef bit BOOL ; uchar data_byte;void delay(uchar ms) / 延時(shí)子程序 uchar i ; while

37、(ms-) for(i = 0 ; i<250;i+) ; void delay1()/延時(shí)10usuchar i;i-;i-;i-;i-;i-;i-;void longdelay(uchar s) /長延時(shí) while(s-) delay(10) ; /*LCD模塊*/BOOL lcd_bz()/測試LCD忙碌狀態(tài) BOOL result ; rs = 0 ; rw = 1 ; ep = 1 ; result = (BOOL)(P0 & 0x80) ; ep = 0 ; return result ; void write_cmd(uchar cmd)/ 寫指令 while(l

38、cd_bz() ;rs = 0 ;rw = 0 ;ep = 0 ;P0 = cmd ;ep = 1 ;ep = 0 ; void write_addr(uchar addr)/寫地址 write_cmd(addr|0x80) ;void write_byte(uchar dat)/寫字節(jié) while(lcd_bz() ; rs = 1 ; rw = 0 ; ep = 0 ; P0 = dat ; ep = 1 ; ep = 0 ; void lcd_init()/ 初始化 write_cmd(0x38) ; delay(1); write_cmd(0x08) ; delay(1); write

39、_cmd(0x01) ; delay(1); write_cmd(0x06) ; delay(1); write_cmd(0x0c) ; delay(1); display(uchar addr, uchar q)/在某一地址上顯示一字節(jié) delay(1) ; write_addr(addr) ; write_byte(q) ; longdelay(1) ; void show1() lcd_init();/ 初始化 / Welcome display(0x03,'W'); display(0x04,'e'); display(0x05,'l')

40、; display(0x06,'c'); display(0x07,'o'); display(0x08,'m'); display(0x09,'e'); NRFDelay(1000);/短暫延時(shí) /* display(0x42,'G'); display(0x43,'u'); display(0x44,'a'); display(0x45,'n'); display(0x46,'g'); display(0x48,'M'); disp

41、lay(0x49,'i'); display(0x4a,'n'); display(0x4b,'g'); NRFDelay(800);/短暫延時(shí)*/ lcd_init();/ 初始化/"The Humi: %RH" display(0x00,'T'); display(0x01,'h'); display(0x02,'e'); display(0x04,'H'); display(0x05,'u'); display(0x06,'m'

42、;); display(0x07,'i'); display(0x08,':'); display(0x0c,'%'); display(0x0d,'R'); display(0x0e,'H');/"The Temp: C" display(0x40,'T'); display(0x41,'h'); display(0x42,'e'); display(0x44,'T'); display(0x45,'e'); di

43、splay(0x46,'m'); display(0x47,'P'); display(0x48,':'); display(0x4c,0xdf); display(0x4d,'C'); unchar code TxAddr=0x34,0x43,0x10,0x10,0x01;/發(fā)送地址/*狀態(tài)標(biāo)志*/unchar bdata sta; /狀態(tài)標(biāo)志sbit RX_DR=sta6;sbit TX_DS=sta5;sbit MAX_RT=sta4;/*SPI時(shí)序函數(shù)*/unchar NRFSPI(unchar date) unchar

44、i; for(i=0;i<8;i+) / 循環(huán)8次 if(date&0x80) MOSI=1; else MOSI=0; / byte最高位輸出到MOSI date<<=1; / 低一位移位到最高位 SCLK=1; if(MISO) / 拉高SCK,nRF24L01從MOSI讀入1位數(shù)據(jù),同時(shí)從MISO輸出1位數(shù)據(jù) date|=0x01; / 讀MISO到byte最低位 SCLK=0; / SCK置低 return(date); / 返回讀出的一字節(jié)/*NRF24L01初始化函數(shù)*/void NRF24L01Int()NRFDelay(2);/讓系統(tǒng)什么都不干CE=0

45、;CSN=1; SCLK=0;IRQ=1; /*SPI讀寄存器一字節(jié)函數(shù)*/unchar NRFReadReg(unchar RegAddr) unchar BackDate; CSN=0;/啟動(dòng)時(shí)序 NRFSPI(RegAddr);/寫寄存器地址 BackDate=NRFSPI(0x00);/寫入讀寄存器指令 CSN=1; return(BackDate); /返回狀態(tài)/*SPI寫寄存器一字節(jié)函數(shù)*/unchar NRFWriteReg(unchar RegAddr,unchar date) unchar BackDate; CSN=0;/啟動(dòng)時(shí)序 BackDate=NRFSPI(RegAd

46、dr);/寫入地址 NRFSPI(date);/寫入值 CSN=1; return(BackDate);/*SPI讀取RXFIFO寄存器的值*/unchar NRFReadRxDate(unchar RegAddr,unchar *RxDate,unchar DateLen) /寄存器地址/讀取數(shù)據(jù)存放變量/讀取數(shù)據(jù)長度/用于接收 unchar BackDate,i;CSN=0;/啟動(dòng)時(shí)序BackDate=NRFSPI(RegAddr);/寫入要讀取的寄存器地址for(i=0;i<DateLen;i+) /讀取數(shù)據(jù) RxDatei=NRFSPI(0); CSN=1; return(Bac

47、kDate); /*SPI寫入TXFIFO寄存器的值*/unchar NRFWriteTxDate(unchar RegAddr,unchar *TxDate,unchar DateLen) /寄存器地址/寫入數(shù)據(jù)存放變量/讀取數(shù)據(jù)長度/用于發(fā)送 unchar BackDate,i; CSN=0; BackDate=NRFSPI(RegAddr);/寫入要寫入寄存器的地址 for(i=0;i<DateLen;i+)/寫入數(shù)據(jù) NRFSPI(*TxDate+); CSN=1; return(BackDate);/*NRF設(shè)置為發(fā)送模式并發(fā)送數(shù)據(jù)*/void NRFSetTxMode(unchar *TxDate) /發(fā)送模式 CE=0; NRFWriteTxDate(W_REGISTER+TX_ADDR,TxAddr,TX_ADDR_WITDH);/寫寄存器指令+P0地址使能指令+發(fā)送地址+地址寬度NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);/為了應(yīng)答接收設(shè)備,接收通道0地址和發(fā)送地址相同NRFWriteTxDate(W_TX_PAYLOAD,TxDate,TX_DATA_

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論