版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 本科畢業(yè)設計(論文)</p><p><b> (2012屆)</b></p><p> 論文題目 基于NRF2401無線模塊的溫度采集 (英文) The temperature acquisition system based on NRF2401 wireless modules </p><
2、p> 所在學院 電子信息學院 </p><p> 專業(yè)班級 </p><p><b> 學生姓名 </b></p><p><b> 指導教師 </b></p><p> 完成日期 2012 年 </p&
3、gt;<p><b> 摘 要</b></p><p> 文章主要是介紹了一個基于NRF2401的點對點短距離無線溫度控制系統(tǒng)的設計思想和實現(xiàn)方法。系統(tǒng)以凌陽SPCE061A單片機作為主控制器,采用數(shù)字式溫度傳感器DS18B20采集數(shù)據(jù),用工作于2.4G波段的無線收發(fā)芯片nRF2401做無線傳輸,目的是實現(xiàn)短距離溫度的無線采集。在生活和工業(yè)應用中,該系統(tǒng)相對于其他溫度采集
4、系統(tǒng)來說,其優(yōu)點是機構簡單,并且解決了一些不允許人們直接采集系統(tǒng)的問題。該系統(tǒng)的可靠性高,數(shù)據(jù)傳輸速度快,功能易擴展,適用于多種應用領域。</p><p> 文章首先簡單介紹了無線溫度采集技術及無線收發(fā)芯片的發(fā)展近況,結合了系統(tǒng)方案的要求,論證了實現(xiàn)溫度數(shù)據(jù)采集與無線傳輸方案的設計思路及系統(tǒng)的總體架構,完成了各項功能相關的軟件設計以及系統(tǒng)的通信協(xié)議。系統(tǒng)主要分為兩部分,發(fā)射端和接收端。在工作過程中,溫度傳感器D
5、S18B20將采集的溫度通過主控芯片將數(shù)據(jù)傳輸給作為發(fā)射端的無線收發(fā)器NFR2401,并傳送給另外一個無線收發(fā)器NRF2401,通過LCD顯示出溫度值。在發(fā)射端,將溫度傳感器采集的溫度數(shù)據(jù)發(fā)送至接收端;在接收端,將收集到的數(shù)據(jù)通過液晶顯示器進行顯示。</p><p> 關鍵詞:凌陽單片機;無線收發(fā)器;DS18B20</p><p><b> Abstract</b>
6、;</p><p> The article is to introduce the design philosophy and its implementing method of a point-to-point short-range wireless temperature control system based on RNF2401 wireless modules . The system use
7、s Sunplus SPCE061A MCU as the master controller , digital temperature sensor DS18B20 collects data , uses wireless transceiver chip the NRF2401 that working in the 2.4G band do wireless transmission , to achieve collecti
8、ng temperature data of short distance wireless . In domestic and industrial applicat</p><p> Wireless temperature article first briefly describe the acquisition and development of wireless transceiver chip,
9、 combined with the system requirements, demonstration and implementation of temperature data acquisition and wireless transmission scheme design and the overall architecture of the system, complete the function of softwa
10、re design and systems of communication protocols. This system can be divided into two parts, the transmitter and the receiver. In the course of work, temperature senso</p><p> Key Words: Sunplus microcontro
11、ller ; wireless transceiver ; DS18B20</p><p><b> 目 錄</b></p><p><b> 1 引言1</b></p><p> 1.1 無線溫度采集技術簡介1</p><p> 1.2 數(shù)據(jù)采集技術發(fā)展1</p>&
12、lt;p> 1.3 課題研究主要內(nèi)容2</p><p><b> 2 總體設計3</b></p><p><b> 2.1系統(tǒng)方案3</b></p><p> 2.2 系統(tǒng)總體設計思路3</p><p> 2.2.1 核心控制電路3</p><p>
13、 2.2.2 溫度采集電路4</p><p> 2.2.3 顯示系統(tǒng)電路4</p><p> 2.2.4 無線收發(fā)電路4</p><p><b> 3 硬件設計6</b></p><p> 3.1 硬件連接6</p><p> 3.2 SPCE061A概述6</p&
14、gt;<p> 3.2.1 SPCE061A模塊結構7</p><p> 3.2.2 SPCE061A主要性能7</p><p> 3.3 無線模塊8</p><p> 3.4 溫度采集模塊9</p><p> 3.4.1 DS18B20簡介9</p><p> 3.4.2
15、 DS18B20工作原理11</p><p><b> 4 軟件設計12</b></p><p> 4.1軟件開發(fā)工具12</p><p> 4.2軟件主體部分及流程圖13</p><p> 4.2.1溫度采集原理框圖13</p><p> 4.2.2數(shù)據(jù)收發(fā)模塊18<
16、/p><p> 4.2.3 DS18B20的工作時序21</p><p> 5 制作和調(diào)試23</p><p> 5.1 硬件制作和調(diào)試23</p><p> 5.2 軟件制作和調(diào)試24</p><p><b> 6 結論26</b></p><p><
17、;b> 致 謝27</b></p><p><b> 參考文獻28</b></p><p> 附錄1 系統(tǒng)實物圖29</p><p> 附錄2 實驗原理圖30</p><p> 附錄3 源程序32</p><p><b> 1 引言<
18、/b></p><p> 1.1 無線溫度采集技術簡介</p><p> 隨著計算機網(wǎng)絡與通信技術、自動控制技術、微電子技術、檢測與傳感技術等的飛速發(fā)展和普及,計算機控制技術的不斷提高,在數(shù)據(jù)采集方面,數(shù)據(jù)采集卡、儀器放大器、數(shù)字信號處理芯片等技術的不斷升級和更新。數(shù)溫度據(jù)采集是工、農(nóng)業(yè)控制系統(tǒng)中的重要的性是不言而喻的。在醫(yī)藥、化工以及食品等多個領域的生產(chǎn)和發(fā)展中,總是要對每個生
19、產(chǎn)環(huán)節(jié)中的溫度參數(shù)進行檢測。與此同時,還要對隨機抽取的任一監(jiān)測點的任一參數(shù)進行查詢,并且將在一個較長時間段內(nèi)檢測到的溫度參數(shù)進行轉換后提取出來,這樣做的目的是為了便于比較,做出一個接近正確的決策,調(diào)整控制方案,總的一處是在提高產(chǎn)品合格率的同時能夠取得良好的經(jīng)濟效益。</p><p> 1.2 數(shù)據(jù)采集技術發(fā)展</p><p> 隨著工、農(nóng)業(yè)的發(fā)展,無線溫度采集系統(tǒng)得到了越來越多的應用,
20、為適應這一趨勢,無線溫度采集技術的研究也突顯了它的重要性。在科學研究中,運用無線采集系統(tǒng)可獲得大量的動態(tài)信息,這也是獲取科學數(shù)據(jù)重要手段之一??偠灾?,不論在哪個應用領域中,無線數(shù)據(jù)采集與處理直接影響工作效率和所取得的經(jīng)濟效益。</p><p> 從嚴格的意義上來說,數(shù)據(jù)采集系統(tǒng),應該是計算機控制的多路數(shù)據(jù)自動檢測或巡回檢測,能對數(shù)據(jù)實行存儲、處理、分析計算并從檢測的數(shù)據(jù)中提取可用的信息,供顯示、記錄、打印或描
21、繪的系統(tǒng)。 數(shù)據(jù)采集系統(tǒng)一般包括以下五個部分:數(shù)據(jù)輸入通道、數(shù)據(jù)存儲與管理、數(shù)據(jù)處理、數(shù)據(jù)輸出以及顯示。其中,數(shù)據(jù)輸入通道的實現(xiàn)目的是檢測、采樣以及對被測對象的進行信號轉換三大主要工作。數(shù)據(jù)存儲與管理將采集到的數(shù)據(jù)通過存儲器存儲后并在此基礎上建立對應的數(shù)據(jù)庫,并且對數(shù)據(jù)庫進行管理、篩選和調(diào)用。數(shù)據(jù)處理是針對最初采集的數(shù)據(jù),即原始數(shù)據(jù),刪除不必要的信息,例如干擾噪聲和無法反應檢測對象的信息,保留和提取能夠準確反應被測對象的相關信息
22、,對采集的數(shù)據(jù)做一個整體的統(tǒng)計和分析報告,方便檢索。數(shù)據(jù)輸出就是把數(shù)據(jù)恢復成原來物理量的形式,以可輸出的形態(tài)在輸出設備上輸出,例如打印、顯示、繪圖等。</p><p> 1.3 課題研究主要內(nèi)容</p><p> 本課題為基于NRF2401溫度采集系統(tǒng)設計。設計目的是利用NRF2401無線收發(fā)模塊實現(xiàn)系統(tǒng)間的無線通信。NRF2401具有成本低、低功率、節(jié)能等特點,這使得這一目的的實現(xiàn)順
23、暢不少。本系統(tǒng)分為兩部分,在工作過程中,溫度傳感器DS18B20采集溫度通過無線收發(fā)器NRF2401發(fā)射端傳送給無線收發(fā)器的接收端,并通過LCD顯示溫度值。該系統(tǒng)使用方便,在工業(yè)控制、消費電子等領域都具有較廣闊的應用前景。</p><p> 課題基于凌陽十六位單片機進行指令遙控,通過無線傳輸模塊進行數(shù)據(jù)傳輸和遙控。系統(tǒng)分兩部分:發(fā)射模塊和接收模塊。其中發(fā)射模塊由凌陽SPCE061A單片機控制模塊、NRF2401
24、無線傳輸模塊和DS18B20溫度采集模塊組成;接收模塊由凌陽SPCE061A單片機控制模塊、NRF2401無線接收模塊和顯示設備組成。</p><p> 在發(fā)射模塊處,由按鍵控制單片機,然后控制無線傳輸模塊發(fā)射相應數(shù)據(jù)至接收模塊處。接收模塊處,無線接收模塊接收信號,通過單片機控制模塊處理,然后控制各個模塊來完成相應的指令。</p><p><b> 2 總體設計</b&
25、gt;</p><p><b> 2.1系統(tǒng)方案</b></p><p> 本系統(tǒng)用單片機作為控制核心,接受來自ADC0809的數(shù)據(jù),處理后通過串口傳送,并完成采樣通道的選擇。在每次的采集過程中,所采集的參數(shù)數(shù)目、采樣點數(shù)、采樣速率、采樣精度都固定不變。單片機通過無線模塊發(fā)收數(shù)據(jù),在接收端通過單片機處理控制驅(qū)動顯示器顯示采集到的數(shù)據(jù)。系統(tǒng)以凌陽SPCE061A單片
26、機作為主控芯片,建立兩個主板,一塊作為發(fā)射端,一塊作為接收端。在發(fā)射端,將溫度傳感器采集的溫度數(shù)據(jù)發(fā)送。在接收端,將收集到的數(shù)據(jù)通過液晶顯示器進行顯示。</p><p> 2.2 系統(tǒng)總體設計思路</p><p> 設計一個短距離無線溫度采集設備,并且該電子設備可以把溫度通過LCD顯示出來。本短距離無線溫度系統(tǒng)主要由兩部分組成,系統(tǒng)框圖如圖1所示:</p><p&g
27、t; 圖2-1 整體系統(tǒng)原理框圖</p><p> 2.2.1 核心控制電路</p><p> 核心控制類芯片很多,比如89C51單片機、ARM等單片機。核心控制芯片的選擇對整個方案和外圍器件的選擇都有決定性的影響,因此,對于控制芯片的選擇,我們考慮得很慎重??紤]到芯片的性能和我們的熟悉情況,選擇了凌陽公司的SPCE061A單片機作為控制電路。首先我們對凌陽單片機非常熟悉,這樣也能
28、降低我們的設計難度,節(jié)省一些時間。其次這款單片機的工作速度較高,具有32位編程多功能I/O端口,2個16位定時器/計數(shù)器,內(nèi)置有16位乘法器。凌陽十六位單片機集成開發(fā)環(huán)境集軟件編輯編譯仿真鏈接在線編程在線調(diào)試等眾多功能于一體,具有友好的交互界面,程調(diào)試工作更加方便且高效,此外它的軟件仿真功能可以在不連接開發(fā)板的情況下模擬硬件的各項功能來調(diào)試程序。</p><p> 2.2.2 溫度采集電路</p>
29、<p> 本系統(tǒng)溫度采集部分采用溫度傳感器DS18B20。DS18B20 測溫系統(tǒng)具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點。DS18B20數(shù)字溫度傳感器接線方便,封裝后還可以應用于多種場合,如管道式、螺紋式、磁鐵吸附式、不銹鋼封裝式。封裝后的DS18B20可用于彈藥庫測溫、電纜溝測溫、機房測溫、高爐水循環(huán)測溫、鍋爐測溫、潔凈室測溫、農(nóng)業(yè)大棚測溫等各種非極限溫度場合。該溫度傳感器具有體積小、耐磨耐碰、使用方便
30、、封裝形式多樣等特點,適用于各種狹小空間設備的數(shù)字測溫和控制領域。</p><p> 2.2.3 顯示系統(tǒng)電路</p><p> 凌陽公司的SPCE061A單片機有相應配套的LCD顯示模塊SPLC501。SPLC501液晶顯示控制驅(qū)動器集行、列驅(qū)動器和控制器于一體,廣泛應用于小規(guī)模液晶顯示模塊。SPLC501單芯片液晶驅(qū)動,可以直接與其他為控制器接口總線相連。微控制器可以將顯示數(shù)據(jù)通過
31、8位數(shù)據(jù)總線或者串行接口寫到SPLC501的顯存中。內(nèi)置8580位顯示RAM。RAM中的一位數(shù)據(jù)控制液晶屏上的一個像素點的亮、暗狀態(tài)?!?”亮、“0”暗[1]。內(nèi)置晶振電路,也可以外接晶振。其工作溫度范圍為-40℃~+85℃。</p><p> 2.2.4 無線收發(fā)電路</p><p> 這里采用NRF2401是單片射頻收發(fā)芯片作為無線收發(fā)模塊,NRF2401芯片工作于2.4GHz全球
32、開放ISM頻段,125個頻道,滿足多點通信和跳頻通信需要,工作速率0~1Mb/s,最大發(fā)射功率0dBm,外圍元件極少,內(nèi)置硬件CRC(循環(huán)冗余校驗)和點對多點通信地址控制,集成了頻率合成器、晶體振蕩器和調(diào)制解調(diào)器[2],輸出功率和通信頻道可通過程序進行配置。這個芯片有一個很大的優(yōu)點就是能耗低,當以-5dBm的功率發(fā)射時,其運轉過程中產(chǎn)生的電流只有10.5mA,同樣的接收時運轉過程產(chǎn)生的電流也只有18mA。該芯片還有一個節(jié)能設計的優(yōu)點,可
33、以在多種低功率模式下工作。DuoCeiverTM技術的產(chǎn)生使得NRF2401用同一天線就能完成同時接收來自于兩個不同頻道的數(shù)據(jù)的任務。</p><p><b> 3 硬件設計</b></p><p> 本系統(tǒng)硬件主要由采集發(fā)送和接收顯示兩部分組成。</p><p><b> 3.1 硬件連接</b></p>
34、;<p> 基于NRF2401無線溫度采集系統(tǒng)由兩塊都有SPCE061A作為控制系統(tǒng)的電路板組成。</p><p> 發(fā)射模塊由DS18B20溫度采集模塊、SPCE061A、NRF2401無線模塊組成,它的硬件連接圖如圖3-1所示:</p><p> 圖3-1 發(fā)射模塊系統(tǒng)硬件連接圖</p><p> 接收模塊由SPCE061A、NRF240
35、1無線模塊、LCD組成,它的硬件連接圖如圖3-2所示:</p><p> 圖3-2 接收模塊系統(tǒng)硬件連接圖</p><p> 3.2 SPCE061A概述</p><p> SPCE061A是凌陽科技公司μ’nSP?系列產(chǎn)品中的16位微控制器芯片,內(nèi)置32K內(nèi)存,芯片具有較高的處理速度,能夠非常容易、快速地處理復雜的數(shù)字信號,適用于數(shù)字語音識別等應用領域。
36、在2.6V~3.6V工作電壓范圍內(nèi),SPCE061A的工作速度范圍為0.32MHz~49.152MHz,具備8通道10位ADC輸入功能,內(nèi)置的具有自動增益控制的麥克風輸入功能,雙通道10位DAC音頻輸出功能及A、B兩個I/O輸入輸出功能。其主要特點是:語音處理能力,A/D轉換功能,開發(fā)調(diào)試方便。</p><p> 3.2.1 SPCE061A模塊結構</p><p> 圖3-3所示為
37、SPCE061A的模塊結構圖。其主要模塊有并行I/O端口、模/數(shù)轉換ADC、數(shù)/模轉換DAC、存儲器RAM&FLASH、定時器/計數(shù)器T/C(脈寬調(diào)制輸出PWM)、WatchDog、異步串行通信口UART、指令寄存器IR、設備串行口SIO、低電壓檢測LVD(低電壓復位)等。</p><p> 圖3-3 SPCE061A模塊結構圖</p><p> 3.2.2 SPCE061
38、A主要性能</p><p> SPCE061A單片機的主要性能有:內(nèi)核采用μ’nSP?微處理器;工作電壓VDD為2.6~3.6V(CPU),I/O端口高電平VDDH為VDD~5.5V;CPU時鐘頻率為0.320~49.152MHz;具有可編程音頻處理功能;兩個16位可編程定時器/計數(shù)器;32位通用可編程輸入/輸出端A口和B口;內(nèi)置看門狗監(jiān)視器;內(nèi)置在線仿真(ICE,In-Circuit Emulator)接口。
39、</p><p><b> 3.3 無線模塊</b></p><p> NRF2401是NORDIC 公司最近生產(chǎn)的一款無線通信通信芯片,采用FSK 調(diào)制,內(nèi)部集成NORDIC 自己的Enhanced Short Burst 協(xié)議??梢詫崿F(xiàn)點對點或是1對6的無線通信。無線通信速度可以達到2M(bps)。</p><p> NRF2401芯
40、片,提供了一路的數(shù)據(jù)發(fā)送和兩路的數(shù)據(jù)接收功能。無線傳輸模組接口包括一排10Pin接口J1和一排3Pin的預留接口J2。J1為芯片的控制和通道1的收發(fā)通道,J2為通道2的預留接口,通常使用J1接口。</p><p> NRF2401A電路如圖 3-4:由NRF2401A芯片、晶振部分、穩(wěn)壓部分以及天線組成。Y1、C9、C10構成了晶振部分,晶振Y1允許值為:4MHz、8MHz、12 MHz、16 MHz,若需要1
41、Mbps的通信速率,應選擇16MHz晶振。穩(wěn)壓部分主要是通過電容C1、C2、C3處理電壓VDD,并為芯片提供工作電壓。電感L1、L2是構成天線的主要元件,NRF2401A芯片ANT1、ANT2管腳產(chǎn)生的2.4G電平信號通過它們轉換成為電磁波信號,或?qū)㈦姶挪ㄐ盘栟D換為電平信號傳送至芯片的ANT1、ANT2管腳。</p><p> 圖3-4 NRF2401電路圖</p><p> I/O
42、連接和功能描述如表3-5所示:</p><p><b> 表 3-5 </b></p><p> 單片機與NRF2401采用SPI接口方式,圖3-6為單片機向NRF2401發(fā)送數(shù)據(jù)的時序如圖進行交換數(shù)據(jù)。其他寫入命令和讀取NRF2401數(shù)據(jù)與圖3-4類似。</p><p> 圖3-6 單片機向NRF2401發(fā)送數(shù)據(jù)時序圖</p&g
43、t;<p> 上述兩種芯片中,NRF2401可直接接單片機串口,數(shù)據(jù)無需曼徹斯特編碼,而RF2915芯片不能直接接單片機串口,數(shù)據(jù)需要進行曼徹斯特編碼,效率相對較低。本次處理器是采用SPCE061A單片機,選用NRF2401效率較高。NRF2401的工作在2.4GHz的自由頻段,方便開發(fā),適用于生活中。而且NRF2401是無線模塊中體積較小、能耗較少、外圍元件最少的低成本射頻系統(tǒng)級芯片,較為適合本課題的設計。</p
44、><p> 3.4 溫度采集模塊</p><p> 3.4.1 DS18B20簡介</p><p> 美國Dallas 半導體公司的數(shù)字化溫度傳感器DS18B20是世界上第一片支持 “一線總線”接口的溫度傳感器,在其內(nèi)部使用了在板(ON-B0ARD)專利技術。全部傳感元件及轉換電路集成在形如一只三極管的集成電路內(nèi)。一線總線獨特而且經(jīng)濟的特點,使用戶可輕松地組建
45、傳感器網(wǎng)絡,為測量系統(tǒng)的構建引入全新概念[3]。</p><p> DS18B20的測量溫度范圍為-55℃~+125℃,在-10℃~+85℃范圍內(nèi),精度為±0.5℃;在使用中不需要任何外圍元件,全部傳感元件及轉換電路集成在形如一只三極管的集成電路內(nèi);可編程的分辨率為9~12位,對應的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可以進行高精度測溫;在9位分辨率時最多在93.75m
46、s內(nèi)把溫度轉換為數(shù)字,12位分辨率時最多在750ms內(nèi)把溫度值轉換為數(shù)字,速度快;測量結果直接輸出數(shù)字溫度信號,以“一線總線”串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力;電源極性接反時,芯片不會因發(fā)熱而燒毀,但是不能正常工作[3]。</p><p> DS18B20的內(nèi)部結構主要是由64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器這四部分組成。圖3-7為DS18
47、B20的內(nèi)部結構圖。</p><p> 圖3-7 DS18B20的內(nèi)部結構圖</p><p> DS18B20可以把溫度信號直接轉換成串行數(shù)字信號供單片機處理,采用1-Wire接口,DS18B20的數(shù)據(jù)端DQ可通過4.7千歐的上拉電阻接SPCE061A單片機的I/O口。NRF2401的CE、CSN、SCK、MOSI、MISO、IRQ引腳則可接SPCE061的任意端口,但需在編程時注意
48、,這里接至P1端口。由于NRF2401具有接收數(shù)據(jù)功能,所以接受顯示電路由單片機SPCE061A,NRF2401和顯示電路組成。所采集的數(shù)據(jù)也通過串口發(fā)送至PC機進行處理。</p><p> 3.4.2 DS18B20工作原理</p><p> 讀寫時序和測溫原理與DS18820相比,兩者得到的溫度值的位數(shù)因分辨率不同而產(chǎn)生差異,并且溫度轉換的延時時間由2s減少到750ms。如圖3-
49、8所示為DS18B20的測溫原理。圖中,振蕩頻率受溫度影響很小的低溫度系數(shù)晶振用于產(chǎn)生固定頻率的脈沖信號,送給計數(shù)器1;振蕩頻率隨溫度變化明顯改變的高溫度系數(shù)晶振,其產(chǎn)生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器被預置在-55℃所對應的一個基數(shù)值。計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當計數(shù)器1的預置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預置將重新被裝入,計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù)
50、,如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖3-8中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正計數(shù)器1的預置值。</p><p> 圖3-8 DS18B20測溫原理</p><p><b> 4 軟件設計</b></p><p><b> 4.1軟件開發(fā)工
51、具</b></p><p> 我們所使用的軟件開發(fā)工具是由凌陽公司開發(fā)的unSP IDE。IDE即集成開發(fā)環(huán)境,具備了,在開發(fā)環(huán)境里寫入代碼、編輯程序的代碼編輯器;負責把高級語言翻譯成機器語言的編譯器;檢測代碼語法錯誤、排除系統(tǒng)故障的調(diào)試器;把機器碼下載到仿真板或開發(fā)系統(tǒng)上的程序下載器。除此之外,unSP還支持工程的開發(fā),將多個程序文件組織成一個系統(tǒng),有利于大型系統(tǒng)的開發(fā),方便一些程序的模塊化,形成
52、系統(tǒng)中的功能模塊。同時它還結合16位單片機的硬件提供各類在線調(diào)試窗口,使調(diào)試程序變得更加直觀和簡單。unSP IDE集成開發(fā)環(huán)境如圖4-1所示:</p><p> 圖4-1 IDE集成開發(fā)環(huán)境</p><p> unSP IDE具有友好的交互界面、下拉菜單、快捷鍵和快速訪問命令列表等,使編程、調(diào)試工作方便且高效。它還提供一些軟件模擬16位單片機仿真的功能,在沒有硬件的情況下也能完成一
53、些簡單程序的調(diào)試。我們可以通過集成開發(fā)環(huán)境使用C語言和匯編語言對16位單片機進行編程。C語言是一種比匯編語言更高級的語言。其優(yōu)點是可以很好的組織程序,并且容易讀懂,可以在多種單片機上運行,是普遍使用的一種計算機語言。缺點是占用硬件資源較多,處理速度和效率較匯編低。</p><p> 4.2軟件主體部分及流程圖</p><p> 系統(tǒng)的核心控制程序都是運行在SPCE061A核心控制板上,
54、由溫度采集發(fā)送控制端程序和接收顯示程序兩部分組成,分別運行在兩塊SPCE061A核心控制板上。</p><p> 4.2.1溫度采集原理框圖</p><p> 這部分程序是系統(tǒng)最主要的控制程序,本部分程序主要是用DS18B20來采集溫度并通過無線模塊來發(fā)送所采集的數(shù)據(jù),通過NRF2401的子程序進行調(diào)用來實現(xiàn)無線傳輸系統(tǒng)核心代碼見附錄4。</p><p> 溫
55、度采集的具體流程圖如4-2所示:</p><p> 圖4-2溫度采集原理框圖</p><p> 溫度采集的主函數(shù),主要功能是用DS18B20來采集溫度并通過無線模塊來發(fā)送所采集的數(shù)據(jù)。</p><p> #include "spce061a.h" //IOA端口的定義</p><p> int t
56、able[10]={0x003f, 0x0006, 0x005b, 0x004f, 0x0066, 0x006d, 0x007d, 0x0007, 0x007f, 0x006f};void showtemp(); //全局變量定義</p><p> void showdelay() //延時顯示函數(shù){ int i;
57、160; i=35; //延時約1s while(i--) showtemp(); }void TxReset(void) //產(chǎn)生復位脈沖 初始化DS18B20{ uns
58、igned int i; </p><p> *P_IOA_Dir=0xffff; //置A為輸出端 DQ=0x0000; delay(8); //拉低約900微秒 DQ=0x8000;
59、160; </p><p> i=30;
60、 //延時30微秒 while (i--);}void RxWait(void) //等待應答脈沖{ unsigned int i;</p><p> *P_IOA_Dir=0x0000;</p><p> while((DQ&0x8000)==0x8000);
61、0; while((DQ&0x8000)==0x0000); //等待應答脈沖</p><p> i=4; while (i--);}unsigned int RbBit(void)
62、 //讀取數(shù)據(jù)的一位,滿足讀時時隙要求{ unsigned int i,b;</p><p> *P_IOA_Dir=0xffff; //置A口為輸出口 DQ=0x0000; i++; i++; i++
63、;</p><p> i++; //拉低后延時1us,然后釋放總線 DQ=0x8000;</p><p> *P_IOA_Dir=0x0000; //置A口為輸入口,
64、接受數(shù)據(jù) </p><p> i=10;
65、 </p><p> while(i--);</p><p> b=(DQ&0x8000)>>15; //15us內(nèi)讀數(shù)據(jù) i=60; while (i--);
66、 //延時60us</p><p> return(b);}unsigned int RbByte(void) //讀取數(shù)字的兩個字節(jié){ unsigned int i,j,b; b=0; for (i=1;i<=16;i++) {
67、60; j=RbBit(); b=(j<<15)|(b>>1); } return (b);}void WrByte(unsigned int b) //寫數(shù)據(jù)的一個字節(jié){ unsigned int&
68、#160; i,j,btmp; for (j=1;j<=8;j++) { btmp=b&0x0001; b=b>>1; *P_IOA_Dir=0xffff;
69、0; //置A口為出入口 if (btmp==0x0001) { //寫1 DQ=0x0000; //拉低15us
70、; i=13; </p><p> DQ=0x8000; //15us內(nèi)必須將總線了拉高 i=55;
71、60; while (i--); i++; i++; } else {
72、 //寫0 DQ=0x0000; i=64; while (i--);
73、160; DQ=0x8000; i++; i++; } }}void convert(voi
74、d) //啟動溫度轉換{ TxReset();
75、; //初始化 RxWait(); //應答脈沖 delay(1</p><p> while(1) {
76、delay(10); convert(); //啟動溫度轉換 showdelay(); //延時750ms以上
77、 RdTemp(); //讀取溫度值 tens=((temp&0xfff0)>>4)/10; //取十位 sone=((temp&0xfff0)>>4)%10;
78、160; //取個位 i=(temp&0x000f)*0.625; point=(int)i;
79、60; //取小數(shù)點后第一位 if (((int) (i*10))%10>=5 ) //取小數(shù)點后第二位,四舍五入 point++; showtemp(); //顯示溫度
80、 showtemp(); showtemp(); </p><p><b> }</b></p><p> 4.2.2數(shù)據(jù)收發(fā)模塊</p><p> 這部分是將接收到的數(shù)據(jù)通過單片機處理、分析,然后通過
81、LCD顯示。通過NRF2401的子程序進行調(diào)用來實現(xiàn)無線傳輸系統(tǒng)核心代碼見附錄4。</p><p> 數(shù)據(jù)收發(fā)的流程如圖4-3所示:</p><p> 圖4-3 數(shù)據(jù)收發(fā)流程說明框圖</p><p> 接收部分的主函數(shù),主要功能接收數(shù)據(jù),根據(jù)接收數(shù)據(jù)執(zhí)行顯示動作。</p><p> int main()
82、 //定義全局變量</p><p><b> {</b></p><p> for(i=0;i<0x3fff;i++); // 定義變量</p><p> *P_Watchdog_Clear= 0x0001;</p><p> LCDINIT ();&l
83、t;/p><p> Key_InitIO(); // 設置nRF2401A工作方式:</p><p><b> //初始化</b></p><p> __asm("int irq");</p><p> DIG_Init();</p><
84、p> nRF2401_Initial(); //NRF2401A初始化</p><p> nRF2401_Mode(0);</p><p><b> while (1)</b></p><p><b> {</b></p><p> KeyDeal();</p>
85、<p> if((nRF2401_RxStatus()) == 1) // NRF2401A有數(shù)據(jù)請求</p><p><b> {</b></p><p> nRF2401_ReceiveByte(RxBuf);// 接收數(shù)據(jù)</p><p> uiTemp = RxBuf;</p>
86、<p> uiXiaoshu = uiTemp/1000;</p><p> if(uiXiaoshu)</p><p> LCD501_PutChar(10,10,g_Data[5]);</p><p> PlaySnd_Auto(g_Data[5],0);</p><p><b> else</b&
87、gt;</p><p> LCD501_PutChar(10,10,g_Data[0]);</p><p> PlaySnd_Auto(g_Data[5] ,0);</p><p> uiYushu = uiTemp%1000;</p><p> uiTemp = uiYushu;</p><p> uiBa
88、iwei = uiTemp/100;</p><p> if(uiBaiwei)</p><p> LCD501_PutChar(10,20,g_Data[uiBaiwei]);</p><p> PlaySnd_Auto(g_Data[5],0);</p><p><b> else</b></p>
89、<p> LCD501_PutChar(10,20,g_Data[uiBaiwei]);</p><p> PlaySnd_Auto(g_Data[5],0);</p><p> uiYushu = uiTemp%100;</p><p> uiTemp = uiYushu;</p><p> uiShiwei = u
90、iTemp/10;</p><p> if(uiShiwei)</p><p> LCD501_PutChar(10,30,g_Data[uishiwei]);</p><p> PlaySnd_Auto(g_Data[5],0);</p><p><b> else</b></p><p&g
91、t; LCD501_PutChar(10,30,g_Data[0]);</p><p> PlaySnd_Auto(g_Data[5],0);</p><p> uiYushu = uiTemp%10;</p><p> if(uiYushu)</p><p> LCD501_PutChar(10,40,g_Data[uiyushu
92、]);</p><p> PlaySnd_Auto(g_Data[5],0);</p><p><b> else</b></p><p> LCD501_PutChar(10,40,g_Data[0]);</p><p> PlaySnd_Auto(g_Data[5],0);</p><p&
93、gt; *P_Watchdog_Clear = 0x0001;</p><p><b> }</b></p><p><b> }</b></p><p> *P_IOB_Data&=0x7fff; //紅外接收位清0</p><p> *P_IOB_Data|=
94、0x4000;</p><p> *P_Watchdog_Clear = 0x0001; </p><p><b> }</b></p><p> *P_Watchdog_Clear = 0x0001; </p><p><b> }</b></p><p> 4
95、.2.3 DS18B20的工作時序</p><p> DS18B20的一線工作協(xié)議流程是:初始化→ROM操作指令→存儲器操作指令→數(shù)據(jù)傳輸。其工作時序包括初始化時序、寫時序和讀時序。</p><p><b> 圖4-4初始化時序</b></p><p><b> 圖4-5寫時序</b></p><
96、p><b> 圖4-6讀時序</b></p><p><b> 5 制作和調(diào)試</b></p><p> 5.1 硬件制作和調(diào)試</p><p> PCB在制作的過程中十分復雜、布線,焊盤等方面需要注意的事項很多,所以制作起來難度很大。布線方面,走線拐角盡可能大于90度,杜絕90度以下的拐角,也盡量少用90度
97、拐角,走線盡量走在焊接面,特別是通孔工藝的PCB。同是地址線或者數(shù)據(jù)線,走線長度差異不要太大,否則短線部分要人為走彎線作補償。</p><p> 完成布線后,要做的就是對文字、個別元件、走線做些調(diào)整以及敷銅(這項工作不宜太早,否則影響速度,又會給布線帶來麻煩),同樣是為了便于進行生產(chǎn)、調(diào)試、維修。</p><p> 在電路板的設計過程中,PCB設計的好壞對電路板抗干擾能力影響很大。為保
98、證其可靠性,在進行PCB設計時,應注意一般原則:應盡量加粗電源線寬度,減少環(huán)路電阻;地線應盡量加粗,如果很細,接地電位則隨電流的變化而變化,致使電子設備的定時信號電平不穩(wěn),抗噪聲性能就會變壞。在考慮布線之前,要特別注意封裝與實際要相符合。</p><p> 圖5-1 發(fā)射模塊和接收模塊PCB圖</p><p> 5.2 軟件制作和調(diào)試</p><p> 軟件
99、開發(fā)部分主要是用凌陽公司開發(fā)的unSPIDE。先連接好硬件,再用串口數(shù)據(jù)線連接電腦與硬件,打開unSPIDE軟件。</p><p> 首先,在New中建立一個新建的文件夾,定義為Demo。</p><p> 圖5-2 新建一個工程圖</p><p> 創(chuàng)建一個C文件,在此文件中編寫和調(diào)試程序:</p><p> 圖5-3 編寫程序圖
100、</p><p> 程序編寫完成后,點擊編譯,如果編譯通過的話就會出現(xiàn)顯示框如下:</p><p> 圖5-4 編譯成功圖</p><p> 在編譯成功后,選擇Use Simulator,點擊Download,出現(xiàn)下面的框圖:</p><p> 圖5-5 模擬運行下載圖</p><p><b>
101、 6 結論</b></p><p> 本設計方案按照任務書的要求完成NRF2401無線模塊設計電路、無線模塊控制電路設計,完成信號傳輸與控制通過溫度傳感器在使用點的溫度信號采集,經(jīng)過單片機的數(shù)據(jù)處理,通過無線傳輸模塊完成協(xié)議信號的傳輸。</p><p> 本文章主要研究的是短距離無線溫度采集。本系統(tǒng)以凌陽SPCE061A單片機作為主控芯片,采用數(shù)字式溫度傳感器DS18B20
102、,以NRF2401無線模塊作為收發(fā)芯片,應用傳感技術、無線收發(fā)技術和計算機技術,實現(xiàn)溫度數(shù)據(jù)的采集和短距離的無線傳輸。</p><p> 由于硬件條件等因素,無線采集距離較短,有待在以后的工作學習中不斷進步。</p><p><b> 致 謝</b></p><p> 在我的畢業(yè)論文選題以及下作過程中,宣老師給予我及時、充分的指導,并對
103、我提出了嚴格要求,這些都讓我深深感到一位敬業(yè)的教授嚴謹?shù)膶W術作風。宣老師每次閱讀我的論文后,都提出詳細的修改意見并指明論文的寫作方向及技巧,幫助我順利完成畢業(yè)論文寫作。</p><p><b> 參考文獻</b></p><p> [1] SPLC501液晶顯示模組使用說明書v2[EB/OL],[2005-8-13].</p><p>
104、http://www.epdoc.cn/base/71684.html</p><p> [2] 陳麗娟,常丹華.基于nRF2401芯片的無線數(shù)據(jù)通信[J].電子器件,燕山大學信息與工程學院,秦皇島,066004,2006,29(1).</p><p> [3] 數(shù)字溫度傳感器DS18B20資料[EB/OL],[2007-8-6].</p><p> http
105、://www.51hei.com/mcu/198.html</p><p> [4] 張寶.基于nRF905和DS18B20的無線溫度采集系統(tǒng)設計[J].中國新技術新產(chǎn)品,2010(3). </p><p> [5] 劉鳴,蔣新穎,姚雪峰.基于DS18B20多點溫度采集和無線傳輸[J].天津大學精儀學院.電子元件與材料,2005,24(2).</p><p>
106、 [6] 居偉,許亮,刁修睦.基于nRF2401收發(fā)芯片的無線溫濕度采集系統(tǒng)[J].中國海洋大學信息學院,2007.</p><p> [7] 王振,胡清,黃杰.基于nRF24L01的無線溫度采集系統(tǒng)設計[J].電子設計工程,2009,17(12).</p><p> [8] 王志民.北方工業(yè)大學[M]科技信息,2009(3).</p><p> [9] 孫瑩
107、.單片機控制溫度采集系統(tǒng)設計[J].儀器儀表用戶,2008,15(4).</p><p> [10] 萬志平,楊亦紅.基于PTR8000的無線多點溫度采集系統(tǒng)設計[J].浙江工 業(yè)職業(yè)技術學院.商場現(xiàn)代化,2009(5).</p><p> [11] 王峰,丁金林.短距離無線溫度采集系統(tǒng)設計[J].蘇州市職業(yè)大學學報,2008,19(2).</p><p>
108、 [12] 史軍,趙國榮.多點溫度傳感無線采集系統(tǒng)的研究[J].寧夏大學學報(自然科學版),2008,29(1).</p><p> [13] Bentley,R.E. Temperature and humidity measurement. In Handbook of temperature measurement[J].Springer,New York, 1998,volume 1.</p>
109、;<p> [14] Ya Wang,Yi Jia,Qiushui Chen,Yanyun Wang. A Passive Wireless Temperature Sensor for Harsh Environment Applications[J]. Sensors,2008,8,7982-7995.</p><p> 附錄1 系統(tǒng)實物圖</p><p> 附錄
110、2 實驗原理圖</p><p> 圖1 SPCE061A控制電路圖</p><p> 圖2 無線收發(fā)電路原理圖</p><p> 圖3 LCD原理圖</p><p><b> 附錄3 源程序</b></p><p> #include "DS18B20.h"
111、</p><p> #include "ptr.h"</p><p> #include "Dig.h"</p><p> #include<math.h></p><p> #define C_IRQ4_4KHz0x0040</p><p> unsi
112、gned int Temp_Data(void);</p><p> int main(void)</p><p><b> {</b></p><p> float abs(flaot number);//求絕對值函數(shù)聲明</p><p> int ten,sone,point_0,point_1;</p
113、><p><b> float m;</b></p><p> Temp=ReadTemp();//獲取溫度值</p><p><b> //Temp為0</b></p><p> if(Temp==0)</p><p><b> {k=0;}</b&g
114、t;</p><p> //Temp為正數(shù),做判斷</p><p> if(Temp>0)</p><p><b> {</b></p><p> if(Temp/10==0)//表示要LCD501顯示四位,如8.97,小數(shù)點后精確兩位</p><p><b> {<
115、;/b></p><p> sone=Temp*10/10; //取個位的值</p><p> point_0=Temp*10%10; //取小數(shù)點后第一位的值</p><p> point_1=Temp*100%10; //取小數(shù)點后第二位的值</p><p><b> }</b><
116、/p><p> else //表示LCD501顯示5位,如18.97,小數(shù)點后精確兩位</p><p><b> {</b></p><p> ten=Temp/10; //取十位的值</p><p> sone=Temp%10; //取個位的值<
117、/p><p> point_0=Temp*10%10; //取小數(shù)點后第一位的值</p><p> point_1=Temp*100%10; //取小數(shù)點后第二位的值</p><p><b> }</b></p><p><b> }</b></p><p> /
118、/Temp為負數(shù),做判斷</p><p> if(Temp<0)</p><p><b> {</b></p><p> if(abs(Temp)/10==0) //表示要顯示5位,如-8.97,小數(shù)點后精確兩位</p><p><b> {</b></p><p
119、> m=abs(Temp); //Temp取絕對值</p><p> sone=m*10/10; //取個位的值</p><p> point_0=m*10%10; //取小數(shù)點后第一位的值</p><p> point_1=m*100%10; //取小數(shù)點后第二位的值</p><p&
120、gt;<b> }</b></p><p> Else //表示LCD501顯示6位,如-18.97,小數(shù)點后精確兩位</p><p><b> {</b></p><p> m=abs(Temp);//Temp取絕對值</p><p> ten=m/10
121、;//取十位的值</p><p> sone=m%10;//取個位的值</p><p> point_0=m*10%10;//取小數(shù)點后第一位的值</p><p> point_1=m*100%10;//取小數(shù)點后第二位的值</p><p><b> }</b></p><p><b
122、> //取絕對值子函數(shù)</b></p><p> float abs(flaot number)</p><p><b> {</b></p><p> number=number*(-1);</p><p> return unmber;</p><p><b&
123、gt; }</b></p><p><b> }</b></p><p> unsigned int Temp_Data(void)</p><p><b> {</b></p><p> unsigned int uiTemp;//臨時變量</p><
124、;p> //unsigned int uiSignal;//保存符號</p><p> unsigned int uiData;//保存溫度</p><p> uiTemp = Data[1];</p><p> uiData = 0;</p><p> //if(uiTemp & 0x0080)<
125、;/p><p> //uiSignal = 1;</p><p><b> //else </b></p><p> //uiSignal = 0;//為正</p><p> if(uiTemp & 0x0004)</p><p> uiData += 64;<
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于nRF2401的無線數(shù)據(jù)通信.pdf
- 畢業(yè)論文--nrf2401在家居防盜中的應用
- 基于nRF2401的RFID系統(tǒng)設計.pdf
- 基于nRF2401的工控網(wǎng)絡的設計與實現(xiàn).pdf
- 基于nRF2401的模擬藍牙實現(xiàn)及其與GPRS的連接.pdf
- 基于wsn的無線溫度采集系統(tǒng)設計【畢業(yè)論文】
- 4ghz射頻收發(fā)芯片nrf2401及其應用
- 基于藍牙的無線溫度采集系統(tǒng)設計【畢業(yè)論文】
- 基于藍牙的無線溫度采集系統(tǒng)設計【畢業(yè)論文】
- 短距離無線溫度采集系統(tǒng)【畢業(yè)論文】
- 基于nrf2401a的短距離無線傳輸系統(tǒng)
- 畢業(yè)論文基于nrf24l01模塊的無線通信系統(tǒng)設計
- 自動化畢業(yè)論文基于藍牙的無線溫度采集系統(tǒng)設計
- 基于單片機與無線技術的倉庫溫度采集系統(tǒng)畢業(yè)論文
- 基于nRF24L01的無線溫度采集系統(tǒng)設計.pdf
- 基于單片機與無線技術的倉庫溫度采集系統(tǒng)畢業(yè)論文
- 畢業(yè)論文基于nrf905的兩路溫度檢測與無線傳輸系統(tǒng)設計
- 畢業(yè)論文-基于51單片機和nrf24l01的無線溫度監(jiān)控
- 基于單片機的溫度采集系統(tǒng)畢業(yè)論文
- 基于zigbee技術的溫度采集系統(tǒng)設計-畢業(yè)論文
評論
0/150
提交評論