蓝桥杯单片机CT107D 超声波测距

蓝桥杯单片机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;
}

猜你喜欢

转载自blog.csdn.net/qq_41676952/article/details/87881740