用STC89C52和US-100来实现超声波测距,谁能给个思路,有c代码更加好!
展开全部
US-100是什么,不同时把规格说明贴出来,几个人能知道?
我居然还犯贱还百度了一下,你看看是不是这个?
http://wenku.baidu.com/view/65e63e35a32d7375a41780ce.html
这个接口很常见,以前我给别人也回答过类似问题,当然型号却是另一个。现在擅长创新的太少,擅长起名的太多了。
电路可以按STC89C52的基本电路搭建(晶振、复位、RS232),也可以使用成品开发板,把US-100的Trig和Echo分别连到89C52上。
再给你一段伪代码吧,这是几个月前我回答别人时写的,给你稍微改了一下。
//定义T为与模块Trig脚相连的IO脚;
//定义E为与模块Echo脚相连的IO脚;
//定义L为int16类型,存储计时数据,它也代表着距离;
//定义D为int16类型,用于调整两次测距的时间间隔;
//定义R为int16类型,用于存储实际的测量结果;
while(1)
{
T=1;
//延迟10uS,建议加几行nop();
T=0;
L=0;
for(D=0;D<123456;D++) //调整123456这个值,使T脚两次触发的时间间隔为200ms左右
{
if(E==1) L++; //当E为高电平时L累加,L的大小能体现E的持续时间,也就是测距的距离
}
R=L*0.06789+3.456; //将本次的测量结果转换为公制,保存在R中
//这里可以输出测距结果R
}
上面的0.06789和3.456是两个系数,最终需要你根据不同距离的标靶进行实际矫正。另外3.456基本也是盲区的距离,可直接测得。系数确定以后,对于批量生产的产品,只要程序不改、晶振和MCU不变、电路和探头模块无大调整,这两个系数都不会变。
我居然还犯贱还百度了一下,你看看是不是这个?
http://wenku.baidu.com/view/65e63e35a32d7375a41780ce.html
这个接口很常见,以前我给别人也回答过类似问题,当然型号却是另一个。现在擅长创新的太少,擅长起名的太多了。
电路可以按STC89C52的基本电路搭建(晶振、复位、RS232),也可以使用成品开发板,把US-100的Trig和Echo分别连到89C52上。
再给你一段伪代码吧,这是几个月前我回答别人时写的,给你稍微改了一下。
//定义T为与模块Trig脚相连的IO脚;
//定义E为与模块Echo脚相连的IO脚;
//定义L为int16类型,存储计时数据,它也代表着距离;
//定义D为int16类型,用于调整两次测距的时间间隔;
//定义R为int16类型,用于存储实际的测量结果;
while(1)
{
T=1;
//延迟10uS,建议加几行nop();
T=0;
L=0;
for(D=0;D<123456;D++) //调整123456这个值,使T脚两次触发的时间间隔为200ms左右
{
if(E==1) L++; //当E为高电平时L累加,L的大小能体现E的持续时间,也就是测距的距离
}
R=L*0.06789+3.456; //将本次的测量结果转换为公制,保存在R中
//这里可以输出测距结果R
}
上面的0.06789和3.456是两个系数,最终需要你根据不同距离的标靶进行实际矫正。另外3.456基本也是盲区的距离,可直接测得。系数确定以后,对于批量生产的产品,只要程序不改、晶振和MCU不变、电路和探头模块无大调整,这两个系数都不会变。
福州大禹电子科技
2024-12-16 广告
2024-12-16 广告
福州大禹电子科技有限公司成立于2008年自创办以来,专注超声产品的研发和产业化,始终坚持技术创新是企业发展动力的理念,运用最基础的物理声学原理,攻克了一系列卡脖子难题,成功打破了国外垄断,把超声技术运用到了工控、水利、市政、环保、医疗,海洋...
点击进入详情页
本回答由福州大禹电子科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询