基于单片机的超声波测距系统的设计_第1页
基于单片机的超声波测距系统的设计_第2页
基于单片机的超声波测距系统的设计_第3页
基于单片机的超声波测距系统的设计_第4页
基于单片机的超声波测距系统的设计_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

毕业论文(设计)中文题目基于单片机的超声波测距系统的设计英文题目DESIGNOFULTRASONICRANGINGSYSTEMBASEDONSINGLECHIPMICROCOMPUTER提交日期2013年5月18日摘要本课题是基于单片机的超声波测距系统的设计,利用超声波在空气中以速度V传播,达到被测物体时被反射回来,由超声波接收器接收,计算其自发送到接收的往返时间,从而得到实测距离。该系统主要由超声波模块、单片机、LCD显示模块和温度补偿构成。通过单片机的综合处理、电路和程序实现各功能模块的功能。本设计充分发挥了单片机的性能,易于做到实时控制,具有一定的使用和参考价值。关键词单片机超声波测距DESIGNOFULTRASONICRANGINGSYSTEMBASEDONSINGLECHIPMICROCOMPUTERABSTRACTTHISTOPICISTHEDESIGNOFULTRASONICRANGINGSYSTEMBASEDONSINGLECHIPMICROCOMPUTER,BYULTRASONICWAVEPROPAGATIONATASPEEDOFVINAIR,ACHIEVETHEOBJECTISREFLECTEDBACK,RECEIVEDBYTHEULTRASONICRECEIVER,CALCULATETHEFROMSENDERTORECEIVERROUNDTRIPTIME,THUSOBTAINSTHEMEASUREDDISTANCETHESYSTEMISMAINLYCOMPOSEDOFULTRASONICMODULE,MCU,LCDDISPLAYMODULEANDTEMPERATURECOMPENSATIONTHEIMPLEMENTATIONOFEVERYMODULEFUNCTIONTHROUGHCOMPREHENSIVETREATMENT,MCUCIRCUITANDPROGRAMTHISDESIGNMAKESFULLUSEOFTHEMCUPERFORMANCE,EASYTOACHIEVEREALTIMECONTROL,WITHSOMEREFERENCEVALUEANDKEYWORDSSINGLECHIPMICROCOMPUTERULTRASONICRANGING目录1绪言111选题背景和重要意义112课题的提出213课题设计的任务和要求2131任务2132要求22超声波测距系统的原理和设计方案221超声波发生器及测距原理2211超声波发生器2212压电式超声波发生器原理3213超声波测距原理322方案的设计323超声波测距误差的分析43系统硬件设计531系统控制及外围模块简介5311STC89C516RD简介5312复位电路工作原理7313DS18B20温度传感器7314时钟电路8315LCD模块832超声波模块电路10321模块特点10322超声波模块基本工作原理1033LCD1602显示电路114系统软件设计与调试1141系统主程序结构1242测温子程序12421初始化时序13422写时序13423读时序1443距离计算子程序1544LCD显示程序1545硬件调试20451电路调试操作流程20总结21致谢21参考文献22附录1系统原理图23附录2源程序241绪言由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,在现场机器人定位系统、车辆自动导航、车辆安全行驶辅助系统、城市交通管理和高速公路管理监测系统,以及河道、油井和仓库及料位的探测中都有应用。11选题背景和重要意义近年来,随着电子测量技术的发展,运用超声波作出精确测量已成可能。随着经济发展,电子测量技术应用越来越广泛,而超声波测量精确高,成本低,性能稳定备受青睐。利用超声波测量已知标准位置与目标物体表面之间距离的方法叫做超声波测距法。随着机器人技术在其诞生后短短几十年中的迅猛发展,它的应用范围也逐步由工业生产走向人们的生活。如此广泛的应用使得提高人们对机器人的了解显得尤为重要。机人通过其感知系统察觉前方障碍物距离和周围环境来实现绕障、自动寻线、测距等功能。超声波测距相对其他测距技术而言成本低廉,测量精度较高,不受环境的限制,应用方便,将它与红外、灰度传感器等结合共同实现机器人寻线和绕障功能。超声波由于指向性强、能量消耗缓慢且在介质中传播的距离较远,因而经常用于距离的测量。它主要应用于倒车雷达、测距仪、物位测量仪、移动机器人的研制、建筑施工工地以及一些工业现场等,例如距离、液位、井深、管道长度、流速等场合。利用超声波检测往往比较迅速、方便,且计算简单、易于做到实时控制,在测量精度方面也能达到工业实用的要求,因此得到了广泛的应用。本课题的研究是非常有实用和有商业价值的。超声波测距是一种极有潜力的方法,近距范围内超声测距有其不受光线影响、结构简单、成本低等特点。超声测量另一个突出优点是环境介质可以为空气、液体或固体,适用范围广泛。更重要的是超声波检测降低了劳动强度,避免工人在恶劣工作环境下高、低温,高、低压,强辐射,有毒气、液体环境等受到伤害,还大大提高了测量精度,可靠性高另外,超声波测距还可以应用到其他的功能系统中,例如在机器人避障系统、移动机器人避障的超声测距系统、智能机器人管家和简易智能电动车自动避障系统、车载系统、自动泊车系统、自动刹车系统和倒车雷达系统中,超声波测距也有其重要的应用。12课题的提出测距的原理和方法有很多,根据其信息载体的不同可归纳为光学方法、无线电方法和超声波方法。前两者在某些地方有局限性,相比之下,超声波方法具有突出的优点,首先,超声波对色彩、光照度不敏感,可用于测量透明及漫射性差的物体(如玻璃、抛光体);其次,超声波对外界光线和电磁场不敏感,可用于黑暗、有灰尘或烟雾、电磁干扰强、易于小型化和集成化。总而言之超声波有很强的环境适应性,因此超声波作为非接触测量手段,已越来越引起人们的重视。13课题设计的任务和要求131任务1了解超声波测距原理;2根据超声波测距原理,基于单片机设计超声波测距电路;3设计一超声波测距系统。132要求1对设计的电路进行分析,实现超声波的发送与接收,从而实现利用超声波方法测量物体间的距离;2对超声波测距系统进行温度补偿;3以数字的形式显示测量的实际距离。2超声波测距系统的原理和设计方案21超声波发生器及测距原理超声波发生器的可分几大类,本节介绍压电式发生器的原理和超声波测距的原理。211超声波发生器为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器。212压电式超声波发生器原理压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器内部结构如图21所示,它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。图21超声波传感器结构213超声波测距原理在超声探测电路中,在发射端得到输出脉冲为一系列方波,这一系列方波的宽度为发射超声与接收超声的时间间隔,显然被测物距离越大,脉冲宽度越大,输出脉冲的个数与被测距离成正比。超声测距大致有以下两种方法1取输出脉冲的平均值电压,该电压电压的幅值基本固定与距离成正比,测量电压即可测得距离。2测量输出脉冲的宽度,即发射超声波与接收超声波的时间间隔T。因此,被测距离为SVT/2。本次设计采用的是第二种方法。22方案的设计本设计是基于单片机的超声波测距系统。用单片机控制超声波的发射、接收电路以及进行数据处理,再用LCD液晶显示屏进行数据的显示。因为声波的速度会随着温度的变化而改变,为了更精确的得到测量距离,温度的影响是不容忽略的,本系统设计了一个温度补偿网络,即通过温度传感器,本设计选用的是DS18B20温度传感器,把当前的温度信息传给单片机,再通过计算,从而得到当前的超声波速度,进而得出实测距离。本系统采用的是宏晶科技推出的新一代高速、低功耗、超强抗干扰的STC89C516RD单片机做核心控制芯片,指令代码完全兼容传统8051单片机;超声波模块选用的是HCSR04,该超声波模块包括了超声波发射和接收模块电路,很好地实现了超声波测距功能的同时也降低了设计的工作量。本系统由单片机控制HCSR04超声波发生器向某一方向发射超声波,同时开始计时,当超声波遇到障碍物后立即返回,当超声波接收器接收到反射波后停止计时,同时DS18B20把采集到的温度反馈给单片机,经过程序的计算可求得被测物体的距离。计算公式如下SVT/221其中S表示测量点到障碍物的距离,V表示超声波在空气中的传播速度,T表示自超生发射到接收的时间。23超声波测距误差的分析根据超声波测距公式SVT/2,可知测距的误差是由测量距离的时间误差和超声波的传播速度误差引起的。231时间误差当要求测距误差小于1MM时,假设已知超声波速度C344M/S20室温,忽略声速的传播误差。测距误差ST0IDQ0DQDATDELAYUS2X25DQ1DAT1DELAYUS2X25423读时序单片机主动产生一个下降沿的启动信号,并维持低电平大于1S后释放总线,15S后DS18B20占主动权,DS18B20会将数据按位放在总线上(低位在先,当读取两个字节的温度值时,低字节在先),这时单片机可读取信号,读取一位的时间应在60S内完成。当需要读取下一位时再产生下降沿启动信号。程序如下UNSIGNEDCHARREADONECHARVOIDUNSIGNEDCHARI0UNSIGNEDCHARDAT0FORI8I0IDQ0/给脉冲信号DAT1DQ1/给脉冲信号IFDQDAT|0X80DELAYUS2X25RETURNDAT43距离计算子程序当前温度和超声波往返时间均测量出来后,用C语言根据公式计算距离来编程是比较简单的算法。根据距离计算公式SVT/2设计算法。为了比较温度补偿前和温度补偿后测出的距离的差别,分别在LCD上显示出温度补偿前和温度补偿后测量的距离。其算法如下VOIDCONUTVOIDTIMETH0256TL0TH00TL00S1TIME17/10/算出来是CM未补偿SSPEED0607TEMPERATURETIME/1000/2/温度补偿44LCD显示程序程序开始初始化后,检查忙信号如果有则写入命令函数,如果没有则重新检查忙信号,至到有信号为止,写完命令函数则写入数据函数,通过一定的延时程序,再返回到程序初始代。其流程图和程序如下图43LCD显示流程图LCD1602显示程序INCLUDE“1602H“开始初始化检查忙信号写命令函数写数据函数延时NYINCLUDE“DELAYH“DEFINERS_CLRRS0DEFINERS_SETRS1DEFINERW_CLRRW0DEFINERW_SETRW1DEFINEEN_CLREN0DEFINEEN_SETEN1DEFINEDATAPORTP0/判忙函数/BITLCD_CHECK_BUSYVOIDDATAPORT0XFFRS_CLRRW_SETEN_CLR_NOP_EN_SETRETURNBITDATAPORT/写入命令函数/VOIDLCD_WRITE_COMUNSIGNEDCHARCOMWHILELCD_CHECK_BUSY/忙则等待RS_CLRRW_CLREN_SETDATAPORTCOM_NOP_EN_CLR/写入数据函数/VOIDLCD_WRITE_DATAUNSIGNEDCHARDATAWHILELCD_CHECK_BUSY/忙则等待RS_SETRW_CLREN_SETDATAPORTDATA_NOP_EN_CLR/清屏函数/VOIDLCD_CLEARVOIDLCD_WRITE_COM0X01DELAYMS5/写入字符串函数/VOIDLCD_WRITE_STRINGUNSIGNEDCHARX,UNSIGNEDCHARY,UNSIGNEDCHARSIFY0LCD_WRITE_COM0X80X/表示第一行ELSELCD_WRITE_COM0XC0X/表示第二行WHILESLCD_WRITE_DATASS/写入字符函数/VOIDLCD_WRITE_CHARUNSIGNEDCHARX,UNSIGNEDCHARY,UNSIGNEDCHARDATAIFY0LCD_WRITE_COM0X80XELSELCD_WRITE_COM0XC0XLCD_WRITE_DATADATA/初始化函数/VOIDLCD_INITVOIDLCD_WRITE_COM0X38/显示模式设置/DELAYMS5LCD_WRITE_COM0X38DELAYMS5LCD_WRITE_COM0X38DELAYMS5LCD_WRITE_COM0X38LCD_WRITE_COM0X08/显示关闭/LCD_WRITE_COM0X01/显示清屏/LCD_WRITE_COM0X06/显示光标移动设置/DELAYMS5LCD_WRITE_COM0X0C/显示开及光标设置/45硬件调试451电路调试操作流程1)短路、开路检测电路焊接完成后,为了确保焊接的正确性,必需进行短路、短路的检测。把万用表打到二极管档,用红、黑笔接到电路的正负极,检测电路是否存在短路现象。另外,把万用表的红、黑笔分别接到有相连接的回路中,检测回路中是否存在断路、虚焊现象。2)确认电路连接的正确性把焊接好的电路板和电路原理图详细对照,仔细观察各个连接点是否和电路原理图一致。此外,对于电路中元器件的正负极性的连接是否正确。下图为超声波测距系统设计完成后运行的实物图图44超声波测距系统实物图总结超声波测距的原理是利用超声波的发射和接受,根据超声波传播的时间来计算出传播距离。本设计的超声波测距系统主要包括了超声波的发射和接收电路、单片机的最小系统和LCD显示电路。利用单片机的运算和控制功能,利用超声波的特性设计出的一种简单的测距系统。经实际测试证明,该系统工作稳定,能满足一般近距离测距的要求,且成本较低、有良好的性价比。相信随着超声波技术的不断进步,超声波测距将在更多方面发挥作用。致谢从毕业设计的选题到毕业设计的完成这几个月的时间里,老师和同学们都给了我很大的帮助和支持。首先要感谢的是我的指导老师周玲老师,周玲老师是一个很负责的老师,在毕业设计前期就制定了详细的工作时间表,严格要求我们按要求完成相应的任务。感谢她这几个月对我毕业设计的悉心指导和各方面的帮助,在毕业设计的过程中给了我很多宝贵的建议和意见,使我学到了很多知识,在此我向周玲老师致以最真诚的感谢和敬意。最后我要深深地感谢我的家人,正是他们含辛茹苦地把我养育成人,在生活和学习上给予我无尽的爱、理解和支持,才使我时刻充满信心和勇气,克服成长路上的种种困难,顺利的完成大学学习。参考文献1李伯成单片机及嵌入式系统M第二版清华大学出版社,20082郑学坚周斌微型计算机原理及应用M北京清华大学出版社,20103吴建平传感器原理及应用M北京机械工业出版社,20114阎石数字电子技术M西安西安电子大学科技出版社,20085谭浩强C程序设计M第三版北京清华大学出版社,20056邱关源电路M第五版,高等教育出版社,20097佚名带您走进单片机世界M/CD普中科技,20018严雨AVR单片机C语言应用100例M北京电子工业出版社,201280909李喜孟超声波检频谱分析技术及其应用M机械工业出版社,2009810胜全D18B20数字温度计在微机温度采集系统中的序编制M南京南京大学出版社1998311MEYERD,DENZLERJANDNIEMANNHMODELBASEDEXTRACTIONOFARTICULATEDOBJECTSINIMAGESEQUENCESFORGAITANALYSISCINPROCIEEEINTERNATIONALCONFERENCEONIMAGEPROCESSING,SANTABARBARA,CALIFORNIA2007,788112LUCIODIJASIOPROGRAMMING30BITMICRIOCONTROOLERSINCEXPLORINGTHEPICS32M北京人民邮电出版社,2009100120附录1系统原理图附录2源程序1脉宽测量CINCLUDEINCLUDEINCLUDEINCLUDE“18B20H“INCLUDE“1602H“INCLUDE“DELAYH“INCLUDE“HARDWAREH“DEFINESPEED3314UNSIGNEDCHARCODEASCII160,1,2,3,4,5,6,7,8,9,M,CFLOATTEMPERATUREUNSIGNEDCHARDISPLAY_BUFF16INTTEMPSTATICUNSIGNEDCHARDISNUM0/显示用指针UNSIGNEDINTTIME0UNSIGNEDLONGS10UNSIGNEDLONGS0BITFLAG0UNSIGNEDCHARDISBUFF40,0,0,0,/VOIDCONUTVOIDTIMETH0256TL0TH00TL00S1TIME17/10/算出来是CM未补偿SSPEED0607TEMPERATURETIME/1000/2/温度补偿IFS7000|FLAG1/超出测量范围显示“”FLAG0LCD_WRITE_CHAR0,1,ASCII11LCD_WRITE_CHAR1,1,ASCII10/显示点LCD_WRITE_CHAR2,1,ASCII11LCD_WRITE_CHAR3,1,ASCII11LCD_WRITE_CHAR4,1,ASCII12/显示MELSEDISBUFF0S10000/1000DISBUFF1S1000/100DISBUFF2S1000100/10DISBUFF3S10001010/SLCD_WRITE_CHAR0,1,ASCIIDISBUFF0LCD_WRITE_CHAR1,1,ASCIIDISBUFF1LCD_WRITE_CHAR2,1,ASCIIDISBUFF2LCD_WRITE_CHAR3,1,ASCII10/显示点LCD_WRITE_CHAR4,1,ASCIIDISBUFF3LCD_WRITE_CHAR5,1,ASCII13/显示CMLCD_WRITE_CHAR6,1,ASCII12/S1DISBUFF0S110000/1000DISBUFF1S11000/100DISBUFF2S11000100/10DISBUFF3S110001010LCD_WRITE_CHAR0,0,ASCIIDISBUFF0LCD_WRITE_CHAR1,0,ASCIIDISBUFF1LCD_WRITE_CHAR2,0,ASCIIDISBUFF2LCD_WRITE_CHAR3,0,ASCII10/显示点LCD_WRITE_CHAR4,0,ASCIIDISBUFF3LCD_WRITE_CHAR5,0,ASCII13/显示CMLCD_WRITE_CHAR6,0,ASCII12/SPRINTFDISPLAY_BUFF,“TIME5D“,TIME/LCD_WRITE_STRING0,0,DISPLAY_BUFF/VOIDZD0INTERRUPT1/T0中断用来计数器溢出,超过测距范围FLAG1/中断溢出标志/VOIDSTARTMODULE/启动模块TX1/启动一次模块_NOP_NOP_NOP_NOP_NOP_NOP_NOP_NOP_NOP_NOP_NOP_NOP_NOP_NOP_NOP_NOP_NOP_NOP_NOP_NOP_NOP_TX0VOIDINIT_TIMER0TMOD0X01/设T0为方式1,GATE1;TH00TL00ET01/允许T0中断EA1/开启总中断VOIDINIT_SYSINIT_TIMER0LCD_INITINIT_DS18B20LCD_CLEARLCD_WRITE_STRING0,0,“HUWEICHENG“LCD_WRITE_STRING0,1,“090703109“/DELAYNS3LCD_CLEARTEMPERATUREREADTEMPERATUREVOIDMAINVOIDINIT_SYS/WDT_CONTR0X36WHILE1TEMPREADTEMPERATURETEMPERATUREFLOATTEMP00625SPRINTFDISPLAY_BUFF,“T41FC“,TEMPERATURELCD_WRITE_STRING9,1,DISPLAY_BUFFLCD_WRITE_STRING9,0,“NON“STARTMODULEWHILERXTR01WHILERXTR00CONUTDELAYMS80WDT_CONTR0X362LCD1602程序INCLUDE“1602H“INCLUDE“DELAYH“INCLUDE“HARDWAREH“DEFINERS_CLRRS0DEFINERS_SETRS1DEFINERW_CLRRW0DEFINERW_SETRW1DEFINEEN_CLREN0DEFINEEN_SETEN1DEFINEDATAPORTP0/判忙函数/BITLCD_CHECK_BUSYVOIDDATAPORT0XFFRS_CLRRW_SETEN_CLR_NOP_EN_SETRETURNBITDATAPORT/写入命令函数/VOIDLCD_WRITE_COMUNSIGNEDCHARCOMWHILELCD_CHECK_BUSY/忙则等待RS_CLRRW_CLREN_SETDATAPORTCOM_NOP_EN_CLR/写入数据函数/VOIDLCD_WRITE_DATAUNSIGNEDCHARDATAWHILELCD_CHECK_BUSY/忙则等待RS_SETRW_CLREN_SETDATAPORTDATA_NOP_EN_CLR/清屏函数/VOIDLCD_CLEARVOIDLCD_WRITE_COM0X01DELAYMS5/写入字符串函数/VOIDLCD_WRITE_STRINGUNSIGNEDCHARX,UNSIGNEDCHARY,UNSIGNEDCHARSIFY0LCD_WRITE_COM0X80X/表示第一行ELSELCD_WRITE_COM0XC0X/表示第二行WHILESLCD_WRITE_DATASS/写入字符函数/VOIDLCD_WRITE_CHARUNSIGNEDCHARX,UNSIGNEDCHARY,UNSIGNEDCHARDATAIFY0LCD_WRITE_COM0X80XELSELCD_WRITE_COM0XC0XLCD_WRITE_DATADATA/初始化函数/VOIDLCD_INITVOIDLCD_WRITE_COM0X38/显示模式设置/DELAYMS5LCD_WRITE_COM0X38DELAYMS5LCD_WRITE_COM0X38DELAYMS5LCD_WRITE_COM0X38LCD_WRITE_COM0X08/显示关闭/LCD_WRITE_COM0X01/显示清屏/LCD_WRITE_COM0X06/显示光标移动设置/DELAYMS5LCD_WRITE_COM0X0C/显示开及光标设置/设定二个自定义字符,LCD1602中自定义字符的地址为0X000X07,即可定义8个字符这里我们设定把一个自定义字符放在0X00位置(000),另一个放在0X01位子(001)/VOIDLCD_USER_CHRVOID/第一个自定义字符LCD_WRITE_COM0X40/“01000000“第1行地址D7D6为地址设定命令形式D5D4D3为字符存放位置07,D2D1D0为字符行地址07)LCD_WRITE_DATA0X00/“XXX11111“第1行数据(D7D6D5为XXX,表示为任意数一般用000),D4D3D2D1D0为字符行数据1点亮,0熄灭)LCD_WRITE_COM0X41/“01000001“第2行地址LCD_WRITE_DATA0X04/“XXX10001“第2行数据LCD_WRITE_COM0X42/“01000010“第3行地址LCD_WRITE_DATA0X0E/“XXX10101“第3行数据LCD_WRITE_COM0X43/“01000011“第4行地址LCD_WRITE_DATA0X0E/“XXX10001“第4行数据LCD_WRITE_COM0X44/“01000100“第5行地址LCD_WRITE_DATA0X0E/“XXX11111“第5行数据LCD_WRITE_COM0X45/“01000101“第6行地址LCD_

温馨提示

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

评论

0/150

提交评论