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