酒精濃度檢測(cè)儀設(shè)計(jì)_第1頁(yè)
酒精濃度檢測(cè)儀設(shè)計(jì)_第2頁(yè)
酒精濃度檢測(cè)儀設(shè)計(jì)_第3頁(yè)
酒精濃度檢測(cè)儀設(shè)計(jì)_第4頁(yè)
酒精濃度檢測(cè)儀設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 河南機(jī)電高等專科學(xué)校論文河南機(jī)電高等??茖W(xué)校 畢業(yè)設(shè)計(jì)說(shuō)明書(shū) 設(shè)計(jì)題目:酒精濃度檢測(cè)儀設(shè)計(jì)系 部 電子通信工程系 專 業(yè) 應(yīng)用電子技術(shù) 班 級(jí) 應(yīng)電 103 學(xué)生姓名 學(xué) 號(hào) 指導(dǎo)教師 2010年 12 月 12日目錄1 緒論11.1 呼吸氣體酒精濃度檢測(cè)報(bào)警儀開(kāi)發(fā)背景11.2呼吸氣體酒精濃度檢測(cè)報(bào)警儀的簡(jiǎn)介11.3呼吸氣體酒精濃度檢測(cè)報(bào)警儀課程設(shè)計(jì)基本要求與設(shè)計(jì)簡(jiǎn)介22 單片機(jī)最小系統(tǒng)介紹32.1 STC89C52簡(jiǎn)介32.2 復(fù)位電路介紹52.3 晶振電路介紹63 信號(hào)采集和AD轉(zhuǎn)換過(guò)程的軟硬件設(shè)計(jì)73.1 MQ-3酒精濃度傳感器模塊簡(jiǎn)介73.2 AD轉(zhuǎn)換軟硬件件設(shè)計(jì)83.2.1 ADC

2、0804簡(jiǎn)介83.2.2 本設(shè)計(jì)中ADC0804外圍硬件連接103.2.3 本設(shè)計(jì)中AD轉(zhuǎn)換軟件實(shí)現(xiàn)114 顯示模塊軟硬件設(shè)計(jì)134.1 LCD1602簡(jiǎn)介134.2 本設(shè)計(jì)中LCD1602的硬件連接介紹144.3 本設(shè)計(jì)中LCD1602的軟件設(shè)計(jì)144.3.1 本設(shè)計(jì)的液晶寫命令子函數(shù)和寫數(shù)據(jù)子函數(shù)程序分析144.3.2 本設(shè)計(jì)中用到的液晶指令介紹164.3.3 本設(shè)計(jì)中的字符串顯示和數(shù)據(jù)實(shí)時(shí)更新的實(shí)現(xiàn)方法165. 其它外圍設(shè)備軟硬件設(shè)計(jì)195.1 報(bào)警電路軟硬設(shè)計(jì)195.1.1 硬件部分設(shè)計(jì)195.1.2 軟件部分設(shè)計(jì)195.2 待機(jī)指示燈軟硬件設(shè)計(jì)205.2.1 硬件部分設(shè)計(jì)205.2.

3、2 軟件部分設(shè)計(jì)205.3 按鍵軟硬件設(shè)計(jì)205.3.1 硬件部分設(shè)計(jì)215.3.2 軟件部分設(shè)計(jì)215.4 電源電路226系統(tǒng)總體設(shè)計(jì)236.1 硬件總體框圖236.2 程序流程圖246.3 硬件調(diào)試256.4 軟件調(diào)試256.4.1 標(biāo)志數(shù)的應(yīng)用256.4.2 按鍵的消抖與松手檢測(cè)的程序?qū)崿F(xiàn)266.4.3 定時(shí)器與定時(shí)器中斷27結(jié)束語(yǔ)28致謝29參考文獻(xiàn)30附錄一 硬件設(shè)計(jì)原理圖31附錄二 實(shí)物照片32附錄三 程序33 1 緒論1.1 呼吸氣體酒精濃度檢測(cè)報(bào)警儀開(kāi)發(fā)背景我國(guó)經(jīng)濟(jì)、科技正在迅速騰飛,汽車早已進(jìn)入尋常百姓家。我國(guó)正在步入“汽車社會(huì)”,2011年我國(guó)汽車總數(shù)突破8000萬(wàn)輛,位居

4、世界第三,這也帶來(lái)了許多問(wèn)題,酒駕正是其中之一。酒精有使神經(jīng)系統(tǒng)鎮(zhèn)定松弛的作用,但也會(huì)成抑制力明顯減弱,可能造成酒后暴力行為。如果酒后駕車,由于神經(jīng)系統(tǒng)渙散和判斷力下降,有可能造成嚴(yán)重交通事故。據(jù)科學(xué)實(shí)驗(yàn)表明,飲酒后對(duì)交通燈的反應(yīng)慢,轉(zhuǎn)向急速駕車搖擺不定,違法轉(zhuǎn)彎和急速轉(zhuǎn)彎等行為發(fā)生概率大大增大。喝酒后開(kāi)車發(fā)生交通事故的概率是未喝酒時(shí)的16倍。2011年05月01日,我國(guó)正式將酒駕列為刑事犯罪。酒駕給了我們慘痛教訓(xùn),為了避免悲劇的再次發(fā)生,檢測(cè)儀器便出現(xiàn)了,本課程設(shè)計(jì)所制作的基于單片機(jī)的呼吸氣體酒精濃度測(cè)試報(bào)警儀正是用于交警檢測(cè)和自我檢測(cè)的良好儀器,防止酒后駕車引發(fā)的交通事故。1.2呼吸氣體酒

5、精濃度檢測(cè)報(bào)警儀的簡(jiǎn)介燃料電池型、半導(dǎo)體型、氣體色譜分析型、比色型、紅外線型是呼吸氣體酒精濃度測(cè)報(bào)警儀的五種最基本類型。其中燃料電池型和半導(dǎo)體型是使用最為普遍的兩種類型。燃料電池型與其它類型相比具有抗干擾能力強(qiáng),精度高,受環(huán)境因素影響小,穩(wěn)定性好等特點(diǎn)。它是當(dāng)前全世界科學(xué)家都在廣泛研究的環(huán)保型應(yīng)用技術(shù),它可以直接把可燃?xì)怏w轉(zhuǎn)變成電能,而不產(chǎn)生污染,其應(yīng)用前景之一就是作為無(wú)污染的清潔能源,酒精傳感器便是燃料電池的一個(gè)分支。燃料電池酒精傳感器采用白金作為電極,在燃燒室內(nèi)填充相應(yīng)特殊催化劑,使進(jìn)入燃燒室內(nèi)的酒精充分燃燒轉(zhuǎn)變?yōu)殡娔?,也就是在兩個(gè)電極上產(chǎn)生電壓,電能消耗在外接負(fù)載上,此電壓與進(jìn)入燃燒室內(nèi)

6、氣體的酒精濃度成正比。與半導(dǎo)體型相比,燃料電池型呼氣酒精測(cè)試儀具有穩(wěn)定性好,精度高,抗干擾性好的優(yōu)點(diǎn)。但是由于燃料電池酒精傳感器的結(jié)構(gòu)要求非常精密,制造難度相當(dāng)大,目前只有美國(guó)、英國(guó)、德國(guó)等少數(shù)幾個(gè)國(guó)家能夠生產(chǎn),加上材料成本高,因此價(jià)格相當(dāng)昂貴,是半導(dǎo)體酒精傳感器的幾十倍。本設(shè)計(jì)傳感器是采用半導(dǎo)體型。1.3呼吸氣體酒精濃度檢測(cè)報(bào)警儀課程設(shè)計(jì)基本要求與設(shè)計(jì)簡(jiǎn)介本設(shè)計(jì)要求成品能對(duì)呼吸氣體中的酒精濃度進(jìn)行實(shí)時(shí)采集、轉(zhuǎn)換、分析、顯示、超值報(bào)警。成品硬件主要包括基于STC89C52單片機(jī)的微控制模塊、MQ-3傳感器采集模塊、基于ADC0804芯片的A/D轉(zhuǎn)換模塊、按鍵控制模塊、以1602為核心的顯示模塊

7、、報(bào)警電路模塊等。軟件部分包括實(shí)時(shí)數(shù)據(jù)采集轉(zhuǎn)換程序設(shè)計(jì)、實(shí)時(shí)按鍵檢測(cè)程序設(shè)計(jì)、顯示程序設(shè)計(jì)、報(bào)警檢測(cè)和報(bào)警程序設(shè)計(jì),考慮到MQ-3傳感器在使用前有一個(gè)預(yù)熱過(guò)程所以設(shè)計(jì)還加入了待機(jī)程序的設(shè)計(jì)。2 單片機(jī)最小系統(tǒng)介紹圖2-1 最小系統(tǒng)電路圖2.1 STC89C52簡(jiǎn)介本設(shè)計(jì)以STC89C52單片機(jī)為控制核心。單片機(jī)也就是MCU,即微控制單元,大學(xué)階段51型和52型是同學(xué)最常使用的,用于課程設(shè)計(jì)或畢業(yè)設(shè)計(jì)的為控制單元。52型是在51型的基礎(chǔ)上發(fā)展而來(lái)的,它兼容51指令系統(tǒng),其功能更為強(qiáng)大,ROM和RAM存儲(chǔ)空間也比51型更大。STC89C52是52型中最普遍的一種。它除了具備一般52型的優(yōu)點(diǎn)以外,還

8、具有程序無(wú)法解密,價(jià)格低,功耗低,運(yùn)算高速,高可靠強(qiáng)性,抗靜電和抗干擾能力強(qiáng),功能強(qiáng)大等突出優(yōu)點(diǎn)。STC89C52有40個(gè)引腳,32 I/O口,它們分別是:P0口,1號(hào)到8號(hào)引角;P3口,10號(hào)到17號(hào)引角;P2口,21號(hào)到28腳;P0口,32號(hào)到39號(hào)引腳。STC89C52可以實(shí)現(xiàn)兩級(jí)中斷嵌套,內(nèi)含2個(gè)外部中斷入口,可以同時(shí)實(shí)現(xiàn)兩個(gè)計(jì)時(shí)器或計(jì)數(shù)器中斷,還含有一個(gè)串口通信中斷。串口通信中可以使用2個(gè)全雙工串行通信口。2個(gè)讀寫口線,片內(nèi)振蕩器及時(shí)鐘電路也給使用者帶來(lái)了極大方便。STC89C52可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。STC_ISP_V479是本設(shè)計(jì)使用的程序下載軟件,它以冷啟動(dòng)

9、的方式,很方便地將hex文件載入單片機(jī)。相比以往的MCU,STC89C52可降至0Hz的靜態(tài)邏輯操作,可自由選擇兩種軟件節(jié)電工作模式也是其突出優(yōu)點(diǎn)??臻e方式時(shí),自動(dòng)停止CPU當(dāng)前工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng),繼續(xù)工作,即可以隨時(shí)相應(yīng)突發(fā)狀況,重新進(jìn)入工作模式,這樣可以節(jié)省電源。另外STC89C52的ROM采用電擦除電存儲(chǔ)方式,具有可反復(fù)擦寫的Flash存儲(chǔ)器,這給程序編寫者帶來(lái)了極大方便,可以反復(fù)擦寫下載十萬(wàn)余次,方便程序調(diào)試,同時(shí)大大節(jié)約了設(shè)計(jì)成本。圖2-2 STC89C52單片機(jī)各引腳圖2.2 復(fù)位電路介紹圖2-3 復(fù)位電路電路圖單片機(jī)工作過(guò)程中有一個(gè)程序指針,它

10、指向即將要執(zhí)行的程序。單片機(jī)上電時(shí)要執(zhí)行復(fù)位操作,使得程序指針指針指向程序的0000H地址處,即單片機(jī)將要執(zhí)行第一條語(yǔ)句,以后每執(zhí)行完一條語(yǔ)句程序指針都依次增加。這樣使得單片機(jī)每次執(zhí)行程序都處于確定狀態(tài),如果沒(méi)有程序指針,就不知道程序一開(kāi)始應(yīng)該從哪里開(kāi)始執(zhí)行,也不知道工作時(shí)應(yīng)該執(zhí)行哪條語(yǔ)句。上電時(shí)的自動(dòng)復(fù)位,使得各端口的輸出輸入電平不會(huì)處于不確定狀態(tài),不會(huì)使外圍設(shè)備產(chǎn)生誤動(dòng)作;也能防止內(nèi)部一些控制寄存器的功能紊亂。另外,在單片機(jī)工作過(guò)程中,如前所述,ATC89C52單片機(jī)的就好引腳RST若輸入大于2個(gè)機(jī)器周期時(shí)間的高電平時(shí),單片機(jī)就會(huì)執(zhí)行復(fù)位操作,即程序指針將由當(dāng)前指針跳回到程序的0000地址

11、處。以上所說(shuō)的上電復(fù)位,和RST按鍵復(fù)位正是單片機(jī)復(fù)位操作的兩種基本形式。上電復(fù)位的實(shí)現(xiàn)方法是,在接通電源時(shí),RST引腳獲得瞬間高電平,因?yàn)殡娙蓦妷翰荒芡蛔?,隨著圖3中的電容C2的充電,RST引腳所獲得的高電平逐漸下降,但能保持兩個(gè)機(jī)器周期以上的時(shí)間,單片機(jī)復(fù)位。RST按鍵復(fù)位的方法是,在圖3所示的復(fù)位電路中,當(dāng)輕觸開(kāi)關(guān)S1被按下,RST與VCC相連,也能獲得瞬間高電平,因?yàn)殡娙蓦妷翰荒芡蛔?,隨著圖3中的電容C2的充電,RST引腳所獲得的高電平逐漸下降,但能保持兩個(gè)機(jī)器周期以上的時(shí)間,單片機(jī)復(fù)位。在復(fù)位電路的設(shè)計(jì)中,要選擇合適的元器件參數(shù),電阻的阻值不宜過(guò)大或者過(guò)小,過(guò)大使得RST不可能獲得高

12、電平,過(guò)小也不能起到限流作用。另外電容容值也應(yīng)該合適,要保證放電時(shí),RST引腳上的高電平也能保持兩個(gè)機(jī)器周期以上的高電平。本設(shè)計(jì)使用的電解電容容值和各電阻阻值在圖3中都有標(biāo)注。2.3 晶振電路介紹 圖2-4 晶振電路電路圖單片機(jī)必須有時(shí)鐘信號(hào)控制,才能使得工作時(shí)各指令在操作上有嚴(yán)格的時(shí)間次序,可以通過(guò)兩種方法提供時(shí)鐘信號(hào),一種是外部時(shí)鐘方式,另一種是內(nèi)部時(shí)鐘方式。外部時(shí)鐘方式是在XTAL1端引入外部已有的時(shí)鐘信號(hào),而XTAL2端懸空,外部時(shí)鐘信號(hào)一般是頻率小于12MHZ的方波。外部時(shí)鐘方式一般是用于多臺(tái)單片機(jī)協(xié)同工作時(shí),如單片機(jī)之間的通信,這樣要使單片機(jī)有統(tǒng)一的工作節(jié)奏。本設(shè)計(jì)采用內(nèi)部時(shí)鐘方式

13、,其電路結(jié)構(gòu)簡(jiǎn)單,功率消耗低。本系統(tǒng)中為了盡量降低功耗的原則,采用了內(nèi)部時(shí)鐘方式。晶振全稱為晶體振蕩器(英文Crystal Oscillators),其作用在于產(chǎn)生原始的時(shí)鐘頻率。內(nèi)部時(shí)鐘方式的電路實(shí)現(xiàn)方法是在XTAL1和XTAL2引腳外接石英晶體,與單片機(jī)片內(nèi)震蕩電路形成震蕩回路,圖中電容C3和C4的容值為22pF,它們的作用是加快起振和穩(wěn)定頻率。3 信號(hào)采集和AD轉(zhuǎn)換過(guò)程的軟硬件設(shè)計(jì)3.1 MQ-3酒精濃度傳感器模塊簡(jiǎn)介圖3-1 MQ-3酒精濃度傳感器模塊引腳示意圖MQ-3酒精濃度傳感器模塊由傳感器探頭和調(diào)理電路組成。MQ-3酒精濃度傳感器探頭輸出的微弱電流送入調(diào)理電路,使信號(hào)放大并濾去雜

14、波。MQ-3酒精濃度傳感器模塊引腳示意圖如上圖,除VCC和GND以外,模塊還有兩個(gè)輸出端口,TTL電平輸出端口和模擬信號(hào)輸出端口。在檢測(cè)的酒精濃度值大于傳感器內(nèi)預(yù)設(shè)值時(shí),TTL電平輸出端口將輸出高電平,起報(bào)警信號(hào)作用,若小于預(yù)設(shè)值則輸出低電平。由于傳感器模塊內(nèi)部預(yù)設(shè)值不方便通過(guò)程序改變,所欲在本設(shè)計(jì)中TTL電平輸出端口懸空,而報(bào)警值則在程序中設(shè)定,報(bào)警由單片機(jī)程序控制,這要便于修改。模擬信號(hào)輸出端口能輸出0到+VCC 的模擬信號(hào),當(dāng)檢測(cè)的酒精濃度越大時(shí)輸出電壓越高。此端口接入ADC0804的6號(hào)引腳,實(shí)現(xiàn)AD轉(zhuǎn)換。 表3-1 MQ-3傳感器參數(shù)表名稱MQ3傳感器 A.標(biāo)準(zhǔn)工作條件符號(hào) 

15、;參數(shù)名稱 技術(shù)條件 備注  Vc 回路電壓 15V AC or DC VH 加熱電壓 5.0V±0.2V AC or DC RL 負(fù)載電阻 可調(diào)  RH 加熱電阻 31±3 室溫  PH 加熱功耗 900mW B.環(huán)境條件符號(hào) 參數(shù)名稱 技術(shù)條件 備注  Tao 使用溫度  -10-50  Tas 儲(chǔ)存溫度  -20-70  RH 相對(duì)濕度  小于 95%

16、 RH  O2 氧氣濃度  21%(標(biāo)準(zhǔn)條件) 氧氣濃度會(huì)影響靈敏度特性 最小值大于 C.靈敏特性 符號(hào)  參數(shù)名稱  技術(shù)參數(shù)  備注  Rs 敏感體電阻  1M- 8 M  (200ppm alcohol ) 適用范圍:  10-1000ppm Alcohol   (200/100)alcohol  濃度斜率  0.6 標(biāo)準(zhǔn)工作條件  溫度: 20±2 Vc:5.0V±0.1V 相對(duì)濕度: 65%±5%

17、 Vh: 5.0V±0.1V 預(yù)熱時(shí)間  不少于24小時(shí) 3.2 AD轉(zhuǎn)換軟硬件件設(shè)計(jì)3.2.1 ADC0804簡(jiǎn)介圖3-2 ADC0804引腳示意圖ADC0804是屬于連續(xù)漸進(jìn)式的A/D轉(zhuǎn)換器,這類型的A/D轉(zhuǎn)換器除了轉(zhuǎn)換速度快(幾十至幾百us)、分辨率高外,還有價(jià)錢便宜的優(yōu)點(diǎn),普遍被應(yīng)用于微電腦的接口設(shè)計(jì)上。 芯片參數(shù): 工作電壓:+5V,即VCC=+5V。 模擬輸入電壓范圍:0+5V,即0Vin+5V。 分辨率:8位,即分辨率為1/2=1/256,轉(zhuǎn)換值介于0255之間。 轉(zhuǎn)換時(shí)間:100us(fCK=640KHz時(shí))。 轉(zhuǎn)換誤差:±1LSB。 參

18、考電壓:2.5V,即Vref=2.5V。3.2.2 本設(shè)計(jì)中ADC0804外圍硬件連接圖3-3 ADC0804外圍電路連接20號(hào)引腳角和10號(hào)引腳分別接VCC和GND,為芯片提供工作電壓。在精確測(cè)量時(shí),8號(hào)引腳模擬地和10號(hào)引腳數(shù)字地應(yīng)該分開(kāi)接,為芯片提供基準(zhǔn)電壓,此處把它們接在一起,同時(shí)接地。1號(hào)引腳,片選信號(hào)接入P1.5,當(dāng)P1.5輸出低電平時(shí),芯片被選中處于工作狀態(tài)。引腳二為外部讀數(shù)據(jù)允許位,它接到P1.6,當(dāng)P1.6輸出低電平時(shí),芯片處于外部許狀態(tài),轉(zhuǎn)換后的數(shù)據(jù)被送入DB0到DB7引腳,DB0到DB7引腳為數(shù)據(jù)輸出端口,它與單片機(jī)P3口依次相連,此時(shí)單片機(jī)可以從P3口取走。引腳三為外部

19、寫數(shù)據(jù)允許位,它與單片機(jī)P1.7口相連,當(dāng)P1.7輸?shù)碗娖綍r(shí),芯片處于外部寫允許狀態(tài),此時(shí)芯片從6號(hào)和7號(hào)引腳獲取電壓差值,當(dāng)此引腳再次拉高時(shí),芯片便開(kāi)始AD轉(zhuǎn)換。6號(hào)引腳Vin(+)接傳感器模塊的模擬信號(hào)輸出端口,其間接入的10K電阻并不影響輸入電壓,但可以起到限流作用,防止瞬間高電流將芯片燒壞。7號(hào)引腳Vin(-)接地,轉(zhuǎn)換的原始模擬電壓就是6號(hào)引腳和7號(hào)引腳的電壓差值。5號(hào)引腳在轉(zhuǎn)換時(shí)輸出高電平信號(hào),結(jié)束時(shí)輸出低脈沖。它如果與單片機(jī)的外部中斷端口(P3.2或P3.3)相連,在轉(zhuǎn)換結(jié)束后給單片機(jī)一個(gè)中斷,讓單片機(jī)讀走數(shù)據(jù)??紤]到ADC0804的轉(zhuǎn)換時(shí)間還是非常快的,本設(shè)計(jì)中此引腳懸空,沒(méi)有

20、和單片機(jī)外部中斷入口相連。在程序中可以用軟件延時(shí)的方式等待它轉(zhuǎn)換完畢,或者用定時(shí)器中斷方式每隔一定時(shí)間采樣,讓芯片有充分轉(zhuǎn)換時(shí)間。在本設(shè)計(jì)中采用了第一種做法模擬信號(hào)輸出端口,具體方法在下一小節(jié)中介紹。19號(hào)引腳跨接一個(gè)10K電阻與4號(hào)引腳相連,4號(hào)引腳在與56PF的電容相接,電容另一端接地。這樣電阻和電容便于芯片內(nèi)部電路形成了RC震蕩電路,它產(chǎn)生周期信號(hào),為芯片提供時(shí)序,芯片正是在此時(shí)序的控制下有條不紊的工作。9號(hào)引腳應(yīng)接入二分之一的VCC為電路提供參考基準(zhǔn)電壓,具體做法是,將兩個(gè)10K電阻串聯(lián)接在VCC和GND上分壓,接號(hào)引腳并接在他們中間,獲取參考電壓。3.2.3 本設(shè)計(jì)中AD轉(zhuǎn)換軟件實(shí)現(xiàn)

21、圖3-4 ADC0804控制時(shí)序圖 參考上圖,CS端在初始化函數(shù)void init()中便將他拉低使芯片一直處于工作狀態(tài),在主函數(shù)中先判斷是否處于檢測(cè)狀態(tài),若是檢測(cè)狀態(tài),不斷調(diào)用檢測(cè)命令和顯示命令,使單片機(jī)可以實(shí)時(shí)檢測(cè)。當(dāng)測(cè)試值超標(biāo),則使報(bào)警電路報(bào)警,顯示模塊和報(bào)警電路的軟硬件設(shè)計(jì)將在后面詳細(xì)介紹。下面具體講述轉(zhuǎn)換過(guò)程,上電后由于RD和WR都和I/O相連,即輸出默認(rèn)電平,無(wú)需初始化。在轉(zhuǎn)換時(shí)先將WR拉低,調(diào)用帶形參子函數(shù)void delay(),用delay(1);語(yǔ)句延時(shí)約一毫秒,讓ADC0804有足夠時(shí)間讀走6、7號(hào)引腳上的電壓差值。RD拉高后,芯片開(kāi)始轉(zhuǎn)換,此時(shí)程序用delay(5);語(yǔ)

22、句軟件延時(shí)約五毫秒,讓芯片轉(zhuǎn)換完成。再讓RD端拉低,同樣軟件延時(shí)一毫秒,讓單片機(jī)讀走數(shù)據(jù)。下面介紹轉(zhuǎn)換原則,ACD0804有八位數(shù)據(jù)輸出口,即轉(zhuǎn)換精度為256,它將最高值(此處為1000ppm),分為255份,當(dāng)?shù)玫揭粋€(gè)轉(zhuǎn)換數(shù)據(jù)時(shí),用最大值除以255,再乘以該數(shù)據(jù)值便是最終轉(zhuǎn)換值。AD轉(zhuǎn)換子函數(shù)分析:void ad()wr=0; /將WR拉低,讓芯片開(kāi)始讀6、7號(hào)引腳電壓值delay(1); /延時(shí)約一毫秒,讓芯片忙完wr=1; /將WR拉高,上升沿到來(lái)時(shí),AD轉(zhuǎn)換開(kāi)始delay(5); /軟件延時(shí)約五毫秒,等待AD轉(zhuǎn)換完成P3=0xff; /將P3口全部拉高,等待測(cè)試數(shù)據(jù)delay(1);

23、/延時(shí)一會(huì),避免紊亂rd=0; /將RD拉低,芯片送出數(shù)據(jù)delay(1); /延時(shí)約一毫秒,讓P3口temp=P3; /將數(shù)據(jù)存入temprd=1; /將RD拉高4 顯示模塊軟硬件設(shè)計(jì)4.1 LCD1602簡(jiǎn)介L(zhǎng)CD1602每行可以輸出16個(gè)字符,可以顯示兩行,故稱1602,它不帶中文字庫(kù),故只能顯示數(shù)字、字母和普通字符。在本設(shè)計(jì)中不檢測(cè)液晶的忙與閑,用前面對(duì)待ADC0804的方法,用軟件延時(shí)來(lái)等待液晶的忙操作時(shí)間。液晶顯示輸出D0到D7口接P0.0到 P0.7,單獨(dú)使用一個(gè)口,另外還要接上10K上拉電阻來(lái)提高P0口帶負(fù)載能力。當(dāng)處于讀狀態(tài)時(shí),RS處于低脈沖,R/W為高脈沖,E為高脈沖 ,D

24、0D7=狀態(tài)字當(dāng)處于讀數(shù)據(jù)時(shí),RS為高脈沖,R/W為高脈沖,E為高脈沖,D0D7=數(shù)據(jù)。當(dāng)處于寫指令時(shí),RS為低脈沖,R/W為低脈沖,D0D7=指令碼,E=高脈沖。當(dāng)處于寫數(shù)據(jù)時(shí),RS為高脈沖,R/W為低脈沖,E為高脈沖,D0D7=數(shù)據(jù)。4.2 本設(shè)計(jì)中LCD1602的硬件連接介紹圖4-1 LCD1602硬件連接圖1號(hào)引腳VSS接地2號(hào)引腳VDD接電源正,為液晶提供合適電壓。15號(hào)和16號(hào)引腳也分別接電源正和地,點(diǎn)亮液晶背光燈,15號(hào)叫也可以串接一個(gè)5歐姆電阻,適當(dāng)減小背光亮度,本設(shè)計(jì)中并未接。3號(hào)角接到10K可調(diào)電阻M103的可調(diào)端,M103另外兩端接電源正和地。用于調(diào)整液晶對(duì)比度。RS、R

25、/W、E分別與I/O口P2.5、P2.6、P2.7相連。數(shù)據(jù)口與P0口連接,外接10歐姆上拉電阻。4.3 本設(shè)計(jì)中LCD1602的軟件設(shè)計(jì)4.3.1 本設(shè)計(jì)的液晶寫命令子函數(shù)和寫數(shù)據(jù)子函數(shù)程序分析圖4-2 LCD1602寫操作時(shí)序注意前提,在初始化函數(shù)void init()中,已將R/W拉低(對(duì)應(yīng)lcden=0;語(yǔ)句),即只對(duì)液晶進(jìn)行寫操作,不讀液晶狀態(tài)。之前有位定義sbit lcdrs=P25;sbit lcdrw=P26;sbit lcden=P27;寫命令函數(shù)各語(yǔ)句分析:void write_com(uchar com)lcdrs=0; /將RS拉低,說(shuō)明對(duì)指令操作, 上電時(shí)是默認(rèn)高電平

26、P0=com; /對(duì)P0賦值,該值是對(duì)應(yīng)命令碼 ,com為形參delay(5); /延時(shí)約五毫秒lcden=1; /E拉高,讓液晶讀P0口,寫入對(duì)應(yīng)命令碼delay(5); /延時(shí)約五毫秒,讓液晶忙完再對(duì)其操作,防止數(shù)據(jù)丟失lcden=0; /將E拉低寫數(shù)據(jù)函數(shù)各語(yǔ)句分析:void write_com(uchar da)lcdrs=1; /將RS拉低高,說(shuō)明對(duì)數(shù)據(jù)操作P0=da; /對(duì)P0賦值,該值是要寫入的數(shù)據(jù) ,da為形參delay(5); /延時(shí)約五毫秒lcden=1; /E拉高,讓液晶讀P0口,寫入數(shù)據(jù)delay(5); /延時(shí)約五毫秒,讓液晶忙完再對(duì)其操作,防止數(shù)據(jù)丟失lcden=0

27、; /將E拉低結(jié)合圖10,將對(duì)以上分析更加清楚。值得注意的是,在寫數(shù)據(jù)的操作中,寫入的都是字符ASCII碼,例如想寫1,讓液晶在某處顯1,可寫write_data(1);或者write_data(0x30+1);4.3.2 本設(shè)計(jì)中用到的液晶指令介紹分析本設(shè)計(jì)程序,你會(huì)看到這些寫指令命令:write_com(0x38);write_com(0x0c);write_com(0x06);write_com(1);write_com(0x80+); 下面對(duì)它們中的指令碼做介紹:0x38:液晶初始化指令,讓液晶按每行顯示16個(gè)字符,顯示兩行,并且每個(gè)字符顯示處的點(diǎn)陣為5X7;0x0C:不顯示光標(biāo),光標(biāo)

28、不閃爍;0x06:在寫入一個(gè)數(shù)據(jù)后地址自動(dòng)加一,顯示不移動(dòng);1即0x01:清屏指令,即將液晶內(nèi)部存儲(chǔ)數(shù)據(jù)清楚,地址指針指向零;0x80+:設(shè)置寫入數(shù)據(jù)的地址,所加的就是對(duì)應(yīng)地址。4.3.3 本設(shè)計(jì)中的字符串顯示和數(shù)據(jù)實(shí)時(shí)更新的實(shí)現(xiàn)方法 寫字符串子程序:void write_str(uchar *p)while(*p)write_data(*p+);這里靈巧的應(yīng)用了數(shù)組指針,比傳統(tǒng)的for嵌套循環(huán)寫入方便很多。用while(*p)自動(dòng)檢測(cè)是否寫完,當(dāng)寫完后指針變?yōu)榱?,跳出循環(huán)。如想寫入"AC value:",只需先定義數(shù)組uchar code str="AC val

29、ue:",再寫語(yǔ)句write_str(str);寫完后指針變?yōu)榱?,自?dòng)結(jié)束。數(shù)據(jù)實(shí)時(shí)更新的實(shí)現(xiàn)方法,檢測(cè)時(shí)不斷調(diào)用顯示子函數(shù),display();顯示函數(shù)如下:void display()uint value; /定義局部變量valueuchar a,b,c; /定義局部變量a、b、cvalue=3.92*temp; /獲得value值,它是以ppm為單位a=value/100; /a為value的百位b=value%100/10; /b為value的十位c=value%10; /c為value的個(gè)位write_com(0x80+0x40+4); /將數(shù)據(jù)寫在第二行,第五個(gè)字符處wr

30、ite_data(0x30+a); /在第二行,第五個(gè)字符處寫入value百位write_com(0x80+0x40+5); /將數(shù)據(jù)寫在第二行,第六個(gè)字符處write_data(0x30+b); /在第二行,第六個(gè)字符處寫入value十位write_com(0x80+0x40+6); /將數(shù)據(jù)寫在第二行,第七個(gè)字符處write_data(0x30+c); /在第二行,第七個(gè)字符處寫入value個(gè)位在循環(huán)語(yǔ)句中不斷調(diào)用AD轉(zhuǎn)換程序, ad();,又不斷調(diào)用顯示函數(shù),數(shù)據(jù)就能實(shí)時(shí)檢測(cè)更新。在待機(jī)時(shí),循環(huán)程序中不斷執(zhí)行語(yǔ)句:write_com(0x80+6); /將數(shù)據(jù)寫在第一行,第七個(gè)字符處wr

31、ite_data(tablea); /在第一行,第七個(gè)字符處寫入時(shí)鐘的分鐘write_com(0x80+7); /將數(shù)據(jù)寫在第一行,第八個(gè)字符處write_data(tableb); /在第一行,第八個(gè)字符處寫入閃爍的冒號(hào)write_com(0x80+8); /將數(shù)據(jù)寫在第一行,第九個(gè)字符處write_data(tablec); /在第一行,第九個(gè)字符處寫入時(shí)鐘的秒鐘十位write_com(0x80+9); /將數(shù)據(jù)寫在第一行,第十個(gè)字符處write_data(tabled); /在第一行,第十個(gè)字符處寫入時(shí)鐘的秒鐘個(gè)位由于是在不斷循環(huán)調(diào)用,即不斷數(shù)據(jù)刷新,而a、b、c、d的改變是通過(guò)定時(shí)器零

32、實(shí)現(xiàn)的。這在后面的程序調(diào)試中詳細(xì)說(shuō)明。5. 其它外圍設(shè)備軟硬件設(shè)計(jì)5.1 報(bào)警電路軟硬設(shè)計(jì)5.1.1 硬件部分設(shè)計(jì)圖5-1 報(bào)警電路將蜂鳴器的正端接電源正,負(fù)端接P1.0。低電平有效,蜂鳴器響起。發(fā)光二極管D1為報(bào)警燈,它的正端接電源正,負(fù)端與470K電阻相連再接上P1.1。低電平有效,D1點(diǎn)亮。電阻限流電阻。5.1.2 軟件部分設(shè)計(jì) 位定義語(yǔ)句:sbit beep=P10; /定義蜂鳴器sbit d1=P11; /定義報(bào)警燈 用程序讓蜂鳴器響: beep=0; /低電平輸出時(shí),蜂鳴器打開(kāi) 用程序讓蜂鳴器關(guān)閉: beep=1; /高電平輸出時(shí),蜂鳴器關(guān)閉 用程序?qū)1點(diǎn)亮: d1=0; /低電

33、平輸出時(shí),D1點(diǎn)亮 用程序?qū)1熄滅: d1=1; /高電平輸出時(shí),D1熄滅5.2 待機(jī)指示燈軟硬件設(shè)計(jì)5.2.1 硬件部分設(shè)計(jì)圖5-2 待機(jī)指示燈電路發(fā)光二極管D2為待機(jī)指示燈,它的正端接電源正,負(fù)端與470K電阻相連再接上P1.3。低電平有效,D2點(diǎn)亮。電阻限流電阻。5.2.2 軟件部分設(shè)計(jì) 位定義語(yǔ)句:sbit d2=P11; /待機(jī)指示燈警燈 用程序?qū)2點(diǎn)亮: d2=0; /低電平輸出時(shí),D2點(diǎn)亮 用程序?qū)2熄滅: d2=1; /高電平輸出時(shí),D2熄滅5.3 按鍵軟硬件設(shè)計(jì)5.3.1 硬件部分設(shè)計(jì)圖5-3 按鍵電路S2和S3分別和P2.1和P2.0,再與GND相接。S2為待機(jī)控制按

34、鍵。S3為檢測(cè)控制按鍵。R18和R19與VCC相連再并接在開(kāi)關(guān)前,是為了在松手時(shí),使I/O獲得穩(wěn)定的高電平。5.3.2 軟件部分設(shè)計(jì) 位定義語(yǔ)句:sbit k1=P20; /S3位定義sbit k2=P21; /S2位定義S2按鍵檢測(cè): if(k1=0) /檢測(cè)按鍵是否按下delay(5); /消抖if(k1=0) /再檢測(cè)按鍵是否按下flag=0; /寫入要進(jìn)行的操作,這里是將標(biāo)志數(shù)flag置零while(!k1); /松手檢測(cè)S3按鍵檢測(cè): if(k2=0) /檢測(cè)按鍵是否按下delay(5); /消抖if(k2=0) /再檢測(cè)按鍵是否按下flag=1; /寫入要進(jìn)行的操作,這里是將標(biāo)志數(shù)

35、flag置一while(!k2); /松手檢測(cè)5.4 電源電路圖5-4 電源電路如上圖為本設(shè)計(jì)的電源電路。接入220V交流電后從變壓器輸出12V交變電壓,再經(jīng)過(guò)橋式整流電路整流,輸出直流電。穩(wěn)壓芯片7805使電壓穩(wěn)定在5V,電解電容C5和C6濾除雜波。S4為緊鎖開(kāi)關(guān),也是電源總開(kāi)關(guān)。D4與R17串聯(lián),跨接在VCC與GND之間,作為電源指示燈。6系統(tǒng)總體設(shè)計(jì)6.1 硬件總體框圖MQ-3傳感器模塊LCD顯示模塊MCU控制中心報(bào)警電路與待機(jī)指示燈電路A/D轉(zhuǎn)換模塊按鍵圖6-1 硬件總體框圖6.2 程序流程圖執(zhí)行酒精濃度的實(shí)時(shí)檢測(cè),顯示和報(bào)警執(zhí)行待機(jī)程序,液晶顯示簡(jiǎn)易計(jì)時(shí),不檢測(cè)和不顯示酒精濃度k2按

36、下標(biāo)志數(shù)flag置一k1按下標(biāo)志數(shù)flag置零k1與k2未按下標(biāo)志數(shù)flag為初始值1檢測(cè)按鍵k1與k2是否按下開(kāi)始圖6-2 程序流程圖6.3 硬件調(diào)試 在制作實(shí)物時(shí)有忘記連接、虛焊、飛線以及連接錯(cuò)誤等情況,好在都成功檢查了出來(lái)并改善了。目前硬件工作正常。制作過(guò)程中最嚴(yán)重的問(wèn)題是將液晶的數(shù)據(jù)口與P0口連接錯(cuò)誤,完全倒置連接。考慮到P0口與液晶數(shù)據(jù)口連接處布線密集,飛線難度大,最后既定,將8根數(shù)據(jù)線剪斷,再焊上兩排排針,用杜邦線連接,最后效果很好。 硬件的連接已經(jīng)在前面各節(jié)中詳細(xì)介紹,此處不再贅述。電路原理圖和實(shí)物照片參見(jiàn)附錄一和附錄二。6.4 軟件調(diào)試 本設(shè)計(jì)所用編譯軟件時(shí)keil。各模塊的軟

37、件設(shè)計(jì)已經(jīng)在前面各節(jié)中介紹,這里主要介紹下標(biāo)志數(shù)的應(yīng)用,按鍵消抖和松手檢測(cè),定時(shí)器和定時(shí)器中斷,主要談及它們的原理以及軟件實(shí)現(xiàn)過(guò)程。6.4.1 標(biāo)志數(shù)的應(yīng)用(主函數(shù)運(yùn)行待機(jī)程序還是檢測(cè)程序的判斷)為了能讓主函數(shù)分清是執(zhí)行執(zhí)行待機(jī)程序還是檢測(cè)程序報(bào)警程序,引進(jìn)標(biāo)志數(shù)flag。 當(dāng)flag為1時(shí)執(zhí)行待機(jī)程序: while(flag=1) 待機(jī)程序當(dāng)flag為0時(shí)執(zhí)行檢測(cè)報(bào)警程序:while(flag=0) 檢測(cè)報(bào)警程序在初始化函數(shù)中先將flag置一:flag=1;上電后則進(jìn)入待機(jī)狀態(tài)。按鍵k1后使flag置零,執(zhí)行檢測(cè)報(bào)警程序。按鍵k2后使flag置零,又執(zhí)行待機(jī)程序。值得注意的是要在執(zhí)行待機(jī)程序

38、或檢測(cè)報(bào)警程序前,執(zhí)行待機(jī)程序的程序尾部,以及執(zhí)行檢測(cè)報(bào)警程序的程序尾部多加入按鍵檢測(cè)程序:if(k1=0) /按鍵檢測(cè)delay(5); /消抖if(k1=0)flag=0;while(!k1); /松手檢測(cè)if(k2=0) /按鍵檢測(cè)delay(5); /消抖if(k2=0)flag=1;while(!k2); /松手檢測(cè) 這樣就可以重新設(shè)置flag,再執(zhí)行完待機(jī)程序或檢測(cè)報(bào)警程序后,判斷接下來(lái)要執(zhí)行什么程序。6.4.2 按鍵的消抖與松手檢測(cè)的程序?qū)崿F(xiàn)為什么要消抖?主要在手剛剛按下輕觸開(kāi)關(guān)時(shí),會(huì)有抖動(dòng),有抖動(dòng)時(shí),程序會(huì)快速跑走,這樣有可能等同于按了兩下或多下按鍵的效果。消抖原理:在檢測(cè)到按

39、鍵后,立刻延時(shí)約五毫秒,即延時(shí)消抖,這樣就過(guò)了抖動(dòng)時(shí)間,之后手的按鍵力度是非常穩(wěn)定的。注意延時(shí)結(jié)束后立馬在檢測(cè)下按鍵是否還按下,以免因其它抖動(dòng)誤判。程序如下。k1消抖:if(k1=0) /按鍵檢測(cè)delay(5); /延時(shí)消抖if(k1=0) /再次按鍵檢測(cè) k2消抖:if(k2=0) /按鍵檢測(cè)delay(5); /延時(shí)消抖if(k2=0) /再次按鍵檢測(cè) 其實(shí)用了連個(gè)開(kāi)關(guān)k1和k2來(lái)分別將標(biāo)志數(shù)flag置一或置零,此時(shí)消抖不是很重要,不消抖也不會(huì)讓程序誤判。松手檢測(cè),用while語(yǔ)句,如下。k1松手檢測(cè)語(yǔ)句:while(!k1);k2松手檢測(cè)語(yǔ)句:while(!k2);當(dāng)還按著鍵時(shí),一直執(zhí)

40、行while循環(huán)語(yǔ)句,等待放手,放手后跳出循環(huán),執(zhí)行下面語(yǔ)句。6.4.3 定時(shí)器與定時(shí)器中斷本設(shè)計(jì)在待機(jī)時(shí),執(zhí)行一個(gè)簡(jiǎn)易的十分鐘以內(nèi)的計(jì)時(shí)程序。這時(shí)用定時(shí)器零產(chǎn)生中斷,讓其計(jì)時(shí)。定時(shí)器是獨(dú)立與cpu的單獨(dú)部件,與軟件延時(shí)比起來(lái),它不占用程序時(shí)間,定時(shí)很精確。當(dāng)時(shí)間到了時(shí),它就產(chǎn)生定時(shí)中斷,讓主程序讓執(zhí)行定時(shí)器中斷函數(shù)。設(shè)置TMOD=0x01;使定時(shí)器零工作在方式一,工作方式一是十六位不能自動(dòng)重裝初值的方式,所以在進(jìn)入定時(shí)器中斷函數(shù)后要重新裝初值。結(jié)束語(yǔ) 從理論上說(shuō),要判斷是否是酒后駕駛,最簡(jiǎn)單可行的方法是現(xiàn)場(chǎng)檢測(cè)駕駛?cè)藛T呼氣中的酒精含量。大量的統(tǒng)計(jì)研究結(jié)果表明,如果被測(cè)者深吸氣后以中等力度呼氣

41、達(dá)三秒鐘以上,這時(shí)呼出的氣就是從肺部深處出來(lái)的氣體,呼氣中的酒精含量與血液中的酒精含量。 根據(jù)國(guó)家質(zhì)量監(jiān)督檢驗(yàn)檢疫局發(fā)布的車輛駕駛?cè)藛T血液、呼氣酒精含量閾值與檢驗(yàn)(GB195222004)中規(guī)定,該規(guī)定指出,飲酒駕車是指車輛駕駛?cè)藛T血液中的酒精含量大于或者等于20mg/100ml,小于80mg/100ml的駕駛行為。醉酒駕車是指車輛駕駛?cè)藛T血液中的酒精含量大于或者等于80mg/100ml的駕駛行為本設(shè)計(jì)編程采用c語(yǔ)言,體現(xiàn)了其很好的計(jì)算機(jī)語(yǔ)言優(yōu)勢(shì)。本人非常認(rèn)真地且獨(dú)立地完成了本畢業(yè)設(shè)計(jì)地全部工作,有電路圖的設(shè)計(jì),原理圖的繪制,實(shí)物的制作,程序的編寫與調(diào)試、論文的撰寫。在設(shè)計(jì)中查過(guò)許多資料,請(qǐng)教

42、過(guò)老師和同學(xué),但無(wú)剽竊等原則性錯(cuò)誤。致謝本設(shè)計(jì)是在指導(dǎo)老師顧學(xué)俊老師的悉心指導(dǎo)下,還有許多同學(xué)的幫助下完成的。顧老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,優(yōu)秀的學(xué)術(shù)底蘊(yùn),孜孜不悔的教學(xué)精神,平易近人的人格魅力,對(duì)我影響深遠(yuǎn)。在此向顧老師表示深深地感謝!也對(duì)所有幫助過(guò)我畢業(yè)設(shè)計(jì)的人在此一并表示感謝!參考文獻(xiàn)1 徐瑋.51單片機(jī)綜合學(xué)習(xí)系統(tǒng)1602字符型液晶顯示篇J.電子制作,2008,2(1):1-32 蘇成富.多功能音樂(lè)門鈴J.電機(jī)電器技術(shù)·日用電器,2000,(3):68-69 3 郇玉龍,趙寧.用單片價(jià)設(shè)計(jì)電子音樂(lè)門鈴J.電子制作·用單片機(jī)制作, 2007,(5):24-264 夏方林.基于

43、AT89C2051的單戶可視對(duì)講門鈴室內(nèi)分機(jī)的設(shè)計(jì)J.微計(jì)算機(jī)信息,2004,5(10):96-975 胡俐蕊,朱彪. 多功能電子門鈴的設(shè)計(jì)與實(shí)現(xiàn)J.電子元器件應(yīng)用,2006.10,(8):35-38.6 馮育長(zhǎng)等.單片機(jī)系統(tǒng)設(shè)計(jì)育實(shí)例分析M,西安電子科技大學(xué)出版社,2007.7 李念強(qiáng)等.單片機(jī)原理及應(yīng)用M,機(jī)械工業(yè)出版社,2007.8 吳金戌等.8051單片機(jī)實(shí)踐與應(yīng)用M,清華大學(xué)出版社,2002. 11 沈紅衛(wèi). 單片機(jī)實(shí)用系統(tǒng)設(shè)計(jì)實(shí)例與分析M. 北京:北京航空航天大學(xué)出版社.9 謝魁.一種新型的語(yǔ)音門鈴 電子與自動(dòng)化J,2000(3):46-47.10 孟利民, 張明珊. 無(wú)線可視對(duì)講

44、門鈴系統(tǒng)中語(yǔ)音通信的設(shè)計(jì)與實(shí)現(xiàn)J.浙江工業(yè)大學(xué)學(xué)報(bào),2005.2(1):24-27.附錄一 硬件設(shè)計(jì)原理圖附錄二 實(shí)物照片附錄三 程序/*定義包含reg52頭文件*/#include<reg52.h>/*/*宏定義*/define uint unsigned int#define uchar unsigned char/*/*位定義*/sbit beep=P10;sbit d1=P11;sbit d2=P13;sbit k1=P20;sbit k2=P21;sbit lcdrs=P25;sbit lcdrw=P26;sbit lcden=P27;sbit cs=P15;sbit r

45、d=P16;sbit wr=P17;/*/*定義字符數(shù)組*/uchar code str="AC value:"uchar code str0="ppm"uchar code table="0123456789: "/*/*定義無(wú)符號(hào)字符型全局變量*/uchar flag,temp,a,b,c,d,tt;/*/*子函數(shù)聲明*/void init(); /初始化函數(shù)void delay(uint); /有無(wú)符號(hào)整型形參的延時(shí)函數(shù)void write_str(uchar *); /向液晶寫入字符串的函數(shù)void write_com(uch

46、ar); /液晶寫命令函數(shù)void write_data(uchar); /液晶寫數(shù)據(jù)函數(shù)void ad(); /AD轉(zhuǎn)換函數(shù)void display(); /酒精濃度顯示函數(shù)/*/*主函數(shù)部分*/void main()init(); /調(diào)用初始化函數(shù)while(1)if(k1=0) /按鍵檢測(cè)delay(5); /消抖if(k1=0)flag=0;while(!k1); /松手檢測(cè)if(k2=0) /按鍵檢測(cè)delay(5); /消抖if(k2=0)flag=1;while(!k2); /松手檢測(cè)while(flag=0) /執(zhí)行待機(jī)程序TR0=0;d2=1;write_com(1);write_com

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論