賈宇龍
(內(nèi)蒙古科技大學(xué),內(nèi)蒙古 包頭 014010)
在日常生活、生產(chǎn)和工作中,對(duì)多點(diǎn)溫度的測量需求一直是必要的,比如電力及醫(yī)療設(shè)備過熱監(jiān)測、物聯(lián)網(wǎng)應(yīng)用,以及危險(xiǎn)環(huán)境下的溫度測量。而市面上常見的測量方法存在反饋時(shí)間長、系統(tǒng)復(fù)雜、精度較差、功能良莠不齊等問題。而該系統(tǒng)以單片機(jī)為控制中樞,通過多模塊信息交互,實(shí)現(xiàn)多點(diǎn)溫度監(jiān)測等功能,并最終將數(shù)據(jù)傳輸?shù)絇C 機(jī)上,可以做到隨時(shí)監(jiān)測,有效提高了多點(diǎn)測溫的效率和質(zhì)量。
用4 片DS18B20 傳感器構(gòu)成溫度采集系統(tǒng),具有溫度顯示、溫度報(bào)警、參數(shù)設(shè)置和串口遠(yuǎn)程操控能力。
主要功能包括8 個(gè)方面。1)4 路溫度采集,測溫范圍:-55 ℃~+125 ℃,精度0.1 ℃。2)8 位數(shù)碼管顯示,顯示功能包括提示對(duì)應(yīng)的溫度信息、顯示當(dāng)前通道號(hào)以及當(dāng)前通道的采集溫度、系統(tǒng)參數(shù)值(報(bào)警上下限和回差)高溫報(bào)警時(shí),200 ms 快速閃爍溫度,低溫報(bào)警時(shí),1 s 慢速閃爍溫度。3)具有上下限報(bào)警功能,用指示燈提示報(bào)警,并閃爍當(dāng)前溫度值。4)4 個(gè)按鍵進(jìn)行人機(jī)交互,按鍵功能包括切換顯示通道、修改報(bào)警上下限和報(bào)警回差(報(bào)警范圍-20 ℃~120 ℃)。5)系統(tǒng)參數(shù)(報(bào)警上下限和回差)掉電不能丟失。6)PC 通過串口命令可以控制采集系統(tǒng)的行為,包括:讀取報(bào)警上下限和報(bào)警回差、設(shè)置報(bào)警上下限和報(bào)警回差、讀取當(dāng)前采集的溫度值、開關(guān)自動(dòng)溫度報(bào)文功能。7)采樣周期:500 ms。8)USB 供電方式。
系統(tǒng)主要的設(shè)計(jì)理念是主從分布思想,一方面,單片機(jī)系統(tǒng)可單獨(dú)工作,用戶采集溫度通過串口實(shí)時(shí)控制傳輸并且顯示環(huán)境各點(diǎn)的溫度值。另一方面,PC 機(jī)可發(fā)送控制命令給下位機(jī)進(jìn)行溫度采集,也可進(jìn)行溫度的處理與顯示,使觀測者可以實(shí)時(shí)得到溫度的變化情況。即PC 機(jī)與單片機(jī)系統(tǒng)組成兩級(jí)主從分布式多點(diǎn)溫度監(jiān)測系統(tǒng),最終通過軟硬件設(shè)計(jì)完成整個(gè)系統(tǒng)設(shè)計(jì)。
該系統(tǒng)硬件部分主要包括溫度轉(zhuǎn)換模塊、串口通信模塊、高低溫報(bào)警模塊、溫度顯示及控制模塊、溫度存儲(chǔ)模塊,電路設(shè)計(jì)框圖如圖1 所示。溫度轉(zhuǎn)換模塊主要負(fù)責(zé)將DS18B20 傳輸?shù)淖止?jié)轉(zhuǎn)換成機(jī)器可識(shí)別的十進(jìn)制溫度。溫度顯示模塊用8 位共陰極數(shù)碼管。串口通信模塊主要是負(fù)責(zé)將數(shù)據(jù)從下位機(jī)傳送至上位機(jī),報(bào)警電路模塊負(fù)責(zé)將實(shí)時(shí)溫度和設(shè)定的溫度上下限進(jìn)行對(duì)比,決定是否啟動(dòng)報(bào)警,溫度存儲(chǔ)模塊主要負(fù)責(zé)存儲(chǔ)報(bào)警上下限。
圖1 電路設(shè)計(jì)框圖
單片機(jī)采用80C51 單片機(jī)作為控制中樞,采用12 MHz的晶振頻率,內(nèi)部較為完整的結(jié)構(gòu)及總線、SFR 的集中管理模式、面向工業(yè)控制的8 位操作系統(tǒng)和面向控制功能的指令系統(tǒng)是該單片機(jī)的優(yōu)勢特點(diǎn)。此外,該單片機(jī)內(nèi)含的時(shí)鐘電路需要外接石英晶體和微調(diào)電容。
在該系統(tǒng)中,DS18B20 單總線元件與80C51 的連接采用電源供電。DS18B20 是DALLAS 半導(dǎo)體公司研發(fā)的一種單總線改進(jìn)型數(shù)字溫度傳感芯片[1],可直接與單片機(jī)連接,它的測溫范圍在-55 ℃~+125 ℃,測量分辨率達(dá)到0.0625 ℃,最大的特點(diǎn)是在不進(jìn)行其余轉(zhuǎn)換的情況下,可以直接讀取溫度信息,也可由用戶設(shè)定具有不易丟失性的報(bào)警上下限,而且在單總線工作模式下,允許多個(gè)傳感器同時(shí)工作,可以實(shí)現(xiàn)雙向通信并且具備抗干擾能力,這樣占用端口少且節(jié)省了大量的連接線和邏輯電路,實(shí)現(xiàn)了多點(diǎn)測量的主要功能。
溫度顯示模塊采用8 位共陰LED 數(shù)碼管,一端為輸出段碼端,一端為位選端。為了有效節(jié)省輸入輸出端口,即節(jié)約硬件資源,系統(tǒng)中用動(dòng)態(tài)掃描的方式進(jìn)行顯示。
在溫度高于上限或低于下限時(shí),上下限報(bào)警模塊提供報(bào)警提示。這一模塊是有2 個(gè)陽極接電源的發(fā)光二極管以及數(shù)碼顯示屏組成,當(dāng)對(duì)應(yīng)引腳為低電平時(shí)被點(diǎn)亮,同時(shí)數(shù)碼管顯示屏上的數(shù)字定時(shí)閃爍。
AT24C02 是Atmel 公司開發(fā)的一種低功耗 CMOS 型可編程只讀存儲(chǔ)器芯片[2]。AT24C02 有一個(gè)16 字節(jié)頁寫緩沖器和一個(gè)專門的寫保護(hù)端口,用來支持硬件的寫保護(hù)。它通過兩線串行電可擦除接口(I2C)總線模式進(jìn)行數(shù)據(jù)傳輸操作,所以占用硬件的資源和接口線較少,傳輸時(shí)鐘頻率達(dá)400 kHz。在程序運(yùn)行時(shí)數(shù)據(jù)可進(jìn)行改寫,掉電后數(shù)據(jù)不丟失,相當(dāng)于單片機(jī)的硬盤。
按鍵在人機(jī)交互中起著重要作用。該系統(tǒng)從實(shí)際出發(fā)設(shè)定了4 個(gè)獨(dú)立式按鍵,分別是用來實(shí)現(xiàn)切換溫度通道、設(shè)置溫度回差、設(shè)定報(bào)警溫度的上下限和查看上下報(bào)警溫度的功能。單片機(jī)的輸入輸出口與按鍵接地后直接連接,不會(huì)影響其他按鍵的狀態(tài)。程序設(shè)計(jì)為低電平觸發(fā)。除此之外,為了確保按鍵閉合后有有效的輸入信號(hào),需要對(duì)其進(jìn)行消抖處理。比起硬件消抖來說,軟件消抖簡單易行,因此采用軟件處理辦法來消除按鍵抖動(dòng)的影響。
系統(tǒng)開始運(yùn)行后,PC 機(jī)與單片機(jī)系統(tǒng)組成兩級(jí)主從分布式溫度監(jiān)測系統(tǒng),兩者通過串行通信線相互連接,由PC 機(jī)向單片機(jī)傳輸工作方式指令。上位機(jī)構(gòu)成了設(shè)計(jì)的主系統(tǒng),主要是在Windows 系統(tǒng)下的PC 機(jī),對(duì)整個(gè)系統(tǒng)進(jìn)行控制監(jiān)測,可發(fā)送控制命令給下位機(jī)進(jìn)行溫度采集,在PC 機(jī)上也可進(jìn)行溫度的處理與顯示。下位機(jī)80C51 構(gòu)成從系統(tǒng)。
該系統(tǒng)的主程序采用C 語言編程,對(duì)不同模塊進(jìn)行驅(qū)動(dòng)編程、功能定義和接口定義,主要由DS18B20 子程序、AT24C02 子程序、控制按鍵子程序、上下限報(bào)警子程序、數(shù)碼顯示子程序、菜單設(shè)置子程序等組成,進(jìn)而實(shí)現(xiàn)不同模塊間的數(shù)據(jù)傳輸,最后完成整個(gè)運(yùn)行。
分為4 個(gè)步驟。1)初始化。2)ROM 操作指令。3)存儲(chǔ)器操作指令。4)數(shù)據(jù)傳輸。
分為4 個(gè)步驟。1)起始信號(hào)。2)(頁)寫字節(jié)和(頁)讀字節(jié)。3)等待應(yīng)答和發(fā)送應(yīng)答。4)終止信號(hào)。
結(jié)果表明,Proteus 與Keil 聯(lián)調(diào)構(gòu)建的實(shí)際電路在仿真系統(tǒng)中運(yùn)行良好,最終可實(shí)現(xiàn)對(duì)所需要監(jiān)測的環(huán)境溫度的全面控制, 將測溫?cái)?shù)據(jù)通過串口通信傳輸給計(jì)算機(jī)。通過切換對(duì)應(yīng)序號(hào)DS18B20 的加溫減溫按鍵,可在數(shù)碼管顯示屏上得到對(duì)應(yīng)的序號(hào)值和溫度值,測溫范圍為-55 ℃~+125 ℃。
通過調(diào)節(jié)溫度通道開關(guān)設(shè)置,按下后不停的在4 個(gè)溫度傳感器之間不斷切換,并在數(shù)碼管顯示屏上得到此時(shí)的序號(hào)和溫度。通過調(diào)節(jié)設(shè)置按鈕,可切換3 種設(shè)置狀態(tài)。1)設(shè)置報(bào)警上限。2)設(shè)置報(bào)警下限。3)設(shè)置溫度回差,實(shí)現(xiàn)控制報(bào)警(報(bào)警范圍-20 ℃~120 ℃)。在設(shè)置狀態(tài)下,可通過按下數(shù)值加、數(shù)值減按鍵,調(diào)節(jié)對(duì)應(yīng)狀態(tài)下的報(bào)警上限、報(bào)警下限及回差。
如果傳感器溫度高于報(bào)警上限,報(bào)警模塊中的高溫報(bào)警LED 燈亮起,顯示屏200 ms 快速閃爍當(dāng)前溫度。如果傳感器溫度低于報(bào)警下限,報(bào)警模塊中的低溫報(bào)警LED 燈亮起,顯示屏1 s 慢速閃爍當(dāng)前溫度。涉及回差時(shí),比如上限溫度40 ℃,不存在回差,那么當(dāng)溫度超過40 ℃時(shí)報(bào)警,降到40 ℃以下時(shí)取消報(bào)警。當(dāng)設(shè)置上限溫度40 ℃,存在回差2 ℃,那么當(dāng)溫度到40 ℃時(shí)報(bào)警,回到38 ℃以下時(shí)取消報(bào)警。
該次設(shè)計(jì)可較好的完成預(yù)期設(shè)計(jì)效果,節(jié)省了搭建實(shí)物的時(shí)間與經(jīng)費(fèi)。該系統(tǒng)可用于多種應(yīng)用場景,在大多數(shù)危險(xiǎn)環(huán)境下可以實(shí)現(xiàn)實(shí)時(shí)監(jiān)測環(huán)境溫度的功能,如果再加上后期控制系統(tǒng)設(shè)計(jì)、智能控制空調(diào)等控溫設(shè)備,即可構(gòu)建完整的環(huán)境溫度監(jiān)測方案,有較強(qiáng)的實(shí)用價(jià)值。