




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、西安郵電大學(xué)通信與信息工程學(xué)院無(wú)線通信系統(tǒng)課程設(shè)計(jì) 報(bào)告(2017 2018學(xué)年 第一學(xué)期) 實(shí)驗(yàn)名稱(chēng): 無(wú)線通信系統(tǒng)課程設(shè)計(jì)_ 學(xué)生姓名: _ 專(zhuān) 業(yè): _ 學(xué) 號(hào): _ 指導(dǎo)教師: _摘要溫濕度是生活生產(chǎn)中的重要的參數(shù)。本設(shè)計(jì)為基于單片機(jī)的溫濕度檢測(cè)系統(tǒng),采用模塊化、層次化設(shè)計(jì)。用新型的智能溫濕度傳感器DHT11主要實(shí)現(xiàn)對(duì)溫度、濕度的檢測(cè),將溫度濕度信號(hào)通過(guò)傳感器進(jìn)行信號(hào)的采集并轉(zhuǎn)換成數(shù)字信號(hào),再運(yùn)用單片機(jī)STC89C52進(jìn)行數(shù)據(jù)的分析和處理。然后將溫濕度數(shù)據(jù)通過(guò)NRF24L01發(fā)送數(shù)據(jù),實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)或多點(diǎn)對(duì)點(diǎn)的無(wú)線通信。顯示部分采用LCD1602液晶顯示所測(cè)溫濕度值。系統(tǒng)電路簡(jiǎn)單、集成度高
2、、工作穩(wěn)定、調(diào)試方便、檢測(cè)精度高,具有一定的實(shí)用價(jià)值。關(guān)鍵詞:?jiǎn)纹瑱C(jī);溫濕度傳感器;無(wú)線通信西安郵電大學(xué)課程設(shè)計(jì) 目錄目錄1.緒論12.課程設(shè)計(jì)任務(wù)及要求22.1設(shè)計(jì)任務(wù)22.2設(shè)計(jì)要求23.系統(tǒng)總體設(shè)計(jì)方案33.1方案論證33.2系統(tǒng)總體設(shè)計(jì)33.3工作原理44.系統(tǒng)硬件設(shè)計(jì)54.1.系統(tǒng)整體設(shè)計(jì)54.2.各單元電路設(shè)計(jì)55系統(tǒng)軟件設(shè)計(jì)105.1.主程序流程設(shè)計(jì)115.2.子程序設(shè)計(jì)156系統(tǒng)調(diào)試157總結(jié)178參考文獻(xiàn)189附錄19301.緒論溫濕度的檢測(cè)與數(shù)據(jù)采集是工業(yè)生產(chǎn)過(guò)程必不可少的環(huán)節(jié)之一,在生產(chǎn)中,溫濕度的高低對(duì)產(chǎn)品的質(zhì)量影響很大。由于溫濕度的檢測(cè)控制不當(dāng),可能使我們導(dǎo)致無(wú)法估計(jì)
3、的經(jīng)濟(jì)損失。為保證日常工作的順利進(jìn)行,首要問(wèn)題是加強(qiáng)生產(chǎn)車(chē)間內(nèi)溫度與濕度的監(jiān)測(cè)工作,但傳統(tǒng)的方法過(guò)于粗糙,通過(guò)人工進(jìn)行檢測(cè),對(duì)不符合溫度和濕度要求的庫(kù)房進(jìn)行通風(fēng)、去濕和降溫等工作。這種人工測(cè)試方法費(fèi)時(shí)費(fèi)力、效率低,且測(cè)試的溫度及濕度誤差大,隨機(jī)性大。目前,在低溫條件下(通常指100以下),溫濕度的測(cè)量已經(jīng)相對(duì)成熟。同時(shí)通過(guò)無(wú)線通信系統(tǒng)進(jìn)行溫濕度數(shù)據(jù)的收發(fā),能夠?qū)貪穸鹊臋z測(cè)距離拉長(zhǎng)幾個(gè)數(shù)量級(jí),而且節(jié)約了布線開(kāi)銷(xiāo)成本,利用新型單總線式數(shù)字溫度傳感器實(shí)現(xiàn)對(duì)溫度的測(cè)試與控制得到更快的開(kāi)發(fā)。但人們對(duì)它的要求越來(lái)越高,要為現(xiàn)代人工作、科研、學(xué)習(xí)、生活提供更好的更方便的設(shè)施就需要從數(shù)字單片機(jī)技術(shù)入手,一切
4、向著數(shù)字化,智能化控制方向發(fā)展。對(duì)于國(guó)內(nèi)外對(duì)溫濕度檢測(cè)的研究,從復(fù)雜模擬量檢測(cè)到現(xiàn)在的數(shù)字智能化檢測(cè)越發(fā)的成熟,隨著科技的進(jìn)步,現(xiàn)在的對(duì)于溫濕度研究,檢測(cè)系統(tǒng)向著智能化、小型化、低功耗的方向發(fā)展。在發(fā)展過(guò)程中,以單片機(jī)為核心的溫濕度控制系統(tǒng)發(fā)展為體積小、操作簡(jiǎn)單、量程寬、性能穩(wěn)定、測(cè)量精度高,等諸多優(yōu)點(diǎn)在生產(chǎn)生活的各個(gè)方面實(shí)現(xiàn)著至關(guān)重要的作用。2.課程設(shè)計(jì)任務(wù)及要求2.1設(shè)計(jì)任務(wù)本課程設(shè)計(jì)的主要任務(wù)是使用以STC89C52芯片為數(shù)據(jù)處理與運(yùn)算模塊,使用DHT11溫濕度傳感器為采集數(shù)據(jù)模塊,使用NRF24L01為數(shù)據(jù)收發(fā)模塊,實(shí)現(xiàn)溫濕度的采集與發(fā)送、接收功能。2.2設(shè)計(jì)要求實(shí)現(xiàn)溫濕度數(shù)據(jù)的采集以
5、及通過(guò)點(diǎn)對(duì)點(diǎn)或兩點(diǎn)對(duì)一點(diǎn)的通信來(lái)傳輸數(shù)據(jù)。濕度精度為±5%RH,溫度±2,量程濕度20-90%RH,溫度050。3.系統(tǒng)總體設(shè)計(jì)方案3.1方案論證本系統(tǒng)使用PCB作為電路板,核心器件是STC89C52芯片、DHT11溫濕度傳感器以及NRF24L01。依靠DHT11采集數(shù)據(jù)、STC89C52處理數(shù)據(jù)、NRF24L01傳輸數(shù)據(jù)實(shí)現(xiàn)采集溫濕度數(shù)據(jù)并無(wú)線傳輸至接收端的功能。系統(tǒng)電路簡(jiǎn)單、集成度高、工作穩(wěn)定、調(diào)試方便、檢測(cè)精度高,具有一定的實(shí)用性。3.2系統(tǒng)總體設(shè)計(jì)圖3.1 系統(tǒng)總體設(shè)計(jì)圖圖3.1為實(shí)現(xiàn)兩點(diǎn)對(duì)一點(diǎn)的溫濕度數(shù)據(jù)無(wú)線通信系統(tǒng)總設(shè)計(jì)圖。此系統(tǒng)分為三個(gè)子系統(tǒng),分別是左上角的發(fā)
6、送端1、右上角的發(fā)送端2和下方的接收端。每個(gè)子系統(tǒng)又分為三個(gè)模塊,分別是主芯片模塊、液晶顯示模塊以及溫濕度傳感器模塊。最后如有需要,還可以在接收端的輸出口連接PC上位機(jī),以實(shí)現(xiàn)數(shù)據(jù)在PC上的處理。 圖3.2 發(fā)射端程序流程圖 圖3.3 接收端程序流程圖3.3工作原理本系統(tǒng)是以STC89C52單片機(jī)為核心的一套多點(diǎn)溫濕度采集和無(wú)線傳輸系統(tǒng),由溫濕度采集、數(shù)據(jù)傳輸、數(shù)據(jù)處理三個(gè)部分組成,主要包括單片機(jī)系統(tǒng),無(wú)線傳輸系統(tǒng),電源電路,復(fù)位電路,溫濕度檢測(cè),顯示系統(tǒng)等模塊。單片機(jī)STC89C52是整個(gè)硬件電路的核心,它一方面控制無(wú)線傳輸模塊NRF24L01發(fā)送、接受數(shù)據(jù);另一方面,將收到的數(shù)字溫濕度數(shù)據(jù)
7、送到LCD1602顯示器顯示,可以直觀的看到測(cè)量點(diǎn)的溫濕度并進(jìn)行監(jiān)測(cè)。整個(gè)系統(tǒng)的軟件設(shè)計(jì)是通過(guò)c語(yǔ)言程序?qū)Πl(fā)射機(jī)、接收機(jī)的STC89C52編程來(lái)實(shí)現(xiàn)其控制功能。4.系統(tǒng)硬件設(shè)計(jì)4.1.系統(tǒng)整體設(shè)計(jì)圖4.1 系統(tǒng)硬件總體結(jié)構(gòu)用新型的智能集成溫溫度傳感器DHT11主要實(shí)現(xiàn)檢測(cè)溫度、濕度的檢測(cè),將溫度濕度信號(hào)通過(guò)傳感器進(jìn)行信號(hào)的采集并轉(zhuǎn)換成數(shù)字信號(hào),再運(yùn)用單片機(jī)STC89C52進(jìn)行數(shù)據(jù)的分析和處理,之后一方面送入無(wú)線傳輸器件NRF24L01進(jìn)行信號(hào)的發(fā)送,另一方面送入顯示器顯示;接收端則是通過(guò)NRF24L01接收數(shù)據(jù)后送入STC89C52后再送入顯示器顯示。4.2.各單元電路設(shè)計(jì)4.2.1溫濕度傳感
8、器 4.2.1.1 DHT11產(chǎn)品概述DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專(zhuān)用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器包括一個(gè)電阻式感濕元件和一個(gè)NTC測(cè)溫元件,并與一個(gè)高性能8位單片機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性?xún)r(jià)比極高等優(yōu)點(diǎn)。每個(gè)DHT11傳感器都在極為精確的濕度校驗(yàn)室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲(chǔ)存在OTP內(nèi)存中,傳感器內(nèi)部在檢測(cè)信號(hào)的處理過(guò)程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡(jiǎn)易快捷。超小的體積、極低的功耗,信號(hào)傳輸距離可達(dá)20米以上,使其成為各
9、類(lèi)應(yīng)用甚至最為苛刻的應(yīng)用場(chǎng)合的最佳選則。產(chǎn)品為 4 針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶(hù)需求而提供。4.2.1.2 引腳說(shuō)明:引腳號(hào) 引腳名稱(chēng) 類(lèi)型 引腳說(shuō)明1 VCC 電源 正電源輸入,3V-5.5V DC2 DATA 輸出 單總線,數(shù)據(jù)輸入/輸出引腳3 NC 空 空腳,擴(kuò)展未用4 GND 地 電源地圖4.2 DHT11連接圖4.2.2單片機(jī)STC89C52STC89C52是一種低功耗、高性能CMOS八位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器,使用ATMEL公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許ROM在系統(tǒng)可編程,亦適
10、于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使其為眾多嵌入式控制應(yīng)用系統(tǒng)提供靈活的解決方案。 STC89C52的功能以及引腳完全可以滿(mǎn)足本系統(tǒng)對(duì)于控制核心的要求,且其成本低,應(yīng)用廣泛,相關(guān)技術(shù)的使用已經(jīng)很成熟,開(kāi)發(fā)難度相對(duì)不高,所以,選擇其作為發(fā)射機(jī)、接收機(jī)的主控芯片。 圖4.3 STC89C52引腳圖圖4.4 單片機(jī)的復(fù)位與晶振電路4.2.3 NRF24L01無(wú)線模塊本系統(tǒng)設(shè)計(jì)采用無(wú)線方式向終端傳輸溫濕度數(shù)據(jù)。本系統(tǒng)無(wú)線輸模塊采用單片射頻收發(fā)芯片NRF24L01。4.2.3.1 NRF24L01的管腳瞥濤NRF24L01有8個(gè)引腳,各個(gè)引腳的具體說(shuō)明如表4.1所示
11、。瞥濤表4.1 NRF24L01各個(gè)引腳說(shuō)明瞥濤管腳瞥濤名稱(chēng)瞥濤管腳功能瞥濤方向瞥濤pin1瞥濤VDD瞥濤正電源輸入瞥濤瞥濤pin2瞥濤CE瞥濤工作模式選擇,RX或TX瞥濤I 瞥濤Pin3瞥濤CSN瞥濤SPI片選使能,低電平使能瞥濤I瞥濤pin4瞥濤SCK瞥濤SPI時(shí)鐘瞥濤I瞥濤pin5瞥濤MOSI瞥濤SPI輸入瞥濤I瞥濤pin6瞥濤MISO瞥濤SPI輸出瞥濤O瞥濤pin7瞥濤IRQ瞥濤中斷輸出瞥濤O瞥濤pin8瞥濤GND瞥濤電源地瞥濤瞥濤4.2.3.2無(wú)線傳輸模塊的硬件設(shè)計(jì) 本系統(tǒng)中兩個(gè)發(fā)射機(jī)各有一個(gè)無(wú)線發(fā)射模塊,一個(gè)接收機(jī)含有一個(gè)無(wú)線接收模塊。由于NRF24L01兼?zhèn)浒l(fā)送與接收功能,所以發(fā)
12、射、接受模塊全部采用NRF24L01,與主機(jī)STC89C52的硬件連接也全部相同。NRF24L01無(wú)線模塊直接與STC89C52連接,電路圖如圖4.5所示。瞥濤圖4.5 NRF24L01無(wú)線模塊電路圖瞥濤4.2.4顯示模塊瞥濤LCD1602液晶顯示是一種常用的顯示方式。LCD1602顯示內(nèi)容十分豐富,能夠顯示字母,符號(hào)和數(shù)字等192種字符,且可同時(shí)顯示16x2個(gè)字符,滿(mǎn)足了本系統(tǒng)對(duì)于多組數(shù)據(jù)同時(shí)顯示的要求。顯示屏共有16個(gè)引腳,節(jié)省了單片機(jī)的大量I/O口,且電路連接簡(jiǎn)單,容易焊接。此種顯示方式響應(yīng)也較快,亮度可調(diào),成本低,是顯示終端的最佳選擇。瞥 接收機(jī)收到溫濕度數(shù)據(jù)后,利用LCD1602顯示
13、兩個(gè)監(jiān)測(cè)點(diǎn)A1、A2的溫濕度信息。LCD1602液晶顯示芯片采用標(biāo)準(zhǔn)的16腳接口,其各個(gè)引腳及說(shuō)明如表3.6所示。瞥濤表4.2 LCD1602各個(gè)引腳的說(shuō)明瞥濤編號(hào)瞥濤符號(hào)瞥濤引腳說(shuō)明瞥濤編號(hào)瞥濤符號(hào)瞥濤引腳說(shuō)明瞥濤1瞥濤VSS瞥濤電源地瞥濤9瞥濤D2瞥濤數(shù)據(jù)I/O瞥濤2瞥濤VDD瞥濤電源正極瞥濤10瞥濤D3瞥濤數(shù)據(jù)I/O瞥濤3瞥濤VL瞥濤液晶顯示偏壓瞥濤11瞥濤D4瞥濤數(shù)據(jù)I/O瞥濤4瞥濤RS瞥濤數(shù)據(jù)/命令選擇瞥濤12瞥濤D5瞥濤數(shù)據(jù)I/O瞥濤5瞥濤R/W瞥濤讀/寫(xiě)選擇瞥濤13瞥濤D6瞥濤數(shù)據(jù)I/O瞥濤6瞥濤E瞥濤使能信號(hào)瞥濤14瞥濤D7瞥濤數(shù)據(jù)I/O瞥濤7瞥濤D0瞥濤數(shù)據(jù)I/O瞥濤15瞥濤
14、BLA瞥濤背光源正極瞥濤8瞥濤D1瞥濤數(shù)據(jù)I/O瞥濤16瞥濤BLK瞥濤背光源負(fù)極瞥濤 LCD1602電路連接圖如圖4.6所示。 瞥濤瞥濤圖4.6 LCD1602模塊電路圖瞥濤5. 系統(tǒng)軟件設(shè)計(jì)5.1主程序流程設(shè)計(jì)本系統(tǒng)由兩個(gè)發(fā)射機(jī)A1、A2與一個(gè)接收機(jī)B組成,可以設(shè)計(jì)出發(fā)射機(jī)的總體程序流程圖和接收機(jī)的總體程序流程圖。發(fā)射機(jī)程序主要是溫濕度采集處理程序,NRF24L01發(fā)送程序。接收機(jī)主要是數(shù)據(jù)接收程序,液晶顯示程序。瞥濤5.1.1發(fā)射機(jī)的總體軟件設(shè)計(jì)瞥濤發(fā)送部分的總體設(shè)計(jì)思路為:初始化溫度傳感器DHT11;傳感器測(cè)得溫濕度;把溫濕度值寫(xiě)入待發(fā)射數(shù)據(jù);初始化NRF24L01無(wú)線模塊;將溫濕度發(fā)送
15、給接收機(jī),其流程圖如圖5.1所示瞥濤 瞥濤圖5.1 發(fā)射機(jī)程序流程圖瞥濤5.1.2 接收機(jī)的總體軟件設(shè)計(jì)瞥濤接收部分的總體設(shè)計(jì)思路是:初始化NRF24L01無(wú)線模塊和LCD1602顯示模塊;接收溫濕度數(shù)據(jù);在LCD1602上分組顯示,其程序流程圖如圖5.2所示。瞥濤 瞥濤圖5.2 接收機(jī)程序流程圖瞥5.2.子程序設(shè)計(jì)5.2.1 溫濕度采集模塊軟件設(shè)計(jì)瞥濤 發(fā)射機(jī)利用DHT11進(jìn)行溫濕度采集,DATA引腳連接于STC89C52的P17口以進(jìn)行數(shù)據(jù)傳輸。NRF24L01通過(guò)DATA總線發(fā)送出的溫濕度數(shù)據(jù)分小數(shù)部分和整數(shù)部分,共40bit。數(shù)據(jù)格式為:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8b
16、i溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗(yàn)。瞥濤本系統(tǒng)DHT11的工作流程如下:開(kāi)機(jī)后,DHT11處于低功耗模式,當(dāng)它檢測(cè)到STC89C52發(fā)送出的開(kāi)始信號(hào)后,其轉(zhuǎn)換到高速模式,開(kāi)始進(jìn)行溫濕度采集,并以以上所說(shuō)的數(shù)據(jù)格式發(fā)送至STC89C52,然后進(jìn)入低速模式。單片機(jī)可以選擇讀取溫濕度數(shù)據(jù)。瞥濤DATA總線空閑狀態(tài)為高電平,DHT11接收到的開(kāi)始信號(hào)必須是大于18ms的低電平,否則,DHT11便無(wú)法視其為開(kāi)始信號(hào)。開(kāi)始信號(hào)結(jié)束后,DHT11會(huì)發(fā)送80us的低電平響應(yīng)信號(hào)。STC89C52發(fā)送開(kāi)始信號(hào)后,需要等待20-40us,然后讀取DHT11回饋的低電平響應(yīng)信號(hào)。若讀取總線為低電平,
17、則說(shuō)明DHT11收到了開(kāi)始信號(hào)。DHT11發(fā)送響應(yīng)信號(hào)后,再把總線拉高80us,準(zhǔn)備發(fā)送數(shù)據(jù),每一bit數(shù)據(jù)都以50us低電平時(shí)隙開(kāi)始,高電平的長(zhǎng)短決定了數(shù)據(jù)位是0還是1。當(dāng)最后一bit數(shù)據(jù)傳送完畢后,DHT11拉低總線50us,隨后總線再次進(jìn)入空閑狀態(tài)。根據(jù)DHT11與單片機(jī)的數(shù)據(jù)通信時(shí)序,可以設(shè)計(jì)出溫濕度采集處理的程序流程圖,如圖5.3所示。瞥濤 瞥濤圖5.3 溫濕度采集程序流程圖瞥濤瞥濤5.2.2無(wú)線傳輸模塊軟件設(shè)計(jì)瞥濤發(fā)射機(jī)含有數(shù)據(jù)發(fā)射模塊,接收機(jī)含有數(shù)據(jù)接收模塊,兩種模塊都采用NRF24L01。所以在進(jìn)行無(wú)線數(shù)據(jù)通信時(shí),需要把發(fā)射機(jī)的NRF24L01配置為發(fā)射模式,把接收機(jī)的NRF2
18、4L01配置為接收模式。瞥濤5.2.2.1數(shù)據(jù)發(fā)送模塊軟件設(shè)計(jì)瞥濤NRF24L01的發(fā)送模塊程序流程圖如圖5.4所示。瞥濤瞥濤圖5.4 發(fā)送模塊程序流程圖瞥濤5.2.2.2 數(shù)據(jù)接收模塊軟件設(shè)計(jì)瞥濤接收機(jī)要想顯示溫濕度,就必須要通過(guò)NRF24L01接收兩個(gè)發(fā)射機(jī)發(fā)送的溫濕度數(shù)據(jù)。NRF24L01的接收模塊程序流程圖如圖5.5所示。瞥濤 瞥濤圖5.5 接收模塊程序流程圖瞥濤5.2.3 顯示模塊軟件設(shè)計(jì) 顯示模塊軟件設(shè)計(jì)相對(duì)簡(jiǎn)單,首先將LCD1602初始化,然后STC89C52通過(guò)數(shù)據(jù)傳輸端口P0.0P0.6向LCD1602傳送溫濕度數(shù)據(jù)信息。若LCD1602正確接收到數(shù)據(jù)信息,則顯示收到的溫濕度
19、數(shù)據(jù)。延時(shí)0.8S后,重新開(kāi)始讀取下一個(gè)時(shí)間段溫濕度數(shù)據(jù),進(jìn)入循環(huán)。若LCD1602讀取數(shù)據(jù)錯(cuò)誤,則直接返回,重新讀取。程序流程圖如圖5.6所示瞥濤圖5.6 LCD1602顯示模塊程序流程圖瞥濤6.系統(tǒng)調(diào)試整個(gè)系統(tǒng)的電路焊接完成后,開(kāi)始進(jìn)行整個(gè)系統(tǒng)的調(diào)試。在整個(gè)調(diào)試的過(guò)程中主要使用Keil vision5軟件和pz-isp軟件。瞥濤首先對(duì)程序進(jìn)行設(shè)計(jì)以及編譯。程序的編譯是一個(gè)很重要的過(guò)程,他是這整個(gè)系統(tǒng)關(guān)鍵。在編寫(xiě)代碼的過(guò)程中,通過(guò)設(shè)計(jì)的流程圖,按照自己的思路進(jìn)行定義以及調(diào)用函數(shù),編譯調(diào)試可以讓我們清楚地認(rèn)識(shí)到函數(shù)的調(diào)用順序以及函數(shù)的調(diào)用情況。并且我們可以通過(guò)調(diào)試發(fā)現(xiàn)其中的錯(cuò)誤,并通過(guò)調(diào)試改正
20、過(guò)來(lái)。通過(guò)不斷地對(duì)代碼進(jìn)行調(diào)試,從而將設(shè)計(jì)完美的實(shí)現(xiàn)。瞥濤程序編譯完成后利用pz-isp軟件把三個(gè)程序分別燒錄進(jìn)發(fā)射機(jī)A和接收機(jī)B的STC89C52單片機(jī)中。完成后,對(duì)系統(tǒng)進(jìn)行功能測(cè)試,測(cè)試流程如下。瞥濤1.啟動(dòng)發(fā)射機(jī)A和接收機(jī)B。如圖6.1所示。A的初始溫度21°C、濕度54%圖6.1 A、B初始溫濕度瞥濤瞥濤2. 將電烙鐵放在A的溫濕度傳感器DHT11旁邊,接收機(jī)的液晶屏顯示如圖6.2所示??梢钥吹?,A采集點(diǎn)的溫度上升至22。濕度下降至46%RH??芍l(fā)射機(jī)A工作正常,接收機(jī)能正常顯示溫濕度數(shù)據(jù),達(dá)到了本設(shè)計(jì)的對(duì)于無(wú)線采集某點(diǎn)溫濕度要求。 瞥濤 圖6.2 A、B溫濕度發(fā)生改變綜上
21、可知,本系統(tǒng)完整的實(shí)現(xiàn)了預(yù)設(shè)功能,本次設(shè)計(jì)制作成功。7.總結(jié)本系統(tǒng)是基于51單片機(jī)的多點(diǎn)溫濕度采集和無(wú)線傳輸系統(tǒng),由兩個(gè)發(fā)射模塊與一個(gè)接收模塊組成。發(fā)射機(jī)利用數(shù)字溫濕度傳感器DHT11采集環(huán)境溫濕度數(shù)據(jù)并傳送給STC89C52單片機(jī),單片機(jī)進(jìn)行數(shù)據(jù)處理后利用無(wú)線傳輸模塊NRF24L01進(jìn)行無(wú)線發(fā)送。接收模塊的NRF24L01將接收到的數(shù)據(jù)傳給STC89C52單片機(jī),最后用數(shù)字顯示屏LCD1602將經(jīng)過(guò)單片機(jī)處理后的溫濕度數(shù)據(jù)顯示出來(lái)。本設(shè)計(jì)基于51單片機(jī),能夠完成同時(shí)遠(yuǎn)距離采集兩點(diǎn)溫濕度并在系統(tǒng)終端進(jìn)行顯示的功能,以達(dá)到監(jiān)測(cè)多點(diǎn)環(huán)境溫濕度的目的。結(jié)果表明,本系統(tǒng)能夠方便、高效、及時(shí)地測(cè)量出兩個(gè)
22、采集點(diǎn)的溫濕度。系統(tǒng)成本低,性能好,制作相對(duì)簡(jiǎn)單。遠(yuǎn)程測(cè)量能達(dá)到百米左右,基本滿(mǎn)足日常生活的測(cè)量要求。可以輕松添加多個(gè)監(jiān)測(cè)點(diǎn),程序移植性十分好。系統(tǒng)可擴(kuò)展性也比較強(qiáng),在此程序框架上添加其他模塊程序,并加入相應(yīng)的硬件,可以實(shí)現(xiàn)其他功能。如溫濕度異常報(bào)警功能,溫濕度自動(dòng)調(diào)節(jié)功能。瞥濤通過(guò)這次為期兩周的實(shí)習(xí),不僅溫習(xí)了之前學(xué)習(xí)的電烙鐵焊錫絲的焊接技術(shù),更通過(guò)學(xué)習(xí)系統(tǒng)的各個(gè)模塊電路原理圖,回顧了相關(guān)知識(shí)。同時(shí),對(duì)單片機(jī)軟件的編寫(xiě)也是一種全新的學(xué)習(xí),溫故又知新??梢哉f(shuō)此次的實(shí)習(xí)是從理論和實(shí)踐一舉兩得的實(shí)習(xí)。8.參考文獻(xiàn)1丁向榮,單片機(jī)應(yīng)用系統(tǒng)與開(kāi)發(fā)技術(shù)項(xiàng)目教程,北京:清華大學(xué)出版社,20152丁永紅,孫
23、運(yùn)強(qiáng),基于nRF2401的無(wú)線數(shù)傳系統(tǒng)設(shè)計(jì),北京:國(guó)外電子測(cè)量技術(shù),20083魏立峰,王寶興,單片機(jī)原理與應(yīng)用技術(shù),北京:北京大學(xué)出版社,20164李文仲,段朝玉,短距離無(wú)線數(shù)據(jù)通信入門(mén)與實(shí)戰(zhàn),北京:北京航空航天大學(xué)出版社,20065喻金錢(qián),喻斌,短距離無(wú)線通信詳解:基于單片機(jī)控制,北京:北京航空航天大學(xué)出版社,20099. 附錄附錄1:系統(tǒng)總體結(jié)構(gòu)電路原理圖附錄2:程序清單1.發(fā)送端#include <reg52.h>#include <intrins.h>#include <stdio.h>#define uchar unsigned char#defi
24、ne uint unsigned int/dht接口sbit io = P17;/lcd接口typedef bit BOOL;sbit rs = P25;sbit rw = P26;sbit ep = P27;/nrf接口#define READ_REG 0x00 / 讀寄存器指令#define WRITE_REG 0x20 / 寫(xiě)寄存器指令#define RD_RX_PLOAD 0x61 / 讀取接收數(shù)據(jù)指令#define WR_TX_PLOAD 0xA0 / 寫(xiě)待發(fā)數(shù)據(jù)指令#define FLUSH_TX 0xE1 / 沖洗發(fā)送FIFO指令#define FLUSH_RX 0xE2 / 沖
25、洗接收 FIFO指令#define REUSE_TX_PL 0xE3 / 定義重復(fù)裝載數(shù)據(jù)指令#define NOP 0xFF / 保留/*寄存器地址*/#define CONFIG 0x00 / 配置收發(fā)狀態(tài),CRC校驗(yàn)?zāi)J揭约笆瞻l(fā)狀態(tài)響應(yīng)方式#define EN_AA 0x01 / 自動(dòng)應(yīng)答功能設(shè)置#define EN_RXADDR 0x02 / 可用信道設(shè)置#define SETUP_AW 0x03 / 收發(fā)地址寬度設(shè)置#define SETUP_RETR 0x04 / 自動(dòng)重發(fā)功能設(shè)置#define RF_CH 0x05 / 工作頻率設(shè)置#define RF_SETUP 0x06 /
26、發(fā)射速率、功耗功能設(shè)置#define STATUS 0x07 / 狀態(tài)寄存器#define OBSERVE_TX 0x08 / 發(fā)送監(jiān)測(cè)功能#define CD 0x09 / 地址檢測(cè)#define RX_ADDR_P0 0x0A / 頻道0接收數(shù)據(jù)地址#define RX_ADDR_P1 0x0B / 頻道1接收數(shù)據(jù)地址#define RX_ADDR_P2 0x0C / 頻道2接收數(shù)據(jù)地址#define RX_ADDR_P3 0x0D / 頻道3接收數(shù)據(jù)地址#define RX_ADDR_P4 0x0E / 頻道4接收數(shù)據(jù)地址#define RX_ADDR_P5 0x0F / 頻道5接收數(shù)據(jù)
27、地址#define TX_ADDR 0x10 / 發(fā)送地址寄存器#define RX_PW_P0 0x11 / 接收頻道0接收數(shù)據(jù)長(zhǎng)度#define RX_PW_P1 0x12 / 接收頻道1接收數(shù)據(jù)長(zhǎng)度#define RX_PW_P2 0x13 / 接收頻道2接收數(shù)據(jù)長(zhǎng)度#define RX_PW_P3 0x14 / 接收頻道3接收數(shù)據(jù)長(zhǎng)度#define RX_PW_P4 0x15 / 接收頻道4接收數(shù)據(jù)長(zhǎng)度#define RX_PW_P5 0x16 / 接收頻道5接收數(shù)據(jù)長(zhǎng)度#define FIFO_STATUS 0x17 / FIFO棧入棧出狀態(tài)寄存器設(shè)置#define TX_ADR_W
28、IDTH 5 #define RX_ADR_WIDTH 5 #define TX_PLOAD_WIDTH 8 #define RX_PLOAD_WIDTH 8 sbit SCK = P20;sbit MISO = P21;sbit IRQ = P22;sbit MOSI = P23;sbit CSN = P24;sbit CE = P37;uchar bdata sta;sbit MAX_RT = sta4;sbit TX_DS = sta5;sbit RX_DR = sta6;uchar const TX_ADDRESSTX_ADR_WIDTH = 0x34,0x43,0x10,0x10,0
29、x01; /本地地址/主函數(shù)數(shù)據(jù)sbit LED = P35;uchar TxBuf8;extern uchar RH, RL, TH, TL;/延時(shí)模塊1void delay_us(uint i) /誤差 0us uchar a,b,c;for(c=i;c>0;c-) for(b=1;b>0;b-) for(a=32;a>0;a-);void delay(uchar ms) uchar i; while(ms-) for(i=0;i<250;i+); void delay1()/延時(shí)10us uchar i; i-; i-; i-; i-; i-; i-; void
30、longdelay(uchar s) /長(zhǎng)延時(shí) while(s-) delay(60); /延時(shí)模塊2void Delay_t(uint j) uchar i;for(;j>0;j-)for(i=0;i<27;i+);void delay2(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);/lcd模塊BOOL lcd_bz()/測(cè)試LCD忙碌狀態(tài) BOOL result; rs = 0; rw = 1; ep = 1; result = (BOOL)(P0 & 0x80); ep = 0; return resu
31、lt; void write_cmd(uchar cmd)/ 寫(xiě)指令 while(lcd_bz(); rs = 0; rw = 0; ep = 0; P0 = cmd; ep = 1; ep = 0; void write_addr(uchar addr)/寫(xiě)地址 write_cmd(addr|0x80); /“位或”,讓addr的bit7強(qiáng)制賦值為1然后傳入函數(shù) 0x80=10000000Dvoid write_byte(uchar dat)/寫(xiě)字節(jié) while(lcd_bz(); rs = 1; rw = 0; ep = 0; P0 = dat; ep = 1; ep = 0; void
32、lcd_init()/ 初始化 write_cmd(0x38); delay(1); write_cmd(0x08); delay(1); write_cmd(0x01); delay(1); write_cmd(0x06); delay(1); write_cmd(0x0c); delay(1);void display(uchar addr, uchar q)/在某一地址上顯示一字節(jié) delay(10); write_addr(addr); write_byte(q); longdelay(2); /dht模塊uchar data_byte; uchar RH, RL, TH, TL;uc
33、har receive_byte()/接收一個(gè)字節(jié) uchar i,temp,count;for(i=0;i<8;i+) count=2; while(!io)&&count+);/等待50us低電平結(jié)束 delay1(); delay1(); delay1(); temp=0; if(io=1) temp=1; count=2; while(io)&&count+); if(count=1)break; data_byte<<=1; data_byte|=temp; return data_byte;void receive()/接收數(shù)據(jù) u
34、char T_H,T_L,R_H,R_L,check,num_check; uchar count; io=0;Delay_t(180); io=1;delay1();delay1();delay1(); delay1(); io=1; if(!io)/讀取DHT11響應(yīng)信號(hào) count=2;while(!io)&&count+);/DHT11高電平80us是否結(jié)束 count=2; while(io)&&count+); R_H=receive_byte(); R_L=receive_byte(); T_H=receive_byte(); T_L=receiv
35、e_byte(); check=receive_byte(); io=1; num_check=R_H+R_L+T_H+T_L; if(num_check=check) RH=R_H; RL=R_L; TH=T_H; TL=T_L; check=num_check; /nrf模塊uchar SPI_RW(uchar byte)uchar bit_ctr;for(bit_ctr=0;bit_ctr<8;bit_ctr+) / 輸出8位MOSI = (byte & 0x80); / 獲得byte的最高位數(shù)據(jù)byte = (byte << 1); / SCK = 1; /
36、byte |= MISO; / 獲得從MISO獲得的一位數(shù)據(jù)SCK = 0; / return(byte);/最后返回從MISO讀出的數(shù)據(jù) /*讀寫(xiě)寄存器函數(shù)*/uchar SPI_RW_Reg(uchar reg, uchar value)uchar status;CSN = 0; / CSN拉低,啟動(dòng)SPI通信status = SPI_RW(reg); /返回從MISO讀出的數(shù)據(jù),status應(yīng)為上次向該寄存器內(nèi)寫(xiě)的valueSPI_RW(value); / 向寄存器中寫(xiě)入數(shù)據(jù)CSN = 1; / CSN拉高,終止SPI通信return(status); / 返回2401 reg寄存器的狀
37、態(tài)/*讀出從機(jī)相關(guān)寄存器的數(shù)據(jù)*/uchar SPI_Read(uchar reg)uchar reg_val;CSN = 0; SPI_RW(reg); reg_val = SPI_RW(0); CSN = 1; return(reg_val); /*用于寫(xiě)數(shù)據(jù),reg為寄存器地址 pBuf為待寫(xiě)入數(shù)據(jù)地址 bytes為寫(xiě)入數(shù)據(jù)的個(gè)數(shù)*/uchar SPI_Write_Buf(uchar reg, uchar *pBuf, uchar bytes)uchar status,byte_ctr;CSN = 0; / SPI使能status = SPI_RW(reg);for(byte_ctr=0
38、; byte_ctr<bytes; byte_ctr+)SPI_RW(*pBuf+);/指向下一個(gè)數(shù)據(jù) CSN = 1; return(status); / 返回24l01的狀態(tài)/*用于讀數(shù)據(jù),reg為寄存器地址,pBuf為待讀出數(shù)據(jù)地址,bytes為讀出數(shù)據(jù)的個(gè)數(shù)*/uchar SPI_Read_Buf(uchar reg, uchar *pBuf, uchar bytes)uchar status, byte_ctr;CSN = 0;status = SPI_RW(reg);for(byte_ctr=0;byte_ctr<bytes;byte_ctr+)pBufbyte_ctr
39、 = SPI_RW(0);CSN = 1;return(status);/*發(fā)送tx_buf中的數(shù)據(jù)*/void TxPacket(uchar * tx_buf)CE=0;SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);/StandBy I模式SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); / 裝載接收端地址SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH);SPI_RW_Reg(WRITE
40、_REG + EN_AA, 0x01); / 頻道0自動(dòng)ACK應(yīng)答允許SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); / 允許接收地址只有頻道0,如果需要多頻道可以參考Page21SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x0a); SPI_RW_Reg(WRITE_REG + RF_CH, 0x40); / 設(shè)置信道工作為2.4GHZ,收發(fā)必須一致/SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /設(shè)置接收數(shù)據(jù)長(zhǎng)度,本次設(shè)置為4字節(jié)SPI_RW_Reg(WRITE_REG +
41、RF_SETUP, 0x07); / 裝載數(shù)據(jù)SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); / IRQ收發(fā)完成中斷響應(yīng),16位CRC,主發(fā)送CE=1; /置高CE,激發(fā)數(shù)據(jù)發(fā)送delay_us(10);/*設(shè)定24L01為接收方式*/void RX_Mode(void)CE=0;SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); / 頻道0自動(dòng)ACK應(yīng)答允許SPI_RW_Reg(WRITE_REG + EN_RXAD
42、DR, 0x01); / 允許接收地址只有頻道0,如果需要多頻道可以參考Page21 SPI_RW_Reg(WRITE_REG + RF_CH, 0x40); / 設(shè)置信道工作為2.4GHZ,收發(fā)必須一致SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /設(shè)置接收數(shù)據(jù)長(zhǎng)度,本次設(shè)置為4字節(jié)SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); / Set PWR_UP bit, enable CRC(2 bytes)CE = 1; /*數(shù)據(jù)讀取后放如rx_buf接收緩沖區(qū)中*/uchar RxPacket(uchar
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 28 面團(tuán)長(zhǎng)大了(教學(xué)設(shè)計(jì))-三年級(jí)科學(xué)上冊(cè)青島版(五四制)
- 寧夏民族職業(yè)技術(shù)學(xué)院《德育論》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江農(nóng)業(yè)商貿(mào)職業(yè)學(xué)院《Oracle數(shù)據(jù)庫(kù)應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 青島飛洋職業(yè)技術(shù)學(xué)院《運(yùn)動(dòng)(二)》2023-2024學(xué)年第二學(xué)期期末試卷
- 中國(guó)石油大學(xué)(北京)《文化人類(lèi)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 益陽(yáng)職業(yè)技術(shù)學(xué)院《數(shù)字多媒體作品創(chuàng)作》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東潮州衛(wèi)生健康職業(yè)學(xué)院《土地測(cè)量學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 集寧師范學(xué)院《數(shù)控加工工藝及編程》2023-2024學(xué)年第二學(xué)期期末試卷
- 泰州2024年江蘇泰州靖江市公安局補(bǔ)錄招聘警務(wù)輔助人員18人筆試歷年參考題庫(kù)附帶答案詳解
- 煙臺(tái)工程職業(yè)技術(shù)學(xué)院《財(cái)務(wù)共享理論與實(shí)務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 數(shù)據(jù)結(jié)構(gòu)英文教學(xué)課件:chapter10 Hashing
- 藍(lán)色卡通風(fēng)學(xué)生班干部競(jìng)選介紹PPT模板課件
- 人教新目標(biāo)英語(yǔ)九年級(jí)上冊(cè)單詞中文Units
- 機(jī)動(dòng)車(chē)牌證申請(qǐng)表格模板(完整版)
- 部編版小學(xué)語(yǔ)文三年級(jí)(下冊(cè))學(xué)期課程綱要
- 道路交通事故責(zé)任認(rèn)定行政復(fù)議申請(qǐng)書(shū)范例
- 高效液相含量測(cè)定計(jì)算公式
- 六宮格數(shù)獨(dú)解題技巧
- 公安機(jī)關(guān)通用告知書(shū)模板
- 工程款支付審批流程圖
- 人教版七年級(jí)歷史下冊(cè)第一單元填空題
評(píng)論
0/150
提交評(píng)論