基于DS18B20數(shù)字溫度傳感器的檢測_第1頁
基于DS18B20數(shù)字溫度傳感器的檢測_第2頁
基于DS18B20數(shù)字溫度傳感器的檢測_第3頁
基于DS18B20數(shù)字溫度傳感器的檢測_第4頁
基于DS18B20數(shù)字溫度傳感器的檢測_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于DS18B20數(shù)字溫度傳感器的溫度檢測系統(tǒng)專 業(yè): 機械設(shè)計制造及其自動化 目錄摘要2第一章緒論41.1傳感器發(fā)展的三個階段41.2傳感器發(fā)展趨勢41.3傳感器在在系統(tǒng)中的應用41.4設(shè)計研究意義51.5設(shè)計的目標任務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

2、設(shè)計原則163.5.2設(shè)計中的各種電路17第四章 系統(tǒng)軟件設(shè)計214.1 系統(tǒng)軟件設(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單片機系

3、統(tǒng)為核心,能對多點的溫度進行實時巡檢。DS18B20是一種可組網(wǎng)的高精度數(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è)部門都不得不考慮著溫度的因

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

5、器(例如TC652/653)中還包含了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)測試功能的,當然,其智能化程度也取決于軟件的開發(fā)水平。1.2溫度傳感器的發(fā)展趨勢進入21世紀后,溫度傳感器正

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

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

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

9、。整個系統(tǒng)由MCU(單片機)控制,用于接收傳感器采集的溫度數(shù)據(jù)并加以顯示出來,還可以從鍵盤設(shè)定溫度報警值,系統(tǒng)根據(jù)命令,選擇對應的傳感器采集溫度數(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ù)字溫度傳

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

11、及其與單片機的接口部分組成。DS18B20智能溫度溫度傳感器進行溫度采集和轉(zhuǎn)換輸出數(shù)字型的溫度值,然后通過數(shù)據(jù)引腳傳到單片機的P1.1口,單片機接受溫度并存儲。DS18B20是美國DALLAS半導體公司最新推出的一種單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,它可將溫度信號直接轉(zhuǎn)換為數(shù)字信號,實現(xiàn)了與單片機的直接接口,從而省去了信號調(diào)理和A/D轉(zhuǎn)換等復雜模/數(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智能溫度

13、溫度傳感器。還有按鍵設(shè)置報警溫度值和加熱降溫電路。按鍵設(shè)置溫度加熱繼電器和風扇繼電器單 片 機多路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ù)命令,選擇對應的溫度傳感器,并由驅(qū)動電路驅(qū)動溫度顯示。本課程設(shè)計了一種合理、可行的單片機監(jiān)控軟件,完成測量和顯示的任務。由于單

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

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

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

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

18、要求就可以,不必選得過高。這樣就可以在滿足同一測量目的的諸多傳感器中選擇比較便宜和簡單的傳感器。如果測量目的是定性分析的,選用重復精度高的傳感器即可,不宜選用絕對量值精度高的;如果是為了定量分析,必須獲得精確的測量值,就需選用精度等級能滿足要求的傳感器。對某些特殊使用場合,無法選到合適的傳感器,則需自行設(shè)計制造傳感器。自制傳感器的性能應滿足使用要求。3.1.2DS18B20溫度傳感器簡介溫度的測量是從金屬(物質(zhì))的熱脹冷縮開始。水銀溫度計至今仍是各種溫度測量的計量標準??墒撬娜秉c是只能近距離觀測,而且水銀有毒,玻璃管易碎。代替水銀的有酒精溫度計和金屬簧片溫度計,它們雖然沒有毒性,但測量精度很

19、低,只能作為一個概略指示。不過在居民住宅中使用已可滿足要求。在工業(yè)生產(chǎn)和實驗研究中為了配合遠傳儀表指示,出現(xiàn)了許多不同的溫度檢測方法,常用的有電阻式、熱電偶式、PN結(jié)型、輻射型、光纖式及石英諧振型等。它們都是基于溫度變化引起其物理參數(shù)(如電阻值,熱電勢等)的變化的原理。隨著大規(guī)模集成電路工藝的提高,出現(xiàn)了多種集成的數(shù)字化溫度傳感器。(1) 智能溫度傳感器DS18B20的性能特點:1) 獨特的單總線接口僅需要一個端口引腳進行通信,可以是串行口也可以是其他I/O口,無須變換,直接輸出被測溫度值(9位二進制,含符號位)。 多個DS18B20可以并聯(lián)掛接在一條總線上,實現(xiàn)實現(xiàn)多點溫度采集檢測功能;2)

20、可測溫度范圍為-55+125,測量分辨率為0.0625;3) 內(nèi)含64位經(jīng)過激光修正的只讀存儲器ROM;4) 內(nèi)含寄生電源,可直接通過數(shù)據(jù)總線供電,電壓范圍為3.05.5V;5) 零待機功耗;6)用戶可通過編程分別設(shè)定各路的溫度上、下限溫度值來實現(xiàn)報警功能;7) 適配各種微處理器;8) 報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;9) 負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作;10) 可檢測距離遠,最遠測量距離為150m 。(2) DS18B20的內(nèi)部結(jié)構(gòu)DS18B20的內(nèi)部結(jié)構(gòu)如圖3-1所示。 DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻RO

21、M,溫度報警觸發(fā)器,溫度傳感器以及高速緩存器。1) 64位光刻ROM。64位光刻ROM是出廠前已被刻好的,它可以看做是該DS18B0的地址序列號,不同的器件不一樣,64位的地址序列號的構(gòu)成如表2-1所示。開始8位是產(chǎn)品序列號代表產(chǎn)品的序列,接著48位產(chǎn)品序號代表同一系列產(chǎn)品的不同產(chǎn)品,最后8位是前56位的CRC校驗碼,所以不同的器件的地址序列號各不一樣這也是多個DS18B20可以采用一線進行通信的原因(8位CRC編碼的計算公式為CRC=X+X+X+1)。在64 b ROM的最高有效字節(jié)中存儲有循環(huán)冗余校驗碼(CRC)。主機根據(jù)ROM的前56位來計算CRC值,并和存入DS18B20中的CRC值做

22、比較,以判斷主機收到的ROM數(shù)據(jù)是否正確。表31 64位ROM地址序列號結(jié)構(gòu)48位產(chǎn)品序列號8位產(chǎn)品序號8位CRC編碼檢驗圖31 DS18B20內(nèi)部結(jié)構(gòu)2) 非揮發(fā)的溫度報警觸發(fā)器(包括上限溫度觸發(fā)器TH和下限溫度觸發(fā)器TL)。可通過軟件程序?qū)懭朐O(shè)定用戶所要求的報警上下限溫度值。3) 高速暫存器??梢栽O(shè)置DS18B20溫度轉(zhuǎn)換的精度。DS18B20出廠時該位被設(shè)置為0,用戶要去改動,R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率,如圖1.4。DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的E2PRAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲器, 表32 DS1

23、8B20高速暫存器結(jié)構(gòu)序號寄存器名稱作用0溫度低字節(jié)以16位補碼形式存放1溫度高字節(jié)62TH/用戶字節(jié)1存放溫度上限值3HL/用戶字節(jié)2 存放溫度下限值4、5保留字節(jié)1、26計數(shù)器余值7計數(shù)器8CRC值此外,DS18B20內(nèi)部還包括寄生電源、電源檢測、存儲控制邏輯、8位循環(huán)冗余碼生成器(CRC)等部分。DS18B20有兩種供電方式。如圖3-2所示:圖(a)是由外電源供電,圖(b)是I/O口總線和寄生電容配合供電。DS18B20寄生電源由兩個二極管和寄生電容構(gòu)成。電源檢測電路用于判定供電方式。寄生電源供電時,電源端與接地端并聯(lián)接地,器件從總線上獲取電源。在I/O線呈低電平時,改由寄生電容上的電壓

24、繼續(xù)向器件供電。采用寄生電源有兩個優(yōu)點:一是檢測遠程溫度是無需本地電源;二是缺少正常電源時也能讀ROM。若采用外部電源,則通過二極管向器件供電。MCU(單片機)P1.1MCU(單片機)P1.1UDDDS18B20DS18B20I/OI/OGND UDDGND圖(a)使用外部電源供電圖 (b)使用寄生電源供電圖3-2 DS18B20與微處理器的硬件連接方式由表3-3可見,分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。因此,在實際應用中要將分辨率和轉(zhuǎn)換時間權(quán)衡考慮。高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。

25、當DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625LSB形式表示。當符號位S0時,表示測得的溫度值為正值,可以直接將二進制位轉(zhuǎn)換為十進制;當符號位S1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數(shù)值。 表2-4是一部分溫度值對應的二進制溫度數(shù)據(jù)。表33 DS18B20溫度轉(zhuǎn)換時間表R1R0分辨率/位溫度最大轉(zhuǎn)向時間/ms00993.750110187.510113751112750表34一部分溫度對應值表

26、溫度/數(shù)字輸出(二進制)數(shù)字輸出(十六進制)+1250000 0000 1111 101000FAH+250000 0000 0011 00100032H+0.50000 0000 0000 00010001H00000 0000 0000 00000000H-0.51111 1111 1111 1111FFFFH-251111 1111 1100 1110FFCEH-551111 1111 1001 0010FF92H3.2 DS18B20的測溫原理每一片DSl8B20在其ROM中都存有其唯一的64地址位序列號,在出廠前已寫入片內(nèi)ROM 中。主機在進入操作程序前必須用讀ROM(33H)命令將

27、該DSl8B20的序列號讀出。程序可以先跳過ROM,啟動所有DSl8B20進行溫度變換,之后通過匹配ROM,再逐一地讀回每個DSl8B20的溫度數(shù)據(jù)。DS18B20的測溫原理如圖3-3所示。低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入,圖中還隱含著計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進行計數(shù),進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 所對應的基數(shù)分別置入減法計數(shù)器1和溫度寄存器中,減法計數(shù)器

28、1和溫度寄存器被預置在-55 所對應的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預置值減到0時溫度寄存器的值將加1,減法計數(shù)器1的預置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖2.3中的斜率累加器用于補償和修正測溫過程中的非線性,提高測量準確制度。其輸出用于修正減法計數(shù)器的預置值,只要計數(shù)門仍未關(guān)閉就重復上述過程,直至溫度寄存器值達到被測溫度值。停止置位/清零減法計數(shù)器1斜坡累加器減到0減法計數(shù)器2預 置低溫度系數(shù)振 蕩 器

29、高溫度系數(shù)振 蕩 器計數(shù)比較器預 置溫度寄存器減到0加1 圖3-3 DS18B20的測溫原理圖3.3 DS18B20與微處理器的接口技術(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左右的上拉電阻。實際應用中,DS18B20可以距單片機150m遠,測量數(shù)據(jù)不會產(chǎn)生誤差,在同一條數(shù)據(jù)總線上可以并接許

30、多片DS18B20實現(xiàn)多路溫度采集。2. DS18B20控制命令(1) 暫存器命令 訪問DS18B20的暫存器共有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ù)復制暫存器48H將E2PRAM中第3,4字節(jié)內(nèi)容復制到E2PRAM中重調(diào)E2PRAM0BBH將E2PRAM中內(nèi)容恢復到RAM中的第3,4字節(jié)讀 供 電方 式0B4H

31、讀DS18B20的供電模式,寄生供電時DS18B20發(fā)送“0”,外接電源供電DS18B20發(fā)送“1”(2)對ROM的5種操作命令 。如表3-6所示: 讀ROM命令(代碼為33H):該命令允許主CPU讀取DS18B20中的8位產(chǎn)品序列編號、48位產(chǎn)品序列號及8位CRC值。該命令值適用于總線上只掛接一片DS18B20,對總線上掛有多片DS18B20時不適用。 符合ROM命令(代碼為55H):該指令適合在一條總線上掛接多片DS18B20的情況。具體應用是這樣的,主CPU先向總線發(fā)這條命令,然后再發(fā)64位的ROM數(shù)據(jù)。再總線上,只有符合所發(fā)的64位ROM的DS18B20才有操作權(quán)。這樣就實現(xiàn)了單總線上

32、的尋址。 尋找ROM命令(代碼為F0H):這條命令用于對連在單總線上的多個DS18B20進行初始化操作。 跳過ROM命令(代碼為CCH):該命令用于對總線上的報警器進行尋找,其用法與尋找ROM一樣。 尋找報警命令(代碼為ECH):該命令用于對總線上的報警器件進行尋找ROM一樣。表3-6 ROM操作命令指令約定代碼操作說明讀ROM33H讀DS18B20 ROM中的編碼符合ROM55H發(fā)出此命令之后,接著發(fā)出64位ROM編碼,訪問單線總線上與該編碼相對應的DS18B20 使之作出響應,為下一步對該DS18B20的讀寫作準備尋找ROM0F0H用于確定掛接在同一總線上DS18B20的個數(shù)和識別64位R

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

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

35、位8位二進制數(shù),CPU對ROM的操作有讀ROM命令、符合ROM命令、搜索ROM命令、跳過ROM命令、報警搜索命令共5種。其中符合ROM命令是用來識別連在總線是的DS18B20芯片,其過程是主CPU發(fā)出符合ROM命令(代碼位55H)后,接著送出64位的ROM數(shù)據(jù)序列,從而使主CPU實現(xiàn)對單總線上的特定DS18B20進行尋址,只有與64位序列嚴格相符的DS18B20才能對后續(xù)的操作發(fā)出響應,符合ROM命令只對同時掛在總線上的多片DS18B20適用。讀寫ROM的操作時序如圖所示。 圖(a)DS18B20寫時序圖(b)DS18B20讀時序圖3-5 DS18B20操作時序圖(3) 發(fā)送RAM命令RAM命

36、令是暫存器操作命令,共有6條,在前面已經(jīng)列出,其功能是實現(xiàn)溫度的轉(zhuǎn)換、讀/寫、復制暫存器的內(nèi)容等功能。在具體的設(shè)計過程中,訪問DS18B20也是通過程序設(shè)計來實現(xiàn)的。具體程序可以按照上面的工作時序圖和命令的相應格式進行程序設(shè)計。 另外,由于DS18B20單線通信功能是分時完成的,他有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化DS18B20(發(fā)復位脈沖)發(fā)ROM功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。3.4DS18B20的測溫流程初始化DS18B20跳過ROM匹配溫度變換延時1S跳過ROM匹配讀暫存器轉(zhuǎn)換成顯示碼數(shù)碼管顯示圖36 DS18B20

37、測溫流程3.5系統(tǒng)硬件電路設(shè)計3.5.1設(shè)計原則DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如圖3.1所示單片機端口接單線總線,為保證在有效的DS18B20時鐘周期內(nèi)提供足夠的電流,可用一個MOSFET管來完成對總線的上拉。本設(shè)計采用電源供電方式, P1.1口接單線總線為保證在有效的DS18B20時鐘周期內(nèi)提供足夠的電流,可用一個MOSFET管和89S51的P1.0來完成對總線的上拉。當DS18B20處于寫存儲器操作和溫度A/D變換操作時,總線上必須有強的上拉,上拉開啟時間最大為10 s。采用寄

38、生電源供電方式是VDD和GND端均接地。由于單線制只有一根線,因此發(fā)送接收口必須是三狀態(tài)的。主機控制DS18B20完成溫度轉(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的電阻

39、作數(shù)碼管的共陰極如圖3-9所示。圖3-9 三位數(shù)碼管顯示電路(4)多路溫度采集電路如圖3-10所示。P1.0和一個MOSFET管連接來完成對溫度傳感器DS18B20總線的上拉,MOSFET一端接+5v電源,另一端接在傳感器的總線上來對傳感器提供電源。P1.2與P1.3口并聯(lián)接在所有傳感器并接后的單總線上,P1.3端口相當于TX,P1.4相當于RX。圖3-10 多路溫度采集電路(5)繼電器電路P1.1和P1.2引腳接繼電器電路的4.7K電阻上,P1口其他引腳懸空,繼電器電路如圖3-11所示。 圖3-11 繼電器電路(6)單片機復位電路圖3-12 單片機復位電路(7)蜂鳴器報警電路 P2.5接蜂鳴

40、器電路如圖3-13所示:圖3-13 蜂鳴器報警電路(8)溫度設(shè)置按鍵電路P3口中P3.5、P3.6、P3.7接到按鍵電路如圖3-14所示:圖3-14 按鍵電路(9)其他引腳 ALE引腳懸空,復位引腳接到復位電路、VCC接電源、VSS接地、EA接電源。第四章 系統(tǒng)軟件設(shè)計4.1 系統(tǒng)軟件設(shè)計整體思路一個應用系統(tǒng)要完成各項功能,首先必須有較完善的硬件作保證。同時還必須得到相應設(shè)計合理的軟件的支持,尤其是微機應用高速發(fā)展的今天,許多由硬件完成的工作,都可通過軟件編程而代替。甚至有些必須采用很復雜的硬件電路才能完成的工作,用軟件編程有時會變得很簡單,如數(shù)字濾波,信號處理等。因此充分利用其內(nèi)部豐富的硬件

41、資源和軟件資源,采用與S51系列單片機相對應的51匯編語言和結(jié)構(gòu)化程序設(shè)計方法進行軟件編程。程序設(shè)計語言有三種:機器語言、匯編語言和高級語言。機器語言是機器唯一能“懂”的語言,用匯編語言或高級語言編寫的程序(稱為源程序)最終都必須翻譯成機器語言的程序(成為目標程序),計算機才能“看懂”,然后逐一執(zhí)行。高級語言是面向問題和計算過程的語言,它可通過于各種不同的計算機,用戶編程時不必仔細了解所用的計算機的具體性能與指令系統(tǒng),而且語句的功能強,常常一個語句已相當于很多條計算機指令,于是用高級語言編制程序的速度比較快,也便于學習和交流,但是本系統(tǒng)卻選用了匯編語言。原因在于,本系統(tǒng)是編制程序工作量不大、規(guī)

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

43、本裝置的軟件包括主程序、讀出溫度子程序、復位應答子程序、寫入子程序、以及有關(guān)DS18B20的程序(初始化子程序、寫程序和讀程序)4.2 系統(tǒng)軟件設(shè)計的一般原則在單片機應用開發(fā)中代碼使用效率、單片機的抗干擾性以及軟件可靠性是實際工程設(shè)計的重點。 單片機應用軟件系統(tǒng)設(shè)計包括功能模塊劃分、程序流程確立、模塊接口設(shè)計以及程序代碼編寫。我們依據(jù)系統(tǒng)的功能要求,將整體軟件系統(tǒng)分割成若干個獨立的程序模塊。這些程序模塊可以是幾條語句的集合、功能函數(shù)或程序文件。隨后,根據(jù)個程序模塊的實現(xiàn)功能寫出流程,一般需要寫出具體的實現(xiàn)功能描述。程序代碼通常采用匯編語言或高級語言(C語言)編寫。 本課題采用C語言編程,在此必

44、須注意以下問題:(1)提高程序代碼效率必須熟悉當前使用的C語言編譯器,試驗每條C語言編譯以后對應的匯編語言的語句行數(shù),這樣就可以很明確的知道代碼效率。(2)減少程序錯誤我們在編寫程序時,要注重考慮如下方面。1物理參數(shù) 2資源參數(shù) 3應用參數(shù) 4過程參數(shù)(3)單片機的抗干擾性防止干擾最有效的方法是去除干擾源、隔離干擾路徑。單片機干擾最常見的現(xiàn)象就是復位,導致程序運行異常。設(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è)計的一般步驟

45、系統(tǒng)進行軟件設(shè)計時,先要對本課題硬件有一個熟練的掌握,知道系統(tǒng)的組成,數(shù)據(jù)的傳輸,信號是如何被控制的,以及信號的顯示。然后進行軟件設(shè)計時,先搞清楚各個部分的子程序及他們的流程圖,然后進行C語言編程,最后將它們系統(tǒng)的編程4.4系統(tǒng)程序流程圖系統(tǒng)程序主要包括主程序,讀出溫度子程序,復位應答子程序,寫入子程序等。(1) 主程序 主程序的主要功能是負責溫度的實時顯示、讀出并處理DS18B20的測量的當前溫度值,溫度測量每1s進行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖4-1所示。通過調(diào)用讀溫度子程序把存入內(nèi)存儲中的整數(shù)部分與小數(shù)部分分開存放在不同的兩個單元中,然后通過調(diào)用顯示子程序顯示

46、出來。圖4-1 主程序流程圖(2)讀出溫度子程序 讀出溫度子程序流程圖如圖4-2所示。其主要功能是讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。 DS18B20的各個命令對時序的要求特別嚴格,所以必須按照所要求的時序才能達到預期的目的,同時,要注意讀進來的是高位在后低位在前,共有12位數(shù),小數(shù)4位,整數(shù)7位,還有一位符號位。DS18B20復位、應答子程序跳過ROM匹配命令寫入子程序溫度轉(zhuǎn)換命令寫入子程序顯示子程序(延時)DS18B20復位、應答子程序跳過ROM匹配命令寫入子程序讀溫度命令子程序終 止 圖4-2 讀出溫度子程序(3)復位、應答子程序開始P1.0口清0延時537USP1.0口置1否50US是否有低電平是標志位置1P1.0口置1有234US低電平標志位置1否是 終止圖4-3復位、應答子程序(4)寫入子程序開始進位C清0R2是否為0P1.0置 0延時46US帶進位右移延時12USP1.0清0結(jié)束圖4-4 寫入子程序(5)系統(tǒng)總的流程圖開 始初始化DS18B20顯示當前溫度判斷當前溫度值超過設(shè)定溫度上限啟動風扇降低溫度紅燈亮設(shè)定溫度上、下限啟動電熱爐升高溫度是否低于設(shè)定溫度下限是綠燈亮否圖4-5 系統(tǒng)總的流程圖第五章 小結(jié)本she1

溫馨提示

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

評論

0/150

提交評論