stc89c52控制三个超声波模块工作

分时工作,可是到最后一个模块工作时,所测得距离的总是保持在一个范围内,比如设置第三个模块的测得的距离在50cm内是电机倒转,50cm外,电机正转,实际测得时电机总是在倒转... 分时工作,可是到最后一个模块工作时,所测得距离的总是保持在一个范围内,比如设置第三个模块的测得的距离在50cm内是电机倒转,50cm外,电机正转,实际测得时电机总是在倒转,就算该方向没有障碍物,依然倒转,很疑惑,妄大神解决,模块均没有损坏。
附主函数和延时函数
void main()
{ init();
while(1)
{

StartModule1();
while(!ECHO1);
TR1=1;
while(ECHO1);
TR1=0;
Conut1();
delay(800);
StartModule2();
while(!ECHO2);
TR1=1;
while(ECHO2);
TR1=0;
Conut2();
delay(2000);
StartModule3();
while(!ECHO3);
TR1=1;
while(ECHO3);
TR1=0;
Conut3();
delay(5000);
}
}

void delay(uchar x)
{
uint a,b;
for(a=x;a>0;a--)
for(b=100;b>0;b--);
}
展开
 我来答
Tbirt
2015-01-29 · TA获得超过102个赞
知道答主
回答量:70
采纳率:100%
帮助的人:45.2万
展开全部
延时函数参数类型!试把最后的5000也改为2000
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式