電子信息工程畢業(yè)設(shè)計(jì)論文:酒精濃度檢測(cè)儀設(shè)計(jì)_第1頁(yè)
電子信息工程畢業(yè)設(shè)計(jì)論文:酒精濃度檢測(cè)儀設(shè)計(jì)_第2頁(yè)
電子信息工程畢業(yè)設(shè)計(jì)論文:酒精濃度檢測(cè)儀設(shè)計(jì)_第3頁(yè)
電子信息工程畢業(yè)設(shè)計(jì)論文:酒精濃度檢測(cè)儀設(shè)計(jì)_第4頁(yè)
電子信息工程畢業(yè)設(shè)計(jì)論文:酒精濃度檢測(cè)儀設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩27頁(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、電子信息工程畢業(yè)設(shè)計(jì)論文:酒精濃度檢測(cè)儀設(shè)計(jì) JIANGXI AGRICULTURAL UNIVERSITY本 科 畢 業(yè) 設(shè) 計(jì) 題目: 酒精濃度檢測(cè)儀設(shè)計(jì) 學(xué)院: 工學(xué)院 姓名: * 學(xué)號(hào): 專業(yè):電子信息工程 年級(jí): 08 級(jí) 指導(dǎo)教師: * 職 稱:講師二 0 一 二 年 五 月目錄中文摘要IAbstractII1 緒論11.1 呼吸氣體酒精濃度檢測(cè)報(bào)警儀開發(fā)背景11.2呼吸氣體酒精濃度檢測(cè)報(bào)警儀的簡(jiǎn)介11.3呼吸氣體酒精濃度檢測(cè)報(bào)警儀課程設(shè)計(jì)根本要求與設(shè)計(jì)簡(jiǎn)介22 單片機(jī)最小系統(tǒng)介紹32.1STC89C52簡(jiǎn)介32.2 復(fù)位電路介紹52.3 晶振電路介紹63 信號(hào)采集和AD轉(zhuǎn)換過(guò)程的

2、軟硬件設(shè)計(jì)73.1 MQ-3酒精濃度傳感器模塊簡(jiǎn)介73.2 AD轉(zhuǎn)換軟硬件件設(shè)計(jì)83.2.1 ADC0804簡(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ì)19

3、5.1.2 軟件局部設(shè)計(jì)195.2 待機(jī)指示燈軟硬件設(shè)計(jì)205.2.1 硬件局部設(shè)計(jì)205.2.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中文摘要 新世紀(jì)以來(lái),中國(guó)的經(jīng)濟(jì)不斷開展,人民生活水平不斷提高,私家車逐漸走

4、進(jìn)千家萬(wàn)戶,給人們的生活帶來(lái)了極大的便利。然而高速文明的背后,新的問(wèn)題、新的挑戰(zhàn)也接踵而至,例如城市交通擁堵,汽車尾氣造成的嚴(yán)重環(huán)境污染以及交通事故等等。這些問(wèn)題正在影響甚至危害著人們的正常生活。作為即將步入社會(huì)的大學(xué)畢業(yè)生,作為新世紀(jì)四有青年,作為社會(huì)主義事業(yè)的踐行者,我們應(yīng)當(dāng)積極將自己所學(xué)知識(shí)與實(shí)際問(wèn)題實(shí)際挑戰(zhàn)相結(jié)合,解決實(shí)際問(wèn)題,造福廣闊人民。酒駕正是造成交通事故的重要原因,2021年05月01日,備受關(guān)注的?刑法修正案八?和修改后的?道路交通平安法?正式施行,酒駕被正是列為刑事犯罪,最高可處以6個(gè)月的刑事拘留和2000元罰款。 本設(shè)計(jì)正是設(shè)計(jì)酒精濃度檢測(cè)儀,設(shè)計(jì)成品可以對(duì)呼吸氣體中的酒

5、精濃度進(jìn)行實(shí)時(shí)采集,顯示,報(bào)警。成品可用于交警對(duì)汽車駕駛者測(cè)試與監(jiān)督,也可以用于司機(jī)駕車前的自我檢測(cè)。 本設(shè)計(jì)的微控制單元MCU選擇的是STC公司生產(chǎn)的STC89C52單片機(jī),傳感器那么選用MQ?3酒精濃度傳感器。系統(tǒng)將由MQ-3酒精濃度傳感器輸出的微弱電流經(jīng)具有放大濾波等功能的調(diào)理電路后,輸入以模數(shù)轉(zhuǎn)換芯片ADC0804為核心的轉(zhuǎn)換電路轉(zhuǎn)換為八位數(shù)字信號(hào),再由單片機(jī)進(jìn)行處理,最終送入LCD液晶顯示屏顯示實(shí)時(shí)檢測(cè)的酒精濃度以及實(shí)現(xiàn)超值報(bào)警功能??紤]到MQ?3酒精濃度傳感器的預(yù)熱時(shí)間較長(zhǎng),系統(tǒng)上電后自動(dòng)進(jìn)入待機(jī)狀態(tài),在工作時(shí)也可以隨時(shí)通過(guò)按鍵控制進(jìn)入待機(jī)狀態(tài),待機(jī)狀態(tài)中系統(tǒng)不進(jìn)行酒精濃度采集、顯

6、示和報(bào)警,而是給傳感器預(yù)熱并顯示十分鐘以內(nèi)的簡(jiǎn)易計(jì)時(shí),讓使用者大致掌握預(yù)熱時(shí)間。待機(jī)狀態(tài)中也可隨時(shí)通過(guò)按鍵進(jìn)入工作狀態(tài)。 本文詳細(xì)介紹了酒精濃度采集、轉(zhuǎn)換、顯示、報(bào)警以及待機(jī)的工作原理,工作過(guò)程,硬件子系統(tǒng)和軟件實(shí)現(xiàn)方法。關(guān)鍵詞:MCU;STC89C52;MQ-3酒精濃度傳感器;ADC0804Abstract Since the new century, China 's economic development, people's living standards improve, private cars are gradually into the tens of tho

7、usands of households, the life that gives people brought great convenience. However, behind the high civilization, new problems, new challenges also come one after another, such as city traffic congestion, caused by vehicle exhaust pollution and traffic accident and so on. These problems are affecti

8、ng and even endanger the normal life of people. As will enter the society of university graduates, as the new century appearance, as the cause of socialism practice, we should actively their knowledge and practical problems combining the actual challenge, solving practical problems, the benefit of t

9、he broad masses of the people. Drunk driving is causing a major cause of road accidents,2021,May01, concern about the" criminal law amendment eight" and the revised" law of road transportation safety" was officially implemented, drunk driving is just as criminal offenses punishab

10、le by 6months, the highest criminal detention and a fine of 2000 yuan. This design is the design of alcohol concentration detector, design products to vapors in breath alcohol concentration real-time acquisition, display, alarm. The finished product can be used for traffic police to motorists to tes

11、ting and supervision, can also be used for the drivers before self detection. The design of the micro control unit MCU choose STC company STC89C52MCU, sensor selection of MQ - 3alcohol concentration sensor. The system will consist of the MQ - 3alcohol concentration sensor output current with the amp

12、lifying and filtering and other functions of the conditioning circuit, input to the A / D conversion chip as the core ADC0804conversion circuit converts the eight bit digital signal, then the MCU processing, ultimately into the LCD display. The real-time detection of the alcohol concentration and re

13、alize the value of alarm function. Considering the MQ - 3alcohol concentration sensor warm-up time is longer, power system automatically enter the standby state, the work also can be controlled through the buttons to enter the standby state, a standby state system without alcohol concentration acqui

14、sition, display and alarm, but to the sensor preheating and displayed within ten minutes of the simple timing, let users grasp the preheating time. A standby state can also be readily through the button to enter the working state. This paper introduces in detail the acquisition, conversion, alcohol

15、concentration display, alarm and standby work principle, work process, hardware system and software realization method.Key words: MCU; STC89C52; MQ-3 alcohol concentration sensor; ADC08041 緒論1.1 呼吸氣體酒精濃度檢測(cè)報(bào)警儀開發(fā)背景 我國(guó)經(jīng)濟(jì)、科技正在迅速騰飛,汽車早已進(jìn)入尋常百姓家。我國(guó)正在步入“汽車社會(huì),2021年我國(guó)汽車總數(shù)突破8000萬(wàn)輛,位居世界第三,這也帶來(lái)了許多問(wèn)題,酒駕正是其中之一。酒精有

16、使神經(jīng)系統(tǒng)鎮(zhèn)定松弛的作用,但也會(huì)成抑制力明顯減弱,可能造成酒后暴力行為。如果酒后駕車,由于神經(jīng)系統(tǒng)松散和判斷力下降,有可能造成嚴(yán)重交通事故。據(jù)科學(xué)實(shí)驗(yàn)說(shuō)明,飲酒后對(duì)交通燈的反響慢,轉(zhuǎn)向急速駕車搖擺不定,違法轉(zhuǎn)彎和急速轉(zhuǎn)彎等行為發(fā)生概率大大增大。喝酒后開車發(fā)生交通事故的概率是未喝酒時(shí)的16倍。2021年05月01日,我國(guó)正式將酒駕列為刑事犯罪。 酒駕給了我們慘痛教訓(xùn),為了防止悲劇的再次發(fā)生,檢測(cè)儀器便出現(xiàn)了,本課程設(shè)計(jì)所制作的基于單片機(jī)的呼吸氣體酒精濃度測(cè)試報(bào)警儀正是用于交警檢測(cè)和自我檢測(cè)的良好儀器,防止酒后駕車引發(fā)的交通事故。 燃料電池型、半導(dǎo)體型、氣體色譜分析型、比色型、紅外線型是呼吸氣體酒

17、精濃度測(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)氣體的酒精濃度成正比。 與半導(dǎo)體型相比,燃料電池型呼氣酒精測(cè)試儀具有穩(wěn)定性好,精度高,

18、抗干擾性好的優(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)體型。 本設(shè)計(jì)要求成品能對(duì)呼吸氣體中的酒精濃度進(jìn)行實(shí)時(shí)采集、轉(zhuǎn)換、分析、顯示、超值報(bào)警。 成品硬件主要包括基于STC89C52單片機(jī)的微控制模塊、MQ-3傳感器采集模塊、基于ADC0804芯片的A/D轉(zhuǎn)換模塊、按鍵控制模塊、以1602為核心的顯示模塊、報(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傳感器在

19、使用前有一個(gè)預(yù)熱過(guò)程所以設(shè)計(jì)還參加了待機(jī)程序的設(shè)計(jì)。2 單片機(jī)最小系統(tǒng)介紹 圖1 最小系統(tǒng)電路圖 本設(shè)計(jì)以STC89C52單片機(jī)為控制核心。單片機(jī)也就是MCU,即微控制單元,大學(xué)本科階段51型和52型是同學(xué)最常使用的,用于課程設(shè)計(jì)或畢業(yè)設(shè)計(jì)的為控制單元。52型是在51型的根底上開展而來(lái)的,它兼容51指令系統(tǒng),其功能更為強(qiáng)大,ROM和RAM存儲(chǔ)空間也比51型更大。STC89C52是52型中最普遍的一種。它除了具備一般52型的優(yōu)點(diǎn)以外,還具有程序無(wú)法解密,價(jià)格低,功耗低,運(yùn)算高速,高可靠強(qiáng)性,抗靜電和抗干擾能力強(qiáng),功能強(qiáng)大等突出優(yōu)點(diǎn)。 STC89C52有40個(gè)引腳,32 I/O口,它們分別是:P0

20、口,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)的方式,很方便地將hex文件載入單片機(jī)。相比以往的MCU,STC89C52可降至0Hz的靜態(tài)邏輯操作,可自由選擇兩種軟件節(jié)電工作模式也是其突出優(yōu)點(diǎn)。空閑方式時(shí),

21、自動(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 STC89C52單片機(jī)各引腳圖 2.2 復(fù)位電路介紹 圖3 復(fù)位電路電路圖 單片機(jī)工作過(guò)程中有一個(gè)程序指針,它指向即將要執(zhí)行的程序。單片機(jī)上電時(shí)要執(zhí)行復(fù)位操作,使得程序指針指針指向程序的0000H地址處,即單片機(jī)將要執(zhí)行第一條語(yǔ)句,以后每執(zhí)行完一條語(yǔ)句程序指針都依次增加

22、。這樣使得單片機(jī)每次執(zhí)行程序都處于確定狀態(tài),如果沒有程序指針,就不知道程序一開始應(yīng)該從哪里開始執(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假設(shè)輸入大于2個(gè)機(jī)器周期時(shí)間的高電平時(shí),單片機(jī)就會(huì)執(zhí)行復(fù)位操作,即程序指針將由當(dāng)前指針跳回到程序的0000地址處。 以上所說(shuō)的上電復(fù)位,和RST按鍵復(fù)位正是單片機(jī)復(fù)位操作的兩種根本形式。上電復(fù)位的實(shí)現(xiàn)方法是,在接通電源時(shí),RST引腳獲得瞬間高電平,因?yàn)殡娙蓦妷翰荒芡?/p>

23、變,隨著圖3中的電容C2的充電,RST引腳所獲得的高電平逐漸下降,但能保持兩個(gè)機(jī)器周期以上的時(shí)間,單片機(jī)復(fù)位。RST按鍵復(fù)位的方法是,在圖3所示的復(fù)位電路中,當(dāng)輕觸開關(guān)S1被按下,RST與VCC相連,也能獲得瞬間高電平,因?yàn)殡娙蓦妷翰荒芡蛔?隨著圖3中的電容C2的充電,RST引腳所獲得的高電平逐漸下降,但能保持兩個(gè)機(jī)器周期以上的時(shí)間,單片機(jī)復(fù)位。 在復(fù)位電路的設(shè)計(jì)中,要選擇適宜的元器件參數(shù),電阻的阻值不宜過(guò)大或者過(guò)小,過(guò)大使得RST不可能獲得高電平,過(guò)小也不能起到限流作用。另外電容容值也應(yīng)該適宜,要保證放電時(shí),RST引腳上的高電平也能保持兩個(gè)機(jī)器周期以上的高電平。本設(shè)計(jì)使用的電解電容容值和各電

24、阻阻值在圖3中都有標(biāo)注。2.3 晶振電路介紹 圖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í)鐘方式,其電路結(jié)構(gòu)簡(jiǎn)單,功率消耗低。 本系統(tǒng)中為了盡量降低功耗的原那么,采用了內(nèi)部時(shí)鐘方式。晶振全稱為晶體振蕩器(英文Crystal Oscillators),

25、其作用在于產(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)介 圖5 MQ-3酒精濃度傳感器模塊引腳示意圖 MQ-3酒精濃度傳感器模塊由傳感器探頭和調(diào)理電路組成。MQ-3酒精濃度傳感器探頭輸出的微弱電流送入調(diào)理電路,使信號(hào)放大并濾去雜波。MQ-3酒精濃度傳感器模塊引腳示意圖如上圖,除VCC和GND以外,模塊還有兩個(gè)輸出端口,TTL電平輸出端口和模擬信號(hào)輸出端口。 在檢測(cè)的酒精濃度

26、值大于傳感器內(nèi)預(yù)設(shè)值時(shí),TTL電平輸出端口將輸出高電平,起報(bào)警信號(hào)作用,假設(shè)小于預(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)換。 表1 MQ-3傳感器參數(shù)表符號(hào)?參數(shù)名稱?技術(shù)條件?備注 Vc 回路電壓?±0.2V AC or DC RL 負(fù)載電阻?可調(diào) RH 加熱電阻?31±3?室溫 PH 加熱功耗?900mW 符號(hào)?參數(shù)

27、名稱?技術(shù)條件?備注 Tao 使用溫度 -10-50 Tas 儲(chǔ)存溫度 -20-70 RH?相對(duì)濕度 小于 95% RH O2 氧氣濃度 21%標(biāo)準(zhǔn)條件 氧氣濃度會(huì)影響靈敏度特性?最小值大于2%?C.靈敏特性符號(hào) 參數(shù)名稱 技術(shù)參數(shù) 備注Rs 敏感體電阻1M- 8 M200ppm alcohol 適用范圍:10-1000ppm Alcohol ?(200/100)alcohol濃度斜率0.6標(biāo)準(zhǔn)工作條件 溫度: 20±2±0.1V相對(duì)濕度: 65%±±0.1V預(yù)熱時(shí)間不少于24小時(shí) 3.2 AD轉(zhuǎn)換軟硬件件設(shè)計(jì)3.2.1 ADC0804簡(jiǎn)介 圖6 ADC

28、0804引腳示意圖 ADC0804是屬于連續(xù)漸進(jìn)式的A/D轉(zhuǎn)換器,這類型的A/D轉(zhuǎn)換器除了轉(zhuǎn)換速度快(幾十至幾百us)、分辨率高外,還有價(jià)錢廉價(jià)的優(yōu)點(diǎn),普遍被應(yīng)用于微電腦的接口設(shè)計(jì)上。 芯片參數(shù): 工作電壓:+5V,即VCC+5V。 模擬輸入電壓范圍:0+5V,即0Vin+5V。 分辨率:8位,即分辨率為1/21/256,轉(zhuǎn)換值介于0255之間。 轉(zhuǎn)換時(shí)間:100us(fCK640KHz時(shí))。 轉(zhuǎn)換誤差:±1LSB。 參考電壓:2.5V,即Vref2.5V。 3.2.2 本設(shè)計(jì)中ADC0804外圍硬件連接 圖7 ADC0804外圍電路連接 20號(hào)引腳角和10號(hào)引腳分別接VCC和GND

29、,為芯片提供工作電壓。在精確測(cè)量時(shí),8號(hào)引腳模擬地和10號(hào)引腳數(shù)字地應(yīng)該分開接,為芯片提供基準(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口取走。 引腳三為外部寫數(shù)據(jù)允許位,它與單片機(jī)P1.7口相連,當(dāng)P1.7輸?shù)碗娖綍r(shí),芯片處于外部寫允許狀態(tài),此時(shí)芯片從6號(hào)和7號(hào)引腳獲取電壓差值,當(dāng)此引腳再次拉高時(shí),芯片便開始AD轉(zhuǎn)

30、換。 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ì)中此引腳懸空,沒有和單片機(jī)外部中斷入口相連。在程序中可以用軟件延時(shí)的方式等待它轉(zhuǎn)換完畢,或者用定時(shí)器中斷方式每隔一定時(shí)間采樣,讓芯片有充分轉(zhuǎn)換時(shí)間。在本設(shè)計(jì)中采用了第一種做法模擬

31、信號(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) 圖8 ADC0804控制時(shí)序圖 參考上圖,CS端在初始化函數(shù)void init()中便將他拉低使芯片一直處于工作狀態(tài),在主函數(shù)中先判斷是否處于檢測(cè)狀態(tài),假

32、設(shè)是檢測(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拉高后,芯片開始轉(zhuǎn)換,此時(shí)程序用delay(5);語(yǔ)句軟件延時(shí)約五毫秒,讓芯片轉(zhuǎn)換完成。再讓RD端拉低,同樣軟件延時(shí)一毫秒,讓單片機(jī)讀走數(shù)據(jù)。 下面介紹轉(zhuǎn)換原那么,ACD0804有八位數(shù)據(jù)輸出口,即轉(zhuǎn)換精

33、度為256,它將最高值(此處為1000ppm),分為255份,當(dāng)?shù)玫揭粋€(gè)轉(zhuǎn)換數(shù)據(jù)時(shí),用最大值除以255,再乘以該數(shù)據(jù)值便是最終轉(zhuǎn)換值。 AD轉(zhuǎn)換子函數(shù)分析:void adwr0;/將WR拉低,讓芯片開始讀6、7號(hào)引腳電壓值delay1;/延時(shí)約一毫秒,讓芯片忙完wr1; /將WR拉高,上升沿到來(lái)時(shí),AD轉(zhuǎn)換開始delay5;/軟件延時(shí)約五毫秒,等待AD轉(zhuǎn)換完成P30xff; /將P3口全部拉高,等待測(cè)試數(shù)據(jù)delay1;/延時(shí)一會(huì),防止紊亂rd0; /將RD拉低,芯片送出數(shù)據(jù)delay1;/延時(shí)約一毫秒,讓P3口tempP3; /將數(shù)據(jù)存入temprd1; /將RD拉高4 顯示模塊軟硬件設(shè)計(jì)4

34、.1 LCD1602簡(jiǎn)介 LCD1602每行可以輸出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為高脈沖 ,D0D7狀態(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

35、為高脈沖,R/W為低脈沖,E為高脈沖,D0D7數(shù)據(jù)。4.2 本設(shè)計(jì)中LCD1602的硬件連接介紹 圖9 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)整液晶比照度。 RS、R/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ù)

36、據(jù)子函數(shù)程序分析 圖10 LCD1602寫操作時(shí)序 注意前提,在初始化函數(shù)void init()中,已將R/W拉低(對(duì)應(yīng)lcden0;語(yǔ)句),即只對(duì)液晶進(jìn)行寫操作,不讀液晶狀態(tài)。之前有位定義sbit lcdrsP25;sbit lcdrwP26;sbit lcdenP27; 寫命令函數(shù)各語(yǔ)句分析:void write_comuchar comlcdrs0; /將RS拉低,說(shuō)明對(duì)指令操作, 上電時(shí)是默認(rèn)高電平P0com; /對(duì)P0賦值,該值是對(duì)應(yīng)命令碼 ,com為形參delay5;/延時(shí)約五毫秒lcden1; /E拉高,讓液晶讀P0口,寫入對(duì)應(yīng)命令碼delay5;/延時(shí)約五毫秒,讓液晶忙完再對(duì)其

37、操作,防止數(shù)據(jù)喪失lcden0; /將E拉低 寫數(shù)據(jù)函數(shù)各語(yǔ)句分析:void write_comuchar dalcdrs1; /將RS拉低高,說(shuō)明對(duì)數(shù)據(jù)操作P0da; /對(duì)P0賦值,該值是要寫入的數(shù)據(jù) ,da為形參delay5;/延時(shí)約五毫秒lcden1; /E拉高,讓液晶讀P0口,寫入數(shù)據(jù)delay5;/延時(shí)約五毫秒,讓液晶忙完再對(duì)其操作,防止數(shù)據(jù)喪失lcden0; /將E拉低 結(jié)合圖10,將對(duì)以上分析更加清楚。 值得注意的是,在寫數(shù)據(jù)的操作中,寫入的都是字符ASCII碼,例如想寫1,讓液晶在某處顯1,可寫write_data(1);或者write_data(0x30+1);4.3.2 本

38、設(shè)計(jì)中用到的液晶指令介紹分析本設(shè)計(jì)程序,你會(huì)看到這些寫指令命令: write_com0x38;write_com0x0c;write_com0x06;write_com1;write_com0x80+; 下面對(duì)它們中的指令碼做介紹: 0x38:液晶初始化指令,讓液晶按每行顯示16個(gè)字符,顯示兩行,并且每個(gè)字符顯示處的點(diǎn)陣為5X7; 0x0C:不顯示光標(biāo),光標(biāo)不閃爍; 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)方法

39、 寫字符串子程序: void write_struchar *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 value:",再寫語(yǔ)句write_strstr;寫完后指針變?yōu)榱?自動(dòng)結(jié)束。數(shù)據(jù)實(shí)時(shí)更新的實(shí)現(xiàn)方法,檢測(cè)時(shí)不斷調(diào)用顯示子函數(shù),display;顯示函數(shù)如下:void displayuint value;/定義局部變量valueuchar

40、a,b,c; /定義局部變量a、b、cvalue3.92*temp; /獲得value值,它是以ppm為單位avalue/100; /a為value的百位bvalue%100/10; /b為value的十位cvalue%10;/c為value的個(gè)位write_com0x80+0x40+4; /將數(shù)據(jù)寫在第二行,第五個(gè)字符處write_data0x30+a; /在第二行,第五個(gè)字符處寫入value百位write_com0x80+0x40+5;/將數(shù)據(jù)寫在第二行,第六個(gè)字符處write_data0x30+b; /在第二行,第六個(gè)字符處寫入value十位write_com0x80+0x40+6;/將

41、數(shù)據(jù)寫在第二行,第七個(gè)字符處write_data0x30+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_com0x80+6; /將數(shù)據(jù)寫在第一行,第七個(gè)字符處write_datatablea; /在第一行,第七個(gè)字符處寫入時(shí)鐘的分鐘 write_com0x80+7; /將數(shù)據(jù)寫在第一行,第八個(gè)字符處write_datatableb; /在第一行,第八個(gè)字符處寫入閃爍的冒號(hào)write_com0x80+8; /將數(shù)據(jù)寫在第一行,第九個(gè)字符處write_datat

42、ablec; /在第一行,第九個(gè)字符處寫入時(shí)鐘的秒鐘十位write_com0x80+9; /將數(shù)據(jù)寫在第一行,第十個(gè)字符處write_datatabled; /在第一行,第十個(gè)字符處寫入時(shí)鐘的秒鐘個(gè)位 由于是在不斷循環(huán)調(diào)用,即不斷數(shù)據(jù)刷新,而a、b、c、d的改變是通過(guò)定時(shí)器零實(shí)現(xiàn)的。這在后面的程序調(diào)試中詳細(xì)說(shuō)明。 5其它外圍設(shè)備軟硬件設(shè)計(jì)5.1 報(bào)警電路軟硬設(shè)計(jì)5.1.1 硬件局部設(shè)計(jì)圖11 報(bào)警電路 將蜂鳴器的正端接電源正,負(fù)端接P1.0。低電平有效,蜂鳴器響起。 發(fā)光二極管D1為報(bào)警燈,它的正端接電源正,負(fù)端與470K電阻相連再接上P1.1。低電平有效,D1點(diǎn)亮。電阻限流電阻。5.1.2

43、軟件局部設(shè)計(jì) 位定義語(yǔ)句: sbit beepP10;/定義蜂鳴器 sbit d1P11; /定義報(bào)警燈 用程序讓蜂鳴器響: beep0; /低電平輸出時(shí),蜂鳴器翻開 用程序讓蜂鳴器關(guān)閉: beep1; /高電平輸出時(shí),蜂鳴器關(guān)閉 用程序?qū)1點(diǎn)亮: d10; /低電平輸出時(shí),D1點(diǎn)亮 用程序?qū)1熄滅: d11; /高電平輸出時(shí),D1熄滅5.2 待機(jī)指示燈軟硬件設(shè)計(jì)5.2.1 硬件局部設(shè)計(jì)圖12 待機(jī)指示燈電路 發(fā)光二極管D2為待機(jī)指示燈,它的正端接電源正,負(fù)端與470K電阻相連再接上P1.3。低電平有效,D2點(diǎn)亮。電阻限流電阻。5.2.2 軟件局部設(shè)計(jì) 位定義語(yǔ)句: sbit d2P11;

44、 /待機(jī)指示燈警燈 用程序?qū)2點(diǎn)亮: d20; /低電平輸出時(shí),D2點(diǎn)亮 用程序?qū)2熄滅: d21; /高電平輸出時(shí),D2熄滅5.3 按鍵軟硬件設(shè)計(jì)5.3.1 硬件局部設(shè)計(jì) 圖13 按鍵電路 S2和S3分別和P2.1和P2.0,再與GND相接。S2為待機(jī)控制按鍵。S3為檢測(cè)控制按鍵。R18和R19與VCC相連再并接在開關(guān)前,是為了在松手時(shí),使I/O獲得穩(wěn)定的高電平。5.3.2 軟件局部設(shè)計(jì)位定義語(yǔ)句: sbit k1P20; /S3位定義 sbit k2P21; /S2位定義 S2按鍵檢測(cè):ifk10 /檢測(cè)按鍵是否按下delay5;/消抖ifk10 /再檢測(cè)按鍵是否按下flag0; /寫

45、入要進(jìn)行的操作,這里是將標(biāo)志數(shù)flag置零while!k1; /松手檢測(cè) S3按鍵檢測(cè):ifk20/檢測(cè)按鍵是否按下delay5; /消抖ifk20 /再檢測(cè)按鍵是否按下flag1; /寫入要進(jìn)行的操作,這里是將標(biāo)志數(shù)flag置一while!k2; /松手檢測(cè)5.4 電源電路 圖14 電源電路 如上圖為本設(shè)計(jì)的電源電路。接入220V交流電后從變壓器輸出12V交變電壓,再經(jīng)過(guò)橋式整流電路整流,輸出直流電。穩(wěn)壓芯片7805使電壓穩(wěn)定在5V,電解電容C5和C6濾除雜波。 S4為緊鎖開關(guān),也是電源總開關(guān)。D4與R17串聯(lián),跨接在VCC與GND之間,作為電源指示燈。6.1 硬件總體框圖 6.2 程序流程

46、圖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í)物照片參見附錄一和附錄二。 6.4 軟件調(diào)試 本設(shè)計(jì)所用編譯軟件時(shí)keil。 各模塊的軟件設(shè)計(jì)已經(jīng)在前面各節(jié)中介紹,這里主要介紹下標(biāo)志數(shù)的應(yīng)用,按鍵消抖和松手檢測(cè),定時(shí)器和定時(shí)器中斷,主要談及它們的原理以及軟件實(shí)現(xiàn)過(guò)

47、程。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(flag1) 待機(jī)程序 當(dāng)flag為0時(shí)執(zhí)行檢測(cè)報(bào)警程序: while(flag0) 檢測(cè)報(bào)警程序 在初始化函數(shù)中先將flag置一: flag1; 上電后那么進(jìn)入待機(jī)狀態(tài)。 按鍵k1后使flag置零,執(zhí)行檢測(cè)報(bào)警程序。按鍵k2后使flag置零,又執(zhí)行待機(jī)程序。 值得注意的是要在執(zhí)行待機(jī)程序或檢測(cè)報(bào)警程序前,執(zhí)行待機(jī)程序的程序尾部,以及執(zhí)行檢測(cè)報(bào)警程序的程序尾部多參加按鍵檢測(cè)程序:ifk10 /按鍵檢測(cè)de

48、lay5;/消抖ifk10flag0;while!k1; /松手檢測(cè)ifk20 /按鍵檢測(cè)delay5; /消抖ifk20flag1;while!k2; /松手檢測(cè)這樣就可以重新設(shè)置flag,再執(zhí)行完待機(jī)程序或檢測(cè)報(bào)警程序后,判斷接下來(lái)要執(zhí)行什么程序。6.4.2 按鍵的消抖與松手檢測(cè)的程序?qū)崿F(xiàn) 為什么要消抖?主要在手剛剛按下輕觸開關(guān)時(shí),會(huì)有抖動(dòng),有抖動(dòng)時(shí),程序會(huì)快速跑走,這樣有可能等同于按了兩下或多下按鍵的效果。 消抖原理:在檢測(cè)到按鍵后,立刻延時(shí)約五毫秒,即延時(shí)消抖,這樣就過(guò)了抖動(dòng)時(shí)間,之后手的按鍵力度是非常穩(wěn)定的。注意延時(shí)結(jié)束后立馬在檢測(cè)下按鍵是否還按下,以免因其它抖動(dòng)誤判。程序如下。 k1消抖:ifk10 /按鍵檢測(cè)delay5;/延時(shí)消抖ifk10 /再次按鍵檢測(cè) k2消抖:ifk20 /按鍵檢測(cè)delay5;/延時(shí)消抖ifk20 /再次按鍵檢測(cè) 其實(shí)用了連個(gè)開關(guān)k1和k2來(lái)分別將標(biāo)志數(shù)flag置一或置零,此時(shí)消抖不是很重要,不消抖也不會(huì)讓程序誤判。

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論