基于DS18B20的溫度測(cè)量和顯示系統(tǒng)設(shè)計(jì)與仿真
要產(chǎn)生寫1時(shí)隙,單片機(jī)在拉低總線后必須在15 μs之內(nèi)釋放總線??偩€被釋放后,上拉電阻將把總線拉高。要產(chǎn)生寫0時(shí)隙,單片機(jī)在拉低總線后必須繼續(xù)保持總線低電平使時(shí)隙至少60μs。DS18B20在時(shí)隙開始后15~60 μs之間的時(shí)間段內(nèi)對(duì)總線進(jìn)行采樣,如果總線是高電平,則向DS18B20寫入一個(gè)1,如果總線是低電平,則向DS18B20寫入一個(gè)0。
下面是向DS18B20寫入一個(gè)字節(jié)數(shù)據(jù)的程序代碼:
3.4 主要命令
DS18B20有5個(gè)ROM操作命令,6個(gè)存儲(chǔ)器操作命令,表1所列是DS18B20的操作命令。
本系統(tǒng)主要使用了表1中的3個(gè)命令,即跳過ROM、溫度變換和讀暫存器命令。本文引用地址:http://2s4d.com/article/192907.htm
3.5 顯示程序
DS18B20提供的溫度數(shù)據(jù)有兩個(gè)字節(jié),其中低8位的末4位是小數(shù)部分,因此,程序中對(duì)溫度數(shù)據(jù)的整數(shù)部分和小數(shù)部分要分別進(jìn)行處理。如t=t>>4;即得到溫度值的整數(shù)部分,t=t0x0f;則得到溫度值的小數(shù)部分,然后分別在數(shù)碼管上進(jìn)行顯示。
3.6 報(bào)警部分
在程序中設(shè)置溫度上限和溫度下限后,測(cè)量溫度將與門限值進(jìn)行比較。如果測(cè)量溫度高于溫度上限或者低于溫度下限,系統(tǒng)就發(fā)出報(bào)警。
4 結(jié)語
本文基于數(shù)字溫度傳感器DS18B20設(shè)計(jì)并仿真了一個(gè)溫度測(cè)量與顯示系統(tǒng),同時(shí),系統(tǒng)設(shè)置了溫度上限和溫度下限,當(dāng)測(cè)量溫度超出溫度門限值時(shí),系統(tǒng)便會(huì)報(bào)警。事實(shí)上,具有顯示與報(bào)警功能的溫度測(cè)量系統(tǒng)的應(yīng)用非常廣泛,而且DS18B20可以支持多點(diǎn)組網(wǎng),因此可以同時(shí)測(cè)量多點(diǎn)溫度。
評(píng)論