资源描述
xx 学 院 课 程 论 文(2014 -2015学年第一学期)超声波传感器测距学生姓名:xxx提交日期: 2015年 1 月 10 日 学生签名:学 号xxxxxx班级12级电本二班课程编号XZ1902002专业电子信息工程课程名称传感器与测量技术任课教师姚高华教师评语:成绩评定: 分 任课教师签名: 年 月 日说 明1、课程论文要有题目、作者姓名、摘要、关键词、正文及参考文献。摘要200字以下;关键词35个;参考文献不少于3篇。2、论文要求自己动手撰写,如发现论文是从网上下载的,或者是抄袭剽窃别人文章的,按作弊处理,本门课程考核成绩计0分。3、课程论文用A4纸双面打印。字体全部用宋体简体,题目要求用小二号字加粗,标题行要求用小四号字加粗,正文内容要求用小四号字;行距为2倍行距(方便教师批注);页边距左为3cm、右为2.5cm、上为2.5cm、下为2.5cm。4、论文题目、篇幅、内容等由任课教师提出具体要求。摘要超声波技术比较成熟,已广泛应用与众多领域。由于超声波的优点,人们对超声波的利用率越来也高。从大到工业体系的探伤,小到测距和金属表面清尘,超声波几乎无处不在的伴随我们的生活。本次设计是以STC89S52单片机为核心的低成本、高精度、微型化数字显示超声波测距仪,实现对前方物体距离的测量。整个电路采用模块化设计,有单片机主控制器模块,HR-SR04超声波集成模块(超声波发射,超声波接收)和数据显示模块等四个基本模块构成。关键词:STC89S52;超声波;测距;HR-SR04超声波集成模块目 录一、超声波传感器测距简介11.1超声波传感器11.2超声波的特点11.3超声波传感器测距仪的基本原理2二、设计超声波感器测距仪的原理32.1 超声波距离检测器32.2超声波测距系统原理32.3系统的原理框图4三、系统整体方案设计53.1超声波发射电路设计53.2超声波接收电路设计53.3 HR-SR04超声波集成模块73.4LCD1602显示模块83.5 总原理图9四、控制系统软件设计104.1超声波传感器测距的软件设计10六、传感器课程设计总结11程序12参考文献21一、超声波传感器测距简介1.1超声波传感器超声波传感器有发送器和接收器,一般而言超声波传感器也可以具有发送和接收声波的双重作用,属于可逆元件。但市场上卖得超声波传感器有专用型和兼用型之分。专用型就是发送器用作发送超声波,接收器用作接收超声波;兼用型就是发送器和接收器为一体传感器,即可发送超声波,又可接收超声波。常常用到的中心频率有:23kHz、40kHz、75kHz、200kHz、400kHz等。鉴于超声波在空气中传播时会有一定的衰减,衰减的程度与频率的高低成正比;但频率高分辨率也高,故短距离测量时应选择频率高的传感器,而长距离的测量时应用低频率的传感器,所以在本设计中采用40KHZ的频率比较合适。1.2超声波的特点超声波是一种人耳无法听到的、频率一般超过20kHz,它具有以下特性:(1)波长与辐射:传播速度是用频率乘以波长来表示。声波在空气中的传播速度很慢,约为344m/s。在这种比较低的传播速度下,波长很短,这就意味着可以获得较高的距离和方向分辨率。正是由于这种较高的分辨率特性,才使我们有可能在进行测量时获得很高的精确度。(2)反射:超声波以直线方式传播,频率越高,绕射能力越弱,但反射能力越强,由于金属、木材、混凝土、橡胶和纸等可以反射近乎100的超声波,我们可以很容易地探测到这些物体并且测量距离。(3)衰减:传播到空气中的超声波强度随距离的变化成比例地减弱,原因:衍射现象上的扩散损失,和介质吸收能量产生的吸收损失。对于同一物质,声波的频率越高,吸收越强。在气体中传播时吸收最历害,在液体中传播时吸收比较弱,在固体中传播时吸收最小。1.3 超声波传感器测距仪的基本原理超声波测距的原理是利用超声波的发射和接受,根据超声波传播的时间来计算出传播距离。实用的测距方法有两种,一种是在被测距离的两端分别装有发射装置和接收装置来实现直接发送接收,适用于测量身高;一种是发射波被物体反射回来后接收的反射波方式,则适用于测距仪。所以制作超声波传感器测距仪要采用反射波的方式。二、设计超声波感器测距仪的原理2.1 超声波距离检测器采用单片机来控制的超声波测距仪是先由单片机产生一个信号,经过信号线,把信号引入到与超声波发射器相连的信号引脚上,再由超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。根据单片机计时器记录的时间t,就可以计算出发射点距障碍物的距离S,即:S=vt/2; 而超声波在空气中的传播速度v为340m/s,具体框图:如图1图1 超声波测距基本过程图2.2 超声波测距系统原理在超声探测电路中,发射端得到输出脉冲为一系列方波,其宽度为发射超声的时间间隔,被测物距离越大,脉冲宽度越大,输出脉冲个数与被测距离成正比。但是超声波在声场中是会有热学作用:超声波作用于介质时被介质所吸收,实际上也就是有能量吸收,同时,由于超声波的振动,使介质产生强烈的高频振荡介质相互摩擦产生热热量,这种能量使介质温度升高。所以测量电路采用:测量输出脉冲的宽度,即发射超声波与接收超声波的时间间隔t,故被测距离为S=vt/2。如果测距精度要求很高,则应通过温度补偿的方法加以校正。测量距离具体算法设计:X2是声波返回的时刻,X1是声波发声的时刻,X2-X1得出的是一个时间差的绝对值。L为距离。有公式: L=v*(X2-X1)/2图2 超声波测量距离具体算法图2.3系统的原理框图如图3所示:LCD1602单片机超声波接收器超声波发射器图3 系统的原理框图系统硬件原理图由超声波接收模块,超声波发射模块,单片机,显示模块等构成。系统由51单片机控制超声波发射模块发射超声波,超声波接收模块采集发射信号,再经滤波、放大、整形后由51单片机控制LCD1602显示。三、系统整体方案设计3.1 超声波发射电路设计超声波发射电路是由超声波探头和超声波放大器组成。超声波探头用于把电信号转换成机械波发射出去,超声波放大器则是把单片机产生的方波信号放大以便驱动超声波探头工作。超声波发射电路如下:图4 超声波发射电路图先是由单片机产生40kHz的脉冲从P0.1口发出,再经74LS04放大电路放大后,驱动超声波探头将放大后的信号以超声波的形式发射出去。3.2超声波接收电路设计超声波在空气中的传播时是有衰减的,当要测量的距离较远时,超声波接收模块所接收到的超声波信号就会非常微弱,如果对接收到的信号不予以放大就无法读出信号,需要对接收到的信号进行倍数比较大的放大。放大电路可以采用集成电路CX20106A芯片构成,具体原理图如下:图5 超声波接收模块图CX20106A芯片的特点:1:可以对超声波信号进行放大、限幅、带通滤波、峰值检波、整形、比较等功能,比较完之后超声波接收电路会输出一个低电平到单片机去请求中断,当即单片机停止计时,并开始去进行数据的处理。2:前置放大器具有自动增益控制的功能,当测量的距离比较近时,放大器不会过载;而当测量距离比较远时,超声波信号微弱,前置放大器就有较大的放大增益效果。3:5脚在外接电阻对它的带通滤波器的频率进行调节,而且不用再外接其他的电感,能够很好地避免外加磁场对芯片电路的干扰。3.3 HR-SR04超声波集成模块特点:包括超声波发射器、接收器与控制电路。可在3CM-90CM范围内测量,远距离误差较大,但近距离误差较小。可以根据不同的模块作简单的修正。鉴于HR-SR04超声波模块的控制比较简单方便,成本低。超声波传感器测距仪的波发射模块、接收器模块直接由HR-SR04超声波模块代替。HR-SR04超声波模块的控制:模块接入电源和地;只要给trig端口长为20us的高电平方波;模块自动发送8个40khz的声波,自动检测是否有信号返回;当有信号返回, echo端口输出一个高电平,高电平持续的时间就是超声波传送时间;当超声波返回被模块接收到时echo端口的高电平就变为低电平。用单片机定时器计时从发射到返回的总时长即可。具体实物图如图6HR-SR04超声波集成模块实物图正面图7 HR-SR04超声波集成模块实物图背面3.4 LCD1602显示模块显示模块采用LCD1602液晶显示屏显示。具有体积小、功耗低、界面美观大方等优点,这里使用LCD1602液晶屏,1602显示模块用点阵图形显示字符,显示模式分为2行16个字符。它具有16个引脚,其正面左起为第一脚,如下图所示:图3和图41:GND:接地。 2:VCC:+5V电源。3:VO对比度调整端。使用时通过接一个10K的电阻来调节。4:RS:寄存器选择信号线。 5:RW:读写信号线。6:E:使能端,当E由高电平跳变为低电平时执行命令。714脚:8位数据线D0D7。15脚:BLA:背光电源正极输入端。16:BLK:背光电源负极输入端。图8 LCD1602显示模块背面图9 LCD1602显示模块正面3.5 总原理图由51单片机最小系统,HR-SR04超声波模块,和LCD1602模块组成。图10 超声波测距仪总原理图四、控制系统软件设计4.1超声波传感器测距的软件设计本软件设计利用单片机的两个中断,在发射信号时,打开定时器中断0和外部中断0使定时器计时,接收到发射超声波信号时,外部中断0也随着关闭,得到定时器中断0的时间就为超声波传播经过测距仪到前方物体的来回时间。再有公式S=TV2(其中V为超生波传播速度,一般环境视为340m/s),得到距离S,再由单片机控制LCD1602显示出来。具体软件框图如下:外部中断入口开始单片机初始化关定时中断,读定时时间超声波发射子程序数据处理LCD1602显示超声波信号返回无 有返回外部中断服务函数 图11 软件框图五、传感器课程设计总结从开始的一无所知,到最后一点点积累,学习,最终完成整个实验,其中的辛苦恐怕只有自己才能深刻体会到,在设计中还有很多不足之处,让自己知道好有很多需要改进的地方。但在自己不断的努力之下,顺利完成了这次超声波传感器测距仪的设计。此次设计之后,我认识到本人对单片机、传感器方面的知识知道的不足,书本上的很多知识还不能灵活运用,尤其是程序的编写,中间的错误曾令自己茫然不知所措,导致编写的程序不合理,程序需要的存储空间增大,损耗了过多的内存资源。好在最后解决了这些问题。本次的设计也使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化。在大学的课堂上学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去。在查找资料的过程中我学到了许多新的知识,也在同学协作过程中增进同学间的友谊,使我对团队精神的积极性和重要性有了更加充分的理解。最后,要感谢老师对我的细心的指导。正是由于老师的细心的辅导和他提供给我们的参考资料,使得我的课程设计能够顺利的完成,同时在课程设计过程中,我们巩固了单片机和传感器的知识。相信这对我以后的课程设计和毕业设计将会有很大的帮助!程序#defineucharunsignedchar/宏定义#defineuintunsignedint#include#includesbitTrig=P20;sbitEcho=P21;sbitlcd_rs=P25;sbitlcd_rw=P26;sbitlcd_en=P27;voidinit();/主函数初始化voidLCD_init();/LCD1602的初始化voidLCD_write_date(uchardate);/LCD1602的写数据函数voidLCD_write_com(ucharcom);/LCD1602的写指令函数voiddelay(uint);/延时函数voiddev_delay();/短暂延时函数voidLCD1602_display();/lcd的显示函数ucharcodenum=0,1,2,3,4,5,6,7,8,9,m;ucharT0_cout,display_flag;uintT0_time;voidmain()delay(1500);init();while(1)Trig=1;/超声波模块发射控制端 delay(20); Trig=0;while(Echo=0);TR0=1;while(Echo=1);TR0=0;while(display_flag=0); while(display_flag=1)display_flag=0;LCD_init();distance_display();delay(1500); voiddev_delay()_nop_();_nop_();_nop_();_nop_();voiddelay(uinttime)/20us的延时函数 ucharx;uinty;for(y=time;y0;y-)for(x=220;x0;x-);voidLCD_write_com(ucharcom)/写指令函数lcd_en=0;lcd_rs=0;lcd_rw=0;P0=com;dev_delay();lcd_en=1;delay(1);lcd_en=0;dev_delay();voidLCD_write_date(uchardate)/写数据函数lcd_rs=1;lcd_rw=0;lcd_en=0;P0=date;dev_delay();lcd_en=1;delay(1);lcd_en=0;dev_delay();voidLCD_init()/LCD1602的初始时序函数LCD_write_com(0x38);LCD_write_com(0x0c);LCD_write_com(0x06);LCD_write_com(0x01);voidinit()/主函数初始函数(初始定时器,外部中断,LCD1602)LCD_init();TMOD=0x01;TH0=0;TL0=0;EA=1;/总中断开启ET0=1;/T0中断开启EX0=1;/外部中断0IT0=1;/下降沿触发TR0=0;T0_time=0;T0_cout=0;Trig=0;Echo=0;display_flag=0;voidDINGSHI0()interrupt1/定时器0服务函数TH0=0;TL0=0;T0_cout+;voidwaibuchufa()interrupt0TR0=0;T0_time=TH0*256+TL0;display_flag=1;TH0=0;TL0=0;T0_cout=0;voidLCD1602_display()/控制LCD1602输出函数uchari,G,S,B,Q;uintdistance;distance=T0_time*0.17;/距离为毫米T0_time=0;if(distance4000&(!T0_cout)/数据处理部分Q=distance/1000;B=distance%1000/100;S=distance%100/10;G=distance%10/1;distance=0;LCD_write_date(numQ);LCD_write_date(numB);LCD_write_date(numS);LCD_write_date(numG);LCD_write_date(num10);LCD_write_date(num10);elsefor(i=0;i18;i+)LCD_write_date(warningi);distance=0;参考文献1李广弟,朱月秀编著.单片机基础. 北京:北京航空航天大学出版社,20012胡萍.超声波测距仪的研制J.计算机与现代化,2003.10 3张谦琳.超声波检测原理和方M法.北京:中国科技大学出版社,1993.104吴道悌,非电量电测技术M.西安:西安交通大学出版社,2000.5殷勤业,自动检测和仪表中的共性技术M.北京:清华大学出版社 6苏伟.巩壁建.超声波测距误差分析J.传感器技术,2004.23
展开阅读全文