超聲波測(cè)距器的設(shè)計(jì)
超聲波測(cè)距器在汽車倒車,建筑工地和一些工業(yè)現(xiàn)場(chǎng)有著很廣泛的用途。其測(cè)量范圍0.10~4.0 m,測(cè)量精度可高達(dá)1 cm左右。
本設(shè)計(jì)采用新型8051控制器c8051f020,系統(tǒng)采用22.1184MHZ的高精度晶振,來獲得穩(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較為相近,可以利用它來做接收電路。適當(dāng)?shù)母淖僀3的大小,可以改變接受電路的靈敏度和抗干擾能力。
顯示電路如下圖1.4
采用c8051f020 的SPI 從而驅(qū)動(dòng)595控制lcd1602. 其中LCDCS為595的片選信號(hào)
本設(shè)計(jì)把片選信號(hào) 定義為P3.1 .
sbit LCDCS P3^1;
另一個(gè)重點(diǎn)就是超聲波測(cè)距的算法計(jì)算。
D = S/2(v+t)/2 ---------------------------------------------------------------------------(1-1)
其中D為被測(cè)物與測(cè)距器的距離。
S為聲波的來回路程。
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()
//-------------------------------------------------------------------------
void SPI0_Init (void)
{
SPI0CFG = 0x07; // data sampled on 1st SCK rising edge
// 8-bit data words
SPI0CFG|=0x40; //CKPOL =1;01000111
SPI0CN = 0x03; // Master mode; SPI enabled; flags
// cleared
SPI0CKR = SYSCLK/2/2000000-1; // SPI clock = 8MHz (limited by
// EEPROM spec.)
}
void MSPI_SendData(unsigned char ddata)
{
LCDCS = 0; // 片選HC595
SPIF = 0;
SPI0DAT = ddata;
while (SPIF == 0); // 等待寫結(jié)束
LCDCS = 1;
}
評(píng)論