基于單片機(jī)的溫度傳感器_第1頁(yè)
基于單片機(jī)的溫度傳感器_第2頁(yè)
基于單片機(jī)的溫度傳感器_第3頁(yè)
基于單片機(jī)的溫度傳感器_第4頁(yè)
基于單片機(jī)的溫度傳感器_第5頁(yè)
已閱讀5頁(yè),還剩22頁(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、目 錄0.前言11. 總體方案設(shè)計(jì)22. 硬件電路的設(shè)計(jì)32.1 溫度傳感器32.1.1溫度傳感器選用細(xì)則32.1.2 溫度傳感器DS18B2042.1 單片機(jī)片子72.2 顯示電路設(shè)計(jì)93 軟件設(shè)計(jì)113.1主程序方案113.2 各模塊子程序113.2.1 溫度采集程序113.2.2 顯示程序144.聯(lián)合調(diào)試155. 課設(shè)小結(jié)及進(jìn)一步設(shè)想16參考文獻(xiàn)16課設(shè)體會(huì)17附錄I 元件清單18附錄II 整體電路圖19附錄III 源程序清單20基于單片機(jī)的溫度采集系統(tǒng)設(shè)計(jì)(DS18B20)邢帥 沈陽(yáng)航空航天大學(xué)自動(dòng)化學(xué)院摘要:隨著社會(huì)的進(jìn)步和工業(yè)技術(shù)的發(fā)展,人們?cè)絹?lái)越重視溫度因素,許多產(chǎn)品對(duì)溫度范圍要

2、求嚴(yán)格,而目前市場(chǎng)上普遍存在的溫度檢測(cè)儀器大都是單點(diǎn)測(cè)量,同時(shí)有溫度信息傳遞不及時(shí)、精度不夠的缺點(diǎn),不利于工業(yè)控制者根據(jù)溫度變化及時(shí)做出決定。在這樣的形式下,開(kāi)發(fā)一種能夠同時(shí)測(cè)量多點(diǎn),并且實(shí)時(shí)性高、精度高,能夠綜合處理多點(diǎn)溫度信息的測(cè)量系統(tǒng)就很有必要。計(jì)算機(jī)技術(shù)特別是單片機(jī)技術(shù)的發(fā)展,單片機(jī)的應(yīng)用領(lǐng)域越來(lái)越廣泛,單片機(jī)在工業(yè)控制、數(shù)據(jù)采集以及儀器儀表自動(dòng)化等許多領(lǐng)域都起著十分重要的作用。但在實(shí)際應(yīng)用中,在要求響應(yīng)速度快、實(shí)時(shí)性強(qiáng)、控制量多的應(yīng)用場(chǎng)合,單個(gè)單片機(jī)往往難以勝任。本課題以AT89C51單片機(jī)系統(tǒng)為核心,能對(duì)多點(diǎn)的溫度進(jìn)行實(shí)時(shí)巡檢。DS18B20是一種可組網(wǎng)的高精度數(shù)字式溫度傳感器,由

3、于其具有單總線的獨(dú)特優(yōu)點(diǎn),可以使用戶輕松地組建起傳感器網(wǎng)絡(luò),并可使多點(diǎn)溫度測(cè)量電路變得簡(jiǎn)單、可靠。本文結(jié)合實(shí)際使用經(jīng)驗(yàn),介紹了DS18B20數(shù)字溫度傳感器在單片機(jī)下的硬件連接及軟件編程,并給出了軟件流程圖。關(guān)鍵詞:溫度測(cè)量;DS18B20溫度傳感器;單片機(jī)0. 前言在人類的生活環(huán)境中,溫度扮演著極其重要的角色。無(wú)論你生活在哪里,從事什么工作,無(wú)時(shí)無(wú)刻不在與溫度打著交道。自18世紀(jì)工業(yè)革命以來(lái),工業(yè)發(fā)展對(duì)是否能掌握溫度有著絕對(duì)的聯(lián)系。在冶金、鋼鐵、石化、水泥、玻璃、醫(yī)藥等等行業(yè),可以說(shuō)幾乎80%的工業(yè)部門(mén)都不得不考慮著溫度的因素。進(jìn)入21世紀(jì)后,溫度傳感器正朝著高精度、多功能、總線標(biāo)準(zhǔn)化、高可靠

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

5、題提出了一種可滿足要求、可擴(kuò)展的并且性價(jià)比高的單片機(jī)多路測(cè)溫系統(tǒng)。隨著科學(xué)技術(shù)的不斷進(jìn)步與發(fā)展,溫度控制在工業(yè)控制、電子測(cè)溫計(jì)、醫(yī)療儀器、家用電器等各種溫度控制系統(tǒng)中廣泛應(yīng)用,且由過(guò)去的單點(diǎn)測(cè)量向多測(cè)量發(fā)展。目前溫度傳感器有模擬和數(shù)字兩類傳感器,為了克服模擬傳感器與微處理器接口時(shí)需要信號(hào)調(diào)理電路和AD轉(zhuǎn)換器的弊端,大多數(shù)多點(diǎn)測(cè)溫控制系統(tǒng)采用數(shù)字傳感器,并大大方便了系統(tǒng)的設(shè)計(jì)。比較有代表性的數(shù)字溫度傳感器有DS18B20、MAX6575、DS1722、MAX6635、SMT160-30等。在傳統(tǒng)的溫度測(cè)量系統(tǒng)設(shè)計(jì)中,往往采用模擬技術(shù)進(jìn)行設(shè)計(jì),這樣就不可避免地遇到諸如引線誤差補(bǔ)償、多點(diǎn)測(cè)量中的切換

6、誤差和信號(hào)調(diào)理電路的誤差等問(wèn)題;而其中某一環(huán)節(jié)處理不當(dāng),就可能造成整個(gè)系統(tǒng)性能的下降。隨著現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,特別是大規(guī)模集成電路設(shè)計(jì)技術(shù)的發(fā)展,微型化、集成化、數(shù)字化正成為傳感器發(fā)展的一個(gè)重要方向。美國(guó)Dallas半導(dǎo)體公司推出的數(shù)字溫度傳感器DS18B20,具有獨(dú)特的單總線接口,僅需要占用一個(gè)通用I/0端口即可完成與微處理器的通信;在-10+85 溫度范圍內(nèi)具有05 精度;用戶可編程設(shè)定912位的分辨率。以上特性使得DS18B20非常適用于構(gòu)建高精度、多點(diǎn)溫度測(cè)量系統(tǒng)。1. 總體方案設(shè)計(jì)溫度檢測(cè)系統(tǒng)有則共同的特點(diǎn):測(cè)量點(diǎn)多、環(huán)境復(fù)雜、布線分散、現(xiàn)場(chǎng)離監(jiān)控室遠(yuǎn)等。若采用一般溫度傳感器采集

7、溫度信號(hào),則需要設(shè)計(jì)信號(hào)調(diào)理電路、A/D 轉(zhuǎn)換及相應(yīng)的接口電路,才能把傳感器輸出的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)送到計(jì)算機(jī)去處理。這樣,由于各種因素會(huì)造成檢測(cè)系統(tǒng)較大的偏差;又因?yàn)闄z測(cè)環(huán)境復(fù)雜、測(cè)量點(diǎn)多、信號(hào)傳輸距離遠(yuǎn)及各種干擾的影響,會(huì)使檢測(cè)系統(tǒng)的穩(wěn)定性和可靠性下降 。而為了獲得較高的測(cè)溫精度,就必須采用措施解決由長(zhǎng)線傳輸,多點(diǎn)測(cè)量切換及放大電路零點(diǎn)漂移等造成的誤差補(bǔ)償問(wèn)題。采用數(shù)字溫度芯片DS18B20測(cè)量溫度,輸出信號(hào)全數(shù)字化。DS18B20是一種可組網(wǎng)的高精度數(shù)字式溫度傳感器,由于其具有單總線的獨(dú)特優(yōu)點(diǎn),可以使用戶輕松地組建起傳感器網(wǎng)絡(luò),并可使多點(diǎn)溫度測(cè)量電路變得簡(jiǎn)單、可靠。便于單片機(jī)處理及控

8、制,省去傳統(tǒng)的測(cè)溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測(cè)溫元件,此元件線形較好。在0100攝氏度時(shí),最大線形偏差小于1攝氏度。DS18B20的最大特點(diǎn)之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)DS1820和微控制器AT89C51構(gòu)成的溫度測(cè)量裝置,它直接輸出溫度的數(shù)字信號(hào),可直接與計(jì)算機(jī)連接。這樣,測(cè)溫系統(tǒng)的結(jié)構(gòu)就比較簡(jiǎn)單,體積也不大,且由于AT89C51可以帶多個(gè)DSB1820,因此可以非常容易實(shí)現(xiàn)多點(diǎn)測(cè)量.輕松的組建傳感器網(wǎng)絡(luò)。采用溫度芯片DS18B20測(cè)量溫度,可以體現(xiàn)系統(tǒng)芯片化這個(gè)趨勢(shì)。部分功能電路的集成,使總體電路更簡(jiǎn)潔,搭建電路和焊接電路時(shí)更快。而且,集成塊的

9、使用,有效地避免外界的干擾,提高測(cè)量電路的精確度。所以集成芯片的使用將成為電路發(fā)展的一種趨勢(shì)。本方案應(yīng)用這一溫度芯片,也是順應(yīng)這一趨勢(shì)。其原理框圖為圖 1被 測(cè)數(shù) 值DS18B20傳感器51單片機(jī)LED顯示器圖1溫度采集的結(jié)構(gòu)框圖2. 硬件電路的設(shè)計(jì)本課題研究的多點(diǎn)測(cè)溫系統(tǒng)是以單片機(jī)和單總線數(shù)字溫度傳感器DS18B20為核心,充分利用單片機(jī)優(yōu)越的內(nèi)部和外部資源及數(shù)字溫度傳感器DS18B20的優(yōu)越性能構(gòu)成一個(gè)完備的測(cè)溫系統(tǒng),實(shí)現(xiàn)對(duì)溫度的多點(diǎn)測(cè)量。整個(gè)系統(tǒng)由單片機(jī)控制,能夠接收傳感器的溫度數(shù)據(jù)并顯示出來(lái),可以從鍵盤(pán)輸入命令,系統(tǒng)根據(jù)命令,選擇對(duì)應(yīng)的溫度傳感器,并由驅(qū)動(dòng)電路驅(qū)動(dòng)溫度顯示。本課題設(shè)計(jì)了

10、一種合理、可行的單片機(jī)監(jiān)控軟件,完成測(cè)量和顯示的任務(wù)。由于單片機(jī)具有強(qiáng)大的運(yùn)算和控制功能,使得整個(gè)系統(tǒng)具有模塊化、硬件電路簡(jiǎn)單以及操作方便等優(yōu)點(diǎn)。本課題的整個(gè)系統(tǒng)是由單片機(jī)、顯示電路、鍵盤(pán)電路、驅(qū)動(dòng)電路,串口通信等構(gòu)成。2.1 溫度傳感器2.1.1溫度傳感器選用細(xì)則現(xiàn)代傳感器在原理與結(jié)構(gòu)上千差萬(wàn)別,如何根據(jù)具體的測(cè)量目的、測(cè)量對(duì)象以及測(cè)量環(huán)境合理地選用傳感器,是在進(jìn)行某個(gè)量的測(cè)量時(shí)首先要解決的題。當(dāng)傳感器確定之后,與之相配套的測(cè)量方法和測(cè)量設(shè)備也就可以確定了。測(cè)量結(jié)果的成敗,在很大程度上取決于傳感器的選用是否合理。(1) 根據(jù)測(cè)量對(duì)象與測(cè)量環(huán)境確定傳感器的類型要進(jìn)行個(gè)具體的測(cè)量工作,首先要考慮

11、采用何種原理的傳感器,這需要分析多方面的因素之后才能確定。因?yàn)?,即使是測(cè)量同一物理量,也有多種原理的傳感器可供選用,哪一種原理的傳感器更為合適,則需要根據(jù)被測(cè)量的特點(diǎn)和傳感器的使用條件考慮以下一些具體問(wèn)題:量程的大??;被測(cè)位置對(duì)傳感器體積的要求;測(cè)量方式為接觸式還是非接觸式;信號(hào)的引出方法,有線或是非接觸測(cè)量;傳感器的來(lái)源,國(guó)產(chǎn)還是進(jìn)口,價(jià)格能否承受,還是自行研制。(2)靈敏度的選擇通常,在傳感器的線性范圍內(nèi),希望傳感器的靈敏度越高越好。因?yàn)橹挥徐`敏度高時(shí),與被測(cè)量變化對(duì)應(yīng)的輸出信號(hào)的值才比較大,有利于信號(hào)處理。但要注意的是,傳感器的靈敏度高,與被測(cè)量無(wú)關(guān)的外界噪聲也容易混入,也會(huì)被放大系統(tǒng)放

12、大,影響測(cè)量精度。因此,要求傳感器本身應(yīng)具有較高的信噪比,盡員減少?gòu)耐饨缫氲拇當(dāng)_信號(hào)(3)線性范圍傳感器的線形范圍是指輸出與輸入成正比的范圍。以理論上講,在此范圍內(nèi),靈敏度保持定值。傳感器的線性范圍越寬,則其量程越大,并且能保證一定的測(cè)量精度。在選擇傳感器時(shí),當(dāng)傳感器的種類確定以后首先要看其量程是否滿足要求。但實(shí)際上,任何傳感器都不能保證絕對(duì)的線性,其線性度也是相對(duì)的。當(dāng)所要求測(cè)量精度比較低時(shí),在一定的范圍內(nèi),可將非線性誤差較小的傳感器近似看作線性的,這會(huì)給測(cè)量帶來(lái)極大的方便。(4) 穩(wěn)定性傳感器使用一段時(shí)間后,其性能保持不變化的能力稱為穩(wěn)定性。影響傳感器長(zhǎng)期穩(wěn)定性的因素除傳感器本身結(jié)構(gòu)外,

13、主要是傳感器的使用環(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ù)拇胧?,減小環(huán)境的影響。2.1.2 溫度傳感器DS18B20DS18B20型單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器。全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式。其可以分別9375ms和750ms內(nèi)完成9位和12位的數(shù)字量,最大分辨率為00625 , 而且從DS18B20讀出或?qū)?/p>

14、入DS18B20的信息僅需要一根口線(單線接口)讀寫(xiě)。(1)DS18B20的性能特點(diǎn)單線數(shù)字化智能集成溫度的傳感器,其特點(diǎn)是: DSI8B20可將被測(cè)溫度直接轉(zhuǎn)換成計(jì)算機(jī)能識(shí)別的數(shù)字信號(hào)輸出,溫度值不需要經(jīng)電橋電路先獲取電壓模擬量,再經(jīng)信號(hào)放大和AD轉(zhuǎn)換成數(shù)字信號(hào),解決了傳統(tǒng)溫度傳感器存在的因參數(shù)不一致性,在更換傳感器時(shí)會(huì)因放大器零漂而必須對(duì)電路進(jìn)行重新調(diào)試的問(wèn)題,使用方便。 DS18B20能提供9到12位溫度讀數(shù),精度高,且其信息傳輸只需1根信號(hào)線,與計(jì)算機(jī)接口十分簡(jiǎn)便,讀寫(xiě)及溫度變換的功率來(lái)自于數(shù)據(jù)線而不需額外的電源。 每一個(gè)DS18B20都有一個(gè)惟一的序列號(hào),這就允許多個(gè)DS18B20連

15、接到同一總線上。尤其適合于多點(diǎn)溫度檢測(cè)系統(tǒng)。 負(fù)壓特性:當(dāng)電源極性接反時(shí),DS18B20雖然不能正常工作,但不會(huì)因發(fā)熱而燒毀 正是由于具有以上特點(diǎn),DS18B20在解決各種誤差、可靠性和實(shí)現(xiàn)系統(tǒng)優(yōu)化等方面與傳統(tǒng)各種溫度傳感器相比,有無(wú)可比擬的優(yōu)越性,因而廣泛應(yīng)用于過(guò)程控制、環(huán)境控制、建筑物、機(jī)器設(shè)備中的溫度檢測(cè)。其外形和管腳如下圖:圖2 DS18B20外部形狀及管腳圖(2)DS18B20與單片機(jī)的典型接口設(shè)計(jì)DS18B20測(cè)溫系統(tǒng)具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn)。Dsl8B20與單片機(jī)的硬件連接有兩種方法:一是Vcc接外部電源,GND接地,I/0與單片機(jī)的I/0線相連;

16、二是用寄生電源供電,此時(shí),UDD和GND接地,I/0接單片機(jī)I/0。無(wú)論是哪種供電方式,I/0口線都要接47k Q左右的上拉電阻。圖4給出了DSl8B20與微處理器的典型連接。 DS18B20寄生電源供電方式:如下面圖7所示,在寄生電源供電方式下,DS18B20從單線信號(hào)線上汲取能量:在信號(hào)線DQ處于高電平期間把能量?jī)?chǔ)存在內(nèi)部電容里,在信號(hào)線處于低電平期間消耗電容上的電能工作,直到高電平到來(lái)再給寄生電源(電容)充電。獨(dú)特的寄生電源方式有三個(gè)好處:1) 進(jìn)行遠(yuǎn)距離測(cè)溫時(shí),無(wú)需本地電源2) 可以在沒(méi)有常規(guī)電源的條件下讀取ROM3) 電路更加簡(jiǎn)潔,僅用一根I/O口實(shí)現(xiàn)測(cè)溫要想使DS18B20進(jìn)行精確

17、的溫度轉(zhuǎn)換,I/O線必須保證在溫度轉(zhuǎn)換期間提供足夠的能量,由于每個(gè)DS18B20在溫度轉(zhuǎn)換期間工作電流達(dá)到1mA,當(dāng)幾個(gè)溫度傳感器掛在同一根I/O線上進(jìn)行多點(diǎn)測(cè)溫時(shí),只靠4.7K上拉電阻就無(wú)法提供足夠的能量,會(huì)造成無(wú)法轉(zhuǎn)換溫度或溫度誤差極大。因此,該電路只適應(yīng)于單一溫度傳感器測(cè)溫情況下使用,不適宜采用電池供電系統(tǒng)中。并且工作電源VCC必須保證在5V,當(dāng)電源電壓下降時(shí),寄生電源能夠汲取的能量也降低,會(huì)使溫度誤差變大。 DS18B20寄生電源強(qiáng)上拉供電方式:改進(jìn)的寄生電源供電方式如下面圖7所示,為了使DS18B20在動(dòng)態(tài)轉(zhuǎn)換周期中獲得足夠的電流供應(yīng),當(dāng)進(jìn)行溫度轉(zhuǎn)換或拷貝到E2存儲(chǔ)器操作時(shí),用MOS

18、FET把I/O線直接拉到VCC就可提供足夠的電流,在發(fā)出任何涉及到拷貝到E2存儲(chǔ)器或啟動(dòng)溫度轉(zhuǎn)換的指令后,必須在最多10S內(nèi)把I/O線轉(zhuǎn)換到強(qiáng)上拉狀態(tài)。在強(qiáng)上拉方式下可以解決電流供應(yīng)不走的問(wèn)題,因此也適合于多點(diǎn)測(cè)溫應(yīng)用,缺點(diǎn)就是要多占用一根I/O口線進(jìn)行強(qiáng)上拉切換。(3)DS18B20 的內(nèi)部結(jié)構(gòu):主要包括寄生電源、溫度傳感器、64 位激光ROM 單線接口、存放中間數(shù)據(jù)的高速暫存器,用于存儲(chǔ)用戶設(shè)定的溫度上下限值的TH 和TL 觸發(fā)器存儲(chǔ)與控制邏輯、8 位循環(huán)冗余校驗(yàn)碼(CRC)發(fā)生器等七部分。64位光刻ROM 的排列是:開(kāi)始8位是產(chǎn)品類型標(biāo)號(hào),接著的48位是該DS18B20自身的序列號(hào),最后

19、8位是前面56位的循環(huán)冗余校驗(yàn)碼。光刻R0M 的作用是使每一個(gè)DS18B20都各不相同,這可實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。暫存存儲(chǔ)器包含了8個(gè)連續(xù)字節(jié),前2個(gè)字節(jié)是測(cè)得的溫度信息,第1個(gè)字節(jié)的內(nèi)容是溫度的低8位,第2個(gè)字節(jié)是溫度的高8位。第3個(gè)和第4個(gè)字節(jié)是TH、TL的易失性拷貝,第5個(gè)字節(jié)是結(jié)構(gòu)寄存器的易失性拷貝,這3個(gè)字節(jié)的內(nèi)容在每一次上電復(fù)位時(shí)被刷新。第6、7、8個(gè)字節(jié)用于內(nèi)部計(jì)算。第9個(gè)字節(jié)是冗余檢驗(yàn)字節(jié)圖7 DS18B20的內(nèi)部結(jié)構(gòu)(4)DS18B20 的測(cè)溫原理:DS1820測(cè)溫原理如下圖所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給

20、計(jì)數(shù)器1。圖8 DS18B20測(cè)溫原理高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(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重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),DS1 8B20測(cè)量溫度原理停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。 在正常測(cè)溫情況下,DS18B20 的測(cè)溫分辨力為0.5,可采用下述方法獲得高分辨率的溫度測(cè)量結(jié)果:首先用DS18B20

21、提供的讀暫存器指令(BEH)讀出以0.5為分辨率的溫度測(cè)量結(jié)果,然后切去測(cè)量結(jié)果中的最低有效位(LSB),得到所測(cè)實(shí)際溫度的整數(shù)部分TZ,然后再用BEH 指令取計(jì)數(shù)器1 的計(jì)數(shù)剩余值CS 和每度計(jì)數(shù)值CD??紤]到DS18B20測(cè)量溫度的整數(shù)部分以0.25、0.75為進(jìn)位界限的關(guān)系,實(shí)際溫度TS 可用下式計(jì)算:TS=(TZ0.25) (CDCS)/CD。2.1 單片機(jī)片子在當(dāng)今新科學(xué)技術(shù)飛速發(fā)展的年代里,單片機(jī)的應(yīng)用已越來(lái)越受到人們的重視,它被廣泛的應(yīng)用于家電、醫(yī)療、智能儀表、工業(yè)自動(dòng)化等各個(gè)領(lǐng)域。單片機(jī)全稱單片微型計(jì)算機(jī),是將計(jì)算機(jī)的基本部分微型化,使之集成在一塊芯片上的微機(jī)。目前市場(chǎng)上較為流

22、行的單片機(jī)有Intel公司和Philip公司的8051系列單片機(jī)Motorola 公司的M 6800系列單片機(jī)。Intel公司的MCS96系列單片機(jī)以及Microchip 公司的PIC 系列單片機(jī)。片內(nèi)含有CPU、ROM、RAM、并行I/O口、串行I/O口、定時(shí)/計(jì)數(shù)器、A/D、D/A、中斷控制、系統(tǒng)時(shí)鐘及系統(tǒng)總線等。本課題是利用Intel的89c51控制整個(gè)系統(tǒng)。89c51單片機(jī)包含下列幾個(gè)部件:1個(gè)8位CPU、1個(gè)片內(nèi)震蕩器及時(shí)鐘電路、4KB ROM程序存儲(chǔ)器、128B RAM數(shù)據(jù)存儲(chǔ)器、可尋址64KB外部數(shù)據(jù)存儲(chǔ)器和64KB外部程序存儲(chǔ)器的控制電路、32條可編程的I/O線、2個(gè)16位的定

23、時(shí)/計(jì)數(shù)器、1個(gè)可編程全雙工串行接口、5個(gè)中斷源、2個(gè)優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)。本課題運(yùn)用Intel公司的8051進(jìn)行系統(tǒng)控制,運(yùn)用到了復(fù)位電路,時(shí)鐘電路,串口,I/O口。復(fù)位電路:無(wú)論哪種單片機(jī),都會(huì)涉及到復(fù)位電路。如果復(fù)位電路不可靠,在工作中就有可能出現(xiàn)“死機(jī)”,“程序走飛”等現(xiàn)象。所以,一個(gè)單片機(jī)復(fù)位電路的好壞,直接影響到整個(gè)系統(tǒng)工作的可靠性。復(fù)位操作完成單片機(jī)片內(nèi)電路的初始化,使單片機(jī)從一種確定的狀態(tài)開(kāi)始運(yùn)行。當(dāng)89C51單片機(jī)的復(fù)位引腳RST出現(xiàn)5ms以上的高電平時(shí),單片機(jī)就完成了復(fù)位操作,如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài),而無(wú)法執(zhí)行程序,因此要求單片機(jī)復(fù)位后能脫離復(fù)位狀態(tài)

24、。復(fù)位操作通常有上電和開(kāi)關(guān)復(fù)位。上電復(fù)位要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。開(kāi)關(guān)復(fù)位要求在電源接通的條件下,在單片機(jī)運(yùn)行期間,如果發(fā)生死機(jī),用按鈕開(kāi)關(guān)操作使單片機(jī)復(fù)位。圖10 .復(fù)位電路時(shí)鐘電路:89c51單片機(jī)的時(shí)鐘信號(hào)通常用內(nèi)部振蕩和外部振蕩方式。在引腳XTAL1和XTAX2外接晶體振蕩器,就夠成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。晶振通常選用6MHZ、12MHZ或24MHZ。內(nèi)部振蕩器方式如下。如圖11,電容器C1、C2起穩(wěn)定振蕩頻率、快速起振的作用,電容值一般為5-30PF。內(nèi)部振蕩方式所得的時(shí)鐘信號(hào)比較穩(wěn)定。外部振蕩

25、方式是把已有的時(shí)鐘信號(hào)引入單片機(jī)內(nèi),這種方式適于用于用來(lái)使單片機(jī)的時(shí)鐘與外部信號(hào)保持一致。圖11 時(shí)鐘電路串口:串行通信是CPU與外界交換的一種基本方式。單片機(jī)運(yùn)用于數(shù)據(jù)采集或工業(yè)控制時(shí),往往作為前端機(jī)安裝在工作現(xiàn)場(chǎng),遠(yuǎn)離主機(jī),現(xiàn)場(chǎng)數(shù)據(jù)采用串行通信方式主機(jī)并進(jìn)行處理,以降低通信成本,提高通信可靠性。51系列單片機(jī)自身有全雙工的異步通信接口,通過(guò)軟件編程,它可以作為通用異步接受和發(fā)送器使用,也可作為同步移位寄存器。I/O口:計(jì)算機(jī)對(duì)外設(shè)進(jìn)行數(shù)據(jù)操作時(shí),外設(shè)的數(shù)據(jù)是不能直接連到CPU的數(shù)據(jù)線上的,必須經(jīng)過(guò)接口。這是由于CPU的數(shù)據(jù)線是外設(shè)或存儲(chǔ)器和CPU進(jìn)行數(shù)據(jù)傳輸?shù)奈ㄒ还餐ǖ?,為了使?shù)據(jù)線的使

26、用對(duì)象不產(chǎn)生使用總線的沖突,以及協(xié)調(diào)快速的CPU和慢速的外設(shè),CPU和外設(shè)之間必須有接口電路,接口起著緩沖、鎖存數(shù)據(jù)、地址譯碼、信息格式轉(zhuǎn)換、傳遞狀態(tài)、發(fā)布命令等功能,I/O接口有并行接口、串行接口、定時(shí)/計(jì)數(shù)器、A/D、D/A等,根據(jù)外設(shè)的不同情況的應(yīng)用要求,選擇不同的接口。單片機(jī)的I0 口一般是雙向的 既可以做輸入。 也可以做輸出。以51系列為例,其P0、P 1、P2、P3均為雙向口,且可位操作。P0口具有雙重功能:可以作為輸入/輸出用,外接輸入/輸出設(shè)備;在有外接存儲(chǔ)器和I/O接口時(shí)常作為低8位地址/數(shù)據(jù)總線,即低8位地址與數(shù)據(jù)線分時(shí)使用P0口。此時(shí)低8位地址由ALE信號(hào)的下跳沿使它鎖存

27、到外部地址鎖存器中,爾后,P0口出現(xiàn)數(shù)據(jù)信息。P1口具有單一接口功能,P1口每一位都能作為可編程的輸入或輸出口線。P2口具有雙重功能:作為輸入口或輸出口使用,外接輸入/輸出設(shè)備;在有外接存儲(chǔ)器I/O接口時(shí),作為系統(tǒng)的地址總線。輸出高位地址,與P0口低8位地址一起組成16位地址總線。P3口為雙重功能口:可以作為輸入/輸出口,外接輸入/輸出設(shè)備;作為第二功能使用。圖 12 單片機(jī)2.2 顯示電路設(shè)計(jì)本課題要將傳感器的溫度信號(hào)顯示出來(lái),利用單片機(jī)89c51傳輸控制信號(hào)。本課題要用到MAX7219串行LED驅(qū)動(dòng)顯示器,此顯示器具有接口簡(jiǎn)單占用資源少、控制靈活方便、LED級(jí)聯(lián)擴(kuò)展便利的優(yōu)點(diǎn)。MAX721

28、9是串行輸出共陰極顯示驅(qū)動(dòng)芯片,每片可驅(qū)動(dòng)8個(gè)LED,具有級(jí)聯(lián)功能可控制更多的LED 。MAX7219為24引腳芯片,除與LED顯示相連的線外,與微控制器只需3根連線相接:芯片端管腳分別為CLK.DINLOAD,其中CLK為時(shí)鐘輸入端,DIN為數(shù)據(jù)輸入端,LOAD為鎖存信號(hào)。MAX7219的工作時(shí)序?yàn)椋簳r(shí)鐘的上升沿MAX7219把DIN引腳數(shù)據(jù)移入內(nèi)部移位寄存器, 在時(shí)鐘下降沿MAX7219把數(shù)據(jù)移向DOUT端, 而LOAD的上升沿則鎖存最后移入的16位串行數(shù)據(jù)。對(duì)MAX7219的控制操作很方便,其片內(nèi)具有8個(gè)位寄存器和6個(gè)控制寄存器。位寄存器對(duì)應(yīng)LED的具體內(nèi)容,控制寄存器決定LED的工作方

29、式??刂萍拇嫫鞣謩e為:不工作方式寄存器、譯碼方式寄存器、亮度控制寄存器。掃描個(gè)數(shù)寄存器、關(guān)閉寄存器。顯示測(cè)試寄存器。寄存器的操作格式為2字節(jié)的串行數(shù)據(jù),第一個(gè)字節(jié)為寄存器地址,第二個(gè)字節(jié)為控制命令或待顯示數(shù)據(jù)。MAX7219是在脈沖控制下工作的,因此其抗干擾就更為重要。一般在其電源和地之間接一十幾f 的電容。另外,當(dāng)MAX72l9和其他串行芯片共用I/O引腳時(shí),最好在其外邊加一上拉電阻。P1口內(nèi)部有上拉電阻,如不在其外部接上拉電阻,有時(shí)出現(xiàn)驅(qū)動(dòng)能力不足的現(xiàn)象。要用MAX7219控制多于8個(gè)的LED時(shí),可以將多個(gè)MAX7219級(jí)聯(lián)使用。各芯片的CLK和LOAD端并接在一起。上一級(jí)MAX7219的

30、DOUT端接下一級(jí)的D 端。級(jí)聯(lián)顯示時(shí),如欲控制次級(jí)的MAX7219,只需向前幾級(jí)的MAX7219的不工作方式寄存器送空操作數(shù):本級(jí)則送欲顯示的數(shù)據(jù)。另外,需注意,LOAD信號(hào)只需執(zhí)行一次清O和置位,分別在整個(gè)過(guò)程的始末。即:級(jí)聯(lián)調(diào)用WrTwoByte程序時(shí),應(yīng)將程序里的LOAD清O和置位語(yǔ)句屏蔽掉。只在級(jí)聯(lián)顯示的開(kāi)始和最后分別將LOAD置O和1。本課題用了一個(gè)LED數(shù)碼管,具體連接如下圖:圖13 顯示電路圖3 軟件設(shè)計(jì)整個(gè)系統(tǒng)的功能是由軟件電路配合硬件來(lái)實(shí)現(xiàn)的,當(dāng)硬件基本定型后,軟件的功能也就基本定下來(lái)了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個(gè)控制系統(tǒng)的核心,專門(mén)用來(lái)

31、協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件(子程序),它是用來(lái)完成各種實(shí)質(zhì)性的功能如測(cè)量、顯示。每一個(gè)執(zhí)行軟件也就是一個(gè)小的功能執(zhí)行模塊。3.1主程序方案主程序采用模塊化思想,溫度采集程序, LED顯示程序。溫度檢測(cè)程序:利用DS18B20智能溫度測(cè)試儀進(jìn)行溫度測(cè)量,并傳入PIC16F877A單片機(jī)進(jìn)行相關(guān)處理。LED顯示程序:?jiǎn)纹瑱C(jī)向晶體管輸入數(shù)字,LED輸出相應(yīng)的數(shù)字。主程序流程圖如圖14所示:開(kāi) 始初始化溫度數(shù)據(jù)采集數(shù)據(jù)處理數(shù)據(jù)顯示結(jié) 束圖14 主程序流程圖3.2 各模塊子程序3.2.1 溫度采集程序(1)DSl8B20編程簡(jiǎn)介每一片單總線芯片內(nèi)部都有一個(gè)全球惟一的64 位編碼,在多路測(cè)

32、溫時(shí)就是通過(guò)匹配每個(gè)芯片的ROM編碼(ID)來(lái)搜尋該路的溫度。DS18B20有9個(gè)可擦寫(xiě)的內(nèi)部寄存器,稱為便箋式RAM。所有的串行通訊,讀寫(xiě)每一個(gè)Bit位數(shù)據(jù)都必須嚴(yán)格遵守器件的時(shí)序邏輯來(lái)編程,同時(shí)還必須遵守總線命令序列,對(duì)單總線的DS18B20芯片來(lái)說(shuō),訪問(wèn)每個(gè)器件都要遵守下列命令序列:首先是初始化,其次執(zhí)行ROM 命令,最后執(zhí)行功能命令。如果出現(xiàn)序列混亂,則單總線器件不會(huì)響應(yīng)主機(jī)。每次訪問(wèn)任何單總線器件,必須嚴(yán)格遵守這個(gè)命令序列,如果出現(xiàn)序列混亂,則單總線器件不會(huì)響應(yīng)主機(jī)。但是這個(gè)準(zhǔn)則對(duì)于搜索ROM命令和報(bào)警搜索命令例外,在執(zhí)行兩者中任何一條命令之后,主機(jī)不能執(zhí)行其后的功能命令,必須返回至

33、第一步。在主機(jī)發(fā)出ROM命令,以訪問(wèn)某個(gè)指定的DS18B20,接著就可以發(fā)出DS18B20支持的某個(gè)功能命令。這些命令允許主機(jī)寫(xiě)入或讀出DS18B20暫存器,啟動(dòng)溫度轉(zhuǎn)換以及判斷從機(jī)的供電方式。(2)軟件實(shí)現(xiàn)前面提及單總線器件的ROM命令,在主機(jī)檢測(cè)到應(yīng)答脈沖后,就可以發(fā)出ROM命令。這些命令與各個(gè)從機(jī)設(shè)備的唯一64位ROM代碼相關(guān)。允許主機(jī)在單總線上連接多個(gè)從機(jī)設(shè)備時(shí),指定操作某個(gè)從機(jī)設(shè)備。這些命令還允許主機(jī)能夠檢測(cè)到總線上有多少個(gè)從機(jī)設(shè)備,以及其設(shè)備類型或者有沒(méi)有設(shè)備處于報(bào)警狀態(tài)。從機(jī)設(shè)備可能支持5種ROM命令(實(shí)際情況與具體型號(hào)有關(guān)),每種命令長(zhǎng)度為8位。主機(jī)在發(fā)出功能命令之前,必須發(fā)送

34、合適的ROM命令。(1)搜索ROMF0h當(dāng)系統(tǒng)初始上電時(shí),主機(jī)必須找出總線上所有從機(jī)設(shè)備的ROM代碼,這樣主機(jī)就能夠判斷出從機(jī)的數(shù)目和類型。主機(jī)通過(guò)重復(fù)執(zhí)行搜索ROM循環(huán)(搜索ROM命令跟隨著位數(shù)據(jù)交換)以找出總線上所有的從機(jī)設(shè)備。如果總線只有一個(gè)從機(jī)設(shè)備,則可以采用讀ROM命令來(lái)替代搜索ROM命令。在每次執(zhí)行完搜索ROM循環(huán)后,主機(jī)必須返回至命令序列的第一步(初始化)。(2)讀ROM33h(僅適合于單節(jié)點(diǎn))該命令僅適用于總線上只有一個(gè)從機(jī)設(shè)備。它允許主機(jī)直接讀出從機(jī)的64位ROM代碼,而無(wú)須執(zhí)行搜索ROM過(guò)程。如果該命令用于多節(jié)點(diǎn),系統(tǒng)則必然發(fā)生數(shù)據(jù)沖突,因?yàn)槊總€(gè)從機(jī)設(shè)備都會(huì)響應(yīng)該命令。(3

35、) 匹配ROM 55h匹配ROM命令跟隨64位ROM代碼,從而允許主機(jī)訪問(wèn)多節(jié)點(diǎn)系統(tǒng)中某個(gè)指定的從機(jī)設(shè)備。僅當(dāng)從機(jī)完全匹配64位ROM代碼時(shí),才會(huì)響應(yīng)主機(jī)隨后發(fā)出的功能命令。其它設(shè)備將處于等待復(fù)位脈沖狀態(tài)。(4)跳越ROMCCh(僅適合于單節(jié)點(diǎn))主機(jī)能夠采用該命令同時(shí)訪問(wèn)總線上的所有從機(jī)設(shè)備,而無(wú)須發(fā)出任何ROM代碼信息。例如,主機(jī)通過(guò)在發(fā)出跳越ROM命令后跟隨轉(zhuǎn)換溫度命令44h,就可以同時(shí)命令總線上所有的DS18B20開(kāi)始轉(zhuǎn)換溫度,這樣大大節(jié)省了主機(jī)的時(shí)間。值得注意的是,如果跳越ROM命令跟隨的是讀暫存器BEh的命令(包括其它讀操作命令),則該命令只能應(yīng)用于單節(jié)點(diǎn)系統(tǒng),否則將由于多個(gè)節(jié)點(diǎn)都響

36、應(yīng)該命令而引起數(shù)據(jù)沖突。DS18B20在一根I/O線上讀寫(xiě)數(shù)據(jù),因此,對(duì)讀寫(xiě)的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求,只有嚴(yán)格遵守通訊協(xié)議才能保證數(shù)據(jù)傳輸?shù)恼_性和完整性。所有時(shí)序均以主機(jī)為Master,單總線器件為Slave,每次數(shù)據(jù)的傳輸均從主機(jī)啟動(dòng)寫(xiě)時(shí)序開(kāi)始,如果要求單總線器件回送數(shù)據(jù),則在寫(xiě)命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。 DS18B20的復(fù)位時(shí)序圖15 DS18B20復(fù)位時(shí)序圖 DS18B20的讀時(shí)序圖16 DS18B20讀時(shí)序圖DS18B20的讀時(shí)序分讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程。讀時(shí)序是主機(jī)先把單總線拉低,在之后的15s內(nèi)必須釋放單總線,以便將數(shù)據(jù)傳輸?shù)絾慰偩€

37、上。DS18B20完成一個(gè)讀時(shí)序至少需要60s。 DS18B20的寫(xiě)時(shí)序圖17 DS18B20寫(xiě)時(shí)序圖DS18B20的寫(xiě)時(shí)序也分為寫(xiě)0時(shí)序和寫(xiě)1時(shí)序兩個(gè)過(guò)程。寫(xiě)0時(shí)序和寫(xiě)1時(shí)序的要求不同,寫(xiě)0時(shí),單總線要被拉低至少60s,保證DS18B20能夠在15-45s之間正確采樣I/O總線上的“0”電平。寫(xiě)1時(shí),單總線被拉低,在之后的15s內(nèi)必須釋放單總線。DS18B20復(fù)位后,就可以編程控制讀到其內(nèi)部RAM所采集到的溫度值,并且讀取數(shù)據(jù)時(shí)低位在前,高位在后。讀出數(shù)據(jù)后,需判斷對(duì)應(yīng)的溫度是正值還是負(fù)值,當(dāng)溫度值為正值時(shí),直接將二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制溫度值;當(dāng)溫度值為負(fù)值時(shí)先將二進(jìn)制補(bǔ)碼變?yōu)樵a,再轉(zhuǎn)換為十

38、進(jìn)制溫度值。DS18B20溫度測(cè)量與讀取軟件。3.2.2 顯示程序根據(jù)系統(tǒng)的要求,單片機(jī)不僅要能接收到溫度信號(hào),還要將溫度信號(hào)顯示出來(lái),使系統(tǒng)一目了然。對(duì)于輸入的溫度信號(hào)的顯示是利用MAX7219驅(qū)動(dòng)進(jìn)行顯示的,MAX7219是串行輸出共陰極顯示驅(qū)動(dòng)芯片,此顯示器具有接口簡(jiǎn)單。占用資源少、控制靈活方便等,因此利用MAX7219驅(qū)動(dòng)顯示方便,快捷。首先初始化5個(gè)控制寄存器,然后送18個(gè)顯示數(shù)據(jù) 一旦送完控制字后,下一步按實(shí)際需要可以改變18個(gè)數(shù)據(jù)顯示寄存器的內(nèi)容,MX7219則按顯示亮度等初始化規(guī)定與待顯示的數(shù)據(jù)自動(dòng)掃描顯示。(1)譯碼寄存器:譯碼寄存器()中數(shù)據(jù)可初始化為00H、01H、0FH

39、 以及FFH共四種情況,分別表示:對(duì)數(shù)據(jù)顯示寄存器中的內(nèi)容不譯碼只對(duì) 譯碼而對(duì)不譯碼;對(duì)譯碼而對(duì)不譯碼;對(duì)均譯碼。在譯碼方式時(shí),只對(duì)數(shù)據(jù)顯示寄存器中的位譯碼, 位為任意值,位控制小數(shù)點(diǎn)。當(dāng) =l時(shí),小數(shù)點(diǎn)亮;=O時(shí),小數(shù)點(diǎn)熄滅。(2)顯示亮度寄存器:其中,位可任意,可選擇的范圍是0000l111。的值越大,LED顯示器越亮。(3)掃描范圍寄存器:其中,位可任意,而這三位二進(jìn)制數(shù)排列從000到I11,其中000表示只接有控制的一個(gè)LED 顯示器,001表示接有由和控制的兩個(gè)LED顯示器,由此類推;111則表示均接有一個(gè)LED顯示器。(4)關(guān)閉寄存器:其中, 位可以任意; =0,關(guān)閉所有顯示器,=

40、0,允許顯示。(5)顯示測(cè)試寄存器:其中位可以任意;=0,LED處于正常工作狀態(tài),=1,LED處于顯示測(cè)試狀態(tài),即LED所有的段全亮。初始化MAX7219的程序流程如圖18。送完所有控制寄存器的地址和相應(yīng)的控制命令之后,再按同樣的方法送待顯示的數(shù)據(jù),每次先送某個(gè)LED的地址字節(jié),后送待顯示的數(shù)據(jù)字節(jié)。由于控制寄存器和數(shù)據(jù)顯示寄存器全部單獨(dú)編址,所以在送控制字或送顯示數(shù)據(jù)時(shí),均沒(méi)有規(guī)定其先后順序。結(jié)束圖18 初始化MAX7219的程序流程圈4.聯(lián)合調(diào)試系統(tǒng)進(jìn)行軟件設(shè)計(jì)時(shí),先要對(duì)本課題硬件有一個(gè)熟練的掌握,知道系統(tǒng)的組成,數(shù)據(jù)的傳輸,信號(hào)是如何被控制的,以及信號(hào)的顯示。然后進(jìn)行軟件設(shè)計(jì)時(shí),先搞清楚

41、各個(gè)部分的子程序及他們的流程圖,然后進(jìn)行編程,最后將它們系統(tǒng)的編程。本文利用Proteus與KEIL C51對(duì)單片機(jī)多點(diǎn)溫度測(cè)量系統(tǒng)進(jìn)行了仿真設(shè)計(jì)。從本文結(jié)果可以看出,利用Proteus進(jìn)行單片機(jī)系統(tǒng)的仿真設(shè)計(jì)可以極大地簡(jiǎn)化單片機(jī)程序在目標(biāo)硬件上的調(diào)試工作,大幅度節(jié)省制作電路板的時(shí)間,對(duì)于提高產(chǎn)品的開(kāi)發(fā)效率、降低開(kāi)發(fā)成本等有重要作用。硬件電路的簡(jiǎn)單是以軟件的復(fù)雜為代價(jià)的,所以在程序編寫(xiě)和調(diào)試的過(guò)程中稍一粗心就會(huì)出現(xiàn)錯(cuò)誤,包括時(shí)間延時(shí)不夠,設(shè)置參數(shù)的類型有誤,本程序經(jīng)過(guò)反復(fù)的調(diào)試修改,雖然能達(dá)到預(yù)期的基本目標(biāo),但是還有很多地方需要完善,還可以利用剩余的I/O口掛接更多的DS18B20等。在pro

42、tues上進(jìn)行仿真實(shí)驗(yàn),系統(tǒng)軟件設(shè)計(jì)主要包括系統(tǒng)程序和流程圖,根據(jù)整個(gè)系統(tǒng)的要求,完成溫度的測(cè)量與控制必須經(jīng)過(guò)以下幾個(gè)步驟:?jiǎn)纹瑱C(jī)接受傳感器的溫度信號(hào),并通過(guò)MAX7219驅(qū)動(dòng)顯示出來(lái),接受控制信號(hào),并將溫度顯示出來(lái)。5. 課設(shè)小結(jié)及進(jìn)一步設(shè)想本課題通過(guò)分析對(duì)比各種不同的溫度傳感器,選定DS18B20,這種單總線數(shù)字溫度傳感器的通信方式比較獨(dú)特,軟件編寫(xiě)要求的比較新穎,特點(diǎn)突出。用其構(gòu)建的系統(tǒng)有很多優(yōu)點(diǎn):硬件連線簡(jiǎn)單,省去了使用模擬傳感器要進(jìn)行放大、A/D轉(zhuǎn)換等工作,由于它的級(jí)聯(lián)功能,一條總線可掛接多個(gè)傳感器測(cè)量不同位置的溫度,根據(jù)DS18B20唯一的序號(hào)識(shí)別不同傳感器在各自位置的溫度。需要注

43、意的是, 在系統(tǒng)安裝及工作之前應(yīng)將主機(jī)逐個(gè)與DS1820 掛接,以讀出其序列號(hào)。另外,由于DS1820 單線通信功能是分時(shí)完成的,遵循嚴(yán)格的時(shí)隙概念,因此, 系統(tǒng)對(duì)DS1820 和各種操作必須按協(xié)議進(jìn)行,即:初始化DS1820 (發(fā)復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)?,F(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,每一個(gè)自帶地址,大大減少了系統(tǒng)的電纜數(shù),提高了系統(tǒng)的穩(wěn)定性和抗干擾性。通過(guò)調(diào)試成型系統(tǒng)發(fā)現(xiàn)了DS18B20除了上述優(yōu)點(diǎn)外,還有一些缺點(diǎn),如:簡(jiǎn)單的硬件連接的代價(jià)是復(fù)雜的軟件時(shí)序,DS18B20在測(cè)量溫度的時(shí)候,靈敏度不夠高,溫度快速變化時(shí)無(wú)法迅速顯示出其變化。通過(guò)一系列的實(shí)

44、驗(yàn)發(fā)現(xiàn):由DS18B20構(gòu)建的測(cè)溫小系統(tǒng)適用于環(huán)境溫度監(jiān)控,對(duì)溫度小變化較敏感;不適合應(yīng)用于要求實(shí)時(shí)性強(qiáng)、溫度跨度大的測(cè)溫方式。參考文獻(xiàn)1 趙茂泰.智能儀器原理及應(yīng)用.北京: 電子工業(yè)出版社,2004.72 張毅剛,劉杰.MCS51單片機(jī)原理及應(yīng)用.哈爾濱: 哈爾濱工業(yè)大學(xué)出版社,2004.63 何立民.單片機(jī)應(yīng)用技術(shù)選編.北京: 北京航天航空大學(xué)出版,2002.54 張軍,梅麗鳳.單片機(jī)原理接口技術(shù).北京交通大學(xué)出版社,2006.55 張婧武,周靈彬.單片機(jī)系統(tǒng)的PROTEUS設(shè)計(jì)與仿真.北京: 電工出版社,2007.4課設(shè)體會(huì)本次課程設(shè)計(jì)是在老師的悉心指導(dǎo)下完成的,不論在選題、資料搜集還是

45、在論文寫(xiě)作方面,老師都給予了我很大的幫助。老師治學(xué)嚴(yán)謹(jǐn)、一絲不茍,對(duì)學(xué)生既嚴(yán)格要求,又可耐心指導(dǎo)、循循善誘,在繁忙的工作之余還經(jīng)常關(guān)心我的論文進(jìn)行情況,并且對(duì)我在設(shè)計(jì)中遇到的問(wèn)題耐心指導(dǎo),巧妙地激發(fā)我的求知欲來(lái)促使我對(duì)問(wèn)題進(jìn)行更深入的研究,使我的獨(dú)立探索解決問(wèn)題的能力有了很大的提高,老師用心良苦,讓我深深體會(huì)到為人師表的偉大與無(wú)私。在本次課程設(shè)計(jì)中,我還得到了多位同學(xué)的幫助,對(duì)我成功完成本次設(shè)計(jì)帶來(lái)了很大的幫助。在次論文完成之即,請(qǐng)接受我真誠(chéng)的感謝!2010年1月13日附錄I 元件清單元件名稱型號(hào)數(shù)量單片機(jī)AT89C511傳感器DS18B201顯示器LED8導(dǎo)線 若干附錄II 整體電路圖附錄III 源程序清單#include/=宏定義=#define uchar unsigned char #define uint unsigned int/=位定義=sbit DQ =P20 ;/18B20數(shù)據(jù)線引腳sbit led2=P23;sbit led3=P24;/=全局變量定義=uchar dispbuf4; /顯示緩沖區(qū) uchar temper2;/存放溫度的數(shù)組 / =定義數(shù)組= uchar co

溫馨提示

  • 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)論