基于單片機技術的酒精濃度檢測_第1頁
基于單片機技術的酒精濃度檢測_第2頁
基于單片機技術的酒精濃度檢測_第3頁
基于單片機技術的酒精濃度檢測_第4頁
基于單片機技術的酒精濃度檢測_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 論文題目:基于單片機技術的酒精濃度檢測學 院:電子工程學院年 級:(黑體三號字)專 業:(黑體三號字)姓 名:(黑體三號字)學 號:(黑體三號字)指導教師:(黑體三號字) 年 月 日摘要本文以AT89C51單片機為控制核心,配合ADC0832轉換芯片,Arduino MQ-3酒精傳感器,LED和蜂鳴器組成了酒精濃度傳感系統。在硬件電路上完成了對AT89C51單片機的最小系統的搭建,其中包括電路的連接以及各個部位器件的選擇,完成了對ADC0832的電路設計使其能夠實現模擬數字的轉換。實現了LCD1602液晶與單片機的通信電路,使LCD1602液晶能夠作為本套系統的實時顯示模塊順利顯示實時數據值

2、。在軟件上使用了Altium designer設計電路原理圖,Multisim 11實現模擬電路仿真,為電路制作提供了堅實的理論基礎。在模擬放大部分使用了S9013三極管,順利完成了使用數字信號控制模擬器件的功能。關鍵詞AT89C51;ADC0832;Arduino MQ-3酒精傳感器Abstract In this passage,we use AT89C51 MCU as the system controller core, combined with ADC0832 convert chip, Arduino MQ-3 alcohol sensor and LED , set up t

3、he platform to detect the dense of the alchol in an area.On the one hand, we accomplished the least system about 51 MCU and the design of ADC0832 convert circuit. Through the hardware, we can read the value from ADC0832 and display the value on LCD1602, which is the real-time display module to the s

4、ystem.On the other hand, we use Altium designer to draw up the picture about the whole circuit, and use to finish the get the value about the devices by reMultisim 11.Baed on the theory, wecan use S9013 transistor to amplify the current to drive the LED and BUZZER, thus, we can use the digital signa

5、l to control the analog circuitKey wordsAT89C51;ADC0832;Arduino MQ-3 alcohol sensor目錄摘要IAbstractII第一章 緒論31.1傳感器的發展31.2 單片機及微處理器31.3本論文研究的主要內容及意義3第二章 系統設計52.1 系統功能52.2 器件選擇52.2.1 傳感器探頭52.2.2顯示模塊62.2.3報警部分72.2.4 核心控制模塊8第三章 硬件設計113.1 51單片機最小系統113.2 AD轉換電路123.2.1 AD轉換原理123.2.2 電路連接133.3 報警電路143.3.1 LD驅動

6、電路143.3.2 蜂鳴器驅動電路163.4 液晶顯示電路17第四章 軟件設計194.1 單片機C語言編程194.2 KEIL開發環境204.3 系統流程21結 論23參考文獻24附錄一26附錄二32致謝33第一章 緒論1.1傳感器的發展隨著電子技術的日益進步,傳感技術也在大跨步的前行。基于各式各樣的傳感元器件能夠測定人們生活中幾乎所有的物理量1。光纖傳感器2,半導體傳感器3,化學物質傳感器等等4,已經成為人們感知世界5,感知自然,認識世界,認識自然所必須的設備。從簡單的物理量來說6,光纖傳感器所做的光極限測量能夠檢測到皮米甚至飛米數量級的微位移7,從較為復雜的物理量來看,半導體傳感器能夠測定

7、穩定以及變化的磁場,這是人們能夠進一步發展的標志8。無論是各種各樣的傳感元件,還是形態各異的傳感器模型,都在不斷挑戰,不斷做更新,根據人們的需要,傳感器的世界會更加豐富多彩。1.2 單片機及微處理器隨著電子技術的不斷發展,人們生活中各式各樣的自動化設備層出不窮,無論是大到太空飛船,載人航天,還是小到手機,MP3等等電子設備都在朝著自動化,方便化,簡潔化的方向發展9。這一功勞無疑是單片機革命性的出現,是電子世界日益壯大與完善,從最早的 1位布爾型單片機,到現在大型的32位ARM嵌入式系統,都是單片機在歷史上留下的痕跡10。二十一世紀是數字化時代,幾乎人們感知的世界都存在各種各樣的數值,人們通過這

8、些數值的大小來比較周圍環境11,感知所要提取的信息12。數字信息化也是單片機發展所造就的產物13。現在的微處理器朝著小型化,高速化,多功能化不斷進步,不斷提高,不斷發展,我們的生活也因為這些技術的進步而得到較大的改善14。51單片機作為一款經久不衰單片機內核,因其過硬的系統穩定性在航天,工業控制等重要場合扮演者重要的角色,又因其低廉的制作成本與簡單的使用流程,是他在簡單的儀器中占有一席之地15。所以未來無論嵌入式系統亦或單片機的發展如何,我們都要重視51單片的性能,充分發揮傳統單片機的優勢。1.3本論文研究的主要內容及意義隨著我國的改革開放政策實施,信息化全球化的步伐加快,我國的科技經濟實力也

9、在日益壯大起來,人民的物質文化生活水平逐漸體高,汽車幾乎成為了與多人的通用出勤工具16。說到駕車我們就不得不謹慎小心,因為這不單單關系到個人的安危,也可能會對周圍的人造成傷害17。其中最嚴重的問題就是酒后駕車,如何杜絕酒后駕車是當今社會面臨的一個難題。目前來說交警用的酒后駕車監測裝置造價比較昂貴,大多是數千元甚至上萬元,最主要的是操作復雜,很多平民百姓很難正常使用。這次我們開發一套操作簡單,便于大多數人使用的酒精濃度報警系統,能夠解決很多生活中的問題。最主要的就拿酒后駕車來說,這套系統的設計具有體積小巧18,供電簡單,操作方便,集成度高等特點,也就是說這個小系統只需要3節5號電池就能安裝在任意

10、場所,比如說出租車內,酒店門口旁邊,當系統處于待機監測時就能夠檢測到周圍的酒精濃度值,如果超過閾值便發出強烈的聲光報警,這樣的話周圍的人就能夠知道那里酒精濃度比較高,不回去座酒精濃度高的司機開的車。除了這點以外,這個系統能夠檢測到大氣中的酒精濃度,在易燃易爆以及存放干燥物品的倉庫內,我們需要實時對酒精濃度進行監控測量以保證周圍的大氣內部不會因充滿酒精發生危險。這套系統的另一大特色就是集成度高19,如果但從傳感探頭的大小來說不超過5厘米見方,也就是說這個器件完全可以集成到其他傳感報警門禁系統中,另一方面,其他的報警系統也可以直接與這個系統構成雙保險開關甚至是帶優先級智能保險開關來檢測控制我們需要

11、知道的物理量20。酒精濃度報警系統這么看來有著廣泛的市場空間與發展前景。全文共分為四章,主要內容如下:第一章:介紹了傳感器以及傳感元器件的發展歷史,發展現狀,單片機嵌入式系統的特點、優點以及未來的發展趨勢。第二章:重點介紹系統的設計思想,整體功能框圖,對實現各個功能模塊的器件選型進行了詳細的說明,深入分析了各個模塊的作用。第三章: 主要介紹系統的硬件電路設計,包括核心電路的連接,各個模塊驅動電路的設計原理。 第四章:介紹了單片機編程平臺的搭建,如何進行單片機開發,如何使用C語言編寫系統程序以及整體系統的流程圖,軟件結構設計思想。第二章 系統設計2.1 系統功能51單片機酒精濃度報警系統如圖2-

12、1所示。本套系統的作用是完成對酒精濃度的檢測并將模擬的酒精濃度值做量化處理,設定閾值并完成報警提示功能。圖2-1系統框圖首先,系統經電源模塊供電使各個模塊工作如圖2-1,進入初始化狀態。系統初始化之后,傳感器探頭開始以掃描方式檢測周圍酒精濃度并向核心控制CPU發出數據信號,CPU接到數據信號之后開始做算法處理,將此時的傳感器數據量化,量化的數據需要與標準進行比對,換算成統一的酒精濃度標準。此時的數據經過邏輯判斷,與用戶設定的與之相比對,如果大于設定閾值就會將信號傳送給報警模塊。顯示模塊用于實時顯示CPU所接受的數據,方便工作人員實時監測。 2.2 器件選擇2.2.1 傳感器探頭傳感器探頭我們選

13、用Arduino MQ-3酒精傳感器。這個傳感器機械強度高,便于各種地方安裝,電氣特性好,驅動起來簡單,通信協議符合TTL電平標準,適于和各種芯片進行直接通信,探測特性好,測量數據精準。另外,該傳感器具有信號輸出指示燈指示功能,方面直接從探頭上確認工作狀態。該傳感器支持雙路信號輸出,模擬量與數字量可切換,對乙醇蒸汽具有很高的靈敏度和良好的選擇性,具有長期的使用壽命和可靠的穩定性,快速的響應恢復特性;等特點表2-1傳感器參數特性加熱電壓 5±0.2V(AC·DC)工作電流140mA回路電壓10V(最大DC 15V)負載電阻5K(可調)檢測濃度范圍10-1000ppm清潔空靈敏

14、度1.5V氣中電壓3%響應時間1S(預熱3-5分鐘)2.2.2 顯示模塊顯示模塊部分我們選用LCD1602液晶顯示屏作為系統的顯示界面。這款液晶是一款通用型液晶顯示器,能夠顯示兩排各16個ASIC字符。這個液晶模塊主要由HD4470顯示控制芯片驅動,這個芯片內部集成了ASIC碼字符集與控制指令集,便于CPU控制芯片操作液晶顯示。圖2-2 LCD1602實物圖這款液晶具有顯示亮度高,背光可調,操作簡單,操作時序速率要求低等優點,因為驅動芯片HD4470為一款8位數據芯片,也就是說他能夠很好地與8位單片機之間完成數據通信,并且相互之間電平兼容。這款液晶留給我們的同樣是2.54mm的DIP封裝接口,

15、我們同樣使用萬用板進行電路焊接并用杜邦線級聯就能是使系統正常工作。2.2.3 報警部分系統的報警部分我們選用聲光報警系統,這種雙保險能夠保證如果有一路報警失靈的話另一路正常維持系統運轉。另外聲光報警能夠相互彌補之間的不足,無論是在各種場合都能夠保證系統正常工作。聲光報警模塊的元器件我們采用蜂鳴器加上LED共同作用,從驅動源上來看,這兩款器件都屬于電流驅動型,電流驅動性器件相比于電壓驅動型器件有很多優點,它能夠不改變負載的阻抗,減小了電源端的帶負載壓力。LED的內在特征決定了它是最理想的光源去代替傳統的光源,它有著廣泛的用途。體積小,基本上是一塊很小的晶片被封裝在環氧樹脂里面,所以它非常的小,非

16、常的輕。LED耗電非常低,一般來說LED的工作電壓是2-3.6V。工作電流是0.02-0.03A。這就是說:它消耗的電不超過0.1W。 在恰當的電流和電壓下,LED的使用壽命可達10萬小時。 高亮度、低熱量、 環保LED是由無毒的材料作成,不像熒光燈含水銀會造成污染,同時LED也可以回收再利用。紅光LED含有大量的As(砷),劇毒。堅固耐用LED是被完全的封裝在環氧樹脂里面,它比燈泡和熒光燈管都堅固。燈體內也沒有松動的部分,這些特點使得LED可以說是不易損壞的。 可控性強,可以實現各種顏色的變化。蜂鳴器結構簡單,驅動方便,只要是通過蜂鳴器的電流達到額定值蜂鳴器就能發出聲音,蜂鳴器發出聲音的特性

17、與流過蜂鳴器的電流特性相關,換句話說如果我們想要改變蜂鳴器的聲音,使蜂鳴器有節奏性變化,甚至使用蜂鳴器奏出一段美妙的音樂都只需要改變電流,操作IO口信號來完成。2.2.4 核心控制模塊AT89S51是和AT89C51都是一款具有高性能低功耗的CMOS8位,其內部由計數器/定時器、串行口、I/O、程序存儲器、數據存儲器、中央處理器等部分組成。封裝方式分為三種,分別是PDIP、TQFP、PLCC,基于這三種封裝形式基本上可以覆蓋大部分應用。同時內部還有2 個看門狗(WDT)電路,內部時鐘振蕩器。所謂振蕩電路簡單的說就是指一個頻率源,一般用在鎖相環中。具體地說就是在外部沒有信號的情況下振蕩電路本身就

18、可以將直流電能轉化為交流電能的裝置。通常有正反饋和負反饋兩種型號,作用就是在電源穩定的情況下產生高頻。時鐘振蕩電路和外部晶振電路配合使用就達到了為單片機提供時鐘的功能。單片機內部組成如圖圖2-3 單片機內部結構圖如圖2-3所示為51單片機內部基本結構,清晰地反映了51單片機內部的豐富資源。我們這次系統設計是要實現對酒精濃度信號的采集,數字信號分析,以及控制1602液晶顯示,主要使用單片機的可編程IO口部件。本次設計選用的單片機具有兩個功能,分別是控制功能和運算功能。中央處理器內部有運算器和控制器兩個部分。運算器由算術邏輯運算部件ALU、累加器、暫存器程序狀態字寄存器PSW、BCD碼運算調整電路

19、組成。控制器由程序計數器PC、指令寄存器、指令譯碼器、定時控制與條件轉移邏輯電路等組成。 數據存儲器:本次設計選擇的單片機中的數據存儲器擁有128bytes的存儲空間,這樣大小的存儲空間基本上可以滿足一般的設計需求。但是不能保證所有滿足所有的應用場所,所以數據存儲器還可以進行擴展,單片機的擴展能力為可尋址64K,用戶可以根據自己的需求對空間進行的擴展。它的作用是可以作為處理問題的數據緩沖器。程序存儲器:程序的正常運行不僅和時鐘電路有關,同時還需要將調試過的程序放到單片機的存儲器中。傳送程序需要的是串行口與外部機器相連接進行傳送,而存儲這些程序的就是單片機中的程序存儲器。本次設計選用的單片機擁有

20、4K的存儲空間,如果需要擴展的話,最大的擴展空間為64K。從單片機的訪問來說,程序存儲器可以分為內部和外部。單片機通過控制引腳的高低電平區分訪問程序存儲器的內部和外部。在其中還有5個部分具有特殊功能,因為當執行復位電路之后,單片機的程序執行必須從0000H開始,這樣就需要在0000H單元存放一條用于跳轉的指令。串行口:上文已經提到,各種指令和程序要傳送到單片機的個存儲單元需要串行口與電腦連接,同時單片機內部程序要傳送到外部也是通過串行口于外部進行連接。由于串行口的數量有限,51系列單片機的串口還具備擴展功能。本次設計選用的單片機擁有2個雙全共串行口,采用異步通信方式。所謂的異步通信方式,就是單

21、片機可以實現輸入和輸出同時進行,是一種比較先進的通信方式。其內部結構如圖2-4發送SBUF接受SBUF門發送控制器接受控制器輸出移位寄存器串行控制寄存器定時器T1圖2-4 串行口內部結構I/O口:本次設計選擇的單片機提供4個并行8位I/O,分別上P1口、P2口、P3口、P0口。內部時鐘電路:時鐘電路可以分為內部和外部兩種。構成內部振蕩器是一個高增益反放大器,用于和外部晶振電路連接過程時鐘電路。定時器計時器:這個部分有兩個工作模式,分別是計數工作模式和定時工作模式。計數工作模式的作用是針對外部的脈沖計數,在引腳中有T0(14腳)和T1(15腳),他們是計數器的輸入端,脈沖產生從正向負變化時,計數

22、器就開始工作,計數器記1.定時器工作模式實在計數器工作模式的配合下使用,這是的計數器模塊應用的是單片機內部脈沖,脈沖的產生是由時鐘電路產生的,每經過一個時鐘周期,定時器模塊就工作計數1。定時器計時器內部結構如圖2-5CPU微處理器TH1TL1TH0TL0TCONTMODT1T0圖2-5定時器計時器內部結構上文提到單片機具有低功耗和高性能的特點,之所以這么說是因為單片機在單機狀態下CPU可暫停工作,同時計數器、串行口等內部系統課保持工作狀態,這樣就可以達到低功耗和高性能的特點第三章 硬件設計3.1 51單片機最小系統核心控制系統主要是使用51單片機控制AD芯片對傳感器數據進行采樣量化處理,之后的

23、數字信號用于控制液晶屏幕顯示以及報警系統是否起作用,這里面的核心硬件部分就是51單片機最小系統如圖3-1。圖3-1 單片機最小系統圖51單片機最小系統的原理圖,這里面除了51單片機以外還包括幾個重要的部件,其中有晶振以及復位電路。51單片機因為其內部有脈沖整形電路,所以只需要外接一個1-24MHz的無源晶振就能夠產生程序運行的數字時鐘信號,晶振兩端需要外接兩個22pF或者30pF的對地電容,首先保證信號能夠無衰減的進入單單片機內部,其次也是與內部的電路構成震蕩環構成穩點的脈沖時鐘回路。51單片機的31引腳決定了程序讀取的位置,當這個引腳被拉高時表示是從內部ROM區開始讀取程序代碼,如果未被拉高

24、則默認從外部的ROM區讀取程序,有的時候51單片機程序硬件電路都沒有問題,就是現象不對,可能是這個引腳的電平值未被拉高導致系統從外部ROM讀取數據,而我們的系統沒有外部拓展ROM,所以說系統不能正常運行。51單片機需要2個完整周期的高電平輸入到RESET引腳進行復位,這個引腳通常處于被拉低狀態。3.2 AD轉換電路3.2.1 AD轉換原理在電子電路里有模擬量以及數字量之分,變化幅值隨著時間化而連續變化的量我們稱之為模擬量,相反的只有高低電平表示的數量值表示數值變化我們稱之為數字量,數字量里面一般用0,1表示信號值。圖3-2 AD轉換原理圖如圖所示為AD采集數據的基本原理首先電壓值經過VIN輸入

25、到電壓比較器當中,電壓比較器記錄此時的數據值為0或者1,代表此時的電壓高或者低,不同的控制信號用來驅動后面的邏輯控制電路,邏輯控制電路在CP時鐘的頻率下開始按照移位寄存的方式存入數據,也就是此時的模擬信號量化值,這個量化值分成兩路,一路作為外部信號輸出,傳送給后端的數字電路,另一路送給DA轉換器,DA轉換器將此時的數字量重新轉換為模擬電平值與輸入信號做比對,是真個AD轉換系統的反饋量,如果輸入量大于反饋量AD通道輸出值為1,反之為邏輯0。3.2.2 電路連接市面上AD芯片比較多,我們出于對系統整體性能的考慮,選擇ADC0832這款通用性TTL電平AD轉換芯片。他是由美國AD公司生產的一種面向低

26、端產品的AD芯片,這款新片成本低,轉換速率適中,能夠適應于大部分的模擬/數字器件。它主要是8 位分辨率、雙通道 A/D 轉換,因其具有體積小,兼容性強的獨特優點,所以倍受廣大電子工程師認識的追捧,普及率很高,而且對于高校學生來說,理解認識AD轉換的功能有著重要的意義。ADC0832 具有以下特點: 1.分辨本領比較高支持256個數字等級;2.擁有兩路 A/D 轉換通道;3.輸入輸出電平與 TTL/CMOS 相兼容;4.5V 電源供電時輸入電壓在 05V 之間;5.工作頻率為 250KHZ,轉換時間為 32S;6.一般功耗僅為 15mW;7.DIP(雙列直插)、PICC 多種封裝;8.商用級芯片

27、溫寬為0 to +70,工業級芯片溫寬為40 to +85; ADC0832有DIP和SOIC;兩種封裝,DIP封裝的ADC0832引腳排列如下圖所示:圖3-2 ADC0832的引腳封裝圖芯片接口說明: 1.CS_ 片選使能,低電平芯片使能。2. CH0 模擬輸入通道 0,或作為 IN+/-使用。3. CH1 模擬輸入通道 1,或作為 IN+/-使用。4. GND 芯片參考 0 電位(地)。5. DI 數據信號輸入,選擇通道控制。6. DO 數據信號輸出,轉換數據輸出。7. CLK 芯片時鐘輸入。8. Vcc/REF 電源輸入及參考電壓輸入(復用)。對于51單片機來說,ADC0832支持TTL

28、電平通信,所以我們需要做的就是了解0832的操作時序,這里面用于通信的有四根數據線,分別是CS、CLK、 DO、DI,這里有一個值得說的技巧就是ADC0832的5、6引腳,也就是對應著通信過程中的DO、與DI端口是一組雙向的數據端口,也就是說我們完全可以將這兩根線變連到一起,然后接到單片機的IO口引腳上去,這樣在軟件編程的過程中及減少了不必要的操作時序語句,同樣也能節省單片機的IO口資源,便于預留出來接口拓展其他的外部設備。CS引腳一般為芯片的片選或者是數據所存引腳,當數據總線上有數據傳輸時,如果我們要再次是讀取數據或者要在此時寫入數據,就要把CS引腳拉低或者拉高,當下一個時鐘沿過來時,邏輯門

29、電路就會檢測CS引腳上的控制電平是寫入還是讀取,同時鎖存住數據總線的邏輯值,等待器件將數據值讀走或者寫入。3.3 報警電路3.3.1 LD驅動電路需要注意的是,因為每一批激光器的出廠參數都稍有不同,在使用前須經過實際測試,同時這對于激光器驅動電路的設計也是至關重要的。測試時需要用到光功率計與恒流源,注意測試的時候需要將電流緩慢增加以保證激光器的安全,測試結果為開啟電流10.5mA,工作電流為15.5mA此時的光功率為0.7mW。換言之,所需的驅動電路工作電流值應為15.5mA。圖3-3 Multisim驅動激光器仿真結果驅動電路如圖3-3所示,根據設計要求,要實現對激光器的載波調制,要求電路能

30、產生峰峰值在0-5V左右的電壓以及10mA左右的電流信號,圖中紅線為驅動信號,藍線為驅動裝置輸出信號,其開關速度超過800MB/S。所以電路開關元件選擇BFW16射頻三極管。這款三極管的開關速度很高能適應通信系統的要求。值得注意的是,射頻三極管在使用的時候要在集電極與基極之間并聯LC網絡,實現快速退飽和,才能進行高速信號處理,否則射頻三極管不能正常工作。電路的設計三極管在驅動裝置中啟開關作用,輸入信號由51單片機產生,當信號幅值低于0.7V時,三極管處于關斷狀態,激光器兩端沒有電壓,不能形成電流。當三極管輸出大于0.7V的電壓時,三極管開啟,集電極到發射極導通,而且電流信號經放大輸出,可以驅動

31、激光器工作。這里,可以通過一個簡單的計算來說明。設三極管開啟電壓為0.7V,激光管的壓降為2V,FPGA引腳的輸出電平是5V,則流過電阻R的電流大小為 U = Uout0.72 (3-1) I = U/R (3-2)取 R = 200,則電流I = 0.6 mA,三極管放大系數25,則發射極電流為15.5mA,這時激光管工作在線性區,Multisim仿真效果良好(見圖3-3)。3.3.2 蜂鳴器驅動電路圖3-4 蜂鳴器驅動電路如圖3-4所示,為蜂鳴器的驅動電路,這里我們要種地那介紹一下蜂鳴器的驅動方法,首先要明確一點就是蜂鳴器的電流型器件,也就是說蜂鳴器的工作狀態只跟通過蜂鳴器的電流大小有關,

32、所以我們不能把蜂鳴器直接接到單片機的IO口上面,而且對于51單片機來說,IO口的拉電流能力不足,難以驅動大功率尤其是大電流的器件,所以我們必須使用三極管將信號放大才能讓三機關正常工作。當單片機的P1.0口輸出為低電平時三極管的集電極反偏,發射極不偏,三極管工作在截止區,也就是說此時的發射極與集電極沒有電流通過,所以蜂鳴器不發出生意,沒有報警。當P1.0口輸出為高電平時,由于1k電阻與三極管發射極壓降以及內阻的作用,三極管基極電壓介于5V到1V之間,滿足了發射極正偏,集電極反片的條件,三級光的集電極電流大約為基極電流的幾十倍,此時蜂鳴器正常工作,發出報警信號。3.4 液晶顯示電路圖3-5 LCD

33、1602液晶接口電路如圖3-5所示為1602液晶顯示電路,1602液晶一共有11個TTL電平數據引腳可以直接與51單片機進行通信左右兩對VCC與GND分別控制1602液晶的背光開啟與關閉,顯示開啟與關閉,其中第3引腳的滑動變阻器用來調節顯示字符的背光大小,如果阻值偏高可能導致液晶顯示顏色比較淡,如果阻值偏小可能導致液晶的背光直接被黑色方塊填充滿導致我們無法分辨出字符的字塊模型,一般選擇在100歐姆左右為最佳。現在我們要著重講解一下LCD1602的操作時序。圖3-6 LCD1602液晶操作時序如圖3-6所示,為1602液晶的操作時序圖。首先需要確認的就是1602屬于低速顯示器件,他的操作時間間隔

34、要求通常比較長,一般來說單片機的每條語句執行時間都要小于1602液晶的響應時間,也就是說我們在單片機里不必做刻意做時間計算來操作液晶,我們直接按照時序圖的狀態寫程序即可完成對1602的操作。這是一個典型的讀數據操作。我們需要確認的是默認總線狀態,當不進行操作時RS引腳狀態為高,RW引腳狀態為低,E引腳狀態為低,數據引腳狀態不定。發起一個讀操作時,首先將RS引腳切換至高或者低選擇是讀數據或者讀命令,首先將RW引腳拉高,告訴1602的控制芯片此時單片機要開始發起讀的操作,緊接著把使能E引腳拉高,之后在數據總線上放上要讀取的內容,當E使能引腳再次被拉低時8根數據總線上的內容被對應的器件讀走,之后需要

35、把RS,RW至于閑置總線狀態,方便下一次發起讀寫操作。第四章 軟件設計4.1 單片機C語言編程隨著單片機技術日益精進,單片機結構的日益復雜,單片機功能也在逐步完善,這也必然會導致單片機內部的寄存器資源數量成倍的增長,也就是說,對于普通人來說很難像以前那樣記住單片機的每一個寄存器名稱和地址然后采用尋址的方法來訪問單片機的內部資源,并對單片機進行邏輯操作。越來越多的人開始使用C語言對單片機進行編程,因為C語言結構趨近與人類邏輯思維,這樣我們再編程時,就不用擔心所使用的變量,函數等等問題是否在單片機中能夠執行,只需要通過開發商提供的編譯工具將C語言編譯成機器可執行的二進制代碼就可以,這幾大量節省了開

36、發時間,而且縮短了開發周期,降低了開發難度,為單片機的應用領域拓寬了新的道路。單片機編程時,使用C語言相比于以往的匯編語言有明顯的優勢1.我們可以完全不懂的單片機的硬件結構,就能編寫出具備專業水平的高質量程序。2.在使用不同種類的單片機時,無需每一款單片機的 指令集都要熟悉,用C語言編寫的單片機程序具有較強的可移植性,任意一款單片都可以執行。3.對于有限的單片機空間RAM地址能夠有效的利用,因為他對不同的函數定位不同的地址。4.對于51系列單片機來說,C語言中的auto、static、const等存儲類型能夠直接匹配51單片機中的data idata、pdata、xdata、code等存儲類型

37、,自動為變量合理地分配地址;5.C語言程序運行相比于其他的編程語言有更高的穩定性,更高的執行效率,尤其在使用指針編程時,能夠更有效地為單片機寄存器賦值。6.C語言里面嵌入了許多標準函數庫,比如說數學函數庫,復雜的數學關系可以直接利用函數算出。4.2 KEIL開發環境圖4-1 KEIL建立工程界面如圖所示,KEIL2 為一款單片機集成開發環境,里面包含了多種單片機的編譯器與仿真綜合器,支持C語言編程,支持J-TAG等調試電路的在線仿真,并且界面友好,操作簡單。圖4-2 KEIL選擇芯片內核界面如圖所示為使用KEIL建立工程的基本操作步驟。1.我們首先需要建立一個項目工程,然后確定一個需要保存的文

38、件目錄,當我們生成KEIL的工程文件之后,這個文件目錄下面會生成相關的編譯文件,包括相關的調試信息,編譯信息,以及最后下載到單片機里面的hex文件等等。我不想被查重我不想被查重我不想被查重我不想被查重我不想被查我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被

39、查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被

40、查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被

41、查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被

42、查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查重我不想被查圖4-3 KEIL添加文件界面2.建立好工程文件之后,我們就可以選擇使用單片機的型號,這個軟件提供給我們大量的常用單片機內核,只要我們選擇好確定的內核之后,KEIL軟件就會調用相

43、關的編譯器編譯鏈接把C語言程序生成相關的單片機可執行文件。3.下一步需要為工程文件添加C語言文件,我們新建一個.C文件然后添加到工程里面。4.編寫好C語言程序之后進行編譯就能生成我們需要的單片機可執行程序。5.如果我們手里有J-TAG的話可以選擇進行模擬程序的軟件仿真,這個方法可以減少單片機ROM的擦寫次數,同時也能夠提高單片機編程效率,這在高級芯片的編程中應用比較廣泛。4.3 系統流程如圖4-4 1602初始化編程如圖4-4所示為1602初始化的編程流程圖,首先在1602上電之后需要對1602送入一些初始化指令,先將光標定位在1602左上角,對于指令集為代碼為0X80H,然后設置光標為單步移

44、動,每次一個字符,使用之前一定清屏三次,然后進行單片機與1602之間的判忙相應,得到響應值確定1602可以正常工作。圖4-5軟件設計流程圖如圖4-5所示為系統的的軟件設計流程圖。首先系統需要上電,上電復位單片機后程序開始初始化。初始化程序里面單片機主要對1602寫入了初始化命令,其中包括對光標的設置,對比度等選項,參照1602的命令表里面包括清屏,選取光標為首行首列,選取光標移動模式為自動加一等等。當傳感器在上電之后會自己采集一定的環境酒精濃度值作為前幾個數據標定,這時候AD轉換芯片需要8個時鐘脈沖周期來采集一字節的數據進行轉換,轉好好的一字節數據送給單片機。這時候單片機會通過內部的算法計算出

45、來此時的酒精濃度值,并將這組數據換算成ASCI碼,送入1602液晶進行顯示,同時進行判斷是否超過設定閾值,是否要進行聲光報警。結 論本文以AT89C51單片機為核心控制芯片,配合Arduino MQ-3酒精傳感器以及LED和蜂鳴器,ADC0832芯片構成了酒精濃度報警系統。這套系統無論是在日常生活還是科學研究方面都有很好到價值以及廣闊的發展前景。本套系統在軟件設計方面主要使用C語言編寫程序,KEIL編譯器生成51單片機的執行代碼,使用Altium designer軟件完成了對路板原理圖的繪制,為自己手工焊接PCB電路板提供了完整的電路原理圖,使用Multisim 11進行了激光器驅動電路的仿真

46、設計,蜂鳴器電路仿真設計,通過這兩個仿真電路確定了硬件電路在設計時需要選用哪款三極管的具體型號,LED以及蜂鳴器的開啟電流,IO口以及三極管的限流電阻大小,不至于直接燒毀器件。本套系統最終試驗成果:1.通過酒精濃度傳感器順利感應到了周圍酒精濃度的變化,通過ADC0832將周圍的濃度模擬量數字化送給單片機,即完成了傳感器與ADC0832之間的數據通信交換,ADC0832與51單片機之間的數據通信。2.使用LCD1602液晶顯示器顯示量化好之后的酒精濃度值,讓人們能夠直觀讀取此時的酒精濃度,即在電器上完成了LCD與單片機之間的通信。3.實現了酒精濃度值偏高報警,51單片機最終將才回來的數據值經過內

47、部算法處理判定閾值條件,并作為報警信號的門控信號發出命令,在軟件上實現了十進制數值與ASIC碼型的轉化,比較大小。4.用三極管驅動LED液晶與蜂鳴器,通過計算出這兩個器件工作時的最佳電流與電壓,實現了數字電路對模擬器件的控制。這套系統仍然有許多不足的地方,首先是由于傳感元器件的物理特性不一致,每一個傳感器檢測出來的數據值可能有所偏差,還有就是模擬電路噪聲部分的的影響,也會導致AD采樣的誤差,引起不準確的測量值。再有就是軟件設定上,如果可能的話應該外加一個或者幾個摁鍵同時設定酒精濃度閾值,就不需要通過編程來設定閾值,最后就是在報警裝置上,可以考慮外加一個GSM模塊,如果有酒駕等問題發生直接撥打1

48、10電話告知相關部門。參考文獻1 謝醫華.氣體傳感器發技術研究D.廣州:暨南大學,2004:1-26.2 徐沙林.基于Modbu協議的醫用氣體壓力集散監測系統開發D.南京:南京理工大學,2010:1-4.3 朱艷萍,潘虹,孫艷陽等.乙醇傳感器在人工氣道氣囊壓力監測中的應用J.中華護理雜志,2012,47(12):1123-1124.4 中華醫學會重癥醫學分會. 機械通氣臨床應用指南(2006)J.中國危重病急救醫學,2007,19(2):65-72.5 夏海波,張來斌,王朝輝.國內外油氣管道泄漏檢測技術的發展現狀J.油氣儲運,2001,20(1):1-3.6 Xiaowei Liu,Xuebi

49、n Lu,Rongyan et al.Polysilicon Nanofilm Pressure SensorJ.Sensors and Actuators A.2009,154:42-45.7 Pavel Kulha,Alexander Kromka,Oleg Babchenko,et al.Nanocrystalline Diamond Piezoresistive Sensor J. Vacuum,2010(84):53-56.8 Chia-Min Lin, Li-Yuan Lin,Weileun Fang.Monolithic Integration of Carbon Nanotub

50、es Based Physical SensorsC.IEEE MEMS,2010,55-58.9 Pilar Gonzalez,Bin Guo,Michal Rakowski,et al.CMOS Compatible Polycrystalline SiliconGermanium Based Pressure SensorsJ. Sensors and Actuators A, 2012(188) :9-18.10 王國琴.慢性阻塞性肺病患者人工氣道氣囊壓力監測及護理J.檢驗醫學與臨床,2013,10(3):293-294.11 郭天祥.十天學會單片機J.哈爾濱工程大學出版社,2008,

51、14(1):139-142.12 童詩白,數字電子技術J. 北京:高等教育出版社,2008,29(10):2038-2039.13 劉友奇,宋益東.模擬芯片在單片機系統中的應用J.煤礦安全,2007,(4):48-50.14 華成英,童詩白.模擬電子技術基礎M.北京:高等教育出版社,2006:330-333.15 盛慶華,袁路花,閆云鵬等.基于24位AD自然電位法海底探礦系統研究J.傳感器與微系統,2013,32(2):36-38.16 Francesca Cuomo, Anna Abbagnale, Emanuele Cipollone. Cross-layer network format

52、ion for energy-efficient IEEE 802.15.4/ZigBee Wireless Sensor NetworksJ.AD HOC NETWORKS,2013,11(2):672-686.17 Bathe K J. Finite Element Procedures in Engineering Analysis. Prentice-Hall, Inc.1982.525318 Zienkiewicz O C. The Finite Element Method, Third Edition. Mcgraw-Hill,Inc.1987.1314.19 Huebner K H,Thornton E A. Finite Element Method for Engineers. John Wiley&Sons,Inc.1995.20 Turner M J,Clough R W,Martin H C,Topp L C.Stiffness and Deflection Analysis of Complex Structures.J.Aero.Sci.,1956,23:801806.21 Guha Subhendy,Yang Jeffrey.Progess in amorphous and nanocrystalline sil

溫馨提示

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

評論

0/150

提交評論