51单片机中写一段用hc-sr04传感器的程序
时间: 2023-12-23 20:06:08 浏览: 70
好的,我可以为您编写一段51单片机使用HC-SR04传感器的程序。以下是代码示例:
#include <reg52.h>
sbit TRIG=P3^5; //定义TRIG引脚为P3.5口
sbit ECHO=P3^2; //定义ECHO引脚为P3.2口
void delay_us(unsigned int i) //延时函数,单位是微秒
{
while(i--);
}
void delay_ms(unsigned int i) //延时函数,单位是毫秒
{
unsigned int j;
while(i--)
{
j=125;
while(j--);
}
}
unsigned int hc_sr04() //测距函数,返回距离值(单位:厘米)
{
unsigned int distance=0;
unsigned long time;
TRIG=0;
delay_us(2);
TRIG=1;
delay_us(10); //发出10微秒的高电平脉冲
TRIG=0;
while(!ECHO); //等待ECHO口变为高电平
time=T0;
while(ECHO); //等待ECHO口变为低电平
time=T0-time; //计算高电平时间
distance=time/29/2; //计算距离,单位厘米
return distance;
}
void main()
{
unsigned int dis=0;
TMOD=0x01; //将计数器T0设为工作方式1
while(1)
{
dis=hc_sr04(); //读取距离值
if(dis<30)
{
P1=0x00; //当距离小于30cm时,点亮LED灯
}
else
{
P1=0xff; //否则熄灭LED灯
}
delay_ms(100); //100毫秒后重新进行距离测量
}
}
希望这段代码能帮到您,如有疑问欢迎随时提出。
阅读全文