基于51单片机超声波测距

目录

摘 要 2
ABSTRACT 3
目 录 4
1 绪论 1

  1. 1 概述 1
  2. 2 国内外发展现状 1
    2 系统总体方案设计 2
  3. 1 设计要求 2
    1)可进行距离测量。 2
    2) 采用数码管显示距离数据。 2
    3) 可按键设置距离门限值 2
    4) 具有报警功能 2
  4. 2 方案选择 2
    1. 1 单片机的选择 2
      3 系统硬件设计 2
  5. 1 整体方案设计 2
    1. 1 系统概述 2
    1. 2 系统框图 3
      3-1 系统框图 3
  6. 2 最小系统模块 3
    1. 1 STC89C52简介 3
      (1)概述 3
      (2)主要功能与特性 3
    1. 2 最小系统电路 4
      图3-2 单片机最小系统 5
  7. 3 HC-SR04模块 5
    1. 1 HC-SR04简介 5
      T = (定时器0溢出次数 * (0XFF - 0XCE))/ 1000 6
    1. 2 超声波的特性 6
      图3-4 人的听觉范围 6
      (1)束射特性 6
      (2)吸收特性 7
      (3) 超声波的能量传递特性 7
      (4)超声波的声压特性 7
    1. 3 超声波换能器 7
      图3-5 超声波传感器结构 8
    1. 4 超声波传感器原理 8
      图3-6 超声波内部结构 9
      1. 波长 9
      2. 反射 9
      3. 温度效应 10
  8. 衰减 10
    图3-7 声压在不同距离下的衰减特性 10
    5.声压特性 10
    图3-8 超声波传感器的声压图 11
    6.灵敏度特性 11
    图3-9 超声波传感器灵敏度示意图 11
    7.辐射特性 11
    1. 5 测距分析 12
      图3-11探测距离原理图 13
  9. 4 显示模块 14
    3.4.1 数码管简介 14
    图3-12 数码管 14
    1. 2 数码管显示模块电路 15
      图3-13 模块连接图 15
    1. 3 按键模块电路 15
      图3-14 按键模块电路图 15
    1. 4 报警模块电路 16
      图3-15 报警模块电路图 16
      4 软件设计 16
  10. 1 程序语言及开发环境 16
  11. 2 程序流程图设计 17
    1. 1 超声波模块程序流程图设计 17
      图4-1 超声波模块程序流程图 17
    1. 2 主程序流程图设计 18
      图4-2 主程序流程图 18
      5 硬件组装与调试 18
  12. 1 元器件的选择与测量 18
  13. 2 元件的焊接与组装 19
  14. 3 电路的调试 19
    1. 1 调试方法 20
    1. 2 调试步骤 20
      (1)通电前检查 20
      (2)通电观察 20
      (3)单元电路调试 20
      (4)整机联调 21
      6 总结 22
      参考文献: 23
      致 谢 24

摘 要

使用超声波来测距有许多优势,例如不受光强度、色彩和电磁场等外界因素的干扰,而且超声波传感器的价位偏低、结构也比较简单,超声波以声速传播,便于收发与计算。在汽车倒车雷达、移动机器人的避障、尤其是测量距离等诸多方面都已有了十分广泛的运用。
本次毕业设计的超声波测距仪是在STC89C51单片机的基础上设计的,在剖析和了解了超声波的一些长处和特点后,又查阅了使用超声波测距的基本原理。在最后决定使用51单片机系统和超声波传感器一起组成。设计的超声波测距仪的硬件部分主要包括超声波接收模块、单片机与超声波模块组成的超声波发射模块、LED数码显示模块和扩展报警模块、电源及复位模块。软件部分主要包括单片机主程序、根据超声波发射与接收计算距离程序、LED距离显示程序、按键控制程序和蜂鸣器报警程序,这样安排使系统具有模块化的优点。系统易于进行控制,具备可靠地的性能和比较高的测量精度,最关键的是可以对距离进行实时测量。

关键词: 单片机; 超声波传感器; 数码显示; 报警

ABSTRACT

The use of ultrasonic ranging has many advantages such as no interference light intensity, color and electromagnetic field and other factors, and the ultrasonic sensor has the advantages of simple structure, low price, easy to send and receive ultrasonic at the speed of sound propagation, and calculation. It has been widely used in automobile reversing radar, obstacle avoidance of mobile robot, especially measuring distance and so on.
The graduation design of the ultrasonic range finder is based on the STC89C51 microcontroller design, in the analysis and understanding of some of the advantages and characteristics of ultrasound, but also access to the basic principles of ultrasonic ranging. In the final decision to use the 51 single-chip system and ultrasonic sensors together. The hardware design of the ultrasonic range finder includes ultrasonic receiving module, MCU module and ultrasonic transmitter module, LED digital display module and extended alarm module, power and reset module. The software includes the main microcontroller, according to ultrasonic transmitting and receiving distance, LED distance calculation program display program, key control procedures and buzzer alarm procedures, this arrangement allows the system has the advantages of modularity. The system is easy to control, with reliable performance and relatively high measurement accuracy, the most critical is that the distance can be measured in real-time.

Keywords: microcontroller; ultrasonic sensor; digital display; alarm

目 录

  1. 绪论 1
  2. 1 概述 1
  3. 2 国内外发展现状 1
  4. 系统总体方案设计 2
  5. 1 设计要求 2
  6. 2 方案选择 2
    1. 1 单片机的选择 2
  7. 系统硬件设计 2
  8. 1 整体方案设计 2
    1. 1 系统概述 2
    1. 2 系统框图 3
  9. 2 最小系统模块 3
    1. 1 STC89C52简介 3
    1. 2 最小系统电路 4
  10. 3 HC-SR04模块 5
    1. 1 HC-SR04简介 5
    1. 2 超声波的特性 6
    1. 3 超声波换能器 6
    1. 4 超声波传感器原理 8
    1. 5 测距分析 12
  11. 4 显示电路 14
    1. 1 数码管简介 14
    1. 2 数码管显示模块电路 14
    1. 3 按键模块电路 15
    1. 4 报警模块电路 16
  12. 软件设计 16
  13. 1 程序语言及开发环境 16
  14. 2 程序流程图设计 17
    1. 1 超声波模块程序流程图设计 17
  15. 硬件组装与调试 18
  16. 1 元器件的选择与测量 18
  17. 2 元件的焊接与组装 19
  18. 3 电路的调试 19
    1. 1 调试方法 20
    1. 2 调试步骤 20
  19. 总结 22
    参考文献 24
    致 谢 23

1 绪论

  1. 1 概述
    超声波测距法是利用超声波测量从已知位置到待测物体表面的超声波方法。超声波是一种机械波,其频率为20kHz以上的声波。超声波测距是仿生学的一个非常出名的例子,它是基于蝙蝠通过超声波反射的狩猎发现的。它对生产领域有很大的影响。
    机器人技术自诞生以来发展迅速,机器人的使用不仅限于工业生产,而且已经进入人们的日常生活中。机器人的广泛使用对于提高人们对机器人的理解变得越来越重要。机器人可以感知并用特殊知觉系统完成躲避障碍物,自动寻路功能决定,在制度面前的障碍环境中的位置、范围等。超声波测距具有测距精度高、成本低、环境要求低、使用方便等特点。将红外、灰度等传感器与超声波结合在一起,将能够协同工作,使机器人能够自动寻找路径和绕过障碍物等功能。由于介质中传播的相对稳定的方向和能量的缓慢传播,它可以用来传输很长的距离,所以在测量距离时经常使用。超声最常见的用途是在汽车倒车雷达、测距仪、移动机器人,和一些特殊的工业区。超声波传感器可能会智能化、自动化,更方便、高效的测距。
    随着电子测量技术的飞速发展,利用超声波可以实现精确测量。在经济不断发展的背景下,测量技术得到了越来越广泛的应用。因此,超声波以其稳定性好、成本低、精度高等优点受到人们的广泛关注。

  2. 2 国内外发展现状
    超声波测距技术是一项非常有前途的技术,近距离超声波测距不会受光线影响,而且结构相对简单,性价比高。超声波测量的最重要的优点是,传播的环境介质非常常见,并且可以使用空气,液体和固体,所以使用的范围是非常大的。更重要的是超声波检测的使用可以大大降低劳动强度,可以避免工作人员在恶劣环境下遭受的损害,而且可以提高测距精度;此外,超声波测距还可以用于其他系统,如机器人避障系统,汽车防撞系统的自动停车系统和倒车雷达系统,所以超声波测距对于电子测量技术发展是非常重要的。

2 系统总体方案设计

  1. 1 设计要求
    1)可进行距离测量。
    2)采用数码管显示距离数据。
    3)可按键设置距离门限值
    4)具有报警功能

  2. 2 方案选择

    1. 1 单片机的选择
      方案一:使用DSP作为系统控制器。数字信号处理器(DSP)是一种特殊的微处理器,是一种以数字信号处理信息的元件。DSP可以容纳较大范围的元件值,不容易受到装置外部的影响,比如温度等,可集成化程度高,可以一起使用处理器,可以同时段传输多路信号,可以根据情况来自动调整参数,可用于低频信号等。但DSP硬件电路复杂,价格昂贵。数字系统由耗电的有源器件组成,相对于无源设备可靠性略低。
      方案二:采用单片机作为系统控制器。单片机具有可靠性强、性价比高,低电压,低功耗的优点。单片机有很强的计算能力,可以根据想要实现的功能来进行程序设计和编程,灵活性强,自带定时器,计数器,可用于定时和计数,功耗低、体积小、技术成熟、成本低。
      在上述分析的基础上,采用STC89C52单片机作为控制器。

3 系统硬件设计

  1. 1 整体方案设计
    1. 1 系统概述
      STC89C51单片机是这个系统中最为重要的部分,单片机的最小系统就由此部分配合电阻电容晶振等器件构成。单片机最小系统被其它各个模块围绕着展开。测距传感器采用HC-SR04模块,显示设备为共阴数码管,USB 5V作为电源供电,蜂鸣器作为报警部分,按键部分用来设置距离门限值。
    1. 2 系统框图

在这里插入图片描述

  3-1 系统框图
  1. 2 最小系统模块
    1. 1 STC89C52简介
      (1)概述
      STC89C52工作电压较低,各项指标优良,是8位的金属氧化物半导体单片机,存储器分别是8k字节的Flash PROM和256字节的RAM,这种型号的单片机是经典的单片机,不易丢失存储内容,生产技术较好,而且适用于各种通用的指令操作,优点就是使用了闪存存储并且有很多通用性设置,可用性很强,在很多中小型结构较大的控制装置中都普遍使用。
      该单片机有左右两列引脚各20个,其中可以进行内外互相传输的端口有32个,剩下由两个中端口,3个定时计数器,都是16bit,可以编程,2个全双工串行通信口,还有一个用于读操作,一个用于写操作的口线组成。多种不同的封装形式也让它适用于各种装置。

(2)主要功能与特性
 ◆适用51系列的各种指令操作;
 ◆8k字节的Flash PROM,非一次性;
 ◆32 内外互相传输的端口;
◆ RAM 为256x8bit;
 ◆3个定时计数器,都是16bit,可编程;
◆2个串行中断;
 ◆时钟频率0-24MHz;
 ◆UART串行通道,可编程;
 ◆ 2个外部中断源;
 ◆3级加密位;
 ◆ 两个口线,一读一写;
 ◆共8个中断源;
 ◆ 两种节电模式;
◆程序设定工作或不工作情况。
3. 2. 2 最小系统电路
如图3-2所示是STC89C52的最小系统,最小系统由晶振电路部分、复位电路部分、电源电路三个部分组成。
晶体振荡器电路由2个30pf电容C2和C3和12M晶振X1组成。这里的电容器的作用是发挥振动的作用,使晶振更容易起振,范围15-33pf。晶体振荡器的值也可以为24M,晶振取值越高单片机执行速度越快。在电路的设计中,晶振部分与单片机越近越好。
单片机复位电路就像计算机的重启功能,计算机死机时,重启会使程序从电脑内从头开始。在单片机中也如此,当单片机系统在运行时,按复位键,内部程序就会从头开始自动启动。
复位电路由10uF的极性电容C1和10K的电阻R4构成。因为电容电压不能被突破,所以当系统上电时,复位引脚将在较高工作电压下,高电压出现的时间长短取决于振荡电路RC乘积。通常经过24个时钟周期之后,复位引脚将变为低电平,电路复位,所以要计算出适合的RC乘积。
下面计算高电平持续时长,在RC振荡电路中,取C和R的值分别为10微发和10千欧。所以将电容充电到3.5V也就是电路电源电压的70%,仅需要CR值为0.1秒。可以得出,在电路启动这个时间后,电容的电压变化范围是从0迅速到 3.5V,而复位端电压从5V减少相应的值,即1.5。即在这个时间内变为低电平,因为规定51单片机低于1.5V就是工作在低电压的情况。所以,电路系统开机时间很快,为0.1秒(自动复位所需时间为0.1s)。
电源部分是5V的USB直接供电,可以用手机充电器、USB插口和移动电源直接供电。

在这里插入图片描述

图3-2 单片机最小系统

  1. 3 HC-SR04模块
    1. 1 HC-SR04简介
      使用HC -sr04模块作为超声波模块。该模块非接触距离感测范围为2cm-400cm,最小误差范围是3mm。该部分有三个基本装置组成,即发射、控制与接收三部分。工作过程大致是:使用 IO触发测距,高电平信号至少10us;超声波模块自动发送8个方波,频率为40khz,然后自动检测接收返回的信号;超声波由发射到折返回的整个过程中,电路都处在高电压。探测长度=(完成发射折回用时×速度)/2。具体实物如图4所示,有5V电源VCC、接地线GND、发射时信号输入键和接收信号所用键四个。

在这里插入图片描述

该模块的使用方法简介:给发射端口大于等于10us的工作电压,开始计时;用八个特定数值的方波作为探测信号来检测是否有信号折回,这个过程是自动的;探测到有信号时,就会在输出端显示出高电压,整个过程的来回折返总计用时就可以得出。用公式探测长度=(完成发射折回用时×速度)/2计算。
实现中采用定时器0进行定时测量,8分频,TCNTT0预设值0XCE,当timer0溢出中断发生2500次时为125ms,计算公式为(单位:ms):
T = (定时器0溢出次数 * (0XFF - 0XCE))/ 1000
分频值不同,计算定时器0初值也不同。
3. 3. 2 超声波的特性
声音在生活中是很容易见到的物理学现象。但是人对于声音的感知频率是有范围的,在 20-20000HZ之间,这个最高频率是经过许多次重复试验才得到的,超过20000Hz,即使有物体发声,人类也难以感知,故将这种大于20000Hz叫做“超”声。如下图所示:
在这里插入图片描述

图3-4 人的听觉范围

超声波四大特性:
(1)束射特性
超声波也是声波的一种,有较短波长,同光的一些传播特性相一致,它也能发生聚焦、反射,在不同介质(两种物质密度不同)临介面发生折射现象,并且符合其中的光学定律。反射时,入射线与法线夹角等于反射线与法线夹角;折射时,直接进入另一个介面但是方向会发生偏转,折射率取决于两种介质的物质密度的差值大小。
(2)吸收特性
在介质中,声音传播过程中介质会消耗它的能量传播距离越远,消耗的能量也越大,波强就越小。介质消耗该声音的能量大小与声音的频率呈正相关。相对于固体和液体,声波在气体中传播时能量损耗最大,在固体中传播时能量损耗最小。
(3)超声波的能量传递特性
当声波在介质中传播时,介质中的分子也会随声波振动,其振动频率和声波频率一样,频率越高时分子振动的速度越大。由于超声波的频率在大于20000Hz,所以分析振动速度越大能量也就越高,是所以超声波的功率比普通声波的功率大得多,这也使得超声波在各个工业部门中得到广泛的应用。
(4)超声波的声压特性
声波在介质中传播时,声波振动会挤压一部分分子,也会使另一部分扩散,所以介质内部压力是不均匀变化的,这种现象称作声压作用。
3. 3. 3 超声波换能器
超声波的以上特性,是超声波传感器的制作依据。在这个装置中,换能晶片可以振动产生大于20000Hz的声波,具有超声波的许多典型特性,特别是可以很好的控制方向,可以作为沿着一个方向传播的射线。该声波对各种介质的穿透能力都很强,即使是在实心不透光的固体中,也可以穿透几十米。在传播不同到不同介质时,就会发生折返,形成反射回波,在移动的介质上又会发生多普勒效应。所以经常用超声波进行各领域的探测工作。
在超声检测中使用的探头,是利用材料的压电效应实现电能、声能转换的换能器。探头中的关键部件是晶片,晶片是一个具有压电效应的单晶或者多晶体薄片,它的作用是将电能和声能互相转换。
超声波传感器的两个评价指标:
(1)工作频率。压电晶片作为超声波的主要部件,其共振频率就为整个装置的工作频率,输出的能量大小由这个共振频率和加给超声波传感器的电源的电压交换频率决定,在二者相等时会输出最大能量。
(2)灵敏度。超声波传感器的灵敏度由制造晶片决定,机电耦合系数越高,则超声波传感器的灵敏度越高。
人对于声音的感知频率是有范围的,在 20-20000HZ之间,这个最高频率是经过许多次重复试验才得到的,超过20000Hz,即使有物体发声,人类也难以感知,故将这种大于20000Hz叫做“超”声。超声波在空气中的传播速度为340m/s。超声波为直线传播,当超声波的频率越高时,较易发生反射但不易发生绕射现象,基于这种特性制作了超声波传感器。它的探头通常是压电晶体和压电陶瓷。
基于超声波的一些传播特性,人们制成许多装置。超声波传感器可由产生超声波的方法大致分为两类,分别是利用电气方式和机械方式产生超声波。两种方法产生的超声波功率、声波特性和频率有所差异,适用范围也各不一样。电气方式产生超声波的方法在目前更为常见。
在这里插入图片描述

图3-5 超声波传感器结构

电气方法产生超声波通常用压电式超声波发射器产生超声波,简单构造图如上所示,有一个三角形共振版和两个重叠的矩形压电晶片,通过它们的谐振来完成。主要是基于压电晶片的共振原理,当晶片两端电极所加的频率等于其固有频率时,引起上面三角型板共振,产生声波。同样的,超声波接收器的原理即为共振板接受超声波然后带动压电晶片振动,使机械能转化为电信号输出。如上图所示。
3. 3. 4 超声波传感器原理
通常的超声传感器类型都是开放性。图7为一个复合式振动器,这个复合式振动器由谐振器、压电晶片、锥形共振盘等组成,这种装置是有两个重叠的矩形压电晶片。锥形共振盘这种外扩型构造使声波能够聚焦在共振板中间位置,故对超声波有加强作用。
使用压电陶瓷用作超声波传感器是因为当在压电陶瓷表面加一定电压的时候,它就会将电能转化为机械能,电压变化,变形程度也不同。同时,这个转化过程是可逆的,即机械振动也会转化为电能。所以当给这个复合式振动器施加一个电信号时,这个复合式振动器就会因为弯曲振动而产生超声波。相反的,在向这个复合式振动器施加超声波时,也会因为复合式振动器的弯曲振动而产生电信号。

在这里插入图片描述

图3-6 超声波内部结构

超声波属于机械波中的一种,也有横波和纵波两种类型,可在不同介质(固、液、气三种介质)中传播,频率大于20000Hz,在固体中传播速度最快,液体次之,气体最慢。同光的传播一样,会有折射反射现象,介质会吸收能量从而导致衰减。
超声波的7个方面的特性:
1.波长
由波速公式速度=频率×波长,可知速度由两个因素决定。用传播速度很大的电磁波不同,声波传播速度仅340m/s,(在正常温度条件下)。有公式可知,就有较短的波长,因此穿透能力强,传播较远距离。在传播方向上精度很高,较高的精度保证了在探测距离的过程中的精度。
2.反射
利用超声波的反射我们可以探测一些物体的位置,根据物体的材质不同探测效果也不一样。超声波可以轻易找到一些一些密度较大的固体物质,因为它们将发射的超声波可以没有能量损耗地折回,如金属材料、木制品等;但是一些密度很小的带有疏松孔洞的物质却将声波吸收掉了,所以不容易探测到。还有一些表面粗糙不平的物质,也很难探测到。所以最好的探测就是在平整的密度较大的固体物质介质中且没有其他干扰的条件下进行探测,声波可以无衰减折回。
3.温度效应
声波与温度之间的函数关系是c=331.5+0.607t (m/s),用t表示温度,这个意思是,根据周围环境温度的不同,声音的传播速度也会一直变化。由于温度与声波之间的微小关系,在精准探测距离的过程中,实时温度测量是必须的,尤其在冬天室外温度比室内温度低很多,这个较大的温度差别对结果造成很大的影响,所以需要进行温度补偿从而减小误差,但是我们的实验只在一个短时间不会有较大温度波动的环境中进行,只是简单测量距离,并没有对测量精度有很高的要求,所以在本次设计中不再讨论温室效应对超声波测距的影响。
4. 衰减
在空气中传播的超声波强度和距离呈负线性相关,这个现象是由于波的衍射所引起的在球形表面上的扩散损失,在微小凸起的表面上,超声波的传播会有衍射现象,所以会消耗能量,这个耗能过程的效率不高,会有一定比例的吸收损失。如下图所示衰减率与超声波频率是正相关的关系,二者都变大时,传播距离变小。这个图表显示了超声波传感器探测时受到这个特性的影响也是很大的。
在这里插入图片描述

图3-7 声压在不同距离下的衰减特性

5.声压特性
音量大小是由声压级 (S.P.L.)来度量的,可以由以下公式得出。
S.P.L.= 20logP/Pre (dB)式中,“P”为有效声压 (μbar),“Pre”为参考声压 (2×10-4μbar)下图为不同声波传感器随频率的变化曲线图。
在这里插入图片描述

图3-8 超声波传感器的声压图

6.灵敏度特性
接收的声音随频率变化情况可以由灵敏度表示,公式表示见下面:
灵敏度= 20log E/P (dB)式中,“E”为所产生的电压 (Vrms),“P”为输入声压(μbar)。这个参数指标对于探测距离的精度影响也是很大的,下面是不同的声波传感器的随频率变化曲线,在中间频率位置声压级最高,同时表明此处的灵敏度也是最高的。
在这里插入图片描述

图3-9 超声波传感器灵敏度示意图

7.辐射特性
研究这个特性之前需要将其安装在一个平面上。然后,研究角度随声压的变化曲线。与之前的部分比较,为了更加精准的表示辐射,半衰减角度用θ1/2表示,装置的分度值越小,得到的辐射角度就越精确,以下是不同的超声波传感器辐射变化角度图。
在这里插入图片描述

    图3-10 超声波传感器辐射特性示意图

综合以上曲线图表可以得出,在如上面所说的频率工作时,声压级和灵敏度都将达到最优,整体探测效果最好。
3. 3. 5 测距分析
超声波发射装置沿直线传播超声波,离开发射端就要按下计时装置,在介质中传播一段距离之后,会遇到另个介质表面,就会产生声波折返,重新回到发射端,计时完成。根据记录的在介质中(一般为空气)的声波传播时间,和已知的传播速度,就可以计算出索要探测的两个物体之间的距离大小,即为速度与时间乘积的一半。
回声探测法时应用最为普遍的超声波测距的一种方法,即用发射器向被测物体所在方向发射超声波,与此同时,计数器开始计时,当超声波传送到被测物体的表面就会产生声波折返,重新回到发射端,计时完成。根据记录的在介质中(一般为空气)的声波传播时间,和已知的传播速度,就可以计算出索要探测的两个物体之间的距离大小,即为速度与时间乘积的一半。
前文讨论过声波的传播速度会随着温度变化,超声波也不例外。在使用回声探测法测量距离时,空气如果是接近恒温,则速度误差可忽略不计,可以认为超声波实在空气中匀速传播。但在高精度要求下,也有相应的减小误差的方法,即温度补偿法。对测量结果加以数值校正,在空气中声音的传播速度是已知的,只要测量出超声波从发射器到接收器所需时间,距离问题就转化为求时间的问题。基本思路就是这样。
以下为示意图:

超声波发射 障碍物
S
H
θ

超声波接收
图3-11探测距离原理图

                          (3-1)
                        (3-2)

式中:L—一个探头与另一个探头之间距离的一半
声波所走过的总路程是:
( 3-3)
式中:v—具体介质中的传播速度,固定值;
t—声波所走过的总路程的总用时.
将(3—2)、(3—3)代入(3-1)中得:
( 3-4)
由于测量时时间较短,在这个时间段内超声波传播速度不会有很大变化,可以近似看做是一个固定值,当所探测的距离远大于探头之间距离时,上式近似可以变为:
( 3-5)
基本思路就是声波所走过的总路程的总用时问题就转化为求总用时间的问题。

  1. 4 显示模块
    3.4.1 数码管简介
    数码管是一种半导体发光器件,其基本单元是发光二极管。数码管又可按照数码管的段数来把数码管区分为八段数码管和七段数码管,其中八段数码管比七段数码管多一个小数点显示,这是因为七段数码管比八段数码管少一个发光二极管单元;又可根据显示“8”的个数来把数码管分为1、2、4位数码管。
     发光二极管的连接方式有两种,两种连接方式的不同从而使发光二极管可分为共阳极数码管和共阴极数码管。共阴极数码管和共阳极的区别主要是共阴级输入高电平有效,共阳级输入低电平有效,他们的数码管和二极管的阴阳极的连接正好是相反的,所以一个输入高电平有效,一个输入低电平有效。

在这里插入图片描述

图3-12 数码管

数码显示器是用八个相同的二极管来显示字符,有7个组成八字形的横竖,还有一个是表示小数点的,就叫做七段发光二极管数码显示器。每四个8字组成一体,如上图显示的,内部构造已经完成(小数点没有显示在图中),其中的8个小写字母分别表示段,四个大写字母S分别控制位操作。
3. 4. 2 数码管显示模块电路
本模块的电路的连接图如图3所示,R8为1k上拉电阻,为共阴数码提供电流,A-G,DP连接的是单片机的P0口,S1-S4为位选,连接单片机的P2口。
在这里插入图片描述
图3-13 模块连接图

    1. 3 按键模块电路

在这里插入图片描述

图3-14 按键模块电路图

通过K1,K2,K3键来设置报警距离的门限值。

    1. 4 报警模块电路
      在这里插入图片描述

图3-15 报警模块电路图

采用9012PNP三极管来驱动报警电路,当三极管的基极为低电平时,三极管导通,电流流过蜂鸣器,这样来实现报警。

4 软件设计

  1. 1 程序语言及开发环境
    C语言作为一种通俗易懂的直接性命令计算机的语言,不但具备汇编语言的特性,也具备高级语言的特性。这种语言首先在美国的一个实验室中推广,20世纪70年代后,大、中、小和微型机上就先后开始使用C语言。C语言功能强大,数据处理能力非常强,使用范围很广泛,因为C语言可以实现各种编译控制作用,一种是可以不直接涉及计算机的硬件部分程序,一种是建立一种工作系统应用软件设计,设置可以编写有关多维的图形和Flash操作,在单片机的程序设计部分也是广泛应用。这些优点使C语言在软件开发和各种科研领域都应用广泛。
    Keil C51是将C语言程序烧入单片机中的一个起连接功能的软件,该软件具有较强兼容性。它有一系列完整的仿真修改过程,包括编译、汇编、连接、生成中间文件等过程,这些功能都是通过大环境集成联系在一起的。可以在多种Windows操作系统中运行该软件.可以说,凡是汇编语言能够解决的问题,C语言都可以解决,在给用户更良好的阅读体验,程序设计结构清晰方面也比汇编语言要好,C语言也更易于维护上手更为简单。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统,它的集成环境方便易用,软件仿真调试工具也十分强大,所以使用C语言编程那么Keil C51最为合适。
  2. 2 程序流程图设计
    1. 1 超声波模块程序流程图设计

在这里插入图片描述

图4-1 超声波模块程序流程图

    1. 2 主程序流程图设计

在这里插入图片描述

图4-2 主程序流程图

5 硬件组装与调试

  1. 1 元器件的选择与测量
    该装置所需要元器件是:STC89C52单片机、晶振、电阻、电容、按键、开关、电源座、数码管等。要确保这些选择的元器件可以相互匹配合理,每个器件应该选择什么型号都要进行精确对比分析。还要考虑它们的可获得性和性价比高低等综合因素。其中焊接时要注意元件正负极性,电阻电容大小、芯片引脚顺序等细节。一般电阻的大小可以通过色环读取,或直接用万用表进行测量;电容和晶振等的大小会标准在元件本身;元件的正负可以遵循长正短负的原则,一些特殊元件可以通过查找资料获知正负极。
  2. 2 元件的焊接与组装
    安装电路元器件有多种方法,分别是直接焊接和直接插在电路板上。两种方法都应细读以下注意事项:
    (1)首先要确保电路中的硬件部分即元器件是完好的,因此要对它们进行安装前的必要的测试。
    (2)元器件的摆放位置要形成一致的规矩,方向相同等,便于进行后续的接线操作。
    (3)对于必须区别正反方向的某些器件,要将标志刚好显示在外面以便于后续的检查工作。这些器件主要有电容器件、二级管和三极管,接线一定要注意接好正负极,以免造成最后的显示错误还找不出电路存在的问题。
    (4)为了方便焊接整齐以及后续的电路检查工作,属于同一种类型的元件接线需要用同一种颜色。如可以按惯例选择黄线用作信号线,红线接电路中的所有正极,蓝线接负极,黑线作为接地线,这些操作并不是硬性规定。
    (5)在焊接过程中,布线要尽量做到简单美观,依照最短路径原则,尽量不要跨过电路元器件,因为有时可能会刮导线表皮而导致一些短路问题,连线也不能相互叠加,过于复杂而导致后续难以检查电路连线方面的问题。
    (6)为了方便电路后续的调试以及操作的便捷性,将所有地线接在一块,形成一个公共接线端。如果能事先画出安装的方案图,这样美观整齐的布线格局,可以使操作起来更加有序,也方便了后续的检查工作,也大大提高工作效率。
  3. 3 电路的调试
    在安装工作完成后,下一步就是进行调试,即对电路的有问题模块进行调整改进。首先要对整个电路的工作情况和每个器件和模块进行状态检测,之后如果发现检测的那个部分出现了问题就要进行数值设置方面的改正,从而进一步完善整个电路。在进行这个工作以前就要知道如何整个测试需要的测试装置以及测试具体哪些模块,流程和方法,这样才能保证工作有序进行。
    1. 1 调试方法
      总体来说,有部分法和整体法两种电路调试方法。部分法就是安装与测试过程是以模块为单位先后进行的,即安装好一部分就要对这个部分进行调试,然后就可以按照同样的方式进行下一个模块单元的处理,最终就可以完成整个电路的测试。整体法就是在电路中元器件全部安装完好后,才进行测试。两者各有适用范围,相对于后一种方法,前一种更适合较为复杂的电路。
    1. 2 调试步骤
      (1)通电前检查
      在整个电路硬件安装完成后,不能直接接通电源,要先检查一遍确保无接线错误,主要是防止电路出现的一边接对,而另一边错误,或者是遗忘有些接线,还有本来不存在的线接上了,或者是因为操作不规范造成的近距离接线处短接,这些都可以直接通过对照引脚接线是否与应该连接数一致来验证。检查方式就是用指针万用表,在欧姆最小档位进性检测,要接器件引脚部位,可以发现接触不太良好的地方。
      (2)通电观察
      排除电路硬件及单纯接线问题的影响后,就可以进行通电观察。通电后,首先要做的是观察整个电路的各个模块是否正常运行,包括器件表面温度是否过高,是否有短路、短路等常见的电路问题,然后就可以进行测试了。测试过程要及时感应到电路的不正常测量结果,电路各个引脚,或是器件两端电压都要测试,一旦有问题,立即断电,然后对问题模块进行调整,之后再次通电。直到整个电源最终可以正常运行而没有故障发生。
      (3)单元电路调试
      用部分法对电路机进行调试时,应该按照电路图设计中进行有序地调试,通常是按照信号流向进行,就是安装与测试过程是以模块为单位先后进行的,即安装好一部分就要对这个部分进行调试,最终就可以完成整个电路的测试。
      这个调试又包括静态与动态两个过程。静态调试方法就是这个设备没有通电的情况下进行检查。通过自己观察和推理设想之后判断元器件或电路可能会出现的问题(短路等)。对上一步可能存在问题的地方可以用万用表进行检查,然后加电检测。动态调试适用于信号产生电路的测试,是整个设备在运行的时候对采用部分排除的方法进行调试,将不是问题电路的部分删除,这时就要求整个电路分块进行检测,可以更深入的检查静态方式检查不到的问题。两个过程要相互结合,才能形成一个完整的电路检测过程。
      (4)整机联调
      对各个模块的电路调试好之后,就要对组成的整个电路状态进行测试和调试。整体调试就不用再进行静态调试,而主要是对动态运行的情况进行查看,测试是否达到最初预期的效果,对不理想情况的具体电路参数或是器件进行修正调整,直到整个电路运行全部达标。

6 总结

在本科毕设这几个月中,经过我的不懈努力,终于得以完成,不禁感慨万分。从一个对超声波换能器的懵懂,到现在一步步走上成功,经历了太多。能够完成整个实验设计过程实属不易,我也从中收获了很多。
这次毕设中,明显感觉自己的能力不足,由于缺少相关的知识体系,遇到了很多困难,为了能够完成毕设要求,夜夜奋战在自习室中,上图书馆查询资料,浏览网页寻找相关内容,寻求老师同学们的帮助,经过持续不断的努力,终于取得了突破性的进展,明白了很多专业知识,对STC89C52单片机和超声波HC-SR04模块很大的熟悉,除此之外,在毕设中,锻炼了我的动手能力,老师与同学们在理论与实践中给与我极大的帮助。这一次毕设我彻底了解了自我的能力,对自己的不足有了深刻的理解,在今后的日子里越加努力,学无止境。
通过对超声波测距仪的设计,让我对单片机有了更深刻的认识,对各种模块电路的选择有了清楚的判断。让我明白了只学习理论知识是不够的,学理论最重要的就是将它运用到实践中来,自己动手了收获的才会更大。我也十分享受在这个过程中和同学相互讨论,还有老师和学长学姐的帮助,有了他们,才进步的更快。正如罗马不是一日建成的,整个电路也不可能通过一次的设计就能完成,所以就要不断的修改调试,其中自己经历了很多失败的地方,但是自己会耐心的分析原因,一次次的查找电路,调试,修改程序,对不规则的元器件调换,焊接不稳定的再次焊接,让我熟悉了设计过程和各种芯片的原理及各个模块的选择,通过比较性价比的高低,使各个模块都达到最优的效果,也懂得制作的整个流程。
在这个过程中,因为个人的知识理论不够完善,学识水品不够高、实践经验不足等各方面的因素,在很多地方还有欠缺、不够完善,论文之中难免有些欠妥之处,敬请各位老师的谅解,希望老师能够批评指点。

参考文献:

[1] 郭天祥.51单片机C语言教程[M]. 北京:电子工业出版社,2009.

[2] 刘建清.轻松玩转51单片机C语言[M]. 北京:航空航天大学出版社,2011.
[3] 张绪光,刘在娥.电路与模拟电子技术[M]. 北京:北京大学出版社,2010.
[4] 徐晓光.数字逻辑与数字电路[M]. 北京:机械工业出版社,2008.
[5] 黄智伟.印刷电路板设计技术与实践[M]. 北京:电子工业出版社,2013.
[6] 张俊谟.单片机中级教程[M]. 北京:北京航天航空大学出版社,2006.
[7] 谢维成.单片机原理与应用及C51程序设计[M]. 北京:清华大学出版社,2009.
[8] 赵健,吴顺伟.基于单片机的温湿度测量系统的研究与设计[M].电子技术
[9] 张艳丽,杨仁弟.数字温湿度传感器及其应用[J].工矿自动化,2007.6第3期

致 谢

经过做毕设这几个月的忙碌,我的毕业设计已接近尾声。这段时间我学到了很多东西,锻炼了自己理论联系实际的能力,动手方面和专业学习方面都有提高。
特别感谢我的论文指导老师的耐心指点,老师治学严谨,学识渊博,思想深邃,视野宽阔,感谢实验室的师兄师姐以及一起做毕业设计的几位同学,大家在一个轻松、融洽的氛围中谈论实验进展和生活趣事,让我感到学习过程非常美好。在老师带领的毕设团队下,我们相互讨论,取长补短,为我的学习营造了一种良好的精神氛围和鼓舞与支持。在这个过程也培养了我独立思考,自主解决问题的能力。同样也感谢学院几年来对我的培养,还要感谢我的家人和朋友对我的支持!
最后,请让我对各位在繁忙的工作中评阅论文和参加答辩的各位专家致以我最崇高的敬意。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/448897.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue点击切换组件颜色

例如我有一个这样的组件&#xff0c;我希望在点击组件之后由蓝色变成橙色 先把原来的代码附上(简化掉了叉号&#xff09;&#xff1a; <div v-for"(item, index) in words" :key"index" class"scrollbar-demo-item"><span>{{ item …

PL/SQL学习笔记

介绍 PL/SQL 编程语言是SQL 和 Oracle 关系数据库的过程扩展语言 是Oracle 编程环境中的一个工具 基本语法 S.No Sections & Description 1 Declarations 此部分以关键字 DECLARE 开头。 它是一个可选部分&#xff0c;定义了程序中要使用的所有变量、游标、子程序和其他…

C++虚继承的一些细节

C虚继承的一些细节 何时使用虚继承普通继承的类对象布局虚继承类对象布局虚函数表指针虚函数表内容 何时使用虚继承 看代码&#xff0c;代码主要是菱形继承&#xff0c;base里面的成员变量会存在二义性 #include<iostream> using namespace std;class base { public:in…

客户案例|100M 768 维向量数据,Zilliz Cloud 稳定支持 Shulex VOC 业

日前&#xff0c;国际化 VOC SaaS 公司数里行间&#xff08;Shulex&#xff09;将上亿数据量的核心业务从开源向量数据库 Milvus 迁移至全托管的向量数据库云服务 Zilliz Cloud。 相比于 Milvus&#xff0c;Zilliz Cloud 实现了 Shulex VOC 评论分析洞察报告生成速度 30% 的提升…

第二十天-数据分析

1.介绍 1.什么是数据分析 1.以下4个纬度结合起来的数据科学 2.数据分析的特殊性

物体检测-系列教程23:YOLOV5 源码解析13 (SPP层、Flatten模块、Concat模块、Classify模块)

&#x1f60e;&#x1f60e;&#x1f60e;物体检测-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 点我下载源码 17、SPP模块 17.1 SPP类 SPP是一种特殊的池化策略&#xff0c;最初在YOLOv3-SPP中被使用…

Axuer的中继器~增删改查

目录 1. 中继器 2. 增加 3. 全选 4. 删除 5. 修改 6. 排序 7.分页 正文&#xff1a; 1.中继器&#xff1a;拉一个中继器给中继器名称写一个数据 在右边点击样式 写入数据 1.2 双击中继器进入动态页面 在里面放3个框 1.3 退出来 给中继器添加数据 2. 增加&#xff1…

研发效能DevOps: OpenEuler 部署 drone 持续集成平台

目录 一、实验 1.环境 2.OpenEuler 部署 drone 持续集成平台 二、问题 1.drone登录失败 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 系统架构版本IP备注LinuxopenEuler22.03 LTS SP2 192.168.204.145&#xff08;动态&#xff09; 192.168.204.141&…

使用maven打包执行install命令时候一直卡在No proxies configured不动,如何解决?

问题描述&#xff1a; [INFO] [INFO] — frontend-maven-plugin:1.9.1:install-node-and-npm (install node and npm) frontend — [INFO] Installing node version v16.0.0 [INFO] Copying node binary from D:\Maven\maven-repository\com\github\eirslett\node\16.0.0\node…

3.11_C++_day1_作业

作业要求&#xff1a; 程序代码&#xff1a; #include <iostream> #include <string.h>using namespace std;int main() {int a0,b0,c0,d0,e0;//分别记录字符串中的大写&#xff0c;小写&#xff0c;数字&#xff0c;空格&#xff0c;其他字符个数string str;cha…

Docker初体验之安装部署和镜像加速(openeuler版)

安装部署&#xff1a; 本人使用的为openeuler版本&#xff0c;无法使用二进制进行安装&#xff08;使用二进制安装时&#xff0c;无法使用docker中的补全命令&#xff0c;需要重新进行配置&#xff09;在此使用yum直接进行安装。 [rootlocalhost ~]# yum install docker 镜像…

java异常概述及自定义处理

前言 学到异常了&#xff0c;本来以为处理异常只是避免bug&#xff0c;结果发现还可以为了编程需要自定义异常。打好基础&#xff0c;daydayup! 异常 什么是异常 异常就是代表程序出现的问题 异常的体系 异常体系指的是java开发人员为了方便程序员使用所开发的异常类&#xff…

稀碎从零算法笔记Day10-LeecCode:赎金信

题型&#xff1a;哈希表、字符串 链接&#xff1a;383. 赎金信 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以…

探索数据可视化:Matplotlib 高级绘图功能(一)

双轴显示 import numpy as np import matplotlib.pyplot as pltx np.linspace(-np.pi, np.pi,50) y np.sin(x)plt.plot(x,y,color blue)# 设置 y 轴的刻度为从 -1 到 1 的 11 个等间距位置 _ plt.yticks(np.linspace(-1,1,11),color blue)ax plt.gca()# 获取当前视图 # …

PlantUML + VS Code

PlantUML 使用实例 文章目录 PlantUML 使用实例1. PlantUML简介1.1 什么是PlantUML1.2 PlantUML优势在哪 2. 怎么用2.1 环境依赖2.2 VS Code组件安装 3. 常用语法3.1 标记开始结束3.2 声明参与者3.3 声明关系3.4 对消息序列编号3.5 组合消息 4. 实例 1. PlantUML简介 1.1 什么…

vulhub靶场-matrix-breakout-2-morpheus

下载&部署 从官网中下载 https://www.vulnhub.com/entry/matrix-breakout-2-morpheus,757/ 下载完成后&#xff0c;在vmware中打开&#xff0c;选择刚刚下载的ova文件 vmware打开文件后需要将刚导入的机器重新启动 再检查下网卡是否是和kali在同一张网卡下就可以开始打靶了…

Jmter接口网站压力测试工具

首先下载Jmeter 官方地址&#xff1a;Apache JMeter - Apache JMeter™ 安装Jmeter 把下载的文件进行解压&#xff0c;产生如下目录&#xff1a; 打开bin文件夹下的jmeter.bat文件及进入程序的主界面窗体jmeter.log是日志文件。 主意&#xff1a;需要配置java环境。 jmter创…

解决虚拟机静态网址设置后还是变动的的问题

源头就是我的虚拟机静态网址设置好了以后但是网址还是会变动 这是我虚拟机的配置 vi /etc/sysconfig/network-scripts/ifcfg-ens33 这是出现的问题 进入这里 cd /etc/sysconfig/network-scripts/ 然后我去把多余的ens33的文件都删了 然后还不行 后来按照这个图片进行了下 然后…

权限管理系统-0.4.0

五、权限管理 5.1 引入JWT JWT是JSON Web Token的缩写&#xff0c;即JSON Web令牌&#xff0c;是一种自包含令牌。 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。 JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息&#xff0c;以…

STM32CubeIDE基础学习-STM32CubeIDE软件新增工程文件夹

STM32CubeIDE基础学习-STM32CubeIDE软件新增工程文件夹 文章目录 STM32CubeIDE基础学习-STM32CubeIDE软件新增工程文件夹前言第1章 添加文件夹第2章 添加文件路径2.1 相对路径方法2.2 绝对路径方法 总结 前言 在编程的过程中&#xff0c;如果需要在原有的工程基础上新增其它的…