孫 靜
(黎明職業(yè)大學 機電工程與自動化學院,福建 泉州 362000)
?
基于單片機的酒精濃度檢測儀設計*
孫靜
(黎明職業(yè)大學 機電工程與自動化學院,福建 泉州 362000)
摘要:設計一款簡易酒精濃度檢測儀,采用單片機控制系統(tǒng),利用MQ-3酒精傳感器采集酒精濃度,能夠實現(xiàn)對酒精濃度的實時采集,并通過液晶屏顯示.同時,當酒精濃度超標時進行聲光報警.
關鍵詞:酒精檢測;MQ-3酒精傳感器;單片機; 液晶顯示;聲光報警
本文所設計的酒精濃度測試儀是一款實用性較強的氣體濃度檢測工具,采用MQ-3乙醇氣體傳感器對空氣中的酒精濃度進行檢測,利用單片機STC89C52RC完成檢測信號的轉換和處理,最后通過液晶屏顯示輸出.設計的酒精濃度測試儀還具有設定濃度值功能,體積較小便于攜帶,且操作簡單方便,造價較低廉,適合推廣使用.
1系統(tǒng)硬件電路設計
系統(tǒng)采用單片機為主控芯片,由酒精傳感器采集氣體濃度,經(jīng)過單片機對采集來的信號處理后將當前空氣中的酒精濃度值顯示在液晶屏上.同時系統(tǒng)還設置了聲光報警電路,系統(tǒng)硬件設計組成如圖1所示.
圖1 系統(tǒng)硬件電路結構框圖
1.1主控芯片的選擇
本系統(tǒng)采用STC公司生產的STC89C52RC單片機,是一種低功耗、高性能CMOS8位微控制器,具有 8K 系統(tǒng)可編程Flash存儲器,并在經(jīng)典的MCS-51內核基礎上進行很多改進,使得芯片具有傳統(tǒng)51單片機不具備的功能,使得控制應用系統(tǒng)更加靈活.
1.2傳感器的選擇
氣體傳感器是氣體檢測系統(tǒng)的核心[1].考慮到穩(wěn)定性、靈敏度、選擇性和抗腐蝕性[2],系統(tǒng)采用MQ-3型氣體傳感器.MQ-3氣體傳感器對酒精的靈敏度高,當所處環(huán)境中存在酒精蒸汽時,傳感器的電導率隨空氣中酒精氣體濃度的增加而增大.同時具有雙路信號輸出(模擬量輸出及TTL電平輸出),能夠輸出0~5V電壓信號,且濃度越高電壓越高.圖2為傳感器連接電路.
1.3A/D轉換電路
考慮到傳感器輸出的是0~5伏的電壓值,系統(tǒng)需要采用A/D轉換器將電壓信號轉換成數(shù)字信號送入單片機進行處理.本系統(tǒng)采用模數(shù)轉換芯片ADC0809.該芯片是一個8位A/D轉換器,具有8路模擬信號輸入端口,但每個瞬間只能轉換一路,各路之間的切換由軟件改變A、B、C引腳上的代碼來
實現(xiàn).本設計是對酒精傳感器的輸出電壓信號進行轉換,所以只需連接其中一路模擬信號輸入端口.據(jù)此,系統(tǒng)選用模擬輸入通道IN0與傳感器輸出端進行連接,其A/D轉換電路如圖3所示.當MQ-3檢測到周圍環(huán)境有酒精濃度變化時,其兩電極端電阻將發(fā)生變化,對應負載電阻的分壓也相應發(fā)生變化.而負載電阻的一端與ADC0809的模擬輸入通道IN0相連.所以當單片機啟動模數(shù)轉換后,則可將轉換后的酒精濃度值讀取出來.
圖2 信號采集電路
圖3 模數(shù)轉換電路
1.4液晶顯示電路
本系統(tǒng)采用液晶顯示芯片LCD1602對酒精濃度進行顯示.LCD1602是一種工業(yè)字符型液晶屏,專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊[3],能夠同時顯示兩行,每行16共32個字符液晶模塊,滿足本系統(tǒng)的顯示要求.液晶顯示模塊接口電路如圖4所示.圖中7-14腳是1602的8位雙向數(shù)據(jù)線,與單片機P0口相連;6腳是LCD的使能端,與P2.4相連;RS是寄存器選擇端,當它為高電平時,選擇數(shù)據(jù)寄存器,反之選擇指令寄存器.LCD顯示包含當前酒精濃度值和酒精濃度超標時的濃度值兩部分,分別用ET和WA表示.MQ-3 型氣敏傳感器使用時,在初始階段,傳感器先預熱,此時液晶顯示初始值,當預熱完畢后,此時液晶屏顯示酒精濃度初始設定值和超標值,并進入實時測量顯示結果階段[4],顯示情況如圖5所示.
圖4 液晶顯示接口電路
圖5 酒精測試儀硬件電路板
1.5報警電路
本系統(tǒng)設置了蜂鳴器報警電路,蜂鳴器通過三極管9012驅動,三極管的第一腳接在單片機的P2.5上,當酒精濃度超標即超過25mg/100mL時,將單片機引腳置低,則蜂鳴器響起,同時連接單片機P2.2的紅色LED閃爍,達到聲光報警的功效.電路如圖6所示.
圖6 蜂鳴器報警電路
2系統(tǒng)軟件設計
本系統(tǒng)軟件部分主要由主程序、酒精檢測子程序、顯示子程序、按鍵子程序和聲光報警等部分組成.系統(tǒng)初始化完成后,進入顯示界面,通過按鍵設置超標時的酒精濃度值,確定后返回,如此循環(huán)執(zhí)行.軟件系統(tǒng)總流程圖如圖7所示.
2.1數(shù)據(jù)采集模塊
系統(tǒng)使用的模數(shù)轉換器ADC0809是一種逐次比較式8路模擬輸入、8位數(shù)字量輸出的A/D轉換器.START為A/D轉換啟動脈沖輸入端,當下降沿時啟動A/D轉換.EOC 為A/D轉換結束標志,當轉換結束時,輸出高電平.OE為數(shù)據(jù)輸出允許信號,當A/D轉換結束時,此端輸入一個高電平,并輸出數(shù)字量.AD轉換子程序如下.
圖7 程序流程圖
//ADC0809讀取信息
uchar ADC0809()
{
uchar temp_=0x00;
OE=0;
//轉化初始化
ST=0;
//開始轉換
ST=1;
ST=0;
//外部中斷等待AD轉換結束
while(EOC==0)
//讀取轉換的AD值
OE=1;
temp_=Data_ADC0809;
OE=0;
return temp_;
}
2.2LCD1602液晶顯示
LCD1602液晶模塊內部有一個字符發(fā)生器CGRAM,已經(jīng)存儲了160個不同的點陣字符圖形,每一個字符都有一個固定的代碼通過標準字庫表查找其對應代碼即可.它的讀寫操作、屏幕和光標的操作都是通過指令編程來實現(xiàn)的.顯示字符時需要先送地址(寫命令),然后再送字符(寫數(shù)據(jù)).如果要
顯示字符庫外的字符,則需要利用CGRAM編制顯示.本系統(tǒng)液晶顯示模塊包括LCD的初始化、寫命令、寫數(shù)據(jù)、LCD數(shù)據(jù)顯示部分.系統(tǒng)初始的顯示狀態(tài)分兩行顯示,包括當前酒精濃度和報警濃度值,初始均為000mg/L.LCD初始化程序如下.
//1602初始化
void Init1602()
{
uchar i=0;
write_com(0x38);//屏幕初始化
write_com(0x0c);//打開顯示 無光標 無光標閃爍
write_com(0x06);//當讀或寫一個字符是指針后一一位
write_com(0x01);//清屏
write_com(0x80);//設置位置
for(i=0;i<18;i++)
{
write_data(Init1[i]); //1行初始化顯示
}
write_com(0x80+0x40);
for(i=0;i<18;i++)
{
write_data(Init2[i]);//2行初始化顯示
}
}
3結論
本系統(tǒng)設計了基于STC89C52RC單片機控制的簡易酒精濃度測試儀,包括硬件電路系統(tǒng)設計和軟件程序設計.經(jīng)測試,本系統(tǒng)結構簡單,使用方便,具有實時顯示酒精濃度值和超限報警功能,且酒精濃度檢測效果較好.
參考文獻:
[1]周鴻武.基于單片機的酒精濃度檢測儀設計[J].制造業(yè)自動化,2012(1).
[2]夏駿,李國興,郝卜.基于單片機的防酒后駕駛控制裝置[J].科技信息,2012(5).
[3]高美霞,柏建普.單片機控制的超聲波測距儀汽車倒車系統(tǒng)的設計[J].儀器儀表與檢測技術,2011(11).
[4]冉偉剛.氣體酒精濃度檢測報警器設計[J].農業(yè)網(wǎng)絡信息,2011(10).
(責任編輯:王前)
DOI:10.13877/j.cnki.cn22-1284.2016.06.002
*收稿日期:2015-11-08
基金項目:2013年福建省中青年教師教育科研項目“多功能防酒駕智能控制系統(tǒng)”(JB13352);泉州市科技局2013年度科技計劃項目“基于單片機的多功能防酒駕智能制動系統(tǒng)”(2013Z48)
作者簡介:孫靜,女,河北邯鄲人,副教授.
中圖分類號:TP273
文獻標志碼:A
文章編號:1008-7974(2016)03-0004-03