超声波测距仪单片机课设实验资料报告材料
超声测距模块实验报告

一、实验目的1. 理解超声波测距的基本原理。
2. 掌握超声波测距模块的硬件连接与软件编程。
3. 学习使用超声波测距模块进行距离测量。
4. 了解超声波测距在实际应用中的优势与局限性。
二、实验原理超声波测距是利用超声波在介质中传播的速度和距离之间的关系来测量距离的一种方法。
当超声波发射器发出超声波时,它会遇到障碍物并反射回来。
通过测量发射和接收超声波之间的时间差,可以计算出障碍物与发射器之间的距离。
超声波在空气中的传播速度大约为340m/s。
设超声波发射器与接收器之间的距离为d,超声波从发射器传播到障碍物并返回所需的时间为t,则有:\[ d = \frac{v \times t}{2} \]其中,v为超声波在空气中的传播速度,t为超声波往返所需的时间。
三、实验设备1. 超声波测距模块HC-SR042. STM32单片机开发板3. 调试工具4. 电源5. 导线四、实验步骤1. 硬件连接(1)将超声波测距模块的VCC、GND、TRIG和ECHO引脚分别连接到STM32单片机的3.3V、GND、GPIO和中断引脚。
(2)将STM32单片机的电源和地连接到实验平台的电源。
2. 软件编程(1)编写STM32单片机的程序,用于控制超声波测距模块。
(2)程序主要包含以下功能:- 初始化GPIO和中断引脚;- 发送触发信号;- 读取回响信号;- 计算距离;- 显示距离。
(3)使用HAL库函数实现上述功能。
3. 调试与测试(1)将程序烧录到STM32单片机中。
(2)使用调试工具检查程序运行情况。
(3)调整超声波测距模块的位置,测试不同距离下的测量结果。
五、实验结果与分析1. 实验数据通过实验,得到以下数据:| 距离(cm) | 测量值(cm) || :--------: | :--------: || 10 | 9.8 || 20 | 19.7 || 30 | 29.6 || 40 | 39.5 || 50 | 49.4 |2. 数据分析实验结果表明,超声波测距模块的测量精度较高,误差在±1cm以内。
基于stm32单片机的超声波测距仪设计报告

基于stm32单片机的超声波测距仪设计报告1. 引言超声波测距仪(Ultrasonic Distance Sensor)是一种常用的测距设备,通过发送超声波脉冲并接收其反射信号来测量目标与测距仪之间的距离。
本报告将详细介绍基于stm32单片机的超声波测距仪的设计过程。
2. 设计原理超声波测距仪的基本原理是利用超声波在空气中的传播速度和反射特性来计算目标物体与测距仪之间的距离。
其中,stm32单片机作为测距仪的控制核心,通过发射超声波脉冲并测量接收到的回波时间来计算距离。
2.1 超声波传播速度超声波在空气中的传播速度约为340m/s,可以通过测量超声波往返的时间来计算出距离。
2.2 超声波反射信号当超声波遇到障碍物时,会产生反射信号,测距仪接收到这些反射信号并测量其时间差,再通过计算即可得到距离。
3. 硬件设计本设计使用stm32单片机作为核心控制器,并搭配超声波发射器和接收器模块。
3.1 超声波发射器超声波发射器负责产生超声波脉冲,并将脉冲信号发送到待测物体。
3.2 超声波接收器超声波接收器负责接收从物体反射回来的超声波信号,并将其转换为电信号。
3.3 stm32单片机stm32单片机作为测距仪的核心控制器,负责发射超声波脉冲、接收反射信号并计算距离。
4. 软件设计本设计涉及的软件设计包括超声波信号发射、接收信号处理和距离计算等。
4.1 超声波信号发射使用stm32单片机的GPIO口控制超声波发射模块,产生一定频率和周期的脉冲信号。
4.2 接收信号处理通过stm32单片机的ADC模块,将超声波接收器接收到的模拟信号转换为数字信号,并对信号进行处理和滤波。
4.3 距离计算根据接收到的超声波反射信号的时间差,结合超声波的传播速度,使用合适的算法计算出距离。
5. 实验结果与分析经过实际测试,基于stm32单片机的超声波测距仪达到了预期的效果。
能够精确测量目标与测距仪之间的距离,并显示在相关的显示设备上。
实训报告超声波测距仪

一、实训目的本次实训旨在通过实际操作,掌握超声波测距仪的设计、制作和调试方法,了解超声波测距的原理和特点,提高动手能力和创新思维。
二、实训内容1. 超声波测距原理超声波测距仪是利用超声波的传播速度和反射原理进行距离测量的设备。
当超声波发射器发射超声波信号后,遇到障碍物会反射回来,接收器接收反射信号,通过计算超声波往返时间,即可得到距离。
2. 超声波测距仪设计(1)硬件设计本次实训所设计的超声波测距仪主要由以下模块组成:1)超声波发射模块:采用超声波发射器产生40kHz的超声波信号。
2)超声波接收模块:采用超声波接收器接收反射回来的超声波信号。
3)单片机模块:采用AT89S51单片机作为主控制器,负责控制超声波发射、接收、数据处理和显示。
4)显示模块:采用四位共阳数码管显示距离。
5)电源模块:采用稳压电源为整个系统供电。
(2)软件设计1)初始化:设置单片机工作状态,初始化各个模块。
2)超声波发射:单片机控制超声波发射器发射超声波信号。
3)超声波接收:单片机控制超声波接收器接收反射回来的超声波信号。
4)数据处理:计算超声波往返时间,根据超声波在空气中的传播速度,计算出距离。
5)显示:将计算出的距离显示在数码管上。
3. 超声波测距仪调试(1)硬件调试:检查各个模块的连接是否正确,确保电路正常工作。
(2)软件调试:编写程序,调试单片机控制程序,使超声波测距仪能够正常工作。
三、实训过程1. 硬件制作(1)按照电路图连接各个模块,焊接电路板。
(2)组装超声波发射器、接收器和数码管。
2. 软件编写(1)根据超声波测距原理,编写程序实现超声波发射、接收、数据处理和显示功能。
(2)调试程序,确保超声波测距仪能够正常工作。
3. 调试与测试(1)检查电路连接是否正确,确保电路正常工作。
(2)调试单片机控制程序,使超声波测距仪能够正常工作。
(3)进行实际测量,测试超声波测距仪的测量精度和稳定性。
四、实训结果与分析1. 测量精度通过实际测量,超声波测距仪的测量精度在1厘米以内,满足日常使用要求。
课程设计实验报告-超声波测距仪的设计

超声波测距仪的设计一、设计目的本设计利用超声波传输中距离与时间的关系,采用STC51单片机进行控制和数据处理,设计出能够精确测量两点间距离的超声波测距仪。
同时了解单片机各脚的功能,工作方式,计数/定时,I/O口的相关原理,并稳固学习单片机的相关内容知识。
二、设计要求1.设计一个超声波测距仪,能够用四段数码管准确显示所测距离2.精度小于1CM,测量距离大于200CM三、设计器材元器件数量STC51单片机 1个超声波测距模块URF-04 1个电阻〔1K 200 4.7K〕 3 个晶振〔12MHz〕 1 个共阳极四位数码管 1 个极性电容〔33pF〕 2 个非极性电容〔22uF〕 1 个四、超声波测距系统原理331.45米/秒,由单片机负责计时,单片机使用12.0M晶振,所以此系统的测量精度理论上可以到达毫米级。
超声波测距的算法设计: 超声波在空气中传播速度为每秒钟340米〔15℃时〕。
X2是声波返回的时刻,X1是声波发声的时刻,X2-X1得出的是一个时间差的绝对值,假定X2-X1=0.03S,那么有340m×0.03S=10.2m。
由于在这10.2m 的时间里,超声波发出到遇到返射物返回的距离如下:图1 测距原理超声波测距器的系统框图如下列图所示:图2 系统框图五、设计方案及分析〔包含设计电路图〕4.1硬件电路设计4.1.1 单片机最小系统控制模块设计与比拟方案二:采用STC51单片机控制。
STC51单片机是一种低功耗、高性能CMOS8位微控制器,具有 8KB的系统可编程Flash 存储器。
AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路,能够满足题目设计的所有要求,而且我们对STC51单片机也比拟熟悉,因此我们选择方案二。
最小系统电路图如图3所示图3 单片机最小系统显示模块设计采用四位共阳极数码管显示,连接电路简单,显示电路连接图如图4所示图4 数码管显示电路超声波测距模块a.本系统采用超声波模块URF04进行测距,该模块使用直流5V供电,理想条件下测距可达500cm,广泛应用于超声波测距领域,模块性能稳定,测度距离精确,盲区〔2cm〕超近。
超声测距实验报告

超声测距实验报告一、实验目的本次超声测距实验的主要目的是研究和掌握利用超声波进行距离测量的原理和方法,并通过实际操作和数据分析,评估测量系统的精度和可靠性。
二、实验原理超声波是一种频率高于 20kHz 的机械波,其在空气中传播时具有良好的指向性和反射特性。
超声测距的基本原理是利用超声波在发射后遇到障碍物反射回来的时间差来计算距离。
具体计算公式为:距离=(超声波传播速度×传播时间)/ 2 。
在常温常压下,空气中超声波的传播速度约为 340 米/秒。
通过测量超声波从发射到接收的时间间隔 t,就可以计算出距离。
三、实验仪器与材料1、超声测距模块:包括发射探头和接收探头。
2、微控制器:用于控制超声模块的工作和处理数据。
3、显示设备:用于显示测量结果。
4、电源:为整个系统供电。
5、障碍物:用于反射超声波。
四、实验步骤1、硬件连接将超声测距模块的发射探头和接收探头正确连接到微控制器的相应引脚。
连接电源,确保系统正常供电。
将显示设备与微控制器连接,以便显示测量结果。
2、软件编程使用相应的编程语言,编写控制超声模块工作和处理数据的程序。
实现测量时间的计算和距离的换算,并将结果输出到显示设备。
3、系统调试运行程序,检查系统是否正常工作。
调整发射功率和接收灵敏度,以获得最佳的测量效果。
4、测量实验将障碍物放置在不同的距离处,进行多次测量。
记录每次测量的结果。
五、实验数据与分析以下是在不同距离下进行多次测量得到的数据:|距离(米)|测量值 1(米)|测量值 2(米)|测量值 3(米)|平均值(米)|误差(米)||||||||| 05 | 048 | 052 | 050 | 050 | 000 || 10 | 095 | 105 | 100 | 100 | 000 || 15 | 148 | 152 | 150 | 150 | 000 || 20 | 190 | 205 | 195 | 197 | 003 || 25 | 240 | 255 | 245 | 247 | 003 || 30 | 290 | 305 | 295 | 297 | 003 |通过对实验数据的分析,可以看出在较近的距离(05 米至 15 米)内,测量误差较小,基本可以准确测量。
超声波测距仪实训报告

超声波测距仪实训报告一、实训目的本次超声波测距仪实训的主要目的是让我们深入了解超声波测距的原理和应用,通过实际操作和调试,掌握超声波测距仪的设计、制作和调试方法,提高我们的实践动手能力和解决问题的能力,同时培养我们的团队合作精神和创新思维。
二、实训原理超声波测距的原理是利用超声波在空气中的传播速度和往返时间来计算距离。
超声波发生器向某一方向发射超声波,在发射的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。
已知超声波在空气中的传播速度为 340 米/秒,根据计时时间 t 就可以计算出发射点距障碍物的距离 s,即 s = 340t/2。
三、实训设备与材料1、超声波传感器模块(包括发射探头和接收探头)2、单片机开发板3、显示屏4、杜邦线若干5、面包板6、电源适配器四、实训步骤1、硬件电路设计将超声波传感器模块与单片机开发板进行连接,使用杜邦线将发射探头连接到单片机的某个输出引脚,接收探头连接到单片机的某个输入引脚。
将显示屏连接到单片机的相应引脚,以便显示测量到的距离值。
2、软件编程选择合适的编程语言和开发环境,如 C 语言和 Keil 软件。
编写初始化程序,包括单片机引脚的配置、定时器的设置等。
编写超声波发射和接收的控制程序,实现超声波的发射和接收,并计算往返时间。
根据距离计算公式,将计算得到的距离值转换为合适的格式,并通过显示屏进行显示。
3、系统调试硬件调试:检查电路连接是否正确,电源是否正常,传感器是否工作正常等。
软件调试:通过单步调试、设置断点等方式,检查程序的执行流程和计算结果是否正确。
综合调试:将硬件和软件结合起来进行调试,不断修改和优化程序,直到系统能够稳定准确地测量距离。
五、实训过程中遇到的问题及解决方法1、测量误差较大问题描述:测量得到的距离值与实际距离存在较大偏差。
原因分析:可能是由于超声波在空气中的传播受到温度、湿度等环境因素的影响,也可能是由于硬件电路的干扰或者软件算法的不完善。
超声波测距仪单片机课设实验报告总结计划学习材料.doc
微机原理与单片机系统课程设计评语:考勤 10 分守纪10分过程30分设计报告30分答辩20分总成绩(100分)专业:轨道交通信号与控制班级:交控 1305姓名:贺云鹏学号:201310104指导教师:李建国兰州交通大学自动化与电气工程学院2015 年12月30日超声波测距仪设计1设计说明1.1 设计目的超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。
超声波测距主要应用于倒车提醒、建筑工地、工业现场等的距离测量。
超声波在气体、液体及固体中以不同速度传播,定向性好、能量集中、传输过程中衰减较小、反射能力较强。
超声波能以一定速度定向传播、遇障碍物后形成反射,利用这一特性,通过测定超声波往返所用时间就可计算出实际距离,从而实现无接触测量物体距离。
超声波测距迅速、方便,且不受光线等因素影响,广泛应用于水文液位测量、建筑施工工地的测量、现场的位置监控、振动仪车辆倒车障碍物的检测、移动机器入探测定位等领域。
1.2 设计方法本课题包括数据测距模块、显示模块。
测距模块包括一个 HC-SR04超声波测距模块和一片 AT89C51单片机,该设计选用 HC-SR04超声波测距模块,通过HC-SR04发射和接受超声波,使用 AT89C51单片机对超声波进行计时并根据超声波在空气中速度为 340 米每秒的特性计算出距离。
显示模块包括一个 4 位共阳极LED数码管和 AT89C51单片机,由 AT89C51单片机控制数码管动态显示距离。
1.3 设计要求采用单片机为核心部件,选用超声波模组,实现对距离的测量,测量距离能够通过显示输出 (LED,LCD)。
2设计方案及原理2.1 超声波测距模块设计HC-SR04超声波测距模块可提供 2cm-400cm的非接触式距离感测功能,测距精度可达高到 3mm。
模块包括超声波发射器、接收器与控制电路。
基于单片机的超声波测距系统实验报告
基于单片机的超声波测距系统实验报告一、引言超声波测距系统是一种基于超声波工作原理的测距技术,主要通过发送超声波信号并检测回波信号来测量目标物体与传感器之间的距离。
本实验旨在通过使用单片机搭建一个基于超声波的测距系统,通过实际测量和数据分析来验证其测距的准确性和可靠性。
二、原理超声波测距系统主要包括超声波发射器、超声波接收器和单片机控制系统三部分。
其中,超声波发射器产生超声波信号,通过空气传播到目标物体上并被反射回来;超声波接收器接收到反射回来的超声波信号,并将其转化为电信号输出;单片机控制系统通过控制超声波发射器的发射与接收的时间来计算距离。
三、实验步骤1.搭建硬件连接:将超声波发射器和接收器分别连接到单片机的GPIO引脚,并通过电阻和电容进行滤波处理。
2.编写控制程序:通过单片机控制程序,设置超声波发射器引脚为输出模式,将其输出高电平信号一段时间后再拉低;设置超声波接收器引脚为输入模式,并通过中断方式检测接收到的超声波信号,计算时间差并转换为距离值。
3.进行实际测量:将超声波发射器和接收器对准目标物体,启动测量程序并记录距离值。
4.多次实验并计算平均值:为了提高测距的准确性,进行多次实验并计算多次测量结果的平均值。
四、实验结果和讨论通过多次实验测量,我们得到了如下结果:测量1距离为30cm,测量2距离为31cm,测量3距离为29cm。
将这些结果进行平均,得到最终距离结果为30cm。
通过与实际测量的距离进行对比,我们发现测量结果基本与实际距离相符,误差控制在可接受范围内。
这表明我们搭建的基于超声波的测距系统具有较好的测距准确性和可靠性。
然而,我们也发现在一些特殊情况下,例如目标物体表面有较强的吸收或反射能力时,测量结果可能会出现误差。
这是因为超声波在传播过程中会受到传播介质和目标物体的影响,从而引发信号衰减或多次反射等现象。
在实际应用中,我们需要根据具体情况进行系统的优化和调整,以提高测距的精确度。
单片机超声波测距-实训报告
基于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电阻接地即可。
单片机超声波测距实习报告
一、实习背景随着科技的不断发展,单片机技术在各个领域得到了广泛应用。
超声波测距技术作为一种非接触式测量方法,具有精度高、稳定性好、抗干扰能力强等优点,在工业自动化、智能家居、机器人等领域有着广泛的应用前景。
本实习报告旨在通过单片机超声波测距实验,了解超声波测距原理,掌握单片机编程技巧,并实现一个简单的超声波测距系统。
二、实习目的1. 理解超声波测距原理,掌握超声波传感器的工作原理。
2. 掌握单片机编程技巧,实现超声波测距功能。
3. 了解超声波测距系统在实际应用中的注意事项。
三、实习内容1. 超声波测距原理超声波测距原理基于声波在介质中传播的速度和距离的关系。
当超声波发射器发出超声波信号后,遇到障碍物会发生反射,反射信号被接收器接收。
根据超声波发射和接收的时间差,可以计算出障碍物与传感器的距离。
2. 实验设备(1)51单片机开发板(2)HC-SR04超声波测距模块(3)蜂鸣器(4)LED灯(5)面包板、连接线3. 实验步骤(1)搭建实验电路将51单片机开发板、HC-SR04超声波测距模块、蜂鸣器、LED灯等元器件按照电路图连接到面包板上。
(2)编写程序使用C语言编写单片机程序,实现以下功能:1)初始化51单片机、HC-SR04超声波测距模块、蜂鸣器、LED灯等外围设备。
2)使用定时器0产生定时中断,定时检测HC-SR04超声波测距模块的回波信号。
3)根据超声波往返时间计算距离,并显示在LCD显示屏上。
4)当距离小于设定值时,蜂鸣器发出报警声,LED灯亮起。
(3)编译、下载程序将编写好的程序编译并下载到51单片机开发板上。
(4)测试与调试连接LCD显示屏,观察距离显示是否正常。
调整HC-SR04超声波测距模块与障碍物的距离,测试报警声和LED灯是否正常工作。
四、实习结果与分析1. 实验结果通过实验,成功实现了超声波测距功能。
当距离小于设定值时,蜂鸣器发出报警声,LED灯亮起。
2. 分析(1)超声波测距原理正确,程序编写无误。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理与单片机系统课程设计业:专轨道交通信号与控制级:班1305 交控姓名:贺云鹏学号: 201310104指导教师:建国交通大学自动化与电气工程学院 30 日 12 2015 年月超声波测距仪设计设计说明1设计目的1.1测量声波在发超声波测距的原理是利用超声波在空气中的传播速度为已知,根据发射和接收的时间差计算出发射点到障碍射后遇到障碍物反射回来的时间,物的实际距离。
超声波测距主要应用于倒车提醒、建筑工地、工业现场等的距离测量。
超声波在气体、液体及固体中以不同速度传播,定向性好、能量集中、传输过程中衰减较小、反射能力较强。
超声波能以一定速度定向传播、遇障碍物后形成反射,利用这一特性,通过测定超声波往返所用时间就可计算出实际距离,从而实现无接触测量物体距离。
超声波测距迅速、方便,且不受光线等因素影响,广泛应用于水文液位测量、建筑施工工地的测量、现场的位置监控、振动仪车辆倒车障碍物的检测、移动机器入探测定位等领域。
1.2 设计方法本课题包括数据测距模块、显示模块。
测距模块包括一个HC-SR04超声波测距模块和一片AT89C51单片机,该设计选用HC-SR04超声波测距模块,通过单片机对超声波进行计时并根据超AT89C51发射和接受超声波,使用HC-SR04.声波在空气中速度为340米每秒的特性计算出距离。
显示模块包括一个4位共阳极LED数码管和AT89C51单片机,由AT89C51单片机控制数码管动态显示距离。
1.3 设计要求采用单片机为核心部件,选用超声波模组,实现对距离的测量,测量距离能够通过显示输出(LED,LCD)。
2 设计方案及原理2.1超声波测距模块设计HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm。
模块包括超声波发射器、接收器与控制电路。
当提供一个10uS 以上正脉冲触发信号,该模块部将发出8个40kHz周期电平并检测回波。
一旦检测到有回波信号则输出回响信号。
回响信号的脉冲宽度与所测的距离成正比。
由此通过发射信号到收到的回响信号时间间隔可以计算得到距离由以上信息,在设计时选用两个定时器,定时器1用来定时800ms,当产生中断时,启动HC-SR04超声波测距模块,即给其T RIG(发射)口送一个持续20ms 的正脉冲,定时器0用来对超声波传递时间进行计时,即当ECHO(回波)口为高电平时启动计时,当ECHO口变为低电平时关闭计时。
再根据超声波在空气中的传播速度为340米每秒,通过AT89C51计算出距离,当距离超过400cm时,显示8888,表示超出工作距离。
2.2 LED显示模块设计将算得的距离通过一个4位LED数码管采用动态扫描进行显示。
2.3 其他功能的设计考虑到实际的需求,本设计还应增加以下功能:1、增加一个指示灯。
当ECHO(回波)口为高电平时,即超声波信号在空气中传播时,指示灯点亮。
当数码管不能正常点亮时,若指示灯正常指示,则说明LED显示模块发生故障;若指示灯不能正常点亮,则说明超声波测距模块发生故障。
超声波测距模800ms增加一个锁存按钮。
由于设计时我们设计的为每、2.块启动一次,由于定时器会产生误差,造成测得距离不断变化,增加一个锁存按钮,当确定显示结果稳定时,按下按钮时,关闭超声波测距模块,可以使结果清楚显示。
3、增加一个待机按钮。
当按下锁存按钮后,再按下待机按钮,这时关闭LED显示,若再打开待机按钮,这时LED启动工作,显示的数值为上一次被测距离。
2.4 设计成本及定价成本:1、HC-SR04超声波测距模块1个3.3元2、AT89C51单片机1个2.5元3、四位LED数码管1个1.5元4、晶振1个0.17元5、电路板1个0.57元6、其他开关、电阻及电容总计0.5元总计:8.54元市场平均价格:12元预计定价:10元元利润:1.463 硬件设计此系统的硬件设计主要包括HC-SR04超声波测距模块、AT89C51单片机、4位LED显示模块,并连入指示灯、待机开关和锁存开关。
仿真时,将HC-SR04超声波测距模块用一个555延时电路来代替即可,其中调节改变滑动变阻器的阻值可以模拟被测物体距离的变化。
实验仿真电路图如图1所示。
图1 设计硬件电路图4 软件设计此系统的软件设计主要包括超声波测距模块设计、LED显示模块设计、和其他拓展模块。
采用定时器1每800ms发射一个脉冲信号启动超声波测距模块,采用定时器0计算超声波传播时间,并通过一个计算函数算得距离,然后送LED显示屏进行动态扫描并显示结果。
4.1 程序流程图所示。
2主程序流程图如图2 图程序流程图4.2程序基于AT89C51单片机的超声波测距源程序见附录一。
5 系统仿真及调试结果基于AT89C51单片机的超声波测距仿真结果见附录二。
基于AT89C51单片机的超声波测距调试结果如图3所示。
图3 系统程序调试结果6 总结本设计通过对超声波测距的研究,与单片机结合,实现了超声波测距的目标,并增加了数据锁存、指示灯和待机的功能。
仿真时由于软件中没有HC-SR04模块,因此用555延时电路来代替。
通过这次课程设计,我加深了对单片机的理解,也为以后更好的运用打下了基础。
最后要感老师的指导,在老师的耐心解答下,我受益匪浅。
参考文献[1] 积英.数字电子技术.中国电力,2011[2] 市捷什科技.HC-SR04超声波测距模块说明书.[3] 江.单片机原理及接口技术的开发[J].软件导刊,2011,12(8):66-70.[4] 王思明.金敏.苟军年.鑫.乔礼.单片机原理及应用系统设计.科学.2012附录一:实验源程序#include<reg51.h>#define uchar unsigned char#define uint unsigned int#define LED_port P0 //用于LED段选#define LED_pos P1 //用于LED位选// sbit qq=P2^6;待机按钮//锁存结果sbit suocun=P2^1;sbit RX=P1^4; // 回波sbit TX=P1^5; //送波sbit D1=P3^7; //接收指示灯uint time=0; //定时器0时间//定时器1时间uint timer=0;//用于显示最后计算得到的距离unsigned long S=0;unsigned long W[2]={0,0}; //用于比较两次测算距离大小bit flag =0; //定时器0中断溢出标志位uchar value[4];uchar code LED_seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //数码管段选uchar code pos[4]={0x01,0x02,0x04,0x08}; //数码管位选/********************************************************/void Delay(uchar t) //延时函数{uchar i,j,k;for(i=0;i<t;i++)for(j=0;j<20;j++)for(k=0;k<20;k++);}/********************************************************/void value_shift(uchar value[]) //将距离值的每一位放到数组中{value[0]=S/1000;value[1]=S/100_x0010_;value[2]=S/10_x0010_;value[3]=S_x0010_;}/********************************************************/void Display(uchar value[]) //数码管显示{uchar i;for(i=0;i<4;i++){LED_pos=pos[i];LED_port=LED_seg[value[i]];Delay(1);}}/********************************************************/void zd3() interrupt 3 //T1中断用来扫描数码管和计800MS启动模块{ //这是计时器1中断TH1=0xf8; //赋初值,2msTL1=0x30;timer++;if(timer>=400){timer=0;TX=0;//800MS 启动一次模块//Delay(30); //一次超声波信号时长30ms,仿真时只需加负脉冲,故屏蔽此句TX=1;}}/********************************************************/中断用来计数器溢出//T0 void zd0() interrupt 1{flag=1; //中断溢出标志}/********************************************************/void Count(void) //计算程序{但应该再乘往返时间,//这是最后算到的时间,time=TH0*256+TL0; time*12/11.059 是一个机器周期,时间应该是以12/11.0593M0 的初始值为//定时器0 TH0=0;TL0=0;S=(time*1.845)/10; 是mm,//算出来time*12*170/(11.0592*1000)mm=time*(1845/10000)mmW[0]=S;if(((W[0]-W[1])^2)<=100) //进行校正,若两次结果相差小于10mm,则采用前一次结果S=W[1];elseW[1]=S;4000mm 4m,即最大距离// if (S>=4000)S=8888;if (flag==1) // 判断是否溢出{S=8888;flag=0;TH0=0;TL0=0;}}/********************************************************/void main( void ){TMOD=0x11; //设T0为方式1,T1为方式1TH0=0; //中断0初始化TL0=0; // 中断1初始化TH1=0XF8;TL1=0X30;中断ET0=1; //允许T0ET1=1;TR1=1;qq=1;suocun=0;EA=1;while(1){; //当RX为零时等待,即echo为低电平while(!RX) TX=1;TR0=1;//开启计数D1=1;while(RX);计数并等待1为RX当//TR0=0; //关闭计数D1=0;//关指示灯while(!qq) //待机按钮按下时,关总中断和位选{EA=0;P1=0X00;}qq=1;Count(); // 计算value_shift(value);Display(value); //显示while(suocun) //当按下锁存按钮时,关总中断并显示{EA=0;Display(value);}EA=1;}}附录二:时的仿真图4m.距离小于1.图1 距离小于4m时的仿真图4m.距离大于2.图2 距离大于4m。