基于单片机的超声波测距仪设计

上传人:仙*** 文档编号:27694498 上传时间:2021-08-19 格式:DOC 页数:14 大小:154.01KB
返回 下载 相关 举报
基于单片机的超声波测距仪设计_第1页
第1页 / 共14页
基于单片机的超声波测距仪设计_第2页
第2页 / 共14页
基于单片机的超声波测距仪设计_第3页
第3页 / 共14页
点击查看更多>>
资源描述
电信学院综合实验报告 小组成员:苏涛 胡朝 杨宇翔 1 基于单片机的超声波测距仪设计 1 总体设计方案介绍 1.1 超声波测距原理 发射器发出的超声波以速度 在空气中传播,在到达被测物体时被反射返回,由接收 器接收,其往返时间为 t,由 s=vt/2 即可算出被测物体的距离。由于超声波也是一种声波, 其声速 v 与温度有关,下表列出了几种不同温度下的声速。在使用时,如果温度变化不大, 则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。 表 1-1 超声波波速与温度的关系表 温度() -30 -20 -10 0 10 20 30 100 声速(ms) 313 319 325 323 338 344 349 386 表 1-1 1.2 超声波测距仪原理框图如下图 单片机发出 40kHZ 的信号,经放大后通过超声波发射器输出;超声波接收器将接收到 的超声波信号经放大器放大,用锁相环电路进行检波处理后,启动单片机中断程序,测得 时间为 t,再由软件进行判别、计算,得出距离数并送 LED 显示。 超声波发射器 放大电路超声波接收器 放大电路 锁相环 检波电路 定时器 单片机 控制 显示器 图 1-1 超声波测距仪原理框图 2 系统的硬件结构设计 硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检测接收 电路三部分。单片机采用 AT89C51 或其兼容系列。采用 12MHz 高精度的晶振,以获得较 稳定时钟频率,减小测量误差。单片机用 P1.0 端口输出超声波换能器所需的 40kHz 的方波 信号,利用外中断 0 口监测超声波接收电路输出的返回信号。显示电路采用简单实用的 4 位共阳 LED 数码管,段码用 74LS244 驱动,位码用 PNP 三极管 8550 驱动。 2.1 51 系列单片机的功能特点及测距原理 2.1.1 51 系列单片机的功能特点 5l 系列单片机中典型芯片 (AT89C51)采用 40 引脚双列直插封装(DIP)形式,内部由 CPU,4kB 的 ROM,256 B 的 RAM,2 个 16b 的定时计数器 TO 和 T1,4 个 8 b 的工 O 端 I:IP0,P1,P2 ,P3 ,一个全双功串行通信口等组成。特别是该系列单片机片内的 Flash 可编程、可擦除只读存储器(EPROM),使其在实际中有着十分广泛的用途,在便携 式、省电及特殊信息保存的仪器和系统中更为有用。 5l 系列单片机提供以下功能: 4 kB 存储器;256 BRAM;32 条工O 线;2 个 16b 定 时计数器;5 个 2 级中断源;1 个全双向的串行口以及时钟电路。 空闲方式:CPU 停止工作,而让 RAM、定时计数器、串行口和中断系统继续工作。 电信学院综合实验报告 小组成员:苏涛 胡朝 杨宇翔 2 掉电方式:保存 RAM 的内容,振荡器停振,禁止芯片所有的其他功能直到下一次硬 件复位。 5l 系列单片机为许多控制提供了高度灵活和低成本的解决办法。充分利用他的片内资 源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。 2.1.2 单片机实现测距原理 单片机发出超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从而 测出发射和接收回波的时间差 tr,然后求出距离 SCt 2,式中的 C 为超声波波速。 限制该系统的最大可测距离存在 4 个因素:超声波的幅度、反射的质地、反射和入射声波 之间的夹角以及接收换能器的灵敏度。接收换能器对声波脉冲的直接接收能力将决定最小 的可测距离。为了增加所测量的覆盖范围、减小测量误差,可采用多个超声波换能器分别 作为多路超声波发射接收的设计方法。由于超声波属于声波范围,其波速 C 与温度有关。 2.2 超声波发射电路 超声波发射电路原理图如图 2-2 所示。发射电路主要由反相器 74LS04 和超声波发射换 能器 T 构成,单片机 P1.0 端口输出的 40kHz 的方波信号一路经一级反向器后送到超声波 换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推换 形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。输出端采两个反 向器并联,用以提高驱动能力。上位电阻 R1O、R11 一方面可以提高反向器 74LS04 输出 高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡时间。 压电式超声波换能器是利用压电晶体的谐振来工作的。超声波换能器内部有两个压电 晶片和一个换能板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时, 压电晶片会发生共振,并带动共振板振动产生超声波,这时它就是一个超声波发生器;反 之,如果两电极问未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机 械能转换为电信号,这时它就成为超声波接收换能器。超声波发射换能器与接收换能器在 结构上稍有不同,使用时应分清器件上的标志。 2.3 超声波检测接收电路 集成电路 CX20106A 是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收 器。考虑到红外遥控常用的载波频率 38 kHz 与测距的超声波频率 40 kHz 较为接近,可以 利用它制作超声波检测接收电路(如图 2-3)。实验证明用 CX20106A 接收超声波(无信号时 输出高电平),具有很好的灵敏度和较强的抗干扰能力。适当更改电容 C4 的大小,可以改 变接收电路的灵敏度和抗干扰能力。 图 2-2 超声波发射电路原理图 电信学院综合实验报告 小组成员:苏涛 胡朝 杨宇翔 3 图 2-3 超声波检测接收电路 2.4 超声波测距系统的硬件电路设计 本系统的特点是利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计 时,单片机选用 AT89C51,经济易用,且片内有 4K 的 ROM,便于编程。电路原理图如见 附件。其中只画出前方测距电路的接线图,左侧和右侧测距电路与前方测距电路相同,故 省略之。 3 系统软件的设计 超声波测距仪的软件设计主要由主程序、超声波发生子程序、超声波接收中断程序及 显示子程序组成。我们知道 C 语言程序有利于实现较复杂的算法,汇编语言程序则具有较 高的效率且容易精细计算程序运行的时间,而超声波测距仪的程序既有较复杂的计算(计 算距离时) ,又要求精细计算程序运行时间(超声波测距时) ,所以控制程序可采用 C 语言 和汇编语言混合编程。 3.1 超声波测距仪的算法设计 超声波测距的原理为超声波发生器 T 在某一时刻发出一个超声波信号,当这个超声波 遇到被测物体后反射回来,就被超声波接收器 R 所接收到。这样只要计算出从发出超声波 信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。距离的计 算公式为: d=s/2=(ct)/2 (1) 其中,d 为被测物与测距仪的距离,s 为声波的来回的路程,c 为声速,t 为声波来回所用 的时间。 在启动发射电路的同时启动单片机内部的定时器 T0,利用定时器的计数功能记 录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生 一个负跳变,在 INT0 或 INT1 端产生一个中断请求信号,单片机响应外部中断请求,执行 外部中断服务子程序,读取时间差,计算距离。其部分源程序如下: RECEIVE0:PUSH PSW PUSH ACC CLR EX0 ;关外部中断 0 MOV R7, TH0 ;读取时间值 MOV R6, TL0? CLR C MOV A, R6 SUBB A, #0BBH;计算时间差 MOV 31H, A ;存储结果 电信学院综合实验报告 小组成员:苏涛 胡朝 杨宇翔 4 MOV A, R7 SUBB A, #3CH MOV 30H, A SETB EX0 ;开外部中断 0 POP ACC POP PSW RETI 3.2 主程序流程图 软件分为两部分,主程序和中断服务程序,如图 3-1(a)( b) (c) 所示。主程序完 成初始化工作、各路超声波发射和接收顺序的控制。 定时中断服务子程序完成三方向超声波的轮流发射,外部中断服务子程序主要完成时 间值的读取、距离计算、结果的输出等工作。 主程序首先是对系统环境初始化,设置定时器 T0 工作模式为 16 位定时计数器模式。 置位总中断允许位 EA 并给显示端口 P0 和 P1 清 0。然后调用超声波发生子程序送出一个 超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约 0.1 ms(这也就是超声波测距仪会有一个最小可测距离的原因)后,才打开外中断 0 接收 返回的超声波信号。由于采用的是 12 MHz 的晶 振,计数器每计一个数就是 1s,当主程 序检测到接收成功的标志位后,将计数器 T0 中的数(即超声波来回所用的时间)按式 (2)计算,即可得被测物体与测距仪之间的距离,设计时取 20时的声速为 344 m/s 则有: d=(ct)/2=172T0/10000cm (2) 其中,T0 为计数器 T0 的计算值。 测出距离后结果将以十进制 BCD 码方式送往 LED 显示约 0.5s,然后再发超声波脉冲 重复测量过程。为了有利于程序结构化和容易计算出距离,主程序采用 C 语言编写。 电信学院综合实验报告 小组成员:苏涛 胡朝 杨宇翔 5 3.3 超声波发生子程序和超声波接收中断程序 超声波发生子程序的作用是通过 P1.0 端口发送 2 个左右超声波脉冲信号(频率约 40kHz 的方波) ,脉冲宽度为 12s 左右,同时把计数器 T0 打开进行计时。超声波发生子 程序较简单,但要求程序运行准确,所以采用汇编语言编程。 超声波测距仪主程序利用外中断 0 检测返回超声波信号,一旦接收到返回超声波信号 (即 INT0 引脚出现低电平) ,立即进入中断程序。进入中断后就立即关闭计时器 T0 停止 计时,并将测距成功标志字赋值 1。如果当计时器溢出时还未检测到超声波返回信号,则 定时器 T0 溢出中断将外中断 0 关闭,并将测距成功标志字赋值 2 以表示此次测距不成功。 前方测距电路的输出端接单片机 INT0 端口,中断优先级最高,左、右测距电路的输出通 过与门 IC3A 的输出接单片机 INT1 端口,同时单片机 P1.3 和 P1.4 接到 IC3A 的输入端, 中断源的识别由程序查询来处理,中断优先级为先右后左。部分源程序如下: RECEIVE1:PUSH PSW PUSH ACC CLR EX1 ;关外部中断 1 JNB P1.1, RIGHT ;P1.1 引脚为 0,转至右测距电路中断服务程序 JNB P1.2, LEFT ;P1.2 引脚为 0,转至左测距电路中断服务程序 RETURN:SETB EX1;开外部中断 1 POP ACC POP PSW RETI RIGHT: . ;右测距电路中断服务程序入口 AJMP RETURN LEFT:. ;左测距电路中断服务程序入口 AJMP RETURN 4 系统的软硬件的调试 超声波测距仪的制作和调试都比较简单,其中超声波发射和接收采用 15 的超声波换 能器 TCT40-10F1(T 发射)和 TCT40-10S1(R 接收) ,中心频率为 40kHz,安装时应保持 两换能器中心轴线平行并相距 48cm,其余元件无特殊要求。若能将超声波接收电路用金 属壳屏蔽起来,则可提高抗干扰能力。根据测量范围要求不同,可适当调整与接收换能器 并接的滤波电容 C0 的大小,以获得合适的接收灵敏度和抗干扰能力。 硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。根据实际情 况可以修改超声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距 离的测量需要。根据所设计的电路参数和程序,测距仪能测的范围为 0.075.5m,测距仪 最大误差不超过 1cm。系统调试完后应对测量误差和重复一致性进行多次实验分析,不断 优化系统使其达到实际使用的测量要求。 5 设计总结 由于时间和其它客观上的原因,此次设计没有做出实物。但是对设计有一个很好的理 论基础。设计的最终结果是使超声波测距仪能够产生超声波,实现超声波的发送与接收, 从而实现利用超声波方法测量物体间的距离。以数字的形式显示测量距离。 超声波测距的原理是利用超声波的发射和接受,根据超声波传播的时间来计算出传播 距离。实用的测距方法有两种,一种是在被测距离的两端,一端发射,另一端接收的直接 波方式,适用于身高计;一种是发射波被物体反射回来后接收的反射波方式,适用于测距 电信学院综合实验报告 小组成员:苏涛 胡朝 杨宇翔 6 仪。此次设计采用反射波方式。 超声波测距仪硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超 声波检测接收电路三部分。单片机采用 AT89C51 或其兼容系列。采用 12MHz 高精度的晶 振,以获得较稳定时钟频率,减小测量误差。单片机用 P1.0 端口输出超声波换能器所需的 40kHz 的方波信号,利用外中断 0 口监测超声波接收电路输出的返回信号。显示电路采用 简单实用的 4 位共阳 LED 数码管,段码用 74LS244 驱动,位码用 PNP 三极管 8550 驱动。 超声波发射电路主要由反相器 74LS04 和超声波发射换能器 T 构成,单片机 P1.0 端口 输出的 40kHz 的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两 级反向器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能 器的两端,可以提高超声波的发射强度。输出端采两个反向器并联,用以提高驱动能力。 上位电阻 R1O、R11 一方面可以提高反向器 74LS04 输出高电平的驱动能力,另一方面可 以增加超声波换能器的阻尼效果,缩短其自由振荡时间。压电式超声波换能器是利用压电 晶体的谐振来工作的。超声波换能器内部有两个压电晶片和一个换能板。当它的两极外加 脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片会发生共振,并带动共振板 振动产生超声波,这时它就是一个超声波发生器;反之,如果两电极问未外加电压,当共 振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超 声波接收换能器。超声波发射换能器与接收换能器在结构上稍有不同,使用时应分清器件 上的标志。 超声波检测接收电路主要是由集成电路 CX20106A 组成,它是一款红外线检波接收的 专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率 38 kHz 与测距 的超声波频率 40 kHz 较为接近,可以利用它制作超声波检测接收电路。实验证明用 CX20106A 接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。适 当更改电容 C4 的大小,可以改变接收电路的灵敏度和抗干扰能力。 超声波测距仪的软件设计主要由主程序、超声波发生子程序、超声波接收中断程序及 显示子程序组成。我们知道 C 语言程序有利于实现较复杂的算法,汇编语言程序则具有较 高的效率且容易精细计算程序运行的时间,而超声波测距仪的程序既有较复杂的计算(计 算距离时) ,又要求精细计算程序运行时间(超声波测距时) ,所以控制程序可采用 C 语言 和汇编语言混合编程。主超声波测距仪主程序利用外中断 0 检测返回超声波信号,一旦接 收到返回超声波信号(即 INT0 引脚出现低电平) ,立即进入中断程序。进入中断后就立即 关闭计时器 T0 停止计时,并将测距成功标志字赋值 1。如果当计时器溢出时还未检测到超 声波返回信号,则定时器 T0 溢出中断将外中断 0 关闭,并将测距成功标志字赋值 2 以表 示此次测距不成功。 前方测距电路的输出端接单片机 INT0 端口,中断优先级最高,左、 右测距电路的输出通过与门 IC3A 的输出接单片机 INT1 端口,同时单片机 P1.3 和 P1.4 接 到 IC3A 的输入端,中断源的识别由程序查询来处理,中断优先级为先右后左。 超声波测距的算法设计原理为超声波发生器 T 在某一时刻发出一个超声波信号,当这 个超声波遇到被测物体后反射回来,就被超声波接收器 R 所接收到。这样只要计算出从发 出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。 在启动发射电路的同时启动单片机内部的定时器 T0,利用定时器的计数功能记录超声波发 射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生一个负跳变, 在 INT0 或 INT1 端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务 子程序,读取时间差,计算距离。 在元件及调制方面,由于采用的电路使用了很多集成电路。外围元件不是很多,所以 调试应该不会太难。一般只要电路焊接无误,稍加调试应该会正常工作。电路中除集成电 路外,对各电子元件也无特别要求。根据测量范围要求不同,可适当调整与接收换能器并 电信学院综合实验报告 小组成员:苏涛 胡朝 杨宇翔 7 接的滤波电容 C0 的大小,以获得合适的接收灵敏度和抗干扰能力。若能将超声波接收电 路用金属壳屏蔽起来,则可提高抗干扰能力。 小组成员姓名 班级 学号 苏 涛 07 电子二班 07205010244 胡 朝 07 电子二班 07205010215 杨宇翔 07 电子二班 小组成员签字: 电信学院综合实验报告 小组成员:苏涛 胡朝 杨宇翔 8 附录 附录 1 超声波测距电路原理图 253764*LMC0KXTA9P.OVGNDR?espFul七E 电信学院综合实验报告 小组成员:苏涛 胡朝 杨宇翔 9 附录 2 超声波测距程序清单 #INCLUDE #DEFINE K1 P3_4 #DEFINE CSBOUT P3_5 /超声波发送 #DEFINE CSBINT P3_7 /超声波接收 #DEFINE CSBC=0.034 #DEFINE BG P3_3 UNSIGNED CHAR CSBDS,OPTO,DIGIT,BUFFER3,XM1,XM2,XM0,KEY,JPJS;/显示标识 UNSIGNED CHAR CONVERT10=0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F;/09 段码 UNSIGNED INT S,T,I, XX,J,SJ1,SJ2,SJ3,MQS,SX1; BIT CL; VOID CSBCJ(); VOID DELAY(J); /延时函数 VOID SCANLED(); /显示函数 VOID TIMETOBUFFER(); /显示转换函数 VOID KEYSCAN(); VOID K1CL(); VOID K2CL(); VOID K3CL(); VOID K4CL(); VOID OFFMSD(); VOID MAIN() /主函数 EA=1; /开中断 TMOD=0X11; /设定时器 0 为计数,设定时器 1 定时 ET0=1; /定时器 0 中断允许 ET1=1; /定时器 1 中断允许 TH0=0X00; TL0=0X00; TH1=0X9E; TL1=0X57; CSBDS=0; CSBINT=1; CSBOUT=1; CL=0; PTO=0XFF; JPJS=0; SJ1=45; SJ2=200; SJ3=400; K4CL(); 电信学院综合实验报告 小组成员:苏涛 胡朝 杨宇翔 10 TR1=1; WHILE(1) KEYSCAN(); IF(JPJSSJ3) BUFFER2=0X76; BUFFER1=0X76; BUFFER0=0X76; ELSE IF(SSJ1) BUFFER2=0X40; BUFFER1=0X40; BUFFER0=0X40; ELSE TIMETOBUFFER(); ELSE TIMETOBUFFER(); /将值转换成 LED 段码 OFFMSD(); SCANLED(); /显示函数 IF(SSJ2) BG=0; BG=1; VOID SCANLED() /显示功能模块 DIGIT=0X04; FOR( I=0; I=1; /循环右移 1 位 电信学院综合实验报告 小组成员:苏涛 胡朝 杨宇翔 11 VOID TIMETOBUFFER() /转换段码功能模块 XM0=S/100; XM1=(S-100*XM0)/10; XM2=S-100*XM0-10*XM1; BUFFER2=CONVERTXM2; BUFFER1=CONVERTXM1; BUFFER0=CONVERTXM0; VOID DELAY(I) WHILE(-I); VOID TIMER1INT (VOID) INTERRUPT 3 USING 2 TH1=0X9E; TL1=0X57; CSBDS+; IF(CSBDS=40) CSBDS=0; CL=1; VOID CSBCJ() IF(CL=1) TR1=0; TH0=0X00; TL0=0X00; I=10; WHILE(I-) CSBOUT=!CSBOUT; TR0=1; I=MQS; /盲区 WHILE(I-) I=0; WHILE(CSBINT) 电信学院综合实验报告 小组成员:苏涛 胡朝 杨宇翔 12 I+; IF(I=2450) /上限值 CSBINT=0; TR0=0; TH1=0X9E; TL1=0X57; T=TH0; T=T*256+TL0; S=T*CSBC/2; TR1=1; CL=0; VOID KEYSCAN() /健盘处理函数 XX=0; IF(K1!=1) / 判断开关是否按下 DELAY(400); /延时去抖动 IF(K1!=1) / 判断开关是否按下 WHILE(!K1) DELAY(30); XX+; IF(XX2000) JPJS+; IF(JPJS4) JPJS=0; XX=0; SWITCH(JPJS) CASE 1: K1CL();BREAK; CASE 2: K2CL();BREAK; CASE 3: K3CL();BREAK; CASE 4: K4CL();BREAK; 电信学院综合实验报告 小组成员:苏涛 胡朝 杨宇翔 13 VOID K1CL() SJ1=SJ1+5; IF(SJ1100) SJ1=30; S=SJ1; VOID K2CL() SJ2=SJ2+5; IF(SJ2500) SJ2=40; S=SJ2; VOID K3CL() SJ3=SJ3+10; IF(SJ3500) SJ3=100; S=SJ3; VOID K4CL() SX1=SJ1-1; SX1=SX1/CSBC; MQS=SX1/4.5; VOID OFFMSD() IF (BUFFER0 = 0X3F) BUFFER0 = 0X00; 电信学院综合实验报告 小组成员:苏涛 胡朝 杨宇翔 14 附录 3 超声波测距元器件清单 AT89C51 1 个 LM358 1 个 LM567 1 个 24C02 1 个 74LS164 1 个 74LS04 1 个 CX20106A 1 个 LED 七段数码管 2 位 10K 电阻 4 个 1K 电阻 3 个 4.7K 电阻 1 个 100 电阻 1 个 2.2K 电阻 3 个 220K 电阻 1 个 可变电阻 1 个 12M 晶振 1 个 发光二极管 2 个 三极管 1 个 1F 电容 3 个 22F 电容 2 个 104pF 电容 2 个 152pF 电容 1 个 330pF 电容 2 个 3.3F 电容 1 个 30pF 电容 2 个
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸下载 > CAD图纸下载


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!