基于單片機(jī)的無線溫度采集報(bào)警系統(tǒng)設(shè)計(jì)_第1頁
基于單片機(jī)的無線溫度采集報(bào)警系統(tǒng)設(shè)計(jì)_第2頁
基于單片機(jī)的無線溫度采集報(bào)警系統(tǒng)設(shè)計(jì)_第3頁
基于單片機(jī)的無線溫度采集報(bào)警系統(tǒng)設(shè)計(jì)_第4頁
基于單片機(jī)的無線溫度采集報(bào)警系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上基于單片機(jī)的無線溫度采集報(bào)警系統(tǒng)設(shè)計(jì) 基于單片機(jī)的無線溫度采集報(bào)警系統(tǒng)設(shè)計(jì) 基于單片機(jī)的無線溫度采集報(bào)警系統(tǒng)設(shè)計(jì) 摘 要 本文所介紹的是一種采用單總線數(shù)字式溫度傳感器DS18B20、AT89C52單片機(jī)、1620LCM液晶顯示器、數(shù)碼管及nRF24L01無線收發(fā)一體模塊組成的新型溫度無線采集報(bào)警系統(tǒng),并使用數(shù)碼管顯示器將所采集溫度在采集端顯示,并無線傳輸?shù)浇邮漳K用1620LCM液晶顯示器顯示出來。 該系統(tǒng)以 AT89C52單片機(jī)為控制核心,利用新型一線制溫度傳感器 DS18B20測(cè)量溫度值以及高可靠無線收發(fā)模塊nRF24L01實(shí)現(xiàn)環(huán)境溫度的無線采集和報(bào)警。 系統(tǒng)測(cè)溫

2、范圍為-50+120,測(cè)量精度為 0.5。 用戶可以通過按鍵K0、K1、K2、K3隨時(shí)自定義報(bào)警上、下限值,一旦溫度超過極限值,接收端單片機(jī)便啟動(dòng)報(bào)警系統(tǒng)。 該系統(tǒng)精度高、測(cè)溫范圍廣、報(bào)警及時(shí),可廣泛應(yīng)用于基于單片機(jī)的溫度無線采集報(bào)警場(chǎng)合。 關(guān)鍵詞:AT89C52單片機(jī);無線溫度采集;DS18B20;nRF24L01無線傳輸 19 Abstract This article introduced a new temperature wireless acquisition alarm system .It consist a single bus digital temperature sen

3、sor DS18B20, AT89S52 SCM, 1620 LCM LCD monitor, digital pipe and nRF24L01 wireless transceiver module . It use digital tube display temperature in the collection and the temperature that wireless transmission to receiving module with 1620 LCM LCD display. this system use AT89S52 SCM as control core,

4、 use the new a wire temperature sensor DS18B20 measuring temperature and high reliable wireless transceiver module nRF24L01 realize environmental temperature wireless data collection and alarm. Temperature measurement system for-50 scope+ 120 , measuring precision of 0.5 . The user can through the k

5、ey K0, K1, K2, K3 custom alarm at any time, and have lower limit, once the temperature over limit, the receiver single-chip microcomputer start alarm system. The system have high precision, temperature measuring range, alarm in time, and can be widely used in the temperature of the acquisition based

6、 on single chip wireless alarm occasion. Keywords: AT89S52 SCM; Wireless temperature gathering; DS18B20; NRF24L01 目 錄 摘 要I AbstractII 1 概述1 1.1 選題意義1 1.2 設(shè)計(jì)功能要求1 1.3 整體方案論證1 1.4 無線數(shù)據(jù)采集器系統(tǒng)框圖3 2 溫度無線采集報(bào)警系統(tǒng)的主要元件介紹4 2.1 溫度測(cè)量傳感器DS18B20的介紹4 2.1.1 DS18B20概述4 2.1.2 內(nèi)部結(jié)構(gòu)5 2.1.3 DS18B20通信協(xié)議6 2.1.4 溫度數(shù)據(jù)的計(jì)算處理方法

7、7 2.2 無線發(fā)射模塊nRF24L01介紹7 2.2.1 概述7 2.2.2 工作模式8 2.2.3 SPI 指令及時(shí)序10 3 系統(tǒng)硬件電路設(shè)計(jì)11 3.1 AT89C52單片機(jī)最小系統(tǒng)11 3.2 溫度檢測(cè)模塊電路12 3.3 溫度顯示模塊電路12 3.4 發(fā)射電路模塊14 3.5 接收電路模塊14 4 系統(tǒng)軟件設(shè)計(jì)15 4.1 主程序15 4.2 子程序16 5 結(jié)論19 參考文獻(xiàn)21 附錄一22 附錄二24 附錄三25 致 謝43 1 概述 1.1 選題意義 溫度是工業(yè)、農(nóng)業(yè)生產(chǎn)中常見和最基本的參數(shù)之一,由于有些場(chǎng)合生產(chǎn)環(huán)境惡劣,工作人員不能長(zhǎng)時(shí)間停留在現(xiàn)場(chǎng)觀察設(shè)備是否運(yùn)行正常,就需

8、要無線采集數(shù)據(jù)并傳輸數(shù)據(jù)到一個(gè)環(huán)境相對(duì)好的操控室內(nèi),這樣就會(huì)產(chǎn)生數(shù)據(jù)傳輸問題。 由于廠房大、需要傳輸數(shù)據(jù)多,使用傳統(tǒng)的有線數(shù)據(jù)傳輸方式就需要鋪設(shè)很多很長(zhǎng)的通訊線,浪費(fèi)資源,占用空間,可操作性差,出現(xiàn)錯(cuò)誤換線困難。 而且,當(dāng)數(shù)據(jù)采集點(diǎn)處于運(yùn)動(dòng)狀態(tài)、所處的環(huán)境不允許或無法鋪設(shè)電纜時(shí),數(shù)據(jù)甚至無法傳輸,此時(shí)便需要利用無線傳輸?shù)姆绞竭M(jìn)行數(shù)據(jù)采集。 在現(xiàn)實(shí)生活中,這種無線溫度采集系統(tǒng)已經(jīng)被成功應(yīng)用于工農(nóng)業(yè)、環(huán)境監(jiān)測(cè)、軍事國防、機(jī)器人控制等許多重要領(lǐng)域,而且類似于這種溫度采集系統(tǒng)的無線通信網(wǎng)絡(luò)已經(jīng)被廣泛的應(yīng)用到民用和軍事領(lǐng)域。 凡是布線繁雜或不允許布線的場(chǎng)合都希望能通過無線方案來解決。 為此,需要設(shè)計(jì)相應(yīng)

9、的接口系統(tǒng),控制這些射頻芯片工作,完成可靠穩(wěn)定的無線數(shù)據(jù)通信,這樣的研究也變得更加有意義。 1.2 設(shè)計(jì)功能要求 (1)能夠檢測(cè)溫度傳感器DS18B20的狀態(tài)。 (2)收發(fā)端都能夠顯示溫度數(shù)據(jù),以比較無線傳輸?shù)恼_性。 (3)無線傳輸50m左右。 (4)能夠提供高低溫報(bào)警,且能設(shè)定高低溫報(bào)警值。 1.3 整體方案論證 根據(jù)各項(xiàng)功能的實(shí)現(xiàn)方法以及硬件連接方式,將整個(gè)系統(tǒng)劃分為三大模塊:溫度數(shù)據(jù)采集模塊,顯示模塊,無線通信模塊。 主要是對(duì)溫度數(shù)據(jù)采集模塊,無線通信模塊做出方案選擇。 (1) 溫度數(shù)據(jù)采集模塊 在日常生活及工農(nóng)業(yè)生產(chǎn)中,經(jīng)常要用到溫度的無線采集及控制,傳統(tǒng)的測(cè)溫元件有熱電偶和熱電阻。

10、 而熱電偶和熱電阻測(cè)出的一般都是電壓,再轉(zhuǎn)換成對(duì)應(yīng)的溫度,需要比較多的外部硬件支持。 方案一:采用熱敏電阻,價(jià)格比較便宜,但熱敏電阻精度低,可靠性不好。 用溫度傳感器如LM35,其輸出的是模擬信號(hào),需經(jīng)過A/D轉(zhuǎn)換后才能送人單片機(jī)。 這樣電路較復(fù)雜,不易進(jìn)行多點(diǎn)溫度測(cè)量,其軟件設(shè)計(jì)也比較難設(shè)計(jì)。 方案二:采用單總線溫度傳感器DS18B20,輸出信號(hào)全數(shù)字化,便于控制,省去傳統(tǒng)的測(cè)溫方法的很多外圍電路,且該芯片物理化學(xué)特性很穩(wěn)定,它能用于工業(yè)測(cè)溫元件。 DS18B20最大的特點(diǎn)是采用了單總線的數(shù)據(jù)傳輸,測(cè)溫系統(tǒng)的電路就比較簡(jiǎn)單,體積不大。 而且很容易實(shí)現(xiàn)多點(diǎn)溫度測(cè)量。 (2) 無線通信模塊 方案

11、一:采用F05P+J04V組成的低成本的無線收發(fā)模塊,價(jià)格比較便宜,但對(duì)基帶信號(hào)有較高要求,對(duì)無線收發(fā)的布局布線也有一定的要求且可靠性比較低。 需要加上一部分外圍電流才能實(shí)現(xiàn)收發(fā)功能。 方案二:采用NRF24L01+作為無線收發(fā)模塊,由于其高可靠性的數(shù)據(jù)收發(fā)和極低的電流消耗,已經(jīng)廣泛使用于各種無線數(shù)據(jù)通信。 NRF24L01+把所有外圍電路都集成在一塊PCB板上,因此外圍電路簡(jiǎn)單,軟件設(shè)計(jì)只需遵循一定的時(shí)序,也比較簡(jiǎn)單。 本設(shè)計(jì)溫度數(shù)據(jù)采集模塊和無線通信模塊都采用方案二。 (3)顯示模塊 方案一:由HD44100驅(qū)動(dòng)的LCD顯示屏來實(shí)現(xiàn)溫度的顯示。 本系統(tǒng)的按鍵功能主要有查看溫度數(shù)據(jù)信息和設(shè)置

12、溫度報(bào)警值,以及其它系統(tǒng)信息顯示切換。 顯示內(nèi)容更豐富,單片機(jī)控制LCM模塊時(shí),只要送人相應(yīng)的命令和數(shù)據(jù)就可實(shí)現(xiàn)所需要的內(nèi)容,這種模塊與單片機(jī)接口簡(jiǎn)單,使用靈活方便。 方案二:用七段數(shù)碼管和按鍵來做人機(jī)交互界面,優(yōu)點(diǎn)是價(jià)格便宜,程序簡(jiǎn)單,缺點(diǎn)是硬件電路復(fù)雜,不方便同時(shí)顯示溫度以及其它系統(tǒng)信息,界面表達(dá)不能滿足要求。 從上述兩個(gè)方案的對(duì)比中看出,發(fā)送端選擇方案一以作比較,接收端選擇方案二,使顯示信息更豐富。 1.4 無線數(shù)據(jù)采集器系統(tǒng)框圖 本溫度無線采集報(bào)警電路設(shè)計(jì)采用美國DALLAS半導(dǎo)體公司生產(chǎn)的溫度傳感器DS18B20作為溫度檢測(cè)元件,測(cè)溫范圍為-55125,最高分辨率可達(dá)0.0625。

13、發(fā)射與接收電路采用Nordic公司生產(chǎn)的NRF24L01+作為發(fā)射與接收元件,傳輸距離可達(dá)100m。 DS18B20可以直接讀出被測(cè)溫度值,而且采用三線制與單片機(jī)相連,減少了外部的硬件電路,具有低成本和易使用的特點(diǎn),NRF24L01+具有自動(dòng)重發(fā)功能、數(shù)據(jù)包識(shí)別及CRC校驗(yàn)功能,增強(qiáng)型ShockBurstTM模式可同時(shí)控制應(yīng)答及重發(fā)功能而無需增加MCU的工作量。 按照系統(tǒng)設(shè)計(jì)功能的要求,確定系統(tǒng)由6個(gè)模塊組成:主控制器、測(cè)溫電路、發(fā)送電路、接收電路、顯示電路和報(bào)警電路。 溫度無線采集報(bào)警系統(tǒng)結(jié)構(gòu)框圖如圖1所示 顯示 電路 掃描 電路 DS18B20 STC89C52 主 控 制 器 發(fā)射電路

14、接收電路 報(bào)警 電路 STC89C52 主 控 制 器 顯示 電路 圖1 溫度無線采集報(bào)警系統(tǒng)結(jié)構(gòu)框圖 2 溫度無線采集報(bào)警系統(tǒng)的主要元件介紹 2.1 溫度測(cè)量傳感器DS18B20的介紹 2.1.1 DS18B20概述 (1)引腳如圖2 圖2 DS18B20封裝及引腳排列圖 GND接地。 DQ為數(shù)字信號(hào)輸入輸出端。 VDD為外接電源輸入端(在寄生電源接線方式時(shí)接地) (2)DS18B20與單片機(jī)的連接方式 單線數(shù)字溫度傳感器DS18B20與單片機(jī)連接電路非常簡(jiǎn)單,引腳1接地(GND),引腳3(VCC)接電源+5V,引腳2(DQ)接單片機(jī)輸入輸出一個(gè)端口,電壓+5V和信號(hào)線(DQ)之間接有一個(gè)4

15、.7k的電阻。 由于每片DS18B20含有唯一的串行數(shù)據(jù)口,所以在一條總線上可以掛接多個(gè)DS18B20芯片。 2.1.2 內(nèi)部結(jié)構(gòu) DS18B20采用3腳PR35封裝或8腳SOIC封裝,其內(nèi)部結(jié)構(gòu)框圖3 64位ROM的位結(jié)構(gòu)如圖4。 開始位是產(chǎn)品類型的編號(hào);接著是每個(gè)器件的唯一序號(hào),共有48位;最后8位是前面56位的CRC檢驗(yàn)碼,這也是多個(gè)DS18B20可以采用單線進(jìn)行通信的原因。 非易失性溫度報(bào)警觸發(fā)器TH和TL,可通過軟件寫入用戶報(bào)警上下限數(shù)據(jù)。 圖3 DS18B20內(nèi)部結(jié)構(gòu)圖 8位檢驗(yàn)CRC 48位序列號(hào) 8位工廠代碼 MSB LSB MSB LSB MSB LSB 圖4 64位ROM結(jié)

16、構(gòu)圖 DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的E2PROM。 高速暫存RAM的結(jié)構(gòu)為9字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖5。 前2字節(jié)包含測(cè)得的溫度信息。 第3和4字節(jié)是TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。 第5字節(jié)為配置寄存器, 高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。 第9字節(jié)是前面所有8字節(jié)的CRC碼可用來檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。 溫度LSB 溫度MSB TH用戶字節(jié)1 TL用戶字節(jié)2 配置寄存器 保留 保留 保留 CRC 圖5 高速暫存RAM結(jié)構(gòu)圖 1字節(jié) 2字節(jié) 3字節(jié) 4字節(jié) 5字節(jié) 6字節(jié) 7字節(jié) 8字

17、節(jié) 9字節(jié) 當(dāng)DS18B20接收到轉(zhuǎn)化命令后,開始啟動(dòng)轉(zhuǎn)化。 轉(zhuǎn)化完成后的溫度值就以16位的帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存RAM的第1、2字節(jié)中。 單片機(jī)可以通過單線接口讀出該數(shù)據(jù)。 讀數(shù)據(jù)時(shí),低位在先,高位在后,數(shù)據(jù)格式以0.0625LSB形式表示。 DS18B20完成溫度轉(zhuǎn)化后,就把測(cè)得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較,若TTH或TTL,則將該器件內(nèi)的報(bào)警標(biāo)志位置位,并對(duì)主機(jī)發(fā)出的報(bào)警搜索命令作出響應(yīng)。 因此,可用多只DS18B20同時(shí)測(cè)量溫度并進(jìn)行報(bào)警搜索。 2.1.3 DS18B20通信協(xié)議 在對(duì)DS18B20進(jìn)行讀寫編程時(shí),必須嚴(yán)格保證讀寫時(shí)序,否則將無法讀取溫

18、度結(jié)果。 根據(jù)DS18B20通信協(xié)議,主機(jī)控制DS18B20完成溫度轉(zhuǎn)化必須經(jīng)過3個(gè)步驟:每一次讀寫之前都要對(duì)DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。 復(fù)位要求主CPU將數(shù)據(jù)線下拉500us,然后釋放,DS18B20收到信號(hào)后等待1660us,然后發(fā)出60240us的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。 DS18B20的ROM指令如表1,RAM指令如表2。 表1 ROM指令表 指 令 約定代碼 功 能 溫度變化 44H 啟動(dòng)DS18B20進(jìn)行溫度轉(zhuǎn)換,12位轉(zhuǎn)換時(shí)最長(zhǎng)為750ms(9位為93.75ms),結(jié)果存入

19、內(nèi)部9字節(jié)RAM中 讀暫存器 0BEH 讀內(nèi)部RAM中9字節(jié)的內(nèi)容 寫暫存器 4EH 發(fā)出向內(nèi)部RAM的3、4字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟該命令之后是傳送兩字節(jié)的數(shù)據(jù) 復(fù)制暫存器 48H 將RAM中第3、4字節(jié)的內(nèi)容復(fù)制到E2PROM中 重調(diào)E2PROM 0B8H 將E2PROM中內(nèi)容恢復(fù)到RAM中的第3、4字節(jié) 讀供電方式 0B4H 讀DS18B20的供電模式。 寄生供電時(shí)DS18B20發(fā)送0,外接電源供電DS18B20發(fā)送1 表2 RAM指令表 指 令 約定代碼 功 能 讀ROM 33H 讀取DS18B20溫度傳感器ROM中的編碼(即64位地址) 符合ROM 55H 發(fā)出命令之后,接著

20、發(fā)出64位ROM編碼,訪問單總線上與該編碼對(duì)應(yīng)的DS18B20,使之作出響應(yīng),為下一步對(duì)該DS18B20讀寫作準(zhǔn)備 搜索ROM 0F0H 用于確定掛接在同一總線上DS18B20的個(gè)數(shù)和識(shí)別64位ROM地址,為操作各器件作好準(zhǔn)備 跳過ROM 0CCH 跳過ROM工作 報(bào)警搜索命令 0ECH 執(zhí)行后只有溫度超過設(shè)定值上限或下限的芯片才能作出響應(yīng) 2.1.4 溫度數(shù)據(jù)的計(jì)算處理方法 從DS18B20讀取出的二進(jìn)制值必須先轉(zhuǎn)化成十進(jìn)制值,才能用于字符的顯示。 DS18B20的轉(zhuǎn)換精度為912位可選,為了提高精度采用12位。 在采用12位轉(zhuǎn)換精度時(shí),溫度寄存器里的值是以0.0625為步進(jìn)的,即溫度值為溫

21、度寄存器里的二進(jìn)制值乘以0.0625,就是實(shí)際的十進(jìn)制溫度值。 通過列舉觀察可以發(fā)現(xiàn),一個(gè)十進(jìn)制值與二進(jìn)制值間有很明顯的關(guān)系,就是把二進(jìn)制的高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一個(gè)字節(jié),這個(gè)字節(jié)的二進(jìn)制值化為十進(jìn)制值后,就是溫度值的百、十、個(gè)位值,而剩下的低字節(jié)的低半字節(jié)化成十進(jìn)制后,就是溫度值的小數(shù)部分。 因?yàn)樾?shù)部分是半字節(jié),所以二進(jìn)制值范圍是0F,轉(zhuǎn)化成十進(jìn)制小數(shù)值就是0.0625的倍數(shù)(015倍)。 這樣需要4位的數(shù)碼管來顯示小數(shù)部分。 實(shí)際應(yīng)用不必有這么高的精度,采用一位數(shù)碼管來顯示小數(shù),可以精確到0.1。 表3就是二進(jìn)制與十進(jìn)制的近似對(duì)應(yīng)關(guān)系表。 表3 小數(shù)部分二進(jìn)制與十進(jìn)制的近

22、似對(duì)應(yīng)關(guān)系表 小數(shù)部分二進(jìn)制值 0 1 2 3 4 5 6 7 8 9 A B C D E F 十進(jìn)制值 0 0 1 1 2 3 3 4 5 5 6 6 7 8 8 9 2.2 無線發(fā)射模塊nRF24L01介紹 2.2.1 概述 nRF24L01 是一款工作在2.42.5GHz 世界通用ISM 頻段的單片無線收發(fā)器芯片。 無線收發(fā)器包括:頻率發(fā)生器、增強(qiáng)型SchockBurstTM 模式控制器、功率放大器、晶體振蕩器、調(diào)制器、解調(diào)器。 輸出功率、頻道選擇和協(xié)議的設(shè)置可以通過SPI 接口進(jìn)行設(shè)置。 極低的電流消耗:當(dāng)工作在發(fā)射模式下發(fā)射功率為-6dBm 時(shí)電流消耗為9mA,接收模式時(shí)為12.3m

23、A。 掉電模式和待機(jī)模式下電流消耗更低。 實(shí)物及模塊如圖6。 圖6 nRF24L01實(shí)物 nRF2401及其外圍電路如圖7,包括nRF2401芯片部分、穩(wěn)壓部分、晶振部分、天線部分。 電壓VDD經(jīng)電容C1、C2、C3處理后為芯片提供工作電壓;晶振部分包括Y1、C9、C10,晶振Y1允許值為:4MHz、8MHz、12 MHz、16 MHz,如果需要1Mbps的通信速率,則必須選擇16MHz晶振。 天線部分包括電感L1、L2,用來將nRF2401芯片ANT1、ANT2管腳產(chǎn)生的2.4G電平信號(hào)轉(zhuǎn)換為電磁波信號(hào),或者將電磁波信號(hào)轉(zhuǎn)換為電平信號(hào)輸入芯片的ANT1、ANT2管腳。 圖7 nRF24L01

24、模塊電路 2.2.2 工作模式 nRF24L01 可以設(shè)置為以下幾種主要的模式如表4 表 4 模式設(shè)置 模式 PWR_UP PRIM_RX CE FIFO寄存器狀態(tài) 接收模式 1 1 1 - 發(fā)送模式 1 0 1 數(shù)據(jù)在TXFIFO寄存器中 發(fā)送模式 1 0 10 停留在發(fā)送模式,直至數(shù)據(jù)發(fā)送完 待機(jī)模式II 1 0 1 TXFIFO為空 待機(jī)模式I 1 - 0 無數(shù)據(jù)傳輸 掉電模式 0 - - - nRF24L01 在不同模式下的引腳功能如表5 表5 引腳功能 引腳名稱 方向 發(fā)送模式 接收模式 待機(jī)模式 掉電模式 CE 輸入 高電平>10us 高電平 低電平 - CSN 輸入 SPI

25、片選使能,低電平使能 SCK 輸入 SPI時(shí)鐘 MOSI 輸入 SPI串行輸入 MISO 三態(tài)輸出 SPI 串行輸出 IRQ 輸出 中斷,低電平使能 nRF24L01 有如下幾種數(shù)據(jù)包處理方式: ShockBurstTM(與nRF2401,nRF24E1,nRF2402,nRF24E2 數(shù)據(jù)傳輸率為1Mbps 時(shí)相同)。 增強(qiáng)型ShockBurstTM 模式。 ShockBurstTM 模式 ShockBurst 模式下nRF24L01 可以與成本較低的低速M(fèi)CU 相連。 高速信號(hào)處理是由芯片內(nèi)部的射頻協(xié)議處理的,nRF24L01 提供SPI 接口,數(shù)據(jù)率取決于單片機(jī)本身接口速度。 Shock

26、Burst 模式通過允許與單片機(jī)低速通信而無線部分高速通信,減小了通信的平均消耗電流。 在ShockBurstTM 接收模式下,當(dāng)接收到有效的地址和數(shù)據(jù)時(shí)IRQ 通知MCU,隨后MCU 可將接收到的數(shù)據(jù)從RX FIFO 寄存器中讀出。 在ShockBurstTM 發(fā)送模式下,nRF24L01 自動(dòng)生成前導(dǎo)碼及CRC 校驗(yàn)。 數(shù)據(jù)發(fā)送完畢后IRQ 通知MCU。 減少了MCU 的查詢時(shí)間,也就意味著減少了MCU 的工作量同時(shí)減少了軟件的開發(fā)時(shí)間。 nRF24L01 內(nèi)部有三個(gè)不同的RX FIFO 寄存器(6 個(gè)通道共享此寄存器)和三個(gè)不同的TX FIFO 寄存器。 在掉電模式下、待機(jī)模式下和數(shù)據(jù)傳

27、輸?shù)倪^程中MCU 可以隨時(shí)訪問FIFO 寄存器。 這就允許SPI接口可以以低速進(jìn)行數(shù)據(jù)傳送,并且可以應(yīng)用于MCU 硬件上沒有SPI 接口的情況下。 增強(qiáng)型的ShockBurstTM 模式: 增強(qiáng)型ShockBurstTM 模式可以使得雙向鏈接協(xié)議執(zhí)行起來更為容易、有效。 典型的雙向鏈接為:發(fā)送方要求終端設(shè)備在接收到數(shù)據(jù)后有應(yīng)答信號(hào),以便于發(fā)送方檢測(cè)有無數(shù)據(jù)丟失。 一旦數(shù)據(jù)丟失,則通過重新發(fā)送功能將丟失的數(shù)據(jù)恢復(fù)。 增強(qiáng)型的ShockBurstTM 模式可以同時(shí)控制應(yīng)答及重發(fā)功能而無需增加MCU工作量。 nRF24L01 在接收模式下可以接收6路不同通道的數(shù)據(jù)。 每一個(gè)數(shù)據(jù)通道使用不同的地址,但

28、是共用相同的頻道。 也就是說6個(gè)不同的nRF24L01設(shè)置為發(fā)送模式后可以與同一個(gè)設(shè)置為接收模式的nRF24L01 進(jìn)行通訊,而設(shè)置為接收模式的nRF24L01 可以對(duì)這6 個(gè)發(fā)射端進(jìn)行識(shí)別。 數(shù)據(jù)通道0是唯一的一個(gè)可以配置為40 位自身地址的數(shù)據(jù)通道。 15 數(shù)據(jù)通道都為8位自身地址和32位公用地址。 所有的數(shù)據(jù)通道都可以設(shè)置為增強(qiáng)型ShockBurst 模式。 nRF24L01 在確認(rèn)收到數(shù)據(jù)后記錄地址,并以此地址為目標(biāo)地址發(fā)送應(yīng)答信號(hào)。 在發(fā)送端,數(shù)據(jù)通道0被用做接收應(yīng)答信號(hào),因此,數(shù)據(jù)通道0 的接收地址要與發(fā)送端地址相等以確保接收到正確的應(yīng)答信號(hào)。 nRF24L01配置為增強(qiáng)型的Sho

29、ckBurstTM 發(fā)送模式時(shí),只要MCU 有數(shù)據(jù)要發(fā)送,nRF24L01就會(huì)啟動(dòng)ShockBurstTM 模式來發(fā)送數(shù)據(jù)。 在發(fā)送完數(shù)據(jù)后nRF24L01 轉(zhuǎn)到接收模式并等待終端的應(yīng)答信號(hào)。 如果沒有收到應(yīng)答信號(hào), nRF24L01 將重發(fā)相同的數(shù)據(jù)包直到收到應(yīng)答信號(hào)或重發(fā)次數(shù)超過SETUP_RETR_ARC 寄存器中設(shè)置的值為止,如果重發(fā)次數(shù)超過了設(shè)定值,則產(chǎn)生MAX_RT 中斷。 只要收到確認(rèn)信號(hào),nRF24L01 就認(rèn)為最后一包數(shù)據(jù)已經(jīng)發(fā)送成功(接收方已經(jīng)收到數(shù)據(jù)),把TX FIFO中的數(shù)據(jù)清除掉并產(chǎn)生TX_DS 中斷(IRQ 引腳置高)。 2.2.3 SPI 指令及時(shí)序 SPI 接口

30、可能用到的指令在下面有所說明。 CSN 為低后SPI 接口等待執(zhí)行指令。 每一條指令的執(zhí)行都必須通過一次CSN 由高到低的變化。 參見表6。 表6 SPI 指令 指令名稱 指令格式 操作 R_REGISTER 000AAAAA 讀配置寄存器。 AAAAA指出讀操作的寄存器地址。 W_REGISTER 001AAAAA 寫配置寄存器。 AAAAA指出寫操作的寄存器地址只有在掉電模式和待機(jī)模式下可操作。 R_RX_PAYLOAD 讀RX有效數(shù)據(jù):1-32字節(jié)。 讀操作全部從字節(jié)0開始。 當(dāng)讀RX有效數(shù)據(jù)完成后,F(xiàn)IFO 寄存器中有效數(shù)據(jù)被清除。 應(yīng)用于接收模式下。 W_RX_PAYLOAD 寫TX

31、有效數(shù)據(jù):1-32字節(jié)。 寫操作從字節(jié)0開始。 應(yīng)用于發(fā)射模式下。 FLUSH_TX 清除TXFIFO寄存器,應(yīng)用于發(fā)射模式下。 FLUSH_RX 清除RXFIFO寄存器,應(yīng)用于接收模式下。 在傳輸應(yīng)答信號(hào)過程中不應(yīng)執(zhí)行此指令。 也就是說,若傳輸應(yīng)答信號(hào)過程中執(zhí)行此指令的話將使得應(yīng)答信號(hào)不能被完整的傳輸。 REUSE_TX_PL 重新使用上一包有效數(shù)據(jù)。 當(dāng)CE為高過程中,數(shù)據(jù)包被不斷的重新發(fā)射。 在發(fā)射數(shù)據(jù)包過程中必須禁止數(shù)據(jù)包重利用功能。 NOP 空操作。 可以用來讀狀態(tài)寄存器。 圖8、9給出了時(shí)序。 在寫寄存器之前一定要進(jìn)入待機(jī)模式或掉電模式。 在圖8 、9中用到了下面的符號(hào):Cn-SP

32、I 指令位,Sn-狀態(tài)寄存器位 Dn-數(shù)據(jù)位. 圖8 SPI 讀操作 圖9 SPI寫操作 3 系統(tǒng)硬件電路設(shè)計(jì) 3.1 AT89C52單片機(jī)最小系統(tǒng) 單片機(jī)的時(shí)鐘信號(hào)用來提供單片機(jī)片內(nèi)各種操作的時(shí)間基準(zhǔn),時(shí)鐘信號(hào)通常用兩種電路形式得到:內(nèi)部振蕩和外部振蕩。 MCS-51單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反向放大器,引腳XTAL1和XTAL2分別是此放大電器的輸入端和輸出端,由于采用內(nèi)部方式時(shí),電路簡(jiǎn)單,所得的時(shí)鐘信號(hào)比較穩(wěn)定,實(shí)際使用中常采用這種方式,在其外接晶體振蕩器(簡(jiǎn)稱晶振)或陶瓷諧振器就構(gòu)成了內(nèi)部振蕩方式,片內(nèi)高增益反向放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起可構(gòu)成一個(gè)自

33、激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。 圖10 晶振電路 圖10中外接晶體以及電容C2和C1構(gòu)成并聯(lián)諧振電路,它們起穩(wěn)定振蕩頻率、快速起振的作用,其值均為30PF左右,晶振頻率選12MHz。 為了初始化單片機(jī)內(nèi)部的某些特殊功能寄存器,必須采用復(fù)位的方式,復(fù)位后可使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初始狀態(tài)開始正常工作。 單片機(jī)的復(fù)位是靠外電路來實(shí)現(xiàn)的,在正常運(yùn)行情況下,只要RST引腳上出現(xiàn)兩個(gè)機(jī)器周期時(shí)間以上的高電平,即可引起系統(tǒng)復(fù)位,但如果RST引腳上持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。 復(fù)位后系統(tǒng)將輸入/輸出(I/O)端口寄存器置為FFH,堆棧指針SP置為07H, SBUF內(nèi)置為不定值,

34、其余的寄存器全部清0,內(nèi)部RAM的狀態(tài)不受復(fù)位的影響,在系統(tǒng)上電時(shí)RAM的內(nèi)容是不定的。 復(fù)位操作有兩種情況,即上電復(fù)位和手動(dòng)(開關(guān))復(fù)位。 本系統(tǒng)采用手動(dòng)復(fù)位方式。 圖中R1和C3組成手動(dòng)復(fù)位電路,其值R取為10K, C取為10F,如圖11。 圖11 復(fù)位電路 32 溫度檢測(cè)模塊電路 DS18B20可以采用兩種方式供電,一種是采用電源供電方式如圖12,此時(shí)DS18B20的1腳接地,2腳作為信號(hào)線,3腳接電源.另一種是寄生電源供電方式,為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電源,可用一個(gè)MOSFET管來完成對(duì)總線的上拉。 當(dāng)DS18B20處于寫存儲(chǔ)器操作和溫度A/D轉(zhuǎn)換時(shí),總線上必須

35、有強(qiáng)的上拉,上拉開啟時(shí)間最大為10微秒.采用寄生電源供電方式是VDD和GND端均接地.由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。 圖12 DS18B20接口電路 3.3 溫度顯示模塊電路 顯示部分由1602LCM及數(shù)碼管構(gòu)成。 接收端采用LCM1602點(diǎn)陣液晶作為人機(jī)交互界面。 該LCD模塊是由LCD驅(qū)動(dòng)器,LCD控制器、少量的電阻電容以及LCD屏組成,質(zhì)量輕、體積小、功耗低、顯示內(nèi)容豐富,提供。 此外,液晶顯示接口簡(jiǎn)單方便,可直接與微處理器相連,實(shí)時(shí)顯示采集所測(cè)試的溫度值。 當(dāng)實(shí)時(shí)溫度超過設(shè)定的報(bào)警溫度上、下限值,接收端由LCD顯示發(fā)送端傳來的溫度信息,并發(fā)出報(bào)警聲。 發(fā)射端采用數(shù)碼管

36、顯示,數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。 數(shù)碼管動(dòng)態(tài)顯示是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃“a,b,c,d,e,f,g,dp“的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,數(shù)碼管哪位顯示字形取決于單片機(jī)對(duì)位選通電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。 通過分時(shí)輪流控制各個(gè)數(shù)碼管的

37、的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。 在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。 本電路發(fā)射端由PNP三極管驅(qū)動(dòng)數(shù)碼管顯示溫度值,P2.4P2.7接數(shù)碼管的位選端,控制數(shù)碼管的動(dòng)態(tài)顯示。 發(fā)射端顯示電路如圖13,接收端顯示電路如圖14。 圖13 數(shù)碼管顯示電路 圖14 LCD顯示電路 3.4 發(fā)射電路模塊 發(fā)射功能由nRF24L01完成,其引腳MISO及MOSI與單片機(jī)進(jìn)行通信,單片機(jī)將溫度信息交給nRF24L01并以

38、(GFSK)的調(diào)制方式發(fā)送出去,如上圖15。 圖15 發(fā)射電路模塊 3.5 接收電路模塊 由nRF24L01收發(fā)一體芯片對(duì)溫度信號(hào)進(jìn)行接收解調(diào),將接收到溫度信息交由單片機(jī)進(jìn)行處理,單片機(jī)控制顯示器進(jìn)行溫度顯示,如上圖16。 圖16 接收電路模塊 4 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)程序主要包括發(fā)送主程序,接收端主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序,顯示數(shù)據(jù)刷新子程序,溫度比較子程序,按鍵掃描子程序,發(fā)送子程序和接收子程序等。 4.1 主程序 (1)發(fā)送端主程序 發(fā)送端主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)采集、讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1s進(jìn)行一次。 這樣可以在一

39、秒測(cè)量一次被測(cè)溫度,程序流程見圖17。 結(jié)束 DS18B20復(fù)位 讀取溫度 數(shù)據(jù)轉(zhuǎn)換 顯示 發(fā)送 開 始 圖17 發(fā)送端主程序流程圖 結(jié)束 LCD初始化 接收溫度信息 顯示 溫度值比較 開始 按鍵掃描 圖18 接收端主程序 (2)接收端主程序 接收端主程序主要完成數(shù)據(jù)接收,顯示,比較及報(bào)警。 其程序流圖見圖18。 4.2 子程序 (1)讀出溫度子程序 讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。 其程序流程圖如圖19所示。 開始 發(fā)跳過ROM命令 發(fā)讀取溫度命令 讀取操作 數(shù)據(jù)讀完 N 移入溫度寄存器 Y 結(jié)束 圖19 讀出溫度子程

40、序流程圖 (2)溫度轉(zhuǎn)換命令子程序 溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。 溫度轉(zhuǎn)換命令子程序流程圖如圖20所示。 發(fā)復(fù)位命令 發(fā)跳過ROM命令 發(fā)溫度轉(zhuǎn)換命令 結(jié)束 圖20 溫度轉(zhuǎn)換流程圖 (3)計(jì)算溫度子程序 計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖21所示。 開始 溫度零下? 溫度值取補(bǔ)碼置“” 小數(shù)位溫度BCD值 整數(shù)位溫度BCD值 結(jié)束 置“+” N Y 圖21 計(jì)算溫度流程圖 (4)顯示數(shù)據(jù)刷新子程序 顯示數(shù)據(jù)刷新子程序主要是對(duì)顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時(shí)將符號(hào)顯示位移入下一位。 程序流程圖如圖22所示。 溫度移入顯示寄存器 十位數(shù)0? 百位數(shù)0? 十位數(shù)顯示符號(hào)百位數(shù)不顯示 百位數(shù)顯示數(shù)據(jù)(不顯符號(hào)) 結(jié)束 N N Y Y 圖22 數(shù)據(jù)刷新子程序流程圖 (5)發(fā)射數(shù)據(jù)子程序 首先進(jìn)行初始化操作,初始化包括設(shè)置單片機(jī)IO和SPI相關(guān)寄存器兩部分其可以和nRF24L01

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論