逃亡兔第一季全集16集:超声波测距器的设计
超声波测距器在汽车倒车,建筑工地和一些工业现场有着很广泛的用途。其测量范围0.10~
图1.1
本设计采用新型8051控制器c
本设计的重点就是超声波的接收和发射电路。
超声波的发射电路如下图1.2
图1.2
发射电路主要由反向器74HC04和超声波换能器构成,P3.0端口输出的40khz方波信号一路经反向器送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种方式可以提高超声波的发射强度。
超声波接收电路如下图1.3
图1.3
集成电路CX
显示电路如下图1.4
图1.4
采用c
本设计把片选信号 定义为P3.1 .
sbit LCDCS P3^1;
另一个重点就是超声波测距的算法计算。
D = S/2(v+t)/2 ---------------------------------------------------------------------------(1-1)
其中D为被测物与测距器的距离。
S为声波的来回路程。
V为声速。
T为所用时间。
C8051F020 外设及其丰富,本设计只用到了外部中断和SPI的部分管脚,在此基础上还可以增加不少内容,纯粹使用前后台系统,会使系统的适时性受到限制,在下篇我会详细介绍基于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); // 等待写结束
LCDCS = 1;
}
----------------------------------zjw5000 2008-11-18