賈宇龍
(內蒙古科技大學,內蒙古 包頭 014010)
在日常生活、生產和工作中,對多點溫度的測量需求一直是必要的,比如電力及醫療設備過熱監測、物聯網應用,以及危險環境下的溫度測量。而市面上常見的測量方法存在反饋時間長、系統復雜、精度較差、功能良莠不齊等問題。而該系統以單片機為控制中樞,通過多模塊信息交互,實現多點溫度監測等功能,并最終將數據傳輸到PC 機上,可以做到隨時監測,有效提高了多點測溫的效率和質量。
用4 片DS18B20 傳感器構成溫度采集系統,具有溫度顯示、溫度報警、參數設置和串口遠程操控能力。
主要功能包括8 個方面。1)4 路溫度采集,測溫范圍:-55 ℃~+125 ℃,精度0.1 ℃。2)8 位數碼管顯示,顯示功能包括提示對應的溫度信息、顯示當前通道號以及當前通道的采集溫度、系統參數值(報警上下限和回差)高溫報警時,200 ms 快速閃爍溫度,低溫報警時,1 s 慢速閃爍溫度。3)具有上下限報警功能,用指示燈提示報警,并閃爍當前溫度值。4)4 個按鍵進行人機交互,按鍵功能包括切換顯示通道、修改報警上下限和報警回差(報警范圍-20 ℃~120 ℃)。5)系統參數(報警上下限和回差)掉電不能丟失。6)PC 通過串口命令可以控制采集系統的行為,包括:讀取報警上下限和報警回差、設置報警上下限和報警回差、讀取當前采集的溫度值、開關自動溫度報文功能。7)采樣周期:500 ms。8)USB 供電方式。
系統主要的設計理念是主從分布思想,一方面,單片機系統可單獨工作,用戶采集溫度通過串口實時控制傳輸并且顯示環境各點的溫度值。另一方面,PC 機可發送控制命令給下位機進行溫度采集,也可進行溫度的處理與顯示,使觀測者可以實時得到溫度的變化情況。即PC 機與單片機系統組成兩級主從分布式多點溫度監測系統,最終通過軟硬件設計完成整個系統設計。
該系統硬件部分主要包括溫度轉換模塊、串口通信模塊、高低溫報警模塊、溫度顯示及控制模塊、溫度存儲模塊,電路設計框圖如圖1 所示。溫度轉換模塊主要負責將DS18B20 傳輸的字節轉換成機器可識別的十進制溫度。溫度顯示模塊用8 位共陰極數碼管。串口通信模塊主要是負責將數據從下位機傳送至上位機,報警電路模塊負責將實時溫度和設定的溫度上下限進行對比,決定是否啟動報警,溫度存儲模塊主要負責存儲報警上下限。

圖1 電路設計框圖
單片機采用80C51 單片機作為控制中樞,采用12 MHz的晶振頻率,內部較為完整的結構及總線、SFR 的集中管理模式、面向工業控制的8 位操作系統和面向控制功能的指令系統是該單片機的優勢特點。此外,該單片機內含的時鐘電路需要外接石英晶體和微調電容。
在該系統中,DS18B20 單總線元件與80C51 的連接采用電源供電。DS18B20 是DALLAS 半導體公司研發的一種單總線改進型數字溫度傳感芯片[1],可直接與單片機連接,它的測溫范圍在-55 ℃~+125 ℃,測量分辨率達到0.0625 ℃,最大的特點是在不進行其余轉換的情況下,可以直接讀取溫度信息,也可由用戶設定具有不易丟失性的報警上下限,而且在單總線工作模式下,允許多個傳感器同時工作,可以實現雙向通信并且具備抗干擾能力,這樣占用端口少且節省了大量的連接線和邏輯電路,實現了多點測量的主要功能。
溫度顯示模塊采用8 位共陰LED 數碼管,一端為輸出段碼端,一端為位選端。為了有效節省輸入輸出端口,即節約硬件資源,系統中用動態掃描的方式進行顯示。
在溫度高于上限或低于下限時,上下限報警模塊提供報警提示。這一模塊是有2 個陽極接電源的發光二極管以及數碼顯示屏組成,當對應引腳為低電平時被點亮,同時數碼管顯示屏上的數字定時閃爍。
AT24C02 是Atmel 公司開發的一種低功耗 CMOS 型可編程只讀存儲器芯片[2]。AT24C02 有一個16 字節頁寫緩沖器和一個專門的寫保護端口,用來支持硬件的寫保護。它通過兩線串行電可擦除接口(I2C)總線模式進行數據傳輸操作,所以占用硬件的資源和接口線較少,傳輸時鐘頻率達400 kHz。在程序運行時數據可進行改寫,掉電后數據不丟失,相當于單片機的硬盤。
按鍵在人機交互中起著重要作用。該系統從實際出發設定了4 個獨立式按鍵,分別是用來實現切換溫度通道、設置溫度回差、設定報警溫度的上下限和查看上下報警溫度的功能。單片機的輸入輸出口與按鍵接地后直接連接,不會影響其他按鍵的狀態。程序設計為低電平觸發。除此之外,為了確保按鍵閉合后有有效的輸入信號,需要對其進行消抖處理。比起硬件消抖來說,軟件消抖簡單易行,因此采用軟件處理辦法來消除按鍵抖動的影響。
系統開始運行后,PC 機與單片機系統組成兩級主從分布式溫度監測系統,兩者通過串行通信線相互連接,由PC 機向單片機傳輸工作方式指令。上位機構成了設計的主系統,主要是在Windows 系統下的PC 機,對整個系統進行控制監測,可發送控制命令給下位機進行溫度采集,在PC 機上也可進行溫度的處理與顯示。下位機80C51 構成從系統。
該系統的主程序采用C 語言編程,對不同模塊進行驅動編程、功能定義和接口定義,主要由DS18B20 子程序、AT24C02 子程序、控制按鍵子程序、上下限報警子程序、數碼顯示子程序、菜單設置子程序等組成,進而實現不同模塊間的數據傳輸,最后完成整個運行。
分為4 個步驟。1)初始化。2)ROM 操作指令。3)存儲器操作指令。4)數據傳輸。
分為4 個步驟。1)起始信號。2)(頁)寫字節和(頁)讀字節。3)等待應答和發送應答。4)終止信號。
結果表明,Proteus 與Keil 聯調構建的實際電路在仿真系統中運行良好,最終可實現對所需要監測的環境溫度的全面控制, 將測溫數據通過串口通信傳輸給計算機。通過切換對應序號DS18B20 的加溫減溫按鍵,可在數碼管顯示屏上得到對應的序號值和溫度值,測溫范圍為-55 ℃~+125 ℃。
通過調節溫度通道開關設置,按下后不停的在4 個溫度傳感器之間不斷切換,并在數碼管顯示屏上得到此時的序號和溫度。通過調節設置按鈕,可切換3 種設置狀態。1)設置報警上限。2)設置報警下限。3)設置溫度回差,實現控制報警(報警范圍-20 ℃~120 ℃)。在設置狀態下,可通過按下數值加、數值減按鍵,調節對應狀態下的報警上限、報警下限及回差。
如果傳感器溫度高于報警上限,報警模塊中的高溫報警LED 燈亮起,顯示屏200 ms 快速閃爍當前溫度。如果傳感器溫度低于報警下限,報警模塊中的低溫報警LED 燈亮起,顯示屏1 s 慢速閃爍當前溫度。涉及回差時,比如上限溫度40 ℃,不存在回差,那么當溫度超過40 ℃時報警,降到40 ℃以下時取消報警。當設置上限溫度40 ℃,存在回差2 ℃,那么當溫度到40 ℃時報警,回到38 ℃以下時取消報警。
該次設計可較好的完成預期設計效果,節省了搭建實物的時間與經費。該系統可用于多種應用場景,在大多數危險環境下可以實現實時監測環境溫度的功能,如果再加上后期控制系統設計、智能控制空調等控溫設備,即可構建完整的環境溫度監測方案,有較強的實用價值。