基于单片机的超声波测距系统设计.docx
xx(论文)xx毕业设计论文任务书课题名称基于单片机的超声波测距系统设计学 院 xx专业班级xx姓 名xx学 号xx毕业设计论文的主要内容及要求本毕业设计(论文)要求使用单片机技术来设计超声波测距系统,能实现常规的距离测量功能。本设计的主要要求包括1. 掌握AT89C51单片机的基本理论和编程方法;2. 掌握超声波测距的理论和方法;3. 掌握LCD1602液晶显示屏显示以及报警电路的设计方法;4. 系统要实现测距功能;5. 当测出距离小于某一数值时,给出报警;6. 分析温度对测距的影响;7. 分析该系统测距的精度。 指导教师签字_______________ 目 录摘要1Abstract21. 绪论31.1研究背景和意义31.2超声波测距的研究现状31.3 本文的主要内容42. 基于单片机的超声波测距系统总体方案52.1设计内容及要求52.2 基于单片机的超声波测距总体设计方案53. 测距系统硬件电路设计63.1 单片机控制模块63.1.1 单片机简介63.1.2 STC89C52 内部组成63.1.3 STC89C52 外部结构及功能73.1.4 单片机最小系统83.2 温度检测电路103.2.1 数字温度传感器DS18B20简介103.2.2 DS18B20的工作原理113.2.3 DS18B20工作时序123.2.4 温度对超声波速度的影响143.3 超声波传感器模块143.3.1测距方案比较143.3.2 HC-SR04超声波模块简介及电路连接153.3.3 超声波测距原理163.3.4 超声波时序及基本操作173.4 LCD1602液晶显示模块183.4.1 LCD1602液晶显示模块简介183.4.2 LCD1602液晶显示模块电路的连接183.4.3 LCD1602液晶显示模块的主要操作193.5 蜂鸣器和指示灯报警电路204. 测距系统软件程序设计214.1 Keil开发环境及开发语言选择214.1.1编程语言的选择214.1.2 Keil开发环境214.2 系统软件设计214.2.1主程序模块224.2.2 超声波测距模块234.2.3显示模块244.2.4温度检测模块274.2.5 头文件声明模块305. 调试过程及误差分析315.1实物测试图315.2实验结果335.3 误差分析33结 论35参考文献36致谢37附录一元件清单38附录二原理图39附录三源程序40摘要超声波是声波的一种,具有指向性好、穿透能力强、易于集中、能量消耗慢等优点,因此,在利用传感技术的测距方案中,超声波测距得到了广泛应用。主要应用于倒车提醒、建筑工地、工业现场等的距离测量。此次设计详细阐述了超声波传感器的原理及特性,以及STC89C52单片机的特点和性能,并在原有超声波测距的基础上分析了超声波测距的不足并加以改进,将温度变化引起的误差考虑在内,添加了超声波测距的温度补偿,并使用液晶显示屏显示距离和温度,并且在超出预定距离时发出警告。该系统由STC89C52单片机、HC-SR04超声波传感器、LCD1602液晶显示屏、DS18B20温度传感器、蜂鸣器、发光二极管、干电池电路组成,该系统具有结构简单、成本低、操作简单等优点,可以在许多场合应用。关键词 单片机;超声波测距;温度补偿;温度显示;报警AbstractUltrasonicwave is a kind of sound wave with such properties as strong directivity, strong penetration, easy to focus and energy consumption. So ultrasonic wave has been widely used in the application of the distance measurement technology. It can be used for distance measurement in reverse warning, construction site and industrial field.The principle and characteristics of ultrasonic sensor, and the features and perance of STC89C52 microcontroller, are introduced in detail. Based on the principle of original distance measurement by ultrasonic, the disadvantages of distance measurement by ultrasonic are analyzed and the improvement is presented. The error caused by the change of temperature is taken into account. The temperature compensation of ultrasonic distance measurement is considered. The distance and temperature can be displayed on LCD. When the measured distance reach in a certain value, the alarm will occur. The system consists of STC89C52 microcontroller, HC-SR04 ultrasonic sensor, LCD 1602 display, DS18B20 temperature sensor, buzzer, light-emitting diode and battery circuit. Some advantages are found by testing the system, such as simple structure, low cost, simple operation. It can be applied in many circumstances. Keywordsmicrocontroller; ultrasonic distance measurement; temperature compensation; display of temperature; alarm1. 绪论1.1研究背景和意义根据资料显示斯帕拉捷最早由蝙蝠在黑夜里可以自由的飞翔而发现了超声波,后来经过大量的实验研究得出,这是因为蝙蝠可以发射出一种人听不到的声音,并且它们用可以根据这个声音来躲避障碍物1。1912年震惊世界的Titanic号首航碰撞到冰山后的沉没事件促使科学家提出要利用声学的方法来预测冰山,随后的世界第一次世界大战中进一步促进了超声波的研究。近些年来,随着超声波技术研究的不断深入,再加上其具有的高精度、无损、非接触等优点,超声波的应用变的越来越普及。例如,传统的用皮尺测量马路的宽度时,需要横跨一条马路,妨碍人、车的来往同行,还容易造成意外事故的发生。并且测量精度低。又如对于快速移动的物体进行测量时更加复杂和困难,难以连续测量,并且测量误差很大,并且耗费大量的人力资源,此时如果利用超声波进行测距就可以省去很多的麻烦,并且可以提高测量的精度。与其他的方法相比,超声波测距系统电路易实现、结构简单、造价低,且超声波在传播过程中不受烟雾、空气能见度、灰尘等的影响,在恶劣环境中具有一定得适应能力,因此已经广泛的应用在机械制造、电子冶金、航海、航空、石油化工、交通等工业领域。当然,超声波在实际应用中也有很多的局限性。一是超声波在空气中的衰减很大,由于测量距离的不同造成回波信号的起伏,使得回波到达时间的测量产生较大的误差;二是环境的温度和风速会对测量造成一定的影响。因此对超声波测量的精度产生了一定的影响,限制了超声波测距在测量精度要求很高的场合的使用。1.2超声波测距的研究现状近十年来,国内科研人员在超声波回波信号处理方法、新型超声波换能器研发、超声波发射脉冲选取等方面进行了大量理论分析与研究,并针对超声测距的常见影响因素提出温度补偿、接收回路串入自动增益调节环节等提高超声波测距精度的措施。超声波测距中,超声波回波处理方法的优劣,直接关系到回波前沿的定位精度和渡越时间的测量精度,进而决定着超声波探测定位系统的精度和反应速度。研究人员针对常规相关峰插值方法在多倍插值的情况下,计算复杂、时延估计精度差等缺陷,结合超声回波信号的窄带通特性和相关峰细化原理,提出了直接提取相关函数包络和包络峰细化的算法,并分析了计算复杂度;并且还针对超声波换能器的带宽特性和单脉冲回波特性,对M序列参数设计方法进行分析。他们借鉴雷达信号处理中的脉冲压缩技术,提出了基于FFT的伪随机码包络相关快速时延估计的算法,信号解调与匹配相关融合,减少了计算量。目前,国内学者对超声波回波信号处理算法的研究已经日渐成熟,但其作为超声波探测定位的关键技术,仍将是一个重要的研究方向。随着超声波回波信号处理方法的不断完善,如何研发新型、高性能超声波换能器以进一步拓宽超声波测距的应用空间,作为解决超声波测距系统不足的根本手段,越来越受到国内学者关注。研究人员通过对以Vmos场效应管为开关元件的超声波发射电路进行分析,发现激励脉冲宽度对超声波换能器的发射功率影响极大,换能器取得最大发射功率所对应的激励脉冲宽度为其谐振周期的一半。该分析结果对新型超声波换能器的发射电路的设计具有一定的指导作用。目前国产低功率超声波探头,一般不能用于探测15m以外的物体,美国AIRMAR公司生产的Airducer AR30超声波传感器的作用距离可达30m,但价格较高。现阶段,国内一些科研人员在超声波发射电路的简化、发射功率和频率的控制、最大探测距离的提高等方面对新型超声波换能器进行研究并取得了一定成果,但对新型超声换能器制作材料、超声波发生机理创新等方面的研究尚有不足。目前市场上普通的超声波测距系统,一般采用发射单超声脉冲的方法,这种方法在测距精度和可靠性等方面的研究已较成熟。但是当它采用较高频率超声波时,会因空气吸收而较快衰减,导致有效测量距离降低; 在通过降低频率以增大测距范围时,测距的绝对误差又会增大。因而该方法存在测量分辨力和有效作用距离的矛盾,极大制约了超声波传感器应用领域的拓宽。脉冲压缩技术和双频超声测距方法的出现,在一定程度上使超声波测距系统同时具备了窄脉冲的高分辨力和宽脉冲的强检测能力,但仍旧不能满足高精度测量的要求。1.3 本文的主要内容 本文介绍了基于单片机的超声波测距的实现方法和实现原理,全文共分为五章。(1)第一章介绍了超声波测距的背景和意义,以及超声波的研究现状。(2)第二章介绍了此次设计的总体方案和具体的设计要求。(3)第三章介绍了此次设计的硬件部分,包括单片机控制模块、超声波测距模块、温度检测模块、报警模块、电源模块,分别讲述了各个模块的工作原理、各个器件的电气参数以及与其他电路的连接方法。(4)第四章介绍了此次设计的软件部分,详细阐述了此次设计程序的编写思路以及程序的流程图,还介绍了各个模块端口与单片机的连接,也就是头文件中对端口的声明。(5)第五章给出了此次设计的实验结果和误差的分析,给出了设计的实物图片、未超过报警距离的测试图片和超过报警距离的测试图片,用表格的方法列出了测试的实验结果和当时的温度以及测试的误差,并分析了误差的来源。2. 基于单片机的超声波测距系统总体方案2.1设计内容及要求此次设计的内容包括硬件电路连接和软件设计两部分。由温度传感器进行温度测量后计算得出当前温度下的超声在空气中的传播速度,由定时器计算得出超声波传感器发射超声波与接收到超声波回波之间的时间差。就可以计算得出超声波探头与障碍物之间的距离,再由液晶显示器显示距离。当距离小于某一数值或者超出测距范围时,蜂鸣器发出声音进行报警。具体设计要求如下(1)实现超声波测距功能,当距离小于某一数值时,给出报警;(2)分析超声波测距的精度;(3)设计出相应的电子电路和软件流程及源代码,并制作出实物。2.2 基于单片机的超声波测距总体设计方案此次设计包括硬件和软件设计两部分,模块划分为数据采集模块、报警模块、控制模块、显示模块。电路结构可以划分成单片机最小系统、超声波传感器、电源、蜂鸣器、温度传感器、显示电路、发光二极管显示电路。其系统总体设计框图如图2.1所示。图2.1超声波测距总体框图就此次设计来说,单片机是设计的核心单元,用三节5号干电池进行供电。开始先通过单片机驱动DS18B20温度传感器,测出当前的温度,根据公式算出来当前超声波在空气中的传播速度,然后由控制端口P2.0Trig引脚发出一个10s以上的高电平信号,发射超声波3。超声波经过反射物反射回来后,由传感器接收端接收。通过等待超声波接收口P2.1(Echo引脚)有高电平输出,一旦有高电平输出立即打开定时器开始计时。当Echo端口变成低电平时计时结束,读取定时器的值,即为测距时间。通过公式算出路程,并在显示屏上显示出来距离和此时的温度,安全距离时绿色发光二极管显示安全。当距离小于某一个设定数值或超出测量距离时就启动报警设置,蜂鸣器进行蜂鸣报警,同时安全绿灯灭掉。显示屏上不再显示距离而是显示over distance,进行提示。3. 测距系统硬件电路设计3.1 单片机控制模块3.1.1 单片机简介单片微型计算机简称单片机,又称单片微控制器,它是一种集成电路芯片,把具有数据处理能力(如算术逻辑、逻辑运算、数据传送、中断处理)的微处理器CPU,随机存储器RAM,只读存储器ROM,输入输出I/O口集成到一块芯片上,构成一个最小并且完善的计算机系统,使这些电路能在软件的控制下准确高效的完成规定的处理任务。但是单片机芯片不能单独运用于某项工程中,它必须要依靠外围电路的协调才能发挥作用。单片机的实物图如图3.1所示。单片机芯片上标号为STC89C52,其中分别解释如下。(1)STC是前缀,表示该芯片是STC公司的产品;(2)8表示该芯片采用8051为内核芯片;(3)9表示内部含有FlashE2PROM存储器;(4)C表示该产品是CMOS产品;(5)5是固定不变的写法;(6)2表示该芯片内部程序存储空间的大小,为8KB;(7)有的芯片还标有RC,RC表示STC单片机内部RAM是512B;(8)PDIP表示该产品是双列直插式封装类型;(9)40表示外接的最高晶振可以达到40MHZ4。图3.1 单片机实物图3.1.2 STC89C52 内部组成STC89C2单片机相当于一台微型计算机,其内部包含的具体部分为。(1)一个8位CPU;(2)8KB Flash 程序存储器;(3)256B RAM数据存储器;(4)一个片内振荡器及时钟电路;(5)一个可编程全双工串口通信;(6)可寻址64KB外部数据存储器,64KB的外部程序存储器空间的控制电路;(7)32条可编程I/O线;(8)两个优先级嵌套中断结构,8个中断源。STC89C52的内部框图如图3.2所示。图3.2 单片机内部框图3.1.3 STC89C52 外部结构及功能单片机STC89C52共有40个引脚,此次设计只用到了P0口、P1口、P2口、P3口,RXD、、TXD引脚,电源引脚,时钟引脚,复位引脚,P0口是双向八位三态I/O口,双向八位三态I/O口是指每个口可以独立控制,既可以作为数据和地址的分时复用口,又可以作为通用输入输出口。P0口内部没有上拉电阻,为高阻态,所以不能正常的输出高低电平,必须外接上拉电阻。P1口是准双向八位I/O口,每个口可以独立控制,内带上拉电阻,在该口使用前应该先向该口进行写1 操作,然后单片机的内部才可以正确读出外部信号。也就是是先要有个准备的过程,所以称为准双向。P1.0的第二功能为T2定时器/计数器的外部输入,P1.1的第二功能是T2EX捕捉、重装触发,即T2的外部控制端。STC89C52的外部引脚如图3.3所示。图3.3 单片机引脚图STC89C52引脚功能说明如表3.1所示。表3.1 STC89C52引脚功能表标号引脚种类引脚说明1电源引脚VCC(40引脚)工作电压为5V2电源引脚VSS(20引脚)接地端3时钟引脚XTAL1(19引脚)片内反相放大器的输入端4时钟引脚XTAL2(18引脚)片内反相放大器的输出端5复位引脚RST(9引脚)完成单片机的复位初始化操作6I/O引脚P0口(3932脚)双向八位三态I/O口,内部没有上拉电阻7I/O引脚P1口(18引脚)准双向八位I/O口,内带上拉电阻8I/O引脚P2口(2128脚)与P1口相似9I/O引脚P3口(1017脚)准双向八位I/O口,内带上拉电阻10扩展引脚ALE/PROG30引脚进行扩展外部RAM时使用11PSEN(29引脚)程序存储器允许输出控制端,低电平有效12EA/VPP31引脚EA接高电平时,单片机读取内部程序存储器在读取外部存储器,EA 为低电平时,单片机直接读取外部ROM。P3口作为第二功能使用时各个引脚功能如表3.2所示。表3.2 P3口各引脚第二功能定义标号引脚第二功能说明P3.010RXD串行输入口P3.111TXD串行输出口P3.212INT00外部中断0P3.313INT10外部中断1P3.414T0定时器/计数器0外部端P3.515T1定时器/计数器1外部端P3.616WR0外部数据存储器写脉冲P3.717RD0外部数据存储器读脉冲3.1.4 单片机最小系统单片机最小系统,也叫单片机最小应用系统,是指用最少的原件组成单片机可以工作的系统。电源、振荡电路、复位电路构成了单片机最小系统的三要素,也就是说,一个单片机具备了这三个条件,就可以运行我们下载的程序了,其他的比如 LED 小灯、数码管、液晶等设备都是属于单片机的外部设备,即外设。最终完成我们想要的功能就是通过对单片机编程来控制各种各样的外设实现的。单片机最小系统电路图如图3.4所示。图3.4 单片机最小系统电路图(1)电源采用3节干电池共4.5V给单片机供电。(2)振荡电路,由晶振和电容组成,晶振是一种石英制造的电子元件,石英电子元件之所以可以当作振荡器使用是因为它的压电效应,在通电时表面会产生特定频率的振荡,最后通过电路可以输出一个频率很稳定的时钟信号,从而为单片机系统提供基准时钟信号,单片机内部所有的工作都是以这个时钟信号为步调基准来进行工作的。理论上来说,振荡频率越高表示单片机的运行速度越快,但是同时也对存储器的速度和印刷电路板的要求也就越高。单片机分为内部时钟方式和外部时钟方式两种,单片机的XTAL1和XTAL2内有一片振荡器结构,但是还是需要在XTAL1和XTAL2外部接入一个晶振和两个电容才能组成时钟电路,这是内部时钟方式,单片机还可以工作在外部时钟方式,直接在XTAL1外部接入方波信号而XTAL2端悬空。这里采用内部时钟方式,因为内部时钟方式可以构成一个非常好的时钟信号源,并且电路简单。但是外部时钟方式要产生一个稳定的信号源要添加的器件比较多,相对复杂。STC89C52RC 单片机的 18 脚和 19 脚是晶振引脚,此最小系统接的是12MHZ的晶振,外加两个22Pf的电容,这个电容的值没有特别的要求,作用是帮助晶振起振,并维持振荡信号的稳定。晶振电路如图3.5所示。图3.5 时钟信号电路图(3)复位电路,接到了单片机的9脚(RST)复位引脚上,单片机复位一般有三种情况上电复位、手动复位、程序自动复位。当程序运行过程中突然断电,此时单片机内部有的数据会丢失,有的还没有丢失,为了单片机下次打开时还能正常运行,再次上电后,单片机内部要进行一个初始化,这个过程就可以理解为上电复位。当程序运行时,遭受外界干扰死机,或者程序跑飞的时候,就可以按下复位键让程序重新开始运行,这个过程叫手动复位。当程序死机或者跑飞的时候,如果程序长时间失去响应,单片机看门狗会自动复位重启单片机这个过程就是程序自动复位。STC89C52最小系统采用的是上电复位方式,在接通电源时给RST端一个维持两个机器周期的高电平就可以实现单片机的复位。原理是接通电源时VCC给电容C1进行充电,R1的一端连接电容,另外一端接地,就在电阻上出现电压,使得单片机的RST端变为高电平,开始进行复位4,一段时间之后,电容C1充满,电阻上的电流降为0,电压为0,复位结束,单片机开始工作。复位后将从程序存储器的0000H单元读取第一条指令,P0到P3口均置于高电平,程序计时器和特殊功能寄存器将全部清零。复位电路如图3.6所示。图3.6 单片机复位电路图3.2 温度检测电路3.2.1 数字温度传感器DS18B20简介声波在空气中传播时,空气的温度、大气压力、湿度等都会对超声波的速度有影响,其中空气的温度对于超声波的速度影响最大,所以,为了避免环境温度而带来的偏差,必须对环境温度进行检测,并通过计算消除环境温度引起的偏差。此次设计中采用DS18B20温度传感器集成模块进行温度的检测。DS18B20接线简单、体积小、使用方便,封装后可以用于各种场合的测温,尤其适应于狭小空间的测温。DSB1820可以直接将温度转化成串行数字信号供处理器处理5。DS18B20使用单总线技术采用单条信号线,既可以传输时钟信号,又可以传输数据,而且数据传输是双向的。DSB18B20与单片机的连接十分简单,单片机只需要一个I/O口就可以控制DS18B20进行温度采集。DS18B20与单片机的连接如图3.7所示,实物图如图3.8所示。图3.7 DS18B20连接电路DS18B20温度检测集成模块的实物图如图3.8所示。图3.8 温度检测集成模块实物图3.2.2 DS18B20的工作原理DS18B20的ROM中存放了一个64位的序列号,可以看作是该温度传感器的地址序列码。光刻ROM序列号的作用是可以使每一个的温度传感器各不相同。这样一台主机就可以挂接多个温度传感器,组成多个测温网点。当进行温度操作时,如果主机对多个DS18B20进行使用,要先将主机逐个与各个DS18B20进行挂接,读出其序列号,然后将所有的DS18B20挂接到总线上,单片机发出匹配ROM指令,如果是只针对一个DS18B20进行操作,则可以不用进行这些步骤,并且不用读取ROM和匹配ROM,直接跳过(CCH);然后开始温度转换、读取。温度传感器的温度精度有9、10、11、12位,上电时的默认精度是12位,12位的精度最高,以0.0625增量递增。在要进行测温或者温度转换时控制器要发出44H命令,此时就会进行测温,温度转换结束之后,会以两个字节的形式保存在高速缓存存储器中。每个字节都是一个八位的数据,高字节的前五位是温度符号位,如果温度大于零,前五位就是0,反之为1。如果是正温度就直接乘以0.0625就得到了温度的值,如果小于零,就要减1在取反,再乘以0.0625。DS18B20温度传感器的内部结构图如图3.9所示。图3.9 DS18B20内部结构图3.2.3 DS18B20工作时序由于DS18B20单线通信功能是分时完成的,有严格的时隙概念,因此一定要根据时序图来进行操作。否则会使温度传感器初始化失败。(1) 初始化操作初始化操作是进行温度传感器操作的第一步,首先将数据线置高电平,再将数据线拉低,延时480s,拉高数据线,延时等待,如果初始化成功则会在1560ms内返回一个由DS18B20产生的低电平,根据这个状态判断初始化是否成功,但是不能一直等待,要进行超时判断,否则会进入死循环。在延时等待,如果CPU读到数据线上的低电平,还要进行延时约480s。最后将数据线拉高初始化结束。初始化时序图如图3.10所示。图3.10 初始化时序图(2) 读时序操作图3.11 读操作时序首先将数据线拉高到高电平,延时1s。第二步将数据线拉低到低电平,延时6s。第三步将数据线拉高到高电平,延时4s。然后读数据线的状态得到一个状态位,并进行数据处理。重复以上步骤,直到读取完一个字节。读数据时序图如图3.11所示。(3) 写时序图图3.12 写数据时序图首先将数据线置低电平,然后延时15s之后按照从低到高的顺序发送数据,一次只发送一位。再延时45s,将数据线拉高到高电平,重复前几个步骤,直到发送完成整个字节。最后将数据线高。写数据时序图如图3.12所示。3.2.4 温度对超声波速度的影响超声波测距是通过不断检测超声波发射后遇到障碍物所反射回来的回波,从而测出发射和接收回波的时间差T,然后求出超声波探头与障碍物之间的距离S,计算距离的公式如下 SVT2 3.1式3.1中的V为超声波在空气中的传播速度。超声波在空气中传播会受到很多因素的影响,其中影响最大的是空气温度,表3.3列出了几种温度下的波速。表3.3 声速与温度的关系温度(C)-30-20-100102030100声速(m/s)313319325331338344349386由此可以推导出,温度和波速大概有V331.50.607T的关系6,波速确定后只要得到超声波往返时间,就可以得到与障碍物之间的距离S。3.3 超声波传感器模块3.3.1测距方案比较 (1)激光测距激光测距利用激光器做电源进行激光测距,由激光器对准目标物发射激光,同时开始计时,碰到目标物之后向各个方向进行散射,部分散射光返回到接受传感器,在传感接受器端由光电元件接收散射回来的激光,同时计时结束,用往返时间的一半乘以光速就得到了与目标物之间的距离。激光测距具有测量距离远,测量精度高,量程范围大等优点,缺点是对人体的身体有害,而且成本比较高,制作方法复杂。 (2)红外线测距红外线测距基于三角形测量原理,红外发射器按照一定的角度发射红外光束,当遇到物体以后,光束会反射回来,反射回来的红外光线被检测器检测到以后,会获得一个偏移值,利用三角的关系,就知道了发射角度、偏移距离、中心矩等,传感器到物体的距离就可以通过几何关系计算出来,但是当距离足够近时,偏移距就会相当大,超过探测范围,这时探测就会出现盲区,当距离很大时,偏移距又会变得很小,这就要求探测器的分辨率要很高。所以,红外测距虽然测距安全、制作简单、成本较低,但是方向性差、测量精度低、并且测量距离近。 (3)超声波测距超声波属于声波的一种,指超出人类听力极限的超过20KHZ的方向波,它方向性好、穿透能力强、易于获得较集中的声能、在水中传播距离远,并且超声波在空气中传播的速度与声速相同,利用超声波探头对准障碍物发射超声波,同时开始计时,超声波遇到障碍物之后就会返回,超声波探头接收到返回波之后,计时结束,时间的一半乘以超声波的速度就得到了与障碍物之间的距离。超声波在空气中能量消耗缓慢,精度和方向性也比红外线传感器要好,从安全性方面考虑也优于激光测距。因此超声波是一种比较比较合适的测距选择。3.3.2 HC-SR04超声波模块简介及电路连接HC-SR04超声波模块的电路连接和实物分别如图3.13、图3.14所示。HC-SR04超声波测距传感器可以提供2cm450cm的非接触式测量,测量精度可以达到3mm,该模块包括超声波发射电路,超声波接收电路和超声波控制电路。HC-SR04具有以下几个特点7(1)超微型,体积小,相当于两个发射头面积的大小;(2)盲区小,10mm以内可以当作0来处理;(3)测量速度快,10ms的测量周期不容易丢失目标;(4)发射头和接收头成直线关系。图3.13 超声波电路连接图图3.14 HC-SR04实物图HC-SR04的引脚与单片机的接法如下(1)VCC接5V电源;(2)GND接地;(3)Trig(控制器发射信号端)接单片机的I/O口;(4)Echo(接收端)接单片机的I/O口。超声波传感器的Trig端口和Echo端口在连接单片机端口时,要先接一个上拉电阻,因为STC89C52单片机的P2端口自带上拉电阻,所以将Trig端口和Echo端口接在P2.0和P2.1端口上。HC-SR04的电气参数如图表3.4所示。图3.4 HC-SR04电气参数表电气参数HC-SR04工作电压DC 5V工作电流小于2mA工作频率40HZ感应角度不大于15度探测距离2cm450cm精度可达3mm输入触发信号10s的TTL脉冲输出回响信号输出TTL脉冲,与距离成正比尺寸大小452015mm3.3.3 超声波测距原理超声波是指振动频率超过20KHZ的机械波8,常用的超声波测距方法是回声探测法,超声波发射器向某一个方向发射超声波,在发射同时计数器开始计时,超声波在空气中传播遇到障碍物就会反射回来,超声波接收器收到反射回来的超声波就立即停止计时。在启动超声波发射之前就测量出空气的温度,并计算得到此时超声波在空气中的传播速度为V,根据计时器记录的时间t,就可以算出从发射点到障碍物之间的距离S,超声波发射原理图如图3.15所示。图3.15 超声波发射原理图超声波探头与障碍物之间的垂直距离为 HScos (3.2 arctanLH (3.3)式3.3中L-两探头中心之间距离的一半。在使用超声波测距之前,要先测量环境温度,进而求出当前温度下的超声波传播速度V。由表3.3温度与速度的对照关系可以得出V331.50.067T (3.4)式3.4中T-当前环境的温度。超声波传播的距离为SVt2 (3.5)式3.5中v-超声波在空气中的传播速度; t-超声波从发射到接受所用的时间。将以上式子联立得 2Hvtcosarctanlh (3.6)当需要测量的距离远远大于两探头中间距离一半的时候,式3.59 就变成 HVt2 (3.7)式3.7就是测量与障碍物之间距离的公式。3.3.4 超声波时序及基本操作超声波的模块的时序图如图3.16所示,该模块的基本操作为10(1)该模块采用IO触发测距,首先给Trig至少10s的高电平脉冲,然后该模块自动发送8个40KHZ的方波,然后等待;(2)捕捉Echo端输出上升沿,捕捉到上升沿的同时,打开定时器开始计时;(3)再次捕捉Echo端输出下降沿,计时结束,计算计时的时间,这就是超声波在空气中运行的时间;(4)带入公式,计算距离。图3.16 超声波时序图3.4 LCD1602液晶显示模块3.4.1 LCD1602液晶显示模块简介LCD1602液晶显示器是一种专门用来显示字母、数字、符号等的点阵型液晶模块,它由若干个57或者510的点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的距离,每行之间也有间隔,其显示的内容为162,即可以显示两行,每行16个字符液晶模块,液晶显示器通常按照显示字符的行数和列数来命名。此次设计使用LCD1602液晶显示屏,所谓的1602就是指显示内容为两行,每行显示16个字符。可以显示的字符包括数字、大小写字母、各种符号等,不能显示中文和图片。LCD1602液晶显示器主要技术参数如表3.5所示。表3.5 LCD1602液晶显示器主要技术参数技术参数LCD1602显示容量162个字符工作电压4.55.5V工作电流2.0mA最佳工作电压5.0V字符尺寸2.954.35mm3.4.2 LCD1602液晶显示模块电路的连接LCD1602液晶显示器与单片机的连接电路如图3.17所示,CV端是液晶显示对比度调节,如果直接接到VCC端会使对比度过高不会显示内容,一般要加一个电阻进行对比度调节,此次设计是直接把CV端接地,对比度最弱,但是仍然可以正常显示内容。E是使能端,又称为允许输入端或禁止端,高电平有效。 RS是数据命令选择端,R/W是读写选择端。D0D7是数据传输端。LCD1602液晶显示器共有16个引脚,引脚说明如表3.6所示。表3.6 LCD1602液晶显示器引脚说明编号符号引脚说明1VSS电源地2VDD电源正极3CV液晶显示对比度调节4RSH/L)数据/命令选择端,高电平选择数据,低电平选择命令,接单片机P2.6口5R/WH/L读写选择端,高电平选择读,低电平选择写,接单片机的P2.5口6E使能端,接单片机的P2.7口714DOD7数据端,接单片机的P0口15BLA背光电源正极16BLK背光电源负极图3.17 LCD1602连接电路图3.4.3 LCD1602液晶显示模块的主要操作(1)在使用LCD1602时,要先进行初始化操作,此次设计设置LCD1602显示为两行,57点阵,八位数据口,指令为0 x3811此次设计采用开显示,