基于单片机的超声波测距仪设计.docx
- 文档编号:9709713
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:12
- 大小:88.41KB
基于单片机的超声波测距仪设计.docx
《基于单片机的超声波测距仪设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的超声波测距仪设计.docx(12页珍藏版)》请在冰点文库上搜索。
基于单片机的超声波测距仪设计
基于单片机的超声波测距仪设计
1系统要求
我们组选择制作了一套超声波测距系统,功能有:
倒车雷达测量的显示距离在手机APP上显示,设定阈值,若小于设定的距离数值,蜂鸣器发出报警声。
2研究目的
为了深层次的巩固学习的单片机的知识,更加熟悉的使用Proteus和KeilC51这两个软件。
能够综合所学的单片机的知识进行系统设计,将所学习的知识运用到生活中。
我们组选择制作了这样一套超声波测距系统。
3设计方案及原理框图
3.1系统概述
在汽车倒车中存在的困难之一也会影响到驾驶员的驾驶情况,在驾驶员在驾驶座位上无法完全了解到四周特别是后方环境时,只能依赖后视镜来观察后方障碍物,而这种环境因素也会限制驾驶员的视野狭窄和清晰度,从而驾驶员导致倒车会遇到危险。
其二是驾驶员在进行倒车过程中,要观察左右环境,同时也要兼顾到汽车后侧与障碍物的距离,这样会使驾驶员过于分心和费力费神。
其三是驾驶员会依赖自己长久以来的驾驶技术,以此来停靠车位,这样会引起驾驶员无法准确的倒入准确位置。
解决这种问题是在汽车生产行业中重中之重要解决的一个技术性难题,我们可在汽车内部安置一个汽车倒车预报警系统,显示器可装置在汽车内部,驾驶员能看到的有利位置,而感应器则可以装置在汽车后侧内部,从而接受到后方的障碍物情况,传输到显示器当中。
这个设计可避免驾驶员在倒车时候频繁看后视镜去判断汽车与障碍物的距离,从而避免发生事故发生。
汽车倒车预报警系统在很大程度上解决了汽车倒车的难题,同时也为驾驶员的驾驶提供了安全的保障。
该设计由超声波传感器、STC89C52系列单片机、HC-SR04超声波传感器模块、蜂鸣器组成。
总体设计方案如图1所示。
图1总体设计方案
3.2系统总体电路图
单片机系统的电路图如图2所示。
图2系统设计图
4硬件实现
4.1STC89C52单片机
STC89C52是基于51系列的单片机发展过来的。
C52单片机功能为8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz。
此最小系统,包括一个主控芯片,还有一个复位电路和一个晶振电路。
其晶振为11.0592MHz。
本系统基于此芯片之上,通过P2.0口连接蜂鸣器,外接一个PNP,低电平导通,高电平截止。
4.2超声波传感器电路
HC-SR04超声波测距模块。
超声波传感器是将超声波信号转成其他能量信号的传感器。
超声波是振动频率高1于20KHz的机械波。
它具有频率高、波长短、绕射现象小,特别是方向性好、能够成为射线而定向传播等特点。
根据图3,我们可以看出它的工作原理:
图3HC-SR04时序图
以上时序图表明只需要提供一个10uS以上脉冲触发信号,该模块内部发出信号是8个40KHz的脉冲周期电平并检测回拨。
如果检测到有回拨信号的话,则会输出回响信号。
回响的电平输出与检测距离成正比。
由此可通过发射出去的信号接收到回响信号时间间隔。
4.3超声波原理及组成部分
原理:
超声波传感器是利用超声波的特性研制而成的传感器。
超声波是一种振动频率高于声波的机械波,由换能晶片在电压的激励下发生振动产生的,它具有频率高、波长短、绕射现象小,特别是方向性好、能够成为射线而定向传播等特点。
超声波对液体、固体的穿透本领很大,尤其是在阳光不透明的固体中,它可穿透几十米的深度。
超声波碰到杂质或分界面会产生显著反射形成反射成回波,碰到活动物体能产生多普勒效应。
因此超声波检测广泛应用在工业、国防、生物医学等方面。
以超声波作为检测手段,必须产生超声波和接收超声波。
完成这种功能的装置就是超声波传感器,习惯上称为超声换能器,或者超声探头。
组成部分:
超声波探头主要由压电晶片组成,既可以发射超声波,也可以接收超声波。
小功率超声探头多作探测作用。
它有许多不同的结构,可分直探头(纵波)、斜探头(横波)、表面波探头(表面波)、兰姆波探头(兰姆波)、双探头(一个探头反射、一个探头接收)等。
本次设计中使用的是双探头。
工作频率:
工作频率就是压电晶片的共振频率。
当加到它两端的交流电压的频率和晶片的共振频率相等时,输出的能量最大,灵敏度也最高。
5.软件的实现
5.1流程图
流程图如图4所示:
图4主程序流程图
根据图4主程序流程图中,可知道首先开始初始化定时器,然后启动超声波传感器并发出信号波。
判断ECHO线是否为1,若为假,则等待继续判断,若为真,则继续下一步。
开启定时器,判断ECHO线是否为0,若为假,则等待继续判断,若为真,则进行下一步。
关闭定时器,计算距离并发送到手机。
这样就完成了一次距离测量。
5.2蓝牙模块
是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换(使用2.4—2.485GHz的ISM波段的UHF无线电波)。
它的优势在于便于携带、数据传输方便、低功耗,性价比高,试用范围广,速度快。
劣势在于匹配速度慢,传输文件容易中毒,耗电量过大,有效传输的距离太近,一般距离是10米左右。
5.3安卓端APP设计
本次设计使用到了安卓端APP设计。
而传输的数据是通过蓝牙模块接收数值。
本意是把硬件部分的1602显示频替换成蓝牙APP显示。
从硬件接收到的数值会通过蓝牙模块传输到APP,接收到的数值会显示在APP上面。
通过手机蓝牙连接到蓝牙APP上。
配对成功后,读取数值。
6系统调试
系统实物图如图5所示。
图5系统实物图
7元器件清单及价格
元器件清单及价格见附录1。
8市场调研
根据市场调查,传感器主要按用途、原理、输出信号、制造工艺、测量目、构成、作用形式等进行分类,目前市面上的传感器价格从1、2元到16000元左右不等,AQUAFINE传感器42601就需要16000元左右,而较为便宜的日本尼赛拉红外传感器只需要2元左右,经过多方面考虑,我们在这次课设中使用了性价比较高的超声波传感器,售价4元。
9总结
通过这次课题设计,我能更好的应用Proteus和KeilC515软件,提高了自己的动手能力,对系统的理解也更加深刻。
对利用单片机进行控制系统的设计与开发以及对系统的分析和问题的解决有了切身的认识和体会。
要在实践中检验所学习的知识。
其次,这次设计其实也是我们所学知识的一次综合运用,让我深深的认识到了学习单片机要有一定的基础,要有电子技术方面的数字电路和模拟电路等方面的理论基础,特别是数字电路;也要有编程语言的汇编语言或C语言。
要想成为单片机高手,我们首先要学好汇编语言,然后转入C语言学习,所以我们不能学到后面就忘了前面的知识,更应该将所学的知识紧紧的结合在一起,综合运用,所谓设计,就是要求创新,只有将知识综合运用起来才能真正的设计好。
参考文献
[1]王思明,张鑫等.单片机原理及应用系统设计[M].北京.科学出版社.2012
[2]姜香菊.传感器原理及应用,北京:
机械工业出版社.2015.
[3]童诗白.模拟电子技术基础[M].成都:
高等教育出版社.2010.45-48
[4]陈中,朱代忠.基于STC89C52单片机的控制系统设计,北京:
清华大学出版社,2015
附录1
器件名称
价格(元)
STC89C52/C51单片机
4.5
10uF电解电容
1
10K色环电阻
1
1K色环电阻
1
22pF瓷片电容
2
11.0592Mhz晶振
2
DIP40单片机插座
2
7cm*9cm万孔板
0.5
2.5mm排针
0.5
自复位按键
1
DC5V的电源座
1.2
DC5V的USB电源线
0.5
小的LED电源指示灯
1
焊接跳线
1
4.7K排阻
2
蓝牙串口模块
15
杜邦线
3
超声波传感器模块
4
PNP驱动三极管
0.5
DC5V有源蜂鸣器
2
附录2
程序源代码:
#include
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitRX1=P1^0;
sbitTX1=P1^1;
sbitRX2=P1^2;
sbitTX2=P1^3;
sbitbeer=P2^0;
unsignedinttime=0;
unsignedinttimer=0;
floatS=0;
bitflag=0;
//发送十六进制字节数据
voidSendByte(unsignedchardat)
{
SBUF=dat;
while(!
TI);
TI=0;
}
/********************************************************/
voidConut(void)
{
time=TH0*256+TL0;
TH0=0;
TL0=0;
S=(time*1.87)/100;//算出来是CM
if(flag==1)//超出测量
{
flag=0;
//printf("-----\n");
}
SendByte(S);
if(S>20)
{
beer=1;
}
if(S<20)
{
beer=0;
}
//printf("S=%f\n",S);
}
/********************************************************/
voiddelayms(unsignedintms)
{
unsignedchari=100,j;
for(;ms;ms--)
{
while(--i)
{
j=10;
while(--j);
}
}
}
/********************************************************/
voidzd0()interrupt1//T0中断用来计数器溢出,超过测距范围
{
flag=1;//中断溢出标志
}
/********************************************************/
voidStartModule1()//T1中断用来扫描数码管和计800MS启动模块
{
TX1=1;//800MS启动一次模块
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();
TX1=0;
}
voidStartModule2()//T1中断用来扫描数码管和计800MS启动模块
{
TX2=1;//800MS启动一次模块
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();
TX2=0;
}
/********************************************************/
voidmain(void)
{
TMOD=0x21;//设T0为方式1,GATE=1;
SCON=0x50;
TH1=0xFD;
TL1=0xFD;
TH0=0;
TL0=0;
TR0=1;
ET0=1;//允许T0中断
TR1=1;//开启定时器
TI=1;
EA=1;//开启总中断
while
(1)
{
StartModule1();
while(!
RX1);//当RX为零时等待
TR0=1;//开启计数
while(RX1);//当RX为1计数并等待
TR0=0;//关闭计数
Conut();//计算
delayms(50);//50MS
StartModule2();
while(!
RX2);//当RX为零时等待
TR0=1;//开启计数
while(RX2);//当RX为1计数并等待
TR0=0;//关闭计数
Conut();//计算
delayms(50);//50MS
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 超声波 测距仪 设计