版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 毕毕 业业 课课 程程 设设 计计 题目: 超 声 波 测 距 摘要 现今超声波测距已被应用在现实生活的各个领域。它与传统的测距方法相比精确度 更高、操作更方便、安全系数更高。超声波测距是一种利用声波特性和电子计数相结合 来实现距离测量的方法。 本次课程设计主要介绍以 at89c51 为核心的超声波测距系统。测距系统主要由超声 波发射电路、超声波接收检测电路和显示电路组成。设计利用 51 单片机系统的 i/o 口, 发出 40mhz 的超声波,反射回来的超声波信号,经过放大和整形电路进入单片机,比较 调试后确定其对应的距离,完成测距。可实现距离在 3m 内,盲区 7cm 的有效测距,测量 精
2、度为 1cm,测量时与被测物体无直接接触,能够在 led 上稳定的显示测量结果。该测距 系统测量精度高,使用方便,可应用于汽车倒车雷达、建筑施工工地以及一些工业现场 的位置监控,也可用于如液位、井深、管道长度的测量等。 nowadays ultrasonic ranging has been used in real life in all areas. it compared with traditional ranging accuracy is higher, operation methods more convenient and safety coefficient. ultras
3、onic ranging is a use of acoustic properties and electronic counting combination to achieve distance measurement method. this course mainly introduces the design uses at89c51 as the core of ultrasonic ranging system. distance measuring system mainly by ultrasonic launching circuit, ultrasonic receiv
4、ing detection circuit and display circuit composed. using 51 scm system design of i/o mouth, issued 40mhz ultrasonic, reflected ultrasonic signals, amplified and plastic circuit into microcontroller, comparative after testing to determine its corresponding distance, complete range. can realize dista
5、nce for 3m, blind area within the effective range-finding 7cm, measurement accuracy for measuring 1cm, with no direct contact with the object to be tested, can be in led display on the stability of the measurement result. the measurement system of hi- gh accuracy, easy to use, can be applied in auto
6、mobile back-draft radar, construc- tion site and some industrial field location monitoring, also can used for such as liquid level, well depth, the tube length measurement, etc. 目录目录 1 绪论绪论.3 2 总体设计方案总体设计方案.3 2.1 超声波测距原理. 2.2 原理框图. 3 系统硬件结构设计系统硬件结构设计.8 3.1 51单片机原理及测距. 3.11 51 单片机的工作原理. 3.12 单片机实现测距原
7、理. 3.2 超声波发射电路. 3.3 超声波检测接收电路. 3.4 超声波测距系统的硬件电路设计. 4 系统软件设计系统软件设计.13 4.1 超声波测距仪的算法设计. 4.2 主程序流程图. 4.3 超声波发生子程序和超声波接收中断程序. 5 系统的软硬件安装与调试系统的软硬件安装与调试.16 6 心得体会心得体会.17 参考文献参考文献.18 附录附录.19 总原理图. 电路 pcb 图. 元器件清单. 1.1.绪论绪论 本文所研究的超声波测距仪利用超声波指向性强、能量消耗缓慢、传播距离较远等 优点,即用超声波发射器向某一方向发送超声波,同时在发射的时候开始计时,在超声 波遇到障碍物的时
8、候反射回来,超声波接收器在接收到反射回来的超声波时,停止计时。 设超声波在空气中的传播速度为 v,在空气中的传播时间为 t,汽车与障碍物的距离为 s,s=vt/2,这样可以测出汽车与障碍物之间的距离,然后在 led 显示屏上显示出来。 其工作机理是依据压电材料的正逆压电效应,利用逆压电效应产生超声波,即逆压 电效应是在压电材料上加上某种特定频率的交变正弦信号,材料就会产生随所加电压的 变化规律而变化的机械形变,这种机械形变推动周围介质振动,产生疏密相间的机械波, 如果其振动频率在超声范围内,这种机械波就是超声波。 本文所设计的超声波测距仪主要由 at89c51 单片机、超声波发射电路、超声波接
9、收 放大电路、显示电路. 首先由单片机驱动产生 12mhz 晶振,由超声波发射探头发送出去,在遇到障碍物反射 回来时由超声波接收探头检测到信号,然后经过滤波、放大、整形之后送入单片机进行 计算,把计算结果输出到 led 液晶显示屏上。超声波发生器可以分为两大类:一类是用 电气方式产生超声波;另一类是用机械方式。产生超声波。电气方式包括压电型、电动 型等;机械方式有加尔统笛、液 和气流旋笛等。它们所产生的超声波的频率,功率和声 波特性各不相同,因而用途也各不相同。目前在近距离测量方面较为常用的是压电式超 声波换能器。 根据设计要求并综合各方面因素,本例决定采用 at89c51 单片机作为主控制器
10、,用 动态扫描法实现 led 数字显示,超声波驱动信号用单片机的定时器完成。超声波测距器 系统设计如图 3.1 所示。 超声波接收 单片机 控制器 超声波发送 led 显示 扫描驱动 图 3.1 超声波测距器系统设计框图 2.总体设计方案总体设计方案 2.1 超声波测距原理超声波测距原理 发射器发出的超声波以速度 在空气中传播,在到达被测物体时被反射返回,由接 收器接收,其往返时间为 t,由 s=vt/2 即可算出被测物体的距离。由于超声波也是一种声 波,其声速 v 与温度有关,下表列出了几种不同温度下的声速。在使用时,如果温度变 化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通
11、过温度补偿的方 法加以校正。 表 1-1 超声波波速与温度的关系表 温-30-20-10010203010 度 () 0 声 速 (m s) 31 3 31 9 32 5 32 3 33 8 34 4 34 9 38 6 表 1-1 2.2 超声波测距仪原理图超声波测距仪原理图 单片机发出 40khz 的信号,经放大后通过超声波发射器输出;超声波接收器将接收 到的超声波信号经放大器放大,用锁相环电路进行检波处理后,启动单片机中断程序, 测得时间为 t,再由软件进行判别、计算,得出距离数并送 led 显示。 超声波发射器 放大电路超声波接收器 放大电路 锁相环 检波电路 定时器 单片机 控制显示
12、器 图 1-1 超声波测距仪原理框图 3 系统的硬件结构设计系统的硬件结构设计 硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检测接收 电路三部分。单片机采用 at89c51 或其兼容系列。采用 12mhz 高精度的晶振,以获得 较稳定时钟频率,减小测量误差。单片机用 p1.0 端口输出超声波换能器所需的 40khz 的 方波信号,利用外中断 0 口监测超声波接收电路输出的返回信号。显示电路采用简单实 用的 4 位共阳 led 数码管,段码用 74ls244 驱动,位码用 pnp 三极管 9012 驱动。 主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分
13、组成。 采用 at89c51 来实现对超声波模组进行控制,然后单片机不停的检测 int0 引脚,当 int0 引脚的电平由高电平变为低电平时就认为超声波已经返回。计数器所计的数据就是 超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。 2.1 超声波发射和接收模组(v2.0) 3.11 51 系列单片机的功能特点系列单片机的功能特点 5l 系列单片机中典型芯片(at89c51)采用 40 引脚双列直插封装(dip)形式,内部由 cpu,4kb 的 rom,256 b 的 ram,2 个 16b 的定时计数器 to 和 t1,4 个 8 b 的工 o 端 i:ip0,p1,p2,p
14、3,一个全双功串行通信口等组成。特别是该系列单片机片内 的 flash 可编程、可擦除只读存储器(eprom),使其在实际中有着十分广泛的用途,在 便携式、省电及特殊信息保存的仪器和系统中更为有用。 5l 系列单片机提供以下功能:4 kb 存储器;256 bram;32 条工o 线;2 个 16b 定 时计数器;5 个 2 级中断源;1 个全双向的串行口以及时钟电路。 空闲方式:cpu 停止工作,而让 ram、定时计数器、串行口和中断系统继续工作。 掉电方式:保存 ram 的内容,振荡器停振,禁止芯片所有的其他功能直到下一次硬 件复位。 5l 系列单片机为许多控制提供了高度灵活和低成本的解决办
15、法。充分利用他的片内 资源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。 3.12 单片机实现测距原理单片机实现测距原理 单片机发出超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从 而测出发射和接收回波的时间差 tr,然后求出距离 sct2,式中的 c 为超声波波速。 限制该系统的最大可测距离存在 4 个因素:超声波的幅度、反射的质地、反射和入 射声波之间的夹角以及接收换能器的灵敏度。接收换能器对声波脉冲的直接接收能力将 决定最小的可测距离。为了增加所测量的覆盖范围、减小测量误差,可采用多个超声波 换能器分别作为多路超声波发射接收的设计方法。由于超声波属于声波范围,其
16、波速 c 与温度有关 3.23.2 超声波发射电路超声波发射电路 超声波发射电路原理图如图 2-2 所示。发射电路主要由反相器 74ls04 和超声波发射 换能器 t 构成,单片机 p1.0 端口输出的 40khz 的方波信号一路经一级反向器后送到超声 波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种 推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。输出端采 两个反向器并联,用以提高驱动能力。上位电阻 r1o、r11 一方面可以提高反向器 74ls04 输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自 由振荡时间。 压电式超
17、声波换能器是利用压电晶体的谐振来工作的。超声波换能器内部有两个压 电晶片和一个换能板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率 时,压电晶片会发生共振,并带动共振板振动产生超声波,这时它就是一个超声波发生 器;反之,如果两电极问未外加电压,当共振板接收到超声波时,将压迫压电晶片作振 动,将机械能转换为电信号,这时它就成为超声波接收换能器。超声波发射换能器与接 收换能器在结构上稍有不同,使用时应分清器件上的标志。 2.3 超声波检测接收电路超声波检测接收电路 集成电路 cx20106a 是一款红外线检波接收的专用芯片,常用于电视机红外遥控接 收器。考虑到红外遥控常用的载波频率 3
18、8 khz 与测距的超声波频率 40 khz 较为接近,可 以利用它制作超声波检测接收电路(如图 2-3)。实验证明用 cx20106a 接收超声波(无信号 时输出高电平),具有很好的灵敏度和较强的抗干扰能力。适当更改电容 c4 的大小,可 以改变接收电路的灵敏度和抗干扰能力。 图 2-2 超声波发射电路原理图 图 2-3 超声波检测接收电路 2.4 超声波测距系统的硬件电路设计超声波测距系统的硬件电路设计 本系统的特点是利用单片机控制超声波的发射和对超声波自发射至接收往返时间的 计时,单片机选用 at89c51,经济易用,且片内有 4k 的 rom,便于编程。电路原理图 如见附件。其中只画出
19、前方测距电路的接线图,左侧和右侧测距电路与前方测距电路相 同,故省略之。 3 系统软件的设计系统软件的设计 超声波测距仪的软件设计主要由主程序、超声波发生子程序、超声波接收中断程序 及显示子程序组成。我们知道 c 语言程序有利于实现较复杂的算法,汇编语言程序则具 有较高的效率且容易精细计算程序运行的时间,而超声波测距仪的程序既有较复杂的计 算(计算距离时) ,又要求精细计算程序运行时间(超声波测距时) ,所以控制程序可采 用 c 语言和汇编语言混合编程。 超声波测距器的软件设计主要由主程序,超声波发生子程序,超声波接收中断程序及显 示子程序组成,由于 c 语言程序有利于实现较复杂的算法,汇编语
20、言程序则具有较高的 效率并且容易精确计算程序行动的时间,而超声波测距器的程序既有较复杂的计算(计 算距离时) ,又要求精确计算程序运行时间(超声波测距时) ,所以控制程序可采用 c 语 言和汇编语言混合编程。下面对超声波测距器的算法,主程序,超声波发生子程序和超 声波接收中断程序逐一介绍。图 3.6 示意了超声波测距的原理,既超声波发生器 t 在某 一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就会被超声波接 收器 r 接收到。这样,只要计算出从发出超声波信号到接收到返回信号所用的时间,就 可算出超声波发生器于反射物体的距离。该距离的计算公式如下: d=s/2(vt)/2 其中
21、:d 为被测物于测距器的距离;s 为声波的来回路程;v 为声速;t 为声波来回所用 的时间。 超声波也是一种声波,其声速 v 于温度有关。表 3.1 列出了几种不同温度下的超声波 声速。在使用时,如果温度变化不大,则可认为声速基本不变的。如果测距精度要求很 高,则应通过温度补偿的方法加以校正。声速确定后,只要测得超声波往返的时间,即 可求得距离。表 3.1 不同温度下超声波声速表 温度/ 30 20 10 0 10 20 30 100 声波/(m.s) 313 319 325 323 338 344 349 386 3.1 超声波测距仪的算法设计超声波测距仪的算法设计 超声波测距的原理为超声波
22、发生器 t 在某一时刻发出一个超声波信号,当这个超声波 遇到被测物体后反射回来,就被超声波接收器 r 所接收到。这样只要计算出从发出超声 波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。距离 的计算公式为: d=s/2=(ct)/2 (1) 其中,d 为被测物与测距仪的距离,s 为声波的来回的路程,c 为声速,t 为声波来回所用 的时间。 在启动发射电路的同时启动单片机内部的定时器 t0,利用定时器的计数功能记 录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产 生一个负跳变,在 int0 或 int1 端产生一个中断请求信号,单片机响应外部中
23、断请求, 执行外部中断服务子程序,读取时间差,计算距离。其部分源程序如下: 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 ;存储结果 mov a, r7 subb a, #3ch mov 30h, a setb ex0 ;开外部中断 0 pop acc pop psw reti 3.2 主程序流程图主程序流程图 软件分为两部分,主程序和中断服务程序,如图 3-1(a)(b) (c) 所示。主程序完
24、 成初始化工作、各路超声波发射和接收顺序的控制。 定时中断服务子程序完成三方向超声波的轮流发射,外部中断服务子程序主要完成 时间值的读取、距离计算、结果的输出等工作。 主程序首先是对系统环境初始化,设置定时器 t0 工作模式为 16 位定时计数器模式。 置位总中断允许位 ea 并给显示端口 p0 和 p1 清 0。然后调用超声波发生子程序送出一个 超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时 约 0.1 ms(这也就是超声波测距仪会有一个最小可测距离的原因)后,才打开外中断 0 接收返回的超声波信号。由于采用的是 12 mhz 的晶 振,计数器每计一个数就是 1
25、s, 当主程序检测到接收成功的标志位后,将计数器 t0 中的数(即超声波来回所用的时间) 按式(2)计算,即可得被测物体与测距仪之间的距离,设计时取 20时的声速为 344 m/s 则有: d=(ct)/2=172t0/10000cm (2) 其中,t0 为计数器 t0 的计算值。 测出距离后结果将以十进制 bcd 码方式送往 led 显示约 0.5s,然后再发超声波脉冲 重复测量过程。为了有利于程序结构化和容易计算出距离,主程序采用 c 语言编写。 3.3 超声波发生子程序和超声波接收中断程序超声波发生子程序和超声波接收中断程序 超声波发生子程序的作用是通过 p1.0 端口发送 2 个左右超
26、声波脉冲信号(频率约 40khz 的方波) ,脉冲宽度为 12s 左右,同时把计数器 t0 打开进行计时。超声波发生子 程序较简单,但要求程序运行准确,所以采用汇编语言编程。 超声波测距仪主程序利用外中断 0 检测返回超声波信号,一旦接收到返回超声波 信号(即 int0 引脚出现低电平) ,立即进入中断程序。进入中断后就立即关闭计时器 t0 停止计时,并将测距成功标志字赋值 1。如果当计时器溢出时还未检测到超声波返回信号, 则定时器 t0 溢出中断将外中断 0 关闭,并将测距成功标志字赋值 2 以表示此次测距不成 功。 前方测距电路的输出端接单片机 int0 端口,中断优先级最高,左、右测距电
27、路的 输出通过与门 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 r
28、eturn left:. ;左测距电路中断服务程序入口 ajmp return 5 系统的软硬件的调试系统的软硬件的调试 超声波测距仪的制作和调试都比较简单,其中超声波发射和接收采用 15 的超声波换能器 tct40-10f1(t 发射)和 tct40-10s1(r 接收) ,中心频率为 40khz,安装时应保持两换能器中心轴 线平行并相距 48cm,其余元件无特殊要求。若能将超声波接收电路用金属壳屏蔽起来,则可提高抗 干扰能力。根据测量范围要求不同,可适当调整与接收换能器并接的滤波电容 c0 的大小,以获得合 适的接收灵敏度和抗干扰能力。 硬件电路制作完成并调试好后,便可将程序编译好下载到单
29、片机试运行。根据实际情况可以修改 超声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距离的测量需要。根据所 设计的电路参数和程序,测距仪能测的范围为 0.075.5m,测距仪最大误差不超过 1cm。系统调试完 后应对测量误差和重复一致性进行多次实验分析,不断优化系统使其达到实际使用的测量要求。 6 心得体会心得体会 在本次设计中,我们广泛借鉴了各种设计的优点,充分考虑了整个设计中的各个环 节。包括产生 40khz 的方波,在接收电路中,对所接收方波进行滤波、放大、整形等步 骤。但由于条件和技术所限,对于很多以上所分析的在发射和接收过程中所产生的误差 没有得到有效的校正。比如温度
30、误差、硬件电路误差等。 在我们为期一个学期的设计中,我们用到了以前学到的很多知识,比如电工、单片 机、和汇编语言等。这使我们意识到,任何一件产品的产生,都不是单一知识所能实现 的。而且在电路的设计和程序的编制过程中,出现了很多意想不到的错误,让我们措手 不及,有些甚至是一些非常低级的错误,但是这些错误也同样让我们获益非浅,它使我 们意识到,研究是一个非常严肃的过程,来不得半点马虎。必须有一个严谨的态度,加 上 100的努力才有可能获得成功的喜悦。 总之,在本课题的设计过程中尽管走了很多的弯路,但是还是学到了不少知识,从 中受益匪浅。了解了超声波传感器的原理,学会了各种放大电路的分析、设计,也掌
31、握 了单片机的开发过程中所用到的开发方法和工具。动手能力与自学能力得到了锻炼与提 高,对待事物的态度也发生了变化。理论总是离不开实践的,设计制作过程中,盲目地 追寻理论知识根本不足以解决任何问题,一味的死研究课本是不会真正掌握单片机的。 只有真正动手去做才能发现问题,解决问题,提高能力。 6 心得体会心得体会 由于时间和其它客观上的原因,此次设计没有做出实物。但是对设计有一个很好的理论基础。设 计的最终结果是使超声波测距仪能够产生超声波,实现超声波的发送与接收,从而实现利用超声波方 法测量物体间的距离。以数字的形式显示测量距离。 超声波测距的原理是利用超声波的发射和接受,根据超声波传播的时间来
32、计算出传播距离。实用 的测距方法有两种,一种是在被测距离的两端,一端发射,另一端接收的直接波方式,适用于身高计; 一种是发射波被物体反射回来后接收的反射波方式,适用于测距仪。此次设计采用反射波方式。 超声波测距仪硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检测接 收电路三部分。单片机采用 at89c51 或其兼容系列。采用 12mhz 高精度的晶振,以获得较稳定时钟 频率,减小测量误差。单片机用 p1.0 端口输出超声波换能器所需的 40khz 的方波信号,利用外中断 0 口监测超声波接收电路输出的返回信号。显示电路采用简单实用的 4 位共阳 led 数码管,段码用 74
33、ls244 驱动,位码用 pnp 三极管 8550 驱动。 超声波发射电路主要由反相器 74ls04 和超声波发射换能器 t 构成,单片机 p1.0 端口输出的 40khz 的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超 声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的 发射强度。输出端采两个反向器并联,用以提高驱动能力。上位电阻 r1o、r11 一方面可以提高反向 器 74ls04 输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡时 间。压电式超声波换能器是利用压电晶体的谐振来工作的。超声
34、波换能器内部有两个压电晶片和一个 换能板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片会发生共振, 并带动共振板振动产生超声波,这时它就是一个超声波发生器;反之,如果两电极问未外加电压,当 共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收 换能器。超声波发射换能器与接收换能器在结构上稍有不同,使用时应分清器件上的标志。 超声波检测接收电路主要是由集成电路 cx20106a 组成,它是一款红外线检波接收的专用芯片, 常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率 38 khz 与测距的超声波频率 40 khz 较为接近,可
35、以利用它制作超声波检测接收电路。实验证明用 cx20106a 接收超声波(无信号时输出高 电平),具有很好的灵敏度和较强的抗干扰能力。适当更改电容 c4 的大小,可以改变接收电路的灵敏 度和抗干扰能力。 超声波测距仪的软件设计主要由主程序、超声波发生子程序、超声波接收中断程序及显示子程序 组成。我们知道 c 语言程序有利于实现较复杂的算法,汇编语言程序则具有较高的效率且容易精细计 算程序运行的时间,而超声波测距仪的程序既有较复杂的计算(计算距离时) ,又要求精细计算程序运 行时间(超声波测距时) ,所以控制程序可采用 c 语言和汇编语言混合编程。主超声波测距仪主程序 利用外中断 0 检测返回超
36、声波信号,一旦接收到返回超声波信号(即 int0 引脚出现低电平) ,立即进 入中断程序。进入中断后就立即关闭计时器 t0 停止计时,并将测距成功标志字赋值 1。如果当计时器 溢出时还未检测到超声波返回信号,则定时器 t0 溢出中断将外中断 0 关闭,并将测距成功标志字赋 值 2 以表示此次测距不成功。 前方测距电路的输出端接单片机 int0 端口,中断优先级最高,左、右 测距电路的输出通过与门 ic3a 的输出接单片机 int1 端口,同时单片机 p1.3 和 p1.4 接到 ic3a 的输 入端,中断源的识别由程序查询来处理,中断优先级为先右后左。 超声波测距的算法设计原理为超声波发生器
37、t 在某一时刻发出一个超声波信号,当这个超声波遇 到被测物体后反射回来,就被超声波接收器 r 所接收到。这样只要计算出从发出超声波信号到接收到 返回信号所用的时间,就可算出超声波发生器与反射物体的距离。在启动发射电路的同时启动单片机 内部的定时器 t0,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波 反射波时,接收电路输出端产生一个负跳变,在 int0 或 int1 端产生一个中断请求信号,单片机响应 外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。 在元件及调制方面,由于采用的电路使用了很多集成电路。外围元件不是很多,所以调试应该不 会太难。一般只要电路
38、焊接无误,稍加调试应该会正常工作。电路中除集成电路外,对各电子元件也 无特别要求。根据测量范围要求不同,可适当调整与接收换能器并接的滤波电容 c0 的大小,以获得 合适的接收灵敏度和抗干扰能力。若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力。 p1.0/t 1 p1.1/t 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 int1 13 int0 12 t0 14 t1 15 ea/vp 31 x2 18 x1 19 reset 9 rd 17 wr 16 psen 29 ale/p 30 rxd 10 txd 11 p2.0 21 p2.1
39、22 p2.2 23 p2.3 24 p2.4 25 p2.5 26 p2.6 27 p2.7 28 p0.7 32 p0.6 33 p0.5 34 p0.4 35 p0.3 36 p0.2 37 p0.1 38 p0.0 39 at89c52 u5 * 40khz入入 入入入入入入 y2 12mhz5v c4 30pf c5 30pf + 20uf reset 10k vcc a b c d e f g a 1 b 2 c 3 d 4 e 5 f 6 g 7 dpy ledres2 a b c d e f g a 1 b 2 c 3 d 4 e 5 f 6 g 7 dpy led res2
40、a b c d e f g a 1 b 2 c 3 d 4 e 5 f 6 g 7 dpy led res2 a b c d e f g a 1 b 2 c 3 d 4 e 5 f 6 g 7 dpy led res2 9012901290129012 4.7k 4.7k4.7k vcc p2.3p2.2p2.1p2.0 3.2 主程序 主程序首先要对系统环境初始化,设置定时器 t0 工作模式为 16 位定时/计数器模式, 置位总中断允许位 ea 并对显示端口 p0 和 p2 清 0;然后调用超声波发生子程序送出一个 超声波脉冲。为了避免超声波从发射器直接传到接收器引起的直射波,需要延时约 0
41、.1ms(这也就是超声波测距器会有一个最小可测距离的原因)后才可打开外中断 0 接收 返回的超声波信号。由于采用的是 12mhz 的晶振,计数器每计一个数就是 1us,所以当主 程序检测到接收成功的标志位后,将计数器 t0 中的数(即超声波来回所用的时间)按式 (32)计算,即可得被测物体与测距器之间的距离。设计时取 20时的声速为 344m/s,则有 d=(vt)/2=(172t/10000)cm (32) 其中:t 为计数器 t0 的计数值。 测出距离后,结果将以十进制 bcd 码方式送往 led 显示约为 0.5s,然后再发超声波 脉冲重复测量过程。图 3.7 所示为主程序流程图。 开始
42、 系统初始化 发送超声波脉冲 等待反射超声波 计算距离 显示结果 0.5s 主程序 start: mov sp, #4fh mov r0, #40h ;40h43h 为显示数据存放单元(40h 为最高位) mov r7, #0bh cleardisp: 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
43、 mov p0, #0ffh mov 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 djn
44、z r2,loop sjmp start1 3.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 超声波测距器主
45、程序利用外中断 0 检测返回超声波信号,一旦接收到返回超声波信 号(即 int0 引脚出现低电平) ,立即进入超声波接收中断程序。进入该中断后,就立即 关闭计时器 t0,停止计时,并将测距成功标志字赋值 1. 中断程序 ;t0 中断,65ms 中断一次 intt0: clr ea clr tr0 mov th0,#00h mov tl0,#00h setb et1 setb ea setb tr0 ;启动计数器 t0,用以计算超声来回时间 setb tr1 ;开启发超声波用定时器 t1 out: reti ;t1 中断,发超声波用 intt1: cpl vout djnz r4,retout
46、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 如果当计时器溢出时还未检测到超声波返回信号,则定时器 t0 溢出中断将外中断 0 关闭, 并将测距成功标志字赋值 2,以表示本次测距不成功。 附录附录 控制源程序 单片机汇编源程序 超声波测距器 采用
47、at89c51 12mhz 晶振 采用共阳 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 为显
48、示数据存放单元(40h 为最高位) mov r7, #0bh cleardisp: 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 ;超声波脉冲个数控制(为赋值的
49、一半) 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,loop sjmp start1 中断程序 ;t0 中断,65ms 中断一次 intt0: clr ea clr tr0 mov th0,#00h mov tl
50、0,#00h setb et1 setb ea setb tr0 ;启动计数器 t0,用以计算超声来回时间 setb tr1 ;开启发超声波用定时器 t1 out: 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
51、 45h,th0 setb 00h ;接收成功标志 reti 显示程序 ;40h 为最高位,43h 为最低位,先扫描高位 display: mov r1,#40h;g mov r5,#0e7h;g play: 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 play endout: mov p2,#0feh mov p0,#0feh ret tab: db 0c0
52、h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h, 0feh,88h,0bfh ;共阳段码表 “0” , “1” , “2” , “3” , “4” , “5” , “6” , “7” , “8” , “9” , “不亮” , “a” , “-” 延时程序 dl1ms: mov r6, #14h dl1: mov r7, #19h dl2: djnz r7, dl2 djnz r6, dl1 ret 距离计算程序 work: push acc push psw push b mov psw, #18h mov r3, 45h mov r2, 44h mov r
53、1, #00d mov r0, #17d lcall mul2by2 mov r3, #03h mov r2, #0e8h lcall div4by2 lcall div4y2 mov 400h, 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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 气候变暖对输传播性疾病检测技术需求
- Java 后端开发高级工程师考试试卷及答案
- 检验前标本采集患者隐私保护措施
- 心力衰竭生物标志物临床应用中国专家共识(完整版解读)
- 第三章 第4讲 牛顿运动定律的综合应用(学生版)
- 第二章 第6讲 专题强化:共点力的动态平衡问题(学生版)
- T∕AOPA 0100-2025 动力提升航空器结构模态耦合试验规范
- 干细胞治疗在神经退行性疾病中的作用机制研究
- 四川省宜宾县第二中学2026届全国高三统一第一次网上联考化学试题测试题含解析
- 云南省曲靖市宜良县第八中学2026年高三毕业班联考(二)化学试题含解析
- 2026重庆联合产权交易所集团股份有限公司招聘13人考试备考试题及答案解析
- 2026中国文创产品市场消费趋势与商业模式创新研究报告
- 2026中考语文试题分类汇编《作文》练习题
- 2026年辽宁省二级建造师继续教育复习真题AB卷附答案详解
- 2025年冀人版三年级科学下册全套测试卷新版
- 带状疱疹临床路径完整版
- 智慧工地方案施工方案(3篇)
- 北京2025年国家艺术基金管理中心招聘应届毕业生笔试历年参考题库附带答案详解(5卷)
- 《安全预评价提供基础资料清单》
- 15.球的运动(课件)2025-2026学年人教鄂教版三年级科学下册
- 2026年教案合集2026年春人教版八年级下册英语Unit 1~Unit 8全册教案新版
评论
0/150
提交评论