温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
2023
基于
51
单片机
超声波
测距仪
大连民族学院2023级通信工程专业微机系统课程设计报告
机电信息工程学院
单片机系统课程设计报告
系 别:
电子工程系
专 业:
通信工程
班 级:
051班
设计题目:
超声波测距
学生姓名:
王权 于建坤
指导教师:
董玉华 李厚杰 杨亚宁 李婷
完成日期:2023年03月19日
31
目 录
一、 设计任务和性能指标 1
二、设计方案 1
三、系统硬件设计 3
四、系统软件设计 5
五、调试及性能分析 8
六、心得体会 10
参考文献 11
附录1系统硬件电路图 12
附录2程序清单 13
一、 设计任务和性能指标
1.1 设计任务
设计一个超声波测距器,可应用在汽车倒车、建筑施工工地以及一些工业现场的位置测控,也可用于如液位、井深、管道长度的测量等场合。
要求用Altium Designer 6画出系统的电路原理图〔要求以最少组件,实现系统设计所要求的功能〕,印刷电路板〔要求布局合理,线路清晰〕,绘出程序流程图,并给出程序清单〔要求思路清晰,尽量简洁,主程序和子程序分开,使程序有较强的可读性〕。
1.2 性能指标
1、 测量范围10—80 cm;
2、 测量精度1cm;
3、 测量时与被测物体无直接接触,能够清晰稳定地显示测量结果;
4、 测量范围扩展为10 cm—4m,提高测量精度。
二、设计方案
超声波测距仪是利用超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2 。超声波测距主要应用于倒车雷达、建筑施工工地以及一些工业现场,例如:液位、井深、管道长度等场合。目前国内一般使用专用集成电路设计超声波测距仪,但是专用集成电路的本钱很高,并且没有显示,操作使用很不方便。超声波指向性强,穿透能力强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。如测距仪和物位测量仪等都可以通过超声波来实现。但由于超声波传感器的本钱较高,所以一般运用于专业领域,民用产品中运用较少。考虑到一般情况下对测距的要求较低,可在一定程度上牺牲其精确度和测距范围,从而降低本钱,使其运用范围大大扩展。
超声波测距系统主要由声波发射电路、回波接收电路以及信号采集电路、温度补偿电路等组成。
2.1 硬件方案选择
〔1〕超声波发射电路
总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器。
压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器内部主要由两个压电晶片和一个共振板组成。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。
这种压电式超声波传感器是利用内藏的压电晶体的压电效应。压电晶体在外电场作用下会产生机械变形,或者使压电晶体变形也会产生电压,前者称为逆压电效应,后者称为正压电效应。利用压电晶体的逆压电效应,电路的高频电压会转换为高频机械振动,以产生超声波,作为超声波发生探头,利用压电晶体的正压电效应可将接收的超声波振动转换成电信号,作为超声波接收探头。
〔2〕超声波接收电路
超声波接收电路的作用是对接收的超声波信号进行放大,并将放大后的信号处理成系统可以处理的电平信号。
〔3〕温度补偿电路
超声波是一种声波,其声速c与温度有关。如果测距精度要求很高时,那么应通过温度补偿的方法加以校正。温度测量可以使用数字温度传感器DS18B20。
〔4〕超声波测距器的算法设计
超声波测距的原理即超声波发生器在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后发射回来,就被超声波接收器所接收到。这样只要计算出从发出超声波信号到返回信号所用的时间,就可以算出超声波发生器与反射物体的距离。距离的计算公式为:
其中d为被测物体与测距器的距离,s为声波来回的路程,c为声速,t为声波来回所用的时间。
〔5〕系统硬件框图如图1所示。
图1系统硬件框图
2.2 超声波测距器的软件
系统软件主要由主程序、超声波发射子程序、超声波接收中断程序及显示子程序组成,如图2所示。
图2系统程序结构框图
超声波测距器主程序利用外部中断检测返回超声波信号,一旦接收到返回的超声波信号,立即进入中断程序。
三、系统硬件设计
主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三局部组成。采用STC89C55来实现对CX20106A红外接收芯片和TCT40-10系列超声波转换模块的控制。单片机通过P1.0引脚经反相器来控制超声波的发送,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。
图3超声波测距原理框图
3.1 单片机系统及显示电路
单片机采用STC89C55。采用11.0592MHz高精度的晶振,以获得较稳定的时钟频率,减小测量误差。单片机用P1.0端口输出超声波转化器所需的40KHz方波信号,利用外中断0口检测超声波接受电路输出的返回信号。显示电路采用简单实用的LCD1602液晶显示电路,用P0做为数据口。单片机系统及显示电路如图4所示。
图4单片机及显示电路原理图
3.2 超声波发射电路
超声波发射电路原理图如图5所示。
图5超声波发射电路原理图
压电超声波转换器的功能:利用压电晶体谐振工作。内部结构图6所示,它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动产生超声波,这时它就是一超声波发生器;如没加电压,当共振板接受到超声波时,将压迫压电振荡器作振动,将机械能转换为电信号,这时它就成为超声波接受转换器。超声波发射转换器与接收转换器其结构稍有不同。
图6超声波转换原理图
3.3 超声波检测接收电路
超声波检测接收电路采用集成电路CX20106A,如图7所示,这是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38KHz与测距超声波频率40KHz较为接近,可以利用它作为超声波检测电路。实验证明其具有很高的灵敏度和较强的抗干扰能力。适当改变C4的大小,可改变接收电路的灵敏度和抗干扰能力。
图7超声波接收电路图
四、系统软件设计
超声波测距软件设计主要由主程序,超声波发射子程序,超声波接受中断程序、温度补偿及显示子程序和距离测量及显示子程序组成。下面对超声波测距器的算法,主程序,超声波发射子程序和超声波接收中断程序逐一介绍。
4.1 超声波测距器的算法设计
以下列图示意了超声波测距的原理,即超声波发生器在某一时刻发出的一个超声波信号,当超声波遇到被测物体后反射回来,就被超声波接收器所接受。这样只要计算出发生信号到接受返回信号所用的时间,就可算出超声波发生器与反射物体的距离。
距离计算公式:
其中d为被测物与测距器的距离,s为声波的来回路程,c为声速,t为声波来回所用的时间。
程序框图如图8所示。
图8距离计算子程序
声速c与温度有关,如温度变化不大,那么可认为声速是根本不变的。如果测距精度要求很高,那么应通过温度补偿的方法加以校正。声速确定后,只要测得超声波往返时间,即可求得距离。在系统参加温度传感器来监测环境温度,可进行温度被偿。这里可以用DS18B20测量环境温度,根据不同的环境温度确定声速提高测距的稳定性。为了增强系统的可靠性,应在软硬件上采用抗干扰措施。
不同温度下的超声波声速表
温 度
(摄氏度)
-30
-20
-10
0
10
20
30
100
声 速
(m/s)
313
319
325
323
338
344
349
386
4.2 主程序
主程序首先对系统环境初始化,设置定时器T0工作模式为16位的定时计数器模式,置位总中断允许位EA并给显示端口P0和P2清0。然后调用超声波发生子程序送出一个超声波脉冲,为防止超声波从发射器直接传送到接收器引起的直接波触发,需延迟0.1ms(这也就是测距器会有一个最小可测距离的原因)后,才翻开外中断0接收返回的超声波信号。由于采用11.0592MHz的晶振,机器周期为1us,当主程序检测到接收成功的标志位后,将计数器T0中的数〔即超声波来回所用的时间〕按下式计算即可测得被测物体与测距仪之间的距离,以20℃时的声速为344 m/s为例,那么有:
图9主程序框图
d=(CxT0)/2 =172xT0/10000cm〔其中T0为计
数器T0的计数值〕
测出距离后结果将以十进制BCD码方式显示,然后再发超声波脉冲重复测量过程。主程序框图如图9所示。
4.3 超声波发生子程序和超声波接收中断程序
超声波发生子程序的作用是通过P1.0端口发送5个左右的超声波信号频率约40KHz的方波,脉冲宽度为12us左右,同时把计数器T0翻开进行计时。超声波测距器主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号〔INT0引脚出现低电平),立即进入中断程序。进入该中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。如果当计时器溢出时还未检测到超声波返回信号,那么定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值0以表示此次测距不成功。中断程序的框图如图10所示。
图10计数器T0中断程序〔左〕、计数器T1中断程序〔中〕
外部INT0中断程序〔右〕
4.4 温度补偿子程序和温度显示子程序
温度补偿子程序的作用是将当前实验环境的实际温度值准确测量、转换并存储,用以确定此时声波的速度值。本程序采用DS18B20的12位转换精度,温度存放器里的值是以0.0625为步进的,即温度存放器里的二进制值乘以0.0625,就是实际的十进制温度值。温度处理子程序判断温度值的“+〞和“-〞并将转换好的温度整数位和小数位存入显示缓存区50H~53H中,50H为最高位,53H为最低位。温度显示子程序用来判断高位是否有灭零需要,以及符号位的选择和显示。程序框图如图11所示。
图11温度显示子程序〔左上〕、温度