ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:178.09KB ,
资源ID:6041723      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6041723.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的超声波测距仪课程设计毕业设计完整版.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的超声波测距仪课程设计毕业设计完整版.docx

1、基于单片机的超声波测距仪课程设计毕业设计完整版 电子与信息工程学院综合实验课程报告课题名称 超声波测距仪 专 业 电子信息工程 班 级 学生姓名 王利伟、魏丽丽、齐斯超 学 号 王利伟 魏丽丽 齐斯超 指导教师 丁刚、严辉 摘要随着科学技术的快速发展,超声波将在测距仪中的应用越来越广。但就目前技术水平来说,人们可以具体利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。展望未来,超声波测距仪作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求,如声纳的发展趋势基本为:研制具有更高定位精度的被动

2、测距声纳,以满足水中武器实施全隐蔽攻击的需要;继续发展采用低频线谱检测的潜艇拖曳线列阵声纳,实现超远程的被动探测和识别;研制更适合于浅海工作的潜艇声纳,特别是解决浅海水中目标识别问题;大力降低潜艇自噪声,改善潜艇声纳的工作环境。无庸置疑,未来的超声波测距仪将与自动化智能化接轨,与其他的测距仪集成和融合,形成多测距仪。随着测距仪的技术进步,测距仪将从具有单纯判断功能发展到具有学习功能,最终发展到具有创造力。在新的世纪里,面貌一新的测距仪将发挥更大的作用。本设计采用以AT89C51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法。整个电路采用模块化设计,由主程序、中

3、断程序、发射子程序、接收子程序、显示子程序等模块组成。各探头的信号经单片机综合分析处理,实现超声波测距仪的各种功能。在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块。1.总体方案设计介绍本文所研究的超声波测距仪利用超声波指向性强、能量消耗缓慢、传播距离较远等优点,即用超声波发射器向某一方向发送超声波,同时在发射的时候开始计时,在超声波遇到障碍物的时候反射回来,超声波接收器在接收到反射回来的超声波时,停止计时。设超声波在空气中的传播速度为V,在空气中的传播时间为T,汽车与障碍物的距离为S,S=VT/2,这样可以测出汽车与障碍物之间的距离,然后在LED显示屏上显示出来。其工作机

4、理是依据压电材料的正逆压电效应,利用逆压电效应产生超声波,即逆压电效应是在压电材料上加上某种特定频率的交变正弦信号,材料就会产生随所加电压的变化规律而变化的机械形变,这种机械形变推动周围介质振动,产生疏密相间的机械波,如果其振动频率在超声范围内,这种机械波就是超声波。本文所设计的超声波测距仪主要由AT89C52单片机、超声波发射电路、超声波接收放大电路、显示电路.首先由单片机驱动产生12MHZ晶振,由超声波发射探头发送出去,在遇到障碍物反射回来时由超声波接收探头检测到信号,然后经过滤波、放大、整形之后送入单片机进行计算,把计算结果输出到LED液晶显示屏上。超声波发生器可以分为两大类:一类是用电

5、气方式产生超声波;另一类是用机械方式。产生超声波。电气方式包括压电型、电动型等;机械方式有加尔统笛、液 和气流旋笛等。它们所产生的超声波的频率,功率和声波特性各不相同,因而用途也各不相同。目前在近距离测量方面较为常用的是压电式超声波换能器。根据设计要求并综合各方面因素,本例决定采用AT89C51单片机作为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成。超声波测距器系统设计如图3.1所示。 图3.1 超声波测距器系统设计框图2.硬件电路设计硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分。单片机采用AT89C51或其兼容系列。采用

6、12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用P1.0端口输出超声波换能器所需的40kHz的方波信号,利用外中断0口监测超声波接收电路输出的返回信号。显示电路采用简单实用的4位共阳LED数码管,段码用74LS244驱动,位码用PNP三极管9012驱动。主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分组成。采用AT89S51来实现对超声波模组进行控制,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。2.1超声波发射和接收模组

7、(V2.0)本文采用的超声波测距模组集发射和接受为一体,内部超声波传感器谐振频率40KHz,模组传感器工作电压4.5V9V,模组接口电压4.5V5.5V。提供三种测距模式,选择跳线可以选择短距、中距和可调距。本实验采用短距(20100cm)精度1cm。模组结构示意图如下:应用时只需要用J5的第1个口与单片机Vcc连接,最后一个口与单片机GND连接,第4个接口与 单片机的INT0口相连接,J4的第3个接口与单片机1.0口连接,同时将J1跳线设置为短距模式,J2跳线设置为非外部电源供电方式(此时开发板通过10PIN排线为模组供电,板上J5选择5V,要把J2跳接到5v的一端)。这就完成了模组硬件的连

8、接。超声波谐振频率调理电路图如下:由单片机产生40KHz的方波由P1.0口送出,连接模组接口J4到模组的CD4049,而后面的CD4049则对40KHz频率信号进行调理,以使超声波传感器产生谐振。上图为超声波回波接收处理电路,超声波接受处理部分电路前级采用NE5532构成10000倍放大器,对接收信号进行放大;后级采用LM311比较器对接收信号进行调整,比较电压为LM311的3管脚的输入。接收回路中测得的超声波信号共有两个波束,第一个为余波信号,即超声波接收头在发射头发射信号(一组40KHz的脉冲)后,马上就接收到了超声波信号,并持续一段时间。另一个波束为有效信号,即经过被测物表面反射的回波信

9、号。超声波测距时,需要测的是开始发射到接收到信号的时间差,要尽量避免检测到余波信号,这也是检测中存在最小测量盲区的主要原因。单片机控制模组每次发生若干完整的40KHz的脉冲信号,发射信号前打开计数器T0,进行计时,等计时到达一定值后再开启检测回波信号,以避免余波信号的干扰。采用外部中断INT0对回波信号进行检测,接收到回波信号后马上读取计数器中的数值,此数据即为需要测量的时间差数据。2.2数据显示模块显示电路采用简单实用的4位共阳LED数码管,断码用74LS244驱动,位码用PNP三极管9012驱动。由P0口输出显示数据,P2.0P2.3用来位选。显示电路如下图:3.系统程序的设计 超声波测距

10、器的软件设计主要由主程序,超声波发生子程序,超声波接收中断程序及显示子程序组成,由于C语言程序有利于实现较复杂的算法,汇编语言程序则具有较高的效率并且容易精确计算程序行动的时间,而超声波测距器的程序既有较复杂的计算(计算距离时),又要求精确计算程序运行时间(超声波测距时),所以控制程序可采用C语言和汇编语言混合编程。下面对超声波测距器的算法,主程序,超声波发生子程序和超声波接收中断程序逐一介绍。3.1 超声波测距器的算法设计 图3.6示意了超声波测距的原理,既超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就会被超声波接收器R接收到。这样,只要计算出从发出超声波

11、信号到接收到返回信号所用的时间,就可算出超声波发生器于反射物体的距离。该距离的计算公式如下: d=s/2(vt)/2其中:d为被测物于测距器的距离;s为声波的来回路程;v为声速;t为声波来回所用的时间。 超声波也是一种声波,其声速v于温度有关。表3.1列出了几种不同温度下的超声波声速。在使用时,如果温度变化不大,则可认为声速基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。声速确定后,只要测得超声波往返的时间,即可求得距离。表3.1不同温度下超声波声速表3.2 主程序 主程序首先要对系统环境初始化,设置定时器T0工作模式为16位定时/计数器模式,置位总中断允许位EA并对显示端口

12、P0和P2清0;然后调用超声波发生子程序送出一个超声波脉冲。为了避免超声波从发射器直接传到接收器引起的直射波,需要延时约0.1ms(这也就是超声波测距器会有一个最小可测距离的原因)后才可打开外中断0接收返回的超声波信号。由于采用的是12MHz的晶振,计数器每计一个数就是1us,所以当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按式(32)计算,即可得被测物体与测距器之间的距离。设计时取20时的声速为344m/s,则有d=(vt)/2=(172T/10000)cm (32)其中:T为计数器T0的计数值。测出距离后,结果将以十进制BCD码方式送往LED显示约为0.5

13、s,然后再发超声波脉冲重复测量过程。图3.7所示为主程序流程图。 主程序START: MOV SP, #4FH MOV R0, #40H ;40H43H为显示数据存放单元(40H为最高位) MOV R7, #0BHCLEARDISP: MOV R0, #00H INC R0 DJNZ R7, CLEARDISP MOV 20H, #00H MOV TMOD, #21H ;T1为8位自动重装模式,T0为16位定时器 MOV TH0, #00H ;65ms初值 MOV TL0, #00H MOV TH1, #0F2H ;40kHz初值 MOV TL1, #0F2H MOV P0, #0FFH MO

14、V P1, #0FFH MOV P2, #0FFH MOV P3, #0FFH MOV R4, #04H ;超声波脉冲个数控制(为赋值的一半) SETB PX0 SETB ET0 SETB EA SETB TR0 ;开启测试定时器START1: LCALL DISPLAY JNB 00H, START1 ;收到反射信号时标志位为1 CLR EA LCALL WORK SETB EA CLR 00H SETB TR0 ;重新开启测试定时器 MOV R2, #64H ;测量间隙控制(约4ms100=400ms)LOOP: LCALL DISPLAY DJNZ R2,LOOPSJMP START13

15、.3 超声波发生子程序和超声波接收中断程序超声波发生子程序的作用是通过P1.0端口发送两个左右的超声波脉冲信号(频率40KHz的方波),脉冲宽度为12us左右,同时把计数器T0打开进行时。超声波发生子程序较简单,但要求程序运行时间准确,所以采用汇编语言编程。ORG 0000H LJMP START ORG 0003H LJMP PINT0 ORG 000BH LJMP INTT0 ORG 0013H RETI ORG 001BH LJMP INTT1 ORG 0023H RETI ORG 002BH RETI超声波测距器主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(即INT0

16、引脚出现低电平),立即进入超声波接收中断程序。进入该中断后,就立即关闭计时器T0,停止计时,并将测距成功标志字赋值1. 中断程序;T0中断,65ms中断一次INTT0: CLR EA CLR TR0 MOV TH0,#00H MOV TL0,#00H SETB ET1 SETB EA SETB TR0 ;启动计数器T0,用以计算超声来回时间 SETB TR1 ;开启发超声波用定时器T1OUT: RETI;T1中断,发超声波用INTT1: CPL VOUT DJNZ R4,RETOUT CLR TR1 ;超声波发完毕,关T1 CLR ET1 MOV R4,#04H SETB EX0 ;开启接收回

17、波中断RETIOUT: RETI;外中断0,收到回波时进入PINT0: CLR TR0 ;关计数器 CLR TR1 CLR ET1 CLR EA CLR EX0 MOV 44H,TL0 ;将计数值移入处理单元 MOV 45H,TH0 SETB 00H ;接收成功标志 RETI如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2,以表示本次测距不成功。4.调试及性能分析 4.1 调试 超声波测距器的制作和调试都较为简单,其中超声波发射和接收采用15的超声波换能器TCT4010F1(T发射)和TCT4010S1(R接收),中心频率为40KHz,安

18、装时应保持两换能器中心轴线平行并相距48cm,其余元件无特殊要求。若能将超声接收电路用金属壳屏蔽起来,则可提高抗干扰性能。根据测量范围要求不同,可适当地调整与接收换能器并接的滤波电容C4的大小,以获得合适的接收灵敏度和抗干扰能力。 硬件电路制作完成并调整好后,便可将程序编译好下载到单片机试运行。根据实际情况,可以修改超声波子程序每次发送的脉冲个数和两次测量的间隔时间,以适应不同距离的测量需要。 4.2 性能指示 根据文中电路参数和程序,测距器可测量的范围为0.075.50m。实验中,对测量范围为0.072.50m的平面物体做了多次测试,测距器的最大误差不超过1cm,重复性很好。5.设计总结在本

19、次设计中,我们广泛借鉴了各种设计的优点,充分考虑了整个设计中的各个环节。包括产生40KHz的方波,在接收电路中,对所接收方波进行滤波、放大、整形等步骤。但由于条件和技术所限,对于很多以上所分析的在发射和接收过程中所产生的误差没有得到有效的校正。比如温度误差、硬件电路误差等。在我们为期一个学期的设计中,我们用到了以前学到的很多知识,比如电工、单片机、和汇编语言等。这使我们意识到,任何一件产品的产生,都不是单一知识所能实现的。而且在电路的设计和程序的编制过程中,出现了很多意想不到的错误,让我们措手不及,有些甚至是一些非常低级的错误,但是这些错误也同样让我们获益非浅,它使我们意识到,研究是一个非常严

20、肃的过程,来不得半点马虎。必须有一个严谨的态度,加上100的努力才有可能获得成功的喜悦。总之,在本课题的设计过程中尽管走了很多的弯路,但是还是学到了不少知识,从中受益匪浅。了解了超声波传感器的原理,学会了各种放大电路的分析、设计,也掌握了单片机的开发过程中所用到的开发方法和工具。动手能力与自学能力得到了锻炼与提高,对待事物的态度也发生了变化。理论总是离不开实践的,设计制作过程中,盲目地追寻理论知识根本不足以解决任何问题,一味的死研究课本是不会真正掌握单片机的。只有真正动手去做才能发现问题,解决问题,提高能力。6.附件6.1控制源程序 单片机汇编源程序 超声波测距器 采用AT89C51 12MH

21、z晶振 采用共阳LED显示器测试范围为0.074m,堆栈在4FH以上,20H用于标志显示缓冲单元在40H43H,内存44H46H用于计算距离VOUT EQU P1.0 ;脉冲输出端口 中断入口程序 ORG 0000H LJMP START ORG 0003H LJMP PINT0 ORG 000BH LJMP INTT0 ORG 0013H RETI ORG 001BH LJMP INTT1 ORG 0023H RETI ORG 002BH RETI 主程序START: MOV SP, #4FH MOV R0, #40H ;40H43H为显示数据存放单元(40H为最高位) MOV R7, #0

22、BHCLEARDISP: MOV R0, #00H INC R0 DJNZ R7, CLEARDISP MOV 20H, #00H MOV TMOD, #21H ;T1为8位自动重装模式,T0为16位定时器 MOV TH0, #00H ;65ms初值 MOV TL0, #00H MOV TH1, #0F2H ;40kHz初值 MOV TL1, #0F2H MOV P0, #0FFH MOV P1, #0FFH MOV P2, #0FFH MOV P3, #0FFH MOV R4, #04H ;超声波脉冲个数控制(为赋值的一半) SETB PX0 SETB ET0 SETB EA SETB TR

23、0 ;开启测试定时器START1: LCALL DISPLAY JNB 00H, START1 ;收到反射信号时标志位为1 CLR EA LCALL WORK SETB EA CLR 00H SETB TR0 ;重新开启测试定时器 MOV R2, #64H ;测量间隙控制(约4ms100=400ms)LOOP: LCALL DISPLAY DJNZ R2,LOOP SJMP START1中断程序;T0中断,65ms中断一次INTT0: CLR EA CLR TR0 MOV TH0,#00H MOV TL0,#00H SETB ET1 SETB EA SETB TR0 ;启动计数器T0,用以计算

24、超声来回时间 SETB TR1 ;开启发超声波用定时器T1OUT: RETI;T1中断,发超声波用INTT1: CPL VOUT DJNZ R4,RETOUT CLR TR1 ;超声波发完毕,关T1 CLR ET1 MOV R4,#04H SETB EX0 ;开启接收回波中断RETIOUT: RETI;外中断0,收到回波时进入PINT0: CLR TR0 ;关计数器 CLR TR1 CLR ET1 CLR EA CLR EX0 MOV 44H,TL0 ;将计数值移入处理单元 MOV 45H,TH0 SETB 00H ;接收成功标志 RETI显示程序;40H为最高位,43H为最低位,先扫描高位D

25、ISPLAY: MOV R1,#40H;GMOV R5,#0E7H;GPLAY: MOV A,R5 MOV P0,#0FEH MOV P2,A MOV R1 MOV DPTR,#TAB MOVC A,A+DPTR MOV P0,A LCALL DL1MS INC R1 MOV A,R5 JNB ACC.0,ENDOUT;G RR A MOV R5,A AJMP PLAYENDOUT: MOV P2,#0FEH MOV P0,#0FEH RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H, 0FEH,88H,0BFH;共阳段码表 “0”

26、,“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“不亮”,“A”,“-”延时程序DL1MS: MOV R6, #14HDL1: MOV R7, #19HDL2: DJNZ R7, DL2 DJNZ R6, DL1 RET 距离计算程序Work: PUSH ACC PUSH PSW PUSH B MOV PSW, #18h MOV R3, 45H MOV R2, 44H MOV R1, #00D MOV R0, #17D LCALL MUL2BY2 MOV R3, #03H MOV R2, #0E8H LCALL DIV4BY2 LCALL DIV4Y2 MOV 400

27、H, R4 MOV A, 40H JNZ JJ0 MOV 40H,#0AH ;最高位为0,不点亮JJ0: MOV A, R0 MOV R4, A MOV A, R1 MOV R5, A MOV R3, #00D MOV R2, #100D LCALL DIV4BY2 MOV 41H, R4 MOV A, 41H JNZ JJ1 MOV A, 40H ;次高位为0,先看最高位是否为不亮 SUBB A, #0AH JNZ JJ1 MOV 41H, #0AH ;最高位不亮,次高位也不亮JJ1: M0V A, R0 MOV R4, A MOV A, R1 MOV R5, A MOV R3, #00D

28、MOV R2, #10D LCALL DIV4BY2 MOV 42H, R4 MOV A, 42H JNZ JJ2 MOV A, 41H ;次次高位为0,先看次高位是否为不亮 SUBB A, #0AH JNZ JJ2 MOV 42H, #0AH ;次高位不亮,次次高位也不亮JJ2: MOV 43H, R0 POP B POP PSW POP ACC RET2字节无符号数乘法程序R7R6R5R4R3R2R1R0MUL2BY2: CLR A MOV R7,A MOV R6,A MOV R5,A MOV R4,A MOV 46H,#10HMULLOOP1: CLR C MOV A,R4 RLC A

29、MOV R4,A MOV A,R5 RLC A MOV R5,A MOV A,R6 RLC A MOV R6,A MOV A,R7 RLC A MOV R7,A MOV A,R0 RLC A MOV R0,A MOV A,R1 RLC A MOV R1,A JNC MULLOOP2 MOV A,R4 ADD A,R2 MOV R4,A MOV A,R5 ADDC A,R3 MOV R5,A MOV A,R6 ADDC A,#00H MOV R6,A MOV A,R7 ADDC A,#00H MOV R7,AMULLOOP2: DJNZ 46H,MULLOOP1 RET 4字节/2字节无符号数除法程序;R7R6R5R4/R3R2=R7R6R5R4(商)R1R0(余数)DIV4BY2: MOV 46H,#20H MOV R0,#00H MOV R1,#00HDIVLOOP1: MOV A,R4 RLC A MOV R4,A MOV A,R5 RLC A MOV R5,A MOV A,R6 RLC A MOV R6,A MOV A,R7 RLC A MOV R7,A MOV A,R0 RLC R0 MOV R0,A MOV A,R1 RLC A MOV R1,A CLR C MOV A,R0 SUBB A,R2 MOV B,A MOV A,R1

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1