我要发布
仪器网/ 仪器社区/ 激光测距仪/ 求US-100(模块)超声波测距的C语言程序,基于51单片机...

求US-100(模块)超声波测距的C语言程序,基于51单片机的,3Q哦~

古玥美    2017-05-17    激光测距仪    浏览 493 次

求基于51单片机的US-100超声波测距C语言程序。需要详细点的具体设计程序,O(∩_∩)O~ US-100模块参考资料:http://wenku.baidu.com/view/65e63e35a32d7375a41780ce.html 性能要求:实现2--150cm的测距,测得结果保留4位有效数字(取整数),单位:mm。 哪... 求基于51单片机的US-100超声波测距C语言程序。需要详细点的具体设计程序,O(∩_∩)O~ US-100模块参考资料:http://wenku.baidu.com/view/65e63e35a32d7375a41780ce.html
性能要求:实现2--150cm的测距,测得结果保留4位有效数字(取整数),单位:mm。
哪位大神帮帮忙喽,急啊!!!真心谢谢大神了~

精彩问答
a2424949339 发布日期:2017-05-18
#include
#define uchar unsigned char
#define uint unsigned int
unsigned char code smg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00};
sbit tr=P1^0;
sbit ec=P1^1;
uint distance,time,tl,th;
void delay_20us(void )
{
uchar a ;
for(a=0;a<100;a++);
}
void delay(uint a )
{
while(a--);
}
void display(void )
{
P2=0xff;
P2=0xfe;
P0=smg[distance/100];
delay(200);
P2=0xff;
P2=0xfd;
P0=smg[distance%100/10];
delay(200);
P2=0xff;
P2=0xfb;
P0=smg[distance%10];
delay(200);
}
void main(void )
{
uchar i;
TMOD=0X10;
while(1)
{
tr=1; //超声波输入端
delay_20us(); //延时20us
tr=0; //产生一个20us的脉冲
while(ec==0); //等待Echo回波引脚变高电平
TH1=0; //定时器1清零
TL1=0; //定时器1清零
TF1=0; //计数溢出标志
TR1=1; //启动定时器1
while(ec==1);
th=TH1;
tl=TL1;
TL1=0;
TH1=0;
TR1=0; //关闭定时器1
time=th*256+tl;
distance=time*0.017; //厘米 */
display();

}
}
不懂M我
最新主题
相关版块
我要评论
X您尚未登录
账号登录
X您尚未登录
手机动态密码登录
X您尚未登录
扫码登录
官方微信

仪器网微信服务号

扫码获取最新信息


仪器网官方订阅号

扫码获取最新信息

在线客服

咨询客服

在线客服
工作日:  9:00-18:00
联系客服 企业专属客服
电话客服:  400-822-6768
工作日:  9:00-18:00
订阅商机

仪采招微信公众号

采购信息一键获取海量商机轻松掌控