c51单片机中HC-SR04超声波避障使用方法和例程
时间: 2023-05-21 17:00:47 浏览: 343
对于C51单片机中HC-SR04超声波避障使用方法和例程,可以通过以下代码实现:
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit Trig = P1^0;
sbit Echo = P1^1;
void delay_us(uint us)
{
while(us--)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
void delay_ms(uint ms)
{
while(ms--)
{
delay_us(1000);
}
}
void send_pulse()
{
Trig = 1;
delay_us(10);
Trig = 0;
}
uint get_distance()
{
uint distance;
uint time;
send_pulse();
while(!Echo);
TR0 = 1;
while(Echo);
TR0 = 0;
time = TH0 * 256 + TL0;
distance = time / 58;
return distance;
}
void main()
{
TMOD = 0x01;
TH0 = 0;
TL0 = 0;
while(1)
{
uint distance = get_distance();
if(distance < 30)
{
P2 = 0xff;
}
else
{
P2 = 0x00;
}
delay_ms(100);
}
}
这段代码实现了HC-SR04超声波避障的功能,当距离障碍物小于30cm时,P2口输出高电平,否则输出低电平。
阅读全文