酒精濃度測試_第1頁
酒精濃度測試_第2頁
酒精濃度測試_第3頁
酒精濃度測試_第4頁
酒精濃度測試_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、課程設計報告 設計題目: 酒精溶度測試儀 智能酒精濃度檢測儀的設計摘 要:隨著科技的進步,智能產品在社會生產和人們生活等方面扮演著越來越重要的角色。本文介紹的是一款智能酒精濃度檢測儀的設計方案,以STC89C52單片機和酒精傳感器為核心,具有聲光報警和LCD顯示功能。為了滿足不同環(huán)境下的監(jiān)測,可根據不同的環(huán)境設置不同的閥值,超過閥值即進行聲光報警,提示危害。該設計方案的優(yōu)點是硬件電路設計簡單,軟件功能采用C語言進行調試,方便靈活。而該儀器具有靈敏度高、工作性能好、低功耗、低成本,較高的性價比等優(yōu)點??捎糜诮煌z測、酒廠和食品工廠發(fā)酵監(jiān)控等場所。關鍵詞:智能;酒精濃度;檢測儀;STC89C52單

2、片機;閥值;C語言;交通檢測Design for Intelligent Alcohol Concentration DetectorAbstract: With the progress of science, intelligent products gradually play an important role in many aspects, such as social produce, peoples daily life. This paper introduces an intelligent alcohol concentration detector, which is

3、based on STC89C52 single-chip microcomputer and alcohol sensor (transducer). It has several functions, including detecting alcohol concentration in different environment, giving an alarm with voice and glowing, and LCD display, except for this, we can also set the valve number of alcohol concentrati

4、on to meet different environments detecting, namely, when the detecting num over the value, the detector can suggest danger. The excellences of this design precept : easy hardware circuit ,software function adopt to C language to test, which is convenient and flexible .whats more, the detector with

5、high delicacy, low energy consumption and spending. It can be used in traffic detect, wine factory, food factory and so on.Key words: intelligent; alcohol concentration; detector; STC89C52 single-chip microcomputer; value ;C language; traffic detect目 錄第1章緒 論11.1 選題的依據和課題的意義11.2 國內外研究概況11.3 課題研究方法21.

6、4 設計構成及研究內容2第2章 系統的工作原理與結構32.1 工作原理32.2 結構框圖42.3 智能酒精濃度檢測儀的整體結構特點4第3章 檢測儀的硬件設計43.1 單片機的選擇43.2 酒精濃度檢測的設計63.2.1 MQ-3氣敏傳感器的結構和外形73.2.2 MQ-3靈敏度特性曲線83.2.3 MQ-3的標準工作條件和環(huán)境條件83.2.4酒精濃度信號的采集93.3 模數轉換電路的設計103.3.1 ADC0809的特點103.3.2 模數轉換電路103.4 按鍵設定閾值及閾值存儲電路的設計113.5 液晶接口電路的設計113.6 聲光報警電路的設計123.7 單片機與PC機串口通訊133.

7、8 晶振電路的設計133.9 復位電路的設計143.10 附加功能電路的設計14第4章 檢測儀的整體原理圖和實物圖15第5章檢測儀的軟件實現165.1 A/D轉換的軟件實現165.2 閾值設定及顯示的軟件控制175.3 整體軟件控制流程18第6章 檢測儀的軟件功能調試206.1 按鍵修改酒精閾值程序206.2 模數轉換測試206.3 液晶顯示程序設計216.4 聲光報警測試246.5 整體功能調試程序24第7章 結 論25參考文獻26致謝27附錄28附錄A:全局變量頭文件和延時模塊28附錄B:AD轉化模塊30附錄C:24c08存儲模塊31附錄D:LCD顯示模塊35附錄E:主函數4145第1章

8、緒 論1.1 選題的依據和課題的意義根據WTO數據,全球2003年得人均純酒精消費量為6.2L,其中歐洲地區(qū)人均達11.9L,美洲地區(qū)人均為8.7L。俄羅斯及其周邊的東歐國家酒精消費量最高,其次為歐洲其他國家。在人均國民生產總值(GDP)低于7000美元的低收入國家,酒精消費量與人均GDP有關,GDP越高這個國家或者地區(qū)的酒精消費量也就越高。而隨著我國近年來高速發(fā)展的經濟水平和居民生活水平,私家車的占有率直線上升,各式各樣的汽車已經成為人們的代步工具。同時伴隨而來的是頻頻發(fā)生的交通事故,尤其是因為酒后駕車所引發(fā)的交通事故,給自己和人們的生命財產安全帶來威脅,同時也給國家和社會帶來了嚴重的經濟損

9、失。因此,對于每個駕駛人來說擁有一個酒精濃度檢測儀,在每次駕駛之前自行檢測酒精濃度再決定是否安全駕駛,這是對自己、對家庭、對社會有責任感的體現。此外,從工廠企業(yè)到居民家庭,酒精泄露的檢測、監(jiān)控對居民的人身和財產安全都是十分重要和必不可少的。因此,酒精濃度檢測儀具有十分廣闊的實際應用價值和潛在的市場要求。1.2 國內外研究概況受20世紀信息技術快速發(fā)展的影響,傳感技術逐漸走向成熟,在生活生產中得到了廣泛的應用。由于傳感器在各個領域都有著舉足輕重的作用,因此,高精度、高可靠性、微型化、低功耗和智能數字化成了其發(fā)展方向。為了檢查酒駕,警察常常使用一種便攜式的酒精呼吸檢測儀。通過檢測駕駛員呼出的氣體判

10、斷駕駛者是否飲酒,而目前使用的酒精呼吸檢測儀只能初步顯示駕駛員是否飲酒,具體酒精濃度含量還得通過血檢才能測得。為了簡化其流程,英國內部已推出一種超級酒精呼吸檢測儀,能夠根據體溫、呼吸頻率等情況,當場判斷出駕駛員體內的酒精含量。由此可見,高精度、高可靠性、微型化以及低功耗是酒精濃度檢測儀今后發(fā)展的主流方向。迄今為止,對氣體中酒精含量進行檢測的設備有燃料電池型、半導體型、紅外線型、氣體色譜分析型和比色型五種類型,但由于使用方便的原因,目前常用的有燃料電池型和半導體型兩種。燃料電池是當前世界都在廣泛研究的環(huán)保型能源,它可以直接把可燃氣體轉變成電能,而不產生污染。酒精傳感器只是燃料電池的一個分支。燃料

11、電池酒精傳感器采用貴金屬白金作為電極,在燃燒室內充滿特種催化劑,是進入燃燒室內的酒精充分燃燒轉變?yōu)殡娔?,也就是在兩個電極上產生電壓,電能消耗在外接負載上,此電壓與進入燃燒室內氣體的酒精濃度成正比。與半導體型相比,燃料電池型呼氣酒精測試儀具有穩(wěn)定性好,精度高,抗干擾性好的優(yōu)點,但是由于燃料電池酒精傳感器的結構要求非常精密,制造難度相當大,目前僅有美國、英國、德國等少數幾個國家能夠生產,加上材料成本高,因此價格相當昂貴,通常是半導體傳感器的幾十倍。1.3 課題研究方法(1)文獻索引法:利用學校圖書館資料和文獻及通過網絡查詢相關資料對本課題有足夠深的了解,為本設計的具體模塊電路做好理論準備。(2)調

12、查法:與身邊的同學和朋友進行交流,充分考慮本設計實現的功能,盡可能完善該設計的功能。 (3)對比分析法:與目前市場上相關產品進行比較,發(fā)現該酒精檢測儀存在的不足以及可以優(yōu)化的部分,加以改進。1.4 設計構成及研究內容本文設計的智能酒精濃度檢測儀采用的是氣敏傳感器,屬于半導體型,該傳感器實質是個可變電阻,在它兩端加以固定的電壓,隨著所處環(huán)境酒精濃度的升高阻值將進行線性變化,從而將酒精濃度的含量轉變?yōu)殡妷旱淖兓?。該酒精檢測儀以C51單片機和氣敏酒精傳感器為核心,具有聲光報警和LCD顯示功能。為了滿足不同環(huán)境下的監(jiān)測,可根據不同的環(huán)境設置不同的閾值,超過閾值即進行聲光報警,提示危害。采用C語言來實現

13、其軟件功能。本設計只要包括以下內容:(1)主控芯片的選擇;在此設計中選擇了C51系列單片機,熟悉C51系列芯片怎樣控制外圍硬件電路。(2)酒精濃度檢測模塊的設計;酒精濃度常用酒精傳感器來檢測,了解該傳感器的工作原理,制作數據采集模塊完成數據的采集。(3)A/D轉換模塊的設計;A/D轉換器的選擇,將采集的酒精濃度模擬信號進行轉換后送至單片機存儲、處理。(4)鍵盤模塊的設計;要通過鍵盤完成設定不同環(huán)境中酒精濃度的閾值。(5)聲光報警模塊的設計;超過設定的閾值直觀地給予警示。(6)液晶顯示模塊的設計;準確顯示出檢測到的數據。(7)各個硬件模塊電路銜接。(8)PCB的布板、元件焊接及功能調試。第2章

14、系統的工作原理與結構2.1 工作原理酒精濃度檢測儀是用來檢測所處環(huán)境中的酒精濃度的,并顯示出檢測的結果數值。而本設計所做的智能酒精濃度酒精檢測儀除具有這個基本功能外,還可通過手動隨意設置酒精濃度的閥值,以劃定不同環(huán)境條件下酒精的安全界限,同時具有聲光報警功能。它主要由酒精傳感器、模數轉換器、單片機、LCD顯示、鍵盤模塊以及聲光報警部分組成。數據的采集由酒精傳感器完成,酒精傳感器將檢測的酒精濃度轉換為電信號,然后將電信號傳遞給模數轉換器,經過模數轉換器轉換后,把轉換后得到的數字信號傳給單片機,單片機對所輸入的數字信號進行分析處理,最后將分析處理的結果通過顯示器顯示出來。同時與根據鍵盤設定的酒精濃

15、度閥值進行比對,如果檢測到所處環(huán)境中的酒精濃度超過設定的界線,那么單片機將會控制蜂鳴器發(fā)出聲音報警和發(fā)光LED不斷閃爍,以提示危害。2.2 結構框圖硬件系統結構框圖如下圖2-1所示圖2-1 系統結構框圖2.3 智能酒精濃度檢測儀的整體結構特點本文設計的智能酒精濃度檢測儀具有如下特點:(1)數據采集系統以單片機為控制核心,外圍電路帶有LCD顯示和鍵盤響應電路,無需其他計算機,用戶就可與之進行交互工作,完成數據的采集、存儲、計算、分析等過程。(2)系統具有低功耗、小型化、高性價比、靈敏度高等特點。(3)從便攜式的角度出發(fā),系統通過鍵盤設置酒精濃度的閥值,結合單片機的控制,實現了人機交互操作、界面友

16、好。(4)軟件系統采用C語言進行編寫,在兼顧實時性處理的同時,也方便了對數據的處理。第3章 檢測儀的硬件設計3.1 單片機的選擇MCS-51單片機是美國Intel公司于1980年推出的一款相當成功的產品,該系列或其兼容的單片機仍是應用的主流產品之一,該系列單片機主要包括8031,8051,8751和89C51等通用產品。本次設計選用的是STC89C52單片機,STC89C52是低功耗、高性能的CMOS8位微控制器,具有8K在系統可編程Flash存儲器。使用宏晶高密度非易失性存儲器技術制造,與工業(yè)80C51產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統上可編程,亦適于常規(guī)編器。在單芯

17、片上,擁有靈巧的8位CPU和在系統可編程Flash,使得STC89C52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。STC89C52具有以下標準功能:8字節(jié)的Flash,256字節(jié)的RAM,32位的I/O口線,看門狗定時器,2個數據指針,3個16位定時器/計數器,1個6向量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。除此,STC89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數器、串口、中斷繼續(xù)工作。掉電保護方式下,內容被保存,振蕩器被凍結。STC89C52單片機作為控制核心,為了提高IO口的利用率,通過擴展一片8

18、255芯片來實現液晶顯示的功能。單片機的IO口控制圖如下圖3-1-1所示圖3-1-1 STC89C52的接口控制圖P0口用于接收模數轉換的輸出,P2.0用于模數轉換的時鐘控制,8255的擴展通過P2.1,P2.2,P2.5口來控制, P2.3用于作為模數轉換的使能控制,P2.6,P2.7口用于模擬I2C連接外部存儲芯片AT24C08,P3.3口為外部中斷控制口,由它來控制酒精閾值的設定,液晶顯示模塊通過單片機控制8255來實現相應的功能.8255芯片的引腳控制圖如圖3-1-2所示:圖3-1-2 8255的引腳控制圖8255芯片是一種典型的可編程通用并行接口芯片,用來擴展單片機的端口,它具有3個

19、8位的并行口,有三位工作方式,可作為單片與各種外部設備連接的接口電路。CS:片選信號線,當該引腳為低電平時,8255被選中,允許8255與CPU通訊。RESET:復位輸入線,當該引腳為高電平時,內部寄存器被清除,所有I/O口均被置成輸入方式。A0、A1:地址輸入線。當A0A1=00時,PA口被選中;當A0A1=01時,PB口被選中;當A0A1=10時,PC口被選中;當A0A1=11時,控制寄存器被選中。3.2 酒精濃度檢測的設計酒精濃度的準確檢測是決定該設計成功與否的關鍵因素,而酒精的檢測依靠酒精傳感器來實現信號的采集。在本設計中選用靈敏度高、穩(wěn)定性好的MQ-3氣敏傳感器,該傳感器對乙醇蒸汽有

20、很高的靈敏度和良好的選擇性,快速的響應和恢復特性,長期的壽命和可靠的穩(wěn)定性,以及簡單的驅動電路。它的工作原理是在確定的環(huán)境條件下,環(huán)境中的酒精濃度變化將會引起電阻值的變化,且這兩種變化存在著線性關系。3.2.1 MQ-3氣敏傳感器的結構和外形MQ-3氣敏元件的結構和外形如圖3-2-1所示圖3-2-1 MQ3氣敏元件結構外形圖在上圖中,由微型AL2O3陶瓷管、SnO2敏感層,測量電極和加熱器構成的敏感元件固定在塑料或不銹鋼制成的腔管內,加熱器為敏感元件提供必要的工作條件。封裝好的氣敏元件有6只針狀管腳,其中4只用于信號提取,2只用于提供加熱電流。3.2.2 MQ-3靈敏度特性曲線圖 3-2-2

21、MQ-3氣敏元件的靈敏度特性曲線在圖3-2-2中給出了MQ-3氣敏元件的靈敏度曲線,其中:溫度20;相對濕度:65%;氧氣濃度:21%; RL:200k. Rs:氣敏元件在不同氣體、不同濃度時的電阻值。R0:氣敏元件在潔凈空氣中的電阻值。3.2.3 MQ-3的標準工作條件和環(huán)境條件圖3-2-3 MQ-3氣敏傳感器阻值變化率與酒精濃度、外界溫度的關系為了更好地使用酒精傳感器MQ-3,現將MQ-3的標準工作條件和環(huán)境條件進行介紹,分別如表3-2-1和表3-2-2所示:表3-2-1 工作條件符號參數名稱技術條件備注VC回路電壓15VAC or DCVH加熱電壓5.0V±0.2VAC or

22、DCRL負載電阻可調RH加熱電阻31±3室溫PH加熱功耗900mW表3-2-2 環(huán)境條件符號參數名稱技術條件備注Tao使用溫度-1050Tas儲存溫度-2070RH相對濕度95%RHO2氧氣濃度21%(標準條件)氧氣濃度會影響靈敏度特性最小值大于2%3.2.4 酒精濃度信號的采集詳細的酒精濃度采集電路見下圖3-2-4所示:圖3-2-4 酒精濃度采集電路在上圖中傳感器將環(huán)境中的酒精濃度轉化電壓信號,在第4引腳直接輸出電壓信號模擬量,該模擬量將送到模數轉換,通過單片機控制最終得出環(huán)境中酒精的含量,同時可以通過對電位器WR1的調節(jié)來改變輸出的靈敏度。3.3 模數轉換電路的設計由于本設計中所

23、用的是單一電源+5V,故由酒精濃度轉化的電壓信號也將在05V范圍,并且考慮到轉換的速度應該要快,在此我們選用典型的8位逐次逼近型A/D轉換器ADC080 ADC0809的特點該轉換器具有如下特點:(1) 分辨率為8位;(2) 轉換時間為100us;(3) 很容易與微處理器連接;(4) 無須零位或者滿量程調整;(5) 帶有鎖存控制邏輯的8通道多路轉換開關,便于選擇8路中的任一路進行轉換;(6) 帶鎖存器的三態(tài)數據輸出。3.3.2 模數轉換電路具體模數轉換電路見圖3-2-1所示圖3-2-1 模數轉換在該檢測儀的設計中只用到兩路通道,即通道IN0和IN1.分別為酒精濃度的電壓模擬信號和

24、電壓比較器LM393的基準電壓信號,D0D7為由酒精濃度引起而產生的電壓數字量輸出,結果將送至單片機進行分析和處理。3.4 按鍵設定閾值及閾值存儲電路的設計為了適應對不同環(huán)境中酒精濃度的檢測和監(jiān)控,必須調整該儀器的酒精濃度閥值以符合既定的工作要求。同時為了節(jié)省硬件資源的消耗,于是在此通過外部中斷的按鍵操作來改變酒精濃度的不同閥值,外部中斷電路見下圖3-4-1所示圖3-4-1 外部中斷按鍵電路閾值存儲電路的添加,既可以明確地看出具體設定的酒精濃度值,又能以備調出來與檢出的酒精濃度作比較,增強了直觀性。于此選用了AT24C08作為存儲器件,用單片機的P2.6,P2.7口模擬I2C與之通信,從而完成

25、數據的讀寫操作。相應的電路如圖3-4-2所示圖3-4-2 AT24C08存儲電路3.5 液晶接口電路的設計酒精濃度的顯示采用1602液晶,LCD1602可顯示兩行英文字符,且內帶ASCII字符庫。LCD1602模塊內部可完成顯示掃描,單片機只要向LCD1602發(fā)送命令和顯示內容的ASCII碼。具體的接口電路見圖3-5所示圖3-5 液晶接口電路圖控制信號RS、R/W和E分別由單片機控制8255的PA4,PA5,PA6口實現,要顯示的信息通過調用數據處理程序傳到8255的PB口。3.6 聲光報警電路的設計當酒精濃度超過所設定標準時,通過控制單片機的P3.3口的電平來實現警報功能。其電路見圖3-6所

26、示圖3-6 聲光報警電路如上圖所示,酒精濃度超過設定的閥值時,給單片機的P3.3口低電平,則三極管導通,同時蜂鳴器工作,發(fā)光二極管也亮。否則,單片機的P3.3口維持在高電平,三極管截止,蜂鳴器不工作,二極管也不發(fā)光。3.7 單片機與PC機串口通訊“串行通信”是系統之間用一根數據信號線,數據在這根數據線上一位一位地進行傳輸,每一位數據都占據一個固定的時間長度。目前個人的PC機上都有這種接口(COM1,COM2),即RS-232口。電腦的RS-232口共9根線,在簡單的應用中,需要三根線即可完成通信,分別是第2腳RXD,第3腳TXD,第5腳GND.串行通信與單片機之間的接口:由于串行通信的電平邏輯

27、定義是+15V(高電平1),-15V(低電平0),而單片機中分別用5V,0V來表示高電平1,低電平0.它們之間必須通過電平轉換才能完成通信。最常用的是MAX32電路,該連接圖見圖3-7所示圖3-7 串口通信電路單片機串口通信原理:51系列單片機內部集成了兩個同名不同地址的串口緩沖區(qū)SBUF,一個是發(fā)送緩沖區(qū),一個是接收緩沖區(qū)。發(fā)送數據時MCU將數據寫到發(fā)送SBUF,接收到的數據自動放到接收SBUF,無需程序指定。串口發(fā)送和接收事件發(fā)生時,由硬件標志來通知處理器,RI為接收事件發(fā)生標志,TI為發(fā)送完成標志,“1”為事件發(fā)生。在串口中斷打開的條件下,兩者任意一種情況發(fā)生都會引起中斷,單片機程序可以

28、根據RI=1和TI=1進行相應的處理。本檢測儀需要用串口線將程序下載到單片機中,以對之進行初始化過程。3.8 晶振電路的設計本系統采用的是12MHZ的晶振,其電路圖如圖3-8所示:圖3-8 晶振電路圖XTAL1:振蕩器反相放大器和內部時鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。3.9 復位電路的設計單片機的復位電路如圖3-9示:圖3-9 復位電路圖RST:復位輸入。晶振工作時,RST腳持續(xù)2個機器周期高電平將使單片機復位??撮T狗計時完成后,RST腳輸出96個晶振周期的高電平。特殊寄存器AUXR上的DISRT0位可以使此功能無效。DISRT0默認狀態(tài)下,復位高電平有效。3.10

29、附加功能電路的設計由于酒精濃度的檢測在很大程度上受到溫度的影響,為了更直觀地測出不同環(huán)境中酒精的含量,這里增加一個溫度傳感器,以對應不同溫度下酒精傳感器所對應的線性關系。DS18B02數字溫度計DALLAS公司生產的單總線器件,具有線路簡單、體積小的特點。實際應用中不需要外部任何器件即可實現測溫,測量溫度范圍在-5+125。C之間,數字溫度計的分辨率可以從9位到12位選擇,且內部有上、下限告警設置,使用非常方便。數字溫度計接口的電路圖如3-10所示圖3-10 DS18B02電路P17為數字信號輸入/輸出端,將程序下載至單片機,開機運行,用手觸摸DS18B02溫度傳感器,液晶上將會顯示當時所處環(huán)

30、境的溫度值。第4章 檢測儀的整體原理圖和實物圖智能酒精檢測儀的整體原理圖見4-1所示圖4-1 整體原理圖酒精檢測模塊實物圖如圖4-2所示圖4-2 酒精檢測模塊實物圖智能酒精檢測儀的實物圖見4-3所示圖4-3 酒精檢測儀的實物圖第5章 檢測儀的軟件實現5.1 A/D轉換的軟件實現A/D轉換的軟件控制流程如圖5-1所示圖5-1 AD轉換流程控制A/D轉換的啟動必須依靠下降沿觸發(fā),在START置低后延時一段時間(約10ms)轉換才正式開始.轉換過程中的所需輸入時鐘允許范圍為10KHZ1280KHZ,在本次設計中選用500KHZ,通過定時器產生,轉換完成后得到的數字量即為由酒精傳感器檢測到環(huán)境中的酒精

31、含量而產生的電壓值,調用數據處理程序從而可得到酒精濃度的真實值.5.2 閾值設定及顯示的軟件控制酒精濃度的閾值設定及顯示的具體軟件控制流程如圖5-2所示圖5-2 酒精濃度的閾值設定及LCD顯示的軟件控制流程當系統進行完初始化后,該檢測儀在將檢測到的酒精濃度進行A/D轉換的同時,還在時刻檢測有無外部中斷的響應,一旦有按鍵按下,將會根據按鍵按下的次數選擇酒精濃度表中的酒精濃度值,而且這個值將會立刻被保存于外部存儲單元(AT24C08),以便與監(jiān)測到的環(huán)境中的酒精濃度進行比較,完成接下來的聲光報警功能.5.3 整體軟件控制流程本酒精檢測儀的軟件流程圖見圖5-3所示圖5-3 軟件方案總體流程圖該儀器軟

32、件程序主要使用C語言編寫,采用了模塊化結構程序設計方法,包括主程序、中斷程序等。系統在開機或者復位后,首先進行初始化、自檢,然后進入中斷等待,A/D轉換,液晶顯示三個狀態(tài),最終根據所得結果判斷是否執(zhí)行聲光報警。中斷子程序包括預設閥值、數據存儲、信息顯示等操作,在進行閥值判斷時用到了LM393電壓比較器,程序的絕大部分時間處在數據處理上,而STC89C52單片機在一次處理數據的時間約為6us,故總體的平均功耗低。第6章 檢測儀的軟件功能調試本檢測儀的軟件功能通過方便靈活、移植性好的C語言編程來實現,采用分模塊化程序設計思想,對不同模塊分別進行調試后,最后再進行整合調試。總體說來包括6個模塊,即:

33、按鍵設置閥值模塊、模數轉換模塊、液晶顯示模塊、聲光報警模塊、存儲模塊、延時模塊。6.1 按鍵修改酒精閾值程序下面這段程序是用來設置酒精濃度的閾值的,檢測儀只要處在工作狀態(tài)中,不停地掃描按鍵,一旦檢測有按鍵按下,通過檢測按下的次數調用酒精濃度值數組就可知道酒精濃度設在哪個閾值。那么只要閾值在沒修改前,檢測儀實時檢測的酒精濃度值就會跟該值進行比對,超過界限蜂鳴器將會就會發(fā)出響聲,同時蜂鳴器旁邊的燈會亮。經測試,雖然整個反應過程慢了點,但是效果還是符合預定的思路。程序6-1:Static unsigned char set_Value=6;void INTER0(void) interrupt 0s

34、et_Value+;I2c_Write_Char(DEV_24c08ID,0x00,set_Value);if(set_Value>20)set_Value=0;6.2 模數轉換測試選擇第0通道作為酒精濃度模擬量輸入端,首先得對ADC0809的初始化,初始化完后,進行酒精濃度的監(jiān)測、分析、運算和處理,最終結果通過單片機控制8255輸至液晶上顯示出來,同時這個值還將與所設定的閾值進行比對以判斷是否超標。下面是關于A/D轉化的模塊化程序(程序6-2).程序6-2:uchar AD_Convert(void)Start=LOW;delay(2);Start=HIGH;delay(2);Star

35、t=LOW;while(!EOC);OE=HIGH;temp=P0; return temp;6.3 液晶顯示程序設計該儀器用到的是LCD1602液晶,即可顯示兩行字符,每行16個字符。以下是對其的初始化程序,為了達到實時正確顯示所需要的信息,我們將對檢測儀的液晶顯示模塊進行單獨的測試。要想1602液晶正常顯示,得對其進行寫命令操作和寫數據操作,以下的程序可以在液晶的第一行顯示“My college!”.程序6-3:#include<reg51.h>#include <INTRINS.H>#include "ABSACC.H"#define a825

36、5_PA XBYTE0xD1FF /*PA口地址*/#define a8255_PB XBYTE0xD2FF /*PB口地址*/#define a8255_PC XBYTE0xD5FF /*PC口地址*/#define a8255_CON XBYTE0xD7FF /*控制字地址*/#define uchar unsigned char#define uint unsigned int uchar code table="My collge!"void delay(int ms) int i; while(ms-) for(i = 0; i< 250; i+) _nop

37、_(); _nop_(); _nop_(); _nop_(); /*遇忙等待函數*/void WaitForEnable(void) _nop_(); _nop_(); while(a8255_PA&0x40); /1忙 a8255_PA=0xbf; /10111111/*寫命令*/void write_com(uchar com) a8255_CON=0x80;WaitForEnable( );a8255_PA=0x8f; /10001111a8255_PB=com;delay(2);a8255_PA=0xcf;/11001111delay(2); a8255_PA=0x8f;/10

38、001111/*寫數據函數*/void write_data(uchar dat) a8255_CON=0x80;WaitForEnable(); a8255_PA=0x9f;/10011111a8255_PB=dat;delay(2); a8255_PA=0xdf; /11011111delay(2); a8255_PA=0x9f;/*LCD1602初始化*/void lcdinit (void) a8255_PA=0xff;a8255_CON=0x80;a8255_PA=0x9f;write_com(0x38);write_com(0x0f); /00001111 開顯示,開光標,不閃爍w

39、rite_com(0x06); /00000111 指針加1write_com(0x01); /清屏write_com(0x80);/write_com(0x80);void main( ) int num; lcdinit(); for(num=0;num<10;num+)write_data(tablenum);delay(20);while(1);6.4 聲光報警測試為了達到設定的要求,酒精濃度超過閥值時,由單片機控制實現聲光報警功能,給單片機的P3.3口一個低電平,蜂鳴器就會響,燈會亮。以下是相應的模塊程序。程序6-4:Sbit Beep=P33;if(j>=set_Val

40、ue)Beep=0;delay_ms(200);Beep=1;delay_ms(20); 6.5 整體功能調試程序本設計采用模塊化程序設計結構,方便調試,易于查錯,可移植性強。詳細的模塊程序請查看相應的附錄,該檢測儀的整體功能實現即由每個模塊的分工協作來實現。將程序在Keil編譯器中編譯成功后,生成HEX文件,然后將程序燒錄到單片機中,上電即可進行工作了。上電后該酒精檢測儀將按照初始化的程序進行工作,酒精濃度閾值為當初設定的,超過閾值則會產生報警。 一旦有設定酒精濃度閾值的按鍵按下,并且檢測按鍵按下的次數,則酒精濃度的閾值即被重新設定,在沒被下一次設定前,實時檢測的酒精濃度將與它進行比較,超過

41、該界限值即報警,同時酒精濃度值一直將會顯示出來。第7章 結 論經過近半年時間的不斷查找資料、設計原理圖、布板、焊接以及軟、硬件調試,該檢測儀基本實現了既定的功能??梢赃M行酒精濃度閾值設定、聲光報警、以及酒精濃度的顯示,不過整個檢測儀的反應速率相對較慢,經分析可能與單片機的處理的位數、環(huán)境的溫度有關,因為環(huán)境的溫度會對酒精傳感器的靈敏度造成很大的影響,但酒精傳感器良好的穩(wěn)定性和選擇性使得檢測儀抗干擾性很強。結構簡單、體積小、攜帶方便等優(yōu)點相信會使它具有很好的市場前景。總之,雖然在這過程當中遇到過很多阻礙,比如原理圖中有些元件設置不對導致沒有導入PCB工程中,還有部分因為封裝問題導致生成的PCB出

42、現錯誤,不過有了這些錯誤同時讓自己對知識有了更深一層的了解,培養(yǎng)了自己獨立思考問題、解決問題的能力。參考文獻1紀宗南.單片機外圍器件實用手冊-輸入通道器件分冊(M).北京:北京航空航天大學出版社,2005:225-230.2趙家貴.新編傳感器電路設計手冊(M).北京:中國計量學出版社,2002:23-26.3張鑫.單片機原理及應用(M).北京:電子工業(yè)出版社,2005:161-258.4清源計算機工作室.Protel99SE原理圖與PCB及仿真(M).北京:機械工業(yè)出版社,2004:10-345.5Neamen,D.A美電子電路分析與設計(M).北京:電子工業(yè)出版社,2003:86-104.6

43、李偉諟.EPSON單片系列液晶顯示器(M).北京:北京航空航天大學出版社,2001:142-150.7黃智偉.全國大學生電子設計競賽電路設計(M).北京:北京航空航天大學出版社,2006:127-140.8韓廣興.電子元器件與實用電路基礎(修訂版(M)). 北京:電子工業(yè)出版社,2005:340-356.9沙占友.中外集成傳感器實用手冊(M). 北京:電子工業(yè)出版社,2005:200-210.10Huddleston,C.美.Intelligent Sensor Design:Using the Microchip dsPIC(智能傳感器設計(M).北京:人民郵電出版社,2000:827-11

44、24.11喬林.Visual C+6.0程序設計(M):精通篇.北京:中國鐵道出版社,1999:20-64.12先鋒工作室.單片機程序設計實例(M).北京:清華大學出版社,2002:46-50.13張大明.單片機控制實訓指導及綜合應用實例(M).北京:機械工業(yè)出版社,2007:668-710.14康華光.電子技術基礎模擬部分(第五版(M)).北京:高等教育出版社,2006:123-340.15康華光.電子技術基礎數字部分(第五版(M)).北京:高等教育出版社,2006:10-256.附錄附錄A:全局變量頭文件和延時模塊/*-globle.h-*/#ifndef _GLOBLE_H#define

45、 _GLOBLE_H#include<reg51.h>#include "ABSACC.H"#define a8255_PA XBYTE0xD1FF /*PA口地址*/#define a8255_PB XBYTE0xD2FF /*PB口地址*/#define a8255_PC XBYTE0xD5FF /*PC口地址*/#define a8255_CON XBYTE0xD7FF /*控制字地址*/typedef unsigned char uchar;typedef unsigned int uint;typedef bit BOOL;#define HIGH 1

46、#define LOW 0#define I2C_TIME 3#define DEV_24c08ID 0xa0 /24c08的i2c地址sbit Start = P2 7;sbit EOC = P3 4;sbit OE = P2 3;sbit CLK = P2 0;sbit Beep=P33;sbit SCL=P26;sbit SDA=P27;#endif/*-延時模塊-*/#include <INTRINS.H>#include"globle.h"void delay_ms(uchar ms) uchar i; while(ms-) for(i = 0; i&

47、lt; 250; i+) _nop_(); _nop_(); _nop_(); _nop_(); void delay(uchar us) /2us uchar i; while(us-) for(i = 0; i<1; i+) _nop_(); 附錄B:AD轉化模塊/*-AD.h-*/#ifndef _AD_H#define _AD_Huchar AD_Convert(void);#endif/*-AD.c-*/#include"globle.h"extern void delay(uchar ms);uchar temp;uchar AD_Convert(void

48、)Start=LOW;delay(2);Start=HIGH;delay(2);Start=LOW;while(!EOC);OE=HIGH;temp=P0; return temp;附錄C:24c08存儲模塊/*-i2c.h-*/#ifndef _i2c_h#define _i2c_hvoid i2c_init();void I2c_Start(void);void I2c_Stop(void);void respons();void noACK();void I2c_Send(uchar u8_data);uchar I2c_Read(void);void I2c_Write_Char(uc

49、har u8_deviceID,uchar reg,uchar u8_data);uchar I2c_Read_Char(uchar u8_deviceID, uchar reg);#endif/*-I2C.c-*/#include"globle.h"#include"i2c.h"extern void delay(uchar us);void i2c_init()SCL=1;delay(I2C_TIME);SDA=1;delay(I2C_TIME);void I2c_Start(void)SDA=1;delay(I2C_TIME);SCL=1;dela

50、y(I2C_TIME);SDA=0;delay(I2C_TIME);SCL=0;delay(I2C_TIME);void I2c_Stop(void)SCL=0;delay(I2C_TIME);SDA=0;delay(I2C_TIME);SCL=1;delay(I2C_TIME);SDA=1;delay(I2C_TIME);void respons()uchar i=0;SCL=1;delay(I2C_TIME);while(SDA=1)&&(i<255) i+; SCL=0;delay(I2C_TIME);void noACK()SDA=1;delay(I2C_TIME

51、);SCL=1;delay(I2C_TIME);SCL=0;delay(I2C_TIME);void I2c_Send(uchar u8_data) uchar i; for (i=0;i<8;i+) SDA = (bit)(u8_data & 0x80);u8_data=u8_data<<1;SCL=1; delay(I2C_TIME);SCL=0; delay(I2C_TIME); uchar I2c_Read(void)uchar i,u8_data=0;SCL=0;delay(I2C_TIME); SDA=1;for(i=0;i<8;i+) SCL=1;delay(I2C_TIME);u8_data=(u8_data<<1)|SDA; /u8_data=*2;SCL=0;delay(I2C_TIME);delay(I2C_TIME);return(u8_data);void I2c_Write_Char(uchar u8_deviceID,uchar reg,uchar

溫馨提示

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

評論

0/150

提交評論