hc-sr04超声波测距模块 90c54代码
时间: 2023-09-24 18:09:45 浏览: 49
HC-SR04超声波测距模块
以下是使用90c54单片机编写的HC-SR04超声波测距模块代码:
```c
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit Trig=P2^0; //定义Trig引脚
sbit Echo=P2^1; //定义Echo引脚
void delay(uint i) //延时函数
{
while(i--);
}
void Init() //初始化函数
{
TMOD=0x01; //设置定时器T0为模式1
TH0=0; //清除计时器的初值
TL0=0;
}
uint GetDistance() //获取距离函数
{
uint distance;
Trig=0;
delay(100);
Trig=1;
delay(12); //发出40kHz的超声波信号
Trig=0;
while(!Echo);
TH0=0;
TL0=0;
while(Echo);
TR0=1; //启动计时器
while(!Echo);
TR0=0; //停止计时器
distance=(TH0*256+TL0)/58; //计算距离
return distance;
}
void main()
{
uint distance;
while(1)
{
distance=GetDistance();
if(distance<500) //如果距离小于500cm
{
P1=0x00; //LED灯亮
}
else
{
P1=0xff; //LED灯灭
}
}
}
```
在上面的代码中,我们使用定时器T0来计算超声波的回波时间,并根据回波时间计算出距离。如果距离小于500cm,则点亮P1口的LED灯,否则关闭LED灯。
阅读全文