概述:超聲波測(cè)距器在汽車倒車,建筑工地和一些工業(yè)現(xiàn)場(chǎng)有著很廣泛的用途。其測(cè)量范圍0.10~4.0m,測(cè)量精度可高達(dá)1cm左右。
本設(shè)計(jì)采用新型8051控制器c8051f020,系統(tǒng)采用22.1184MHZ的高精度晶振,來(lái)獲得穩(wěn)定的時(shí)間頻率,以減少測(cè)量誤差。C8051f020用P3.0端口輸出超聲波換能器所需的40khz方波信號(hào),利用中斷口檢測(cè)超聲波接收電路輸出的返回信號(hào)。顯示電路采用SPI延伸的LCD1602液晶。
本設(shè)計(jì)的重點(diǎn)就是超聲波的接收和發(fā)射電路。
超聲波的發(fā)射電路如下圖1.2
圖1.2
發(fā)射電路主要由反向器74HC04和超聲波換能器構(gòu)成,P3.0端口輸出的40khz方波信號(hào)一路經(jīng)反向器送到超聲波換能器的一個(gè)電極,另一路經(jīng)兩級(jí)反向器后送到超聲波換能器的另一個(gè)電極,用這種方式可以提高超聲波的發(fā)射強(qiáng)度。
超聲波接收電路如下圖1.3
圖1.3
集成電路CX20106A是一款紅外接收的芯片,常用于電視紅外遙控器。常用的載波頻率38khz與測(cè)距的40khz較為相近,可以利用它來(lái)做接收電路。適當(dāng)?shù)母淖僀3的大小,可以改變接受電路的靈敏度和抗*力。
顯示電路如下圖1.4
采用c8051f020的SPI從而驅(qū)動(dòng)595控制lcd1602.其中LCDCS為595的片選信號(hào)
本設(shè)計(jì)把片選信號(hào)定義為P3.1.
sbitLCDCSP3^1;
另一個(gè)重點(diǎn)就是超聲波測(cè)距的算法計(jì)算。
D=S/2(v+t)/2---------------------------------------------------------------------------(1-1)
其中D為被測(cè)物與測(cè)距器的距離。
S為聲波的來(lái)回路程。
V為聲速。
T為所用時(shí)間。
C8051F020外設(shè)及其豐富,本設(shè)計(jì)只用到了外部中斷和SPI的部分管腳,在此基礎(chǔ)上還可以增加不少內(nèi)容,純粹使用前后臺(tái)系統(tǒng),會(huì)使系統(tǒng)的適時(shí)性受到限制,在下篇我會(huì)詳細(xì)介紹基于c8051f020的ucos_II的移植。
代碼部分:
//-------------------------------------------------------------------------
//SPI_Init()
//-------------------------------------------------------------------------
voidSPI0_Init(void)
{
SPI0CFG=0x07;//datasampledon1stSCKrisingedge
//8-bitdatawords
SPI0CFG|=0x40;//CKPOL=1;01000111
SPI0CN=0x03;//Mastermode;SPIenabled;flags
//cleared
SPI0CKR=SYSCLK/2/2000000-1;//SPIclock<=8MHz(limitedby
//EEPROMspec.)
}
voidMSPI_SendData(unsignedcharddata)
{
LCDCS=0;//片選HC595
SPIF=0;
SPI0DAT=ddata;
while(SPIF==0);//等待寫結(jié)束
LCDCS=1;
}