王 琪,朱光衡
南京化工職業(yè)技術(shù)學(xué)院自動(dòng)控制系,江蘇南京 210048
一種基于DS18B20的單點(diǎn)測溫方法的研究
王 琪,朱光衡
南京化工職業(yè)技術(shù)學(xué)院自動(dòng)控制系,江蘇南京 210048
DS18B20為一線式數(shù)字溫度傳感器,具有耐磨耐碰、體積小、使用方便、封裝形式多樣、適用于各種狹小空間的特點(diǎn)。用于溫度檢測系統(tǒng)可實(shí)現(xiàn)溫度的自動(dòng)檢測與轉(zhuǎn)換,使系統(tǒng)具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點(diǎn)。
溫度測量;DS18B20;傳感器
與傳統(tǒng)的溫度傳感器相比,DS18B20數(shù)字式溫度傳感器能夠直接讀出被測溫度并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。可以分別在93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量,讀出或?qū)懭胄畔H需要一根口線進(jìn)行,其電源可以從外部3V~5.5V的電壓得到??偩€本身也可以向其供電,而無需額外電源。因而可使系統(tǒng)結(jié)構(gòu)更趨簡單,可靠性更高。
對(duì)DS18B20進(jìn)行初始化需遵循以下步驟:先將數(shù)據(jù)線置高電平“1”→延時(shí)(短時(shí)延時(shí))→數(shù)據(jù)線拉到低電平“0”→延時(shí)480μs~960μs→數(shù)據(jù)線拉到高電平“1” →延時(shí)等待(如果初始化成功則在15ms~60ms時(shí)間之內(nèi)產(chǎn)生一個(gè)由DS18B20所返回的低電平“0”→但是應(yīng)注意不能無限的進(jìn)行等待,否則會(huì)使程序進(jìn)入死循環(huán))→若CPU讀到了數(shù)據(jù)線上的低電平“0”后,還要延時(shí),延時(shí)的時(shí)間從發(fā)出的高電平算起(第5步算起)最少要480μs→將數(shù)據(jù)線再次拉高到高電平“1”后結(jié)束。 程序如下:
2)寫操作過程:
數(shù)據(jù)線先置低電平“0”→ 延時(shí)15μs→ 按從低位到高位的順序發(fā)送字節(jié)(一次只發(fā)送一位)→ 延時(shí)45μs→ 將數(shù)據(jù)線拉到高電平 → 重復(fù)上面的操作直到所有的字節(jié)全部發(fā)送完為止 → 最后將數(shù)據(jù)線拉高。程序如下:
當(dāng)要對(duì)DS18B20 進(jìn)行操作時(shí),其操作流程為:
初始化 1-WIRE 總線 → 發(fā)送 ROM 命令 → 發(fā)送 Memory 命令→ 提取數(shù)據(jù)(最后一項(xiàng)可省略)。工作中系統(tǒng)對(duì)DS18B20的操作以ROM 命令(如表1)和RAM命令(如表2)形式出現(xiàn)。
表1 ROM指令表
表2 RAM指令表
DS18B20雖然具有測溫系統(tǒng)簡單、精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際使用時(shí)也要注意幾個(gè)問題,例如相對(duì)于較小的硬件開銷就需要有相對(duì)復(fù)雜的程序進(jìn)行補(bǔ)償。另外在對(duì)其進(jìn)行讀寫編程時(shí),必須嚴(yán)格的保證讀寫時(shí)序,否則將無法讀取測溫結(jié)果。還有在進(jìn)行多點(diǎn)測溫時(shí)要注意當(dāng)單總線上所掛DS1820超過8個(gè)時(shí),就需要解決微處理器的總線驅(qū)動(dòng)問題等等。
[1]陶冶.基于DS18B20的單片機(jī)測溫系統(tǒng)[J].農(nóng)機(jī)化研究,2009(1).
[2]朱清慧,張鳳蕊,翟天嵩.Proteus教程--電子線路設(shè)計(jì)、制版與仿真[M].北京:清華大學(xué)出版社,2008.
[3]王為青,程國鋼.單片機(jī)Keil Cx51應(yīng)用開發(fā)技術(shù)[M].北京:人民郵電出版社,2007.
[4]周月霞.DS18B20硬件連接及軟件編程[J].信號(hào)與處理,2008(2).
TP212
A
1674-6708(2011)50-0223-02
王琪,講師,工作單位:南京化工職業(yè)技術(shù)學(xué)院自動(dòng)控制系,從事自動(dòng)控制系統(tǒng)的教學(xué)與研究工作