超聲波測(cè)距儀定稿(李松)_第1頁
超聲波測(cè)距儀定稿(李松)_第2頁
超聲波測(cè)距儀定稿(李松)_第3頁
超聲波測(cè)距儀定稿(李松)_第4頁
超聲波測(cè)距儀定稿(李松)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目 錄1 引言12 設(shè)計(jì)方案的比較與選擇22.1 設(shè)計(jì)要求22.2 基于方案的論證和選取23 硬件電路的設(shè)計(jì)43.1 超聲波設(shè)計(jì)系統(tǒng)框圖43.2 超聲波發(fā)射和接收電路43.3 單片機(jī)外圍電路83.4 報(bào)警電路93.5 溫度補(bǔ)償電路93.6 LED顯示電路103.7 直流穩(wěn)壓電源電路114 系統(tǒng)軟件設(shè)計(jì)124.1 超聲波測(cè)距儀的算法設(shè)計(jì)124.2 超聲波主程序流程圖134.3 超聲波40KHz產(chǎn)生程序154.4 發(fā)射和接收中斷程序164.5 溫度補(bǔ)償程序175 結(jié)束語19參考文獻(xiàn)20附錄21致謝29摘 要超聲波是一種頻率高于20K赫茲的聲波,具有指向性強(qiáng),能量消耗慢,靈敏性高,傳播距離遠(yuǎn)等一系列

2、優(yōu)點(diǎn)。在近代傳感器技術(shù)和自動(dòng)控制技術(shù)相結(jié)合的測(cè)距儀器中,應(yīng)用十分普遍。利用超聲波檢測(cè)往往較其他方法方便、迅速、計(jì)算簡(jiǎn)單、易于做到實(shí)時(shí)控制,還可以在精度方面達(dá)到工業(yè)適用的要求。本論文就介紹了一種采用脈沖回波的方法,在基于單片機(jī)AT89C52的基礎(chǔ)上設(shè)計(jì)超聲波測(cè)距系統(tǒng)。充分利用單片機(jī)的軟、硬件資源,實(shí)現(xiàn)超聲波的發(fā)射與接收雙向控制。系統(tǒng)主要由超聲波發(fā)射電路、超聲波接收電路、溫度補(bǔ)償電路、報(bào)警電路和顯示電路幾部分組成。首先介紹了超聲波測(cè)距原理,然后詳細(xì)地分析了系統(tǒng)的軟硬件設(shè)計(jì)。最后采用C51軟件設(shè)計(jì)的方法,使硬件設(shè)計(jì)簡(jiǎn)單,提高了性價(jià)比。關(guān)鍵詞:超聲波;單片機(jī)AT89C52;測(cè)距AbstractUltr

3、asound is a frequency above 20KHz sound waves, with a strong point, the energy consumption of slow, high sensitivity, transmission distance and a series of advantages. In modern sensor technology and automatic control technology combined rangefinder device, the application is very common.The use of

4、ultrasonic testing is often convenient than other methods, rapid, easy to compute, easy to do real-time control, you can achieve the accuracy requirements of industrial application. This paper presents a pulse on the echo method, based on AT89C52 microcontroller-based design of ultrasonic ranging sy

5、stem. Full use of the microcontroller software and hardware resources to achieve bi-directional ultrasonic transmitter and receiver control.System mainly consists of an ultrasonic transmitter and ultrasonic receiver circuit, temperature compensation circuit, the alarm circuit and display circuit com

6、posed of several parts. First introduced the principle of ultrasonic distance measurement, and detailed analysis of the system's hardware and software design. Finally, the use of C51 software design methods, the hardware design is simple, increase the price.Key words: ultrasonic; microcontroller

7、 AT89C52; ranging1 引言隨著現(xiàn)代工業(yè)技術(shù)的發(fā)展,超聲波檢測(cè)技術(shù)得到了越來越廣泛的應(yīng)用。超聲波一般是指頻率超過20KHZ的機(jī)械波,利用其指向性強(qiáng),能量消耗緩慢,傳播距離較遠(yuǎn),遇到障礙物會(huì)發(fā)生反射等特性進(jìn)行距離的測(cè)量。加之信息處理簡(jiǎn)單、成本低、速度快。應(yīng)用領(lǐng)域廣泛,超聲技術(shù)是一門以物理、電子、機(jī)械、及材料學(xué)等為基礎(chǔ)的通用技術(shù)之一。通過超聲波傳感器向任意一方向發(fā)射超聲波,在發(fā)射時(shí)刻同時(shí)開始計(jì)時(shí),利用聲波在空氣中的傳播速度和時(shí)間的乘積,就可以計(jì)算得障礙物離我們的距離。本系統(tǒng)采用AT89C52為主控器件來完成測(cè)量過程的信號(hào)采集、控制、數(shù)據(jù)的處理等工作。測(cè)量結(jié)果通過一四位共體LED數(shù)碼管

8、顯示,整個(gè)測(cè)量過程中與被測(cè)物體沒有直接接觸。隨著社會(huì)的發(fā)展,科技的進(jìn)步。一些傳統(tǒng)的測(cè)距方法在許多場(chǎng)合已無法滿足人們的需求,例如在井深,液位,管道長(zhǎng)度測(cè)量等場(chǎng)合,傳統(tǒng)的測(cè)距方法根本無法完成測(cè)量的任務(wù)。還有在很多要求實(shí)時(shí)測(cè)距的情況下,傳統(tǒng)的測(cè)距方法也很難完成測(cè)量的任務(wù)。于是,一種新的測(cè)距方法誕生了非接觸測(cè)距。超聲波可用于非接觸測(cè)量,具有不受光、電磁波以及粉塵等外界因素的干擾的優(yōu)點(diǎn),是利用計(jì)算超聲波在被測(cè)物體和超聲波探頭之間的傳輸來測(cè)量距離的,對(duì)被測(cè)目標(biāo)物體無損害。而且超聲波傳播速度在相當(dāng)大范圍內(nèi)與頻率無關(guān)。超聲波的這些獨(dú)特優(yōu)點(diǎn)越來越受到人們的重視1。2 設(shè)計(jì)方案的比較與選擇2.1 設(shè)計(jì)要求(1)

9、了解超聲波測(cè)距原理;(2) 設(shè)計(jì)超聲波發(fā)生電路和超聲波接收放大電路;(3) 可編程實(shí)現(xiàn)超聲波測(cè)距,并以數(shù)字的形式顯示測(cè)量距離。2.2 基于方案的論證和選取方案一: 基于單片機(jī)的超聲波測(cè)距系統(tǒng),是利用單片機(jī)編程產(chǎn)生頻率為40kHz的方波,經(jīng)過發(fā)射驅(qū)動(dòng)電路放大,使超聲波傳感器發(fā)射端震蕩,發(fā)射超聲波。超聲波波經(jīng)反射物反射回來后,由傳感器接收端接收,再經(jīng)接收電路放大、整形,控制單片機(jī)中斷口。其系統(tǒng)框圖如圖1所示。數(shù)字顯示功能鍵發(fā)射驅(qū)動(dòng)接收驅(qū)動(dòng)單片機(jī)控制圖1 基于單片機(jī)的超聲波測(cè)距系統(tǒng)框圖這種以單片機(jī)為核心的超聲波測(cè)距系統(tǒng)通過單片機(jī)記錄超聲波發(fā)射的時(shí)間和收到反射波的時(shí)間。當(dāng)收到超聲波的反射波時(shí),接收電路

10、輸出端產(chǎn)生一個(gè)負(fù)跳變,在單片機(jī)的外部中斷源輸入口產(chǎn)生一個(gè)中斷請(qǐng)求信號(hào),單片機(jī)響應(yīng)外部中斷請(qǐng)求,執(zhí)行外部中斷服務(wù)子程序,讀取時(shí)間差,計(jì)算距離,結(jié)果輸出給LED顯示2。利用單片機(jī)準(zhǔn)確計(jì)時(shí),測(cè)距精度高,而且單片機(jī)控制方便,計(jì)算簡(jiǎn)單。許多超聲波測(cè)距系統(tǒng)都采用這種設(shè)計(jì)方法。方案二:這種測(cè)距系統(tǒng)采用CPLD(Complex Programmable Logic Device)器件,運(yùn)用VHDL編寫程序,使用MAX+plusII軟件進(jìn)行軟硬件設(shè)計(jì)的仿真和調(diào)試,最終實(shí)現(xiàn)測(cè)距功能。CPLD器件內(nèi)部的宏單元是其最基本的模塊,能獨(dú)立地編程為D觸發(fā)器、T觸發(fā)器、RS觸發(fā)器或JK觸發(fā)器工作方式或組合邏輯工作方式。它的這

11、種特性非常適用于本系統(tǒng),可將本系統(tǒng)所需要的分頻功能、計(jì)數(shù)功能、振蕩器、七段碼顯示全部由MAX來實(shí)現(xiàn),而只需在外部配上適當(dāng)?shù)某暡▊鞲衅鳌⒔邮蘸桶l(fā)送電路,即可組成一個(gè)測(cè)量精度高、性能穩(wěn)定、響應(yīng)速度快且具有顯示功能的超聲波測(cè)距儀。本系統(tǒng)利用CPLD器件控制超聲波的發(fā)射,并對(duì)超聲波發(fā)射至接收的往返時(shí)間進(jìn)行計(jì)數(shù),將計(jì)算結(jié)果在LED上顯示出來。配合使用MAX+plusII開發(fā)軟件,可集設(shè)計(jì)輸入、設(shè)計(jì)處理、設(shè)計(jì)校驗(yàn)和器件編程于一體,集成度高,開發(fā)周期短。其系統(tǒng)框圖如圖2所示。數(shù)碼顯示發(fā)射放大接收放大發(fā)射傳感器接收傳感器整形晶振啟動(dòng)復(fù)位顯示模塊分頻脈沖復(fù)位計(jì)數(shù)圖2 基于CPLD的超聲波測(cè)距系統(tǒng)框圖超聲波發(fā)射

12、器向某一方向發(fā)射40kHz的超聲波,在發(fā)射超聲波的同時(shí),MAX7128S內(nèi)的計(jì)數(shù)器開始計(jì)數(shù)。超聲波在空氣中傳播,途中碰到障礙物就會(huì)立即返回來。超聲波接收器收到反射波后就將回波信號(hào)送到CPLD,CPLD立即停止計(jì)數(shù)。CPLD所計(jì)的時(shí)間就是超聲波從傳感器到被測(cè)物的往返時(shí)間。CPLD開始計(jì)數(shù)后,只要傳感器收到回波,CPLD就立即停止計(jì)數(shù),即只有最先返回的超聲波才起作用,也就是說超聲波測(cè)距儀總是測(cè)得離傳感器最近的物體的距離3。綜合考慮前兩種方案,方案一可以雙向測(cè)量,功耗低,模塊簡(jiǎn)單,穩(wěn)定性高,成本低的特點(diǎn),方案二具有靈敏度高,但結(jié)構(gòu)復(fù)雜,測(cè)量盲區(qū)較長(zhǎng)的缺點(diǎn)。綜合各自的優(yōu)劣點(diǎn)我們選擇方案一。3 硬件電路

13、的設(shè)計(jì)3.1 超聲波設(shè)計(jì)系統(tǒng)框圖本文所設(shè)計(jì)的超聲波測(cè)距儀主要由AT89C52單片機(jī)、超聲波發(fā)射電路、超聲波接收放大電路、顯示電路溫度測(cè)量、顯示和報(bào)警、電源等硬件電路部分以及相應(yīng)的軟件部分構(gòu)成。首先由單片機(jī)驅(qū)動(dòng)產(chǎn)生12MHz晶振,由超聲波發(fā)射探頭發(fā)送出去,在遇到障礙物反射回來時(shí)由超聲波接收探頭檢測(cè)到信號(hào),然后經(jīng)過濾波、放大、整形之后送入單片機(jī)進(jìn)行計(jì)算,把計(jì)算結(jié)果輸出到LED液晶顯示屏上。超聲波發(fā)生器可以分為兩大類:一類是用電氣方式產(chǎn)生超聲波;另一類為機(jī)械方式。產(chǎn)生超聲波。電氣方式包括壓電型、電動(dòng)型等;目前在近距離測(cè)量方面較為常用的是壓電式超聲波換能器。因?yàn)槌暡ㄔ跇?biāo)準(zhǔn)空氣中的傳播速度為344米/

14、秒,由單片機(jī)負(fù)責(zé)計(jì)時(shí),單片機(jī)使用12.0M晶振,所以此系統(tǒng)的測(cè)量精度理論上可以達(dá)到毫米級(jí)。 根據(jù)要求并綜合以上各方面因素,采用AT89C52單片機(jī)作為主控制器,用動(dòng)態(tài)掃描法實(shí)現(xiàn)LED數(shù)字顯示,超聲波驅(qū)動(dòng)信號(hào)用單片機(jī)的定時(shí)器完成,超聲波測(cè)距儀的系統(tǒng)框圖如下圖3所示:超聲波發(fā)射LED顯示 單 片 機(jī) 系 統(tǒng)超聲波接收溫度補(bǔ)償報(bào)警電路 障 礙 物電源電路外圍電路圖3 超聲波測(cè)距儀系統(tǒng)設(shè)計(jì)框圖3.2 超聲波發(fā)射和接收電路超聲波傳感器分為兩種,一類為電氣方式產(chǎn)生超聲波,一類為機(jī)械方式產(chǎn)生超聲波,本課題由于是近距離測(cè)量,故可以采用壓電式超聲波換能器。(1) 發(fā)射電路主要由反向器74LS04和超聲波換能器T

15、CT4016T能向外界發(fā)出40 kHz左右的方波脈沖信號(hào),40 kHz左右的方波脈沖信號(hào)的產(chǎn)生通常有兩種方法:采用硬件555振蕩產(chǎn)生或者軟件如單片機(jī)軟件編程輸出,本系統(tǒng)采用后者。編程由單片機(jī)P1.0端口輸出40 kHz左右的方波脈沖信號(hào),由于單片機(jī)端口輸出功率不夠,40 kHz方波脈沖信號(hào)分成兩路,送給一個(gè)由74HC04組成的推挽式電路進(jìn)行功率放大以便使發(fā)射距離足夠遠(yuǎn),滿足測(cè)量距離要求,最后送給超聲波發(fā)射換能器TCT4016T以聲波形式發(fā)射到空氣中。輸出端采用兩個(gè)反向器并聯(lián),用以提高驅(qū)動(dòng)能力。上拉電阻R1、R3一方面可以提高反向器74LS04輸出高電平的驅(qū)動(dòng)能力,另一方面可以增加超聲波換能器的

16、阻尼效果,縮短其自由振蕩的時(shí)間。如圖4所示:圖4 超聲波發(fā)射電路 圖5 74LS04內(nèi)部非門等效電路(2) 由于超聲波接收包括接收探頭,信號(hào)放大以及波形變換電路三部分,超聲波接收探頭又要求必須與發(fā)送探頭相同的型號(hào),不然可能導(dǎo)致接收效果不好甚至不能接收。由于超聲波接收探頭的信號(hào)非常弱,所以必須用放大器先放大,放大后的正弦波不能被微處理器處理,所以還要經(jīng)過波形變換。本次設(shè)計(jì)為了降低調(diào)試難度,減少成本,提供系統(tǒng)可靠性,所以我們采用了一種用在彩色電視機(jī)上面的一種紅外接收檢波芯片CX20106,由于紅外遙控的中心頻率在40KHz,所以可以用來做接收電路。TCT4016T發(fā)射的在空氣中傳播,遇到障礙物就會(huì)

17、返回,超聲波接收部分是為了將反射波(回波)順利接收到超聲波接收換能器TCT4016R進(jìn)行轉(zhuǎn)換變成電信號(hào),并對(duì)此電信號(hào)進(jìn)行放大、濾波、整形等處理后,這里用索尼公司生產(chǎn)的集成芯片CX20106,得到一個(gè)負(fù)脈沖送給單片機(jī)的P3.2(INT0)引腳,以產(chǎn)生一個(gè)中斷。圖6 超聲波接收電路(3) 集成電路CX20106A是一款紅外線檢波接收的專用芯片,常用于電視機(jī)紅外遙控接收器??紤]到紅外遙控常用的載波頻率40kHZ與測(cè)距的超聲波頻率40kHZ較為接近,可以利用它制作超聲波檢測(cè)接收電路。適當(dāng)更改電容C3的大小,可以改變接收電路的靈敏度和抗干擾能力4。CX20106A紅外遙控接收器集成電路的特性: CX20

18、106A是日本索尼公司生產(chǎn)的彩電專用紅外遙控接收器,采用單列8腳直插式,超小型封裝,5V供電。圖7 芯片CX20106A內(nèi)部結(jié)構(gòu)圖CX20106A對(duì)接收探頭受到的信號(hào)進(jìn)行放大、濾波,其總放大增益80db。它的內(nèi)部結(jié)構(gòu)由具有受自動(dòng)電平限制控制的前置放大器、限幅放大器、寬頻帶濾波器、檢測(cè)器、積分濾波器與整形器等部分組成: 前置放大器:它是高增益的放大器,由于超聲波在空氣中直線傳輸時(shí),傳輸距離越大,衰減越厲害,故為了不使放大器的輸出信號(hào)過強(qiáng)而產(chǎn)生失真,集成塊內(nèi)部有自動(dòng)電平限制電路,對(duì)前置放大器的增益進(jìn)行自動(dòng)限制。 限幅放大器:當(dāng)信號(hào)太強(qiáng)時(shí)為了防止放大器過載,限制高電平振幅,同時(shí)也可消除寄生調(diào)幅干擾。

19、 寬頻帶濾波器:其頻帶范圍為30Hz-60Hz,其中心頻率可調(diào)。 檢測(cè)器:將返回的超聲波的包絡(luò)解調(diào)出來。 積分濾波器與整形電路:檢測(cè)器輸出的信號(hào)經(jīng)積分濾波器送到整形電路,輸出較好的矩形波。表1 CX20106A的引腳注釋表引腳功能1腳(紅外線輸入端)超聲信號(hào)輸入端,該腳的輸入阻抗約為40k2腳(增益調(diào)解端)該腳與地之間連接RC串聯(lián)網(wǎng)絡(luò),改變它們的數(shù)值能改變前置放大器的增益和頻率特性。3腳(檢測(cè))該腳與地之間連接檢波電容,電容量大為平均值檢波,瞬間相應(yīng)靈敏度低4腳(地)接地端。5腳(帶通濾波)該腳與電源間接入一個(gè)電阻,用以設(shè)置帶通濾波器的中心頻率f0,阻值越大,中心頻率越低。6腳(積分段)該腳與

20、地之間接一個(gè)積分電容,標(biāo)準(zhǔn)值為330pF,如果該電容取得太大,會(huì)使探測(cè)距離變短。7腳(信號(hào)輸出端)遙控命令輸出端,它是集電極開路輸出方式,因此該引腳必須接上一個(gè)上拉電阻到電源端,推薦阻值為22k8腳(電源)電源正極,4.55V3.3 單片機(jī)外圍電路當(dāng)使用單片機(jī)的內(nèi)部時(shí)鐘電路時(shí),單片機(jī)的XATL1和XATL2用來接石英晶體和微調(diào)電容,晶體一般可以選擇3M24M,電容選擇30pF左右。我們選擇晶振為12MHz,電容20pF。在系統(tǒng)上電的瞬間,RST與電源電壓同電位,隨著電容的電壓逐漸上升,RST電位下降,于是在RST形成一個(gè)正脈沖。只要該脈沖足夠?qū)捑涂梢詫?shí)現(xiàn)復(fù)位,即=RC20ms。一般取R1K,C

21、22uF。當(dāng)人按下按鈕S1時(shí),使電容C20通過R21迅速放電,待S1彈起后,C再次充電,實(shí)現(xiàn)手動(dòng)復(fù)位。R21一般取10K。我們通過P1.4來啟動(dòng)測(cè)量,程序中通過查詢P1.4的電平來檢測(cè)是否按鍵被按下,當(dāng)按下按鍵時(shí)P1.4為低電平,單片機(jī)通過查詢到低電平開始測(cè)量距離,當(dāng)松開按鍵,P1.4即為高電平,在軟件中通過軟件延時(shí)來消除按鍵的機(jī)械抖動(dòng)5。圖8 單片機(jī)外圍電路3.4 報(bào)警電路我們?cè)谟贸暡y(cè)量距離時(shí)都是無接觸測(cè)試,為了避免超聲波從發(fā)射器直接傳送到接收器引起的直射波觸發(fā),需要延時(shí)約0.1ms ,當(dāng)測(cè)試距離太近靠近障礙物時(shí),我們就用到報(bào)警電路發(fā)出聲音以起到警告作用。采用一個(gè)蜂鳴器,由P3.7輸出一

22、定頻率的信號(hào),在連接到蜂鳴器之前,經(jīng)過一個(gè)三極管9 012的放大。報(bào)警部分的連線,如圖9所示:圖9 報(bào)警電路3.5 溫度補(bǔ)償電路由于超聲波的聲速與溫度有關(guān),如果溫度變化不大,可認(rèn)為聲速基本不變。如果測(cè)距精度要求很高,則應(yīng)通過溫度補(bǔ)償?shù)姆椒右孕U?。由于在?shí)際環(huán)境中,空氣溫度是一個(gè)不可不考慮的干擾因素,在不同溫度下超聲波的傳播速度是不一樣的,因此還需要一個(gè)溫度補(bǔ)償。來計(jì)算出當(dāng)前溫度并換算成超聲波的傳播速度6。物理學(xué)告訴我們,超聲波在空氣中的傳播速度為:CG=334+0.61*T,由此可見,超聲波的速度和溫度密切關(guān)系,即溫度每增加1°C,超聲波速度約增加0.61m/s,本次我們考慮溫度補(bǔ)

23、償,以使我們的設(shè)計(jì)更加精確,溫度的采集通常使用DS18B20一線式數(shù)字溫度傳感器,電路非常簡(jiǎn)潔,具體電路圖如下圖所示。DS18B20是美國(guó)DALLS公司推出的DS1820的替代產(chǎn)品,具有9、10、11、12位的轉(zhuǎn)換精度,未編程時(shí)默認(rèn)的精度是12位,測(cè)量精度一般為0.5°C,軟件處理后可以達(dá)到0.1°C,溫度輸出以16位符號(hào)擴(kuò)展的二進(jìn)制數(shù)形式提供,低位在先,以0.0625°C/LSB形式表達(dá)。其中高五位為擴(kuò)展符號(hào)位。轉(zhuǎn)換周期與轉(zhuǎn)換精度有關(guān)。DSl8B20的電源可以由數(shù)據(jù)線自身供電而不需要接外部電源。每一DSl8B20在出廠時(shí)已經(jīng)給定了唯一的序號(hào),DSl8B20可以存

24、放在同一條單線總線上實(shí)現(xiàn)多點(diǎn)溫度測(cè)量,實(shí)現(xiàn)數(shù)據(jù)的雙向通信,測(cè)溫范圍從-55攝氏度+125攝氏度增量值為0.5度可在l s內(nèi)把溫度變換成數(shù)字量,因此采DS18B20實(shí)現(xiàn)溫度補(bǔ)償電路的設(shè)計(jì)。補(bǔ)償電路如圖11所示:不同溫度下的超聲波聲速如圖10所示:溫度 T/OC-30-20-100102030100聲速 /m.s-1313319325323338344349386圖10 不同溫度下的超聲波聲速表由于聲音的速度在不同的溫度下有所不同,采用它提高了系統(tǒng)的精度,采用了溫度補(bǔ)償功能。這里采用的主要元器件是是美國(guó)Dallas半導(dǎo)體公司生產(chǎn)的單總線數(shù)字溫度傳感器DS18B20,其具有精度高、智能化、體積小、線

25、路簡(jiǎn)單等特點(diǎn)。將DS18B20數(shù)據(jù)線與單片機(jī)的P1.1口相連,就可以實(shí)現(xiàn)溫度測(cè)量。圖11 溫度補(bǔ)償電路3.6 LED顯示電路LED數(shù)碼顯示管有兩種,一種是共陽極數(shù)碼管,另一種是共陰極數(shù)碼管,其內(nèi)部是由八個(gè)陽極或陰極相連接的發(fā)光二極管組成,二者原理不同但功能相同。共陰極LED數(shù)碼顯示塊的發(fā)光二極管陰極連接在一起,形成該模塊的公共端(通常稱為位選端),因此稱為共陰極LED數(shù)碼顯示器,8個(gè)數(shù)碼管的另一端通常稱為段選端,當(dāng)顯示器的公共端接低電平,某個(gè)發(fā)光二極管的陽極接高電平時(shí),該發(fā)光二極管被點(diǎn)亮;而共陽極LED數(shù)碼顯示管則形成共陽極LED數(shù)碼顯示塊的公共端,該公共端必須接高電平,同理在共陽極LED數(shù)碼

26、顯示塊中如某個(gè)發(fā)光二極管的陰極為低電平時(shí),該發(fā)光二極管被點(diǎn)亮7。AT89C52是采用12MHZ晶振獲得穩(wěn)定的時(shí)鐘頻率。采用12MHz高精度的晶振,以獲得較穩(wěn)定的時(shí)鐘頻率,減少測(cè)量中誤差。單片機(jī)用P1.0端口輸出超聲波換能器所需的40KHz方波信號(hào),利用外中斷0口檢測(cè)超聲波接收電路輸出的返回信號(hào)。顯示電路采用簡(jiǎn)單實(shí)用的4位共陽LED數(shù)碼管,位碼用PNP三極管9012驅(qū)動(dòng)。單片機(jī)系統(tǒng)及顯示電路如圖12所示:圖12 LED顯示電路3.7 直流穩(wěn)壓電源電路電源電路采用普通可調(diào)電源供電,該電源不含穩(wěn)壓器,所以在設(shè)計(jì)中需要用穩(wěn)壓器進(jìn)行穩(wěn)壓,我們選用LM7805來獲得穩(wěn)定的+5V直流電壓,如下圖:圖13 穩(wěn)

27、壓電源電路4 系統(tǒng)軟件設(shè)計(jì)超聲波測(cè)距器的軟件設(shè)計(jì)主要由主程序、超聲波發(fā)生子程序、超聲波接收中斷程序及顯示子程序組成。下面分別對(duì)超聲波測(cè)距器的算法、主程序、超聲波發(fā)生子程序和超聲波接收中斷程序逐一作介紹。4.1 超聲波測(cè)距儀的算法設(shè)計(jì)超聲波從超聲傳感器發(fā)出,在空氣中傳播,遇到被測(cè)物反射后,再傳回超聲傳感器。整個(gè)過程,超聲波會(huì)有很大的衰減。聲學(xué)理論證明,衰減遵從指數(shù)衰減規(guī)律8。A=A(x)cos(wt+kt)=A0e-xcos(wt+kt) (1)其中A(x)為超聲傳感器接收的振幅;A0為超聲傳感器初始振幅;為傳播角頻率;為衰減系數(shù);x為超聲波傳播距離;t為傳播時(shí)間;k=2/為波數(shù);為聲波波長(zhǎng)。由

28、此可以知道,超聲波頻率越高,其衰減越快,傳播的距離也越短。但是,超聲波頻率越高,指向性越強(qiáng),這一點(diǎn)有利于距離測(cè)量??紤]這兩點(diǎn),為達(dá)到更佳的效果,也是選取中心頻率為40kHz的原因。超聲波發(fā)生器T在某一時(shí)刻發(fā)出一個(gè)超聲波信號(hào),當(dāng)這個(gè)超聲波遇到被測(cè)物體后反射回來,就被超聲波接收器R所接收到。這樣只要計(jì)算出從發(fā)出超聲波信號(hào)到接收到返回信號(hào)所用的時(shí)間,就可算出超聲波發(fā)生器與反射物體的距離。距離的計(jì)算公式為: d=s/2=(c×t)/2 (2)超聲波測(cè)量原理圖如圖13所示:S發(fā)射接收 圖13 超聲波測(cè)距原理圖在超聲波發(fā)射器兩端輸入610個(gè)40kHz脈沖串,脈沖電信號(hào)經(jīng)過超聲波內(nèi)部振子,振蕩出機(jī)

29、械波,通過空氣,介質(zhì)傳播到被測(cè)面,由被測(cè)面反射,由超聲波接收器接收,在超聲波接收器兩端信號(hào)是毫伏級(jí)別的正弦波信號(hào)。傳播的渡越時(shí)間即為超聲波發(fā)射器發(fā)出的超聲波時(shí)刻與經(jīng)介質(zhì)反射傳播到接收器時(shí)刻差。如圖13所示,測(cè)量發(fā)射點(diǎn)到被測(cè)物面到接收點(diǎn)距離2S,超聲波的傳播速度約為v=344m/s(20時(shí))依據(jù)公式:S=1/2VT得距離s9。距離測(cè)量有一個(gè)最遠(yuǎn)測(cè)量距離限制,其原因就在于接收信號(hào)的幅值至少應(yīng)該大于規(guī)定的閥值。這個(gè)閥值決定于對(duì)信噪比的要求。要求高些,可要求這一閥值大于噪聲幅值的倍數(shù)高些,保證信噪比可以大于要求。但是無論要求怎樣低,最小的接收信號(hào)幅值總得比噪聲幅值大,否則就很難從噪聲中分辨出所需的信號(hào)

30、來。所以,如果想增大可測(cè)的距離,總得從兩個(gè)方面來解決,一方面就是盡量降低噪聲,另一方面就是盡可能增大發(fā)射信號(hào)的幅值。4.2 超聲波主程序流程圖主程序首先是對(duì)系統(tǒng)環(huán)境初始化,設(shè)置定時(shí)器T0工作模式為16位計(jì)數(shù)器模式,置位總中斷允許位EA并給顯示端口P0和P2清0。然后調(diào)用超聲波發(fā)生子程序送出一個(gè)超聲波脈沖,為了避免超聲波從發(fā)射器直接傳送到接收器引起的直射波觸發(fā),需要延時(shí)約0.1ms(這也就是超聲波測(cè)距器會(huì)有一個(gè)最小可測(cè)距離的原因)后,才打開外中斷0接收返回的超聲波信號(hào)10。由于采用的是12MH z的晶振,計(jì)數(shù)器每計(jì)一個(gè)數(shù)就是1s,當(dāng)主程序檢測(cè)到接收成功的標(biāo)志位后,將計(jì)數(shù)器T0中的數(shù)(即超聲波來回

31、所用的時(shí)間)按下式計(jì)算,即可得被測(cè)物體與測(cè)距器之間的距離,設(shè)計(jì)時(shí)取20時(shí)的聲速為344m/s則有d=s/2=(c×t)/2=172T0/10 000 cm (3)其中T0為計(jì)數(shù)器T0的計(jì)數(shù)值。測(cè)出距離后結(jié)果將以十進(jìn)制BCD碼方式送往LED顯示約0.5 s,然后再發(fā)超聲波脈沖重復(fù)測(cè)量過程。圖14為主要程序流程圖:系統(tǒng)初始化開始等待反射超聲波計(jì)算距離發(fā)送超聲波脈沖顯示結(jié)果0.5s報(bào)警提示圖14 主程序流程圖當(dāng)收到超聲波反射波時(shí),接收電路輸出端產(chǎn)生一個(gè)負(fù)跳變,在INT0或INT1端產(chǎn)生一個(gè)中斷請(qǐng)求信號(hào),單片機(jī)響應(yīng)外部中斷請(qǐng)求,執(zhí)行外部中斷服務(wù)子程序,讀取時(shí)間差,計(jì)算距離。軟件分為兩部分,主

32、程序和中斷服務(wù)程序,主程序完成初始化工作、各路超聲波發(fā)射與接收順序的控制。 定時(shí)中斷服務(wù)子程序完成超聲波的輪流發(fā)射,外部中斷服務(wù)子程序主要完成時(shí)間值的讀取、距離計(jì)算、結(jié)果的輸出等工作。定時(shí)中斷與外部中斷流程圖分別如圖15、16所示:定時(shí)中斷入口NY停止發(fā)射定時(shí)器初始化返回發(fā)射超聲波發(fā)射完否圖15 定時(shí)中斷服務(wù)子程序流圖關(guān)外部中斷外部中斷入口讀取時(shí)間值計(jì)算距離結(jié)果輸出開外部中斷返回圖16 外部中斷服務(wù)子程序流圖4.3 超聲波40KHz產(chǎn)生程序主要采用中斷方式產(chǎn)生40KHZ的方波,程序如下: #include<reg51.h> sbit p1_0=P10; void main() TM

33、OD=0x02; TH0=243; TL0=243; EA=1; ET0=1; TR0=1; while(1); void time0_int() interrupt 1 p1_0=!p1_0; 4.4 發(fā)射和接收中斷程序void send()/脈沖波發(fā)送uchar i; TH0=0; TL0=0;/清定時(shí)0 TR0=1;/開定時(shí)0ET0=1;for(i=0;i<10;i+)sg=sg;/超聲波發(fā)送引腳_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(

34、); sg=1;delay(36);EX0=1; /開外部中斷void rec() interrupt 0 using 2 Tout=0; /超時(shí)標(biāo)志flag=1; /外部中斷標(biāo)志位TR0=0; /關(guān)定時(shí)器0ET0=0;EX0=0; time=256*TH0+TL0; void TimeOut(void) interrupt 1 using 2 Tout=1; flag=0; TR0=0; ET0=0;4.5 溫度補(bǔ)償程序uint Read_Temperature(void) /讀取溫度,返回整數(shù)值 uint c;reset(); /復(fù)位18b20芯片tu=0; /先置位溫度正負(fù)標(biāo)示為正if(

35、r) write(0xCC); / 跳過多傳感器識(shí)別skio rom write(0xBE); /發(fā)讀內(nèi)部9字節(jié)內(nèi)容指令 c=read(); /讀兩個(gè)字 reset(); /讀完兩個(gè)字節(jié)后復(fù)位 write(0xCC); / 跳過多傳感器識(shí)別skio rom write(0x44); / 發(fā)啟動(dòng)溫度變換指令 if(c>0x1000)c=c+1;tu=1; /若溫度小于0,tu=1 c>>=4; /去掉低四位即為整數(shù)溫度值,無需*0.0625 return c;elsereturn r; /返回0XFF表示未檢測(cè)到18B20芯片int C_speed(void) /根據(jù)溫度查算聲

36、速值 uchar y; y=Read_Temperature(); /采溫度 if(r) /若溫度有變化則按溫度值取聲速T_C=y; /溫度值變化后的溫度值if(tu=0)speed=332+T_C*0.607; /溫度為正則+聲速else speed=332-T_C*0.607; /溫度為負(fù)則-聲速else speed=346.5;return speed;5 結(jié)束語在即將畢業(yè)之際,做一個(gè)系統(tǒng)的設(shè)計(jì)可以對(duì)自己三年的所學(xué)做一個(gè)總結(jié),也是給自己以后工作增添一份信心。以上基于單片機(jī)的超聲波的測(cè)距系統(tǒng)的設(shè)計(jì)包含了:電路分析、數(shù)字、模擬電路和單片機(jī)、傳感器、C語言等方面的知識(shí),另外還有選材購(gòu)買、動(dòng)手制

37、作等方面。所以具有很高的參考價(jià)值,同時(shí),該設(shè)計(jì)的方案也是來源于生活中廣泛的應(yīng)用領(lǐng)域,有很強(qiáng)的應(yīng)用價(jià)值。單片機(jī)的應(yīng)用改變了傳統(tǒng)的設(shè)計(jì)思路,以前構(gòu)建一個(gè)系統(tǒng)需用用很多的數(shù)字模擬器件或者電路單元來構(gòu)建,系統(tǒng)可靠性差、缺乏靈活性、維護(hù)不便、成本高、無法實(shí)現(xiàn)智能化等諸多缺點(diǎn)。單片機(jī)的應(yīng)用解決了很多問題,現(xiàn)在只要寫一個(gè)軟件,通過單片機(jī)和一些簡(jiǎn)單的外接電路就可以實(shí)現(xiàn)具有很多功能的、而且具有智能化的系統(tǒng),同時(shí)可方便升級(jí)維護(hù)。所以單片機(jī)的應(yīng)用廣泛,在日常生活和生產(chǎn)中占用重要位置。所以我們?cè)O(shè)計(jì)選擇了單片機(jī)的系統(tǒng)其說明我們深深的意識(shí)到它的重要作用。設(shè)計(jì)中也“小試牛刀”的使用了我們傳感器課程所學(xué)的超聲波的知識(shí);用到了

38、電路分析;模擬電子技術(shù)的知識(shí);單片機(jī)程序設(shè)計(jì)使用了C語言來編寫程序,感受到了C語言的魅力所在??梢哉f該設(shè)計(jì)的過程是對(duì)我們?nèi)晁鶎W(xué)的一次總結(jié)。通過以上的設(shè)計(jì)過程,我們不但在知識(shí)上收獲了,而且發(fā)現(xiàn)了自己的一些不足之處;同時(shí),我們也對(duì)自己的動(dòng)手能力有所鍛煉,而且一次成功的經(jīng)歷給我增添了不少的信心。我們相信,畢業(yè)后,把這種學(xué)習(xí)的興趣和努力的精神發(fā)揮到工作中一定能有所作為!參考文獻(xiàn)1 時(shí)德剛,劉嘩編著超聲波測(cè)距的研究J計(jì)算機(jī)測(cè)量與控制,2002.9(10):31332 胡萍主編超聲波測(cè)距儀的研制J計(jì)算機(jī)與現(xiàn)代化,2003.7(10):21233 樊昌元,丁義元編著高精度測(cè)距雷達(dá)研究Z儀器學(xué)報(bào),2000.

39、10:284 吳斌方,劉民編著超聲波測(cè)距傳感器的研究J中國(guó)儀器儀表, 2007.8(10):77785 唐穎,程菊花,任條娟編著單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)M北京大學(xué)出版社,2010.76 蘇偉,鞏壁建超聲波測(cè)距誤差分析J傳感器技術(shù),2004.3(4):17207 劉瑞新,沈淑娟編著C語言程序設(shè)計(jì)基礎(chǔ)M機(jī)械工業(yè)出社,2004.88 閻石主編數(shù)字電子技術(shù)基礎(chǔ)M高等教育出版社,2008.69 康華光,陳大欽編著電子技術(shù)基礎(chǔ)(模擬部分第四版)M高等教育出版社, 2002.310 康華光,鄒壽彬編著電子技術(shù)基礎(chǔ)(數(shù)字部分第四版)M高等教育出版社,2003.611 何希才主編傳感器技術(shù)及應(yīng)用M北京:

40、北京航空航天大學(xué)出版社,2005.4附錄 (1) 原理圖(2) PCB圖(3) 仿真圖(4) 主程序#include<reg52.h>#include<intrins.h>#define uchar unsigned charsbit send=P10; /發(fā)射sbit P32=P32; /接收sbit P11=P04; /led指示燈sbit P15=P05;sbit P16=P06;sbit P17=P07;sbit P25=P03; /4位led數(shù)碼管sbit P26=P02;sbit P23=P01;sbit P24=P00;sbit P33=P20; /K1s

41、bit P36=P22; /K2sbit P37=P23; /K3sbit P1_0 = P10;/RS485收發(fā)控制引腳bit Flag_data_send = 0;/串行數(shù)據(jù)發(fā)送標(biāo)志unsigned int U_flag=0;/INT0中斷計(jì)數(shù)標(biāo)志,串行發(fā)送時(shí)間標(biāo)志unsigned int shangxian,xiaxian;unsigned int x,x1,h;long int s=1234,t;unsigned char cs,biaozhi,biaozhi1,jianzhi0,jianzhi1,nkey,v=34;unsigned char LEDMAP=0XEB,0X0a,0X6

42、7,0X6e,0X8E,0XEC,0XED,0X2A,0XEF,0XEE; /"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"unsigned char ledbuf4=0X67,0XEB,0X0a,0X0a;uchar flag=0;void Delay(uchar CNT) uchar i; while(CNT-!=0) for( i=0;i&l

43、t;12;i+);DateToLEDBuf(unsigned int s) ledbuf0=LEDMAPs/1000; /s(mm) x=s%1000; x1=(x%100)%10; ledbuf1=LEDMAPx/100; ledbuf2=LEDMAP(x%100)/10; ledbuf3=LEDMAPx1;void display() /顯示子程序 unsigned char i; for(i=0;i<4;i+) switch(i) case 0: (P25=0)&&(P26=1)&&(P23=1)&&(P24=1);break; ca

44、se 1: (P25=1)&&(P26=0)&&(P23=1)&&(P24=1);break; case 2: (P25=1)&&(P26=1)&&(P23=0)&&(P24=1);break; case 3: (P25=1)&&(P26=1)&&(P23=1)&&(P24=0);break; P0=ledbufi; Delay(1); void delay12us() /延時(shí)12us子程序 _nop_(); _nop_(); _nop_(); _nop_(); _nop_();void InitUART(void)/串行通信初始化 P1_0 = 0; /初始化為接收模式 TMOD = 0x20;/定時(shí)器T0方式1 SCON = 0x50;/串行方式1 REN = 1;/允許接收 TH1 = 0xF3;/波特率2400 TL1 = TH1; PCON = 0x00;/無倍頻 IP = 0x10;/串行中斷優(yōu)先級(jí)最高 ES=1;/串行中斷使能 TR1 = 1;/啟動(dòng)定時(shí)器T1void Usart_Send(unsigned char DataToSend)/數(shù)據(jù)串行發(fā)送 SBUF = DataToSend; while(TI =

溫馨提示

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

評(píng)論

0/150

提交評(píng)論