.H文件
#ifndef _SONIC_H_
#define _SONIC_H_
#include "STC15F2K60S2.h"
#include "delay.h"
sbit TX=P1^0;
sbit RX=P1^1;
void send_wave();
unsigned int get_distance();
#endif
.C文件
#include "sonic.h"
void send_wave()
{
unsigned char j;
for(j=0;j<=7;j++)
{
TX=1;
delay_10us(1);
TX=0;
delay_10us(1);
}
}
unsigned int get_distance()
{
unsigned int distance;
send_wave();
TR0=1;
while((RX==1)&&(TF0==0)); //TF0溢出中断标志位 溢出置1
TR0=0;
if(TF0==1)
{
TF0=0;
distance=0;
}
else
{
distance=(TH0<<8)|TL0;
TH0=0;
TL0=0;
distance=distance*17/1000; //显示单位cm
}
return distance;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/82551.html