無線數(shù)顯溫度計(jì)的設(shè)計(jì)_第1頁
無線數(shù)顯溫度計(jì)的設(shè)計(jì)_第2頁
無線數(shù)顯溫度計(jì)的設(shè)計(jì)_第3頁
無線數(shù)顯溫度計(jì)的設(shè)計(jì)_第4頁
無線數(shù)顯溫度計(jì)的設(shè)計(jì)_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第 I 頁西南交大設(shè)計(jì)說明書 無線數(shù)顯溫度計(jì)的設(shè)計(jì)摘 要當(dāng)今社會,遠(yuǎn)距離的溫度數(shù)據(jù)采集已經(jīng)很有必要。而且溫度測量的準(zhǔn)確度及結(jié)構(gòu)的簡化程度也對生產(chǎn)效益有很大影響。在工農(nóng)業(yè)生產(chǎn)現(xiàn)場,甚至在日常生活中,也會有許多需要進(jìn)行溫度的測量以及范圍性監(jiān)控的地方。眾所周知,可能會有種種外界環(huán)境條件的限制,例如高溫、礦井等等人類難以接觸的環(huán)境或者需要非接觸測溫。傳統(tǒng)的溫度計(jì)已經(jīng)不能滿足測量要求。這個時候我們就需要一個可以遠(yuǎn)程測量和數(shù)字顯示的溫度計(jì)。本設(shè)計(jì)提出了一種遠(yuǎn)距離測量溫度數(shù)據(jù)的思路,采用無線模塊NRF24L01、AT89S52單片機(jī)和數(shù)字式的溫度傳感器構(gòu)成一個遠(yuǎn)距離測溫系統(tǒng)。系統(tǒng)通過簡單的通信協(xié)議,實(shí)現(xiàn)無線

2、數(shù)據(jù)傳輸。它是可以實(shí)現(xiàn)遠(yuǎn)程控制的無線測溫系統(tǒng),并且能夠?qū)崿F(xiàn)在百米范圍內(nèi)對環(huán)境溫度0.2-99.9進(jìn)行準(zhǔn)確檢測。基于數(shù)字化的要求,本系統(tǒng)采用LCD1602實(shí)現(xiàn)溫度顯示。關(guān)鍵詞:溫度測量,無線收發(fā),單片機(jī),傳感器第 II 頁西安交大設(shè)計(jì)說明書 The Design of Wireless Digital Thermometer Author:Liu Lixiang Tutor: Li HongxiaAbstractWith the social progress and development, and production needs, the use of wireless communica

3、tion technology temperature remote data acquisition way already more and more be extensived application in various fields. And the degree of accuracy and simplify the structure of temperature measurement has great influence on production efficiency. In the field of industrial and agricultural produc

4、tion, and even in daily life, there will be many need for temperature measurement and monitoring of local. We also know that may limit of various environmental conditions, such as high temperature, mine and so on difficult for humans to contact with the environment. The traditional thermometer has b

5、een unable to meet the measurement requirements. This is when we need a remote measurement and digital display thermometer.The design proposed a wireless temperature measurement solutions and a temperature measurement system by using the wireless RF chip NRF24L01, low power consumption MCU and digit

6、al temperature sensor DS18B20. The system through a simple communication protocol, wireless data transmission. It is remote control wireless temperature measurement system can be achieved, and can realize the environment temperature 0.2-99.9 accurate detection in the range of 100 meters. This system

7、 uses LCD1602 to achieve temperature display.Keywords: Temperature measurement, Wireless transceiver, MCU, Sensor第 III 頁西安交大畢業(yè)設(shè)計(jì)說明書 目 錄1 緒論11.1課題背景、目的、意義11.2無線溫度采集系統(tǒng)發(fā)展?fàn)顩r11.3本課題的研究內(nèi)容22 方案的確定與關(guān)鍵器件選擇32.1系統(tǒng)方案的初步構(gòu)想32.2關(guān)鍵器件的確定42.2.1 傳感器的確定42.2.2 短距離無線通信模塊的確定43 各模塊電路設(shè)計(jì)53.1發(fā)射模塊的電路設(shè)計(jì)53.1.1 溫度數(shù)據(jù)測量電路設(shè)計(jì)53.1.2 控

8、制電路設(shè)計(jì)63.1.3 信號發(fā)射電路設(shè)計(jì)83.2接收模塊的電路設(shè)計(jì)103.2.1 信號接收電路設(shè)計(jì)103.2.2 數(shù)據(jù)顯示電路設(shè)計(jì)114 軟件設(shè)計(jì)146.1 軟件調(diào)試196.2硬件調(diào)試206.3焊接調(diào)試21結(jié) 論22第 IV 頁西安交大設(shè)計(jì)說明書 致 謝23參考文獻(xiàn)24附錄:系統(tǒng)程序25第 58 頁西安交大設(shè)計(jì)說明書 1 緒論1.1課題背景、目的、意義伴隨著社會生活的提高。人們的要求越來越高,現(xiàn)代的工作、科研、社會生產(chǎn)需要的單片機(jī)精密性、智能化程度也是在不斷提升的。而單片機(jī)在巨大的市場需求刺激下也飛速發(fā)展,逐漸的從功能單一到功能多樣化,以及拓展運(yùn)用的不斷開發(fā)也越來越豐富。單片機(jī)的確給人帶來了很

9、大的進(jìn)步。溫度測量技術(shù)與單片機(jī)的結(jié)合正是其中一個具有代表性的應(yīng)用。溫度數(shù)據(jù)采集在各種工農(nóng)業(yè)生產(chǎn)中具有極其重要的實(shí)用性。而現(xiàn)在使用的常規(guī)意義上的溫度計(jì)大多精度上都不是很高。而且這些溫度測量裝置有太多的限制性,不能數(shù)字化的顯示出溫度值,所以通常都會有數(shù)值上的讀取誤差。另外傳統(tǒng)溫度計(jì)采用的水銀等熱容量都比較大,也就是說測溫時間會有些長。最后傳統(tǒng)溫度計(jì)在實(shí)際應(yīng)用中在很多地方通常都是鞭長莫及。本課題設(shè)計(jì)的無線數(shù)顯溫度計(jì)。首先我采用的是數(shù)字顯示,與非數(shù)字顯示的溫度測量系統(tǒng)相比較,數(shù)字顯示的系統(tǒng)在數(shù)據(jù)讀取方面更為便利,測量的溫度更為準(zhǔn)確。縱觀溫度計(jì)的發(fā)展歷程,溫度計(jì)的精確性越來越高,而無論是生活中還是工業(yè)生

10、產(chǎn)中,對溫度計(jì)的要求也越來越高。像是在人類不能接觸的環(huán)境或者需要采取分區(qū)采樣的環(huán)境。這些都是實(shí)際應(yīng)用中常規(guī)溫度計(jì)無法或難以完成的任務(wù)。無線通信技術(shù)的發(fā)展使得溫度采集更加簡單易行,方便快捷。所以本設(shè)計(jì)有一定的社會使用性。1.2無線溫度采集系統(tǒng)發(fā)展?fàn)顩r近年來,無線溫度采集系統(tǒng)被引用于各個領(lǐng)域,已經(jīng)成為我們生活中不可或缺的一部分。當(dāng)前對無線式的溫度采集的研究也也來越多,越來越被更多人關(guān)注和重視。各式各樣的無線溫度采集系統(tǒng)被廣泛的應(yīng)用于不同的環(huán)境。而無論是哪種溫度采集系統(tǒng),溫度傳感器都是必不可少的選擇。現(xiàn)代意義的溫度傳感器,技術(shù)方面已經(jīng)極為成熟。生產(chǎn)和生活中的應(yīng)用也已經(jīng)十分常見。而數(shù)字式的溫度傳感器可

11、以直接將環(huán)境溫度轉(zhuǎn)化為數(shù)字信號,而且并不需要中間的數(shù)字模擬轉(zhuǎn)換電路以及信號放大的電路等外圍模塊。因此大大的簡化了系統(tǒng)的組成。1.3本課題的研究內(nèi)容本設(shè)計(jì)研究的內(nèi)容主要通過溫度傳感器DS18B20實(shí)現(xiàn)對外部溫度的采集,利用兩塊無線傳輸模塊NRF24L01分別作為發(fā)射和接收芯片,并通過單片機(jī)控制,最終把溫度以數(shù)字形式顯示在LCD液晶顯示屏上。我們這里將整個系統(tǒng)分為兩個模塊,由溫度傳感器和52單片機(jī)以及一片NRF24L01組成的采集溫度跟發(fā)射系統(tǒng);有另外一片NRF24L01,52單片機(jī)以及LCD液晶顯示屏組成的接收跟溫度顯示系統(tǒng)。本設(shè)計(jì)的主要內(nèi)容有:(1)作為溫度傳感器的DS18B20采集外部環(huán)境的

12、溫度,并且能滿足設(shè)計(jì)要求的測溫范圍。(2)作為無線收發(fā)模塊的兩片NRF24L01能分別在設(shè)計(jì)要求的距離內(nèi)發(fā)射跟接收信號。(3)用LCD液晶顯示屏顯示出數(shù)字式溫度。(4)溫度顯示至少能精度到小數(shù)點(diǎn)后一位。2 方案的確定與關(guān)鍵器件選擇2.1系統(tǒng)方案的初步構(gòu)想本設(shè)計(jì)準(zhǔn)備采用由溫度傳感器,無線通信模塊以及顯示電路構(gòu)成無線測溫系統(tǒng)。系統(tǒng)的結(jié)構(gòu)對系統(tǒng)的功能影響很大,本系統(tǒng)要最終能用溫度傳感器實(shí)現(xiàn)溫度數(shù)據(jù)的采集、并在經(jīng)過單片機(jī)的簡單處理之后能通過無線通信模塊實(shí)現(xiàn)無線數(shù)據(jù)的收發(fā),并能夠數(shù)字化的顯示出外部環(huán)境的溫度。因此我將本設(shè)計(jì)的系統(tǒng)分為幾個模塊,分別實(shí)現(xiàn)以上幾個功能。發(fā)射模塊:本部分的工作原理是由數(shù)字溫度傳

13、感器測溫并把數(shù)據(jù)傳輸?shù)街醒肟刂茊卧兄醒肟刂茊卧幚碓偻ㄟ^無線收發(fā)電路向外發(fā)送信號。具體結(jié)構(gòu)圖如圖2.1所示。圖2.1 發(fā)射模塊結(jié)構(gòu)框圖接收模塊:接收模塊在本設(shè)計(jì)中將運(yùn)用另一片NRF24L01作為信號的接收芯片,同樣以單片機(jī)作為主控單元,最后用LCD1602顯示出數(shù)字化的溫度值。本部分的工作原理:NRF24L01接收發(fā)射模塊中發(fā)射的信號然后將接收到的信號傳輸?shù)絾纹瑱C(jī)中,單片機(jī)經(jīng)過數(shù)據(jù)的處理,最終在液晶顯示屏LCD1602顯示出溫度值。具體結(jié)構(gòu)圖如圖2.2所示。圖2.2 接收模塊結(jié)構(gòu)圖2.2關(guān)鍵器件的確定2.2.1 傳感器的確定在選擇溫度傳感器上,傳統(tǒng)的模擬式傳感器具有很多優(yōu)點(diǎn),例如測量裝換速

14、度快,溫度測量的范圍較快等1。但是傳統(tǒng)的模擬式傳感器輸出的模擬信號需要先進(jìn)過取樣、放大和模數(shù)轉(zhuǎn)換電路的處理,最后才能將轉(zhuǎn)換的數(shù)字信號交由處理控制系統(tǒng)處理。這樣電路的設(shè)計(jì)將會極為復(fù)雜,元器件數(shù)量難以下降,也會隨之影響產(chǎn)品的可靠性。另外模擬信號轉(zhuǎn)換為數(shù)字信號的過程中精度不能保證。而直接采用數(shù)字式的溫度計(jì)則不需要數(shù)模轉(zhuǎn)換電路,直接輸出的是數(shù)字溫度信號,所以數(shù)字式的溫度傳感器的輸出信號更加穩(wěn)定,準(zhǔn)確度更高,抗干擾能力更強(qiáng)。考慮到以上的情況,本次設(shè)計(jì)采用是溫度傳感器。2.2.2 短距離無線通信模塊的確定無線通信模塊的的開發(fā),在近年來已經(jīng)被世界上的各個芯片生產(chǎn)廠家研究和利用起來。無線通信芯片通常都呈現(xiàn)模塊

15、化,大部分功能都集中在芯片內(nèi)部,而且大部分的外部電路及其器件都是自己配置好的,所有的高頻元件:電感、電容、晶振振蕩器等都集成在芯片內(nèi)部。然而在與單片機(jī)的配合應(yīng)用上,通過查閱資料,我了解的幾種無線芯片中NRF24L01 可以直接接單片機(jī)串口使用,數(shù)據(jù)無需曼徹斯特編碼,可直接傳輸串口數(shù)據(jù),效率高發(fā)射電流為9mA,接收電流為11mA最大輸出功率+10dBm 速率為20Kbps約10個外圍元件 數(shù)量需要外接天線的數(shù)量(分別為收發(fā)用)是一個,綜合以上的各個條件都極為符合本次的設(shè)計(jì)需要。因此我在本次設(shè)計(jì)中用NRF24L01做為系統(tǒng)的無線通信模塊。3 各模塊電路設(shè)計(jì)3.1發(fā)射模塊的電路設(shè)計(jì)3.1.1 溫度數(shù)

16、據(jù)測量電路設(shè)計(jì)DS18B20S是一個能直接輸出數(shù)字信號的溫度傳感器2。其引腳排列圖如圖3.1所示。圖3.1 DS18B20引腳排列圖其引腳定義如下:(1)DQ是單數(shù)據(jù)總線,是作為芯片的數(shù)字信號輸入/輸出端;(2)GND是接地端;(3)VDD是外接供電電源接入端;DS18B20是數(shù)字式的溫度傳感器,在與單片機(jī)的連接中只有DQ需要與單片機(jī)連接。在實(shí)際運(yùn)用和大多數(shù)需要測溫的仿真實(shí)驗(yàn),DS18B20也一直應(yīng)用廣泛。而且數(shù)字式的溫度傳感器直接輸出數(shù)字信號,在與單片機(jī)的連接中不需要復(fù)雜的外接電路 3。,具體連接圖如圖3.2所示。圖3.2 DS18B20與單片機(jī)連接圖3.1.2 控制電路設(shè)計(jì)AT89S52單

17、片機(jī)片片內(nèi)數(shù)據(jù)儲存內(nèi)含128 字節(jié)的RAM4。其具體引腳結(jié)構(gòu)如圖3.3 所示。圖3.3 AT89S52引腳圖單片機(jī)有40 個引腳,其中P0到P3總共由有32個外部雙向I/O端口;中斷系統(tǒng)也包括外部中斷0、外部中斷1、T0、T1、T2等數(shù)個中斷源;我們在實(shí)際應(yīng)用中大多選用12MHZ的晶振;并且單片機(jī)還具有看門狗定時器;具有斷電標(biāo)志POF等等5。其引腳定義如下:VCC:電源端。GND:接地端。P0口:P0口是漏極開路型雙向I/O口。P1口:P1口是一個內(nèi)部帶上拉電阻的8位雙向I/O口。P2口:P2口也是一個內(nèi)部帶上拉電阻的8位雙向I/O口。P3口:P3口是雙功能端口。作為普通I/O口使用時,同P1

18、、P2口一樣,P3口還具備第二功能。RST:復(fù)位輸入。ALE/PROG:地址鎖存控制信號(ALE)在訪問外部程序存儲器時,鎖存低8 位地址的輸出脈沖。PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。EA/VPP:使能端。XTAL1:振蕩器反相放大器的輸入端。XTAL2:振蕩器反相放大器的輸出端。 具體的單片機(jī)最小系統(tǒng)如圖3.4所示。圖3.4 單片機(jī)最小系統(tǒng)控制電路主控電路采用單片機(jī)位主控芯片,配合外圍電路兩個33PF電容、12MHZ的晶振以及復(fù)位電路構(gòu)成。3.1.3 信號發(fā)射電路設(shè)計(jì)NRF24L01是一個集成芯片 6。可以同時滿足發(fā)射信號和接收信號的要求。所以在

19、發(fā)射模塊和接收模塊電路中各接入一片NRF24L01以實(shí)現(xiàn)兩塊模塊中的無線通信。它的引腳圖如圖3.5所示。圖3.5 NRF24L01引腳圖在本設(shè)計(jì)的實(shí)際應(yīng)用中NRF24L01是已經(jīng)配置好功能的模塊,其引腳定義如下:VCC:電源端,常用電壓為3.3V。GND:接地端。CE:數(shù)字輸入端,RX或者是TX模式的選擇CSN:數(shù)字輸入端,SPI的片選信號。SCK:數(shù)字輸入端,SPI時鐘。MOSI:數(shù)字輸入端,從SPI中數(shù)據(jù)的輸入腳。MISO:數(shù)字輸入端,從SPI中數(shù)據(jù)的輸出腳。IRQ:數(shù)字輸入端,可屏蔽中斷腳。NRF24L01無線集成模塊式可以直接與單片機(jī)的I/O端口相聯(lián)接的7。本次設(shè)計(jì)中,具體接口電路如圖

20、3.6所示。J9用來表示無線模塊NRF24L01。(1)、數(shù)據(jù)通過NRF24L01發(fā)送時,使能端置“1”,芯片開始工作。(2)、送入接收模塊中起到接收作用的NRF24L01的地址和數(shù)據(jù)。(3)、使能端置“0”,激發(fā)NRF24L01進(jìn)行發(fā)射。(4)、NRF24L01正式開始ShockBurstTM發(fā)射圖3.6 發(fā)射模塊NRF24L01與單片機(jī)接口電路前面提到NRF24L01的工作電壓在3.3V到3.6V,而單片機(jī)的工作電壓時5.0V。因此單片機(jī)不能和無線發(fā)射模塊共用一個電源,通過查閱資料,這里有一個解決方案。通過一個變壓模塊來ASM1117變換到適用于NRF24L01的電壓8。ASM1117通過

21、對輸出電壓采樣,然后反饋到調(diào)節(jié)電路去調(diào)節(jié)輸出級調(diào)整管的阻抗,當(dāng)輸出電壓偏低時,就調(diào)節(jié)輸出級的阻抗變小從而減小調(diào)整管的壓降,當(dāng)輸出電壓偏高時,就調(diào)節(jié)輸出級的阻抗變大從而增大調(diào)整管的壓降,這樣就維持了輸出電壓的穩(wěn)定。ASM1117 引腳圖如圖3.7所示。 其引腳定義如下:(1)VIN是外接電源輸入端(2)GND/ADJ是接地端;(3)VOUT是輸出電壓端;圖3.7 ASM1117引腳圖AMS1117是一款正電壓輸出低壓差的三端線性穩(wěn)壓電路。AMS1117及其外圍電路可以滿足多個固定電壓的要求。本設(shè)計(jì)采用ASM1117及其外圍模塊構(gòu)成的變壓電路作為NRF24L01的電源輸入。具體的穩(wěn)壓變壓模塊如圖3

22、.8所示。圖3.8 變壓電路3.2接收模塊的電路設(shè)計(jì)3.2.1 信號接收電路設(shè)計(jì)接收模塊中的接收芯片仍然是集成芯片NRF24L01,芯片的具體特點(diǎn)在這里就不做重復(fù)贅述。在ShockBurstTM收發(fā)模式下,接收數(shù)據(jù)時,自動把CRC校驗(yàn)碼移去。其接收流程如下:(1)、NRF24L01初始化,寫入地址和接收數(shù)據(jù)的容量。(2)、進(jìn)入接收狀態(tài),把CE端置高電平。(3)、延時之后。NRF24L01開始等待接收數(shù)據(jù)。(4)、判斷接收到的數(shù)據(jù)是否正確。(5)、NRF24L01通過DR1置高電平通知微處理器。(6)、微控制器把數(shù)據(jù)從NRF24L01移出。(7)、數(shù)據(jù)移完之后,把DR1置“0”,此時,分為兩個狀

23、態(tài),當(dāng)使能端為“1”,就繼續(xù)等待接收數(shù)據(jù);當(dāng)使能端為“0”,接收流程停止。在接收模塊電路中NRF24L01與單片機(jī)的連接基本不變。具體接口電路如圖3.9所示。J5用來表示無線模塊NRF24L01。圖3.9 接收模塊NRF24L01與單片機(jī)接口電路3.2.2 數(shù)據(jù)顯示電路設(shè)計(jì)本次設(shè)計(jì)的數(shù)據(jù)顯示模塊由LCD1602完成。LCD1602液晶也被稱為1602字符型液晶,它是專門用來顯示字母、數(shù)字、符號等的點(diǎn)陣型的一種液晶模塊。LCD1602由若干個5X7或者5X11等點(diǎn)陣字符位組成。考慮本設(shè)計(jì)只需要顯示數(shù)字型溫度,1602可以很好的完成設(shè)局要求。不能顯示圖像的缺點(diǎn)可以忽略不計(jì) 9。其具體的引腳結(jié)構(gòu)如圖

24、3.12所示。圖3.10LCD1602引腳結(jié)構(gòu)圖其引腳定義如下:第1腳:GND為接地端。第2腳:VCC為高電平輸入端。第3腳:V0引腳用來調(diào)整液晶屏的對比度,連接VCC時對比度最弱,連接GND電源時對比度最高。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:RW位讀寫端口,接VCC時為讀。第6腳:E使能端,高電平時讀取信息,負(fù)跳變時執(zhí)行指令。第714腳:D0D7為8位雙向數(shù)據(jù)端。15腳背光正極。16腳背光負(fù)極。單片機(jī)與LCD具體連接電路如圖3.11所示。圖中用J3表示LCD1602。圖3.11 LCD1602與單片機(jī)的接口電路設(shè)計(jì)中采用LCD1602液晶模塊直

25、接與單片機(jī)的P1口連接作為系統(tǒng)的顯示模塊,P3口的P3.0到P3.2分別連接液晶模塊的使能信號E,數(shù)據(jù)/命令選擇RS,R/W讀寫端口。4 軟件設(shè)計(jì)4.1發(fā)射模塊軟件設(shè)計(jì)開始本系統(tǒng)采用DS18B20采集環(huán)境溫度10,將數(shù)字信號傳遞到單片機(jī),單片機(jī)讀取外部溫度信號并做出處理,再將處理后的數(shù)據(jù)經(jīng)無線發(fā)送模塊調(diào)制后發(fā)送。無線發(fā)射模塊的軟件流程如圖4.1所示。初始化延時地址、寬度、內(nèi)容讀取溫度數(shù)據(jù)處理是否發(fā)送標(biāo)識N Y數(shù)據(jù)發(fā)送延時 結(jié)束圖4.1 發(fā)射模塊軟件流程4.2接收模塊軟件設(shè)計(jì)接收系統(tǒng)電路上電后,主函數(shù)開始初始化液晶和無線模塊然后開始數(shù)據(jù)接收,接收到數(shù)據(jù)后對數(shù)據(jù)進(jìn)行校驗(yàn),看接收到的數(shù)據(jù)是否準(zhǔn)確,若

26、果不正確則返回重新校驗(yàn),正確就繼續(xù)進(jìn)行檢測以及對數(shù)據(jù)的緩存和處理11。最后將處理完的數(shù)據(jù)在LCD上顯示溫度值。無線接收模塊的軟件流程如圖4.2所示。開始初始化LCD、無線模塊數(shù)據(jù)接收數(shù)據(jù)檢驗(yàn)數(shù)據(jù)是否準(zhǔn)確數(shù)據(jù)是否收完NYN Y數(shù)據(jù)緩存Y數(shù)據(jù)處理顯示溫度結(jié)束圖4.2 接收模塊軟件流程程序流程圖的設(shè)計(jì)就是對程序流程編寫的設(shè)計(jì)。只有畫好程序流程圖才能清晰的寫出程序執(zhí)行的過程,這樣才不至于程序編寫混亂。程序流程圖的順序是直觀明了的,這將有利于在接下來的程序編寫時出現(xiàn)錯誤時能及時的找出并改正,從而節(jié)省了大量的時間。通過程序分析圖可以很清楚的知道設(shè)計(jì)任務(wù),然后進(jìn)行任務(wù)的分析,通過分析各個模塊的控制程序和各程

27、序模塊之間的信號傳遞接口便很容易的設(shè)計(jì)需要達(dá)到這個目標(biāo)所設(shè)計(jì)的多種算法,然后通過比較各種算法的優(yōu)缺點(diǎn)和難易程度然后選擇最優(yōu)程序算法。確定程序算法之后便可以設(shè)計(jì)流程圖,然后再根據(jù)程序流程圖編寫軟件,之后進(jìn)行軟件運(yùn)行調(diào)試,看是否有錯誤,如果出現(xiàn)錯誤之后要分析是編寫錯誤還是設(shè)計(jì)的流程圖錯誤,如果流程圖錯誤的話就需要修改程序流程圖,如果程序流程圖沒有錯誤,便要檢查程序編寫過程中是否出現(xiàn)過錯誤,從而修正程序,然后繼續(xù)調(diào)試,周而復(fù)始,直到把程序能夠在軟件上能夠正確編譯。5 總體電路設(shè)計(jì)發(fā)射模塊的總體電路圖總共由電源模塊、單片機(jī)的最小系統(tǒng)、溫度采集模塊DS18B20、無線通信(發(fā)射)模塊組成。電源模塊中,由

28、外部5.0V供電,經(jīng)由AMS1117穩(wěn)壓降壓為3.3V之后為NRF24L01 供電;單片機(jī)最小系統(tǒng)中,18,19接外部振蕩電路,9端接復(fù)位電路,EA端接:“1”;溫度采集模塊中,DS18B20接在單片機(jī)的P1口上;無線通信模塊中,NRF24L01由單片機(jī)的P2端口控制。本系統(tǒng)由溫度傳感器DS18B20作為溫度采集模塊,采集的溫度信號傳輸?shù)絾纹瑱C(jī)中并經(jīng)過了單片機(jī)的處理之后,將信號傳輸?shù)綗o線模塊NRF24L01中。發(fā)射模塊總體電路圖如圖5.1所示。圖5.1 發(fā)射模塊總體電路圖接收模塊總體電路總共由電源模塊、單片機(jī)最小系統(tǒng)、無線通信(接收)模塊、LCD顯示電路組成。電源模塊中,由外部5.0V供電,經(jīng)

29、由AMS1117穩(wěn)壓降壓為3.3V之后為NRF24L01 供電;單片機(jī)最小系統(tǒng)中,18,19接外部振蕩電路,9端接復(fù)位電路,EA端接“1”;LCD顯示電路中,雙向數(shù)據(jù)端口D0到D7接在單片機(jī)的P1上,使能端E,讀寫R/W,寄存RS分別接在P3.0到P3.2。無線通信模塊中,NRF24L01由單片機(jī)的P2端口控制。本系統(tǒng)中由無線模塊NRF24L01接收從發(fā)射模塊發(fā)射的信號,再經(jīng)由單片機(jī)處理接收到的信號,最后在LCD1602液晶顯示屏上數(shù)字化的顯示溫度值。接收模塊總體電路圖如圖5.2所示。圖5.2 接收電路總體電路圖6 調(diào)試結(jié)果6.1 軟件調(diào)試在軟件程序的調(diào)試上,在程序的編寫上采用KeilC軟件分

30、別對發(fā)射模塊和接收模塊的程序做編譯測試12。在軟件編寫方面,采用化整為零的思想,把整個程序劃分為幾個模塊,把這些模塊編寫成H文件,然后在編寫主程序時把它們分別像添加"REG52.h"一樣把他們都添加進(jìn)來,以便程序調(diào)用。在編寫顯示程序時第一次遇到了這個問題,怎么樣使顯示內(nèi)容的時間跳動連續(xù),沒有突變現(xiàn)象。開始時使用程序的定時中斷顯示要顯示的內(nèi)容,每次到達(dá)預(yù)定設(shè)置的時間時就顯示需要顯示的內(nèi)容,后來發(fā)現(xiàn)這樣顯示導(dǎo)致有時上一個沒有顯示完成,下一次中斷又到來的情況。最后通過查閱相關(guān)的例子,仿照別人的程序,在主程序中讀取所要顯示的內(nèi)容,然后把要顯示的內(nèi)容填寫到數(shù)組中,然后在中斷中設(shè)置一個

31、標(biāo)志位,每次中斷的時間為50ms,當(dāng)標(biāo)志位計(jì)數(shù)到十次,也就是500ms時顯示一次讀取的數(shù)據(jù),而顯示的秒位為1秒變化一次,所以顯示的內(nèi)容不會出現(xiàn)跳變的現(xiàn)象。發(fā)射模塊程序的編譯結(jié)果如圖6.1所示。圖6.1 發(fā)射模塊程序編譯結(jié)果接收模塊程序的編譯結(jié)果如圖6.2所示。圖6.2 發(fā)射模塊程序編譯結(jié)果6.2硬件調(diào)試在完成了軟件的編譯以及硬件的焊接工作后,通過單片機(jī)程序燒寫軟件將發(fā)射、接收兩部分程序編譯后的hex文件燒寫進(jìn)AT89S52單片機(jī)中。最后進(jìn)行上電調(diào)試。這部分的調(diào)試主要是測試的是由發(fā)射模塊發(fā)射的信號,接收模塊能否在一定距離內(nèi)接收。并且最后把溫度值顯示在LCD液晶顯示屏上。檢測效果圖如圖6.3所示。

32、圖6.3 硬件調(diào)試檢測結(jié)果圖6.3焊接調(diào)試在經(jīng)過了軟件部分和硬件的調(diào)試之后,一個必須面對的過程就是焊接各個元器件,完成了初步的的焊接之后,上電測試過程中,LCD顯示屏一直顯示的不夠明亮,檢查各個模塊電路,沒有發(fā)現(xiàn)明顯焊接錯誤,然后在經(jīng)過詢問有豐富的焊接經(jīng)驗(yàn)的同學(xué),并向他們請教之后發(fā)現(xiàn),LCD顯示屏引腳中V0引腳是影響顯示屏對比度的主要因素,接高電平時對比度在差,接低電平時對比度最高,中間可以接滑動變阻器調(diào)節(jié)。然后找到這個引腳,果然這個引腳連到了高電平。經(jīng)過簡單的電路修改,重新上電測試,然而測試過程仍然不是很順利。雖然在接收模塊上的LCD顯示屏顯示出了數(shù)字化的溫度值,但是在經(jīng)過對傳感器的溫度變化

33、測試中,發(fā)現(xiàn)顯示電路中,溫度值始終保持不變。既然軟件程序調(diào)試過程中能夠編譯成功,并且在LCD上能夠顯示溫度值,說明軟件和硬件都沒有問題。經(jīng)過簡單的分析,確定問題最大的可能還是出在軟件程序上,這設(shè)計(jì)到一個程序循環(huán)的過程,是不是程序不能夠完整的循環(huán),導(dǎo)致程序只能運(yùn)行一次,即發(fā)射模塊只發(fā)射一次溫度信號。有過這個分析之后,重新檢查了程序,果然,在發(fā)射采集的模塊程序中,是沒有循環(huán)的。認(rèn)識到這個失誤之后,經(jīng)過改正,再次上電測試后,接收模塊已經(jīng)能動態(tài)的顯示出環(huán)境中的溫度值。自此,本次設(shè)計(jì)最終完成。結(jié) 論設(shè)計(jì)完成的系統(tǒng)可以準(zhǔn)確的以無線發(fā)射的形式在LCD液晶顯示屏上顯示出當(dāng)前溫度。NRF24L01無線收發(fā)模塊可

34、以實(shí)現(xiàn)設(shè)計(jì)要求的距離內(nèi)無線信號的傳輸。并達(dá)到要求精度。在完成本次設(shè)計(jì)的過程中,不僅鞏固了單片機(jī)的專業(yè)知識和LCD液晶顯示的相關(guān)知識,而且學(xué)會了無線收發(fā)模塊的簡單使用。本設(shè)計(jì)雖然完成了基本的設(shè)計(jì)要求,達(dá)到了要求的精度。但是設(shè)計(jì)中仍然存在這一些不足,不如說受無線收發(fā)芯片的限制導(dǎo)致的無線信號傳輸距離不夠遠(yuǎn)的問題,這樣很大程度上局限了該溫度測量系統(tǒng)的使用空間。解決這個問題可以更換無線模塊或者添加天線等方法。但是因?yàn)樵O(shè)計(jì)條件局限,不能做到更加完美。再比如,本設(shè)計(jì)還可以進(jìn)行許多功能擴(kuò)展,單片機(jī)的許多I/O端口沒有被使用,所以可以為本系統(tǒng)添加其他的檢測功能,例如濕度、光照等。使系統(tǒng)更加完善,能夠被應(yīng)用與更廣

35、闊的環(huán)境中。致 謝時光荏苒,轉(zhuǎn)眼大學(xué)時光就要走到盡頭。而作為大學(xué)期間最后一個任務(wù)的畢業(yè)設(shè)計(jì)無疑是對我們這幾年學(xué)習(xí)的專業(yè)知識最好的考卷。在此次畢業(yè)設(shè)計(jì)即將順利完成之時,我對大學(xué)期間所有大學(xué)期間教誨過我的所有老師拜師衷心的謝意,是她們孜孜不倦的教誨讓我掌握了許多專業(yè)知識,我才會有能力做此設(shè)計(jì)。參考文獻(xiàn)1 丁鎮(zhèn)生傳感器與傳感技術(shù)應(yīng)用M北京:科學(xué)出版社,2002:332 何希才傳感器及其應(yīng)用電路M北京:電子工業(yè)出版社,2001:603 沙占友智能化集成溫度傳感器原理M北京:機(jī)械工業(yè)出版社,2002:56 4 胡漢才單片機(jī)原理及其接口技術(shù)M北京:清華大學(xué)出版社,2004:50 5 李廣弟單片機(jī)基礎(chǔ)M北京

36、:北京航空航天出版社,1992:346鄭維智, 張海濱短距離無線通信在控制中的應(yīng)用J.數(shù)據(jù)通信,200242(12):40-417 程海英,陳勇. 無線傳感器技術(shù)在智能家居系統(tǒng)的應(yīng)用J.中國科技信息,200720(9):56-588 胡天明,齊建家等基于NRF24L01無線加速度測量系統(tǒng)設(shè)計(jì)J龍黑江工程學(xué)院學(xué)報(bào)(自然科學(xué)版),200822(59-62)9 夏大勇,周曉輝LCD的簡單開發(fā)J.工業(yè)儀表與自動化裝置,2007(1) :43-4610 趙繼文傳感器與應(yīng)用電路設(shè)計(jì)M北京:科學(xué)出版社,2002:4811 Clive SeagerPicaxe infrared remote controlJ

37、. Silicon Chip,2004Vol.17: 90-9312 Kuhn, Jochen;Vogt, PatrikDiffraction experiments with infrared remote controlsJ. Physics Teacher,2012Vol.50: 118-119附錄:系統(tǒng)程序#include <reg52.h>#include <intrins.h>typedef unsigned char uchar;typedef unsigned char uint;/*NRF24L01端口定義*sbit MISO=P25;sbitSCK

38、=P26;sbitCE =P27;sbitCSN=P20;sbit MOSI=P21;sbitIRQ=P22;/*LED*sbitled=P16;/*DS1820端口設(shè)置*sbit DQ=P10 ;/*數(shù)碼管0-9編碼*uchar seg10=0xC0,0xCF,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90; /09段碼uchar seg110=0x40,0x4F,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10; uchar data temp_data2=0x00,0x00;/溫度采集數(shù)據(jù)緩沖區(qū)uchar dispaly20;

39、/顯示緩沖區(qū)/*uint bdata sta; /NRF24L01狀態(tài)標(biāo)志sbitRX_DR=sta6;sbitTX_DS=sta5;sbitMAX_RT=sta4;/*NRF24L01*#define TX_ADR_WIDTH 5 / 本機(jī)地址寬度設(shè)置#define RX_ADR_WIDTH 5 / 接收方地址寬度設(shè)置#define TX_PLOAD_WIDTH 20 / 4 字節(jié)數(shù)據(jù)長度#define RX_PLOAD_WIDTH 20/ 4 字節(jié)數(shù)據(jù)長度uint const TX_ADDRESSTX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01;/本地地址uin

40、t const RX_ADDRESSRX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01;/接收地址/*NRF24L01寄存器指令,詳細(xì)請對照,Page18*#define READ_REG 0x00 / 讀寄存器指令#define WRITE_REG 0x20 / 寫寄存器指令#define RD_RX_PLOAD 0x61 / 讀取接收數(shù)據(jù)指令#define WR_TX_PLOAD 0xA0 / 寫待發(fā)數(shù)據(jù)指令#define FLUSH_TX 0xE1 / 沖洗發(fā)送 FIFO指令#define FLUSH_RX 0xE2 / 沖洗接收 FIFO指令#define R

41、EUSE_TX_PL 0xE3 / 定義重復(fù)裝載數(shù)據(jù)指令#define NOP 0xFF / 保留/*SPI(nRF24L01)寄存器地址,詳細(xì)請對照,Page18-24*#define CONFIG 0x00 / 配置收發(fā)狀態(tài),CRC校驗(yàn)?zāi)J揭约笆瞻l(fā)狀態(tài)響應(yīng)方式#define EN_AA 0x01 / 自動應(yīng)答功能設(shè)置#define EN_RXADDR 0x02 / 可用信道設(shè)置#define SETUP_AW 0x03 / 收發(fā)地址寬度設(shè)置#define SETUP_RETR 0x04 / 自動重發(fā)功能設(shè)置#define RF_CH 0x05 / 工作頻率設(shè)置#define RF_SETU

42、P 0x06 / 發(fā)射速率、功耗功能設(shè)置#define STATUS 0x07 / 狀態(tài)寄存器#define OBSERVE_TX 0x08 / 發(fā)送監(jiān)測功能#define CD 0x09 / 地址檢測 #define RX_ADDR_P0 0x0A / 頻道0接收數(shù)據(jù)地址#define RX_ADDR_P1 0x0B / 頻道1接收數(shù)據(jù)地址#define RX_ADDR_P2 0x0C / 頻道2接收數(shù)據(jù)地址#define RX_ADDR_P3 0x0D / 頻道3接收數(shù)據(jù)地址#define RX_ADDR_P4 0x0E / 頻道4接收數(shù)據(jù)地址#define RX_ADDR_P5 0x0F

43、 / 頻道5接收數(shù)據(jù)地址#define TX_ADDR 0x10 / 發(fā)送地址寄存器#define RX_PW_P0 0x11 / 接收頻道0接收數(shù)據(jù)長度#define RX_PW_P1 0x12 / 接收頻道0接收數(shù)據(jù)長度#define RX_PW_P2 0x13 / 接收頻道0接收數(shù)據(jù)長度#define RX_PW_P3 0x14 / 接收頻道0接收數(shù)據(jù)長度#define RX_PW_P4 0x15 / 接收頻道0接收數(shù)據(jù)長度#define RX_PW_P5 0x16 / 接收頻道0接收數(shù)據(jù)長度#define FIFO_STATUS 0x17 / FIFO棧入棧出狀態(tài)寄存器設(shè)置/*NRF2

44、4L01函數(shù)申明*void Delay(unsigned int s);void inerDelay_us(unsigned char n);void init_NRF24L01(void);uint SPI_RW(uint uchar);uchar SPI_Read(uchar reg);void SetRX_Mode(void);uint SPI_RW_Reg(uchar reg, uchar value);uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars);uint SPI_Write_Buf(uchar reg, uchar

45、*pBuf, uchar uchars);unsigned char nRF24L01_RxPacket(unsigned char* rx_buf);void nRF24L01_TxPacket(unsigned char * tx_buf);/*DS18B20函數(shù)申明*void delay1(uint i);void ds_reset(void);void write_byte(uchar value);uchar read_byte(void);void read_temp();void work_temp();/*/*延時函數(shù)/*/void inerDelay_us(unsigned

46、char n)for(;n>0;n-)_nop_();/*/*NRF24L01初始化/*/void init_NRF24L01(void) inerDelay_us(100); CE=0; / chip enable CSN=1; / Spi disable SCK=0; / Spi clock line init highSPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); / 寫本地地址SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH);

47、/ 寫接收端地址SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); / 頻道0自動ACK應(yīng)答允許SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); / 允許接收地址只有頻道0,如果需要多頻道可以參考Page21 SPI_RW_Reg(WRITE_REG + RF_CH, 0); / 設(shè)置信道工作為2.4GHZ,收發(fā)必須一致SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /設(shè)置接收數(shù)據(jù)長度,本次設(shè)置為4字節(jié)SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); /設(shè)置發(fā)射速率為1Mkbps,發(fā)射功率為最大值0dB/*/*函數(shù):uint SPI_RW(uint uchar)/*功能:NRF24L01的SPI寫時序,詳細(xì)看時序圖,Page19/*/uint SPI_

溫馨提示

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

評論

0/150

提交評論