分布式測溫中傳感器時序與溫度讀取研究
READ: MOV R6, #8 ; 循環次數為8
SETB DAT ; 讀出一位程序,執行傳感器讀時序
NOP
NOP
RD11: CLR DAT
MOV R4, #4
NOP ; 持續低電平2us
SETB DAT ; 釋放數據線
RD12: DJNZ R4, RD12 ; 等待8us
MOV C, DAT ; 讀入一位
RRC A ; 將讀入數據移入累加器A
MOV R5, #28
RD13: DJNZ R5, RD13 ; 保證一個讀周期持續60us
DJNZ R6, RD11 ; 循環8次讀一個字節
SETB DAT
RET
上述程序執行完畢,可將溫度傳感器的64位序列號存放在單片機內部RAM 30H ~ 37H單元中。
4.分布式測溫系統中溫度顯示
分布式測溫系統中,采用液晶顯示可以實現房間號的顯示,實際溫度的顯示,報警上限值的顯示以及報警發生時的時間。還可以循環顯示多個房間的實際溫度和上限值。如圖5所示。
5.結束語
正確讀取多個單總線數字溫度傳感器DS18B20的溫度在分布式測溫系統中是非常重要的。由于在程序設計時必須根據嚴格的時序關系,因此本文作者創新點是詳細闡述了初始化時序、讀寫時序等復雜邏輯關系,設計了正確的溫度序列號讀取程序和溫度讀寫程序并能夠進行液晶顯示。由于單總線數字溫度傳感器DS18B20各個功能的實現是通過各種ROM命令與操作功能命令實現的,這些命令一環扣著一環,每個環都是一個時序的集合。在進行程序調試時,不能像調試其它程序一樣用單步執行來進行跟蹤,因此對錯誤查找和程序優化帶來了很大的難度。在遇到程序運行出錯時,只能夠根據錯誤現象來分析、推測、修改和再運行來解決,而不能直接定位。文中所介紹的單總線數字溫度傳感器DS18B20程序設計思路與方法,目前已較好地應用于分布式測溫系統中,并且滿足一定精度要求。
評論