论文部分内容阅读
摘要:由于超聲波检测具有迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用等优点,在此介绍一种基于单片机的超声测距系统。采用STC-IAP15F2K60S2单片机作为控制核心,数码管作为显示器件,在Keil uVision 4开发环境中运用C语言进行编程,通过STC单片机下载器stc-isp-15xx-v6.86H载入到开发板中进行测试。本文分别介绍了超声测距系统的部分硬件和软件设计,给出部分功能实现代码。
关键词:超声测距;STC-IAP15F2K60S2;超声波传感器;
0 引言
随着测量技术的发展,各种新型的测量方法应运而生,其中应用相对广泛的有红外测距、激光测距以及超声波测距。红外测距的可实施性强,但其方向性差;激光测距的方向性,但其操作危险,制作难度大、成本高,且受灰尘影响较大;而超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。目前的主要应用有机器人避障、物体测距、液位检测、公共安防,停车场检测等。
1.基本工作原理
当超声波发射器发射超声波时,单片机定时/计数器启动计时,当超声波在空气中的传播收到障碍物阻碍返回后,待超声波接收器收到反射波时单片机定时/计数器立即停止计时。假设超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2。
超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。
利用DS18B20等温度传感器可针对不同温度下超声波在空气中传播速度的差异进行温度补偿,以提高测量精度,在此不做详细介绍。
2.系统结构
本次设计的超声测距系统是基于STC-IAP15F2K60S2单片机进行设计,包括主控制电路模块,数码管显示模块,超声波HC-SR04传感器模块等。
图1 超声测距系统框图
3.系统硬件设计
3.1 STC-IAP15F2K60S2
STC生产的单时钟/机器周期(IT)的单片机,是高速/高可靠/低功耗/超强抗干扰的新一代8051单片机,采用第八代加密技术,加密性超强,指令代码完全兼容传统8051,但速度快8-12倍。内部集成高精度R/C时钟,±1%温飘,常温下温飘5%,5MHz—35MHz宽范围可设置,可彻底省掉外部昂贵的晶振和外部复位电路(内部已集成高可靠复位电路,8级可选复位门槛电压)。
3.2 HC-SR04
一个控制口发一个10us以上的高电平(本设计中为13us),在接收口等待高电平输出,一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时定时器的值就为此次测距的时间,利用公式可算出发射点到障碍物的实际距离。
基本工作原理:
(1)采用IO口TRIG触发测距,给至少10us的高电平信号;
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2。
4、系统软件设计
4.1 超声波发射(部分代码)
sbit TX=P1^0;
sbit RX=P1^0;
void Delay13us()//延时函数,13微妙
{
unsigned char i;
_nop-();
_nop-();
i=33;
while(--i);
}
void chaosheng_start()//超声波发射函数
{
unsigned char i;
for(i=0;i<8;i++)
{
TX=0;
Delay13us();
TX=1;
Delay13us();
}
}
4.2 超声波接受(部分代码)
float get_distance()//超声波接收函数
{
int time;
float dis;
TH1=0;
TL1=0;
chaosheng_start();
TR1=1;
while(RX);
TR1=0;
time=TH1;
time<<8;
time|=TL1;
dis=time*0.017;
return dis;
}
5、结束语
本文设计的基于STC-IAP15F2K60S2单片机的超声测距系统,该设计可实现性强,操作简单,测距精确,唯一的缺陷是在误差处理方面,例如温度引起的超声波传播速度的变化,可采用DS18B20温度补偿,对于精度要求不高的场合可采用此设计系统。该系统可操作性强,可在此基础上进行修改,实现更多更高级的功能。
参考文献:
[1]杜新法.基于单片机控制的超声测距系统设计.中原工学院报:2017年6月第28卷第3期.
[2]https://baike.so.com
关键词:超声测距;STC-IAP15F2K60S2;超声波传感器;
0 引言
随着测量技术的发展,各种新型的测量方法应运而生,其中应用相对广泛的有红外测距、激光测距以及超声波测距。红外测距的可实施性强,但其方向性差;激光测距的方向性,但其操作危险,制作难度大、成本高,且受灰尘影响较大;而超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。目前的主要应用有机器人避障、物体测距、液位检测、公共安防,停车场检测等。
1.基本工作原理
当超声波发射器发射超声波时,单片机定时/计数器启动计时,当超声波在空气中的传播收到障碍物阻碍返回后,待超声波接收器收到反射波时单片机定时/计数器立即停止计时。假设超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2。
超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。
利用DS18B20等温度传感器可针对不同温度下超声波在空气中传播速度的差异进行温度补偿,以提高测量精度,在此不做详细介绍。
2.系统结构
本次设计的超声测距系统是基于STC-IAP15F2K60S2单片机进行设计,包括主控制电路模块,数码管显示模块,超声波HC-SR04传感器模块等。
图1 超声测距系统框图
3.系统硬件设计
3.1 STC-IAP15F2K60S2
STC生产的单时钟/机器周期(IT)的单片机,是高速/高可靠/低功耗/超强抗干扰的新一代8051单片机,采用第八代加密技术,加密性超强,指令代码完全兼容传统8051,但速度快8-12倍。内部集成高精度R/C时钟,±1%温飘,常温下温飘5%,5MHz—35MHz宽范围可设置,可彻底省掉外部昂贵的晶振和外部复位电路(内部已集成高可靠复位电路,8级可选复位门槛电压)。
3.2 HC-SR04
一个控制口发一个10us以上的高电平(本设计中为13us),在接收口等待高电平输出,一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时定时器的值就为此次测距的时间,利用公式可算出发射点到障碍物的实际距离。
基本工作原理:
(1)采用IO口TRIG触发测距,给至少10us的高电平信号;
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2。
4、系统软件设计
4.1 超声波发射(部分代码)
sbit TX=P1^0;
sbit RX=P1^0;
void Delay13us()//延时函数,13微妙
{
unsigned char i;
_nop-();
_nop-();
i=33;
while(--i);
}
void chaosheng_start()//超声波发射函数
{
unsigned char i;
for(i=0;i<8;i++)
{
TX=0;
Delay13us();
TX=1;
Delay13us();
}
}
4.2 超声波接受(部分代码)
float get_distance()//超声波接收函数
{
int time;
float dis;
TH1=0;
TL1=0;
chaosheng_start();
TR1=1;
while(RX);
TR1=0;
time=TH1;
time<<8;
time|=TL1;
dis=time*0.017;
return dis;
}
5、结束语
本文设计的基于STC-IAP15F2K60S2单片机的超声测距系统,该设计可实现性强,操作简单,测距精确,唯一的缺陷是在误差处理方面,例如温度引起的超声波传播速度的变化,可采用DS18B20温度补偿,对于精度要求不高的场合可采用此设计系统。该系统可操作性强,可在此基础上进行修改,实现更多更高级的功能。
参考文献:
[1]杜新法.基于单片机控制的超声测距系统设计.中原工学院报:2017年6月第28卷第3期.
[2]https://baike.so.com