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