基于单片机的超声波测距仪的设计参考论文1.docx
- 文档编号:30044712
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:44
- 大小:1.31MB
基于单片机的超声波测距仪的设计参考论文1.docx
《基于单片机的超声波测距仪的设计参考论文1.docx》由会员分享,可在线阅读,更多相关《基于单片机的超声波测距仪的设计参考论文1.docx(44页珍藏版)》请在冰豆网上搜索。
基于单片机的超声波测距仪的设计参考论文1
上海电机学院课程设计任务书
课程名称
电子技术应用课程设计
课程代码
013014P1
设计题目
基于单片机的超声波测距仪设计
设计时间
2013年6月3日——2013年6月21日
院(系)
电气学院
专业
电气工程及其自动化
班级
BG1001
一、课程设计任务汇总
本课程设计超声波的设计是利用单片机,超声波测距原理设计一个超声波测距仪。
具体功能是:
可提供2cm-400cm的非接触式距离感测功能。
测距精确度可达3mm。
利用数码管显示测量距离。
二、对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求)
设计方案:
选择单片机与超声波传感器模块结合的方法实现本设计。
使用的基本元器件是:
AT89C51单片机,HC-SR04超声波测距模块,数码管,USB-TTL下载线,按键,电容,电阻,晶振,标准电源等。
设计的基本框图如下:
三、课程设计工作进度计划:
2013年6月3日——2013年6月7日系统构思及完成电路图的设计。
2013年6月8日——2013年6月13日部分模块电路调试及PCB板制作。
2013年6月14日——2013年6月17日焊接电路及整体系统调试。
2013年6月18日——2013年6月20日调试完成并撰写报告。
四、主要参考资料
[1]宋彩利,孙友仓,吴宏岐.单片机原理与C51编程[M].西安交通大学出版社,
2011.10.4
[2]谭浩强.C程序设计(第四版).北京:
清华大学出版社,2010.6
指导教师(签名):
系主任(签名):
年月日年月日
摘要
本设计介绍了基于单片机控制的超声测距仪的原理:
由AT89C52控制定时器产生超声波脉冲并计时,计算超声波自发射至接收的往返时间,从而得到实测距离。
并且在数据处理中采用了温度补偿的调整,用四位LED数码管切换显示距离和温度。
整个硬件电路由超声波发射电路、超声波接收电路、电源电路、显示电路等模块组成。
各探头的信号经单片机综合分析处理,实现超声波测距仪的各种功能。
在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块。
相关部分附有硬件电路图、程序流程图,给出了系统构成、电路原理及程序设计。
此系统具有易控制、工作可靠、测距准确度高、可读性强和流程清晰等优点。
实现后的作品可用于需要测量距离参数的各种应用场合。
关键词:
AT89C52,超声波,温度补偿,测距
ABSTRACT
ThedesignintroducestheprincipleoftheultrasonicdistancemeasurementinstrumentbasedonSCMC-controlled:
AT89C52controlstimerstoproducetheultrasonicwavepulseandtime,countthetimeofultrasonicwavespontaneousemissiontoreceiveround-trip,thusobtainsthemeasureddistance.Andthetemperaturecompensationadjustmentisusedinthedataprocessing,withfourLEDnixietubesdisplaydistanceortemperaturebyswitching.
Theentirehardwarecircuitiscomposedbyultrasonictransmittercircuit,ultrasonicreceivercircuit,thepowercircuit,displaycircuit,andothermodules.TheprobesignalsareintegratedanalysisedbySCMCtoachievethevariousfunctionsofultrasonicdistancemeasurementinstrument.Basedonthishasdesignedsystem'soverallconcept,finaladoptionofhardwareandsoftwaretoachievethevariousfunctionalmodules.Therelevantpartshavethehardwareschematicsandprocessflowchart.Ithasgiventhesystemconstitution,thecircuitryandtheprogramming.Theinstrumentsystemhasfeatures:
easeofcontrol,stabilityofoperation,highnessofprecisionanddistinctnessofprogrammeprocess,etc.Aftertherealizationoftheworkscanbeusedforneedsofthevariousparametersmeasureddistanceapplications.
Keywords:
AT89C52,Ultrasonicwave,Temperaturecompensation,Measuredistance
第1章绪论
1.1课题研究的背景
人们生活水平的提高,城市发展建设加快,城市给排水系统也有较大发展,其状况不断改善。
但是,由于历史原因合成时间住的许多不可预见因素,城市给排水系统,特别是排水系统往往落后于城市建设。
因此,经常出现开挖已经建设好的建筑设施来改造排水系统的现象。
城市污水给人们带来了困扰,因此箱涵的排污疏通对大城市给排水系统污水处理,人们生活舒适显得非常重要。
而设计研制箱涵排水疏通移动机器人的自动控制系统,保证机器人在箱涵中自由排污疏通,是箱涵排污疏通机器人的设计研制的核心部分。
控制系统核心部分就是超声波测距仪的研制。
随着科学技术的快速发展,超声波将在传感器中的应用越来越广。
但就目前技术水平来说,人们可以具体利用的传感技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。
展望未来,超声波传感器作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求,如声纳的发展趋势基本为:
研制具有更高定位精度的被动测距声纳,以满足水中武器实施全隐蔽攻击的需要;继续发展采用低频线谱检测的潜艇拖曳线列阵声纳,实现超远程的被动探测和识别;研制更适合于浅海工作的潜艇声纳,特别是解决浅海水中目标识别问题。
毋庸置疑,未来的超声波传感器将与自动化智能化接轨,与其他的传感器集成和融合,形成多传感器。
随着传感器的技术进步,传感器将从具有单纯判断功能发展到具有学习功能,最终发展到具有创造力。
1.2课题研究的意义
在现实生活中,一些传统的距离测量方式在某些特殊场合存在不可克服的缺陷,例如,液面测量就是一个距离测量,传统的电极法是采用差位分布电极,通过给电或脉冲检测液面,电极长期浸泡在水中或其它液体中,极易被腐蚀、电解,从而失去灵敏性。
而利用超声波测量距离可以很好地解决这一问题。
目前市面上常见的超声波测距系统不仅价格昂贵,体积过大而且精度也不高等种种因素,使得在一些中小规模的应用领域中难以得到广泛的应用。
为解决这一系列难题,本文设计了一款基于AT89C51单片机的低成本、高精度、微型化的超声波测距仪。
第2章超声波测距原理
2.1超声波简介
我们知道,当物体振动时会发出声音。
科学家们将每秒钟振动的次数称为声音的频率,它的单位是赫兹。
我们人类耳朵能听到的声波频率为20~20000赫兹。
当声波的振动频率大于20000赫兹或小于20赫兹时,我们便听不见了。
因此,我们把频率高于20000赫兹的声波称为“超声波”。
通常用于医学诊断的超声波频率为1~5兆赫。
超声波具有方向性好,穿透能力强,易于获得较集中的声能,在水中传播距离远等特点。
可用于测距,测速,清洗,焊接,碎石等。
在医学,军事,工业,农业上有明显的作用。
理论研究表明,在振幅相同的条件下,一个物体振动的能量与振动频率成正比,超声波在介质中传播时,介质质点振动的频率很高,因而能量很大。
在我国北方干燥的冬季,如果把超声波通入水罐中,剧烈的振动会使罐中的水破碎成许多小雾滴,再用小风扇把雾滴吹入室内,就可以增加室内空气湿度。
这就是超声波加湿器的原理。
对于咽喉炎、气管炎等疾病,药品很难血流到打患病的部位。
利用加湿器的原理,把药液雾化,让病人吸入,能够疗效。
利用超声波巨大的能量还可以使人体内的结石做剧烈的受迫振动而破碎。
2.2超声波测距原理
超声波是利用反射的原理测量距离的,被测距离一端为超声波传感器,另一端必须有能反射超声波的物体。
测量距离时,将超声波传感器对准反射物发射超声波,并开始计时,超声波在空气中传播到达障碍物后被反射回来,传感器接收到反射脉冲后立即停止计时,然后根据超声波的传播速度和计时时间就能计算出两端的距离。
测量距离D为
(2.1)
式中c——超声波的传播速度;
——超声波发射到接收所需时间的一半,也就是单程传播时间。
由上式可风,距离的测量精度主要取决于计时精度和传播速度两方面。
计时精度由单片机定时器决定,定时时间为机器周期与计数次数的乘积,可选用12MHz的晶振,使机器周期为精确的1µs,不会产生累积误差,使定时间达到1µs。
超声波的传播速度c并不是固定不变的,传播速度受空气密度、温度和气体分子成分的影响,关系式为
(2.2)
式中γ——气体定压热容与定容热容的比值,空气为1.40。
R——气体普适常数,为8.314kg/mol。
T——气体势力学温度,与摄氏温度的关系是T=273K+t。
M——气体相对分子质量,空气为28.8×10-3kg/mol。
c0——0℃时的声波速度,为331.4m/s。
由上式可见,超声波在空气中传播时,受温度影响最大,由表达式可计算出波速与温度的关系,如表2.1所示。
温度越高,传播速度越快,而且不同温度下传播速度差别非常大,例如0℃时的速度为332m/s,30℃时的速度为350m/s,相差18m/s。
因此,需要较高的测量精度时,进行温度补偿是最有效的措施。
对测量精度要求不高时,可认为超声波在空气中的传播速度为340m/s。
表2.1超声波传播速度与温度关系表
项目
数值
温度
-30
-20
-10
0
10
20
30
40
50
60
100
声速/(m•s)
313
319
325
332
338
344
350
356
361
367
388
第3章方案论证
3.1设计思路
测量距离的方法有很多种,短距离的可以用米尺,远距离的有激光测距等,超声波测距适用于高精度的中长距离测量。
因为超声波在标准空气中的传播速度为331.45米/秒,由单片机负责计时,系统的测量精度理论上可以达到毫米级。
超声波测距的原理一般采用渡越时间法TOF(time of flight),也可以称为回波探测法,如图1所示。
超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在介质中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。
根据传声介质的不同,可分为液介式、气介式和固介式三种。
根据所用探头的工作方式,又可分为自发自收单探头方式和一发一收双探头方式。
而倒车雷达一般是装在车尾,超声波在空气中传播,超声波在空气中(20℃)的传播速度为340m/s(实际速度为344m/s这里取整数),根据计时器记录的时间就可以计算出发射点距障碍物的距离,公式
。
图1超声波测距原理
由于超声波也是一种声波,其声速c与温度有关,表1列出了几种不同温度下的声速。
在使用时,如果温度变化不大,则可认为声速是基本不变的。
如果测距精度要求很高,则应通过温度补偿的方法加以校正。
表1声速与温度的关系
温度(℃)
-30
-20
-10
0
10
20
30
100
声速(m/s)
313
319
325
323
338
344
349
386
3.2系统结构设计
超声波测距仪系统结构如图3.1所示。
它主要由单片机、超声波发射及接收电路、超声波传感器、LED显示电路及电源电路组成。
系统主要功能包括:
本研究设计的超声波测距仪框图如图2所示。
图2超声波测距仪方框图
第4章硬件系统设计
4.1US-100超声波收发模块
该超声波收发模块可自己产生40kHz的方波,并经放大电路驱动超声波发射探头发射超声波,发射出去的超声波经障碍物反射后由超声波接收探头接收。
经接收电路的检波放大,积分整形,在ECHO引脚上产生方波脉冲,该脉冲宽度与被测距离成线性关系。
具体过程如图3所示。
图3US-100超声波收发模块工作时序图
上图表明:
只需要在Trig/TX管脚输入一个10us以上的高电平,系统便可发出8个40KHZ的超声波脉冲,然后检测回波信号,当检测到回波信号后,模块还要进行温度值的测量,然后根据当前温度对测距结果进行校正,将校正后的结果通过Echo/RX管脚输出。
在此模式下,模块将距离值转化为340m/s时的时间值的2倍,通过Echo端输出一个高电平,可根据此高电平的持续时间来计算距离值。
即距离值为:
(高电平时间*340m/s)/2
注:
因为距离值已经经过温度校正,此时无需再根据环境温度对超声波声速进行校正,也就是不管温度多少,声速选择340m/s即可。
使用US-100超声波收发模块进行距离测量测量时,单片机只需要输出触发信号,并监视回响引脚,通过定时器计算回响信号宽度,并换算成距离即可。
该模块简化了发送和接收的模拟电路,工作稳定可靠,其参数指标如表2所示。
表2US-100模块电气参数
应注意测量周期必须在60毫秒以上,防止发射信号对回响信号的影响。
图4US-100超声波模块外形图
模块共有两个接口,即模式选择跳线和5pin接口。
模式选择跳线接口设置为当安装上短路帽时为UART(串口)模式,拔掉时为电平触发模式。
4.2单片机电路
本设计选用宏晶公司高性能单片机STC89C52,其管脚如图5所示。
图5STC89C52单片机管脚图
该芯片为52内核8位单片机,兼容Intel等52内核单片机,支持ISP下载,适用于常用检测控制电路。
由STC89C52组成的单片机系统原理图如图6所示。
图中TRIG引脚为单片机发送触发信号的引脚,ECHO引脚为US-100模块送回回响信号的引脚,接至单片机外部中断P3.2脚上,可以利用外部中断测量回响信号宽度。
当测量距离小于阈值20cm时,单片机通过管脚P3.6发出灯光报警信号,触发LED报警灯亮,同时通过管脚P3.7发出声音报警信号beep,该信号用以触发蜂鸣器鸣响报警。
图6单片机系统及超声波模块接口原理图
4.3蜂鸣器报警电路
图7所示为蜂鸣器报警电路。
由于单片机管脚的灌电流比拉电流容量大,因此电路设计为低电平输出时蜂鸣器响,高电平关闭。
当P3.7脚输出低电平时,PNP型三极管8550导通,有集电极电流通过,蜂鸣器鸣响。
当P3.7脚输出高电平时,三极管截止,蜂鸣器关闭。
图7蜂鸣器报警电路
4.4显示电路
显示部分采用SMC1602液晶屏进行数据显示,其主要技术参数为:
表3液晶屏技术指标
接口信号说明如表4所示。
表4液晶屏接口信号说明
与单片机接口电路如图8所示。
图8LCD与单片机接口电路
4.5供电及程序下载电路
本设计采用USB接口供电,电源电压5V。
同时,USB接口通过内含PL2303芯片的转换电路对单片机进行程序编写。
其电路原理如图9所示。
图9供电及程序下载电路
第5章软件编程
5.1软件流程图
本设计软件主程序流程图如图10所示,(a)为主程序流程图,(b)为定时中断子程序流程图,(c)为外部中断子程序流程图。
(a)主程序流程图(b)外部中断流程图
图10程序流程图
5.2主程序
下面介绍main.c主程序编写,其他程序略。
(1)头文件和一些宏定义
/*******************************************************************/
/*******************超声波测距仪************************************/
/*******************(液晶屏显示)************************************/
/*******************晶振11.0592MHz********************************/
#include
#include"1602.h"
typedefunsignedcharU8;/*definedforunsigned8-bitsintegervariable无符号8位整型*/
typedefsignedcharS8;/*definedforsigned8-bitsintegervariable有符号8位整型*/
typedefunsignedintU16;/*definedforunsigned16-bitsintegervariable无符号16位整型*/
typedefsignedintS16;/*definedforsigned16-bitsintegervariable有符号16位整型*/
typedefunsignedlongU32;/*definedforunsigned32-bitsintegervariable无符号32位整型*/
typedefsignedlongS32;/*definedforsigned32-bitsintegervariable有符号32位整型*/
typedeffloatF32;/*singleprecisionfloatingpointvariable(32bits)单精度浮点数32位长度*/
typedefdoubleF64;/*doubleprecisionfloatingpointvariable(64bits)双精度浮点数64位*/
//定时器0的定时值为1mS,即11059/12=922个时钟脉冲,其补为65536-922=64614
#defineSYSTEMCLK921600//11059200/12
#defineT0CLK921600//11059200/12
#defineT1CLK921600//11059200/12
#defineT1PERIOD1000000/921600//T1周期时间,以微秒为单位,约为1.085uS
#defineTIMER0H0xFC//64614/256=252
#defineTIMER0L0x66//54447%256=102
(2)管脚、常量、变量定义和函数声明
//管脚定义
sbitTrig=P1^3;
sbitEcho=P3^2;//回波必须接在外部中断引脚上
sbitLedAlarm=P3^6;//报警灯,低电平亮
sbitBeep=P3^7;//报警蜂鸣器
//定义标志
volatilebitFlagSucceed=0;//测量成功标志
volatilebitFlagDisplay=0;//显示标志
//定义全局变量
U16DisplayCount=0;
U16time=0;
U32distance=0;
//函数声明
voiddelay_20us();
voidStart_Module();
voidINT0_Init(void);
voidData_Init();
voidTimer0_Init();
voidTimer1_Init();
(3)各子程序
//20us延时程序,不一定很准
voiddelay_20us()
{
U16bt;
for(bt=0;bt<100;bt++);//8M晶振是100
}
//数据初始化
voidData_Init()
{
Trig=0;
distance=0;
DisplayCount=0;
}
//外部中断初始化函数
voidINT0_Init(void)
{
IT0=0;//负边沿触发中断
EX0=0;//关闭外部中断
}
//外部中断处理用做判断回波电平
voidINT0_ISR(void)interrupt0
{
time=TH1*256+TL1;//取出定时器的值
FlagSucceed=1;//置成功测量的标志
EX0=0;//关闭外部中断
}
//定时器0初始化,16位定时模式,初始化为1ms中断一次。
voidTimer0_Init()
{
TMOD=0x11;//定时器0和1工作在16位方式
TH0=TIMER0H;
TL0=TIMER0L;
TR0=1;//启动定时器
ET0=1;//允许定时器0中断
}
//定时器0中断,用做显示计时
voidTimer0_ISR(void)interrupt1//定时器0中断是1号
{
TH0=TIMER0H;
TL0=TIMER0L;
DisplayCount++;
if(DisplayCount>=1000)//1秒钟显示一次
{
FlagDisplay=1;
DisplayCount=0;
}
}
//定时器1初始化,16位计数模式,时钟为11059200/12=921600Hz
//60ms计数为55296,即0xD800
voidTimer1_Init()
{
TMOD=0x11;//定时器0和1工作在16位方式
TH1=0;
TL1=0;
ET1=1;
}
//启动模块,Trig管脚20us正脉冲
voidStart_Module()//启动模块
{
Trig=1;//启动一次模块
delay_20us();
Trig=0;
}
/********************************************************************
*名称:
Main()
*功能:
主函数
*********************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 超声波 测距仪 设计 参考 论文