基于NRF2401無線模塊的溫度采集畢業(yè)論文2023-04-23_第1頁
基于NRF2401無線模塊的溫度采集畢業(yè)論文2023-04-23_第2頁
基于NRF2401無線模塊的溫度采集畢業(yè)論文2023-04-23_第3頁
基于NRF2401無線模塊的溫度采集畢業(yè)論文2023-04-23_第4頁
基于NRF2401無線模塊的溫度采集畢業(yè)論文2023-04-23_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本科畢業(yè)設(shè)計(論文)(2023屆)論文題目基于NRF2401無線模塊的溫度采集(英文)ThetemperatureacquisitionsystembasedonNRF2401wirelessmodules所在學(xué)院電子信息學(xué)院專業(yè)班級學(xué)生姓名指導(dǎo)教師完成日期2023年基于NRF2401無線模塊的溫度采集2023年4月摘要文章主要是介紹了一個基于NRF2401的點對點短距離無線溫度控制系統(tǒng)的設(shè)計思想和實現(xiàn)方法。系統(tǒng)以凌陽SPCE061A單片機作為主控制器,采用數(shù)字式溫度傳感器DS18B20采集數(shù)據(jù),用工作于2.4G波段的無線收發(fā)芯片nRF2401做無線傳輸,目的是實現(xiàn)短距離溫度的無線采集。在生活和工業(yè)應(yīng)用中,該系統(tǒng)相對于其他溫度采集系統(tǒng)來說,其優(yōu)點是機構(gòu)簡單,并且解決了一些不允許人們直接采集系統(tǒng)的問題。該系統(tǒng)的可靠性高,數(shù)據(jù)傳輸速度快,功能易擴展,適用于多種應(yīng)用領(lǐng)域。文章首先簡單介紹了無線溫度采集技術(shù)及無線收發(fā)芯片的發(fā)展近況,結(jié)合了系統(tǒng)方案的要求,論證了實現(xiàn)溫度數(shù)據(jù)采集與無線傳輸方案的設(shè)計思路及系統(tǒng)的總體架構(gòu),完成了各項功能相關(guān)的軟件設(shè)計以及系統(tǒng)的通信協(xié)議。系統(tǒng)主要分為兩部分,發(fā)射端和接收端。在工作過程中,溫度傳感器DS18B20將采集的溫度通過主控芯片將數(shù)據(jù)傳輸給作為發(fā)射端的無線收發(fā)器NFR2401,并傳送給另外一個無線收發(fā)器NRF2401,通過LCD顯示出溫度值。在發(fā)射端,將溫度傳感器采集的溫度數(shù)據(jù)發(fā)送至接收端;在接收端,將收集到的數(shù)據(jù)通過液晶顯示器進行顯示。關(guān)鍵詞:凌陽單片機;無線收發(fā)器;DS18B20AbstractThearticleistointroducethedesignphilosophyanditsimplementingmethodofapoint-to-pointshort-rangewirelesstemperaturecontrolsystembasedonRNF2401wirelessmodules.ThesystemusesSunplusSPCE061AMCUasthemastercontroller,digitaltemperaturesensorDS18B20collectsdata,useswirelesstransceiverchiptheNRF2401thatworkinginthe2.4Gbanddowirelesstransmission,toachievecollectingtemperaturedataofshortdistancewireless.Indomesticandindustrialapplications,thesystemrelativestotheothertemperatureacquisitionsystem,theadvantageofsimplebodies,andsolvesomeproblemsdonotallowpeopledirectacquisitionsystem.Thesystem'shighreliability,fastdatatransferspeeds,andfeatureseasytoexpand,applytoavarietyofapplications.Wirelesstemperaturearticlefirstbrieflydescribetheacquisitionanddevelopmentofwirelesstransceiverchip,combinedwiththesystemrequirements,demonstrationandimplementationoftemperaturedataacquisitionandwirelesstransmissionschemedesignandtheoverallarchitectureofthesystem,completethefunctionofsoftwaredesignandsystemsofcommunicationprotocols.Thissystemcanbedividedintotwoparts,thetransmitterandthereceiver.Inthecourseofwork,temperaturesensorDS18B20temperaturecollecteddatathroughthemaincontrolchiptoNFR2401asthetransmitterofthewirelesstransceiver,anddeliveredtoanotherNRF2401wirelesstransceiver,displayedbyLCDtemperaturevalues.Atthetransmitter,thetemperaturesensortemperaturedatacollectedissenttothereceivingend;atthereceivingend,thecollecteddatadisplaysthroughtheLCDmonitor.KeyWords:Sunplusmicrocontroller;wirelesstransceiver;DS18B20目錄TOC\o"1-3"\h\u187811引言1294261.1無線溫度采集技術(shù)簡介1235461.2數(shù)據(jù)采集技術(shù)發(fā)展1200251.3課題研究主要內(nèi)容249652總體設(shè)計3174982.1系統(tǒng)方案3295642.2系統(tǒng)總體設(shè)計思路355702.2.1核心控制電路3324792.2.2溫度采集電路4304442.2.3顯示系統(tǒng)電路4192112.2.4無線收發(fā)電路4221533硬件設(shè)計698403.1硬件連接64523.2SPCE061A概述6266573.2.1SPCE061A模塊結(jié)構(gòu)7326863.2.2SPCE061A主要性能7322653.3無線模塊813143.4溫度采集模塊9137733.4.1DS18B20簡介9114163.4.2DS18B20工作原理11240064軟件設(shè)計12147844.1軟件開發(fā)工具1217164.2軟件主體部分及流程圖13120054.2.1溫度采集原理框圖13133344.2.2數(shù)據(jù)收發(fā)模塊18272344.2.3DS18B20的工作時序 21308065制作和調(diào)試23298635.1硬件制作和調(diào)試2389895.2軟件制作和調(diào)試24111826結(jié)論267058致謝277885參考文獻283414附錄1系統(tǒng)實物圖2917982附錄2實驗原理圖301644附錄3源程序321引言1.1無線溫度采集技術(shù)簡介隨著計算機網(wǎng)絡(luò)與通信技術(shù)、自動控制技術(shù)、微電子技術(shù)、檢測與傳感技術(shù)等的飛速發(fā)展和普及,計算機控制技術(shù)的不斷提高,在數(shù)據(jù)采集方面,數(shù)據(jù)采集卡、儀器放大器、數(shù)字信號處理芯片等技術(shù)的不斷升級和更新。數(shù)溫度據(jù)采集是工、農(nóng)業(yè)控制系統(tǒng)中的重要的性是不言而喻的。在醫(yī)藥、化工以及食品等多個領(lǐng)域的生產(chǎn)和發(fā)展中,總是要對每個生產(chǎn)環(huán)節(jié)中的溫度參數(shù)進行檢測。與此同時,還要對隨機抽取的任一監(jiān)測點的任一參數(shù)進行查詢,并且將在一個較長時間段內(nèi)檢測到的溫度參數(shù)進行轉(zhuǎn)換后提取出來,這樣做的目的是為了便于比較,做出一個接近正確的決策,調(diào)整控制方案,總的一處是在提高產(chǎn)品合格率的同時能夠取得良好的經(jīng)濟效益。1.2數(shù)據(jù)采集技術(shù)發(fā)展隨著工、農(nóng)業(yè)的發(fā)展,無線溫度采集系統(tǒng)得到了越來越多的應(yīng)用,為適應(yīng)這一趨勢,無線溫度采集技術(shù)的研究也突顯了它的重要性。在科學(xué)研究中,運用無線采集系統(tǒng)可獲得大量的動態(tài)信息,這也是獲取科學(xué)數(shù)據(jù)重要手段之一??偠灾徽撛谀膫€應(yīng)用領(lǐng)域中,無線數(shù)據(jù)采集與處理直接影響工作效率和所取得的經(jīng)濟效益。從嚴(yán)格的意義上來說,數(shù)據(jù)采集系統(tǒng),應(yīng)該是計算機控制的多路數(shù)據(jù)自動檢測或巡回檢測,能對數(shù)據(jù)實行存儲、處理、分析計算并從檢測的數(shù)據(jù)中提取可用的信息,供顯示、記錄、打印或描繪的系統(tǒng)。

數(shù)據(jù)采集系統(tǒng)一般包括以下五個部分:數(shù)據(jù)輸入通道、數(shù)據(jù)存儲與管理、數(shù)據(jù)處理、數(shù)據(jù)輸出以及顯示。其中,數(shù)據(jù)輸入通道的實現(xiàn)目的是檢測、采樣以及對被測對象的進行信號轉(zhuǎn)換三大主要工作。數(shù)據(jù)存儲與管理將采集到的數(shù)據(jù)通過存儲器存儲后并在此基礎(chǔ)上建立對應(yīng)的數(shù)據(jù)庫,并且對數(shù)據(jù)庫進行管理、篩選和調(diào)用。數(shù)據(jù)處理是針對最初采集的數(shù)據(jù),即原始數(shù)據(jù),刪除不必要的信息,例如干擾噪聲和無法反應(yīng)檢測對象的信息,保留和提取能夠準(zhǔn)確反應(yīng)被測對象的相關(guān)信息,對采集的數(shù)據(jù)做一個整體的統(tǒng)計和分析報告,方便檢索。數(shù)據(jù)輸出就是把數(shù)據(jù)恢復(fù)成原來物理量的形式,以可輸出的形態(tài)在輸出設(shè)備上輸出,例如打印、顯示、繪圖等。1.3課題研究主要內(nèi)容本課題為基于NRF2401溫度采集系統(tǒng)設(shè)計。設(shè)計目的是利用NRF2401無線收發(fā)模塊實現(xiàn)系統(tǒng)間的無線通信。NRF2401具有成本低、低功率、節(jié)能等特點,這使得這一目的的實現(xiàn)順暢不少。本系統(tǒng)分為兩部分,在工作過程中,溫度傳感器DS18B20采集溫度通過無線收發(fā)器NRF2401發(fā)射端傳送給無線收發(fā)器的接收端,并通過LCD顯示溫度值。該系統(tǒng)使用方便,在工業(yè)控制、消費電子等領(lǐng)域都具有較廣闊的應(yīng)用前景。課題基于凌陽十六位單片機進行指令遙控,通過無線傳輸模塊進行數(shù)據(jù)傳輸和遙控。系統(tǒng)分兩部分:發(fā)射模塊和接收模塊。其中發(fā)射模塊由凌陽SPCE061A單片機控制模塊、NRF2401無線傳輸模塊和DS18B20溫度采集模塊組成;接收模塊由凌陽SPCE061A單片機控制模塊、NRF2401無線接收模塊和顯示設(shè)備組成。在發(fā)射模塊處,由按鍵控制單片機,然后控制無線傳輸模塊發(fā)射相應(yīng)數(shù)據(jù)至接收模塊處。接收模塊處,無線接收模塊接收信號,通過單片機控制模塊處理,然后控制各個模塊來完成相應(yīng)的指令。2總體設(shè)計2.1系統(tǒng)方案本系統(tǒng)用單片機作為控制核心,接受來自ADC0809的數(shù)據(jù),處理后通過串口傳送,并完成采樣通道的選擇。在每次的采集過程中,所采集的參數(shù)數(shù)目、采樣點數(shù)、采樣速率、采樣精度都固定不變。單片機通過無線模塊發(fā)收數(shù)據(jù),在接收端通過單片機處理控制驅(qū)動顯示器顯示采集到的數(shù)據(jù)。系統(tǒng)以凌陽SPCE061A單片機作為主控芯片,建立兩個主板,一塊作為發(fā)射端,一塊作為接收端。在發(fā)射端,將溫度傳感器采集的溫度數(shù)據(jù)發(fā)送。在接收端,將收集到的數(shù)據(jù)通過液晶顯示器進行顯示。2.2系統(tǒng)總體設(shè)計思路設(shè)計一個短距離無線溫度采集設(shè)備,并且該電子設(shè)備可以把溫度通過LCD顯示出來。本短距離無線溫度系統(tǒng)主要由兩部分組成,系統(tǒng)框圖如圖1所示:圖2-1整體系統(tǒng)原理框圖2.2.1核心控制電路核心控制類芯片很多,比如89C51單片機、ARM等單片機。核心控制芯片的選擇對整個方案和外圍器件的選擇都有決定性的影響,因此,對于控制芯片的選擇,我們考慮得很慎重??紤]到芯片的性能和我們的熟悉情況,選擇了凌陽公司的SPCE061A單片機作為控制電路。首先我們對凌陽單片機非常熟悉,這樣也能降低我們的設(shè)計難度,節(jié)省一些時間。其次這款單片機的工作速度較高,具有32位編程多功能I/O端口,2個16位定時器/計數(shù)器,內(nèi)置有16位乘法器。凌陽十六位單片機集成開發(fā)環(huán)境集軟件編輯編譯仿真鏈接在線編程在線調(diào)試等眾多功能于一體,具有友好的交互界面,程調(diào)試工作更加方便且高效,此外它的軟件仿真功能可以在不連接開發(fā)板的情況下模擬硬件的各項功能來調(diào)試程序。2.2.2溫度采集電路本系統(tǒng)溫度采集部分采用溫度傳感器DS18B20。DS18B20測溫系統(tǒng)具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點。DS18B20數(shù)字溫度傳感器接線方便,封裝后還可以應(yīng)用于多種場合,如管道式、螺紋式、磁鐵吸附式、不銹鋼封裝式。封裝后的DS18B20可用于彈藥庫測溫、電纜溝測溫、機房測溫、高爐水循環(huán)測溫、鍋爐測溫、潔凈室測溫、農(nóng)業(yè)大棚測溫等各種非極限溫度場合。該溫度傳感器具有體積小、耐磨耐碰、使用方便、封裝形式多樣等特點,適用于各種狹小空間設(shè)備的數(shù)字測溫和控制領(lǐng)域。2.2.3顯示系統(tǒng)電路凌陽公司的SPCE061A單片機有相應(yīng)配套的LCD顯示模塊SPLC501。SPLC501液晶顯示控制驅(qū)動器集行、列驅(qū)動器和控制器于一體,廣泛應(yīng)用于小規(guī)模液晶顯示模塊。SPLC501單芯片液晶驅(qū)動,可以直接與其他為控制器接口總線相連。微控制器可以將顯示數(shù)據(jù)通過8位數(shù)據(jù)總線或者串行接口寫到SPLC501的顯存中。內(nèi)置8580位顯示RAM。RAM中的一位數(shù)據(jù)控制液晶屏上的一個像素點的亮、暗狀態(tài)?!?”亮、“0”暗[1]。內(nèi)置晶振電路,也可以外接晶振。其工作溫度范圍為-40℃~+85℃。2.2.4無線收發(fā)電路這里采用NRF2401是單片射頻收發(fā)芯片作為無線收發(fā)模塊,NRF2401芯片工作于2.4GHz全球開放ISM頻段,125個頻道,滿足多點通信和跳頻通信需要,工作速率0~1Mb/s,最大發(fā)射功率0dBm,外圍元件極少,內(nèi)置硬件CRC(循環(huán)冗余校驗)和點對多點通信地址控制,集成了頻率合成器、晶體振蕩器和調(diào)制解調(diào)器[2],輸出功率和通信頻道可通過程序進行配置。這個芯片有一個很大的優(yōu)點就是能耗低,當(dāng)以-5dBm的功率發(fā)射時,其運轉(zhuǎn)過程中產(chǎn)生的電流只有10.5mA,同樣的接收時運轉(zhuǎn)過程產(chǎn)生的電流也只有18mA。該芯片還有一個節(jié)能設(shè)計的優(yōu)點,可以在多種低功率模式下工作。DuoCeiverTM技術(shù)的產(chǎn)生使得NRF2401用同一天線就能完成同時接收來自于兩個不同頻道的數(shù)據(jù)的任務(wù)。3硬件設(shè)計本系統(tǒng)硬件主要由采集發(fā)送和接收顯示兩部分組成。3.1硬件連接基于NRF2401無線溫度采集系統(tǒng)由兩塊都有SPCE061A作為控制系統(tǒng)的電路板組成。發(fā)射模塊由DS18B20溫度采集模塊、SPCE061A、NRF2401無線模塊組成,它的硬件連接圖如圖3-1所示:圖3-1發(fā)射模塊系統(tǒng)硬件連接圖接收模塊由SPCE061A、NRF2401無線模塊、LCD組成,它的硬件連接圖如圖3-2所示:圖3-2接收模塊系統(tǒng)硬件連接圖3.2SPCE061A概述SPCE061A是凌陽科技公司μ’nSP?系列產(chǎn)品中的16位微控制器芯片,內(nèi)置32K內(nèi)存,芯片具有較高的處理速度,能夠非常容易、快速地處理復(fù)雜的數(shù)字信號,適用于數(shù)字語音識別等應(yīng)用領(lǐng)域。在2.6V~3.6V工作電壓范圍內(nèi),SPCE061A的工作速度范圍為0.32MHz~49.152MHz,具備8通道10位ADC輸入功能,內(nèi)置的具有自動增益控制的麥克風(fēng)輸入功能,雙通道10位DAC音頻輸出功能及A、B兩個I/O輸入輸出功能。其主要特點是:語音處理能力,A/D轉(zhuǎn)換功能,開發(fā)調(diào)試方便。3.2.1SPCE061A模塊結(jié)構(gòu)圖3-3所示為SPCE061A的模塊結(jié)構(gòu)圖。其主要模塊有并行I/O端口、模/數(shù)轉(zhuǎn)換ADC、數(shù)/模轉(zhuǎn)換DAC、存儲器RAM&FLASH、定時器/計數(shù)器T/C(脈寬調(diào)制輸出PWM)、WatchDog、異步串行通信口UART、指令寄存器IR、設(shè)備串行口SIO、低電壓檢測LVD(低電壓復(fù)位)等。并行I/O并行I/OADCDACT/CSIOIRμ’nSPTM內(nèi)核低電壓檢測&低電壓復(fù)位RAM&FLASH串行口WatchDogPWM輸出圖3-3SPCE061A模塊結(jié)構(gòu)圖3.2.2SPCE061A主要性能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-CircuitEmulator)接口。3.3無線模塊NRF2401是NORDIC公司最近生產(chǎn)的一款無線通信通信芯片,采用FSK調(diào)制,內(nèi)部集成NORDIC自己的EnhancedShortBurst協(xié)議??梢詫崿F(xiàn)點對點或是1對6的無線通信。無線通信速度可以達到2M(bps)。NRF2401芯片,提供了一路的數(shù)據(jù)發(fā)送和兩路的數(shù)據(jù)接收功能。無線傳輸模組接口包括一排10Pin接口J1和一排3Pin的預(yù)留接口J2。J1為芯片的控制和通道1的收發(fā)通道,J2為通道2的預(yù)留接口,通常使用J1接口。NRF2401A電路如圖3-4:由NRF2401A芯片、晶振部分、穩(wěn)壓部分以及天線組成。Y1、C9、C10構(gòu)成了晶振部分,晶振Y1允許值為:4MHz、8MHz、12MHz、16MHz,若需要1Mbps的通信速率,應(yīng)選擇16MHz晶振。穩(wěn)壓部分主要是通過電容C1、C2、C3處理電壓VDD,并為芯片提供工作電壓。電感L1、L2是構(gòu)成天線的主要元件,NRF2401A芯片ANT1、ANT2管腳產(chǎn)生的2.4G電平信號通過它們轉(zhuǎn)換成為電磁波信號,或?qū)㈦姶挪ㄐ盘栟D(zhuǎn)換為電平信號傳送至芯片的ANT1、ANT2管腳。圖3-4NRF2401電路圖I/O連接和功能描述如表3-5所示:表3-5單片機與NRF2401采用SPI接口方式,圖3-6為單片機向NRF2401發(fā)送數(shù)據(jù)的時序如圖進行交換數(shù)據(jù)。其他寫入命令和讀取NRF2401數(shù)據(jù)與圖3-4類似。圖3-6單片機向NRF2401發(fā)送數(shù)據(jù)時序圖上述兩種芯片中,NRF2401可直接接單片機串口,數(shù)據(jù)無需曼徹斯特編碼,而RF2915芯片不能直接接單片機串口,數(shù)據(jù)需要進行曼徹斯特編碼,效率相對較低。本次處理器是采用SPCE061A單片機,選用NRF2401效率較高。NRF2401的工作在2.4GHz的自由頻段,方便開發(fā),適用于生活中。而且NRF2401是無線模塊中體積較小、能耗較少、外圍元件最少的低成本射頻系統(tǒng)級芯片,較為適合本課題的設(shè)計。3.4溫度采集模塊3.4.1DS18B20簡介美國Dallas半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20是世界上第一片支持“一線總線”接口的溫度傳感器,在其內(nèi)部使用了在板(ON-B0ARD)專利技術(shù)。全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。一線總線獨特而且經(jīng)濟的特點,使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念[3]。DS18B20的測量溫度范圍為-55℃~+125℃,在-10℃~+85℃范圍內(nèi),精度為±0.5℃;在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi);可編程的分辨率為9~12位,對應(yīng)的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可以進行高精度測溫;在9位分辨率時最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度快;測量結(jié)果直接輸出數(shù)字溫度信號,以“一線總線”串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力;電源極性接反時,芯片不會因發(fā)熱而燒毀,但是不能正常工作[3]。DS18B20的內(nèi)部結(jié)構(gòu)主要是由64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器這四部分組成。圖3-7為DS18B20的內(nèi)部結(jié)構(gòu)圖。圖3-7DS18B20的內(nèi)部結(jié)構(gòu)圖DS18B20可以把溫度信號直接轉(zhuǎn)換成串行數(shù)字信號供單片機處理,采用1-Wire接口,DS18B20的數(shù)據(jù)端DQ可通過4.7千歐的上拉電阻接SPCE061A單片機的I/O口。NRF2401的CE、CSN、SCK、MOSI、MISO、IRQ引腳則可接SPCE061的任意端口,但需在編程時注意,這里接至P1端口。由于NRF2401具有接收數(shù)據(jù)功能,所以接受顯示電路由單片機SPCE061A,NRF2401和顯示電路組成。所采集的數(shù)據(jù)也通過串口發(fā)送至PC機進行處理。3.4.2DS18B20工作原理讀寫時序和測溫原理與DS18820相比,兩者得到的溫度值的位數(shù)因分辨率不同而產(chǎn)生差異,并且溫度轉(zhuǎn)換的延時時間由2s減少到750ms。如圖3-8所示為DS18B20的測溫原理。圖中,振蕩頻率受溫度影響很小的低溫度系數(shù)晶振用于產(chǎn)生固定頻率的脈沖信號,送給計數(shù)器1;振蕩頻率隨溫度變化明顯改變的高溫度系數(shù)晶振,其產(chǎn)生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器被預(yù)置在-55℃所對應(yīng)的一個基數(shù)值。計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當(dāng)計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預(yù)置將重新被裝入,計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖3-8中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正計數(shù)器1的預(yù)置值。

圖3-8DS18B20測溫原理4軟件設(shè)計4.1軟件開發(fā)工具我們所使用的軟件開發(fā)工具是由凌陽公司開發(fā)的unSPIDE。IDE即集成開發(fā)環(huán)境,具備了,在開發(fā)環(huán)境里寫入代碼、編輯程序的代碼編輯器;負(fù)責(zé)把高級語言翻譯成機器語言的編譯器;檢測代碼語法錯誤、排除系統(tǒng)故障的調(diào)試器;把機器碼下載到仿真板或開發(fā)系統(tǒng)上的程序下載器。除此之外,unSP還支持工程的開發(fā),將多個程序文件組織成一個系統(tǒng),有利于大型系統(tǒng)的開發(fā),方便一些程序的模塊化,形成系統(tǒng)中的功能模塊。同時它還結(jié)合16位單片機的硬件提供各類在線調(diào)試窗口,使調(diào)試程序變得更加直觀和簡單。unSPIDE集成開發(fā)環(huán)境如圖4-1所示:圖4-1IDE集成開發(fā)環(huán)境unSPIDE具有友好的交互界面、下拉菜單、快捷鍵和快速訪問命令列表等,使編程、調(diào)試工作方便且高效。它還提供一些軟件模擬16位單片機仿真的功能,在沒有硬件的情況下也能完成一些簡單程序的調(diào)試。我們可以通過集成開發(fā)環(huán)境使用C語言和匯編語言對16位單片機進行編程。C語言是一種比匯編語言更高級的語言。其優(yōu)點是可以很好的組織程序,并且容易讀懂,可以在多種單片機上運行,是普遍使用的一種計算機語言。缺點是占用硬件資源較多,處理速度和效率較匯編低。4.2軟件主體部分及流程圖系統(tǒng)的核心控制程序都是運行在SPCE061A核心控制板上,由溫度采集發(fā)送控制端程序和接收顯示程序兩部分組成,分別運行在兩塊SPCE061A核心控制板上。4.2.1溫度采集原理框圖這部分程序是系統(tǒng)最主要的控制程序,本部分程序主要是用DS18B20來采集溫度并通過無線模塊來發(fā)送所采集的數(shù)據(jù),通過NRF2401的子程序進行調(diào)用來實現(xiàn)無線傳輸系統(tǒng)核心代碼見附錄4。溫度采集的具體流程圖如4-2所示:圖4-2溫度采集原理框圖溫度采集的主函數(shù),主要功能是用DS18B20來采集溫度并通過無線模塊來發(fā)送所采集的數(shù)據(jù)。#include"spce061a.h"http://IOA端口的定義inttable[10]={0x003f,0x0006,0x005b,0x004f,0x0066,0x006d,0x007d,0x0007,0x007f,0x006f};

voidshowtemp();//全局變量定義voidshowdelay()//延時顯示函數(shù)

{

inti;

i=35;

//延時約1s

while(i--)

showtemp();

}

voidTxReset(void)//產(chǎn)生復(fù)位脈沖初始化DS18B20

{

unsignedinti;

*P_IOA_Dir=0xffff;

//置A為輸出端

DQ=0x0000;

delay(8);

//拉低約900微秒

DQ=0x8000;

i=30;

//延時30微秒

while(i--);

}

voidRxWait(void)//等待應(yīng)答脈沖

{

unsignedinti;

*P_IOA_Dir=0x0000;

while((DQ&0x8000)==0x8000);

while((DQ&0x8000)==0x0000);

//等待應(yīng)答脈沖

i=4;

while(i--);

}

unsignedintRbBit(void)//讀取數(shù)據(jù)的一位,滿足讀時時隙要求

{

unsignedinti,b;*P_IOA_Dir=0xffff;

//置A口為輸出口

DQ=0x0000;

i++;

i++;

i++;i++;

//拉低后延時1us,然后釋放總線

DQ=0x8000;*P_IOA_Dir=0x0000;

//置A口為輸入口,接受數(shù)據(jù)

i=10;

while(i--);b=(DQ&0x8000)>>15;

//15us內(nèi)讀數(shù)據(jù)

i=60;

while(i--);

//延時60us

return(b);

}

unsignedintRbByte(void)//讀取數(shù)字的兩個字節(jié)

{

unsignedinti,j,b;

b=0;

for(i=1;i<=16;i++)

{

j=RbBit();

b=(j<<15)|(b>>1);

}

return(b);

}

voidWrByte(unsignedintb)//寫數(shù)據(jù)的一個字節(jié)

{

unsignedint

i,j,btmp;

for(j=1;j<=8;j++)

{

btmp=b&0x0001;

b=b>>1;

*P_IOA_Dir=0xffff;

//置A口為出入口

if(btmp==0x0001)

{//寫1

DQ=0x0000;

//拉低15us

i=13;

while(i--);

DQ=0x8000;

//15us內(nèi)必須將總線了拉高

i=55;

while(i--);

i++;

i++;

}

else

{//寫0

DQ=0x0000;

i=64;

while(i--);

DQ=0x8000;

i++;

i++;

}

}

}

voidconvert(void)//啟動溫度轉(zhuǎn)換

{

TxReset();

//初始化

RxWait();

//應(yīng)答脈沖

delay(10);

WrByte(0x00cc);

//skiprom命令

WrByte(0x0044);

//溫度轉(zhuǎn)換

*P_Watchdog_Clear=0x0001;

}

voidRdTemp(void)//讀取溫度值,將溫度值賦予temp

{

TxReset();

//初始化

RxWait();

//應(yīng)答脈沖

delay(10);

WrByte(0x00cc);

//skiprom命令

WrByte(0x00be);

//讀暫存器溫度

temp=RbByte();

//讀取溫度

}

voidshowtemp()//溫度顯示函數(shù)

{

*P_IOB_Data=table[tens]+0xfe00;

//顯示十位

delay(50);

*P_IOB_Data=table[sone]+0xfd00;

//顯示個位

delay(50);

*P_IOB_Data=table[point]+0xfb00;

//顯示小數(shù)

delay(50);

*P_IOB_Data=0xffff;

}

voidmain()

{

定義全局變量;IO端口初始化;

*P_SystemClock=0x0040;

//設(shè)置系統(tǒng)時鐘,while(1)

{

delay(10);

convert();

//啟動溫度轉(zhuǎn)換

showdelay();

//延時750ms以上

RdTemp();

//讀取溫度值

tens=((temp&0xfff0)>>4)/10;

//取十位

sone=((temp&0xfff0)>>4)%10;

//取個位

i=(temp&0x000f)*0.625;

point=(int)i;

//取小數(shù)點后第一位

if(((int)(i*10))%10>=5)

//取小數(shù)點后第二位,四舍五入

point++;

showtemp();

//顯示溫度

showtemp();

showtemp();

showtemp();

showtemp();

*P_Watchdog_Clear=0x0001;

//清狗

}}4.2.2數(shù)據(jù)收發(fā)模塊這部分是將接收到的數(shù)據(jù)通過單片機處理、分析,然后通過LCD顯示。通過NRF2401的子程序進行調(diào)用來實現(xiàn)無線傳輸系統(tǒng)核心代碼見附錄4。數(shù)據(jù)收發(fā)的流程如圖4-3所示:圖4-3數(shù)據(jù)收發(fā)流程說明框圖接收部分的主函數(shù),主要功能接收數(shù)據(jù),根據(jù)接收數(shù)據(jù)執(zhí)行顯示動作。intmain()//定義全局變量{for(i=0;i<0x3fff;i++);//定義變量*P_Watchdog_Clear=0x0001;LCDINIT(); Key_InitIO();//設(shè)置nRF2401A工作方式://初始化 __asm("intirq");DIG_Init(); nRF2401_Initial(); //NRF2401A初始化 nRF2401_Mode(0); while(1){KeyDeal();if((nRF2401_RxStatus())==1) //NRF2401A有數(shù)據(jù)請求 { nRF2401_ReceiveByte(RxBuf); //接收數(shù)據(jù) uiTemp=RxBuf; uiXiaoshu=uiTemp/1000; if(uiXiaoshu) LCD501_PutChar(10,10,g_Data[5]); PlaySnd_Auto(g_Data[5],0); else LCD501_PutChar(10,10,g_Data[0]); PlaySnd_Auto(g_Data[5],0); uiYushu=uiTemp%1000; uiTemp=uiYushu; uiBaiwei=uiTemp/100; if(uiBaiwei) LCD501_PutChar(10,20,g_Data[uiBaiwei]); PlaySnd_Auto(g_Data[5],0); else LCD501_PutChar(10,20,g_Data[uiBaiwei]); PlaySnd_Auto(g_Data[5],0); uiYushu=uiTemp%100; uiTemp=uiYushu; uiShiwei=uiTemp/10; if(uiShiwei) LCD501_PutChar(10,30,g_Data[uishiwei]); PlaySnd_Auto(g_Data[5],0); else LCD501_PutChar(10,30,g_Data[0]); PlaySnd_Auto(g_Data[5],0); uiYushu=uiTemp%10; if(uiYushu) LCD501_PutChar(10,40,g_Data[uiyushu]); PlaySnd_Auto(g_Data[5],0); else LCD501_PutChar(10,40,g_Data[0]);PlaySnd_Auto(g_Data[5],0); *P_Watchdog_Clear=0x0001; } }*P_IOB_Data&=0x7fff; //紅外接收位清0*P_IOB_Data|=0x4000;*P_Watchdog_Clear=0x0001;}*P_Watchdog_Clear=0x0001;}4.2.3DS18B20的工作時序DS18B20的一線工作協(xié)議流程是:初始化→ROM操作指令→存儲器操作指令→數(shù)據(jù)傳輸。其工作時序包括初始化時序、寫時序和讀時序。圖4-4初始化時序圖4-5寫時序圖4-6讀時序5制作和調(diào)試5.1硬件制作和調(diào)試PCB在制作的過程中十分復(fù)雜、布線,焊盤等方面需要注意的事項很多,所以制作起來難度很大。布線方面,走線拐角盡可能大于90度,杜絕90度以下的拐角,也盡量少用90度拐角,走線盡量走在焊接面,特別是通孔工藝的PCB。同是地址線或者數(shù)據(jù)線,走線長度差異不要太大,否則短線部分要人為走彎線作補償。完成布線后,要做的就是對文字、個別元件、走線做些調(diào)整以及敷銅(這項工作不宜太早,否則影響速度,又會給布線帶來麻煩),同樣是為了便于進行生產(chǎn)、調(diào)試、維修。在電路板的設(shè)計過程中,PCB設(shè)計的好壞對電路板抗干擾能力影響很大。為保證其可靠性,在進行PCB設(shè)計時,應(yīng)注意一般原則:應(yīng)盡量加粗電源線寬度,減少環(huán)路電阻;地線應(yīng)盡量加粗,如果很細(xì),接地電位則隨電流的變化而變化,致使電子設(shè)備的定時信號電平不穩(wěn),抗噪聲性能就會變壞。在考慮布線之前,要特別注意封裝與實際要相符合。圖5-1發(fā)射模塊和接收模塊PCB圖5.2軟件制作和調(diào)試軟件開發(fā)部分主要是用凌陽公司開發(fā)的unSPIDE。先連接好硬件,再用串口數(shù)據(jù)線連接電腦與硬件,打開unSPIDE軟件。首先,在New中建立一個新建的文件夾,定義為Demo。圖5-2新建一個工程圖創(chuàng)建一個C文件,在此文件中編寫和調(diào)試程序:圖5-3編寫程序圖程序編寫完成后,點擊編譯,如果編譯通過的話就會出現(xiàn)顯示框如下:圖5-4編譯成功圖在編譯成功后,選擇UseSimulator,點擊Download,出現(xiàn)下面的框圖:圖5-5模擬運行下載圖6結(jié)論本設(shè)計方案按照任務(wù)書的要求完成NRF2401無線模塊設(shè)計電路、無線模塊控制電路設(shè)計,完成信號傳輸與控制通過溫度傳感器在使用點的溫度信號采集,經(jīng)過單片機的數(shù)據(jù)處理,通過無線傳輸模塊完成協(xié)議信號的傳輸。本文章主要研究的是短距離無線溫度采集。本系統(tǒng)以凌陽SPCE061A單片機作為主控芯片,采用數(shù)字式溫度傳感器DS18B20,以NRF2401無線模塊作為收發(fā)芯片,應(yīng)用傳感技術(shù)、無線收發(fā)技術(shù)和計算機技術(shù),實現(xiàn)溫度數(shù)據(jù)的采集和短距離的無線傳輸。由于硬件條件等因素,無線采集距離較短,有待在以后的工作學(xué)習(xí)中不斷進步。致謝在我的畢業(yè)論文選題以及下作過程中,宣老師給予我及時、充分的指導(dǎo),并對我提出了嚴(yán)格要求,這些都讓我深深感到一位敬業(yè)的教授嚴(yán)謹(jǐn)?shù)膶W(xué)術(shù)作風(fēng)。宣老師每次閱讀我的論文后,都提出詳細(xì)的修改意見并指明論文的寫作方向及技巧,幫助我順利完成畢業(yè)論文寫作。參考文獻[1]SPLC501液晶顯示模組使用說明書v2[EB/OL],[2005-8-13].[2]陳麗娟,常丹華.基于nRF2401芯片的無線數(shù)據(jù)通信[J].電子器件,燕山大學(xué)信息與工程學(xué)院,秦皇島,066004,2006,29(1).[3]數(shù)字溫度傳感器DS18B20資料[EB/OL],[2007-8-6].[4]張寶.基于nRF905和DS18B20的無線溫度采集系統(tǒng)設(shè)計[J].中國新技術(shù)新產(chǎn)品,2023(3).[5]劉鳴,蔣新穎,姚雪峰.基于DS18B20多點溫度采集和無線傳輸[J].天津大學(xué)精儀學(xué)院.電子元件與材料,2005,24(2).[6]居偉,許亮,刁修睦.基于nRF2401收發(fā)芯片的無線溫濕度采集系統(tǒng)[J].中國海洋大學(xué)信息學(xué)院,2007.[7]王振,胡清,黃杰.基于nRF24L01的無線溫度采集系統(tǒng)設(shè)計[J].電子設(shè)計工程,2023,17(12).[8]王志民.北方工業(yè)大學(xué)[M]科技信息,2023(3).[9]孫瑩.單片機控制溫度采集系統(tǒng)設(shè)計[J].儀器儀表用戶,2023,15(4).[10]萬志平,楊亦紅.基于PTR8000的無線多點溫度采集系統(tǒng)設(shè)計[J].浙江工業(yè)職業(yè)技術(shù)學(xué)院.商場現(xiàn)代化,2023(5).[11]王峰,丁金林.短距離無線溫度采集系統(tǒng)設(shè)計[J].蘇州市職業(yè)大學(xué)學(xué)報,2023,19(2).[12]史軍,趙國榮.多點溫度傳感無線采集系統(tǒng)的研究[J].寧夏大學(xué)學(xué)報(自然科學(xué)版),2023,29(1).[13]Bentley,R.E.Temperatureandhumiditymeasurement.InHandbookoftemperaturemeasurement[J].Springer,NewYork,1998,volume1.[14]YaWang,YiJia,QiushuiChen,YanyunWang.APassiveWirelessTemperatureSensorforHarshEnvironmentApplications[J].Sensors,2023,8,7982-7995.附錄1系統(tǒng)實物圖附錄2實驗原理圖圖1SPCE061A控制電路圖圖2無線收發(fā)電路原理圖圖3LCD原理圖附錄3源程序#include"DS18B20.h"#include"ptr.h"#include"Dig.h"#include<math.h>#defineC_IRQ4_4KHz 0x0040unsignedintTemp_Data(void);intmain(void){floatabs(flaotnumber);//求絕對值函數(shù)聲明intten,sone,point_0,point_1;floatm;Temp=ReadTemp();//獲取溫度值//Temp為0if(Temp==0){k=0;}//Temp為正數(shù),做判斷if(Temp>0){if(Temp/10==0)//表示要LCD501顯示四位,如8.97,小數(shù)點后精確兩位{sone=Temp*10/10;//取個位的值point_0=Temp*10%10;//取小數(shù)點后第一位的值point_1=Temp*100%10;//取小數(shù)點后第二位的值}else//表示LCD501顯示5位,如18.97,小數(shù)點后精確兩位{ten=Temp/10;//取十位的值sone=Temp%10;//取個位的值point_0=Temp*10%10;//取小數(shù)點后第一位的值point_1=Temp*100%10;//取小數(shù)點后第二位的值}}//Temp為負(fù)數(shù),做判斷if(Temp<0){if(abs(Temp)/10==0)//表示要顯示5位,如-8.97,小數(shù)點后精確兩位{m=abs(Temp);//Temp取絕對值sone=m*10/10;//取個位的值point_0=m*10%10;//取小數(shù)點后第一位的值point_1=m*100%10;//取小數(shù)點后第二位的值}Else//表示LCD501顯示6位,如-18.97,小數(shù)點后精確兩位{m=abs(Temp);//Temp取絕對值ten=m/10;//取十位的值sone=m%10;//取個位的值point_0=m*10%10;//取小數(shù)點后第一位的值point_1=m*100%10;//取小數(shù)點后第二位的值}//取絕對值子函數(shù)floatabs(flaotnumber){number=number*(-1);returnunmber;}}unsignedintTemp_Data(void){ unsignedintuiTemp; //臨時變量// unsignedintuiSignal; //保存符號 unsignedintuiData; //保存溫度 uiTemp=Data[1]; uiData=0;// if(uiTemp&0x0080)// uiSignal=1;// else// uiSignal=0; //為正 if(uiTemp&0x0004) uiData+=64; if(uiTemp&0x0002) u

溫馨提示

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

評論

0/150

提交評論