找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 35854|回復(fù): 6
收起左側(cè)

超聲波測(cè)距語(yǔ)音播報(bào)設(shè)計(jì)論文

  [復(fù)制鏈接]
ID:169164 發(fā)表于 2017-6-13 07:25 | 顯示全部樓層 |閱讀模式
畢業(yè)設(shè)計(jì)超聲波測(cè)距語(yǔ)音播報(bào)論文

專   業(yè)    電子信息工程技術(shù)      
學(xué)生姓名
班   級(jí)
學(xué)   號(hào)
指導(dǎo)教師
完成日期


摘 要

在空氣介質(zhì)中超聲測(cè)距傳感器因其性能好,價(jià)格低廉、使用方便,在現(xiàn)場(chǎng)機(jī)器人定位系統(tǒng)、車輛自動(dòng)導(dǎo)航、車輛安全行駛輔助系統(tǒng)、城市交通管理和高速公路管理監(jiān)測(cè)系統(tǒng),以及河道、油井和倉(cāng)庫(kù)及料位的探測(cè)中都有應(yīng)用。由于超聲波傳播不易受干擾,能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),因而超聲波經(jīng)常用于距離的測(cè)量,如測(cè)距和物位測(cè)量等都可以通過(guò)超聲波來(lái)實(shí)現(xiàn)。為此,深入研究超聲波的產(chǎn)生與傳播規(guī)律、開發(fā)高性能超聲波換能器及其收發(fā)電路,對(duì)于超聲波檢測(cè)技術(shù)的發(fā)展具有十分重要的現(xiàn)實(shí)意義。

本設(shè)計(jì)介紹了基于單片機(jī)控制的超聲測(cè)距的原理:由STC89C52控制定時(shí)器產(chǎn)生一定頻率脈沖,計(jì)算從發(fā)射到接收回波時(shí)間,從而得到實(shí)測(cè)距離,數(shù)據(jù)處理采用,lcd1602顯示距離,WTD588D語(yǔ)音播報(bào)。


摘 要
Abstract
第一章 緒論
1.1 課題設(shè)計(jì)目的及意義
1.1.1設(shè)計(jì)的目的
1.1.2設(shè)計(jì)的意義
1.2 國(guó)內(nèi)外研究動(dòng)態(tài)
1.3 本課題研究的主要內(nèi)容
第二章 總體方案
2.1 方案選擇
2.2 超聲波測(cè)距儀的設(shè)計(jì)思路
2.2.1 超聲波測(cè)距原理
2.2.2 超聲波測(cè)距原理框圖
2.3 使用元件選擇
第三章 系統(tǒng)的硬件結(jié)構(gòu)設(shè)計(jì)
3.1 STC89C52單片機(jī)的功能及特點(diǎn)
3.2單片機(jī)最小系統(tǒng)
3.4 語(yǔ)音播報(bào)
3.5 顯示單元
第四章 系統(tǒng)的軟件設(shè)計(jì)
4.1 主程序流程圖
4.2 超聲波發(fā)生子程序和超聲波接收中斷程序
第五章超聲波測(cè)距接收
5.1 HC-SR04模塊
5.2 T40、R40超聲波傳感器簡(jiǎn)介
5.2.1 超聲波傳感器的基本介紹
5.2.2 超聲波傳感器的主要應(yīng)用
5.2.3 超聲波傳感器的工作原理
5.3 超聲波發(fā)射電路
5.4 超聲波接收電路
5.5 超聲波接收過(guò)程
5.6 接收數(shù)據(jù)處理
第六章總結(jié)
致  謝
參考資料
附錄1原理圖
附錄2主要源程序

第一章 緒論

1.1 課題設(shè)計(jì)目的及意義

1.1.1設(shè)計(jì)的目的

隨著科學(xué)技術(shù)的快速發(fā)展,超聲波在測(cè)距中的應(yīng)用越來(lái)越廣。但就目前的急速水平來(lái)說(shuō),人們可以具體利用的測(cè)距技術(shù)還十分有限,因此,這是一個(gè)正在蓬勃發(fā)展而又有無(wú)限前景的技術(shù)及產(chǎn)業(yè)領(lǐng)域。由于超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),因此超聲波經(jīng)常用于距離測(cè)量,如超聲波測(cè)距和物位測(cè)量等都可以通過(guò)超聲波來(lái)實(shí)現(xiàn)。利用超聲波檢測(cè)往往比較迅速、方便、計(jì)算簡(jiǎn)單、易于做到實(shí)時(shí)控制。為了研究和利用超聲波,人們已經(jīng)設(shè)計(jì)和制成了許多超聲波發(fā)生器。研制具有更高定位精度的被動(dòng)測(cè)距聲納,以滿足水中武器實(shí)施全隱蔽攻擊的需求;繼續(xù)發(fā)展采用低頻線譜檢測(cè)的潛艇拖拽線列陣聲納,實(shí)現(xiàn)超遠(yuǎn)程的被動(dòng)探測(cè)和識(shí)別;研制更適合與前還工作的潛艇聲納,特別是解決淺海水中目標(biāo)識(shí)別問(wèn)題;搭理降低潛艇自噪聲,改善潛艇聲納的工作環(huán)境。毋庸置疑,無(wú)線的超聲波測(cè)距將于自動(dòng)化智能化接軌,與其他的測(cè)距儀集成和融合,形成多測(cè)距。隨著測(cè)距儀的技術(shù)進(jìn)步,測(cè)距儀將從具有單純判斷功能發(fā)展到具有學(xué)習(xí)功能,最終發(fā)展到具有創(chuàng)造力。在新的世紀(jì)里,面貌一新的測(cè)距儀將發(fā)揮更大的作用。

1.1.2設(shè)計(jì)的意義

由于超聲測(cè)距是一種非接觸檢測(cè)技術(shù),不受光線、被測(cè)對(duì)象顏色等的影響,較其它儀器更衛(wèi)生,更耐潮濕、粉塵、高溫、腐蝕氣體等惡劣環(huán)境,具有少維護(hù)、不污染、高可靠、長(zhǎng)壽命等特點(diǎn),所以超聲波測(cè)距系統(tǒng)主要應(yīng)用于汽車的倒車?yán)走_(dá)、機(jī)器人自動(dòng)避障行走、建筑施工工地以及一些工業(yè)現(xiàn)場(chǎng)中的液位、井深、管進(jìn)長(zhǎng)度測(cè)量等場(chǎng)合。因此研究超聲波測(cè)距系統(tǒng)有著很大的現(xiàn)實(shí)意義。對(duì)本課題的研究與設(shè)計(jì),還能進(jìn)一步提高自己的電路設(shè)計(jì)水平,深入對(duì)單片機(jī)的理解和應(yīng)用。

1.2 國(guó)內(nèi)外研究動(dòng)態(tài)

    國(guó)外在提高超聲波測(cè)距方面做了大量的研究,國(guó)內(nèi)一些學(xué)者也作了相關(guān)的研究。目前超聲波測(cè)距方法主要有三種:(1)相位檢測(cè)法:精度高,但檢測(cè)范圍有限;(2)聲波幅值檢測(cè)法:易受反射波的影響;(3)渡越時(shí)間法:工作方式簡(jiǎn)單,直觀,F(xiàn)在對(duì)超聲波測(cè)距的精度主要取決于所測(cè)的超聲波傳輸時(shí)間和超聲波在介質(zhì)中的傳輸速度,二者中以傳輸時(shí)間的精度影響較大,所以大部分文獻(xiàn)采用降低傳輸時(shí)間的不確定度來(lái)提高測(cè)距精度。溫度對(duì)傳感器的影響也很大,因此,需要用溫度傳感器進(jìn)行校正,目前相位探測(cè)法和聲譜輪廓分析法或二者結(jié)合起來(lái)的方法是主要的降低探測(cè)傳輸不確定度的方法。

1.3 本課題研究的主要內(nèi)容

超聲波是指頻率高于20KHz的機(jī)械波。為了以超聲波作為檢測(cè)手段,必須產(chǎn)生超生波和接收超聲波。完成這種功能的裝置就是超聲波換能器。超聲波傳感器有發(fā)送器和接收器,但一個(gè)超聲波換能器也可具有發(fā)送和接收聲波的雙重作用。超聲波換能器是利用壓電效應(yīng)的原理將電能和超聲波相互轉(zhuǎn)化,即在發(fā)射超聲波的時(shí)候,將電能轉(zhuǎn)換,發(fā)射超聲波;而在收到回波的時(shí)候,則將超聲振動(dòng)轉(zhuǎn)換成電信號(hào)。
超聲波測(cè)距的原理一般采用渡越時(shí)間法TOF(time of flight)。首先測(cè)出超聲波從發(fā)射到遇到障礙物返回所經(jīng)歷的時(shí)間,再乘以超聲波的速度就得到二倍的聲源與障礙物之間的距離,擬應(yīng)用以下三種技術(shù):

    a、單片機(jī)技術(shù):STC89C52系列的單片機(jī)具有體積小,重量輕,結(jié)構(gòu)較為簡(jiǎn)單,成本低廉,可以實(shí)現(xiàn)一般的控制功能的優(yōu)點(diǎn)。而且單片機(jī)更適用應(yīng)用于小型的嵌入式系統(tǒng),因此它得到了廣泛的應(yīng)用,F(xiàn)代人類生活大部分電子和機(jī)械產(chǎn)品中都會(huì)集成有單片機(jī)。

    b、超聲波測(cè)距技術(shù):超聲波測(cè)距技術(shù)與一般測(cè)距技術(shù)相比,具有操作方便、系統(tǒng)簡(jiǎn)單以及計(jì)算簡(jiǎn)單的優(yōu)點(diǎn)。

    c、顯示技術(shù):數(shù)據(jù)處理,數(shù)碼管顯示測(cè)出與物體之間的距離。

    d、語(yǔ)音模塊技術(shù):ISD1730A芯片來(lái)語(yǔ)音播報(bào)距離。

第二章 總體方案

2.1 方案選擇

采用單片機(jī)來(lái)控制超聲波測(cè)距,信號(hào)線發(fā)射到與超聲波發(fā)射器相連的信號(hào)端,超聲波發(fā)射器向既定方向發(fā)射,在發(fā)射的同時(shí)開始計(jì)時(shí),超聲波在空氣中傳播,途中碰到障礙物將產(chǎn)生回波。

2.2 超聲波測(cè)距儀的設(shè)計(jì)思路
2.2.1 超聲波測(cè)距原理

超聲波測(cè)距的方法有多種,如相位檢測(cè)法、聲波幅值檢測(cè)法和渡越時(shí)間檢測(cè)法等。相位檢測(cè)法雖然精度高,但檢測(cè)范圍有限,聲波幅值檢測(cè)法易受反射波的影響。

本測(cè)距系統(tǒng)采用超聲波渡越時(shí)間檢測(cè)法。其原理為:檢測(cè)從發(fā)射傳感器發(fā)射的超聲波經(jīng)氣體介質(zhì)傳播到接收傳感器的時(shí)間t,這個(gè)時(shí)間就是渡越時(shí)間,然后求出距離l。設(shè)l為測(cè)量距離,t為往返時(shí)間差,超聲波的傳播速度為c,則有l(wèi)=ct/2。超聲波接收器收到反射波就立即停止計(jì)時(shí)。再由單機(jī)計(jì)算出距離,送數(shù)碼管顯示測(cè)量結(jié)果。

超聲波測(cè)距的算法設(shè)計(jì): 超聲波在空氣中傳播速度為每秒鐘340米(15℃時(shí))。t2是接收超聲波時(shí)刻,t1是超聲波聲波發(fā)射時(shí)刻,t2-t1得出的是一個(gè)時(shí)間差的絕對(duì)值,假定t2-t1=0.03S,則有340m×0.03S=10.2m。由于在這10.2m的時(shí)間里,超聲波發(fā)出到遇到返射物返回的距離如下: 如圖2-2-1為測(cè)距原理[4]

1.001.jpg
圖2-1測(cè)距原理

因?yàn)棣?2角度較小,可以忽略不計(jì),所以L≈S。

超聲波發(fā)出到遇到返射物返回的距離如下:

L=C x ( t2 -t1 )/ 2

由于超聲波也是一種聲波,其聲速c與空氣溫度有關(guān),一般來(lái)說(shuō),溫度每升高1攝氏度,聲速增加0.6米/秒。表2-1列出了幾種溫度下的聲速。


表2-1  聲速與溫度的關(guān)系表

溫度(攝氏度)

-30

-20

-10

0

10

20

30

100

聲速(米/秒)

313

319

325

323

338

344

349

386


在使用時(shí),如果溫度變化不大,則可認(rèn)為聲速c是基本不變的,計(jì)算時(shí)取c為340m/s。如果測(cè)距精度要求很高,則可通過(guò)改變硬件電路增加溫度補(bǔ)償電路的方法或者在硬件電路基本不變的情況下通過(guò)軟件改進(jìn)算法的方法來(lái)加以校正。

2.2.2 超聲波測(cè)距原理框圖

     超聲波測(cè)距模塊用HC-SR04,溫度傳感器使用DS18B20,微處理器使用STC89C52單片機(jī),顯示部分采用共陽(yáng)數(shù)碼管。HC-SR04集成的發(fā)射電路模塊發(fā)出超聲波,遇到障礙物產(chǎn)生回波,被接收電路模塊接收,STC89C52單片機(jī)統(tǒng)計(jì)出聲波傳輸所用時(shí)間,經(jīng)過(guò)溫度補(bǔ)償溫,計(jì)算出正確的待測(cè)距離,同時(shí)ISD1730A根據(jù)相關(guān)數(shù)據(jù)處理進(jìn)行組合播報(bào)當(dāng)前測(cè)試距離,并且由數(shù)碼管顯示。

1.002.jpg
圖2-2 超聲波測(cè)距系統(tǒng)結(jié)構(gòu)圖


2.3 使用元件選擇

由于測(cè)量距離的精度和長(zhǎng)度要求不是很高,精度達(dá)到2cm,測(cè)量距離達(dá)到2m即可,因此超聲波模塊選用價(jià)格低廉且實(shí)用的HC-SR04即可。

    控制核心部分選擇實(shí)用的STC89C52單片機(jī)即可滿足計(jì)算和控制要求。

溫度補(bǔ)償?shù)臏囟葌鞲衅鬟x擇普遍且實(shí)用的DS18B20。

    語(yǔ)音播報(bào):ISD1730A是華邦公司新推出的語(yǔ)音芯片,用來(lái)替代已經(jīng)停產(chǎn)的ISD1400 系列及ISD2500 系列芯片。ISD1730A不僅在錄音時(shí)間上有更多的選擇(從20秒到240 秒),而且在功能上繼承14及25系列的所有錄放功能,并增加了一些更加人性化的提示功能及對(duì)存儲(chǔ)地址的精確操作。根據(jù)我們經(jīng)營(yíng) ISD 系列芯片多年的經(jīng)驗(yàn)來(lái)看,ISD1700 的音質(zhì)也較14及25系列有明顯的提高

ISD1700 系列芯片是華邦公司新推出的單片優(yōu)質(zhì)語(yǔ)音錄放電路,該芯片提供多項(xiàng)新功能,包括內(nèi)置專利的多信息管理系統(tǒng),新信息提示(vAlert ),雙運(yùn)作模式(獨(dú)立&嵌入式),以及可定制的信息操作指示音效。芯片內(nèi)部包含有自動(dòng)增益控制、麥克風(fēng)前置擴(kuò)大器、揚(yáng)聲器驅(qū)動(dòng)線路、振蕩器與內(nèi)

存等的全方位整合系統(tǒng)功能。。

    顯示部分:選擇了四位數(shù)碼管。

第五章超聲波測(cè)距接收

5.1 HC-SR04模塊

HC-SR04超聲波測(cè)距模塊可提供2cm-400cm的非接觸式距離感測(cè)功能,其結(jié)構(gòu)簡(jiǎn)單,使用單片機(jī)控制電路簡(jiǎn)單容易,而且價(jià)格便宜。該模塊包括超聲波發(fā)射、接收與控制電路。實(shí)物如圖5-1。

1.011.jpg
圖5-1  HC-SR04模塊實(shí)物圖

基本工作原理

①采用IO口TRIG觸發(fā)測(cè)距,給至少10us的高電平信號(hào);

②模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;

③有信號(hào)返回,通過(guò)IO口ECHO輸出一個(gè)高電平,高電平持續(xù)時(shí)間就是超

聲波從發(fā)射到返回的時(shí)間。

電氣參數(shù)

HC-SR04模塊參數(shù)如下表5-1所示。


表5-1模塊參數(shù)
電氣參數(shù)
HC-SR04超聲波模塊
工作電壓
DC 5V
工作電流
15mA
工作頻率
40khz
最遠(yuǎn)射程
4m
最近射程
2cm
測(cè)量角度
15°
輸入觸發(fā)信號(hào)
10us的TTL脈沖
輸入回響信號(hào)
輸出TTL電平信號(hào),與射程成比例
規(guī)格尺寸
45*20*15cm

超聲波時(shí)序圖
超聲波時(shí)序圖如圖5-2所示
1.012.jpg
圖5-2超聲波時(shí)序圖

以上時(shí)序圖表明只需要提供一個(gè)10us以上脈沖信號(hào),該模塊內(nèi)部將發(fā)出8個(gè)40khz周期電平并檢測(cè)回波。一旦檢測(cè)到有回波信號(hào)則輸出回響信號(hào);仨懶盘(hào)的脈沖寬度與測(cè)量的距離成正比。由此通過(guò)發(fā)射信號(hào)到收到的回響信號(hào)時(shí)間間隔可以計(jì)算得到距離:

距離=高電平時(shí)間*聲速(340m/s)/2。

為防止發(fā)射信號(hào)對(duì)回響信號(hào)的影響,測(cè)量周期一般要60ms以上。

模塊主要由Em78p153單片機(jī)、MAX232、TL074、超聲波傳感器:T40-16、R40-16組成。

Em78p153單片機(jī)

①概況描述

Em78p153是采用高速CMOS工藝制造的8位單片機(jī)。其內(nèi)部有512*13位一次性ROM(OTPROM)。因此,用戶可以方便改進(jìn)完善程序。程序代碼可用EMC編程器寫入芯片。有13位選項(xiàng)位可滿足用戶要求,其中的保護(hù)位可用來(lái)防止程序被讀出。

②功能特點(diǎn)

工作電壓范圍:2.0V~6.0V;

工作溫度范圍:0℃~70℃;

工作頻率范圍:DC~8MHz;

512×13位片內(nèi)ROM;32×8位片內(nèi)寄存器(SDRAM);

片內(nèi)有4MHz校準(zhǔn)RC振蕩器;

2個(gè)雙向I/O端口;

8位實(shí)時(shí)定時(shí)/計(jì)數(shù)器(TCC),信號(hào)源、觸發(fā)沿可編程選擇,溢出產(chǎn)生中斷;

掉電模式(SLEEP模式);

3個(gè)中斷源:TCC溢出中斷、輸入引腳狀態(tài)變化中斷、外部中斷;

EM78P153為14腳封裝;封裝形式:SOP、SSOP和DIP。

③引腳分配

Em78p153單片機(jī)引腳分配如圖5-3。

1.013.jpg
圖5-3 Em78p153引腳圖

MAX232

MAX232芯片是美信公司專門為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電。MAX232多用于串口通信,起到電平轉(zhuǎn)換的作用,而本設(shè)計(jì)只用到其電平轉(zhuǎn)換,將40kHz的方波由5V轉(zhuǎn)換成20V,提高發(fā)射功率。超聲波發(fā)射頭采用共振頻率為40kHz的TCT40-16探頭,接收頭采用RCT40-16。

①M(fèi)AX232引腳圖

芯片引腳如圖5-4。

1.014.jpg
圖5-4 MAX232引腳圖

②引腳介紹
第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個(gè)電源,提供給RS-232串口電平的需要。
第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道;8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。
第三部分是供電。15腳GND、16腳VCC(+5v)。
TL074
常用的低噪聲JFET輸入運(yùn)算放大器,引腳如圖5-5。
1.015.jpg
圖5-5 TL074引腳圖

1、2、3腳是通道1的輸出端、反相輸入端、同相輸入端,5、6、7腳是通道2的同相輸入端、反相輸入端、輸出端,8、9、10腳是通道3的輸出端、反相輸入端、同相輸入端,12、13、14腳是通道4的同相輸入端、反相輸入端、輸出端,4腳是正電源,11腳是負(fù)電源。TL074內(nèi)部組件數(shù)量如下表5-2所示

表5-2 TL074組件
電阻
44
晶體管
56
JFET
6
二極管
4
電容
4
epi-FET
4

T40-16與R40-16

為了研究和利用超聲波,人們已經(jīng)設(shè)計(jì)和制成了許多超聲波發(fā)生器。總體上講,超聲波發(fā)生器可以分為兩大類:

電氣方式產(chǎn)生超聲波, 主要包括壓電型、磁致伸縮型和電動(dòng)型等;

機(jī)械方式產(chǎn)生超聲波,主要包括加爾統(tǒng)笛、液哨和氣流旋笛等。

    它們所產(chǎn)生的超聲波的頻率、功率和聲波特性各不相同,因而用途也各不相同。目前較為常用的是壓電式超聲波發(fā)生器。

壓電式超聲波發(fā)生器實(shí)際上是利用壓電晶體的諧振來(lái)工作的。其內(nèi)部有兩個(gè)壓電晶片和一個(gè)共振板。當(dāng)它的兩極外加脈沖信號(hào),其頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片發(fā)生共振,帶動(dòng)共振板振動(dòng),便產(chǎn)生超聲波。反之,如果兩電極間未外加電壓,當(dāng)共振板接收到超聲波時(shí),將壓迫壓電晶片作振動(dòng),將機(jī)械能轉(zhuǎn)換為電信號(hào),這時(shí)它就成為超聲波接收器了。模塊使用T40-16T/R超聲波換能器即為壓電型。

①器件說(shuō)明

名 稱:壓電陶瓷超聲波傳感器;

型 號(hào):T40-16T/R;

類 別:通用型;

中心頻率:40KHZ;

外 徑:16mm;

使用方式:T為發(fā)射頭,R為接收頭,TR為收發(fā)兼用;

適用范圍:家用電器及其它電子設(shè)備的超聲波遙控裝置;超聲波測(cè)距及汽車倒車防撞裝置;液面探測(cè);超聲波接近開關(guān)及其它應(yīng)用的超聲波發(fā)射與接收。

②器件性能

1.標(biāo)稱頻率(KHz):40KHz;

2.發(fā)射電壓at10V(0dB=0.02mPa):≥110dB;

3.接收靈敏度at40KHz(0dB=V/ubar):≥-70dB;

4.靜電容量at1KHz,<1V(PF):2000±30%;

5.探測(cè)距離(m):0.02-10。

傳感器實(shí)物如圖5-5 所示。


1.016.jpg
圖5-6 傳感器實(shí)物圖

HC-SR04模塊集成了發(fā)射和接受電路,硬件上不必再自行設(shè)計(jì)繁復(fù)的發(fā)射及接收電路,軟件上也無(wú)需再通過(guò)定時(shí)器產(chǎn)生40Khz的方波引起壓電陶瓷共振從而產(chǎn)生超聲波。使用時(shí),只要在控制端‘Trig’發(fā)一個(gè)大于10us寬度的高電平,就可以在接收端‘Echo’等待高電平輸出。單片機(jī)一旦檢測(cè)到有輸出就打開定時(shí)器開始計(jì)時(shí)。當(dāng)此口變?yōu)榈碗娖綍r(shí)就停止計(jì)時(shí)并讀出定時(shí)器的值,此值就為此次測(cè)距的時(shí)間,再根據(jù)傳播速度方可算出障礙物的距離。

5.2 T40、R40超聲波傳感器簡(jiǎn)介
1.017.jpg
1.018.jpg
5-7 元件內(nèi)部結(jié)構(gòu)
5-8 元件外部結(jié)構(gòu)

5.2.1 超聲波傳感器的基本介紹

超聲波測(cè)距換能器是利用超聲波的特性研制而成的換能器。超聲波是一種振動(dòng)頻率高于聲波的機(jī)械波,由換能晶片在電壓的激勵(lì)下發(fā)生振動(dòng)產(chǎn)生的,它具有頻率高、波長(zhǎng)短、繞射現(xiàn)象小,特別是方向性好、能夠成為射線而定向傳播等特點(diǎn)。超聲波對(duì)液體、固體的穿透本領(lǐng)很大,尤其是在陽(yáng)光不透明的固體中,它可穿透幾十米的深度。超聲波碰到雜質(zhì)或分界面會(huì)產(chǎn)生顯著反射形成反射成回波,碰到活動(dòng)物體能產(chǎn)生多普勒效應(yīng)。因此超聲波檢測(cè)廣泛應(yīng)用在工業(yè)、國(guó)防、生物醫(yī)學(xué)等方面。

以超聲波作為檢測(cè)手段,必須產(chǎn)生超聲波和接收超聲波。完成這種功能的裝置就是超聲波換能器,或者探頭。

超聲波換能器主要由壓電晶片組成,既可以發(fā)射超聲波,也可以接收超聲波。小功率超聲探頭多作探測(cè)作用。它有許多不同的結(jié)構(gòu),可分直探頭(縱波)、斜探頭(橫波)、表面波探頭(表面波)、蘭姆波探頭(蘭姆波)、雙探頭(一個(gè)探頭反射、一個(gè)探頭接收)等。

5.2.2 超聲波傳感器的主要應(yīng)用

超聲波傳感技術(shù)應(yīng)用在生產(chǎn)實(shí)踐的不同方面,而醫(yī)學(xué)應(yīng)用是其最主要的應(yīng)用之一,下面以醫(yī)學(xué)為例子說(shuō)明超聲波傳感技術(shù)的應(yīng)用。超聲波在醫(yī)學(xué)上的應(yīng)用主要是診斷疾病,它已經(jīng)成為了臨床醫(yī)學(xué)中不可缺少的診斷方法。超聲波診斷的優(yōu)點(diǎn)是:對(duì)受檢者無(wú)痛苦、無(wú)損害、方法簡(jiǎn)便、顯像清晰、診斷的準(zhǔn)確率高等。因而推廣容易,受到醫(yī)務(wù)工作者和患者的歡迎。超聲波診斷可以基于不同的醫(yī)學(xué)原理,我們來(lái)看看其中有代表性的一種所謂的A型方法。這個(gè)方法是利用超聲波的反射。當(dāng)超聲波在人體組織中傳播遇到兩層聲阻抗不同的介質(zhì)界面是,在該界面就產(chǎn)生反射回聲。每遇到一個(gè)反射面時(shí),回聲在示波器的屏幕上顯示出來(lái),而兩個(gè)界面的阻抗差值也決定了回聲的振幅的高低。

在工業(yè)方面,超聲波的典型應(yīng)用是對(duì)金屬的無(wú)損探傷和超聲波測(cè)厚兩種。過(guò)去,許多技術(shù)因?yàn)闊o(wú)法探測(cè)到物體組織內(nèi)部而受到阻礙,超聲波傳感技術(shù)的出現(xiàn)改變了這種狀況。當(dāng)然更多的超聲波傳感器是固定地安裝在不同的裝置上,“悄無(wú)聲息”地探測(cè)人們所需要的信號(hào)。在未來(lái)的應(yīng)用中,超聲波將與信息技術(shù)、新材料技術(shù)結(jié)合起來(lái),將出現(xiàn)更多的智能化、高靈敏度的超聲波傳感器。

超聲波距離傳感器技術(shù)應(yīng)用

超聲波對(duì)液體、固體的穿透本領(lǐng)很大,尤其是在陽(yáng)光不透明的固體中,它可穿透幾十米的深度。

超聲波碰到雜質(zhì)或分界面會(huì)產(chǎn)生顯著反射形成反射成回波,碰到活動(dòng)物體能產(chǎn)生多普勒效應(yīng)。因此超聲波檢測(cè)廣泛應(yīng)用在工業(yè)、國(guó)防、生物醫(yī)學(xué)等方面。超聲波距離傳感器可以廣泛應(yīng)用在物位(液位)監(jiān)測(cè),機(jī)器人防撞,各種超聲波接近開關(guān),以及防盜報(bào)警等相關(guān)領(lǐng)域,工作可靠,安裝方便, 防水型,發(fā)射夾角較小,靈敏度高,方便與工業(yè)顯示儀表連接,也提供發(fā)射夾角較大的探頭。

5.2.3 超聲波傳感器的工作原理

超聲波是一種在彈性介質(zhì)中的機(jī)械振蕩,有兩種形式:橫向振蕩(橫波)及縱向振蕩(縱波)。在工業(yè)中應(yīng)用主要采用縱向振蕩。超聲波可以在氣體、液體及固體中傳播,其傳播速度不同。另外,它也有折射和反射現(xiàn)象,并且在傳播過(guò)程中有衰減。在空氣中傳播超聲波,其頻率較低,一般為幾十KHZ,而在固體、液體中則頻率可用得較高。在空氣中衰減較快,而在液體及固體中傳播,衰減較小,傳播較遠(yuǎn)。利用超聲波的特性,可做成各種超聲傳感器,配上不同的電路,制成各種超聲測(cè)量?jī)x器及裝置,并在通迅,醫(yī)療家電等各方面得到廣泛應(yīng)用。

超聲波傳感器主要材料有壓電晶體(電致伸縮)及鎳鐵鋁合金(磁致伸縮)兩類。電致伸縮的材料有鋯鈦酸鉛(PZT)等。壓電晶體組成的超聲波傳感器是一種可逆?zhèn)鞲衅,它可以將電能轉(zhuǎn)變成機(jī)械振蕩而產(chǎn)生超聲波,同時(shí)它接收到超聲波時(shí),也能轉(zhuǎn)變成電能,所以它可以分成發(fā)送器或接收器。有的超聲波傳感器既作發(fā)送,也能作接收。這里僅介紹小型超聲波傳感器,發(fā)送與接收略有差別,它適用于在空氣中傳播,工作頻率一般為23-25KHZ及40-45KHZ。這類傳感器適用于測(cè)距、遙控、防盜等用途。該種有T/R-40-60,T/R-40-12等(其中T表示發(fā)送,R表示接收,40表示頻率為40KHZ,16及12表示其外徑尺寸,以毫米計(jì))。另有一種密封式超聲波傳感器(MA40EI型)。它的特點(diǎn)是具有防水作用(但不能放入水中),可以作料位及接近開關(guān)用,它的性能較好。超聲波應(yīng)用有三種基本類型,透射型用于遙控器,防盜報(bào)警器、自動(dòng)門、接近開關(guān)等;分離式反射型用于測(cè)距、液位或料位;反射型用于材料探傷、測(cè)厚等。

由發(fā)送傳感器(或稱波發(fā)送器)、接收傳感器(或稱波接收器)、控制部分與電源部分組成。發(fā)送器傳感器由發(fā)送器與使用直徑為15mm左右的陶瓷振子換能器組成,換能器作用是將陶瓷振子的電振動(dòng)能量轉(zhuǎn)換成超能量并向空中輻射;而接收傳感器由陶瓷振子換能器與放大電路組成,換能器接收波產(chǎn)生機(jī)械振動(dòng),將其變換成電能量,作為傳感器接收器的輸出,從而對(duì)發(fā)送的超進(jìn)行檢測(cè).而實(shí)際使用中,用發(fā)送傳感器的陶瓷振子的也可以用做接收器傳感器社的陶瓷振子?刂撇糠种饕獙(duì)發(fā)送器發(fā)出的脈沖鏈頻率、占空比及稀疏調(diào)制和計(jì)數(shù)及探測(cè)距離等進(jìn)行控制

5.3 超聲波發(fā)射電路

HC-SR04模塊內(nèi)部超聲波發(fā)射電路如圖5-6所示,主要由Em78p153單片機(jī)、MAX232及超聲波發(fā)射換能器T40組成。

1.019.jpg
圖5-9 超聲波發(fā)射電路

5.4 超聲波接收電路
HC-SR04模塊內(nèi)部超聲波接收電路如圖5-3所示,主要由TL074運(yùn)算放大器及超聲波接換能器R40組成。
1.020.jpg
圖5-10 超聲波接收電路


5.5 超聲波接收過(guò)程

    單片機(jī)初始化,HC-SR04內(nèi)部ECHO接口與單片機(jī)P1.1的引腳相連,發(fā)射接口TRIG與單片機(jī)的P1.2引腳相接。

單片機(jī)開啟中斷,單片機(jī)P1.1給“Trig”接口一個(gè)約為20us的高電平,經(jīng)過(guò)HC-SR04模塊內(nèi)EM78P153發(fā)送8個(gè)連續(xù)的40KHz脈沖的信號(hào),經(jīng)過(guò)MAX232電平轉(zhuǎn)換,提高發(fā)射功率。換能器將電脈沖信號(hào)轉(zhuǎn)換為超聲波發(fā)射。

    當(dāng)單片機(jī)的給一個(gè)20us的觸發(fā)信號(hào)時(shí),TRIG由低電平轉(zhuǎn)換為高電平,TRIG=1,

單片機(jī)開時(shí)計(jì)時(shí),開啟中斷,并記錄時(shí)間為T1,接收換能器等待接收回波,ECHO持續(xù)為高電平的時(shí)間為發(fā)射時(shí)間。換能器接收回波將超聲波轉(zhuǎn)換為電信號(hào),送至單片機(jī),記錄時(shí)間為T2。超聲波發(fā)射的時(shí)間為:T2-T1,

計(jì)算發(fā)射距離為:

L = (T2-T1)xC/2

如果等待回波時(shí)間超過(guò)65ms時(shí),則無(wú)法接收到回波,單片機(jī)初始化,重新發(fā)射接收下一次回波。

5.6 接收數(shù)據(jù)處理

單片機(jī)初始化函數(shù)
1.021.jpg
5-11程序流程圖

接收過(guò)程:上電后先進(jìn)行初始化,主要是對(duì)各變量即定時(shí)器0進(jìn)行初始化,然后單片機(jī)給‘Trig’端一個(gè)約為20us的高電平,此后在‘Echo’端等待一個(gè)高電平,一旦檢測(cè)到高電平,則立即打開定時(shí)器,開始計(jì)時(shí)。此后只要定時(shí)器0中的值不超過(guò)約為65ms(65.5536ms)的計(jì)時(shí)上限,則認(rèn)為仍處在有效測(cè)量范圍內(nèi),并未進(jìn)入盲區(qū),則在‘Echo’等待低電平的產(chǎn)生,一旦檢測(cè)到低電平,立即讀出此時(shí)的TH0和TL0,并關(guān)閉定時(shí)器0。則超聲波從發(fā)射到返回總共所用時(shí)間為:time=TH0*256+TL0(us),再根據(jù)超聲波常溫下(27℃)在空氣中的傳播速度,(約為344m/s)計(jì)算出障礙物的距離,在數(shù)碼管上進(jìn)行動(dòng)態(tài)的實(shí)時(shí)顯示即可。

接收數(shù)據(jù)處理子程序如下:

              c_send = 1;                                       //10us的高電平觸發(fā)
              delay();
              c_send = 0;            
              TH0 = 0;                                      //給定時(shí)器0清零
              TL0 = 0;
              TR0 = 0;                                                          //關(guān)定時(shí)器0定時(shí)
              flag_hc_value = 0;
              while(!c_recive);                              //當(dāng)c_recive為零時(shí)等待
              TR0=1;
              while(c_recive)                                  //當(dāng)c_recive為1計(jì)數(shù)并等待
              {
                            flag_time0 = TH0 * 256 + TL0;
                            if((flag_hc_value > 1) || (flag_time0 > 65000))     //當(dāng)超聲波超過(guò)測(cè)量范圍時(shí),顯示3個(gè)888
                            {
                                          TR0 = 0;
                                          flag_csb_juli = 2;
                                          distance = 888;
                                          flag_hc_value = 0;
                                          break ;                           
                            }
                            else
                            {
                                          flag_csb_juli = 1;            
                            }
              }
              if(flag_csb_juli == 1)
              {            
                            TR0=0;                                                                                                 //關(guān)定時(shí)器0定時(shí)
                            distance = TH0;                                                             //讀出定時(shí)器0的時(shí)間
                            distance = distance * 256 + TL0;
                            distance +=( flag_hc_value * 65536);//算出超聲波測(cè)距的時(shí)間              得到單位是ms
                            distance *= 0.017;               // 0.017 = 340M / 2 = 170M = 0.017M 算出來(lái)是米
                            if(distance > 350)                                                        //距離 = 速度 * 時(shí)間
                            {            
                                          distance = 888;                                                        //如果大于3.8m就超出超聲波的量程
                            }
              }  
第六章總結(jié)

本次設(shè)計(jì)介紹了一種基于單片機(jī)的超聲波測(cè)距系統(tǒng)的設(shè)計(jì),給出了相應(yīng)的軟件和硬件的設(shè)計(jì)方案。

超聲波測(cè)距的原理與雷達(dá)測(cè)距原理相似,通過(guò)超聲波發(fā)射裝置發(fā)出超聲波,根據(jù)接收器接到超聲波時(shí)的時(shí)間差就可以知道距離,也就是說(shuō)超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時(shí)刻的同時(shí)單片機(jī)開始計(jì)時(shí),超聲波在空氣中傳播,途中碰到障礙物就立即返回來(lái),超聲波接收器收到反射波單片機(jī)就立即停止計(jì)時(shí),再利用對(duì)應(yīng)的計(jì)算公式就可以求出物體間的間距,這是根據(jù)反射原理利用了超聲波指向性強(qiáng),在介質(zhì)中傳播距離較遠(yuǎn)的特性。

超聲波測(cè)距儀硬件電路的設(shè)計(jì)主要包括單片機(jī)的基本電路、超聲波發(fā)射接收模塊控制電路、顯示電路、語(yǔ)音模塊,溫度補(bǔ)償五部分部分組成。單片機(jī)采用了STC89C52,晶振為12MHz,單片機(jī)P1.3端口輸出10us的觸發(fā)信號(hào),由定時(shí)器T0計(jì)得時(shí)間間隔,顯示電路采用1602,語(yǔ)音芯片WTD588D。

本次設(shè)計(jì)的超聲波測(cè)距系統(tǒng)滿足倒車測(cè)距等所需的測(cè)量精度,而且反映速度快、控制簡(jiǎn)單、成本低廉等,測(cè)距范圍為2cm到350cm。但由于經(jīng)驗(yàn)不足還有些地方有待完善。在要求精度較高的地方時(shí),由于超聲波在空氣中的傳播速度受溫度影響有點(diǎn)大,則需考慮到不同溫度時(shí)超聲波的傳播速度變換。

總體來(lái)說(shuō),經(jīng)過(guò)本次設(shè)計(jì)讓我學(xué)到了很多,從中受益匪淺。了解了超聲波測(cè)距的原理,并對(duì)單片機(jī)的開發(fā)和電路設(shè)計(jì)有了更進(jìn)一步的了解。

致  謝

經(jīng)過(guò)幾個(gè)月的努力本次畢業(yè)設(shè)計(jì)已經(jīng)接近尾聲。畢業(yè)設(shè)計(jì)是對(duì)我們知識(shí)運(yùn)用能力的一次全面的考核,培養(yǎng)我們綜合運(yùn)用所學(xué)知識(shí)和獨(dú)立分析問(wèn)題并且解決問(wèn)題的能力。

首先,我要感謝王老師在畢業(yè)設(shè)計(jì)中對(duì)我給予的悉心指導(dǎo)和嚴(yán)格要求,我要感謝和我一起做畢業(yè)設(shè)計(jì)的同學(xué)。在畢業(yè)設(shè)計(jì)的短短3個(gè)月里,你們給我提出很多寶貴的意見,給了我不少幫助還有工作上的支持,在此也真誠(chéng)的謝謝你們。同時(shí),我還要感謝我的寢室同學(xué)和身邊的朋友,正是在這樣一個(gè)團(tuán)結(jié)友愛,相互促進(jìn)的環(huán)境中,在和他們的相互幫助和啟發(fā)中,才有我今天的小小收獲

經(jīng)過(guò)幾個(gè)月的努力本次畢業(yè)設(shè)計(jì)已經(jīng)接近尾聲。畢業(yè)設(shè)計(jì)是對(duì)我們知識(shí)運(yùn)用能力的一次全面的考核,培養(yǎng)我們綜合運(yùn)用所學(xué)知識(shí)和獨(dú)立分析問(wèn)題并且解決問(wèn)題的能力。最后再次深深感謝我的導(dǎo)師趙老師以及給予我?guī)椭耐瑢W(xué)和朋友。


參考資料

[1] 張國(guó)熊. 測(cè)控電路[M]. 北京:機(jī)械工業(yè)出版社,2003.

[2] 閻石. 數(shù)字電子技術(shù)基礎(chǔ)[M]. 北京:高等教育出版社,2004.

[3] 侯媛彬等. 凌陽(yáng)單片機(jī)原理及其畢業(yè)設(shè)計(jì)精選[M]. 科學(xué)出版社,2006.

[4] 李建忠. 單片機(jī)原理及應(yīng)用[M]. 西安:西安電子科技大學(xué)出版社,2008.

[5] 霍孟友等. 單片機(jī)原理與應(yīng)用[M]. 北京:機(jī)械工業(yè)出版社,2004.

[6] 高惠芳.單片機(jī)原理及系統(tǒng)設(shè)計(jì) 杭州電子科技大學(xué)電子信息學(xué)校,2009

[7] 王安敏,張凱基于STC89C52 單片機(jī)的超聲波測(cè)距系統(tǒng) 儀表技術(shù)與傳感器

[8] 張珩,劉亞杰STC89C52 超聲波測(cè)距倒車防撞報(bào)警系統(tǒng) 現(xiàn)代電子技術(shù)

[9] 彭偉.單片機(jī)C語(yǔ)言程序設(shè)計(jì)設(shè)計(jì)實(shí)訓(xùn)[M].西安:電子工業(yè)出版社,2009.
[10] 徐江海.數(shù)碼管顯示電路設(shè)計(jì)制造[M].合肥:機(jī)械工業(yè)出版社,2003.
[11] Maurice Wilkes.Progress in Computers.Prestige Lecture delivered to IEE, Cambridge, on 5 February 2004

附錄1原理圖

1.022.jpg

附錄2主要源程序


單片機(jī)源程序如下:
  1. #include
  2. #include
  3. #define uchar unsigned char
  4. #define uint  unsigned int

  5. #include "lcd1602.h"

  6. sbit c_send   = P0^7;                            //超聲波發(fā)射
  7. sbit c_recive = P0^6;                            //超聲波接收
  8. uchar flag_hc_value;        //超聲波中間變量


  9. bit flag_300ms ;


  10. long distance;                      //距離
  11. uint set_d;                          //距離
  12. bit flag_csb_juli;        //超聲波超出量程
  13. uint  flag_time0;     //用來(lái)保存定時(shí)器0的時(shí)候的

  14. //  按鍵的IO變量的定義
  15. uchar menu_1;        //菜單設(shè)計(jì)的變量
  16. uchar a_a;

  17. /***********************語(yǔ)音模塊控制IO口的定義************************/
  18. sbit  VSDA = P0^1;
  19. sbit  VCS  = P0^2;
  20. sbit  VSCL = P0^3;
  21. sbit  VRST = P0^4;
  22. sbit  VBUSY= P0^0;            
  23. uchar yujing[3];

  24. /***************************
  25.                  語(yǔ)音地址的安排
  26. 0 - 9 :  對(duì)應(yīng)數(shù)字0到9
  27. 0b    : 點(diǎn)
  28. 0c    : 米
  29. 0d    : 已超出量程
  30. ****************************/


  31. /***********************1ms延時(shí)函數(shù)*****************************/
  32. void delay_1ms(uint q)
  33. {
  34.               uint i,j;
  35.               for(i=0;i<q;i++)
  36.                             for(j=0;j<120;j++);
  37. }

  38. void  delay_us (unsigned int us)
  39. {

  40.               while(us--)
  41.               {
  42.                             _nop_();
  43.               }
  44. }

  45. /***********************三線發(fā)碼子程序************************/
  46. void Send_threelines(unsigned char addr)
  47. {
  48.    unsigned char i;
  49.               VRST=0;
  50.               delay_1ms(5);
  51.               VRST=1;
  52.               delay_1ms(20); /* 復(fù)位拉高20ms*/
  53.               VCS=0;
  54.               delay_1ms(5);  /* 片選拉低5ms */
  55.     for(i=0;i<8;i++)
  56.               {
  57.                             VSCL=0;
  58.                             if(addr&0x01)
  59.                             {
  60.                                           VSDA=1;
  61.                             }
  62.                             else
  63.                                           VSDA=0;
  64.                             addr>>=1;
  65.                             delay_us(150); /* 150us */
  66.                             VSCL=1;
  67.                             delay_us(150); /* 150us */
  68.               }
  69.               VCS=1;
  70. }

  71. /***********************處理距離函數(shù)****************************/
  72. void smg_display()
  73. {
  74.               yujing[0] = distance % 10;            
  75.               yujing[1] = distance / 10 % 10;            
  76.               yujing[2] = distance / 100 % 10;            
  77. }

  78. void delay()
  79. {
  80.               _nop_();                                        //執(zhí)行一條_nop_()指令就是1us
  81.               _nop_();
  82.               _nop_();
  83.               _nop_();
  84.               _nop_();
  85.               _nop_();
  86.               _nop_();
  87.               _nop_();
  88.               _nop_();
  89.               _nop_();
  90.               _nop_();
  91.               _nop_();
  92.               _nop_();
  93. }


  94. /*********************超聲波測(cè)距程序*****************************/
  95. void send_wave()
  96. {
  97.               c_send = 1;                                       //10us的高電平觸發(fā)
  98.               delay();
  99.               c_send = 0;            
  100.               TH0 = 0;                                      //給定時(shí)器0清零
  101.               TL0 = 0;
  102.               TR0 = 0;                                                          //關(guān)定時(shí)器0定時(shí)
  103.               flag_hc_value = 0;
  104.               while(!c_recive);                              //當(dāng)c_recive為零時(shí)等待
  105.               TR0=1;
  106.               while(c_recive)                                  //當(dāng)c_recive為1計(jì)數(shù)并等待
  107.               {
  108.                             flag_time0 = TH0 * 256 + TL0;
  109.                             if((flag_hc_value > 1) || (flag_time0 > 65000))      //當(dāng)超聲波超過(guò)測(cè)量范圍時(shí),顯示3個(gè)888
  110.                             {
  111.                                           TR0 = 0;
  112.                                           flag_csb_juli = 2;
  113.                                           distance = 888;
  114.                                           flag_hc_value = 0;
  115.                                           break ;                           
  116.                             }
  117.                             else
  118.                             {
  119.                                           flag_csb_juli = 1;            
  120.                             }
  121.               }
  122.               if(flag_csb_juli == 1)
  123.               {            
  124.                             TR0=0;                                                                                                  //關(guān)定時(shí)器0定時(shí)
  125.                             distance = TH0;                                                             //讀出定時(shí)器0的時(shí)間
  126.                             distance = distance * 256 + TL0;
  127.                             distance +=( flag_hc_value * 65536);//算出超聲波測(cè)距的時(shí)間              得到單位是ms
  128.                             distance *= 0.017;               // 0.017 = 340M / 2 = 170M = 0.017M 算出來(lái)是米
  129.                             if(distance > 350)                                                        //距離 = 速度 * 時(shí)間
  130.                             {            
  131.                                           distance = 888;                                                        //如果大于3.8m就超出超聲波的量程
  132.                             }
  133.               }
  134. }


  135. /*********************定時(shí)器0、定時(shí)器1初始化******************/
  136. void time_init()               
  137. {
  138.               EA  = 1;                              //開總中斷
  139.               TMOD = 0X11;                //定時(shí)器0、定時(shí)器1工作方式1
  140.               ET0 = 1;                              //開定時(shí)器0中斷
  141.               TR0 = 1;                              //允許定時(shí)器0定時(shí)
  142.               ET1 = 1;                              //開定時(shí)器1中斷
  143.               TR1 = 1;                              //允許定時(shí)器1定時(shí)            
  144. }


  145. uchar value = 8;
  146. void main()
  147. {
  148.               send_wave();              //測(cè)距離函數(shù)
  149.               smg_display();              //處理距離顯示函數(shù)
  150.               time_init();
  151.               init_1602();
  152.               while(1)
  153.               {
  154.                             if(flag_300ms == 1)
  155.                             {
  156.                                           value ++;
  157.                                           if(value >= 12)                            //5秒鐘自動(dòng)播放一次
  158.                                           {
  159.                                                         value = 0;
  160.                                                         if(distance == 888)
  161.                                                         {
  162.                                                                       Send_threelines(0x0d);                //超出量程
  163.                                                                       delay_1ms(1000);
  164.                                                         }
  165.                                                         else
  166.                                                         {
  167.                                                                       Send_threelines(yujing[2]);                 //語(yǔ)音播放
  168.                                                                       delay_1ms(400);                                                      
  169.                                                                       Send_threelines(0x0b);
  170.                                                                       delay_1ms(400);
  171.                                                                       Send_threelines(yujing[1]);
  172.                                                                       delay_1ms(400);
  173.                                                                       Send_threelines(yujing[0]);
  174.                                                                       delay_1ms(400);
  175.                                                                       Send_threelines(0x0c);
  176.                                                                       delay_1ms(400);
  177.                                                         }
  178.                                           }                                                                                                                                                                                                      
  179.                                           flag_300ms = 0;
  180.                                           send_wave();              //測(cè)距離函數(shù)
  181.                                           if(menu_1 == 0)
  182.                                                         smg_display();              //處理距離顯示函數(shù)
  183. ……………………

  184. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
超聲波測(cè)距語(yǔ)音播報(bào)論文.doc (1.08 MB, 下載次數(shù): 108)


評(píng)分

參與人數(shù) 1黑幣 +1 收起 理由
xgang320 + 1 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:254412 發(fā)表于 2017-12-11 14:30 | 顯示全部樓層
很有用謝謝
回復(fù)

使用道具 舉報(bào)

ID:260447 發(fā)表于 2017-12-11 23:54 來(lái)自手機(jī) | 顯示全部樓層
感謝樓主,學(xué)習(xí)到了
回復(fù)

使用道具 舉報(bào)

ID:434071 發(fā)表于 2018-11-27 11:43 | 顯示全部樓層
感謝6666666666666
回復(fù)

使用道具 舉報(bào)

ID:434121 發(fā)表于 2018-11-27 13:29 | 顯示全部樓層
感謝!樓主6666
回復(fù)

使用道具 舉報(bào)

ID:444537 發(fā)表于 2018-12-12 15:32 | 顯示全部樓層
感謝樓主!!
回復(fù)

使用道具 舉報(bào)

ID:352784 發(fā)表于 2020-3-25 19:15 | 顯示全部樓層
不完全正確,需要小改幾個(gè)地方
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表