無線通信系統(tǒng)課程設(shè)計_第1頁
無線通信系統(tǒng)課程設(shè)計_第2頁
無線通信系統(tǒng)課程設(shè)計_第3頁
無線通信系統(tǒng)課程設(shè)計_第4頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、西安郵電大學(xué)通信與信息工程學(xué)院無線通信系統(tǒng)課程設(shè)計報告( 2017 2018 學(xué)年 第一學(xué)期)實驗名稱:無線通信系統(tǒng)課程設(shè)計 _學(xué)生姓名:_專業(yè):_學(xué)號:_指導(dǎo)教師:_摘要溫濕度是生活生產(chǎn)中的重要的參數(shù)。本設(shè)計為基于單片機的溫濕度檢測系統(tǒng),采用模塊化、層次化設(shè)計。用新型的智能溫濕度傳感器DHT11主要實現(xiàn)對溫度、濕度的檢測,將溫度濕度信號通過傳感器進行信號的采集并轉(zhuǎn)換成數(shù)字信號,再運用單片機 STC89C52進行數(shù)據(jù)的分析和處理。然后將溫濕度數(shù)據(jù)通過 NRF24L01發(fā)送數(shù)據(jù),實現(xiàn)點對點或多點對點的無線通信。顯示部分采用 LCD1602液晶顯示所測溫濕度值。 系統(tǒng)電路簡單、集成度高、工作穩(wěn)定、

2、調(diào)試方便、檢測精度高,具有一定的實用價值。關(guān)鍵詞:單片機;溫濕度傳感器;無線通信目錄1.緒論.12.課程設(shè)計任務(wù)及要求 .22.1設(shè)計任務(wù) .22.2設(shè)計要求 .23.系統(tǒng)總體設(shè)計方案 .33.1方案論證 .33.2系統(tǒng)總體設(shè)計 .33.3工作原理 .44.系統(tǒng)硬件設(shè)計 . .54.1.系統(tǒng)整體設(shè)計 .54.2. 各單元電路設(shè)計 .55系統(tǒng)軟件設(shè)計 .105.1. 主程序流程設(shè)計 .115.2. 子程序設(shè)計 .156系統(tǒng)調(diào)試 .157總結(jié).178參考文獻 .189附錄.191. 緒論溫濕度的檢測與數(shù)據(jù)采集是工業(yè)生產(chǎn)過程必不可少的環(huán)節(jié)之一,在生產(chǎn)中, 溫濕度的高低對產(chǎn)品的質(zhì)量影響很大。 由于溫濕

3、度的檢測控制不當(dāng), 可能使我們導(dǎo)致無法估計的經(jīng)濟損失。為保證日常工作的順利進行, 首要問題是加強生產(chǎn)車間內(nèi)溫度與濕度的監(jiān)測工作,但傳統(tǒng)的方法過于粗糙,通過人工進行檢測,對不符合溫度和濕度要求的庫房進行通風(fēng)、去濕和降溫等工作。這種人工測試方法費時費力、效率低,且測試的溫度及濕度誤差大,隨機性大。目前,在低溫條件下 ( 通常指 100以下 ) ,溫濕度的測量已經(jīng)相對成熟。同時通過無線通信系統(tǒng)進行溫濕度數(shù)據(jù)的收發(fā), 能夠?qū)貪穸鹊臋z測距離拉長幾個數(shù)量級, 而且節(jié)約了布線開銷成本,利用新型單總線式數(shù)字溫度傳感器實現(xiàn)對溫度的測試與控制得到更快的開發(fā)。 但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、學(xué)習(xí)

4、、生活提供更好的更方便的設(shè)施就需要從數(shù)字單片機技術(shù)入手,一切向著數(shù)字化,智能化控制方向發(fā)展。對于國內(nèi)外對溫濕度檢測的研究,從復(fù)雜模擬量檢測到現(xiàn)在的數(shù)字智能化檢測越發(fā)的成熟,隨著科技的進步,現(xiàn)在的對于溫濕度研究,檢測系統(tǒng)向著智能化、小型化、低功耗的方向發(fā)展。在發(fā)展過程中,以單片機為核心的溫濕度控制系統(tǒng)發(fā)展為體積小、操作簡單、量程寬、性能穩(wěn)定、測量精度高,等諸多優(yōu)點在生產(chǎn)生活的各個方面實現(xiàn)著至關(guān)重要的作用。2. 課程設(shè)計任務(wù)及要求2.1 設(shè)計任務(wù)本課程設(shè)計的主要任務(wù)是使用以 STC89C52 芯片為數(shù)據(jù)處理與運算模塊, 使用 DHT11 溫濕度傳感器為采集數(shù)據(jù)模塊, 使用 NRF24L01 為數(shù)據(jù)

5、收發(fā)模塊, 實現(xiàn)溫濕度的采集與發(fā)送、接收功能。2.2 設(shè)計要求實現(xiàn)溫濕度數(shù)據(jù)的采集以及通過點對點或兩點對一點的通信來傳輸數(shù)據(jù)。濕度精度為± 5%RH,溫度± 2,量程濕度 20-90%RH,溫度 050。3. 系統(tǒng)總體設(shè)計方案3.1 方案論證本系統(tǒng)使用PCB作為電路板,核心器件是STC89C52芯片、 DHT11溫濕度傳感器以及NRF24L01。依靠 DHT11采集數(shù)據(jù)、 STC89C52處理數(shù)據(jù)、 NRF24L01傳輸數(shù)據(jù)實現(xiàn)采集溫濕度數(shù)據(jù)并無線傳輸至接收端的功能。系統(tǒng)電路簡單、集成度高、工作穩(wěn)定、調(diào)試方便、檢測精度高,具有一定的實用性。3.2 系統(tǒng)總體設(shè)計圖 3.1 系

6、統(tǒng)總體設(shè)計圖圖 3.1 為實現(xiàn)兩點對一點的溫濕度數(shù)據(jù)無線通信系統(tǒng)總設(shè)計圖。此系統(tǒng)分為三個子系統(tǒng),分別是左上角的發(fā)送端 1、右上角的發(fā)送端 2 和下方的接收端。每個子系統(tǒng)又分為三個模塊,分別是主芯片模塊、液晶顯示模塊以及溫濕度傳感器模塊。最后如有需要,還可以在接收端的輸出口連接 PC 上位機,以實現(xiàn)數(shù)據(jù)在 PC 上的處理。圖 3.2發(fā)射端程序流程圖圖 3.3接收端程序流程圖3.3 工作原理本系統(tǒng)是以STC89C52單片機為核心的一套多點溫濕度采集和無線傳輸系統(tǒng),由溫濕度采集、數(shù)據(jù)傳輸、數(shù)據(jù)處理三個部分組成,主要包括單片機系統(tǒng),無線傳輸系統(tǒng),電源電路,復(fù)位電路,溫濕度檢測,顯示系統(tǒng)等模塊。單片機

7、STC89C52是整個硬件電路的核心, 它一方面控制無線傳輸模塊NRF24L01發(fā)送、接受數(shù)據(jù);另一方面,將收到的數(shù)字溫濕度數(shù)據(jù)送到LCD1602顯示器顯示,可以直觀的看到測量點的溫濕度并進行監(jiān)測。整個系統(tǒng)的軟件設(shè)計是通過c 語言程序?qū)Πl(fā)射機、 接收機的 STC89C52編程來實現(xiàn)其控制功能。4. 系統(tǒng)硬件設(shè)計4.1. 系統(tǒng)整體設(shè)計圖 4.1 系統(tǒng)硬件總體結(jié)構(gòu)用新型的智能集成溫溫度傳感器DHT11主要實現(xiàn)檢測溫度、 濕度的檢測, 將溫度濕度信號通過傳感器進行信號的采集并轉(zhuǎn)換成數(shù)字信號,再運用單片機 STC89C52進行數(shù)據(jù)的分析和處理,之后一方面送入無線傳輸器件 NRF24L01進行信號的發(fā)送

8、,另一方面送入顯示器顯示;接收端則是通過 NRF24L01接收數(shù)據(jù)后送入 STC89C52后再送入顯示器顯示。4.2. 各單元電路設(shè)計溫濕度傳感器產(chǎn)品概述DHT11數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件, 并與一個高性能8 位單片機相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強、性價比極高等優(yōu)點。每個 DHT11傳感器都在極為精確的濕度校驗室中進行校準。校準系數(shù)以程序的形式儲存在OTP內(nèi)存中,傳感器內(nèi)部在檢測信號的處理過程中

9、要調(diào)用這些校準系數(shù)。單線制串行接口, 使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達20 米以上,使其成為各類應(yīng)用甚至最為苛刻的應(yīng)用場合的最佳選則。產(chǎn)品為4針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供。4.2.1.2引腳說明:引腳號引腳名稱類型引腳說明1VCC電源正電源輸入, 3V-5.5V DC2DATA輸出單總線,數(shù)據(jù)輸入 / 輸出引腳3NC空空腳,擴展未用4GND地電源地圖 4.2 DHT11 連接圖單片機 STC89C52STC89C52是一種低功耗、 高性能 CMOS八位微控制器, 具有 8K 在系統(tǒng)可編程 Flash 存儲器,使用 ATMEL公司高密

10、度非易失性存儲器技術(shù)制造,與工業(yè) 80C51產(chǎn)品指令和引腳完全兼容。片上 Flash 允許 ROM在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的 8 位 CPU和在系統(tǒng)可編程 Flash ,使其為眾多嵌入式控制應(yīng)用系統(tǒng)提供靈活的解決方案。STC89C52的功能以及引腳完全可以滿足本系統(tǒng)對于控制核心的要求,且其成本低, 應(yīng)用廣泛,相關(guān)技術(shù)的使用已經(jīng)很成熟,開發(fā)難度相對不高,所以,選擇其作為發(fā)射機、接收機的主控芯片。1U140P10VCC239P11P00338P12P01437P13P02536P14P03635P15P04734P16P05833P17P06932RESETP071 0

11、31P30/RXDEA/VP1 130P31/TXDALE/P1 229P32/INT0PSEN1 328P33/INT1P271 427P34/T0P261 526P35/T1P251 625P36W RP241 724P37/RDP231 823X2P221 922X1P212 021GNDP20STC8 9C5 2圖 4.3 STC89C52 引腳圖圖 4.4 單片機的復(fù)位與晶振電路無線模塊本系統(tǒng)設(shè)計采用無線方式向終端傳輸溫濕度數(shù)據(jù)。本系統(tǒng)無線輸模塊采用單片射頻收發(fā)芯片 NRF24L01。的管腳NRF24L01有 8 個引腳,各個引腳的具體說明如表4.1 所示。表 4.1 NRF24L0

12、1各個引腳說明管腳名稱管腳功能方向pin1VDD正電源輸入pin2CE工作模式選擇, RX或 TXIPin3CSNSPI 片選使能,低電平使能Ipin4SCKSPI 時鐘Ipin5MOSISPI 輸入Ipin6MISOSPI 輸出Opin7IRQ中斷輸出Opin8GND電源地?zé)o線傳輸模塊的硬件設(shè)計本系統(tǒng)中兩個發(fā)射機各有一個無線發(fā)射模塊,一個接收機含有一個無線接收模塊。由于 NRF24L01兼?zhèn)浒l(fā)送與接收功能,所以發(fā)射、接受模塊全部采用NRF24L01,與主機STC89C52的硬件連接也全部相同。 NRF24L01無線模塊直接與STC89C52連接,電路圖如圖4.5 所示。圖 4.5 NRF24

13、L01 無線模塊電路圖顯示模塊LCD1602液晶顯示是一種常用的顯示方式。 LCD1602顯示內(nèi)容十分豐富,能夠顯示字母,符號和數(shù)字等 192 種字符,且可同時顯示 16x2 個字符,滿足了本系統(tǒng)對于多組數(shù)據(jù)同時顯示的要求。顯示屏共有16 個引腳,節(jié)省了單片機的大量I/O 口,且電路連接簡單,容易焊接。此種顯示方式響應(yīng)也較快,亮度可調(diào),成本低,是顯示終端的最佳選擇。接收機收到溫濕度數(shù)據(jù)后,利用LCD1602顯示兩個監(jiān)測點A1、 A2 的溫濕度信息。LCD1602液晶顯示芯片采用標準的16 腳接口 , 其各個引腳及說明如表3.6 所示。表 4.2 LCD1602 各個引腳的說明編號符號引腳說明編

14、號符號引腳說明1VSS電源地9D2數(shù)據(jù) I/O2VDD電源正極10D3數(shù)據(jù) I/O3VL液晶顯示偏壓11D4數(shù)據(jù) I/O4RS數(shù)據(jù) / 命令選擇12D5數(shù)據(jù) I/O5R/W讀/ 寫選擇13D6數(shù)據(jù) I/O6E使能信號14D7數(shù)據(jù) I/O7D0數(shù)據(jù) I/O15BLA背光源正極8D1數(shù)據(jù) I/O16BLK背光源負極LCD1602電路連接圖如圖4.6 所示。圖 4.6 LCD1602 模塊電路圖5. 系統(tǒng)軟件設(shè)計5.1 主程序流程設(shè)計本系統(tǒng)由兩個發(fā)射機A1、 A2 與一個接收機B 組成,可以設(shè)計出發(fā)射機的總體程序流程圖和接收機的總體程序流程圖。發(fā)射機程序主要是溫濕度采集處理程序, NRF24L01發(fā)

15、送程序。接收機主要是數(shù)據(jù)接收程序,液晶顯示程序。發(fā)射機的總體軟件設(shè)計發(fā)送部分的總體設(shè)計思路為:初始化溫度傳感器 DHT11;傳感器測得溫濕度;把溫濕度值寫入待發(fā)射數(shù)據(jù); 初始化 NRF24L01無線模塊 ; 將溫濕度發(fā)送給接收機, 其流程圖如圖5.1 所示圖 5.1發(fā)射機程序流程圖接收機的總體軟件設(shè)計接收部分的總體設(shè)計思路是:初始化NRF24L01無線模塊和 LCD1602顯示模塊;接收溫濕度數(shù)據(jù);在LCD1602上分組顯示,其程序流程圖如圖5.2 所示。圖 5.2接收機程序流程圖5.2. 子程序設(shè)計溫濕度采集模塊軟件設(shè)計發(fā)射機利用 DHT11進行溫濕度采集, DATA引腳連接于 STC89C

16、52的P17口以進行數(shù)據(jù)傳輸。NRF24L01通過 DATA總線發(fā)送出的溫濕度數(shù)據(jù)分小數(shù)部分和整數(shù)部分, 共 40bit 。數(shù)據(jù)格式為: 8bit 濕度整數(shù)數(shù)據(jù) +8bit 濕度小數(shù)數(shù)據(jù) +8bi 溫度整數(shù)數(shù)據(jù) +8bit 溫度小數(shù)數(shù)據(jù) +8bit校驗。本系統(tǒng) DHT11的工作流程如下:開機后, DHT11處于低功耗模式,當(dāng)它檢測到STC89C52發(fā)送出的開始信號后,其轉(zhuǎn)換到高速模式,開始進行溫濕度采集,并以以上所說的數(shù)據(jù)格式發(fā)送至 STC89C52,然后進入低速模式。單片機可以選擇讀取溫濕度數(shù)據(jù)。DATA總線空閑狀態(tài)為高電平,DHT11接收到的開始信號必須是大于18ms的低電平,否則,DHT

17、11便無法視其為開始信號。 開始信號結(jié)束后, DHT11會發(fā)送 80us的低電平響應(yīng)信號。STC89C52發(fā)送開始信號后,需要等待20-40us ,然后讀取 DHT11回饋的低電平響應(yīng)信號。若讀取總線為低電平 , 則說明 DHT11收到了開始信號。 DHT11發(fā)送響應(yīng)信號后 , 再把總線拉高80us, 準備發(fā)送數(shù)據(jù) , 每一 bit 數(shù)據(jù)都以 50us低電平時隙開始 , 高電平的長短決定了數(shù)據(jù)位是 0還是 1。當(dāng)最后一 bit 數(shù)據(jù)傳送完畢后, DHT11拉低總線 50us, 隨后總線再次進入空閑狀態(tài)。根據(jù) DHT11與單片機的數(shù)據(jù)通信時序,可以設(shè)計出溫濕度采集處理的程序流程圖,如圖 5.3

18、所示。圖 5.3溫濕度采集程序流程圖無線傳輸模塊軟件設(shè)計發(fā)射機含有數(shù)據(jù)發(fā)射模塊,接收機含有數(shù)據(jù)接收模塊,兩種模塊都采用NRF24L01。所以在進行無線數(shù)據(jù)通信時,需要把發(fā)射機的NRF24L01配置為發(fā)射模式,把接收機的NRF24L01配置為接收模式。數(shù)據(jù)發(fā)送模塊軟件設(shè)計NRF24L01的發(fā)送模塊程序流程圖如圖5.4 所示。圖 5.4發(fā)送模塊程序流程圖數(shù)據(jù)接收模塊軟件設(shè)計接收機要想顯示溫濕度, 就必須要通過 NRF24L01接收兩個發(fā)射機發(fā)送的溫濕度數(shù)據(jù)。NRF24L01的接收模塊程序流程圖如圖5.5 所示。圖5.5接收模塊程序流程圖顯示模塊軟件設(shè)計顯示模塊軟件設(shè)計相對簡單,首先將LCD1602

19、初始化,然后 STC89C52通過數(shù)據(jù)傳輸端口 P0.0 P0.6向 LCD1602傳送溫濕度數(shù)據(jù)信息。若 LCD1602正確接收到數(shù)據(jù)信息,則顯示收到的溫濕度數(shù)據(jù)。延時 0.8S 后,重新開始讀取下一個時間段溫濕度數(shù)據(jù),進入循環(huán)。若 LCD1602讀取數(shù)據(jù)錯誤,則直接返回,重新讀取。程序流程圖如圖5.6 所示圖 5.6 LCD1602顯示模塊程序流程圖6. 系統(tǒng)調(diào)試整個系統(tǒng)的電路焊接完成后,開始進行整個系統(tǒng)的調(diào)試。在整個調(diào)試的過程中主要使用Keilvision5軟件和pz-isp軟件。首先對程序進行設(shè)計以及編譯。程序的編譯是一個很重要的過程,他是這整個系統(tǒng)關(guān)鍵。在編寫代碼的過程中,通過設(shè)計的

20、流程圖,按照自己的思路進行定義以及調(diào)用函數(shù),編譯調(diào)試可以讓我們清楚地認識到函數(shù)的調(diào)用順序以及函數(shù)的調(diào)用情況。并且我們可以通過調(diào)試發(fā)現(xiàn)其中的錯誤,并通過調(diào)試改正過來。通過不斷地對代碼進行調(diào)試,從而將設(shè)計完美的實現(xiàn)。程序編譯完成后利用pz-isp軟件把三個程序分別燒錄進發(fā)射機A 和接收機B的 STC89C52單片機中。完成后,對系統(tǒng)進行功能測試,測試流程如下。1. 啟動發(fā)射機A 和接收機B。如圖 6.1 所示。 A 的初始溫度21° C、濕度 54%圖6.1A、 B 初始溫濕度2. 將電烙鐵放在示。可以看到,A 的溫濕度傳感器A 采集點的溫度上升至DHT11 旁邊 , 接收機的液晶屏顯示

21、如圖6.222。濕度下降至46%RH。可知發(fā)射機所 A 工作正常,接收機能正常顯示溫濕度數(shù)據(jù),達到了本設(shè)計的對于無線采集某點溫濕度要求。圖 6.2 A 、 B 溫濕度發(fā)生改變綜上可知,本系統(tǒng)完整的實現(xiàn)了預(yù)設(shè)功能,本次設(shè)計制作成功。7. 總結(jié)本系統(tǒng)是基于51 單片機的多點溫濕度采集和無線傳輸系統(tǒng),由兩個發(fā)射模塊與一個接收模塊組成。發(fā)射機利用數(shù)字溫濕度傳感器DHT11 采集環(huán)境溫濕度數(shù)據(jù)并傳送給STC89C52單片機,單片機進行數(shù)據(jù)處理后利用無線傳輸模塊NRF24L01進行無線發(fā)送。接收模塊的 NRF24L01將接收到的數(shù)據(jù)傳給STC89C52單片機,最后用數(shù)字顯示屏LCD1602將經(jīng)過單片機處理

22、后的溫濕度數(shù)據(jù)顯示出來。本設(shè)計基于 51 單片機,能夠完成同時遠距離采集兩點溫濕度并在系統(tǒng)終端進行顯示的功能, 以達到監(jiān)測多點環(huán)境溫濕度的目的。 結(jié)果表明,本系統(tǒng)能夠方便、 高效、及時地測量出兩個采集點的溫濕度。 系統(tǒng)成本低,性能好,制作相對簡單。遠程測量能達到百米左右,基本滿足日常生活的測量要求??梢暂p松添加多個監(jiān)測點,程序移植性十分好。系統(tǒng)可擴展性也比較強,在此程序框架上添加其他模塊程序,并加入相應(yīng)的硬件,可以實現(xiàn)其他功能。如溫濕度異常報警功能,溫濕度自動調(diào)節(jié)功能。通過這次為期兩周的實習(xí), 不僅溫習(xí)了之前學(xué)習(xí)的電烙鐵焊錫絲的焊接技術(shù), 更通過學(xué)習(xí)系統(tǒng)的各個模塊電路原理圖,回顧了相關(guān)知識。同

23、時,對單片機軟件的編寫也是一種全新的學(xué)習(xí),溫故又知新。可以說此次的實習(xí)是從理論和實踐一舉兩得的實習(xí)。8. 參考文獻1 丁向榮,單片機應(yīng)用系統(tǒng)與開發(fā)技術(shù)項目教程,北京:清華大學(xué)出版社,20152 丁永紅 , 孫運強,基于 nRF2401的無線數(shù)傳系統(tǒng)設(shè)計,北京:國外電子測量技術(shù), 20083 魏立峰,王寶興 , 單片機原理與應(yīng)用技術(shù) , 北京:北京大學(xué)出版社, 20164 李文仲,段朝玉,短距離無線數(shù)據(jù)通信入門與實戰(zhàn),北京:北京航空航天大學(xué)出版社,20065 喻金錢 , 喻斌,短距離無線通信詳解 : 基于單片機控制,北京:北京航空航天大學(xué)出版社, 20099.附錄附錄 1:系統(tǒng)總體結(jié)構(gòu)電路原理圖

24、附錄 2:程序清單1. 發(fā)送端#include <reg52.h>#include <intrins.h>#include <stdio.h>#define uchar unsigned char#define uint unsigned int/dht接口sbit io= P1 7;/lcd接口typedefbit BOOL;sbit rs= P2 5;sbit rw= P2 6;sbit ep= P2 7;/nrf接口#define READ_REG0x00/讀寄存器指令#define WRITE_REG0x20/寫寄存器指令#define RD_RX_

25、PLOAD0x61/讀取接收數(shù)據(jù)指令#define WR_TX_PLOAD0xA0/寫待發(fā)數(shù)據(jù)指令#define FLUSH_TX0xE1/沖洗發(fā)送 FIFO指令#define FLUSH_RX0xE2/沖洗接收 FIFO指令#define REUSE_TX_PL0xE3#define NOP0xFF/*寄存器地址#define CONFIG0x00#define EN_AA0x01#define EN_RXADDR0x02#define SETUP_AW0x03#define SETUP_RETR0x04#define RF_CH0x05#define RF_SETUP0x06#define

26、 STATUS0x07#define OBSERVE_TX0x08#define CD0x09#define RX_ADDR_P00x0A#define RX_ADDR_P10x0B#define RX_ADDR_P20x0C#define RX_ADDR_P30x0D#define RX_ADDR_P40x0E#define RX_ADDR_P50x0F#define TX_ADDR0x10#define RX_PW_P00x11#define RX_PW_P10x12#define RX_PW_P20x13#define RX_PW_P30x14#define RX_PW_P40x15#d

27、efine RX_PW_P50x16#define FIFO_STATUS0x17#define TX_ADR_WIDTH5#define RX_ADR_WIDTH5#define TX_PLOAD_WIDTH 8 #define RX_PLOAD_WIDTH 8/ 定義重復(fù)裝載數(shù)據(jù)指令/ 保留*/ 配置收發(fā)狀態(tài), CRC 校驗?zāi)J揭约笆瞻l(fā)狀態(tài)響應(yīng)方式/ 自動應(yīng)答功能設(shè)置/ 可用信道設(shè)置/ 收發(fā)地址寬度設(shè)置/ 自動重發(fā)功能設(shè)置/ 工作頻率設(shè)置/ 發(fā)射速率、功耗功能設(shè)置/ 狀態(tài)寄存器/ 發(fā)送監(jiān)測功能/ 地址檢測/ 頻道 0 接收數(shù)據(jù)地址/ 頻道 1 接收數(shù)據(jù)地址/ 頻道 2 接收數(shù)據(jù)地址/ 頻道

28、 3 接收數(shù)據(jù)地址/ 頻道 4 接收數(shù)據(jù)地址/ 頻道 5 接收數(shù)據(jù)地址/ 發(fā)送地址寄存器/ 接收頻道 0 接收數(shù)據(jù)長度/ 接收頻道 1 接收數(shù)據(jù)長度/ 接收頻道 2 接收數(shù)據(jù)長度/ 接收頻道 3 接收數(shù)據(jù)長度/ 接收頻道 4 接收數(shù)據(jù)長度/ 接收頻道 5 接收數(shù)據(jù)長度/ FIFO棧入棧出狀態(tài)寄存器設(shè)置sbit SCK= P2 0;sbit MISO=P2 1 ;sbit IRQ= P2 2;sbit MOSI=P2 3 ;sbit CSN= P2 4;sbit CE= P3 7;uchar bdata sta;sbit MAX_RT= sta4 ;sbit TX_DS= sta 5;sbit

29、RX_DR= sta 6;ucharconstTX_ADDRESS TX_ADR_WIDTH = 0x34 , 0x43 , 0x10 , 0x10 , 0x01 ;/本地地址/ 主函數(shù)數(shù)據(jù)sbit LED= P3 5 ;uchar TxBuf 8;extern uchar RH,RL,TH,TL;/ 延時模塊 1voiddelay_us( uint i)/誤差0usuchar a, b, c ;for( c =i ; c > 0 ; c -)for( b = 1; b >0 ; b-)for( a = 32 ; a> 0 ; a -);voiddelay( uchar ms

30、)uchar iwhile;( ms-)for( i = 0; i <250 ; i +);voiddelay1()/延時10usuchar i;i-;i-;i-;i-;i-;i-;voidlongdelay( uchar s)/長延時while( s -)d elay(60);/ 延時模塊 2voidDelay_t( uint j uchar i;for(;j > 0 ; j -)for( i = 0; i <27 ; i +);voiddelay2( uint z)uint x, y ;for( x =z ; x > 0 ; x -)for( y = 110 ; y

31、 > 0; y -);/lcd模塊BOOL lcd_bz()/測試LCD 忙碌狀態(tài)rsepepBOOL result;=0;rw=1;=1;result=( BOOL)(=0;returnresult;P0& 0x80);voidwrite_cmd( uchar cmd) /寫指令while( lcd_bz ();rs=0;rw=0;ep=0;P0= cmd ;ep=1;ep=0;voidwrite_addr( uchar addr) /寫地址write_cmd( addr| 0x80);/“位或”,讓addr的bit7強制賦值為1 然后傳入函數(shù)0x80=10000000Dvoi

32、dwrite_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_cmd( 0x01);delay( 1);write_cmd( 0x06);delay( 1);write_cmd( 0x0c);delay( 1);voiddisplay( uchar addr, uchar q) /在某一地址上顯示一字節(jié)delay(10);write_add

33、rwrite_bytelongdelay( addr );( q);( 2);/dht模塊uchar data_byte;uchar RH, RL , TH , TL ;uchar receive_byte () /接收一個字節(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 )t emp= 1 ;count= 2;while( io )&&am

34、p; count+);if( count= 1 )break;data_byte<<= 1 ;data_byte|= temp ;returndata_byte;voidreceive() /接收數(shù)據(jù)uchar 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)信號count=2 ;while(!io )&& count+);/DHT

35、11高電平count= 2;while( io )&& count+);R_H=receive_byte();R_L =receive_byte();T_H =receive_byte();T_L =receive_byte();check= receive_byte();io = 1;num_check=R_H+ R_L + T_H +T_L ;if( num_check= check)80us是否結(jié)束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 ; bi

溫馨提示

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

評論

0/150

提交評論