基于DS18B20和AT89C52的溫度測量和顯示系統(tǒng)
3.3 讀時序
所有的讀時隙必須至少持續(xù)60μs,并在每個獨立的讀時隙之間至少有1μs的恢復(fù)時間。讀時隙開始后,先由單片機拉低總線至少1μs,然后單片機釋放總線。讀時隙開始后,DS18B20將開始向總線發(fā)送1或0。發(fā)送0時,DS18B20釋放總線直到時隙結(jié)束,此后上拉電阻將把總線拉回到高電平的空閑狀態(tài)。DS18B20的數(shù)據(jù)在讀時隙開始之后15μs之內(nèi)有效,因此,單片機在時隙開始后,必須釋放總線,然后在15 μs之內(nèi)對總線進行采樣。下面是從DS18B20讀出一個字節(jié)數(shù)據(jù)的程序:
3.4 主要命令
DS18B20有5個ROM操作命令,6個存儲器操作命令,表1所列是DS18B20的操作命令。
本系統(tǒng)主要使用了表1中的3個命令,即跳過ROM、溫度變換和讀暫存器命令。
3.5 顯示程序
DS18B20提供的溫度數(shù)據(jù)有兩個字節(jié),其中低8位的末4位是小數(shù)部分,因此,程序中對溫度數(shù)據(jù)的整數(shù)部分和小數(shù)部分要分別進行處理。如t=t>>4;即得到溫度值的整數(shù)部分,t=t0x0f;則得到溫度值的小數(shù)部分,然后分別在數(shù)碼管上進行顯示。
3.6 報警部分
在程序中設(shè)置溫度上限和溫度下限后,測量溫度將與門限值進行比較。如果測量溫度高于溫度上限或者低于溫度下限,系統(tǒng)就發(fā)出報警。
4 結(jié)語
本文基于數(shù)字溫度傳感器DS18B20設(shè)計并仿真了一個溫度測量與顯示系統(tǒng),同時,系統(tǒng)設(shè)置了溫度上限和溫度下限,當(dāng)測量溫度超出溫度門限值時,系統(tǒng)便會報警。事實上,具有顯示與報警功能的溫度測量系統(tǒng)的應(yīng)用非常廣泛,而且DS18B20可以支持多點組網(wǎng),因此可以同時測量多點溫度。
評論