




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、重重慶慶三三峽峽學學院院專專業業綜綜合合課課程程設設計計報報告告 題 目 51 單片機酒精濃度測試儀設計 系 別 電子與信息工程學院 專 業 電子信息工程 班 級 *級*班 姓 名 XXX 學 號 201107014115 2014 年 12 月 12 日2酒精濃度檢測儀的設計酒精濃度檢測儀的設計一、一、設計目的設計目的近年來,我國越來越多的人有了自己的私家車,而酒后駕車造成的交通事故也頻繁發生。為此,我國將酒駕列入刑法范圍內,所以需要設計一智能儀器能夠檢測駕駛員體內酒精含量。本課程設計研究的是一種以氣敏傳感器和單片機 A/D 轉換器為主,檢測駕駛員呼出氣體的酒精濃度,并具有聲光報警功能的空氣
2、酒精濃度監測儀。其可檢測出空氣環境中酒精濃度值,并可根據不同的環境設定不同的閾值,對超過的閾值進行聲光報警來提示危害。本課題分為兩部分:硬件設計部分和軟件設計部分。硬件部分為利用 MQ3 氣敏傳感器測量空氣中酒精濃度,并轉換為電壓信號,經 A/D 轉換器轉換成數字信號后傳給單片機系統,由單片機及其相應外圍電路進行信號的處理,顯示酒精濃度值以及超閾值聲光報警。程序采用模塊化設計思想,各個子程序的功能相對獨立,便于調試和修改。而硬件電路又大體可分為單片機小系統電路、A/D 轉換電路、聲光報警電路、LED顯示電路,按鍵電路,各部分電路的設計及原理將會在硬件電路設計部分詳細介紹。二、設計二、設計方案方
3、案1、酒精濃度檢測儀總設計方案設計時,考慮酒精濃度是由傳感器把非電量轉換為電量,傳感器輸出的是0-5伏的電壓值且電壓值穩定,外部干擾小等。因此,可以直接把傳感器輸出電壓值經過A/D轉換器轉換得到數據送入單片機進行處理。此外,還需接人LED數碼管顯示,鍵盤設定,報警電路等。其總體框圖如圖1所示。被測環境氣敏傳感器A/D 轉換電路單片機聲光報警電路LED 顯示鍵盤圖圖1 1 基本工作原理圖基本工作原理圖3 3、設計內容設計內容1、 酒精濃度檢測儀設計要求分析設計的酒精濃度測試儀應具有如下特點:(1)數據采集系統以單片機為控制核心,外圍電路帶有LED顯示以及鍵盤響應電3路,無需要其他計算機,用戶就可
4、以與之進行交互工作,完成數據的采集、存儲、計算、分析等過程。(2)系統具有低功耗、小型化、高性價比等特點。(3)從便攜式的角度出發,系統成功使用了數碼管顯示器以及小鍵盤。由單片機系統控制鍵盤和LED顯示來實現人機交互操作,界面友好。(4)軟件設計簡單易懂。2、設計內容要求(1)傳感器 TGS822的電壓模擬輸出范圍為 0-5V; (2)模數轉換芯片 ADC0809采樣電壓范圍為 0-5V,分辨率為 8 位,采樣精度為 5/256V,達到 256 個量化級的數字電壓,其工作頻率為 1MHz; (3)單片機 AT89C52工作頻率為 6 MHz;傳感器 LCD 顯示輸出單片機數字輸出控制輸出模數轉
5、換模擬輸出 (4)LCD顯示器用 50K 的可調電阻調節使其清晰顯示。4 4、電路設計與描述電路設計與描述1 1、硬件設計、硬件設計1.1 傳感器的選擇本系統直接測量的是呼氣中的酒精濃度,再轉換為血液中的酒精含量濃度,故采用氣敏傳感器。考慮到周圍空氣中的氣體成分可能影響傳感器測量的準確性,所以傳感器只能對酒精氣體敏感,對其他氣體不敏感,故選用 MQ3 型氣敏傳感器。其有很高的靈敏度、良好的選擇性、長期的使用壽命和可靠的穩定性。MQ3 型氣敏傳感器由微型Al2O3,陶瓷管和 SnO2 敏感層、測量電極和加熱器構成的敏感元件固定在塑料或不銹鋼的腔體內,加熱器為氣敏元件的工作提供了必要的工作條件。傳
6、感器的標準回路有兩部分組成。其一為加熱回路,其二為信號輸出回路,它可以準確反映傳感器表面電阻值的變化。傳感器的表面電阻 RS 的變化,是通過與其串聯的負載電阻 RL 上的有效電壓信號 VRL 輸出面獲得的。負載電阻 RL 可調為 05-200K。加熱電壓 Uh 為 5v。上述這些參數使得傳感器輸出電壓為 0-5V。MQ3 型氣敏傳感器的結構和外形、標準回路、傳感器阻值變化率與酒精濃度、外界溫度的關系圖如圖 4 所示。為了使測量的精度達到最高,誤差最小,需要找到合適的溫度,一般在測量前需將傳感器預熱 5 分鐘。 圖圖2 2 MQ3MQ3 結構和外形結構和外形4A1F2A3B4F5B6RL1MQ-
7、3+5GNDRA2220RA1220GNDIN 圖圖3 3 MQ3MQ3 結構圖結構圖圖圖4 傳感器阻值變化率與酒精濃度、外界溫度之間的關系傳感器阻值變化率與酒精濃度、外界溫度之間的關系1.2 A/D 轉換電路在單片機應用系統中,被測量對象的有關變化量,如溫度、壓力、流量、速度等非電物理量,須經傳感器轉換成連續變化的模擬電信號(電壓或電流),這些模擬電信號必須轉換成數字量后才能在單片機中用軟件進行處理。實現模擬量轉換成數字量的器件稱為 A/D 轉換器(ADC)。A/D 轉換器大致分有三類:一是雙積分 A/D 轉換器,優點是精度高,抗干擾性好,價格便宜,但速度慢;二是逐次逼近型 A/D 轉換器,
8、精度、速度、價格適中;三是-A/D 轉換器。該設計中選用的是 ADC0809 屬第二類,是 8 位 A/D 轉換器。0809 具有 8 路模擬信號輸入端口,地址線(23-25 腳)可決定那一路模擬信號進行 A/D 轉換。22 腳為地址鎖存控制,當輸入為高電平時,對地址信號進行鎖存。6 腳為測試控制,當輸入一個2s 的高電平脈沖時,就開始 A/D 轉換。7 引腳為 A/D 轉換結束標志,當 A/D 轉換結束時,7 腳輸出高電平。9 腳為 A/D 轉換數據輸出允許端,當 OE 腳為高電平時,A/D 轉換數據輸出。10 腳為 0809 的時鐘輸入端。1.2.1 ADC0809 的引腳及功能逐次比較型
9、 A/D 轉換器在精度、速度、和價格上都適中,是最常用的 A/D 轉換器件。芯片采用的是 ADC0809,以下介紹 ADC0809 的引腳及功能。芯片如圖 5 所示。5 圖圖 5 5 ADC0809ADC0809 的引腳的引腳ADC0809 是一種逐次比較式 8 路模擬輸入、8 位數字量輸出的 A/D 轉換器。由圖可見,ADC0809 共有 28 個引腳,采用雙列直插式封裝。主要引腳功能如下: IN0-IN7 是 8 路模擬信號輸入端。 D0-D7 是 8 位數字量輸入端。 A、B、C 與 ALE 控制 8 路模擬通道的切換,A、B、C 分別與 3 根地址線或數據線相連,3 位編碼對應 8 個
10、通道地址端口。ADC0809 芯片有 28 條引腳,采用雙列直插式封裝,如圖所示。下面說明各引腳功能。IN0IN7:8 路模擬量輸入端。2-12-8:8 位數字量輸出端。ADDA、ADDB、ADDC:3 位地址輸入線,用于選通 8 路模擬輸入中的一路ALE:地址鎖存允許信號,輸入,高電平有效。START: A/D 轉換啟動脈沖輸入端,輸入一個正脈沖(至少 100ns 寬)使其啟動(脈沖上升沿使 0809 復位,下降沿啟動 A/D 轉換) 。EOC: A/D 轉換結束信號,輸出,當 A/D 轉換結束時,此端輸出一個高電平(轉換期間一直為低電平) 。OE:數據輸出允許信號,輸入,高電平有效。當 A
11、/D 轉換結束時,此端輸入一個高電平,才能打開輸出三態門,輸出數字量。CLK:時鐘脈沖輸入端。要求時鐘頻率不高于 640KHZ。REF(+) 、REF(-):基準電壓。Vcc:電源,單一+5V。GND:地。首先輸入 3 位地址,并使 ALE=1,將地址存入地址鎖存器中。此地址經譯碼選通 8路模擬輸入之一到比較器。START 上升沿將逐次逼近寄存器復位。下降沿啟動 A/D轉換,之后 EOC 輸出信號變低,指示轉換正在進行。直到 A/D 轉換完成,EOC 變為高電平,指示 A/D 轉換結束,結果數據已存入鎖存器,這個信號可用作中斷申請。當OE 輸入高電平 時,輸出三態門打開,轉換結果的數字量輸出到
12、數據總線上。轉換數據的傳送 A/D 轉換后得到的數據應及時傳送給單片機進行處理。數據傳送的關鍵問題是如何確認 A/D 轉換的完成,因為只有確認完成后,才能進行傳送。為此可采用下述三種方式。(1)定時傳送方式對于一種 A/D 轉換器來說,轉換時間作為一項技術指標是已知的和固定的。例如6ADC0809 轉換時間為 128s,相當于 6MHz 的 MCS-51 單片機共 64 個機器周期。可據此設計一個延時子程序,A/D 轉換啟動后即調用此子程序,延遲時間一到,轉換肯定已 經完成了,接著就可進行數據傳送。(2)查詢方式A/D 轉換芯片有表明轉換完成的狀態信號,例如 ADC0809 的 EOC 端。因
13、此可以用查詢方式,測試 EOC 的狀態,即可確認轉換是否完成,并接著進行數據傳送。(3)中斷方式把表明轉換完成的狀態信號(EOC)作為中斷請求信號,以中斷方式進行數據傳送。不管使用上述哪種方式,只要一旦確定轉換完成,即可通過指令進行數據傳送。首先送出口地址并以信號有效時,OE 信號即有效,把轉換數據送上數據總線,供單片機接受。需要注意的是:ADC0809 雖然有 8 路模擬通道可以同時輸入 8 路模擬信號,但每個瞬間只能換 1 路,共用一個 A/D 轉換器進行轉換,各路之間的切換由軟件改變C、A、B 引腳上的代碼來實現。地址鎖存與譯碼電路完成對 A、B、C 3 個地址位進行鎖存和譯碼,其譯碼輸
14、出用于通道選擇,其轉換結果通過三態輸出鎖存器存放、輸出,因此可以直接與系統數據總線相連,圖 6 為通道選擇表。圖圖 6 6 通道選擇表通道選擇表 OE、START、CLK 為控制信號端,OE 為輸出允許端,START 為啟動信號輸入端,CLK 為時鐘信號輸入端。 VR(+)和 VR(-)為參考電壓輸入端。1.2.2 ADC0809 的結構及轉換原理ADC0809 的結構框圖如圖 7。ADC0809 采用逐次比較的方法完成 A/D 轉換的,由單一的+5V 電源供電。片內有鎖存功能的 8 路選 1 的模擬開關,由 C、B、A 引腳的功能來決定所選的通道。0809 完成一次轉換需 100s 左右,輸
15、出具有 TTL 三態鎖存緩沖器,可直接連接到 MCS-51 的數據總線上。通過適當的外接電路,0809 可對 0-5V 的模擬信號進行轉換。7START CLKOEVR(+) VR()VCCGNDEOCD0.D7三態輸出鎖存器8 位A/D轉換器地址鎖存與密碼CBAALE8 路模擬量開關IN7.IN0圖圖 7 7 ADC0809ADC0809 的結構框圖的結構框圖1.2.3 ADC0809 連線圖ADC0809 與單片機的連線圖如圖 8:In31In53In64In75ST ART6EOC7D38OE9CLOCK10V cc11V ref+12GND13D114D215V ref-16D017D
16、418D519D721ALE22ADDC23ADDB24ADDA25In026In127In42D620In228ADC0809ADC1ADC0809+5GNDD0D1D2GNDD3D4D5D6D7STSTEOCOECLKIN圖圖 8 8 ADC0809ADC0809 的連線圖的連線圖1.3 89C51 單片機系統單片機是一種集成電路芯片,采用超大規模技術把具有數據處理能力(如算術運算,邏輯運算、數據傳送、中斷處理)的微處理器(CPU),隨機存取數據存儲器(RAM),只讀程序存儲器(ROM),輸入輸出電路(I/O 口),可能還包括定時計數器,串行通信口(SCI),顯示驅動電路(LCD 或 LE
17、D 驅動電路),脈寬調制電路(PWM),模擬多路轉換器及 A/D 轉換器等電路集成到一塊單塊芯片上,構成一個雖小然而完善的計算機系統。這些電路能在軟件的控制下準確、迅速、高效地完成程序設計者事先規定的任務。81.3.1 單片機片內結構51 單片機的片內結構如圖 9 所示。它把那些作為控制應用所必需的基本內容都集成在一個尺寸有限的集成電路芯片上。按功能劃分,它有如下功能部件組成: 微處理器(CPU) 。 數據存儲器(RAM)。 程序存儲器(ROM/EPROM) 。 4 個 8 位并行 I/O 口(P0 口、P1 口、P2 口、P3 口) 。 一個串行口。 2 個 16 位定時器、計數器。 2 個
18、 16 位定時器、計數器。 中斷系統。 特殊功能寄存器(SFR) 。PSEN88EOCXTAL1CPU(運算器)(控制器)數據存儲器RAMP0P2程序存儲器ROM/EPROMP1串行口定時器/計數器中斷系 統特殊功能寄存器(SFR)P3ALEEAIN7.I0XTAL288RESE T 圖圖 9 9 5151 單片機片內結構單片機片內結構上述功能部件都是通過片內單一總線連接而成,其基本結構依舊是 CPU 加上外圍芯片的傳統結構模式。但 CPU 對各種功能部件的控制是采用特殊功能寄存器的集中控制方式。從硬件角度來看,與 MCS-51 指令完全兼容的新一代 AT89CXX 系列機,比在片外加EPRO
19、M 才能相當的 8031 單片機抗干擾性能強,與 87C51 單片機技能相當,但功耗小。程序修改直接用+5V 或+12V 電源擦除,更顯方便、而且其工作電壓放寬至 2.7V-6V,因而受電壓波動的影響更小,而且 4K 的程序存儲器完全能滿足單片機系統的軟件要求,故 AT89C51 單片機是構造本檢測系統的更理想的選擇。1.3.2 89C51 芯片介紹9掌握 MCS-51 單片機,應首先了解 MCS-51 的引腳,熟悉并牢記各引腳的功能,MCS-51 系列中各種型號芯片的引腳是互相兼容的。制作工藝為 HMOS 的 MCS-51 的單片機都采用 40 只引腳的雙列直插封裝方式,如圖 10 所示。圖
20、圖 1010 AT89C51AT89C51 芯片管腳圖芯片管腳圖P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST(TXD) P3.1(INT0) P3.2(INT1) P3.3T0 P3.4T1 P3.5(WR) P3.6(RD) P3.7XTAL1XTAL2GNDVccP0.0 (AD0)P0.1 (AD1)P0.2 (AD2)P0.3 (AD3)P0.4 (AD4)P0.5 (AD5)P0.6 (AD6)P0.7 (AD7)EA/VPPPSENP2.7 (A15)P2.6 (A14)P2.5 (A13)P2.4 (A12)P2.3 (A11)P2.2 (A10)P2.
21、1 (A9)P2.0 (A8)PDIP (RXD) P3.0ALE/PROG40 只引腳按其功能來分,可分為如下 3 類: 電源及時鐘引腳:Vcc、Vss、XTAL1、XTAL2。電源引腳接入單片機的工作電源。Vcc 接+5V 電源,Vss 接地。時鐘引腳 XTAL1、XTAL2 外接晶體與片內的反相放大器構成了 1 個晶體振蕩器,它為單片機提供了時鐘控制信號。2 個時鐘引腳也可外接獨立的晶體振蕩器。XTAL1 接外部的一個引腳。該引腳內部是一個反相放大器的輸入端。這個反相放大器構成了片內振蕩器。如果采用外接晶體振蕩器時,此引腳接地。XTAL2 接外部晶體的另一端,在該引腳內部接至內部反相放大
22、器的輸出端。若采用外部時鐘振蕩器時,該引腳接受時鐘振蕩器的信號,即把此信號直接接到內部時鐘發生器的輸入端。 控制引腳:、ALE、RESET(RST)。此類引腳提供控制信號,有的還PSENEA具有復用功能。 RST/VPD引腳:RESET(RST)是復位信號輸入端,高電平有效。當單片機運行時,在此引腳加上持續時間大于 2 個機器周期(24 個振蕩周期)的高電平時,就可以完成復位操作。在單片機工作時,此引腳應為0.5V 低電平。VPD為本引腳的第二功能,即備用電源的輸入。當主電源發生故障,降低到某一規定值的低電平時,將+5V 電源自動接入 RST 端,為內部 RAM 提供備用電源,以保證片內 RA
23、M 的信息不丟失,從而使單片機在復位后能正常進行。 ALE/ 引腳:ALE 引腳輸出為地址鎖存允許信號,當單片機上電正常工作PROG10后 ALE 引腳不斷輸出正脈沖信號。當單片機訪問外部存儲器時,ALE 輸出信號的負跳沿用于單片機發出的低 8 位地址經外部鎖存器鎖存的鎖存控制信號。即使不訪問外部鎖存器,ALE 端仍有正脈沖信號輸出,此頻率為時鐘振蕩器頻率的 1/6。 為該引腳PROG的第二功能。在對片內 EPROM 型單片機編程寫入時,此引腳作為編程脈沖輸入端。 引腳:程序存儲器允許輸出控制端。在單片機訪問外部程序存儲器時,此PSEN引腳輸出脈沖負跳沿作為讀外部程序存儲器的選通信號。此引腳接
24、外部程序存儲器的OE(輸出允許端)。 /VPP引腳:功能為片內程序存儲器選擇控制端。當引腳為高電平時,EAEAEA單片機訪問片內程序存儲器,但在 PC 值超過 0FFFH 時,即超出片內程序存儲器的 4KB地址范圍時將自動轉向執行外部程序存儲器內的程序。當引腳為低時,單片機只訪EA問外部程序存儲器,不論是否有內部程序存儲器。 I/O 口引腳:P0、P1、P2、P3,為四個 8 位 I/O 口的外部引腳。P0 口、P1 口、P2 口、P3 口是 3 個 8 位準雙向的 I/O 口,各口線在片內均有固定的上拉電阻。當這 3個準雙向 I/O 口作輸入口使用時,要向該口先寫 1,另外準雙向口 I/O
25、口無高阻的“浮空”狀態。由于單片機具有體積小、質量輕、價格便宜、耗電少等突出特點,所以本系統采用 89C51 單片機,硬件設計電路圖如圖 1 所示。89C51 內部有 4KB 的 EPROM,128 字節的 RAM,所以一般都要根據所需存儲容量的大小來擴展 ROM 和 RAM。本電路接高電EA平,沒有擴展片外 ROM 和 RAM。 1.3.3 晶振電路和復位電路最小系統包括單片機及其所需的必要的電源、時鐘、復位等部件,能使單片機始終處于正常的運行狀態。電源、時鐘等電路是使單片機能運行的必備條件,可以將最小系統作為應用系統的核心部分,通過對其進行存儲器擴展、A/D 擴展等,使單片機完成較復雜的功
26、能。89C51 是片內有 ROM/EPROM 的單片機,因此,這種芯片構成的最小系統簡單可靠。用 89C51 單片機構成最小應用系統時,只要將單片機接上時鐘電路和復位電路即可,結構如圖 11 所示,由于集成度的限制,最小應用系統只能用作一些小型的控制單元。 圖圖 1111 單片機最小系統原理框圖單片機最小系統原理框圖(1) 時鐘電路89C51 單片機的時鐘信號通常有兩種方式產生:一是內部時鐘方式,二是外部時鐘方式。內部時鐘方式如圖 12 所示。在 89C51 單片機內部有一振蕩電路,只要在單片機的 XTAL1(18)和 XTAL2(19)引腳外接石英晶體(簡稱晶振),就構成了自激振蕩器并在單片
27、機內部產生時鐘脈沖信號。圖中電容 C1 和 C2 的作用是穩定頻率和快速起振,時鐘電路復位電路STC89C51 單片機I/O口11電容值在 530pF,典型值為 30pF。晶振 CYS 的振蕩頻率范圍在 1.212MHz 間選擇,典型值為 12MHz 和 6MHz。Y111.0592MHzC230pFC330pF1819 圖圖 1212 89C5189C51 內部時鐘電路內部時鐘電路(2) 復位電路當在 89C51 單片機的 RST 引腳引入高電平并保持 2 個機器周期時,單片機內部就執行復位操作(若該引腳持續保持高電平,單片機就處于循環復位狀態)。最簡單的上電自動復位電路中上電自動復位是通過
28、外部復位電路的電容充放電來實現的。只要 Vcc 的上升時間不超過 1ms,就可以實現自動上電復位。除了上電復位外,有時還需要按鍵手動復位。本設計就是用的按鍵手動復位。按鍵手動復位有電平方式和脈沖方式兩種。其中電平復位是通過 RST(9)端與電源 Vcc 接通而實現的。R110kC110uFS4VCC9 圖圖 1313 89C5189C51 復位電路復位電路(3)89C51 中斷技術概述中斷技術主要用于實時監測與控制,要求單片機能及時地響應中斷請求源提出的服務請求,并作出快速響應、及時處理。這是由片內的中斷系統來實現的。當中斷請求源發出中斷請求時,如果中斷請求被允許,單片機暫時中止當前正在執行的
29、主程序,轉到中斷服務處理程序處理中斷服務請求。中斷服務處理程序處理完中斷服務請求后,再回到原來被中止的程序之處(斷點) ,繼續執行被中斷的主程序。圖 14 為整個中斷響應和處理過程。 圖圖 1414 中斷響應和處理過程中斷響應和處理過程1.4 LED 顯示電路LED 數碼管(LED Segment Displays)是由多個發光二極管封裝在一起組成“8”字型的器件,引線已在內部連接完成,只需引出它們的各個筆劃,公共電極。數碼管分為動態顯示和靜態顯示驅動兩種, 靜態驅動也稱直流驅動。靜態驅動是指每個數碼管的每一個段碼都由一個 單片機的 I/O 端口進行驅動,或者使用如BCD 碼二-十進制譯碼器譯
30、碼進行驅動。靜態驅動的優點是編程簡單,顯示亮度高,缺點是占用 I/O 端口多,如驅動 5 個數碼管靜態顯示則需要 58=40 根 I/O 端口來驅動,要知道一個 STC89C52 的 I/O 端口才 32 個呢:) ,實際應用時必須增加譯碼12驅動器進行驅動,增加了硬件電路的復雜性。數碼管動態顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態驅動是將所有數碼管的8 個顯示筆劃a,b,c,d,e,f,g,dp的同名端連在一起,另外為每個數碼管的公共極COM 增加位選通控制電路,位選通由各自獨立的 I/O 線控制,當單片機輸出字形碼時,所有數碼管都接收到相同的字形碼,但究竟是那個數碼管會顯示出
31、字形,取決于單片機對位選通 COM 端電路的控制,所以我們只要將需要顯示的數碼管的選通控制打開,該位就顯示出字形,沒有選通的數碼管就不會亮。通過分時輪流控制各個數碼管的的COM 端,就使各個數碼管輪流受控顯示,這就是動態驅動。在輪流顯示過程中,每位數碼管的點亮時間為 12ms,由于人的視覺暫留現象及發光二極管的 余輝效應,盡管實際上各位數碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩定的顯示數據,不會有閃爍感,動態顯示的效果和靜態顯示是一樣的,能夠節省大量的 I/O 端口,而且功耗更低。本設計利用三極管驅動數碼管,用4.7k 電阻起到限流作用,使得數碼管亮度適中。數碼管顯示電路
32、如下abfcgdeV CC1234567abcdefg8dpdp9DS1REDCAabfcgdeV CC1234567abcdefg8dpdp9DS2REDCAabfcgdeV CC1234567abcdefg8dpdp9DS3REDCAabfcgdeV CC1234567abcdefg8dpdp9DS4REDCAD0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7Q1PNPQ2PNPQ3PNPQ4PNP+5R14.7kR24.7kR34.7kR44.7k圖圖 1515 數碼管顯示電路數碼管顯示電路1.5 鍵盤電路本設
33、計采用按鍵接低的方式來讀取按鍵,單片機初始時,因為為高電平,當按鍵按下的時候,會給單片機一個低電平,單片機對信號進行處理單片機鍵盤有獨立鍵盤和矩陣式鍵盤兩種:獨立鍵盤每一個 I/O 口上只接一個按鍵,按鍵的另一端接電源或接地(一般接地) ,這種接法程序比較簡單且系統更加穩定;而矩陣式鍵盤式接法程序比較復雜,但是占用的 I/O 少。根據本設計的需要這里選用了獨立式鍵盤接法。獨立式鍵盤的實現方法是利用單片機 I/O 口讀取口的電平高低來判斷是否有鍵按下。將常開按鍵的一端接地,另一端接一個 I/O 口,程序開始時將此 I/O 口置于高電平,平時無鍵按下時 I/O 口保護高電平。當有鍵按下時,此 I/
34、O 口與地短路迫使 I/O 13口為低電平。按鍵釋放后,單片機內部的上拉電阻使 I/O 口仍然保持高電平。我們所要做的就是在程序中查尋此 I/O 口的電平狀態就可以了解我們是否有按鍵動作了。 在用單片機對鍵盤處理的時候涉及到了一個重要的過程,那就是鍵盤的去抖動。這里說的抖動是機械的抖動,是當鍵盤在未按到按下的臨界區產生的電平不穩定正常現象,并不是我們在按鍵時通過注意可以避免的。這種抖動一般 10200 毫秒之間,這種不穩定電平的抖動時間對于人來說太快了,而對于時鐘是微秒的單片機而言則是慢長的。硬件去抖動就是用部分電路對抖動部分加之處理,軟件去抖動不是去掉抖動,而是避抖動部分的時間,等鍵盤穩定了
35、再對其處理。所以這里選擇了軟件去抖動,實現法是先查尋按鍵當有低電平出現時立即延時 10200 毫秒以避開抖動(經典值為 20毫秒) ,延時結束后再讀一次 I/O 口的值,這一次的值如果為 1 表示低電平的時間不到 10200 毫秒,視為干擾信號。當讀出的值是 0 時則表示有按鍵按下,調用相應的處理程序。硬件電路如圖 16 所示:S1SW SPSTS2SW SPSTS3SW SPSTGNDk1k2k3圖圖 1616 按鍵電路按鍵電路2 2、軟件設計、軟件設計2.1 原理圖如圖 18 所示:P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78REST9P3.0/RX D
36、10P3.1/T X D11P3.2/INT 012P3.3/INT 113P3.4/T 014P3.5/T 115P3.6/W R16P3.7/RD17X T AL218X T AL119GND20P2.021P2.122P2.223P2.324P2.425P2.526P2.728SPEN29ALE30EA31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039V CC40P2.627ST C89C52U1ST C89C52C130PC230P+ C310uf123456789J110KY112MHZGNDR110KGND+5In31In53In6
37、4In75ST ART6EOC7D38OE9CLOCK10V cc11V ref+12GND13D114D215V ref-16D017D418D519D721ALE22ADDC23ADDB24ADDA25In026In127In42D620In228ADC0809ADC1ADC0809+5GNDD0D1D2GNDD3D4D5D6D7STSTSTEOCEOCOEOECLKCLKD0D1D2D3D4D5D6D7INS1SW SPSTS2SW SPSTS3SW SPSTGNDk1k2k3A1F2A3B4F5B6RL1MQ-3+5GNDRA2220RA1220GNDIN+5k1k2k3abfcgde
38、V CC1234567abcdefg8dpdp9DS1REDCAabfcgdeV CC1234567abcdefg8dpdp9DS2REDCAabfcgdeV CC1234567abcdefg8dpdp9DS3REDCAabfcgdeV CC1234567abcdefg8dpdp9DS4REDCAD0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7Q1PNPQ2PNPQ3PNPQ4PNP+5R14.7kR24.7kR34.7kR44.7k+5321P1POW ER112233445566
39、S1+5GNDA1B2FBUZ Z ERQ5PNP+5GNDFR12.2kD2LEDD1LEDRL12.2KRL22.2K 圖圖 1717 原理圖原理圖五、程序設計五、程序設計141程序設計的基本思路主程序流程圖如下圖所示:圖圖 1818 主程序框圖主程序框圖2.數據采集子程序程序框圖A/D 轉換子程序流程圖如下圖 19 所示。ADC0809 初始化后,把 0 通道輸入的 0-5V的模擬信號轉換為對應的數字量,然后將對應數值存儲到內存單元。開始初始化讀取 AD 轉換酒精值判斷當前酒精范圍判斷按鍵是否按下執行相應的指示控制N設置相應參數顯示設置數值結束Y15圖圖1919 數據采集子程序框圖數據采
40、集子程序框圖3.程序代碼/程序頭函數#include /宏定義#define uint unsigned int #define uchar unsigned char#define Data_ADC0809 P1 /ADC0809sbit ST=P33;sbit EOC=P34;sbit OE=P32;/顯示數組0-9 - Fuchar Data_=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x71,0 x3f;sbit Wei1 = P27;sbit Wei2 = P26;sbit Wei3 = P25;sbi
41、t Wei4 = P24;/函數聲明extern uchar ADC0809();void Display(uchar X,uchar Data);void delay(uint t);/酒精含量變量uchar temp=0;開始啟動 ADC0809 通道,并延時 100s轉換完?讀出 A/D 轉換結果結果存入內存單元返回YN16/顯示模式uchar Mode=0;uchar p;void main() /主函數while(1)/正常模式if(Mode=0)/讀取 AD 值temp=ADC0809();for(p=0;p30;p+)Display(0,temp);/ADC0809 讀取信息uc
42、har ADC0809()uchar temp_=0 x00;/初始化高阻太OE=0;/轉化初始化ST=0;/開始轉換ST=1;ST=0;/外部中斷等待 AD 轉換結束while(EOC=0)/讀取轉換的 AD 值OE=1;temp_=Data_ADC0809;OE=0;return temp_;/延時void delay(uint t)uint i,j;for(i=0;it;i+)for(j=0;j10;j+);/顯示 X 表示狀態 Data 表示數據void Display(uchar X,uchar Data)Wei1=1;17Wei2=1;Wei3=1;Wei4=1;P0=0 xff;/正常模式if(X=0)P0=Data_11;/非正常elseP0=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;Wei
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 紗線生產過程中的設備維護與管理考核試卷
- 躺式旅行悠閑享受度假時光考核試卷
- 輕質高強泡沫塑料的研究與發展考核試卷
- 航天器空間碎片監測與預警系統考核試卷
- 通風電器具物聯網技術應用考核試卷
- 蔬菜加工企業品牌國際化戰略考核試卷
- 管道工程法律法規政策學習、運用與實施考核試卷
- 玻璃保溫容器耐壓性能研究考核試卷
- 甲狀腺患者的護理
- 智能停車項目投資建設與回報協議
- 2025年小升初語文第一次全真模擬試卷(1)(統編版+含答案解析)
- 06竣工財務決算審計工作底稿(試行)
- 工傷保險醫療費用智能審核系統建設
- 農作物品種(玉米)區域試驗技術規程
- 2022年江蘇省衛生系統事業單位招聘考試(護理學)參考題庫匯總(含答案)
- 造林工程模式典型設計圖文版
- WST 661-2020靜脈血液標本采集
- 乙型肝炎病毒表面抗原診斷試劑盒(酶聯免疫法)說明書
- 資料員崗位知識與專業技能ppt課件
- 校本教材毽球
- ASYMTEK S2900 快速操作手冊
評論
0/150
提交評論