用STC89C52和US-100来实现超声波测距,谁能给个思路,有c代码更加好!

 我来答
cd68001
2012-12-20 · TA获得超过4229个赞
知道小有建树答主
回答量:976
采纳率:66%
帮助的人:349万
展开全部
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不变、电路和探头模块无大调整,这两个系数都不会变。
北京微厘光电技术有限公司
2023-08-27 广告
工业级测距仪咨询北京微厘光电技术有限公司,公司开发的激光测量传感器获得业界广泛认可。旗下目前有“激光多普勒测速测长系统”和“工业级激光测距仪”两种产品。公司产品广泛应用于工业自动化控制中,可以优化生产线过程控制,提高产品质量,提高生产效率及... 点击进入详情页
本回答由北京微厘光电技术有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式