李嬌嬌,徐勇,蘇發(fā)桂,呂樂樂,馮文靜
(安徽財經(jīng)大學計算機系,安徽蚌埠,233030)
關(guān)鍵字:51單片機;傳感器;酒精檢測;聲光報警
氣態(tài)酒精與空氣可形成爆炸性混合物,遇明火、高熱能引起爆炸燃燒。酒精在生產(chǎn)過程必須防止酒精泄漏,一旦發(fā)生泄漏,需要及時發(fā)現(xiàn)泄漏點或泄漏區(qū)域。這就需要酒精監(jiān)測系統(tǒng),以便實時監(jiān)測生產(chǎn)區(qū)域的酒精氣體濃度。
針對這一問題,本文設計了小巧、靈活的51單片機酒精濃度監(jiān)測系統(tǒng)。本系統(tǒng),由C語言實現(xiàn)軟件功能,硬件主控模塊為51單片機最小系統(tǒng)。借助酒精傳感器,液晶屏顯示當前濃度,設置酒精濃度檢測閾值,超過閾值啟動聲光報警,以適用于不同的工作環(huán)境。
該酒精監(jiān)測系統(tǒng)主要的功能模塊有:51單片機最小系統(tǒng)、LCD液晶顯示模塊、MQ-3酒精傳感器模塊、AD模數(shù)轉(zhuǎn)換模塊、聲光報警模塊、按鍵模塊等。
MQ-3半導體酒精傳感器對酒精氣體具有良好的靈敏度,可檢測多種濃度酒精氣體,使用壽命長,應用成本低。本設計選擇MQ-3半導體型酒精傳感器,當傳感器監(jiān)測到空氣中酒精濃度時,通過單片機的模數(shù)轉(zhuǎn)換模塊進行轉(zhuǎn)換運算,在顯示器上顯示當前酒精濃度值。若當前酒精濃度超過所設閾值,聲光報警功能啟動,蜂鳴器報警,指示燈閃爍。
獨立按鍵可以靈活調(diào)節(jié)酒精濃度報警閾值,實現(xiàn)人機交互,使該監(jiān)測系統(tǒng)適應不同的場所。
本文選用STC89C51單片機作為系統(tǒng)的主控芯片,控制該酒精檢測系統(tǒng)的整體運行。STC89C51單片機的優(yōu)點為功耗低、八位CMOS微處理器性能高,片內(nèi)具有8k在線編程Flash存儲器,采用MCS-51內(nèi)核,指令完全兼容MCS-51,具有開發(fā)簡單、可在線編程下載、成本低等優(yōu)點。
圖1 單片機最小系統(tǒng)
最小系統(tǒng)主要由STC89C51單片機、晶振電路、復位電路構(gòu)成。電源主要采用5V直流電,以及220V通用電源接口,方便用戶選擇,晶振電路為12M石英晶振,并聯(lián)兩個電容,可以起到頻率微調(diào)作用。復位電路有上電自動復位和開關(guān)復位兩種復位方式。
該數(shù)字系統(tǒng)直接進行處理和控制的信息為數(shù)字信號,需要模數(shù)轉(zhuǎn)換裝置,將傳感器濃度監(jiān)測的電信號轉(zhuǎn)為數(shù)字信號。本文選用的是 ADC0832 模數(shù)轉(zhuǎn)換器,其輸入輸出電平與TTL/CMOS相兼容,5V電源供電時輸入電壓在0~5V之間,具有體積小,兼容性強,性價比高等特點。
氣體傳感器大致可分為半導體型氣體傳感器和電化學型氣體傳感器。半導體型氣體傳感器以其靈敏度高、響應速度快、體積小、重量輕、便于集成化、智能化,能使檢測轉(zhuǎn)換一體化的優(yōu)點,被廣泛使用。故本設計選用MQ-3半導體型酒精氣體傳感器。
圖2 MQ-3酒精檢測模塊
在單片機中常用的液晶顯示屏通常有兩種,一種是LCD1602液晶顯示器,一種是LCD12864液晶顯示器。LCD12864可以顯示8×4行16×16點陣的漢字,也可完成圖形顯示;LCD1602液晶顯示器是廣泛使用的一種字符型液晶顯示模塊,而酒精監(jiān)測濃度顯示只是簡單的字符數(shù)字,故本文選用LCD1602液晶顯示器。
本系統(tǒng)的聲光報警電路為PNP型S8550三極管驅(qū)動。由于單片機剛上電時,所有的IO口會處于短暫的高電平狀態(tài)。如果采用NPN型三極管,高電平時三極管導通,蜂鳴器鳴叫報警,會產(chǎn)生干擾。選用PNP型三極管,僅低電平時三極管導通,聲光報警電路工作,蜂鳴器報警,指示燈閃爍;高電平時三極管截止,聲光報警無現(xiàn)象,對監(jiān)測結(jié)果無影響。
本設計中通過幾個獨立按鍵進行人機交互。按鍵一端連接單片機的I/O口,一端連接電源地,初始狀態(tài)默認為高電平。按鍵按下I/O口的電平被拉低,單片機只需循環(huán)檢測I/O口出現(xiàn)低電平即可判斷按鍵狀態(tài)。
圖3 LCD1602模塊
三個按鍵的功能分別為:
按鍵一:按下后進入設置模式,可以連續(xù)按選擇所需要設置的參數(shù),顯示屏上會有對應的提示。
按鍵二:在設置模式下,對應設置的參數(shù)加一。
按鍵三:在設置模式下,對應設置的參數(shù)減一。
在線酒精濃度監(jiān)測系統(tǒng)的算法思路為:
(1)程序初始化,酒精傳感器預熱。
(2)監(jiān)測濃度,酒精傳感器監(jiān)測當前工作環(huán)境下空氣中的酒精濃度值。
(3)信號轉(zhuǎn)換,A/D模數(shù)轉(zhuǎn)換模塊將監(jiān)測到的濃度信息轉(zhuǎn)換為數(shù)字信號,傳輸至單片機主控系統(tǒng)分析處理。
(4)液晶顯示,在LCD1602液晶屏上顯示當前酒精濃度信息。
(5)聲光報警,超過所設酒精濃度閾值,聲光報警模塊工作。
(6)退出結(jié)束。
算法流程圖如圖4所示。
圖4 算法流程圖
主要變量定義如下:
/**********燈、蜂鳴器、按鍵引腳定義***********/
sbit led =P1^7; //LED燈(紅)
sbit buzz =P2^3; //蜂鳴器
sbit key_set=P1^0; //設置鍵
sbit key_on=P1^3; //加值鍵
sbit key_off=P1^6; //減值鍵
/*************全局變量定義*******************/
#define K_MG_MV 2//電壓每升高0.01V,酒精濃度上升2ppm
#define IN_V 500//電源電壓放大100倍。5V*100=500
long ALValue;//存儲實際濃度值
uchar K_ZERO; //MQ-3零值
uint jiujia_up,zuijia_up; //存儲酒駕、醉駕閥值
uint set_f; //設置選擇標記,=0非設置,=1設置酒駕閥值,=2設置醉駕閥值
uchar num;//計數(shù)變量
接下來開始對酒精監(jiān)測系統(tǒng)進行演示分析。
MQ-3 酒精傳感器預熱30s后,監(jiān)測當前環(huán)境酒精濃度。AD模塊把檢測到的酒精濃度值轉(zhuǎn)換為電壓信號,經(jīng)過STC89C52單片機處理,在液晶顯示屏上顯示當前濃度。該酒精監(jiān)測系統(tǒng)可以通過調(diào)節(jié)變阻器電路電阻值大小改變所設閾值,若檢測值大于設定值時,報警電路發(fā)出報警。
本次演示所設閾值下限為70mg/L,上限濃度為120mg/L,運行結(jié)果示例如圖5、圖6。
圖5 酒精傳感器預熱
圖6 超過閾值上限,聲光報警啟動
本系統(tǒng)用于空氣中酒精濃度的監(jiān)測,分為硬件電路和軟件控制兩部分。經(jīng)過模擬演示,該酒精系統(tǒng)能夠?qū)崿F(xiàn)超出閾值自動報警功能,且誤差不超過0.05%,性能良好,成本低,具有一定的實用價值。