找回密码
 注册
关于网站域名变更的通知

51 W111 超声波测距传感器

2023-8-24 18:40| 查看: 115| 评论: 0

摘要: 目标: a.超声波测距传感器工作原理b.超声波测距传感器编程举例内容:图示为典型的超声波测距传感器模块,由超声波发送和接收装置、引脚等部分组成,主要用于测距,有效距离2cm-400cm。引脚中VCC接5V,GND接地,Tri ...
目标:
a.超声波测距传感器工作原理b.超声波测距传感器编程举例内容:图示为典型的超声波测距传感器模块,由超声波发送和接收装置、引脚等部分组成,主要用于测距,有效距离2cm-400cm。640.png引脚中VCC接5V,GND接地,Trig和Echo接单片机IO端口。工作过程为,单片机给超声波模块的Trig引脚10us以上的高电平,触发测距。超声波模块内部将发射8个40kHz脉冲并检测回波,检测到回波信号后超声波模块的Echo引脚输出高电平,并且高电平持续时间为超声波的传播时间。高电平持续时间为t,则距离=(t*声速)/2。2.png硬件:超声波测距模块Trig引脚连接单片机P1.0端口,Echo引脚连接单片机P1.1端口。微信图片_20230823151510.png软件:用定时计数器T0记录时间间隔,晶振频率为12MHz时,时间间隔time的单位为us,障碍物距离distance的单位为cm。

#include <reg51.h>
sbit Trig  = P1^0;sbit Echo  = P1^1;

void delay20us()  //@12.000MHz
{  
unsigned char i;  
i = 7;  while (--i);
}
void main(void)
{  
unsigned int time;  unsigned int distance;  
TMOD=0x01;  TH0=0;  TL0=0;  Trig=1;  //10us以上的高电平,开始测距  
delay20us();  
Trig=0;  while(Echo==0);  //等待Echo引脚输出高电平  
TR0=1;  //测量时间间隔  
while(Echo==1);  TR0=0;  time = (TH0<<8) | TL0;  //时间间隔,12MHz晶振时单位为us  distance = (unsigned int)(time*0.017);  //障碍物距离,cm  while(1);
}


本站资讯文章系编辑转载,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!
[声明]本站文章版权归原作者所有 内容为作者个人观点 本站只提供参考并不构成任何投资及应用建议。
本站拥有对此声明的最终解释权。
收藏 邀请
关闭

推荐内容上一条 /1 下一条

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-27 17:06 , Processed in 0.171875 second(s), 28 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

返回顶部