基于51單片機(jī)系統(tǒng)的溫度檢測(cè)與無(wú)線收發(fā)設(shè)計(jì)_第1頁(yè)
基于51單片機(jī)系統(tǒng)的溫度檢測(cè)與無(wú)線收發(fā)設(shè)計(jì)_第2頁(yè)
基于51單片機(jī)系統(tǒng)的溫度檢測(cè)與無(wú)線收發(fā)設(shè)計(jì)_第3頁(yè)
基于51單片機(jī)系統(tǒng)的溫度檢測(cè)與無(wú)線收發(fā)設(shè)計(jì)_第4頁(yè)
基于51單片機(jī)系統(tǒng)的溫度檢測(cè)與無(wú)線收發(fā)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、項(xiàng)目名稱: 無(wú)線溫度檢測(cè)系統(tǒng)設(shè)計(jì) 學(xué)生姓名: 李俊達(dá) 學(xué)生學(xué)號(hào): 0904010209 學(xué)生專業(yè): 測(cè)控技術(shù)與儀器 學(xué)生班級(jí): 02 指導(dǎo)老師: 李國(guó)平 學(xué)生成績(jī): 現(xiàn)代測(cè)控技術(shù)課程設(shè)計(jì) 武漢工程大學(xué) 制 2021年12月1日- 1 -目錄摘要 .3Abstract .4第1章 緒論 .51.1 設(shè)計(jì)背景與意義 .51.2 設(shè)計(jì)目的及應(yīng)用 .51.3 設(shè)計(jì)內(nèi)容及要求 .5第二章 系統(tǒng)方案論證與選擇 .62.1 系統(tǒng)總體方案描述 .62.2 系統(tǒng)總體框圖 .62.3 系統(tǒng)硬件構(gòu)成 .6第3章 系統(tǒng)硬件主要單元設(shè)計(jì) .73.1 主控制模塊 .73.2 數(shù)據(jù)顯示模塊 .93.3 信號(hào)采集模塊 .93

2、.4 無(wú)線收發(fā)模塊 .10第4章 系統(tǒng)軟件設(shè)計(jì) .114.1 程序設(shè)計(jì)思路 .114.2 程序設(shè)計(jì)框圖 .12第5章 系統(tǒng)硬件調(diào)試結(jié)果圖 .,.155.1 系統(tǒng)仿真.155.2 系統(tǒng)硬件調(diào)試 .155.3 調(diào)試結(jié)果.16第6章 心得體會(huì)及總結(jié) .16參考文獻(xiàn) .17附錄一:原理圖 .17附錄:源程序代碼.18摘 要隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)和傳感器技術(shù)已經(jīng)普及到我們生活,工作等各個(gè)領(lǐng)域。新型DS18B20溫度傳感器擺脫了傳統(tǒng)的以熱敏電阻為傳感器的溫度測(cè)量方法,而改為一種全新的,以數(shù)字溫度傳感器作感溫元件的數(shù)字式溫度計(jì),解決了傳統(tǒng)的溫度檢測(cè)可靠性差,測(cè)量溫度準(zhǔn)確率低的缺點(diǎn),它以單總線的連接方式

3、,使電路大大的簡(jiǎn)化。DS18B20傳感器利用單片機(jī)進(jìn)行控制,簡(jiǎn)單而且易于智能化控制。設(shè)計(jì)中還加入了nRF905無(wú)線收發(fā)模塊,可以實(shí)現(xiàn)一定距離的溫度數(shù)據(jù)傳輸,使得設(shè)計(jì)模塊可以進(jìn)行遠(yuǎn)距離的檢測(cè)和控制。此次設(shè)計(jì)根據(jù)具體實(shí)驗(yàn)制作,給出了系統(tǒng)實(shí)現(xiàn)的硬件原理圖及軟件流程圖。該設(shè)計(jì)模塊測(cè)量精度高、擴(kuò)展方便,具有一定的參考價(jià)值。設(shè)計(jì)布線簡(jiǎn)單,結(jié)構(gòu)緊湊,體積小,擴(kuò)展方便,可在一定距離進(jìn)行無(wú)線檢測(cè),在大型倉(cāng)庫(kù),工廠,智能化建筑等領(lǐng)域的溫度檢測(cè)中有廣闊的應(yīng)用前景。關(guān)鍵詞:DS18B20 STC89C52 nRF905無(wú)線收發(fā)模塊AbstractWith the progress of The Times and d

4、evelopment, SCM and sensor technology has spread to we live, work, and other fields. New temperature sensor DS18B20 from the traditional to thermal resistor sensor for temperature measurement, and instead of a completely new kind of to digital temperature sensors for temperature of components of the

5、 digital thermometer, solve the traditional temperature detection poor reliability, low temperature measurement accuracy of weakness, it with single bus connections, the circuit greatly simplified. The sensor DS18B20 using single chip computer control, simple and easy to intelligent control. Design

6、also joined the nRF905 wireless transceiver module, can achieve certain distance of the temperature data transmission, make design module can be for long in the detection and control.This design according to the specific experimental production, gives the principle diagram of the system hardware and

7、 software flow chart. This design module measurement precision, expansion easier, to have the certain reference value. Design wiring simple, compact structure, small volume, convenient expansion in a certain distance wireless detection, in a large warehouse, factory, intelligent building and other a

8、reas of temperature in detecting have broad application prospects.Keywords: DS18B20 STC89C52 nRF905 wireless transceiver module第一章 緒論1.1研究背景與意義隨著社會(huì)的發(fā)展、科技的進(jìn)步以及人們生活水平的逐步提高,現(xiàn)如今自動(dòng)化、信息化程度越來(lái)越高,單片機(jī)和傳感器的應(yīng)用領(lǐng)域越來(lái)越廣。各種方便于生活的自動(dòng)控制系統(tǒng)進(jìn)入了人們的生活。單片機(jī)和傳感器在自動(dòng)控制中的應(yīng)用越來(lái)越廣泛,它實(shí)用性強(qiáng),使用方便,技術(shù)先進(jìn),它們的廣泛應(yīng)用是科技進(jìn)步的標(biāo)志?,F(xiàn)實(shí)中溫度控制不適當(dāng)導(dǎo)致的發(fā)霉,腐爛問(wèn)

9、題是倉(cāng)庫(kù)日常工作急需解決的問(wèn)題,是衡量倉(cāng)庫(kù)管理質(zhì)量的重要指標(biāo)。它直接影響到儲(chǔ)備物資的使用壽命和工作可靠性。為保持日常工作的順利進(jìn)行,首要任務(wù)是加強(qiáng)倉(cāng)庫(kù)的溫度檢測(cè)。同時(shí)專門(mén)的安排人員去定期去倉(cāng)庫(kù)測(cè)量溫度也非常麻煩,因此設(shè)計(jì)一種自動(dòng)檢測(cè)和顯示溫度,并且能夠進(jìn)行較遠(yuǎn)距離的無(wú)限傳輸?shù)臏囟瓤刂圃O(shè)備很有必要。1.2 研究目的及應(yīng)用溫度的檢測(cè)與控制是工業(yè)生產(chǎn)過(guò)程中應(yīng)用比較廣泛的課題,隨著傳感器在生產(chǎn)和生活中更加廣泛的應(yīng)用,利用新型單總線式數(shù)字溫度傳感器實(shí)現(xiàn)對(duì)溫度的單點(diǎn)和多點(diǎn)的測(cè)試與控制得到很快開(kāi)發(fā)。但就目前情況看,很少有人對(duì)倉(cāng)庫(kù)進(jìn)行自動(dòng)化檢測(cè)和管理,大多數(shù)的倉(cāng)庫(kù)在管理過(guò)程中依然是使用傳統(tǒng)的工作方法,利用溫度

10、計(jì)等簡(jiǎn)單檢測(cè)工具人工檢測(cè)倉(cāng)庫(kù)溫濕度。這種方法不僅費(fèi)時(shí)、費(fèi)力,而且效率低下。市場(chǎng)需要普及一種簡(jiǎn)單、實(shí)用、易操作并且可以進(jìn)行無(wú)線傳輸?shù)臏囟葯z測(cè)設(shè)備。1.3 設(shè)計(jì)內(nèi)容及要求本文著重闡述以單片機(jī)控制,溫度傳感器DS18B20對(duì)溫度的數(shù)據(jù)采集和處理,NRF905無(wú)線發(fā)送和接收模塊的應(yīng)用,4位共陽(yáng)極數(shù)碼管對(duì)溫度傳感器處理后的溫度進(jìn)行顯示,實(shí)現(xiàn)一定距離上的定點(diǎn)溫度自動(dòng)檢測(cè)和發(fā)送接收。第二章 系統(tǒng)方案論證與選擇2.1 系統(tǒng)總體方案描述系統(tǒng)設(shè)計(jì)分為2個(gè)部分,第一個(gè)部分實(shí)現(xiàn)溫度的檢測(cè)、顯示和發(fā)送,第二個(gè)部分為數(shù)據(jù)的接收和顯示。第一個(gè)設(shè)計(jì)模塊中,利用單片機(jī)STC89C52控制溫度傳感器DS18B20定點(diǎn)檢測(cè)和處理溫

11、度數(shù)據(jù),單片機(jī)將采集的溫度數(shù)據(jù)發(fā)送給單片機(jī),再通過(guò)單片機(jī)控制,對(duì)接收到的溫度數(shù)據(jù)進(jìn)行一定的轉(zhuǎn)換和處理,然后存放在寄存器中,等待下一步處理,再經(jīng)過(guò)無(wú)線發(fā)送模塊nRF905將顯示的數(shù)據(jù)打包發(fā)送給第二個(gè)模塊。第二個(gè)設(shè)計(jì)模塊中,同樣利用STC89C52單片機(jī)作為控制主體,先控制nRF905無(wú)線接收模塊接收第一個(gè)模塊發(fā)送的數(shù)據(jù),然后控制4位共陽(yáng)極數(shù)碼管顯示接收到的數(shù)據(jù)。則完成整個(gè)設(shè)計(jì)流程。2.2 系統(tǒng)總體框圖系統(tǒng)的設(shè)計(jì)框圖如圖1所示:?jiǎn)纹瑱C(jī)STC89C52控 制控 制控 制 第一模塊nRF905無(wú)線發(fā)送模塊共陽(yáng)極數(shù)碼管DS18B20溫度傳感器 溫度采集 溫度顯示 發(fā)送溫度數(shù)據(jù)單片機(jī)STC89C52nRF

12、905無(wú)線接收模塊控 制 接收溫度數(shù)據(jù) 第二模塊控 制共陽(yáng)極數(shù)碼管 顯示溫度數(shù)據(jù)圖1 系統(tǒng)框圖2.3 系統(tǒng)硬件構(gòu)成系統(tǒng)硬件方面主要由單片機(jī)最小系統(tǒng),溫度傳感器DS18B20,4位共陽(yáng)極數(shù)碼管,還有nRF905無(wú)線收發(fā)模塊組成,目的在于實(shí)現(xiàn)溫度的準(zhǔn)確檢測(cè)和無(wú)線收發(fā)所檢測(cè)的溫度數(shù)據(jù)。第三章 系統(tǒng)硬件電路設(shè)計(jì)3.1 單片機(jī)最小系統(tǒng)設(shè)計(jì)單片機(jī)最小系統(tǒng)的設(shè)計(jì)主要有五個(gè)部分組成,電源電路,復(fù)位電路,晶振電路,串口電路和控制主體的STC89C52單片機(jī)。電源電路由一個(gè)六腳的按鍵開(kāi)關(guān),一個(gè)1K的電阻,一個(gè)10uF的極性電容和一個(gè)顯示電路供電狀態(tài)的發(fā)光二極管組成。開(kāi)關(guān)為了適應(yīng)各種情況下能夠方便供電,開(kāi)關(guān)外接有一

13、個(gè)USB接口和一個(gè)DC-5V的標(biāo)準(zhǔn)電源接口作為供電設(shè)備使用。除此之外還設(shè)計(jì)了一個(gè)外接電源接口。電源電路如圖2所示。圖2 電源電路復(fù)位電路組成很簡(jiǎn)單,僅僅有4個(gè)小器件構(gòu)成,一個(gè)是作為復(fù)位控制的四腳按鍵,一個(gè)10uF的極性電容,還有兩個(gè)電阻,阻值分別為1K和10K。電路與單片機(jī)的RST端口連接,電路上電后,按下按鍵控制系統(tǒng)復(fù)位。具體電路如圖3所示:圖3 復(fù)位電路晶振電路更為簡(jiǎn)單,只有3個(gè)器件,一個(gè)11.0592Hz的晶振外加二個(gè)30PF的普通電容組成,晶振兩端分別與單片機(jī)的XTAL1和XTAL2口相接。電路如圖4所示:圖4 晶振電路串口電路主要利用MAX232來(lái)實(shí)現(xiàn),MAX232是美信公司設(shè)計(jì)的一

14、款單電源電平轉(zhuǎn)換芯片,在本次設(shè)計(jì)中的使用的方法是在MAX232的1和3管腳之間,4和5管腳之間,2和16管腳之間,6和15管腳之間,還有16和16管腳之間全部加上一個(gè)0.1uF的電容,7和8管腳作為串口輸入端,外接一個(gè)標(biāo)準(zhǔn)9孔串口母頭,9和10管腳作為輸出,分別與單片機(jī)的P3.0和P3.1連接。這樣就構(gòu)成了與單片機(jī)連接,可以進(jìn)行串口通信的串口電路。具體電路圖5所示:圖5 串口電路單片機(jī)最小系統(tǒng)的主體部分使用的是STC89C52單片機(jī),它是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能的CMOS 8位單片機(jī),片內(nèi)寄存器可反復(fù)擦洗,含有32個(gè)可編程雙向I/O口,3個(gè)16位定時(shí)/計(jì)數(shù)器,共8個(gè)中斷源。需要指

15、出且注意的是,單片機(jī)在系統(tǒng)設(shè)計(jì)時(shí),管腳EA要始終接高電平。因?yàn)镋A接高電平時(shí),單片機(jī)讀取內(nèi)部程序存儲(chǔ)器。當(dāng)擴(kuò)展有外部ROM時(shí),讀取完內(nèi)部ROM后自動(dòng)讀取外部ROM,EA接低電平時(shí),單片機(jī)直接讀取外部ROM。 而設(shè)計(jì)中使用的STC89C52是有內(nèi)部ROM的,所以此引腳始終接高電平。一般在設(shè)計(jì)單片機(jī)最小系統(tǒng)時(shí),大多會(huì)加上流水燈和獨(dú)立鍵盤(pán)的設(shè)計(jì),但是在我的畢業(yè)設(shè)計(jì)中把這些部分作了改進(jìn)??紤]到流水燈和獨(dú)立鍵盤(pán)這些設(shè)計(jì)如果完整的加入就會(huì)造成一定的浪費(fèi),而且由于學(xué)校實(shí)驗(yàn)室的條件有限,PCB板的刻錄存在很多問(wèn)題,因此這些設(shè)備會(huì)大大增加硬件調(diào)試過(guò)程的難度,費(fèi)時(shí)費(fèi)力。同時(shí),在設(shè)計(jì)單片機(jī)最小系統(tǒng)時(shí),考慮到不加入這

16、些設(shè)備的話,以后又有可能需要用到。所以中和上面各種因素,在最小系統(tǒng)的設(shè)計(jì)部分最后只是增加了二個(gè)獨(dú)立鍵盤(pán)和二個(gè)LED發(fā)光二極管作為調(diào)試或需要時(shí)使用,同時(shí),考慮到以后可能還會(huì)外接其它設(shè)備的介入,為了方便,特意留有兩排20腳的單排插針外接端口,這樣,設(shè)計(jì)的最小系統(tǒng)模塊在需要時(shí)也可以控制其它外接裝置。使得設(shè)計(jì)模塊更加靈活多用,不僅僅局限在本次畢業(yè)設(shè)計(jì)中使用,還可以留作以后的開(kāi)發(fā)板學(xué)習(xí)。最小系統(tǒng)的主體STC89C52如圖6所示:圖6 STC89C52管腳接線圖3.2 數(shù)據(jù)顯示模塊設(shè)計(jì)數(shù)據(jù)顯示電路使用的是SMA410364型號(hào)的4位共陽(yáng)極數(shù)碼管,其內(nèi)部結(jié)構(gòu)圖如下面圖7所示:圖7 數(shù)碼管內(nèi)部結(jié)構(gòu)圖該數(shù)碼管共

17、有12個(gè)管腳,其中11,7,4,2,1,10,5,3管腳分別對(duì)應(yīng)數(shù)碼管的A,B,C,D,E,F,G,DP段選位,與單片機(jī)的P0口連接,對(duì)應(yīng)單片機(jī)的P0.0-P0.7口,用來(lái)控制數(shù)碼管顯示數(shù)值大小,6,8,9,12管腳控制數(shù)碼管的位選,分別與單片機(jī)的P2.0-P2.4口連接,通過(guò)單片機(jī)指令選擇需要顯示數(shù)據(jù)的數(shù)碼管位。我們知道,在單片機(jī)的端口上電后會(huì)一直存在高電平,而數(shù)碼管的位選正好是高電平有效,所以會(huì)導(dǎo)致在不需要使用數(shù)碼管的時(shí)候,數(shù)碼管依然會(huì)保持打開(kāi)狀態(tài)。通常情況下會(huì)在單片機(jī)最小系統(tǒng)中使用鎖存器與數(shù)碼管連接,但是在這次設(shè)計(jì)中沒(méi)有使用鎖存器,而是改用在數(shù)碼管與單片機(jī)端口連接之間加一個(gè)PNP三極管的

18、方法,讓三極管發(fā)射極接電源,基集與單片機(jī)端口連接,集電極與數(shù)碼管連接,這樣的設(shè)計(jì)就會(huì)導(dǎo)致單片機(jī)端口給低電平時(shí)才會(huì)選通數(shù)碼管,不僅方便控制,而且電路設(shè)計(jì)簡(jiǎn)單。設(shè)計(jì)原理圖如圖8所示:圖8 數(shù)碼管電路3.3 信號(hào)采集模塊設(shè)計(jì)信號(hào)采集部分主要由溫度傳感器DS18B20進(jìn)行1DS1820溫度傳感器外觀圖和引腳圖如圖9所示,三個(gè)管腳定義如下:10圖9 DS18B20外觀和引腳圖 引腳1接地; 引腳2數(shù)字信號(hào)輸入/輸出; 引腳3接高電平5V高電平。2DS18B20溫度采集模塊設(shè)計(jì)10此模塊的設(shè)計(jì)中STC89C52單片機(jī)作為控制主體,溫度傳感器DS18B20采集溫度,溫度傳感器DS18B20是一種單線接口傳感

19、器,所以連接電路很簡(jiǎn)單,只要將其管腳DQ接單片機(jī)的一個(gè)端口進(jìn)行溫度采集,VDD接高電平,GND接地即可。設(shè)計(jì)中的DQ端被設(shè)計(jì)成連接單片機(jī)的P1.3端口。根據(jù)DS18B20的工作原理、內(nèi)部結(jié)構(gòu)圖、時(shí)序圖,還有DS18B20的ROM指令操作碼,編寫(xiě)DS18B20的操作代碼,采集溫度樣本,將采集的樣本數(shù)據(jù)存放在寄存器中等待下一步處理。3.4無(wú)線收發(fā)模塊設(shè)計(jì) 無(wú)線收發(fā)模塊的功能實(shí)現(xiàn)主要是用nRF905無(wú)線收發(fā)模塊實(shí)現(xiàn)的1nRF905接口電路和管腳說(shuō)明9圖11 nRF905管腳圖(1)VCC為電源接入端,一般接入的電壓在3.3V-3.6V之間,不能超過(guò)3.6V,不然很容易將模塊燒壞,建議使用3.3V(2

20、)TX_EN為數(shù)字輸入端口,當(dāng)TX_EN置1時(shí)為T(mén)X輸入模式,當(dāng)TX_EN置0時(shí)為RX輸入模式(3)TRX_CE也是數(shù)字輸入端,它控制使能芯片的發(fā)射和接收(4)PWR_UP是給芯片上電的數(shù)字輸入端口(5)uCLK為時(shí)鐘輸出端口,此管腳在使用過(guò)程中一般廢棄不用(6)CD數(shù)字輸出端進(jìn)行載波檢測(cè)(7)AM數(shù)字輸出端進(jìn)行地址匹配(8)DR數(shù)字輸出端,接收和發(fā)送數(shù)據(jù)完成(9)MISO和MOSI分別為SPI輸出輸入端口(10)SCK和CSN分別為SPI的時(shí)鐘和使能端口(11)13和14管腳為相同的二個(gè)接地端口.2nRF905無(wú)線收發(fā)模塊設(shè)計(jì)該模塊的設(shè)計(jì)中使用到了AMS1117芯片,目的是將上電端口輸入的5

21、V電壓轉(zhuǎn)換成適合nRF905模塊使用的3.3V工作電壓,轉(zhuǎn)換電路中由于使用的是AMS1117芯片,所以設(shè)計(jì)簡(jiǎn)單許多,只需要在芯片的輸入端和接地端之間,輸出端和接地端之間分別并聯(lián)上一個(gè)普通電容和一個(gè)極性電容即可,電路設(shè)計(jì)如圖12所示:圖12 AMS1117變壓電路芯片AMS1117輸出的電壓與無(wú)線收發(fā)模塊的VCC口連接,PWR_UP,TX_EN,TRX_CE,MISO,MOSI,SCK,CSN分別對(duì)應(yīng)單片機(jī)的P1.0,P1.1,P1.2,P1.4,P1.5,P1.6,P1.7端口,AM,DR,CD分別對(duì)應(yīng)單片機(jī)的P3.2,P3.3,P3.4端口,uCLK端口廢棄不用,最后的兩個(gè)GND端口全部接地

22、,這樣就組成了nRF905的無(wú)線控制模塊??梢赃M(jìn)行程序的調(diào)控使用了。nRF905模塊的無(wú)線發(fā)射接收電路主要利用nRF905與外圍器件構(gòu)成的電路組成,設(shè)計(jì)中使用的是購(gòu)買的成品模塊,其內(nèi)部電路結(jié)構(gòu)沒(méi)有詳細(xì)研究,其主要部分是天線。他利用特定的形狀可以將電流轉(zhuǎn)化為射頻能量并以電波形式發(fā)射出去或?qū)o(wú)線電波接收進(jìn)來(lái)。第四章 系統(tǒng)軟件設(shè)計(jì)4.1 程序設(shè)計(jì)思路程序設(shè)計(jì)使用的軟件是是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng)Keil C51。與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。 程序設(shè)計(jì)過(guò)程中,首要的是會(huì)熟練使用各種數(shù)碼管,即要了解

23、數(shù)碼管的構(gòu)造,也要了解其工作原理,并且能夠編寫(xiě)各種數(shù)碼管的顯示程序,當(dāng)能夠做到這一步,然后還要了解溫度傳感器的內(nèi)部結(jié)構(gòu)和工作原理,還有寄存器的工作方式和讀寫(xiě)時(shí)序圖,然后根據(jù)它的ROM和RAM指令編寫(xiě)工作代碼,通過(guò)單片機(jī)讀取后控制數(shù)碼管顯示。編寫(xiě)DS18B20的操作代碼時(shí),先初始化傳感器,然后分別讀它的位和比特,然后是寫(xiě)比特,然后開(kāi)始主要的轉(zhuǎn)換過(guò)程程序設(shè)計(jì),轉(zhuǎn)換時(shí)要判斷正負(fù),如果為負(fù)值,則取其值的反碼后加1,得到正值,然后在前面顯示“-”號(hào),最后設(shè)計(jì)單片機(jī)控制讀取DS18B20的寄存器數(shù)據(jù),通過(guò)數(shù)碼管顯示。設(shè)計(jì)了溫度顯示程序后開(kāi)始設(shè)計(jì)無(wú)線發(fā)送程序,同樣的需要了解nRF905的結(jié)構(gòu),工作原理寄存器

24、和時(shí)序圖,還有SPI口的設(shè)置。設(shè)計(jì)程序時(shí),一般先給寄存器配置參數(shù),通過(guò)SPI口想配置寄存器讀寫(xiě)配置信息。然后編寫(xiě)它的寫(xiě)操作和讀操作代碼,主機(jī)通過(guò)SPI接口向配置寄存器寫(xiě)入信息,最后是它的發(fā)送指令代碼。在編寫(xiě)接收代碼程序時(shí),和發(fā)送的代碼過(guò)程相似,參考后面的程序附錄。4.2 程序流程圖溫度采集模塊的程序設(shè)計(jì)要特別注意溫度傳感器DS18B20的代碼編寫(xiě),在充分了解很清楚DS18B20的基礎(chǔ)上根據(jù)其指令碼,寄存器等編寫(xiě)其讀寫(xiě)指令,以及溫度處理轉(zhuǎn)換代碼,然后編寫(xiě)數(shù)碼管的顯示程序,然后合并,構(gòu)成總的程序流程。Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows界面。其中uVi

25、sion與Ishell分別是C51為Windows和Dos的集成開(kāi)發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。使用簡(jiǎn)單方便。設(shè)計(jì)的數(shù)據(jù)采集模塊具體流程圖15所示:初始化跳過(guò)ROM 進(jìn)行數(shù)據(jù)轉(zhuǎn)換發(fā)送存儲(chǔ)器命令讀取溫度值判斷正負(fù) 取反加一 負(fù)值 正值 結(jié)束圖15 數(shù)據(jù)采集流程圖溫度采集時(shí)是,首先將DS18B20進(jìn)行初始化設(shè)置,然后才能進(jìn)行后面的操作。這也是使用各種傳感器設(shè)備的最基本步驟,然后是根據(jù)先前編寫(xiě)的溫度傳感器代碼讀取傳感器采集的溫度數(shù)據(jù),存儲(chǔ)在其寄存器中,然后進(jìn)行控制轉(zhuǎn)換程序。如果采集的溫度是正值,那么就控制單片機(jī)直接讀取經(jīng)NRF905發(fā)送。如果溫度數(shù)據(jù)是負(fù)值,那

26、么要進(jìn)行取反加一后變成正值數(shù)據(jù)再通過(guò)無(wú)線設(shè)備發(fā)送出去。無(wú)線發(fā)送流程圖如圖16所示:開(kāi)始TRX_CE, TXEN全部置高射頻寄存器開(kāi)啟,數(shù)據(jù)打包發(fā)送,DR=1TRX-CE=1? N AUTO-RET=1 N前導(dǎo)碼完成后置DR=0 N 結(jié)束 圖16 無(wú)線發(fā)送流程圖初始化nRF905,將接收點(diǎn)的地址和要發(fā)送的有效數(shù)據(jù)將通過(guò)SPI接口傳送給nRF905。將TRX-CE和TX-EN全部置為高電平來(lái)激活nRF905的ShockBurst的發(fā)送模式。通過(guò)nRF905的ShockBurst可使射頻寄存器自動(dòng)開(kāi)啟,并完成數(shù)據(jù)包的發(fā)送,DR置高。然后判斷TRX-CE電平,如果置低將返回初始不進(jìn)行后面的操作,如果置

27、高,那么將AUTO-RETRAN也設(shè)置為高電平,從而使nRF905將連續(xù)不斷地重復(fù)發(fā)送數(shù)據(jù)包,直到TRX-CE被設(shè)置為低電平為止;而當(dāng)TRX-CE被設(shè)置為低電平時(shí),DR=0,nRF905則結(jié)束數(shù)據(jù)傳輸,并將自己設(shè)置為空閑模式。 在ShockBurst模式下,只要開(kāi)始發(fā)送數(shù)據(jù),TRX-CE和TX-EN的引腳無(wú)論是高電平還是低電平,發(fā)送過(guò)程都會(huì)被保證處理完畢。 無(wú)線接收流程圖如圖17所示:開(kāi)始TRX_CE=1,TXEN=0接收部分檢測(cè)載波,CD置高 ADDR正確? NDR和AM置低AM為低AM置高 移去字頭地址CRC? N從SPI接收數(shù)據(jù)DR置高TRX-CE=0? N進(jìn)入空閑狀態(tài) 結(jié)束 圖17 無(wú)

28、線接收流程圖首先,將TRX-CE置為高,TX-EN置為低,nRF905進(jìn)入接收模式,然后不斷監(jiān)測(cè)有無(wú)信號(hào),等待接收;當(dāng)nRF905檢測(cè)到有和接收頻率相同的載波時(shí),其載波檢測(cè)引腳CD置為高電平;此后,當(dāng)nRF905接收到相匹配的地址時(shí),地址匹配引腳AM置為高電平;在這之后,當(dāng)nRF905接收完畢一個(gè)有效的數(shù)據(jù)包(CRC校驗(yàn)正確)時(shí),nRF905將去掉前導(dǎo)碼、地址和CRC位,同時(shí)將數(shù)據(jù)準(zhǔn)備就緒引腳DR置為高電平,并用單片機(jī)將TRX-CN引腳設(shè)置為低電平,以進(jìn)入空閑模式,從而使單片機(jī)能夠通過(guò)SPI接口讀出有效的數(shù)據(jù);當(dāng)所有的數(shù)據(jù)讀出后,nRF905將AM和DR設(shè)置為低電平,以便使nRF905準(zhǔn)備進(jìn)入

29、其它工作模式。第五章 系統(tǒng)仿真與硬件調(diào)試5.1系統(tǒng)仿真系統(tǒng)的仿真過(guò)程是使用proteus仿真軟件進(jìn)行,由于在proteus軟件中找不到NRF905的仿真模塊,所以仿真過(guò)程中沒(méi)有實(shí)現(xiàn)無(wú)線收發(fā)的仿真電路,只是進(jìn)行了溫度檢測(cè)和顯示過(guò)程的仿真操作。仿真圖如圖18所示:圖18 溫度采集仿真圖5.2 系統(tǒng)硬件調(diào)試系統(tǒng)硬件的制作過(guò)程全部在學(xué)校實(shí)驗(yàn)室完成,在制作條件上受到一定的限制。在制作PCB電路板的過(guò)程中,由于打孔機(jī)上的打孔針只有一種直徑的,所以導(dǎo)致過(guò)孔和焊接點(diǎn)的孔徑大小一樣,焊接時(shí)要特別注意分清。因?yàn)橹谱鞯倪^(guò)孔之間是沒(méi)有伏銅,連接過(guò)孔的兩層導(dǎo)線是不相通的,需要手工進(jìn)行焊接,千萬(wàn)不可漏焊。所以在硬件的調(diào)試

30、過(guò)程要注意過(guò)孔的問(wèn)題。另外,在制作電路電路板時(shí),使用的是腐蝕刻線,很容易出現(xiàn)斷線現(xiàn)象,所以在焊接器件之前最好將斷線全部焊接好,避免斷線導(dǎo)致調(diào)試過(guò)程的不正?,F(xiàn)象,因?yàn)楹附雍箅娐钒迳系臄嗑€不容易補(bǔ)焊。在電路板的設(shè)計(jì)過(guò)程中要盡量在底層布線,同樣是因?yàn)榭變?nèi)沒(méi)有加銅的原因,如果是頂層走線,就需要在頂層焊接,而頂層焊接時(shí)遇到像數(shù)碼管之類的器件的管腳很難在正面焊接,即使焊接也很容易出現(xiàn)虛焊現(xiàn)象,導(dǎo)致接觸不良。在調(diào)試過(guò)程中,我的電路板出現(xiàn)了正面布線焊接時(shí)出現(xiàn)短路和斷路現(xiàn)象,導(dǎo)致串口無(wú)法使用,模塊供電不正常等現(xiàn)象,最后經(jīng)過(guò)使用萬(wàn)用表仔細(xì)的檢測(cè)后才找出原因,過(guò)程繁瑣異常。調(diào)試過(guò)程主要就是一個(gè)檢測(cè)過(guò)程,一定要有耐心

31、,夠仔細(xì),不然很難找出問(wèn)題的根本原因。所以在電路PCB板的設(shè)計(jì)過(guò)程中,腐蝕刻線過(guò)程中,焊接電路板時(shí)都需要認(rèn)真仔細(xì)對(duì)待,盡量減少因?yàn)橛布?dǎo)致模塊功能不正常的問(wèn)題出現(xiàn),但同時(shí),電路板出現(xiàn)問(wèn)題的調(diào)試過(guò)程也是一個(gè)很好學(xué)習(xí)和經(jīng)驗(yàn)積累過(guò)程,一定要認(rèn)真對(duì)待,自己找原因,不要總是讓別人代勞。5.3 調(diào)試結(jié)果經(jīng)過(guò)不斷認(rèn)真的調(diào)試過(guò)程,且電路的設(shè)計(jì)也沒(méi)有任何問(wèn)題,最后電路板終于能夠完全實(shí)現(xiàn)預(yù)先設(shè)計(jì)的所有功能。第六章 心得與體會(huì)經(jīng)過(guò)一個(gè)星期的現(xiàn)代檢測(cè)技術(shù)課程設(shè)計(jì),我們小組成功地完成了無(wú)線溫度檢測(cè)系統(tǒng)的設(shè)計(jì)。雖然整個(gè)設(shè)計(jì)中我們遇到了很多問(wèn)題,但通過(guò)我們自己九個(gè)人的分工,查找資料,調(diào)試、仿真,不斷地調(diào)整設(shè)計(jì)思路,最終成功

32、地完成了設(shè)計(jì)目標(biāo)。這次課程設(shè)計(jì)讓我自己對(duì)于學(xué)習(xí)現(xiàn)代檢測(cè)技術(shù)有了更深一步地了解,通過(guò)實(shí)際地操作,發(fā)現(xiàn)書(shū)上的理論知識(shí)與在實(shí)際運(yùn)用中的還是有一定的出入的。經(jīng)過(guò)自己不斷地摸索,改進(jìn),從中學(xué)到了很多實(shí)際知識(shí)。整個(gè)設(shè)計(jì)制作中也培養(yǎng)了我的實(shí)際操作能力和團(tuán)隊(duì)合作能力,不僅加強(qiáng)了自己獨(dú)立工作地能力,而且還充分地體會(huì)到了設(shè)計(jì)創(chuàng)作地艱辛,看到制作完成時(shí)也體會(huì)到了成功地喜悅,收獲了不少課外知識(shí)。還有要感謝李老師以及楊老師在我們遇到困難時(shí),給予我們的建議與鼓勵(lì)。設(shè)計(jì)過(guò)程中感受最深的就是編寫(xiě)程序后的調(diào)試過(guò)程,確實(shí)是一個(gè)漫長(zhǎng)而痛苦的過(guò)程。我們根據(jù)顯示的結(jié)果不斷尋找錯(cuò)誤點(diǎn),各個(gè)擊破。雖然很累(每天都熬夜),但是當(dāng)程序跳出來(lái)之

33、后,心中的喜悅是不言而喻的,不管之前多么的痛苦都是值得的!通過(guò)此次課程設(shè)計(jì),我總結(jié)了幾點(diǎn):每一個(gè)系統(tǒng)的生成,都是經(jīng)過(guò)層層周密的思考與測(cè)試而得到的,這需要團(tuán)隊(duì)的合作以及個(gè)人優(yōu)秀的素質(zhì)。寫(xiě)程序過(guò)程中,切記戒驕戒躁,踏踏實(shí)實(shí),一步一個(gè)腳印。學(xué)會(huì)模塊化編程,會(huì)讓你少走很多彎路。當(dāng)程序很多很復(fù)雜時(shí),應(yīng)該寫(xiě)一個(gè)模塊就調(diào)試一個(gè),這樣下來(lái)會(huì)輕松的解決各個(gè)問(wèn)題,而不像你一次性全寫(xiě)完,錯(cuò)了之后再來(lái)調(diào)就很復(fù)雜了。硬件電路的調(diào)試,也是需要極大的耐性,以及擁有良好的電子基礎(chǔ),這個(gè)需要多加練習(xí)。再次感謝我們的李老師.,老師嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;老師循循善誘的教導(dǎo)和不拘一格的思路給予我無(wú)盡的啟

34、迪;這次課程設(shè)計(jì)中離不開(kāi)老師您的細(xì)心指導(dǎo)。而您開(kāi)朗的個(gè)性和寬容的態(tài)度,幫助我能夠很順利的完成了這次課程設(shè)計(jì)。 同時(shí)感謝對(duì)我?guī)椭^(guò)的同學(xué)們,謝謝你們對(duì)我的幫助和支持,讓我感受到同學(xué)的友誼。參考文獻(xiàn)1 丁元杰. 單片微機(jī)原理及應(yīng)用M. 北京:機(jī)械工業(yè)出版社,2005.2 郭天祥. 51單片機(jī)C語(yǔ)言教程M. 北京:電子工業(yè)出版社,2009.3 陳杰,黃鴻. 傳感器與檢測(cè)技術(shù)M. 北京:高等教育出版社,2010.4 李華. 51系列單片機(jī)實(shí)用接口技術(shù)M. 北京:北京航空航天大學(xué)出版社,2002.5 譚浩強(qiáng).C程序設(shè)計(jì)(第四版)M.北京:清華大學(xué)出版社,2012.6 nRF905無(wú)線收發(fā)模塊開(kāi)發(fā)指南(V

35、3.2)CD. 杭州飛拓電子科技有線公司. 7溫度傳感器DS18B20資料.附錄一:原理圖上位機(jī)Labview數(shù)據(jù)顯示程序前面板后面板labview程序附錄二:源程序代碼- 24 - /*此程序?yàn)閚RF905的發(fā)送程序*#include <reg52.h>#include <intrins.h>#define uchar unsigned char #define uint unsigned int/*定義命令字*#define WC 0x00 / Write configuration register command#define RC 0x10 / Read co

36、nfiguration register command#define WTP 0x20 / Write TX Payload command#define RTP 0x21 / Read TXPayload command#define WTA 0x22 / Write TX Address command#define RTA 0x23/*管腳配置*sbitTXEN=P10;sbitTRX_CE=P11;sbitPWR=P12;sbitMISO=P14;sbitMOSI=P15;sbitSCK=P16;sbitCSN=P17;/sbitAM=P33;sbitDR=P34;sbitCD=P3

37、2;sbit DQ=P13;/uchar Txbuf4;uchar display5=0x00,0x00,0x00,0x00,0x00;/前面4字節(jié)是要發(fā)送的內(nèi)容/從前往后是溫度數(shù)據(jù)低位到高位/ 溫度小數(shù)部分查表uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;uint h; uchar flag; /rf905控制信息uchar Rfconfig10=0x4c,0x0c,0x44,0x04,0x04,0xe7,0xe7,0xe7,0xe7,0x5

38、8;uchar data temp_data2=0x00,0x00; void delay(uint x) uint i; for(i=0;i<x;i+) _nop_(); /18b20相關(guān)函數(shù)/*18B20復(fù)位函數(shù)*/void ow_reset(void)char presence=1;while(presence)while(presence)DQ=1;_nop_();_nop_();DQ=0; /delay(50); / 550usDQ=1; / delay(6); / 66uspresence=DQ; / presence=0繼續(xù)下一步 delay(45); /延時(shí)500uspr

39、esence = DQ;DQ=1; /*18B20寫(xiě)命令函數(shù)*/向 1-WIRE 總線上寫(xiě)一個(gè)字節(jié)void write_byte(uchar val)uchar i;for (i=8; i>0; i-) /DQ=1;_nop_();_nop_(); DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();/5usDQ = val&0x01; /最低位移出delay(6); /66usval=val/2; /右移一位DQ = 1;delay(1); /*18B20讀1個(gè)字節(jié)函數(shù)*/從總線上讀取一個(gè)字節(jié)uchar read_byte(void)u

40、char i;uchar value = 0;for (i=8;i>0;i-)DQ=1;_nop_();_nop_();value>>=1;DQ = 0; /_nop_();_nop_();_nop_();_nop_(); /4usDQ = 1;_nop_();_nop_();_nop_();_nop_(); /4us if(DQ)value|=0x80;delay(6); /66usDQ=1;return(value);/*讀出溫度函數(shù)*/void read_temp()ow_reset(); /總線復(fù)位write_byte(0xCC); / 發(fā)Skip ROM命令writ

41、e_byte(0xBE); / 發(fā)讀命令temp_data0=read_byte(); /溫度低8位temp_data1=read_byte(); /溫度高8位ow_reset();write_byte(0xCC); / Skip ROMwrite_byte(0x44); / 發(fā)轉(zhuǎn)換命令/*溫度數(shù)據(jù)處理函數(shù)*/void work_temp()uchar n=0;uchar doth,dotl;uchar flag3=1,flag2=1; /數(shù)字顯示修正標(biāo)記if(temp_data1&0xf8)!=0x00) temp_data1=(temp_data1); temp_data0=(te

42、mp_data0)+1; n=1; flag=1;/負(fù)溫度求補(bǔ)碼if(temp_data0>255)temp_data1+; display4=temp_data0&0x0f;display0=ditabdisplay4;doth=display0/10;dotl=display0%10;display4=(temp_data0&0xf0)>>4)|(temp_data1&0x07)<<4);display3=display4/100;display2=display4/10%10;display1=display4%10;if(!disp

43、lay3) display3=0x0a; flag3=0; if(!display2) display2=0x0a; flag2=0; /最高位為0時(shí)都不顯示if(n) display3=0x0b;/負(fù)溫度時(shí)最高位顯示"-" flag3=0;/905相關(guān)函數(shù)void Spiwrite(uchar dat) uchar i=8; while(i-) delay(10); SCK=0; MOSI=(bit)(dat&0x80); dat<<=1; delay(10); SCK=1; delay(10); SCK=0; SCK=0;void Txpacket(

44、void) TXEN=1; CSN=0; Spiwrite(0x22); Spiwrite(0xe7); Spiwrite(0xe7); Spiwrite(0xe7); Spiwrite(0xe7); CSN=1; _nop_();_nop_(); CSN=0; Spiwrite(0x20); Spiwrite(display0); Spiwrite(display1); Spiwrite(display2); Spiwrite(display3); CSN=1; _nop_();_nop_(); TRX_CE=1; delay(50); while(!DR); TRX_CE=0;void i

45、ni_system(void) uchar i; CSN=1; SCK=0; PWR=1; / PWR_UP | TRX_CE |TXEN | M O D E TRX_CE=0; / 1 | 0 | 0 | SPI Programming TXEN=0; _nop_(); CSN=0; Spiwrite(0x00); for(i=0;i<10;i+) Spiwrite(Rfconfigi); CSN=1;void setmode() PWR=1; / PWR_UP TRX_CE TXEN MODE TRX_CE=1; / 1 1 1 SHOCKBURST TX TXEN=1; delay(1000); /time must be >=650usvoid nRF905Init(void) CSN=1;/ Spi disableSCK=0;/ Spi clock line in

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論