




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第 I 頁西南交大設計說明書 無線數顯溫度計的設計摘 要當今社會,遠距離的溫度數據采集已經很有必要。而且溫度測量的準確度及結構的簡化程度也對生產效益有很大影響。在工農業生產現場,甚至在日常生活中,也會有許多需要進行溫度的測量以及范圍性監控的地方。眾所周知,可能會有種種外界環境條件的限制,例如高溫、礦井等等人類難以接觸的環境或者需要非接觸測溫。傳統的溫度計已經不能滿足測量要求。這個時候我們就需要一個可以遠程測量和數字顯示的溫度計。本設計提出了一種遠距離測量溫度數據的思路,采用無線模塊NRF24L01、AT89S52單片機和數字式的溫度傳感器構成一個遠距離測溫系統。系統通過簡單的通信協議,實現無線
2、數據傳輸。它是可以實現遠程控制的無線測溫系統,并且能夠實現在百米范圍內對環境溫度0.2-99.9進行準確檢測。基于數字化的要求,本系統采用LCD1602實現溫度顯示。關鍵詞:溫度測量,無線收發,單片機,傳感器第 II 頁西安交大設計說明書 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 頁西安交大畢業設計說明書 目 錄1 緒論11.1課題背景、目的、意義11.2無線溫度采集系統發展狀況11.3本課題的研究內容22 方案的確定與關鍵器件選擇32.1系統方案的初步構想32.2關鍵器件的確定42.2.1 傳感器的確定42.2.2 短距離無線通信模塊的確定43 各模塊電路設計53.1發射模塊的電路設計53.1.1 溫度數據測量電路設計53.1.2 控
8、制電路設計63.1.3 信號發射電路設計83.2接收模塊的電路設計103.2.1 信號接收電路設計103.2.2 數據顯示電路設計114 軟件設計146.1 軟件調試196.2硬件調試206.3焊接調試21結 論22第 IV 頁西安交大設計說明書 致 謝23參考文獻24附錄:系統程序25第 58 頁西安交大設計說明書 1 緒論1.1課題背景、目的、意義伴隨著社會生活的提高。人們的要求越來越高,現代的工作、科研、社會生產需要的單片機精密性、智能化程度也是在不斷提升的。而單片機在巨大的市場需求刺激下也飛速發展,逐漸的從功能單一到功能多樣化,以及拓展運用的不斷開發也越來越豐富。單片機的確給人帶來了很
9、大的進步。溫度測量技術與單片機的結合正是其中一個具有代表性的應用。溫度數據采集在各種工農業生產中具有極其重要的實用性。而現在使用的常規意義上的溫度計大多精度上都不是很高。而且這些溫度測量裝置有太多的限制性,不能數字化的顯示出溫度值,所以通常都會有數值上的讀取誤差。另外傳統溫度計采用的水銀等熱容量都比較大,也就是說測溫時間會有些長。最后傳統溫度計在實際應用中在很多地方通常都是鞭長莫及。本課題設計的無線數顯溫度計。首先我采用的是數字顯示,與非數字顯示的溫度測量系統相比較,數字顯示的系統在數據讀取方面更為便利,測量的溫度更為準確。縱觀溫度計的發展歷程,溫度計的精確性越來越高,而無論是生活中還是工業生
10、產中,對溫度計的要求也越來越高。像是在人類不能接觸的環境或者需要采取分區采樣的環境。這些都是實際應用中常規溫度計無法或難以完成的任務。無線通信技術的發展使得溫度采集更加簡單易行,方便快捷。所以本設計有一定的社會使用性。1.2無線溫度采集系統發展狀況近年來,無線溫度采集系統被引用于各個領域,已經成為我們生活中不可或缺的一部分。當前對無線式的溫度采集的研究也也來越多,越來越被更多人關注和重視。各式各樣的無線溫度采集系統被廣泛的應用于不同的環境。而無論是哪種溫度采集系統,溫度傳感器都是必不可少的選擇。現代意義的溫度傳感器,技術方面已經極為成熟。生產和生活中的應用也已經十分常見。而數字式的溫度傳感器可
11、以直接將環境溫度轉化為數字信號,而且并不需要中間的數字模擬轉換電路以及信號放大的電路等外圍模塊。因此大大的簡化了系統的組成。1.3本課題的研究內容本設計研究的內容主要通過溫度傳感器DS18B20實現對外部溫度的采集,利用兩塊無線傳輸模塊NRF24L01分別作為發射和接收芯片,并通過單片機控制,最終把溫度以數字形式顯示在LCD液晶顯示屏上。我們這里將整個系統分為兩個模塊,由溫度傳感器和52單片機以及一片NRF24L01組成的采集溫度跟發射系統;有另外一片NRF24L01,52單片機以及LCD液晶顯示屏組成的接收跟溫度顯示系統。本設計的主要內容有:(1)作為溫度傳感器的DS18B20采集外部環境的
12、溫度,并且能滿足設計要求的測溫范圍。(2)作為無線收發模塊的兩片NRF24L01能分別在設計要求的距離內發射跟接收信號。(3)用LCD液晶顯示屏顯示出數字式溫度。(4)溫度顯示至少能精度到小數點后一位。2 方案的確定與關鍵器件選擇2.1系統方案的初步構想本設計準備采用由溫度傳感器,無線通信模塊以及顯示電路構成無線測溫系統。系統的結構對系統的功能影響很大,本系統要最終能用溫度傳感器實現溫度數據的采集、并在經過單片機的簡單處理之后能通過無線通信模塊實現無線數據的收發,并能夠數字化的顯示出外部環境的溫度。因此我將本設計的系統分為幾個模塊,分別實現以上幾個功能。發射模塊:本部分的工作原理是由數字溫度傳
13、感器測溫并把數據傳輸到中央控制單元,有中央控制單元處理再通過無線收發電路向外發送信號。具體結構圖如圖2.1所示。圖2.1 發射模塊結構框圖接收模塊:接收模塊在本設計中將運用另一片NRF24L01作為信號的接收芯片,同樣以單片機作為主控單元,最后用LCD1602顯示出數字化的溫度值。本部分的工作原理:NRF24L01接收發射模塊中發射的信號然后將接收到的信號傳輸到單片機中,單片機經過數據的處理,最終在液晶顯示屏LCD1602顯示出溫度值。具體結構圖如圖2.2所示。圖2.2 接收模塊結構圖2.2關鍵器件的確定2.2.1 傳感器的確定在選擇溫度傳感器上,傳統的模擬式傳感器具有很多優點,例如測量裝換速
14、度快,溫度測量的范圍較快等1。但是傳統的模擬式傳感器輸出的模擬信號需要先進過取樣、放大和模數轉換電路的處理,最后才能將轉換的數字信號交由處理控制系統處理。這樣電路的設計將會極為復雜,元器件數量難以下降,也會隨之影響產品的可靠性。另外模擬信號轉換為數字信號的過程中精度不能保證。而直接采用數字式的溫度計則不需要數模轉換電路,直接輸出的是數字溫度信號,所以數字式的溫度傳感器的輸出信號更加穩定,準確度更高,抗干擾能力更強。考慮到以上的情況,本次設計采用是溫度傳感器。2.2.2 短距離無線通信模塊的確定無線通信模塊的的開發,在近年來已經被世界上的各個芯片生產廠家研究和利用起來。無線通信芯片通常都呈現模塊
15、化,大部分功能都集中在芯片內部,而且大部分的外部電路及其器件都是自己配置好的,所有的高頻元件:電感、電容、晶振振蕩器等都集成在芯片內部。然而在與單片機的配合應用上,通過查閱資料,我了解的幾種無線芯片中NRF24L01 可以直接接單片機串口使用,數據無需曼徹斯特編碼,可直接傳輸串口數據,效率高發射電流為9mA,接收電流為11mA最大輸出功率+10dBm 速率為20Kbps約10個外圍元件 數量需要外接天線的數量(分別為收發用)是一個,綜合以上的各個條件都極為符合本次的設計需要。因此我在本次設計中用NRF24L01做為系統的無線通信模塊。3 各模塊電路設計3.1發射模塊的電路設計3.1.1 溫度數
16、據測量電路設計DS18B20S是一個能直接輸出數字信號的溫度傳感器2。其引腳排列圖如圖3.1所示。圖3.1 DS18B20引腳排列圖其引腳定義如下:(1)DQ是單數據總線,是作為芯片的數字信號輸入/輸出端;(2)GND是接地端;(3)VDD是外接供電電源接入端;DS18B20是數字式的溫度傳感器,在與單片機的連接中只有DQ需要與單片機連接。在實際運用和大多數需要測溫的仿真實驗,DS18B20也一直應用廣泛。而且數字式的溫度傳感器直接輸出數字信號,在與單片機的連接中不需要復雜的外接電路 3。,具體連接圖如圖3.2所示。圖3.2 DS18B20與單片機連接圖3.1.2 控制電路設計AT89S52單
17、片機片片內數據儲存內含128 字節的RAM4。其具體引腳結構如圖3.3 所示。圖3.3 AT89S52引腳圖單片機有40 個引腳,其中P0到P3總共由有32個外部雙向I/O端口;中斷系統也包括外部中斷0、外部中斷1、T0、T1、T2等數個中斷源;我們在實際應用中大多選用12MHZ的晶振;并且單片機還具有看門狗定時器;具有斷電標志POF等等5。其引腳定義如下:VCC:電源端。GND:接地端。P0口:P0口是漏極開路型雙向I/O口。P1口:P1口是一個內部帶上拉電阻的8位雙向I/O口。P2口:P2口也是一個內部帶上拉電阻的8位雙向I/O口。P3口:P3口是雙功能端口。作為普通I/O口使用時,同P1
18、、P2口一樣,P3口還具備第二功能。RST:復位輸入。ALE/PROG:地址鎖存控制信號(ALE)在訪問外部程序存儲器時,鎖存低8 位地址的輸出脈沖。PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。EA/VPP:使能端。XTAL1:振蕩器反相放大器的輸入端。XTAL2:振蕩器反相放大器的輸出端。 具體的單片機最小系統如圖3.4所示。圖3.4 單片機最小系統控制電路主控電路采用單片機位主控芯片,配合外圍電路兩個33PF電容、12MHZ的晶振以及復位電路構成。3.1.3 信號發射電路設計NRF24L01是一個集成芯片 6。可以同時滿足發射信號和接收信號的要求。所以在
19、發射模塊和接收模塊電路中各接入一片NRF24L01以實現兩塊模塊中的無線通信。它的引腳圖如圖3.5所示。圖3.5 NRF24L01引腳圖在本設計的實際應用中NRF24L01是已經配置好功能的模塊,其引腳定義如下:VCC:電源端,常用電壓為3.3V。GND:接地端。CE:數字輸入端,RX或者是TX模式的選擇CSN:數字輸入端,SPI的片選信號。SCK:數字輸入端,SPI時鐘。MOSI:數字輸入端,從SPI中數據的輸入腳。MISO:數字輸入端,從SPI中數據的輸出腳。IRQ:數字輸入端,可屏蔽中斷腳。NRF24L01無線集成模塊式可以直接與單片機的I/O端口相聯接的7。本次設計中,具體接口電路如圖
20、3.6所示。J9用來表示無線模塊NRF24L01。(1)、數據通過NRF24L01發送時,使能端置“1”,芯片開始工作。(2)、送入接收模塊中起到接收作用的NRF24L01的地址和數據。(3)、使能端置“0”,激發NRF24L01進行發射。(4)、NRF24L01正式開始ShockBurstTM發射圖3.6 發射模塊NRF24L01與單片機接口電路前面提到NRF24L01的工作電壓在3.3V到3.6V,而單片機的工作電壓時5.0V。因此單片機不能和無線發射模塊共用一個電源,通過查閱資料,這里有一個解決方案。通過一個變壓模塊來ASM1117變換到適用于NRF24L01的電壓8。ASM1117通過
21、對輸出電壓采樣,然后反饋到調節電路去調節輸出級調整管的阻抗,當輸出電壓偏低時,就調節輸出級的阻抗變小從而減小調整管的壓降,當輸出電壓偏高時,就調節輸出級的阻抗變大從而增大調整管的壓降,這樣就維持了輸出電壓的穩定。ASM1117 引腳圖如圖3.7所示。 其引腳定義如下:(1)VIN是外接電源輸入端(2)GND/ADJ是接地端;(3)VOUT是輸出電壓端;圖3.7 ASM1117引腳圖AMS1117是一款正電壓輸出低壓差的三端線性穩壓電路。AMS1117及其外圍電路可以滿足多個固定電壓的要求。本設計采用ASM1117及其外圍模塊構成的變壓電路作為NRF24L01的電源輸入。具體的穩壓變壓模塊如圖3
22、.8所示。圖3.8 變壓電路3.2接收模塊的電路設計3.2.1 信號接收電路設計接收模塊中的接收芯片仍然是集成芯片NRF24L01,芯片的具體特點在這里就不做重復贅述。在ShockBurstTM收發模式下,接收數據時,自動把CRC校驗碼移去。其接收流程如下:(1)、NRF24L01初始化,寫入地址和接收數據的容量。(2)、進入接收狀態,把CE端置高電平。(3)、延時之后。NRF24L01開始等待接收數據。(4)、判斷接收到的數據是否正確。(5)、NRF24L01通過DR1置高電平通知微處理器。(6)、微控制器把數據從NRF24L01移出。(7)、數據移完之后,把DR1置“0”,此時,分為兩個狀
23、態,當使能端為“1”,就繼續等待接收數據;當使能端為“0”,接收流程停止。在接收模塊電路中NRF24L01與單片機的連接基本不變。具體接口電路如圖3.9所示。J5用來表示無線模塊NRF24L01。圖3.9 接收模塊NRF24L01與單片機接口電路3.2.2 數據顯示電路設計本次設計的數據顯示模塊由LCD1602完成。LCD1602液晶也被稱為1602字符型液晶,它是專門用來顯示字母、數字、符號等的點陣型的一種液晶模塊。LCD1602由若干個5X7或者5X11等點陣字符位組成。考慮本設計只需要顯示數字型溫度,1602可以很好的完成設局要求。不能顯示圖像的缺點可以忽略不計 9。其具體的引腳結構如圖
24、3.12所示。圖3.10LCD1602引腳結構圖其引腳定義如下:第1腳:GND為接地端。第2腳:VCC為高電平輸入端。第3腳:V0引腳用來調整液晶屏的對比度,連接VCC時對比度最弱,連接GND電源時對比度最高。第4腳:RS為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。第5腳:RW位讀寫端口,接VCC時為讀。第6腳:E使能端,高電平時讀取信息,負跳變時執行指令。第714腳:D0D7為8位雙向數據端。15腳背光正極。16腳背光負極。單片機與LCD具體連接電路如圖3.11所示。圖中用J3表示LCD1602。圖3.11 LCD1602與單片機的接口電路設計中采用LCD1602液晶模塊直
25、接與單片機的P1口連接作為系統的顯示模塊,P3口的P3.0到P3.2分別連接液晶模塊的使能信號E,數據/命令選擇RS,R/W讀寫端口。4 軟件設計4.1發射模塊軟件設計開始本系統采用DS18B20采集環境溫度10,將數字信號傳遞到單片機,單片機讀取外部溫度信號并做出處理,再將處理后的數據經無線發送模塊調制后發送。無線發射模塊的軟件流程如圖4.1所示。初始化延時地址、寬度、內容讀取溫度數據處理是否發送標識N Y數據發送延時 結束圖4.1 發射模塊軟件流程4.2接收模塊軟件設計接收系統電路上電后,主函數開始初始化液晶和無線模塊然后開始數據接收,接收到數據后對數據進行校驗,看接收到的數據是否準確,若
26、果不正確則返回重新校驗,正確就繼續進行檢測以及對數據的緩存和處理11。最后將處理完的數據在LCD上顯示溫度值。無線接收模塊的軟件流程如圖4.2所示。開始初始化LCD、無線模塊數據接收數據檢驗數據是否準確數據是否收完NYN Y數據緩存Y數據處理顯示溫度結束圖4.2 接收模塊軟件流程程序流程圖的設計就是對程序流程編寫的設計。只有畫好程序流程圖才能清晰的寫出程序執行的過程,這樣才不至于程序編寫混亂。程序流程圖的順序是直觀明了的,這將有利于在接下來的程序編寫時出現錯誤時能及時的找出并改正,從而節省了大量的時間。通過程序分析圖可以很清楚的知道設計任務,然后進行任務的分析,通過分析各個模塊的控制程序和各程
27、序模塊之間的信號傳遞接口便很容易的設計需要達到這個目標所設計的多種算法,然后通過比較各種算法的優缺點和難易程度然后選擇最優程序算法。確定程序算法之后便可以設計流程圖,然后再根據程序流程圖編寫軟件,之后進行軟件運行調試,看是否有錯誤,如果出現錯誤之后要分析是編寫錯誤還是設計的流程圖錯誤,如果流程圖錯誤的話就需要修改程序流程圖,如果程序流程圖沒有錯誤,便要檢查程序編寫過程中是否出現過錯誤,從而修正程序,然后繼續調試,周而復始,直到把程序能夠在軟件上能夠正確編譯。5 總體電路設計發射模塊的總體電路圖總共由電源模塊、單片機的最小系統、溫度采集模塊DS18B20、無線通信(發射)模塊組成。電源模塊中,由
28、外部5.0V供電,經由AMS1117穩壓降壓為3.3V之后為NRF24L01 供電;單片機最小系統中,18,19接外部振蕩電路,9端接復位電路,EA端接:“1”;溫度采集模塊中,DS18B20接在單片機的P1口上;無線通信模塊中,NRF24L01由單片機的P2端口控制。本系統由溫度傳感器DS18B20作為溫度采集模塊,采集的溫度信號傳輸到單片機中并經過了單片機的處理之后,將信號傳輸到無線模塊NRF24L01中。發射模塊總體電路圖如圖5.1所示。圖5.1 發射模塊總體電路圖接收模塊總體電路總共由電源模塊、單片機最小系統、無線通信(接收)模塊、LCD顯示電路組成。電源模塊中,由外部5.0V供電,經
29、由AMS1117穩壓降壓為3.3V之后為NRF24L01 供電;單片機最小系統中,18,19接外部振蕩電路,9端接復位電路,EA端接“1”;LCD顯示電路中,雙向數據端口D0到D7接在單片機的P1上,使能端E,讀寫R/W,寄存RS分別接在P3.0到P3.2。無線通信模塊中,NRF24L01由單片機的P2端口控制。本系統中由無線模塊NRF24L01接收從發射模塊發射的信號,再經由單片機處理接收到的信號,最后在LCD1602液晶顯示屏上數字化的顯示溫度值。接收模塊總體電路圖如圖5.2所示。圖5.2 接收電路總體電路圖6 調試結果6.1 軟件調試在軟件程序的調試上,在程序的編寫上采用KeilC軟件分
30、別對發射模塊和接收模塊的程序做編譯測試12。在軟件編寫方面,采用化整為零的思想,把整個程序劃分為幾個模塊,把這些模塊編寫成H文件,然后在編寫主程序時把它們分別像添加"REG52.h"一樣把他們都添加進來,以便程序調用。在編寫顯示程序時第一次遇到了這個問題,怎么樣使顯示內容的時間跳動連續,沒有突變現象。開始時使用程序的定時中斷顯示要顯示的內容,每次到達預定設置的時間時就顯示需要顯示的內容,后來發現這樣顯示導致有時上一個沒有顯示完成,下一次中斷又到來的情況。最后通過查閱相關的例子,仿照別人的程序,在主程序中讀取所要顯示的內容,然后把要顯示的內容填寫到數組中,然后在中斷中設置一個
31、標志位,每次中斷的時間為50ms,當標志位計數到十次,也就是500ms時顯示一次讀取的數據,而顯示的秒位為1秒變化一次,所以顯示的內容不會出現跳變的現象。發射模塊程序的編譯結果如圖6.1所示。圖6.1 發射模塊程序編譯結果接收模塊程序的編譯結果如圖6.2所示。圖6.2 發射模塊程序編譯結果6.2硬件調試在完成了軟件的編譯以及硬件的焊接工作后,通過單片機程序燒寫軟件將發射、接收兩部分程序編譯后的hex文件燒寫進AT89S52單片機中。最后進行上電調試。這部分的調試主要是測試的是由發射模塊發射的信號,接收模塊能否在一定距離內接收。并且最后把溫度值顯示在LCD液晶顯示屏上。檢測效果圖如圖6.3所示。
32、圖6.3 硬件調試檢測結果圖6.3焊接調試在經過了軟件部分和硬件的調試之后,一個必須面對的過程就是焊接各個元器件,完成了初步的的焊接之后,上電測試過程中,LCD顯示屏一直顯示的不夠明亮,檢查各個模塊電路,沒有發現明顯焊接錯誤,然后在經過詢問有豐富的焊接經驗的同學,并向他們請教之后發現,LCD顯示屏引腳中V0引腳是影響顯示屏對比度的主要因素,接高電平時對比度在差,接低電平時對比度最高,中間可以接滑動變阻器調節。然后找到這個引腳,果然這個引腳連到了高電平。經過簡單的電路修改,重新上電測試,然而測試過程仍然不是很順利。雖然在接收模塊上的LCD顯示屏顯示出了數字化的溫度值,但是在經過對傳感器的溫度變化
33、測試中,發現顯示電路中,溫度值始終保持不變。既然軟件程序調試過程中能夠編譯成功,并且在LCD上能夠顯示溫度值,說明軟件和硬件都沒有問題。經過簡單的分析,確定問題最大的可能還是出在軟件程序上,這設計到一個程序循環的過程,是不是程序不能夠完整的循環,導致程序只能運行一次,即發射模塊只發射一次溫度信號。有過這個分析之后,重新檢查了程序,果然,在發射采集的模塊程序中,是沒有循環的。認識到這個失誤之后,經過改正,再次上電測試后,接收模塊已經能動態的顯示出環境中的溫度值。自此,本次設計最終完成。結 論設計完成的系統可以準確的以無線發射的形式在LCD液晶顯示屏上顯示出當前溫度。NRF24L01無線收發模塊可
34、以實現設計要求的距離內無線信號的傳輸。并達到要求精度。在完成本次設計的過程中,不僅鞏固了單片機的專業知識和LCD液晶顯示的相關知識,而且學會了無線收發模塊的簡單使用。本設計雖然完成了基本的設計要求,達到了要求的精度。但是設計中仍然存在這一些不足,不如說受無線收發芯片的限制導致的無線信號傳輸距離不夠遠的問題,這樣很大程度上局限了該溫度測量系統的使用空間。解決這個問題可以更換無線模塊或者添加天線等方法。但是因為設計條件局限,不能做到更加完美。再比如,本設計還可以進行許多功能擴展,單片機的許多I/O端口沒有被使用,所以可以為本系統添加其他的檢測功能,例如濕度、光照等。使系統更加完善,能夠被應用與更廣
35、闊的環境中。致 謝時光荏苒,轉眼大學時光就要走到盡頭。而作為大學期間最后一個任務的畢業設計無疑是對我們這幾年學習的專業知識最好的考卷。在此次畢業設計即將順利完成之時,我對大學期間所有大學期間教誨過我的所有老師拜師衷心的謝意,是她們孜孜不倦的教誨讓我掌握了許多專業知識,我才會有能力做此設計。參考文獻1 丁鎮生傳感器與傳感技術應用M北京:科學出版社,2002:332 何希才傳感器及其應用電路M北京:電子工業出版社,2001:603 沙占友智能化集成溫度傳感器原理M北京:機械工業出版社,2002:56 4 胡漢才單片機原理及其接口技術M北京:清華大學出版社,2004:50 5 李廣弟單片機基礎M北京
36、:北京航空航天出版社,1992:346鄭維智, 張海濱短距離無線通信在控制中的應用J.數據通信,200242(12):40-417 程海英,陳勇. 無線傳感器技術在智能家居系統的應用J.中國科技信息,200720(9):56-588 胡天明,齊建家等基于NRF24L01無線加速度測量系統設計J龍黑江工程學院學報(自然科學版),200822(59-62)9 夏大勇,周曉輝LCD的簡單開發J.工業儀表與自動化裝置,2007(1) :43-4610 趙繼文傳感器與應用電路設計M北京:科學出版社,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附錄:系統程序#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端口設置*sbit DQ=P10 ;/*數碼管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;/溫度采集數據緩沖區uchar dispaly20;
39、/顯示緩沖區/*uint bdata sta; /NRF24L01狀態標志sbitRX_DR=sta6;sbitTX_DS=sta5;sbitMAX_RT=sta4;/*NRF24L01*#define TX_ADR_WIDTH 5 / 本機地址寬度設置#define RX_ADR_WIDTH 5 / 接收方地址寬度設置#define TX_PLOAD_WIDTH 20 / 4 字節數據長度#define RX_PLOAD_WIDTH 20/ 4 字節數據長度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寄存器指令,詳細請對照,Page18*#define READ_REG 0x00 / 讀寄存器指令#define WRITE_REG 0x20 / 寫寄存器指令#define RD_RX_PLOAD 0x61 / 讀取接收數據指令#define WR_TX_PLOAD 0xA0 / 寫待發數據指令#define FLUSH_TX 0xE1 / 沖洗發送 FIFO指令#define FLUSH_RX 0xE2 / 沖洗接收 FIFO指令#define R
41、EUSE_TX_PL 0xE3 / 定義重復裝載數據指令#define NOP 0xFF / 保留/*SPI(nRF24L01)寄存器地址,詳細請對照,Page18-24*#define CONFIG 0x00 / 配置收發狀態,CRC校驗模式以及收發狀態響應方式#define EN_AA 0x01 / 自動應答功能設置#define EN_RXADDR 0x02 / 可用信道設置#define SETUP_AW 0x03 / 收發地址寬度設置#define SETUP_RETR 0x04 / 自動重發功能設置#define RF_CH 0x05 / 工作頻率設置#define RF_SETU
42、P 0x06 / 發射速率、功耗功能設置#define STATUS 0x07 / 狀態寄存器#define OBSERVE_TX 0x08 / 發送監測功能#define CD 0x09 / 地址檢測 #define RX_ADDR_P0 0x0A / 頻道0接收數據地址#define RX_ADDR_P1 0x0B / 頻道1接收數據地址#define RX_ADDR_P2 0x0C / 頻道2接收數據地址#define RX_ADDR_P3 0x0D / 頻道3接收數據地址#define RX_ADDR_P4 0x0E / 頻道4接收數據地址#define RX_ADDR_P5 0x0F
43、 / 頻道5接收數據地址#define TX_ADDR 0x10 / 發送地址寄存器#define RX_PW_P0 0x11 / 接收頻道0接收數據長度#define RX_PW_P1 0x12 / 接收頻道0接收數據長度#define RX_PW_P2 0x13 / 接收頻道0接收數據長度#define RX_PW_P3 0x14 / 接收頻道0接收數據長度#define RX_PW_P4 0x15 / 接收頻道0接收數據長度#define RX_PW_P5 0x16 / 接收頻道0接收數據長度#define FIFO_STATUS 0x17 / FIFO棧入棧出狀態寄存器設置/*NRF2
44、4L01函數申明*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函數申明*void delay1(uint i);void ds_reset(void);void write_byte(uchar value);uchar read_byte(void);void read_temp();void work_temp();/*/*延時函數/*/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應答允許SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); / 允許接收地址只有頻道0,如果需要多頻道可以參考Page21 SPI_RW_Reg(WRITE_REG + RF_CH, 0); / 設置信道工作為2.4GHZ,收發必須一致SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /設置接收數據長度,本次設置為4字節SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); /設置發射速率為1Mkbps,發射功率為最大值0dB/*/*函數:uint SPI_RW(uint uchar)/*功能:NRF24L01的SPI寫時序,詳細看時序圖,Page19/*/uint SPI_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CAQI 20-2016廢水生物增強處理圓柱狀有機生物載體
- T/CAPEC 40-2024石油和化學工業石油鉆桿監理技術要求
- 部級單位考試題及答案
- 軍工企業培訓管理制度
- 服從管理面試題及答案
- 高教杯考試題及答案
- 法律律師考試題及答案
- 學生數據檔案管理制度
- 初中男生生理衛生知識講座
- 大學的教師節活動方案總結
- 品質管控培訓質量管理與質量控制課件
- 民間非營利組織審計報告(模板)
- 漿砌石擋墻 護坡施工方案
- 上海市上海民辦蘭生中學2024-2025學年八年級上學期9月第一次月考數學試題(無答案)
- 2024年10月自考試02899生理學部分真題含解析
- DB13-T 5834-2023 化工建設項目安裝工程質量技術資料管理規范
- DL∕ T 969-2005 變電站運行導則
- 六年級道德與法治畢業考試時政知識點(一)
- 診斷學之全身體格檢查
- 小區水系清淤合同范本
- 省教育科學規劃課題設計論證:師范院校弘揚教育家精神的實踐研究
評論
0/150
提交評論