基于單片機的無線遠程溫度監(jiān)控系統(tǒng)設計參考模板_第1頁
基于單片機的無線遠程溫度監(jiān)控系統(tǒng)設計參考模板_第2頁
基于單片機的無線遠程溫度監(jiān)控系統(tǒng)設計參考模板_第3頁
基于單片機的無線遠程溫度監(jiān)控系統(tǒng)設計參考模板_第4頁
基于單片機的無線遠程溫度監(jiān)控系統(tǒng)設計參考模板_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、編號:201234140143 本科畢業(yè)設計基于單片機的無線遠程溫度監(jiān)控系統(tǒng)設計系 院:信息工程學院姓 名:學 號:0835140143專 業(yè):通信工程年 級:2008級指導教師:職 稱:副教授完成日期:2012年5月I / 46摘 要本文論述的遠程溫度控制是將無線發(fā)射與接收和自動控制相結(jié)合的一種控制?;谶@種技術,本系統(tǒng)以AT89S51系列單片機為控制單元,采用Dallas單線數(shù)字溫度傳感器DS18B20和無線收發(fā)模塊NRF24L01對試驗現(xiàn)場溫度數(shù)據(jù)進行遠程無線測量與控制。整個系統(tǒng)包括主、從兩個子系統(tǒng),其中主系統(tǒng)完成對試驗現(xiàn)場設定溫度值、設定值顯示、實際值顯示、失控報警和接收數(shù)據(jù)功能;子系

2、統(tǒng)完成溫度采集、溫度控制和發(fā)送數(shù)據(jù)功能。該系統(tǒng)結(jié)構(gòu)簡單實用、功能齊全,通用性強,可被應用于許多工業(yè)生產(chǎn)領域,它可使操作人員與惡劣的工作環(huán)境分離開來,實現(xiàn)生產(chǎn)自動化,提高企業(yè)的生產(chǎn)效率。關鍵詞: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 國內(nèi)外研究現(xiàn)狀11.3 本設計主要研究內(nèi)容22 設計要求與方案論證32.1 設計要求32.2 系統(tǒng)基本方案選擇和論證32.2.1 單片機芯片選擇方案與論證32.2.2 溫度采集模塊選擇方案與論證32.2.3 無線收發(fā)模塊的選擇方案與論證42.2.4 顯示模塊的選擇方案與論證42.2.5 報警模塊的選擇方案與論證42.3 電路設計最終方案的確定53 系統(tǒng)的硬件設計與實現(xiàn)63.1 系統(tǒng)硬件概述63.2 主要單元電

7、路的設計63.2.1 單片機主控制模塊的設計63.2.2 溫度采集電路模塊的設計73.2.3 無線收發(fā)電路模塊的設計83.2.4 顯示電路模塊的設計103.2.5 報警電路模塊的設計113.2.6 電路原理及說明124 系統(tǒng)程序的設計134.1 主程序的設計134.2 發(fā)射系統(tǒng)程序的設計164.3 傳輸程序的設計164.4 溫度采集程序的設計174.5 顯示程序的設計185 仿真與調(diào)試206 結(jié)論23參考文獻24致 謝25附錄261 緒論1.1 選題的目的和意義溫度是工業(yè)生產(chǎn)中常見的被控參數(shù)之一。從食品生產(chǎn)到化工生產(chǎn),從燃料生產(chǎn)到鋼鐵生產(chǎn)等等,無不涉及到對溫度的控制,可見,溫度控制在工業(yè)生產(chǎn)中

8、占據(jù)著非常重要的地位,而且隨著工業(yè)生產(chǎn)的現(xiàn)代化,對溫度控制的速度和精度也會越來越高。近年來,溫度控制領域發(fā)生了很大的變化,工業(yè)生產(chǎn)中對溫度的控制不再局限于近距離或者直接的控制,而是需要進行遠距離的控制,這就產(chǎn)生了遠程溫度控制。遠程控制的通信方式有多種,如通過有線網(wǎng)絡、無線電等等。每一種方式都有其優(yōu)點和缺點。利用無線電通信,方便、靈活,而且經(jīng)濟。它不需要像有線網(wǎng)絡控制耗費巨大的通信資源,也不受網(wǎng)絡速度的影響。在溫度控制的方法上,傳統(tǒng)的控制方法(包括經(jīng)典控制和現(xiàn)代控制)在處理具有非線形或不精確特性的被控對象時十分困難。而溫度系統(tǒng)為大滯后系統(tǒng),較大的純滯后可引起系統(tǒng)不穩(wěn)定。在溫度采集方法上,通常是利

9、用熱電偶把熱化為電信號,再通過A/D轉(zhuǎn)換得到溫度值。這種方法速度慢,而且精度不是很高。綜合上面的考慮,本次畢業(yè)設計設計了基于無線電通信的遠程溫度控制系統(tǒng)?,F(xiàn)代工業(yè)設計、工程建設及日常生活中常常需要用到溫度控制,早期溫度控制主要應用于工廠中,例如鋼鐵的水溶溫度,不同等級的鋼鐵要通過不同溫度的鐵水來實現(xiàn),這樣就可能有效的利用溫度控制來掌握所需要的產(chǎn)品了。在現(xiàn)代社會中,溫度控制不僅應用在工廠生產(chǎn)方面,其作用也體現(xiàn)到了各個方面,隨著人們生活質(zhì)量的提高,酒店廠房及家庭生活中都會見到溫度控制的影子,溫度控制將更好的服務于社會。近年來,單片機發(fā)展十分迅速,一個以微機應用為主的新技術革命浪潮正在蓬勃發(fā)展,單片

10、機已經(jīng)滲透到工業(yè)、農(nóng)業(yè)、國防,科研以及日常生活等各個領域。傳統(tǒng)的溫度采集的方法不僅費時,而且精度差滿足不了各行業(yè)對于溫度數(shù)據(jù)提高精度,設備高可靠性的需求。單片機的出現(xiàn)使得溫度數(shù)據(jù)的采集和處理得到了很好的解決。選擇適當?shù)膯纹瑱C和溫度傳感器以及前端處理電路,可以獲得較高的測量精度,不但方便快捷,成本低廉,省事省力,而且大幅度提高了測量精度。1.2 國內(nèi)外研究現(xiàn)狀在人類的生活環(huán)境中,溫度扮演著極其重要的角色。無論你生活在哪里,從事什么工作,無時無刻不在與溫度打著交道。自18世紀工業(yè)革命以來,工業(yè)發(fā)展對是否能掌握溫度有著絕對的聯(lián)系。在冶金、鋼鐵、石化、水泥、玻璃、醫(yī)藥等行業(yè),可以說幾乎所有的工業(yè)部門都

11、不得不考慮著溫度的因素。目前國內(nèi)外對于溫度監(jiān)控的研究和應用已非常普遍,但對于無線遠程溫度監(jiān)控這方面的研究和應用還有相當大的提升空間。無線溫度監(jiān)控不僅可以應用在工廠生產(chǎn)方面,其作用也體現(xiàn)到了各個方面,隨著人們生活質(zhì)量的提高,酒店廠房及家庭生活中都將會見到它的影子,無線遠程溫度監(jiān)控將會有更廣闊的發(fā)展空間。1.3 本設計主要研究內(nèi)容本設計是基于單片機的無線溫度監(jiān)控系統(tǒng),經(jīng)過大量查閱資料和研究,最終確定采用AT89S51為主控芯片,DS18B20作為溫度采集芯片,NRF24L01作為無線接收和發(fā)射模塊,采用LCD1602液晶屏進行顯示。該系統(tǒng)由發(fā)射系統(tǒng)和接收系統(tǒng)組成,發(fā)射系統(tǒng)進行溫度采集以及數(shù)據(jù)發(fā)射,

12、接收系統(tǒng)作為主系統(tǒng),對數(shù)據(jù)接收處理并顯示出來。該系統(tǒng)具有溫度過限報警功能,設有4個獨立按鍵,分別進行溫度高低限定值的選擇、設定,清除報警聲和報警燈。該系統(tǒng)具有操作方便,遠距離操控,功能多樣,電路簡潔,成本低廉等優(yōu)點,符合電子技術的發(fā)展趨勢,有很廣闊的市場前景。經(jīng)過設計和一系列的調(diào)試,測試結(jié)果基本達到了該設計預期制定的各項要求,順利地完成了本次畢業(yè)設計的目標。2 設計要求與方案論證2.1 設計要求(1)溫度監(jiān)測范圍:室溫125;(2)接收系統(tǒng)顯示溫度實際值,收發(fā)距離:60米以內(nèi);(3)可以人工設定報警溫度上、下限定值;(4)超過溫度限定值時蜂鳴器報警和發(fā)光報警。2.2 系統(tǒng)基本方案選擇和論證2.

13、2.1 單片機芯片選擇方案與論證方案一:采用FPGA(現(xiàn)場可編程們陣列)作為系統(tǒng)的控制器。FPGA可實現(xiàn)各種復雜的邏輯功能,規(guī)模大,密度高,它將所有的器件集成在一塊芯片上,減小了體積,提高了穩(wěn)定性,并可用EDA軟件仿真、在線調(diào)試,易于進行功能擴展,響應速度快。但成本高,同時由于引腳較多,電路板的布線比較復雜,加重了電路設計和實現(xiàn)焊接的工作。方案二:采用8位單片機作為主要的控制芯片。8位單片機具有價格比較便宜,并且技術比較成熟,低功耗,易于購買等優(yōu)點,但是8位機程序執(zhí)行速度比較慢,內(nèi)部資源比16位單片機少很多??紤]到本系統(tǒng)對程序運行速度的要求不高以及成本問題,最后選擇用8位單片機,由于AT89S

14、51單片機比其他8位單片機價格便宜,并且其內(nèi)部具有豐富的資源,故采用AT89S51單片機作為本系統(tǒng)主控制芯片。2.2.2 溫度采集模塊選擇方案與論證方案一:使用熱敏電阻作為傳感器,用熱敏電阻與一個相應阻值電阻相串聯(lián)分壓,利用熱敏電阻阻值隨溫度變化而變化的特性,采集這兩個電阻變化的分壓值,并進行A/D轉(zhuǎn)換。此設計方案需用A/D轉(zhuǎn)換電路,增加了線路的復雜程度,增加硬件成本而且熱敏電阻的感溫特性曲線并不是嚴格線性的,會產(chǎn)生較大的測量誤差。因此此方案不可行。方案二:采用DS18B20。DS18B20的數(shù)字溫度輸出通過1-Wire總線,又稱為“一線”總線,這種獨特的方式可以使多個DS18B20方便地組建

15、成傳感器網(wǎng)絡,為整個測量系統(tǒng)的建立和組合提供了更大的可能性。它在測溫精度、轉(zhuǎn)換時間、測數(shù)距離、分辨率等方面比其他溫度傳感器有了很大的進步,給用戶帶來了更方便的使用和更令人滿意的效果。DS18B20直接輸出數(shù)字溫度值,不需要校正,因此選擇此方案。2.2.3 無線收發(fā)模塊的選擇方案與論證方案一:采用TX315A-T01和TX315A-R01的無線收發(fā)模塊。應用目前最先進的聲表面波器件和數(shù)據(jù)專用ASK超外差式單片接收電路開發(fā)生產(chǎn)了TX315系列模塊電路,其中含有RF、TF、DATA等高頻、中頻、數(shù)字處理電路。TX315A可應用于無線遙控、數(shù)據(jù)傳送、自動抄表系統(tǒng)、無線鍵盤操作系統(tǒng)、警戒系統(tǒng)。TX315

16、A由TX315A-T01發(fā)射組件和TX315A-R01接收組件兩部分組成,因其頻率絕對一致,故在使用時可隨意增加發(fā)射和接收組件,以組成所需的功能系統(tǒng)。此系統(tǒng)用此模塊很好,但是這個模塊的價格太昂貴,所以放棄此方案。方案二:采用一對NRF24L01作為無線收發(fā)模塊。NRF24L01是一款新型單片射頻收發(fā)器件,工作于2.4 GHz2.5 GHz ISM頻段。內(nèi)置頻率合成器、功率放大器、晶體振蕩器、調(diào)制器等功能模塊,并融合了增強型Shock Burst技術,其中輸出功率和通信頻道可通過程序進行配置。NRF24L01功耗低,在以-6dBm的功率發(fā)射時,工作電流也只有9mA;接收時,工作電流只有12.3m

17、A,多種低功率工作模式(掉電模式和空閑模式)使節(jié)能設計更方便,而且價格相對其他無線模塊較低,易于購買,因此選擇此方案。2.2.4 顯示模塊的選擇方案與論證方案一:采用數(shù)碼管顯示,成本低、亮度高。但本系統(tǒng)所要實現(xiàn)較多的內(nèi)容,硬件電路設計會比較復雜,而且功耗大,所以不適合本設計。方案二:采用點陣式數(shù)碼管顯示,點陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費,且價格也相對較高,所以也不用此種作為顯示。方案三:采用LCD1602液晶屏顯示,顯示內(nèi)容較多,方便組合,可視面積大,畫面效果好,抗干擾能力強,調(diào)用方便簡單,而且可以節(jié)省軟件中斷資源。系統(tǒng)中需要顯示溫度和

18、上限溫度等信息,要求顯示內(nèi)容豐富。比較上述三種方案,方案三電路簡單、顯示信息量大、能很好的滿足題目要求,因此采用方案三 。2.2.5 報警模塊的選擇方案與論證方案一:采用555定時器構(gòu)成蜂鳴器,常用于定時報警,非常實用,其時間可控,但本設計報警時間是隨機的,取決于試驗現(xiàn)場的溫度,因此不可行。方案二:采用9102三極管驅(qū)動蜂鳴器,當達到溫度上下限值,就會給三極管一個高電平驅(qū)動蜂鳴器,實現(xiàn)聲音報警,并且可以接個發(fā)光二級管,同時點亮二極管,實現(xiàn)發(fā)光報警。此方案實行起來方便,電路也簡單,因此選用此方案。2.3 電路設計最終方案的確定由以上討論的各種方案最終得出本次設計的方案為:采用單片機芯片AT89S

19、51作為主控制芯片,DS18B20數(shù)字溫度傳感,NRF24L01作為無線收發(fā)模塊,LCD1602作為顯示模塊,采用蜂鳴器和發(fā)光二極管進行聲光報警。3 系統(tǒng)的硬件設計與實現(xiàn)系統(tǒng)硬件電路主要分為:單片機AT89S51主、從系統(tǒng)、接收電路、顯示電路、鍵盤電路、溫度采集電路、發(fā)射電路。設計總框圖如圖3-1所示,系統(tǒng)設計總原理圖見附錄1。溫度采集AT89S51單片機(副) 無線發(fā)射液晶顯示AT89S51單片機(主)無線接收聲光報警獨立鍵盤圖3-1 總設計框圖3.1 系統(tǒng)硬件概述硬件電路是由單片機芯片AT89S51為控制核心,具有在線編程,豐富的中斷源、靈活性強、低功耗等功能,能在3V低壓工作;溫度的采集

20、由DS18B20來構(gòu)成,它具有微型化、低功耗、高性能、搞干擾能力強、易配處理器等優(yōu)點,特別適用于構(gòu)成多點溫度測控系統(tǒng),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號給單片機處理,且在同一總線上可以掛接多個傳感器芯片;無線收發(fā)模塊用NRF24L01,工作于2.4GHz2.5GHz ISM頻段,NRF24L01功耗低,在以-6dBm的功率發(fā)射時,工作電流也只有9mA;接收時,工作電流只有12.3mA,多種低功率工作模式(掉電模式和空閑模式)使節(jié)能設計更方便;顯示部份由1602 LCD來完成;報警電路采用三極管驅(qū)動蜂鳴器及發(fā)光二極管實現(xiàn)聲光報警。3.2 主要單元電路的設計3.2.1 單片機主控制模塊的設計AT89S

21、51單片機為40引腳雙列直插芯片, 如圖3-2所示。有四個I/O口P0,P1,P2,P3,每一條I/O線都能獨立地作輸出或輸入。AT89S51具有以下標準功能:4k字節(jié)Flash,256字節(jié)RAM,32位I/O 口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S51可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復位為止。圖3-2 AT89S

22、51管腳圖單片機主控制電路即包括了單片機的時鐘電路和復位電路。本設計采用的是內(nèi)部時鐘電路。單片機內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,18引腳XTAL1是放大器的輸入端,19引腳XTAL2是放大器的輸出端,這兩個引腳之間跨接的晶振和微調(diào)電容作為反饋元件一起構(gòu)成一個穩(wěn)定的自激振蕩器。9引腳是單片機的復位輸入端,接上電容,電阻及電阻和按鈕組成手動復位電路。如圖3-3所示。圖3-3 單片機復位和時鐘電路3.2.2 溫度采集電路模塊的設計溫度采集電路如圖3-4所示。采用數(shù)字式溫度傳感器DS18B20,它是DALLAS公司生產(chǎn)的單總線式數(shù)字溫度傳感器,它具有微型化、低功耗、高性能、搞干擾能力強、易

23、配處理器等優(yōu)點,特別適用于構(gòu)成多點溫度測控系統(tǒng),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(提供9位二進制數(shù)字)給單片機處理,且在同一總線上可以掛接多個傳感器芯片。它具有3引腳TO92小體積封裝形式,溫度測量范圍為55125,可編程為9位12位A/D轉(zhuǎn)換精度,測溫分辨率可達0.0625,被測溫度用符號擴展的16位數(shù)字量方式串行輸出,其工作電源既可在遠端引入,也可采用寄生電源方式產(chǎn)生,多個DS18B20可以并聯(lián)到3根或2根線上,CPU只需一根端口線就能與多個DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。它具有測量精度高,電路連接簡單特點,此類傳感器僅需要一條數(shù)據(jù)線進行數(shù)據(jù)傳輸,使用

24、 P10與DS18B20的I/O口連接,VCC接電源,GND接地。圖3-4 溫度傳感器應用電路3.2.3 無線收發(fā)電路模塊的設計NRF24L01是一款新型單片射頻收發(fā)器件,工作于2.4GHz2.5GHz ISM頻段。內(nèi)置頻率合成器、功率放大器、晶體振蕩器、調(diào)制器等功能模塊,并融合了增強Shock Burs技術,其中輸出功率和通信頻道可通過程序進行配置。NRF24L01功耗低,在以-6dBm的功率發(fā)射時,工作電流也只有9mA;接收時,工作電流只有12.3mA,多種低功率工作模式(掉電模式和空閑模式)使節(jié)能設計更方便。NRF24L01主要特性有GFSK調(diào)制:硬件集成OSI鏈路層;具有自動應答和自動

25、再發(fā)射功能;片內(nèi)自動生成報頭和CRC校驗碼;數(shù)據(jù)傳輸率為l Mb/s或2Mb/s;SPI速率為0 Mb/s10 Mb/s;125個頻道:與其他NRF24系列射頻器件相兼容;QFN20引腳4mm4mm封裝;供電電壓為1.9V3.6V。NRF14L01的封裝及引腳排列如圖3-5所示。圖3-5 NRF24L01管腳圖發(fā)射數(shù)據(jù)時,首先將NRF24L01配置為發(fā)射模式:接著把接收節(jié)點地址TX_ADDR和有效數(shù)據(jù)TX_PLD按照時序由SPI口寫入NRF24L01緩存區(qū),TX_PLD必須在CSN為低時連續(xù)寫入,而TX_ADDR在發(fā)射時寫入一次即可,然后CE置為高電平并保持至少10s,延遲130s后發(fā)射數(shù)據(jù);

26、若自動應答開啟,那么NRF24L01在發(fā)射數(shù)據(jù)后立即進入接收模式,接收應答信號(自動應答接收地址應該與接收節(jié)點地址TX_ADDR一致)。如果收到應答,則認為此次通信成功,TX_DS置高,同時TX_PLD從TX FIFO中清除;若未收到應答,則自動重新發(fā)射該數(shù)據(jù)(自動重發(fā)已開啟),若重發(fā)次數(shù)(ARC)達到上限,MAX_RT置高,TX FIFO中數(shù)據(jù)保留以便在次重發(fā);MAX_RT或TX_DS置高時,使IRQ變低,產(chǎn)生中斷,通知MCU。最后發(fā)射成功時,若CE為低則NRF24L01進入空閑模式1;若發(fā)送堆棧中有數(shù)據(jù)且CE為高,則進入下一次發(fā)射;若發(fā)送堆棧中無數(shù)據(jù)且CE為高,則進入空閑模式2。 接收數(shù)據(jù)

27、時,首先將NRF24L01配置為接收模式,接著延遲130s進入接收狀態(tài)等待數(shù)據(jù)的到來。當接收方檢測到有效的地址和CRC時,就將數(shù)據(jù)包存儲在RX FIFO中,同時中斷標志位RX_DR置高,IRQ變低,產(chǎn)生中斷,通知MCU去取數(shù)據(jù)。若此時自動應答開啟,接收方則同時進入發(fā)射狀態(tài)回傳應答信號。最后接收成功時,若CE變低,則NRF24L01進入空閑模式1。 SPI口為同步串行通信接口,最大傳輸速率為10Mb/s,傳輸時先傳送低位字節(jié),再傳送高位字節(jié)。但針對單個字節(jié)而言,要先送高位再送低位。與SPI相關的指令共有8個,使用時這些控制指令由NRF24L01的MOSI輸入。相應的狀態(tài)和數(shù)據(jù)信息是從MISO輸出

28、給MCU。 NFR24L01模塊采用3.3V電壓供電,其應用電路及電源轉(zhuǎn)換電路如圖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對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高4RSRS為寄存器選擇,高電平時選數(shù)據(jù)寄存器、低電平時選指令寄

29、存器。5R/WR/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。6EE(或EN)端為使能(enable)端,下降沿使能。7DB0底4位三態(tài)、 雙向數(shù)據(jù)總線 0位(最低位)8DB1底4位三態(tài)、 雙向數(shù)據(jù)總線 1位9DB2底4位三態(tài)、 雙向數(shù)據(jù)總線 2位10DB3底4位三態(tài)、 雙向數(shù)據(jù)總線 3位11DB4高4位三態(tài)、 雙向數(shù)據(jù)總線 4位12DB5高4位三態(tài)、 雙向數(shù)據(jù)總線 5位13DB6高4位三態(tài)、 雙向數(shù)據(jù)總線 6位14DB7高4位三態(tài)、 雙向數(shù)據(jù)總線 7位(最高位)(也是busy flag)由于1602 LCD具有功耗低、壽命長、體積小、顯示內(nèi)容豐富、接口控制方便等優(yōu)點。因此在各類電

30、子產(chǎn)品中被廣泛的推廣和使用。本系統(tǒng)采用它來作為顯示器件,不僅簡化了硬件電路,而且極大的提高了系統(tǒng)的可靠性。如圖3-8所示。1602 LCD與單片機AT89S52的連接電路很簡單。圖3-7 LCD1602管腳圖圖3-8 LCD1602應用電路3.2.5 報警電路模塊的設計蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產(chǎn)品中作發(fā)聲器件。 蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。壓電式蜂鳴器:壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有發(fā)光

31、二極管。多諧振蕩器由晶體管或集成電路構(gòu)成。當接通電源后(1.515V直流工作電壓),多諧振蕩器起振,輸出1.52.5kHZ的音頻信號,阻抗匹配器推動壓電蜂鳴片發(fā)聲。電磁式蜂鳴器:電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場。振動膜片在電磁線圈和磁鐵的相互纏繞。本設計應用三極管驅(qū)動蜂鳴器同時點亮發(fā)光二極管實現(xiàn)報警,其應用電路如圖3-9所示。圖3-9 報警電路3.2.6 電路原理及說明將以上各個電路模塊連接起來,即構(gòu)成無線遠程監(jiān)控系統(tǒng),總系統(tǒng)工作原理如下:溫度傳感器對實驗現(xiàn)場的溫度進行采集,副控芯片AT89S51對

32、采集溫度數(shù)據(jù)進行處理,將有用數(shù)據(jù)送給發(fā)射模塊NRF24L01,主系統(tǒng)的接受模塊NRF24L01接受數(shù)據(jù)送給主控芯片AT89S51,AT89S51對數(shù)據(jù)進行分析處理,對現(xiàn)場實際溫度進行顯示;另外,可以人工通過獨立鍵盤對所測溫度進行監(jiān)控,先設定好規(guī)定的溫度范圍,當采集的溫度超過此范圍時,蜂鳴器響,同時點亮發(fā)光二極管,通過按鍵選擇,可以獨立實現(xiàn)聲音報警、發(fā)光報警及聲光同時報警;當檢測溫度不在設定范圍內(nèi)時,系統(tǒng)正常運行,時刻顯示著現(xiàn)場的溫度值。4 系統(tǒng)程序的設計4.1 主程序的設計主程序包括主系統(tǒng)程序設計,子系統(tǒng)程序設計和報警程序設計。主系統(tǒng)程序負責鍵盤設定值的檢測,上下門限設定值的顯示,通過無線模塊

33、接收子系統(tǒng)發(fā)送來的數(shù)據(jù)并顯示在LCD上,并且判斷接收的溫度是否超出門限值,如果超出就進行報警操作。主系統(tǒng)流程圖如圖4-1所示。鍵盤設定值檢測設定值顯示實際值顯示接收副系統(tǒng)數(shù)據(jù)返回主程序溫度超出范圍否?報警YN圖4-1 主系統(tǒng)程序流程圖子系統(tǒng)負責對溫度的數(shù)據(jù)采集,經(jīng)過處理后通過無線模塊發(fā)送出去。子系統(tǒng)程序流程圖如圖4-2所示。溫度采集數(shù)據(jù)處理實際值發(fā)送主程序返回圖4-2 子系統(tǒng)程序流程圖報警程序通過對接收到的實際值與設定值進行比較,當溫度小于報警下限值時,進行報警下限處理,當溫度大于報警上限值時,進行報警上限處理。報警程序流程圖如圖4-3所示。設定值與實際值比較溫度小于報警下限?溫度大于報警上限

34、?報警上限處理NYYN報警下限處理報警子程序返回圖4-3 溫度報警子程序流程圖主程序首先對LCD進行初始化,然后進行按鍵掃描,設定溫度上下限值,接著初始化無線接收模塊,然后溫度數(shù)據(jù),并判斷是否超出設定范圍,超過即啟動報警程序,不超過則繼續(xù)判斷,如此循環(huán)。main()delay_ms(500); / 上電延時LCD1602_init(); / LCD初始化wireless_init();while (1)Count+; / 超時計數(shù)if (Count = 140000)w_string(0x00, No Signal! ); /顯示無信號k_val = scan_key(); /掃描按鍵 key

35、_action(k_val); /按鍵操作內(nèi)容if (IRQ = 0) /是否接收到數(shù)據(jù) read_chip_state();/讀芯片狀態(tài) tra0 = 0x27; tra1 = 0x70;write_more_byte(tra,2);read_more_bytes(Rev_dat,16); / 讀數(shù)據(jù)if (Rev_dat0+Rev_dat1) = 0xFF) /和校驗Count = 0; /清零計數(shù)器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 發(fā)射系統(tǒng)程序的設計發(fā)射程序首先點亮信號燈并且初始化無線發(fā)射模塊,接著讀取溫度數(shù)據(jù)并校驗數(shù)據(jù),然后發(fā)射溫度數(shù)據(jù)并重置信號燈,數(shù)據(jù)正常發(fā)送,則信號燈穩(wěn)定閃爍。main()int8 dataout16;LED = 0; / 上電LED亮Wireless_init(); /初始化無線模塊while (1) start_temp_sensor(); / 初始化18B20delay_ms(1000);/ 延時1秒dataout0

37、 = read_temp(); /讀溫度dataout1 = 0xFF - dataout0; /反轉(zhuǎn)數(shù)據(jù) 作為校驗LED = LED; / 重置LED指示燈Send_16Bytes_Data(dataout); / 發(fā)送數(shù)據(jù)4.3 傳輸程序的設計傳輸程序包括發(fā)送數(shù)據(jù)和接收數(shù)據(jù),即無線收發(fā)模塊之間進行數(shù)據(jù)通信,設定好對應的通信地址和通信協(xié)議,即可實現(xiàn)數(shù)據(jù)的正確傳送。/ 發(fā)送數(shù)據(jù)/ 輸入值:addr:輸入數(shù)據(jù)地址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);/* 接收數(shù)據(jù)*/ 寫一個字節(jié)到芯片/ 輸入?yún)?shù):dat:數(shù)據(jù)void write_one_byte(unsigned char dat) unsigned ch

39、ar i,dd=dat; for (i=0;i8;i+) if (dd & 0x80) / 發(fā)送數(shù)據(jù) SET_MOSI(); else CLR_MOSI(); SET_SCK(); / 發(fā)時鐘 CLR_SCK(); dd = 1; 4.4 溫度采集程序的設計溫度采集程序主要是對溫度傳感器DS18B20編程,向1-線總線上寫字節(jié),傳送字節(jié)和讀字節(jié),然后將采集的數(shù)據(jù)交給單片機進行處理。/* 18B20寫1個字節(jié)函數(shù) 向1-WIRE總線上寫一個字節(jié)*/void write_byte(uint8 val)uint8 i;for (i=0; i= 1; /右移一位DQ = 1; delay(1); /*

40、18B20讀1個字節(jié)函數(shù) 從1-WIRE總線上讀取一個字節(jié)*/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的初始化,然后就是執(zhí)行寫命令和寫數(shù)據(jù)這兩個子函數(shù),實現(xiàn)溫度數(shù)據(jù)的實時顯示和按鍵操作的動態(tài)顯示。/* 初始化1602*/void LCD1602_init(void)w_cmd(0

41、x38); / 16*2顯示,5*7點陣,8位數(shù)據(jù)接口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; /*寫數(shù)據(jù)*/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; /*發(fā)送字符串到LCD*/void w_string(uint8 addr_start, uint8 *p)w_cmd(addr_start | 0x80);while (*p != 0) w_dat(*p+); /*發(fā)送數(shù)字到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 仿真與調(diào)試由于無線模塊NRF2

43、4L01在模擬仿真中無法實現(xiàn),所以采用的是雙機通信原理實現(xiàn)部分仿真。當溫度低于最低門限值時,紅燈亮,報警器報警,LCD顯示當前溫度;當溫度在設置范圍類時,LCD顯示當前溫度;當溫度超過最高門限時,黃燈亮,報警器報警。仿真原理圖如圖6-1所示,仿真結(jié)果如圖6-2、6-3、6-4所示。 圖6-1 仿真原理圖圖6-2 低于最低門限仿真圖圖6-3 正常范圍內(nèi)仿真圖圖6-4 超出最大門限仿真圖6 結(jié)論本設計以單片機AT89S51為開發(fā)平臺,NRF24L01無線收發(fā)模塊,DS18B20溫度傳感器及LCD1602的特性及工作原理進行了深入研究。通過軟件硬件相結(jié)合而設計了遠程溫度顯示,遠程溫度報警系統(tǒng)。89S

44、51單片機的采用,不僅便于數(shù)據(jù)采集,而且擴展了各種功能,比如顯示、外部中斷等。NRF24L01無線收發(fā)模塊集成度高,集合了編碼解碼,發(fā)射接收功能,使用方便,使得系統(tǒng)的硬件和軟件簡單了許多?!耙痪€”數(shù)字溫度傳感器DS18B20與軟件處理相結(jié)合,進一步提高了系統(tǒng)的測溫精度。在電路的設計中充分考慮了系統(tǒng)的可靠性和安全性。該系統(tǒng)具有操控簡單方便、顯示直觀、功能多樣、精確度高、電路簡潔、成本低廉等諸多優(yōu)點。對于單片機愛好者來說,也可以在系統(tǒng)的基礎上進行其它功能的開發(fā)。經(jīng)過,部分模擬仿真調(diào)試,各項性能指標基本達到預期要求,也遇到一些問題,給系統(tǒng)上電后,液晶屏初始化失敗,經(jīng)檢查發(fā)現(xiàn),設計電路中液晶屏的8個數(shù)

45、據(jù)端口少接了上拉電阻,并且主芯片的31(EA)管腳沒有接電源,導致無法訪問片內(nèi)存儲器,經(jīng)過修改后,再次上電后,初始化成功。參考文獻1于海生,潘松峰,于培仁.微型計算機控制技術M.北京:清華大學出版社,2009.2徐煒,姜暉,崔琛.通信電子技術M.西安:西安電子科技大學出版社,2008.3朱定華.微機原理與接口技術M.北京:清華大學出版社,2010.4李斯偉,雷新生.數(shù)據(jù)通信技術M.北京:人民郵電出版社,2009.5謝自美.電子線路設計實驗測試M.武漢:華中科技大學出版社,2010.6梁廷貴.遙控電路可控硅觸發(fā)電路語音電路分冊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.北京:電子工業(yè)出版社,2008.17鄭鋒,王巧芝,程麗平.51單片機典型應用開發(fā)實例大全M.北京:中國鐵道工業(yè)出版社,2011.18杜洋.愛上單片機M.北京:人民郵電出版社,2011.19喻金錢,喻斌.短距離無線通信詳解:基于單片機控制M.北京:北京航空航天大學出版社,2009.20譚暉.nRF無線SOC單片機原理與高級應用M.北京:北京航空航天大學出版社,2009.致 謝附錄附錄 系統(tǒng)總原理圖附錄 仿真程序 副系統(tǒng)仿真程序#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復位函數(shù)*/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繼續(xù)下一步 delay(45); /延時500usflag = DQ;DQ=1;/* 18B20寫1個字節(jié)函數(shù)向1-WIRE總線上寫一個字節(jié)*/void write_byte(uint8 val)uint8 i;for (i=0; i= 1;

50、/右移一位DQ = 1;delay(1); /* * 18B20讀1個字節(jié)函數(shù)從1-WIRE總線上讀取一個字節(jié)*/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); / 發(fā)Skip ROM命令write_byte(0x44); / 發(fā)轉(zhuǎn)換命令/*讀出溫度*/int8 read_temp(void)uint8 temp_data2; / 讀出溫度暫放int16 temp;DS18b20_reset(); / 總線復位write_byte(0xCC); / 發(fā)Skip ROM命令write_byte(0xBE); / 發(fā)讀命令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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論