我用的是51单片机开发板,我想把HC-SR04超距检测的结果在LCD1602上显示,但数据检测很不好,总在01234这几个之徘徊。
大佬们看看我写的HC-SR04模块哪里有错误,要改进哪里:
#include <REGX51.H>
#include "Delay.h"
sbit Trig=P1^7;
sbit Echo=P1^6;
void Timer_Init()
{
TMOD |= 0x01;
TH0 = 0;
TL0 = 0;
TR0=0;
}
/*
初始化
*/
void HC_Init()
{
Trig=0;
Echo=0;
Timer_Init();
}
unsigned int HC_Getdistance()
{
unsigned char time,distance;
Trig=1;
Delay10us();
Trig=0;
while(Echo==0);
TR0=1;
while(Echo==1);
TR0=0;
time=(256*TH0+TL0)*1.085;
TH0 = 0;
TL0 = 0;
distance=time*17/100;
Delay_ms(80);
return distance;
}
|