基于51单片机超声波测距仪设计.docx
- 文档编号:3137085
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:14
- 大小:198.64KB
基于51单片机超声波测距仪设计.docx
《基于51单片机超声波测距仪设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机超声波测距仪设计.docx(14页珍藏版)》请在冰豆网上搜索。
基于51单片机超声波测距仪设计
基于51单片机超声波测距仪设计
LT
摘 要
超声波是指频率在20kHz以上的声波,它属于机械波的范畴。
超声波也遵循一般机械波在弹性介质中的传播规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质吸收而发生衰减等。
正是因为具有这些性质,使得超声波可以用于距离的测量中。
随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中。
系统的设计主要包括两部分,即硬件电路和软件程序。
硬件电路主要包括单片机电路、发射电路、接收电路、显示电路和电源电路,另外还有复位电路和LED控制电路等。
我采用以AT89C51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路。
整个电路采用模块化设计,由信号发射和接收、供电、温度测量、显示等模块组成。
发射探头的信号经放大和检波后发射出去,单片机的计时器开始计时,超声波被发射后按原路返回,在经过放大带通滤波整形等环节,然后被单片机接收,计数器停止工作并得到时间。
温度测量后送到单片机,通过程序对速度进行校正, 结合两者实现超声波测距的功能。
软件程序主要由主程序、预置子程序、发射子程序、接收子程序、显示子程序等模块组成。
它控制单片机进行数据发送与接收,在一定温度下对超声波速度的校正,还有实现数据正确显示在LED上。
另外程序控制单片机消除各探头对发射和接收超声波的影响。
相关部分附有硬件电路图、程序流程图。
实际的环境对超声波有很大的影响,如外部电磁干扰电源干扰信道干扰等等,空气的温度对超声波的速度影响也很大。
此外供电电源也会使测量差生很大的误差。
再设计的过程中考虑了这些因素,并给出了一些解决方案。
关键词:
AT89C51 超声波 测距
1绪论
1.1设计背景及重要意义
近年来,随着电子测量技术的发展,运用超声波作出精确测量已成可能。
随着经济发展,电子测量技术应用越来越广泛,而超声波测量精确高,成本低,性能稳定则备受青睐。
超声波是指频率在20kHz以上的声波,它属于机械波的范畴。
超声波也遵循一般机械波在弹性介质中的传播规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质吸收而发生衰减等。
正是因为具有这些性质,使得超声波可以用于距离的测量中。
随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中。
一般的超声波测距仪可用于固定物位或液位的测量,适用于建筑物内部、液位高度的测量等。
由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。
因此可广泛应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品)、防汛、水文、明渠、空间定位、公路限高等行业中。
可在不同环境中进行距离准确度在线标定,可直接用于水、酒、糖、饮料等液位控制,可进行差值设定,直接显示各种液位罐的液位、料位高度。
因此,超声在空气中测距在特殊环境下有较广泛的应用。
利用超声波检测往往比较迅速、方便、计算简单、易于实现实时控制,并且在测量精度方面能达到工业实用的指标要求,因此为了使移动机器人能够自动躲避障碍物行走,就必须装备测距系统,以使其及时获取距障碍物的位置信息(距离和方向)。
因此超声波测距在移动机器人的研究上得到了广泛的应用。
同时由于超声波测距系统具有以上的这些优点,因此在汽车倒车雷达的研制方面也得到了广泛的应用。
2电路总体方案
2.1电路总体框图
电路总体框图包括51单片机最小系统,HC-SR04超声波测距模块,LED数码管显示电路,蜂鸣器报警电路和按键电路。
图2.1电路基本框图
3单片机概述
3.1STC89C51主要性能
STC89C51是STC公司推出的一款超强抗干扰,加密性强,在线可编程,高速,低功耗CMOS8位单片机。
片内含4kbytes的可反复擦写Flash只读程序存储器和256bytes的随机数据存储器(RAM),器件采用STC公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大的STC89C51单片机适合于许多较为复杂控制应用场合。
3.2STC89C51内部组成
STC89C51单片机的框图如图3.2所示,各功能部件由内部总线连接在一起。
图3.2STC89C51单片机框图
4超声波概述
4.1超声波传感器介绍
超声波是一种频率比较高的声音,由于其指向性强、能量消耗缓慢、传播距离较远等优点,而经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。
超声波测距主要应用于倒车雷达、建筑施工工地以及一些工业现场,例如液位、井深、管道长度等场合。
超声波测距的利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在测控系统的研制上得到了广泛应用。
超声传感器是一种将其他形式的能转变为所需频率的超声能或是把超声能转变为同频率的其他形式的能的器件。
目前常用的超声传感器有两大类,即电声型与流体动力型。
电声型主要有:
1压电传感器;2磁致伸缩传感器;3静电传感器。
4.2超声波时序图
图4.2超声波时序图
4.3超声波测距原理
超声波测距是借助于超声脉冲回波渡越时间法来实现的,设超声波脉冲由传感器发出到接收所经历的时间为t,超声波在空气中的传播速度为c,则从传感器到目标物体的距离D可用下式求出:
D=ct/2。
其系统框图如图4.3所示。
图4.3系统框图
基本原理:
经发射器发射出长约6mm,频率为40khz的超声波信号。
此信号被物体反射回来由接收头接收,接收头实质上是一种压电效应的换能器。
它接收到信号后产生mV级的微弱电压信号。
5硬件设计
5.1硬件设计原理图图
5.2复位电路
单片机的复位电路在刚接通电时,刚开始电容是没有电的,电容内的电阻很低,通电后,5V的电源通过电阻给电解电容进行充电,电容两端的电会由0V慢慢的升到4V左右(此时间很短一般小于0.3秒),正因为这样,复位脚由低电位升到高电位,引起了内部电路的复位工作;当按下复位键时,电容两端放电,电容又回到0V了,于是又进行了一次复位工作。
电路图如图5.1。
图5.1复位电路
5.3晶振电路
它是单片机系统正常工作的保证,如果振荡器不起振,系统将会不能工作。
假如振荡器运行不规律,系统执行程序的时候就会出现时间上的误差,这在通信中会体现的很明显:
电路将无法通信。
一般单片机的晶振工作于并联谐振状态,也可以理解为谐振电容的一部分。
它是根据晶振厂家提供的晶振要求负载电容选值的,换句话说,晶振的频率就是在它提供的负载电容下测得的,能最大限度的保证频率值的误差,也能保证温漂等误差。
它是由一个晶振和两个瓷片电容组成的,晶振和瓷片电容是没有正负的,两个瓷片电容相连的那端一定要接地,如图5.2所示。
图5.2晶振电路
5.4LED数码管显示电路
本电路的显示模块主要由一个4位一体的7段LED数码管构成,用于显示测量到的电压值。
它是一个共阴极的数码管,每一位数码管的a,b,c,d,e,f,g和dp端都各自连接在一起,用于接收单片机的P1口产生的显示段码。
S1,S2,S3,S4引脚端为其位选端,用于接收单片机的P2口产生的位选码。
具体原理图如图5.3
图5.3显示电路
6软件设计
6.1程序设计流程图
系统程序主要包括主程序、显示数据子程序、报警子程序和按键子程序等。
主程序的主要功能是负责距离的显示、读出并处理HC-RS04的测量距离值,按键控制有效距离限制,当测量的值超过预设值时,蜂鸣器发声报警。
主程序流程图如图6.1所示。
图6.1主流程图
6.2软件程序
#include
#include
//传感器接口
sbitRX=P2^3;
sbitTX=P2^2;
sbitDIAN=P0^5;
//变量声明
unsignedinttime=0;
unsignedinttimer=0;
unsignedcharposit=0;
unsignedlongS=0;
charnum=0;
bitflag=0;
unsignedcharconstdiscode[]={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7,0x80};//数码管显示码0123456789-和不显示
unsignedchardisbuff[4]={0,0,0,0};//数组用于存放距离信息
sbitW0=P2^4;
sbitW1=P2^5;
sbitW2=P2^6;
sbitW3=P2^7;
/*******************************************************************/
//扫描数码管
voidDisplay(void)
{
num++;
if(num==1)
{
W3=1;
W0=1;
P0=~discode[disbuff[0]];
DIAN=0;
W1=0;
}
elseif(num==2)
{
W1=1;
P0=~discode[disbuff[1]];
W2=0;
}
elseif(num>=3)
{
W2=1;
P0=~discode[disbuff[2]];
W3=0;
num=0;
}
}
/*******************************************************************/
//计算
voidConut(void)
{
time=TH0*256+TL0;//读出T0的计时数值
TH0=0;
TL0=0;//清空计时器
S=(time*1.7)/100;//算出来是CM
if((S>=700)||flag==1)//超出测量范围显示“-”
{
flag=0;
disbuff[0]=10;//“-”
disbuff[1]=10;//“-”
disbuff[2]=10;//“-”
}
else
{
disbuff[0]=S%1000/100;//将距离数据拆成单个位赋值
disbuff[1]=S%1000%100/10;
disbuff[2]=S%1000%10%10;
}
}
/*******************************************************************/
//定时器0
voidzd0()interrupt1//T0中断用来计数器溢出,超过测距范围
{
flag=1;//中断溢出标志
}
/*******************************************************************/
//定时器1
voidzd3()interrupt3//T1中断用来扫描数码管和计800MS启动模块
{
TH1=0xf8;
TL1=0x30;//定时2ms
Display();//扫描显示
timer++;//变量加
if(timer>=400)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 超声波 测距仪 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)