基于51单片机超声波测距仪设计Word格式文档下载.docx
- 文档编号:20679685
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:14
- 大小:190.26KB
基于51单片机超声波测距仪设计Word格式文档下载.docx
《基于51单片机超声波测距仪设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于51单片机超声波测距仪设计Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
它控制单片机进行数据发送与接收,在一定温度下对超声波速度的校正,还有实现数据正确显示在LED上。
另外程序控制单片机消除各探头对发射和接收超声波的影响。
相关部分附有硬件电路图、程序流程图。
实际的环境对超声波有很大的影响,如外部电磁干扰电源干扰信道干扰等等,空气的温度对超声波的速度影响也很大。
此外供电电源也会使测量差生很大的误差。
再设计的过程中考虑了这些因素,并给出了一些解决方案。
关键词:
AT89C51
超声波
测距
1绪论
1.1设计背景及重要意义
近年来,随着电子测量技术的发展,运用超声波作出精确测量已成可能。
随着经济发展,电子测量技术应用越来越广泛,而超声波测量精确高,成本低,性能稳定则备受青睐。
一般的超声波测距仪可用于固定物位或液位的测量,适用于建筑物内部、液位高度的测量等。
由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。
因此可广泛应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品)、防汛、水文、明渠、空间定位、公路限高等行业中。
可在不同环境中进行距离准确度在线标定,可直接用于水、酒、糖、饮料等液位控制,可进行差值设定,直接显示各种液位罐的液位、料位高度。
因此,超声在空气中测距在特殊环境下有较广泛的应用。
利用超声波检测往往比较迅速、方便、计算简单、易于实现实时控制,并且在测量精度方面能达到工业实用的指标要求,因此为了使移动机器人能够自动躲避障碍物行走,就必须装备测距系统,以使其及时获取距障碍物的位置信息(距离和方向)。
因此超声波测距在移动机器人的研究上得到了广泛的应用。
同时由于超声波测距系统具有以上的这些优点,因此在汽车倒车雷达的研制方面也得到了广泛的应用。
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<
reg52.H>
//器件配置文件
intrins.h>
//传感器接口
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)//400次就是800ms
timer=0;
TX=1;
//800MS启动一次模块
_nop_();
_nop_();
_nop_();
TX=0;
}
/********************************************/
//主函数
voidmain(void)
{
TMOD=0x11;
//设T0为方式1,GATE=1;
//2MS定时
ET0=1;
//允许T0中断
ET1=1;
//允许T1中断
TR1=1;
//开启定时器
EA=1;
//开启总中断
while
(1)
while(!
RX);
//当RX为零时等待
TR0=1;
//开启计数
while(RX);
//当RX为1计数并等待
TR0=0;
//关闭计数
Conut();
//计算
设计总结
施鹏:
本次设计我们是以AT89C51为核心,借助于模数电技术和单片机技术的结合,解决了超声波测距的一些难题。
灵活的运用超声波换能集成电路作为超声波的接收电路,在讨论了超声波测距原理、硬件电路实现和软件设计方法基础上,完成了超声波测距的设计要求。
利用单片机的运算和控制功能,利用超声波的特性设计出的一种简单的测距系统。
利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,随着科学技术的快速发展,超声波的应用将越来越广。
但就目前技术水平来说,人们可以具体利用的超声波技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。
从方案论证到具体设计,我查阅了大量的资料。
对一些疑难的问题,我得到了老师和同学的帮助。
也始终感受着导师的精心指导和无私的关怀,我受益匪浅。
在此向老师们表示深深的感谢和崇高的敬意。
磨国强:
本次设计我们在讨论了超声波测距原理、硬件电路实现和软件设计方法基础上,以AT89C51为核心,完成了超声波测距的设计要求。
利用单片机的运算和控制功能,设计出的一种筒单实用的超声波测距系统,利用超声波测距系统比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面达到了一定的要求。
本次设计主要单片机系统,显示电路和超声波模块三个部分。
胡广富:
本次设计我们在讨论了超声波测距原理、硬件电路实现和软件设计方法基础上,以AT89C51为核心,借助于模数电技术和单片机技术的结合,解决了超声波测距的一些难题。
灵活的运用超声波换能集成电路作为超声波的接收电路,在讨论了超声波测距原理、硬件电路实现和软件设计方法基础上,完成了超声波测距的设计要求,利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,随着科学技术的快速发展,超声波的应用将越来越广。
设计过程中查阅了大量资料,得到了老师的帮助,在此向老师们表示深深的感谢和深深的敬意。
致谢
首先,我们要感谢我的导师周光祥老师在此次设计中对我给予的悉心指导和严格要求,同时也感谢本校的一些老师在设计期间所给予我得帮助。
在论文写作期间,各位老师给我提供了种种专业知识上的指导和日常生活上的关怀,没有您们这样的帮助和关怀,我不会这么顺利的完成此次设计,借此机会,向您们表示由衷的感激。
同时还要感谢系实验室在此次设计期间提供给我们优越的实验条件。
接着,我要感谢和我一起做此次设计的同学。
在此次设计中,你们给我们提出很多宝贵的意见,给了我不少帮助还有工作上的支持,在此也真诚的谢谢你们。
同时,我还要感谢我的寝室同学和身边的朋友,正是在这样一个团结友爱,相互促进的环境中,在和他们的相互帮助和启发中,才有我今天的小小收获。
最后我要深深地感谢我的家人,正是他们含辛茹苦地把我养育成人,在生活和学习上给予我无尽的爱、理解和支持,才使我时刻充满信心和勇气,克服成长路上的种种困难,顺利的完成大学学习。
还有许许多多给予我学业上鼓励和帮助的朋友,在此无法一一列举,在此也一并表示忠心地感谢!
参考文献
[1]
宋雪臣,单振清.传感器与检测技术(第2版).北京:
人民邮电出版社,2012年4月.
[2]
谢维成,杨加国.单片机原理与应用及C51程序设计.北京:
清华大学出版社,2006
[3]
张齐等.单片机应用系统设计技术----基于C语言编程.北京:
电子工业出版社,2004
[4]
吴延海.微型计算机接口技术.重庆:
重庆大学出版社,1997
[5]
李丽霞.单片机在超声波测距中的应用[J].电子技术,2002
[6]
姜道连,宁延一,袁世良.用AT89C2051设计超声波测距仪[J].国外电子元器件,2000
[7]
李学海.PIC单片机实用教程-基础篇(第1版)[M].北京航天航空大学出版社.北京:
2002年2月
[8]
贾伯年.传感器技术.
南京:
东南大学出版社,2000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 超声波 测距仪 设计