課程設(shè)計——酒精檢測儀設(shè)計_第1頁
課程設(shè)計——酒精檢測儀設(shè)計_第2頁
課程設(shè)計——酒精檢測儀設(shè)計_第3頁
課程設(shè)計——酒精檢測儀設(shè)計_第4頁
課程設(shè)計——酒精檢測儀設(shè)計_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、重慶三峽學(xué)院專業(yè)綜合課程設(shè)計報告 題 目 51單片機酒精濃度測試儀設(shè)計 系 別 電子與信息工程學(xué)院 專 業(yè) 電子信息工程 班 級 *級*班 姓 名 XXX 學(xué) 號 201107014115 2014年 12 月 12 日酒精濃度檢測儀的設(shè)計一、設(shè)計目的近年來,我國越來越多的人有了自己的私家車,而酒后駕車造成的交通事故也頻繁發(fā)生。為此,我國將酒駕列入刑法范圍內(nèi),所以需要設(shè)計一智能儀器能夠檢測駕駛員體內(nèi)酒精含量。本課程設(shè)計研究的是一種以氣敏傳感器和單片機A/D轉(zhuǎn)換器為主,檢測駕駛員呼出氣體的酒精濃度,并具有聲光報警功能的空氣酒精濃度監(jiān)測儀。其可檢測出空氣環(huán)境中酒精濃度值,并可根據(jù)不同的環(huán)境設(shè)定不同

2、的閾值,對超過的閾值進行聲光報警來提示危害。本課題分為兩部分:硬件設(shè)計部分和軟件設(shè)計部分。硬件部分為利用MQ3氣敏傳感器測量空氣中酒精濃度,并轉(zhuǎn)換為電壓信號,經(jīng)A/D轉(zhuǎn)換器轉(zhuǎn)換成數(shù)字信號后傳給單片機系統(tǒng),由單片機及其相應(yīng)外圍電路進行信號的處理,顯示酒精濃度值以及超閾值聲光報警。程序采用模塊化設(shè)計思想,各個子程序的功能相對獨立,便于調(diào)試和修改。而硬件電路又大體可分為單片機小系統(tǒng)電路、A/D轉(zhuǎn)換電路、聲光報警電路、LED顯示電路,按鍵電路,各部分電路的設(shè)計及原理將會在硬件電路設(shè)計部分詳細(xì)介紹。二、設(shè)計方案1、酒精濃度檢測儀總設(shè)計方案設(shè)計時,考慮酒精濃度是由傳感器把非電量轉(zhuǎn)換為電量,傳感器輸出的是0

3、-5伏的電壓值且電壓值穩(wěn)定,外部干擾小等。因此,可以直接把傳感器輸出電壓值經(jīng)過A/D轉(zhuǎn)換器轉(zhuǎn)換得到數(shù)據(jù)送入單片機進行處理。此外,還需接人LED數(shù)碼管顯示,鍵盤設(shè)定,報警電路等。其總體框圖如圖1所示。被測環(huán)境氣敏傳感器A/D轉(zhuǎn)換電路單片機聲光報警電路LED顯示鍵盤圖1 基本工作原理圖3、 設(shè)計內(nèi)容1、 酒精濃度檢測儀設(shè)計要求分析設(shè)計的酒精濃度測試儀應(yīng)具有如下特點:(1)數(shù)據(jù)采集系統(tǒng)以單片機為控制核心,外圍電路帶有LED顯示以及鍵盤響應(yīng)電路,無需要其他計算機,用戶就可以與之進行交互工作,完成數(shù)據(jù)的采集、存儲、計算、分析等過程。(2)系統(tǒng)具有低功耗、小型化、高性價比等特點。(3)從便攜式的角度出發(fā),

4、系統(tǒng)成功使用了數(shù)碼管顯示器以及小鍵盤。由單片機系統(tǒng)控制鍵盤和LED顯示來實現(xiàn)人機交互操作,界面友好。(4)軟件設(shè)計簡單易懂。2、設(shè)計內(nèi)容要求(1)傳感器TGS822的電壓模擬輸出范圍為0-5V; (2)模數(shù)轉(zhuǎn)換芯片ADC0809采樣電壓范圍為0-5V,分辨率為8位,采樣精度為5/256V,達(dá)到256個量化級的數(shù)字電壓,其工作頻率為1MHz; (3)單片機AT89C52工作頻率為6 MHz;傳感器LCD顯示輸出單片機數(shù)字輸出控制輸出模數(shù)轉(zhuǎn)換模擬輸出 (4)LCD顯示器用50K的可調(diào)電阻調(diào)節(jié)使其清晰顯示。4、 電路設(shè)計與描述1、硬件設(shè)計1.1 傳感器的選擇本

5、系統(tǒng)直接測量的是呼氣中的酒精濃度,再轉(zhuǎn)換為血液中的酒精含量濃度,故采用氣敏傳感器??紤]到周圍空氣中的氣體成分可能影響傳感器測量的準(zhǔn)確性,所以傳感器只能對酒精氣體敏感,對其他氣體不敏感,故選用MQ3型氣敏傳感器。其有很高的靈敏度、良好的選擇性、長期的使用壽命和可靠的穩(wěn)定性。MQ3型氣敏傳感器由微型Al2O3,陶瓷管和SnO2敏感層、測量電極和加熱器構(gòu)成的敏感元件固定在塑料或不銹鋼的腔體內(nèi),加熱器為氣敏元件的工作提供了必要的工作條件。傳感器的標(biāo)準(zhǔn)回路有兩部分組成。其一為加熱回路,其二為信號輸出回路,它可以準(zhǔn)確反映傳感器表面電阻值的變化。傳感器的表面電阻RS的變化,是通過與其串聯(lián)的負(fù)載電阻RL上的有

6、效電壓信號VRL輸出面獲得的。負(fù)載電阻RL可調(diào)為05-200K。加熱電壓Uh為5v。上述這些參數(shù)使得傳感器輸出電壓為0-5V。MQ3型氣敏傳感器的結(jié)構(gòu)和外形、標(biāo)準(zhǔn)回路、傳感器阻值變化率與酒精濃度、外界溫度的關(guān)系圖如圖4所示。為了使測量的精度達(dá)到最高,誤差最小,需要找到合適的溫度,一般在測量前需將傳感器預(yù)熱5分鐘。 圖2 MQ3 結(jié)構(gòu)和外形 圖3 MQ3 結(jié)構(gòu)圖圖4 傳感器阻值變化率與酒精濃度、外界溫度之間的關(guān)系1.2 A/D轉(zhuǎn)換電路在單片機應(yīng)用系統(tǒng)中,被測量對象的有關(guān)變化量,如溫度、壓力、流量、速度等非電物理量,須經(jīng)傳感器轉(zhuǎn)換成連續(xù)變化的模擬電信號(電壓或電流),這些模擬電信號必須轉(zhuǎn)換成數(shù)字量

7、后才能在單片機中用軟件進行處理。實現(xiàn)模擬量轉(zhuǎn)換成數(shù)字量的器件稱為A/D轉(zhuǎn)換器(ADC)。A/D轉(zhuǎn)換器大致分有三類:一是雙積分A/D轉(zhuǎn)換器,優(yōu)點是精度高,抗干擾性好,價格便宜,但速度慢;二是逐次逼近型A/D轉(zhuǎn)換器,精度、速度、價格適中;三是-A/D轉(zhuǎn)換器。該設(shè)計中選用的是ADC0809屬第二類,是8位A/D轉(zhuǎn)換器。0809具有8路模擬信號輸入端口,地址線(23-25腳)可決定那一路模擬信號進行A/D轉(zhuǎn)換。22腳為地址鎖存控制,當(dāng)輸入為高電平時,對地址信號進行鎖存。6腳為測試控制,當(dāng)輸入一個2s的高電平脈沖時,就開始A/D轉(zhuǎn)換。7引腳為A/D轉(zhuǎn)換結(jié)束標(biāo)志,當(dāng)A/D轉(zhuǎn)換結(jié)束時,7腳輸出高電平。9腳為

8、A/D轉(zhuǎn)換數(shù)據(jù)輸出允許端,當(dāng)OE腳為高電平時,A/D轉(zhuǎn)換數(shù)據(jù)輸出。10腳為0809的時鐘輸入端。1.2.1 ADC0809的引腳及功能逐次比較型A/D轉(zhuǎn)換器在精度、速度、和價格上都適中,是最常用的A/D轉(zhuǎn)換器件。芯片采用的是ADC0809,以下介紹ADC0809的引腳及功能。芯片如圖5所示。 圖5 ADC0809的引腳ADC0809是一種逐次比較式8路模擬輸入、8位數(shù)字量輸出的A/D轉(zhuǎn)換器。由圖可見,ADC0809共有28個引腳,采用雙列直插式封裝。主要引腳功能如下: IN0-IN7是8路模擬信號輸入端。 D0-D7是8位數(shù)字量輸入端。 A、B、C與ALE控制8路模擬通道的切換,A、B、C分別

9、與3根地址線或數(shù)據(jù)線相連,3位編碼對應(yīng)8個通道地址端口。ADC0809芯片有28條引腳,采用雙列直插式封裝,如圖所示。下面說明各引腳功能。IN0IN7:8路模擬量輸入端。2-12-8:8位數(shù)字量輸出端。ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路ALE:地址鎖存允許信號,輸入,高電平有效。START: A/D轉(zhuǎn)換啟動脈沖輸入端,輸入一個正脈沖(至少100ns寬)使其啟動(脈沖上升沿使0809復(fù)位,下降沿啟動A/D轉(zhuǎn)換)。EOC: A/D轉(zhuǎn)換結(jié)束信號,輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換期間一直為低電平)。OE:數(shù)據(jù)輸出允許信號,輸入,高電平有效。當(dāng)A

10、/D轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。REF(+)、REF(-):基準(zhǔn)電壓。Vcc:電源,單一+5V。GND:地。首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動 A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當(dāng)OE輸入高電平 時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。轉(zhuǎn)換數(shù)據(jù)的傳送 A/

11、D轉(zhuǎn)換后得到的數(shù)據(jù)應(yīng)及時傳送給單片機進行處理。數(shù)據(jù)傳送的關(guān)鍵問題是如何確認(rèn)A/D轉(zhuǎn)換的完成,因為只有確認(rèn)完成后,才能進行傳送。為此可采用下述三種方式。(1)定時傳送方式對于一種A/D轉(zhuǎn)換器來說,轉(zhuǎn)換時間作為一項技術(shù)指標(biāo)是已知的和固定的。例如ADC0809轉(zhuǎn)換時間為128s,相當(dāng)于6MHz的MCS-51單片機共64個機器周期。可據(jù)此設(shè)計一個延時子程序,A/D轉(zhuǎn)換啟動后即調(diào)用此子程序,延遲時間一到,轉(zhuǎn)換肯定已 經(jīng)完成了,接著就可進行數(shù)據(jù)傳送。(2)查詢方式A/D轉(zhuǎn)換芯片有表明轉(zhuǎn)換完成的狀態(tài)信號,例如ADC0809的EOC端。因此可以用查詢方式,測試EOC的狀態(tài),即可確認(rèn)轉(zhuǎn)換是否完成,并接著進行數(shù)據(jù)

12、傳送。(3)中斷方式把表明轉(zhuǎn)換完成的狀態(tài)信號(EOC)作為中斷請求信號,以中斷方式進行數(shù)據(jù)傳送。不管使用上述哪種方式,只要一旦確定轉(zhuǎn)換完成,即可通過指令進行數(shù)據(jù)傳送。首先送出口地址并以信號有效時,OE信號即有效,把轉(zhuǎn)換數(shù)據(jù)送上數(shù)據(jù)總線,供單片機接受。需要注意的是:ADC0809雖然有8路模擬通道可以同時輸入8路模擬信號,但每個瞬間只能換1路,共用一個A/D轉(zhuǎn)換器進行轉(zhuǎn)換,各路之間的切換由軟件改變C、A、B引腳上的代碼來實現(xiàn)。地址鎖存與譯碼電路完成對 A、B、C 3個地址位進行鎖存和譯碼,其譯碼輸出用于通道選擇,其轉(zhuǎn)換結(jié)果通過三態(tài)輸出鎖存器存放、輸出,因此可以直接與系統(tǒng)數(shù)據(jù)總線相連,圖6為通道選

13、擇表。圖6 通道選擇表 OE、START、CLK為控制信號端,OE為輸出允許端,START為啟動信號輸入端,CLK為時鐘信號輸入端。 VR(+)和VR(-)為參考電壓輸入端。1.2.2 ADC0809的結(jié)構(gòu)及轉(zhuǎn)換原理ADC0809的結(jié)構(gòu)框圖如圖7。ADC0809采用逐次比較的方法完成A/D轉(zhuǎn)換的,由單一的+5V電源供電。片內(nèi)有鎖存功能的8路選1的模擬開關(guān),由C、B、A引腳的功能來決定所選的通道。0809完成一次轉(zhuǎn)換需100s左右,輸出具有TTL三態(tài)鎖存緩沖器,可直接連接到MCS-51的數(shù)據(jù)總線上。通過適當(dāng)?shù)耐饨与娐罚?809可對0-5V的模擬信號進行轉(zhuǎn)換。START CLKOEVR(+) VR

14、()VCCGNDEOCD0.D7三態(tài)輸出鎖存器8位A/D轉(zhuǎn)換器地址鎖存與密碼CBAALE8路模擬量開關(guān)IN7.IN0圖7 ADC0809的結(jié)構(gòu)框圖1.2.3 ADC0809連線圖ADC0809與單片機的連線圖如圖8:圖8 ADC0809的連線圖1.3 89C51單片機系統(tǒng)單片機是一種集成電路芯片,采用超大規(guī)模技術(shù)把具有數(shù)據(jù)處理能力(如算術(shù)運算,邏輯運算、數(shù)據(jù)傳送、中斷處理)的微處理器(CPU),隨機存取數(shù)據(jù)存儲器(RAM),只讀程序存儲器(ROM),輸入輸出電路(I/O口),可能還包括定時計數(shù)器,串行通信口(SCI),顯示驅(qū)動電路(LCD或LED驅(qū)動電路),脈寬調(diào)制電路(PWM),模擬多路轉(zhuǎn)換

15、器及A/D轉(zhuǎn)換器等電路集成到一塊單塊芯片上,構(gòu)成一個雖小然而完善的計算機系統(tǒng)。這些電路能在軟件的控制下準(zhǔn)確、迅速、高效地完成程序設(shè)計者事先規(guī)定的任務(wù)。1.3.1 單片機片內(nèi)結(jié)構(gòu)51單片機的片內(nèi)結(jié)構(gòu)如圖9所示。它把那些作為控制應(yīng)用所必需的基本內(nèi)容都集成在一個尺寸有限的集成電路芯片上。按功能劃分,它有如下功能部件組成: 微處理器(CPU)。 數(shù)據(jù)存儲器(RAM)。 程序存儲器(ROM/EPROM)。 4個8位并行I/O口(P0口、P1口、P2口、P3口)。 一個串行口。 2個16位定時器、計數(shù)器。 2個16位定時器、計數(shù)器。 中斷系統(tǒng)。 特殊功能寄存器(SFR)。PSEN88EOCXTAL1CPU

16、(運算器)(控制器)數(shù)據(jù)存儲器RAMP0P2程序存儲器ROM/EPROMP1串行口定時器/計數(shù)器中斷系 統(tǒng)特殊功能寄存器(SFR)P3ALEEAIN7.I0XTAL288RESE T 圖9 51單片機片內(nèi)結(jié)構(gòu)上述功能部件都是通過片內(nèi)單一總線連接而成,其基本結(jié)構(gòu)依舊是CPU加上外圍芯片的傳統(tǒng)結(jié)構(gòu)模式。但CPU對各種功能部件的控制是采用特殊功能寄存器的集中控制方式。從硬件角度來看,與MCS-51指令完全兼容的新一代AT89CXX系列機,比在片外加EPROM才能相當(dāng)?shù)?031單片機抗干擾性能強,與87C51單片機技能相當(dāng),但功耗小。程序修改直接用+5V或+12V電源擦除,更顯方便、而且其工作電壓放寬

17、至2.7V-6V,因而受電壓波動的影響更小,而且4K的程序存儲器完全能滿足單片機系統(tǒng)的軟件要求,故AT89C51單片機是構(gòu)造本檢測系統(tǒng)的更理想的選擇。1.3.2 89C51芯片介紹掌握MCS-51單片機,應(yīng)首先了解MCS-51的引腳,熟悉并牢記各引腳的功能,MCS-51系列中各種型號芯片的引腳是互相兼容的。制作工藝為HMOS的MCS-51的單片機都采用40只引腳的雙列直插封裝方式,如圖10所示。圖10 AT89C51芯片管腳圖40只引腳按其功能來分,可分為如下3類: 電源及時鐘引腳:Vcc、Vss、XTAL1、XTAL2。電源引腳接入單片機的工作電源。Vcc接+5V電源,Vss接地。時鐘引腳X

18、TAL1、XTAL2外接晶體與片內(nèi)的反相放大器構(gòu)成了1個晶體振蕩器,它為單片機提供了時鐘控制信號。2個時鐘引腳也可外接獨立的晶體振蕩器。XTAL1接外部的一個引腳。該引腳內(nèi)部是一個反相放大器的輸入端。這個反相放大器構(gòu)成了片內(nèi)振蕩器。如果采用外接晶體振蕩器時,此引腳接地。XTAL2接外部晶體的另一端,在該引腳內(nèi)部接至內(nèi)部反相放大器的輸出端。若采用外部時鐘振蕩器時,該引腳接受時鐘振蕩器的信號,即把此信號直接接到內(nèi)部時鐘發(fā)生器的輸入端。 控制引腳:、ALE、RESET(RST)。此類引腳提供控制信號,有的還具有復(fù)用功能。 RST/VPD引腳:RESET(RST)是復(fù)位信號輸入端,高電平有效。當(dāng)單片機

19、運行時,在此引腳加上持續(xù)時間大于2個機器周期(24個振蕩周期)的高電平時,就可以完成復(fù)位操作。在單片機工作時,此引腳應(yīng)為0.5V低電平。VPD為本引腳的第二功能,即備用電源的輸入。當(dāng)主電源發(fā)生故障,降低到某一規(guī)定值的低電平時,將+5V電源自動接入RST端,為內(nèi)部RAM提供備用電源,以保證片內(nèi)RAM的信息不丟失,從而使單片機在復(fù)位后能正常進行。 ALE/ 引腳:ALE引腳輸出為地址鎖存允許信號,當(dāng)單片機上電正常工作后ALE引腳不斷輸出正脈沖信號。當(dāng)單片機訪問外部存儲器時,ALE輸出信號的負(fù)跳沿用于單片機發(fā)出的低8位地址經(jīng)外部鎖存器鎖存的鎖存控制信號。即使不訪問外部鎖存器,ALE端仍有正脈沖信號輸

20、出,此頻率為時鐘振蕩器頻率的1/6。 為該引腳的第二功能。在對片內(nèi)EPROM型單片機編程寫入時,此引腳作為編程脈沖輸入端。 引腳:程序存儲器允許輸出控制端。在單片機訪問外部程序存儲器時,此引腳輸出脈沖負(fù)跳沿作為讀外部程序存儲器的選通信號。此引腳接外部程序存儲器的OE(輸出允許端)。 /VPP引腳:功能為片內(nèi)程序存儲器選擇控制端。當(dāng)引腳為高電平時,單片機訪問片內(nèi)程序存儲器,但在PC值超過0FFFH時,即超出片內(nèi)程序存儲器的4KB地址范圍時將自動轉(zhuǎn)向執(zhí)行外部程序存儲器內(nèi)的程序。當(dāng)引腳為低時,單片機只訪問外部程序存儲器,不論是否有內(nèi)部程序存儲器。 I/O口引腳:P0、P1、P2、P3,為四個8位I/

21、O口的外部引腳。P0口、P1口、P2口、P3口是3個8位準(zhǔn)雙向的I/O口,各口線在片內(nèi)均有固定的上拉電阻。當(dāng)這3個準(zhǔn)雙向I/O口作輸入口使用時,要向該口先寫1,另外準(zhǔn)雙向口I/O口無高阻的“浮空”狀態(tài)。由于單片機具有體積小、質(zhì)量輕、價格便宜、耗電少等突出特點,所以本系統(tǒng)采用89C51單片機,硬件設(shè)計電路圖如圖1所示。89C51內(nèi)部有4KB的EPROM,128字節(jié)的RAM,所以一般都要根據(jù)所需存儲容量的大小來擴展ROM和RAM。本電路接高電平,沒有擴展片外ROM和RAM。 1.3.3 晶振電路和復(fù)位電路最小系統(tǒng)包括單片機及其所需的必要的電源、時鐘、復(fù)位等部件,能使單片機始終處于正常的運行狀態(tài)。電

22、源、時鐘等電路是使單片機能運行的必備條件,可以將最小系統(tǒng)作為應(yīng)用系統(tǒng)的核心部分,通過對其進行存儲器擴展、A/D擴展等,使單片機完成較復(fù)雜的功能。89C51是片內(nèi)有ROM/EPROM的單片機,因此,這種芯片構(gòu)成的最小系統(tǒng)簡單可靠。用89C51單片機構(gòu)成最小應(yīng)用系統(tǒng)時,只要將單片機接上時鐘電路和復(fù)位電路即可,結(jié)構(gòu)如圖11所示,由于集成度的限制,最小應(yīng)用系統(tǒng)只能用作一些小型的控制單元。時鐘電路復(fù)位電路STC89C51單片機I/O口 圖11單片機最小系統(tǒng)原理框圖(1) 時鐘電路89C51單片機的時鐘信號通常有兩種方式產(chǎn)生:一是內(nèi)部時鐘方式,二是外部時鐘方式。內(nèi)部時鐘方式如圖12所示。在89C51單片機

23、內(nèi)部有一振蕩電路,只要在單片機的XTAL1(18)和XTAL2(19)引腳外接石英晶體(簡稱晶振),就構(gòu)成了自激振蕩器并在單片機內(nèi)部產(chǎn)生時鐘脈沖信號。圖中電容C1和C2的作用是穩(wěn)定頻率和快速起振,電容值在530pF,典型值為30pF。晶振CYS的振蕩頻率范圍在1.212MHz間選擇,典型值為12MHz和6MHz。 圖12 89C51內(nèi)部時鐘電路(2) 復(fù)位電路當(dāng)在89C51單片機的RST引腳引入高電平并保持2個機器周期時,單片機內(nèi)部就執(zhí)行復(fù)位操作(若該引腳持續(xù)保持高電平,單片機就處于循環(huán)復(fù)位狀態(tài))。最簡單的上電自動復(fù)位電路中上電自動復(fù)位是通過外部復(fù)位電路的電容充放電來實現(xiàn)的。只要Vcc的上升時

24、間不超過1ms,就可以實現(xiàn)自動上電復(fù)位。除了上電復(fù)位外,有時還需要按鍵手動復(fù)位。本設(shè)計就是用的按鍵手動復(fù)位。按鍵手動復(fù)位有電平方式和脈沖方式兩種。其中電平復(fù)位是通過RST(9)端與電源Vcc接通而實現(xiàn)的。 圖13 89C51復(fù)位電路(3)89C51中斷技術(shù)概述中斷技術(shù)主要用于實時監(jiān)測與控制,要求單片機能及時地響應(yīng)中斷請求源提出的服務(wù)請求,并作出快速響應(yīng)、及時處理。這是由片內(nèi)的中斷系統(tǒng)來實現(xiàn)的。當(dāng)中斷請求源發(fā)出中斷請求時,如果中斷請求被允許,單片機暫時中止當(dāng)前正在執(zhí)行的主程序,轉(zhuǎn)到中斷服務(wù)處理程序處理中斷服務(wù)請求。中斷服務(wù)處理程序處理完中斷服務(wù)請求后,再回到原來被中止的程序之處(斷點),繼續(xù)執(zhí)行

25、被中斷的主程序。圖14為整個中斷響應(yīng)和處理過程。 圖14 中斷響應(yīng)和處理過程1.4 LED顯示電路LED數(shù)碼管(LED Segment Displays)是由多個發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個筆劃,公共電極。數(shù)碼管分為動態(tài)顯示和靜態(tài)顯示驅(qū)動兩種,靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機的I/O端口進行驅(qū)動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅(qū)動,要知道一個STC89C52的

26、I/O端口才32個呢:),實際應(yīng)用時必須增加譯碼驅(qū)動器進行驅(qū)動,增加了硬件電路的復(fù)雜性。數(shù)碼管動態(tài)顯示接口是單片機中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當(dāng)單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使

27、各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。本設(shè)計利用三極管驅(qū)動數(shù)碼管,用4.7k電阻起到限流作用,使得數(shù)碼管亮度適中。數(shù)碼管顯示電路如下圖15 數(shù)碼管顯示電路1.5鍵盤電路本設(shè)計采用按鍵接低的方式來讀取按鍵,單片機初始時,因為為高電平,當(dāng)按鍵按下的時候,會給單片機一個低電平,單片機對信號進行處理單片機鍵盤有獨立鍵盤和矩陣式鍵盤

28、兩種:獨立鍵盤每一個I/O 口上只接一個按鍵,按鍵的另一端接電源或接地(一般接地),這種接法程序比較簡單且系統(tǒng)更加穩(wěn)定;而矩陣式鍵盤式接法程序比較復(fù)雜,但是占用的I/O少。根據(jù)本設(shè)計的需要這里選用了獨立式鍵盤接法。獨立式鍵盤的實現(xiàn)方法是利用單片機I/O口讀取口的電平高低來判斷是否有鍵按下。將常開按鍵的一端接地,另一端接一個I/O 口,程序開始時將此I/O口置于高電平,平時無鍵按下時I/O口保護高電平。當(dāng)有鍵按下時,此I/O 口與地短路迫使I/O 口為低電平。按鍵釋放后,單片機內(nèi)部的上拉電阻使I/O口仍然保持高電平。我們所要做的就是在程序中查尋此I/O口的電平狀態(tài)就可以了解我們是否有按鍵動作了。

29、 在用單片機對鍵盤處理的時候涉及到了一個重要的過程,那就是鍵盤的去抖動。這里說的抖動是機械的抖動,是當(dāng)鍵盤在未按到按下的臨界區(qū)產(chǎn)生的電平不穩(wěn)定正?,F(xiàn)象,并不是我們在按鍵時通過注意可以避免的。這種抖動一般10200毫秒之間,這種不穩(wěn)定電平的抖動時間對于人來說太快了,而對于時鐘是微秒的單片機而言則是慢長的。硬件去抖動就是用部分電路對抖動部分加之處理,軟件去抖動不是去掉抖動,而是避抖動部分的時間,等鍵盤穩(wěn)定了再對其處理。所以這里選擇了軟件去抖動,實現(xiàn)法是先查尋按鍵當(dāng)有低電平出現(xiàn)時立即延時10200毫秒以避開抖動(經(jīng)典值為20毫秒),延時結(jié)束后再讀一次I/O 口的值,這一次的值如果為1 表示低電平的時

30、間不到10200 毫秒,視為干擾信號。當(dāng)讀出的值是0時則表示有按鍵按下,調(diào)用相應(yīng)的處理程序。硬件電路如圖16所示:圖16 按鍵電路2、軟件設(shè)計2.1 原理圖如圖18所示: 圖17 原理圖五、程序設(shè)計1程序設(shè)計的基本思路主程序流程圖如下圖所示:Y結(jié)束設(shè)置相應(yīng)參數(shù)顯示設(shè)置數(shù)值N判斷按鍵是否按下執(zhí)行相應(yīng)的指示控制判斷當(dāng)前酒精范圍讀取AD轉(zhuǎn)換酒精值初始化開始圖18 主程序框圖2.數(shù)據(jù)采集子程序程序框圖A/D轉(zhuǎn)換子程序流程圖如下圖19所示。ADC0809初始化后,把0通道輸入的0-5V的模擬信號轉(zhuǎn)換為對應(yīng)的數(shù)字量,然后將對應(yīng)數(shù)值存儲到內(nèi)存單元。開始啟動ADC0809通道,并延時100s轉(zhuǎn)換完?讀出A/D

31、轉(zhuǎn)換結(jié)果結(jié)果存入內(nèi)存單元返回YN圖19 數(shù)據(jù)采集子程序框圖3.程序代碼/程序頭函數(shù)#include <reg52.h>/宏定義#define uint unsigned int #define uchar unsigned char#define Data_ADC0809 P1 /ADC0809sbit ST=P33;sbit EOC=P34;sbit OE=P32;/顯示數(shù)組0-9 - Fuchar Data_=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x71,0x3f;sbit Wei1 = P27;sbit Wei2

32、 = P26;sbit Wei3 = P25;sbit Wei4 = P24;/函數(shù)聲明extern uchar ADC0809();void Display(uchar X,uchar Data);void delay(uint t);/酒精含量變量uchar temp=0;/顯示模式uchar Mode=0;uchar p;void main() /主函數(shù)while(1)/正常模式if(Mode=0)/讀取AD值temp=ADC0809();for(p=0;p<30;p+)Display(0,temp);/ADC0809讀取信息uchar ADC0809()uchar temp_=0

33、x00;/初始化高阻太OE=0;/轉(zhuǎn)化初始化ST=0;/開始轉(zhuǎn)換ST=1;ST=0;/外部中斷等待AD轉(zhuǎn)換結(jié)束while(EOC=0)/讀取轉(zhuǎn)換的AD值OE=1;temp_=Data_ADC0809;OE=0;return temp_;/延時void delay(uint t)uint i,j;for(i=0;i<t;i+)for(j=0;j<10;j+);/顯示 X表示狀態(tài) Data表示數(shù)據(jù)void Display(uchar X,uchar Data)Wei1=1;Wei2=1;Wei3=1;Wei4=1;P0=0xff;/正常模式if(X=0)P0=Data_11;/非正常e

34、lseP0=Data_10;Wei1=0;Wei2=1;Wei3=1;Wei4=1;delay(10);Wei1=1;Wei2=1;Wei3=1;Wei4=1;P0=Data_Data/100;Wei1=1;Wei2=0;Wei3=1;Wei4=1;delay(10);Wei1=1;Wei2=1;Wei3=1;Wei4=1;P0=Data_Data/10%10;Wei1=1;Wei2=1;Wei3=0;Wei4=1;delay(10);Wei1=1;Wei2=1;Wei3=1;Wei4=1;P0=Data_Data%10;Wei1=1;Wei2=1;Wei3=1;Wei4=0;delay(10);Wei1=1;Wei2=1;Wei3=1;Wei4=1;六、系統(tǒng)運行、調(diào)試和結(jié)果分析1. 系統(tǒng)運行中出現(xiàn)的問題在調(diào)試過程中遇到的問題有:(1) 由于在焊電路之前沒有認(rèn)真的查看89C51的管腳,使得管腳的順序全部焊錯了,最后只好重新買器件重焊;(2) 酒精值一直顯示很高,經(jīng)過查閱資料和換元件測試發(fā)現(xiàn),酒精傳感器初次使用得通電幾小時以上才可以正常使用,

溫馨提示

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

評論

0/150

提交評論