版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、編號:201234140143 本科畢業設計基于單片機的無線遠程溫度監控系統設計系 院:信息工程學院姓 名:學 號:0835140143專 業:通信工程年 級:2008級指導教師:職 稱:副教授完成日期:2012年5月I / 46摘 要本文論述的遠程溫度控制是將無線發射與接收和自動控制相結合的一種控制?;谶@種技術,本系統以AT89S51系列單片機為控制單元,采用Dallas單線數字溫度傳感器DS18B20和無線收發模塊NRF24L01對試驗現場溫度數據進行遠程無線測量與控制。整個系統包括主、從兩個子系統,其中主系統完成對試驗現場設定溫度值、設定值顯示、實際值顯示、失控報警和接收數據功能;子系
2、統完成溫度采集、溫度控制和發送數據功能。該系統結構簡單實用、功能齊全,通用性強,可被應用于許多工業生產領域,它可使操作人員與惡劣的工作環境分離開來,實現生產自動化,提高企業的生產效率。關鍵詞:AT89S51;溫度傳感器;NRF24L01;顯示;報警AbstractThe long-distance temperature controlling this paper presents is a technology of linking wireless receiving and sending to automation. Based on the technology, the syst
3、em is based on the control of AT89S51 SCM, using Dallas single line digital thermometer DS18B20, wireless receiving and sending module NRF24L01 to test and control the temperature data of a experiencing place. The whole system consists of the main system and subsystem. The main system completes the
4、functions of initializing and displaying the temperature value, displaying actual temperature, alarming when it is out of control, and receiving. The subsystem completes the functions of receiving, and temperature collecting, controlling, and sending. The design concludes that this system has many a
5、dvantages, such as its uniqueness, simple, convenience, and such common using. It can be widely used in lots of industrial producing and controlling fields, applying this system can depart operators from execrable environment, realize producing automation, and improve corporations producing efficien
6、cy.Key words: AT89S51; Temperature senior; NRF24L01; Display; Warning目 錄1 緒論11.1 選題的目的和意義11.2 國內外研究現狀11.3 本設計主要研究內容22 設計要求與方案論證32.1 設計要求32.2 系統基本方案選擇和論證32.2.1 單片機芯片選擇方案與論證32.2.2 溫度采集模塊選擇方案與論證32.2.3 無線收發模塊的選擇方案與論證42.2.4 顯示模塊的選擇方案與論證42.2.5 報警模塊的選擇方案與論證42.3 電路設計最終方案的確定53 系統的硬件設計與實現63.1 系統硬件概述63.2 主要單元電
7、路的設計63.2.1 單片機主控制模塊的設計63.2.2 溫度采集電路模塊的設計73.2.3 無線收發電路模塊的設計83.2.4 顯示電路模塊的設計103.2.5 報警電路模塊的設計113.2.6 電路原理及說明124 系統程序的設計134.1 主程序的設計134.2 發射系統程序的設計164.3 傳輸程序的設計164.4 溫度采集程序的設計174.5 顯示程序的設計185 仿真與調試206 結論23參考文獻24致 謝25附錄261 緒論1.1 選題的目的和意義溫度是工業生產中常見的被控參數之一。從食品生產到化工生產,從燃料生產到鋼鐵生產等等,無不涉及到對溫度的控制,可見,溫度控制在工業生產中
8、占據著非常重要的地位,而且隨著工業生產的現代化,對溫度控制的速度和精度也會越來越高。近年來,溫度控制領域發生了很大的變化,工業生產中對溫度的控制不再局限于近距離或者直接的控制,而是需要進行遠距離的控制,這就產生了遠程溫度控制。遠程控制的通信方式有多種,如通過有線網絡、無線電等等。每一種方式都有其優點和缺點。利用無線電通信,方便、靈活,而且經濟。它不需要像有線網絡控制耗費巨大的通信資源,也不受網絡速度的影響。在溫度控制的方法上,傳統的控制方法(包括經典控制和現代控制)在處理具有非線形或不精確特性的被控對象時十分困難。而溫度系統為大滯后系統,較大的純滯后可引起系統不穩定。在溫度采集方法上,通常是利
9、用熱電偶把熱化為電信號,再通過A/D轉換得到溫度值。這種方法速度慢,而且精度不是很高。綜合上面的考慮,本次畢業設計設計了基于無線電通信的遠程溫度控制系統?,F代工業設計、工程建設及日常生活中常常需要用到溫度控制,早期溫度控制主要應用于工廠中,例如鋼鐵的水溶溫度,不同等級的鋼鐵要通過不同溫度的鐵水來實現,這樣就可能有效的利用溫度控制來掌握所需要的產品了。在現代社會中,溫度控制不僅應用在工廠生產方面,其作用也體現到了各個方面,隨著人們生活質量的提高,酒店廠房及家庭生活中都會見到溫度控制的影子,溫度控制將更好的服務于社會。近年來,單片機發展十分迅速,一個以微機應用為主的新技術革命浪潮正在蓬勃發展,單片
10、機已經滲透到工業、農業、國防,科研以及日常生活等各個領域。傳統的溫度采集的方法不僅費時,而且精度差滿足不了各行業對于溫度數據提高精度,設備高可靠性的需求。單片機的出現使得溫度數據的采集和處理得到了很好的解決。選擇適當的單片機和溫度傳感器以及前端處理電路,可以獲得較高的測量精度,不但方便快捷,成本低廉,省事省力,而且大幅度提高了測量精度。1.2 國內外研究現狀在人類的生活環境中,溫度扮演著極其重要的角色。無論你生活在哪里,從事什么工作,無時無刻不在與溫度打著交道。自18世紀工業革命以來,工業發展對是否能掌握溫度有著絕對的聯系。在冶金、鋼鐵、石化、水泥、玻璃、醫藥等行業,可以說幾乎所有的工業部門都
11、不得不考慮著溫度的因素。目前國內外對于溫度監控的研究和應用已非常普遍,但對于無線遠程溫度監控這方面的研究和應用還有相當大的提升空間。無線溫度監控不僅可以應用在工廠生產方面,其作用也體現到了各個方面,隨著人們生活質量的提高,酒店廠房及家庭生活中都將會見到它的影子,無線遠程溫度監控將會有更廣闊的發展空間。1.3 本設計主要研究內容本設計是基于單片機的無線溫度監控系統,經過大量查閱資料和研究,最終確定采用AT89S51為主控芯片,DS18B20作為溫度采集芯片,NRF24L01作為無線接收和發射模塊,采用LCD1602液晶屏進行顯示。該系統由發射系統和接收系統組成,發射系統進行溫度采集以及數據發射,
12、接收系統作為主系統,對數據接收處理并顯示出來。該系統具有溫度過限報警功能,設有4個獨立按鍵,分別進行溫度高低限定值的選擇、設定,清除報警聲和報警燈。該系統具有操作方便,遠距離操控,功能多樣,電路簡潔,成本低廉等優點,符合電子技術的發展趨勢,有很廣闊的市場前景。經過設計和一系列的調試,測試結果基本達到了該設計預期制定的各項要求,順利地完成了本次畢業設計的目標。2 設計要求與方案論證2.1 設計要求(1)溫度監測范圍:室溫125;(2)接收系統顯示溫度實際值,收發距離:60米以內;(3)可以人工設定報警溫度上、下限定值;(4)超過溫度限定值時蜂鳴器報警和發光報警。2.2 系統基本方案選擇和論證2.
13、2.1 單片機芯片選擇方案與論證方案一:采用FPGA(現場可編程們陣列)作為系統的控制器。FPGA可實現各種復雜的邏輯功能,規模大,密度高,它將所有的器件集成在一塊芯片上,減小了體積,提高了穩定性,并可用EDA軟件仿真、在線調試,易于進行功能擴展,響應速度快。但成本高,同時由于引腳較多,電路板的布線比較復雜,加重了電路設計和實現焊接的工作。方案二:采用8位單片機作為主要的控制芯片。8位單片機具有價格比較便宜,并且技術比較成熟,低功耗,易于購買等優點,但是8位機程序執行速度比較慢,內部資源比16位單片機少很多??紤]到本系統對程序運行速度的要求不高以及成本問題,最后選擇用8位單片機,由于AT89S
14、51單片機比其他8位單片機價格便宜,并且其內部具有豐富的資源,故采用AT89S51單片機作為本系統主控制芯片。2.2.2 溫度采集模塊選擇方案與論證方案一:使用熱敏電阻作為傳感器,用熱敏電阻與一個相應阻值電阻相串聯分壓,利用熱敏電阻阻值隨溫度變化而變化的特性,采集這兩個電阻變化的分壓值,并進行A/D轉換。此設計方案需用A/D轉換電路,增加了線路的復雜程度,增加硬件成本而且熱敏電阻的感溫特性曲線并不是嚴格線性的,會產生較大的測量誤差。因此此方案不可行。方案二:采用DS18B20。DS18B20的數字溫度輸出通過1-Wire總線,又稱為“一線”總線,這種獨特的方式可以使多個DS18B20方便地組建
15、成傳感器網絡,為整個測量系統的建立和組合提供了更大的可能性。它在測溫精度、轉換時間、測數距離、分辨率等方面比其他溫度傳感器有了很大的進步,給用戶帶來了更方便的使用和更令人滿意的效果。DS18B20直接輸出數字溫度值,不需要校正,因此選擇此方案。2.2.3 無線收發模塊的選擇方案與論證方案一:采用TX315A-T01和TX315A-R01的無線收發模塊。應用目前最先進的聲表面波器件和數據專用ASK超外差式單片接收電路開發生產了TX315系列模塊電路,其中含有RF、TF、DATA等高頻、中頻、數字處理電路。TX315A可應用于無線遙控、數據傳送、自動抄表系統、無線鍵盤操作系統、警戒系統。TX315
16、A由TX315A-T01發射組件和TX315A-R01接收組件兩部分組成,因其頻率絕對一致,故在使用時可隨意增加發射和接收組件,以組成所需的功能系統。此系統用此模塊很好,但是這個模塊的價格太昂貴,所以放棄此方案。方案二:采用一對NRF24L01作為無線收發模塊。NRF24L01是一款新型單片射頻收發器件,工作于2.4 GHz2.5 GHz ISM頻段。內置頻率合成器、功率放大器、晶體振蕩器、調制器等功能模塊,并融合了增強型Shock Burst技術,其中輸出功率和通信頻道可通過程序進行配置。NRF24L01功耗低,在以-6dBm的功率發射時,工作電流也只有9mA;接收時,工作電流只有12.3m
17、A,多種低功率工作模式(掉電模式和空閑模式)使節能設計更方便,而且價格相對其他無線模塊較低,易于購買,因此選擇此方案。2.2.4 顯示模塊的選擇方案與論證方案一:采用數碼管顯示,成本低、亮度高。但本系統所要實現較多的內容,硬件電路設計會比較復雜,而且功耗大,所以不適合本設計。方案二:采用點陣式數碼管顯示,點陣式數碼管是由八行八列的發光二極管組成,對于顯示文字比較適合,如采用在顯示數字顯得太浪費,且價格也相對較高,所以也不用此種作為顯示。方案三:采用LCD1602液晶屏顯示,顯示內容較多,方便組合,可視面積大,畫面效果好,抗干擾能力強,調用方便簡單,而且可以節省軟件中斷資源。系統中需要顯示溫度和
18、上限溫度等信息,要求顯示內容豐富。比較上述三種方案,方案三電路簡單、顯示信息量大、能很好的滿足題目要求,因此采用方案三 。2.2.5 報警模塊的選擇方案與論證方案一:采用555定時器構成蜂鳴器,常用于定時報警,非常實用,其時間可控,但本設計報警時間是隨機的,取決于試驗現場的溫度,因此不可行。方案二:采用9102三極管驅動蜂鳴器,當達到溫度上下限值,就會給三極管一個高電平驅動蜂鳴器,實現聲音報警,并且可以接個發光二級管,同時點亮二極管,實現發光報警。此方案實行起來方便,電路也簡單,因此選用此方案。2.3 電路設計最終方案的確定由以上討論的各種方案最終得出本次設計的方案為:采用單片機芯片AT89S
19、51作為主控制芯片,DS18B20數字溫度傳感,NRF24L01作為無線收發模塊,LCD1602作為顯示模塊,采用蜂鳴器和發光二極管進行聲光報警。3 系統的硬件設計與實現系統硬件電路主要分為:單片機AT89S51主、從系統、接收電路、顯示電路、鍵盤電路、溫度采集電路、發射電路。設計總框圖如圖3-1所示,系統設計總原理圖見附錄1。溫度采集AT89S51單片機(副) 無線發射液晶顯示AT89S51單片機(主)無線接收聲光報警獨立鍵盤圖3-1 總設計框圖3.1 系統硬件概述硬件電路是由單片機芯片AT89S51為控制核心,具有在線編程,豐富的中斷源、靈活性強、低功耗等功能,能在3V低壓工作;溫度的采集
20、由DS18B20來構成,它具有微型化、低功耗、高性能、搞干擾能力強、易配處理器等優點,特別適用于構成多點溫度測控系統,可直接將溫度轉化成串行數字信號給單片機處理,且在同一總線上可以掛接多個傳感器芯片;無線收發模塊用NRF24L01,工作于2.4GHz2.5GHz ISM頻段,NRF24L01功耗低,在以-6dBm的功率發射時,工作電流也只有9mA;接收時,工作電流只有12.3mA,多種低功率工作模式(掉電模式和空閑模式)使節能設計更方便;顯示部份由1602 LCD來完成;報警電路采用三極管驅動蜂鳴器及發光二極管實現聲光報警。3.2 主要單元電路的設計3.2.1 單片機主控制模塊的設計AT89S
21、51單片機為40引腳雙列直插芯片, 如圖3-2所示。有四個I/O口P0,P1,P2,P3,每一條I/O線都能獨立地作輸出或輸入。AT89S51具有以下標準功能:4k字節Flash,256字節RAM,32位I/O 口線,看門狗定時器,2個數據指針,三個16位定時器/計數器,一個6向量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,AT89S51可降至0Hz 靜態邏輯操作,支持2種軟件可選擇節電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數器、串口、中斷繼續工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。圖3-2 AT89S
22、51管腳圖單片機主控制電路即包括了單片機的時鐘電路和復位電路。本設計采用的是內部時鐘電路。單片機內部有一個用于構成振蕩器的高增益反相放大器,18引腳XTAL1是放大器的輸入端,19引腳XTAL2是放大器的輸出端,這兩個引腳之間跨接的晶振和微調電容作為反饋元件一起構成一個穩定的自激振蕩器。9引腳是單片機的復位輸入端,接上電容,電阻及電阻和按鈕組成手動復位電路。如圖3-3所示。圖3-3 單片機復位和時鐘電路3.2.2 溫度采集電路模塊的設計溫度采集電路如圖3-4所示。采用數字式溫度傳感器DS18B20,它是DALLAS公司生產的單總線式數字溫度傳感器,它具有微型化、低功耗、高性能、搞干擾能力強、易
23、配處理器等優點,特別適用于構成多點溫度測控系統,可直接將溫度轉化成串行數字信號(提供9位二進制數字)給單片機處理,且在同一總線上可以掛接多個傳感器芯片。它具有3引腳TO92小體積封裝形式,溫度測量范圍為55125,可編程為9位12位A/D轉換精度,測溫分辨率可達0.0625,被測溫度用符號擴展的16位數字量方式串行輸出,其工作電源既可在遠端引入,也可采用寄生電源方式產生,多個DS18B20可以并聯到3根或2根線上,CPU只需一根端口線就能與多個DS18B20通信,占用微處理器的端口較少,可節省大量的引線和邏輯電路。它具有測量精度高,電路連接簡單特點,此類傳感器僅需要一條數據線進行數據傳輸,使用
24、 P10與DS18B20的I/O口連接,VCC接電源,GND接地。圖3-4 溫度傳感器應用電路3.2.3 無線收發電路模塊的設計NRF24L01是一款新型單片射頻收發器件,工作于2.4GHz2.5GHz ISM頻段。內置頻率合成器、功率放大器、晶體振蕩器、調制器等功能模塊,并融合了增強Shock Burs技術,其中輸出功率和通信頻道可通過程序進行配置。NRF24L01功耗低,在以-6dBm的功率發射時,工作電流也只有9mA;接收時,工作電流只有12.3mA,多種低功率工作模式(掉電模式和空閑模式)使節能設計更方便。NRF24L01主要特性有GFSK調制:硬件集成OSI鏈路層;具有自動應答和自動
25、再發射功能;片內自動生成報頭和CRC校驗碼;數據傳輸率為l Mb/s或2Mb/s;SPI速率為0 Mb/s10 Mb/s;125個頻道:與其他NRF24系列射頻器件相兼容;QFN20引腳4mm4mm封裝;供電電壓為1.9V3.6V。NRF14L01的封裝及引腳排列如圖3-5所示。圖3-5 NRF24L01管腳圖發射數據時,首先將NRF24L01配置為發射模式:接著把接收節點地址TX_ADDR和有效數據TX_PLD按照時序由SPI口寫入NRF24L01緩存區,TX_PLD必須在CSN為低時連續寫入,而TX_ADDR在發射時寫入一次即可,然后CE置為高電平并保持至少10s,延遲130s后發射數據;
26、若自動應答開啟,那么NRF24L01在發射數據后立即進入接收模式,接收應答信號(自動應答接收地址應該與接收節點地址TX_ADDR一致)。如果收到應答,則認為此次通信成功,TX_DS置高,同時TX_PLD從TX FIFO中清除;若未收到應答,則自動重新發射該數據(自動重發已開啟),若重發次數(ARC)達到上限,MAX_RT置高,TX FIFO中數據保留以便在次重發;MAX_RT或TX_DS置高時,使IRQ變低,產生中斷,通知MCU。最后發射成功時,若CE為低則NRF24L01進入空閑模式1;若發送堆棧中有數據且CE為高,則進入下一次發射;若發送堆棧中無數據且CE為高,則進入空閑模式2。 接收數據
27、時,首先將NRF24L01配置為接收模式,接著延遲130s進入接收狀態等待數據的到來。當接收方檢測到有效的地址和CRC時,就將數據包存儲在RX FIFO中,同時中斷標志位RX_DR置高,IRQ變低,產生中斷,通知MCU去取數據。若此時自動應答開啟,接收方則同時進入發射狀態回傳應答信號。最后接收成功時,若CE變低,則NRF24L01進入空閑模式1。 SPI口為同步串行通信接口,最大傳輸速率為10Mb/s,傳輸時先傳送低位字節,再傳送高位字節。但針對單個字節而言,要先送高位再送低位。與SPI相關的指令共有8個,使用時這些控制指令由NRF24L01的MOSI輸入。相應的狀態和數據信息是從MISO輸出
28、給MCU。 NFR24L01模塊采用3.3V電壓供電,其應用電路及電源轉換電路如圖3-6所示。圖3-6 NRF24L01應用電路3.2.4 顯示電路模塊的設計如圖3-7所示,采用1602 LCD顯示。1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣,具體各個腳的功能如表3-1。表3-1 LCD引腳功能表引腳符號功能說明1VSS一般接地2VDD接電源(+5V)3V0LCD對比度調整端,接正電源時對比度最弱,接地時對比度最高4RSRS為寄存器選擇,高電平時選數據寄存器、低電平時選指令寄
29、存器。5R/WR/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。6EE(或EN)端為使能(enable)端,下降沿使能。7DB0底4位三態、 雙向數據總線 0位(最低位)8DB1底4位三態、 雙向數據總線 1位9DB2底4位三態、 雙向數據總線 2位10DB3底4位三態、 雙向數據總線 3位11DB4高4位三態、 雙向數據總線 4位12DB5高4位三態、 雙向數據總線 5位13DB6高4位三態、 雙向數據總線 6位14DB7高4位三態、 雙向數據總線 7位(最高位)(也是busy flag)由于1602 LCD具有功耗低、壽命長、體積小、顯示內容豐富、接口控制方便等優點。因此在各類電
30、子產品中被廣泛的推廣和使用。本系統采用它來作為顯示器件,不僅簡化了硬件電路,而且極大的提高了系統的可靠性。如圖3-8所示。1602 LCD與單片機AT89S52的連接電路很簡單。圖3-7 LCD1602管腳圖圖3-8 LCD1602應用電路3.2.5 報警電路模塊的設計蜂鳴器是一種一體化結構的電子訊響器,采用直流電壓供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產品中作發聲器件。 蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。壓電式蜂鳴器:壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有發光
31、二極管。多諧振蕩器由晶體管或集成電路構成。當接通電源后(1.515V直流工作電壓),多諧振蕩器起振,輸出1.52.5kHZ的音頻信號,阻抗匹配器推動壓電蜂鳴片發聲。電磁式蜂鳴器:電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。接通電源后,振蕩器產生的音頻信號電流通過電磁線圈,使電磁線圈產生磁場。振動膜片在電磁線圈和磁鐵的相互纏繞。本設計應用三極管驅動蜂鳴器同時點亮發光二極管實現報警,其應用電路如圖3-9所示。圖3-9 報警電路3.2.6 電路原理及說明將以上各個電路模塊連接起來,即構成無線遠程監控系統,總系統工作原理如下:溫度傳感器對實驗現場的溫度進行采集,副控芯片AT89S51對
32、采集溫度數據進行處理,將有用數據送給發射模塊NRF24L01,主系統的接受模塊NRF24L01接受數據送給主控芯片AT89S51,AT89S51對數據進行分析處理,對現場實際溫度進行顯示;另外,可以人工通過獨立鍵盤對所測溫度進行監控,先設定好規定的溫度范圍,當采集的溫度超過此范圍時,蜂鳴器響,同時點亮發光二極管,通過按鍵選擇,可以獨立實現聲音報警、發光報警及聲光同時報警;當檢測溫度不在設定范圍內時,系統正常運行,時刻顯示著現場的溫度值。4 系統程序的設計4.1 主程序的設計主程序包括主系統程序設計,子系統程序設計和報警程序設計。主系統程序負責鍵盤設定值的檢測,上下門限設定值的顯示,通過無線模塊
33、接收子系統發送來的數據并顯示在LCD上,并且判斷接收的溫度是否超出門限值,如果超出就進行報警操作。主系統流程圖如圖4-1所示。鍵盤設定值檢測設定值顯示實際值顯示接收副系統數據返回主程序溫度超出范圍否?報警YN圖4-1 主系統程序流程圖子系統負責對溫度的數據采集,經過處理后通過無線模塊發送出去。子系統程序流程圖如圖4-2所示。溫度采集數據處理實際值發送主程序返回圖4-2 子系統程序流程圖報警程序通過對接收到的實際值與設定值進行比較,當溫度小于報警下限值時,進行報警下限處理,當溫度大于報警上限值時,進行報警上限處理。報警程序流程圖如圖4-3所示。設定值與實際值比較溫度小于報警下限?溫度大于報警上限
34、?報警上限處理NYYN報警下限處理報警子程序返回圖4-3 溫度報警子程序流程圖主程序首先對LCD進行初始化,然后進行按鍵掃描,設定溫度上下限值,接著初始化無線接收模塊,然后溫度數據,并判斷是否超出設定范圍,超過即啟動報警程序,不超過則繼續判斷,如此循環。main()delay_ms(500); / 上電延時LCD1602_init(); / LCD初始化wireless_init();while (1)Count+; / 超時計數if (Count = 140000)w_string(0x00, No Signal! ); /顯示無信號k_val = scan_key(); /掃描按鍵 key
35、_action(k_val); /按鍵操作內容if (IRQ = 0) /是否接收到數據 read_chip_state();/讀芯片狀態 tra0 = 0x27; tra1 = 0x70;write_more_byte(tra,2);read_more_bytes(Rev_dat,16); / 讀數據if (Rev_dat0+Rev_dat1) = 0xFF) /和校驗Count = 0; /清零計數器w_string(0x00, Real Wen du: C); /顯示當前溫度if (Rev_dat0 0) /負溫度顯示 Rev_dat0 = -Rev_dat0; w_string(0x0
36、C, -); w_data(0x0D, Rev_dat0);else / 正溫度顯示 w_string(0x0C, +); w_data(0x0D, Rev_dat0); 4.2 發射系統程序的設計發射程序首先點亮信號燈并且初始化無線發射模塊,接著讀取溫度數據并校驗數據,然后發射溫度數據并重置信號燈,數據正常發送,則信號燈穩定閃爍。main()int8 dataout16;LED = 0; / 上電LED亮Wireless_init(); /初始化無線模塊while (1) start_temp_sensor(); / 初始化18B20delay_ms(1000);/ 延時1秒dataout0
37、 = read_temp(); /讀溫度dataout1 = 0xFF - dataout0; /反轉數據 作為校驗LED = LED; / 重置LED指示燈Send_16Bytes_Data(dataout); / 發送數據4.3 傳輸程序的設計傳輸程序包括發送數據和接收數據,即無線收發模塊之間進行數據通信,設定好對應的通信地址和通信協議,即可實現數據的正確傳送。/ 發送數據/ 輸入值:addr:輸入數據地址void Send_16Bytes_Data(unsigned char *addr) unsigned char *p = addr,tra12,i; CLR_SCN(); Write
38、_one_byte(0xA0); for (i=0;i16;i+) Write_one_byte(*p+); SET_SCN(); SET_CE(); for (i=0;i60;i+); CLR_CE(); while (READ_IRQ() = 1); tra10 = 0x27; tra11 = 0x70; Write_more_byte(tra1,2); tra10 = 0xE1; Write_more_byte(tra1,1);/* 接收數據*/ 寫一個字節到芯片/ 輸入參數:dat:數據void write_one_byte(unsigned char dat) unsigned ch
39、ar i,dd=dat; for (i=0;i8;i+) if (dd & 0x80) / 發送數據 SET_MOSI(); else CLR_MOSI(); SET_SCK(); / 發時鐘 CLR_SCK(); dd = 1; 4.4 溫度采集程序的設計溫度采集程序主要是對溫度傳感器DS18B20編程,向1-線總線上寫字節,傳送字節和讀字節,然后將采集的數據交給單片機進行處理。/* 18B20寫1個字節函數 向1-WIRE總線上寫一個字節*/void write_byte(uint8 val)uint8 i;for (i=0; i= 1; /右移一位DQ = 1; delay(1); /*
40、18B20讀1個字節函數 從1-WIRE總線上讀取一個字節*/uint8 read_byte(void)uint8 i, value=0;for (i=0; i= 1; DQ = 0;nops(); /4usDQ = 1;nops(); /4us if (DQ) value|=0x80; delay(6); /66usDQ=1; return(value);4.5 顯示程序的設計LCD1602顯示程序,首先進行1602的初始化,然后就是執行寫命令和寫數據這兩個子函數,實現溫度數據的實時顯示和按鍵操作的動態顯示。/* 初始化1602*/void LCD1602_init(void)w_cmd(0
41、x38); / 16*2顯示,5*7點陣,8位數據接口w_cmd(0x0C); / 顯示器開w_cmd(0x06); / 文字不動,光標自動右移w_cmd(0x01); / 清屏/*等待繁忙標志*/void wait(void)P0 = 0xFF;doRS = 0; RW = 1; EN = 0; EN = 1;while (BUSY = 1);EN = 0; /*寫數據*/void w_dat(uint8 dat)wait();EN = 0; P0 = dat; RS = 1; RW = 0;EN = 1; EN = 0; /* 寫命令*/void w_cmd(uint8 cmd)wait(
42、); EN = 0; P0 = cmd; RS = 0; RW = 0;EN = 1; EN = 0; /*發送字符串到LCD*/void w_string(uint8 addr_start, uint8 *p)w_cmd(addr_start | 0x80);while (*p != 0) w_dat(*p+); /*發送數字到LCD(0099)*/void w_data(uint8 addr_start, uint8 dat)w_cmd(addr_start | 0x80);w_dat(dat%100/10 + 0); w_dat(dat%10 + 0);5 仿真與調試由于無線模塊NRF2
43、4L01在模擬仿真中無法實現,所以采用的是雙機通信原理實現部分仿真。當溫度低于最低門限值時,紅燈亮,報警器報警,LCD顯示當前溫度;當溫度在設置范圍類時,LCD顯示當前溫度;當溫度超過最高門限時,黃燈亮,報警器報警。仿真原理圖如圖6-1所示,仿真結果如圖6-2、6-3、6-4所示。 圖6-1 仿真原理圖圖6-2 低于最低門限仿真圖圖6-3 正常范圍內仿真圖圖6-4 超出最大門限仿真圖6 結論本設計以單片機AT89S51為開發平臺,NRF24L01無線收發模塊,DS18B20溫度傳感器及LCD1602的特性及工作原理進行了深入研究。通過軟件硬件相結合而設計了遠程溫度顯示,遠程溫度報警系統。89S
44、51單片機的采用,不僅便于數據采集,而且擴展了各種功能,比如顯示、外部中斷等。NRF24L01無線收發模塊集成度高,集合了編碼解碼,發射接收功能,使用方便,使得系統的硬件和軟件簡單了許多?!耙痪€”數字溫度傳感器DS18B20與軟件處理相結合,進一步提高了系統的測溫精度。在電路的設計中充分考慮了系統的可靠性和安全性。該系統具有操控簡單方便、顯示直觀、功能多樣、精確度高、電路簡潔、成本低廉等諸多優點。對于單片機愛好者來說,也可以在系統的基礎上進行其它功能的開發。經過,部分模擬仿真調試,各項性能指標基本達到預期要求,也遇到一些問題,給系統上電后,液晶屏初始化失敗,經檢查發現,設計電路中液晶屏的8個數
45、據端口少接了上拉電阻,并且主芯片的31(EA)管腳沒有接電源,導致無法訪問片內存儲器,經過修改后,再次上電后,初始化成功。參考文獻1于海生,潘松峰,于培仁.微型計算機控制技術M.北京:清華大學出版社,2009.2徐煒,姜暉,崔琛.通信電子技術M.西安:西安電子科技大學出版社,2008.3朱定華.微機原理與接口技術M.北京:清華大學出版社,2010.4李斯偉,雷新生.數據通信技術M.北京:人民郵電出版社,2009.5謝自美.電子線路設計實驗測試M.武漢:華中科技大學出版社,2010.6梁廷貴.遙控電路可控硅觸發電路語音電路分冊M.北京:科學技術文獻出版社,2011.7黃賢武,鄭筱霞.傳感器原理及
46、其應用M.成都:電子科技大學出版社, 2010. 8俞國亮.MCS-51單片機原理與應用M.北京:清華大學出版社,2010.9夏路易,石宗義.Protell99SE設計教程M.北京:北京希望電子出版社,2009.10王用倫.微機控制技術M.重慶:重慶大學出版社,2010.11李大寨.傳感器電子制作DIYJ.北京:科學出版社,2011.12張毅剛.單片機原理及應用M.北京:高等教育出版社,2010. 13譚浩強.C語言程序設計教程M.北京:高等教育出版社,2010.14彭偉.單片機C語言程序設計實訓100例M.北京:北京航空航天大學出版社,2010.15候殿有.單片機C語言設計M.北京:人民郵電
47、出版社,2010.16姜志海,趙艷雷.單片機的C語言M.北京:電子工業出版社,2008.17鄭鋒,王巧芝,程麗平.51單片機典型應用開發實例大全M.北京:中國鐵道工業出版社,2011.18杜洋.愛上單片機M.北京:人民郵電出版社,2011.19喻金錢,喻斌.短距離無線通信詳解:基于單片機控制M.北京:北京航空航天大學出版社,2009.20譚暉.nRF無線SOC單片機原理與高級應用M.北京:北京航空航天大學出版社,2009.致 謝附錄附錄 系統總原理圖附錄 仿真程序 副系統仿真程序#include #include typedef unsigned char uint8;typedef unsi
48、gned int uint16;typedef unsigned long uint32;typedef char int8;typedef int int16;typedef long int32;sbit DQ=P10; /DS18B20sbit LED=P11; /LED#define nops(); _nop_(); _nop_(); _nop_(); _nop_(); /定義空指令int8 read_temp(void);void start_temp_sensor(void);void tran_init(void);void send(int8 tem);void delay(u
49、int16 cnt);/*18B20復位函數*/void DS18b20_reset(void)bit flag=1;while (flag)while (flag) DQ = 1;delay(1); DQ = 0; delay(50); / 550us DQ = 1; / delay(6); / 66us flag = DQ; / presence=0繼續下一步 delay(45); /延時500usflag = DQ;DQ=1;/* 18B20寫1個字節函數向1-WIRE總線上寫一個字節*/void write_byte(uint8 val)uint8 i;for (i=0; i= 1;
50、/右移一位DQ = 1;delay(1); /* * 18B20讀1個字節函數從1-WIRE總線上讀取一個字節*/uint8 read_byte(void)uint8 i, value=0;for (i=0; i= 1;DQ = 0;nops(); /4usDQ = 1;nops(); /4us if (DQ)value|=0x80;delay(6); /66usDQ=1;return(value);void start_temp_sensor(void)DS18b20_reset();write_byte(0xCC); / 發Skip ROM命令write_byte(0x44); / 發轉換命令/*讀出溫度*/int8 read_temp(void)uint8 temp_data2; / 讀出溫度暫放int16 temp;DS18b20_reset(); / 總線復位write_byte(0xCC); / 發Skip ROM命令write_byte(0xBE); / 發讀命令temp_data0=read_byte(); /溫度低8位temp_data1=read_byte(); /溫度高8位temp = temp_data1;temp = 4;return (int8)temp;/* 串口傳輸 */void tran_init(void) EA=1;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學年數學浙教版八下素養檢測卷-學生用卷
- 工業廢水處理與環境影響評價研究
- 工業廢水處理技術與工藝
- 工業安全監控的機器學習技術應用
- 工業建筑設計及產能優化
- 工業機器人技術及其發展動態
- 工業機器人技術及產業發展
- 工業污染的防治與控制
- 工業自動化中的智能灌裝機技術
- 工業設計中的用戶體驗與界面美學
- GB/T 18666-2014商品煤質量抽查和驗收方法
- GB 3452.1-1992液壓氣動用O形橡膠密封圈尺寸系列及公差
- 重建大衛倒塌帳幕課件
- 美術教育研究方法與論文寫作-課件
- 岳母大人追悼詞
- 部編版一年級下冊語文全冊總復習課件(超全)
- 企業通訊員新聞寫作培訓
- 《W公司銷售員工培訓問題與對策研究(論文)》
- 最新2022年監理工程旁站及平行檢驗項目列表
- 第五單元 曲苑尋珍 丑末寅初 課件(共16張PPT)
- T_CSMPTE 11-2021 電視節目圖像質量主觀評價方法
評論
0/150
提交評論