基于單片機的超聲波液位測量_第1頁
基于單片機的超聲波液位測量_第2頁
基于單片機的超聲波液位測量_第3頁
基于單片機的超聲波液位測量_第4頁
基于單片機的超聲波液位測量_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

摘要本文利用超聲波傳輸中距離與時間的關(guān)系采用C8051F410單片機進行控制及數(shù)據(jù)處理設(shè)計出了能精確測量點間距離的超聲波測距儀,利用所設(shè)計出的超聲波測距儀可應(yīng)用于汽車倒車、建筑工地以及一些工業(yè)現(xiàn)場的位置監(jiān)控以及液位、井深、管道長度的測量等現(xiàn)場。本測距儀能較精確測量被測物與測距儀之間的距離。在分析國內(nèi)外單片機超聲波測距儀相關(guān)技術(shù)的根底上,結(jié)合最新研究成果,對超聲波測距系統(tǒng)的研制進行了深入探討和研究。該系統(tǒng)分為測距模塊、系統(tǒng)控制模塊和顯示報警模塊,并分別對其進行方案分析,構(gòu)建了單片機超聲波測距儀構(gòu)架和設(shè)計方案,在硬件電路中,詳細闡述了運用單片機技術(shù)實現(xiàn)超聲波測距的原理,分析了以單片機為主控單元的系統(tǒng)硬件和軟件設(shè)計,并對該系統(tǒng)進行了試驗和誤差分析,給出了本系統(tǒng)的穩(wěn)定性指標。關(guān)鍵詞:C8051F單片機,超聲波,LED,收發(fā)電路AbstractThistextmakeuseofthesupervoicewavedeliverintermediaterangeandtimeofrelationadoptiontheC8051F410listslicethemachinecarryoncontrolanddataprocessingdesignabilityprecisionmeasuresupervoicethatorderdistancewaverangefinder,makeuseofdesignofsupervoicewaverangefindercanapplicationreversethecaratthecar,buildinglandandsomeindustrythespotofpositionsupervisionandliquid,welldeep,pipinglengthofmeasureetc.thespot.Thisrangefinderabilitymoreprecisionmeasureismeasuredanofthingandrangefinderofdistance.Atanalysisdomesticandinternationallistslicemachinesupervoicewavetherangefinderberelatedtechniqueoffoundationup,combinelatestresearchresult,tosupervoicewavemeasuretobeapartfromsystemofdeveloppedtocarryonthoroughstudyandresearch.It'ssystem'sturntoisdividedintomeasuretobeapartfromamoldpiece,systemcontrolmoldpieceandmanifestationreporttothepoliceamoldpiece,anddifferenceastoit'scarryonaprojectanalysis,setuplistslicemachinesupervoicewaverangefinderframeanddesignproject,inthehardwareelectriccircuit,detailedelaboratedanusagelistslicemachinetechniquerealizationsupervoicewavetheprinciplewhichmeasuretobeapartfrom,analysiswithlistslicemachineforlordcontrolsystemhardwareandsoftwareofunitdesign,andrightnessshouldthesystemcarriedontoexperimentwitherrormarginanalysis,givethestabilityindexsignofthissystem.Keywords:TheC8051F,supervoicethewave,theLED,receiveanddispatchelectriccircuit目錄摘要IAbstractII1緒論11.1問題的提出和課題的研究意義1測距儀的現(xiàn)狀及超聲波測距優(yōu)勢1超聲波測距儀的研究現(xiàn)狀及開展趨勢22超聲波測距原理概述3超聲波的開展史3超聲波的含義及其應(yīng)用3超聲波的含義及其應(yīng)用3國際方面4國內(nèi)方面4超聲波的特點4超聲效應(yīng)4超聲波測距的優(yōu)勢和原理5超聲波傳感器62.5.1超聲波發(fā)生器及其原理6單片機超聲波測距系統(tǒng)構(gòu)成73超聲波硬件設(shè)計方案83.1C8051F410單片機83.1.1系統(tǒng)概述83.1.2C8051F的特點93.1.3C8051F單片機增加的功能93.1.4C8051F單片機的引腳圖103.2超聲波測距系統(tǒng)構(gòu)成103.2.1設(shè)計的思路103.2.2設(shè)計的重點與難點12硬件設(shè)計的原理圖123.3.1MCU及其超聲波驅(qū)動電路123.3.2蜂鳴器電路133.3.340KHZ超聲波接收處理電路133.3.4顯示電路144系統(tǒng)軟件設(shè)計164.1主程序編制及流程圖164.2中斷效勞程序的流程圖16信號處理程序17程序中有關(guān)存儲器、存放器及標志位的內(nèi)容及用途175調(diào)試及性能分析185.1焊接考前須知185.2硬件調(diào)試185.3軟件調(diào)試195.3性能分析21參考文獻22結(jié)束語23致謝24附錄I硬件原理圖25附錄II元器件清單26附錄III程序清單281緒論1.1問題的提出和課題的研究意義隨著科學(xué)技術(shù)的快速開展,超聲波將在測距儀中的應(yīng)用越來越廣泛。但就目前技術(shù)水平來講,人們可以利用的測距技術(shù)還十分的有限。因此,這是一個正在蓬勃開展而有無限前景的技術(shù)及產(chǎn)業(yè)領(lǐng)域。展望未來,超聲波測距儀作為一種新型的非常重要有用的工具在各方面都將有很大的開展空間,它將朝著更加高定位、高精度的方向開展,以滿足日益開展的社會需求,如聲納的開展趨勢根本為:研制具有更高定位精度的被動測距聲納,以滿足水中武器實施全隱蔽攻擊的需要;繼續(xù)開展采用低頻線譜檢測的潛艇拖曳線列陣聲納,實現(xiàn)超遠程的被動探測和識別;研制更適合于淺海工作的潛艇聲納,特別是解決淺海水中目標識別問題;大力降低潛艇自身噪聲,改善潛艇聲納的工作環(huán)境。毋庸置疑,未來的超聲波測距儀將于自動化智能化接軌,與其他的測距儀集成和融合,形成多測距儀。隨著測距儀的技術(shù)進步,測距儀將從具有單純判斷功能開展到具有學(xué)習(xí)功能,最終開展到具有創(chuàng)造力。在新的世紀里面貌一新的測距儀將發(fā)揮更大是的作用。近年來隨著科技的飛速開展,單片機的應(yīng)用正在不斷深入,同時帶動傳統(tǒng)控制檢測技術(shù)日益更新。在實時檢測和自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往作為一個核心部件來使用,僅單片機方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。本文的研究,就是以超聲波為測量工具,通過C8051F410單片機的控制,經(jīng)過一系列轉(zhuǎn)換、放大電路組成超聲波測距儀以實現(xiàn)對處于黑暗、有灰塵、煙霧、電磁干擾、有毒等惡劣的環(huán)境中的被測物的測量。以解除操作員用常規(guī)手段測量距離帶來的不便以及危險,提高測量的平安性?,F(xiàn)狀及超聲波測距優(yōu)勢隨著科學(xué)技術(shù)的開展和工業(yè)生產(chǎn)水平的提高,石油、化工、機械、汽車工業(yè)等各類工業(yè)都得到了迅猛的開展,但隨之而來的技術(shù)落后嚴重制約著工業(yè)的開展步伐,其中,距離的測量尤為突出。目前國內(nèi)一般使用專用集成電路設(shè)計超聲波測距儀,但是專用集成電路的本錢很高,并且顯示距離也比較困難,操作使用也不是很方便,而本設(shè)計研究的測距器本錢低廉,性能優(yōu)良,市場前景極為廣闊,對提高我國超聲波測距工業(yè)實際水平,具有較大的意義,在整個距離變化過程中自動測量距離的遠近,并用數(shù)字顯示出來,在距離到極限距離時會發(fā)出急促的警告聲,提醒操作員注意采取措施。本設(shè)計對于被測物處于黑暗、有灰塵、煙霧、電磁干擾、有毒等惡劣的環(huán)境下有一定的適應(yīng)能力。因此在距離測量、機械手控制、車輛自動導(dǎo)航、物體識別等方面有廣泛應(yīng)用。特別是應(yīng)用于空氣測距,由于空氣中波速較慢,其回波信號中包含的沿傳播方向上的結(jié)構(gòu)信息很容易檢測出來,具有很高的分辨力,因而其準確度也較其它方法為高;而且超聲波傳感器具有結(jié)構(gòu)簡單、體積小、信號處理可靠等特點。超聲波距離測量儀能測量并顯示液位的高度,同時用間歇嘟嘟聲報警,間歇時間隨障礙物距離縮短而縮短。操作員不但可以直接觀察被顯示的距離,還可以用聽覺判斷距離的遠近。利用超聲測距技術(shù)與單片機設(shè)計制作出超聲波距離測量儀。該系統(tǒng)在常見的距離測量裝置的根底上采用計算機控制技術(shù)和超聲波測距技術(shù),通過顯示距離的遠近并根據(jù)其距離遠近實時發(fā)出報警,解除了操作員用常規(guī)手段測量距離帶來的不便以及危險,提高了測量的平安性。隨著工業(yè)水平飛速開展以及人民對物質(zhì)需求水平的不斷提高超聲波測距儀作為一種新型的距離測量方式已經(jīng)被越來越多的行業(yè)所應(yīng)用。同時由于本設(shè)計有著對于被測物處于黑暗、有灰塵、煙霧、電磁干擾、有毒等惡劣的環(huán)境下有一定的適應(yīng)能力特別是應(yīng)用于空氣測距,由于空氣中波速較慢,其回波信號中包含的沿傳播方向上的結(jié)構(gòu)信息很容易檢測出來,具有很高的分辨力,因而其準確度也較其它方法為高,而且超聲波傳感器具有結(jié)構(gòu)簡單、體積小、信號處理可靠等特點。相信在不久的將來超聲波測距將會更加廣闊的應(yīng)用前景。在工業(yè)生產(chǎn)中超聲波測量占據(jù)著極為重要的地位,具有廣闊的應(yīng)用領(lǐng)域液位測量數(shù)據(jù)是實際生產(chǎn)和過程控制的重要參數(shù)儲液罐儲存液體的總量就是利用液位測量進行管理和控制的。超聲波液位測量技術(shù)在石油、化工等工業(yè)領(lǐng)域中得到廣泛應(yīng)用,闡述了該技術(shù)涉及的傳感器結(jié)構(gòu)、安裝方式、遠程控制及信號處理軟件等方面的進展,隨著網(wǎng)絡(luò)通信技術(shù)的應(yīng)用,預(yù)計該技術(shù)將向數(shù)字網(wǎng)絡(luò)是的灌區(qū)液位定位系統(tǒng)開展。2超聲波測距原理概述超聲波的含義及其應(yīng)用當物體振動時會發(fā)出聲音,科學(xué)家們將每秒振動的次數(shù)稱為聲音的頻率,他的單位是HZ。我們?nèi)祟惗淠苈牭铰暡l率為20-20000HZ,當聲波的頻率大于20000HZ或小于20HZ時,我們便聽不到。因此我們把頻率高于20000HZ的聲波稱為超聲波。2.1.2超聲波的含義及其應(yīng)用超聲效應(yīng)已廣泛用于實際,主要有如下幾方面:(1)超聲檢驗。超聲波的波長比一般聲波要短,具有較好的方向性,而且能透過不透明物質(zhì),這一特性已被廣泛用于超聲波探傷、測厚、測距、遙控和超聲成像技術(shù)。超聲成像是利用超聲波呈現(xiàn)不透明物內(nèi)部形象的技術(shù)。把從換能器發(fā)出的超聲波經(jīng)聲透鏡聚焦在不透明試樣上,從試樣透出的超聲波攜帶了被照部位的信息,經(jīng)聲透鏡會聚在壓電接收器上,所得電信號輸入放大器,利用掃描系統(tǒng)可把不透明試樣的形象顯示在熒光屏上,上述裝置稱為超聲顯微鏡。聲全息術(shù)是利用超聲波的干預(yù)原理記錄和重現(xiàn)不透明物的立體圖像的聲成像技術(shù)。用同一超聲信號源鼓勵兩個放置在液體中的換能器,它們分別發(fā)射兩束相干的超聲波:一束透過被研究的物體后成為物波,另一束作為參考波。物波和參考波在液面上相干疊加形成聲全息圖,用激光束照射聲全息圖,利用激光在聲全息圖上反射時產(chǎn)生的衍射效應(yīng)而獲得物的重現(xiàn),通常用攝像機和電視機作實時觀察。(2)超聲處理。利用超聲的機械作用、空化作用、熱效應(yīng)和化學(xué)效應(yīng),可進行超聲焊接、鉆孔、固體的粉碎、乳化、脫氣、除塵、去鍋垢、清洗、滅菌、促進化學(xué)反響和進行生物學(xué)研究等,在工礦業(yè)、農(nóng)業(yè)、醫(yī)療等各個部門獲得了廣泛應(yīng)用。(3)根底研究。超聲波作用于介質(zhì)后,在介質(zhì)中產(chǎn)生聲弛豫過程,聲弛豫過程伴隨著能量在分子各自電度間的輸運過程,并在宏觀上表現(xiàn)出對聲波的吸收〔見聲波〕。通過物質(zhì)對超聲的吸收規(guī)律可探索物質(zhì)的特性和結(jié)構(gòu),這方面的研究構(gòu)成了分子聲學(xué)這一聲學(xué)分支。對頻率在1012赫茲以上的超聲波,波長可與固體中的原子間距相比較,此時必須把固體當作是具有空間周期性的點陣結(jié)構(gòu)。點陣振動的能量是量子化的,稱為聲子〔見固體物理學(xué)〕。特超聲對固體的作用可歸結(jié)為特超聲與熱聲子、電子、光子和各種準粒子的相互作用。對固體中特超聲的產(chǎn)生、檢測和傳播規(guī)律的研究,以及量子液體——液態(tài)氦中,聲現(xiàn)象的研究構(gòu)成了近代聲學(xué)的新領(lǐng)域——量子聲學(xué)。.3國際方面自19世紀末到20世紀初,在物理學(xué)上發(fā)現(xiàn)了壓電效應(yīng)與反壓電效應(yīng)之后,人們解決了利用電子學(xué)技術(shù)產(chǎn)生超聲波的方法,從此迅速揭開了開展與推廣超聲技術(shù)的歷史篇章。1922年,德國出現(xiàn)了首例超聲波治療的創(chuàng)造專利。1939年發(fā)表了有關(guān)超聲波治療取得臨床效果的文獻報道。40年代末期超聲治療在歐美興起,直到1949年召開的第一次國際醫(yī)學(xué)超聲波學(xué)術(shù)會議上,才有了超聲治療方面的論文交流,為超聲治療學(xué)的開展奠定了根底。1956年第二屆國際超聲醫(yī)學(xué)學(xué)術(shù)會議上已有許多論文發(fā)表,超聲治療進入了實用成熟階段。國內(nèi)方面國內(nèi)在超聲治療領(lǐng)域起步稍晚,于20世紀50年代初才只有少數(shù)醫(yī)院開展超聲治療工作,從1950年首先在北京開始用800KHz頻率的超聲治療機治療多種疾病,至50年代開始逐步推廣,并有了國產(chǎn)儀器。公開的文獻報道始見于1957年。到了70年代有了各型國產(chǎn)超聲治療儀,超聲療法普及到全國各大型醫(yī)院。40多年來,全國各大醫(yī)院已積累了相當數(shù)量的資料和比較豐富的臨床經(jīng)驗。特別是20世紀80年代初出現(xiàn)的超聲體外機械波碎石術(shù)和超聲外科,是結(jié)石癥治療史上的重大突破。如今已在國際范圍內(nèi)推廣應(yīng)用。高強度聚焦超聲無創(chuàng)外科,已使超聲治療在當代醫(yī)療技術(shù)中占據(jù)重要位置。而在21世紀(HIFU)超聲聚焦外科已被譽為是21世紀治療腫瘤的最新技術(shù)。超聲波的特點(1)超聲波在傳播時,方向性強,能量易于集中。(2)超聲波能在各種不同媒質(zhì)中傳播,且可傳播足夠遠的距離。(3)超聲波與傳聲媒質(zhì)的相互作用適中,易于攜帶有關(guān)傳聲媒質(zhì)狀態(tài)的信息〔診斷或?qū)髀暶劫|(zhì)產(chǎn)生效應(yīng)〕。超聲波是一種波動形式,它可以作為探測與負載信息的載體或媒介〔如B超等用作診斷〕。聲波同時又是一種能量形式,當其強度超過一定值時,它就可以通過與傳播超聲波的媒質(zhì)的相互作用,去影響,改變以致破壞后者的狀態(tài),性質(zhì)及結(jié)構(gòu)〔用作治療〕。當超聲波在介質(zhì)中傳播時,由于超聲波與介質(zhì)的相互作用,使介質(zhì)發(fā)生物理的和化學(xué)的變化,從而產(chǎn)生一系列力學(xué)的、熱的、電磁的和化學(xué)的超聲效應(yīng),包括以下4種效應(yīng):(1)機械效應(yīng)。超聲波的機械作用可促成液體的乳化、凝膠的液化和固體的分散。當超聲波流體介質(zhì)中形成駐波時,懸浮在流體中的微小顆粒因受機械力的作用而凝聚在波節(jié)處,在空間形成周期性的堆積。超聲波在壓電材料和磁致伸縮材料中傳播時,由于超聲波的機械作用而引起的感生電極化和感生磁化〔見電介質(zhì)物理學(xué)和磁致伸縮〕。(2)空化作用。超聲波作用于液體時可產(chǎn)生大量小氣泡。一個原因是液體內(nèi)局部出現(xiàn)拉應(yīng)力而形成負壓,壓強的降低使原來溶于液體的氣體過飽和,而從液體逸出,成為小氣泡。另一原因是強大的拉應(yīng)力把液體“撕開〞成一空洞,稱為空化??斩磧?nèi)為液體蒸汽或溶于液體的另一種氣體,甚至可能是真空。因空化作用形成的小氣泡會隨周圍介質(zhì)的振動而不斷運動、長大或突然破滅。破滅時周圍液體突然沖入氣泡而產(chǎn)生高溫、高壓,同時產(chǎn)生激波。與空化作用相伴隨的內(nèi)摩擦可形成電荷,并在氣泡內(nèi)因放電而產(chǎn)生發(fā)光現(xiàn)象。在液體中進行超聲處理的技術(shù)大多與空化作用有關(guān)。(3)熱效應(yīng)。由于超聲波頻率高,能量大,被介質(zhì)吸收時能產(chǎn)生顯著的熱效應(yīng)。(4)化學(xué)效應(yīng)。超聲波的作用可促使發(fā)生或加速某些化學(xué)反響。例如純的蒸餾水經(jīng)超聲處理后產(chǎn)生過氧化氫;溶有氮氣的水經(jīng)超聲處理后產(chǎn)生亞硝酸;染料的水溶液經(jīng)超聲處理后會變色或退色。這些現(xiàn)象的發(fā)生總與空化作用相伴隨。超聲波還可加速許多化學(xué)物質(zhì)的水解、分解和聚合過程。超聲波對光化學(xué)和電化學(xué)過程也有明顯影響。各種氨基酸和其他有機物質(zhì)的水溶液經(jīng)超聲處理后,特征吸收光譜帶消失而呈均勻的一般吸收,這說明空化作用使分子結(jié)構(gòu)發(fā)生了改變。超聲波測距的優(yōu)勢和原理由于超聲波指向性強,能量消耗緩慢,在介質(zhì)中傳播的距離較遠,因而超聲波經(jīng)常用于距離的測量,如測距儀和物位測量儀等都可以通過超聲波來實現(xiàn)。超聲測距是一種非接觸式的檢測方式。與其它方法相比,如電磁的或光學(xué)的方法,它不受光線、被測對象顏色等影響。對于被測物處于黑暗、有灰塵、煙霧、電磁干擾、有毒等惡劣的環(huán)境下有一定的適應(yīng)能力。因此在液位測量、機械手控制、車輛自動導(dǎo)航、物體識別等方面有廣泛應(yīng)用。特別是應(yīng)用于空氣測距,由于空氣中波速較慢,其回波信號中包含的沿傳播方向上的結(jié)構(gòu)信息很容易檢測出來,具有很高的分辨力,因而其準確度也較其它方法為高;而且超聲波傳感器具有結(jié)構(gòu)簡單、體積小、信號處理可靠等特點。利用超聲波檢測往往比較迅速、方便、計算簡單、易于做到實時控制,并且在測量精度方面能到達工業(yè)實用的要求。超聲波測距的方法有多種,本超聲波測中系統(tǒng)的原理為:檢測出從超聲波發(fā)射器發(fā)出的超聲波,經(jīng)氣體介質(zhì)的傳播到接收器的時間,將這個時間與氣體中的聲速相乘,就是聲波傳輸?shù)木嚯x。超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時刻的同時單片機開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。超聲波在空氣中的傳播速度隨溫度變化,其對應(yīng)值如表2.1,根據(jù)計時器記錄的時間t(見圖2.1),就可以計算出發(fā)射點距障礙物的距離(s),即:s=vt/2。溫度(℃)-30-20-100102030100聲速(m/s)313319325323338344349386表2.1聲速與溫度的關(guān)系圖2.1超聲波測距時序圖超聲波傳感器.1超聲波發(fā)生器及其原理為了研究和利用超聲波,人們已經(jīng)設(shè)計和制成了許多超聲波發(fā)生器??傮w上講,超聲波發(fā)生器可以分為兩大類:一類是用電氣方式產(chǎn)生超聲波,一類是用機械方式產(chǎn)生超聲波。電氣方式包括壓電型、磁致伸縮型和電動型等;機械方式有加爾統(tǒng)笛、液哨和氣流旋笛等。它們所產(chǎn)生的超聲波的頻率、功率和聲波特性各不相同,因而用途也各不相同。目前較為常用的是壓電式超聲波發(fā)生器。壓電型超聲波傳感器的工作原理:它是利用壓電效應(yīng)的原理,壓電效應(yīng)有逆效應(yīng)和順效應(yīng),超聲波傳感器是可逆元件,超聲波發(fā)送器就是利用壓電逆效應(yīng)的原理。所謂壓電逆效應(yīng)如圖2.2所示,是在壓電元件上施加電壓,元件就變形,即稱應(yīng)變。假設(shè)在圖a所示的已極化的壓電陶瓷上施加如圖b所示極性的電壓,外部正電荷與壓電陶瓷的極化正電荷相斥,同時,外部負電荷與極化負電荷相斥。由于相斥的作用,壓電陶瓷在厚度方向上縮短,在長度方向上伸長。假設(shè)外部施加的極性變反,如圖c所示那樣,壓電陶瓷在厚度方向上伸長,在長度方向上縮短。圖2.2壓電逆效應(yīng)圖2.5.2單片機超聲波測距系統(tǒng)構(gòu)成開始測量開始測量超聲波信號開定時器關(guān)定時器數(shù)據(jù)運算顯示器接收檢測電聲換能器電聲換能器驅(qū)動電路圖2.3超聲波測距系統(tǒng)框圖單片機C8051F410發(fā)出短暫的40kHz信號,經(jīng)放大后通過超聲波換能器輸出;反射后的超聲波經(jīng)超聲波換能器作為系統(tǒng)的輸入,鎖相環(huán)對此信號鎖定,產(chǎn)生鎖定信號啟動單片機中斷程序,讀出時間t,再由系統(tǒng)軟件對其進行計算、判別后,相應(yīng)的計算結(jié)果被送至LCD液晶屏進行顯示。限制超聲波系統(tǒng)的最大可測距離存在四個因素:超聲波的幅度、反射物的質(zhì)地、反射和入射聲波之間的夾角以及接收換能器的靈敏度。接收換能器對聲波脈沖的直接接收能力將決定最小可測距離。3超聲波硬件設(shè)計方案按照系統(tǒng)設(shè)計的功能的要求,初步確定設(shè)計系統(tǒng)由單片機主控模塊、顯示模塊、超聲波發(fā)射模塊、接收模塊共四個模塊組成。單片機使用51系列的C8051F410單片機,該單片機工作性能穩(wěn)定,同時也是在單片機課程設(shè)計中經(jīng)常使用到的控制芯片。發(fā)射電路由單片機輸出端直接驅(qū)動超聲波發(fā)送。接收電路使用三極管組成的放大電路,該電路簡單,調(diào)試工作小較小。超聲波接收模塊超聲波接收模塊超聲波發(fā)射模塊單片機控制系統(tǒng)〔C8051F410〕顯示模塊按鍵供電單元系統(tǒng)設(shè)計框圖硬件電路的設(shè)計主要包括單片機系統(tǒng)及顯示電路、超聲波發(fā)射電路和超聲波接收電路三局部。單片機的晶振采用12MHz高精度的晶振,以獲得較穩(wěn)定時鐘頻率,減小測量誤差。通過單片機的P0.3端口輸出超聲波換能器所需的40kHz的方波信號,P0.5端口監(jiān)測超聲波接收電路輸出的返回信號。顯示電路采用當下最流行的漢顯LCD液晶顯示屏,顯示控制線接入單片機的P2.2、P2.3、P2.4、P2.5、P2.6端口,顯示控制總線接入單片機的P1.0、P1.2、P1.3、P1.4、P1.5、P1.6端口以實現(xiàn)超聲波測距信號的顯示。超聲波接收頭接收到反射的回波后,經(jīng)過接收電路處理后,向單片機輸入一個低電平脈沖。單片機控制著超聲波的發(fā)送,超聲波發(fā)送完畢后,立即啟動內(nèi)部計時器T0計時,當檢測到由高電平變?yōu)榈碗娖胶?,立即停止?nèi)部計時器計時。單片機將測得的時間與聲速相乘再除以2即可得到測量值,最后經(jīng)液晶顯示屏將測得的結(jié)果顯示出來。3.1C8051F410單片機系統(tǒng)概述C8051F系列器件是完全集成的混合信號系統(tǒng)級MCU芯片,有真正的12位多通道ADC(F206),8位多通道ADC(F220/1/6)或沒有ADC,每種器件都有與8051兼容的CIP-51微控制器內(nèi)核和8K字節(jié)的FLASH存儲器,還有硬件實現(xiàn)的UART和SPI串行接口,該系列器件22或32個通用I/O引腳,其中一些引腳用于數(shù)字外設(shè)接口,任何一個端口引腳都可以配置為ADC的模擬輸入。采用流水線結(jié)構(gòu),單周期指令運行速度是8051的12倍,全指令集成運行速度是原來的9.5倍。片內(nèi)還集成了VDD監(jiān)視器,WDI,和時鐘振蕩器,片內(nèi)FLASH存儲器還具有在系統(tǒng)重新編程能力,并可用于非易失性數(shù)據(jù)存儲,可以關(guān)閉任何一個或全部外設(shè)以節(jié)省功耗。所有器件都有256字節(jié)的SRAM,F(xiàn)206/226/236還另有1024字節(jié)的RAM.片內(nèi)JTAG調(diào)試支技功能允許使用安裝在最終應(yīng)用系統(tǒng)上的產(chǎn)品MCU進行非侵入式〔不占用片內(nèi)資源〕全速系統(tǒng)調(diào)試。該調(diào)試系統(tǒng)支持觀察和修改存儲器和存放器,支持斷點,觀察點,單步及運行和停機命令。在使用JTAG調(diào)試時,所有的模擬和數(shù)字外設(shè)都可全功能運行。每個MCU都可以在工業(yè)溫度范圍內(nèi)用2.7V-3.6V的電壓工作,有48腳TQFP和32腳LQFP封裝端口I/O容許5V的輸入信號。3.C8051F的特點(1)高速流水線結(jié)構(gòu)的8051與MCS-51指令集完全兼容(2)4個8位寬的I/O端口(3)峰值速度達25MIPS〔時鐘為25MHZ時〕(4)全速非侵入式的在系統(tǒng)調(diào)試接口片內(nèi),真正12位〔8051F020〕,或10位C8051F02213100KSPS的8位通道ADC帶PGA和模擬多路開關(guān)。(5)0~25MHZ的時鐘頻率(6)電源管理方式(7)可選的1024字節(jié)XRAM(8)8K字節(jié)FLASH程序存儲器(9)片內(nèi)看門狗定時器,VDD監(jiān)視器和溫度傳感器。3.C8051F單片機增加的功能在CIP-51內(nèi)核的內(nèi)部和外部有幾項關(guān)鍵性的改良,提高了整體性能更易于在最終應(yīng)用中使用。擴展的中斷系統(tǒng)向CIP-51提供22個中斷源,標準〔8051只有7個中斷源〕允許大量的模擬和數(shù)字外設(shè)中斷微控制器,一個中斷驅(qū)動的系統(tǒng)需要較少的MCU干預(yù),卻有更高的執(zhí)行效率,在設(shè)計一個多任務(wù)實時系統(tǒng)時,這些增加的中斷源是非常有用的。MCU可有多達6個復(fù)位源;一個片內(nèi)VDD監(jiān)視器,一個看門狗定時器,一個時鐘喪失檢測器,一個由比較器0提供的電壓檢測器,一個軟件強制復(fù)位以及外部復(fù)位引腳,/RST引腳是雙向的可接受外部復(fù)位或?qū)?nèi)部產(chǎn)生的上電復(fù)位信號輸出到/RST引腳,通過將MONE引腳拉為高電平來使能片內(nèi)VDD監(jiān)視器除了VDD監(jiān)視器和復(fù)位輸入引腳以外,每個復(fù)位源都可以由用戶軟件禁止。在一次上電復(fù)位之后的MCU初始化期間,WDT可以一直被允許。C8051F020內(nèi)部電路包括CIP-51微控制器內(nèi)核及RAM,RO,I/O口,定時/計數(shù)器。ADC,DAC,PCA,SPI和SMBVS等部件。即把計算機的根本組成單元以及模擬和數(shù)字外設(shè)集成在一個芯片上,構(gòu)成一個完整的片上系統(tǒng)〔SOS〕.3.C8051F單片機的引腳圖圖3.2C3.2超聲波測距系統(tǒng)構(gòu)成設(shè)計的思路本系統(tǒng)的設(shè)計思想是采用以C8051F單片機為核心,來設(shè)計一種低本錢、高精度、微型化數(shù)字顯示超聲波測距儀。超聲波測距可測出回波和發(fā)射脈沖之間的時間間隔,利用S=Ct/2就可以算出距離,再在LCD上顯示出來。當然還可以設(shè)置假設(shè)干個鍵,以用來控制電路的工作狀態(tài)。限制的最引腳名稱F226,F230,48F221,F231,32類型說明VDD11,318數(shù)字電源GND5,6,8,139地XTAL196模擬輸入為晶體或陶瓷諧振器的內(nèi)部振蕩電路XTAL2107模擬輸出為晶體或陶瓷諧振器的鼓勵驅(qū)動器4028數(shù)字I/O口模擬輸入端口0位03927數(shù)字I/O口模擬輸入端口0位13826數(shù)字I/O口模擬輸入端口0位23725數(shù)字I/O口模擬輸入端口0位33624數(shù)字I/O口模擬輸入端口0位43523數(shù)字I/O口模擬輸入端口0位53422數(shù)字I/O口模擬輸入端口0位63321數(shù)字I/O口模擬輸入端口0位72416數(shù)字I/O口模擬輸入端口2位02315數(shù)字I/O口模擬輸入端口2位1P2,2/MOSI2214數(shù)字I/O口模擬輸入端口2位22113數(shù)字I/O口模擬輸入端口2位31511數(shù)字I/O口模擬輸入端口2位41612數(shù)字I/O口模擬輸入端口2位517數(shù)字I/O口模擬輸入端口2位618數(shù)字I/O口模擬輸入端口2位744數(shù)字I/O口模擬輸入端口3位0表3.1C大可測距離存有四個因素:超聲波的幅度,反射面的質(zhì)地,反射面和入射聲波之間的夾角以及接收換能器的靈敏度。接收換能器對聲波脈沖的直接接收能力將決定最小的可測距離。根據(jù)設(shè)計要求并綜合各方面因素,采用C8051F單片機作為主控制器,用動態(tài)掃描法實現(xiàn)LCD液晶屏數(shù)字顯示,超聲波驅(qū)動信號可以用單片機的定時器和計數(shù)器來完成。設(shè)計的重點與難點本設(shè)計的任務(wù)是設(shè)計一個超聲波測距儀,可以應(yīng)用于汽車倒車位置監(jiān)控,也可用于如液位、井深、管道長度的測量等場合。測量范圍在0-1m,測量精度1-2cm,測量時與被測物體無直接接觸,能夠清晰穩(wěn)定地顯示測量結(jié)果。系統(tǒng)組成的設(shè)計:各局部硬件的選取很有講究,要十分合理。設(shè)計的難點是:(1)超聲波信號的接收、發(fā)射的設(shè)計(2)顯示電路設(shè)計(3)流程圖及程序的設(shè)計MCU及其超聲波驅(qū)動電路圖3.3MCU及其超聲波驅(qū)動電路圖電路如圖3.3所示。圖為超聲波測距儀的MCU及其超聲波驅(qū)動電路原理圖,圖中采用C8051F單片機作為主控制器,通過單片機的P0.3端口輸出超聲波換能器所需的的方波信號,信號又經(jīng)過兩極74LS04反相器后驅(qū)動超聲波探頭發(fā)射超聲波。兩個反相器。P0.3輸出高電平時,兩個反相器通路,發(fā)射40KHZ超聲波;P0.3輸出低電平時,停止發(fā)射。反相器的作用是防止單片機初始化時超聲波探頭瞬間動作。蜂鳴器電路電路如下圖。通過供電電路給蜂鳴器電路供+5V電源,接入蜂鳴器BEER的第一引腳作為供電電源。蜂鳴器的第二引腳接入三極管S8050的集電極同時將S8050的發(fā)射極接地,然后有單片機的P2.1控制S8050做蜂鳴器的開關(guān)使用。當單片機發(fā)出高電平是三極管導(dǎo)通,蜂鳴器發(fā)出聲音;當單片機P2.1口發(fā)出低電平時蜂鳴器不發(fā)聲。圖蜂鳴器電路圖3.3.340KHZ超聲波接收處理電路電路圖如圖3.5所示。超聲波探頭接收由障礙物反射回來的超聲波。其中,AD620作為第一級放大電路對接收回來的超聲波信號進行一千倍的信號放大,然后將信號送入TL084進行信號的第二級放大,放大20倍。信號再進入由TL084組成的一階濾波電路同時進行兩倍信號放大。然后信號進入由兩個TL084組成的帶通濾波電路進行濾波同時將信號放大兩倍。然后信號進入由TL084和兩個超級二極管組成的整形電路同時將電信號由交流轉(zhuǎn)換成直流。信號在進入由TL084和C23、C24組成的電路對直流信號進行放大。信號進入由TL084組成的電壓跟隨器增加抗干擾能力并且加大驅(qū)動能力。信號在進入單片機前流經(jīng)由LM358組成的鉗位電路,此電路將電流信號降壓到2.8V用于保護單片機防止單片機被燒毀。超聲波接收頭接收到反射的回波后,經(jīng)過接收電路處理后,向單片機P0.5輸入一個低電平脈沖。單片機控制著超聲波的發(fā)送,超聲波發(fā)送完畢后,立即啟動內(nèi)部計時器T0計時,當檢測到P0.5由高電平變?yōu)榈碗娖胶?,立即停止?nèi)部計時器計時。單片機將測得圖40KHZ超聲波接收處理電路的時間與聲速相乘再除以2即可得到測量值,最后經(jīng)液晶顯示屏將測得的結(jié)果顯示出來。顯示電路圖3.6液晶顯示電路本系統(tǒng)采用液晶顯示屏顯示所測距離值,如圖。顯示電路采用當下最流行的漢顯LCD液晶顯示屏,顯示控制線接入單片機的P2.2、P2.3、P2.4、P2.5、P2.6端口,顯示控制總線接入單片機的P1.0、P1.2、P1.3、P1.4、P1.5、P1.6端口以實現(xiàn)超聲波測距信號的顯示。4系統(tǒng)軟件設(shè)計4.1主程序編制及流程圖為主程序流程圖。開機后先顯示“寧夏理工學(xué)院〞亮燈并且蜂鳴器發(fā)聲,表示開始工作。T0用于記錄發(fā)射至接收的時間間隔t(單位為ms)。初始化后,程序控制發(fā)射40KHZ的超聲波信號,發(fā)射開始立即啟動定時器開始計時。發(fā)射完成。CPU接收回波信號后,立即產(chǎn)生中斷同時立即停止計數(shù)。定時器專門用于記錄CPU發(fā)射脈沖信號前沿至回波脈沖信號前沿之間的距離t,由此時間可換算出障礙物的距離,并決定嘟聲間隙??稍O(shè)定T1的定時值,用來控制嘟聲間隙時間和閃爍顯示時間。綜合考慮各類因素及實際情況,為了使計算簡化,取空氣中聲速為340m/s,或34cm/ms,那么障礙物距離d的計算公式如下d=(t*34cm/ms)/2=t*17cm/ms.N開始初始化處理信號,計算距離等待回波中斷發(fā)射超聲波,開始計時,停止發(fā)射超聲波N開始初始化處理信號,計算距離等待回波中斷發(fā)射超聲波,開始計時,停止發(fā)射超聲波有回波否?有回波否?、?YY4.2中斷效勞程序的流程圖CPU接收回波信號后,立即產(chǎn)生INT0中斷同時T0立即停止計數(shù)取計數(shù)值置有回波標志。定時器T0專門用于記錄CPU發(fā)射脈沖信號前沿至回波脈沖信號前沿之間的距離t,由此時間可換算出障礙物的距離,并決定嘟聲間隙??稍O(shè)定T1的定時值,用來控制嘟聲間隙時間和閃爍顯示時間。INT0中斷INT0中斷T0停止取計數(shù)值置有回波標志T0停止取計數(shù)值置有回波標志中斷返回中斷返回信號處理程序信號處理首先判斷有無回波信號。假設(shè)無回波信號,那么說明距離沒有超過警戒距離,或所測距離較遠已超出最大探測距離,此時置閃爍顯示“〞并發(fā)出長嘟聲。空中有各種干擾信號,如工業(yè)粉塵,機器運轉(zhuǎn)時發(fā)出的噪聲。這些噪聲中含有40KHZ的諧波成分,被放大后可能引起顯示干擾。另外,電子設(shè)備特別是剛啟動時,電源中也有許多干擾脈沖。因此,除在硬件電路中采取措施外,軟件中還要參加抗干擾程序。一般可根據(jù)距離變化的速度和回波信號脈寬來分析,對接收的信號進行甄別,篩選出正確信號。4.4程序中有關(guān)存儲器、存放器及標志位的內(nèi)容及用途32H掃描顯示循環(huán)數(shù)40H個位顯示符存放器41H十位顯示符存放器42H百位顯示符存放器44H嘟聲方波脈寬值45H閃爍顯示間隙系數(shù)50H1#信號低8位51H1#信號高8位52H2#信號低8位53H2#信號高8位54H3#信號低8位55H3#信號高8位56H4#信號低8位57H4#信號高8位R2信號計數(shù)器R3連續(xù)無回波計數(shù)器標志位:11H1#信號存儲標志12H2#信號存儲標志13H3#信號存儲標志01H回波標志。01H=1,有回波;01H=0,無回波5調(diào)試及性能分析5.1焊接考前須知因為考慮到做好的傳感器要具有一定的使用價值,所以體積要略有控制,使用了一些SMD器件,給焊接帶來了難度,但對于我來講即使一個挑戰(zhàn)同樣也是一個挑戰(zhàn)自我的時機。首先要有適宜的工具,我選擇的是30W的尖頭烙鐵;尖頭鑷子,用于抓取小器件。由于需要焊接一些SMD器件,所以我選擇了0.3mm的細焊錫絲。焊接是3要注意焊接的順序:先焊小的SMD器件然后在按器件的高度從矮到高依次焊接直插器件,體積較大的器件最后焊接,如本設(shè)計中的超聲波傳感器等。在焊接SMD器件時可先將器件的一個焊盤上錫〔注意:先給接大面積地線的器件上錫,因為大面積地線的散熱作用明顯,會給后續(xù)焊接帶來麻煩!〕然后用尖鑷子拿住器件,先放在沒有焊錫的焊盤上,再用鑷子夾住〔這樣可以保證器件貼著PCB〕器件,同時用烙鐵熔化上好錫的焊盤,平推器件到焊錫中〔注意:為了方便另外一個焊盤的焊接,可適當偏向已上錫的焊盤,另一側(cè)焊盤留下較大的空間〕。然后,用免清洗的助焊劑略涂一些,用細焊錫絲逐腳焊接,方法和焊接直插器件類似,先放上烙鐵頭,略延時后將焊錫絲送上,只是時間稍短,焊錫不要給的太多,以免連焊到一塊。全部焊好之后,可以用烙鐵尖點IC引腳的端頭,再次讓焊點熔化一次,使焊錫更好的將引腳和PCB連接。硬件調(diào)試我對各個器件調(diào)試的步驟是先焊接各個模塊,焊接完每個模塊以后,再進行模塊的單獨測試,以確保在整個系統(tǒng)焊接完能正常的工作,原件安裝完畢后,將寫好程序的C8051F410單片機裝到測距板上,通電后將測距板的超聲波頭對著墻面往復(fù)移動,看液晶屏的顯示結(jié)果會不會變化,在測量范圍內(nèi)能否正常顯示。如果一直顯示“---〞,說明所測距離超過量程,需要縮短距離。試驗板中的聲速沒有進行溫度補償,聲速值為340m/s首先,在焊接完成后,調(diào)試屏幕顯示局部,發(fā)現(xiàn)顯示背光異常,經(jīng)檢測發(fā)現(xiàn)原理圖繪制錯誤導(dǎo)致,在電路板后側(cè)割線,飛線完成。其次,在調(diào)試超聲波接收局部時,發(fā)現(xiàn)單片機工作異常,經(jīng)過分析得到超聲波回波信號被放大后電壓超過單片機所能承受的5V以上。在電路板上加了保護裝置,一個穩(wěn)壓二極管,和一個電阻,問題解決。再其次,在調(diào)試超聲波接收局部時,發(fā)現(xiàn)波形不正常且波形緩慢,經(jīng)分析得知是電容C23、C24組成的濾波電路對波形造成的影響。去掉C23、C24濾波電容,然后觀察波形,病癥消失,問題解決。再次,蜂鳴器型號錯誤,導(dǎo)致上電單片機復(fù)位,更換適宜的蜂鳴器,問題解決。最后,超聲波回波信號,接收到以后,進行放大。放大以后進過單片機內(nèi)部的比較器進行比較。得到一個比較輸出信號。在調(diào)試過程中,發(fā)現(xiàn)測距的量程大小與比較器的比較電壓有關(guān)??梢哉{(diào)節(jié)電位器,獲得適宜的靈敏度。軟件調(diào)試軟件調(diào)試過程中,主要是決定超聲波的發(fā)送時間長短,經(jīng)過調(diào)整時間,可以得到一個適宜的發(fā)射功率。在程序中的延時值為200。超聲波發(fā)送結(jié)束后,需要快速復(fù)位計數(shù)器的值,開始計數(shù)。等到回波信號收到以后,單片機捕捉模塊,捕捉到信號的下降沿,這時可以認為回波到達。關(guān)閉計數(shù)器,取出計數(shù)值。將計數(shù)值轉(zhuǎn)換為時間值,這個要根據(jù)時鐘頻率,分頻系數(shù)等決定。在程序中已有說明。下列圖為測試時截取的波形,通過波形的變化說明測試的過程。說明超聲波發(fā)送時間是一個很短暫的時間,從波形中可以很明顯看到超聲波發(fā)射波形拉開后的狀況,可以清晰看到發(fā)送波形的周期超聲波發(fā)射端管腳波形,有明顯的毛刺,這說明超聲波被驅(qū)動可以清晰看到發(fā)送與接收到回波的時間差5.3性能分析從實物測試的總體來說本測距板根本上到達了要求,理想上超聲波測距能到達5到7米左右,而我們所能實現(xiàn)的最大距離只有1米,測量結(jié)果受環(huán)境溫度影響。分析原因如下:(1)長距離的測量需要大功率的超聲波驅(qū)動電路,但由于大功率的驅(qū)動電路在制作本錢、產(chǎn)品體積等方面存在著諸多的制約因素,綜合各方面的因素本設(shè)計采用沒有采用大功率驅(qū)動電路,所以測量距離只有1米。(2)超聲波在空氣中的傳播速度受溫度的影響,但由于加溫度補償電路會增加制作本錢以及產(chǎn)品體積,不加溫度補償電路對精度的影響不是太大,綜合各方面因素本測距板沒設(shè)計溫度補償電路,來對測量結(jié)果進行修正。所以測量一米的誤差在1—2cm。參考文獻陳富安.單片機與可編程控制器應(yīng)用技術(shù)[M].北京:電子工業(yè)出版社,,11~20張齊.單片機應(yīng)用系統(tǒng)設(shè)計技術(shù)[M].北京:電子工業(yè)出版社,,102~120李剛.單片機應(yīng)用系統(tǒng)設(shè)計技術(shù)[M].西安:電子科技大學(xué)出版社,,205~220李冰.80C51嵌入式系統(tǒng)編程[M].北京:清華大學(xué)出版社,2005,65~76徐愛卿.MCS-51/96單片機原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2006,234~240蔡振江.單片機原理及應(yīng)用[M].北京:電子工業(yè)出版社,1996,140~164張毅剛.新編MSC-51單片機應(yīng)用設(shè)計[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2003,50~65[8]樊尚春.傳感器技術(shù)及應(yīng)用[M].北京:航空航天大學(xué)出版社,,45~50[9]呂建平、梅軍進等.電子線路CAD[M].北京大學(xué)出版社,90~100[10]胡輝.單片機原理及接口技術(shù)[M].北京:中國水利水電出版社,1999,209~310結(jié)束語為期兩個月的畢業(yè)設(shè)計即將結(jié)束,我也完成了自己的畢業(yè)設(shè)計任務(wù)“超聲波距離測量〞。通過親手做畢業(yè)設(shè)計,我發(fā)現(xiàn)了自己知識的匱乏和能力的欠缺,我覺得自己對專業(yè)知識的認識、理解是比較淺薄的。在設(shè)計過程中,我遇到了許多問題,例如:各硬件芯片的選擇,流量計局部設(shè)計,軟件的編程等。不過這些問題在馬老師的細心幫助下一點一點地解決了。實際的應(yīng)用加深了我對大學(xué)所學(xué)的軟、硬件知識的理解。單片機的選用與學(xué)習(xí)增強了我們的實際分析解決問題的能力。這次設(shè)計讓我初次體驗了設(shè)計的過程,學(xué)習(xí)了開發(fā)應(yīng)用的主要方法,也讓我意識到理論知識與實際應(yīng)用之間的距離。在本設(shè)計中沒有涉及到芯片內(nèi)部的元件設(shè)計,另外就軟件設(shè)計而言也存在著一些缺乏之處,我相信這些缺乏之處在以后的工作和學(xué)習(xí)中會得到改良。畢業(yè)設(shè)計作為大學(xué)階段的最后一項任務(wù),是對自己大學(xué)四年來學(xué)習(xí)水平的綜合檢驗。它能使我對所學(xué)的知識有一個系統(tǒng)的把握,并在此根底上做到融會貫穿。同時,對自己自學(xué)能力的培養(yǎng)等都大有裨益。轉(zhuǎn)眼間畢業(yè)設(shè)計已接近尾聲,在這兩個多月里,無論是在專業(yè)知識,還是在專業(yè)技能方面自己都得到了很好的鍛煉,并有相應(yīng)的提高,作為大學(xué)四年學(xué)習(xí)的總結(jié),使我認識到學(xué)習(xí)過程中的許多缺陷與缺乏,并對所學(xué)的專業(yè)知識進行了重新溫習(xí)與整理,使許多獨立的專業(yè)課程在實踐中得到了融會貫穿。這將對我今后的學(xué)習(xí)和工作起到了很大的幫助作用,讓我認識到了必須踏踏實實的學(xué)習(xí),決不能眼高手低,要注重理論與實踐的結(jié)合。致謝我經(jīng)過這次系統(tǒng)的課程設(shè)計,熟悉了對一項課題進行研究、設(shè)計和實驗的詳細過程。這些在我將來的工作和學(xué)習(xí)當中都會有很大的幫助。課程設(shè)計培養(yǎng)了嚴肅認真和實事求是的科學(xué)態(tài)度。而且培養(yǎng)了吃苦耐勞的精神,同學(xué)之間的友誼互助也充分的在課程設(shè)計當中表達出來了。在本次畢業(yè)設(shè)計的歷程中,自己遇到了許多想不到的困難。同時在畢業(yè)設(shè)計中,遇到了很多沒見到的問題與現(xiàn)象,真是學(xué)到了很多新的東西。本次畢業(yè)設(shè)計的完成,除了自己的努力外,好多人給予了很多的幫助,有些問題才能得以順利解決。在這次的畢業(yè)設(shè)計過程中,我遇到了好多不懂的問題,都是馬俊濤老師耐心幫助與指導(dǎo),當我遇到問題時,總能夠熱心指導(dǎo),耐心教育。在這里還要感謝同組同學(xué),在最后的論文定稿期間,給了我巨大的幫助,同時也教會了我不少的東西,在這里對他的熱心幫助表示衷心的感謝。畢業(yè)設(shè)計結(jié)束了,給我留下了美好的回憶。路漫漫其修遠兮,吾將上下而求索。所以最后我再一次衷心感謝馬附錄I硬件原理圖附錄II元器件清單CommentFootprintDesignators0805-CC2550805-CC9170R1206R5R43R42R44100R0805R39R38R37R84100uf/50VE4E3E1310K0805R40R29R28R27R26R24R23R22R21R20R16R15R913-12V0805-LEDD611K0805R36R33R7R6R2R35R3471N4148LL-34D9D821N5819D511uf0805-CC11820K0805R11R1022K0805R17R1220805-LEDD71330R805R31805R251430R805R191430R805R181430R805R141430R805R131470uf/16VE2147uf/25V47UF_SMDE5147uHL11805R411560R805R115V0805-LEDD4174LS04SO-14U517805D-PAKU11AD620DIP8U71AMS1117SOT-223-CU31BAT54SLT1_1SOT-23-1D11D102BELLB11C8051F410/2LQFP-32U41CON10IDE10J21CON16LM16080-1J41CON3CON3J31CON4J11LM358SO-8U101MAX765DIP8U21MMBT2222SOT-23-1Q11POTTO-220-AVR11RES-S805R321RES-S805R311RES-S805R301SM4007SM-1D3D2D13SPEAKERS2S12SW-PBSW-1S31TL084SO-14U9U82附錄III程序清單主程序#include"c8051F410.h" //包含了數(shù)據(jù)代碼定義#include"initialization.h" //包含了所有外設(shè)的初始化#include"display.h"xdataunsignedintDISBUF[17];unsignedinttime_use;sbitbeep=P2^1;xdatacharcount_num_s;voidmain(void){ unsignedcharxdatai,j=0; EA=0; PCA0MD&=~0x40;//WDTE=0〔去除看門狗使能〕//WDTE=0〔去除看門狗使能〕 PCA0MD=0x00; Init_Device(); //設(shè)備硬件初始化 lcd_init(); //顯示屏初始化,顯示標志等 beep=0; //關(guān)閉蜂鳴器 for(i=0;i<50;i++) //給定一個較長的延時,等待設(shè)備初始化完成 { delay(50000); delay(50000); } //EA=1; count_num_s=1; //將超聲波發(fā)送次數(shù)設(shè)置為1,以便第一次超聲波發(fā)送 //============一下是顯示圖標和固定字符===================// WriteGraphic(2,0,48,160,Graphic_Clear160); WriteGraphic(3,16,16,8,DISP[0]); WriteGraphic(3,24,16,8,DISP[1]); WriteGraphic(3,32,16,8,DISP[2]); WriteGraphic(3,40,16,8,DISP[3]); WriteGraphic(3,48,16,8,DISP[4]); WriteGraphic(3,88,16,8,DISP[5]); WriteGraphic(3,96,16,8,DISP[6]); WriteGraphic(3,104,16,8,DISP[7]); WriteGraphic(3,112,16,8,DISP[8]); WriteGraphic(3,120,16,8,DISP[4]);WriteGraphic(5,32,16,8,DISP[10]); WriteGraphic(5,40,16,8,DISP[11]); WriteGraphic(5,48,16,8,DISP[12]); WriteGraphic(5,56,16,8,DISP[13]); WriteGraphic(5,64,16,8,DISP[14]); WriteGraphic(5,72,16,8,DISP[15]); WriteGraphic(5,80,16,8,DISP[4]); //============一下是顯示圖標和固定字符END===================// while(1) //進入循環(huán)局部,循環(huán)發(fā)送超聲波,一個很短時間的超聲波 { beep=0; if(count_num_s==1) //啟動第一次的超聲波發(fā)送,以后到收到返回波形后,會自動復(fù)位到這里繼續(xù)發(fā)送 { PCA0CPM2=0x47; //翻開發(fā)送40KHZ的方波,占空比為50% delay(200);//發(fā)送超聲波時間,可以調(diào)整,以便實現(xiàn)較好的靈敏度 PCA0CPM2=0x01; //關(guān)閉發(fā)送40KHZ的方波 TH1=0x00; //復(fù)位定時器的值為零 TH1=0x00; TR1=1; //翻開計數(shù)器 count_num_s=0; } S=time_use*314; //測得距離就等于時間乘以速度 //=========以下是顯示測得的距離======================= WriteGraphic(2,0,48,160,Graphic_Clear160); WriteGraphic(3,16,16,8,DISP[0]); WriteGraphic(3,24,16,8,DISP[1]); WriteGraphic(3,32,16,8,DISP[2]); WriteGraphic(3,40,16,8,DISP[3]); WriteGraphic(3,48,16,8,DISP[4]); WriteGraphic(3,88,16,8,DISP[5]); WriteGraphic(3,96,16,8,DISP[6]); WriteGraphic(3,104,16,8,DISP[7]); WriteGraphic(3,112,16,8,DISP[8]); WriteGraphic(3,120,16,8,DISP[4]); WriteGraphic(5,32,16,8,DISP[10]); WriteGraphic(5,40,16,8,DISP[11]); WriteGraphic(5,48,16,8,DISP[12]); WriteGraphic(5,56,16,8,DISP[13]); WriteGraphic(5,64,16,8,DISP[14]); WriteGraphic(5,72,16,8,DISP[15]); WriteGraphic(5,80,16,8,DISP[4]); //=========以下是顯示測得的距離END======================= delay(50000); delay(50000); delay(50000); delay(50000); delay(50000); delay(50000); delay(50000); delay(50000); delay(50000); delay(50000); delay(50000); delay(50000); delay(50000); }}voidPCA_ISR(void)interruptINTERRUPT_PCA0using3 //收到回波信號后的中斷程序,所以在主程序里看不到時間計算程序。{ if(CF==1) { CF=0; } if(CCF0==1) { CCF0=0; } if(CCF1==1) { CCF1=0; } if(CCF2==1) //如果收到回波,那么開始處理 { CCF2=0; {TR1=0; //關(guān)閉計數(shù)器time_use=TH1; //讀取計數(shù)器的值,低字節(jié)time_use=(time_use<<8)|TL1;//將上下字節(jié)連接起來,組成最終的時間TL1=0; //時間值取走后,將計數(shù)器復(fù)位TH1=0;count_num_s=1; //將超聲波發(fā)送次數(shù)設(shè)置為1,以便在主程序里可以發(fā)送下一次超聲波 } } if(CCF3==1) { CCF3=0; }}///////////////////////////////////////GeneratedInitializationFile///////////////////////////////////////#include"c8051F410.h"http://Peripheralspecificinitializationfunctions,//CalledfromtheInit_Device()functionvoidPCA_Init(){PCA0CN=0x40;PCA0MD&=~0x40;PCA0MD=0x03;PCA0CPM0=0x21;PCA0CPM1=0x11;PCA0CPM2=0x47;PCA0CPH2=0x4D;}voidComparator_Init(){inti=0;CPT0CN=0x85;for(i=0;i<35;i++);//Wait10usforinitializationCPT0CN&=~0x30;CPT0MX=0x22;CPT0MD=0x80;}voidPort_IO_Init(){//P0.0-CP0(Cmp0),Open-Drain,Digital//P0.1-CEX0(PCA),Open-Drain,Digital//P0.2-CEX1(PCA),Open-Drain,Digital//P0.3-CEX2(PCA),Push-Pull,Digital//P0.4-Skipped,Open-Drain,Analog//P0.5-Skipped,Open-Drain,Analog//P0.6-Unassigned,Open-Drain,Digital//P0.7-Unassigned,Open-Drain,Digital//P1.0-Unassigned,Push-Pull,Digital//P1.1-Unassigned,Push-Pull,Digital//P1.2-Unassigned,Push-Pull,Digital//P1.3-Unassigned,Push-Pull,Digital//P1.4-Unassigned,Push-Pull,Digital//P1.5-Unassigned,Push-Pull,Digital//P1.6-Unassigned,Push-Pull,Digital//P1.7-Unassigned,Push-Pull,Digital//P2.0-Unassigned,Push-Pull,Digital//P2.1-Unassigned,Push-Pull,Digital//P2.2-Unassigned,Push-Pull,Digital//P2.3-Unassigned,Push-Pull,Digital//P2.4-Unassigned,Push-Pull,Digital//P2.5-Unassigned,Push-Pull,Digital//P2.6-Unassigned,Push-Pull,Digital//P2.7-Unassigned,Open-Drain,DigitalP0MDIN=0xCF;P0MDOUT=0x08;P1MDOUT=0xFF;P2MDOUT=0x7F;P0SKIP=0x30;P0ODEN=0xFF;XBR0=0x10;XBR1=0xC3;}voidTimer_Init(){TCON=0x40;TMOD=0x10;}voidOscillator_Init(){inti=0;OSCICN=0x87;}voidInterrupts_Init(){//EIE1=0x10;//EIP1=0x10;IE=0x08;}//Initializationfunctionfordevice,//CallInit_Device()fromyourmainprogramvoidInit_Device(void){PCA_Init(); //計數(shù)器陣列初始化,主要負責(zé)超聲波發(fā)送 Port_IO_Init(); //端口初始化,所有的端口在這里初始化Timer_Init(); //超聲波回波計數(shù)器初始化,主要是計算回波的時間Comparator_Init();//比較器初始化,這個比較器作用是比較回波是否有效Oscillator_Init(); //時鐘初始化,系統(tǒng)使用內(nèi)部時鐘Interrupts_Init(); //中斷初始化,定時器等中斷的初始化工作單片機初始化程序///////////////////////////////////////GeneratedInitializationFile///////////////////////////////////////#include"c8051F410.h"http://Peripheralspecificinitializationfunctions,//CalledfromtheInit_Device()functionvoidPCA_Init(){PCA0CN=0x40;PCA0MD&=~0x40;PCA0MD=0x03;PCA0CPM0=0x21;PCA0CPM1=0x11;PCA0CPM2=0x47;PCA0CPH2=0x4D;}voidComparator_Init(){inti=0;CPT0CN=0x85;for(i=0;i<35;i++);//Wait10usforinitializationCPT0CN&=~0x30;CPT0MX=0x22;CPT0MD=0x80;}voidPort_IO_Init(){//P0.0-CP0(Cmp0),Open-Drain,Digital//P0.1-CEX0(PCA),Open-Drain,Digital//P0.2-CEX1(PCA),Open-Drain,Digital//P0.3-CEX2(PCA),Push-Pull,Digital//P0.4-Skipped,Open-Drain,Analog//P0.5-Skipped,Open-Drain,Analog//P0.6-Unassigned,Open-Drain,Digital//P0.7-Unassigned,Open-Drain,Digital//P1.0-Unassigned,Push-Pull,Digital//P1.1-Unassigned,Push-Pull,Digital//P1.2-Unassigned,Push-Pull,Digital//P1.3-Unassigned,Push-Pull,Digital//P1.4-Unassigned,Push-Pull,Digital//P1.5-Unassigned,Push-Pull,Digital//P1.6-Unassigned,Push-Pull,Digital//P1.7-Unassigned,Push-Pull,Digital//P2.0-Unassigned,Push-Pull,Digital//P2.1-Unassigned,Push-Pull,Digital//P2.2-Unassigned,Push-Pull,Digital//P2.3-Unassigned,Push-Pull,Digital//P2.4-Unassigned,Push-Pull,Digital//P2.5-Unassigned,Push-Pull,Digital//P2.6-Unassigned,Push-Pull,Digital//P2.7-Unassigned,Open-Drain,DigitalP0MDIN=0xCF;P0MDOUT=0x08;P1MDOUT=0xFF;P2MDOUT=0x7F;P0SKIP=0x30;P0ODEN=0xFF;XBR0=0x10;XBR1=0xC3;}voidTimer_Init(){TCON=0x40;TMOD=0x10;}voidOscillator_Init(){inti=0;OSCICN=0x87;}voidInterrupts_Init(){//EIE1=0x10;//EIP1=0x10;IE=0x08;}//Initializationfunctionfordevice,//CallInit_Device()fromyourmainprogramvoidInit_Device(void){PCA_Init(); //計數(shù)器陣列初始化,主要負責(zé)超聲波發(fā)送 Port_IO_Init(); //端口初始化,所有的端口在這里初始化Timer_Init(); //超聲波回波計數(shù)器初始化,主要是計算回波的時間Comparator_Init(); //比較器初始化,這個比較器的作用是用來比較回波是否有效Oscillator_Init(); //時鐘初始化,系統(tǒng)使用內(nèi)部時鐘Interrupts_Init(); //中斷初始化,定時器等中斷的初始化工作}}顯示驅(qū)動程序#include"c8051F410.h" //包含了數(shù)據(jù)代碼定義#include"Font_library.h" //包含了數(shù)據(jù)代碼定義/*=========并口數(shù)據(jù)線============*/#defineLCDBusP1//P3/*=========控制信號線===========*/sbit_CS1=P2^2;//片選sbit_RST=P2^3;//存放器選擇sbitRS=P2^4;//寫信號sbit_WR=P2^5;//讀信號sbit _RD=P2^6;//復(fù)位信號//==========變量申明============xdataunsignedintBLA_Count;//背光控制變量,用來計時用xdataunsignedcharContrastLevel;//forcontrastsettinglevelbitBla_Flag;//=====================函數(shù)申明=====================voidlcd_delay(unsignedinttime); //LCD延時函數(shù)voiddelay(unsignedintm);voidlcd_init(void);//初始化LCD函數(shù)voidLCD_refresh(void);voidClrScn(void);//清LCDvoidSdCmd(unsignedcharCommand);//寫存放器命令函數(shù)voidSdData(unsignedcharDData); //寫數(shù)據(jù)命令函數(shù)voidWriteByteCurDisplay(unsignedcharxx,unsignedcharyy,unsignedcharText);//;寫一個ASICII字符voidWriteStr(unsignedcharxx,unsignedcharyy,unsignedchar*pstr);//寫字符串voidWriteGraphic(unsignedcharx1,unsignedchary1,unsignedcharRow,unsignedcharTier,unsignedchar*GDData);voidWriteGraphicbrak(unsignedcharx1,unsignedchary1,unsignedcharRow,unsignedcharTier,unsignedchar*GDData);/*************************************************Function:voidlcd_init(void)Description:屏幕顯示的全部初始化,包括屏幕內(nèi)容顯示Others:2011-5-12*******************************

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論