基于AT89S51單片機(jī)酒精濃度探測儀_第1頁
基于AT89S51單片機(jī)酒精濃度探測儀_第2頁
基于AT89S51單片機(jī)酒精濃度探測儀_第3頁
基于AT89S51單片機(jī)酒精濃度探測儀_第4頁
基于AT89S51單片機(jī)酒精濃度探測儀_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

./必讀參考資料:[1]培仁.基于匯編語言編程MCS-51單片機(jī)原理與應(yīng)用[M].:清華大學(xué),2003.[2]吳桂秀.傳感器應(yīng)用制作入門[M].科學(xué)技術(shù),2004.目錄TOC\o"1-2"\h\z\u摘要IAbstractII1緒論11.1設(shè)計(jì)背景11.2氣敏傳感器的研究現(xiàn)狀11.3設(shè)計(jì)酒精氣體傳感器的意義21.4本文主要研究工作22硬件電路設(shè)計(jì)與實(shí)現(xiàn)42.1單片機(jī)開發(fā)流程42.2硬件系統(tǒng)框圖42.3信號(hào)采集電路52.4信號(hào)轉(zhuǎn)換電路82.5發(fā)光二極管顯示報(bào)警電路142.6數(shù)碼管顯示電路162.7系統(tǒng)整體電路圖183軟件編程203.1開發(fā)環(huán)境203.2程序流程203.3程序代碼編寫224電路調(diào)試與測試結(jié)果284.1電路調(diào)試284.2濃度與顯示之間的關(guān)系295結(jié)束語33參考文獻(xiàn)34附錄35致38摘要本設(shè)計(jì)實(shí)現(xiàn)了對(duì)不同濃度酒精的檢測和顯示,通過適當(dāng)改進(jìn)可以用于檢測酒后駕車。本文用AT89S51單片機(jī)與MQ-3型氣體傳感器實(shí)現(xiàn)了對(duì)酒精濃度的測量。論文主要研究了〔1硬件方面,MQ-3氣體傳感器技術(shù)參數(shù)的檢測和將它接入到酒精濃度檢測模塊中;將模擬電壓信號(hào)放大驅(qū)動(dòng)發(fā)光二極管點(diǎn)亮報(bào)警;將采集到的模擬電壓信號(hào)通過單片機(jī)控制經(jīng)A/D轉(zhuǎn)換,得到數(shù)字電壓信號(hào);用于顯示濃度的數(shù)碼管顯示模塊?!?軟件方面,主要研究了電壓到濃度的線性轉(zhuǎn)換和最終濃度值的數(shù)碼管顯示。〔3對(duì)設(shè)計(jì)的傳感器進(jìn)行了標(biāo)定。設(shè)計(jì)的傳感器對(duì)酒精氣體反應(yīng)靈敏,能在有效圍測量它的濃度值。并且在檢測低濃度酒精時(shí)誤差較小,最大誤差為8.2%滿足設(shè)計(jì)要求。本文的特色在于標(biāo)準(zhǔn)的確定。對(duì)于流動(dòng)空氣,樣品的穩(wěn)定性和水蒸氣的影響,提出了解決方案和驗(yàn)證方法。對(duì)不同的區(qū)間濃度和電壓轉(zhuǎn)換關(guān)系做線性化處理,簡化了硬件電路的設(shè)計(jì)。設(shè)計(jì)的傳感器可以檢測不同濃度的酒精氣體,改進(jìn)之后對(duì)解決酒后駕車事故和特殊場合酒精檢測都可以使用。1緒論1.1設(shè)計(jì)背景我國傳感器市場的增長率超過15%,20XX銷售額為186億元人民幣,20XX銷售額為283億元人民幣,預(yù)計(jì)20XX為325億元人民幣,20XX為374億元人民幣。我國傳感器4大類中,工業(yè)和汽車電子產(chǎn)品占市場份額的33.5%。近年來,傳感器正處于傳統(tǒng)型向新型傳感器轉(zhuǎn)型的發(fā)展階段,新型傳感器的特點(diǎn)是微型化、數(shù)字化、智能化、多功能化、系統(tǒng)化、網(wǎng)絡(luò)化,它將不僅促進(jìn)系統(tǒng)產(chǎn)業(yè)的改造,而且可導(dǎo)致建立新型工業(yè)和軍事變革,是21世紀(jì)新的經(jīng)濟(jì)增長點(diǎn)[1]。由于氣體與人類的日常生活密切相關(guān),對(duì)氣體的檢測已經(jīng)是保護(hù)和改善生態(tài)居住環(huán)境不可缺少的手段,氣體傳感器發(fā)揮著極其重要的作用。氣體傳感器是把氣體中的特定成分檢測出來,并轉(zhuǎn)化為電信號(hào)的一類器件,用來對(duì)有害氣體,易燃易爆氣體等進(jìn)行安全檢測和報(bào)警,對(duì)生產(chǎn)生活中需要了解的氣體進(jìn)行檢測,分析,研究等。近年來,我國氣敏傳感器產(chǎn)業(yè)有了較快的發(fā)展,但與國外相比,從技術(shù)水平,產(chǎn)業(yè)化及應(yīng)用等領(lǐng)域均存在著不小的差距。目前,氣敏傳感器領(lǐng)域還存在一些問題。一是元件的穩(wěn)定性差。由于元件電阻和靈敏度隨時(shí)間而不斷變化,漂移大給檢測結(jié)果的可靠性帶來不穩(wěn)定的因素。二是選擇性差。由于在檢測氣體時(shí),往往還存在著其它的干擾氣體<如煙酒等>,使氣敏元件發(fā)生交叉響應(yīng),產(chǎn)生誤報(bào)。三是催化劑中毒。摻有催化劑的氣敏元件接觸某些氣體后,活性組分被毒化,將會(huì)改變元件的選擇性,降低其敏感度和穩(wěn)定性,另外催化劑本身也存在著不穩(wěn)定性問題。靈敏度問題。四是SnO2元件有時(shí)由于靈敏度過大導(dǎo)致誤報(bào),但是在檢測某些低濃度氣體時(shí)靈敏度卻難以達(dá)到要求[2]。1.2氣敏傳感器的研究現(xiàn)狀氣敏元件性能與敏感功能材料的種類、結(jié)構(gòu)及制作工藝密切相關(guān)。用金屬氧化敏感材料制作的半導(dǎo)體式氣敏元件具有靈敏度高,結(jié)構(gòu)簡單,體小質(zhì)輕,堅(jiān)固耐用等優(yōu)點(diǎn)而得到廣泛的應(yīng)用,目前仍以SnO2材料為主[3]。SnO2是一種廣普型的氣敏材料,圍繞SnO2為基體材料的氣敏材料的制備及其氣敏元件制備的研究課題十分活躍。純SnO2的氣敏特性不甚好,尤其是它的熱穩(wěn)定性不高。為改善其氣敏特性,常在SnO2基體中摻入貴金屬或其他金屬氧化物。盡管SnO2基傳感材料具有許多優(yōu)點(diǎn),作為材料也存在一定缺點(diǎn)。通過控制氣敏材料微粒大小,顆粒納米化,摻雜其它添加劑或催化劑,利用過濾設(shè)備或透氣膜來獲得選擇性,控制工作溫度及環(huán)境濕度影響,改進(jìn)制備等方法可以改善SnO2傳感器的氣敏性能[4]。納米科學(xué)技術(shù)<Nano—ST>是研究尺寸在0.1—100nm的物質(zhì)組成體系的運(yùn)動(dòng)規(guī)律和相互作用以及可能的實(shí)際應(yīng)用中的技術(shù)問題的科學(xué)技術(shù)。納米技術(shù)的發(fā)展,不僅為傳感器提供了優(yōu)良的敏感材料,而且為傳感器制作提供了許多新型方法。納米固體材料具有龐大的界面,提供了大量氣體通道,從而大大提高了靈敏度,工作溫度大大降低,大大縮小了傳感器的尺寸。當(dāng)然,在己獲得明顯進(jìn)展的納米傳感領(lǐng)域存在很多問題,從敏感材料到制作技術(shù)都很不成熟,其性能也有不盡人意的地方[5]。氣敏傳感器在家用電器中也有相當(dāng)廣泛的應(yīng)用。吸油煙機(jī)等產(chǎn)品上常用MQ-3型半導(dǎo)體氣敏傳感器,它采用旁熱式結(jié)構(gòu),瓷管裝有高阻抗加熱絲,管外涂有梳狀金屬電極,金屬電極之外涂有SnO2材料,使SnO2燒結(jié)體位于兩電極之間[6]。氣敏傳感器工作時(shí),加熱器通電加熱,若無被檢氣體侵入時(shí),氣敏元件的阻值基本不變當(dāng)氣敏元件表面產(chǎn)生吸附作用,其阻值將隨氣體濃度的變化變化。當(dāng)被檢氣體濃度增大到一定值時(shí),氣敏元件的阻值將隨之下降到某一值,使電壓比較器的狀態(tài)發(fā)生變化,輸出控制信號(hào)經(jīng)電流放大后,控制繼電器或雙向晶閘管接通電動(dòng)機(jī)電源使吸排油煙機(jī)工作[7]。1.3設(shè)計(jì)酒精濃度探測儀的意義本設(shè)計(jì)基于AT89S51單片機(jī)設(shè)計(jì)的酒精氣體濃度探測儀,可用來檢測酒精氣體濃度,最主要的用途是檢測司機(jī)的酒精含量。酒后駕車發(fā)生事故的機(jī)率高達(dá)27%。隨著攝入酒精量的增加,選擇反應(yīng)錯(cuò)誤率顯著增加,當(dāng)血液中酒精含量由0.5‰增至1‰,發(fā)生車禍的可能性便增加5倍,如果增至1.5‰,可能性再增加6倍。機(jī)動(dòng)車駕駛?cè)藛T"酒后駕車"及"醉酒駕車"極易發(fā)生道路交通事故,嚴(yán)重危害了道路交通安全和人民生命財(cái)產(chǎn)安全。人飲酒后,酒精通過消化系統(tǒng)被人體吸收,經(jīng)過血液循環(huán),約有90%的酒精通過肺部呼氣排出,因此測量呼氣中的酒精含量,就可判斷其醉酒程度。開車司機(jī)只要將嘴對(duì)著傳感頭使勁吹氣,儀器就能發(fā)上顯示出酒精濃度的高低,從而判斷該司機(jī)是否酒后駕車,避免事故的發(fā)生。當(dāng)然,最好的辦法是在車安裝這種測試儀,司機(jī)一進(jìn)入車檢測儀就檢測司機(jī)的酒精含量,如果超出允許值,系統(tǒng)控制引擎無法啟動(dòng),這樣就可從根本上解決酒后駕車問題。酒精氣體濃度探測儀在生產(chǎn)生活中也有重要的應(yīng)用,比如,在一些環(huán)境要求嚴(yán)格的生產(chǎn)車間,用這種酒精濃度探測儀,可隨時(shí)檢測車間的酒精氣體濃度,當(dāng)酒精氣體濃度高于允許限定值時(shí),發(fā)出警報(bào),提醒人們及時(shí)通風(fēng)換氣,做到安全生產(chǎn)。1.4本文主要研究工作本文以AT89S51單片機(jī)為核心,設(shè)計(jì)了用于測量酒精濃度的探測儀,主要研究工作包括以下3個(gè)方面。〔1硬件電路方面,對(duì)氣體傳感器MQ-3按檢測電路,接上一定阻值的負(fù)載電阻,檢測它的技術(shù)參數(shù),確定MQ-3所接負(fù)載電阻的大小,完成信號(hào)采樣電路的設(shè)計(jì);采樣到的模擬電壓電信號(hào)通過A/D轉(zhuǎn)換,得到可供單片機(jī)處理的數(shù)字信號(hào),再由單片機(jī)作相應(yīng)的數(shù)據(jù)處理;四位共陽數(shù)碼管濃度值顯示?!?軟件方面,標(biāo)準(zhǔn)的確定是該部分要做的主要工作。因?yàn)樵嫉牟蓸又凳且粋€(gè)間接的負(fù)載分壓值,需要將它轉(zhuǎn)化為被測酒精濃度值。通過多個(gè)樣品的測量確定多個(gè)濃度區(qū)間的轉(zhuǎn)換標(biāo)準(zhǔn),并將每個(gè)區(qū)間的轉(zhuǎn)換關(guān)系近似線性化處理,然后通過軟件編程的方法來實(shí)現(xiàn)?!?為了盡量減少設(shè)計(jì)的氣體傳感器的測量誤差,在測量酒精溶液樣品時(shí)要考慮并解決3個(gè)主要問題。一是外界環(huán)境流動(dòng)空氣對(duì)傳感器的影響和對(duì)氣體樣品的稀釋,二是樣品的穩(wěn)定性對(duì)測量帶來的誤差,三是水蒸氣對(duì)測量的影響。針對(duì)這3個(gè)主要問題提出以下解決方案和驗(yàn)證方法。測量樣品時(shí),將探頭盡量放入塑料瓶,可以在一定程度上消除流動(dòng)空氣的影響,同時(shí)應(yīng)選擇空氣流動(dòng)較小的室環(huán)境來測量。水蒸氣對(duì)MQ-3的影響很小,這一點(diǎn)可以通過對(duì)只裝有純凈水的塑料瓶的多次測量來驗(yàn)證。用相同容量的塑料瓶配制好不同濃度的酒精溶液后,將它密封并放置一段時(shí)間,待其穩(wěn)定后再測量。再通過反復(fù)多次測量多組數(shù)據(jù),求其平均值的方法來縮小測量誤差。.2硬件電路設(shè)計(jì)與實(shí)現(xiàn)2.1單片機(jī)開發(fā)流程〔1可行性調(diào)研??尚行哉{(diào)研的目的,是分析完成這個(gè)項(xiàng)目的可能性。進(jìn)行這方面的工作,可參考國外有關(guān)資料,看是否有人進(jìn)行過類似的工作。如果有,則可分析他人是如何進(jìn)行這方面工作的,有什么有點(diǎn)和缺點(diǎn),有什么值得借鑒的;如果沒有,則需要作進(jìn)一步的調(diào)研,此時(shí)的重點(diǎn)應(yīng)放在能否實(shí)現(xiàn)這個(gè)環(huán)節(jié),首先從理論上進(jìn)行分析,探討實(shí)現(xiàn)的可能性,所需求的客觀條件是否具備,然后結(jié)合實(shí)際情況,再?zèng)Q定能否立項(xiàng)的問題?!?系統(tǒng)總體方案的設(shè)計(jì)。在進(jìn)行可行性調(diào)研后,如果可以立項(xiàng),下一步工作就是系統(tǒng)總體方案的設(shè)計(jì)。工作的重點(diǎn)應(yīng)放在該項(xiàng)目的技術(shù)難度上,此時(shí)可參考這一方面更詳細(xì)、更具體的資料,根據(jù)系統(tǒng)的不同部分和要實(shí)現(xiàn)的功能,參考國外同類產(chǎn)品的性能,提出合理而可行的技術(shù)指標(biāo),編寫出設(shè)計(jì)任務(wù)書,從而完成系統(tǒng)總體方案設(shè)計(jì)。〔3設(shè)計(jì)方案細(xì)化,確定軟硬件功能。一旦總體方案確定下來,下一步的工作就是將該項(xiàng)目細(xì)化,即需明確哪些部分用硬件來完成,哪些部分用軟件來完成。由于硬件結(jié)構(gòu)與軟件方案會(huì)相互影響,因此,從簡化電路結(jié)構(gòu)、降低成本、減少故障率、提高系統(tǒng)的靈活性與通用性方面考慮,提倡軟件能實(shí)現(xiàn)的功能盡可能由軟件來完成;但也應(yīng)考慮軟件代硬件的實(shí)質(zhì)是以降低系統(tǒng)的實(shí)時(shí)性、增加處理進(jìn)行為代價(jià)的,而且軟件設(shè)計(jì)費(fèi)用、研制周期也將增加,因此系統(tǒng)的軟硬件功能分配應(yīng)根據(jù)系統(tǒng)的要求及實(shí)際情況而合理安排,統(tǒng)一考慮。在確定軟硬件功能的基礎(chǔ)上,設(shè)計(jì)者的工作就開始涉及到具體的問題,如儀器的體積及與具體技術(shù)指標(biāo)相對(duì)應(yīng)的硬件實(shí)現(xiàn)方案,軟件的總體規(guī)劃等。在確定人員分工、安排工作進(jìn)度、規(guī)定接口參數(shù)后,就比須考慮硬件軟件的具體問題了?!?一個(gè)單片機(jī)應(yīng)用系統(tǒng)經(jīng)過調(diào)研、總體設(shè)計(jì)、硬件軟件設(shè)計(jì)、制版、元件安裝后,在系統(tǒng)的程序存儲(chǔ)器中放入編制好的應(yīng)用程序,系統(tǒng)即可運(yùn)行。但一次性成功的幾乎是不是不可能的。由于單片機(jī)在執(zhí)行程序時(shí)人工是無法控制的,為了能夠調(diào)試程序,檢查硬件、軟件運(yùn)行情況,這就需要借助某種開發(fā)工具模擬用戶實(shí)際的單片機(jī),并且能隨時(shí)觀察運(yùn)行的中間過程而不改變運(yùn)行中有的數(shù)據(jù)性能和結(jié)果,從而進(jìn)行模擬現(xiàn)場的真實(shí)調(diào)試。2.2硬件系統(tǒng)框圖基于AT89S51單片機(jī)用MQ-3型氣體傳感器實(shí)現(xiàn)酒精氣體濃度的檢測,需要信號(hào)采集模塊用于對(duì)酒精濃度信號(hào)的采集,該信號(hào)是通過MQ-3氣體傳感器和負(fù)載電壓得到分壓電信號(hào)。信號(hào)轉(zhuǎn)換模塊用來把采集到得模擬電壓信號(hào)轉(zhuǎn)換位可以用單片機(jī)處理的數(shù)字信號(hào)。數(shù)碼管顯示模塊是對(duì)單片機(jī)處理后的數(shù)字信號(hào)的顯示,用來顯示酒精的濃度。根據(jù)各功能模塊的設(shè)計(jì),可得到它的系統(tǒng)總框圖,如圖1所示。酒精酒精氣敏傳感器LM3914發(fā)光二極管ADC0832單片機(jī)數(shù)碼管圖1系統(tǒng)總框圖2.3信號(hào)采集電路2.3.1氣體傳感器的選擇根據(jù)被檢測氣體的不同,氣敏傳感器可分為以下三類:〔1可燃性氣體氣敏傳感器。目前該類氣敏傳感器需求量最大,包含各種無機(jī)和有機(jī)類氣體檢測,主要用于抽油煙機(jī)、泄露報(bào)警器和空氣清新劑等方面,并已經(jīng)形成生產(chǎn)規(guī)模,在油田、礦區(qū)、化工、企業(yè)及家庭等生產(chǎn)和生活領(lǐng)域廣泛用作氣體泄露報(bào)普,特別是用于家庭氣體泄露報(bào)警,需求量不斷增加,使該類傳感器有著廣泛的發(fā)展空間?!?CO和H2氣敏傳感器。CO氣敏元件可用于工業(yè)生產(chǎn)、環(huán)保、汽車、家庭等CO泄露和不完全燃燒檢測報(bào)警;H2氣敏元件除應(yīng)用于工業(yè)等領(lǐng)域外,主要用于家庭管道煤氣泄露報(bào)警。由于我國管道煤氣中H2含量很高,而氫敏元件較氧化碳元件價(jià)格低,靈敏度高,因此,用氫敏元件做城市管道煤氣泄露報(bào)警更為適宜?!?毒性氣體傳感器。毒性氣體傳感器又稱為環(huán)境有毒有害氣體傳感器,主要用于檢測煙氣、尾氣、廢氣等環(huán)境污染氣體,雖然SnO2氣敏傳感器對(duì)CO,H2S等有毒有害氣體敏感,但應(yīng)用最多的仍是電解式化學(xué)傳感器。傳感器的分類方式有很多種,以上是根據(jù)被檢測氣體的性質(zhì)進(jìn)行的分類,也有根據(jù)元件的物理特性進(jìn)行分類的。一個(gè)新型的氣體檢測系統(tǒng)應(yīng)該包括:〔1基于一種或幾種傳感技術(shù)的氣體傳感器?!?組合了氣體傳感器和采樣調(diào)理電路的探頭?!?配有人機(jī)接口軟件的中心監(jiān)測和控制系統(tǒng)?!?在一些應(yīng)用中,與其它安全系統(tǒng)和儀器的接口。本設(shè)計(jì)中的酒精氣體傳感器采用漢威電子的MQ-3型,它屬于MQ系列氣敏元件的一種。如圖2所示:圖2MQ-3特點(diǎn):檢測圍為10ppm~2000ppm;靈敏度高,輸出信號(hào)為伏特級(jí);響應(yīng)速度快,小于10秒;功耗小于0.75W,尺寸:D17*H10。MQ-3型氣敏傳感器的敏感部分是由金屬氧化物〔二氧化錫的N型半導(dǎo)體微晶燒結(jié)層構(gòu)成。當(dāng)其表面吸附有被測氣體酒精分子時(shí),表面導(dǎo)電電子比例就會(huì)發(fā)生變化,從而其表面電阻會(huì)隨著被測氣體濃度的變化而變化。由于這種變化是可逆的,所以能重復(fù)使用。MQ-3的靈敏度特性曲線如圖3所示。圖3MQ-3靈敏度特性曲線檢測電路如圖4所示,當(dāng)電源開關(guān)S斷開時(shí),傳感器加熱電流為零,實(shí)測A,B之間電阻大于20MΩ。S接通,則f,f之間電流由開始時(shí)155mA降至153mA而穩(wěn)定。加熱開始幾秒鐘后A,B之間電阻迅速下降至10KΩ以下,然后又逐漸上升至120KΩ以上后并保持著。此時(shí)如果將酒精溶液樣品靠近MQ-3傳感器,我們立即可以看到數(shù)字萬用表顯示值馬上由原來大于120KΩ降至10KΩ以下。移開小瓶過1分鐘左右后,A,B之間電阻恢復(fù)至大于120KΩ。這種反應(yīng)可以重復(fù)試驗(yàn),但要注意使空氣恢復(fù)到潔凈狀態(tài)。經(jīng)實(shí)驗(yàn)的反復(fù)檢測,MQ-3傳感器可以正常工作使用,對(duì)不同濃度的酒精溶液有不同的變化,響應(yīng)時(shí)間和恢復(fù)時(shí)間都正常,可以開始作信號(hào)采樣模塊電路的設(shè)計(jì)。圖4MQ-3檢測電路2.3.2信號(hào)采樣電路信號(hào)的采樣模塊電路如圖5所示。MQ-3的加熱電阻兩端即H引腳接至+5V直流穩(wěn)壓電源,用于電阻絲對(duì)敏感體電阻的加熱。MQ-3的兩個(gè)A引腳相連,作為敏感體電阻的一個(gè)電極。MQ-3的兩個(gè)B引腳也連接在一起,作為敏感體電阻的另一個(gè)電極。將電極斷A接到電源正極,電極端B接兩個(gè)270Ω并聯(lián)的電阻。MQ-3型氣敏傳感器與電位器串聯(lián)構(gòu)成分壓電路,采樣點(diǎn)為電位器的分壓。MQ-3型氣敏傳感器的敏感部分是由金屬氧化物SnO2的N型半導(dǎo)體微晶燒結(jié)層構(gòu)成。當(dāng)其表面吸附有被測氣體酒精分子時(shí),表面導(dǎo)電電子比例就會(huì)發(fā)生變化,從而其表面電阻會(huì)隨著被測氣體濃度的變化而變化。由于這種變化是可逆的,所以能重復(fù)使用。當(dāng)氣敏傳感器的敏感體電阻阻值發(fā)生改變時(shí),對(duì)應(yīng)的電位器的分壓值也會(huì)發(fā)生相應(yīng)的變化,即一個(gè)電壓值對(duì)應(yīng)著一個(gè)被測酒精氣體濃度。對(duì)酒精氣體濃度的采樣就可以轉(zhuǎn)化為對(duì)電位器分壓的采樣。在采樣硬件電路中實(shí)際要考慮到MQ-3的實(shí)際技術(shù)參數(shù),即加熱電阻和敏感體電阻的大小,該部分應(yīng)與電源正極相連。負(fù)載電阻要根據(jù)MQ-3實(shí)際的技術(shù)參數(shù)而選擇阻值合適的電阻。應(yīng)為實(shí)驗(yàn)所用的MQ-3在預(yù)熱5到10分鐘后,它的敏感體電阻只有120KΩ,所以負(fù)載電阻選用兩個(gè)270Ω并聯(lián),構(gòu)成采樣部分的分壓電阻。由于Proteus軟件中沒有酒精傳感器的模塊,所以用可變電阻替代。圖5采樣模塊2.4信號(hào)轉(zhuǎn)換電路單片微機(jī)是單片微型計(jì)算機(jī)的譯名簡稱,在國也常稱為"單片微機(jī)"或"單片機(jī)"。它包括中央處理器CPU,隨機(jī)存儲(chǔ)器RAM,只讀存儲(chǔ)器ROM,中斷系統(tǒng),定時(shí)器/計(jì)數(shù)器,串行口和I/O口等等?,F(xiàn)在,單片微機(jī)已不僅指單片計(jì)算機(jī),還包括微計(jì)算機(jī),微處理器,微控制器和嵌入式控制器,單片微機(jī)已是它們的俗稱[8]。AT89S51是美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS8位單片機(jī),片含4K的可系統(tǒng)編程的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。它集Flash程序存儲(chǔ)器,既可在線編程也可以用傳統(tǒng)方法進(jìn)行編程及通用8位微處理器于單片芯片中,可靈活應(yīng)用于各種控制領(lǐng)域。AT89S51提供以下標(biāo)準(zhǔn)功能:4KBFlash閃存存儲(chǔ)器,128B部RAM,32個(gè)I/O口線,看門狗,兩個(gè)數(shù)據(jù)指針,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量兩級(jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片振蕩器及時(shí)鐘電路。根據(jù)實(shí)際需要,本次設(shè)計(jì)選用的是以8051為核心單元Atmel公司的低耗AT89S51單片機(jī)。AT89S51芯片有40條引腳,采用雙列直插式封裝,如圖6所示。下面說明各引腳功能。圖6AT89S51芯片管腳VCC:運(yùn)行和程序校驗(yàn)時(shí)接電源正端。GND:接地。XTAL1:輸入到單片機(jī)部振蕩器的反相放大器。XTAL2:反相放大器的輸出,輸入到部時(shí)鐘發(fā)生器。P0口:8位漏極開路的。使用片外存儲(chǔ)器時(shí),作低八位地址和數(shù)據(jù)分時(shí)復(fù)用,能驅(qū)動(dòng)8個(gè)LSTTL上拉電阻。P1口:8位、準(zhǔn)雙向I/O口。P2口:8位、準(zhǔn)雙向I/O口。當(dāng)使用片外存儲(chǔ)器〔ROM及RAM時(shí),輸出高8位地址??梢则?qū)動(dòng)4個(gè)LSTTL負(fù)載。P3口:8位、準(zhǔn)雙向I/O口,具有部上拉電路,提供各種替代功能。P3.0——RXD串行口輸入口,P3.1——TXD串行口輸出口,P3.2——EQ\x\to<INT0>外部中斷0輸入,P3.3——EQ\x\to<INT1>外部中斷1輸入,P3.4——T0定時(shí)器/計(jì)數(shù)器0的外部輸入,P3.5——T1定時(shí)器/計(jì)數(shù)器1的外部輸入,P3.6——EQ\x\to<WR>低電平有效,輸出,片外存儲(chǔ)器寫選通,P3.7——EQ\x\to<RD>低電平有效,輸出,片外存儲(chǔ)器讀選通。RST:復(fù)位輸入信號(hào),高電平有效。在振蕩器工作時(shí),在RST上作用兩個(gè)機(jī)器周期以上的高電平,將器件復(fù)位。EQ\x\to<EA>/VCC:片外程序存儲(chǔ)器訪問允許信號(hào),低電平有效。高電平時(shí)選擇片程序存儲(chǔ)器,低電平時(shí)程序存儲(chǔ)器全部在片外而不管片是否有程序存儲(chǔ)器。ALE/PROG:地址鎖存允許信號(hào),輸出。ALE以1/6的振蕩頻率固定速率輸出,可作為對(duì)外輸出的時(shí)鐘或用作外部定時(shí)脈沖。單片機(jī)最小系統(tǒng)的設(shè)計(jì)包括電源,晶振和復(fù)位電路三個(gè)部分。這是使單片機(jī)正常工作的必要外圍電路部分。針對(duì)不同型號(hào)的單片機(jī)在最小系統(tǒng)設(shè)計(jì)上會(huì)有一些差別。對(duì)于選用的AT89S51單片機(jī),根據(jù)美國ATMEL公司提供的技術(shù)資料,可以對(duì)它的最小系統(tǒng)作恰當(dāng)?shù)脑O(shè)計(jì),如圖8所示[9]。對(duì)于電源部分,技術(shù)資料中性能參數(shù)里給出的標(biāo)準(zhǔn)工作電壓是4.0~5.5V。因此,單片機(jī)的引腳40對(duì)應(yīng)的VCC接到+5V電源的正極,引腳10對(duì)應(yīng)的GND接到+5V電源的接地端,為AT89S51單片機(jī)提供正常的工作電壓。對(duì)于晶振部分,AT89S51單片機(jī)中有一個(gè)用于構(gòu)成部振蕩器的高增益反相放大器,引腳19對(duì)應(yīng)的XTAL1和18對(duì)應(yīng)的XTAL2分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或瓷諧振器一起構(gòu)成自激振蕩器。如圖8所示,石英晶體及電容C1和C2接在放大器的反饋回路中構(gòu)成并聯(lián)諧振電路。石英晶體的兩端分別接到引腳XTAL1和引腳XTAL2,同時(shí)石英晶體的兩端分別接一個(gè)電容C1和C2,電容的另一端接地。對(duì)于外接電容C1和C2的大小雖然沒有十分嚴(yán)格的要求,但電容容量的大小還是會(huì)對(duì)振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度和溫度穩(wěn)定性帶來一定的影響。根據(jù)技術(shù)資料的推薦,使用石英晶體推薦電容容量為30pF±10pF,使用瓷諧振器推薦電容容量為40pF±10pF。因?yàn)殡娐分薪拥氖鞘⒕w,所以設(shè)計(jì)中接的兩個(gè)電容C1和C2的容量都為33pF。對(duì)于復(fù)位電路部分,AT89S51技術(shù)資料給出,當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上的高電平將使單片機(jī)復(fù)位。復(fù)位是單片機(jī)的初始化操作,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為了擺脫困境,可以按復(fù)位鍵以重新啟動(dòng),所以復(fù)位電路的設(shè)計(jì)很有必要。復(fù)位操作有上電自動(dòng)復(fù)位、按鍵電平復(fù)位和外部脈沖復(fù)位三種方式,本設(shè)計(jì)選用按鍵電平復(fù)位方式。如圖7所示,10μF的電容C3與270Ω的電阻并聯(lián)后再與一個(gè)10KΩ的電阻串聯(lián),電容的正極端接到電源的正極,電容的另一端接至引腳RST。設(shè)計(jì)中選用的石英晶體大小為11.0952MHz,但復(fù)位鍵按下后,電容和電阻選用的參數(shù)值能夠保證給復(fù)位端RST提供大于2個(gè)機(jī)器周期的高電平復(fù)位信號(hào)[10]。圖7AT89S51單片機(jī)最小系統(tǒng)設(shè)計(jì)電路ADC0808是CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,部結(jié)構(gòu)如圖8所示,它由8路模擬開關(guān)、地址鎖存與譯碼器、比較器、8位開關(guān)樹型A/D轉(zhuǎn)換器、逐次逼近寄存器、三態(tài)輸出鎖存器等其它一些電路組成。因此,ADC0808可處理8路模擬量輸入,且有三態(tài)輸出能力,既可與各種微處理器相連,也可單獨(dú)工作。輸入輸出與TTL兼容。圖8ADC0808部結(jié)構(gòu)由于在Proteus仿真軟件中找不到ADC0809芯片,所以在仿真時(shí)只能用ADC0808芯片來代替,但其工功能和原理是一樣的。ADC0808芯片有28條引腳,采用雙列直插式封裝,如圖9所示。下面說明各引腳功能。圖9ADC0808芯片IN0~IN7:8路模擬量輸入端。

2-1~2-8:8位數(shù)字量輸出端。

ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路。如表1所示。ALE:地址鎖存允許信號(hào),輸入,高電平有效。

START:A/D轉(zhuǎn)換啟動(dòng)信號(hào),輸入,高電平有效。

EOC:A/D轉(zhuǎn)換結(jié)束信號(hào),輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸出一個(gè)高電平〔轉(zhuǎn)換期間一直為低電平。

OE:數(shù)據(jù)輸出允許信號(hào),輸入,高電平有效。當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸入一個(gè)高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。

CLK:時(shí)鐘脈沖輸入端。要求時(shí)鐘頻率不高于640KHZ。

REF〔+、REF〔-:基準(zhǔn)電壓。

Vcc:電源,單一+5V。

GND:地。

ADC0808的工作過程是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動(dòng)A/D轉(zhuǎn)換,之后EOC輸出信號(hào)變低,指示轉(zhuǎn)換正在進(jìn)行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號(hào)可用作中斷申請(qǐng)。當(dāng)OE輸入高電平時(shí),輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。當(dāng)檢測到酒精氣味時(shí),氣體傳感器的A-B間電阻變小,則ADC0808的模擬輸入端IN0的電壓變大。采用查詢方式對(duì)輸入模擬信號(hào)進(jìn)行A/D轉(zhuǎn)換,然后將數(shù)據(jù)通過三位八段數(shù)碼管顯示。表1ADC0808通道地址ADDCADDBADDA選通通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7ADC0808芯片部沒有時(shí)鐘脈沖源,可以用單片機(jī)提供的地址鎖存控制輸入信號(hào)ALE經(jīng)74ls74二分頻后,作為ADC0808的時(shí)鐘輸入。ALE端信號(hào)的頻率是單片機(jī)時(shí)鐘頻率的1/6。單片機(jī)的時(shí)鐘頻率是11.0952MHz,則ALE端輸出信號(hào)的頻率為1.8492MHz,再二分頻后為0.9246Hz,符合ADC0808對(duì)時(shí)鐘頻率的要求。由于ADC0808具有三態(tài)輸出數(shù)據(jù)瑣存器,其8位數(shù)據(jù)輸出端可以直接與數(shù)據(jù)總線相連。地址選通端ADDA,ADDB,ADDC分別與單片機(jī)地址總線的低三位A0,A1,A2相連,用于選通IN0-IN7中的某一通道。由于ALE和START連在一起,ADC0808在鎖存通道地址的同時(shí)啟動(dòng)A/D轉(zhuǎn)換。在讀取A/D轉(zhuǎn)換結(jié)果時(shí),OE產(chǎn)生的正脈沖信號(hào)用于打開三態(tài)輸出鎖存器。ADC0808的EOC信號(hào)與單片機(jī)的P3.4相連,作為A/D轉(zhuǎn)換是否結(jié)束的狀態(tài)信號(hào)供單片機(jī)查詢。ADC0808與AT89S51單片機(jī)的接口電路如圖10所示[11]。單片機(jī)引腳P3.6與P2.7進(jìn)過或非門后于模數(shù)轉(zhuǎn)換芯片的ALE端和START端子用導(dǎo)線相連接,用于對(duì)模數(shù)轉(zhuǎn)換芯片寫入數(shù)據(jù)的寫信號(hào)。單片機(jī)的RD端P3.7與P2.7進(jìn)過或非門后于模數(shù)轉(zhuǎn)換芯片的OE端子用導(dǎo)線相連接,作為單片機(jī)讀取模數(shù)轉(zhuǎn)換數(shù)據(jù)的讀信號(hào)。單片機(jī)引腳P3.3與模數(shù)轉(zhuǎn)換芯片的EOC端經(jīng)過或非門后的輸出端用導(dǎo)線相連接,用于單片機(jī)對(duì)模數(shù)轉(zhuǎn)換是否結(jié)束的查詢,模數(shù)轉(zhuǎn)換結(jié)束后可以查詢到P3.3為高電平,為單片機(jī)讀取數(shù)據(jù)作準(zhǔn)備。單片機(jī)的ALE端口接到D觸發(fā)器的時(shí)鐘信號(hào)輸入端CK,D觸發(fā)器的反相輸出端與觸發(fā)信號(hào)輸入端用導(dǎo)線相連,D觸發(fā)器的清零和復(fù)位端為低電平有效,分別接高電平,D觸發(fā)器的正向輸出端與模數(shù)轉(zhuǎn)換芯片的CLK端子用導(dǎo)線相連接,為模數(shù)轉(zhuǎn)換芯片提供正常的時(shí)鐘信號(hào)。把模數(shù)轉(zhuǎn)換芯片的A2﹑A1﹑A0端分別用導(dǎo)線連接到地址鎖存器的低三位,用于選擇模數(shù)轉(zhuǎn)換的通道。模數(shù)轉(zhuǎn)換芯片的IN0端子用導(dǎo)線與信號(hào)采樣部分的負(fù)載電阻端相連,作為要模數(shù)轉(zhuǎn)換的輸入端。單片機(jī)引腳P0.0-P0.7連接到模數(shù)轉(zhuǎn)換芯片的數(shù)據(jù)輸出端D0﹑D1﹑D2﹑D3﹑D4﹑D5﹑D6﹑D7端,用于讀取模數(shù)轉(zhuǎn)換后的數(shù)據(jù)。地址地址鎖存芯片74LS373的輸入端低三位分別與單片機(jī)引腳P0.0-P0.2連接,用于鎖存選擇模數(shù)轉(zhuǎn)換通道的地址。圖10ADC0809與單片機(jī)AT89S51接口電路2.5數(shù)碼管顯示電路數(shù)碼管是由若干發(fā)光二極管組合而成的,有共陰極和共陽極兩種結(jié)構(gòu)形。四位共陽數(shù)碼管就是把所有LED的陽極連接到共同接點(diǎn)com.而每個(gè)LED的陰極分別為a﹑b﹑c﹑d﹑e﹑f﹑g及dp〔小數(shù)點(diǎn),并通過控制各個(gè)LED的亮滅來顯示數(shù)字,如圖11所示。圖11四位數(shù)共陽碼管結(jié)構(gòu)圖用單片機(jī)驅(qū)動(dòng)數(shù)碼管有靜態(tài)顯示和動(dòng)態(tài)顯示,靜態(tài)顯示就是顯示驅(qū)動(dòng)電路具有輸出鎖存功能,單片機(jī)將所要顯示的數(shù)據(jù)送出后就可以驅(qū)動(dòng)數(shù)碼管顯示數(shù)據(jù),直到下一次顯示數(shù)據(jù)需要更新時(shí)再傳送一次新的數(shù)據(jù)就可以了。靜態(tài)顯示數(shù)據(jù)穩(wěn)定,占用CPU時(shí)間少。動(dòng)態(tài)顯示需要時(shí)刻對(duì)顯示器件進(jìn)行數(shù)據(jù)刷新,顯示數(shù)據(jù)有閃爍感,占用的CPU時(shí)間多。這兩種顯示方式各有利弊;靜態(tài)顯示雖然數(shù)據(jù)穩(wěn)定,占用很少的CPU時(shí)間,但每個(gè)顯示單元都需要單獨(dú)的顯示驅(qū)動(dòng)電路,使用的硬件較多;動(dòng)態(tài)顯示雖然有閃爍感,占用的CPU時(shí)間多,但使用的硬件少,能節(jié)省線路板空間。設(shè)計(jì)選用一個(gè)四位共陽數(shù)碼管來顯示輸出的數(shù)據(jù),因?yàn)殡娐酚布鄬?duì)較簡單,所以選擇靜態(tài)顯示方法。選用1個(gè)74ls47驅(qū)動(dòng)數(shù)碼管發(fā)光點(diǎn)亮。電路連接如圖14所示。移位寄存器在電路中一是驅(qū)動(dòng)數(shù)碼管點(diǎn)亮,二是對(duì)輸入的串行數(shù)據(jù)并行輸出,起到串并轉(zhuǎn)換的作用。移位寄存器74LS164串行數(shù)據(jù)輸入端與前一位的并行輸出最高位相連,第一位移位寄存器的數(shù)據(jù)輸入端與單片機(jī)的數(shù)據(jù)輸出端P1.7連接。單片機(jī)引腳P1.6用于給移位寄存器提供移位的時(shí)鐘脈沖,該引腳與三個(gè)移位寄存器的時(shí)鐘輸入端CLK相連。因?yàn)槊课粩?shù)據(jù)串行輸出先輸出的是低位,所以數(shù)碼管引腳a、b、c、d、e、f、g、dg應(yīng)順序與對(duì)應(yīng)位的移位寄存器并行輸出端的Q7、Q6、Q5、Q4、Q3、Q2、Q1、Q0連接。圖14數(shù)碼管顯示電路2.7系統(tǒng)整體電路圖信號(hào)采樣模塊電路的輸出接到發(fā)光二極管顯示LM3914的輸入端,同時(shí)也將采樣信號(hào)輸出端接至A/D轉(zhuǎn)換芯片的輸入端,再加上單片機(jī)最小系統(tǒng)電路、單片機(jī)與模數(shù)轉(zhuǎn)換芯片的連接和單片機(jī)與數(shù)碼管顯示的連接,即可作出它的整體電路圖,如圖15所示。圖15整體電路圖.3軟件編程3.1開發(fā)環(huán)境選用的開發(fā)平臺(tái)為MedWin單片機(jī)集成開發(fā)環(huán)境,只需在PC機(jī)上安裝MedWin軟件,然后在MedWin軟件代碼編輯器編輯程序代碼,經(jīng)匯編,修改,產(chǎn)生代碼,形成輸入輸出口實(shí)驗(yàn)十六進(jìn)制.HEX文件。打開MicrocontrmllerISPSoftware,在菜單options選項(xiàng)中選擇selectdevice,在彈出的窗口中選擇器件AT89S51,并選ByteMode點(diǎn)擊OK。初始化器件后,將經(jīng)過編譯生成的.HEX十六進(jìn)制文件下載到單片機(jī)。對(duì)于8051系列單片機(jī),現(xiàn)有四種語言支持,即匯編、PL/M、C和BASIC。本設(shè)計(jì)軟件編程部分選用匯編語言來寫程序代碼。3.2程序流程當(dāng)檢測到酒精氣味時(shí),氣體傳感器MQ-3兩個(gè)電極端A-B間電阻將變小,對(duì)應(yīng)與氣體傳感器負(fù)載電阻的分壓將變大。因?yàn)锳DC0809的模擬輸入端IN0與負(fù)載電阻的一端用導(dǎo)線連在了一起。所以單片機(jī)在啟動(dòng)測試模數(shù)轉(zhuǎn)換芯片之前要選擇通道0,寫入模數(shù)轉(zhuǎn)換芯片,并將用作查詢的單片機(jī)引腳P3.3置位,然后啟動(dòng)對(duì)通道IN0端輸入的采集電壓信號(hào)作模數(shù)轉(zhuǎn)換,等待轉(zhuǎn)換的結(jié)束。利用單片機(jī)豐富的I/O口可以采用查詢方式來檢測模數(shù)轉(zhuǎn)換是否結(jié)束,當(dāng)單片機(jī)引腳P3.3為1時(shí)轉(zhuǎn)換未結(jié)束等待,當(dāng)查詢到P3.3為0時(shí)表示模數(shù)轉(zhuǎn)換已經(jīng)結(jié)束,可以開始讀取數(shù)據(jù)了。單片機(jī)通過I/O口與模數(shù)轉(zhuǎn)換芯片的數(shù)據(jù)輸出口相連讀取轉(zhuǎn)換后的數(shù)據(jù)。讀取后的數(shù)據(jù)送到數(shù)據(jù)存儲(chǔ)器單元中,經(jīng)過單片機(jī)作相應(yīng)的處理,即要將該電壓值轉(zhuǎn)換為酒精濃度值,然后處理后的數(shù)據(jù)轉(zhuǎn)換成三位十進(jìn)制BCD碼用數(shù)碼管顯示。程序流程圖如圖16所示。單片機(jī)選擇A/D通道地址單片機(jī)選擇A/D通道地址單片機(jī)P3.3置位并啟動(dòng)A/D測試A/D轉(zhuǎn)換結(jié)束?P3.3=1?數(shù)碼管顯示NY單片機(jī)初始化開始單片機(jī)讀取數(shù)據(jù)并作處理圖16程序流程圖3.3程序代碼編寫系統(tǒng)電源線接通或者系統(tǒng)復(fù)位后,程序從主程序入口進(jìn)入運(yùn)行。因?yàn)樵诔绦蛑忻看螌?duì)模數(shù)轉(zhuǎn)換后讀取的數(shù)據(jù),需要相應(yīng)的存儲(chǔ)空間,同時(shí)對(duì)讀取的數(shù)據(jù)作適當(dāng)處理后也要送到特定的存儲(chǔ)空間存儲(chǔ)起來,以供后面的數(shù)碼管顯示用。當(dāng)然,在程序運(yùn)行的過程當(dāng)中,還要用到工作寄存器,因?yàn)楣ぷ骷拇嫫鞫际桥R時(shí)存儲(chǔ)數(shù)據(jù),不需要保存作為以后處理要用到的數(shù)據(jù),所以工作寄存器的初始化這部分可以省去。于是,對(duì)于程序的初始化程序代碼可以相應(yīng)寫出[13]。START:MOVR7,#60HMOVR0,#20HCLRALOOP:MOVR0,AINCR0DJNZR7,LOOP初始化程序從數(shù)據(jù)存儲(chǔ)器地址為20H單元開始,到80H單元全部清零。即每次的初始化將上次存儲(chǔ)的數(shù)據(jù)全部清除,用于存放當(dāng)前要存儲(chǔ)的數(shù)據(jù)。對(duì)模擬電壓信號(hào)的數(shù)字轉(zhuǎn)換由模數(shù)轉(zhuǎn)換芯片ADC0809加單片機(jī)AT89S51控制來完成。模擬電壓的輸入端接在模數(shù)轉(zhuǎn)換芯片的IN0通道,再根據(jù)單片機(jī)與模數(shù)轉(zhuǎn)換芯片的連接,單片機(jī)在選擇讀寫地址時(shí)應(yīng)該為#7FF8H。因?yàn)閱纹瑱C(jī)高8位地址位的P2.7位與單片機(jī)的EQ\x\to<WR>位經(jīng)或非后與模數(shù)轉(zhuǎn)換芯片的START和ALE用導(dǎo)線連接。所以單片機(jī)在將地址#7FF8H寫入模數(shù)轉(zhuǎn)換芯片后,一方面模數(shù)轉(zhuǎn)換芯片鎖存地址選擇線的狀態(tài),從而選通相應(yīng)的模擬通道,同時(shí)啟動(dòng)模數(shù)轉(zhuǎn)換。模數(shù)轉(zhuǎn)換需要一定的時(shí)間,這時(shí)可以開始對(duì)轉(zhuǎn)換是否結(jié)束進(jìn)行不斷的查詢。ADC0809中模數(shù)轉(zhuǎn)換結(jié)束輸出標(biāo)志位是EOC,轉(zhuǎn)換結(jié)束時(shí)為高電平有效。該位通過一個(gè)反相器與單片機(jī)引腳P3.3相連,因?yàn)閱?dòng)模數(shù)轉(zhuǎn)換之前P3.3位被置位,所以當(dāng)查詢到P3.3位為0時(shí)即表示模數(shù)轉(zhuǎn)換結(jié)束。最后將轉(zhuǎn)換后的數(shù)據(jù)讀取到單片機(jī)累加器A中。根據(jù)這思路可以寫出模數(shù)轉(zhuǎn)換的子程序代碼。TEST:MOVDPTR,#7FF8HSETBP3.3MOVXDPTR,AJBP3.3,$MOVXA,DPTRRET把轉(zhuǎn)換后得到的數(shù)字電壓值讀取到單片機(jī)后,因?yàn)?實(shí)際的電壓值圍在0~+5V之間,而ADC0809模數(shù)轉(zhuǎn)換芯片對(duì)應(yīng)的是8位精度的處理,即從00000000B到11111111B,所以單片機(jī)還要對(duì)它作個(gè)除#51的處理工作。而在處理過程中對(duì)于有些數(shù)據(jù)的處理,可能要碰到雙字節(jié)相除的情況。為此,在第一位單字節(jié)除#51后,接下來的小數(shù)部分位的除#51則要作雙字節(jié)的除法,這樣才能保證使所有位能顯示出來。如果所有位都當(dāng)單字節(jié)除法來運(yùn)算的話,對(duì)于有些要作雙字節(jié)除法的位上的數(shù)字則無法顯示,而能是顯示0。相除后對(duì)應(yīng)的每一位分別送到地址為#7DH,#7EH,#7FH的存儲(chǔ)單元保存,以供顯示或后續(xù)處理用。思路明確后,實(shí)際電壓值轉(zhuǎn)換部分程序可以寫出來。MOVB,#51DIVABMOV7DH,AMOVA,BMOVB,#10MULABMOVR6,AMOVR7,BACALLDIV16MOV7EH,R6MOVA,R2MOVB,#10MULABMOVR6,AMOVR7,BACALLDIV16MOV7FH,R6經(jīng)過處理后實(shí)際采樣到的電壓值對(duì)應(yīng)的各個(gè)位就分別存儲(chǔ)在#7DH,#7EH,#7FH三個(gè)存儲(chǔ)單元里面了。模數(shù)轉(zhuǎn)換后得到的數(shù)字電壓量被單片機(jī)讀取后還要作一定的數(shù)據(jù)處理,其中包括把電壓值轉(zhuǎn)換為與之相對(duì)應(yīng)的酒精濃度值,根據(jù)總體設(shè)計(jì)思路,對(duì)電壓值都近似作對(duì)應(yīng)區(qū)間的線性轉(zhuǎn)換。即首先,單片機(jī)要對(duì)采集到的數(shù)據(jù)在哪個(gè)區(qū)間作個(gè)判斷跳轉(zhuǎn),然后再根據(jù)該區(qū)間的線性關(guān)系作轉(zhuǎn)換,得到對(duì)應(yīng)的酒精濃度值。根據(jù)酒精濃度與電壓的線性映射關(guān)系,如表3所示,可以寫出該部分的程序代碼MOVB,#100MVLABMOVR6,AMOVR7,BMOVR5,#0MOVR4,#51ACALLDIV16MOV70H,R6MOV71H,R7MOVA,71HJNZL5L1:MOV72H,#75CLRCMOVA,70HSUBBA,72HJNCL2ACALLPP0AJMPPPL2:MOV72H,#145CLRCMOVA,70HSUBBA,72HJNCL3ACALLPP1AJMPPPL3:MOV72H,#173CLRCMOVA,70HSUBBA,72HJNCL4ACALLPP2AJMPPPL4:MOV72H,#233CLRCMOVA,70HSUBBA,72HJNCL5ACALLPP3AJMPPPL5:MOV72H,#18CLRCMOVA,70HSUBBA,72HJNCL6ACALLPP4AJMPPPL6:MOV72H,#64CLRCMOVA,70HSUBBA,72HJNCL7ACALLPP5AJMPPPL7:MOV72H,#105CLRCMOVA,70HSUBBA,72HJNCL8ACALLPP6AJMPPPL8:ACALLPP7AJMPPP從讀取到的電壓值得到酒精濃度值后,還要把該值轉(zhuǎn)換為3位10進(jìn)制BCD碼,存儲(chǔ)到特定的存儲(chǔ)單元以供數(shù)碼管顯示數(shù)值。數(shù)碼管顯示選用的是靜態(tài)顯示的方法,要在每次顯示數(shù)據(jù)時(shí)把要顯示的3個(gè)位按順序串行送到數(shù)碼管集成驅(qū)動(dòng)電路74LS164并行輸出,以同時(shí)驅(qū)動(dòng)3個(gè)數(shù)碼管同時(shí)點(diǎn)亮。根據(jù)7段數(shù)碼管的字型碼如表2所示和移位寄存器74LS164的邏輯功能,將對(duì)應(yīng)的共陰極字型碼放在一個(gè)表格中,然后通過查表的方式找到要顯示的數(shù)字送移位寄存器驅(qū)動(dòng)數(shù)碼管顯示。單片機(jī)對(duì)每次移出的位通過P1.7輸入到移位寄存器的數(shù)據(jù)輸入端,移位寄存器的時(shí)鐘脈沖通過單片機(jī)P1.6模擬的時(shí)鐘信號(hào)提供。于是可以寫出顯示部分的程序代碼。DISP:MOVDPTR,#TABMOVA,7FHMOVCA,A+DPTRACALLSOMOVA,7EHMOVCA,A+DPTRACALLSOMOVA,7DHMOVCA,A+DPTRACALLSORETSO:MOVR7,#8SO1:CLRP1.6RRCAMOVP1.7,CSETBP1.6DJNZR7,SO1RET表2七段LED字型碼顯示字符共陰極字型碼共陽極字型碼03FHC0H106HF9H25BHA4H34FHB0H466H99H56DH92H67DH82H707HF8H87FH80H96FH90H程序當(dāng)中為了顯示的精確,在有些位相除時(shí)用到了雙字節(jié)相除的算法。對(duì)于多字節(jié)無符號(hào)數(shù)的除法,可以依照移位相減的基本方法來進(jìn)行。除法運(yùn)算是按位進(jìn)行的,每一位是一個(gè)循環(huán),每個(gè)循環(huán)中要作三件事,一是被除數(shù)左移一位,二是余數(shù)減除數(shù),最后根據(jù)是否減來置商位為1或0。對(duì)于被除數(shù)的移動(dòng),最簡單的辦法是把被除數(shù)向余數(shù)單元左移,把被除數(shù)左移后空出的低位存放商數(shù),當(dāng)除法完成后,被除數(shù)已全部移動(dòng)到余數(shù)單元并逐次被減而得到余數(shù),而被除數(shù)單元中容已成為商數(shù)。據(jù)此,可以寫出雙字節(jié)除法的程序代碼。DIV16:MOVR5,#0MOVR4,#51MOVR3,#0MOVR2,#0MOVR1,#16LP1:CLRCMOVA,R6RLCAMOVR6,AMOVA,R7RLCAMOVR7,AMOVA,R2RLCAMOVR2,AMOVA,R3RLCAMOVR3,AMOVA,R2CLRCSUBBA,R4JCNEXTMOVR0,AMOVA,R3SUBBA,R5JCNEXTINCR6MOVR3,AMOVA,R0MOVR2,ANEXT:DJNZR1,LP1RET根據(jù)程序流程圖和各個(gè)子程序的編寫可以得到整個(gè)設(shè)計(jì)的總程序代碼,見附錄。打開實(shí)驗(yàn)開發(fā)平臺(tái)MedWin單片機(jī)集成開發(fā)環(huán)境,在MedWin軟件代碼編輯器編輯程序代碼,經(jīng)匯編,修改,產(chǎn)生代碼。.4電路調(diào)試與測試結(jié)果4.1電路調(diào)試根據(jù)各個(gè)模塊功能的設(shè)計(jì)和繪制的整體電路圖,找到各功能模塊的連接點(diǎn)。按照設(shè)計(jì)的步驟,并對(duì)照總電路圖,在面包板上連接電路。電路的連接順序是,先連接好各個(gè)模塊,在調(diào)試檢查正確的前提下再把各個(gè)模塊連接起來。打開MedWin軟件,將寫好的調(diào)試程序代碼在計(jì)算機(jī)上輸入、匯編、修改、產(chǎn)生代碼,形成輸入輸出口實(shí)驗(yàn).HEX文件。打開打開MicrocontrmllerISPSoftware軟件,在菜單options選項(xiàng)中選擇selectdevice,在彈出的窗口中選擇器件AT89S51,并選ByteMode點(diǎn)擊OK。初始化器件后,將經(jīng)過編譯生成的,HEX十六進(jìn)制文件下載到單片機(jī)。電路連接好,并將調(diào)試程序代碼〔注釋電壓到酒精濃度轉(zhuǎn)換關(guān)系代碼燒寫到AT89S51單片機(jī)上后,接上+5V電源開始調(diào)試。先把氣體傳感器探頭用一個(gè)阻值為20kΩ的電阻替代,復(fù)位單片機(jī),觀察數(shù)碼管上的顯示數(shù)據(jù)和發(fā)光二極管的點(diǎn)亮情況。用萬用表測量采樣點(diǎn)的電壓值,看用萬用表測得的電壓值與數(shù)碼管上顯示數(shù)據(jù)是否一致。因?yàn)楦鲗?dǎo)線和元器件對(duì)電壓電流的影響,數(shù)碼管顯示的數(shù)據(jù)與萬用表測得的數(shù)據(jù)存在一定的偏差,但在可接受的圍。調(diào)節(jié)電位器,觀察數(shù)碼管數(shù)據(jù)顯示的變化,同樣用萬用表測量電壓值作比較。測量數(shù)據(jù)與數(shù)碼管顯示數(shù)據(jù)基本一致,說明電路數(shù)碼管顯示部分連接正確。然后,再把電位器阻值從0開始逐漸調(diào)大,在每過一個(gè)0.12V電壓后觀察相應(yīng)發(fā)光二極管點(diǎn)亮,說明發(fā)光二極管顯示部分電路連接正確。調(diào)試電路其他功能模塊正確后,將預(yù)熱足夠長時(shí)間能正常工作的氣體傳感器MQ-3換上原來20kΩ的電阻。準(zhǔn)備好若干個(gè)不同濃度的酒精氣體樣品,檢測氣體傳感器是否能正常工作。當(dāng)把不同濃度的酒精溶液樣品靠接氣敏傳感器時(shí),各自對(duì)應(yīng)一個(gè)不同的數(shù)據(jù)顯示,說明整體電路已經(jīng)完全正確。如圖17所示,硬件電路中發(fā)光二極管顯示和3位數(shù)碼管顯示都正確后,表明所連接的硬件電路已經(jīng)調(diào)試成功。這時(shí)候可以配制幾個(gè)酒精溶液對(duì)調(diào)試電路作初步測試。圖17所示是測量其中一個(gè)樣品溶液時(shí)顯示的數(shù)值。圖17調(diào)試電路圖4.2濃度與顯示之間的關(guān)系4.2.1傳感器的定標(biāo)在系統(tǒng)電路調(diào)試正確以后,要作改進(jìn)工作,使數(shù)碼管上正確顯示所測的酒精氣體濃度值。之前顯示的是酒精濃度值與電壓的對(duì)應(yīng)關(guān)系,所以要顯示酒精濃度值,需要找到電壓與濃度之間的關(guān)系,然后才能建立酒精濃度值與顯示的映射關(guān)系。測量用的酒精溶液是用無水乙醇和純凈水按體積比來配制的,單位mL/mL表示的是1mL酒精溶液中含酒精的體積。準(zhǔn)備多個(gè)不同濃度的酒精氣體樣品,從小到大,依次用氣敏傳感器檢測,記錄對(duì)應(yīng)的電壓值,記錄樣品的濃度和電壓值之間的關(guān)系,如圖17所示。根據(jù)曲線圖的走向可以看出傳感器的酒精濃度檢測大致圍,然后根據(jù)這個(gè)圍選擇7個(gè)合適的濃度值,多次測量電壓值,再取平均值作為最后電壓值,把6個(gè)標(biāo)準(zhǔn)區(qū)間圍定下來,如表3所示。圖17濃度與電壓關(guān)系曲線圖表3樣品對(duì)應(yīng)電壓值樣品濃度C<mL/mL>C1C2C3C4EQ\x\to<C>0.3753.683.543.603.613.610.3333.193.203.173.223.200.1672.762.742.732.742.740.1002.332.352.342.302.330.0331.741.701.751.731.730.0201.471.421.431.461.450.0100.760.740.760.730.75在酒精氣體濃度的每個(gè)小區(qū)間,將電壓值與數(shù)碼管顯示值之間的關(guān)系當(dāng)作線性處理,即每段小區(qū)間對(duì)應(yīng)著一個(gè)線性映射關(guān)系,如表4所示。在要作不同線性轉(zhuǎn)換電壓區(qū)間圍和對(duì)應(yīng)的線性轉(zhuǎn)換關(guān)系確定好了以后,根據(jù)表4所對(duì)應(yīng)的關(guān)系,修改數(shù)據(jù)處理程序部分,建立酒精濃度和電壓之間的關(guān)系。使最終顯示的數(shù)據(jù)為酒精濃度值。根據(jù)編寫的數(shù)據(jù)處理程序,數(shù)碼管最終顯示的是酒精濃度值小數(shù)部分的前3位數(shù)字。這樣,一個(gè)完整的基于AT89S51單片機(jī)酒精濃度探測儀就設(shè)計(jì)出來了。表4濃度與電壓線性映射關(guān)系電壓值區(qū)間<V>濃度轉(zhuǎn)換關(guān)系3.61~3.20C=0.11*V-0.0223.20~2.74C=0.35*V-0.7892.74~2.33C=0.17*V-0.2962.33~1.73C=0.11*V-0.1561.73~1.45C=0.046*V-0.0471.45~0.75C=0.014*V4.2.2酒精濃度測試結(jié)果將配制好的濃度為0.011mL/mL、0.014mL/mL、0.025mL/mL、0.170mL/mL用做成的探測儀檢測,其結(jié)果分別顯示為:011、015、023、156。測量的最大誤差為8.2%對(duì)于檢測濃度低的酒精誤差比檢測濃度高的酒精誤差小,這也是設(shè)計(jì)的該酒精濃度探測儀適合與檢測酒后駕車的原因,因?yàn)槿嗽陲嬀坪?從呼吸道呼出的酒精氣體濃度一般都不是很高。因此,對(duì)設(shè)計(jì)的傳感器可以在定標(biāo)上作適當(dāng)?shù)母倪M(jìn),就可以用于檢測酒后駕車。如圖18所示是最終的測試電路,可以用來檢測不同濃度的酒精溶液。圖中所示的是檢測濃度為0.170mL/mL的酒精溶液,顯示濃度值小數(shù)部分前3位數(shù)字的結(jié)果是156。圖18測試電路圖.5結(jié)束語MQ-3傳感器屬于金屬半導(dǎo)體電阻式傳感器,靈敏度高,響應(yīng)速度快,可重復(fù)性使用。當(dāng)傳感器的敏感部分吸附有酒精分子時(shí),表面的導(dǎo)電電子比例就會(huì)發(fā)生變化,從而其表面電阻會(huì)隨著被測酒精氣體濃度的不同而發(fā)生相應(yīng)的變化,且這種變化是可逆的,可重復(fù)使用。MQ-3接上一定阻值的負(fù)載電阻,即可構(gòu)成對(duì)酒精氣體濃度的檢測部分。負(fù)載電阻的分壓值即對(duì)應(yīng)著一個(gè)酒精氣體的濃度值,只需對(duì)該分壓值采樣,就可得到要測酒精氣體濃度值的信號(hào)。將該信號(hào)通過A/D轉(zhuǎn)換,將模擬信號(hào)轉(zhuǎn)化為數(shù)字信號(hào)。轉(zhuǎn)換后的數(shù)字信號(hào)由單片機(jī)作相應(yīng)的數(shù)據(jù)處理,得到3位BCD碼并將3位送送數(shù)碼管顯示。在發(fā)光二極管顯示報(bào)警模塊中,將采集信號(hào)輸入二極管集成功率放大器,對(duì)該采集信號(hào)放大后驅(qū)動(dòng)相應(yīng)的發(fā)光二極管點(diǎn)亮,起到報(bào)警的作用。當(dāng)然可以對(duì)本系統(tǒng)作一定改進(jìn),并在此基礎(chǔ)上制作酒精檢測鑰匙。即在車鑰匙上設(shè)計(jì)一個(gè)小吹管,由一組信號(hào)發(fā)射器連接至車上的電子控制組件,如果駕駛者在開門之前所做的酒精吹氣測試樣本被發(fā)現(xiàn)超過法定允許的標(biāo)準(zhǔn)值,則系統(tǒng)將使引擎維持在靜止?fàn)顟B(tài)無法啟動(dòng)。當(dāng)駕駛者按下遙控器上的開門按鈕,酒精探測儀也隨之啟動(dòng),然后駕駛者對(duì)著小管口吹氣,酒精濃度會(huì)經(jīng)由感應(yīng)器上的小綠燈或小紅燈顯示出來。當(dāng)顯示綠燈時(shí),鑰匙將傳送允許信號(hào)至車輛的電子控制系統(tǒng),也就是通過檢測,可以上路了;但是如果測試結(jié)果為紅燈,則車輛將維持在鎖定狀態(tài),即使鑰匙插入鑰匙孔也無法發(fā)動(dòng)車子。半導(dǎo)體氣敏傳感器和電化學(xué)固體電解質(zhì)氣敏傳感器具有測量精度高、所需試樣少、響應(yīng)快等特點(diǎn),廣泛應(yīng)用于化工、建筑、環(huán)保、醫(yī)療、家電、安全保衛(wèi)等領(lǐng)域。隨著納米技術(shù)、薄膜技術(shù)等新材料研制成功,微機(jī)械與微電子技術(shù)、計(jì)算機(jī)技術(shù)等的綜合應(yīng)用,高性能的氣敏傳感器將會(huì)不斷出現(xiàn)。.參考文獻(xiàn)[1]司士輝.生物傳感器[M].化學(xué)工業(yè),2003.[2]吳桂秀.傳感器應(yīng)用制作入門[M].科學(xué)技術(shù),2004.[3]軍.傳感器與檢測技術(shù)[M].電子科技大學(xué),2003.[4]杰,黃鴻.傳感器與檢測技術(shù)[M].:高等教育,2003.[5]吳桂秀.傳感器應(yīng)用制作入門[M].科學(xué)技術(shù),2004.[6]錫富.傳感器[M].:機(jī)械工業(yè),2002.[7]郁有文.傳感器原理及工程應(yīng)用[M].:電子科技大學(xué),2003.[8]樓然苗,光飛.51系列單片機(jī)設(shè)計(jì)實(shí)例[M].航空航天大學(xué),2003.[9]朱定華,戴汝平.單片微機(jī)原理與

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論