




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)報(bào)告專(zhuān) 業(yè):_班 級(jí):_姓 名:_指導(dǎo)老師:_二00九年 12月 27日目錄1、 (內(nèi)容) 頁(yè)碼2、3、4、1. 設(shè)計(jì)題目基于DS18B20傳感器溫度測(cè)量2. 課程設(shè)計(jì)目的通過(guò)基于MCS-51系列單片機(jī)AT89C51和DS18B20溫度傳感器檢測(cè)溫度,熟悉芯片的使用,溫度傳感器的功能,數(shù)碼顯示管的使用,匯編語(yǔ)言的設(shè)計(jì);并且把我們這一年所學(xué)的數(shù)字和模擬電子技術(shù)、檢測(cè)技術(shù)、單片機(jī)應(yīng)用等知識(shí),通過(guò)理論聯(lián)系實(shí)際,從題目分析、電路設(shè)計(jì)調(diào)試、程序編制調(diào)試到傳感器的選定等這一完整的實(shí)驗(yàn)過(guò)程,培養(yǎng)了學(xué)生正確的設(shè)計(jì)思想,使學(xué)生充分發(fā)揮主觀能動(dòng)性,去獨(dú)立解決實(shí)際問(wèn)題,以達(dá)到提升學(xué)生的綜合能力、動(dòng)手能力、文
2、獻(xiàn)資料查閱能力的作用,為畢業(yè)設(shè)計(jì)和以后工作打下一個(gè)良好的基礎(chǔ)。3. 設(shè)計(jì)任務(wù)和要求 以MCS-51系列單片機(jī)為核心器件,組成一個(gè)數(shù)字溫度計(jì),采用數(shù)字溫度傳感器DS18B20為檢測(cè)器件,進(jìn)行單點(diǎn)溫度檢測(cè),檢測(cè)精度為0.5攝氏度。溫度顯示采用3位LED數(shù)碼管顯示,兩位整數(shù),一位小數(shù)。具有鍵盤(pán)輸入上下限功能,超過(guò)上下限溫度時(shí),進(jìn)行聲音報(bào)警。4. 正文一、方案選擇與論證 根據(jù)設(shè)計(jì)任務(wù)的總體要求,本系統(tǒng)可以劃分為以下幾個(gè)基本模塊,針對(duì)各個(gè)模塊的功能要求,分別有以下一些不同的設(shè)計(jì)方案:1、溫度傳感器模塊方案一:采用熱敏電阻,熱敏電阻精度、重復(fù)性、可靠性較差,對(duì)于檢測(cè)1攝氏度的信號(hào)是不適用的,也不能滿(mǎn)足測(cè)量
3、范圍。在溫度測(cè)量系統(tǒng)中,也常采用單片溫度傳感器,比如AD590,LM35等。但這些芯片輸出的都是模擬信號(hào),必須經(jīng)過(guò)A/D轉(zhuǎn)換后才能送給計(jì)算機(jī),這樣就使測(cè)溫系統(tǒng)的硬件結(jié)構(gòu)較復(fù)雜。另外,這種測(cè)溫系統(tǒng)難以實(shí)現(xiàn)多點(diǎn)測(cè)溫,也要用到復(fù)雜的算法,一定程度上也增加了軟件實(shí)現(xiàn)的難度。方案二:采用單總線(xiàn)數(shù)字溫度傳感器DS18B20測(cè)量溫度,直接輸出數(shù)字信號(hào)。便于單片機(jī)處理及控制,節(jié)省硬件電路。且該芯片的物理化學(xué)性很穩(wěn)定,此元件線(xiàn)形性能好,在0100攝氏度時(shí),最大線(xiàn)形偏差小于1攝氏度。DS18B20的最大特點(diǎn)之一采用了單總線(xiàn)的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)DS18B20和微控制器AT89C51構(gòu)成的溫度裝置,它直接輸出溫度
4、的數(shù)字信號(hào)到微控制器。每只DS18B20具有一個(gè)獨(dú)有的不可修改的64位序列號(hào),根據(jù)序列號(hào)可訪(fǎng)問(wèn)不同的器件。這樣一條總線(xiàn)上可掛接多個(gè)DS18B20傳感器,實(shí)現(xiàn)多點(diǎn)溫度測(cè)量,輕松的組建傳感網(wǎng)絡(luò)。綜上分析,我們選用第二種方案。2、顯示模塊方案一:采用8位段數(shù)碼管,將單片機(jī)得到的數(shù)據(jù)通過(guò)數(shù)碼管顯示出來(lái)。該方案簡(jiǎn)單易行,但所需的元件較多,且不容易進(jìn)行操作,可讀性差,一旦設(shè)定后很難再加入其他的功能,顯示格式受限制,且大耗電量大,不宜用電池給系統(tǒng)供電。方案二:采用液晶顯示器件,液晶顯示平穩(wěn)、省電、美觀,更容易實(shí)現(xiàn)題目要求,對(duì)后續(xù)的園藝通兼容性高,只需將軟件作修改即可,可操作性強(qiáng),也易于讀數(shù),采用RT1602
5、兩行十六個(gè)字符的顯示,能同時(shí)顯示其它的信息如日期、時(shí)間、星期、溫度。綜上分析,我們采用了第二個(gè)方案。3、微控制器模塊 溫度傳感器有四種主要類(lèi)型:熱點(diǎn)偶、熱敏電阻、電阻溫度檢測(cè)器、IC溫度傳感器。其中IC溫度傳感器又包括模擬輸出和數(shù)字輸出兩種類(lèi)型。 熱電偶應(yīng)用很廣泛,因?yàn)樗鼈兎浅?jiān)固而且不太貴。熱電偶有多種類(lèi)型,它們覆蓋非常寬的溫度范圍,從-200到2000。它們的特點(diǎn)是:低靈敏度、低穩(wěn)定性、中等精度、響應(yīng)速度慢、高溫下容易老化和有漂移,以及非線(xiàn)性。另外,熱電偶需要外部參考端。 電阻溫度檢測(cè)器精度極高且具有中等線(xiàn)性度。它們特別穩(wěn)定,并有許多種配置。但它們的最高工作溫度只能達(dá)到400左右。它們也有
6、很大的TC,且價(jià)格昂貴(是熱電偶的410倍),并且需要一個(gè)外部參考源。 模擬輸出IC溫度傳感器具有很高的線(xiàn)性度 (如果配合一個(gè)模數(shù)轉(zhuǎn)換器或ADC可產(chǎn)生數(shù)字輸出)、低成本、高精度(大約1%)、小尺寸和高分辨率。它們的不足之處在于溫度范圍有限(-55150),并且需要一個(gè)外部參考源。數(shù)字輸出IC溫度傳感器帶有一個(gè)內(nèi)置參考源,它們的響應(yīng)速度也相當(dāng)慢(100 ms數(shù)量級(jí))。雖然它們固有地會(huì)自身發(fā)熱,但可以采用自動(dòng)關(guān)閉和單次轉(zhuǎn)換模式使其在需要測(cè)量之前將IC設(shè)置為低功耗狀態(tài),從而將自身發(fā)熱降到最低。 綜上方案的比較,數(shù)字輸出IC溫度傳感器與熱敏電阻、RTD和熱電偶傳感器相比,具有很高的線(xiàn)性,而且由于技術(shù)比
7、較成熟,集成復(fù)雜的功能,成本也較低,能夠提供一個(gè)數(shù)字輸出,省去A/D轉(zhuǎn)化器的使用,有效較低了系統(tǒng)成本,提高系統(tǒng)穩(wěn)定性,并能夠在一個(gè)相當(dāng)有用的范圍內(nèi)進(jìn)行溫度測(cè)量。本實(shí)驗(yàn)采用DS18B20作為溫度傳感器二、系統(tǒng)的具體設(shè)計(jì)與實(shí)現(xiàn)1、系統(tǒng)的總體設(shè)計(jì)方案 采用AT89S52單片機(jī)作為控制核心對(duì)溫度傳感器DS18B20控制,讀取溫度信號(hào)并進(jìn)行計(jì)算處理,并送到液晶顯示器RT1602顯示。按照系統(tǒng)設(shè)計(jì)功能的要求,確定系統(tǒng)由3個(gè)模塊組成:主控制器、測(cè)溫電路和顯示電路。數(shù)字溫度計(jì)總體電路結(jié)構(gòu)框圖如圖5所示。 圖5 電路結(jié)構(gòu)框圖2、硬件電路設(shè)計(jì) (1)、單片機(jī)控制模塊 該模塊由AT89S52單片機(jī)組成在設(shè)計(jì)方面,A
8、T89S52的EA接高電平,其外圍電路提供能使之工作的晶振脈沖、復(fù)位按鍵,四個(gè)I/O分別接8路的單列IP座方便與外圍設(shè)備連接。當(dāng)AT89S52芯片接到來(lái)自溫度傳感器的信號(hào)時(shí),其內(nèi)部程序?qū)⒏鶕?jù)信號(hào)的類(lèi)型進(jìn)行處理,并且將處理的結(jié)果送到顯示模塊,發(fā)送控制信號(hào)控制各模塊。該模塊的硬件電路如下圖 (2)溫度傳感器模塊DS18B20相關(guān)資料1、DS18B20原理與分析DS18B20是美國(guó)DALLAS半導(dǎo)體公司繼DS1820之后最新推出的一種改進(jìn)型智能溫度傳感器。與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測(cè)溫度并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式??梢苑謩e在93.75 ms和750 ms
9、內(nèi)完成9位和12位的數(shù)字量,并且從DS18B20讀出的信息或?qū)懭隓S18B20的信息僅需要一根口線(xiàn)(單線(xiàn)接口)讀寫(xiě),溫度變換功率來(lái)源于數(shù)據(jù)總線(xiàn),總線(xiàn)本身也可以向所掛接的DS18B20供電,而無(wú)需額外電源。因而使用DS18B20可使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。他在測(cè)溫精度、轉(zhuǎn)換時(shí)間、傳輸距離、分辨率等方面較DS1820有了很大的改進(jìn),給用戶(hù)帶來(lái)了更方便的使用和更令人滿(mǎn)意的效果。 以下是DS18B20的特點(diǎn):(1)獨(dú)特的單線(xiàn)接口方式:DS18B20與微處理器連接時(shí)僅需要一條口線(xiàn)即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。(2)在使用中不需要任何外圍元件。(3)可用數(shù)據(jù)線(xiàn)供電,電壓范圍:+3.0
10、+5.5 V。(4)測(cè)溫范圍:-55 - +125 。固有測(cè)溫分辨率為0.5 。(5)通過(guò)編程可實(shí)現(xiàn)9-12位的數(shù)字讀數(shù)方式。(6)用戶(hù)可自設(shè)定非易失性的報(bào)警上下限值。(7)支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在惟一的三線(xiàn)上,實(shí)現(xiàn)多點(diǎn)測(cè)溫。(8)負(fù)壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。2、DS18B20的測(cè)溫原理DS18B20的測(cè)溫原理上圖所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門(mén),當(dāng)計(jì)數(shù)門(mén)打開(kāi)時(shí),DS18
11、B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門(mén)的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將-55 所對(duì)應(yīng)的基數(shù)分別置入減法計(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重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。圖中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線(xiàn)性,其輸出
12、用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直至溫度寄存器值達(dá)到被測(cè)溫度值,這就是DS18B20的測(cè)溫原理。另外,由于DS18B20單線(xiàn)通信功能是分時(shí)完成的,他有嚴(yán)格的時(shí)隙概念,因此讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。DS18B20工作過(guò)程及時(shí)序DS18B20內(nèi)部的低溫度系數(shù)振蕩器是一個(gè)振蕩頻率隨溫度變化很小的振蕩器,為計(jì)數(shù)器1提供一頻率穩(wěn)定的計(jì)數(shù)脈沖。高溫度系數(shù)振蕩器是一個(gè)振蕩頻率對(duì)溫度很敏感的振蕩器,為計(jì)數(shù)器2提供一個(gè)頻率隨溫度變化的計(jì)數(shù)脈沖。初始時(shí),溫度寄存
13、器被預(yù)置成-55,每當(dāng)計(jì)數(shù)器1從預(yù)置數(shù)開(kāi)始減計(jì)數(shù)到0時(shí),溫度寄存器中寄存的溫度值就增加1,這個(gè)過(guò)程重復(fù)進(jìn)行,直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí)便停止。初始時(shí),計(jì)數(shù)器1預(yù)置的是與-55相對(duì)應(yīng)的一個(gè)預(yù)置值。以后計(jì)數(shù)器1每一個(gè)循環(huán)的預(yù)置數(shù)都由斜率累加器提供。為了補(bǔ)償振蕩器溫度特性的非線(xiàn)性性,斜率累加器提供的預(yù)置數(shù)也隨溫度相應(yīng)變化。計(jì)數(shù)器1的預(yù)置數(shù)也就是在給定溫度處使溫度寄存器寄存值增加1計(jì)數(shù)器所需要的計(jì)數(shù)個(gè)數(shù)。DS18B20內(nèi)部的比較器以四舍五入的量化方式確定溫度寄存器的最低有效位。在計(jì)數(shù)器2停止計(jì)數(shù)后,比較器將計(jì)數(shù)器1中的計(jì)數(shù)剩余值轉(zhuǎn)換為溫度值后與0.25進(jìn)行比較,若低于0.25,溫度寄存器的最低位就置0;若
14、高于0.25,最低位就置1;若高于0.75時(shí),溫度寄存器的最低位就進(jìn)位然后置0。這樣,經(jīng)過(guò)比較后所得的溫度寄存器的值就是最終讀取的溫度值了,其最后位代表0.5,四舍五入最大量化誤差為1/2LSB,即0.25。溫度寄存器中的溫度值以9位數(shù)據(jù)格式表示,最高位為符號(hào)位,其余8位以二進(jìn)制補(bǔ)碼形式表示溫度值。測(cè)溫結(jié)束時(shí),這9位數(shù)據(jù)轉(zhuǎn)存到暫存存儲(chǔ)器的前兩個(gè)字節(jié)中,符號(hào)位占用第一字節(jié),8位溫度數(shù)據(jù)占據(jù)第二字節(jié)。DS18B20測(cè)量溫度時(shí)使用特有的溫度測(cè)量技術(shù)。DS18B20內(nèi)部的低溫度系數(shù)振蕩器能產(chǎn)生穩(wěn)定的頻率信號(hào);同樣的,高溫度系數(shù)振蕩器則將被測(cè)溫度轉(zhuǎn)換成頻率信號(hào)。當(dāng)計(jì)數(shù)門(mén)打開(kāi)時(shí),DS18B20進(jìn)行計(jì)數(shù),計(jì)
15、數(shù)門(mén)開(kāi)通時(shí)間由高溫度系數(shù)振蕩器決定。芯片內(nèi)部還有斜率累加器,可對(duì)頻率的非線(xiàn)性度加以補(bǔ)償。測(cè)量結(jié)果存入溫度寄存器中。一般情況下的溫度值應(yīng)該為9位,但因符號(hào)位擴(kuò)展成高8位,所以最后以16位補(bǔ)碼形式讀出。DS18B20工作過(guò)程一般遵循以下協(xié)議:初始化ROM操作命令存儲(chǔ)器操作命令處理數(shù)據(jù) 初始化單總線(xiàn)上的所有處理均從初始化序列開(kāi)始。初始化序列包括總線(xiàn)主機(jī)發(fā)出一復(fù)位脈沖,接著由從屬器件送出存在脈沖。存在脈沖讓總線(xiàn)控制器知道DS1820 在總線(xiàn)上且已準(zhǔn)備好操作。 ROM操作命令一旦總線(xiàn)主機(jī)檢測(cè)到從屬器件的存在,它便可以發(fā)出器件ROM操作命令之一。所有ROM操作命令均為8位長(zhǎng)。這些命令列表如下:Read R
16、OM(讀ROM)33h此命令允許總線(xiàn)主機(jī)讀DS18B20的8位產(chǎn)品系列編碼,唯一的48位序列號(hào),以及8位的CRC。此命令只能在總線(xiàn)上僅有一個(gè)DS18B20的情況下可以使用。如果總線(xiàn)上存在多于一個(gè)的從屬器件,那么當(dāng)所有從片企圖同時(shí)發(fā)送時(shí)將發(fā)生數(shù)據(jù)沖突的現(xiàn)象(漏極開(kāi)路會(huì)產(chǎn)生線(xiàn)與的結(jié)果)。Match ROM( 符合ROM)55h此命令后繼以64位的ROM數(shù)據(jù)序列,允許總線(xiàn)主機(jī)對(duì)多點(diǎn)總線(xiàn)上特定的DS18B20尋址。只有與64位ROM序列嚴(yán)格相符的DS18B20才能對(duì)后繼的存貯器操作命令作出響應(yīng)。所有與64位ROM序列不符的從片將等待復(fù)位脈沖。此命令在總線(xiàn)上有單個(gè)或多個(gè)器件的情況下均可使用。Skip R
17、OM( 跳過(guò)ROM )CCh在單點(diǎn)總線(xiàn)系統(tǒng)中,此命令通過(guò)允許總線(xiàn)主機(jī)不提供64位ROM編碼而訪(fǎng)問(wèn)存儲(chǔ)器操作來(lái)節(jié)省時(shí)間。如果在總線(xiàn)上存在多于一個(gè)的從屬器件而且在Skip ROM命令之后發(fā)出讀命令,那么由于多個(gè)從片同時(shí)發(fā)送數(shù)據(jù),會(huì)在總線(xiàn)上發(fā)生數(shù)據(jù)沖突(漏極開(kāi)路下拉會(huì)產(chǎn)生線(xiàn)與的效果)。Search ROM( 搜索ROM)F0h當(dāng)系統(tǒng)開(kāi)始工作時(shí),總線(xiàn)主機(jī)可能不知道單線(xiàn)總線(xiàn)上的器件個(gè)數(shù)或者不知道其64位ROM編碼。搜索ROM命令允許總線(xiàn)控制器用排除法識(shí)別總線(xiàn)上的所有從機(jī)的64位編碼。Alarm Search(告警搜索)ECh此命令的流程與搜索ROM命令相同。但是,僅在最近一次溫度測(cè)量出現(xiàn)告警的情況下,D
18、S18B20才對(duì)此命令作出響應(yīng)。告警的條件定義為溫度高于TH 或低于TL。只要DS18B20一上電,告警條件就保持在設(shè)置狀態(tài),直到另一次溫度測(cè)量顯示出非告警值或者改變TH或TL的設(shè)置,使得測(cè)量值再一次位于允許的范圍之內(nèi)。貯存在EEPROM內(nèi)的觸發(fā)器值用于告警。 存儲(chǔ)器操作命令Write Scratchpad(寫(xiě)暫存存儲(chǔ)器)4Eh這個(gè)命令向DS18B20的暫存器中寫(xiě)入數(shù)據(jù),開(kāi)始位置在地址2。接下來(lái)寫(xiě)入的兩個(gè)字節(jié)將被存到暫存器中的地址位置2和3。可以在任何時(shí)刻發(fā)出復(fù)位命令來(lái)中止寫(xiě)入。Read Scratchpad(讀暫存存儲(chǔ)器)BEh這個(gè)命令讀取暫存器的內(nèi)容。讀取將從字節(jié)0開(kāi)始,一直進(jìn)行下去,直到
19、第9(字節(jié)8,CRC)字節(jié)讀完。如果不想讀完所有字節(jié),控制器可以在任何時(shí)間發(fā)出復(fù)位命令來(lái)中止讀取。Copy Scratchpad(復(fù)制暫存存儲(chǔ)器)48h這條命令把暫存器的內(nèi)容拷貝到DS18B20的E2存儲(chǔ)器里,即把溫度報(bào)警觸發(fā)字節(jié)存入非易失性存儲(chǔ)器里。如果總線(xiàn)控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而DS18B20又正在忙于把暫存器拷貝到E2存儲(chǔ)器,DS18B20就會(huì)輸出一個(gè)“0”,如果拷貝結(jié)束的話(huà),DS18B20 則輸出“1”。如果使用寄生電源,總線(xiàn)控制器必須在這條命令發(fā)出后立即起動(dòng)強(qiáng)上拉并最少保持10ms。Convert T(溫度變換)44h這條命令啟動(dòng)一次溫度轉(zhuǎn)換而無(wú)需其他數(shù)據(jù)。溫度轉(zhuǎn)換命
20、令被執(zhí)行,而后DS18B20保持等待狀態(tài)。如果總線(xiàn)控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而DS18B20又忙于做時(shí)間轉(zhuǎn)換的話(huà),DS18B20將在總線(xiàn)上輸出“0”,若溫度轉(zhuǎn)換完成,則輸出“1”。如果使用寄生電源,總線(xiàn)控制器必須在發(fā)出這條命令后立即起動(dòng)強(qiáng)上拉,并保持500ms。Recall E2(重新調(diào)整E2)B8h這條命令把貯存在E2中溫度觸發(fā)器的值重新調(diào)至?xí)捍娲鎯?chǔ)器。這種重新調(diào)出的操作在對(duì)DS18B20上電時(shí)也自動(dòng)發(fā)生,因此只要器件一上電,暫存存儲(chǔ)器內(nèi)就有了有效的數(shù)據(jù)。在這條命令發(fā)出之后,對(duì)于所發(fā)出的第一個(gè)讀數(shù)據(jù)時(shí)間片,器件會(huì)輸出溫度轉(zhuǎn)換忙的標(biāo)識(shí):“0”=忙,“1”=準(zhǔn)備就緒。Read Pow
21、er Supply(讀電源)B4h對(duì)于在此命令發(fā)送至DS18B20之后所發(fā)出的第一讀數(shù)據(jù)的時(shí)間片,器件都會(huì)給出其電源方式的信號(hào):“0”=寄生電源供電,“1”=外部電源供電。 處理數(shù)據(jù)DS18B20的高速暫存存儲(chǔ)器由9個(gè)字節(jié)組成,其分配如圖3所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第0和第1個(gè)字節(jié)。單片機(jī)可通過(guò)單線(xiàn)接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后。 DS18B20溫度數(shù)據(jù)表上表是DS18B20溫度采集轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在DS18B20的兩個(gè)8比特的RAM中,二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于或等于0,這5位為0,只要將測(cè)到
22、的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。溫度轉(zhuǎn)換計(jì)算方法舉例:例如當(dāng)DS18B20采集到+125的實(shí)際溫度后,輸出為07D0H,則:實(shí)際溫度=07D0H0.0625=20000.0625=1250C。例如當(dāng)DS18B20采集到-55的實(shí)際溫度后,輸出為FC90H,則應(yīng)先將11位數(shù)據(jù)位取反加1得370H(符號(hào)位不變,也不作為計(jì)算),則:實(shí)際溫度=370H0.0625=8800.0625=550C。(3)顯示模塊六、軟件設(shè)計(jì) 系統(tǒng)程序主要包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換子程序、計(jì)算溫度子程序、顯示等等。1.主
23、程序主要功能是完成DS18B20的初始化工作,并進(jìn)行讀溫度,將溫度轉(zhuǎn)化成為壓縮BCD碼并在顯示器上顯示傳感器所測(cè)得的實(shí)際溫度。2讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需要進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě)。其程序流程圖如圖2所示。3溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開(kāi)始命令,當(dāng)采用12位分辯率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如圖3所示。4計(jì)算溫度子程序計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其流程圖如圖4所示。開(kāi)始DS18B2
24、0初始化讀溫度子程序讀出溫度格式化,并轉(zhuǎn)為壓縮BCD碼顯示溫度圖1 主程序流程圖圖2讀出溫度子程序流程圖圖3 溫度轉(zhuǎn)換命令子程序流程圖圖4 計(jì)算溫度子程序流程圖完整程序如下:;溫度傳感器18B20采用器件默認(rèn)的12位轉(zhuǎn)化,最大轉(zhuǎn)化時(shí)間要750毫秒;內(nèi)存分配聲明TEMPER_L EQU 31H ;用于保存讀出溫度的低字節(jié)TEMPER_H EQU 30H ;用于保存讀出溫度的高字節(jié)T_DF EQU 33H ;FORMAT后的小數(shù)部分(decimal fraction),半字節(jié)的溫度小數(shù)(存在低四位)T_INTEGER EQU 32H ;FORMAT后的整數(shù)部分(integer),將兩字節(jié)的溫度整合
25、成1字節(jié)FLAG BIT 20H ;標(biāo)志位DAT BIT P1.4 ;DS18B20數(shù)據(jù)線(xiàn);-主函數(shù)開(kāi)始- ORG 0000H AJMP MAIN ORG 0030HMAIN: CLR EA ;使用DS18B20一定要禁止中斷 MOV SP,#60H MOV T_DF,#00H ;賦初始溫度為30度 MOV T_INTEGER,#30HSTART: LCALL GET_TEMPER ;調(diào)用讀溫度子程序 LCALL T_FORMAT ;將讀出的2字節(jié)溫度格式化,并轉(zhuǎn)換為壓縮BCD碼 LCALL DISPLAY ;顯示溫度 AJMP START;-DS18B20的溫度轉(zhuǎn)換子程序-GET_TEMPE
26、R: LCALL Set_18B20 MOV A,#0CCH ;跳過(guò)ROM匹配 LCALL WRITE_1820 MOV A,#44H ;發(fā)出溫度轉(zhuǎn)換命令 LCALL WRITE_1820 LCALL DISPLAY ;用顯示溫度(持續(xù)1s左右)來(lái)等待AD轉(zhuǎn)換結(jié)束,12位的話(huà)要轉(zhuǎn)換750ms LCALL Set_18B20 ;準(zhǔn)備讀溫度前先初始化 MOV A,#0CCH ;跳過(guò)ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ;發(fā)出讀溫度命令 LCALL WRITE_1820 LCALL READ_1820 RET;-DS18B20初始化程序-Set_18B20: SETB
27、 DAT NOP CLR DAT MOV R2,#250 ;主機(jī)發(fā)出延時(shí)500微秒的復(fù)位低脈沖 DJNZ R2,$ SETB DAT ;然后拉高數(shù)據(jù)線(xiàn) MOV R2,#30 DJNZ R2,$ ;延時(shí)60us等待DS18B20回應(yīng) JNB DAT,INIT1 JMP Set_18B20 ;超時(shí)而沒(méi)有響應(yīng),重新初始化INIT1: MOV R2,#120 DJNZ R2,$ ;延時(shí)240us JB DAT,INIT2 ;數(shù)據(jù)變高,初始化成功 JMP Set_18B20INIT2: MOV R2,#240 DJNZ R2,$ RET;-寫(xiě)DS18B20的子程序(有具體的時(shí)序要求)-WRITE_182
28、0: MOV R2,#8 ;一共8位數(shù)據(jù)WR0: CLR DAT MOV R3,#6 DJNZ R3,$ RRC A MOV DAT,C MOV R3,#20 DJNZ R3,$ SETB DAT NOP NOP DJNZ R2,WR0 SETB DAT RET;-讀DS18B20的程序,從DS18B20中讀出兩個(gè)字節(jié)的溫度數(shù)據(jù)-READ_1820: MOV R4,#2 ;將溫度高位和低位從DS18B20中讀出 MOV R1,#TEMPER_L ;低位存入31H(TEMPER_L)RE0: MOV R2,#8RE1: SETB DAT NOP NOP CLR DAT NOP NOP SETB
29、DAT MOV R3,#4 DJNZ R3,$ MOV C,DAT RRC A MOV R3,#30 DJNZ R3,$ DJNZ R2,RE1 MOV R1,A DEC R1 ;高位存入30H(TEMPER_H) DJNZ R4,RE0 RET;-整合讀出的兩字節(jié)溫度(關(guān)于DS18B20讀出的2字節(jié)溫度格式請(qǐng)參考資料)-T_FORMAT: MOV A,#0FH ANL A,TEMPER_L MOV T_DF,A ;獲得小數(shù)部分(4位) MOV A,TEMPER_L SWAP A MOV R0,A MOV A,TEMPER_H SWAP A XCHD A,R0 MOV T_INTEGER,A
30、;獲得整數(shù)部分(1字節(jié))TO_BCD: MOV A,T_INTEGER MOV B,#10 DIV AB SWAP A ADD A,B MOV T_INTEGER,A ;整數(shù)部分壓縮BCD碼送T_INTEGER MOV A,T_DF MOV B,#10 MUL AB MOV B,#16 DIV AB MOV R2,A ;暫存R2 MOV A, B MOV B,#10 MUL AB MOV B,#16 DIV AB MOV B,A MOV A,R2 SWAP A ADD A,B MOV T_DF,A ;小數(shù)部分壓縮BCD碼送T_DF RET;-顯示溫度子程序-DISPLAY:MOV R1,#25
31、0DISP1: MOV A,T_INTEGER MOV R3,#01H MOV R4,#02H SETB FLAGDISP2: CPL FLAG MOV B,#10H DIV AB MOV R2,A ;高位送R2暫存 MOV DPTR,#3FFFH ;字位口 MOV A,R3 MOVX DPTR,A ;送字位 MOV A,R2 ;字型R2送A MOV DPTR,#TAB ;表首地址送DPTR MOVC A,A+DPTR ;查表 MOV DPTR,#5FFFH ;字型口 MOVX DPTR,A ;送字型 CALL D1MS ;延時(shí) MOV A,#0FFH MOVX DPTR,A ;關(guān)閉字型顯示 MOV R2,B ;低位送R2暫存 MOV DPTR,#3FFFH ;字位口 MOV A,R4 MOVX DPTR,A ;送字位 MOV A,R2 ;字型R2送A MOV DPTR,#TAB ;表首地址送DPTR MOVC A,A+DPTR ;查表 JNB FLAG,D1 JMP D2D1: ANL A,#7FHD2: MOV DPTR,#5FFFH ;字型口 MOVX DPTR,A ;送字型 CALL D1MS ;延時(shí) MOV A,#0FFH MOVX DPTR,A ;關(guān)閉字型顯示 MOV A,T_DF MOV R3,#04H MOV R4,#
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)激光雷達(dá)行業(yè)運(yùn)營(yíng)狀況及投資前景預(yù)測(cè)報(bào)告
- 2025-2030年中國(guó)涂布白板紙行業(yè)運(yùn)營(yíng)狀況及發(fā)展規(guī)模分析報(bào)告
- 2025-2030年中國(guó)汽車(chē)安全檢測(cè)設(shè)備市場(chǎng)運(yùn)營(yíng)狀況及發(fā)展前景分析報(bào)告
- 照片使用合同范本
- 2025-2030年中國(guó)明膠市場(chǎng)運(yùn)行現(xiàn)狀及發(fā)展前景預(yù)測(cè)報(bào)告
- 下水合同范本
- 科技改變生活-日常生活中的科技應(yīng)用匯報(bào)
- 2025-2030年中國(guó)尼龍行業(yè)投資戰(zhàn)略決策研究報(bào)告
- 2025-2030年中國(guó)嬰兒床市場(chǎng)供需現(xiàn)狀及投資發(fā)展規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)售飯機(jī)市場(chǎng)十三五規(guī)劃及發(fā)展?jié)摿Ψ治鰣?bào)告
- 施工現(xiàn)場(chǎng)5S管理規(guī)范
- 投資學(xué)基礎(chǔ)(第二版)教案全套 李博
- 【MOOC】中級(jí)財(cái)務(wù)會(huì)計(jì)-西南交通大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 延續(xù)護(hù)理服務(wù)課件
- 2024年濰坊工程職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)
- 【MOOC】斷層影像解剖學(xué)-山東大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 《小學(xué)英語(yǔ)教學(xué)設(shè)計(jì)》課件全套 陳冬花 第1-10章 小學(xué)英語(yǔ)教學(xué)設(shè)計(jì)概述-小學(xué)英語(yǔ)課堂管理
- 電力線(xiàn)路常見(jiàn)故障培訓(xùn)
- 同等學(xué)力人員申請(qǐng)碩士學(xué)位英語(yǔ)試卷與參考答案(2024年)
- 2024建筑用輻射致冷涂料
- 酒店項(xiàng)目招商引資報(bào)告
評(píng)論
0/150
提交評(píng)論