《超声波测距课程设计.pdf》由会员分享,可在线阅读,更多相关《超声波测距课程设计.pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、沈阳理工大学学生综合课程设计论文目录前言前言1 课题设计目的及意义-11.1 设计的目的-11.2 设计的意义-11.3 课题设计的任务和要求-1正文正文1课程的方案设计-21.1 系统整体方案-21.2 系统整体方案的论证-22 2系统的硬件结构设计-22.1 51 系列单片机的功能特点及测距原理-32.1.1 51 系列单片机的功能特点-32.1.2 单片机实现测距原理-32.2 超声波电路结构-42.3 超声波测距系统的硬件电路设计-42.4 PCB 版图设计-53系统软件的设计-63.1 超声波测距仪的算法设计-73.2 主程序流程图-73.3 单片机部分 C 语言程序-83.4 超声
2、波测距部分 C 语言程序-114 实物制作-174.1 电路板焊接及连线图-174.2 实物调试效果图-184.3 焊接电路板时所遇问题-195 总结-206 致谢-20附录-20沈阳理工大学学生综合课程设计论文前言1 课题设计目的及意义1.1 设计的目的随着科学技术的快速发展,超声波将在测距仪中的应用越来越广。但就目前技术水平来说,人们可以具体利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。展望未来,超声波测距仪作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求,如声纳的发展趋势基本为
3、:研制具有更高定位精度的被动测距声纳,以满足水中武器实施全隐蔽攻击的需要;继续发展采用低频线谱检测的潜艇拖曳线列阵声纳,实现超远程的被动探测和识别;研制更适合于浅海工作的潜艇声纳,特别是解决浅海水中目标识别问题;大力降低潜艇自噪声,改善潜艇声纳的工作环境。无庸置疑,未来的超声波测距仪将与自动化智能化接轨,与其他的测距仪集成和融合,形成多测距仪。随着测距仪的技术进步,测距仪将从具有单纯判断功能发展到具有学习功能,最终发展到具有创造力。在新的世纪里,面貌一新的测距仪将发挥更大的作用。1.2 设计的意义查找与超声波测距有关的资料,通过对资料的理解开发设计一种简单的单片机超声波测距装置。设计完成后,制
4、作 PCB 版图,最后完成实物的连线。通过设计巩固对单片机知识的运用,并加强自我动手的能力。1.3 课题设计的任务和要求了解和掌握超声波传感器的原理、结构、特性和使用方法,超声波探测系统相关产品及及其国内外研究进展情况,利用单片机、Proteus 和 Keil C51 工具设计出一种相应的探测识别系统,制作实物并进行测试。1、了解和掌握该系统相关传感器(3-5 种)的技术资料,包括其技术指标、原理图、封装形式、价格等;2、查找系统相关产品(3-5 种)的技术资料,包括其技术指标、原理图、封装形式、价格等;1沈阳理工大学学生综合课程设计论文3、查找与本系统相关论文(最近几年)(3-5 篇);4、
5、选择一种传感器,利用单片机、Proteus 和 Keil C51 工具设计出一种相应的探测识别系统,制作实物并进行测试;5、完成论文。1课程的方案设计1.1 系统整体方案由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到农业生产等自动化的使用要求。超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率、和声波特性各不相同,因而用途也各不相同。目前在近距离
6、测量方面常用的是压电式超声波换能器。根据设计要求并综合各方面因素,本文采用 AT89C51单片机作为控制器,用动态扫描法实现 LED 数字显示,超声波驱动信号用单片机的定时器。1.2 系统整体方案的论证超声波测距的原理是利用超声波的发射和接受,根据超声波传播的时间来计算出传播距离。实用的测距方法有两种,一种是在被测距离的两端,一端发射,另一端接收的直接波方式,适用于身高计;一种是发射波被物体反射回来后接收的反射波方式,适用于测距仪。此次设计采用反射波方式。测距仪的分辨率取决于对超声波传感器的选择。超声波传感器是一种采用压电效应的传感器,常用的材料是压电陶瓷。由于超声波在空气中传播时会有相当的衰
7、减,衰减的程度与频率的高低成正比;而频率高分辨率也高,故短距离测量时应选择频率高的传感器,而长距离的测量时应用低频率的传感器。2 2系统的硬件结构设计硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检2沈阳理工大学学生综合课程设计论文测接收电路三部分。单片机采用 AT89C51 或其兼容系列。采用 11MHz 高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用 P3.0 端口输出超声波换能器所需的 40kHz 的方波信号,利用外中断 0 口监测超声波接收电路输出的返回信号。显示电路采用简单实用的 3 位共阴 LED 数码管,段码用 74LS244 驱动,位码用 PNP
8、三极管 8550 驱动。2.1 51 系列单片机的功能特点及测距原理2.1.1 51 系列单片机的功能特点 5l 系列单片机中典型芯片(AT89C51)采用 40 引脚双列直插封装(DIP)形式,内部由 CPU,4kB 的 ROM,256 B 的 RAM,2 个 16b 的定时计数器 TO 和 T1,4 个 8 b的工O 端 I:IP0,P1,P2,P3,一个全双功串行通信口等组成。特别是该系列单片机片内的 Flash 可编程、可擦除只读存储器(EPROM),使其在实际中有着十分广泛的用途,在便携式、省电及特殊信息保存的仪器和系统中更为有用。5l 系列单片机提供以下功能:4 kB 存储器;25
9、6 BRAM;32 条工O 线;2 个16b 定时计数器;5 个 2 级中断源;1 个全双向的串行口以及时钟电路。空闲方式:CPU 停止工作,而让 RAM、定时计数器、串行口和中断系统继续工作。掉电方式:保存 RAM 的内容,振荡器停振,禁止芯片所有的其他功能直到下一次硬件复位。5l 系列单片机为许多控制提供了高度灵活和低成本的解决办法。充分利用他的片内资源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。2.1.2 单片机实现测距原理单片机发出超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差 tr,然后求出距离 SCt2,式中的 C 为超声波
10、波速。3沈阳理工大学学生综合课程设计论文限制该系统的最大可测距离存在 4 个因素:超声波的幅度、反射的质地、反射和入射声波之间的夹角以及接收换能器的灵敏度。接收换能器对声波脉冲的直接接收能力将决定最小的可测距离。为了增加所测量的覆盖范围、减小测量误差,可采用多个超声波换能器分别作为多路超声波发射接收的设计方法。由于超声波属于声波范围,其波速 C 与温度有关。2.2 超声波电路结构超声波接收电路2.3 超声波测距系统的硬件电路设计本系统的特点是利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时,单片机选用 AT89C51,经济易用,且片内有 4K 的 ROM,便于编程。单片机发出 4
11、0kHZ 的信号,经放大后通过超声波发射器输出;超声波接收器将接收到的超声波信号经放大器放大,用锁相环电路进行检波处理后,启动单片机中断程序,测得时间为 t,再由软件进行判别、计算,得出距离数并送 LED 显示。超声波接收器放大电路锁相环检波电路单片机控制定时器显示器超声波发射器放大电路4沈阳理工大学学生综合课程设计论文单片机硬件原理图单片机硬件原理图 2.4 PCB 版图设计:PCBPCB 版图(版图(a a)5沈阳理工大学学生综合课程设计论文PCBPCB 版图(版图(b b)3系统软件的设计超声波测距仪的软件设计主要由主程序、超声波发生子程序、超声波接收中断程序及显示子程序组成。我们知道
12、C 语言程序有利于实现较复杂的算法,汇编语言程序则具有较高的效率且容易精细计算程序运行的时间,而超声波测距仪的程序既有较复杂的计算(计算距离时),又要求精细计算程序运行时间(超声波测距时),所以控制程序可采用 C 语言编程。3.1 超声波测距仪的算法设计超声波测距的原理为超声波发生器 T 在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就被超声波接收器 R 所接收到。这样只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。距离的计算公式为:d=s/2=(ct)/2(1)其中,d 为被测物与测距仪的距离,s 为声波的来回的路程,c 为声速
13、,t 为声波来回所用的时间。在启动发射电路的同时启动单片机内部的定时器 T0,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生一个负跳变,在 INT0 或 INT1 端产生一个中断请求信号,单片机响6沈阳理工大学学生综合课程设计论文应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。3.2 主程序流程图3.3 单片机部分 C 语言程序:#include#include#define uchar unsigned char#define uint unsigned intsbit trig=P37;sbit echo=P32;uint
14、 t=0,s=0;bit flag=0;uchar timeh=0,timel=0,i=0;uchar buffer4=0,0,0,0;uchar code table10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;管 09void delay_us()/20us 延迟7/数码沈阳理工大学学生综合课程设计论文void delay(uint z)void main()trig=0;uint j,y;for(j=z;j0;j-)for(y=110;y0;y-);uchar x;for(x=0;x100;x+);/echo
15、=0;TMOD=0 x11;/定时器 0、1 为 16 位计数模式TH0=(65536-5000)/256;TL0=(65536-5000)%256;TR0=1;IT0=1;ET0=1;ET1=1;EX0=0;EA=1;while(1)EA=0;trig=1;/关总中断/超声波输入端/启动定时器 0/下降沿触发/打开定时器 0 中断/打开定时器 1 中断/关闭外部中断 0/开总中断8沈阳理工大学学生综合课程设计论文delay_us();/延迟 20ustrig=0;/产生一个 20us 的脉冲while(echo=0);/等待 echo 回波变成高电平flag=0;EA=1;EX0=1;TH1
16、=0;TL1=0;TF1=0;TR1=1;/打开外部中断/定时器 1 清零/启动定时器 1/清测量成功标志;delay(20);/等待测量结果TR1=0;EX0=0;if(flag)elses=0;/没有,则清零;t=timeh*256+timel;/计算时间s=t/58;/计算距离(厘米)/关闭定时器 1/关闭外部中断 0buffer0=s/100;/百位buffer1=s%100/10;/十位buffer2=s%10;/个位/*外部中断 0,用做判断回波电平*/9沈阳理工大学学生综合课程设计论文void exter()interrupt 0/*用定时器 0 做显示*/void timer0
17、()interrupt 1/*定时器 1 中断,用做超声波测距计时*/void timer1()interrupt 3TH1=0;TL1=0;TH0=(65536-5000)/256;TL0=(65536-5000)%256;switch(i)case 0:P1=tablebuffer0;P2=0 xfe;i=1;break;case 1:P1=tablebuffer1;P2=0 xfd;i=2;break;case 2:P1=tablebuffer2;P2=0 xfb;i=0;break;default:break;timeh=TH1;timel=TL1;flag=1;EX0=0;3.4 超
18、声波测距部分 C 语言程序:/晶振=8M10沈阳理工大学学生综合课程设计论文/MCU=STC10F04XE/P0.0-P0.6 共阳数码管引脚/Trig=P10/Echo=P32#include/包括一个 52 标准内核的头文件#define uchar unsigned char/定义一下方便使用#define uintunsigned int#define ulong unsigned long/*sfrCLK_DIV=0 x97;/为 STC 单片机定义,系统时钟分频/为 STC 单片机的 IO 口设置地址定义sfrP0M1=0X93;sfrP0M0=0X94;sfrP1M1=0X91;
19、sfrP1M0=0X92;sfr P2M1=0X95;sfr P2M0=0X96;/*sbit Trig=P10;/产生脉冲引脚sbit Echo=P32;/回波引脚sbit test=P11;/测试用引脚uchar code SEG710=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90;/数码管 0-9uint distance4;/测距接收缓冲区uchar ge,shi,bai,temp,flag,outcomeH,outcomeL,i;/自定义寄存器bit succeed_flag;/测量成功标志/*函数声明11沈阳
20、理工大学学生综合课程设计论文void conversion(uint temp_data);void delay_20us();/void pai_xu();void main(void)/主程序uint distance_data,a,b;uchar CONT_1;CLK_DIV=0X03;/系统时钟为 1/8 晶振(pdf-45 页)P0M1=0;/将 io 口设置为推挽输出P1M1=0;P2M1=0;P0M0=0XFF;P1M0=0XFF;P2M0=0XFF;i=0;flag=0;test=0;Trig=0;/首先拉低脉冲输入引脚TMOD=0 x11;/定时器 0,定时器 1,16 位工
21、作方式TR0=1;/启动定时器 0IT0=0;/由高电平变低电平,触发外部中断ET0=1;/打开定时器 0 中断/ET1=1;/打开定时器 1 中断EX0=0;/关闭外部中断EA=1;/打开总中断 0while(1)/程序循环12沈阳理工大学学生综合课程设计论文EA=0;Trig=1;delay_20us();Trig=0;/产生一个 20us 的脉冲,在 Trig 引脚while(Echo=0);/等待 Echo 回波引脚变高电平succeed_flag=0;/清测量成功标志/*/外部中断 0,用做判断回波电平INTO_()interrupt 0/外部中断是 0 号outcomeH=TH1;
22、/取出定时器的值outcomeL=TL1;/取出定时器的值succeed_flag=1;/至成功测量的标志EX0=0;/关闭外部中断/*/定时器 0 中断,用做显示timer0()interrupt 1/定时器 0 中断是 1 号TH0=0 xfd;/写入定时器 0 初始值TL0=0 x77;switch(flag)case 0 x00:P0=ge;P2=0 xfd;flag+;break;case 0 x01:P0=shi;P2=0 xfe;flag+;break;case 0 x02:P0=bai;P2=0 xfb;flag=0;break;13沈阳理工大学学生综合课程设计论文/*/*/定
23、时器 1 中断,用做超声波测距计时timer1()interrupt 3/定时器 0 中断是 1 号TH1=0;TL1=0;*/*/显示数据转换程序void conversion(uint temp_data)uchar ge_data,shi_data,bai_data;bai_data=temp_data/100;temp_data=temp_data%100;/取余运算shi_data=temp_data/10;temp_data=temp_data%10;/取余运算ge_data=temp_data;bai_data=SEG7bai_data;shi_data=SEG7shi_data
24、;ge_data=SEG7ge_data;EA=0;bai=bai_data;shi=shi_data;ge=ge_data;14沈阳理工大学学生综合课程设计论文EA=1;/*void delay_20us()uchar bt;for(bt=0;btdistance1)t=distance0;distance0=distance1;distance1=t;/*交换值if(distance0distance2)t=distance2;distance2=distance0;distance0=t;/*交换值if(distance1distance2)t=distance1;distance1=d
25、istance2;distance2=t;/*交换值4 实物制作4.1 电路板焊接及连线图:电路板正面元件摆放图:15沈阳理工大学学生综合课程设计论文电路板背面连线图:4.2 实物调试效果图16沈阳理工大学学生综合课程设计论文4.3 焊接电路板时所遇问题:1、对于焊枪的应用不是特别娴熟。2、连线时特别不舒服,可能是超声波测距设计比较复杂的连线问题导致的。有的线焊起来空间特别小。在连线的长短方面没有选择好。3、元件摆设方面存在很大问题,直接导致焊接时特别吃力。实物测试时问题:1、没有仔细检查连线正确与否。2、没有进一步了解所作设计的各个组成部分的功能,导致不能及时发现问题出在哪些方面。3、元件的
26、好坏直接会影响测试结果。4、对于三极管的选择有问题,刚开始时选了不熟悉的三极管,导致引脚链接错误,后来经过很复杂的拆线才解决问题。5、要学会如何在不装单片机元件时测试数码管的好坏。17沈阳理工大学学生综合课程设计论文5 总结经过近半个月的课程设计,在本学期学习的基础上又有了很多的收获。在这里最要感谢的淡然是张东阳老师,是他带着我们走进了单片机的世界,让我们可以自己动手完成自己的设计,在这个过程中老师不仅是我们的领路人,还是我们的朋友,帮助我们一直进步。首先不得不说的是对于单片机这一门学科的理解。在学单片机初期,我根本就不知道有着一种东西,别说学了,就是很难想象的感觉,当时心里也有一些迷茫,但经
27、过老师的耐心讲解,我逐步跨入了单片机的世界。起初的我只是会照着书本上的程序完成一些很简单的设计,但通过几次作业的洗礼,我已经可以自己读懂一部分程序,可以自己对 Keil 以及 protues 软件进行操作,直到现在,我可以运用所学知识,完成对一件小设计的实物制作,我很开心。在这里不得不对老师及帮助过我的同学说一声谢谢。我们在做实物的时候是四个人一组,我虽然不是组长,但在我的组中也比较重要。在制作实物的时候,我负责的是最复杂的连线环节,说实话,我都要崩溃了,看着那么多的线,头晕目眩,还有焊锡那难闻的味道,实在是受不了,最后经过近两个小时的工作,我终于把连线都焊好了。不得不说这是对我能力的锻炼,不仅是对我手工技术的历练,还有就是对身心素质的磨练。6 致谢在此特别提出对指导老师张东阳与张乐的感谢,还有对同学谢法威、沈文睿的感谢。在完成设计的过程中,他们帮到了我太多,通过他们明白了出上课之外的很多东西。我相信这一定对我的未来有很积极的影响。18沈阳理工大学学生综合课程设计论文附录3D 实物模拟图:测距原理图:19沈阳理工大学学生综合课程设计论文超声波传感器实物图:20
限制150内