本文提出并設(shè)計(jì)了一種可以實(shí)時(shí)檢測(cè)呼出氣體的酒精含量,且超出設(shè)定值時(shí)會(huì)聲光報(bào)警的測(cè)試儀。本文詳細(xì)介紹了設(shè)計(jì)所提出的背景和研究意義,對(duì)于所用到的各個(gè)器件做了對(duì)比介紹,以及各個(gè)硬件電路模塊的工作原理,在軟件程序方面,對(duì)于各個(gè)模塊做了詳細(xì)的流程框圖,可以快速看出程序設(shè)計(jì)思路,最后列舉了硬軟件在設(shè)計(jì)調(diào)試所出現(xiàn)的一系列問題以及與之對(duì)應(yīng)的解決辦法。
2 設(shè)計(jì)方案選擇
2.1 系統(tǒng)控制芯片選擇
方案一:選擇STC89C52單片機(jī)作為主控制芯片。該單片機(jī)是8位微控制器,有8K的程序存儲(chǔ)空間,有256個(gè)字節(jié)數(shù)據(jù)存儲(chǔ)空間,3個(gè)16位定時(shí)器/計(jì)數(shù)器,4個(gè)外部中斷,全雙工串行口,具有高速、低功耗、具有超強(qiáng)抗干擾性的特點(diǎn),其指令代碼完全兼容8051,市場(chǎng)價(jià)格較為廉價(jià),且具有靈活的編程方式。
方案二:選擇MSP430單片機(jī)作為主控制芯片。該單片機(jī)的匯編語言使用起來較為靈活,有許多尋址方式,且具有強(qiáng)大的處理能力,電壓低,功耗較低,片內(nèi)集成資源豐富,且加密性強(qiáng),有強(qiáng)抗干擾能力。但是由于工作電壓低,接口電路麻煩,而且I/O口無保護(hù),所以過壓電流會(huì)擊穿。其次不易上手,學(xué)習(xí)資料較少。
綜合以上的描述,鑒于STC89C52較為常用,市場(chǎng)上價(jià)格相對(duì)較低,設(shè)計(jì)開發(fā)難度較小,查找學(xué)習(xí)資料便捷,且此單片機(jī)已可滿足設(shè)計(jì)要求,因此選擇STC89C52作為主控制芯片。
2.2 顯示器件的選擇
方案一:使用LCD1602液晶顯示屏。該顯示屏可以直接和STC89C52直接接口,可顯示32個(gè)字符,因是字符型液晶,所以可以較為便捷地顯示字母和數(shù)字,且控制簡(jiǎn)單,市場(chǎng)價(jià)格低廉,但是所顯示的字體大小不可隨意改動(dòng),對(duì)于曲線和圖形等也無法顯示。
方案二:使用LCD12864液晶顯示屏。該液晶顯示屏的各個(gè)顯示點(diǎn)都與一個(gè)二進(jìn)制數(shù)對(duì)應(yīng),因此可自行設(shè)計(jì)輸出的圖形和漢字,分辨率較高,功耗較低,且輕薄,由于顯示信息量大,造成電路及程序的設(shè)計(jì)較為困難。
綜合以上方案,本設(shè)計(jì)主要顯示酒精含量、時(shí)間和日期,需要顯示的內(nèi)容較少,選用LCD1602為顯示屏,已可滿足設(shè)計(jì)要求,且該顯示屏價(jià)格低廉,在網(wǎng)絡(luò)上可查找資料較多,方便學(xué)習(xí)參考,設(shè)計(jì)難度相對(duì)較小。
2.3 A/D轉(zhuǎn)換芯片的選擇
方案一:采用ADC0832作為模數(shù)轉(zhuǎn)換器件。該芯片是雙通道的模數(shù)轉(zhuǎn)換芯片,在0~5V的電壓下可以正常工作,采用250KHZ的頻率,采用雙輸出方式對(duì)數(shù)據(jù)進(jìn)行嚴(yán)格的校對(duì),可有效減少芯片的數(shù)據(jù)錯(cuò)誤,并具有較好的穩(wěn)定性。獨(dú)立的允許輸入模式使得多個(gè)設(shè)備的安裝和控制過程更加方便。
方案二:采用ADC0808作為A/D轉(zhuǎn)換器件。該芯片是ADC0809的簡(jiǎn)化版,功能大致相同,ADC0808是采樣分辨率為8位的、以逐次逼近原理進(jìn)行模/數(shù)轉(zhuǎn)換的器件。
這兩種設(shè)備的基本性能相似,因?yàn)楸敬卧O(shè)計(jì)只需一個(gè)通道,所以使用ADC0832芯片已可滿足需求,可節(jié)省資源,且此芯片兼容性好,較為劃算。
2.4 酒精檢測(cè)傳感器的選擇
半導(dǎo)體型的酒精傳感器MQ-3所處環(huán)境中含有酒精蒸氣時(shí),當(dāng)乙醇?xì)怏w濃度增大時(shí),傳感器的導(dǎo)電性能也隨之提高,接著將檢測(cè)到的酒精含量轉(zhuǎn)化為電信號(hào),可以得到關(guān)于周圍環(huán)境中被測(cè)氣體狀態(tài)的信息。MQ-3對(duì)酒精較為敏感,以及有較強(qiáng)的抗干擾能力,對(duì)于油煙水汽有較強(qiáng)的抵抗性,且市場(chǎng)價(jià)格較低,適用于多種應(yīng)用,最終方案選擇MQ-3酒精傳感器。
2.5 時(shí)鐘芯片的選擇
DS1302時(shí)鐘芯片可提供時(shí)間等信息,在2V~5.5V之間可以正常工作,具備主電源后備電源雙電源引腳,1腳為主電源接口,8腳作為后備電源接口,可搭配紐扣電池做后備電源,以極低的消耗可保持時(shí)鐘運(yùn)行很長時(shí)間,運(yùn)行時(shí)間可達(dá)到幾個(gè)月甚至幾年,即使斷電后再次上電使用設(shè)備也可做到時(shí)間同步標(biāo)準(zhǔn)時(shí)間。雖然單片機(jī)內(nèi)部也有定時(shí)器,但它是對(duì)單片機(jī)工作節(jié)拍的技術(shù)的精確度較高,但不適合長時(shí)間定時(shí)。相比之下,選擇DS1302做時(shí)鐘芯片更能滿足課題要求。
2.6 系統(tǒng)整體設(shè)計(jì)方案
結(jié)合上面選擇的解決方案,確定了總體系統(tǒng)框圖,如圖2-1所示。
圖2-1 總體系統(tǒng)框圖
最終將STC89C52單片機(jī)作為系統(tǒng)的主控芯片,人機(jī)交互通過獨(dú)立按鍵和LCD1602液晶顯示屏來實(shí)現(xiàn),并可通過獨(dú)立按鍵來設(shè)定醉酒閾值,調(diào)節(jié)時(shí)間顯示,與標(biāo)準(zhǔn)時(shí)間同步。使用MQ-3酒精傳感器來得到電信號(hào),經(jīng)過電路處理成模擬電壓后輸送給單片機(jī),經(jīng)ADC0832轉(zhuǎn)換器件轉(zhuǎn)化為數(shù)字電壓。模擬信號(hào)由A/D轉(zhuǎn)換模塊輸出,用于檢測(cè)酒精的濃度,從而降低設(shè)備的使用。將所獲得的數(shù)據(jù)與預(yù)先設(shè)置的醉酒閾值進(jìn)行比較,超過設(shè)定值值時(shí),LED亮,同時(shí)蜂鳴器發(fā)出報(bào)警聲。整個(gè)電路包括:最小MCU,時(shí)鐘,功能按鍵,LCD液晶四大部分。該供電模塊由一個(gè)濾波電容,一個(gè)自鎖開關(guān),一個(gè)LED顯示,可5V直流供電,供電給各模塊;由LCD1602液晶顯示屏和可調(diào)電阻器組成液晶顯示模塊。
3 系統(tǒng)硬件設(shè)計(jì)
3.1 單片機(jī)最小系統(tǒng)
3.1.1單片機(jī)STC89C52
STC89C52單片機(jī)完全兼容8051,該單片機(jī)共有四組I/O口,全部提供給用戶(程序長度小于4K)分別是P0、P1、P2、P3。有6個(gè)中斷源,3個(gè)16位的定時(shí)/計(jì)數(shù)器,片內(nèi)振蕩器和時(shí)鐘電路在5.5V~3.8V之間可正常工作,11.0592MHz和12MHz是常用的時(shí)鐘工作頻率,安全性高,功耗低,運(yùn)行速度快,性能卓越,且市場(chǎng)價(jià)格便宜,在多個(gè)領(lǐng)域都有應(yīng)用。
3.1.2單片機(jī)最小系統(tǒng)
單片機(jī)最小系統(tǒng)電路如圖3-1所示
圖3-1 單片機(jī)最小系統(tǒng)
該產(chǎn)品采用STC89C52微控制器,以單片機(jī)為控制核心,配合晶振、電源、復(fù)位電路,具有優(yōu)異的性能、較低功耗、充分開放的系統(tǒng)資源、靈活的界面,使用者可以通過自己的方式構(gòu)建電路,實(shí)現(xiàn)各種功能。在晶振電路中,通??梢赃x擇1.2-12MHz,甚至24MHz,功率隨著頻率的增大而增大。此次采用了2個(gè)30pF陶瓷電容器,12MHz的晶振。
MCS-52單片機(jī)通常采用上電復(fù)位和按鍵復(fù)位這兩種復(fù)位方式[1]。RST的上方為一電容,并接一高電平,下方為一個(gè)電阻,并接地。在通電的情況下,電容器的兩端就會(huì)產(chǎn)生短路,RST管腳就會(huì)變成高電平,電源就會(huì)對(duì)電容充電,RST端的電壓就會(huì)緩慢地降低,直到達(dá)到一定的水平,單片機(jī)才能正常工作。
本設(shè)計(jì)改用了USB接口5V供電,通過一雙擲開關(guān)來控制電源的關(guān)斷,可連接充電寶或者手機(jī)充電器等,方便攜帶使用,其電路如圖3-2所示。
圖3-2 電源接口電路
3.2 MQ-3酒精氣體傳感器
MQ-3是一種半導(dǎo)體酒精感應(yīng)器,當(dāng)被測(cè)環(huán)境中含有酒精氣體時(shí),該傳感器的導(dǎo)電性會(huì)隨著被測(cè)環(huán)境中的酒精氣體的濃度而發(fā)生變化,接著通過特定的電路,便可將傳感器的電導(dǎo)率轉(zhuǎn)化為一定的氣體濃度的信號(hào),MQ-3酒精感應(yīng)器對(duì)酒精的敏感度很高,能夠抵抗汽油,煙霧,水蒸氣等。傳感器在充電時(shí),輸出電壓會(huì)迅速升高,當(dāng)達(dá)到一定的溫度后便會(huì)緩慢的下降,因此在使用之前,要先對(duì)傳感器進(jìn)行預(yù)熱1-2分鐘,這樣就可以保證傳感器的正常工作。被測(cè)環(huán)境中的酒精濃度與傳感器輸出電壓有著一定的關(guān)系,在無酒精氣體的環(huán)境中,傳感器的輸出電壓大約為1V,在有酒精氣體的環(huán)境中,每提高20 PPM (2毫克/100毫升)的酒精濃度,傳感器的電壓提高0.1V,該模塊內(nèi)部電路圖如圖3-3所示。
圖3-3 MQ-3酒精檢測(cè)模塊內(nèi)部電路圖
3.3 ADC0832電路設(shè)計(jì)
ADC0832是一款雙通道的A/D轉(zhuǎn)換芯片,該芯片的模擬輸入電壓范圍為0-5V,基于有雙輸出的數(shù)據(jù),可以進(jìn)行數(shù)據(jù)的校驗(yàn),從而降低了數(shù)據(jù)的錯(cuò)誤,具有較高的轉(zhuǎn)換速度和較好的穩(wěn)定性。獨(dú)立的晶片允許輸入,使得多個(gè)裝置的連接與處理單元的控制更為便利。利用DI的數(shù)據(jù)輸入,可以較為方便地進(jìn)行信道功能的選取。如果ADC0832不工作,則其CS輸入為高電平,此時(shí),可將此芯片關(guān)閉,CLK及 DO/DI可供選擇。與單片機(jī)的接口應(yīng)為CS、CLK、DO、DI四條數(shù)據(jù)線路.由于DO和DI在通信過程中不能同時(shí)進(jìn)行,并且與單片機(jī)之間的接口也是雙向的,所以在電路上,DO和DI并聯(lián)為一條數(shù)據(jù)線。圖3-4顯示了特定的電路。
圖3-4 ADC0832電路圖
3.4 時(shí)鐘電路設(shè)計(jì)
在DS1302時(shí)鐘電路中,管腳1用作主電源接口,管腳8提供低功率和低功耗的情況下的備用電源接口,當(dāng)主電源斷電時(shí),Vccl可保證其正常工作,保存資料,保持時(shí)鐘的正常運(yùn)轉(zhuǎn),做到時(shí)間同步。并外加頻率為32.768Hz晶振,提高時(shí)鐘的穩(wěn)定性。圖3-5為本設(shè)計(jì)的時(shí)鐘電路。
圖3-5 時(shí)鐘電路
3.5 報(bào)警電路設(shè)計(jì)
經(jīng)A/D轉(zhuǎn)換后所得的數(shù)字信號(hào)若比所設(shè)的閾值大,單片機(jī)的P2.3口輸出低電平,此口與報(bào)警電路相連,當(dāng)其為低電時(shí),三極管導(dǎo)通,蜂鳴器通電,發(fā)出蜂鳴聲,若為高電平時(shí),三極管無法導(dǎo)通,保持靜默。蜂鳴器報(bào)警電路如圖3-6所示。
圖3-6 報(bào)警模塊電路圖
3.6 功能按鍵模塊
在按鍵上,一般采用獨(dú)立的按鍵和矩陣的方式,各有利弊,而單獨(dú)的按鍵電路則比較簡(jiǎn)單,編程也比較方便,一般用于一些簡(jiǎn)單的硬件電路。矩陣電路恰恰相反,編寫程序不易,與獨(dú)立按鍵相比更加節(jié)省IO口,多用于8個(gè)按鍵以上的硬件電路。本設(shè)計(jì)只需四個(gè)按鍵,因此該方案采用了獨(dú)立按鍵電路,采用了多個(gè)單獨(dú)的按鍵進(jìn)行人機(jī)對(duì)話。通過按鍵操作,向系統(tǒng)發(fā)出操作指令,再與MCU進(jìn)行串口通訊,顯示在液晶顯示屏上,按鍵的一端與單片機(jī)的輸入/輸出端口相連。
這個(gè)設(shè)計(jì)是因?yàn)樵趹抑脿顟B(tài)下,單片機(jī)的I/O是置1,不按按鍵的話,I/O就等于懸空,按下按鈕后,此端口的電壓會(huì)降低,單片機(jī)可以根據(jù)輸入/輸出接口是否存在低電平來判定是否按下了按鈕,當(dāng)然,該按鍵使用的是金屬開鎖,會(huì)出現(xiàn)抖動(dòng),因此在程序中要加上一個(gè)延遲消除。此外,再按下按鍵時(shí)會(huì)產(chǎn)生抖動(dòng),所以在程序中要加一個(gè)延遲消除程序。三個(gè)按鍵的功能分別是:按鍵2按下后進(jìn)入設(shè)置模式,可以選擇需要調(diào)節(jié)的參數(shù),可連續(xù)選擇。在設(shè)置的模式下,按鍵2按下后,對(duì)應(yīng)的參數(shù)加一,按鍵3按下后對(duì)應(yīng)參數(shù)減一。功能按鍵電路如圖3-7所示。
圖3-7 功能按鍵電路
3.7 LCD1602液晶顯示模塊
顯示LCD1602總共有11個(gè)指令,通過MCU將其傳輸?shù)絃CD1602中,可以實(shí)現(xiàn)諸如屏幕清屏、切換、顯示等功能。LCD1602本身就有一個(gè)字庫,可以在顯示的時(shí)候直接調(diào)用字庫來顯示,當(dāng)然,如果字庫里沒有的字符也可以按照自己的要求寫在CGROM里,比如5*8個(gè)字符,但是定制的字符數(shù)量是有限制的,所以要按照一定的順序來設(shè)置,最多可以設(shè)置8個(gè)字符。在LCD的CGROM中寫入定制的字符之后,可以任意調(diào)用,調(diào)用方法與普通的顯示字符相同。通過讀狀態(tài)操作、寫指令操作、讀數(shù)據(jù)操作可以控制液晶顯示器,其中寫數(shù)據(jù)操作有固定的對(duì)應(yīng)引腳電平。電路圖如圖3-8所示。
4 系統(tǒng)軟件設(shè)計(jì)
4.1 程序語言及軟件開發(fā)環(huán)境
本課題的編寫涉及到軟體的編程,所以必須選用程式語言和軟體的開發(fā)環(huán)境。在編程語言上,選擇了C。C語言是一種面向過程、抽象的通用編程語言。可以說,這是一種具有兩種語言特性的語言,同時(shí)也是一個(gè)優(yōu)秀的程序設(shè)計(jì)工具,可以使用模塊化的方法編寫代碼,方便調(diào)試,同時(shí),C語言還具有很強(qiáng)的數(shù)據(jù)處理能力,可根據(jù)不同的指針,直接對(duì)硬件進(jìn)行訪問,從而實(shí)現(xiàn)對(duì)存儲(chǔ)和硬件的訪問。
KeilC51是一個(gè)可以兼容51系列單片機(jī)和C的軟件開發(fā)平臺(tái),與C語言的編程十分契合,它的集成環(huán)境簡(jiǎn)單、方便,軟件調(diào)試的功能強(qiáng)大,大大增加了程序的成功概率。而Proteus則是一個(gè)EDA的開發(fā)工具,可以通過計(jì)算機(jī)模擬單片機(jī)的電路來模擬實(shí)際的工作狀況。通過對(duì)系統(tǒng)的模擬,可以對(duì)系統(tǒng)的整體功能進(jìn)行檢驗(yàn)。
4.2 主函數(shù)的設(shè)計(jì)
程序開始運(yùn)行后,LCD1602液晶顯示器和定時(shí)器開始初始化,單片機(jī)開始讀取EEPROM存儲(chǔ)的限制數(shù)據(jù),接著判斷一分鐘預(yù)熱是否完成,保障傳感器可以正常工作,預(yù)熱完成后,程序要檢測(cè)是否有按鍵按下,若按下便進(jìn)行數(shù)據(jù)處理,并判斷顯示是否正常,若不正常則跳到顯示界面,正常則繼續(xù)下一步,單片機(jī)讀取經(jīng)A/D轉(zhuǎn)換后的數(shù)字信號(hào),并發(fā)送給液晶顯示器,最終顯示出酒精濃度。
評(píng)論
查看更多