基于单片机的超声波测距仪的设计毕业论文(28页).doc
-基于单片机的超声波测距仪的设计毕业论文-第 - 23 - 页基于单片机的超声波测距仪的设计摘要 本设计介绍了基于单片机设计的超声波测距仪的原理:由STC89C51控制定时器产生超声波脉冲并计时,计算超声波自发射至接收的往返时间,从而得到测量距离。并且在数据处理中设置了距离的高低限,用四位LED数码管显示距离,同时当超过限值时用蜂鸣器实现报警。此超声波测距系统是基于51单片机,由HC-SR04超声波测距模块,数码管,阻容元件,蜂鸣器等组成,系统带有距离报警功能,报警通过蜂鸣器和LED做出反应,并且系统报警距离可通过按键随时更改。超声波测距模块可提供2cm400cm的非接触式感测功能,测距精度可达到3mm,模块包括超声波发射器,接收器以及控制电路。本作品成本低,可抗性相对较高,测得的距离能够清晰稳定的显示在四位数码管上,且小巧轻便,应用起来比较方便。关键词:STC89C51;超声波;测距Ultrasonic rangefinder design based on single chip microcomputerAbstractThis design describes the chip design based on the principle of ultrasonic range finder:when STC89C51 controlled the timer that generates an ultrasonic pulse and timing ,calculated the round-trip time from the ultrasonic transmitter to the receiver , resulting in the measured distance. In the data processing and set high and low limit of distance, with four LED digital display distance, but when the limit is exceeded an alarm buzzer. This ultrasonic ranging system is based on 51 single, the HC-SR04 ultrasonic ranging module, LED, resistive and capacitive components, buzzer, etc., with distance alarm system, alarm buzzer and respond by LED, and the system can be changed at any time from the alarm by pressing a button. Ultrasonic Ranging Module provides 2cm-400cm non-contact sensing capabilities, ranging accuracy can reach 3mm, module comprises an ultrasonic transmitter, a receiver and a control circuit. The work of low cost, relatively high resistance, the measured distance can be displayed on a clear and stable four digital tube, and the compact and light weight, the application more convenient. Keywords: AT89C51; ultrasound; ranging目录第一章 引言11.1 课题研究的背景11.2 课题的提出及研究意义11.2.1 课题的提出11.2.2 课题的研究意义2第二章 超声波的介绍及超声波测距的原理32.1 超声波的简介32.1.1 什么是超声波32.1.2 超声波的特性及特点32.1.3 超声波的应用42.2 超声波测距的原理42.2.1 超声波发生器42.2.2 压电式超声波发生器的原理52.2.3 超声波测距的原理5第三章 方案设计及元件选型63.1设计方案63.1.1 设计思路63.1.2 系统最终方案63.2 STC89C51单片机的介绍63.2.1 STC89C51单片机的功能73.2.2 STC89C51单片机的主要特性73.2.3 STC89C51的管脚说明83.3 HC-SR04超声波发射接收模块93.3.1超声波模块的特点93.3.2基本的工作原理93.3.3引脚介绍103.3.4电气参数10第四章 硬件设计114.1 系统结构设计114.2 接收显示终端电路114.3 超声波发射电路124.4 超声波接收电路134.5 报警电路144.6 电源电路15第五章 软件设计165.1 软件总体设计165.2 主程序设计165.2.1 主程序设计思路165.2.2 主程序流程图175.2.3 主程序及程序说明17 5.3显示模块程序设计185.3.1 程序设计思路185.3.2 显示子程序及程序说明185.4 中断模块程序设计195.4.1 设计思路195.4.2 中断程序及程序说明195.5 计算子程序205.5.1 程序设计思路205.5.2 计算子程序及程序说明205.6 上下限调整子程序215.6.1 程序设计思路215.6.2 程序及程序说明21第六章 调试与分析246.1 硬件调试246.2 软件调试246.3 结果分析256.4 误差分析25总结25参考文献27附录28附录一: 超声波测距原理图28附录二: HC-SR04超声波模块实物图28附录三: 测距仪实物图29附录四: 程序29第一章 引言1.1 课题研究的背景利用超声波测量已知标准位置与目标物体表面之间距离的方法叫做超声波测距法。超声波是指频率在20kHz以上的声波,它属于机械波的范畴。近年来,随着电子测量技术的发展,运用超声波精确测量已成可能。随着经济发展,电子测量技术应用越来越广泛,而超声波测量精确高,成本低,性能稳定则备受青睐。由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如超声波测距仪和物位 测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求, 为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器。随着科学技术的快速发展,超声波将在测距仪中的应用越来越广。但就目前技术水平来说,人们可以具体利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。展望未来,超声波测距仪作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求。如对于城市给排水系统设计中箱涵排水疏通移动机器人的自动控制系统的设计,其控制的核心部分就是超声波测距仪的研制。所以说超声波测距仪的研究有一定的现实意义。1.2 课题的提出及研究意义1.2.1 课题的提出测距的原理和方法有很多,根据其信息载体的不同可归纳为光学方法、无线电方法和超声波方法。前两者在某些地方有局限性,相比之下,超声波方法具有突出的优点,首先,超声波对色彩、光照度不敏感,可用于测量透明及漫反射性差的物体(如玻璃、抛光体);其次,超声波对外界光线和电磁场不敏感,可用于黑暗、有灰尘或烟雾、电磁干扰强、有毒等恶劣环境中;最后,超声波传感器结构简单、体积小、费用低,信息处理简单可靠,易于小型化和集成化。因此超声波作为非接触测量手段,己越来越引起人们的重视。毋庸置疑,未来的超声波传感器将于自动化智能化接轨,与其他的传感器集成和融合,形成多传感器。有很大的发展前景。1.2.2 课题的研究意义超声波测距是一种极有潜力的方法,近距范围内超声测距有其不受光线影响、结构简单、成本低等特点。超声测量另一个突出优点是:环境介质可以为空气、液体或固体,适用范围广泛。但就目前技术水平来说,人们可以具体利用的传感技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。一些传统的距离测量方式在某些特定的场合的使用存在着不可避免的缺陷,如:液面测量就是一个距离测量,传统的电极法是采用差位分布电极,通过给电或脉冲检测液面,电极长期浸泡在水中或其它液体中,极易被腐蚀、电解,从而失去灵敏性。而利用超声波测量距离可以很好地解决这一问题。以单片机为核心的测距仪器可以实现预置、多端口检测、显示、报警等多种功能,并且成本低、精度高、操作简单、工作稳定、可靠。以8051为内核的单片机系列,其硬件结构具有功能部件齐全、功能强等特点。尤其值得一提的是,8051单片机除8位CPU外,还具备一个很强的位处理器,它实际上是一个完整的位微计算机,即包含完整的位CPU,位RAM、ROM(EPROM),位寻址寄存器、I/O口和指令集。第二章 超声波的介绍及超声波测距的原理2.1 超声波的简介2.1.1 什么是超声波声波是物体机械振动状态(或能量)的传播形式。所谓振动是指物质的质点在其平衡位置附近进行的往返运动形式。譬如,鼓面经敲击后,它就上下振动,这种振动状态通过空气媒质向四面八方传播,这便是声波。超声波是指振动频率大于20000Hz以上的,其每秒的振动次数(频率)甚高,超出了人耳听觉的一般上限(20000Hz),人们将这种听不见的声波叫做超声波。超声和可闻声本质上是一致的,它们的共同点都是一种机械振动模式,通常以纵波的方式在弹性介质内传播,是一种能量的传播形式,其不同点是超声波频率高,波长短,在一定距离内沿直线传播具有良好的束射性和方向性。超声波在媒质中的反射、折射、衍射、散射等传播规律,与可听声波的规律没有本质上的区别。但是超声波的波长很短,只有几厘米,甚至千分之几毫米。与可听声波比较,超声波具有许多奇异特性:传播特性超声波的波长很短,通常的障碍物的尺寸要比超声波的波长大好多倍,因此超声波的衍射本领很差,它在均匀介质中能够定向直线传播,超声波的波长越短,该特性就越显著。功率特性当声音在空气中传播时,推动空气中的微粒往复振动而对微粒做功。声波功率就是表示声波做功快慢的物理量。在相同强度下,声波的频率越高,它所具有的功率就越大。由于超声波频率很高,所以超声波与一般声波相比,它的功率是非常大的。空化作用当超声波在液体中传播时,由于液体微粒的剧烈振动,会在液体内部产生小空洞。这些小空洞迅速胀大和闭合,会使液体微粒之间发生猛烈的撞击作用,从而产生几千到上万个大气压的压强。微粒间这种剧烈的相互作用,会使液体的温度骤然升高,起到了很好的搅拌作用,从而使两种不相溶的液体(如水和油)发生乳化,且加速溶质的溶解,加速化学反应。这种由超声波作用在液体中所引起的各种效应称为超声波的空化作用。2.1.2 超声波的特性及特点超声波在媒质中的反射、折射、衍射、散射等传播规律,与可听声波的规律没有本质上的区别。但是超声波的波长很短,只有几厘米,甚至千分之几毫米。与可听声波比较,超声波具有许多奇异特性:(1) 超声波可在气体、液体、固体、固熔体等介质中有效传播。 (2) 超声波可传递很强的能量。 (3) 超声波会产生反射、干涉、叠加和共振现象。 (4) 超声波在液体介质中传播时,可在界面上产生强烈的冲击和空化现象。 (5) 超声波在传播时,方向性强,能量易于集中。 (6) 超声波能在各种不同媒质中传播,且可传播足够远的距离。 (7) 超声波与传声媒质的相互作用适中,易于携带有关传声媒质状态的信息。超声波是一种波动形式,它可以作为探测与负载信息的载体或媒介(如B超等用作诊断);超声波同时又是一种能量形式,当其强度超过一定值时,它就可以通过与传播超声波的媒质的相互作用,去影响,改变以致破坏后者的状态,性质及结构 。2.1.3 超声波的应用超声波在工农业生产中有极其广泛的应用。包括超声波检测、超声波探伤、超声波诊断、超声波治疗等。超声波在工业中可用来对材料进行检测和探伤,可以测量气体、液体和固体的物理参数,可以测量厚度、液面高度、流量、粘度和硬度等,还可以对材料的焊缝、粘接等进行检查。超声波清洗和加工处理可以应用于切割、焊接、喷雾、乳化、电镀等工艺过程中。超声波清洗是一种高效率的方法,已经用于尖端和精密工业。大功率超声可用于机械加工,使超声波在拉管、拉丝、挤压和铆接等工艺中得到应用。应用在医学中的超声波诊断发展甚快,已经成为医学上三大影象诊断方法之一,与X线、同位素分别应用于不同场合,例如超声波理疗、超声波诊断、肿瘤治疗和结石粉碎等。在农业中,可以用超声波对有机体细胞的杀伤的特性来进行消毒灭菌,对作物种子进行超声波处理,有利于种子发芽和作物增产。此外超声波的液体处理和净化可应用于环境保护中,例如超声波水处理、燃油乳化、大气除尘等。微波超声的重点放在微波电子器件,已经制成了超声波延迟线、声电放大器、声电滤波器、脉冲压缩滤波器等。超声波测距主要应用于倒车雷达、建筑施工工地以及一些工业现场,例如:液位、井深、管道长度等场合。在机器人作为一种能代替人工作业的智能机器,有着广泛的应用前景的前提下,其关键技术取决于机器人失却系统设计的精确于否。超声波传感器以其价格低廉、硬件容易实现的优点,被广泛用用作测距传感器,实现定位以及环境建模。超声波测距作为辅助视觉系统与其它视觉系统(如CCD图像传感器)配合使用,可实现整个视觉功能,具有自动探测前方障碍物、自动减速或刹车的功能,是未来高级小汽车和载重车辆必备的安全行驶辅助装置。日本、美国和欧洲等各大汽车公司都已投入了相当的人力、物力开发在高级汽车上使用的防撞与安全预警系统,包括毫米雷达、CCD摄像机、GPS、和高档微机等。2.2 超声波测距的原理2.2.1 超声波发生器为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括电压型、磁致伸缩型和电动型等:机械方式有加尔统笛、液哨和气流旋笛等。他们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同、目前较为常用的是压电式超声波发生器。2.2.2 压电式超声波发生器的原理 压电式超声波发生器实际上是利用压电晶体的谐振来工作的。它有两个压电晶片和一个共振板,当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未加电压,当共振板接收到超声波时,将压迫压电晶片做振动,将机械能转换成电信号,这时它就是超声波接收器了。2.2.3 超声波测距的原理超声波是利用反射的原理测量距离的,被测距离一端为超声波传感器,另一端必须有能反射超声波的物体。测量距离时,将超声波传感器对准反射物发射超声波,并开始计时,超声波在空气中传播到达障碍物后被反射回来,传感器接收到反射脉冲后立即停止计时,然后根据超声波的传播速度和计时时间就能计算出两端的距离。测量距离D为:式中v-超声波在空气中传播的速度 t-超声波从发送到接收到所用的时间 第三章 方案设计及元件选型测量距离方法有很多种,但超声波测距以其非接触式、携带方便等优点被人们广为应用,本章主要讲述本设计的设计方案以及元件的选型。3.1设计方案3.1.1 设计思路我们可以通过尺、激光等测距原理来实现距离测量,但通过尺测量速度慢,效率低;激光测距精度高速度快,但成本高。本文所提出的超声波测距仪实现了低成本、电路简单、使用方便、相对高的精度等优点。因为超声波在标准空气中传播速度为331.45米/秒,由单片机负责计时,单片机使用12.0M晶振,所以此系统测量精度理论上可以达到毫米级。由于超声波指向性强,能量消耗缓慢,在介质中传播距离远,因而超声波可以用于距离测量。利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到要求。而以单片机为核心的测距仪器可以实现预置、多端口检测、显示、报警等多种功能,并且成本低、精度高、操作简单、工作稳定、可靠。以8051为内核的单片机系列,其硬件结构具有功能部件齐全、功能强等特点。尤其值得一提的是,除8位CPU外,还具备一个很强的位处理器,它实际上是一个完整的位微计算机,即包含完整的位CPU,位RAM、ROM(EPROM),位寻址寄存器、I/O口和指令集。所以,8051有频率时,则其输出引脚的电平将从“1”变为“0”,这种电平的变化可以作为单片机对接收探头的接收情况进行实时监控,可对测得数据进行优化处理,并采用高低限的报警,STC89C51还控制显示电路,用动态扫描法实现LED数字显示。根据本设计的要求,并综合考虑各种因素,本文选择STC89C51单片机作为主控制模块,它控制40KHZ脉冲的触发和超声波从发射到接受到的时间差,并显示障碍物到传感器的距离;用发光二极管和蜂鸣器实现报警提示电路,用HC-SR04超声波模块实现超声波的发射与接收。3.1.2 系统最终方案通过各个模块的分析与论证,并综合考虑各种因素,决定系统各模块的最终方案如下: (1)控制模块:用STC89C51单片机作为主控制器; (2)超声波发射接收模块:HC-SR04超声波模块; (3)显示模块:四位一体共阳极数码管; (4) 报警模块:蜂鸣器和发光二极管。3.2 STC89C51单片机的介绍3.2.1 STC89C51单片机的功能单片机即单片微型计算机SCMC(Single Chip MicroComputer)。它把构成一台计算机的主要功能部、器件,如CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)、中断系统、定时/计数器等集中在一块芯CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)制功能,所以又称为微控制器MCU(Microcontroller Unit)。相对于普通微机,单片机的体积要小得多,一般嵌入到其他仪器设备里,实现自动检测与控制,因此也称为嵌入式微控制器EMCU(Embedded Microcontroller Unit)。本设计的MCU采用的是DIP(Dual In-line Package塑料双列直插式)封装的STC89C51高性能8位单片机。STC89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的STC89C51提供了高性价比的解决方案。STC89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。引脚图如图3.1所示。 图3.13.2.2 STC89C51单片机的主要特性(1) 与MCS-51 兼容;(2) 4K字节可编程FLASH存储器;(3) 寿命:1000写/擦循环;(4) 数据保留时间:10年(5) 全静态工作:0Hz-24MHz;(6) 三级程序存储器锁定;(7) 128×8位内部RAM;(8) 32可编程I/O线;(9) 两个16位定时器/计数器;(10)5个中断源;(11)可编程串行通道;(12)低功耗的闲置和掉电模式;(13)片内振荡器和时钟电路; STC89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,STC89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。3.2.3 STC89C51的管脚说明(1)主电源引脚VSS第20脚,电路接地电平。VCC第40脚,正常运行和编程校验+5V电源。(2) 时钟源XTAL1第19脚,一般外接晶振的一个引脚,它是片内反相放大器的输入端口。当直接采用外部信号时,此引脚应接地。XTAL1第18脚,接外部晶振的另一个引脚,它是片内反相放大器的输出端口。当采用外部振荡信号源泉时,此引脚为外部振荡信号的输入端口,与信号源相连接。(3) 控制、选通或复用RST/VPD第9脚,RESET复位信号输入端口。当单片机正常工作时,由该引脚输入脉宽为2个以上机器周期的高电平复位信号到单片机。在VCC掉电期间,此引脚(即VPD)可接通备用电源,以保持片内RAM信息不受破坏。第30脚,输出允许地址锁存信号。当单片机访问外部存储器时,ALE信号的负跳变将P0口上的低8位地址送入锁存器。在非访问外部存储器期间,ALE仍以1/6振荡频率固定不变地输出,因此它可对个输出或用于定时目的。要注意的是:每当访问外部存储器时将跳过一个ALE脉冲。为第二功能,当对片内程序存储器编程写入时,此引脚作为编程脉冲输入端。第29脚,访问外部程序存储器选能信,低电平有效。当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的 信号不出现。:外部访问允许。欲使CPU公访问外部程序存储器(地址0000H-FFFFH),端必须保持低电平(接地)。需注意的是:如果加密位LBI被编程,复位时内部会锁存端状态。Flash存储器编程时,该引脚加上+12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VPP。(4) 多功能I/O端口P0口第3239脚,8位漏极开路双向I/O端口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问数据存储器或程序存储器时,这组口线分时转换地址和数据总线复用,在访问期间激活内部上拉电阻。P1口第18脚,具有内部上拉电路的8位准双向I/O端口。在对片内程序存储器(EPROM型)进行程序编程和校验时,用做低8位地址总线。P2口第2128脚,具有内部上拉电路的8位准双向I/O端口。当单片机访问存储器时,用做高8位地址总线;在对片内程序存储器(EPROM型)进行程序编程和校验时,亦用做高8位地址总线。P3口第1017脚,具有内部上拉电路的8位准双向I/O端口。双功能复用口,可驱动4个LS型TTL负载。它还提供特殊的第二变异功能。它的每一位均可独立定义为第一功能的I/O口或第二变异功能。3.3 HC-SR04超声波发射接收模块3.3.1超声波模块的特点 本模块性能稳定,测量精度高,盲区小。 HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达到3mm,模块包括超声波发生器、超声波接收器以及控制电路。3.3.2基本的工作原理(1)采用IO口TRIG触发测距,给至少10us的高电平信号。(2)模块自动发送8个40khz的方波,自动检测是否有信号输出。(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测量距离=(高电平的时间*声速(340m/s)/2;本模块的使用方法简单,一个控制口发一个10us以上的高电平,就可以在接收口等待高电平输出,一旦有高电平的输出,则定时器就开始定时,当此口变为低电平时,则定时结束并读取定时器的值,此时定时器的值就为超声波从发射到接收到的时间,然后在根据计算距离的公式方可求出所要测量的距离值,与此同时超声波模块每隔400ms发射一次超声波,如此不断的周期测量,即可以达到移动测量的目的。3.3.3引脚介绍 HC-SR04超声波模块有四个引脚,分别是:VCC、GND、TRIG和ECHO。如图3.2所示。其中,VCC接5V的电源电压,GND为接地引脚,TRIG为触发控制信号输入,ECHO为回响信号输出。 图3.2模块引脚图3.3.4电气参数超声波模块的各个电气参数如表3-1所示电气参数HC-SR04超声波模块工作电压DC5V工作电流15mA工作频率40HZ最远射程4m最近射程2cm测量角度15度输入触发信号10us的TTL脉冲 表3-1 HC-SR04的电气参数第四章 硬件设计4.1 系统结构设计超声波测距仪系统结构如图4.1所示。它主要由单片机、超声波发射及接收电路、超声波传感器、键盘、LED显示电路、报警电路及电源电路组成。接收显示终端以单片机为核心连接数码管,超声波发送与接收端以单片机为核心分别连接功率放大电路与超声波接收电路。系统主要功能包括: (1)超声波的发射、接收,并根据计时时间计算测量距离; (2)LED显示器显示距离; (3)键盘接收用户命令并处理; (4)报警电路用于上下限报警。单片机发出40kHZ的信号,通过超声波发射器输出;超声波接收器接收到的超声波信号后启动单片机中断程序,测得时间为t,等到把数据送到单片机后使用软件对超声波的传播速度进行调整,使测量精度能够达到要求。再由软件进行判别、计算,得出距离数并送LED显示。4.2 接收显示终端电路 发光二极管的缩写是LED,在每个数码管里都有8只发光二极管,它们分别记做a、b、c、d、e、f、g、dp,其中dp是小数点,每一只发光二极管都有一根电极引到外部的引脚上,而另外一只二极管的引脚就连接在一起同样也引到外部引脚上,此引脚就记作公共端COM。显示电路采用简单实用的4位共阳 LED数码管,位选为P22P25,使用 9012三极管作为位驱动。本电路的显示方式属于动态方式, 各显示位段引脚a 到 dp并联在一起, 共用直接连到单片机P0端。可以稳定清晰显示测量结果。如电路图4.2所示。图4.2数码管显示电路4.3超声波发射电路本设计采用定时中断的方式产生40KHZ的方波信号,发射电路主要由反向器74LS04和超声波换能器T40构成,单片机P2.6端口输出的40kHz方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推挽形式将方波信号加到超声波换能器两端可以提高超声波的发射速度。输出端采用两个反向器并联,用以提高驱动能力。两个上拉电阻R8和R9一方面可以提高反向器74LS04输出高电平的驱动能力;另一方面可以增加超声波换能器的阻尼效果,以缩短其自由振荡的时间。同时,为了调试方便和修改,超声波发射模块和单片机之间的借口采用排针式相连。超声波发射电路如图4.3所示。 图4.3 超声波发射电路4.4超声波接收电路超声波接收电路主要由专用红外遥感接收芯片CX20106A和R40超声波换能器组成,集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,可以利用它制作超声波检测接收电路,实验证明,用CX20106A接收超声波具有很高的灵敏度和较强的抗干扰能力。CX20106A有8个管脚,当换能器接收到回波信号时,管脚7就输出一个低电平。接收的回波直接连接到INT0端口,通过低电平来触发单片机的外部中断,并有单片机计算数据,送达数码管显示,从而实现了测距的目的。超声波接收电路如图4.3所示。 图4.4超声波接收电路超声波模块T40、R40和CX20106A模块的对比如表4-2所示名称HC-SR04模块T40、R40和CX20106模块精度3mm1cm最远射程4m2-3m最近射程2cm10cm测量角度15o成本17元24元 表4-2 HC-SR04模块与T40、R40和CX20106A模块的对比由4-2中可以看出,使用HC-SR04超声波模块成本低、精度高、射程远;同时由于使用CX20106X芯片和T40、R40制成的超声波发射接收模块,必须保证接收到的信号为40KHZ,否则无法解调出来,即无法计算出距离。HC-SR04超声波模块就解决了这个问题,其发射信号的频率比较稳定,发射超声波的个数比较合理。同时使用HC-SR04模块编程也比较简单,而第二种模块的编程则相对复杂,而且发射出的超声波频率不稳定,与程序和硬件且有关系,调试相对麻烦。综上所述,本设计采用超声波模块HC-SR04来实现超声波的发射与接收,即使用HC-SR04超声波模块来测距。4.5报警电路声光报警电路主要由一个有源蜂鸣器、两个发光二极管、一个PNP三极管等组成。D1表示绿色发光二极管,D2红色发光二极管。当障碍物到传感器的距离小于预置距离时,将P2.1置0,使得红色二极管闪烁,同时,将P1.0置0,使得三极管的发射极与基极导通,有足够使得蜂鸣器发出声音的频率电流流过蜂鸣器,此时蜂鸣器发出响声。从而实现声光报警提示。声光报警电路如图4.5所示。图4.5 声光报警电路4.6电源电路本设计采用的是USB供电,通过制成的+5V电源电路,通过整流、滤波、稳压,最后输出所需的电压。电源电路图如图4.6所示。 图4.6电源电路第五章 软件设计5.1 软件总体设计我们知道C语言程序有利于实现较复杂的算法,汇编语言程序则具有较高的效率且容易精细计算程序运行的时间,而超声波测距仪的程序既有较复杂的计算(计算距离时),又要求精细计算程序运行时间(超声波测距时),所以控制程序可采用C语言和汇编语言混合编程。 了编程,这样能使设计中所用到的公式能方便快捷的体现和实现,又缩 因为本设计对时间要求精度较高的部分全部由单片机内部的定时器完成,而虽然温度传感器的读写对时间精度要求也高,但经详细计算所得出的C程序已被广泛应用,故直接借用已有程序也能作到对温度的准确读取,所心本设计全部使用C语言编程,这样能使设计中所用到的公式能方便快捷的体现和实现,又使得程序变得更加简洁明了。超声波测距器的软件设计主要由主程序、超声波发生子程序、超声波接收中断子程序、距离计算子程序、显示子程序、键盘扫描处理程序、上下限调整程序等组成。下面说明超声波测距器的算法。 距离计算公式: 其中,D是被测物与测距器的距离,c是超声波在当前温度下的速度,t是发送和接收超声波所经历的时间。 图 5.1简单原理图5.2 主程序设计5.2.1 主程序设计思路主程序首先要对系统环境初始化,设置定时器工作模式为16位定时、计数器模式,置位总中断允许位EA并对显示端口P0和P2清0;然后调用超声波发生子程序送出一个超声波脉冲。为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延迟0.1ms后才打开外中断0(以免接收器直接接收到发送端的发送波),接收返回的超声波信号。由于采用12MHZ晶振,计数器每记一个数就是1us,取25时的超声波传输速度v=344m/s,则其中time为中断T0的计数值。测出距离后,结果以十进制BCD码方式送往LED显示约0.4S,然后再发出超声波脉冲重复测量。5.2.2 主程序流程图主程序流程图如下:图5.2 主程序框图5.2.3 主程序及程序说明 void main() TMOD=0x11; TH0=0;TL0=0; TH1=(65535-4000)/256;/定时4msTL1=(65535-4000)%256;ET0=ET1=TR1=EX0=EA=1; IT0=1;PX0 = 1;trig=0;echo=0;up*=10;down*=10;while(1) while(!echo); TR0=1; while(echo); TR0=0; Conut();if(S<=4000)&&(flag!=1)if(S>up)alarm=red=0;green=1;else if(S<down)alarm=green=0;red=1;else if(S<=up)&&(S>=down)alarm=1;red=green=1; elsered=green=alarm=1; 在主程序中,首先对系统进行初始化,初始化包括将T0、T1设置为方式1,定时4ms以及允许T0、T1中断以及开启总中断等。当echo为低电平时等待,当echo=1时,即收到回响信号时开始计数,在这个过程中,如果echo一直为高电平则计数并等待,当变为低电平时则关闭计数,并计算出距离值。若距离没有超出超声波的测量范围,并且时间没有溢出,则根据距离与上下限的比较判断声光报警的情况,否则关闭声光报警系统。5.3 显示模块程序设计5.3.1 程序设计思路显示模块由于要实现三位数码管的动态显示,所以采用动态扫