版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、武漢長江工商學(xué)院 畢業(yè)論文 ( 設(shè)計 ) 學(xué) 院 :工學(xué) 院 專 業(yè) : 電 子 信 息 工 程年 級 :08 級 題 目 : 基于 單 片 機 的 超 聲 波 測 距 系 統(tǒng) 的 設(shè) 計 與 實 現(xiàn) 學(xué) 生 : 汪 帆學(xué) 號 :20081384 指 導(dǎo) 教 師 : 劉 少 敏職 稱 : 2012 年 5 月 18 日 武漢長江工商學(xué)院 本科畢業(yè)論文(設(shè)計)原創(chuàng)性聲明 本人鄭重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨立進行研 究所取得的研究成果。 除了文中特別加以標(biāo)注引用的內(nèi)容外, 本論文 不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫的成果作品。 本人完全意 識到本聲明的法律后果由本人承擔(dān)。 矚慫潤
2、厲釤瘞睞櫪廡賴。 作者簽名: 年月 目錄 摘 要 1 聞創(chuàng)溝燴鐺險愛氌譴凈。 關(guān)鍵詞 1 殘騖樓諍錈瀨濟溆塹籟。 Abstract 1 釅錒極額閉鎮(zhèn)檜豬訣錐。 Key wards 1 彈貿(mào)攝爾霽斃攬磚鹵廡。 1 緒論 2 謀蕎摶篋飆鐸懟類蔣薔。 1.1研究背景 . 2 廈礴懇蹣駢時盡繼價騷。 1.2研究意義 . 2 煢楨廣鰳鯡選塊網(wǎng)羈淚。 1.3超聲波測距原理 . 2 鵝婭盡損鵪慘歷蘢鴛賴。 1.3.1 超聲波測距基本組成. 2 籟叢媽羥為贍僨蟶練淨(jìng)。 1.3.2 超聲波測距基本原理. 2 預(yù)頌圣鉉儐歲齦訝驊糴。 1.3.3 溫度對超聲波測距的影響 . 3 滲釤嗆儼勻諤鱉調(diào)硯錦。 2 系統(tǒng)設(shè)計
3、方案論證 . 3 鐃誅臥瀉噦圣騁貺頂廡。 2.1系統(tǒng)概述 . 3 擁締鳳襪備訊顎輪爛薔。 2.2方案論證 . 4 贓熱俁閫歲匱閶鄴鎵騷。 2.2.1 單片機模塊方案論證. 4 壇摶鄉(xiāng)囂懺蔞鍥鈴氈淚。 2.2.2 超聲波模塊方案論證. 4 蠟變黲癟報倀鉉錨鈰贅。 2.2.3 顯示模塊方案論證 . 4 買鯛鴯譖曇膚遙閆擷凄。 2.2.4 電源模塊方案論證 . 5 綾鏑鯛駕櫬鶘蹤韋轔糴。 3 硬件設(shè)計 5 驅(qū)躓髏彥浹綏譎飴憂錦。 3.1單片機模塊 . 5 貓蠆驢繪燈鮒誅髏貺廡。 3.1.1 單片機模塊電路 . 5 鍬籟饗逕瑣筆襖鷗婭薔。 3.1.2 時鐘電路 . 5 構(gòu)氽頑黌碩飩薺齦話騖。 3.1.
4、3 復(fù)位電路 . 6 輒嶧陽檉籪癤網(wǎng)儂號澩。 3.2超聲波模塊 . 6 堯側(cè)閆繭絳闕絢勵蜆贅。 3.2.1 US-100 超聲波測距方法 6 識饒鎂錕縊灩筧嚌儼淒。 3.2.2 US-100 模塊電路 7 凍鈹鋨勞臘鍇癇婦脛糴。 3.3人機交互模塊 . 7 恥諤銪滅縈歡煬鞏鶩錦。 3.3.1 液晶顯示器 . 7 鯊腎鑰詘褳鉀溈懼統(tǒng)庫。 3.3.2 顯示器硬件電路 . 8 碩癘鄴頏謅攆檸攜驤蘞。 3.3.3 按鍵與開關(guān) . 8 閿擻輳嬪諫遷擇楨秘騖。 3.4電源模塊 . 8 氬嚕躑竄貿(mào)懇彈瀘頷澩。 4 軟件設(shè)計 9 釷鵒資贏車贖孫滅獅贅。 4.1軟件設(shè)計概述 . 9 慫闡譜鯪逕導(dǎo)嘯畫長涼。 4.
5、2軟件設(shè)計思路和流程圖 . 9 諺辭調(diào)擔(dān)鈧諂動禪瀉類。 4.3超聲波模塊驅(qū)動程序 . 11 嘰覲詿縲鐋囁偽純鉿錈。 4.3.1 發(fā)射接收程序 . 12 熒紿譏鉦鏌觶鷹緇機庫。 4.3.2 防溢出中斷程序 . 12 鶼漬螻偉閱劍鯫腎邏蘞。 4.4測距算法 . 13 紂憂蔣氳頑薟驅(qū)藥憫騖。 4.5液晶模塊驅(qū)動程序 . 14 穎芻莖蛺餑億頓裊賠瀧。 4.6系統(tǒng)暫停中斷程序 . 14 濫驂膽閉驟羥闈詔寢賻。 5 系統(tǒng)調(diào)試 15 銚銻縵嚌鰻鴻鋟謎諏涼。 5.1系統(tǒng)調(diào)試概述 . 15 擠貼綬電麥結(jié)鈺贖嘵類。 5.2硬件調(diào)試 . 15 賠荊紳諮侖驟遼輩襪錈。 5.3軟件調(diào)試 . 16 塤礙籟饈決穩(wěn)賽釙冊庫。
6、 6 總結(jié) 16 裊樣祕廬廂顫諺鍘羋藺。 參考文獻 16 倉嫗盤紲囑瓏詁鍬齊驁。 附錄一 18 綻萬璉轆娛閬蟶鬮綰瀧。 附錄二 19 驍顧燁鶚巰瀆蕪領(lǐng)鱺賻。 基于單片機的超聲波測距系統(tǒng)的設(shè)計與實現(xiàn) 摘 要: 本論文所研究的基于單片機的超聲波測距系統(tǒng)可以被廣泛的應(yīng)用在實時近距離 測距場合,如倒車?yán)走_、液位測量等。該系統(tǒng)能夠?qū)Υ篌w積的靜止物體,實現(xiàn)3cm 到 400cm 的測距,測距精度為 1cm。系統(tǒng)利用超聲波模塊 US-100 作為測距傳感器, ATMEL89C52單片 機作為核心處理器, 1602ZFA 型液晶屏作為距離數(shù)據(jù)顯示器,此外本系統(tǒng)能夠通過一個按鍵 控制測距狀態(tài)。 本文將圍繞此超聲
7、波測距系統(tǒng)的工作原理、 電路設(shè)計、 軟件設(shè)計、 系統(tǒng)調(diào)試、 改進與完善等展開論述。 經(jīng)過實驗證明, 本系統(tǒng)不僅制作成本較低, 而且具有良好的穩(wěn)定性 和實用性。 瑣釙濺曖惲錕縞馭篩涼。 關(guān)鍵詞 :超聲波測距; US-100模塊; 1602ZFA液晶顯示器 The system of ultrasonic ranging of using the Single-chip Microcomputer 鎦詩涇艷損樓紲鯗餳類。 Abstract : This thesis introduces a system of ultrasonic ranging of using the Single-chip
8、 Microcomputer, which can be used in closed ranging. This system can achieve measuring a distance which is from 3cm to 400cm, but the object which is measured should be quiescent condition and own an enough large volume. This system uses ultrasonic ranging module US-100 to be a ranging sensor, makes
9、 ATMEL89C52 Single-chip Microcomputer into the core processor, and uses 1602ZFA LCD screen to display the distance data. At same time, you can press a button to make this system entering into the pausing state. This thesis will analyze the system of ultrasonic ranging, embaying its operating princip
10、le, circuit design, software design, system debug, improvement and perfection. Through experiment proving, This system does not only have a low production cost, but also have a better stability and practical applicability.櫛緶歐鋤棗鈕種鵑瑤錟。 Key wards : ultrasonic ranging;US-100 module;1602ZFA LCD;轡燁棟剛殮攬瑤麗鬮
11、應(yīng)。 1 緒論 1.1 研究背景 超聲波定義為頻率大于 20kHz 的聲波, 屬于機械波的范疇, 是一種人耳不能識別的聲信 號。它具有良好的方向性,穿透力強的特點,并且在媒質(zhì)中存在反射、折射、衍射、散射等 傳播規(guī)律。 隨著現(xiàn)代電子技術(shù)和工業(yè)技術(shù)的發(fā)展, 超聲波在各個領(lǐng)域都有了廣泛的應(yīng)用, 如 在工業(yè)控制方面,利用超聲波衍射制造超聲波流量計;在醫(yī)療方面,利用超聲波的折射 和反射進行醫(yī)學(xué)超聲波檢查;在集成電路制造中對大規(guī)模集成電路進行檢查等。而本 論文介紹的超聲波測距則是應(yīng)用超聲波的折射規(guī)律完成距離測量。 近些年來在人們的 生活和生產(chǎn)中,超聲波測距技術(shù)已得到較廣泛的應(yīng)用,通常能完成對大體積靜態(tài)物體
12、 的測距,如房屋墻壁和液面高度等。 峴揚斕滾澗輻灄興渙藺。 1.2 研究意義 超聲波測距的研究意義主要表現(xiàn)在以下四個方面: (1)它是一種非接觸式的測距, 可以 應(yīng)用在探測領(lǐng)域或者危險作業(yè)的領(lǐng)域; ( 2)超聲波具有良好穩(wěn)定性、方向性的特性,除了溫 度因素外, 受其他環(huán)境因素影響非常小, 這樣的特性使它很適合用來作為距離測量。 (3)超 聲波測距易于實現(xiàn), 它的產(chǎn)生和接受可以方便控制,并且測距數(shù)據(jù)處理簡單。( 4)超聲波測 距的實時性較好,能夠迅速的完成距離測量。 詩叁撻訥燼憂毀厲鋨驁。 1.3 超聲波測距原理 1.3.1 超聲波測距基本組成 超聲波測距功能的實現(xiàn)必須包含三個基本的組成部分,
13、分別為超聲波發(fā)生器、 超聲波反 射物體和超聲波接收器。 超聲波發(fā)生器是用來產(chǎn)生和制造超聲波的裝置, 超聲波反射物體也 就是測距中的被測對象, 而超聲波接收器即是用來識別被測物反射回來的超聲波的裝置。 其 三者的關(guān)系如圖 1-1 所示。 則鯤愜韋瘓賈暉園棟瀧。 圖 1-1 超聲波測距系統(tǒng)組成 超聲波測距中主要應(yīng)用超聲波的反射現(xiàn)象,所以被測物體應(yīng)該具有較大的聲波反射面, 體積相對較大。 而對于超聲波接收裝置則是根據(jù)發(fā)生器產(chǎn)生的超聲波頻率特性來設(shè)計的, 超 聲波的頻率不同則相應(yīng)的接收裝置也不同。 基本辦法是使得裝置在沒有接收特定頻率超聲波 的時候是低電平, 在接收到超聲波的時候是高電平, 這樣就可以
14、完成聲波信號到電信號的轉(zhuǎn) 變。目前市場上的超聲波測距模塊基本上都已經(jīng)包含了相匹配的超聲波發(fā)生器和超聲波接收 器,使用起來比較方便。 脹鏝彈奧秘孫戶孿釔賻。 1.3.2 超聲波測距基本原理 超聲波發(fā)發(fā)生器器向某一方向?qū)Ρ粶y物體發(fā)射超聲波, 在啟動發(fā)生器, 發(fā)射超聲波的同 時記錄此時的時刻 , 超聲波在空氣中傳播,途中碰到被測物體就會發(fā)生反射現(xiàn)象,被反射的 超聲波再經(jīng)空氣傳播,到達超聲波接收器,記錄此時的時刻 , 那么得到發(fā)射和接收的時間間 隔 T 。利用超聲波在空氣中的傳播速度 V 為已知,此時我們假設(shè)發(fā)生器 TX 和接收器 RX與 被測物體表面均平行,且 TX 和 RX相隔距離為 d 。那么我
15、們可以得到被測距離值公式: L V T cos 鰓躋峽禱紉誦幫廢掃減。 2 其中的 為聲波的反射角,且 acr tan d ,其物理模型如下圖 1-2 所示。 2L 圖 1-2 測距系統(tǒng)數(shù)學(xué)模型 那么當(dāng)被測距離遠大于 TX、RX間距時,即 L遠大于 d,那么反射角0,即 cos1, 那么得到 L 的近表達式為公式 : LVT L 2 在常溫下空氣中超聲波的傳播速度為 340m/s , 通常計算距離 L 170 T 。 1.3.3 溫度對超聲波測距的影響 由于超聲波也是一種聲波, 其聲速 V 與溫度有關(guān), 因此對于超聲波測距而言, 環(huán)境溫度 成為影響測距精度的主要原因之一。 不同的溫度, 導(dǎo)致聲
16、速的變化, 使得大范圍測量的距離 誤差變大, 所以溫度是超聲波測距必須考慮的問題。 下表列出了幾種不同溫度下的聲速。 在 使用時,如果溫度變化不大,則可認為聲速是基本不變的。如果測距精度要求很高,則應(yīng)通 過溫度補償?shù)姆椒右孕U?稟虛嬪賑維嚌妝擴踴糶。 表 1-1 超聲波在空氣傳播速度與溫度關(guān)系 溫度() -30 -20 -10 0 10 20 30 100 聲速(m s) 313 319 325 323 338 344 349 386 2 系統(tǒng)設(shè)計方案論證 2.1 系統(tǒng)概述 本論文的主要任務(wù)是完成一個應(yīng)用超聲波傳感器, 并且以單片機為核心控制器的實時攜 便式超聲波測距系統(tǒng)。 本系統(tǒng)設(shè)計的測
17、距范圍是完 3cm到 400cm的范圍, 測距精度達到 1cm。 被測物體運動狀態(tài)為靜止, 物理狀態(tài)為固態(tài)或者液態(tài), 且具有較大的聲波反射面或者較大的 體積,例如墻壁、門寬、液位高度等。 陽簍埡鮭罷規(guī)嗚舊巋錟。 基于本系統(tǒng)的功能要求, 將本系統(tǒng)劃分為以下四個基本模塊: ( 1)單片機模塊,實現(xiàn)測 距數(shù)據(jù)處理,為系統(tǒng)的核心部分; (2)超聲波模塊, 主要任務(wù)是完成超聲波產(chǎn)生和超聲波接 收,作為該系統(tǒng)的傳感器; ( 3)人機交互模塊,該模塊包括顯示器和按鍵開關(guān)兩個部分,其 中顯示部分主要完成系統(tǒng)狀態(tài)指示和測距結(jié)果的顯示,按鍵開關(guān)用來暫停系統(tǒng)和重啟系統(tǒng); (4)電源模塊,提供穩(wěn)定的 5V 電壓,為各
18、個模塊提供工作電壓。本系統(tǒng)構(gòu)成如下圖 2-1 所示。在 2.2 節(jié)和第三章的論述中,也將以這四個基本模塊為線索展開。 溈氣嘮戇萇鑿鑿櫧諤應(yīng)。 圖 2-1 系統(tǒng)硬結(jié)構(gòu)圖 2.2 方案論證 本系統(tǒng)的方案論證將圍繞上節(jié)劃分的四個基本模塊展開論述。 2.2.1 單片機模塊方案論證 對于單片機模塊,在單片機的選擇方面以低價格、低功耗且能完成系統(tǒng)控制性為標(biāo)準(zhǔn)。 因為超聲波測距系統(tǒng)的數(shù)據(jù)處理通常較容易,所以一般的 8 位單片機都可以滿足系統(tǒng)要求, 如 AVR 公司的 ATmegea-16 系列單片機、 Freescale公司的 08 系列單片機、 ATMEL 公司的 51 系列單片機等。本系統(tǒng)選用了傳統(tǒng)的
19、51 系列單片機作為核心控制器,即 ATMEL 公司的 AT89C52 型號單片機 1 ,這款單片機不僅價格低廉操作簡單, 并且它的定時器模塊, 中斷模 塊已足夠?qū)崿F(xiàn)本測距系統(tǒng)的控制,豐富的外部引腳也能好滿足本系統(tǒng)的其他模塊接入。 鋇嵐 縣緱虜榮產(chǎn)濤團藺。 2.2.2 超聲波模塊方案論證 對于超聲波模塊的方案有兩種基本方案, 一種是采用分離式的超聲波模塊, 即超聲波發(fā) 生電路和超聲波接受電路為分開的獨立電路單元, 這里超聲波發(fā)生電路通常用超聲波換能器 和電流驅(qū)動電路構(gòu)成, 而超聲波接受電路則由頻率敏感元件和單穩(wěn)態(tài)觸發(fā)電路構(gòu)成。 另一種 是采用集成的超聲波模塊,典型如 US-100,該模塊專門用
20、于 5 米內(nèi)的超聲測距,它包含完 整的超聲波發(fā)生和接受電路, 且自帶一個溫度校準(zhǔn)電路, 并有電平和串口兩種距離測量方式 供使用者選擇。 相比這兩種方案,后者的不僅制作價格較低, 而且電路穩(wěn)定性更好,調(diào)試和 制作都相對簡單,故本系統(tǒng)選用了集成超聲波模塊US-100。 懨俠劑鈍觸樂鷴燼觶騮。 2.2.3 顯示模塊方案論證 對于人機交互模塊的方案,主要在于顯示方案的選擇。通常的顯示方案可以考慮 LED 數(shù)碼管顯示或者 LCD 液晶顯示。如果本系統(tǒng)采用 LED 數(shù)碼管顯示方案,則至少選用 3 片 7 段數(shù)碼管, 這樣電路相對復(fù)雜, 且僅僅能夠顯示距離信息,狀態(tài)指示非常很局限。 如果采用 LCD 液晶顯
21、示方案,則電路相對簡化,并且系統(tǒng)的狀態(tài)信息和測距數(shù)據(jù)都能很好的給出, 所以本系 但是軟件設(shè)計部分會相對復(fù)雜。 考慮到測距系統(tǒng)應(yīng)該有一個很好的交互指示功能, 統(tǒng)用了 16*2 字符型 1602ZFA 液晶顯示器作為顯示模塊。 謾飽兗爭詣繚鮐癩別瀘。 2.2.4 電源模塊方案論證 對于電源模塊的方案, 因為本系統(tǒng)的設(shè)計任務(wù)是一個攜便式設(shè)備, 故采用電池供電。 考 慮使用時間和系統(tǒng)整體功耗問題,本系統(tǒng)選用電池為 9V 干電池。這里電源模塊可供選擇的 方案有: 串聯(lián)型穩(wěn)壓電路或者開關(guān)型穩(wěn)壓電路。 開關(guān)型穩(wěn)壓電路的效率較高, 且紋波較串聯(lián) 型較小, 但是制作成本較高, 并且電路結(jié)構(gòu)比較復(fù)雜。 又因為本系
22、統(tǒng)的其他基本均為數(shù)字單 元,對電源紋波要求較小, 故本系統(tǒng)最終采用了串聯(lián)型穩(wěn)壓電源方案, 采用集成三端穩(wěn)壓芯 片 LM2940 。 咼鉉們歟謙鴣餃競蕩賺。 3 硬件設(shè)計 3.1 單片機模塊 單片機模塊主要由 AT89C52 單片機及其外圍時鐘電路和復(fù)位電路等構(gòu)成,具體電路連 接和分析在以下幾節(jié)中論述。 瑩諧齷蘄賞組靄縐嚴(yán)減。 3.1.1 單片機模塊電路 本節(jié)給出單片機模塊的整體電路圖包括單片機模塊的引腳連接、時鐘電路和復(fù)位電路, 如下圖 3-1 所示。其中單片機的 P1.2口和 P1.3 口用來連接 US100超聲波模塊的觸發(fā)引腳 TX 和接受引腳 RX ,P0口和 P2口提供給液晶模塊的數(shù)據(jù)
23、傳輸和控制, 且單片機的 EA 引腳 應(yīng)接高電平,使用單片機的內(nèi)部 ROM 作為單片機的程序存儲器 2 。 麩肅鵬鏇轎騍鐐縛縟糶。 圖 3-1 單片機模塊電路圖 3.1.2 時鐘電路 單片機的時鐘電路是為系統(tǒng)提供基本的時鐘信號3 ,51 系列單片機的時鐘電路通常分為 兩種:外部震蕩方式電路和內(nèi)部震蕩方式電路。 本系統(tǒng)的單片機模塊采用本部震蕩方式時鐘 電路,即在其引腳 XTAL1 和引腳 XTAL2 外接石英晶體和微調(diào)電容,構(gòu)成振蕩器。本系統(tǒng) 采用時鐘電路的晶振為 11.0592MHz ,電容為 30pF。其連接圖如 3-2所示。 納疇鰻吶鄖禎銣膩鰲 錟。 圖 3-2 時鐘電路 3.1.3 復(fù)位
24、電路 當(dāng)晶體振蕩電路工作后, 在單片機的 RESET 輸入端出現(xiàn)兩個機器周期 4 以上的高電平, 單片機會被初始化復(fù)位,復(fù)位后各特殊功能寄存器將恢復(fù)初始狀態(tài)。 51 單片機通常采用上 電復(fù)位和手動復(fù)位的方法, 這里同時采用了這兩種方式, 當(dāng)接通電源時會產(chǎn)生一次復(fù)位, 當(dāng) 正在工作時,若需要復(fù)位可以按復(fù)位鍵進行復(fù)位,即手動復(fù)位。該電路電阻為10K ,電容為 10uF,其電路連接如圖 3-3 所示。 風(fēng)攆鮪貓鐵頻鈣薊糾廟。 圖 3-3 復(fù)位電路 3.2 超聲波模塊 本節(jié)主要論述 US-100 超聲波測距模塊在本系統(tǒng)中的連接方法。 3.2.1 US-100 超聲波測距方法 3-4 所示,根據(jù)時 8
25、個 40KHZ 的超 本系統(tǒng)采用 US-100 的電平觸發(fā)測距,其在電平觸發(fā)下的工作時序圖 序圖只需在 Trig/TX 管腳輸入一個 10US 以上的高電平,系統(tǒng)便可發(fā)出 聲波脈沖, 然后檢測回波信號。 當(dāng)檢測到回波信號后,模塊還要進行溫度值的測量,然后根 據(jù)當(dāng)前溫度對測距結(jié)果進行校正,將校正后的結(jié)果通過 Echo/RX 管腳輸出。 滅噯駭諗鋅獵輛覯 餿藹 在此模式下,模塊將距離值轉(zhuǎn)化為 340m/s 時的時間值的 2 倍,通過 Echo 端輸出一高 電平,可根據(jù)此高電平的持續(xù)時間來計算距離值。即距離值為:(高電平時間 *340m/s)/2 。在 這里因為距離值已經(jīng)經(jīng)過溫校正, 此時無需再根據(jù)
26、環(huán)境溫度對超聲波聲速進行校正, 即不管 溫度多少,聲速選擇 340m/s 即可。 鐒鸝餉飾鐔閌貲諢癱騮。 圖 3-4 US-100 在電平觸發(fā)下的工作時序圖 3.2.2 US-100 模塊電路 在本系統(tǒng)中 US-100超聲波模塊的連接如下圖 3-5所示 ,其Trig/TX 管腳連接單片機的 P1.3 口,由單片機輸出一個 10us的高電平; Echo/RX 管腳連接單片機的 P1.2口,單片機檢測 P1.2 口的電平變化,其具體檢測方法在第四章軟件設(shè)計分析部分給出。 攙閿頻嶸陣澇諗譴隴瀘。 圖 3-5 US-100 模塊電路圖 3.3 人機交互模塊 本系統(tǒng)的人機交互模塊分為液晶顯示器和按鍵開關(guān)
27、兩個部分, 下面幾節(jié)將分別分析這兩 個部分。 3.3.1 液晶顯示器 本系統(tǒng)采用的液晶顯示器型號為 1062ZFR,它是一個 16*2 字符型液晶顯示器 5,專門用 于顯示字母、數(shù)字、符號等的點陣型液晶顯示模塊。 LCD 1062ZFR 的引腳如下: D0D7八 個數(shù)據(jù)端口, VSS負電源端口, VDD 正電源端口, VO 對比度調(diào)節(jié)端口, RS狀態(tài)控制端, RW 讀寫控制端, E使能端, A和 K 灰度參考端口。 趕輾雛紈顆鋝討躍滿賺。 3.3.2 顯示器硬件電路 液晶顯示器 LCD 1062ZFR 在電路中的連接如圖 3-6所示,將其八個數(shù)據(jù)端 D0-D7分別連 接單片機的 P0.0-P0
28、.7口;RS連接P2.3口;RW連接P2.4口;E連接 P2.5口;A端口給電平接 GND; K端口給高電平接 VCC ;VL端口接一個 10K的滑動變阻器,用來調(diào)節(jié)液晶顯示器的對比度; VDD 端口接系統(tǒng)電源 VCC ,而負電源端口 VSS接地即可。 夾覡閭輇駁檔驀遷錟減。 圖 3-6 液晶顯示模塊電路圖 3.3.3 按鍵與開關(guān) 為了使得本測距系統(tǒng)有更好的操作性、觀測性,本系統(tǒng)設(shè)計了一個測量暫停按鍵K1 , 此按鍵的具體作用如下:當(dāng)短按按鍵 K1 時,超聲波測距系統(tǒng)停止發(fā)生超聲波,顯示器保留 前一時刻的測量數(shù)據(jù),以測量者方便觀察和記錄數(shù)據(jù);當(dāng)長按按鍵K1 時,返回正常測距狀 態(tài),可以重新開始
29、測量距離。其硬件連接如下圖3-7所示,即按鍵 K1 接在單片機 P3.2引腳上。 視絀鏝鴯鱭鐘腦鈞欖糲。 圖 3-7 按鍵連接圖 3.4 電源模塊 本系統(tǒng)中的電源模功能是為系統(tǒng)的其他模塊提供穩(wěn)定的 5V 工作電壓, 其實現(xiàn)方法是采 用一個 5V 的集成穩(wěn)壓芯片 LM2940 ,用 9V 的干電池作為其輸入,則可以從 LM2940 的輸 出端得到 5V 的穩(wěn)定電壓。為了使得電源模塊提供的 5V 直流工作電壓文波更少、穩(wěn)定性更 好,在輸入輸出端口分別并接濾波電容和電解電容,并且在輸出端口并接上一個 LED 系統(tǒng) 電源指示燈,以方便指示本系統(tǒng)的電源模塊是否正常工作,其電路連接如圖 3-8 所示。 偽
30、澀 錕攢鴛擋緬鐒鈞錠。 圖 3-8 電源模塊電路圖 4 軟件設(shè)計 4.1 軟件設(shè)計概述 本系統(tǒng)軟件全部采用 c語言編寫,開發(fā)環(huán)境為 Keil C 。軟件組織 6分為兩個部分,分別是 chaoshengbo.c 和SMC162.c ,前者是系統(tǒng)程序主函數(shù)和超聲波驅(qū)動程序所在的c文件,后者 是系統(tǒng)采用的字符液晶器 1602ZFR 的驅(qū)動程序。軟件組織圖如下圖 3-1 所示。關(guān)于軟件設(shè)計 思路,算法,各個驅(qū)動程序?qū)⒃诤竺鎺坠?jié)中給出論述,完整程序代碼在附錄二給出。 緦徑銚 膾齲轎級鏜撟廟。 圖 4-1 軟件組織圖 各個變量的初始賦值, 進入循環(huán)測 4.2 軟件設(shè)計思路和流程圖 單片機在上電復(fù)位后, 首
31、先進行各個模塊的初始化、 距和顯示部分。在循環(huán)部分中,把完成一次測量和一次顯示刷新作為系統(tǒng)的一個工作周期。 在這個工作周期中, 首先完成的是超聲波測距, 即向超聲波模塊給出觸發(fā)信號, 然后檢測模 傳回來的測距信號,打開計時器 T0 ,得到相關(guān)數(shù)據(jù),然后計算出測量距離,最后再刷新液 晶模塊顯示出測量距離。此外系統(tǒng)具有兩個中斷程序,一個是利用定時器T0中斷,防止測 量超出距離而導(dǎo)致 T0溢出。另一個應(yīng)用外部中斷 INT0 來實現(xiàn)測量暫停功能,對應(yīng)外部中斷 0 引腳 P3.2的外接按鍵 K1 ,當(dāng)按鍵短按時,進入外部中斷 0的中斷程序,在中斷程序中顯示前 一時刻的測距數(shù)據(jù),并再次檢測按鍵K1 ;當(dāng)發(fā)
32、現(xiàn) K1 長按時,則從中斷程序中返回之前的工 作循環(huán)。軟件流程圖如下圖 4-2 所示。 騅憑鈳銘僥張礫陣軫藹。 10 a)主程序 b) T0 中斷程序 開始 系統(tǒng)初始化 P1.3 口 10us 觸發(fā)電平 100us 延時 c)INT0 中斷程序 TH0 、TL0 清 0 P1.2=0 否 是 P1.2=1否 P1.2=1否 是 打開 T0 定時器,允許中斷 是 P1.2=0 否 禁止總中斷 清空 IE0 刷新液晶屏 顯示最后測 量的數(shù)據(jù) 是 關(guān)閉 T0 定時器,關(guān)閉中斷 返回主程序 讀 TH0 、 TL0, 計算距離 刷新液晶,顯示距離數(shù)據(jù) 騏鏨農(nóng)剎貯獄顥幗騮。 4.3 超聲波模塊驅(qū)動程序 圖
33、 4-2 軟件流程圖 11 4.3.1 發(fā)射接收程序 本系統(tǒng)超聲波測距傳感器采用的是 US-100 超聲波測距模塊,并且利用其電平測量模式, 其工作原理圖在第二章圖 2.6中給出。其模塊的驅(qū)動程序是由發(fā)射程序和接收程序兩部分, 另外加上一個防溢出中斷程序構(gòu)成。 鏃鋝過潤啟婭澗駱讕瀘。 發(fā)射程序是通過給單片機的 P1.3口(即與 US-100的TX 引腳相連接)大約 10us的高電平, 程序中完成 10us的時間并沒有采用定時器,而是采用延時程序完成,程序中的函數(shù)名為 delay_10us() 。經(jīng)過示波器測量,此段延時的時間大約為10.89us。然后給持續(xù)一段約 100us 的低電平,這樣便完
34、成了發(fā)射程序,之后便可以進行接收程序。 榿貳軻謄壟該檻鯔塏賽。 接收程序是用單片機檢測 P1.2口(即與 US-100的 RX引腳相連接)的電平變化。根據(jù) US-100 工作原理圖可知, 首先保證 P1.2口的電平為低電平, 即此時 US-100 還沒有接收到超聲 波信號,當(dāng) P1.2口出現(xiàn)上升沿信號的時刻,打開 T0定時器,進行時間間隔記時,此時 TH0 和 TL0 初值都為 0。再等待 P1.2口出現(xiàn)下降沿,此時表示超聲波信號接收完畢,關(guān)閉定時器T0, 讀出 TH0和TL0的值分別給變量 time_high和time_low ,即完成此部分程序功能。發(fā)射接收程 序的代碼如下所示。 邁蔦賺陘
35、賓唄擷鷦訟湊。 sent=1; delay_10us(); sent=0; delay_100us();/ 發(fā)射完畢 TH0=0; TL0=0; while(receive=1); while(receive=0); TR0=1; ET0=1; / 定時器開始工作 while(receive=1 time_high=TH0; time_low=TL0; /接收完畢 4.3.2 防溢出中斷程序 防溢出中斷程序?qū)嵸|(zhì)是利用了定時器T0的溢出中斷 7 。分析以上的接收程序可知,在 P1.2口接收到上升沿信號后,定時器 T0開始工作, TH0 、TL0從 0開始增加,但是止到 P1.2口 由高電平變到低
36、電平, 即出現(xiàn)下降沿時, 定時器 T0才停止計數(shù)。 那么如果在 P1.2下降沿出現(xiàn) 前,定時器 T0的TH0 和TL0計數(shù)發(fā)生溢出,即會發(fā)生測量錯誤,屬于系統(tǒng)的無效狀態(tài)。為了 避免這個無效狀態(tài), 本系統(tǒng)設(shè)定了此防溢出中斷程序, 一旦發(fā)生溢出情況, 則程序進入定時 器T0的中斷程序 ,設(shè)置錯誤標(biāo)志位 flag_error=1 ,表示此次測量無效。 嶁硤貪塒廩袞憫倉華糲。 另外本超聲波測距系統(tǒng)的最大測距范圍限定在400cm,那么當(dāng)發(fā)生溢出時,定時器 TO 的計數(shù)值為 65536。系統(tǒng)中單片機采用 11.0592Mhz晶振,對應(yīng)機器周期約為 1.1us,那么 65536 次計數(shù)即表示超聲波發(fā)射接收時
37、間間隔為59578us,聲速取 340m/s,則測量距離約為 1013cm, 以超出本系統(tǒng)設(shè)定的測距范圍, 并且超出傳感器的測量范圍。 所以上述給出了發(fā)生溢出一定 是系統(tǒng)無效的證明。防溢出中斷程序的代碼如下所示。 該櫟諼碼戇沖巋鳧薩錠。 void zd_TIME0() interrupt 1/T0 中斷用來計數(shù)器溢出 , 超過測距范圍 劇妝 諢貰攖蘋塒呂侖廟。 TF0=0; 12 flag_error=1; / 中斷溢出標(biāo)志 4.4 測距算法 測距的基本算法是采用 1.1.2節(jié)中的測距公式,由于采用的 US-100 超聲波測距模塊具有 溫度補償電路, 可以自動校準(zhǔn)由溫度引起的聲速變化, 所以程
38、序中聲速可以取為常量 340m/s, 那么測距公式可以化為公式: L 170 T 。在3.3.1節(jié)中已經(jīng)提到定時器 T0的高 8為計數(shù)寄存 器TH0賦值給 time_high , TL0的低八位賦值給 time_low ,程序中定義一個無符號長整型的變 量time_data來裝載測距時間間隔 T ,那么只需將 time_high左移 4位,再加上 time_low ,就可以 得到 time_data的值了。 臠龍訛驄椏業(yè)變墊羅蘄。 系統(tǒng)要求的測距精度是達到 1cm,但是為了進一步提高測距精度,本系統(tǒng)軟件在測距計 算中計算到了毫米 mm位。具體為程序中設(shè)定了一個有 4個元素的字符型數(shù)組 disp
39、lay4 ,這 四個元素分別代表 display3 、 display2 、 display1 、 display0 分別代表米位、分米位、 厘米位、毫米位,其中這 4個位均參與計算,但是最后的毫米位作四舍五入處理,不予顯示。 這樣符合本系統(tǒng)的設(shè)計要求,也進一步提高本系統(tǒng)的測距精度。 鰻順褸悅漚縫囅屜鴨騫。 并且在程序此處部分嚴(yán)格檢測數(shù)據(jù)大小,防止測距超出傳感器范圍或者測距范圍太近 (L小于3cm),一旦發(fā)現(xiàn)錯誤數(shù)據(jù),便設(shè)置錯誤標(biāo)志位flag_error=1 ,表示此次測量無效。此 段程序的代碼如下。 穡釓虛綹滟鰻絲懷紓濼。 time_data=time_high*256+time_low;/
40、 測距時間計算 time_high=0; time_low=0; flag_error=0; distance_data=0; if(time_data=26471)/ 防止超出測距范圍 time_data= (time_data*17)/100;/ 得到測距距離 distance_data=time_data; if(distance_data=30)/ 限定測距范圍 display0=distance_data%10; /顯示轉(zhuǎn)換 display1=(distance_data/10)%10; display2=(distance_data/100)%10; display3=(dista
41、nce_data/1000)%10; if(display0=5) / 四舍五入程序 if(display1=9) if(display2=9) display3=display3+1; display2=0; display1=0; else 13 display2=display2+1; display1=0; else display1=display1+1; display1=display1+0;/ 轉(zhuǎn)換成字符碼 display2=display2+0; display3=display3+0; 4.5 液晶模塊驅(qū)動程序 在本系統(tǒng)的軟件設(shè)計中,把液晶模塊的驅(qū)動程序作為一個獨立的C文件
42、組織在程序中, 驅(qū)動程序 8 的外部接口包括為幾個調(diào)用控制函數(shù)如 :液晶顯示器的數(shù)據(jù)顯示前,都要進行清 屏操作,其調(diào)用函數(shù)為 LcdWriteCmd(0 x01 , 1 ); 液晶屏上的數(shù)據(jù)顯示分為字符串顯示和字符 顯示,前者通常使用函數(shù) void PutStr(char x , char y , char* str) ,后者通常調(diào)用函 void PutChar(char x , char y , char value) 。 隸誆熒鑒獫綱鴣攣駘賽。 這里給出本系統(tǒng)液晶屏的指示狀態(tài)和數(shù)據(jù)顯示方法。 首先當(dāng)液晶顯示器出現(xiàn)上行下行全 白時表示系統(tǒng)正在開機啟動;當(dāng)液晶顯示器出現(xiàn)上行now,loadin
43、g 和下行 waitting. 表示正 在啟動超聲波模塊; 當(dāng)液晶顯示器出現(xiàn)上行 the distance is: 和下行 xxx cm 表示系統(tǒng)處于正 常測距狀態(tài); 當(dāng)液晶顯示器出現(xiàn)上行 stop measuring 和下行 xxx cm 表示系統(tǒng)處于暫停測量 狀態(tài);當(dāng)液晶顯示器出現(xiàn)上行 there is error 和下行 check distance 時表示測量距離超出本系 統(tǒng)設(shè)計的范圍。 浹繢膩叢著駕驃構(gòu)碭湊。 4.6 系統(tǒng)暫停中斷程序 系統(tǒng)暫停中斷程序即是應(yīng)用外部中斷INT0 9來實現(xiàn)系統(tǒng)測量暫停功能,在外部中斷0引 腳P3.2口接一個按鍵 K1 。當(dāng)按鍵短按時,進入外部中斷 0的中
44、斷程序,在中斷程序中顯示前 一時刻的測距數(shù)據(jù),并再次檢測按鍵 K1 ;當(dāng)發(fā)現(xiàn) K1 長按時,則從中斷程序中返回之前的工 作循環(huán)。其代碼如所示。 鈀燭罰櫝箋礱颼畢韞糲。 void zd_INT0() interrupt 0/T0 中斷用來計數(shù)器溢出 , 超過測距范圍 EA=0; I E0=0; LcdWriteCmd(0 x01 , 1 );/ 清屏幕 PutStr(0,0,stop measuring);/顯示 PutChar(4,1,display3); PutChar(5,1,display2); PutChar(6,1,display1); PutChar(7,1, ); PutChar
45、(8,1,c); PutChar(9,1,m); delay_100ms(); delay_100ms(); delay_100ms(); delay_100ms(); delay_100ms(); while(1) if(key_stop=0)/ 再次按下則返回 14 delay_100ms(); delay_100ms(); delay_100ms(); delay_100ms(); if(key_stop=0) break; EA=1; 5 系統(tǒng)調(diào)試 5.1 系統(tǒng)調(diào)試概述 本章中主要記錄和講述本超聲波測距系統(tǒng)在調(diào)試過程中錯誤的改正和功能的改進。 本章 將分兩個部分進行敘述, 分別為系統(tǒng)硬
46、件調(diào)試和和系統(tǒng)軟件調(diào)試。 兩者調(diào)試的基本思想和出 發(fā)點包含四個方面的內(nèi)容, 他們分別是超聲波系統(tǒng)的測距正確性、 測距精確性、 系統(tǒng)穩(wěn)定性、 使用方便性。這里給出本系統(tǒng)的實物圖,如下圖 5-1 所示。 愜執(zhí)緝蘿紳頎陽灣熗鍵。 圖 5-1 系統(tǒng)實物圖 5.2 硬件調(diào)試 本超聲波測距系統(tǒng)的硬件電路中, 除了電源模塊為模擬電路單元, 其他模塊如單片機模 塊、液晶顯示器模塊等均為數(shù)字單元, 正因如此系統(tǒng)中大部分的數(shù)字單元, 使得本系統(tǒng)工作 穩(wěn)定性很高,也使得本系統(tǒng)的硬件調(diào)試相對較簡單。 貞廈給鏌綞牽鎮(zhèn)獵鎦龐。 15 模擬單元電源模塊的調(diào)試: 經(jīng)過測量, 得到本超聲波測距系統(tǒng)正常測距時穩(wěn)壓芯片輸入 直流電
47、流為 50.1mA ,系統(tǒng)額定輸入電壓為 9V ,那么得到系統(tǒng)功耗為 450.9mW 。為系統(tǒng)提 供 9V 電壓的是南孚 9V 堿性干電池,該電池在 21 攝氏度下,恒流放電至 4.8V 的情況下, 電池容量大概為 400mAh 到 600mAh ,即可保證本系統(tǒng)持續(xù)工作 1 個小時左右。數(shù)字單元的 調(diào)試: 數(shù)字單元本身具有很好的穩(wěn)定性, 主要檢測各個引腳是否連接正確, 各個引腳電平信 號是否正確。 嚌鯖級廚脹鑲銦礦毀蘄。 5.3 軟件調(diào)試 本系統(tǒng)的軟件調(diào)試工具為 Keil C ,軟件調(diào)試的任務(wù)是使得本系統(tǒng)反應(yīng)出正確的和精確的 被測距離,以及按鍵正確控制系統(tǒng)狀態(tài)切換。 薊鑌豎牘熒浹醬籬鈴騫。
48、在本系統(tǒng)的制作中,出現(xiàn)錯誤測距時,會從程序距離計算部分,液晶顯示部分找問題。 比如系統(tǒng)在調(diào)試過程中曾經(jīng)在距離數(shù)據(jù)顯示位本應(yīng)該顯示“0”-“ 9”的數(shù)字,結(jié)果錯誤顯 示“:”,調(diào)試發(fā)現(xiàn)為毫米位四舍五入程序出現(xiàn)bug,修正程序后錯誤顯示“: ”的現(xiàn)象解決。 程序中也進行了顯示優(yōu)化,采用相應(yīng)程序使得高位 0 清空處理,使得測量者方便觀察數(shù)據(jù)。 齡踐硯語蝸鑄轉(zhuǎn)絹攤濼。 本系統(tǒng)中工作狀態(tài)切換按鍵 K1 曾出現(xiàn)按鍵失效狀態(tài),具體表現(xiàn)在:短按 K1 進入中斷 程序后,系統(tǒng)暫停工作,但再次按K1 ,無論是短按還是長按都不會退出中斷程序,返回工 作狀態(tài)。最后在程序測試中發(fā)現(xiàn),適當(dāng)延長按鍵去抖延時就解決了此問題。
49、 紳藪瘡顴訝標(biāo)販繯轅 賽。 6 總結(jié) 基于前面章節(jié)的論述, 將在本章中將指出本系統(tǒng)現(xiàn)存的不足, 也進一步提出對本系統(tǒng)改 進的構(gòu)想。具體論述從器件選擇,硬件電路、軟件設(shè)計這三個角度展開,具體分析如下。 飪 籮獰屬諾釙誣苧徑凜。 本系統(tǒng)現(xiàn)存的不足之處主要表現(xiàn)在兩個方面,即功耗過大和程序執(zhí)行效率10 較低。首 先本系統(tǒng)現(xiàn)在工作狀態(tài)額定功率約為450mw ,作為一個利用干電池供電的手持?jǐn)y便設(shè)備, 如果能夠?qū)⑵涔慕档偷?100mw 以下,這樣可以極大的提高干電池供電時間。這里分析本 系統(tǒng)功耗過大的原因為是采用的 16*2 1602ZFA 字符型液晶顯示器工作功率較大,為了降低 功耗可以嘗試屏幕較小,且
50、工作電壓電流較小的液晶顯示器。 烴斃潛籬賢擔(dān)視蠶賁粵。 其次程序效率低的原因表現(xiàn)在程序中大量引入延時程序, 并且測量周期較長。 改善方案 可以從以下兩點著手: ( 1)將程序的顯示部分和測距部分分開, 這樣可以有效的縮短測距周 期。然后采另外用定時中斷定時去刷新液晶屏幕數(shù)據(jù)。 (2)可以采用功能模塊較多的單片機, 比如具有 PWM 功能、輸入捕捉功能等??梢岳?PWM 功能去完成超聲波發(fā)射驅(qū)動,利用 輸入捕捉功能去完成時間測量,這樣可以極大的提高程序效率,同時提高測距的精度。 鋝豈 濤軌躍輪蒔講嫗鍵。 最后提出對本系統(tǒng)的一點構(gòu)想, 即在超聲波發(fā)射接收模塊的中間加入一支激光管。 在系 統(tǒng)開啟后, 激光管可以發(fā)出激光束指向被測物體, 那么則可用可視光路指示看不見的超聲波 傳播路徑, 讓測量者能夠更加清楚的觀測本超聲波測距儀與被測物體是否在一條直線上, 避 免一些人為的錯誤。 擷偽氫鱧轍冪聹諛詼龐。 參考文獻 1 李群芳,肖看 . 單片機原理、接口及應(yīng)用 . 北京.清華大學(xué)出版社 .2005 年 16 2 沈紅衛(wèi) . 基于單片機的智能系統(tǒng)設(shè)計與實現(xiàn). 北京. 電子工業(yè)出版社 .2005 年 3 劉海成 . 單片機及應(yīng)用系統(tǒng)設(shè)計原理與實踐. 北京. 北京航空航天大學(xué)出版社 .2009 年 4 張志良 . 單片機原理與控制技術(shù) .
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年酒店業(yè)中央空調(diào)安裝與運營合同3篇
- 網(wǎng)上書店系課程設(shè)計
- 探索漢字主題課程設(shè)計
- 2024年虛擬現(xiàn)實游戲內(nèi)容開發(fā)與授權(quán)合同
- 二零二五年度個人裝修合同免責(zé)條款說明細則3篇
- 籃球課程設(shè)計方案
- 2024年裝修輔材代購權(quán)責(zé)協(xié)議3篇
- 二零二五年度倉儲物流中心建筑租賃合同2篇
- 二零二五年度專業(yè)搬家服務(wù)合同模板2篇
- 二零二五年度健康醫(yī)療用地房屋及土地使用權(quán)轉(zhuǎn)讓協(xié)議3篇
- 國培培訓(xùn)成果匯報
- 北師大版(三起)(2024)三年級上冊英語全冊教案(按課設(shè)計共23課)
- 博物館多功能廳功能改造方案
- 外墻真石漆施工后期維護方案
- 工會上墻制度
- 與信仰對話 課件-2024年入團積極分子培訓(xùn)
- 中學(xué)美術(shù)《剪紙藝術(shù)》完整課件
- 國家職業(yè)技術(shù)技能標(biāo)準(zhǔn) X4-07-99-10 禮儀主持人(試行)勞社廳發(fā)200633號
- 施工現(xiàn)場預(yù)防坍塌、高處墜落事故專項整治工作總結(jié)
- 醫(yī)院感染暴發(fā)及處理課件
- 小學(xué)五年級體育教案全冊(人教版)
評論
0/150
提交評論