基于51单片机的超声波测距系统设计毕业作品.docx
《基于51单片机的超声波测距系统设计毕业作品.docx》由会员分享,可在线阅读,更多相关《基于51单片机的超声波测距系统设计毕业作品.docx(40页珍藏版)》请在冰豆网上搜索。
基于51单片机的超声波测距系统设计毕业作品
BIYESHEJI
(20届)
基于51单片机的超声波测距系统设计
所在学院
专业班级
测控技术与仪器
学生姓名
指导教师
完成日期
基于51单片机的超声波测距系统设计
摘要
本次系统的设计主要包括两部分,即硬件电路和软件程序。
硬件电路主要包括单片机电路、发射电路、接收电路、显示电路和电源电路等。
本次设计采用以AT89C51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路。
整个电路采用模块化设计,由信号发射和接收、供电、显示等模块组成。
发射探头的信号经放大和检波后发射出去,单片机的计时器开始计时,超声波被发射后按原路返回,信号被接受电路接受,然后被单片机接收,计数器停止工作并得到时间。
软件程序主要由主程序、预置子程序、发射子程序、接收子程序、显示子程序等模块组成。
它控制单片机进行数据发送与接收,实现数据正确显示在数码管上。
另外程序控制单片机消除各探头对发射和接收超声波的影响。
相关部分附有硬件电路图、程序流程图。
实际的环境对超声波有很大的影响,如外部电磁干扰电源干扰信道干扰等等,空气的温度对超声波的速度影响也很大,此外供电电源也会使测量差生很大的误差。
由于知识面有限,作品还有许多可以改进的地方,希望在日后的学习中能将作品完善的更好。
关键词:
AT89C51;超声波;测距
51MCU-basedUltrasonicRangingSystemDesign
Abstract
Thesystem'sdesignincludestwoparts,namelythehardwarecircuitandsoftwareprogram.Thehardwarecircuitincludesamicrocontrollercircuit,thetransmittingcircuit,thereceivingcircuit,displaycircuitandthepowersupplycircuit.ThedesignusesAT89C51microcontrollerasthecoreoflow-cost,high-precision,miniaturizationofdigitalhardwarecircuitoftheultrasonicrangefinder.Theentirecircuitismodularindesign,bythesignaltransmitterandreceiver,powersupply,displaymodules.Transmittedprobesignalisamplifiedanddetectorwerelaunchedoutsingle-chiptimerisstarted,theultrasonicwaslaunchedaftertheoriginalwayback,asignalisacceptedbyareceivingcircuit,thenMCUreceivesthecounterstopworkingandtime.Softwareprogramfromthemainprogram,presetsubroutineemissionsubroutine,receivesubroutine,subroutinesmodules.Itmicrocontrollertosendandreceivedata,datadisplaycorrectlyinthedigitalcontrol.Inaddition,program-controlledmicrocontrollertoeliminatetheimpactoftheprobefortransmittingandreceivingultrasonicwaves.Withrelevantpartsofthehardwarecircuitdiagram,processflowchart.
Actualenvironmenthasagreatinfluenceontheultrasonicwaves,suchasanexternalelectromagneticinterferencepowerinterferingchannelinterference,etc.,thetemperatureoftheairisalsoagreatinfluenceonthespeedoftheultrasonicaddition,thepowersupplytothemeasureddifferentialrawlargeerrors.Duetothelimitedknowledge,workstherearemanyareasforimprovement,canworkbetterinthefuturestudy.
Keywords:
AT89C51;Ultrasonic;Ranging
1.绪论
1.1课题背景及重要意义
近年来,随着电子测量技术的发展,运用超声波作出精确测量已成可能。
超声波拥有许多优点:
超声波测量精确高,成本低,性能稳定则备受青睐。
超声波是指频率在20kHz以上的声波,它属于机械波的范畴。
超声波也遵循一般机械波在弹性介质中的传播规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质吸收而发生衰减等。
正是因为具有这些性质,使得超声波可以用于距离的测量中。
随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中。
一般的超声波测距仪可用于固定物位或液位的测量,适用于建筑物内部、液位高度的测量等。
由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。
因此可广泛应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品)、防汛、水文、明渠、空间定位、公路限高等行业中。
可在不同环境中进行距离准确度在线标定,可直接用于水、酒、糖、饮料等液位控制,可进行差值设定,直接显示各种液位罐的液位、料位高度。
因此,超声在空气中测距在特殊环境下有较广泛的应用。
利用超声波检测往往比较迅速、方便、计算简单、易于实现实时控制,并且在测量精度方面能达到工业实用的指标要求,因此为了使移动机器人能够自动躲避障碍物行走,就必须装备测距系统,以使其及时获取距障碍物的位置信息(距离和方向)。
因此超声波测距在移动机器人的研究上得到了广泛的应用。
同时由于超声波测距系统具有以上的这些优点,因此在汽车倒车雷达的研制方面也得到了广泛的应用。
1.2研究内容
设计一个超声波测距系统,以单片机为控制核心,实现测距功能。
1.初步掌握模拟、数字电路分析和设计的基本方法。
包括:
(1)根据设计任务和指标,初选电路;
(2)通过调查研究、设计计算,确定电路方案;
2.培养一定自学能力和独立分析问题、解决问题能力。
包括:
(1)学会自己分析、找出解决问题的方法;
(2)对设计中遇到的问题,能独立思考,查阅资料,寻找答案。
1.3主要任务及目标:
1.设计一个单片机最小系统,有lcd显示和按键;
2.设计一个超声波测距模块;
3.系统要求具有一定的可扩展性;
4.毕业论文严格按学校的要求撰写;
2.整体设计思路
2.1硬件整体设计
在开始做毕业设计之前,我需要对要所要完成的作品有一个大概的掌控,特别是对超声波测距的原理和超声波测距系统的组成部分能有一个清晰的认识。
超声波测距的原理:
超生波测距的原理其实很简单,也就是大自然中蝙蝠捕食的原理,首先需要超生波发射装置,发出超声波,此时时间记作T1,当超声波收到障碍物的阻挡时,就会被反弹回来,然后就被超声波接受装置所捕捉到,这时时间记作T2,假设此时的声速为V,则超声波测距装置与障碍物之间的距离S为:
S=V*(T2-T1)/2。
(式2.1)
超声波的原理图如图2.1所示:
t障碍物
s
超声波发射
超声波接收
图2.1超声波的测距原理
在我动手之前不是说能够一气呵成的完成作品,如果那样做的话,万一哪一部分出了问题,那么我将很难检查的出来,所以效率很低。
因此决定分模块来完成我的作品,首先用仿真软件进行仿真,确定好布线器材等,就可以先从硬件开始着手了,超声波测距系统的组成部分:
1.单片机最小系统2.超声波发射部分3.超声波接受部分4.显示部分;我只要一个一个模块的实现,这样效率就能提高很多。
完成好硬件的功能,接下来就需要实现软件的功能了,本次设计的程序需要完成的功能有:
(1)超声波的发射和接收控制
(2)对回波信号的检测
(3)测距时间到距离的换算
(4)距离的显示
从整体看超声波测距的原理很简单,但是我们要想获得一个高精度的测距结果,还需要考虑和多方面的东西,比如说:
测距的温度会对结果有很大的影响。
而且在器材选用方面,对测距结果也会带来很大的误差。
因此,在完成作品的过程中,还需要对硬件和软件有一个更加细致的考虑。
整体电路的控制核心为单片机AT89C51。
超声波发射和接收电路中都对相应信号进行整形及放大,以保证测量结果尽可能精确。
超声波探头接OUT口实现超声波的发射和接收。
整体结构图包括超声波发射电路,超声波接收电路,单片机电路,显示电路等几部分模块组成。
由于超声波在发射和接收的过程中会有能量的损失,因此在超声波发射与接收电路还要加入放大电路。
在发射后把信号放大,接收前也要把还再次放大,进行多级放大才能达到发射和接收的效果。
整体电路结构图如图2.1.1所示:
图2.1.1超声波测距原理图
数字显示仿真如图2.1.2所示:
图2.1.2数字显示仿真
2.2软件整体设计思路
参照硬件的设计思路,软件我也将采取模块化的设计思路来进行,这样对提高效率有很大的帮助。
本设计采用的是模块化的思路来进行设计和编写程序,程序主要由系统主程序和中断程序构成。
主程序完成单片机的初始化,超声波的发射和接收、计算超声波发射点与障碍物之间的距离、数码管显示等。
3.硬件设计
3.1对超声波的认识
超声波简介:
超声波技术是一门以物理、电子、机械、以及材料科学为基础的、各行各业都可使用的通用技术之一。
超声波技术是通过超声波的产生、传播以及接收的物理过程完成的。
该技术在国民经济中,对提高产品质量,保障生产安全和设备安全运作,降低生产成本,提高生产效率特别具有潜在能力。
因此,我国对超声波的研究特别活跃。
超声波的三种形式:
超声波在介质中可以产生三种形式的振荡波:
横波,质点振动方向垂直于传播方向的波;纵波,质点振动方向与传播方向一致的波;表面波,质点振动介于纵波和横波之间,沿表面传播的波。
横波只能在固体中传播,纵波能在固体液体中和气体中传播,表面波随深度的增加其衰减很快。
为了测量各种状态下的物理量多采用纵波形式的超声波。
超声波的物理性质:
(1)超声波的反射和折射
当超声波传播到两种特性阻抗不同介质的平面分界面上时,一部分超声波被反射;另一部分透射过界面,在相邻介质内部继续传播。
这样的两种情况称之为超声波的反射和折射。
(2)超声波的衰减
超声波在一种介质中传播,其声压和声强按指数函数规律衰减。
(3)超声波的干涉
如果在一种介质中传播几个声波,于是产生波的干涉现象。
由于超声波的干涉,在辐射器的周围形成一个包括最大最小的扬声场。
3.2器材的选择
超声波传感器介绍:
据我查阅资料了解到超声波发生器可以分为两大类:
一类是用电气方式产生超声波,一类是用机械方式产生超声波。
电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。
他们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。
目前较为常用的是压电式超声波发生器。
压电式超声波发生器实际上是利用压电晶体的谐振来工作的。
它有两个压电晶片和一个共振板。
当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。
反之,如果两极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。
超声波传感器结构如下:
.图3.2超声波传感器外部结构
图3.2.1超声波传感器内部结构
由于市场上的超声波种类很多,通过我查阅资料,分析了超声波传感器的升压能级和灵敏度的关系后,发现在超声波测量系统中,当频率取得太低,则外界的杂音干扰较多,超声波接收的杂波就多,灵敏度就不高;当频率取得太高,在传播的过程中能量损失比较大,虽然分辨力比较高,但是测量距离变短。
通过我的综合分析,找到了比较好的频率段40KHz。
如下图3.2.2超声波传感器的升压能级图和图3.2.3超声波传感器的灵敏度图。
图3.2.2超声波传感器的升压能级
图3.2.3超声波传感器的灵敏度
因此本次设计选用的探头是4OKHz的收发分体式超声传感器,由一支发射传感器UCM-T40KI和一支接收传感器UCM-R4OKI组成,其特性参数如表3.2.2所示。
传感器特性参数表
表3.2.2传感器特性参数表
型号
UCM-T40K1
UCM-R40KQ
结构
开放式
开放式
使用方式
发射
接收
中心频率
频带宽
灵敏度
声压
指向角
容量
通过自己查阅相关资料,了解到要想提高结果的精度就要考虑的更加全面,因此,我又详细的分析了一下超声波测距的原理。
超声波测距的方法有多种:
如往返时间检测法、相位检测法、声波幅值检测法。
本设计采用往返时间检测法测距。
其原理是超声波传感器发射一定频率的超声波,在空气中传播,到达测量目标或障碍物后反射回来,并在超声波接收器中进行频率的比较和筛选,并放大有效信号记录发射和接收的时间差,并通过S=V*(T2-T1)/2的计算公式测试传输出距离。
当进行距离的测量时,由安装在同一水平线上的超声波发射器和接收器完成超声波的发射与接收,并且同时启动定时器进行计数。
首先由超声波发射探头向前方发射一定频率的超声波并同时启动定时器计时,超声波在空气中传播的途中一旦遇到障碍物后就会被反射回来,当然超声波在传播的过程中会有能量的损失,因此在超声波的接收部位就会有超声波放大装置,将有效的超声波信号进行放大,当接收探头收到反射波后就会给负脉冲到单片机使其立刻停止计时。
这样,定时器就能够准确的记录下了超声波发射点至障碍物之间往返传播所用的时间t(s)。
考虑到测量的距离在误差允许的范围内,我们将超声波在常温下空气中的传播速度大约为340m/s,所以障碍物到发射探头之间的距离为:
S=340×t/2=170×t(式3.2)
因为单片机内部定时器的计时实际上就是对机器周期T的计数,而本设计中时钟频率fosc取12MHz,设计数值N,则:
T=12/fosc=1μs(式3.2.1)
t=N×T=N×0.000001(s)(式3.2.2)
S=170×N×T=170×N/1000000(m)(式3.2.3)
在程序中按式S=170×N×T=170×N/1000000计算距离。
3.3.单片机最小系统
单片机最小系统是其他拓展系统的最基本的基础,单片机最小系统是指一个真正可用的单片机最小配置系统即单片机能工作的系统。
对于AT89C51单片机,由于片内已经自带有了程序存储器,所以只要单片机外接时钟电路和复位电路就可以组成了单片机的最小系统了。
单片机的最小系统如图3.3所示。
图3.3单片机最小系统原理图
3.4超声波发射电路
通过我的综合分析,用单片机P0.1发射一组方波脉冲信号,其输出波形稳定可靠,但输出电流和输出功率很低,不能够推动发射传感器发出足够强度的超声信号,所以超声波发射电路是由超声波探头和超声波放大器组成。
超声波探头将电信号转换为机械波发射出去,而单片机所产生的40kHz的方波脉冲需要进行放大才能将超声波探头驱动将超声波发射出去,所以发射驱动实际上就是一个信号的放大电路,本设计选用74LS04芯片进行信号放大,超声波发射电路如图3.4所示
图3.4超声波发射电路
工作时,由单片机产生40kHz的脉冲从P0.1口向超声波的发射电路部分发出信号,再经74LS04放大电路放大后,驱动超声波探头将超声波发射出去。
3.5超声波接收电路设计
我们都知道,超声波在传播过程中,能量会衰减的很厉害,此时,超声波接受装置就会受到很大的阻碍。
因此,我们还需设计一个超声波放大电路,让超声波接收装置在接受微弱的超声波信号时,能将其放大,让超声波接受装置能够识别。
超声波接收电路主要是由集成电路CX20106A芯片电路构成的,CX20106A芯片电路可以对超声波信号进行放大、限幅、带通滤波、峰值检波、整形、比较等功能,比较完之后超声波接收电路会输出一个低电平到单片机去请求中断,当即单片机停止计时,并开始去进行数据的处理。
CX20106A是一块功能很强大的芯片,该芯片的前置放大器具有自动增益控制的功能,当测量的距离比较近时,放大器不会过载;而当测量距离比较远时,超声波信号微弱,前置放大器就有较大的放大增益效果。
CX20106A芯片的5脚在外接电阻对它的带通滤波器的频率进行调节,而且不用再外接其他的电感,能够很好地避免外加磁场对芯片电路的干扰,而且它的可靠性也是比较高的。
CX20106A芯片电路本身就具有很高的抗干扰的能力,而且灵敏度也比较高,所以,能满足本设计的要求。
超声波接收电路如图3.5所
图3.5超声波接收电路
由于在制作过程中,知识面过于狭窄,因此,选择了集成模块的超声波发射和接受装置:
HR-SR04超声波集成模块
1、产品特点:
HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。
基本工作原理:
(1)采用IO口TRIG触发测距,给至少10us的高电平信号;
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声
波从发射到返回的时间。
测试距离=(高电平时间*声速(340M/S))/2;
2、实物图:
图3.5.1超声波测距模块
如上图3.5.1所示接线VCC供5V电源,GND为地线,TRIG触发控制信号输入,ECHO回响信号输出等四支线。
3、电气参数:
表3.5.2HC-SR04电器参数
电气参数
HC-SR04超声波模块
工作电压
DC5V
工作电流
15mA
工作频率
40Hz
最远射程
4m
最近射程
2cm
测量角度
15度
输入触发信号
10uS的TTL脉冲
输出回响信号
输出TTL电平信号,与射程成比例
规格尺寸
45*20*15mm
3.6显示电路设计
由于我设计的超声波测距系统,最远只能测量4m的距离,因此选用4位LED显示。
根据数码管的一些选择,最终筛选出了最优的设计方案:
在显示电路的设计上,利用单片机的P0~P2口来控制数码管显示,这种接法虽然比较浪费管脚资源,但是对单片机的理论知识要求相对比较低,而且超声波发射和接收电路并不需要很多的管脚来支持,所以我选择这种方案。
数码管的选择上,为了使数码管亮度大,我选择了共阳极的数码管,数码管管脚接到低电平发亮。
显示及其驱动电路的原理图如图3.6所示。
图3.6显示电路原理图
4.软件设计
4.1主程序设计
主程序对整个单片机系统进行初始化后,先将超声波的回波接收标志位置位并且使单片机P1.0端口输出一个低电平用来启动超声波发射电路,同时将定时器T0启动,然后调用距离计算的子程序,再根据定时器T0记录的时间计算出所需要测量的距离,然后再调用显示子程序,再将测出的距离以十进制的形式送到数码管显示。
最后主程序通过对回波信号的接收,完成后续的工作,假如标志位清零则说明接收到了回波信号,那么主程序就返回到初始端重新将回波接收标志位置位并且在单片机的P0.1端口上发送低电平到超声波发射电路,就这样,连续不断地运行,循环不断地工作用来实现测距。
超声波接收电路在接收到超声波回波后,通过CX20106A电路进行检波整形比较,并向单片机发出有效信号,单片机通过外部中断的改变记录回波信号的到达时间,中断发生之后就是表示已经接收到了回波信号,这个时候停止计时,并且读取计数器中的数值,这个数值就是需要进行测量的时间差的数据。
程序中对测距距离的计算方法是按S=17×N/100000=0.00017×N(m)进行计算的,其中,N为计数器的值,声速的值取为340m/s。
系统主程序流程图如图4.1所示:
图4.1系统主程序流程图
系统主程序如下:
voidmain(void)
{
uchari,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++);//延时,等待系统外围复位完成
sys_init();//初始化
display();//显示
sta_flag=0;//标准复位
waitforstarting:
while(START);
for(i=0;i<20;i++)
delay1ms();
if(START)
gotowaitforstarting;
BUZZER=0;
i=100000;
while(i--);
BUZZER=1;
i=100000;
while(i--);
TR0=1;//启动定时器0
ET0=1;
testtemp();
while
(1)
{
if(sta_flag)//60MS到了,超声波已经发送
{
while(0==CSBIN);//等待超声波返回
TR1=0;
jsh=TH1;//停止计数
jsl=TL1;
if(15==count)
{
temp=wd();
count=0;
testtemp();//重新启动转换
display();//刷新显示
}
computer();//计算距离
hextobcd();//转化成BCD码
sta_flag=0;//标志清零
}
}
}
voidsys_init(void)
{
uchari;
for(i=0;i<29;i++)//显示清零
{num[i]=0;}
TMOD=0x11;
TH0=0x15;
TL0=0xA0;
P0=0;
CNT=0;//超声波发送关闭
CSBIN=1;
EA=1;//开放总中断
Init_LCD();
4.2中断处理程序
负责计算距离是INT0的中断程序。
根据前面的对超声接收电路的分析,在超声波集成模块接收到超声波回波信号后,超声波接收