周鴻雁
(大慶師范學院物理與電氣信息工程學院,黑龍江大慶163712)
基于STC單片機的便攜式酒精濃度檢測儀的設(shè)計
周鴻雁
(大慶師范學院物理與電氣信息工程學院,黑龍江大慶163712)
以STC單片機和MQ-3酒精傳感器為核心,設(shè)計了一款智能化的便攜式酒精濃度檢測儀。該檢測儀具有酒精濃度LCD顯示和濃度值超限報警功能??梢愿鶕?jù)不同環(huán)境的需要設(shè)置不同的濃度值報警限值,若檢測酒精濃度值大于所設(shè)定的濃度值即進行報警提示。該檢測儀具有硬件電路簡單,體積小,有高靈敏度、工作性能好、低功耗、低成本等諸多優(yōu)點,可應用于對酒駕者進行初步驗證的場合。
酒精濃度檢測;MQ-3傳感器;STC單片機
隨著改革開放的深入,我國經(jīng)濟發(fā)展的速度也越來越快,人們的生活質(zhì)量也得到了明顯的提高。隨之而來的改變就是越來越多的私家車涌現(xiàn),各式各樣的汽車成為人們的首選代步工具。由此伴隨而來的是越來越多的交通事故,尤其是因為酒后駕車所引發(fā)的交通事故,這不僅給自己和他人的生命財產(chǎn)帶來威脅,同樣也給社會和國家造成了嚴重的經(jīng)濟損失。為了避免酒后駕駛給人們的生命造成威脅,幫助交警和駕駛員簡便快捷地檢測出飲酒者體內(nèi)的酒精含量,一種便攜并能快速檢測駕駛員體內(nèi)酒精濃度的檢測儀器應時而生。便攜式酒精濃度檢測儀不需要通過抽血化驗,直接通過檢測駕駛員呼出的氣體來測量其血液內(nèi)的酒精濃度,從而初步判斷駕駛者是否酒駕或醉駕。
檢測儀采用酒精濃度檢測分析駕駛員呼出的氣體,將氣體中的酒精濃度轉(zhuǎn)換為模擬電信號,然后再將該模擬信號傳遞給A/D轉(zhuǎn)換電路,經(jīng)過模數(shù)轉(zhuǎn)換轉(zhuǎn)換后,把轉(zhuǎn)換后所生成的數(shù)字信號傳給單片機。單片機對所轉(zhuǎn)換后的數(shù)字信號進行分析及處理,最后將處理所得到的結(jié)果通過LCD液晶屏顯示出來。此外,根據(jù)手動設(shè)置的酒精濃度上限值與實際接收到的酒精濃度值進行比較,如果駕駛員呼出的酒精氣體濃度超過了預先設(shè)定的濃度上限值,那么紅色的報警燈就會亮起來,以提示超過規(guī)定的酒精濃度。
檢測儀的硬件部分主要包括酒精濃度傳感器、模數(shù)轉(zhuǎn)換器、單片機系統(tǒng)、液晶顯示模塊、按鍵電路、存儲電路和聲光報警電路組成,其結(jié)構(gòu)框圖如圖1所示。
本文選用STC12C5A60S2/AD/PWM系列單片機。該單片機是宏晶科技生產(chǎn)的單時鐘/機器周期的單片機,具有高速度、低耗能、超強抗干擾特點。這一系列的單片機在指令代碼上完全兼容傳統(tǒng)的8051單片機,同時處理速度要比傳統(tǒng)的單片機快8~12倍,其中更具操作性的是擁有2路PWM和8路高速10位A/D轉(zhuǎn)換模塊,可應用于很多要求較高的場合[1]。STC12C5A60S2系列單片機包含中央處理器、程序存儲器、數(shù)據(jù)存儲器、定時/計數(shù)器、UART串口、串口2、I/O接口、高速A/D轉(zhuǎn)換、SPI接口、PCA、看門狗及片內(nèi)R/C振蕩器和外部晶體振蕩電路等模塊。STC12C5A60S2系列單片機內(nèi)部具有適用于很多場合的功能模塊,令操作更加的便捷。
該酒精濃度檢測儀的數(shù)據(jù)采集模塊是采用MQ-3氣敏傳感器實現(xiàn)的。MQ-3氣敏傳感器可以更快速的吸附空氣中的酒精成分,同時更好的選擇性使MQ-3成為檢測酒精濃度的首選。該氣敏傳感器的工作原理非常簡單,當傳感器檢測到空氣中的酒精成分后,其阻值會發(fā)生變化,這種變化是隨著酒精濃度的變化而變化的,并且呈線性變化的關(guān)系。
2.2.1 MQ-3氣敏傳感器的結(jié)構(gòu)
MQ-3氣敏傳感器由微型AL2O3陶瓷管、SnO2敏感層,測量電極和加熱器構(gòu)成的敏感元件組成,這些氣敏元件固定在由特殊材料制作成的腔管內(nèi)。封裝好的MQ-3酒精傳感器總共有6只管腳,其中有4支是用來進行酒精氣體濃度信號采集,另外2只引腳用來提供加熱電流[2]。
2.2.2 MQ-3傳感器的工作原理
酒精傳感器接收到酒駕者呼出氣體中的酒精氣體信號,于是將該酒精信號轉(zhuǎn)換為電壓信號,而該電壓信號會從酒精傳感器的第4引腳直接輸出,通過第4引腳將該電壓信號模擬量送到單片機中的A/D轉(zhuǎn)換模塊,電路如圖 2 所示[3]。
STC12C5A60S2系列單片內(nèi)部自帶A/D轉(zhuǎn)換電路。A/D轉(zhuǎn)換接口在P1口,共有8路10位高速A/D轉(zhuǎn)換器,速度可達到250KHz。8路電壓輸入型A/D,可做溫度檢測、電池電壓檢測、按鍵掃描、頻譜檢測等。STC12C5A60S2系列單片機ADC的結(jié)構(gòu)如圖3所示。
圖3 STC12C5A60S2系列單片機ADC的結(jié)構(gòu)圖
STC12C5A60S2系列單片機ADC由多路選擇開關(guān)、比較器、逐次比較寄存器、10位DAC、轉(zhuǎn)換結(jié)果寄存器以及ADC_CONTR構(gòu)成。
STC12C5A60S2系列單片機的ADC是逐次比較型ADC。逐次比較型ADC由一個比較器和D/A轉(zhuǎn)換器輸出進行比較,經(jīng)過多次比較,使轉(zhuǎn)換所得的數(shù)字量逐次逼近輸入模擬量對應值。
A/D轉(zhuǎn)換結(jié)束后,最終的轉(zhuǎn)換結(jié)果保存到ADC轉(zhuǎn)換結(jié)果寄存器ADC_RES和ADC_RESL,同時,置位ADC控制寄存器ADC_CONTR中的A/D轉(zhuǎn)換結(jié)束標志位ADC_FLAG,以供程序查詢或發(fā)出中斷申請。模擬通道的選擇控制由ADC控制寄存器ADC_CONTR中的CHS2-CHS0確定。ADC的轉(zhuǎn)換速度由ADC控制寄存器中的SPEED1和SPEED0確定。在使用ADC之前,應先給ADC上電,也就是置位ADC控制寄存器中的 ADC_POWER 位[4]。
為了在不同的情況和場合,該酒精檢測儀都可以準確的檢測出酒精濃度,由此可以將傳統(tǒng)的酒精檢測儀稍加改進。這里就增加了一個可以手動設(shè)置酒精濃度上限值的按鍵模塊,增加了此模塊后,該檢測儀就可以在不同的場合或不同的條件下使用,并且測量準確。在這里只要將按鍵作為外部中斷源來手動設(shè)置酒精濃度上限值,就可以滿足設(shè)計要求,同時,還可以節(jié)省不必要的硬件資源。按鍵電路如圖4所示。
圖4 按鍵電路
在該設(shè)計中增加一個手動設(shè)置濃度上限值的功能,可以使該檢測儀適用于更多的場合,達到更多的要求。又能與檢出的酒精濃度值進行比較,增強了直觀性。于此選用了AT24C04作為存儲器件,用單片機的P2.6、P2.7口模擬I2C與其通信,從而完成數(shù)據(jù)的讀寫操作。
AT24C04是ATMEL公司生產(chǎn)的4K bit E2PROM芯片,該芯片采用總線設(shè)計,主要性能指標與AT24C02類似。
AT24C04外部存儲電路如圖5所示。A0為空引腳,A1,A2口為器件地址設(shè)定口,通過A1,A2口來設(shè)定AT24C04的器件地址。WP口接低電平時,可以對整個AT24C04器件的512個字節(jié)進行讀寫操作。當WP口接高電平后,器件的前256個地址的數(shù)據(jù)被保護,只能讀,不可寫入,后256個字節(jié)數(shù)據(jù)可進行讀寫操作。
若要使檢測到的酒精濃度值得到顯示,可以有兩種選擇。一種是用數(shù)碼管顯示,一種是LCD液晶顯示。為了追求顯示效果,這里選擇了采用LCD顯示,即采用LCD1602液晶顯示模塊。這種液晶可以同時顯示16*02個字符。1602液晶也叫1602字符型液晶,這種液晶的功能單一,只是用來顯示數(shù)字、字母和符號的點陣型液晶模塊。當前大家所用到的液晶都是在HD44780液晶芯片控制的基礎(chǔ)之上的,控制原理是完全相同的,因此大部分字符型液晶都可以用HD44780來進行操作和控制。檢測儀的濃度顯示電路如圖6所示。
A/D轉(zhuǎn)換的啟動需要依靠下降沿才能觸發(fā),在START置低位后延時一段時間(約10ms),轉(zhuǎn)換才正式開始。在轉(zhuǎn)換的過程中,輸入時鐘所能接收的區(qū)間為10KHZ~1280KHZ,而要使酒精檢測儀能夠進入正常的工作狀態(tài),則在該設(shè)計中應該選用500KHZ。通過模數(shù)轉(zhuǎn)換后得到的數(shù)字量,即采用MQ-3酒精傳感器檢測到環(huán)境中的酒精含量,又通過轉(zhuǎn)換而產(chǎn)生電壓值,再通過單片機的程序處理,將檢測到的酒精濃度值顯示在屏幕上。
圖5 AT24C04外部存儲電路
圖6 輸出顯示電路
在初始化后,系統(tǒng)的檢測器將檢測到酒精濃度,同一時間A/D轉(zhuǎn)換器也在進行模數(shù)轉(zhuǎn)換,系統(tǒng)仍然在檢測是否有外部中斷響應,當按下按鈕時,按鈕的數(shù)目將用來調(diào)整在顯示器中顯示的酒精濃度值,而且該濃度值將立即被存儲在外部存儲單元(AT24C04)中,與檢測到的酒精濃度進行比較,在同一時間,完成下一個報警。
酒精濃度檢測儀的軟件程序主要使用C語言編寫,采用了模塊化、結(jié)構(gòu)化的程序設(shè)計方法。這其中主要包括了主程序、中斷程序等程序。當給檢測儀上電時,檢測儀首先進行程序初始化、系統(tǒng)自檢,然后進入等待外界酒精信號輸入的狀態(tài),A/D轉(zhuǎn)換和LCD顯示酒精濃度值的三個狀態(tài)。最后通過比較輸入的酒精濃度值和預先設(shè)置的酒精濃度上限值判斷是否執(zhí)行超標報警。手動設(shè)置酒精濃度上限值,被測酒精濃度值顯示等操作都屬于中斷子程序的內(nèi)容,程序的絕大部分時間用于數(shù)據(jù)處理上,而STC12C5A單片機處理一次數(shù)據(jù)的時間約為6us,故整體的平均功耗很低[5]。
設(shè)計了一款智能化的便攜式酒精濃度檢測儀,以STC12C5A單片機和MQ-3酒精傳感器為核心,具有報警和LCD顯示功能。此檢測儀具有高靈敏度、工作性能好、低功耗、低成本等諸多優(yōu)點。選用STC12C5A單片機作為控制核心,其內(nèi)部自帶模數(shù)轉(zhuǎn)換電路,可以通過軟件編程更改P1.0~P1.7口的功能,作為A/D轉(zhuǎn)換接口或者普通I/O接口,不需要外接A/D轉(zhuǎn)換電路,使該設(shè)計的外圍電路更加的簡單。同時該設(shè)計可以手動設(shè)置酒精濃度上限值,使檢測儀應用于更多的場合,給使用者帶來更大的方便。
[1]何利民.STC系列單片機應用系統(tǒng)設(shè)計[M].北京:航空航天大學出版社,2003.
[2]單成祥.傳感器的理論與設(shè)計基礎(chǔ)及其應用[M].北京:國防工業(yè)出版社,2005.
[3]方吉高,黃炳醒.高選擇性酒精傳感器[J].硅谷,2004,10(2):41.
[4]藍和慧.全國大學生電子設(shè)計競賽單片機應用技能[M].北京:電子工業(yè)出版社,2003.
[5]湯競南,沈國琴.單片機C語言開發(fā)與實例[M].北京:人民郵電出版社,2004.
周鴻雁(1963-),男,黑龍江大慶人,大慶師范學院物理與電氣信息工程學院副教授,從事單片機應用方面的研究。
TP368.2
A
2095-0063(2013)06-0022-04
2012-09-07