基于單片機(jī)的無(wú)線遠(yuǎn)程溫度監(jiān)控系統(tǒng)設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的無(wú)線遠(yuǎn)程溫度監(jiān)控系統(tǒng)設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的無(wú)線遠(yuǎn)程溫度監(jiān)控系統(tǒng)設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的無(wú)線遠(yuǎn)程溫度監(jiān)控系統(tǒng)設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的無(wú)線遠(yuǎn)程溫度監(jiān)控系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

2、采集、溫度控制和發(fā)送數(shù)據(jù)功能。該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單實(shí)用、功能齊全,通用性強(qiáng),可被應(yīng)用于許多工業(yè)生產(chǎn)領(lǐng)域,它可使操作人員與惡劣的工作環(huán)境分離開(kāi)來(lái),實(shí)現(xiàn)生產(chǎn)自動(dòng)化,提高企業(yè)的生產(chǎn)效率。關(guān)鍵詞:AT89S51;溫度傳感器;NRF24L01;顯示;報(bào)警AbstractThe long-distance temperature controlling this paper presents is a technology of linking wireless receiving and sending to automation. Based on the technology, the system is

3、 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 funct

4、ions 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 advant

5、ages, 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 efficiency.Ke

6、y words: AT89S51; Temperature senior; NRF24L01; Display; Warning目 錄1 緒論11.1 選題的目的和意義11.2 國(guó)內(nèi)外研究現(xiàn)狀11.3 本設(shè)計(jì)主要研究?jī)?nèi)容22 設(shè)計(jì)要求與方案論證32.1 設(shè)計(jì)要求32.2 系統(tǒng)基本方案選擇和論證32.2.1 單片機(jī)芯片選擇方案與論證32.2.2 溫度采集模塊選擇方案與論證32.2.3 無(wú)線收發(fā)模塊的選擇方案與論證42.2.4 顯示模塊的選擇方案與論證42.2.5 報(bào)警模塊的選擇方案與論證42.3 電路設(shè)計(jì)最終方案的確定53 系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn)63.1 系統(tǒng)硬件概述63.2 主要單元電路的設(shè)計(jì)6

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

26、高電平并保持至少10s,延遲130s后發(fā)射數(shù)據(jù);若自動(dòng)應(yīng)答開(kāi)啟,那么NRF24L01在發(fā)射數(shù)據(jù)后立即進(jìn)入接收模式,接收應(yīng)答信號(hào)(自動(dòng)應(yīng)答接收地址應(yīng)該與接收節(jié)點(diǎn)地址TX_ADDR一致)。如果收到應(yīng)答,則認(rèn)為此次通信成功,TX_DS置高,同時(shí)TX_PLD從TX FIFO中清除;若未收到應(yīng)答,則自動(dòng)重新發(fā)射該數(shù)據(jù)(自動(dòng)重發(fā)已開(kāi)啟),若重發(fā)次數(shù)(ARC)達(dá)到上限,MAX_RT置高,TX FIFO中數(shù)據(jù)保留以便在次重發(fā);MAX_RT或TX_DS置高時(shí),使IRQ變低,產(chǎn)生中斷,通知MCU。最后發(fā)射成功時(shí),若CE為低則NRF24L01進(jìn)入空閑模式1;若發(fā)送堆棧中有數(shù)據(jù)且CE為高,則進(jìn)入下一次發(fā)射;若發(fā)送堆棧

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

28、OSI輸入。相應(yīng)的狀態(tài)和數(shù)據(jù)信息是從MISO輸出給MCU。 NFR24L01模塊采用3.3V電壓供電,其應(yīng)用電路及電源轉(zhuǎn)換電路如圖3-6所示。圖3-6 NRF24L01應(yīng)用電路3.2.4 顯示電路模塊的設(shè)計(jì)如圖3-7所示,采用1602 LCD顯示。1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來(lái)的2條線是背光電源線VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣,具體各個(gè)腳的功能如表3-1。系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn)表3-1 LCD引腳功能表引腳符號(hào)功能說(shuō)明1VSS一般接地2VDD接電源(+5V)3V0LCD對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比

29、度最高4RSRS為寄存器選擇,高電平時(shí)選數(shù)據(jù)寄存器、低電平時(shí)選指令寄存器。5R/WR/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。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具有功

30、耗低、壽命長(zhǎng)、體積小、顯示內(nèi)容豐富、接口控制方便等優(yōu)點(diǎn)。因此在各類電子產(chǎn)品中被廣泛的推廣和使用。本系統(tǒng)采用它來(lái)作為顯示器件,不僅簡(jiǎn)化了硬件電路,而且極大的提高了系統(tǒng)的可靠性。如圖3-8所示。1602 LCD與單片機(jī)AT89S52的連接電路很簡(jiǎn)單。圖3-7 LCD1602管腳圖圖3-8 LCD1602應(yīng)用電路3.2.5 報(bào)警電路模塊的設(shè)計(jì)蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。 蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。壓電式蜂鳴器:壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴

31、片、阻抗匹配器及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有發(fā)光二極管。多諧振蕩器由晶體管或集成電路構(gòu)成。當(dāng)接通電源后(1.515V直流工作電壓),多諧振蕩器起振,輸出1.52.5kHZ的音頻信號(hào),阻抗匹配器推動(dòng)壓電蜂鳴片發(fā)聲。電磁式蜂鳴器:電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動(dòng)膜片及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號(hào)電流通過(guò)電磁線圈,使電磁線圈產(chǎn)生磁場(chǎng)。振動(dòng)膜片在電磁線圈和磁鐵的相互纏繞。本設(shè)計(jì)應(yīng)用三極管驅(qū)動(dòng)蜂鳴器同時(shí)點(diǎn)亮發(fā)光二極管實(shí)現(xiàn)報(bào)警,其應(yīng)用電路如圖3-9所示。圖3-9 報(bào)警電路3.2.6 電路原理及說(shuō)明將以上各個(gè)電路模塊連接起來(lái),即構(gòu)成無(wú)線遠(yuǎn)程監(jiān)控系統(tǒng),總系統(tǒng)工作原

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

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

34、報(bào)警程序流程圖如圖4-3所示。設(shè)定值與實(shí)際值比較溫度小于報(bào)警下限?溫度大于報(bào)警上限?報(bào)警上限處理NYYN報(bào)警下限處理報(bào)警子程序返回圖4-3 溫度報(bào)警子程序流程圖主程序首先對(duì)LCD進(jìn)行初始化,然后進(jìn)行按鍵掃描,設(shè)定溫度上下限值,接著初始化無(wú)線接收模塊,然后溫度數(shù)據(jù),并判斷是否超出設(shè)定范圍,超過(guò)即啟動(dòng)報(bào)警程序,不超過(guò)則繼續(xù)判斷,如此循環(huán)。系統(tǒng)程序的設(shè)計(jì)main()delay_ms(500); / 上電延時(shí)LCD1602_init(); / LCD初始化wireless_init();while (1)Count+; / 超時(shí)計(jì)數(shù)if (Count >= 140000)w_string(0x0

35、0, " No Signal! "); /顯示無(wú)信號(hào)k_val = scan_key(); /掃描按鍵 key_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) /和校驗(yàn)Count = 0; /清零計(jì)數(shù)器w_string(0x00, "Real Wen d

36、u: C"); /顯示當(dāng)前溫度if (Rev_dat0 < 0) /負(fù)溫度顯示 Rev_dat0 = -Rev_dat0; w_string(0x0C, "-"); w_data(0x0D, Rev_dat0);else / 正溫度顯示 w_string(0x0C, "+"); w_data(0x0D, Rev_dat0); 4.2 發(fā)射系統(tǒng)程序的設(shè)計(jì)發(fā)射程序首先點(diǎn)亮信號(hào)燈并且初始化無(wú)線發(fā)射模塊,接著讀取溫度數(shù)據(jù)并校驗(yàn)數(shù)據(jù),然后發(fā)射溫度數(shù)據(jù)并重置信號(hào)燈,數(shù)據(jù)正常發(fā)送,則信號(hào)燈穩(wěn)定閃爍。main()int8 dataout16;LED =

37、0; / 上電LED亮Wireless_init(); /初始化無(wú)線模塊while (1) start_temp_sensor(); / 初始化18B20delay_ms(1000);/ 延時(shí)1秒dataout0 = read_temp(); /讀溫度dataout1 = 0xFF - dataout0; /反轉(zhuǎn)數(shù)據(jù) 作為校驗(yàn)LED = LED; / 重置LED指示燈Send_16Bytes_Data(dataout); / 發(fā)送數(shù)據(jù)4.3 傳輸程序的設(shè)計(jì)傳輸程序包括發(fā)送數(shù)據(jù)和接收數(shù)據(jù),即無(wú)線收發(fā)模塊之間進(jìn)行數(shù)據(jù)通信,設(shè)定好對(duì)應(yīng)的通信地址和通信協(xié)議,即可實(shí)現(xiàn)數(shù)據(jù)的正確傳送。/ 發(fā)送數(shù)據(jù)/ 輸入

38、值:addr:輸入數(shù)據(jù)地址void Send_16Bytes_Data(unsigned char *addr) unsigned char *p = addr,tra12,i; CLR_SCN(); Write_one_byte(0xA0); for (i=0;i<16;i+) Write_one_byte(*p+); SET_SCN(); SET_CE(); for (i=0;i<60;i+); CLR_CE(); while (READ_IRQ() = 1); tra10 = 0x27; tra11 = 0x70; Write_more_byte(tra1,2); tra10

39、 = 0xE1; Write_more_byte(tra1,1);/* 接收數(shù)據(jù)*/ 寫一個(gè)字節(jié)到芯片/ 輸入?yún)?shù):dat:數(shù)據(jù)void write_one_byte(unsigned char dat) unsigned char i,dd=dat; for (i=0;i<8;i+) if (dd & 0x80) / 發(fā)送數(shù)據(jù) SET_MOSI(); else CLR_MOSI(); SET_SCK(); / 發(fā)時(shí)鐘 CLR_SCK(); dd <<= 1; 4.4 溫度采集程序的設(shè)計(jì)溫度采集程序主要是對(duì)溫度傳感器DS18B20編程,向1-線總線上寫字節(jié),傳送字節(jié)和

40、讀字節(jié),然后將采集的數(shù)據(jù)交給單片機(jī)進(jìn)行處理。/* 18B20寫1個(gè)字節(jié)函數(shù) 向1-WIRE總線上寫一個(gè)字節(jié)*/void write_byte(uint8 val)uint8 i;for (i=0; i<8; i+)DQ = 1; _nop_(); DQ = 0;nops(); /4usDQ = val & 0x01; /最低位移出delay(6); /66usval >>= 1; /右移一位DQ = 1; delay(1); /*18B20讀1個(gè)字節(jié)函數(shù) 從1-WIRE總線上讀取一個(gè)字節(jié)*/uint8 read_byte(void)uint8 i, value=0;f

41、or (i=0; i<8; i+)DQ=1; _nop_();value >>= 1; DQ = 0;nops(); /4usDQ = 1;nops(); /4us if (DQ) value|=0x80; delay(6); /66usDQ=1; return(value);4.5 顯示程序的設(shè)計(jì)系統(tǒng)程序的設(shè)計(jì)LCD1602顯示程序,首先進(jìn)行1602的初始化,然后就是執(zhí)行寫命令和寫數(shù)據(jù)這兩個(gè)子函數(shù),實(shí)現(xiàn)溫度數(shù)據(jù)的實(shí)時(shí)顯示和按鍵操作的動(dòng)態(tài)顯示。/* 初始化1602*/void LCD1602_init(void)w_cmd(0x38); / 16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)

42、接口w_cmd(0x0C); / 顯示器開(kāi)w_cmd(0x06); / 文字不動(dòng),光標(biāo)自動(dòng)右移w_cmd(0x01); / 清屏/*等待繁忙標(biāo)志*/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(); EN = 0; P0 = cmd; RS =

43、 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');仿真與調(diào)試5 仿真與調(diào)試

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

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

46、設(shè)計(jì)電路中液晶屏的8個(gè)數(shù)據(jù)端口少接了上拉電阻,并且主芯片的31(EA)管腳沒(méi)有接電源,導(dǎo)致無(wú)法訪問(wèn)片內(nèi)存儲(chǔ)器,經(jīng)過(guò)修改后,再次上電后,初始化成功。參考文獻(xiàn)參考文獻(xiàn)1于海生,潘松峰,于培仁.微型計(jì)算機(jī)控制技術(shù)M.北京:清華大學(xué)出版社,2009.2徐煒,姜暉,崔琛.通信電子技術(shù)M.西安:西安電子科技大學(xué)出版社,2008.3朱定華.微機(jī)原理與接口技術(shù)M.北京:清華大學(xué)出版社,2010.4李斯偉,雷新生.數(shù)據(jù)通信技術(shù)M.北京:人民郵電出版社,2009.5謝自美.電子線路設(shè)計(jì)實(shí)驗(yàn)測(cè)試M.武漢:華中科技大學(xué)出版社,2010.6梁廷貴.遙控電路可控硅觸發(fā)電路語(yǔ)音電路分冊(cè)M.北京:科學(xué)技術(shù)文獻(xiàn)出版社,2011

47、.7黃賢武,鄭筱霞.傳感器原理及其應(yīng)用M.成都:電子科技大學(xué)出版社, 2010. 8俞國(guó)亮.MCS-51單片機(jī)原理與應(yīng)用M.北京:清華大學(xué)出版社,2010.9夏路易,石宗義.Protell99SE設(shè)計(jì)教程M.北京:北京希望電子出版社,2009.10王用倫.微機(jī)控制技術(shù)M.重慶:重慶大學(xué)出版社,2010.11李大寨.傳感器電子制作DIYJ.北京:科學(xué)出版社,2011.12張毅剛.單片機(jī)原理及應(yīng)用M.北京:高等教育出版社,2010. 13譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)教程M.北京:高等教育出版社,2010.14彭偉.單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例M.北京:北京航空航天大學(xué)出版社,2010.15候殿有.單

48、片機(jī)C語(yǔ)言設(shè)計(jì)M.北京:人民郵電出版社,2010.16姜志海,趙艷雷.單片機(jī)的C語(yǔ)言M.北京:電子工業(yè)出版社,2008.17鄭鋒,王巧芝,程麗平.51單片機(jī)典型應(yīng)用開(kāi)發(fā)實(shí)例大全M.北京:中國(guó)鐵道工業(yè)出版社,2011.18杜洋.愛(ài)上單片機(jī)M.北京:人民郵電出版社,2011.19喻金錢,喻斌.短距離無(wú)線通信詳解:基于單片機(jī)控制M.北京:北京航空航天大學(xué)出版社,2009.20譚暉.nRF無(wú)線SOC單片機(jī)原理與高級(jí)應(yīng)用M.北京:北京航空航天大學(xué)出版社,2009.致謝致 謝附錄附錄附錄 系統(tǒng)總原理圖附錄 仿真程序 副系統(tǒng)仿真程序#include <reg52.h>#include <i

49、ntrins.h> typedef unsigned char uint8;typedef unsigned 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);

50、void tran_init(void);void send(int8 tem);void delay(uint16 cnt);/*18B20復(fù)位函數(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); /延時(shí)500usflag = DQ;DQ=1;/* 18B20寫1個(gè)字節(jié)函數(shù)向1

51、-WIRE總線上寫一個(gè)字節(jié)*/void write_byte(uint8 val)uint8 i;for (i=0; i<8; i+)DQ = 1;_nop_();DQ = 0;nops(); /4usDQ = val & 0x01; /最低位移出delay(6); /66usval >>= 1; /右移一位DQ = 1;delay(1); /* * 18B20讀1個(gè)字節(jié)函數(shù)從1-WIRE總線上讀取一個(gè)字節(jié)*/uint8 read_byte(void)uint8 i, value=0;for (i=0; i<8; i+)DQ=1;_nop_();value &g

52、t;>= 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(); / 總線復(fù)位write_byte

53、(0xCC); / 發(fā)Skip ROM命令write_byte(0xBE); / 發(fā)讀命令temp_data0=read_byte(); /溫度低8位temp_data1=read_byte(); /溫度高8位temp = temp_data1;temp <<= 8;temp |= temp_data0;temp >>= 4;return (int8)temp;/* 串口傳輸 */void tran_init(void) EA=1; /*CPU開(kāi)放所有中斷*/ ES=1; /*允許串行口中斷*/ TMOD=0x20; /*定時(shí)器/計(jì)時(shí)器T1為定時(shí)器模式,工作于方式2*/ TH1=0xfd; /*向T1置初值*/

溫馨提示

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

評(píng)論

0/150

提交評(píng)論