采用單片機(jī)設(shè)計(jì)溫濕度控制儀
在某些行業(yè)中對溫濕度的要求較高,特別是在電力系統(tǒng)中,由于溫度過高、過低引起的元件失效或由于濕度過高而引起的爬電、閃絡(luò)事故時有發(fā)生。為了避免這些故障,需要在電力設(shè)備柜體內(nèi)安裝控溫、除濕設(shè)備。采用單片機(jī)開發(fā)的的溫濕度控制儀功能齊全、操作簡便,特別適用于對溫濕度控制要求較高的繼電保護(hù)柜、儀表箱、計(jì)量柜等設(shè)備。主要技術(shù)指標(biāo)如下。
溫度指示:-30℃~120℃,精度±1℃;
濕度指示:(0~100)%RH,精度±5%RH;
加熱器啟動條件:溫度顯示值≤低溫加熱下限T1_L時,或濕度顯示值≥過濕加熱整定值上限H_H時;
加熱器退出條件:溫度顯示值≥低溫加熱上限T1_H與濕度顯示值≤過濕加熱整定值下限H_L都滿足時;
排風(fēng)扇啟動條件:溫度顯示值≥排風(fēng)降溫整定值上限T2_H時;
排風(fēng)扇停止條件:溫度顯示值≤排風(fēng)降溫整定值下限T2_L時;
繼電器觸點(diǎn)容量:AC220V/10A。
圖1:溫濕度控制儀硬件結(jié)構(gòu)圖
硬件設(shè)計(jì)
本系統(tǒng)硬件結(jié)構(gòu)如圖1所示,整個系統(tǒng)的核心采用與MCS-51完全兼容的GMS97C2051單片機(jī),20腳封裝,減少了P0口和P2口,其他配置與性能不變,OTP器件降低了硬件成本。
系統(tǒng)中使用美國IMP公司的單片機(jī)系統(tǒng)監(jiān)控電路IMP813L,以防程序跑飛。如果WDI不處于浮空狀態(tài),在1.6秒內(nèi)GMS97C2051不觸發(fā)看門狗輸入WDI,就說明程序已經(jīng)紊亂,看門狗輸出端將輸出低電平到手動復(fù)位端,使復(fù)位輸出端發(fā)出復(fù)位信號,使GMS97C2051可靠復(fù)位。
顯示電路采用帶有高速串行接口的8位LED控制驅(qū)動器PS7219。PS7219是高性能、低價格的多位LED顯示驅(qū)動器,完全兼容MAX7219,并增添了位閃等功能。其接口采用流行的同步串行外設(shè)接口SPI,可與任何一種單片機(jī)方便接口,并可同時驅(qū)動8位LED。PS7219內(nèi)部有15×8 RAM功能控制寄存器,可方便尋址、對每位數(shù)字可單獨(dú)控制、刷新,不需重寫整個顯示器,顯示亮度可數(shù)字控制,每位都有閃爍使能控制位。PS7219的這些特點(diǎn),既節(jié)省了I/O口,又方便了編程。
[!--empirenews.page--]
A/D轉(zhuǎn)換器采用8位串行控制模數(shù)轉(zhuǎn)換器TLC0834。TLC0834是低價格8位逐次逼近型A/D轉(zhuǎn)換器,其多路器可用軟件配置為單端或差分輸入,也可配置為偽差分輸入,基準(zhǔn)電壓的大小可調(diào),在全8位分辨率下允許任意小的模擬電壓編程間隔。
濕敏傳感器采用電容式濕敏元件HS1101。HS1101有響應(yīng)快、線性度高、高可靠性和常時間穩(wěn)定性、常時間飽和下快速脫濕等優(yōu)點(diǎn)。IC1-a與 R1、R2、C1組成一個多諧振蕩器,其振蕩頻率f=1.44/(R1+2R2)C1,圖示參數(shù)振蕩頻率約為50Hz(T=20ms),其振蕩脈沖作為可變脈沖發(fā)生器提供觸發(fā)脈沖。圖1中右側(cè)的單穩(wěn)態(tài)觸發(fā)器由IC1-b、R3以及HS1101組成,輸出脈寬取決于充電時間常數(shù)RC,即t=1.1R3(C2 +CX),此輸出脈沖經(jīng)平滑濾波器R4、C3濾波后,經(jīng)IC3(OP07)直流放大后輸入到TLC0834的模擬電壓輸入端。其中,RP1用來調(diào)零, RP2用來調(diào)滿刻度。
溫度傳感器采用MF58型熱敏電阻,本系統(tǒng)的測量范圍為:-30~120℃,對應(yīng)的電阻值范圍為: 60.0256~0.2760kΩ。因MF58的阻值變化足以為TLC0834提供0~2.5V的模擬電壓,所以LM358接成電壓跟隨器的形式。 TLC0834可由軟件配置為差分或單端輸入,對于溫度采樣用差分輸入方式,RP3用來調(diào)零,RP4用來調(diào)滿刻度。
本系統(tǒng)中設(shè)立3個按鍵,分別是功能鍵、加1及減1鍵,用來設(shè)定溫濕度的上下限。功能鍵是多功能鍵,依照按下的次數(shù)執(zhí)行相應(yīng)的功能。當(dāng)功能鍵第一次被按下,數(shù)碼管顯示調(diào)整低溫加熱下限符號并顯示低溫加熱下限的值,按加1減1使值符合要求后,再按下功能鍵則數(shù)碼管顯示調(diào)整低溫加熱上限符號并顯示低溫加熱上限的值,按加1減1使值符合要求,這樣依次類推,設(shè)定完最后一個參數(shù)后,再按一次功能鍵則完成參數(shù)整定進(jìn)入測控狀態(tài)。
軟件編程
控制儀的軟件由主程序和T0中斷處理程序組成,其中主程序框圖如圖2所示,T0中斷處理程序如圖3所示。
系統(tǒng)中,設(shè)定定時器T0為工作方式1,定時周期為125ms,8次定時器中斷為1秒。為了提高抗干擾性能,采用滑動平均濾波算法,即只采樣一次,將這一次采樣值和過去的若干次采樣值一起求平均,得到的有效采樣值即可投入使用。本系統(tǒng)中采用兩個環(huán)形隊(duì)列,每次中斷采樣一次溫濕度的值,分別放入環(huán)形隊(duì)列中,每存入一個新數(shù)據(jù)便自動沖去一個舊數(shù)據(jù)。環(huán)形隊(duì)列的地址為30H~3FH共16個單元,溫濕度數(shù)據(jù)各占8個單元。為了有效防止顯示閃爍現(xiàn)象,每秒鐘進(jìn)行一次數(shù)據(jù)處理(8個數(shù)據(jù)求和再除以8),處理后的數(shù)據(jù)換算成溫濕度的值送顯示緩存并申請顯示,同時進(jìn)行監(jiān)控處理,符合加熱器加熱停止條件或排分扇啟動停止條件的,要進(jìn)行相應(yīng)的處理。
由于系統(tǒng)中有看門狗電路,所以在編程時要特別注意,傳統(tǒng)的等待按鍵釋放的方法容易造成看門狗電路輸出復(fù)位信號。解決方法是,在主程序中,當(dāng)檢測到有鍵按下后置鍵按下標(biāo)志位,在主程序的循環(huán)中則反復(fù)判斷鍵按下標(biāo)志位是否被清零,如果被清零則說明鍵已釋放,然后才能進(jìn)行下一輪的鍵盤按下判斷。在T0中斷處理程序中,每次中斷均要檢測鍵是否按下。若無鍵按下,有兩種情況,一是系統(tǒng)中無鍵按下(此時鍵按下標(biāo)志為0),處于監(jiān)控狀態(tài);二是鍵按下釋放后的情況(此時鍵按下標(biāo)志為1),這時要清鍵按下標(biāo)志,以便主程序中進(jìn)行下一輪的鍵按下檢測。這樣既可以保證當(dāng)鍵按下后不論按下多長時間只響應(yīng)一次,又可以保證不使看門狗電路輸出復(fù)位信號。
結(jié)語
用單片機(jī)為核心開發(fā)的溫濕度控制儀小巧美觀,安裝、使用方便,性能穩(wěn)定可靠,不僅可用于電力部門,對溫濕度要求較高的庫房、糧倉等場所也十分適用。