劉坤香 張海峰
摘要:由于超聲波檢測(cè)具有迅速、方便、計(jì)算簡(jiǎn)單、易于做到實(shí)時(shí)控制,并且在測(cè)量精度方面能達(dá)到工業(yè)實(shí)用等優(yōu)點(diǎn),在此介紹一種基于單片機(jī)的超聲測(cè)距系統(tǒng)。采用STC-IAP15F2K60S2單片機(jī)作為控制核心,數(shù)碼管作為顯示器件,在Keil uVision 4開(kāi)發(fā)環(huán)境中運(yùn)用C語(yǔ)言進(jìn)行編程,通過(guò)STC單片機(jī)下載器stc-isp-15xx-v6.86H載入到開(kāi)發(fā)板中進(jìn)行測(cè)試。本文分別介紹了超聲測(cè)距系統(tǒng)的部分硬件和軟件設(shè)計(jì),給出部分功能實(shí)現(xiàn)代碼。
關(guān)鍵詞:超聲測(cè)距;STC-IAP15F2K60S2;超聲波傳感器;
0 引言
隨著測(cè)量技術(shù)的發(fā)展,各種新型的測(cè)量方法應(yīng)運(yùn)而生,其中應(yīng)用相對(duì)廣泛的有紅外測(cè)距、激光測(cè)距以及超聲波測(cè)距。紅外測(cè)距的可實(shí)施性強(qiáng),但其方向性差;激光測(cè)距的方向性,但其操作危險(xiǎn),制作難度大、成本高,且受灰塵影響較大;而超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),因而超聲波經(jīng)常用于距離的測(cè)量。目前的主要應(yīng)用有機(jī)器人避障、物體測(cè)距、液位檢測(cè)、公共安防,停車場(chǎng)檢測(cè)等。
1.基本工作原理
當(dāng)超聲波發(fā)射器發(fā)射超聲波時(shí),單片機(jī)定時(shí)/計(jì)數(shù)器啟動(dòng)計(jì)時(shí),當(dāng)超聲波在空氣中的傳播收到障礙物阻礙返回后,待超聲波接收器收到反射波時(shí)單片機(jī)定時(shí)/計(jì)數(shù)器立即停止計(jì)時(shí)。假設(shè)超聲波在空氣中的傳播速度為340m/s,根據(jù)計(jì)時(shí)器記錄的時(shí)間t,就可以計(jì)算出發(fā)射點(diǎn)距障礙物的距離(s),即:s=340t/2。
超聲波測(cè)距的原理是利用超聲波在空氣中的傳播速度為已知,測(cè)量聲波在發(fā)射后遇到障礙物反射回來(lái)的時(shí)間,根據(jù)發(fā)射和接收的時(shí)間差計(jì)算出發(fā)射點(diǎn)到障礙物的實(shí)際距離。
利用DS18B20等溫度傳感器可針對(duì)不同溫度下超聲波在空氣中傳播速度的差異進(jìn)行溫度補(bǔ)償,以提高測(cè)量精度,在此不做詳細(xì)介紹。
2.系統(tǒng)結(jié)構(gòu)
本次設(shè)計(jì)的超聲測(cè)距系統(tǒng)是基于STC-IAP15F2K60S2單片機(jī)進(jìn)行設(shè)計(jì),包括主控制電路模塊,數(shù)碼管顯示模塊,超聲波HC-SR04傳感器模塊等。
圖1 超聲測(cè)距系統(tǒng)框圖
3.系統(tǒng)硬件設(shè)計(jì)
3.1 STC-IAP15F2K60S2
STC生產(chǎn)的單時(shí)鐘/機(jī)器周期(IT)的單片機(jī),是高速/高可靠/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),采用第八代加密技術(shù),加密性超強(qiáng),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成高精度R/C時(shí)鐘,±1%溫飄,常溫下溫飄5%,5MHz—35MHz寬范圍可設(shè)置,可徹底省掉外部昂貴的晶振和外部復(fù)位電路(內(nèi)部已集成高可靠復(fù)位電路,8級(jí)可選復(fù)位門(mén)檻電壓)。
3.2 HC-SR04
一個(gè)控制口發(fā)一個(gè)10us以上的高電平(本設(shè)計(jì)中為13us),在接收口等待高電平輸出,一有輸出就可以開(kāi)定時(shí)器計(jì)時(shí),當(dāng)此口變?yōu)榈碗娖綍r(shí)就可以讀定時(shí)器的值,此時(shí)定時(shí)器的值就為此次測(cè)距的時(shí)間,利用公式可算出發(fā)射點(diǎn)到障礙物的實(shí)際距離。
基本工作原理:
(1)采用IO口TRIG觸發(fā)測(cè)距,給至少10us的高電平信號(hào);
(2)模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;
(3)有信號(hào)返回,通過(guò)IO口ECHO輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。測(cè)試距離=(高電平時(shí)間*聲速(340M/S))/2。
4、系統(tǒng)軟件設(shè)計(jì)
4.1 超聲波發(fā)射(部分代碼)
sbit TX=P1^0;
sbit RX=P1^0;
void Delay13us()//延時(shí)函數(shù),13微妙
{
unsigned char i;
_nop-();
_nop-();
i=33;
while(--i);
}
void chaosheng_start()//超聲波發(fā)射函數(shù)
{
unsigned char i;
for(i=0;i<8;i++)
{
TX=0;
Delay13us();
TX=1;
Delay13us();
}
}
4.2 超聲波接受(部分代碼)
float get_distance()//超聲波接收函數(shù)
{
int time;
float dis;
TH1=0;
TL1=0;
chaosheng_start();
TR1=1;
while(RX);
TR1=0;
time=TH1;
time<<8;
time|=TL1;
dis=time*0.017;
return dis;
}
5、結(jié)束語(yǔ)
本文設(shè)計(jì)的基于STC-IAP15F2K60S2單片機(jī)的超聲測(cè)距系統(tǒng),該設(shè)計(jì)可實(shí)現(xiàn)性強(qiáng),操作簡(jiǎn)單,測(cè)距精確,唯一的缺陷是在誤差處理方面,例如溫度引起的超聲波傳播速度的變化,可采用DS18B20溫度補(bǔ)償,對(duì)于精度要求不高的場(chǎng)合可采用此設(shè)計(jì)系統(tǒng)。該系統(tǒng)可操作性強(qiáng),可在此基礎(chǔ)上進(jìn)行修改,實(shí)現(xiàn)更多更高級(jí)的功能。
參考文獻(xiàn):
[1]杜新法.基于單片機(jī)控制的超聲測(cè)距系統(tǒng)設(shè)計(jì).中原工學(xué)院報(bào):2017年6月第28卷第3期.
[2]https://baike.so.com