蓝桥杯单片机CT107D 超声波测距
首先定义一下发送和接收管脚
sbit Trig=P1^0;
sbit Echo=P1^1;
然后
uint8 get_distance()
{
uint16 distance;
Trig=1; //使发送端持续12us高电平
delay_us(12);
Trig=0;
TR1=1;//开始计时
while(Echo==1 && TF1==0);
TR1=0;//结束计时
if(TF1==1)
{
TF1=0;
distance=99;
}
else
{
distance=(TH1*256+TL1)*0.017+0.1; //计时距离 通过后面所加的数字调整误差
}
if(distance>=99) //最大不超过99cm
distance=99;
TH1=0;
TL1=0;
return distance;
}