版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、傳感器原理與應(yīng)用課程設(shè)計(jì)報(bào)告 基于DS18B20數(shù)字溫度傳感器的溫度檢測系統(tǒng)專 業(yè): 電子信息科學(xué)與技術(shù) 2011年6月目錄摘要2第一章緒論41.1傳感器發(fā)展的三個(gè)階段41.2傳感器發(fā)展趨勢(shì)41.3傳感器在在系統(tǒng)中的應(yīng)用41.4設(shè)計(jì)研究意義51.5設(shè)計(jì)的目標(biāo)任務(wù)5第二章 方案選擇62.1引言62.2方案設(shè)計(jì)62.2.1控制模塊62.2.2溫度采集模塊62.2.3顯示模塊72.3系統(tǒng)框圖7第三章 硬件設(shè)計(jì)73.1溫度傳感器73.1.1溫度傳感器選用細(xì)則73.1.2DS18B20傳感器簡介93.2DS18B20的測溫原理113.3DS18B20與微處理器的接口技術(shù)133.4DS18B20的測溫流程
2、163.5系統(tǒng)硬件電路設(shè)計(jì)163.5.1設(shè)計(jì)原則163.5.2設(shè)計(jì)中的各種電路17第四章 系統(tǒng)軟件設(shè)計(jì)214.1 系統(tǒng)軟件設(shè)計(jì)整體思路214.2 系統(tǒng)軟件設(shè)計(jì)的一般原則214. 3系統(tǒng)軟件設(shè)計(jì)的一般步驟224.4系統(tǒng)程序流程圖22第五章 小結(jié)27結(jié)束語28參考文獻(xiàn)28致謝28摘 要隨著社會(huì)的進(jìn)步和工業(yè)技術(shù)的發(fā)展,人們?cè)絹碓街匾暅囟纫蛩兀S多產(chǎn)品對(duì)溫度范圍要求嚴(yán)格,而目前市場上普遍存在的溫度檢測儀器大都是單點(diǎn)測量,同時(shí)有溫度信息傳遞不及時(shí)、精度不夠的缺點(diǎn),不利于工業(yè)控制者根據(jù)溫度變化及時(shí)做出決定。在這樣的形式下,開發(fā)一種能夠同時(shí)測量多點(diǎn),并且實(shí)時(shí)性高、精度高,能夠綜合處理多點(diǎn)溫度信息的測量系統(tǒng)就
3、很有必要。本課題以AT89C51單片機(jī)系統(tǒng)為核心,能對(duì)多點(diǎn)的溫度進(jìn)行實(shí)時(shí)巡檢。DS18B20是一種可組網(wǎng)的高精度數(shù)字式溫度傳感器,由于其具有單總線的獨(dú)特優(yōu)點(diǎn),可以使用戶輕松地組建起傳感器網(wǎng)絡(luò),并可使多點(diǎn)溫度測量電路變得簡單、可靠。本文結(jié)合實(shí)際使用經(jīng)驗(yàn),介紹了DS18B20數(shù)字溫度傳感器在單片機(jī)下的硬件連接及軟件編程,并給出了軟件流程圖。關(guān)鍵詞:溫度測量;單總線;數(shù)字溫度傳感器;單片機(jī) 第一章 緒論課題的背景在人類的生活環(huán)境中,溫度扮演著極其重要的角色,都無時(shí)無刻不在與溫度打交道。自18世紀(jì)工業(yè)革命以來,工業(yè)發(fā)展與是否掌握溫度有著緊密的聯(lián)系。在冶金、鋼鐵、石化、水泥、玻璃、醫(yī)藥等等行業(yè),可以說幾
4、乎%80的工業(yè)部門都不得不考慮著溫度的因素。溫度對(duì)于工業(yè)如此重要,由此推進(jìn)了溫度傳感器的發(fā)展。1.1傳感器三個(gè)發(fā)展階段:一是模擬集成溫度傳感器。該傳感器是采用硅半導(dǎo)體集成工藝制成,因此亦稱硅傳感器或單片集成溫度傳感器。此種傳感器具有功能單一(僅測量溫度)、測溫誤差小、價(jià)格低、響應(yīng)速度快、傳輸距離遠(yuǎn)、體積小、微功耗等特點(diǎn),適合遠(yuǎn)距離測溫、控溫,不需要進(jìn)行非線性校準(zhǔn),且外圍電路簡單。它是目前在國內(nèi)外應(yīng)用最為普遍的一種集成傳感器,典型產(chǎn)品有AD590、AD592、TMP17、LM135等。二是模擬集成溫度控制器。模擬集成溫度控制器主要包括溫控開關(guān)、可編程溫度控制器,典型產(chǎn)品有LM56、AD22105
5、和MAX6509。某些增強(qiáng)型集成溫度控制器(例如TC652/653)中還包含了A/D轉(zhuǎn)換器以及固化好的程序,這與智能溫度傳感器有某些相似之處。但它自成系統(tǒng),工作時(shí)并不受微處理器的控制,這是二者的主要區(qū)別。三是智能溫度傳感器。智能溫度傳感器內(nèi)部都包含溫度傳感器、A/D轉(zhuǎn)換器、信號(hào)處理器、存儲(chǔ)器(或寄存器)和接口電路。有的產(chǎn)品還帶多路選擇器、中央控制器(CPU)、隨 機(jī)存取存儲(chǔ)器(RAM)和只讀存儲(chǔ)器(ROM)。智能溫度傳感器的特點(diǎn)是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種微控制器(MCU);并且它是在硬件的基礎(chǔ)上通過軟件來實(shí)現(xiàn)測試功能的,當(dāng)然,其智能化程度也取決于軟件的開發(fā)水平。1.2溫度傳感
6、器的發(fā)展趨勢(shì)進(jìn)入21世紀(jì)后,溫度傳感器正朝著高精度、多功能、總線標(biāo)準(zhǔn)化、高可靠性及安全性、開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片測溫系統(tǒng)等高科技的方向迅速發(fā)展。1.3傳感器在溫控系統(tǒng)中的應(yīng)用目前市場主要存在單點(diǎn)和多點(diǎn)兩種溫度測量儀表。對(duì)于單點(diǎn)溫測儀表,主要采用傳統(tǒng)的模擬集成溫度傳感器,其中又以熱電阻、熱電偶等傳感器的測量精度高,測量范圍大,而得到了普遍的應(yīng)用。此種產(chǎn)品測溫范圍大都在-200800之間,分辨率12位,最小分辨溫度在0.0010.01之間。自帶LED顯示模塊,顯示4位到16位不等。有的儀表還具有存儲(chǔ)功能,可存儲(chǔ)幾百到幾千組數(shù)據(jù)。該類儀表可很好的滿足單個(gè)用戶單點(diǎn)測量的需要。多點(diǎn)溫度測量
7、儀表,相對(duì)與單點(diǎn)的測量精度有一定的差距,雖然實(shí)現(xiàn)了多路溫度的測控,但價(jià)格昂貴。 針對(duì)目前市場的現(xiàn)狀,本設(shè)計(jì)提出了一種可滿足要求、可擴(kuò)展的并且性價(jià)比高的單片機(jī)多路測溫系統(tǒng)。1.4設(shè)計(jì)研究意義隨著科學(xué)技術(shù)的不斷進(jìn)步與發(fā)展,溫度控制在工業(yè)控制、電子測溫計(jì)、家用電器等各種溫度控制系統(tǒng)中被廣泛應(yīng)用,且由過去的單點(diǎn)測量向多點(diǎn)測量發(fā)展。目前溫度傳感器有模擬和數(shù)字兩類傳感器兩種,為克服模擬傳感器與微處理器接口時(shí)所需的信號(hào)調(diào)理電路或AD轉(zhuǎn)換器的缺點(diǎn),多點(diǎn)檢測溫度控制系統(tǒng)多采用智能數(shù)字溫度傳感器,是系統(tǒng)的設(shè)計(jì)更加方便。常用的智能數(shù)字溫度傳感器有DS18B20、MAX6575、DS1722、MAX6635 等等。在
8、傳統(tǒng)的溫度測量系統(tǒng)設(shè)計(jì)中,往往采用模擬技術(shù),這樣就不可避免地遇到引線誤差補(bǔ)償、多點(diǎn)測量中的切換誤差和信號(hào)調(diào)整電路的誤差等問題;而其中某一環(huán)節(jié)處理不當(dāng),就會(huì)導(dǎo)致系統(tǒng)性能的降低。隨著現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,特別是大規(guī)模集成電路設(shè)計(jì)技術(shù)的發(fā)展,微型化、集成化、數(shù)字化正成為傳感器發(fā)展的一個(gè)重要方向。美國Dallas半導(dǎo)體公司推出的數(shù)字溫度傳感器DS18B20,具有獨(dú)特的單總線接口,僅需占用一個(gè)通用I/0端口即可完成與微處理器間的通信;在-10+85 溫度范圍內(nèi)具有05 精度;用戶可編程設(shè)定912位的分辨率。這些特性使得DS18B20非常適用于高精度、多點(diǎn)溫度測量系統(tǒng)的設(shè)計(jì)。1.5設(shè)計(jì)的任務(wù)目標(biāo)本設(shè)計(jì)主
9、要是實(shí)現(xiàn)對(duì)溫度進(jìn)行多點(diǎn)同時(shí)測量并準(zhǔn)確顯示。整個(gè)系統(tǒng)由MCU(單片機(jī))控制,用于接收傳感器采集的溫度數(shù)據(jù)并加以顯示出來,還可以從鍵盤設(shè)定溫度報(bào)警值,系統(tǒng)根據(jù)命令,選擇對(duì)應(yīng)的傳感器采集溫度數(shù)據(jù),并由驅(qū)動(dòng)電路驅(qū)動(dòng)溫度顯示。利用一個(gè)單片機(jī)設(shè)計(jì)一個(gè)能夠?qū)Χ帱c(diǎn)溫度同時(shí)進(jìn)行測量的溫度檢測系統(tǒng)。該系統(tǒng)能夠同時(shí)對(duì)多個(gè)點(diǎn)的溫度進(jìn)行測量和進(jìn)行顯示,并且能夠?qū)Ξ惓G闆r進(jìn)行聲光報(bào)警。第二章 方案選擇2.1 引言溫度測量的方案有很多種,可以采用傳統(tǒng)的分立式傳感器、模擬集成傳感器以及新興的智能型傳感器。對(duì)于控制系統(tǒng)可以采用計(jì)算機(jī)、單片機(jī)等。2.2方案設(shè)計(jì) 本系統(tǒng)主要由三個(gè)模塊組成:控制模塊、溫度采集模塊、顯示模塊。2.2.
10、1控制模塊本設(shè)計(jì)采用單片機(jī)基于數(shù)字溫度傳感器DS18B20的系統(tǒng)。單片機(jī)AT89C51具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用,系統(tǒng)應(yīng)用三節(jié)電池供電。溫度傳感器DS18B20利用單總線的特點(diǎn)可以方便的實(shí)現(xiàn)多點(diǎn)溫度的測量,組建傳感器網(wǎng)絡(luò),且系統(tǒng)的抗干擾性好、設(shè)計(jì)靈活、方便,而且能在惡劣的環(huán)境下進(jìn)行現(xiàn)場溫度檢測。本系統(tǒng)可以應(yīng)用在大型工業(yè)及民用常溫多點(diǎn)監(jiān)測場合。如糧食倉儲(chǔ)系統(tǒng)、樓宇自動(dòng)化系統(tǒng)、溫控制程生產(chǎn)線之溫度影像檢測、醫(yī)療與健診的溫度測試、空調(diào)系統(tǒng)的溫度檢測、石化、機(jī)械等。2.2.2溫度采集模塊這一部分主要完成對(duì)溫度信號(hào)的采集和
11、轉(zhuǎn)換工作,由DS18B20數(shù)字溫度傳感器及其與單片機(jī)的接口部分組成。DS18B20智能溫度溫度傳感器進(jìn)行溫度采集和轉(zhuǎn)換輸出數(shù)字型的溫度值,然后通過數(shù)據(jù)引腳傳到單片機(jī)的P1.1口,單片機(jī)接受溫度并存儲(chǔ)。DS18B20是美國DALLAS半導(dǎo)體公司最新推出的一種單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,它可將溫度信號(hào)直接轉(zhuǎn)換為數(shù)字信號(hào),實(shí)現(xiàn)了與單片機(jī)的直接接口,從而省去了信號(hào)調(diào)理和A/D轉(zhuǎn)換等復(fù)雜模/數(shù)轉(zhuǎn)換電路。DS18B20構(gòu)成的溫度采集模塊電路簡單、功能可靠、測量效率高,很好地彌補(bǔ)了傳統(tǒng)溫度測量方法的不足可廣泛用于工業(yè)、民用、軍事等領(lǐng)域的溫度測量及控制儀器、測控系統(tǒng)和大型設(shè)備中
12、。它具有集成度高、模擬輸入數(shù)字輸出、抗干擾能力強(qiáng)、體積小、接口方便、傳輸距離遠(yuǎn)測溫誤差小等特點(diǎn)。DS18B20有PR-35和SOSI兩種封裝方式,本次設(shè)計(jì)采有PR-35式封裝, 如圖1.2所示。 圖(a)PR-35封裝 圖 (b) SOSI封裝圖21 DS18B20 的兩種封裝2.2.3溫度顯示模塊 本課程設(shè)計(jì)的顯示模塊采用3位共陰極LED數(shù)碼管顯示溫度數(shù)據(jù),兩位整數(shù),一位小數(shù)進(jìn)行顯示,從P0口送數(shù),P2口掃描。 2.3系統(tǒng)框圖系統(tǒng)的系統(tǒng)設(shè)計(jì)方框圖如圖1.1所示,它主要由三部分組成:控制部分主芯片采用單片機(jī)AT89S51;顯示部分采用3位共陰極LED數(shù)碼管以動(dòng)態(tài)掃描方式實(shí)現(xiàn)溫度顯示;溫度采集部
13、分的溫度傳感器采用DS18B20智能溫度溫度傳感器。還有按鍵設(shè)置報(bào)警溫度值和加熱降溫電路。按鍵設(shè)置溫度加熱繼電器和風(fēng)扇繼電器單 片 機(jī)多路DS18B20傳感器LED顯示聲光報(bào)警器圖22多路溫度檢測與控制總體設(shè)計(jì)框圖第三章 硬件設(shè)計(jì)本課程設(shè)計(jì)的多點(diǎn)測溫系統(tǒng)是以單片機(jī)和單總線數(shù)字溫度傳感器DS18B20為核心,充分利用單片機(jī)優(yōu)越的內(nèi)部和外部資源及智能溫度傳感器DS18B20的優(yōu)越性能構(gòu)成一個(gè)完備的測溫系統(tǒng),實(shí)現(xiàn)對(duì)溫度的多點(diǎn)測量。整個(gè)系統(tǒng)由單片機(jī)控制,能夠接收傳感器的溫度數(shù)據(jù)并顯示出來,可以從鍵盤輸入命令,系統(tǒng)根據(jù)命令,選擇對(duì)應(yīng)的溫度傳感器,并由驅(qū)動(dòng)電路驅(qū)動(dòng)溫度顯示。本課程設(shè)計(jì)了一種合理、可行的單片
14、機(jī)監(jiān)控軟件,完成測量和顯示的任務(wù)。由于單片機(jī)具有強(qiáng)大的運(yùn)算和控制功能,使得整個(gè)系統(tǒng)具有模塊化、硬件電路簡單以及操作方便等優(yōu)點(diǎn)。本課題的整個(gè)系統(tǒng)是由單片機(jī)、顯示電路、鍵盤電路、聲光報(bào)警電路等構(gòu)成。3.1 溫度傳感器3.1.1 溫度傳感器選用細(xì)則 現(xiàn)代傳感器在原理與結(jié)構(gòu)上千差萬別,如何根據(jù)具體的測量目的、測量對(duì)象以及測量環(huán)境合理地選用傳感器,是在進(jìn)行某個(gè)量的測量時(shí)首先要解決的問題。當(dāng)傳感器確定之后,與之相配套的測量方法和測量設(shè)備也就可以確定了。測量結(jié)果的成敗,在很大程度上取決于傳感器的選用是否合理。(1)根據(jù)測量對(duì)象與測量環(huán)境確定傳感器的類型要進(jìn)行個(gè)具體的測量工作,首先要考慮采用何種原理的傳感器,
15、這需要分析多方面的因素之后才能確定。因?yàn)?,即使是測量同一物理量,也有多種原理的傳感器可供選用,哪一種原理的傳感器更為合適,則需要根據(jù)被測量的特點(diǎn)和傳感器的使用條件考慮以下一些具體問題:量程的大小;被測位置對(duì)傳感器體積的要求;測量方式為接觸式還是非接觸式;信號(hào)的引出方法,有線或是非接觸測量;傳感器的來源,國產(chǎn)還是進(jìn)口,價(jià)格能否承受,還是自行研制。(2)靈敏度的選擇通常,在傳感器的線性范圍內(nèi),希望傳感器的靈敏度越高越好。因?yàn)橹挥徐`敏度高時(shí),與被測量變化對(duì)應(yīng)的輸出信號(hào)的值才比較大,有利于信號(hào)處理。但要注意的是,傳感器的靈敏度高,與被測量無關(guān)的外界噪聲也容易混入,也會(huì)被放大系統(tǒng)放大,影響測量精度。因此
16、,要求傳感器本身應(yīng)具有較高的信噪比,盡員減少從外界引入的串?dāng)_信號(hào)(3)頻率響應(yīng)特性 傳感器的頻率響應(yīng)特性決定了被測量的頻率范圍,必須在允許頻率范圍內(nèi)保持不失真的測量條件,實(shí)際上傳感器的響應(yīng)總有定延遲,希望延遲時(shí)間越短越好。傳感器的頻率響應(yīng)高,可測的信號(hào)頻率范圍就寬,而由于受到結(jié)構(gòu)特性的影響,機(jī)械系統(tǒng)的慣性較大,因有頻率低的傳感器可測信號(hào)的頻率較低。(4)線性范圍 傳感器的線形范圍是指輸出與輸入成正比的范圍。以理論上講,在此范圍內(nèi),靈敏度保持定值。傳感器的線性范圍越寬,則其量程越大,并且能保證一定的測量精度。在選擇傳感器時(shí),當(dāng)傳感器的種類確定以后首先要看其量程是否滿足要求。但實(shí)際上,任何傳感器都
17、不能保證絕對(duì)的線性,其線性度也是相對(duì)的。當(dāng)所要求測量精度比較低時(shí),在一定的范圍內(nèi),可將非線性誤差較小的傳感器近似看作線性的,這會(huì)給測量帶來極大的方便。(5) 穩(wěn)定性傳感器使用一段時(shí)間后,其性能保持不變化的能力稱為穩(wěn)定性。影響傳感器長期穩(wěn)定性的因素除傳感器本身結(jié)構(gòu)外,主要是傳感器的使用環(huán)境。因此,要使傳感器具有良好的穩(wěn)定性,傳感器必須要有較強(qiáng)的環(huán)境適應(yīng)能力。在選擇傳感器之前,應(yīng)對(duì)其使用環(huán)境進(jìn)行調(diào)查,并根據(jù)具體的使用環(huán)境選擇合適的傳感器,或采取適當(dāng)?shù)拇胧瑴p小環(huán)境的影響。(6) 精度精度是傳感器的一個(gè)重要的性能指標(biāo),它是關(guān)系到整個(gè)測量系統(tǒng)測量精度的一個(gè)重要環(huán)節(jié)。傳感器的精度越高,其價(jià)格越昂貴,因此
18、,傳感器的精度只要滿足整個(gè)測量系統(tǒng)的精度要求就可以,不必選得過高。這樣就可以在滿足同一測量目的的諸多傳感器中選擇比較便宜和簡單的傳感器。如果測量目的是定性分析的,選用重復(fù)精度高的傳感器即可,不宜選用絕對(duì)量值精度高的;如果是為了定量分析,必須獲得精確的測量值,就需選用精度等級(jí)能滿足要求的傳感器。對(duì)某些特殊使用場合,無法選到合適的傳感器,則需自行設(shè)計(jì)制造傳感器。自制傳感器的性能應(yīng)滿足使用要求。3.1.2DS18B20溫度傳感器簡介溫度的測量是從金屬(物質(zhì))的熱脹冷縮開始。水銀溫度計(jì)至今仍是各種溫度測量的計(jì)量標(biāo)準(zhǔn)。可是它的缺點(diǎn)是只能近距離觀測,而且水銀有毒,玻璃管易碎。代替水銀的有酒精溫度計(jì)和金屬簧
19、片溫度計(jì),它們雖然沒有毒性,但測量精度很低,只能作為一個(gè)概略指示。不過在居民住宅中使用已可滿足要求。在工業(yè)生產(chǎn)和實(shí)驗(yàn)研究中為了配合遠(yuǎn)傳儀表指示,出現(xiàn)了許多不同的溫度檢測方法,常用的有電阻式、熱電偶式、PN結(jié)型、輻射型、光纖式及石英諧振型等。它們都是基于溫度變化引起其物理參數(shù)(如電阻值,熱電勢(shì)等)的變化的原理。隨著大規(guī)模集成電路工藝的提高,出現(xiàn)了多種集成的數(shù)字化溫度傳感器。(1) 智能溫度傳感器DS18B20的性能特點(diǎn):1) 獨(dú)特的單總線接口僅需要一個(gè)端口引腳進(jìn)行通信,可以是串行口也可以是其他I/O口,無須變換,直接輸出被測溫度值(9位二進(jìn)制,含符號(hào)位)。 多個(gè)DS18B20可以并聯(lián)掛接在一條總
20、線上,實(shí)現(xiàn)實(shí)現(xiàn)多點(diǎn)溫度采集檢測功能;2)可測溫度范圍為-55+125,測量分辨率為0.0625;3) 內(nèi)含64位經(jīng)過激光修正的只讀存儲(chǔ)器ROM;4) 內(nèi)含寄生電源,可直接通過數(shù)據(jù)總線供電,電壓范圍為3.05.5V;5) 零待機(jī)功耗;6)用戶可通過編程分別設(shè)定各路的溫度上、下限溫度值來實(shí)現(xiàn)報(bào)警功能;7) 適配各種微處理器;8) 報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件;9) 負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作;10) 可檢測距離遠(yuǎn),最遠(yuǎn)測量距離為150m 。(2) DS18B20的內(nèi)部結(jié)構(gòu)DS18B20的內(nèi)部結(jié)構(gòu)如圖3-1所示。 DS18B20
21、內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM,溫度報(bào)警觸發(fā)器,溫度傳感器以及高速緩存器。1) 64位光刻ROM。64位光刻ROM是出廠前已被刻好的,它可以看做是該DS18B0的地址序列號(hào),不同的器件不一樣,64位的地址序列號(hào)的構(gòu)成如表2-1所示。開始8位是產(chǎn)品序列號(hào)代表產(chǎn)品的序列,接著48位產(chǎn)品序號(hào)代表同一系列產(chǎn)品的不同產(chǎn)品,最后8位是前56位的CRC校驗(yàn)碼,所以不同的器件的地址序列號(hào)各不一樣這也是多個(gè)DS18B20可以采用一線進(jìn)行通信的原因(8位CRC編碼的計(jì)算公式為CRC=X+X+X+1)。在64 b ROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余校驗(yàn)碼(CRC)。主機(jī)根據(jù)ROM的前56位來計(jì)算CRC
22、值,并和存入DS18B20中的CRC值做比較,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。表31 64位ROM地址序列號(hào)結(jié)構(gòu)48位產(chǎn)品序列號(hào)8位產(chǎn)品序號(hào)8位CRC編碼檢驗(yàn)圖31 DS18B20內(nèi)部結(jié)構(gòu)2) 非揮發(fā)的溫度報(bào)警觸發(fā)器(包括上限溫度觸發(fā)器TH和下限溫度觸發(fā)器TL)。可通過軟件程序?qū)懭朐O(shè)定用戶所要求的報(bào)警上下限溫度值。3) 高速暫存器??梢栽O(shè)置DS18B20溫度轉(zhuǎn)換的精度。DS18B20出廠時(shí)該位被設(shè)置為0,用戶要去改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率,如圖1.4。DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的E2PRAM。高速暫存RAM
23、的結(jié)構(gòu)為8字節(jié)的存儲(chǔ)器, 表32 DS18B20高速暫存器結(jié)構(gòu)序號(hào)寄存器名稱作用0溫度低字節(jié)以16位補(bǔ)碼形式存放1溫度高字節(jié)62TH/用戶字節(jié)1存放溫度上限值3HL/用戶字節(jié)2 存放溫度下限值4、5保留字節(jié)1、26計(jì)數(shù)器余值7計(jì)數(shù)器8CRC值此外,DS18B20內(nèi)部還包括寄生電源、電源檢測、存儲(chǔ)控制邏輯、8位循環(huán)冗余碼生成器(CRC)等部分。DS18B20有兩種供電方式。如圖3-2所示:圖(a)是由外電源供電,圖(b)是I/O口總線和寄生電容配合供電。DS18B20寄生電源由兩個(gè)二極管和寄生電容構(gòu)成。電源檢測電路用于判定供電方式。寄生電源供電時(shí),電源端與接地端并聯(lián)接地,器件從總線上獲取電源。在
24、I/O線呈低電平時(shí),改由寄生電容上的電壓繼續(xù)向器件供電。采用寄生電源有兩個(gè)優(yōu)點(diǎn):一是檢測遠(yuǎn)程溫度是無需本地電源;二是缺少正常電源時(shí)也能讀ROM。若采用外部電源,則通過二極管向器件供電。MCU(單片機(jī))P1.1MCU(單片機(jī))P1.1UDDDS18B20DS18B20I/OI/OGND UDDGND圖(a)使用外部電源供電圖 (b)使用寄生電源供電圖3-2 DS18B20與微處理器的硬件連接方式由表3-3可見,分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可
25、用來檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2字節(jié)。單片機(jī)可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625LSB形式表示。當(dāng)符號(hào)位S0時(shí),表示測得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位S1時(shí),表示測得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。 表2-4是一部分溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)。表33 DS18B20溫度轉(zhuǎn)換時(shí)間表R1R0分辨率/位溫度最大轉(zhuǎn)向時(shí)間/ms00993.750110187.5101137
26、51112750表34一部分溫度對(duì)應(yīng)值表溫度/數(shù)字輸出(二進(jìn)制)數(shù)字輸出(十六進(jìn)制)+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地址位序列號(hào),在出廠前已寫入片內(nèi)ROM 中。主機(jī)在進(jìn)入
27、操作程序前必須用讀ROM(33H)命令將該DSl8B20的序列號(hào)讀出。程序可以先跳過ROM,啟動(dòng)所有DSl8B20進(jìn)行溫度變換,之后通過匹配ROM,再逐一地讀回每個(gè)DSl8B20的溫度數(shù)據(jù)。DS18B20的測溫原理如圖3-3所示。低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 所對(duì)應(yīng)的基數(shù)分別置
28、入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55 所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí)溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測溫度。圖2.3中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,提高測量準(zhǔn)確制度。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值。停止置位/清零減法計(jì)數(shù)器1斜坡累加器減到
29、0減法計(jì)數(shù)器2預(yù) 置低溫度系數(shù)振 蕩 器高溫度系數(shù)振 蕩 器計(jì)數(shù)比較器預(yù) 置溫度寄存器減到0加1 圖3-3 DS18B20的測溫原理圖3.3 DS18B20與微處理器的接口技術(shù)1. DS18B20與單片機(jī)的鏈接有兩種方法,如圖3-2所示:一種是VDD接外部電源,GND接地,I/O與單片機(jī)的任一條I/O線相連;另一種是用寄生電源供電,此時(shí)VDD、GND并聯(lián)接地,I/O接單片機(jī)的任一條I/O。無論是內(nèi)部寄生電源供電還是外部供電,I/O接口都要接漏極開路或三態(tài)輸出以提高負(fù)載驅(qū)動(dòng)能力。本設(shè)計(jì)采用寄生電源供電模式,I/O口接5K左右的上拉電阻。實(shí)際應(yīng)用中,DS18B20可以距單片機(jī)150m遠(yuǎn),測量數(shù)據(jù)不
30、會(huì)產(chǎn)生誤差,在同一條數(shù)據(jù)總線上可以并接許多片DS18B20實(shí)現(xiàn)多路溫度采集。2. DS18B20控制命令(1) 暫存器命令 訪問DS18B20的暫存器共有6條命令,如表3-5所示。表3-5 DS18B20暫存器命令指令約定代碼操作說明溫度變換44H啟動(dòng)DS18B20進(jìn)行溫度轉(zhuǎn)換,轉(zhuǎn)換時(shí)間最長為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
31、中的第3,4字節(jié)讀 供 電方 式0B4H讀DS18B20的供電模式,寄生供電時(shí)DS18B20發(fā)送“0”,外接電源供電DS18B20發(fā)送“1”(2)對(duì)ROM的5種操作命令 。如表3-6所示: 讀ROM命令(代碼為33H):該命令允許主CPU讀取DS18B20中的8位產(chǎn)品序列編號(hào)、48位產(chǎn)品序列號(hào)及8位CRC值。該命令值適用于總線上只掛接一片DS18B20,對(duì)總線上掛有多片DS18B20時(shí)不適用。 符合ROM命令(代碼為55H):該指令適合在一條總線上掛接多片DS18B20的情況。具體應(yīng)用是這樣的,主CPU先向總線發(fā)這條命令,然后再發(fā)64位的ROM數(shù)據(jù)。再總線上,只有符合所發(fā)的64位ROM的DS1
32、8B20才有操作權(quán)。這樣就實(shí)現(xiàn)了單總線上的尋址。 尋找ROM命令(代碼為F0H):這條命令用于對(duì)連在單總線上的多個(gè)DS18B20進(jìn)行初始化操作。 跳過ROM命令(代碼為CCH):該命令用于對(duì)總線上的報(bào)警器進(jìn)行尋找,其用法與尋找ROM一樣。 尋找報(bào)警命令(代碼為ECH):該命令用于對(duì)總線上的報(bào)警器件進(jìn)行尋找ROM一樣。表3-6 ROM操作命令指令約定代碼操作說明讀ROM33H讀DS18B20 ROM中的編碼符合ROM55H發(fā)出此命令之后,接著發(fā)出64位ROM編碼,訪問單線總線上與該編碼相對(duì)應(yīng)的DS18B20 使之作出響應(yīng),為下一步對(duì)該DS18B20的讀寫作準(zhǔn)備尋找ROM0F0H用于確定掛接在同一
33、總線上DS18B20的個(gè)數(shù)和識(shí)別64位ROM地址,為操作各器件作好準(zhǔn)備跳過ROM0CCH忽略64位ROM地址,直接向DS18B20發(fā)溫度變換命令,適用于單片工作。尋找報(bào)警命令0ECH執(zhí)行后,只有溫度超過設(shè)定值上限或者下限的片子才做出響應(yīng)3.DS18B20訪問流程CPU對(duì)DS18B20訪問的工作流程是:先對(duì)DS18B20進(jìn)行初始化,再發(fā)ROM操作命令,最后才能對(duì)存儲(chǔ)器及數(shù)據(jù)進(jìn)行操作。DS18B20每一步操作都在嚴(yán)格的工作時(shí)序和通信協(xié)議下進(jìn)行的。例如主機(jī)控制DS18B20完成溫度轉(zhuǎn)換這一過程,根據(jù)DS18B20的通信協(xié)議,須經(jīng)過三個(gè)步驟:第一步是復(fù)位,第二步是發(fā)送ROM命令,第三步是發(fā)送RAM命令
34、。值得注意的是,每一次讀寫之前都要對(duì)它進(jìn)行復(fù)位。下面詳細(xì)說明DS18B20的操作過程。(1) DS18B20的初始化DS18B20的所有操作均從初始化開始,初始化的過程是首先由CPU發(fā)出一個(gè)復(fù)位脈沖,復(fù)位脈沖的時(shí)間為480960us,然后由叢屬器件發(fā)出應(yīng)答脈沖。初始化是主CPU發(fā)出一個(gè)復(fù)位信號(hào),將數(shù)據(jù)總線上的所有DS18B20復(fù)位,然后釋放總線,該總線位接收狀態(tài)。由于接有上拉電阻,在釋放總線是有15 60us的時(shí)間間隙,在此之后的60240us時(shí)間內(nèi),如果CPU檢測到總線為低電平的話,則說明DS18B20初始化完成。DS18B20初始化時(shí)序波形如圖所示:圖3-4 DS18B20復(fù)位初始化時(shí)序圖
35、 (2) 發(fā)送ROM命令ROM的操作命令位8位二進(jìn)制數(shù),CPU對(duì)ROM的操作有讀ROM命令、符合ROM命令、搜索ROM命令、跳過ROM命令、報(bào)警搜索命令共5種。其中符合ROM命令是用來識(shí)別連在總線是的DS18B20芯片,其過程是主CPU發(fā)出符合ROM命令(代碼位55H)后,接著送出64位的ROM數(shù)據(jù)序列,從而使主CPU實(shí)現(xiàn)對(duì)單總線上的特定DS18B20進(jìn)行尋址,只有與64位序列嚴(yán)格相符的DS18B20才能對(duì)后續(xù)的操作發(fā)出響應(yīng),符合ROM命令只對(duì)同時(shí)掛在總線上的多片DS18B20適用。讀寫ROM的操作時(shí)序如圖所示。 圖(a)DS18B20寫時(shí)序圖(b)DS18B20讀時(shí)序圖3-5 DS18B20
36、操作時(shí)序圖(3) 發(fā)送RAM命令RAM命令是暫存器操作命令,共有6條,在前面已經(jīng)列出,其功能是實(shí)現(xiàn)溫度的轉(zhuǎn)換、讀/寫、復(fù)制暫存器的內(nèi)容等功能。在具體的設(shè)計(jì)過程中,訪問DS18B20也是通過程序設(shè)計(jì)來實(shí)現(xiàn)的。具體程序可以按照上面的工作時(shí)序圖和命令的相應(yīng)格式進(jìn)行程序設(shè)計(jì)。 另外,由于DS18B20單線通信功能是分時(shí)完成的,他有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。3.4DS18B20的測溫流程初始化DS18B20跳過ROM匹配溫度變換延時(shí)1S跳過ROM匹配讀暫存器轉(zhuǎn)換
37、成顯示碼數(shù)碼管顯示圖36 DS18B20測溫流程3.5系統(tǒng)硬件電路設(shè)計(jì)3.5.1設(shè)計(jì)原則DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)DS18B20的1腳接地,2腳作為信號(hào)線,3腳接電源。另一種是寄生電源供電方式,如圖3.1所示單片機(jī)端口接單線總線,為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)MOSFET管來完成對(duì)總線的上拉。本設(shè)計(jì)采用電源供電方式, P1.1口接單線總線為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)MOSFET管和89S51的P1.0來完成對(duì)總線的上拉。當(dāng)DS18B20處于寫存儲(chǔ)器操作和溫度A/D變換操作時(shí),總線上必須有強(qiáng)的
38、上拉,上拉開啟時(shí)間最大為10 s。采用寄生電源供電方式是VDD和GND端均接地。由于單線制只有一根線,因此發(fā)送接收口必須是三狀態(tài)的。主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過3個(gè)步驟: 初始化; ROM操作指令; 存儲(chǔ)器操作指令。3.5.2設(shè)計(jì)中的各種電路(1)單片機(jī)電路 圖3-7單片機(jī)電路(2)晶振電路單片機(jī)XIAL1和XIAL2分別接30PF的電容,中間再并個(gè)12MHZ的晶振,形成單片機(jī)的晶振電路如圖3-8所示。圖3-8 晶振電路(3)數(shù)碼管顯示電路 用了7段共陰數(shù)碼管掃描電路,節(jié)約了單片機(jī)的輸出端口,便于程序的編寫。P0口接8個(gè)2.2K的排阻然后接到3個(gè)LED數(shù)碼管顯示電路上。P2.0P
39、2.2 三個(gè)I/O口分別接4.7K的電阻作數(shù)碼管的共陰極如圖3-9所示。圖3-9 三位數(shù)碼管顯示電路(4)多路溫度采集電路如圖3-10所示。P1.0和一個(gè)MOSFET管連接來完成對(duì)溫度傳感器DS18B20總線的上拉,MOSFET一端接+5v電源,另一端接在傳感器的總線上來對(duì)傳感器提供電源。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)單片機(jī)復(fù)位電路圖3-12 單片機(jī)復(fù)位
40、電路(7)蜂鳴器報(bào)警電路 P2.5接蜂鳴器電路如圖3-13所示:圖3-13 蜂鳴器報(bào)警電路(8)溫度設(shè)置按鍵電路P3口中P3.5、P3.6、P3.7接到按鍵電路如圖3-14所示:圖3-14 按鍵電路(9)其他引腳 ALE引腳懸空,復(fù)位引腳接到復(fù)位電路、VCC接電源、VSS接地、EA接電源。第四章 系統(tǒng)軟件設(shè)計(jì)4.1 系統(tǒng)軟件設(shè)計(jì)整體思路一個(gè)應(yīng)用系統(tǒng)要完成各項(xiàng)功能,首先必須有較完善的硬件作保證。同時(shí)還必須得到相應(yīng)設(shè)計(jì)合理的軟件的支持,尤其是微機(jī)應(yīng)用高速發(fā)展的今天,許多由硬件完成的工作,都可通過軟件編程而代替。甚至有些必須采用很復(fù)雜的硬件電路才能完成的工作,用軟件編程有時(shí)會(huì)變得很簡單,如數(shù)字濾波,
41、信號(hào)處理等。因此充分利用其內(nèi)部豐富的硬件資源和軟件資源,采用與S51系列單片機(jī)相對(duì)應(yīng)的51匯編語言和結(jié)構(gòu)化程序設(shè)計(jì)方法進(jìn)行軟件編程。程序設(shè)計(jì)語言有三種:機(jī)器語言、匯編語言和高級(jí)語言。機(jī)器語言是機(jī)器唯一能“懂”的語言,用匯編語言或高級(jí)語言編寫的程序(稱為源程序)最終都必須翻譯成機(jī)器語言的程序(成為目標(biāo)程序),計(jì)算機(jī)才能“看懂”,然后逐一執(zhí)行。高級(jí)語言是面向問題和計(jì)算過程的語言,它可通過于各種不同的計(jì)算機(jī),用戶編程時(shí)不必仔細(xì)了解所用的計(jì)算機(jī)的具體性能與指令系統(tǒng),而且語句的功能強(qiáng),常常一個(gè)語句已相當(dāng)于很多條計(jì)算機(jī)指令,于是用高級(jí)語言編制程序的速度比較快,也便于學(xué)習(xí)和交流,但是本系統(tǒng)卻選用了匯編語言。
42、原因在于,本系統(tǒng)是編制程序工作量不大、規(guī)模較小的單片機(jī)微控制系統(tǒng),使用匯編語言可以不用像高級(jí)語言那樣占用較多的存儲(chǔ)空間,適合于存儲(chǔ)容量較小的系統(tǒng)。同時(shí),本系統(tǒng)對(duì)位處理要求很高,需要解決大量的邏輯控制問題。MCS51指令系統(tǒng)的指令長度較短,它在存儲(chǔ)空間和執(zhí)行時(shí)間方面具有較高的效率,編成的程序占用內(nèi)存單元少,執(zhí)行也非常的快捷,與本系統(tǒng)的應(yīng)用要求很適合。而且MCS51指令系統(tǒng)有豐富的位操作(或稱位處理)指令,可以形成一個(gè)相當(dāng)完整的位操作指令子集,這是MCS51指令系統(tǒng)主要的優(yōu)點(diǎn)之一。對(duì)于要求反應(yīng)靈敏與控制及時(shí)的工控、檢測等實(shí)時(shí)控制系統(tǒng)以及要求體積小、系統(tǒng)小的許多“電腦化”產(chǎn)品,可以充分體現(xiàn)出匯編語言
43、簡明、整齊、執(zhí)行時(shí)間短和易于使用的特點(diǎn)。本裝置的軟件包括主程序、讀出溫度子程序、復(fù)位應(yīng)答子程序、寫入子程序、以及有關(guān)DS18B20的程序(初始化子程序、寫程序和讀程序)4.2 系統(tǒng)軟件設(shè)計(jì)的一般原則在單片機(jī)應(yīng)用開發(fā)中代碼使用效率、單片機(jī)的抗干擾性以及軟件可靠性是實(shí)際工程設(shè)計(jì)的重點(diǎn)。 單片機(jī)應(yīng)用軟件系統(tǒng)設(shè)計(jì)包括功能模塊劃分、程序流程確立、模塊接口設(shè)計(jì)以及程序代碼編寫。我們依據(jù)系統(tǒng)的功能要求,將整體軟件系統(tǒng)分割成若干個(gè)獨(dú)立的程序模塊。這些程序模塊可以是幾條語句的集合、功能函數(shù)或程序文件。隨后,根據(jù)個(gè)程序模塊的實(shí)現(xiàn)功能寫出流程,一般需要寫出具體的實(shí)現(xiàn)功能描述。程序代碼通常采用匯編語言或高級(jí)語言(C語
44、言)編寫。 本課題采用C語言編程,在此必須注意以下問題:(1)提高程序代碼效率必須熟悉當(dāng)前使用的C語言編譯器,試驗(yàn)每條C語言編譯以后對(duì)應(yīng)的匯編語言的語句行數(shù),這樣就可以很明確的知道代碼效率。(2)減少程序錯(cuò)誤我們?cè)诰帉懗绦驎r(shí),要注重考慮如下方面。1物理參數(shù) 2資源參數(shù) 3應(yīng)用參數(shù) 4過程參數(shù)(3)單片機(jī)的抗干擾性防止干擾最有效的方法是去除干擾源、隔離干擾路徑。單片機(jī)干擾最常見的現(xiàn)象就是復(fù)位,導(dǎo)致程序運(yùn)行異常。設(shè)計(jì)系統(tǒng)是一般需要添加一個(gè)“看門狗”監(jiān)控模塊,在系統(tǒng)出現(xiàn)不可逆轉(zhuǎn)的干擾時(shí),監(jiān)控模塊將重啟系統(tǒng),并從斷點(diǎn)處繼續(xù)執(zhí)行。(4)系統(tǒng)的可靠性1要測試單片機(jī)軟件功能的完善性。2上電、掉電測試。3系統(tǒng)
45、耗損測試。4. 3系統(tǒng)軟件設(shè)計(jì)的一般步驟系統(tǒng)進(jìn)行軟件設(shè)計(jì)時(shí),先要對(duì)本課題硬件有一個(gè)熟練的掌握,知道系統(tǒng)的組成,數(shù)據(jù)的傳輸,信號(hào)是如何被控制的,以及信號(hào)的顯示。然后進(jìn)行軟件設(shè)計(jì)時(shí),先搞清楚各個(gè)部分的子程序及他們的流程圖,然后進(jìn)行C語言編程,最后將它們系統(tǒng)的編程4.4系統(tǒng)程序流程圖系統(tǒng)程序主要包括主程序,讀出溫度子程序,復(fù)位應(yīng)答子程序,寫入子程序等。(1) 主程序 主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度測量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖4-1所示。通過調(diào)用讀溫度子程序把存入內(nèi)存儲(chǔ)中的整數(shù)部分與小數(shù)部分分開存放在不同
46、的兩個(gè)單元中,然后通過調(diào)用顯示子程序顯示出來。圖4-1 主程序流程圖(2)讀出溫度子程序 讀出溫度子程序流程圖如圖4-2所示。其主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。 DS18B20的各個(gè)命令對(duì)時(shí)序的要求特別嚴(yán)格,所以必須按照所要求的時(shí)序才能達(dá)到預(yù)期的目的,同時(shí),要注意讀進(jìn)來的是高位在后低位在前,共有12位數(shù),小數(shù)4位,整數(shù)7位,還有一位符號(hào)位。DS18B20復(fù)位、應(yīng)答子程序跳過ROM匹配命令寫入子程序溫度轉(zhuǎn)換命令寫入子程序顯示子程序(延時(shí))DS18B20復(fù)位、應(yīng)答子程序跳過ROM匹配命令寫入子程序讀溫度命令子程序終 止 圖4-2 讀出溫度子
47、程序(3)復(fù)位、應(yīng)答子程序開始P1.0口清0延時(shí)537USP1.0口置1否50US是否有低電平是標(biāo)志位置1P1.0口置1有234US低電平標(biāo)志位置1否是 終止圖4-3復(fù)位、應(yīng)答子程序(4)寫入子程序開始進(jìn)位C清0R2是否為0P1.0置 0延時(shí)46US帶進(jìn)位右移延時(shí)12USP1.0清0結(jié)束圖4-4 寫入子程序(5)系統(tǒng)總的流程圖開 始初始化DS18B20顯示當(dāng)前溫度判斷當(dāng)前溫度值超過設(shè)定溫度上限啟動(dòng)風(fēng)扇降低溫度紅燈亮設(shè)定溫度上、下限啟動(dòng)電熱爐升高溫度是否低于設(shè)定溫度下限是綠燈亮否圖4-5 系統(tǒng)總的流程圖第五章 小結(jié)本she1利用Proteus與KEIL C51對(duì)單片機(jī)多點(diǎn)溫度測量系統(tǒng)進(jìn)行了仿真設(shè)計(jì)從本文結(jié)果可以看出,利用Proteus進(jìn)行單片機(jī)系統(tǒng)的仿真設(shè)計(jì)可以極大地簡化單片機(jī)程序在目標(biāo)硬件上的調(diào)試工作,大幅度節(jié)省制作電路板的時(shí)間,對(duì)于提高產(chǎn)品的開發(fā)效率、降低開發(fā)成本等有重要作用 硬件電路的簡單是以軟件的復(fù)雜為代價(jià)的,所以在程序編寫和調(diào)試的過程中稍一粗心就會(huì)出現(xiàn)錯(cuò)誤,包括時(shí)間延時(shí)不夠,設(shè)置參數(shù)的類型有誤,按鍵子程序放置位置不妥等錯(cuò)誤。本程序經(jīng)過反復(fù)的調(diào)試修改,雖然能達(dá)到預(yù)期的基本目標(biāo),但是還有很多地方需要完善,如開始仿真時(shí)機(jī)器會(huì)掃描錯(cuò)誤代碼而使電路報(bào)警,報(bào)警的同時(shí)可以使數(shù)碼管閃爍,還可以利用剩余的I/O口掛接
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024銅棒工業(yè)應(yīng)用技術(shù)培訓(xùn)合同模板3篇
- 二零二五版汽車維修后舊件買賣合同3篇
- 2025年度海上船舶船員勞務(wù)派遣服務(wù)勞動(dòng)合同3篇
- 邛崍專業(yè)保潔合同范本
- 2025年度高端建筑材料采購合同質(zhì)量保障與驗(yàn)收3篇
- 2024瀝青混凝土路面工程
- 2025年度智能草花種苗購銷合同模板3篇
- 2025年度咖啡館餐廳承包管理合同3篇
- 2024物業(yè)清潔與綠化服務(wù)合同詳細(xì)
- 2024版行政崗位勞動(dòng)合同樣本
- 2025年度版權(quán)授權(quán)協(xié)議:游戲角色形象設(shè)計(jì)與授權(quán)使用3篇
- 2024年08月云南省農(nóng)村信用社秋季校園招考750名工作人員筆試歷年參考題庫附帶答案詳解
- 防詐騙安全知識(shí)培訓(xùn)課件
- 心肺復(fù)蘇課件2024
- 2024年股東股權(quán)繼承轉(zhuǎn)讓協(xié)議3篇
- 2024-2025學(xué)年江蘇省南京市高二上冊(cè)期末數(shù)學(xué)檢測試卷(含解析)
- 四川省名校2025屆高三第二次模擬考試英語試卷含解析
- 《城鎮(zhèn)燃?xì)忸I(lǐng)域重大隱患判定指導(dǎo)手冊(cè)》專題培訓(xùn)
- 湖南財(cái)政經(jīng)濟(jì)學(xué)院專升本管理學(xué)真題
- 考研有機(jī)化學(xué)重點(diǎn)
- 全國身份證前六位、區(qū)號(hào)、郵編-編碼大全
評(píng)論
0/150
提交評(píng)論