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