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