基于单片机超声波测距课程设计报告_第1页
基于单片机超声波测距课程设计报告_第2页
基于单片机超声波测距课程设计报告_第3页
基于单片机超声波测距课程设计报告_第4页
基于单片机超声波测距课程设计报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 课程设计说明书 题 目:超声波测距 院 (系):电子工程与自动化 专 业: 学生姓名: 学 号: 指导教师: 2011 年 11 月 7 日共 16 页 第 - 16 - 页 目录一、绪论二、对本课程的设计分析2.1 总体设计方案介绍2.1.1 超声波测距原理 2.1.2 超声波测距原理框图2.2 系统硬件设计方案2.2.1 51系列单片机的功能特点及测距原理2.2.1.1 51系列单片机的功能特点2.2.1.2 单片机实现测距原理 三、主要电路模块的实现方案比较及选择3.1 超声波发射电路3.2 超声波检测接收电路3.3 超声波测距系统的硬件电路设计3.4 系统电路图及其PCB图四、系统的

2、软件设计4.1 主程序流程图4.2超声波发射子程序和超声波接收中断程序五、测试数据以及结论六、课程设计过程中遇到的主要问题以及解决办法七、心得体会1、 绪论 随着社会的发展,人们对距离或长度测量的要求越来越高。超声波测距由于其能进行非接触测量和相对较高的精度,越来越受到人们的重视。超声波测距离的一个最重要的功能就是作用于倒车系统上。要实现倒车系统的准确精度,就得把超声波和单片机相结合,利用单片机的控制系统和精确的运算使超声波测距离更加快速和精确。从而,减少事故的发生。通过该实验学习利用单片机和超声波探测元件测试距离的基本方法,进一步熟悉单片机定时器技术、中断技术在数据采集和数据处理过程中的综合

3、运用方法,提高综合应用程序的编程方法与技巧。发射器发出的40KHz超声波以速度v在空气中传播,在到达被测物体时被反射返回,由接收器接收,其往返时间为t,由s=vt/2即可算出被测物体的距离。报告内容包括:单片机控制主程序、中断子程序、延时子程序和超声波发射、接收电路、数码管驱动显示电路以及主电路。二、对本课程设计的分析2.1总体设计方案介绍2.1.1超声波测距原理发射器发出的超声波以速度v在空气中传播,在到达被测物体时被反射返回,由接收器接收,其往返时间为t,由s=vt/2即可算出被测物体的距离。由于超声波也是一种声波,其声速v与温度有关,下表列出了几种不同温度下的声速。在使用时,如果温度变化

4、不大,则可认为声速是基本不变的。表1-1 超声波波速与温度的关系表温度()-30-20-100102030100声速(ms)313319325323338344349386表1-12.1.2超声波测距仪原理框图如下图采用AT89s52单片机,晶振:12MHZ,单片机P1.0口发出40kHZ的方波信号,通过超声波发射器输出;超声波接收器将接收到的超声波信号,利用外部中断0口监测超声波输出的返回信号,显示电路采用简单的4位LED数码管,位码用8550驱动。 单 片 机超声波接收数码管显示超声波发送扫描驱动 图1-1 超声波测距原理框图2.2 系统的硬件结构设计硬件电路的设计主要包括单片机系统及LE

5、D显示电路、超声波发射电路和超声波检测接收电路三部分。单片机采用AT89S52来实现对CX20106A红外接收芯片和TCT40-10系列超声波转换模块的控制。采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机通过P1.0口经反相器来控制超声波的发送,然后单片机不断的检测INT0引脚,当INT0引脚的电平用高电平变为低电平时就认为超声波已返回。计数器所记的数据就是超声波所经历的时间,通过换算就可以得到超声波传感器与障碍物的距离。2.2.1 51系列单片机的功能特点及测距原理2.2.1.1 51系列单片机的功能特点 51系列单片机中典型芯片(AT89S52)采用40引脚双列直插

6、封装(DIP)形式,内部由CPU,8kB的ROM,256 B的RAM,3个16b的定时计数器TO、T1以及T2,4个8 b的工O端I:IP0,P1,P2,P3,一个全双功串行通信口等组成。特别是该系列单片机片内的Flash可编程、可擦除只读存储器(EPROM),使其在实际中有着十分广泛的用途,在便携式、省电及特殊信息保存的仪器和系统中更为有用。 5l系列单片机提供以下功能:8 kB存储器;256 BRAM;32条工O线;3个16b定时计数器;5个2级中断源;1个全双向的串行口以及时钟电路。空闲方式:CPU停止工作,而让RAM、定时计数器、串行口和中断系统继续工作。掉电方式:保存RAM

7、的内容,振荡器停振,禁止芯片所有的其他功能直到下一次硬件复位。5l系列单片机为许多控制提供了高度灵活和低成本的解决办法。充分利用他的片内资源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。2.2.1.2 单片机实现测距原理 单片机发出超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差t,然后求出距离SCt2,式中的C为超声波波速。限制该系统的最大可测距离存在4个因素:超声波的幅度、反射的质地、反射和入射声波之间的夹角以及接收换能器的灵敏度。接收换能器对声波脉冲的直接接收能力将决定最小的可测距离。由于超声波属于声波范围,其波速C与温度有关。3、

8、主要电路模块的实现方案比较及选择3.1 超声波发射电路超声波发射电路原理图如图3-1所示。发射电路主要由反相器CD4069和超声波发射换能器TX构成,单片机P1.0端口输出的40kHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。图3-1 超声波发射电路原理图 3.2 超声波检测接收电路集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38 kHz与测距的超声波频率40 kHz较为接近,可以利用它制作

9、超声波检测接收电路(如图3-2)。实验证明用CX20106A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。图3-2 超声波检测接收电路3.3 超声波测距系统的硬件电路设计本系统的特点是利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时,单片机选用AT89S52,经济易用,且片内有8K的ROM,便于编程。单片机系统及显示电路原理图如见图3-3。 图3-3 单片机系统及显示电路原理图3.4 系统电路图及其PCB图给出整个系统的电路图,并加以说明。要详细说明第3节中各模块如何组合在一起来实现系统功能的。图4-1 系统电路图及其PCB图当电源接电的时候由AT89S5

10、2单片机实现对CX20106A红外接收芯片的控制。单片机通过P1.0引脚经反相器来控制超声波的发送,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。单片机开启外部中断使定时器关闭,定时器所计的数据就是超声波所经历的时间,通过运算就可以得到传感器与障碍物之间的距离,这时通过BCD码转换把十六进制的数据转换成十进制,并通过查表把距离显示在LED数码管显示器上。四、系统的软件设计4.1 主程序流程图超声波测距仪的软件设计主要由主程序、超声波发射子程序、超声波接收中断程序及显示子程序等部分组成。主程序首先对系统初始化,设置定时器T0工作模式为16位的定时

11、计数器模式,置位总中断允许位EA。然后单片机送出超声波脉冲,为避免超声波从发射器直接传送到接收器引起的直接波触发,需延迟一段时间,保持电平20us左右,也就是超声波频率大约为40KHZ,连续发送8个波形(这也是超声波测距离会有一个最小可测距离的原因)后,才打开外中断1接收返回的超声波信号。由于采用12MHz的晶振,机器周期为1us,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按下式计算即可测得被测物体与测距仪之间的距离,设计时取20时的声速为340m/s则有:d=(T0*344)/2(其中T0为计数器T0的计数值)测出距离后结果将以十进制BCD码方式送到LED

12、显示管显示,然后再发射超声波脉冲重复测量过程。主程序框图如下图5-1所示: 开始 单片机初始化 N 定时中断子程序有无回波信号You 一 外部中断子程序 结束 图5-1 超声波测距离主程序流程图4.2超声波发射子程序和超声波接收中断程序 超声波发射子程序的作用是通过P1.0端口发送8个超声波信号,频率约40KHz的方波,脉冲宽度为20us左右,同时把计数器T0打开进行计时。超声波测距离主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(INT0引脚出现低电平),立即进入中断程序。进入该中断后就立即关闭计时器T0停止计时,并将测距成功标志位赋值1.,中断子程序流程图如图5-2所示:

13、外部中断入口 定时中断入口 关外部中断 定时初始化 读取时间值N 发射超声波 计算距离 是否发射完 结果显示 停止发射 返回 返回图5-2 定时中断子程序流程图 外部中断子程序流程图五、测试数据以及结论在温度为25度左右环境下测试:实际距离(mm)707580859095100105110实际距离(mm)727681879296100105110超声波测距仪的制作和调试都比较简单,其中超声波发射和接收采用15的超声波换能器TCT40-10F1(T发射)和TCT40-10S1(R接收),中心频率为40kHz,安装时应保持两换能器中心轴线平行并相距48cm,其余元件无特殊要求。若能将超声波接收电路

14、用金属壳屏蔽起来,则可提高抗干扰能力。 硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。根据实际情况可以修改超声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距离的测量需要。根据所设计的电路参数和程序,测距仪能测的范围为0.061m,测距仪最大误差不超过1mm。系统调试完后应对测量误差和重复一致性进行多次实验分析,不断优化系统使其达到实际使用的测量要求。改装:由于技术水平所限暂时不能给该设计加入语音程序,如果能加入语音程序的话,就能使超声波测距离在倒车系统和其他领域中得到最完美的体现。超声波测距离在生活中的应用越来越广泛,且也使汽车在倒车的时候能最大可

15、能的减少事故的发生。其有很高的开发的价值和十分广泛的应用领域,为提高生活和科学技术水平提供了选择。六、课程设计过程中遇到的主要问题以及解决办法问题一:该实验不能在Protues上进行仿真由于不能在Protues上仿真出超声波信号的发射和接收所以进行不了仿真,这时候我只能通过查资料直接在Protel上画出该实验的整个电路图,直接做出硬件来进行调试。问题二:接受超声波电路的电容用错 电解电容用了瓷片电容,而且电容的大小用小了七、心得体会超声波测距离让我想到雷达探测,因为其利用的就是超声波原理。由于暑假电赛培训时候已经做过了其电路板,只是当时程序下载到板子上时候没有成功。所以我把上次遗留下来的问题,

16、一并的在这次课设中考虑进去了,可以说是带着很疑问去做课设的。板子很快就做好了,而程序的编写都是自己通过网上查找资料以及询问高年级学长才一步一个坎,一步一个脚印,最终编程成功,达到了我所想要的结果。过程不算很难,同时看着自己所做出来的成果,感觉挺开心的。通过该实验,我们认识的到了单片机在控制领域中的强大作用,也使我加深了所学的单片机知识,为我们以后的就业和学习提供了很多的基础。 附录 超声波测距离程序#include <reg52.h> #define uchar unsigned char #define uint unsigned int#define ulong unsigne

17、d longsbit Tx = P10; /产生脉冲引脚sbit Rx = P32; /回波引脚uchar code SEG710=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; uint distance4; /测距接收缓冲区uchar ge,shi,bai,temp,flag,outcomeH,outcomeL,i; bit succeed_flag; /测量成功标志void conversion(uint temp_data);void delay_20us();void csb_init();void main() / 主程序 ui

18、nt distance_data,a,b; uchar CONT_1; i=0; flag=0; csb_init(); while(1) EA=0; Tx=1; delay_20us(); Tx=0; /产生一个20us的脉冲,在Tx引脚 while(Rx=0); /等待Rx回波引脚变高电平 succeed_flag=0; /清测量成功标志 EX0=1; /打开外部中断 TH1=0; TL1=0; TF1=0; TR1=1; /启动定时器1 EA=1; while(TH1 < 30); /等待测量的结果,周期65.535毫秒(可用中断实现) TR1=0; /关闭定时器1 EX0=0;

19、/关闭外部中断 if(succeed_flag=1) distance_data=outcomeH; /测量结果的高8位 distance_data<<=8; /放入16位的高8位 distance_data=distance_data|outcomeL;/与低8位合并成为16位结果数据 distance_data*=12; /因为定时器默认为12分频 distance_data/=58; /微秒的单位除以58等于厘米 / X秒=( 2*Y米)/344 X秒=0.0058*Y米 if(succeed_flag=0) distance_data=0; /没有回波则清零 distanc

20、ei=distance_data; /将测量结果的数据放入缓冲区 i+; if(i=3) distance_data=(distance0+distance1+distance2+distance3)/4; a=distance_data; if(b=a) CONT_1=0; if(b!=a) CONT_1+; if(CONT_1>=3) CONT_1=0; b=a;conversion(b); i=0; /外部中断0,用做判断回波电平INTO_() interrupt 0 / 外部中断是0号 outcomeH =TH1; outcomeL =TL1; succeed_flag=1; EX0=0; /关闭外部中断/定时器0中断,用做显示timer0() interrupt 1 / 定时器0中断是1号 TH0=0x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论