基于AVR單片機和DS18B20的多點溫度測量系統
測試中,DS18B20選擇芯片出廠時默認的12位轉換精度,轉換的結果用16位符號擴展的二進制補碼讀數形式提供。關于DS18B20可參考DALLAS公司的數據手冊。
多點溫度巡回測量的主要程序如下:
上述兩個程序可以編寫為兩個子程序,主程序在初始化工作完成后,讀開關K1的狀態,如為打開狀態調用溫度巡回測量部分的子程序;如為閉合狀態調用獲取ROM代碼子程序。
4.1設置報警限值
DS18B20設有溫度高低限報警功能。DSl8B20的存儲器由兩部分組成:一個是9字節的靜態RAM,其中第0和第1字節用于存儲16位的溫度轉換值,第2(高溫限TH)和第3字節(低溫限TL)作為溫度報警限值或通用存儲器單元供用戶使用;另一個是非易失性的E2PROM。當靜態RAM作為溫度報警限值使用時,可以在系統安裝和工作前,用寫RAM命令4EH將高溫限TH和低溫限TL寫入第2和第3字節單元。由于靜態RAM掉電后信息即丟失,因此需要再通過拷貝RAM命令48H將第2和第3字節單元的溫度報警限值拷貝到E2PROM中。主程序只要在初始化部分使用重調E2PROM命令B8H,就可以將E2PROM中的溫度報警限值重新拷貝到靜態RAM中。
4.2報警處理
系統正常工作時,在啟動所有的DS18B20作溫度轉換后,可以使用報警搜索命令ECH,發現溫度值高于TH或低于TL的數值時,則讀取報警的DS18B20的ROM代碼,通過查AVR單片機內部E2PROM中測量位置點和傳感器64位ROM代碼之間的關系表即可得到報警的DS18B20的位置編號,從而啟動語音報警或在LCD上顯示報警點的位置編號。
本文的設計方法,將DS18B20 ROM代碼的獲取和溫度的測量融為一體,利用單片機內部的E2PROM建立了測量位置點和ROM代碼之間的關系表,用簡單的硬件及編程方法實現了多點溫度的測量、數字溫度傳感器的出錯指示和識別,大大有利于系統的調試和擴充,能有效降低成本,縮短開發周期。在糧庫測溫系統、冷庫測溫系統、中央空調系統、智能建筑自控系統等多點溫度測量系統中將獲得廣泛的應用。
單片機相關文章:單片機教程
單片機相關文章:單片機視頻教程
單片機相關文章:單片機工作原理
溫濕度控制器相關文章:溫濕度控制器原理
評論