基于51的hc-sr04超声波测距
时间: 2023-07-31 21:04:57 浏览: 87
基于51的超声波测距
HC-SR04超声波测距模块是一种非常常用的测距模块,它可以通过发送超声波信号并接收其回波来计算物体与模块之间的距离。下面是基于51单片机的HC-SR04超声波测距的基本原理和代码实现:
## 原理
HC-SR04超声波测距模块通过发送一个10微秒的高电平信号来激活模块,模块会自动发送一个8个周期的40kHz的超声波信号。当超声波信号被物体反射后,模块会自动将接收到的回波信号转换为一个高电平信号,该信号的脉冲宽度与物体与模块之间的距离成正比。因此,我们可以通过测量该信号的脉冲宽度来计算物体与模块之间的距离。
## 代码
```c
#include<STC12C5A60S2.h>
typedef unsigned char uchar;
typedef unsigned int uint;
sbit Trig=P1^0;
sbit Echo=P1^1;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void InitUltrasonic()
{
TMOD=0x01;
TH0=0;
TL0=0;
Trig=0;
Echo=0;
}
uint GetDistance()
{
uint distance;
Trig=1;
delay(10);
Trig=0;
while(!Echo);
TR0=1;
while(Echo);
TR0=0;
distance=TH0*256+TL0;
distance=distance*17/1000;
return distance;
}
void main()
{
InitUltrasonic();
while(1)
{
uint distance;
distance=GetDistance();
}
}
```
以上就是基于51单片机的HC-SR04超声波测距的基本原理和代码实现。
阅读全文