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

下载本文档

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

文档简介

1 绪论 超声测距是一种利用单片机控制超声波的轮流发射,并且通过单片机记录和读取发射超声波和接收回波的时间差,进而计算出测量的距离。由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物理定位仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面达到很高的要求。 目前超声波测距已得到广泛应用,国内一般使用专用集成电路根据超声波测距原理设计各种测距仪器,但是专用集成电路的成本较高、功能单一。而以单片机为核心的测距仪器可以实现预置、多端口检测、显示、报警等多种功能,并且成本低、精度高、操作简单、工作稳定可靠。本文主要论述了利用5l系列单片机实现超声波测距的原理以及实现的方法。该智能距离提示器主要是利用超声波探测传感器发送超声波来测试相对应的距离。工作时,超声波发生器不断的发出一系列连续的脉冲,并给单片机提供一个短脉冲。超声波遇障碍物反射回来一个反射波,这个反射波被超声波接收器收到,也向单片机提供一个短脉冲。最后由单片机装置对接受信号依据时间差进行处理,自动计算出该智能距离提示器离障碍物之间的距离。该超声波智能距离提示器具有硬件结构简单、工作可靠、测量误差小、方便等特点。因此它不仅可以单单用作距离测量,还可以放在其它检测系统中。 随着科学技术的快速发展,超声波将在测距仪中的应用越来越广。这是一个正在蓬勃发展而又有无限前景的技术及产业领域。超声波测距是一种极有潜力的测距方法,近距范围内超声测距有其不受光线影响,结构简单,成本低等特点。超声波测量的另一个突出优点是:环境介质可以为空气,液体或固体,适用范围广泛。更重要的是超声波检测降低了劳动强度,避免工人在恶劣工作环境下(高,低温,强辐射等)受到伤害,还大大提高了测量精度,可靠性高;另外,超声波测距还可以应用到其他的功能系统中,例如在机器人避障系统;移动机器人避障的超声测距系统,智能机器人管家和简易智能电动车自动避障系统;自动刹车系统和倒车雷达系统,液位测量系统中超声波测距也有其重要的应用。随着测距仪的技术进步,测距仪将从具有单纯判断功能发展到具有学习功能,最终发展到具有创造力。在以后的生活中,面貌一新的测距仪将发挥更大的作用。2 设计内容、技术指标及所需设备2.1课程设计主要内容 利用所学的数字电子技术、信号处理、控制等技术,设计、制作并调试完成一个单片机最小系统,并在此基础上,将最小系统与综合实验开发平台上的超声波模块、显示模块进行正确的连接(如图2.1所示),使单片机可接收超声波模块与障碍物的距离(单位:mm)。图2.1 系统连接示意图具体内容如下:设计最小化单片机系统;装焊、调试最小化单片机系统;设计并编程,以构成超声波测距信号发生回路;设计并编程,完成超声波信号处理,以实现测距功能;设计并编程,以实现超声波测距结果显示;设计并编程,以实现超声波测距报警功能;设计并完成系统启动/复位功能。2.2 主要技术指标、要求 实验开发平台上的数码管可实时显示障碍物与超声波模块的距离信息,采用四位数码管显示,单位为mm(如显示0208即表示282mm)。 当测距距离小于200mm开始以方式一报警,当测距距离继续减小到100mm以下时以方式二报警,且以上两种方式的报警方式自行设计,但是需有明显区别(可采用蜂鸣器的蜂鸣时间长短加以区别,或在现实模块上显示不同的报警信息)。 系统应具备测距启动功能,或当系统报警后,可以复位系统,使其开始重新测距。2.3 所需设备与器材(1) 最小系统(单片机stc89c52)(2)超声波模块(3)显示模块(4)连接线3 硬件设计方案3.1设计系统原理框图及介绍图3.1 超声波测距仪原理框图 上图3.1所示,stc89c52rc单片机与显示模块相连,发送脉冲信号,通过超声波发射模块发送信号,遇到障碍物后返回,超声波接受器收到返回信号,根据计时器记录的时间,计算出距离在数码显示中显示出来具体的数字。3.2超声波测距的电路设计 如下图3.2所示,超声波测速的最小系统图表明了,显示模块的位码分别连接stc89c52rc的p0端(p2.4p2.7),段码则分别连stc89c52rc的p2端(p0.0p0.7)。超声波模块中的输入信号端口连接单片机的p3.3管脚,其输出信号端口连接单片机的p3.2管脚。报警电路连接单片机的p1.4和p1.5管脚。图3.2 单片机最小系统图3.3单片机stc89c52rc的引脚功能 下图3.3为单片机stc89c52的引脚图:图3.3 stc89c52引脚图1.电源引脚vcc 40脚 正电源脚,工作电压为5v。gnd 20脚 接地端。2.时钟电路引脚xtal1和xtal2。为了产生时钟信号,在8052内部设置了一个反向放大器,xtal1是片内振荡器反向放大器的输入端,xtal2是片内振荡器反向放大器的输出端,也是内部时钟发生器的输入端。当使用自激震荡方式时,xtal1和xtal2外接石英晶振,使内部振荡器按照石英晶振的频率振荡,就产生时钟信号。产生时钟信号的电路图如图3.4所示,本系统使用的石英晶振为11.0592mhz。 图3.4 时钟信号电路3.复位 rst 9脚。在振荡器运行时,有两个机器周期(24振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,52芯片便循环复位。复位后p0p3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器sfr全部清零。当复位脚由高电平变为低电平时,芯片为rom的0000h处开始运行程序。4.输入输出(i/o)引脚 pin39pin32为p0.0p0.7输入输出脚,称为p0口,是一个8位漏极开路型双向i/o口。内部不带上拉电阻,当外接上拉电阻,p0口能以吸收电流的方式驱动八个lsttl负载电路。通常在使用时外接上拉电阻,用来驱动多个数码管。在访问外部程序和外部电路存储器时,p0口是分时转换的地址(低8位)、数据总线,不需要外接上拉电阻。pin1pin8为p1.0p1.7输入输出脚,称为p1口,是一个带内部上拉电阻的8位双向i/o口。p1口能驱动4个lsttl负载。通常在使用时外不需要外接上拉电阻,就可以直接驱动发光二极管。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对于输出功能,在单片机工作时,我们可以通过用指令控制单片机的引脚输出高电平或者低电平。如,指令clr,清零的意思。 clr p1.0 ;让单片机从第一脚输出低电平。指令 setb,置1 的意思。 setb p1.0 ;让单片机从第一个脚输出高电平。 pin21pin28 为p2.0p2.7 输入输出脚,称为p2 口,是一个带内部上拉电阻的8 位双向i/o 口,p2 口能驱动4 个lsttl 负载。端口置1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部flash 程序存储器编程时,接收高8 位地址和控制信息。在访问外部程序和16 位外部数据存储器时,p2 口送出高8 位地址。而在访问8 位地址的外部数据存储器时其引脚上的内容在此期间不会改变。 pin10pin17 为p3.0p3.7 输入输出脚,称为p3 口,是一个带内部上拉电阻的8 位双向i/o 口,p2 口能驱动4 个lsttl 负载,这8 个引脚还用于专门的第二功能。端口置1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部flash 程序存储器编程时,接控制信息。 p13 端口在做输入使用时,因内部有上接电阻,被外部拉低的引脚会输出一定的电流。除此之外p3 端口还用于一些专门功能,如下表3.1所示。表3.1 p3口专门功能p3 引脚兼用功能p3.0串行通讯输入(rxd)p3.1串行通讯输出(txd)p3.2外部中断0( int0)p3.3外部中断1(int1)p3.4定时器0 输入(t0)p3.5定时器1 输入(t1)p3.6外部数据存储器写选通wrp3.7外部数据存储器写选通rd5.其它的控制或复用引脚(1) ale/prog 30 访问外部存储器时,ale(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ale 端仍以不变的频率输出脉冲信号(此频率是振荡器频率的1/6)。在访问外部数据存储器时,出现一个ale 脉冲。对flash 存储器编程时,这个引脚用于输入编程脉冲prog。(2) psen 29 该引是外部程序存储器的选通信号输出端。当at89c51 由外部程序存储器取指令或常数时,每个机器周期输出2 个脉冲即两次有效。但访问外部数据存储器时,将不会有脉冲输出。(3) ea/vpp 31 外部访问允许端。当该引脚访问外部程序存储器时,应输入低电平。要使at89s51 只访问外部程序存储器(地址为0000h-ffffh),这时该引脚必须保持低电平。对flash 存储器编程时,用于施加vpp 编程电压。3.4超声波模块 超声波模块包括发射模块和接收模块。从in 脚输入40kh 的方波信号,可从单片机的io 口连续发出高低电平,产生方波,方波的个数一般为10 个左右,发出后用户启动定时器,开始计时,此时,超声波发射头开始发出超声波,当发出的超声波被前方的障碍物返射回来,返射回来的超声波被接收探头接收到,此时,模块的out 引脚会产生一个从高电平到低电平的跳变,此时要停止计时,通过计时的时间,根据以下公式计算测量距离: 测量距离 = ( 时间 * 声速 ( 340m/s ) ) / 2 (3.1) 超声波模块测得的是被测物体与探头之间的垂直距离,测量时要保持探头正对被测物体。 超声波测量会受环境风速、温度等的影响。由于超声波有测量盲区的固有特性,当测量位置发生变化而接收到的数据不变时,说明进入了测量盲区。3.4.1发射模块超声波发射部分是为了让超声波发射换能器tct4016t能向外界发出40 khz左右的方波脉冲信号.编程由单片机p1.2端口输出40 khz左右的方波脉冲信号,由于单片机端口输出功率不够,40 khz方波脉冲信号分成两路,送给一个由74hc04组成的推挽式电路进行功率放大以便使发射距离足够远,满足测量距离要求,最后送给超声波发射换能器tct4016t以声波形式发射到空气中。图3.6 超声波发射电路3.4.2接收模块上述tct4016t发射的在空气中传播,遇到障碍物就会返回,超声波接收部分是为了将反射波(回波)顺利接收到超声波接收换能器tct4016r进行转换变成电信号,并对此电信号进行放大、滤波、整形等处理后,得到一个负脉冲送给单片机的p3.2(int0)引脚,以产生一个中断。图3.7 超声波接收电路3.5 显示模块 显示模块采用了8位led数码管,设计采用共阳极数码管来实现数码管的0-9的显示,接口电路是把所有显示模块的8个笔画段a-h同名端连在一起,而每一个显示器的公共及是各自独立的受io线控制。向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是哪个显示器亮,则取决于位码段。图3.8 数码显示管模块 图3.8所示为四位数码管显示模块,其中a,b,c,d,e,f,g,dp分别与单片机的p0.0-p0.7管脚相连。1,2,3,4 这四个管脚分别与单片机的p2.4p2.7相连。4 软件设计方案 软件主要分为主程序和外部中断程序。主程序完成初始化工作,超声波发射和接收控制。外部中断程序进行时间值的读取,距离的计算,当距离大于200mm时,报警灯不亮;当距离小于200mm大于100mm时进行报警,一盏灯亮;当距离小于100mm时,另一盏灯亮进行报警,同时在显示模块中显示相应的距离数据。下图5.1所示为超声波测速报警系统的程序流程图:图4.1 系统流程图5 系统的调试及心得体会5.1系统的调试过程 最小系统与超声波发射模块与显示模块的连接以及数据测量过程的报警灯闪亮情况,如下图所示:图5.1最小系统与模块的连接 图5.2 距离超过200mm的结果图5.3 距离介于100mm与200mm之间的结果图5.4 距离小于100mm的结果 如图5.1所示,无测量值时,显示模块初始值为1111;如上图5.2测量距离的值为232mm,灯不亮,因为当距离大于200mm时,报警灯不亮;如图5.3所示,测量距离为120mm,亮一盏报警灯,因为当距离小于200mm大于100mm时进行报警,一盏灯亮;如图5.4所示,测量距离的值为75mm,原来那盏报警灯熄灭,另一盏报警灯亮,因为当距离小于100mm时,另一盏灯亮进行报警。5.2调试过程中的心得体会我们组三个人在调试过程中也遇到了许多错误,比如烧程序进芯片时也遇到问题,导致我们调试时显示模块不显示,最终排除万难找出了原因,调试出了程序。参考文献1 樊昌元 丁义元 著. 高精度测距雷达研究j. 电子测量与仪器学报, 2000.102 胡萍 著. 超声波测距仪的研制m. 中国电子出版社,2003年:p56713 苏长赞 著. 红外线与超声波遥控m. 人民邮电出版社,1993年:p33414 恒清 张靖 著. 加强单片机系统抗干扰能力的方法j. 通化师范学院学报,2004 .105 华兵 著. mcs-51单片机原理应用m. 武汉华中科技大学出版社,2002年: p52686 张谦琳 著. 超声波检测原理和方法m. 中国科技大学出版社,1993年:p87987 九州 著. 放大电路实用设计手册m. 辽宁科学技术出版社,2002年:p33528 陈光东 著. 单片机微型计算机原理与接口技术(第二版)m. 华中理工大学出版社,1999年:p45579 徐淑华 程退安 姚万生 著. 单片机微型机原理及应用m. 哈尔滨工业大学出版社,1999年:p163110 继兴 刘霞 著. 单片机系统软件抗干扰措施分析m. 北京科技大学出版社,2003年:p5572附录源程序:/超声波模块显示程序#include /包括一个52标准内核的头文件#define uchar unsigned char /定义一下方便使用#define uint unsigned int#define ulong unsigned longsbit tx = p33; /产生脉冲引脚sbit rx = p32; /回波引脚sbit warning_led=p14;sbit warning_buff=p15 ;uchar code seg710=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/数码管0-9uint distance4; /测距接收缓冲区uchar ge,shi,bai,qian,temp,flag,outcomeh,outcomel,i; /自定义寄存器bit succeed_flag; /测量成功标志/延时程序void delay_20us() uchar bt ; for(bt=0;bt=2) panduan=2;/如果百位大于2算case2的情况 switch(panduan) case 0: warning_buff=0;warning_led=1;break; case 1: warning_buff=1;warning_led=0;break; case 2: warning_buff=1;warning_led=1;break; qian_data=seg7qian_data; bai_data=seg7bai_data; shi_data=seg7shi_data; ge_data =seg7ge_data; ea=0; bai = bai_data; shi = shi_data; ge = ge_data ; qian=qian_data; ea=1; /*void pai_xu()/排序 uint t; if (distance0distance1) t=distance0;distance0=distance1;distance1=t; if(distance0distance2) t=distance2;distance2=distance0;distance0=t; if(distance1distance2) t=distance1;distance1=distance2;distance2=t; /*void main(void) / 主程序 uint distance_data,a,b; uchar cont_1; i=0; flag=0; tx=0; /首先拉低脉冲输入引脚 tmod=0x11; /定时器0,定时器1,16位工作方式 ,timer0用显示 tr0=1; /启动定时器0 it0=0; /由负沿触发外部中断 et0=1; /打开定时器0中断 ex0=0; /关闭外部中断

温馨提示

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

评论

0/150

提交评论