基于AT89S51單片機的DS18B20數(shù)字溫度傳感器的畢業(yè)論文_第1頁
基于AT89S51單片機的DS18B20數(shù)字溫度傳感器的畢業(yè)論文_第2頁
基于AT89S51單片機的DS18B20數(shù)字溫度傳感器的畢業(yè)論文_第3頁
基于AT89S51單片機的DS18B20數(shù)字溫度傳感器的畢業(yè)論文_第4頁
基于AT89S51單片機的DS18B20數(shù)字溫度傳感器的畢業(yè)論文_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄摘要2第一章緒論41.1傳感器發(fā)展的三個階段41.2傳感器發(fā)展趨勢41.3傳感器在在系統(tǒng)中的應(yīng)用41.4設(shè)計研究意義51.5設(shè)計的目標任務(wù)5第二章 方案選擇62.1引言62.2方案設(shè)計62.2.1控制模塊62.2.2溫度采集模塊62.2.3顯示模塊72.3系統(tǒng)框圖7第三章 硬件設(shè)計73.1溫度傳感器73.1.1溫度傳感器選用細則73.1.2DS18B20傳感器簡介93.2DS18B20的測溫原理113.3DS18B20與微處理器的接口技術(shù)133.4DS18B20的測溫流程163.5系統(tǒng)硬件電路設(shè)計163.5.1設(shè)計原則163.5.2設(shè)計中的各種電路17第四章 系統(tǒng)軟件設(shè)計214.1 系統(tǒng)軟

2、件設(shè)計整體思路214.2 系統(tǒng)軟件設(shè)計的一般原則214. 3系統(tǒng)軟件設(shè)計的一般步驟224.4系統(tǒng)程序流程圖22第五章 小結(jié)27結(jié)束語28參考文獻28致謝28摘  要隨著社會的進步和工業(yè)技術(shù)的發(fā)展,人們越來越重視溫度因素,許多產(chǎn)品對溫度范圍要求嚴格,而目前市場上普遍存在的溫度檢測儀器大都是單點測量,同時有溫度信息傳遞不及時、精度不夠的缺點,不利于工業(yè)控制者根據(jù)溫度變化及時做出決定。在這樣的形式下,開發(fā)一種能夠同時測量多點,并且實時性高、精度高,能夠綜合處理多點溫度信息的測量系統(tǒng)就很有必要。本課題以AT89C51單片機系統(tǒng)為核心,能對多點的溫度進行實時巡檢。DS18B20是一種可組網(wǎng)的高

3、精度數(shù)字式溫度傳感器,由于其具有單總線的獨特優(yōu)點,可以使用戶輕松地組建起傳感器網(wǎng)絡(luò),并可使多點溫度測量電路變得簡單、可靠。本文結(jié)合實際使用經(jīng)驗,介紹了DS18B20數(shù)字溫度傳感器在單片機下的硬件連接及軟件編程,并給出了軟件流程圖。關(guān)鍵詞:溫度測量;單總線;數(shù)字溫度傳感器;單片機   第一章  緒論課題的背景在人類的生活環(huán)境中,溫度扮演著極其重要的角色,都無時無刻不在與溫度打交道。自18世紀工業(yè)革命以來,工業(yè)發(fā)展與是否掌握溫度有著緊密的聯(lián)系。在冶金、鋼鐵、石化、水泥、玻璃、醫(yī)藥等等行業(yè),可以說幾乎%80的工業(yè)部門都不得不考慮著溫度的因素。溫度對于工業(yè)如此重要,由此推

4、進了溫度傳感器的發(fā)展。1.1傳感器三個發(fā)展階段:一是模擬集成溫度傳感器。該傳感器是采用硅半導(dǎo)體集成工藝制成,因此亦稱硅傳感器或單片集成溫度傳感器。此種傳感器具有功能單一(僅測量溫度)、測溫誤差小、價格低、響應(yīng)速度快、傳輸距離遠、體積小、微功耗等特點,適合遠距離測溫、控溫,不需要進行非線性校準,且外圍電路簡單。它是目前在國內(nèi)外應(yīng)用最為普遍的一種集成傳感器,典型產(chǎn)品有AD590、AD592、TMP17、LM135等。二是模擬集成溫度控制器。模擬集成溫度控制器主要包括溫控開關(guān)、可編程溫度控制器,典型產(chǎn)品有LM56、AD22105和MAX6509。某些增強型集成溫度控制器(例如TC652/653)中還

5、包含了A/D轉(zhuǎn)換器以及固化好的程序,這與智能溫度傳感器有某些相似之處。但它自成系統(tǒng),工作時并不受微處理器的控制,這是二者的主要區(qū)別。三是智能溫度傳感器。智能溫度傳感器內(nèi)部都包含溫度傳感器、A/D轉(zhuǎn)換器、信號處理器、存儲器(或寄存器)和接口電路。有的產(chǎn)品還帶多路選擇器、中央控制器(CPU)、隨 機存取存儲器(RAM)和只讀存儲器(ROM)。智能溫度傳感器的特點是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種微控制器(MCU);并且它是在硬件的基礎(chǔ)上通過軟件來實現(xiàn)測試功能的,當(dāng)然,其智能化程度也取決于軟件的開發(fā)水平。1.2溫度傳感器的發(fā)展趨勢進入21世紀后,溫度傳感器正朝著高精度、多功能、總線標準化、

6、高可靠性及安全性、開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片測溫系統(tǒng)等高科技的方向迅速發(fā)展。1.3傳感器在溫控系統(tǒng)中的應(yīng)用目前市場主要存在單點和多點兩種溫度測量儀表。對于單點溫測儀表,主要采用傳統(tǒng)的模擬集成溫度傳感器,其中又以熱電阻、熱電偶等傳感器的測量精度高,測量范圍大,而得到了普遍的應(yīng)用。此種產(chǎn)品測溫范圍大都在-200800之間,分辨率12位,最小分辨溫度在0.0010.01之間。自帶LED顯示模塊,顯示4位到16位不等。有的儀表還具有存儲功能,可存儲幾百到幾千組數(shù)據(jù)。該類儀表可很好的滿足單個用戶單點測量的需要。多點溫度測量儀表,相對與單點的測量精度有一定的差距,雖然實現(xiàn)了多路溫度的測控,但價格

7、昂貴。 針對目前市場的現(xiàn)狀,本設(shè)計提出了一種可滿足要求、可擴展的并且性價比高的單片機多路測溫系統(tǒng)。1.4設(shè)計研究意義隨著科學(xué)技術(shù)的不斷進步與發(fā)展,溫度控制在工業(yè)控制、電子測溫計、家用電器等各種溫度控制系統(tǒng)中被廣泛應(yīng)用,且由過去的單點測量向多點測量發(fā)展。目前溫度傳感器有模擬和數(shù)字兩類傳感器兩種,為克服模擬傳感器與微處理器接口時所需的信號調(diào)理電路或AD轉(zhuǎn)換器的缺點,多點檢測溫度控制系統(tǒng)多采用智能數(shù)字溫度傳感器,是系統(tǒng)的設(shè)計更加方便。常用的智能數(shù)字溫度傳感器有DS18B20、MAX6575、DS1722、MAX6635 等等。在傳統(tǒng)的溫度測量系統(tǒng)設(shè)計中,往往采用模擬技術(shù),這樣就不可避免地遇到引線誤差

8、補償、多點測量中的切換誤差和信號調(diào)整電路的誤差等問題;而其中某一環(huán)節(jié)處理不當(dāng),就會導(dǎo)致系統(tǒng)性能的降低。隨著現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,特別是大規(guī)模集成電路設(shè)計技術(shù)的發(fā)展,微型化、集成化、數(shù)字化正成為傳感器發(fā)展的一個重要方向。美國Dallas半導(dǎo)體公司推出的數(shù)字溫度傳感器DS18B20,具有獨特的單總線接口,僅需占用一個通用I/0端口即可完成與微處理器間的通信;在-10+85 溫度范圍內(nèi)具有05 精度;用戶可編程設(shè)定912位的分辨率。這些特性使得DS18B20非常適用于高精度、多點溫度測量系統(tǒng)的設(shè)計。1.5設(shè)計的任務(wù)目標本設(shè)計主要是實現(xiàn)對溫度進行多點同時測量并準確顯示。整個系統(tǒng)由MCU(單片機)控制

9、,用于接收傳感器采集的溫度數(shù)據(jù)并加以顯示出來,還可以從鍵盤設(shè)定溫度報警值,系統(tǒng)根據(jù)命令,選擇對應(yīng)的傳感器采集溫度數(shù)據(jù),并由驅(qū)動電路驅(qū)動溫度顯示。利用一個單片機設(shè)計一個能夠?qū)Χ帱c溫度同時進行測量的溫度檢測系統(tǒng)。該系統(tǒng)能夠同時對多個點的溫度進行測量和進行顯示,并且能夠?qū)Ξ惓G闆r進行聲光報警。第二章 方案選擇2.1 引言溫度測量的方案有很多種,可以采用傳統(tǒng)的分立式傳感器、模擬集成傳感器以及新興的智能型傳感器。對于控制系統(tǒng)可以采用計算機、單片機等。2.2方案設(shè)計 本系統(tǒng)主要由三個模塊組成:控制模塊、溫度采集模塊、顯示模塊。2.2.1控制模塊本設(shè)計采用單片機基于數(shù)字溫度傳感器DS18B20的系統(tǒng)。單片機

10、AT89C51具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用,系統(tǒng)應(yīng)用三節(jié)電池供電。溫度傳感器DS18B20利用單總線的特點可以方便的實現(xiàn)多點溫度的測量,組建傳感器網(wǎng)絡(luò),且系統(tǒng)的抗干擾性好、設(shè)計靈活、方便,而且能在惡劣的環(huán)境下進行現(xiàn)場溫度檢測。本系統(tǒng)可以應(yīng)用在大型工業(yè)及民用常溫多點監(jiān)測場合。如糧食倉儲系統(tǒng)、樓宇自動化系統(tǒng)、溫控制程生產(chǎn)線之溫度影像檢測、醫(yī)療與健診的溫度測試、空調(diào)系統(tǒng)的溫度檢測、石化、機械等。2.2.2溫度采集模塊這一部分主要完成對溫度信號的采集和轉(zhuǎn)換工作,由DS18B20數(shù)字溫度傳感器及其與單片機的接口部分組成。DS

11、18B20智能溫度溫度傳感器進行溫度采集和轉(zhuǎn)換輸出數(shù)字型的溫度值,然后通過數(shù)據(jù)引腳傳到單片機的P1.1口,單片機接受溫度并存儲。DS18B20是美國DALLAS半導(dǎo)體公司最新推出的一種單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,它可將溫度信號直接轉(zhuǎn)換為數(shù)字信號,實現(xiàn)了與單片機的直接接口,從而省去了信號調(diào)理和A/D轉(zhuǎn)換等復(fù)雜模/數(shù)轉(zhuǎn)換電路。DS18B20構(gòu)成的溫度采集模塊電路簡單、功能可靠、測量效率高,很好地彌補了傳統(tǒng)溫度測量方法的不足可廣泛用于工業(yè)、民用、軍事等領(lǐng)域的溫度測量及控制儀器、測控系統(tǒng)和大型設(shè)備中。它具有集成度高、模擬輸入數(shù)字輸出、抗干擾能力強、體積小、接口方便、傳輸

12、距離遠測溫誤差小等特點。DS18B20有PR-35和SOSI兩種封裝方式,本次設(shè)計采有PR-35式封裝, 如圖1.2所示。 圖(a)PR-35封裝 圖 (b) SOSI封裝圖21 DS18B20 的兩種封裝2.2.3溫度顯示模塊 本課程設(shè)計的顯示模塊采用3位共陰極LED數(shù)碼管顯示溫度數(shù)據(jù),兩位整數(shù),一位小數(shù)進行顯示,從P0口送數(shù),P2口掃描。 2.3系統(tǒng)框圖系統(tǒng)的系統(tǒng)設(shè)計方框圖如圖1.1所示,它主要由三部分組成:控制部分主芯片采用單片機AT89S51;顯示部分采用3位共陰極LED數(shù)碼管以動態(tài)掃描方式實現(xiàn)溫度顯示;溫度采集部分的溫度傳感器采用DS18B20智能溫度溫度傳感器。還有按鍵設(shè)置報警溫度

13、值和加熱降溫電路。按鍵設(shè)置溫度加熱繼電器和風(fēng)扇繼電器單 片 機多路DS18B20傳感器LED顯示聲光報警器圖22多路溫度檢測與控制總體設(shè)計框圖第三章 硬件設(shè)計本課程設(shè)計的多點測溫系統(tǒng)是以單片機和單總線數(shù)字溫度傳感器DS18B20為核心,充分利用單片機優(yōu)越的內(nèi)部和外部資源及智能溫度傳感器DS18B20的優(yōu)越性能構(gòu)成一個完備的測溫系統(tǒng),實現(xiàn)對溫度的多點測量。整個系統(tǒng)由單片機控制,能夠接收傳感器的溫度數(shù)據(jù)并顯示出來,可以從鍵盤輸入命令,系統(tǒng)根據(jù)命令,選擇對應(yīng)的溫度傳感器,并由驅(qū)動電路驅(qū)動溫度顯示。本課程設(shè)計了一種合理、可行的單片機監(jiān)控軟件,完成測量和顯示的任務(wù)。由于單片機具有強大的運算和控制功能,使

14、得整個系統(tǒng)具有模塊化、硬件電路簡單以及操作方便等優(yōu)點。本課題的整個系統(tǒng)是由單片機、顯示電路、鍵盤電路、聲光報警電路等構(gòu)成。3.1  溫度傳感器3.1.1 溫度傳感器選用細則 現(xiàn)代傳感器在原理與結(jié)構(gòu)上千差萬別,如何根據(jù)具體的測量目的、測量對象以及測量環(huán)境合理地選用傳感器,是在進行某個量的測量時首先要解決的問題。當(dāng)傳感器確定之后,與之相配套的測量方法和測量設(shè)備也就可以確定了。測量結(jié)果的成敗,在很大程度上取決于傳感器的選用是否合理。(1)根據(jù)測量對象與測量環(huán)境確定傳感器的類型要進行個具體的測量工作,首先要考慮采用何種原理的傳感器,這需要分析多方面的因素之后才能確定。因為,即使是測量同一物理

15、量,也有多種原理的傳感器可供選用,哪一種原理的傳感器更為合適,則需要根據(jù)被測量的特點和傳感器的使用條件考慮以下一些具體問題:量程的大小;被測位置對傳感器體積的要求;測量方式為接觸式還是非接觸式;信號的引出方法,有線或是非接觸測量;傳感器的來源,國產(chǎn)還是進口,價格能否承受,還是自行研制。(2)靈敏度的選擇通常,在傳感器的線性范圍內(nèi),希望傳感器的靈敏度越高越好。因為只有靈敏度高時,與被測量變化對應(yīng)的輸出信號的值才比較大,有利于信號處理。但要注意的是,傳感器的靈敏度高,與被測量無關(guān)的外界噪聲也容易混入,也會被放大系統(tǒng)放大,影響測量精度。因此,要求傳感器本身應(yīng)具有較高的信噪比,盡員減少從外界引入的串?dāng)_

16、信號(3)頻率響應(yīng)特性 傳感器的頻率響應(yīng)特性決定了被測量的頻率范圍,必須在允許頻率范圍內(nèi)保持不失真的測量條件,實際上傳感器的響應(yīng)總有定延遲,希望延遲時間越短越好。傳感器的頻率響應(yīng)高,可測的信號頻率范圍就寬,而由于受到結(jié)構(gòu)特性的影響,機械系統(tǒng)的慣性較大,因有頻率低的傳感器可測信號的頻率較低。(4)線性范圍 傳感器的線形范圍是指輸出與輸入成正比的范圍。以理論上講,在此范圍內(nèi),靈敏度保持定值。傳感器的線性范圍越寬,則其量程越大,并且能保證一定的測量精度。在選擇傳感器時,當(dāng)傳感器的種類確定以后首先要看其量程是否滿足要求。但實際上,任何傳感器都不能保證絕對的線性,其線性度也是相對的。當(dāng)所要求測量精度比較

17、低時,在一定的范圍內(nèi),可將非線性誤差較小的傳感器近似看作線性的,這會給測量帶來極大的方便。(5) 穩(wěn)定性傳感器使用一段時間后,其性能保持不變化的能力稱為穩(wěn)定性。影響傳感器長期穩(wěn)定性的因素除傳感器本身結(jié)構(gòu)外,主要是傳感器的使用環(huán)境。因此,要使傳感器具有良好的穩(wěn)定性,傳感器必須要有較強的環(huán)境適應(yīng)能力。在選擇傳感器之前,應(yīng)對其使用環(huán)境進行調(diào)查,并根據(jù)具體的使用環(huán)境選擇合適的傳感器,或采取適當(dāng)?shù)拇胧?,減小環(huán)境的影響。(6) 精度精度是傳感器的一個重要的性能指標,它是關(guān)系到整個測量系統(tǒng)測量精度的一個重要環(huán)節(jié)。傳感器的精度越高,其價格越昂貴,因此,傳感器的精度只要滿足整個測量系統(tǒng)的精度要求就可以,不必選得

18、過高。這樣就可以在滿足同一測量目的的諸多傳感器中選擇比較便宜和簡單的傳感器。如果測量目的是定性分析的,選用重復(fù)精度高的傳感器即可,不宜選用絕對量值精度高的;如果是為了定量分析,必須獲得精確的測量值,就需選用精度等級能滿足要求的傳感器。對某些特殊使用場合,無法選到合適的傳感器,則需自行設(shè)計制造傳感器。自制傳感器的性能應(yīng)滿足使用要求。3.1.1 DS18B20性能特點 (1) 獨特的單線接口方式,只需一個接口引腳即可通信;(2) 每一個DS18B20都有一個唯一的64位ROM序列碼;(3) 在使用中不需要任何外圍元件;(4) 可用數(shù)據(jù)線供電,電壓范圍:+3.0V-+5.5 V;(5) 測溫范圍:-

19、55 -+125,在-10-+85范圍內(nèi)精度為+0.5,分辨率為0.0625;(6) 通過編程可實現(xiàn)9-12位的數(shù)字讀數(shù)方式。溫度轉(zhuǎn)換成12位數(shù)字信號所需時間最長為750ms,而在9位分辯模式工作時僅需93.75ms;(7) 用戶可自設(shè)定非易失性的報警上下限值;(8) 告警搜索命令可識別和定位那些超過報警限值的DS18B20;(9) 多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點測溫;(10)電源極性接反時,DS18B20不會因發(fā)熱而燒毀,但不能正常工作;3.1.2 DS18B20內(nèi)部存儲器及溫度數(shù)據(jù)格式對于DS18B20內(nèi)部存儲器結(jié)構(gòu)(如圖3.1),它包括一個暫存RAM和一個非易失性電可

20、擦除EERAM,后者存放報警上下限TH、TL。當(dāng)改變TH、T L中的值時,數(shù)據(jù)首先被寫進暫存器的第二、三字節(jié)中,主機可再讀出其中內(nèi)容進行驗證。如果正確,當(dāng)主機發(fā)送復(fù)制暫存器命令,暫存器的第二、三字節(jié)將被復(fù)制到TH、TL中,這樣處理有利于確保該數(shù)據(jù)在單總線上傳輸?shù)耐暾?。暫存器結(jié)構(gòu) EERAM結(jié)構(gòu)溫度低字節(jié) (BYTE0)溫度高字節(jié) (BYTE1)上限報警溫度TH(BYTE2)下限報警溫度TL(BYTE3)結(jié)構(gòu)寄存器 (BYTE4)保留 (BYTE5)保留 (BYTE6)保留 (BYTE7)CRC ( BYTE8)THTL結(jié)構(gòu)寄存器圖3.1 DS18B20結(jié)構(gòu)框圖 暫存存儲器作用是在單線通信時

21、確保數(shù)據(jù)的完整性,它由8字節(jié)組成,頭兩個字節(jié)表示測得的溫度讀數(shù)。以12位轉(zhuǎn)化為例說明溫度高低字節(jié)存放形式(溫度的存儲形式如表3.1)及計算:12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18B20的兩個高低8位的RAM中,二進制中的前面5位是符號位。如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1,再乘于0.0625才能得到實際溫度8。 表3.1 溫度的存儲形式高8位SSSSS262524低8位232221202-12-22-32-4S=1時表示溫度為負,S=0時表示溫度為正,其余低位以二進制補碼形式表示,最低位為1時

22、表示0.0625 。溫度/數(shù)字對應(yīng)關(guān)系如表3.2所示。表3.2 DS18B20溫度/數(shù)字對應(yīng)關(guān)系表溫度()輸出的二進制碼對應(yīng)的十六進制碼+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0110 1110FF5EH-2

23、5.06251111 1110 0110 1111FF6FH-551111 1100 1001 0000FC90HDS18B20有六條控制命令,如表3.3所示: 表3.3 控制命令指    令約定代碼操      作    說      明溫度轉(zhuǎn)換44H啟動DS18B20進行溫度轉(zhuǎn)換讀暫存器BEH讀暫存器9個字節(jié)內(nèi)容寫暫存器4EH將數(shù)據(jù)寫入暫存器的TH、TL字節(jié)復(fù)制暫存器48H把暫存器的TH、TL字節(jié)寫到E2RAM中重新調(diào)E2RAMB8

24、H把E2RAM中的TH、TL字節(jié)寫到暫存器TH、TL字節(jié)讀電源供電方式B4H啟動DS18B20發(fā)送電源供電方式的信號給主CPU3.1.3 DS18B20操作命令及時序特性DS18B20對讀寫的數(shù)據(jù)位有著嚴格的時序要求,它是在一根I/O線上讀寫數(shù)據(jù)的。同時,DS18B20為了保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性,它有著嚴格的通信協(xié)議。DS18B20每一步操作都要遵循嚴格的工作時序和通信協(xié)議,如主機控制DS18B20完成溫度轉(zhuǎn)換這一過程,根據(jù)DS18B20的通訊協(xié)議,須經(jīng)三個步驟:每一次讀寫之前都要對DS18B20進行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進行

25、預(yù)定的操作 。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機主動啟動寫時序開始的,如果要單總線器件送回數(shù)據(jù),在進行寫命令后,主機需啟動讀時序完成數(shù)據(jù)的接收。另外,數(shù)據(jù)和命令的傳輸都是低位在先9。(1)DS18B20的復(fù)位時序主機控制DS18B20完成任何操作之前必須先初始化,即主機發(fā)一復(fù)位脈沖(最短為480µs的低電平),接著主機釋放總線進入接收狀態(tài),DS18B20在檢測到I/0引腳上的上升沿之后,等待1560µs,然后發(fā)出存在脈沖(60240)µs的低電平。如圖3.2

26、所示。(2)DS18B20的讀時序DS18B20的讀時序分為讀0時序和讀1時序兩個過程。DS18B20的讀時序是從主機把單總線拉低后,在15秒之內(nèi)就得釋放單總線,從而讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20完成一個讀時序的過程,至少需要60µs。如圖3.3所示。圖3.2 DS18B20的復(fù)位時序圖3.3 DS18B20的讀時序(3)DS18B20的寫時序DS18B20的寫時序同讀時序一樣,仍然分為寫0時序和寫1時序兩個過程。DS18B20寫0時序和寫1時序的要求不同,當(dāng)要寫0時序時,單總線要被拉低至少60µs,保證DS18B20能夠在15µs到45&#

27、181;s之間能正確地采樣I/O總線上的“0”電平,當(dāng)要寫1時序時,單總線被拉低之后,在15µs之內(nèi)就得釋放單總線。如圖3.4所示。圖3.4 DS18B20的寫時序由DS18B20的通訊協(xié)議得知,主機控制DS18B20完成溫度轉(zhuǎn)換的過程必須經(jīng)過三個步驟:每一次讀寫之前都要對DS18B20進行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,從而對DS18B20進行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500µs,然后釋放,DS18B20收到信號后等待1660µs左右,然后發(fā)出60240µs的存在低脈沖,主CPU收到此信號表示復(fù)位成功。3.3 DS

28、18B20與微處理器的接口技術(shù)1. DS18B20與單片機的鏈接有兩種方法,如圖3-2所示:一種是VDD接外部電源,GND接地,I/O與單片機的任一條I/O線相連;另一種是用寄生電源供電,此時VDD、GND并聯(lián)接地,I/O接單片機的任一條I/O。無論是內(nèi)部寄生電源供電還是外部供電,I/O接口都要接漏極開路或三態(tài)輸出以提高負載驅(qū)動能力。本設(shè)計采用寄生電源供電模式,I/O口接5K左右的上拉電阻。實際應(yīng)用中,DS18B20可以距單片機150m遠,測量數(shù)據(jù)不會產(chǎn)生誤差,在同一條數(shù)據(jù)總線上可以并接許多片DS18B20實現(xiàn)多路溫度采集。2. DS18B20控制命令(1) 暫存器命令 訪問DS18B20的暫

29、存器共有6條命令,如表3-5所示。表3-5 DS18B20暫存器命令指令約定代碼操作說明溫度變換44H啟動DS18B20進行溫度轉(zhuǎn)換,轉(zhuǎn)換時間最長為500MS,結(jié)果存入內(nèi)部9字節(jié)RAM中讀暫存器0BEH讀內(nèi)部RAM中9字節(jié)的內(nèi)容寫暫存器4EH發(fā)出向內(nèi)部RAM的第3,4字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟讀命令之后,是傳送兩字節(jié)的數(shù)據(jù)復(fù)制暫存器48H將E2PRAM中第3,4字節(jié)內(nèi)容復(fù)制到E2PRAM中重調(diào)E2PRAM0BBH將E2PRAM中內(nèi)容恢復(fù)到RAM中的第3,4字節(jié)讀 供 電方 式0B4H讀DS18B20的供電模式,寄生供電時DS18B20發(fā)送“0”,外接電源供電DS18B20發(fā)送“1”(2)

30、對ROM的5種操作命令 。如表3-6所示: 讀ROM命令(代碼為33H):該命令允許主CPU讀取DS18B20中的8位產(chǎn)品序列編號、48位產(chǎn)品序列號及8位CRC值。該命令值適用于總線上只掛接一片DS18B20,對總線上掛有多片DS18B20時不適用。 符合ROM命令(代碼為55H):該指令適合在一條總線上掛接多片DS18B20的情況。具體應(yīng)用是這樣的,主CPU先向總線發(fā)這條命令,然后再發(fā)64位的ROM數(shù)據(jù)。再總線上,只有符合所發(fā)的64位ROM的DS18B20才有操作權(quán)。這樣就實現(xiàn)了單總線上的尋址。 尋找ROM命令(代碼為F0H):這條命令用于對連在單總線上的多個DS18B20進行初始化操作。

31、跳過ROM命令(代碼為CCH):該命令用于對總線上的報警器進行尋找,其用法與尋找ROM一樣。 尋找報警命令(代碼為ECH):該命令用于對總線上的報警器件進行尋找ROM一樣。表3-6 ROM操作命令指令約定代碼操作說明讀ROM33H讀DS18B20 ROM中的編碼符合ROM55H發(fā)出此命令之后,接著發(fā)出64位ROM編碼,訪問單線總線上與該編碼相對應(yīng)的DS18B20 使之作出響應(yīng),為下一步對該DS18B20的讀寫作準備尋找ROM0F0H用于確定掛接在同一總線上DS18B20的個數(shù)和識別64位ROM地址,為操作各器件作好準備跳過ROM0CCH忽略64位ROM地址,直接向DS18B20發(fā)溫度變換命令,

32、適用于單片工作。尋找報警命令0ECH執(zhí)行后,只有溫度超過設(shè)定值上限或者下限的片子才做出響應(yīng)3.DS18B20訪問流程CPU對DS18B20訪問的工作流程是:先對DS18B20進行初始化,再發(fā)ROM操作命令,最后才能對存儲器及數(shù)據(jù)進行操作。DS18B20每一步操作都在嚴格的工作時序和通信協(xié)議下進行的。例如主機控制DS18B20完成溫度轉(zhuǎn)換這一過程,根據(jù)DS18B20的通信協(xié)議,須經(jīng)過三個步驟:第一步是復(fù)位,第二步是發(fā)送ROM命令,第三步是發(fā)送RAM命令。值得注意的是,每一次讀寫之前都要對它進行復(fù)位。下面詳細說明DS18B20的操作過程。(1) DS18B20的初始化DS18B20的所有操作均從初

33、始化開始,初始化的過程是首先由CPU發(fā)出一個復(fù)位脈沖,復(fù)位脈沖的時間為480960us,然后由叢屬器件發(fā)出應(yīng)答脈沖。初始化是主CPU發(fā)出一個復(fù)位信號,將數(shù)據(jù)總線上的所有DS18B20復(fù)位,然后釋放總線,該總線位接收狀態(tài)。由于接有上拉電阻,在釋放總線是有15 60us的時間間隙,在此之后的60240us時間內(nèi),如果CPU檢測到總線為低電平的話,則說明DS18B20初始化完成。DS18B20初始化時序波形如圖所示:圖3-4 DS18B20復(fù)位初始化時序圖 (2) 發(fā)送ROM命令ROM的操作命令位8位二進制數(shù),CPU對ROM的操作有讀ROM命令、符合ROM命令、搜索ROM命令、跳過ROM命令、報警搜

34、索命令共5種。其中符合ROM命令是用來識別連在總線是的DS18B20芯片,其過程是主CPU發(fā)出符合ROM命令(代碼位55H)后,接著送出64位的ROM數(shù)據(jù)序列,從而使主CPU實現(xiàn)對單總線上的特定DS18B20進行尋址,只有與64位序列嚴格相符的DS18B20才能對后續(xù)的操作發(fā)出響應(yīng),符合ROM命令只對同時掛在總線上的多片DS18B20適用。讀寫ROM的操作時序如圖所示。 圖(a)DS18B20寫時序圖(b)DS18B20讀時序圖3-5 DS18B20操作時序圖(3) 發(fā)送RAM命令RAM命令是暫存器操作命令,共有6條,在前面已經(jīng)列出,其功能是實現(xiàn)溫度的轉(zhuǎn)換、讀/寫、復(fù)制暫存器的內(nèi)容等功能。在具

35、體的設(shè)計過程中,訪問DS18B20也是通過程序設(shè)計來實現(xiàn)的。具體程序可以按照上面的工作時序圖和命令的相應(yīng)格式進行程序設(shè)計。 另外,由于DS18B20單線通信功能是分時完成的,他有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。3.4DS18B20的測溫流程初始化DS18B20跳過ROM匹配溫度變換延時1S跳過ROM匹配讀暫存器轉(zhuǎn)換成顯示碼數(shù)碼管顯示圖36 DS18B20測溫流程3.5系統(tǒng)硬件電路設(shè)計3.5.1設(shè)計原則DS18B20可以采用兩種方式供電,一種是采用電源供電方式

36、,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如圖3.1所示單片機端口接單線總線,為保證在有效的DS18B20時鐘周期內(nèi)提供足夠的電流,可用一個MOSFET管來完成對總線的上拉。本設(shè)計采用電源供電方式, P1.1口接單線總線為保證在有效的DS18B20時鐘周期內(nèi)提供足夠的電流,可用一個MOSFET管和89S51的P1.0來完成對總線的上拉。當(dāng)DS18B20處于寫存儲器操作和溫度A/D變換操作時,總線上必須有強的上拉,上拉開啟時間最大為10 s。采用寄生電源供電方式是VDD和GND端均接地。由于單線制只有一根線,因此發(fā)送接收口必須是三狀態(tài)的。主機控制DS1

37、8B20完成溫度轉(zhuǎn)換必須經(jīng)過3個步驟: 初始化; ROM操作指令; 存儲器操作指令。3.5.2設(shè)計中的各種電路(1)單片機電路 圖3-7單片機電路(2)晶振電路單片機XIAL1和XIAL2分別接30PF的電容,中間再并個12MHZ的晶振,形成單片機的晶振電路如圖3-8所示。圖3-8 晶振電路(3)數(shù)碼管顯示電路 用了7段共陰數(shù)碼管掃描電路,節(jié)約了單片機的輸出端口,便于程序的編寫。P0口接8個2.2K的排阻然后接到3個LED數(shù)碼管顯示電路上。P2.0P2.2 三個I/O口分別接4.7K的電阻作數(shù)碼管的共陰極如圖3-9所示。圖3-9 三位數(shù)碼管顯示電路(4)多路溫度采集電路如圖3-10所示。P1.

38、0和一個MOSFET管連接來完成對溫度傳感器DS18B20總線的上拉,MOSFET一端接+5v電源,另一端接在傳感器的總線上來對傳感器提供電源。P1.2與P1.3口并聯(lián)接在所有傳感器并接后的單總線上,P1.3端口相當(dāng)于TX,P1.4相當(dāng)于RX。圖3-10 多路溫度采集電路(5)繼電器電路P1.1和P1.2引腳接繼電器電路的4.7K電阻上,P1口其他引腳懸空,繼電器電路如圖3-11所示。 圖3-11 繼電器電路(6)單片機復(fù)位電路圖3-12 單片機復(fù)位電路(7)蜂鳴器報警電路 P2.5接蜂鳴器電路如圖3-13所示:圖3-13 蜂鳴器報警電路(8)溫度設(shè)置按鍵電路P3口中P3.5、P3.6、P3.

39、7接到按鍵電路如圖3-14所示:圖3-14 按鍵電路(9)其他引腳 ALE引腳懸空,復(fù)位引腳接到復(fù)位電路、VCC接電源、VSS接地、EA接電源。第四章 系統(tǒng)軟件設(shè)計4.1 系統(tǒng)軟件設(shè)計整體思路一個應(yīng)用系統(tǒng)要完成各項功能,首先必須有較完善的硬件作保證。同時還必須得到相應(yīng)設(shè)計合理的軟件的支持,尤其是微機應(yīng)用高速發(fā)展的今天,許多由硬件完成的工作,都可通過軟件編程而代替。甚至有些必須采用很復(fù)雜的硬件電路才能完成的工作,用軟件編程有時會變得很簡單,如數(shù)字濾波,信號處理等。因此充分利用其內(nèi)部豐富的硬件資源和軟件資源,采用與S51系列單片機相對應(yīng)的51匯編語言和結(jié)構(gòu)化程序設(shè)計方法進行軟件編程。程序設(shè)計語言有

40、三種:機器語言、匯編語言和高級語言。機器語言是機器唯一能“懂”的語言,用匯編語言或高級語言編寫的程序(稱為源程序)最終都必須翻譯成機器語言的程序(成為目標程序),計算機才能“看懂”,然后逐一執(zhí)行。高級語言是面向問題和計算過程的語言,它可通過于各種不同的計算機,用戶編程時不必仔細了解所用的計算機的具體性能與指令系統(tǒng),而且語句的功能強,常常一個語句已相當(dāng)于很多條計算機指令,于是用高級語言編制程序的速度比較快,也便于學(xué)習(xí)和交流,但是本系統(tǒng)卻選用了匯編語言。原因在于,本系統(tǒng)是編制程序工作量不大、規(guī)模較小的單片機微控制系統(tǒng),使用匯編語言可以不用像高級語言那樣占用較多的存儲空間,適合于存儲容量較小的系統(tǒng)。

41、同時,本系統(tǒng)對位處理要求很高,需要解決大量的邏輯控制問題。MCS51指令系統(tǒng)的指令長度較短,它在存儲空間和執(zhí)行時間方面具有較高的效率,編成的程序占用內(nèi)存單元少,執(zhí)行也非常的快捷,與本系統(tǒng)的應(yīng)用要求很適合。而且MCS51指令系統(tǒng)有豐富的位操作(或稱位處理)指令,可以形成一個相當(dāng)完整的位操作指令子集,這是MCS51指令系統(tǒng)主要的優(yōu)點之一。對于要求反應(yīng)靈敏與控制及時的工控、檢測等實時控制系統(tǒng)以及要求體積小、系統(tǒng)小的許多“電腦化”產(chǎn)品,可以充分體現(xiàn)出匯編語言簡明、整齊、執(zhí)行時間短和易于使用的特點。本裝置的軟件包括主程序、讀出溫度子程序、復(fù)位應(yīng)答子程序、寫入子程序、以及有關(guān)DS18B20的程序(初始化子

42、程序、寫程序和讀程序)4.2 系統(tǒng)軟件設(shè)計的一般原則在單片機應(yīng)用開發(fā)中代碼使用效率、單片機的抗干擾性以及軟件可靠性是實際工程設(shè)計的重點。 單片機應(yīng)用軟件系統(tǒng)設(shè)計包括功能模塊劃分、程序流程確立、模塊接口設(shè)計以及程序代碼編寫。我們依據(jù)系統(tǒng)的功能要求,將整體軟件系統(tǒng)分割成若干個獨立的程序模塊。這些程序模塊可以是幾條語句的集合、功能函數(shù)或程序文件。隨后,根據(jù)個程序模塊的實現(xiàn)功能寫出流程,一般需要寫出具體的實現(xiàn)功能描述。程序代碼通常采用匯編語言或高級語言(C語言)編寫。 本課題采用C語言編程,在此必須注意以下問題:(1)提高程序代碼效率必須熟悉當(dāng)前使用的C語言編譯器,試驗每條C語言編譯以后對應(yīng)的匯編語言

43、的語句行數(shù),這樣就可以很明確的知道代碼效率。(2)減少程序錯誤我們在編寫程序時,要注重考慮如下方面。1物理參數(shù) 2資源參數(shù) 3應(yīng)用參數(shù) 4過程參數(shù)(3)單片機的抗干擾性防止干擾最有效的方法是去除干擾源、隔離干擾路徑。單片機干擾最常見的現(xiàn)象就是復(fù)位,導(dǎo)致程序運行異常。設(shè)計系統(tǒng)是一般需要添加一個“看門狗”監(jiān)控模塊,在系統(tǒng)出現(xiàn)不可逆轉(zhuǎn)的干擾時,監(jiān)控模塊將重啟系統(tǒng),并從斷點處繼續(xù)執(zhí)行。(4)系統(tǒng)的可靠性1要測試單片機軟件功能的完善性。2上電、掉電測試。3系統(tǒng)耗損測試。4. 3系統(tǒng)軟件設(shè)計的一般步驟系統(tǒng)進行軟件設(shè)計時,先要對本課題硬件有一個熟練的掌握,知道系統(tǒng)的組成,數(shù)據(jù)的傳輸,信號是如何被控制的,以及

44、信號的顯示。然后進行軟件設(shè)計時,先搞清楚各個部分的子程序及他們的流程圖,然后進行C語言編程,最后將它們系統(tǒng)的編程4.4系統(tǒng)程序流程圖系統(tǒng)程序主要包括主程序,讀出溫度子程序,復(fù)位應(yīng)答子程序,寫入子程序等。(1) 主程序 主程序的主要功能是負責(zé)溫度的實時顯示、讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度測量每1s進行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖4-1所示。通過調(diào)用讀溫度子程序把存入內(nèi)存儲中的整數(shù)部分與小數(shù)部分分開存放在不同的兩個單元中,然后通過調(diào)用顯示子程序顯示出來。圖4-1 主程序流程圖 29(2)讀出溫度子程序 讀出溫度子程序流程圖如圖4-2所示。其主要功能是讀

45、出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。 DS18B20的各個命令對時序的要求特別嚴格,所以必須按照所要求的時序才能達到預(yù)期的目的,同時,要注意讀進來的是高位在后低位在前,共有12位數(shù),小數(shù)4位,整數(shù)7位,還有一位符號位。DS18B20復(fù)位、應(yīng)答子程序跳過ROM匹配命令寫入子程序溫度轉(zhuǎn)換命令寫入子程序顯示子程序(延時)DS18B20復(fù)位、應(yīng)答子程序跳過ROM匹配命令寫入子程序讀溫度命令子程序終 止 圖4-2 讀出溫度子程序(3)復(fù)位、應(yīng)答子程序開始P1.0口清0延時537USP1.0口置1否50US是否有低電平是標志位置1P1.0口置1有234US低電平標

46、志位置1否是 終止圖4-3復(fù)位、應(yīng)答子程序(4)寫入子程序開始進位C清0R2是否為0P1.0置 0延時46US帶進位右移延時12USP1.0清0結(jié)束圖4-4 寫入子程序(5)系統(tǒng)總的流程圖開 始初始化DS18B20顯示當(dāng)前溫度判斷當(dāng)前溫度值超過設(shè)定溫度上限啟動風(fēng)扇降低溫度紅燈亮設(shè)定溫度上、下限啟動電熱爐升高溫度是否低于設(shè)定溫度下限是綠燈亮否圖4-5 系統(tǒng)總的流程圖第五章 小結(jié)本she1利用Proteus與KEIL C51對單片機多點溫度測量系統(tǒng)進行了仿真設(shè)計從本文結(jié)果可以看出,利用Proteus進行單片機系統(tǒng)的仿真設(shè)計可以極大地簡化單片機程序在目標硬件上的調(diào)試工作,大幅度節(jié)省制作電路板的時間,對于提高產(chǎn)品的開發(fā)效率、降低開發(fā)成本等有重要作用 硬件電路的簡單是以軟件的復(fù)雜為代價的,所以在程序編寫和調(diào)試的過程中稍一粗心就會出現(xiàn)錯誤,包括時間延時不夠,設(shè)置參數(shù)的類型有誤,按鍵子程序放置位置不妥等錯誤。本程序經(jīng)過反復(fù)的調(diào)試修改,雖然能達到預(yù)期的基本目標,但是還有很多地方需要完善,如開始仿真時機器會掃描錯誤代碼而使電路報警,報警的同時可以使數(shù)碼管閃爍,還可以利用剩余的I/O口掛接更多的DS18B20等。本課題通過分析對比各種不同的溫度傳感器,選定DS1

溫馨提示

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

評論

0/150

提交評論