單線數(shù)字溫度傳感器DS18B20的原理與應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘 要:介紹單線數(shù)字溫度傳感器ds1820的特性及工作原理,給出了ds1820與89c51單片機(jī)接口的應(yīng)用實(shí)例,以及由ds1820組成溫度檢測(cè)系統(tǒng)的方法,并給出了對(duì)ds1820進(jìn)行各種操作的軟件流程圖。關(guān)鍵詞:?jiǎn)尉€制(1-wire)時(shí)隙a/d變換 美國(guó)dallas公司生產(chǎn)的單線數(shù)字溫度傳感器ds1820,可把溫度信號(hào)直接轉(zhuǎn)換成串行數(shù)字信號(hào)供微機(jī)處理。由于每片ds1820含有唯一的硅串行數(shù)?所以在一條總線上可掛接任意多個(gè)ds1820芯片。從ds1820讀出的信息或?qū)懭雂s1820的信息,僅需要一根口線(單線接口)。讀寫(xiě)及溫度變換功率來(lái)源于數(shù)據(jù)總線,總線本身也可以向所掛接的ds1820供電,而無(wú)需額外電源。ds1820提供九位溫度讀數(shù),構(gòu)成多點(diǎn)溫度檢測(cè)系統(tǒng)而無(wú)需任何外圍硬件。本文給出了ds1820與89c51單片機(jī)接口的應(yīng)用實(shí)例和ds1820組成溫度檢測(cè)系統(tǒng)的方法,并給出了對(duì)ds1820進(jìn)行各種操作的軟件流程圖。1ds1820的特性·單線接口:僅需一根口線與mcu連接·無(wú)需外圍元件·由總線提供電源·測(cè)溫范圍為-55℃~75℃,精度為0.5℃·九位溫度讀數(shù)·a/d變換時(shí)間為200ms·用戶自設(shè)定溫度報(bào)警上下限,其值是非易失性的·報(bào)警搜索命令可識(shí)別哪片ds1820超溫度限2ds1820引腳及功能ds1820的引腳見(jiàn)圖1(pr35封裝)。 gnd:地;dq:數(shù)據(jù)輸入/輸出腳(單線接口,可作寄生供電);vdd:電源電壓。3ds1820的工作原理ds1820的內(nèi)部結(jié)構(gòu)如圖2所示。 由圖2可知,ds1820由三個(gè)主要數(shù)字器件組成:①64bit閃速rom;②溫度傳感器;③非易失性溫度報(bào)警觸發(fā)器th和tl。64bit閃速rom的結(jié)構(gòu)如下: 它既可寄生供電也可由外部5v電源供電。在寄生供電情況下,當(dāng)總線為高電平時(shí),ds1820從總線上獲得能量并儲(chǔ)存在內(nèi)部電容上?當(dāng)總線為低電平時(shí),由電容向ds1820供電。ds1820的測(cè)溫原理:內(nèi)部計(jì)數(shù)器對(duì)一個(gè)受溫度影響的振蕩器的脈沖計(jì)數(shù),低溫時(shí)振蕩器的脈沖可以通過(guò)門(mén)電路,而當(dāng)?shù)竭_(dá)某一設(shè)置高溫時(shí)振蕩器的脈沖無(wú)法通過(guò)門(mén)電路。計(jì)數(shù)器設(shè)置為-55℃時(shí)的值,如果計(jì)數(shù)器到達(dá)0之前,門(mén)電路未關(guān)閉,則溫度寄存器的值將增加,這表示當(dāng)前溫度高于-55℃。同時(shí),計(jì)數(shù)器復(fù)位在當(dāng)前溫度值上,電路對(duì)振蕩器的溫度系數(shù)進(jìn)行補(bǔ)償,計(jì)數(shù)器重新開(kāi)始計(jì)數(shù)直到回零。如果門(mén)電路仍然未關(guān)閉,則重復(fù)以上過(guò)程。溫度表示值為9bit,高位為符號(hào)位,其結(jié)構(gòu)如下: 820的使用,多采用單片機(jī)實(shí)現(xiàn)數(shù)據(jù)采集。處理時(shí),將ds1820信號(hào)線與單片機(jī)一位口線相連,單片機(jī)可掛接多片ds1820,從而實(shí)現(xiàn)多點(diǎn)溫度檢測(cè)系統(tǒng)。系統(tǒng)對(duì)ds1820的操作以rom命令和存儲(chǔ)器命令形式出現(xiàn)。3.1rom命令代碼及其含義·readrom命令代碼[33h]:如果只有一片ds1820,可用此命令讀出其序列號(hào),若在線ds1820多于一個(gè),將發(fā)生沖突?!atchrom命令代碼[55h]:多個(gè)ds1820在線時(shí),可用此命令匹配一個(gè)給定序列號(hào)的ds1820,此后的命令就針對(duì)該ds1820?!kiprom命令代碼[cch]:此命令執(zhí)行后的存儲(chǔ)器操作將針對(duì)在線的所有ds1820?!earchrdh命令代碼[f0h]:用以讀出在線的ds1820的序列號(hào)?!larmsearch命令代碼[ech]:當(dāng)溫度值高于th或低于tl中的數(shù)值時(shí),此命令可以讀出