基于单片机的超声波测距系统实验报告
- 格式:doc
- 大小:465.50 KB
- 文档页数:21
基于stm32单片机的超声波测距仪设计报告【文章标题】基于STM32单片机的超声波测距仪设计报告【引言】超声波测距是一种常见且有效的测量方法,被广泛应用于工业控制、自动化、智能家居等领域。
本文将深入讨论基于STM32单片机的超声波测距仪的设计原理、硬件搭建和软件编程,并分享对该设计的观点和理解。
【简介】1. 超声波测距原理简介(可使用子标题,如1.1)- 超声波的特性与应用- 超声波传感器原理及工作方式2. 设计方案(可使用子标题,如2.1)- 系统框图:硬件模块与连接方式- 所需材料清单及器件参数选择【正文】1. 超声波传感器的选型与特性比较(可使用子标题,如1.1)1.1 超声波传感器的种类与特点1.2 STM32单片机与超声波传感器的配合选择理由与原则2. 硬件电路设计与搭建(可使用子标题,如2.1)2.1 超声波发射电路设计与实现2.2 超声波接收电路设计与实现2.3 STM32单片机与超声波传感器的连接方法及引脚映射3. 软件编程实现(可使用子标题,如3.1)3.1 STM32单片机开发环境配置与准备3.2 程序框架和流程设计3.3 超声波信号处理与距离计算算法【总结】1. 设计成果总结与优缺点评价- 设计成果与功能实现总结- 设计过程中的挑战与解决方案- 设计的优点与改进空间2. 对基于STM32单片机的超声波测距仪设计的观点和理解- 本设计在硬件搭建和软件编程方面充分利用了STM32单片机的性能与功能- 超声波测距仪在工业自动化和智能家居等领域具有广阔应用前景 - 未来可以进一步提升设计的灵活性和可扩展性【参考资料】- 张三: 《超声波测距原理与应用技术》,出版社,2018年- 李四: 《STM32单片机与嵌入式系统设计》,出版社,2019年以上是本文基于STM32单片机的超声波测距仪设计报告,对这个主题的观点和理解。
希望这篇文章内容全面、深入,并能帮助您对超声波测距仪设计有更深刻的理解。
基于单片机的超声波测距系统摘要:在工业生产中,许多地方需要用到非接触式距离测量,例如工业机械手的虚拟围栏、扫地机器人避障、AGV小车的壁垒回避等。
什么是超声波?就是一个频率超过二十千兆赫兹而且在弹性介质里面生成的机械震荡波。
它拥有精准的指向性、长远的发射长度、节能环保等优势,所以在零触摸距离测量上应用广泛。
由于它对环境光、散射颜色系数以及电磁场强度不敏感,因此超声波测距能够极大限度的适应比较复杂的环境空间,此外超声波测量的实时性高,精度相对不差甚至价格相对而言比较适中,故超声波测距方案性价比较高。
为此,本设计尝试以单片机STC89C51为核心,Protel99se绘制原理图,利用一对40 kHz超声波收发器设计一款体积较小、价格低廉、精度较高、具有温度补偿、实时LCD显示和报警的超声波测距电子系统。
关键词:超声波测距系统;单片机技术;电子技术当前有越来越多的人或者机构组织研究超声波测距系统。
因为超声波测距系统相较于其他方式,拥有相比之下较多的优点,例如操作简单,价格适度等。
所以基于超声波的测距系统无论在生活中或是实际工业生产中的各个万面都有良好的发展空间。
基于超声波的测距系统是一个拥有十分广阔前景的研究方问。
况且随着科技的进步,基于超声波的测距系统各项优点逐渐提高,超声波测距系统的研究也有了显著的进步。
有些场所对精度的需求较为严格,并且对测量工具的大小有着严格的管控,超声波测距发挥这举足轻重的作用。
鉴于超声波测距的研究和发展,在智能化方面会有一个更为广泛的未来,在日常活动与实地作业中发光发热。
随着非接触式测量技术的发展,测距的准确度以及自动化程度会更高,从而影响社会的发展[1]。
由于超声波测距的测距过程不需要接触被测物体接,测量结果基本不受外界干扰影响 ,同时卫生性相比于其他测距方式有所提高,也更加适用于部分环境恶劣的工业环境。
由于超声波的各项特点,它常被应用于距离的测量,如测距仪、液位测量等[2]。
一、实训目的本次实训旨在通过实际操作,了解超声波雷达测距的原理和实现方法,掌握超声波传感器的基本使用技巧,并学会利用STM32单片机进行数据处理和显示,从而完成一个简单的超声波雷达测距系统。
二、实训器材1. STM32F103单片机开发板2. HC-SR04超声波传感器模块3. OLED显示屏4. 连接线5. 电源三、实训原理超声波雷达测距的原理是利用超声波在空气中的传播速度来测量距离。
当超声波传感器发射超声波时,它会遇到障碍物后反射回来,通过测量超声波从发射到接收的时间差,可以计算出障碍物与传感器之间的距离。
四、实训步骤1. 硬件连接:- 将HC-SR04超声波传感器模块的两个引脚分别连接到STM32单片机的GPIO引脚。
- 将OLED显示屏的相应引脚连接到STM32单片机的SPI或I2C接口。
- 将电源连接到STM32单片机和超声波传感器模块。
2. 软件设计:- 编写STM32单片机的初始化程序,配置GPIO引脚、SPI/I2C接口等。
- 编写超声波传感器的控制程序,用于控制超声波传感器的发射和接收。
- 编写数据处理程序,用于计算超声波从发射到接收的时间差,从而得到距离值。
- 编写OLED显示屏的显示程序,用于显示距离值。
3. 程序实现:- 使用STM32 HAL库函数或直接操作寄存器来实现程序。
- 通过定时器中断来实现超声波传感器的时序控制。
- 使用查表法或直接计算法来实现距离值的转换。
4. 系统测试:- 将系统放置在测试环境中,调整测试距离,观察OLED显示屏上显示的距离值是否准确。
- 分析测试结果,找出系统误差的来源,并进行优化。
五、实训结果与分析1. 测试结果:- 在不同的测试距离下,OLED显示屏上显示的距离值与实际距离基本相符,说明系统具有较高的测量精度。
2. 误差分析:- 超声波在空气中的传播速度受温度、湿度等因素的影响,导致测距误差。
- 超声波传感器的响应时间存在一定的延迟,也会导致测距误差。
基于STC11F04E单片机的超声波测距仪实训报告目录摘要 (3)一.超声波测距原理 (4)二.超声波测距仪原理图 (4)1. 单片机最小系统电路/按键电路/LCD显示电路 (5)2. 程序下载电路/电源电路/指示灯电路 (5)3. 超声波发送电路 (5)4. 超声波接收电路 (5)5. 其他电路 (5)三.超声波测距仪功能介绍 (6)四.超声波测距仪图片 (6)五.实训心得 (8)六.程序设计简介 (9)七.超声波测距仪部分程序 (10)摘要本超声波测距仪是基于STC11F04E单片机的,该测距仪可测得精确距离为3~100CM,误差小于1CM,使用NOKIA 5110 LCD显示,全过程中文显示,便于用户使用。
单片机产生超声波经功率放大发送出去,接收到的超声波经CX20106产生中断让单片机计算距离,再通过LCD显示距离,本测距仪还有可调的报警距离设定功能、即将进入盲区提示功能、即将超出量程提示功能、开机显示各种预设画面功能。
其中,进入报警距离调整状态时还有对应按键功能提示的功能。
一.超声波测距原理超声波测距原理是通过超声波发射器向某一方向发射超声波(一般为40KHz的超声波),在发射时刻的同时开始计时,超声波在空气中传播时碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。
超声波在空气中的传播速度为v ,而根据计时器记录的测出发射和接收回波的时间差△t ,就可以计算出发射点距障碍物的距离S ,即:S = v•△t /2其中,超声波在空气中的传播速度给温度有关,速度V=332+0.607*T,T是环境温度,单位是摄氏度,因此,要精确测距要考虑温度的影响,采用温度补偿方式进行计算。
二.超声波测距仪原理图STC11F04E单片机最小系统电路/ 程序下载电路/按键电路/NOKIA 5110LCD显示电路电源电路/指示灯电路超声波发送电路超声波接收电路其他功能:温度检测电路/日期时间电路/外部存储电路1.单片机最小系统电路/按键电路/LCD显示电路STC11F04E单片机是51单片机的升级版,内置复位电路和振荡电路,本系统使用内置复位电路,按单片机说明书所说:在1号脚接1K电阻接地即可。
基于单片机的超声波测距仪设计超声波测距仪是一种利用超声波测量距离的装置,具有测量速度快、精度高、非接触等特点,在机器人导航、自动控制、无损检测等领域得到了广泛的应用。
随着单片机技术的不断发展,基于单片机的超声波测距仪设计成为了可能,具有体积小、成本低、易于集成等优点。
本文将介绍一种基于单片机的超声波测距仪的设计与实现方法。
超声波测距仪的工作原理是利用超声波的传输特性来实现距离的测量。
超声波发射器发出超声波,超声波在空气中传播,遇到障碍物或被测物体后反射回来,被超声波接收器接收。
根据超声波的传播速度和传播时间,可以计算出超声波发射器与被测物体之间的距离。
一般来说,超声波的传播速度为340m/s,因此,距离计算公式为:距离 =传播速度×时间 / 2。
本设计选用STM32F103C8T6单片机作为主控制器,该单片机具有高性能、低功耗、丰富的外设接口等特点,满足系统的要求。
超声波测距仪的硬件部分包括超声波发射器、超声波接收器、单片机控制器和显示模块。
具体设计方案如下:(1)超声波发射器:采用HC-SR04模块,该模块集成了超声波发射器和接收器,输出脉冲宽度为5ms,驱动电压为5V。
(2)超声波接收器:同样采用HC-SR04模块,接收反射回来的超声波信号,并将其转换为电信号输出。
(3)单片机控制器:选用STM32F103C8T6单片机,接收超声波接收器输出的电信号,通过计算得到距离值,并将其输出到显示模块。
(4)显示模块:采用液晶显示屏,用于显示测量得到的距离值。
(1)初始化模块:对单片机、HC-SR04模块和液晶显示屏进行初始化。
(2)超声波发射模块:通过单片机控制HC-SR04模块发射超声波,并开始计时。
(3)超声波接收模块:接收反射回来的超声波信号,并输出到单片机。
(4)距离计算模块:根据超声波的传播速度和传播时间,计算出超声波发射器与被测物体之间的距离,并将其存储在单片机的存储器中。
(5)显示模块:将计算得到的距离值输出到液晶显示屏上。
基于单片机的超声波测距系统实验报告一、引言超声波测距系统是一种基于超声波工作原理的测距技术,主要通过发送超声波信号并检测回波信号来测量目标物体与传感器之间的距离。
本实验旨在通过使用单片机搭建一个基于超声波的测距系统,通过实际测量和数据分析来验证其测距的准确性和可靠性。
二、原理超声波测距系统主要包括超声波发射器、超声波接收器和单片机控制系统三部分。
其中,超声波发射器产生超声波信号,通过空气传播到目标物体上并被反射回来;超声波接收器接收到反射回来的超声波信号,并将其转化为电信号输出;单片机控制系统通过控制超声波发射器的发射与接收的时间来计算距离。
三、实验步骤1.搭建硬件连接:将超声波发射器和接收器分别连接到单片机的GPIO引脚,并通过电阻和电容进行滤波处理。
2.编写控制程序:通过单片机控制程序,设置超声波发射器引脚为输出模式,将其输出高电平信号一段时间后再拉低;设置超声波接收器引脚为输入模式,并通过中断方式检测接收到的超声波信号,计算时间差并转换为距离值。
3.进行实际测量:将超声波发射器和接收器对准目标物体,启动测量程序并记录距离值。
4.多次实验并计算平均值:为了提高测距的准确性,进行多次实验并计算多次测量结果的平均值。
四、实验结果和讨论通过多次实验测量,我们得到了如下结果:测量1距离为30cm,测量2距离为31cm,测量3距离为29cm。
将这些结果进行平均,得到最终距离结果为30cm。
通过与实际测量的距离进行对比,我们发现测量结果基本与实际距离相符,误差控制在可接受范围内。
这表明我们搭建的基于超声波的测距系统具有较好的测距准确性和可靠性。
然而,我们也发现在一些特殊情况下,例如目标物体表面有较强的吸收或反射能力时,测量结果可能会出现误差。
这是因为超声波在传播过程中会受到传播介质和目标物体的影响,从而引发信号衰减或多次反射等现象。
在实际应用中,我们需要根据具体情况进行系统的优化和调整,以提高测距的精确度。
基于单片机得超声波测距系统实验报告一、实验目得1、了解超声波测距原理;2.根据超声波测距原理,设计超声波测距器得硬件结构电路;3.对设计得电路进行分析能够产生超声波,实现超声波得发送与接收,从而实现利用超声波方法测量物体间得距离;4.以数字得形式显示所测量得距离;5、用蜂鸣器与发光二极管实现报警功能、二、实验内容1、认真研究有关理论知识并大量查阅相关资料,确定系统得总体设计方案,设计出系统框图;2.决定各项参数所需要得硬件设施,完成电路得理论分析与电路模型构造。
3。
对各单元模块进行调试与验证;4、对单元模块进行整合,整体调试;5.完成原理图设计与硬件制作;6.编写程序与整体调试电路;7。
写出实验报告并交于老师验收。
三、实验原理超声波测距就是通过不断检测超声波发射后遇到障碍物所反射得回波,从而测出发射与接收回波得时间差t,然后求出距S=Ct/2,式中得C为超声波波速。
由于超声波也就是一种声波,其声速C与温度有关。
在使用时,如果温度变化不大,则可认为声速就是基本不变得。
如果测距精度要求很高,则应通过温度补偿得方法加以校正、声速确定后,只要测得超声波往返得时间,即可求得距离。
这就就是超声波测距仪得机理,单片机(AT89C51)发出短暂得40kHz信号,经放大后通过超声波换能器输出;反射后得超声波经超声波换能器作为系统得输入,锁相环对此信号锁定,产生锁定信号启动单片机中断程序,得出时间t,再由系统软件对其进行计算、判别后,相应得计算结果被送至LED显示电路进行显示、(一)超声波模块原理:超声波模块采用现成得HC-SR04超声波模块,该模块可提供2cm—400cm得非接触式距离感测功能,测距精度可达高到3mm、模块包括超声波发射器、接收器与控制电路。
基本工作原理:采用IO 口 TRIG触发测距,给至少10us 得高电平信号;模块自动发送 8 个 40khz 得方波,自动检测就是否有信号返回;有信号返回,通过 IO口ECHO 输出一个高电平,高电平持续得时间就就是超声波从发射到返回得时间。
基于单片机的超声波测距超声波测距是一种常用的测量距离的方法,它利用超声波的传输速度和反射原理来实现。
基于单片机的超声波测距系统是一种简单、高精度、低成本和易于实现的测距解决方案。
本文将介绍基于单片机的超声波测距原理、硬件设计和软件实现。
一、基本原理超声波测距原理基于声波的物理特性,通常是利用超声波发射器发射声波,声波在空气中传播,当遇到物体时,声波被反射并返回,接受器接收反射的声波,并通过单片机处理读取测量距离。
测量距离的原理是计算超声波发射和接收之间的时间差,从而计算出距离。
超声波声波在空气中的传播速度为340m/s,而传输速度在其他介质中会有所不同。
超声波测距系统中一般会使用超声波发射器和超声波接收器来进行测量。
当超声波发射器发射声波时,声波在空气中传播,直到遇到物体。
声波被物体反射,并返回发射器。
接收器接收并放大返回的信号,然后将信号传送到单片机进行处理。
单片机计算发射器生成声波到收到其反射的时间差,然后计算距离。
基于单片机的超声波测距系统最大的优点是计算和显示距离实时快速,并且使用简单。
二、硬件设计基于单片机的超声波测距系统通常需要以下组件:超声波发射器、超声波接收器、变压器、晶振、单片机和LCD显示器等。
发射器通常由脉冲产生器和PNP晶体管组成,晶振用于频率稳定。
接收器由前置放大器、滤波器、检波器和放大器等组成。
要使测距系统稳定工作,变压器用于提供电源。
单片机通常使用AT89C51、STC89C52等系列芯片。
LCD显示器用于显示测量距离结果。
三、软件实现基于单片机的超声波测距系统的软件主要包括测距程序、计时程序、显示程序和控制程序等。
测距程序负责控制超声波发射器和接收器,并计算超声波发射和接收之间的时间差。
计时程序用于检测时间差,并将其值传递给单片机。
显示程序主要用于计算距离值,以实时显示测量结果。
控制程序用于控制整个系统的正常工作,例如,控制LCD显示器的开关和控制超声波发射器和接收器的启停等。
毕业设计报告(论文)报告(论文)题目:基于单片机的超声波测距系统设计作者所在系部:电子工程系作者所在专业:作者所在班级:作者姓名:作者学号:指导教师姓名:完成时间:北华航天工业学院教务处制北华航天工业学院电子工程系毕业设计(论文)任务书指导教师:教研室主任:系主任:摘要超声波是指频率在20kHz以上的声波,它属于机械波的范畴。
超声波也遵循一般机械波在弹性介质中的传播规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质吸收而发生衰减等。
正是因为具有这些性质,使得超声波可以用于距离的测量中。
随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中。
系统的设计主要包括两部分,即硬件电路和软件程序。
硬件电路主要包括单片机电路、发射电路、接收电路、显示电路和电源电路,另外还有复位电路和LED控制电路等。
我采用以AT89C51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路。
整个电路采用模块化设计,由信号发射和接收、供电、温度测量、显示等模块组成。
发射探头的信号经放大和检波后发射出去,单片机的计时器开始计时,超声波被发射后按原路返回,在经过放大带通滤波整形等环节,然后被单片机接收,计数器停止工作并得到时间。
温度测量后送到单片机,通过程序对速度进行校正, 结合两者实现超声波测距的功能。
软件程序主要由主程序、预置子程序、发射子程序、接收子程序、显示子程序等模块组成。
它控制单片机进行数据发送与接收,在一定温度下对超声波速度的校正,还有实现数据正确显示在LED上。
另外程序控制单片机消除各探头对发射和接收超声波的影响。
相关部分附有硬件电路图、程序流程图。
实际的环境对超声波有很大的影响,如外部电磁干扰电源干扰信道干扰等等,空气的温度对超声波的速度影响也很大。
此外供电电源也会使测量差生很大的误差。
再设计的过程中考虑了这些因素,并给出了一些解决方案。
关键词AT89C51 超声波测距目录摘要 (1)第1章绪论 (1)1.1课题背景及重要意义 (1)1.2国内超声检测发展综述 (1)1.3超声波测距存在的问题与课题的意义 (2)1.4本文主要研究内容 (3)第2章超声波测距原理与方法 (5)2.1超声波简介 (5)2.1.1 超声波的三种形式 (5)2.1.2 超声波的物理性质 (5)2.1.3 超声波对声场产生的作用 (5)2.2超声波传感器介绍 (6)2.2.1 超声波测距原理及结构 (6)2.2.2超声波传感器选择 (9)2.2.3超声波测距的原理 (9)2.2.4发射脉冲宽度 (10)2.2.5测量盲区 (11)2.3本章小结 (12)第3章系统硬件设计 (13)3.1发射电路设计 (13)3.1.1发射电路设计方案 (14)3.1.2发射电路常用方案 (14)3.1.3 超声波发射器的注意事项 (15)3.2接收电路设计 (16)3.3单片机显示电路设计 (17)3.3.1 LCD显示部分 (21)3.3.2报警部分 (22)3.4本章小结 (22)第4章软件设计和测量结果分析 (23)4.1系统软件设计 (23)4.2外部中断子程序 (27)4.3定时器中断子程序 (27)4.4实现重要功能的程序分析 (28)4.4.1 实现温度读取功能 (28)4.4.2 实现根据温度转化声速 (29)4.4.3 实现距离计算 (29)4.5本章小结 (30)第5章结论 (31)致谢 (32)参考文献 (33)附录1 (34)附录2 (35)基于单片机的超声测距系统设计第1章绪论1.1课题背景及重要意义近年来,随着电子测量技术的发展,运用超声波作出精确测量已成可能。
基于单片机的超声波测距系统设计前言随着科技的迅猛发展越来越多科技成果被广泛的运用到人们的日常生活当中,给我们的生活带来了诸多方便。
本设计就是本着这个宗旨出发,利用超声波的特性来为我们服务。
由于超声波指向性强,因而常于距离的测量。
超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。
超声波在空气中的传播速度为v,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离s,即:s=vt/2 。
这就是所谓的时间差测距法。
利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求, 随着科学技术的快速发展,超声波将的应用将越来越广。
但就目前技术水平来说,人们可以具体利用的超声波技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。
超声波测距技术在社会生活中已有广泛的应用如汽车倒车雷达等,它们测距精度一般较低。
目前对超声波高精度测距系统的需求越来越大。
展望未来,超声波作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求。
未来的超声波测距技术将朝着更高精度,更大应用范围,更稳定方向发展,死角问题也能得以解决。
1 超声波测距的基本概述人耳能听到的声音是由于物体振动产生的,它的频率在20HZ-20KHZ范围内,超过20KHZ称为超声波,低于20HZ的称为次声波。
超声波是在一种弹性介质中的机械振荡,它有两种形式:横向振荡(横波)及纵向振荡(纵波)。
在工业中应用主要采用纵向振荡。
超声波可以在气体、液体及固体中传播,其传播速度受很多因素的影响。
在空气中传播超声波,其频率较低、衰减较快。
超声波波长短,绕射现象小,其方向性好,而且穿透能力很强,且碰到杂质或分界面就会有显著的反射现象。
这一特性已被广泛用于超声波探伤、测厚、测距、遥控和超声成像等技术。
基于单片机的超声波测距系统设计一、本文概述随着科技的飞速发展,超声波测距技术以其非接触、高精度、实时性强等优点,在众多领域如机器人导航、自动驾驶、工业控制、安防监控等中得到了广泛应用。
单片机作为一种集成度高、控制灵活、成本较低的微控制器,是实现超声波测距系统的理想选择。
本文旨在探讨基于单片机的超声波测距系统的设计原理、硬件构成、软件编程及实际应用,以期为相关领域的科研人员和技术人员提供参考。
本文将首先介绍超声波测距的基本原理和关键技术,包括超声波的传播特性、测量原理及误差分析。
接着,详细阐述基于单片机的超声波测距系统的硬件设计,包括单片机的选型、超声波收发模块的选择与连接、信号处理电路的设计等。
在此基础上,本文将介绍系统的软件设计,包括超声波发射与接收的时序控制、距离数据的处理与显示等。
还将讨论系统的低功耗设计、抗干扰措施以及在实际应用中的优化策略。
本文将通过具体实例,展示基于单片机的超声波测距系统在机器人定位、障碍物检测等场景中的应用,以验证系统的可行性和实用性。
本文期望能为相关领域的研究提供有益的参考,推动超声波测距技术的进一步发展和应用。
二、超声波测距原理超声波测距系统主要基于超声波在空气中的传播速度以及反射原理进行设计。
超声波是一种频率高于20kHz的声波,其传播速度在标准大气条件下约为343米/秒。
在超声波测距系统中,超声波发射器向目标物体发射超声波,当超声波遇到目标物体后,会发生反射,反射的超声波被超声波接收器接收。
测距的原理在于测量超声波从发射到接收的时间差。
设超声波发射器发射超声波的时间为t1,接收器接收到反射波的时间为t2,则超声波从发射到接收所经历的时间为Δt = t2 - t1。
由于超声波在空气中的传播速度是已知的,所以可以通过测量时间差Δt来计算目标物体与测距系统之间的距离D。
距离D的计算公式为:D = V * Δt / 2,其中V为超声波在空气中的传播速度。
在实际应用中,为了确保测量的准确性,通常会采用一些技术手段来减少误差。
一、项目综述1、超声波简介超声波是频率高于20KHz的声波,具有方向性好,穿透能力强等特点,被广泛应用于各行各业。
在日常生产生活中,很多场合如汽车倒车、机器人避障、工业测井、水库液位测量等需要自动进行非接触测距。
由于超声波对光线、色彩和电磁场不敏感,因此超声波测距对环境有较好的适应能力。
2、项目原理及应用(1)超声波测距原理:本项目采用往返时间检测法测距,其原理是超声波传感器发射一定频率的超声波,借助空气媒质传播,到达测量目标或障碍物后反射回来,经反射后由超声波接收器接收脉冲,其所经历的时间即往返时间,往返时间与超声波传播的路程的远近有关。
测试传输时间可以得出距离。
假定s为被测物体到测距仪之间的距离,测得的时间为t/s,超声波传播速度为v/m·s-1表示,则有关系式<1>s=vt/2 <1>在精度要求较高的情况下,需要考虑温度对超声波传播速度的影响,按式<2>对超声波传播速度加以修正,以减小误差。
v=331.4+0.607T <2>式中,T为实际温度单位为℃,v为超声波在介质中的传播速度单位为m/s(2)项目主要在超声波测距系统的基础上应用于高杆作物的测量,以便适时获得植物生长状况的数据。
二、项目过程(一)确定项目方案1.硬件部分1.1超声波发射部分采用由74HC04组成的推挽式电路进行功率放大以便使发射距离足够远。
1.2超声波接收部分集成芯片CX20106在接收部分电路中起了很大的作用。
CX20106是一款应用广泛的红外线检波接收的专用芯片,其具有功能强、性能优越、外围接口简单、成本低等优点,由于红外遥控常用的载波频率38 kHz与测距的超声波频率40 kHz比较接近,而且CX20106内部设置的滤波器中心频率f0五可由其5脚外接电阻调节,阻值越大中心频率越低,范围为30~60 kHz。
故本次设计用它来做接收电路。
CX20106内部由前置放大器、限幅放大器、带通滤波器、检波器、积分器及整形电路构成。
超声波测距实验报告电子综合实验课程报告课题名称:超声测距仪专业:生物医学工程班级:,,级生物医学,,班姓名:敖一鹭刘晓莎尹曼邹燕一引言随着科学技术的快速发展,超声波将在测距仪中的应用越来越广。
但就目前技术水平来说,人们可以具体利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。
声波测距作为一种典型的非接触测量方法,在很多场合,诸如工业自动控制,建筑工程测量和机器人视觉识别等方面得到广泛的应用。
和其他方法相比,如激光测距、微波测距等,由于声波在空气中传播速度远远小于光线和无线电波的传播速度,对于时间测量精度的要求远小于激光测距、微波测距等系统,因而超声波测距系统电路易实现、结构简单和造价低,且超声波在传播过程中不受烟雾、空气能见度等因素的影响,在各种场合均得到广泛应用。
然而超声波测距在实际应用也有很多局限性,这都影响了超声波测距的精度。
一是超声波在空气中衰减极大,由于测量距离的不同,造成回波信号的起伏,使回波到达时间的测量产生较大的误差;二是超声波脉冲回波在接收过程中被极大地展宽,影响了测距的分辨率,尤其是对近距离的测量造成较大的影响。
其他还有一些因素,诸如环境温度、风速等也会对测量造成一定的影响,这些因素都限制了超声波测距在一些对测量精度要求较高的场合的应用,如何解决这些问题,提高超声波测距的精度,具有较大的现实意义。
为了今后能够为社会做出更多有益的发明发现,超声测距课程设计应运而生。
二课题要求以单片机AT89C51为中心控制单元,配以超声波发射、接收装置,实现超声波发射及接收其遇到障碍物发生反射形成的回波信号,并根据超声波在介质中的传播速度及超声波从发射到接收到回波的时间,计算出发射点距障碍物的距离,设计出一套基于单片机的脉冲反射式超声波测距系统,利用单片机进行操作控制,用数码管作输出显示,设计发射、接收、检测、显示硬件电路和测距系统软件。
三基本要求1 能实现测距操作;2 能清晰稳定地显示测量结果, 具有测量完成提示;3 能正确实现单次测量;4 测量范围在0.5——2m;5 测量精确度2cm。
青 岛 科 技 大 学 本 科 毕 业 设 计 (论 文)题 目 __________________________________________________________________________年 ___月 ___日基于单片机的超声波测距系统设计 2013 6 21基于单片机的超声波测距系统设计摘要超声波是一种指向性强,能量消耗缓慢,在介质中传播距离较远的声波,很适合用于距离测量。
目前国内一般是用专用集成电路设计超声波测距仪,但是成本高,没有显示,操作使用不方便,拓展不灵活。
而基于单片机的超声波测距克服了上述缺点,所以应用非常广泛,这种设计要求非接触式测距。
本设计是以单片机技术为基础,实现对前方物体距离的测量。
该系统设计主要由主控制器模块、超声波发射模块、超声波接收模块和显示模块等四个基本模块构成,用接收部分接收超声波。
本设计利用两个中断,在发射信号时,打开定时器中断0和外部中断0使定时器计时,接收到发射超声波信号时,外部中断0关闭中断,这时定时器中断0计录的时间就为超声波传播经过测距仪到前方物体的来回时间,经过单片机处理得到距离值S并且通过LCD1602显示出来。
本设计在室温条件下的精确度能达到3mm以内,但是要求被测量物体周围比较空旷而且空气温度要求是室温精确度才会达到以上精度。
关键词:单片机,超声波传感器,LCD1602The design of ultrasonic range finder basedon single chip microcomputerABSTRACTUltrasonic is a kind of strong directivity, energy consumption slow, in the medium distance transmission of sound waves, very suitable for distance measurementAt present domestic general is to use ultrasonic rangefinder application-specific integrated circuit design, but the cost is high, no display, operation is not convenient, not flexible. The ultrasonic ranging based on single chip microcomputer to overcome the above shortcomings, so the application is very broad, this non-contact ranging design requirements.This design is based on single chip microcomputer technology, realizes the measurement of the front object distance. The system design is mainly composed of main controller module, ultrasonic launch module, ultrasonic receiving module and display module and so on four basic modules, with a receiving part receiving ultrasound. This design uses two interrupts, when transmitting, open the timer interrupt 0 timer and external interrupt 0 timer, receives the side of launch ultrasonic wave signal, the external interrupt 0 closed interrupted, then the timer interrupt 0 meter to record the time for the ultrasonic propagation through the range finder to the object in front of the time back and forth. And the result is treated with single chip microcomputer distance values S and through LCD1602 display.This design at room temperature under the condition of precision can reach less than 3 mm, but the request was required measure around an object is open and the air temperature is above room temperature will reach the precision accuracy.KEY WORDS: single chip microcomputer; ultrasound sensor; LCD1602目录1 绪论 (5)1.1选题背景 (5)1.2研究意义 (5)2 超声波测距系统总体设计 (7)2.1超声波测距系统设计的目的和要求 (7)2.2 超声波测距系统的工作原理 (7)3 超声波测距系统硬件设计 (9)3.1 AT89S52单片机的概述 (9)3.2 LCD1602液晶显示器 (15)3.2.1 LCD1602模块的结构 (15)3.2.2 LCD1602与单片机的连接方式 (17)3.3 HC-SR04超声波测距模块 (18)3.4 系统设计 (20)4 超声波测距系统软件设计 (23)4.1 设计原理图及分析 (23)4.2 设计说明 (24)5 超声波测距模块测试 (27)6 结论 (28)1 绪论1.1选题背景由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因此它被广泛应用于距离的测试。
基于单片机的超声波测距系统设计超声波测距系统在物联网和机器人等领域有着广泛的应用。
超声波作为一种非接触的测量方式,可以有效地避免物体表面的污染,适用于各种环境下的距离测量。
本文将介绍基于单片机的超声波测距系统的设计方法。
超声波测距的原理超声波测距是基于声波传播时间的测量。
超声波发射器发出超声波,经物体反射后被接收器接收。
根据声波的传播速度和接收时间,可以计算出超声波的传播距离。
常用的超声波频率为40kHz左右,其传播速度约为340m/s。
单片机与超声波测距在超声波测距系统中,单片机作为主控制器,负责控制整个系统的运行。
它接收来自超声波发射器的信号,触发超声波的发送,并计时等待超声波的返回。
当超声波被接收器接收时,单片机通过计算时间差来计算距离。
距离计算距离计算公式为:距离 =声速×时间差 / 2。
在系统中,声速是已知量,因此关键是准确测量时间差。
单片机通过计时器来精确测量从超声波发射到接收的时间,从而计算出距离。
误差分析超声波测距系统可能出现的误差主要有以下几种:1、计时器计时误差:这是时间测量误差的主要来源。
为提高计时精度,可以使用高精度的计时器或者采取软件滤波算法来降低误差。
2、声速误差:由于环境温度、湿度等因素的影响,声速可能会发生变化,从而影响测量结果。
可以通过引入温度传感器来对声速进行补偿,以减小误差。
3、反射面误差:由于被测物体的表面形状和质地等原因,超声波可能无法完全反射回来,导致测量结果偏小。
为减少误差,可以在发射端和接收端加装角度调节装置,使超声波尽量垂直于被测物体表面。
应用实例以下是一个基于单片机的超声波测距系统的设计实例:1、硬件选择:选用STM32F103C8T6单片机作为主控制器,并选用HC-SR04超声波传感器作为超声波发射和接收器。
该传感器具有外接和控制电路简单、性能稳定、可靠性高等优点。
2、硬件连接:将超声波传感器的Trig和Echo引脚分别连接到单片机的GPIO口,以控制超声波的发射和接收。
基于单片机得超声波测距系统实验报告一、实验目得1、了解超声波测距原理;2.根据超声波测距原理,设计超声波测距器得硬件结构电路;3.对设计得电路进行分析能够产生超声波,实现超声波得发送与接收,从而实现利用超声波方法测量物体间得距离;4.以数字得形式显示所测量得距离;5、用蜂鸣器与发光二极管实现报警功能、二、实验内容1、认真研究有关理论知识并大量查阅相关资料,确定系统得总体设计方案,设计出系统框图;2.决定各项参数所需要得硬件设施,完成电路得理论分析与电路模型构造。
3。
对各单元模块进行调试与验证;4、对单元模块进行整合,整体调试;5.完成原理图设计与硬件制作;6.编写程序与整体调试电路;7。
写出实验报告并交于老师验收。
三、实验原理超声波测距就是通过不断检测超声波发射后遇到障碍物所反射得回波,从而测出发射与接收回波得时间差t,然后求出距S=Ct/2,式中得C为超声波波速。
由于超声波也就是一种声波,其声速C与温度有关。
在使用时,如果温度变化不大,则可认为声速就是基本不变得。
如果测距精度要求很高,则应通过温度补偿得方法加以校正、声速确定后,只要测得超声波往返得时间,即可求得距离。
这就就是超声波测距仪得机理,单片机(AT89C51)发出短暂得40kHz信号,经放大后通过超声波换能器输出;反射后得超声波经超声波换能器作为系统得输入,锁相环对此信号锁定,产生锁定信号启动单片机中断程序,得出时间t,再由系统软件对其进行计算、判别后,相应得计算结果被送至LED显示电路进行显示、(一)超声波模块原理:超声波模块采用现成得HC-SR04超声波模块,该模块可提供2cm—400cm得非接触式距离感测功能,测距精度可达高到3mm、模块包括超声波发射器、接收器与控制电路。
基本工作原理:采用IO 口 TRIG触发测距,给至少10us 得高电平信号;模块自动发送 8 个 40khz 得方波,自动检测就是否有信号返回;有信号返回,通过 IO口ECHO 输出一个高电平,高电平持续得时间就就是超声波从发射到返回得时间。
毕业论文(设计)题目基于单片机LCD显示的超声波测距系统基于单片机LCD显示的超声波测距系统摘要:超声波具有指向性强,能量消耗缓慢,传播距离较远等优点,所以,在利用传感器技术和自动控制技术相结合的测距方案中,超声波测距是目前应用最普遍的一种,它广泛应用于防盗、倒车雷达、水位测量、建筑施工工地以及一些工业现场。
本课题详细介绍了超声波传感器的原理和特性,以及主要单片机的性能和特点,并在分析了超声波测距的原理的基础上,指出了设计测距系统的思路和所需考虑的问题,给出了以单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法。
该系统电路设计合理、工作稳定、性能良好、检测速度快、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求。
关键词:超声波测距单片机Ultrasonic ranging system based on single-chip LCDdisplayAbstract:There are some advantages of ultrasonic. They are the strong directivity, the slow energy consumption, the long propagation length and so on. So in the use of Location scheme, which is combined with the sensor technology and automatic control technology. The ultrasonic ranging is the most commonly used than o ther Location schemes. What’s more, the ultrasonic ranging is also widely used in anti-theft, reversing radar, level measurement, building construction site and some industrial fields.This subject detailedly introduces that the principles and characteristics of ultrasonic sensor, the performances and characteristics of the main SCM. Besides, this subject is also based on the analysis of the principle of ultrasonic distancemeasurement, points out the ideas of the ranging system, the considering questions, and gives the microcontroller, which as the core of the low cost, the , miniaturization digital display method of ultrasonic range finder.The circuit of this system , stable operation, good performance, fast detection speed, simple calculation. In addition, this system is also easy to achieve real-time control, and meets the practical requirements of industry measurement .Keywords: ultrasonic distance measurement SC目录第一章绪论 (1)1.1,超声波测距系统的背景目的及重要意义 (1)1.2超声波测距的国内研究现状 (2)1.3超声波测距的测距方案和研究内容 (3)1.3.1基于单片机的超声波测距系统 (3)1.3.2本设计的超声波测距原理 (3)1.3.3本设计的超声波测距方法 (4)第二章系统的硬件结构设计 (4)2.1单片机的选择 (5)2.1.1 STC12C5A60S2单片机的主要性能 (5)2.1.2 STC12C5A60S2单片机的管脚说明 (7)2.1.3 STC12C5A60S2单片机IO口工作模式设定 (9)2.2 超声波测距模块HC-SR04 (10)2.2.1超声波测距模块HC-SR04 的特点 (10)2.2.2超声波测距模块HC-SR04的电气参数 (10)2.2.3 采用超声波测距模块HC-SR04的原因 (11)2.3系统显示模块LCD1602 (11)2.3.1显示模块LCD1602的控制命令 (11)2.3.2 选择显示模块1602的原因 (12)2.4 本章小结 (13)第三章系统总体电路图 (13)3.1 STC12C5A60S2单片机的最小系统组成 (13)3.1.1时钟电路 (13)3.1.2 STC12C5A60S2单片机的最小系统 (14)3.2电源电路 (15)3.3超声波测距模块HC-SR04的电路图如下: (17)3.3.1超声波测距模块HC-SR04的电路图 (17)3.3.2超声波测距模块HC-SR04的引脚说明 (17)3.4显示模块LCD1602: (18)3.4.1 显示模块LCD1602的电路图 (18)3.4.2 1602LCD的引脚说明 (18)第四章系统程序的设计 (20)4.1超声波测距系统流程图 (20)4.2超声波测距系统的各组成程序 (20)4.2.1超声波模块启动程序 (20)4.2.2 T0定时器距离计算程序 (21)4.2.3 T0中断用来计数器溢出程序 (21)4.2.4 系统主程序 (21)设计总结 (22)致谢 (23)参考文献 (23)附录1 (24)本设计总电路图 (24)附录2 (25)本设计总程序 (25)第一章绪论1.1,超声波测距系统的背景目的及重要意义在历次人类文明的产业革命中,传感技术一直扮演着先行官的重要角色,它是贯穿着各个应用技术领域的关键技术,它几乎都能涉及到我们可以想象的所有技术领域中,它是影响着人类在应用技术发展革命的方向标。
基于单片机的超声波测距系统的设计1. 摘要基于单片机的超声波测距系统利用了超声波的频率在20KHZ以上,具有方向性强、耗能慢、传播距离远等优点。
在传感器技术与自动控制技术相结合的测距程序中,超声波测距是最常见的应用之一,被广泛应用于防盗、倒车雷达、水位测量、建筑工地和一些工业用地。
本系统的设计主要包含了硬件电路和软件程序两部分。
通过分析超声波测距的基本原理,选用合适的硬件电路部分,并写入相应的控制代码,以实现一个超声波测距系统的设计思路与方案。
在设计中,核心控制单元选用了STC89C52单片机,利用超声波传感器检测出超声波信号从传感器发出、碰到待测物并反射、最后接收器接收到返回的超声波信号这一过程的时间间隔,通过超声波在一定温度下的传播速度,利用公式得出传感器与待测物之间的距离,并将结果通过1602液晶显示出来。
系统还建立了按键模块和声光报警模块,以提升实用性,并建立了温度补偿模块,以提高测距的精确度。
系统采用模块化的结构,主要由温度检测模块、超声波测距模块、独立按键模块和供电电路四部分构成输入部分,由LCD1602显示模块、蜂鸣器、LED构成输出部分,由STC89C52单片机作为中控部分处理输入部分数据并控制输出部分。
通过Proteus仿真软件验证了硬件电路和软件代码设计。
2. 绪论随着科技的不断发展,人们对距离测量的需求日益增长。
在工业自动化、智能交通、机器人导航等领域,精确的距离测量是实现系统智能化和自动化的关键。
超声波测距技术因其非接触、高精度、低成本等优点,成为距离测量的首选方法之一。
基于单片机的超声波测距系统是利用单片机控制超声波的发射和接收,通过计算超声波在空气中传播的时间来测量距离。
相比传统的机械式测距方法,基于单片机的超声波测距系统具有更高的测量精度和更广泛的应用范围。
本文旨在设计一个基于单片机的超声波测距系统,通过研究超声波的特性、传感器的选择、硬件电路的设计和软件程序的编写,实现对目标距离的高精度测量。
基于单片机的超声波测距系统实验报告一、实验目的1.了解超声波测距原理;2.根据超声波测距原理,设计超声波测距器的硬件结构电路;3.对设计的电路进行分析能够产生超声波,实现超声波的发送与接收,从而实现利用超声波方法测量物体间的距离;4.以数字的形式显示所测量的距离;5.用蜂鸣器和发光二极管实现报警功能。
二、实验内容1.认真研究有关理论知识并大量查阅相关资料,确定系统的总体设计方案,设计出系统框图;2.决定各项参数所需要的硬件设施,完成电路的理论分析和电路模型构造。
3.对各单元模块进行调试与验证;4.对单元模块进行整合,整体调试;5.完成原理图设计和硬件制作;6.编写程序和整体调试电路;7.写出实验报告并交于老师验收。
三、实验原理超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差t,然后求出距S=Ct/2,式中的C为超声波波速。
由于超声波也是一种声波,其声速C与温度有关。
在使用时,如果温度变化不大,则可认为声速是基本不变的。
如果测距精度要求很高,则应通过温度补偿的方法加以校正。
声速确定后,只要测得超声波往返的时间,即可求得距离。
这就是超声波测距仪的机理,单片机(AT89C51)发出短暂的40kHz信号,经放大后通过超声波换能器输出;反射后的超声波经超声波换能器作为系统的输入,锁相环对此信号锁定,产生锁定信号启动单片机中断程序,得出时间t,再由系统软件对其进行计算、判别后,相应的计算结果被送至LED显示电路进行显示。
(一)超声波模块原理:超声波模块采用现成的HC-SR04超声波模块,该模块可提供 2cm-400cm 的非接触式距离感测功能,测距精度可达高到 3mm。
模块包括超声波发射器、接收器与控制电路。
基本工作原理:采用 IO 口 TRIG 触发测距,给至少 10us 的高电平信号;模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。
测试距离=(高电平时间*声速(340M/S))/2。
实物如下图1。
其中VCC 供5V 电源,GND 为地线,TRIG 触发控制信号输入,ECHO 回响信号输出等四支线。
程序中测试功能主要由两个函数完成。
实现中采用定时器0进行定时测量,8分频,TCNTT0预设值0XCE,当timer0溢出中断发生2500次时为125ms,计算公式为(单位:ms):T = (定时器0溢出次数 * (0XFF - 0XCE))/ 1000其中定时器0初值计算依据分频不同而有差异。
(二)超声波换能器工作原理:完成产生超声波和接收超声波这种功能的装置就是超声波传感器,习惯上称为超声换能器,或者超声波探头。
超声波探头主要由压电晶片组成,既可以发射超声波,也可以接收超声波。
小功率超声探头多用作探测方面。
它有许多不同的结构,可分直探头(纵波)、斜探头(横波)、表面波探头(表面波)、兰姆波探头(兰姆波)、双探头(一个探头反射、一个探头接收)等。
超声探头的核心是其塑料外套或者金属外套中的一块压电晶片。
构成晶片的材料可以有许多种。
由于晶片的大小,如直径和厚度也各不相同,因此每个探头的性能都是不同的,我们使用前必须预先了解清楚该探头的性能参数。
超声波传感器的主要性能指标包括:(1)工作频率。
工作频率就是压电晶片的共振频率。
当加到它两端的交流电压的频率和晶片的共振频率相等时,输出的能量最大,灵敏度也最高。
(2)工作温度。
由于压电材料的居里点一般比较高,特别时诊断用超声波探头使用功率较小,所以工作温度比较低,可以长时间地工作而不失效。
医疗用的超声探头的温度比较高,需要单独的制冷设备。
(3)灵敏度。
主要取决于制造晶片本身。
机电耦合系数大,灵敏度高。
人类能听到的声音频率范围为:20Hz~20kHz,即为可听声波,超出此频率范围的声音,即20Hz以下频率的声音称为低频声波,20kHz以上频率的声音称为超声波。
超声波为直线传播方式,频率越高,绕射能力越弱,但反射能力越强。
为此,利用超声波的这种性能就可制成超声波传感器。
另外,超声波在空气中的传播速度较慢,为340m/s,这就使得超声波传感器使用变得非常简便。
我们选用压电式超声波传感器。
它的探头常用材料是压电晶体和压电陶瓷,是利用压电材料的压电效应来进行工作的。
逆压电效应将高频电振动转换成高频机械振动,从而产生超声波,可作为发射探头;而利用正压电效应,将超声振动波转换成电信号,可作为接收探头。
为了研究和利用超声波,人们已经设计和制成了许多种超声波发生器。
总体上讲,超声波发生器大体可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。
电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。
它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。
目前较为常用的是压电式超声波发生器。
图2 超声波传感器结构压电式超声波发生器实际上是利用压电晶体的谐振来工作的。
超声波发生器内部结构如图所示,它有两个压电晶片和一个共振板。
当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。
反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。
如图2所示。
(三)超声波传感器原理:市面上常见的超声波传感器多为开放型,其内部结构如图3所示,一个复合式振动器被灵活地固定在底座上。
该复合式振动器是由谐振器以及一个金属片和一个压电陶瓷片组成的双压电晶片元件振动器。
谐振器呈喇叭形,目的是能有效地辐射由于振动而产生的超声波,并且可以有效地使超声波聚集在振动器的中央部位。
当电压作用于压电陶瓷时,就会随电压和频率的变化产生机械变形。
另一方面,当振动压电陶瓷时,则会产生一个电荷。
利用这一原理,当给由两片压电陶瓷或一片压电陶瓷和一个金属片构成的振动器,所谓叫双压电晶片元件,施加一个电信号时,就会因弯曲振动发射出超声波。
相反,当向双压电晶片元件施加超声振动时,就会产生一个电信号。
基于以上作用,便可以将压电陶瓷用作超声波传感器。
图3 超声波内部结构超声波是一种在弹性介质中的机械振荡,其频率超过20KHz,分横向振荡和纵向振荡两种,超声波可以在气体、液体及固体中传播,其传播速度不同。
它有折射和反射现象,且在传播过程中有衰减。
(四)超声波测距原理:超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。
超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2由于超声波也是一种声波,其声速V与温度有关。
在使用时,如果传播介质温度变化不大,则可近似认为超声波速度在传播的过程中是基本不变的。
如果对测距精度要求很高,则应通过温度补偿的方法对测量结果加以数值校正。
声速确定后,只要测得超声波往返的时间,即可求得距离。
这就是超声波测距仪的基本原理。
四、方案设计硬件部分(一)总体方案设计本设计包括硬件和软件设计两个部分。
模块划分为数据采集、按键控制、四位数码管显示、报警等子模块。
电路结构可划分为:超声波传感器、蜂鸣器、单片机控制电路。
就此设计的核心模块来说,单片机就是设计的中心单元,所以此系统也是单片机应用系统的一种应用。
单片机应用系统也是有硬件和软件组成。
硬件包括单片机、输入/输出设备、以及外围应用电路等组成的系统,软件是各种工作程序的总称。
单片机应用系统的研制过程包括总体设计、硬件设计、软件设计等几个阶段。
系统采用STC89C51单片机作为核心控制单元,当测得的距离小于设定距离时,主控芯片将测得的数值与设定值进行比较处理。
然后控制蜂鸣器报警。
系统总体的设计方框图如图4所示。
.图4 系统方框图(二)主模块设计主控制最小系统电路如图5所示。
图5 最小系统硬件电路总设计见图6,从以上的分析可知在本设计中要用到如下器件: STC89C51、超声波传感器、按键、四位数码管、蜂鸣器等一些单片机外围应用电路。
其中D1为电源. 工作指示灯。
电路中用到3个按键,一个是设定键, 一个加键,一个减键。
图6 总设计电路图(三)时钟电路的设计XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
因为一个机器周期含有6个状态周期,而每个状态周期为2个振荡周期,所以一个机器周期共有12个振荡周期,如果外接石英晶体振荡器的振荡频率为12MHZ,一个振荡周期为1/12us,故而一个机器周期为1us。
如图7所示为时钟电路。
图7 时钟电路图(四)复位电路的设计复位方法一般有上电自动复位和外部按键手动复位,单片机在时钟电路工作以后, 在RESET端持续给出2个机器周期的高电平时就可以完成复位操作。
例如使用晶振频率为12MHz时,则复位信号持续时间应不小于2us。
本设计采用的是自动复位电路。
如图8示为复位电路。
图8 复位电路图(五)声音报警电路的设计如下图所示,用一个Speaker和三极管、电阻接到单片机的P13引脚上,构成声音报警电路,如图9示为声音报警电路。
图9 声音报警电路图(六)显示模块显示模块采用数码管显示接口电路如图10图10 数码管电路(七)电源设计电源部分的设计采用3节5号干电池4.5V供电。
软件部分(一)主程序工作流程图按上述工作原理和硬件结构分析可知系统主程序工作流程图如下图11所示图11 主程序工作流程图(二)超声波探测程序流程图:图12 超声波探测程序流程图五、实验代码#include <reg52.h>#include <intrins.h>#include "eepom52.h"#define uchar unsigned char#define uint unsigned int//数码管段选定义 0 1 2 3 4 5 6 7 8 9 uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; //断码//数码管位选定义uchar code smg_we[]={0xe0,0xd0,0xb0,0x70};uchar dis_smg[8] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};sbit smg_we1 = P3^4; //数码管位选定义sbit smg_we2 = P3^5;sbit smg_we3 = P3^6;sbit smg_we4 = P3^7;sbit c_send = P3^2; //超声波发射sbit c_recive = P3^3; //超声波接收uchar flag_hc_value; //超声波中间变量sbit beep = P2^3; //蜂鸣器IO口定义bit flag_key_b_en,flag_key_set_en; //按键蜂鸣器使能uchar smg_i = 3; //显示数码管的个位数bit flag_300ms ;bit key_500ms ;long distance; //距离uint set_d; //距离bit flag_csb_juli; //超声波超出量程uint flag_time0; //用来保存定时器0的时候的// 按键的IO变量的定义uchar key_can; //按键值的变量uchar zd_break_en,zd_break_value; //自动退出设置界面uchar menu_shudu = 10; //用来控制连加的速度bit flag_lj_en; //按键连加使能bit flag_lj_3_en; //按键连3次连加后使能加的数就越大了uchar key_time,flag_value; //用做连加的中间变量uchar menu_1; //菜单设计的变量uchar a_a;/***********************1ms延时函数*****************************/ void delay_1ms(uint q){uint i,j;for(i=0;i<q;i++)for(j=0;j<120;j++);}/***********************处理距离函数****************************/ void smg_display(){dis_smg[0] = smg_du[distance % 10];dis_smg[1] = smg_du[distance / 10 % 10];dis_smg[2] = smg_du[distance / 100 % 10] & 0x7f;}/******************把数据保存到单片机内部eepom中******************/ void write_eepom(){SectorErase(0x2000);byte_write(0x2000, set_d % 256);byte_write(0x2001, set_d / 256);byte_write(0x2058, a_a);}/******************把数据从单片机内部eepom中读出来*****************/ void read_eepom(){set_d = byte_read(0x2001);set_d <<= 8;set_d |= byte_read(0x2000);a_a = byte_read(0x2058);}/**************开机自检eepom初始化*****************/void init_eepom(){read_eepom(); //先读if(a_a != 1) //新的单片机初始单片机内问EEPOM{set_d = 100;a_a = 1;write_eepom();}}/****************独立按键处理函数********************/void key(){static uchar key_new = 0,key_old = 0,key_value = 0;if(key_new == 0){ //按键松开的时候做松手检测if((P2 & 0x07) == 0x07)key_value ++;elsekey_value = 0;if(key_value >= 5){key_value = 0;key_new = 1;flag_lj_en = 0; //关闭连加使能flag_lj_3_en = 0; //关闭3秒后使能flag_value = 0; //清零key_time = 0;write_eepom();}}else{if((P2 & 0x07) != 0x07)key_value ++; //按键按下的时候elsekey_value = 0;if(key_value >= 5){key_value = 0;key_new = 0;flag_lj_en = 1; //连加使能zd_break_en = 1; //自动退出设置界使能zd_break_value = 0; //自动退出设置界变量清零flag_key_b_en = 1; //按键蜂鸣器使能}}key_can = 20;if(key_500ms == 1) //连加{key_500ms = 0;key_new = 0;key_old = 1;zd_break_value = 0;}if((key_new == 0) && (key_old == 1)){switch(P2 & 0x07){case 0x06: key_can = 3; break; //得到k2键值case 0x05: key_can = 2; break; //得到k3键值case 0x03: key_can = 1; break; //得到k4键值}// dis_smg[3] = smg_du[key_can % 10];}key_old = key_new;}void smg_we_switch(uchar i){switch(i){case 0: smg_we1 = 0; smg_we2 = 1; smg_we3 = 1; smg_we4 = 1; break;case 1: smg_we1 = 1; smg_we2 = 0; smg_we3 = 1; smg_we4 = 1; break;case 2: smg_we1 = 1; smg_we2 = 1; smg_we3 = 0; smg_we4 = 1; break;case 3: smg_we1 = 1; smg_we2 = 1; smg_we3 = 1; smg_we4 = 0; break; }}/***********************数码显示函数*****************************/void display(){static uchar i;i++;if(i >= smg_i)i = 0;// P1 = 0xff; //段选// P3 = 0xf0 | (P3 & 0x0f); //位选// P3 = smg_we[i] | (P3 & 0x0f); //位选smg_we_switch(i);P1 = dis_smg[i]; //段选}void delay(){_nop_(); //执行一条_nop_()指令就是1us_nop_();_nop_();_nop_();_nop_();_nop_();}/*********************超声波测距程序*****************************/void send_wave(){c_send = 1; //10us的高电平触发delay();c_send = 0;TH0 = 0; //给定时器0清零TL0 = 0;TR0 = 0; //关定时器0定时flag_hc_value = 0;while(!c_recive); //当c_recive为零时等待TR0=1;while(c_recive) //当c_recive为1计数并等待{flag_time0 = TH0 * 256 + TL0;if((flag_hc_value > 1) || (flag_time0 > 65000)) //当超声波超过测量范围时,显示3个888{TR0 = 0;flag_csb_juli = 2;distance = 888;flag_hc_value = 0;break ;}else{flag_csb_juli = 1;}}if(flag_csb_juli == 1){TR0=0; //关定时器0定时distance = TH0; //读出定时器0的时间distance = distance * 256 + TL0;distance +=( flag_hc_value * 65536);//算出超声波测距的时间得到单位是msdistance *= 0.017; // 0.017 = 340M / 2 = 170M = 0.017M 算出来是米if(distance > 350) //距离 = 速度 * 时间distance = 888; //如果大于3.8m就超出超声波的量程}}}/*********************定时器0、定时器1初始化******************/void time_init(){EA = 1; //开总中断TMOD = 0X11; //定时器0、定时器1工作方式1ET0 = 1; //开定时器0中断TR0 = 1; //允许定时器0定时ET1 = 1; //开定时器1中断TR1 = 1; //允许定时器1定时}/****************按键处理数码管显示函数***************/void key_with(){if(key_can == 1){menu_1 ++;if(menu_1 >= 2){menu_1 = 0;}if(menu_1 == 0){menu_shudu = 20;dis_smg[0] = smg_du[distance % 10];dis_smg[1] = smg_du[distance / 10 % 10] ;dis_smg[2] = smg_du[distance / 100 % 10] & 0x7f;smg_i = 3;}if(menu_1 == 1){menu_shudu = 1;dis_smg[0] = smg_du[set_d % 10];dis_smg[1] = smg_du[set_d / 10 % 10];dis_smg[2] = smg_du[set_d / 100 % 10] & 0x7f ;dis_smg[3] = 0x88;smg_i = 4;}if(menu_1 == 1) //设置高温报警{if(flag_lj_3_en == 0) //三次连加之后速度加快menu_shudu = 10 ; //500ms 加减一次elsemenu_shudu = 1; //250ms 加减一次if(key_can == 2){set_d ++ ; //按键按下未松开自动加三次if(set_d > 350)set_d = 350;dis_smg[0] = smg_du[set_d % 10]; //取小数显示dis_smg[1] = smg_du[set_d / 10 % 10] ; //取个位显示dis_smg[2] = smg_du[set_d / 100 % 10] & 0x7f; //取十位显示dis_smg[3] = 0x88; //a}if(key_can == 3){set_d -- ; //按键按下未松开自动加三次if(set_d <= 1)set_d = 1;dis_smg[0] = smg_du[set_d % 10]; //取小数显示dis_smg[1] = smg_du[set_d / 10 % 10] ; //取个位显示dis_smg[2] = smg_du[set_d / 100 % 10] & 0x7f ; //取十位显示dis_smg[3] = 0x88; //a}// write_eepom();}}/****************报警函数***************/void clock_h_l(){static uchar value;if(distance <= set_d){value ++; //消除实际距离在设定距离左右变化时的干扰if(value >= 5){beep = ~beep; //蜂鸣器报警}}{value = 0;beep = 1; //取消报警}}/****************按键按下蜂鸣器响下**********************/void key_beep(){static uint value;if((flag_key_b_en == 1) && (flag_key_set_en == 1)){beep = 0; //打开蜂鸣器value ++;if(value > 800){value = 0;flag_key_b_en = 0;beep = 1;//关闭蜂鸣器}}}void main(){send_wave(); //测距离函数smg_display(); //处理距离显示函数time_init();init_eepom(); //读eepom数据while(1){if(flag_300ms == 1){flag_300ms = 0;clock_h_l(); //报警函数send_wave(); //测距离函数if(menu_1 == 0)smg_display(); //处理距离显示函数if(zd_break_en == 1) //自动退出设置界面程序{zd_break_value ++; //每300ms加一次if(zd_break_value > 100) //30秒后自动退出设置界面{menu_1 = 0; //smg_i = 3;zd_break_en = 0;zd_break_value = 0;}}}key(); //按键函数if(key_can < 10){key_with(); //按键处理函数}}}/*********************定时器0中断服务程序用做超声波测距的************************/void time0_int() interrupt 1{set_d ++; // TH0 TL0 到65536后溢出中断}/*********************定时器0中断服务程序************************/ void time1_int() interrupt 3{static uchar value; //定时10ms中断一次TH1 = 0xf8;TL1 = 0x30; //2msdisplay(); //数码管显示函数value++;if(value >= 150){value = 0;flag_300ms = 1;}if(value % 25 == 0){if(flag_lj_en == 1) //按下按键使能 50ms{key_time ++;if(key_time >= menu_shudu) //500ms{key_time = 0;..'key_500ms = 1; //500msflag_value ++;if(flag_value >= 3){flag_value = 10;flag_lj_3_en = 1; //3次后1.5秒后连加大些}}}}}六、实验分析及心得体会本次综合实验中,我们小组三个成员,在听了老师的大致讲解之后开始着手准备相关资料,查阅书籍,请教同学。