基于單片機的無線溫度檢測器的設計_第1頁
基于單片機的無線溫度檢測器的設計_第2頁
基于單片機的無線溫度檢測器的設計_第3頁
基于單片機的無線溫度檢測器的設計_第4頁
基于單片機的無線溫度檢測器的設計_第5頁
已閱讀5頁,還剩60頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、ANYANG INSTITUTE OF TECHNOLOGY本 科 畢 業 論 文 基于單片機的無線溫度檢測器的設計The Design of Wireless Temperature Detector Based on MCU院(部)名稱: 電子信息與電氣工程學院 專業班級: 自動化2009級2班 學生姓名: * 學 號: 200902020005 指導教師姓名: * 指導教師職稱: 講師 2013年5月畢業設計(論文)原創性聲明和使用授權說明原創性聲明本人鄭重承諾:所呈交的畢業設計(論文),是我個人在指導教師的指導下進行的研究工作及取得的成果。盡我所知,除文中特別加以標注和致謝的地方外,不

2、包含其他人或組織已經發表或公布過的研究成果,也不包含我為獲得安陽工學院及其它教育機構的學位或學歷而使用過的材料。對本研究提供過幫助和做出過貢獻的個人或集體,均已在文中作了明確的說明并表示了謝意。作 者 簽 名: 日 期: 指導教師簽名: 日期: 使用授權說明本人完全了解安陽工學院關于收集、保存、使用畢業設計(論文)的規定,即:按照學校要求提交畢業設計(論文)的印刷本和電子版本;學校有權保存畢業設計(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務;學校可以采用影印、縮印、數字化或其它復制手段保存論文;在不以贏利為目的前提下,學校可以公布論文的部分或全部內容。作者簽名: 日 期: 目錄摘要Abs

3、tract第一章 緒論11.1 課題的背景和意義11.2 本課題的研究內容以及所完成的工作11.2.1 本課題的研究內容11.2.2 本課題所完成的具體工作2第二章 無線溫度檢測系統總體設計32.1 系統設計要求32.2 系統總體設計方案的確定32.2.1 數字溫度傳感器的選擇32.2.2 控制器的選擇42.2.3 無線收發模塊的選擇5第三章 硬件電路設計73.1 發射端73.1.1 溫度采集模塊73.1.2 控制單元STC89C52單片機93.1.3 電源模塊設計123.1.4 無線收發模塊NRF24L01電路設計123.1.5 時鐘振蕩電路設計133.1.6 復位電路設計133.2 接收端

4、143.2.1 蜂鳴器報警模塊設計143.2.2 鍵盤電路設計153.2.3 液晶顯示模塊設計15第四章 軟件程序設計184.1 程序流程圖184.1.1 主程序流程圖184.1.2 子程序流程圖194.2 無線收發模塊24L01的編程214.2.1 24L01編程的基本思路214.2.3 函數介紹224.3 軟件編譯與調試234.3.1 程序設計語言的選用234.3.2 KeilC51簡介244.3.3 uVision4集成開發環境244.3.4 軟件調試與結果25第五章 安裝與調試265.1 Altium Designer軟件265.2 電路板安裝與調試26結論27致謝28參考文獻29附錄

5、A 元件清單30附錄B 發射板原理圖31附錄C 接收板原理圖32附錄D 發射板實物圖33附錄E 接收板實物圖34附錄F 發射板源程序35附錄G 接收板源程序44基于單片機的無線溫度檢測器的設計摘要:無線溫度檢測器是一種用于倉庫和蔬菜大棚等具有溫度檢測、無線傳輸、溫度顯示和超限報警功能的儀器。系統由發送端和接收端兩部分組成。發送端將溫度傳感器檢測到的溫度值經單片機進行數據處理后,通過無線收發模塊無線發送,接收端將接收到的數據信息顯示在液晶屏上,并附加溫度限設置和超限報警功能。本設計利用軟件Keil進行系統程序設計,利用單片機學習板進行硬件仿真,待仿真成功后進行了實物制作和調試,最終成功設計出了無

6、線溫度檢測器。文中詳細介紹了溫度采集模塊、無線傳輸模塊、顯示模塊、溫度限設置模塊和報警電路的設計方法和過程。當采樣點的溫度值超出規定值時,系統通過報警電路提醒監測人員。同時,檢測人員可以通過鍵盤對具體報警點的溫度值進行設置。另外,該系統溫度檢測具有較高的精度,無線數據傳輸穩定,而且傳輸距離較遠。關鍵詞:溫度檢測;單片機;無線傳輸The Design of Wireless Temperature Detector Based on MCUAbstract: wireless temperature detector is a kind of temperature detection used

7、 for warehouse and vegetables canopy, it has the function of display and wireless transmission and temperature overrun alarm. System consists of two parts, the sender and the receiver. The sender will be detected by temperature sensor temperature after single-chip microcomputer for data processing,

8、through the wireless transceiver modules, wireless sending and receiving end receives the data and information displayed on the LCD screen, and the additional temperature limit setting and transfinite alarm function. This design using the software of Keil to write system program, and using the micro

9、controller board to simulation hardware, we shall carry out physical production and debugging after the success of the simulation, and we designed the wireless temperature detector successfully in the end .This paper introduced the temperature acquisition module, wireless transmission module, displa

10、y module, temperature limit setting module and alarm circuit design method and process. The system through the alarm circuit to remind monitoring personnel when the data of temperature beyond the set value. At the same time, the testing personnel can through the keyboard to set specific alarm point

11、temperature. In addition, the temperature detection system has high precision, stable wireless data transmission, and the transmission distance is far.Keywords: temperature detection;Single chip microcomputer; Wireless transmission第一章 緒論1.1 課題的背景和意義隨著微電子技術、傳感器技術、嵌入式技術以及通信技術的飛速發展,數據采集和檢測系統得到了廣泛的應用,用于

12、檢測各種參數的儀表也越來越多。這些儀表種類繁雜,分布往往比較分散,這些儀表實時采集數據的工作量也越來越大。如何高效率、低成本地采集這些離散的數據是迫切需要解決的科技難題。對于許多檢測現場,由于需要檢測的范圍廣,檢測的對象種類繁多,需要投入大量的人力、物力進行設備的維護和檢測工作。同時,受現場環境和應用對象的限制,存在著各種各樣的惡劣條件,使人們不易到現場長時間的檢查采集一些數據,如果這時進行大量的布線工作則是不經濟、不合理的。傳統的檢測系統造價昂貴,體積龐大,在電源供給困難的區域不易部署,同時布置一旦完畢,就很難根據檢測現場靈活改變布局,重新布置會帶來巨大的成本消耗,系統重用性差。因此,采用無

13、線檢測的方式來實現有很大的優勢,也是目前研究的熱點。為了適應這種客觀需要,逐步出現了無線檢測技術,應用無線通信技術對離散的、不易布線區域的參數信息進行監視,以實現信息的遠程測量、傳輸和調節等各項功能。無線檢測系統實現參數信息的實時、快速和有效檢測,向人們提供了一個更高效、更全面,更快捷的服務模式,本論文以改變當前滯后的檢測技術,解決檢測中遇到的困難和難題為目標,利用無線檢測網絡的優勢,突破傳統檢測方法和思路,以高科技、新技術、低成本提高科學檢測水平,為檢測提供可靠科學的檢測數據,使用無線檢測網絡,一些布線和管理的難點都將迎刃而解,人力、物力、資金的使用也大幅減少。無線檢測系統具有不借助外部網絡

14、、快速安裝、抗毀性強等特點,可以使人們在任何時間、地點和任何環境條件下獲取大量的、可靠的數據信息。1.2 本課題的研究內容以及所完成的工作1.2.1 本課題的研究內容本課題研究的內容是針對檢測領域的現狀,以及組建無線檢測系統的實際需要,提出了一種基于射頻通信技術的解決方案。研究和開發一種新型無線檢測系統來實現傳感器的溫度數據采集和無線數據傳輸,從而達到檢測的目的。該系統可以快速、準確地完成數據采集和管理,為智能化檢測提供了便利的條件。1.2.2 本課題所完成的具體工作本課題的研究內容是通過無線傳輸實現對檢測現場的溫度參數的實時采集。本課題所完成的具體工作:(1)完成系統的總體設計,并根據設計要

15、求選取系統的主要功能模塊器件。(2)完成無線檢測系統的發射端和接收端的電路設計,根據系統設計要求完成電源模塊、傳感器數據采集模塊、無線數據通信模塊、報警電路、鍵盤電路、時鐘振蕩電路和復位電路設計。(3)完成無線檢測系統程序設計,程序設計采用C語言編程。(4)完成無線檢測系統的系統調試,對系統的數據可靠性、抗干擾能力、通信距離等方面進行測試。第二章 無線溫度檢測系統總體設計2.1 系統設計要求根據本系統的應用環境,總結系統的設計要求如下:(1)體積小。與傳統的溫度計相比,本課題設計的測溫系統的體積要盡可能的小,從而減少占用空間,而且更便于安裝和更換。(2)可靠性高。為了保證系統能夠正常工作,并且

16、盡可能減少測溫誤差,要求接收端與發送端之間的無線通信可靠。而系統環境的影響可能會有不確定的電磁干擾等,因此,系統要有一定的抗干擾能力。(3)低成本。無線測溫系統應充分考慮其成本,在滿足系統要求的前提下,應盡量降低成本,從而提高與同類產品的競爭力。2.2 系統總體設計方案的確定本課題的研究內容是通過無線傳輸實現對檢測現場的溫度參數的實時采集。主要實現溫度采集、無線傳輸、超溫報警和溫度實時顯示功能。整個系統由溫度采集端和溫度接收端兩個部份組成,兩者之間通過無線信道通信。數據采集端負責數據的采集和發送,數據接收端負責數據的接收和處理。系統整體結構框圖如圖2.1和圖2.2所示。圖2.1 溫度采集端圖2

17、.2 溫度接收端2.2.1 數字溫度傳感器的選擇隨著溫度傳感器智能化、集成化技術的進步,數字式溫度傳感器也得到了快速發展,世界上許多公司推出了新型的數字溫度傳感器系列。這些產品的出現極大的豐富了設計工程師的選擇對象。在如此眾多的產品中選擇出合適的器件,應該把握以下幾點:外圍電路應該盡量簡單;測溫的精度、分辨率要合適,以便減少不必要的電路和軟件開發成本;占用單片機的I/O引腳數情況如何;與單片機的通信協議應盡量簡單,溫度測量的軟件開發難度、成本要盡量小。DSl8B20是美國Dallas半導體公司繼DSl820之后最新推出的一種改進型智能溫度傳感器。與傳統的熱敏電阻相比,它能夠直接讀出被測溫度并且

18、可根據實際要求通過簡單的編程實現912位的數字值讀數方式。可以分別在93.75ms和750ms內完成9位和12位的數字量讀取。它采用獨特的單總線接口方式,即允許在一條信號線上掛接數十甚至上百個數字式傳感器,從而使測溫裝置與各傳感器的接口變得十分簡單,克服了模擬式傳感器與微機接口時需要的A/D轉換器及其它復雜外圍電路的缺點,而且,可以通過總線供電,溫度變換功率來源于數據總線,總線本身也可以向所掛接的DSl8B20供電,而無需額外電源,由它組成的溫度測控系統非常方便,而且成本低、體積小、可靠性高。DSl8B20的測溫范圍-55+125,最高分辨率可達0.0625,由于每一個DSl8B20出廠時都刻

19、有唯一的一個序列號并存入其ROM中,因此CPU可用簡單的通信協議就可以識別,從而節省了大量的引線和邏輯電路。由于DSl8B20具有獨特的單總線接口方式在測溫時有明顯的優勢,占用單片機的I/O引腳資源少,和單片機的通信協議比較簡單,成本較低,而且具有負壓特性(電源極性接反時,溫度計不會因發熱而燒毀,只是不能正常工作),和其他數字溫度傳感器相比,它更適合本系統。所以,選用DSl8B20作為溫度測量的傳感器。2.2.2 控制器的選擇目前使用最為廣泛的是51系列單片機,其中STC89C52系列單片機是宏晶科技推出的新一代超強抗干擾/高速/低功耗的單片機,是一款增強型51單片機,完全兼容8051單片機,

20、增加了新的功能,新增兩級中斷優先級,多一個外中斷,內置EEPROM,看門狗,具有掉電模式,512B內存,支持ISP在線編程,不用編程器,程序可擦寫10萬次,管腳完全兼容,性能更好,驅動能力更強,超強抗干擾能力,價格也比傳統的89系列低。考慮到快速開發以及本系統的應用要求,最后采用了最常用的STC89C52單片機。STC89C52單片機主要性能:(1)高速:1個時鐘/機器周期,增強型8051內核,速度比普通8051快8到12倍。(2)寬電壓:5.54.IV/3.7V,3.6V2.4V/2.lV。(3)低功耗設計:空閑模式(可由任意一個中斷喚醒)和掉電模式(可由任意一個外部中斷喚醒,可支持下降沿/

21、低電遠程喚醒)。(4)工作頻率:035MHz,普通8051:0420MHz。(5)時鐘:外部晶體或內部RC振蕩器可選,在ISP下載編程用戶程序時設置。(6)芯片內EEPROM功能,擦寫次數10萬以上。(7)ISP/IAP,在系統可編程/在應用可編程,無需編程器/仿真器。(8)2個16位定時器,兼容普通8051的定時器T0/T1。(9)硬件看門狗(WDT)。(10)全雙工異步串行口(UART),兼容普通8051,可當2個串口使用。(11)先進的指令集結構,兼容普通8051指令集,有硬件乘法/除法指令。2.2.3 無線收發模塊的選擇現在有很多射頻芯片可以用來完成無線數據傳輸。所有高頻元件包括電感、

22、振蕩器等已經全部集成在芯片內部,一致性良好,且性能不受外界干擾。通信模塊一般包含簡單透明的數據傳輸協議或使用簡單的加密協議,發射功率、工作頻率等,所有工作參數全部通過軟件設置完成,用戶不用對無線通信原理和工作機制有較深的了解,只要依據命令字進行操作即可實現基本的數據無線傳輸功能。新一代短距離無線數據通信系統具有體積小、功耗低、穩定性好、抗干擾能力強等優點,而且開發簡單快速,可以方便地嵌入到各種設備中,實現設備間的無線連接,因此,適合搭建小型網絡,在工業、民用領域得到較為廣泛的應用。由于無線收發芯片的種類和數量比較多,如何設計中選擇所需要的芯片是非常關鍵的,正確的選擇可以少走彎路,降低成本。下面

23、是選擇無線收發芯片的原則:(1)收發芯片的數據傳輸是否需要進行曼徹斯特編碼采用曼徹斯特編碼的芯片,在編程上會需要較高的技巧和經驗,需要更多的內存和程序容量,并且曼徹斯特編碼大大降低數據傳輸的效率,一般僅能達到標稱速率的1/3。而采用串口傳輸的芯片,應用及編程非常簡單,傳送的效率很高,標稱速率就是實際速率,因為串口對大家來說是再熟悉不過的了,編程也很方便。(2)收發芯片所需的外圍元件數量芯片外圍元件的數量直接決定你的產品的成本,因此應該選擇外圍元件少的收發芯片。有些芯片似乎比較便宜,可是外圍元件使用很多昂貴的元件如變容管以及聲表濾波器等;有些芯片收發分別需要兩根天線,會大大加大成本。(3)功耗大

24、多數無線收發芯片是應用在便攜式產品上的,因此功耗也非常重要,應該根據需要選擇綜合功耗較小的產品。(4)發射功率在同等條件下,為了保證有效和可靠的通信,應該選用發射功率較高的產品。但是也應該注意,有些產品號稱的發射功率雖然較高,但是由于其外圍元件多,調試復雜,往往實際的發射功率遠遠達不到標稱值。(5)收發芯片的封裝和管腳數較少的管腳以及較小的封裝,有利于減少PCB面積降低成本,適合便攜式產品的設計,也有利于開發和生產。綜合考慮以上五個原則,本課題中無線收發通信采用NRF24L01模塊。NRF24L01是NORDIC公司最近生產的一款無線通信芯片,采用FSK調制,內部集成NORDIC自己的Enha

25、nced Short Burst協議。可以實現點對點或是1對6的無線通信。無線通信速度可以達到2Mbps。NORDIC公司提供通信模塊的GERBER文件,可以直接加工生產。嵌入式工程師或是單片機愛好者只需要為單片機系統預留5個GPIO,1個中斷輸入引腳,就可以很容易實現無線通信的功能,非常適合用來為MCU系統構建無線通信功能。第三章 硬件電路設計3.1 發射端無線溫度檢測器的溫度采集端由電源模塊、STC89C52單片機、溫度采集電路、無線發送模塊NRF24L01、時鐘電路及復位電路組成。溫度采集端硬件框圖如圖3.1所示。圖3.1 溫度采集端硬件框圖3.1.1 溫度采集模塊1. DSl8B20內

26、部結構DSl8B20芯片的內部結構如圖3.2所示。圖3.2 DS18B20內部結構圖2. DSl8B20有4個主要的數據部件:(1)64位激光ROM。64位激光ROM從高位到低位依次為8位CRC、48位序列號和8位家族代碼(28H)。(2)溫度靈敏元件。(3)非易失性溫度報警觸發器TH和TL。可通過軟件寫入用戶報警上下限值。(4)配置寄存器。配置寄存器為高速暫存存儲器中的第五個字節。DSl8B20在工作時按此寄存器中的分辨率將溫度轉換成相應精度的數值,其各位定義如表3.1所示。表3.1 DS18B20配置寄存器模式設置表TMR1R011111其中,TM:測試模式標志位,出廠時被寫入0,不能改變

27、;R0、Rl:溫度計分辨率設置位,其對應四種分辨率表3.2所列,出廠時R0、Rl置為缺省值:R0=1, R1=1(即12位分辨率),用戶可根據需要改寫配置寄存器以獲得合適的分辨率。配置寄存器與分辨率關系如表3.2所示。表3.2 配置寄存器與分辨率關系表R0R1溫度計分辨率/bit最大轉換時間/us00993.750110187.5101137511127503. 高速暫存存儲器高速暫存存儲器由9個字節組成,其分配如表3.3所示。當溫度轉換命令發布后,經轉換所得的溫度值以二字節補碼形式存放在高速暫存存儲器的第1和第2個字節。單片機可通過單線接口讀到該數據,讀取時低位在前,高位在后,數據格式如表3

28、.3所示。對應的溫度計算:當符號位S=0時,直接將二進制位轉換為十進制;當S=1時,先將補碼變為原碼,再計算十進制值。表3.3 DS18B20存儲器映像表溫度低位溫度高位THTL配置保留保留保留8位CRC4. 對DSl8B20的設計,需要注意以下問題:(1)對硬件結構簡單的單線數字溫度傳感器DSl8B20進行操作,需要用較為復雜的程序完成。編制程序時必須嚴格按芯片數據手冊提供的有關操作順序進行,讀、寫程序要嚴格按要求編寫。尤其在使用DSl8B20的高測溫分辨力時,對時序及電氣特性參數要求更高。 (2)測溫電纜線建議采用屏蔽4芯雙絞線,其中一對線接地線與信號線,另一組接VCC和地線,屏蔽層在源端

29、單點接地。DSl8B20在三線制應用時,應將其三線焊接牢固;在兩線應用時,應將VCC與GND接在一起,焊接牢固。若VCC脫開未接,傳感器只送85.0的溫度值。5. DSl8B20與STC89C52的連接電路圖如圖3.3所示。DSl8B20與單片機的P3.0口相連。圖3.3 DSl8B20與STC89C52連接電路原理圖3.1.2 控制單元STC89C52單片機1. STC89C52單片機的特點單片機是在一塊硅片上集成了各種部件的微型機,這些部件包括中央處理器CPU、數據存儲器RAM、程序存儲器ROM、定時器/計數器和多種I/O接口電路。STC89C52單片機的基本結構如圖3.4所示。圖3.4

30、STC89C52單片機的基本結構2. STC89C52單片機的引腳及功能STC89C52單片機的管腳分布如圖3.5所示。圖3.5 STC89C52單片機的管腳圖STC89C52的I/O端口:P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下,P0具有內部上拉電阻。在flash編程時,P0口也用來接收指令字節;在程序校驗時,輸出指令字節。程序校驗時,需要外部上拉電阻。 P1口:P1口是一個具有內部上拉電阻的8位雙向I/O口,P1輸出緩沖器

31、能驅動4個TTL邏輯電平。對P1 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數器2的外部計數輸入(P1.0/T2)和定時器/計數器2的觸發輸入(P1.1/T2EX)。在flash編程和校驗時,P1口接收低8位地址字節。 引腳第二功能 P1.0/T2(定時器/計數器T2的外部計數輸入) P1.1/T2EX(定時器/計數器T2的捕捉/重載觸發信號和方向控制) P1.5/MOSI(在系統編程用) P1.6/MISO(在系統編程用) P1.7/SCK(在系統編程用)

32、P2口:P2口是一個具有內部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅動4個TTL邏輯電平。對P2端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數據存儲器時,P2 口送出高8位地址。在這種應用中,P2口使用很強的內部上拉發送1。在使用8位地址訪問外部數據存儲器時,P2口輸出P2鎖存器的內容。在flash編程和校驗時,P2口也接收高8位地址字節和一些控制信號。 P3口:P3口是一個具有內部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅動4個TTL邏輯電平。對P

33、3端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。 P3口亦作為STC89C52特殊功能(第二功能)使用。在flash編程和校驗時,P3口也接收一些控制信號。 引腳 第二功能P3.0/RXD(串行輸入口)P3.1/TXD(串行輸出口)P3.2/INT0(外中斷0)P3.3/INT1(外中斷1)P3.4/T0(定時/計數器0)P3.5/T1(定時/計數器1)P3.6/WR(外部數據存儲器寫選通)P3.7/RD(外部數據存儲器讀選通)此外,P3口還接收一些用于flash閃存編程和程序校驗的控制信號。RST:復

34、位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將使單片機復位。ALE/PROG:當訪問外部程存儲器或數據存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意每當訪問外部數據存儲器時將跳過一個ALE脈沖。對flash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執行外部程序時,應

35、設置ALE禁止位無效。PSEN:程序儲存允許 PSEN輸出是外部程序存儲器的讀選通信號,當STC89C52由外部程序存儲器取指令(或數據)時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數據存儲器,將跳過兩次PSEN信號。EA/VP:外部訪問允許 欲使CPU僅訪問外部程序存儲器,EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內部會鎖存EA端狀態。3.1.3 電源模塊設計本次設計的電源模塊采用USB接口將220V交流電轉換為5V的直流電,從而為整個系統供電。電源模塊設計中增加了綠色LED指示燈,指示電源的通斷。電源模塊設計如圖3.6所示。圖3.6

36、電源模塊電路連接圖3.1.4 無線收發模塊NRF24L01電路設計無線收發模塊NRF24L01的各引腳與單片機的P1口相連,電路連接圖如圖3.7所示。圖3.7 無線收發模塊NRF24L01與單片機的電路連接圖無線收發模塊NRF24L01引腳功能:CSN(P1.1):芯片的片選線,CSN 為低電平芯片工作。SCK(P1.2):芯片控制的時鐘線(SPI 時鐘)。MISO(P1.4):芯片控制數據線(Master input slave output)。MOSI(P1.3):芯片控制數據線(Master output slave input)。IRQ(P1.5):中斷信號。無線通信過程中MCU主要是

37、通過IRQ與NRF24L01進行通信。CE(P1.0):芯片的模式控制線。在CSN為低的情況下,CE協同NRF24L01的CONFIG寄存器共同決定NRF24L01的狀態。3.1.5 時鐘振蕩電路設計XTAL1是片內振蕩器的反相放大器輸入端,XTAL2則是輸出端,使用外部振蕩器時,外部振蕩信號應直接加到XTAL1,而XTAL2懸空。內部方式時,時鐘發生器對振蕩脈沖二分頻,如晶振為12MHz,時鐘頻率就為6MHz。晶振的頻率可以在1MHz-24MHz內選擇。電容取30pf左右。STC89C52單片機內部有一個用于構成振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出

38、端。這個放大器與作為反饋元件的片外晶體諧振器一起構成一個自激振蕩器。外接晶體諧振器以及電容C1和C2構成并聯諧振電路,接在放大器的反饋回路中。對外接電容的值雖然沒有嚴格的要求,但電容的大小會影響震蕩器頻率的高低、震蕩器的穩定性、起振的快速性和溫度的穩定性。因此,在焊接電路板時,晶體振蕩器和電容應盡可能安裝得與單片機芯片靠近,以減少寄生電容,更好地保證震蕩器穩定和可靠地工作。本次時鐘電路設計采用內部方式,即利用芯片內部的振蕩電路,晶體振蕩器選用12MHz,電容選用33pf。時鐘振蕩電路如圖3.8所示。圖3.8 時鐘振蕩電路連接圖 3.1.6 復位電路設計在振蕩器運行時,有兩個機器周期(24個振蕩

39、周期)以上的高電平出現在此引腳時,將使單片機復位,只要這個腳保持高電平,單片機便循環復位。復位后P0P3口均在引腳表現為高電平,程序計數器和特殊功能寄存器全部清零。當復位腳由高電平變為低電平時,芯片從ROM的00H處重新開始執行程序。復位電路通常采用上電自動復位和按鈕復位兩種方式,本設計采用按鈕復位電路。復位電路圖如圖3.9所示。圖3.9 復位電路連接圖3.2 接收端無線溫度測量器的溫度接收端由電源模塊、STC89C52單片機、液晶顯示電路、無線收發模塊NRF24L01、鍵盤電路、報警電路、時鐘電路及復位電路組成。其中電源模塊、STC89C52單片機、無線收發模塊NRF24L01、時鐘電路和復

40、位電路與發射端相同。溫度接收端硬件框圖如圖3.10所示。圖3.10 溫度接收端硬件框圖3.2.1 蜂鳴器報警模塊設計報警電路由三極管,紅色LED指示燈和蜂鳴器和一個撥動開關組成。當溫度檢測器正常工作時,將撥動開關置于閉合狀態。當實時溫度大于溫度限設定值時蜂鳴器發出聲響,同時紅色LED燈亮,當實時溫度又低于溫度限設定值時,蜂鳴器和紅色LED燈自動停止。當蜂鳴器報警時,也可通過將撥動開關斷開停止報警。蜂鳴器報警模塊設計如圖3.11所示。圖3.11 蜂鳴器報警模塊電路連接圖3.2.2 鍵盤電路設計本系統選擇使用獨立式按鍵。鍵盤電路由兩個按鍵與單片機P3口相連構成,實現溫度限的設置功能。通電后,液晶屏

41、顯示設定溫度為Temp set:40。按下s1鍵,設定值加1,當溫度設定值為99時,再次按下s1鍵,設定值為0。按下s2鍵,設定值減1,當溫度設定值為0時,再次按下s2,設定值為99。鍵盤電路圖如圖3.12所示。圖3.12 鍵盤電路連接圖3.2.3 液晶顯示模塊設計1. LCD1602主要管腳介紹顯示模塊用于顯示實時溫度和設定溫度。這里采用1602液晶顯示屏,其主要參數為:顯示容量(16*2個字符)、芯片工作電壓(4.5-5.5V)和工作電流(2.0mA)。LCD1602共有16個引腳,各管腳的功能如表3.4所示。表3.4 LCD1602管腳功能介紹表引腳符號狀態功能1VSS輸入電源地2Vdd

42、輸入電源+5V3V0輸入對比度控制端4RS輸入寄存器選擇5R/W輸入讀、寫操作6E輸入使能信號7DB0三態數據總線(LSB)8DB1三態數據總線9DB2三態數據總線10DB3三態數據總線11DB4三態數據總線12DB5三態數據總線13DB6三態數據總線14DB7三態數據總線(MSB)15LEDA輸入背光+5V16LEDK輸入背光地說明:V0:液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高,使用時可以通過一個10k的電位器調整對比度。RS:寄存器選擇,高電平時選擇數據存儲器,低電平時選擇指令寄存器。R/W:讀寫信號線,高電平時進行讀操作,低電平進行寫操作。當RS和R/W共同為

43、低電平時可以寫入指令或者顯示地址;當RS為高電平,R/W為低電平時可以寫入數據。E:使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令。2. LCD1602控制指令LCD1602控制指令介紹表如表3.5所示。表3.5 LCD1602控制指令介紹表格式功能RSR/WDB7DB6DB5DB4DB3DB2DB1DB0清屏指令0000000001顯示開關控制0000001DCB光標、畫面移動000000S/CR/L*功能設置00001DLNF*說明:(1)清屏指令清屏指令的主要功能有:清除液晶顯示器的內容,即DDRAM的內容全部填入“空白”的ASCII碼20H;光標歸位,即將光標撤回液晶顯示屏的左

44、上方;將地址計數器(AC)的值設為0。(2)顯示開關控制顯示開關控制的功能是設置顯示、光標及閃爍的開、關等。其中:D表示顯示:1為開,0為關;C表示光標:1為開,0為關;B表示閃爍:1為開,0為關。(3)光標及畫面移動光標及畫面移動的功能是控制光標、畫面的移動,不影響DDRAM。其中:S/C=1,畫面平移一個字符位;S/C=0,光標平移一個字符位;R/L=1:右移;R/L=0:左移。(4)功能設置功能設置主要是對LCD1602的工作方式進行設置。其中:DL=1,8位數據接口;DL=0,4位數據接口;N=1,兩行顯示;N=0,一行顯示;F=1,5×10點陣字符;F=0,5×7

45、點陣字符。3. LCD1602與單片機連接圖液晶顯示模塊設計如圖3.13所示。數據線DB0-DB7連接單片機的P0口;RS、R/W、E這3條控制線分別接單片機的P2.5、P2.6和P2.7口。電阻R3用來調節背光的亮度。圖3.13 LCD1602與單片機的電路連接圖第四章 軟件程序設計4.1 程序流程圖4.1.1 主程序流程圖1. 發射端主程序流程圖如圖4.1所示。圖4.1 發射端主程序流程圖2. 接收端主程序流程圖如圖4.2所示。圖4.2 接收端端主程序流程圖4.1.2 子程序流程圖1. 數字溫度傳感器DS18B20讀溫度程序DS18B20讀溫度程序流程圖如圖4.3所示。圖4.3 DS18B

46、20讀溫度程序流程圖2. 鍵盤掃描子程序鍵盤掃描子程序流程圖如圖4.4所示。圖4.4 鍵盤掃描子程序流程圖4.2 無線收發模塊24L01的編程4.2.1 24L01編程的基本思路(1)置CSN為低,使能芯片,配置芯片各個參數。配置參數在Power Down狀態中完成。(2)如果是Tx模式,填充Tx FIFO。(3)配置完成以后,通過CE與CONFIG中的PWR_UP與PRIM_RX參數確定24L01要切換到的狀態。Tx Mode:PWR_UP=1;PRIM_RX=0; CE=1(保持超過10us就可以);Rx Mode:PWR_UP=1;PRIM_RX=1; CE=1;(4) IRQ引腳會在以

47、下三種情況變低: Tx FIFO 發完并且收到ACK(使能ACK情況下) Rx FIFO收到數據 達到最大重發次數4.2.2 Tx與Rx的配置過程1. Tx模式初始化過程(1)寫Tx節點的地址 TX_ADDR(2)寫Rx節點的地址(主要是為了使能Auto Ack) RX_ADDR_P0(3)使能AUTO ACK EN_AA(4)使能PIPE 0 EN_RXADDR(5)配置自動重發次數 SETUP_RETR(6)選擇通信頻率 RF_CH(7)配置發射參數(低噪放大器增益、發射功率、無線速率) RF_SETUP(8)選擇通道0有效數據寬度 Rx_Pw_P0(9)配置24L01的基本參數以及切換工

48、作模式 CONFIG。2. Rx模式初始化過程:初始化步驟:(1)寫Rx節點的地址 RX_ADDR_P0(2)使能AUTO ACK EN_AA(3)使能PIPE 0 EN_RXADDR(4)選擇通信頻率 RF_CH(5)選擇通道0有效數據寬度 Rx_Pw_P0(6)配置發射參數(低噪放大器增益、發射功率、無線速率) RF_SETUP(7)配置24L01的基本參數以及切換工作模式 CONFIG。4.2.3 函數介紹NRF24L01的控制程序主要包括以下幾個函數:(1)uchar SPI_RW(uchar byte);最基本的函數,完成GPIO模擬SPI的功能。將輸出字節(MOSI)從MSB循環輸

49、出,同時將輸入字節(MISO)從LSB循環移入。上升沿讀入,下降沿輸出。(2)uchar SPI_RW_Reg(uchar reg, uchar value);寄存器訪問函數:用來設置24L01的寄存器的值。基本思路就是通過WRITE_REG命令(也就是0x20+寄存器地址)把要設定的值寫到相應的寄存器地址里面去,并讀取返回值。對于函數來說也就是把value值寫到reg寄存器中。需要注意的是,訪問NRF24L01之前首先要enable芯片(CSN=0;),訪問完了以后再disable芯片(CSN=1;)。(3)uchar SPI_Read(uchar reg);讀取寄存器值的函數:基本思路就是

50、通過READ_REG命令(也就是0x00+寄存器地址),把寄存器中的值讀出來。對于函數來說也就是把reg寄存器的值讀到reg_val中去。(4)uchar SPI_Read_Buf(uchar reg, uchar *pBuf, uchar bytes);接收緩沖區訪問函數:主要用來在接收時讀取FIFO緩沖區中的值。基本思路就是通過READ_REG命令把數據從接收FIFO(RD_RX_PLOAD)中讀出并存到數組里面去。(5)uchar SPI_Write_Buf(uchar reg, uchar *pBuf, uchar bytes);發射緩沖區訪問函數:主要用來把數組里的數放到發射FIFO

51、緩沖區中。基本思路就是通過WRITE_REG命令把數據存到發射FIFO(WR_TX_PLOAD)中去。(6)void RX_Mode(void);設定24L01為接收方式。(7)void TX_Mode(void);設定24L01為發送方式。4.3 軟件編譯與調試4.3.1 程序設計語言的選用在單片機的開發應用中,逐漸引入了高級語言,C語言就是其中的一種。對于用慣了匯編語言的人來說,高級語言的可控性不好,不如匯編語言那樣能夠隨心所欲。但是使用匯編語言會遇到很多問題,首先它的可讀性和可維護性不強,特別是當程序沒有很好標注的時候;其次就是代碼的可重用性也比較低。C語言卻沒有這些問題。C語言具有模塊

52、化、容易閱讀和維護等優點。由于模塊化,用C語言編寫的程序有很好的可移植性,功能化的代碼能夠很方便地從一個工程移植到另一個工程,從而減少了開發的時間。用C語言編寫程序比用匯編語言更符合人們的思考習慣,開發者可以更專心地考慮算法而不用費很大力氣考慮一些細節問題,這樣就減少了開發和調試的時間。使用C語言,程序員不必十分熟悉處理器的運算過程,這是因為很多處理器支持C編譯器,這也使得用C語言編寫的程序有很好的可移植性。綜上所述,在本次畢業設計中,使用C語言來編寫程序。4.3.2 KeilC51簡介單片機開發中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變為CPU可以執行的機器碼有兩種方法,一

53、種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變為機器碼,用于MCS-51單片機的匯編軟件有早期的A51,隨著單片機開發技術的不斷發展,從普遍使用匯編語言到逐漸使用高級語言開發,單片機的開發軟件也在不斷發展,Keil軟件是目前最流行的開發MCS-51系列單片機的軟件,它提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(uVision)將這些部份組合在一起。4.3.3 uVision4集成開發環境1. 項目管理 工程(project)是由源文件、開發工具選項以及編程說明三部分組成的。 一

54、個單一的uVision4工程能夠產生一個或多個目標程序。產生目標程序的源文件構成“組”。開發工具選項可以對應目標,組或單個文件。uVision4包含一個器件數據庫(device database),可以自動設置匯編器、編譯器、連接定位器及調試器選項,用來滿足用戶的特定需求。uVision4可以為片外存儲器產生必要的連接選項、確定起始地址和規模。2. 集成功能uVision4具有強大的功能:(1)集成源極瀏覽器利用符號數據庫使用戶可以快速瀏覽源文件。用詳細的符號信息來優化用戶變數存儲器。(2)文件尋找功能:在特定文件中執行全局文件搜索。(3)工具菜單:允許在V4集成開發環境下啟動用戶功

55、能。(4)可配置SVCS接口:提供對版本控制系統的入口。(5)PCLINT接口:對應用程序代碼進行深層語法分析。(6)Infineon的EasyCase接口:集成塊集代碼產生。(7)Infineon的DAVE功能:協助用戶的CPU和外部程序。DAVE工程可被直接輸入uVision4。4.3.4 軟件調試與結果本設計軟件編譯使用的是Vision4編譯器。程序代碼編寫完后需要編譯鏈接生成目標代碼,編譯后的結果如圖4.5所示。圖4.5 編譯結果顯示窗口圖第五章 安裝與調試5.1 Altium Designer軟件Altium Designer系統是Altium公司于2006年年初推出的一種電子設計自動化(Electronic

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論