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