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

下載本文檔

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

文檔簡介

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

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

3、,使電路大大的簡化。DS18B20傳感器利用單片機進行控制,簡單而且易于智能化控制。設(shè)計中還加入了nRF905無線收發(fā)模塊,可以實現(xiàn)一定距離的溫度數(shù)據(jù)傳輸,使得設(shè)計模塊可以進行遠距離的檢測和控制。此次設(shè)計根據(jù)具體實驗制作,給出了系統(tǒng)實現(xiàn)的硬件原理圖及軟件流程圖。該設(shè)計模塊測量精度高、擴展方便,具有一定的參考價值。設(shè)計布線簡單,結(jié)構(gòu)緊湊,體積小,擴展方便,可在一定距離進行無線檢測,在大型倉庫,工廠,智能化建筑等領(lǐng)域的溫度檢測中有廣闊的應(yīng)用前景。關(guān)鍵詞:DS18B20 STC89C52 nRF905無線收發(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研究背景與意義隨著社會的發(fā)展、科技的進步以及人們生活水平的逐步提高,現(xiàn)如今自動化、信息化程度越來越高,單片機和傳感器的應(yīng)用領(lǐng)域越來越廣。各種方便于生活的自動控制系統(tǒng)進入了人們的生活。單片機和傳感器在自動控制中的應(yīng)用越來越廣泛,它實用性強,使用方便,技術(shù)先進,它們的廣泛應(yīng)用是科技進步的標(biāo)志?,F(xiàn)實中溫度控制不適當(dāng)導(dǎo)致的發(fā)霉,腐爛問

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

35、3.2)CD. 杭州飛拓電子科技有線公司. 7溫度傳感器DS18B20資料.附錄一:原理圖上位機Labview數(shù)據(jù)顯示程序前面板后面板labview程序附錄二:源程序代碼- 24 - /*此程序為nRF905的發(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); /延時500uspr

39、esence = DQ;DQ=1; /*18B20寫命令函數(shù)*/向 1-WIRE 總線上寫一個字節(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個字節(jié)函數(shù)*/從總線上讀取一個字節(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;/負溫度求補碼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時都不顯示if(n) display3=0x0b;/負溫度時最高位顯示"-" 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. 本站所有資源如無特殊說明,都需要本地電腦安裝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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論