超声波测距报告
超声波测距实验报告
超声波测距实验报告1. 实验目的1.掌握超声波测距的基本原理;2.熟悉超声波测距仪器的使用;3.培养实验操作能力和数据处理能力。
2. 实验原理超声波测距是利用超声波在空气中的传播速度和反射原理,通过测量超声波发射和接收之间的时间间隔来计算被测物体与测距仪之间的距离。
超声波在空气中的传播速度约为 340 m/s。
3. 实验器材与步骤3.1 器材1.超声波测距仪;2.连接线;3.测量物体。
3.2 步骤1.连接超声波测距仪与电源;2.打开超声波测距仪,进行自检;3.将测量物体放置在合适的位置;4.调整超声波测距仪的测量范围;5.记录测量数据;6.分析数据,计算距离。
4. 实验数据与分析本实验共进行五次测量,记录数据如下:序号 | 测量距离(cm) | 误差(cm) |— | ———— | ——– |1 | 150.0 | 2.0 |2 | 152.5 | 1.5 |3 | 148.0 | 2.0 |4 | 151.0 | 1.0 |5 | 149.5 | 1.5 |平均距离 = (150.0 + 152.5 + 148.0 + 151.0 + 149.5) / 5 = 150.0 cm最大误差 = 2.0 cm最小误差 = 1.0 cm5. 实验总结本次实验掌握了超声波测距的基本原理和操作方法,通过对测量数据的分析,得出被测物体与测距仪之间的平均距离为 150.0 cm,最大误差为 2.0 cm,最小误差为 1.0 cm。
实验结果表明,超声波测距技术在实际应用中具有较高的准确性和可靠性。
6. 建议与改进1.在实验过程中,要确保测量物体与测距仪之间的距离在测距仪的测量范围内;2.提高实验操作技巧,减小人为误差;3.后续可以尝试使用不同类型的超声波测距仪进行实验,比较其性能和精度。
7. 实验拓展7.1 超声波测距的应用领域超声波测距技术广泛应用于工业、农业、医疗、交通、安防等领域,例如:1.工业领域:测量物体的尺寸、厚度、距离等;2.农业领域:测量土壤湿度、作物高度等;3.医疗领域:测量人体内部器官的距离、厚度等;4.交通领域:车辆测距、速度检测等;5.安防领域:监控设备、报警系统等。
超声波雷达测距实训报告
一、实训目的本次实训旨在通过实际操作,了解超声波雷达测距的原理和实现方法,掌握超声波传感器的基本使用技巧,并学会利用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. 误差分析:- 超声波在空气中的传播速度受温度、湿度等因素的影响,导致测距误差。
- 超声波传感器的响应时间存在一定的延迟,也会导致测距误差。
超声波测距总结报告
电子技术实验课程设计超声波测距系统总结报告自03胡效赫2010012351一、课题内容及分析首先根据课程所给的几个题目进行选择,由于自己最近在做电子设计大赛的平台设计,希望对超声波测距在定位方面应用有更详尽的了解,所以选择课题三——超声波测距作为课程设计,内容如下:对课题进行分析:实验提供超声波传感器T40-16和R40-16,利用面包板和小规模芯片搭接电路,实现距离的测量及显示。
大致思路即驱动发射端发出超声波,接收端收到返回的脉冲进行处理与计算得到测量距离并通过数码管和蜂鸣器显示。
二、方案比较与选择由于超声波测距方案原理基本相同,只要能够检测出发射到接收的时间,并通过相应计算就可以得到所测距离。
所以问题大致分为驱动发射端、接收端检测、间隔时间计算与计算结果显示四部分。
具体的方案设计如下:闸门脉冲源产生基准宽度为T 的闸门脉冲,该脉冲一方面控制计数电路的计数启动和并产生计数器清零脉冲,使计数器从零开始对标准脉冲源输出的时钟脉冲(频率为17KHz)计数。
同时开启控制门,超声波振荡器输出的40kHz脉冲信号通过控制门,放大后送至超声波换能器,由发射探头转换成声波发射出去。
该超声波经过一定的传播时间,达到目标并反射回来,被超声波换能器的接收探头接收变成电信号,经放大、滤波、电压比较和电平转换后,还原成方波。
图中的脉冲前沿检测电路检测出第一个脉冲的前沿,输出控制信号关闭计数器,使计数器停止计数。
则计数器的计数值反映了超声波从发射到接收所经历的时间(或距离)。
三、模块化设计及参数估算1、闸门控制模块●设计思路555振荡电路产生频率为2Hz的脉冲,作为闸门脉冲源。
RC微分电路将输出的2Hz脉冲进行微分运算产生脉冲信号,作为计数启动和计数清零的信号,分别控制D触发器的置高端和74LS90的清零端。
●参数设计:555振荡电路T = (R1+2*R2)*C*ln2。
其中R1取4.7kΩ,R2接入10kΩ滑动变阻器,最后实测7.51kΩ,C取47uF。
超声波测距实验报告
目录1、课题设计的目的和意义 (3)2、课题要求 (3)2.1、基本功能要求 (3)2.2、提高要求 (4)3、重要器件功能介绍 (4)3.1、CX20106A红外线发射接收专用芯片 (4)3.2、AT89C51系列单片机的功能特点 (5)3.3、ISD1700优质语音录放电路 (6)4、超声波测距原理 (8)4.1、超声波测距原理图 (8)4.2、超声波测距的基本原理 (9)5、硬件系统设计 (10)5.1、超声波发射单元 (10)5.2、超声波接收单元 (11)5.3、显示单元 (11)5.4、语音单元 (12)5.5、硬件设计中遇到的难题: (12)6、系统软件设计 (14)7、调试与分析 (15)7.1调试 (15)7.2误差分析 (15)8、总结 (16)9、附件 (17)9.1、总电路 (17)9.2、主要程序 (18)10、参考文献 (22)1课题设计的目的及意义随着科学技术的快速发展,超声波在测距仪中的应用越来越广,但就目前技术水平而言,人们可以利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。
展望未来,超声波测距作为一种新型的非常重要有用的工具在各方面都有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求。
如声纳的发展趋势:研究具体的高定位精度的被动测距声纳,以满足军事和渔业等的发展需求,实现远程的被动探测和识别。
毋庸置疑,未来的超声波测距仪将与自动化智能化接轨,与其他的测距仪集成和融合,形成多测距仪。
超声波测距在某些场合有着显著的优点,因为这种方法是利用计算超声波在被测物体和超声波探头之间的传输来测量距离的,因此它是一种非接触式的测量,所以他就能够在某些场合或环境比较恶劣的环境下使用。
比如测有毒或者有腐蚀性化学物质的液面高度或者高速公路上快速行驶汽车之间的距离。
随着测距仪的技术进步,测距仪将从具有单纯判断功能发展到具有学习功能,最注重发展到具有创造力。
超声波测距 实验报告
Q1
40106
图 6
7490 芯片的时钟接前一位的 Q3。最低位 7490 芯片的时钟接 17kHz TTL 方波(由信号 发生器提供)和闸门波形相与(或者相与非)的结果。闸门波形由下图所示的电路产生:
1 发(Q1)
D
SET
Q
Q3
CLR
Q
收
图 7
4、报警电路。
图 8
此部分的功能是通过存储器(用 74161 芯片)保存计数值,在报警时间(如图 8)内用 组合逻辑电路对计数值进行比较。若计数值小于 30(cm) (且小于存储器中的值) ,则利用
实验日期 2010-7-13~2010-7-15
实验室
222
座位号
23
清华大学电子工程系
电子技术课程设计 实验报告
超声波测距系统
班级 无 82 学号 2008011098 姓名 刘硕 交报告日期 2010-7-17
【实验任务】
1. 测量距离不小于 0.5m 米,数字显示,动态更新测量结果,更新时间约 1 秒。测量精 度优于 0.05m,显示精度 0.01m。 2.测量距离不小于 1.0m 米,数字显示,动态更新测量结果,更新时间约 1 秒。测量精 度优于 0.01m,显示精度 0.01m 3.测量距离不小于 2.0m 米,数字显示,动态更新测量结果,更新时间约 1 秒。测量精 度优于 0.01m,显示精度 0.01m 距离小于 0.3m 时,用蜂鸣片发出间歇式的“嘀一嘀”声响报 警。 4*.显示无跳动、闪烁,距离小于 0.3m 且距离变近时,用蜂鸣片发出间歇式的“嘀一嘀” 声响报警。
Ix<30cm Q3 BDC
图 10
实现距离小于 30cm 且距离变近报警的电路:
超声测距实验报告
超声测距实验报告一、实验目的本次超声测距实验的主要目的是研究和掌握利用超声波进行距离测量的原理和方法,并通过实际操作和数据分析,评估测量系统的精度和可靠性。
二、实验原理超声波是一种频率高于 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、测量误差较大问题描述:测量得到的距离值与实际距离存在较大偏差。
原因分析:可能是由于超声波在空气中的传播受到温度、湿度等环境因素的影响,也可能是由于硬件电路的干扰或者软件算法的不完善。
超声波测距实训报告结尾
首先,通过本次实训,我们明白了超声波测距技术的原理和应用。
超声波测距仪利用超声波的传播特性,通过测量声波在介质中传播的时间,从而计算出目标物体的距离。
这种非接触式的测量方法,具有精度高、速度快、不受光照和介质影响等优点,在工业、农业、医疗、科研等领域有着广泛的应用前景。
在实训过程中,我们首先学习了超声波测距仪的组成及工作原理。
通过阅读相关资料,我们了解了超声波传感器、单片机、显示屏等关键部件的功能和作用。
在此基础上,我们通过实验验证了超声波在空气中的传播速度,为后续的测距计算奠定了基础。
接下来,我们学习了超声波测距仪的设计与制作。
在老师的指导下,我们完成了电路图的绘制、元器件的选型、电路板的制作和焊接等工作。
在这个过程中,我们遇到了许多困难,如电路板焊接不良、传感器参数不匹配等。
但在老师和同学的帮助下,我们逐一解决了这些问题,最终成功制作出了自己的超声波测距仪。
在测试阶段,我们进行了多次实验,测试了测距仪在不同距离、不同角度、不同环境下的测量精度。
实验结果表明,我们的超声波测距仪在距离范围内具有较高的测量精度,且稳定性较好。
此外,我们还尝试了不同的超声波传感器和单片机,发现不同的组合会对测量结果产生一定影响,这为我们后续的优化工作提供了参考。
在实训过程中,我们还学习了如何利用单片机编程控制超声波测距仪。
通过学习C 语言编程,我们掌握了单片机的基本原理和编程方法。
在编程过程中,我们学会了如何读取传感器数据、计算距离、显示结果等。
这些技能对我们今后的学习和工作具有重要意义。
总结本次实训,我们有以下几点收获:1. 深入了解了超声波测距技术的基本原理和应用领域;2. 提升了动手能力和解决问题的能力;3. 掌握了电路设计、焊接、编程等技能;4. 增强了团队合作意识和沟通能力。
当然,在实训过程中我们也发现了一些不足之处:1. 测距仪的测量精度有待提高;2. 软件功能较为简单,有待进一步优化;3. 实验环境对测量结果有一定影响,需要进一步研究。
超声波测距实验报告
超声波测距实验报告一.实验规划1.在网上寻找同型号超声波原理图,并理解。
2.向学长询问队里关于超声波测距的资料。
3,根据资料将硬件电路搭好,然后一边消化资料,一边学习单片机的相关知识。
4,将上一届的程序看懂,然后稍加改动,以适应自己的单片机开发板环境。
5,有不懂得地方,先自己琢磨,实在琢磨不透就请教队里的学长和学姐。
6,不断地调试程序,使得测距更加精准。
7,进行距离和角度测量的实验,并记录数据8,进行数据分析,探究影响超声波测距精度的原因以及传感器性能的好坏。
二.数据处理超声波发散角的大小被测物体表面平整实际距离11.1 16.1 21.1 26.1 31.1 36.1 41.1 46.1 51.1 56.1 61.1 66.1 71.1 76.1 81.1 86.1 91.1 96.1 101.1 显示距离10.2 15.5 20.5 25.9 30.7 35.7 40.7 45.3 51.1 55.7 61 66.1 71.1 76.3 81.2 86.3 91.5 95.9 101.3 误差大小0.9 0.6 0.6 0.2 0.4 0.4 0.4 0.8 0 0.4 0.1 0 0 0.2 0.1 0.2 0.4 0.2 0.2被测物体表面凹凸不平显示值9.2 14,5 20.8 25.9 30.4 35.6 41 45.5 51.1 58.6 61.6 66.3 71.9 76.2 81.4 86.5 91.2 96.8 102.1 实际值11.1 16.1 21.1 26.1 31.1 36.1 41.1 46.1 51.1 56.1 61.1 66.1 71.1 76.1 81.1 86.1 91.1 96.1 101.1 误差1.2 1.6 0.3 0.2 0.7 0.5 0.1 0.6 02.5 0.5 0.2 0.8 0.1 0.3 0.4 0.1 1被测物体的长为91cm,宽为61cm实际值1111213141516171819202122232425262728293031323334353637383940显示值99.419.7119.413140.5149.8160.4170.2180.7190.1200.5210.9220.4231.1240.5250.9260.2271.1279.8290.9301.8309.7320.7330.3341.4351.1361.7371.3381.2391.6400.1误差0.6.30.6-0.50.2-0.4-0.2-0.7-0.1-0.5-0.9-0.4-1.1-0.5-0.9-0.2-1.10.2-0.9-0.80.30.7-0.3-1.4-1.1-1.7-1.3-1.2-1.6-0.1被测物体长为60cm,宽为45cm实际值1111213141516171819202122232425262728293031323334353637383940显示值99.511.9119.613.8140.9150.1160.7170.6180.6189.6200.2211.7220.6230.9241.1250.7260.3270.5281.3291.3300.9311.6322332.4342.2352.1362.5272.7382.1392.7403.4误差值0.5-.9.4-.8-0.9-0.1-0.7-0.6-0.60.4-0.2-1.7-0.6-0.9-1.1-0.7-0.3-0.5-1.3-1.3-0.9-1.6-2-2.4-2.2-2.1-2.5-2.7-2.1-2.7-3.4三.实验总结1前四组实验数据,超声波传感器所测为1m以内的实物的距离,实验结果表明测量精度与被测物体表面积有关,与被测物体的表面平整程度无关,超声波的发散角与被测物体的距离有关,且与被测物体距离越近,超声波发散角越大,(在10cm以内接近40)当与被测物体距离超过56cm时,发散角在15度以内。
超声波测距实训报告格式
一、实训目的1. 掌握超声波测距的基本原理和操作方法。
2. 学会使用超声波测距模块进行实际测量。
3. 熟悉超声波测距系统的硬件组成和软件编程。
4. 提高非接触式测距技术的应用能力。
二、实训时间2023年X月X日至2023年X月X日三、实训地点XXX实验室四、实训器材1. 超声波测距模块2. 单片机或微控制器(如Arduino)3. 连接线4. 电源5. 计算器6. 实验台五、实训原理超声波测距是基于超声波在介质中传播的速度和时间关系进行距离测量的技术。
当超声波从发射器发出后,遇到障碍物会被反射回来,接收器接收到反射波后,通过计算超声波往返时间,即可得到障碍物与发射器之间的距离。
六、实训步骤1. 硬件连接(1)将超声波测距模块的发射引脚和接收引脚分别连接到单片机或微控制器的数字输出和数字输入引脚。
(2)将电源连接到单片机或微控制器的电源引脚。
(3)将单片机或微控制器连接到电脑,用于程序下载和调试。
2. 软件编程(1)编写程序,设置超声波模块的引脚模式,包括发射和接收引脚的模式。
(2)编写程序,控制超声波模块发射超声波信号。
(3)编写程序,读取接收到的反射波信号,计算超声波往返时间。
(4)编写程序,根据超声波往返时间和声速计算距离。
3. 实验操作(1)将单片机或微控制器程序下载到设备中。
(2)将设备放置在合适的位置,确保超声波模块能够发射和接收信号。
(3)启动程序,观察距离显示结果。
4. 数据分析(1)记录不同测量条件下的距离值。
(2)分析距离值与实际距离之间的误差。
(3)讨论误差产生的原因。
七、实训结果1. 测量距离范围:0.3米至5米2. 测量精度:±1厘米3. 距离显示:通过单片机或微控制器显示,可实时更新八、实训总结1. 通过本次实训,掌握了超声波测距的基本原理和操作方法。
2. 学会了使用超声波测距模块进行实际测量,并了解了超声波测距系统的硬件组成和软件编程。
3. 提高了非接触式测距技术的应用能力,为今后的学习和工作打下了基础。
超声波测距实习报告
一、实习背景随着科技的不断发展,超声波测距技术逐渐在各个领域得到广泛应用。
为了提高自身实践能力,了解超声波测距技术在实际应用中的原理和操作,我参加了本次超声波测距实习。
二、实习目的1. 了解超声波测距的基本原理及工作流程;2. 掌握超声波测距仪的使用方法及注意事项;3. 培养动手能力和团队合作精神;4. 提高对超声波测距技术在实际应用中的认识。
三、实习内容1. 超声波测距原理及工作流程超声波测距是利用超声波在介质中传播的速度和反射原理来测量距离的一种技术。
当超声波发射器发出超声波后,在遇到障碍物时,部分超声波会被反射回来。
通过测量发射超声波和接收反射超声波之间的时间差,可以计算出障碍物与测距仪之间的距离。
超声波测距工作流程如下:(1)发射器发射超声波;(2)超声波遇到障碍物后反射回来;(3)接收器接收反射回来的超声波;(4)计算发射和接收之间的时间差;(5)根据超声波在介质中的传播速度,计算出障碍物与测距仪之间的距离。
2. 超声波测距仪的使用方法及注意事项(1)使用前,确保超声波测距仪的电源充足,避免因电量不足导致测量误差;(2)将测距仪放置在平稳的表面上,避免因震动导致测量误差;(3)调整测距仪的量程,使其适应被测物体的距离;(4)根据需要,调整测距仪的发射角度,确保超声波能够有效传播;(5)在测量过程中,避免测距仪受到其他信号的干扰;(6)测量完成后,关闭测距仪,确保设备安全。
3. 实际操作在实习过程中,我们使用超声波测距仪对实验室内的物体进行了测量。
具体操作如下:(1)将测距仪放置在平稳的桌面上;(2)调整测距仪的量程,使其适应被测物体的距离;(3)调整测距仪的发射角度,确保超声波能够有效传播;(4)按下测距仪的测量按钮,开始测量;(5)观察测距仪的显示屏,读取测量结果;(6)重复以上步骤,对多个物体进行测量。
四、实习心得通过本次超声波测距实习,我深刻认识到以下几方面:1. 超声波测距技术在实际应用中的重要性;2. 掌握超声波测距仪的使用方法及注意事项对于提高测量精度至关重要;3. 动手能力在实践过程中得到了锻炼,为今后的工作积累了宝贵经验;4. 团队合作精神在实习过程中得到了体现,为今后的团队协作打下了基础。
超声波测距实验报告
超声波测距模块工作原理
超声波发射器发射 一组超声波脉冲
脉冲遇到物体后反 射回来
超声波接收器接收 反射回来的脉冲
通过计算发射和接 收脉冲之间的时间 差,得到物体与传 感器之间的距离
编写Arduino程序,控制 超声波传感器发送和接收 信号
连接Arduino板与电脑, 上传程序并运行
调整超声波传感器的角度 和位置,确保测量距离准 确
开始测量
准备超声波传感器和Arduino板 连接超声波传感器和Arduino板 编写程序,设置触发和接收引脚 启动Arduino板,开始测量距离
数据记录和处理
添加标题
添加标题
添加标题
添加标题
拓展应用场景:将超声波测距技术 应用于更多领域,如自动驾驶、智 能机器人等。
降低成本:通过优化设计和生产工艺, 降低超声波传感器和测距系统的成本, 使其更广泛地应用于各种领域。
感谢您的观看
汇报人:XX
实验步骤
准备实验器材
超声波传感器 添加标题
连接线 添加标题
添加标题 Arduino开发板
添加标题 面包板
跳线 添加标题
测量工具 添加标题
添加标题 电脑和软件
添加标题 实验环境
搭建实验装置
准备超声波传感器、 Arduino板、面包板、跳 线等材料
连接超声波传感器与 Arduino板的引脚
连接Arduino板与面包板 的引脚
学会使用超声波传感器进行距离测 量
学会分析实验数据,得出结论
掌握数据处理和分析技巧
学习如何使用超声波传感器进行距 离测量
超声波测距报警器实验报告
超声波测距报警器实验报告一、实验目的本实验旨在设计并实现一个基于超声波的测距报警器,通过测量物体与传感器之间的距离,当距离小于设定的阈值时,触发报警装置,以实现对特定区域的距离监测和预警功能。
二、实验原理超声波测距是通过测量超声波在空气中的传播时间来计算距离的。
超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,碰到障碍物后反射回来,接收器收到反射波就立即停止计时。
已知超声波在空气中的传播速度为 340 米/秒,根据计时器记录的时间 t,就可以计算出发射点距障碍物的距离 s,计算公式为:s = 340t/2 。
三、实验设备与材料1、超声波传感器模块(包括发射器和接收器)2、微控制器(如 Arduino 开发板)3、蜂鸣器4、显示屏(用于显示测量距离)5、杜邦线若干6、电源(如电池盒或 USB 电源)四、实验步骤1、硬件连接将超声波传感器的 VCC 引脚连接到电源的正极端,GND 引脚连接到电源的负极端。
将超声波传感器的 Trig 引脚连接到微控制器的数字输出引脚,Echo 引脚连接到微控制器的数字输入引脚。
将蜂鸣器的正极连接到微控制器的数字输出引脚,负极连接到电源的负极端。
将显示屏连接到微控制器的相应引脚。
2、软件编程使用 Arduino 开发环境编写控制程序。
首先,设置微控制器的引脚模式,包括输入和输出引脚。
然后,在主循环中,通过向 Trig 引脚发送一个短脉冲来触发超声波传感器发送超声波。
等待 Echo 引脚变为高电平,开始计时;当 Echo 引脚变为低电平时,停止计时,并根据时间计算距离。
将计算得到的距离与设定的阈值进行比较,如果小于阈值,驱动蜂鸣器报警,并在显示屏上显示距离和报警信息。
3、调试与测试编译并上传程序到微控制器。
进行实物测试,逐步调整传感器的位置和方向,以及阈值的大小,观察报警效果和距离测量的准确性。
五、实验结果与分析1、距离测量结果在不同距离下进行多次测量,记录测量值。
超声波测距实验报告
超声波测距系统实物设计报告一.设计要求1.测量距离不小于0.3米,数字显示清晰,无数字叠加,动态显示测量结果,更新时间约为0.5秒左右。
2.测量精度优于0.1米,显示精度0.01米。
3.距离小于0.3米时,蜂鸣器发出”嘀嘀”报警。
4.测量距离超过1.0米时,指示灯显示超量程。
二.系统设计思路1.原理框图2.系统组成模块(一)(一)40KHZ 40KHZ 方波产生电路1、分析:利用555定时器组成的多谐振荡器作为时钟信号的产生电路,通过理论计算加上微调电阻和电容的值,得到所需频率的矩形波,当R2远大于R1时,矩形波的占空比接近50%50%,可近似为方波。
,可近似为方波。
超声波振荡器控制门超声波放大器闸门CP 信号(2Hz )计数开启清零计数超声波放大滤波正弦波前沿检测超声波接收器超量程灯光显示小于0.3米蜂鸣报计数显示电路反射物超声波发射器17KHzCP 2、单元电路如下图;3、参数计算:4、仿真结果:(二)(二)2Hz 2Hz 时钟信号发生电路:时钟信号发生电路:1、分析:利用555定时器组成的多谐振荡器作为时钟信号的产生电路,定时器组成的多谐振荡器作为时钟信号的产生电路,通过通过理论计算加上调整电阻和电容的值,得到所需频率的矩形波。
其中占空比在70%70%以上。
以上。
以上。
2、单元电路如下所示:参数计算:R1=710K 欧,R2=375欧,C1=1微F (三)17kHz 时钟信号发生电路:时钟信号发生电路:1、分析:利用555定时器组成的多谐振荡器作为时钟信号的产生电路,定时器组成的多谐振荡器作为时钟信号的产生电路,通过通过理论计算加上调整电阻和电容的值,得到所需频率的矩形波。
理论计算加上调整电阻和电容的值,得到所需频率的矩形波。
2、单元电路如下所示:3、参数计算:R1=1K 欧,R2=395欧,C5=47nf ;4、仿真5、功能:数字显示的测量结果要求动态更新时间约0.5秒左右,所以要求一个频率约2Hz 的时钟信号来控制刷新数据,保证结果显示稳定不闪烁。
超声波测距实验报告
超声波测距实验报告电子综合实验课程报告课题名称:超声测距仪专业:生物医学工程班级:,,级生物医学,,班姓名:敖一鹭刘晓莎尹曼邹燕一引言随着科学技术的快速发展,超声波将在测距仪中的应用越来越广。
但就目前技术水平来说,人们可以具体利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。
声波测距作为一种典型的非接触测量方法,在很多场合,诸如工业自动控制,建筑工程测量和机器人视觉识别等方面得到广泛的应用。
和其他方法相比,如激光测距、微波测距等,由于声波在空气中传播速度远远小于光线和无线电波的传播速度,对于时间测量精度的要求远小于激光测距、微波测距等系统,因而超声波测距系统电路易实现、结构简单和造价低,且超声波在传播过程中不受烟雾、空气能见度等因素的影响,在各种场合均得到广泛应用。
然而超声波测距在实际应用也有很多局限性,这都影响了超声波测距的精度。
一是超声波在空气中衰减极大,由于测量距离的不同,造成回波信号的起伏,使回波到达时间的测量产生较大的误差;二是超声波脉冲回波在接收过程中被极大地展宽,影响了测距的分辨率,尤其是对近距离的测量造成较大的影响。
其他还有一些因素,诸如环境温度、风速等也会对测量造成一定的影响,这些因素都限制了超声波测距在一些对测量精度要求较高的场合的应用,如何解决这些问题,提高超声波测距的精度,具有较大的现实意义。
为了今后能够为社会做出更多有益的发明发现,超声测距课程设计应运而生。
二课题要求以单片机AT89C51为中心控制单元,配以超声波发射、接收装置,实现超声波发射及接收其遇到障碍物发生反射形成的回波信号,并根据超声波在介质中的传播速度及超声波从发射到接收到回波的时间,计算出发射点距障碍物的距离,设计出一套基于单片机的脉冲反射式超声波测距系统,利用单片机进行操作控制,用数码管作输出显示,设计发射、接收、检测、显示硬件电路和测距系统软件。
三基本要求1 能实现测距操作;2 能清晰稳定地显示测量结果, 具有测量完成提示;3 能正确实现单次测量;4 测量范围在0.5——2m;5 测量精确度2cm。
超声波测距报告
超声波测距报告摘要:本报告旨在介绍超声波测距技术及其在实际应用中的重要性。
超声波测距是一种常见的非接触式测距方法,它通过发射超声波并计算其传播时间来测量目标物体与传感器之间的距离。
本报告将介绍超声波测距的基本原理、技术特点、应用领域和未来发展方向。
一、简介超声波测距是利用超声波在空气中传播速度快、能量损耗小的特性,通过测量超声波的传播时间来计算目标物体与传感器之间的距离。
这种测距方法被广泛应用于工业自动化、机器人导航、车辆防撞系统等领域。
二、超声波测距原理超声波测距的原理基于声波在空气中的传播速度恒定的事实。
传感器发送一个短脉冲超声波信号,当它达到目标物体时,部分能量被目标吸收,其余的能量会被反射回传感器。
传感器通过测量收到的回波的时间来计算距离。
三、超声波测距技术特点1. 非接触式测距:超声波测距不需要与目标物体直接接触,可以在远距离范围内进行测量,避免了物体表面损坏和污染的问题。
2. 高精度:超声波测距可以实现毫米级别的测量精度,适用于精密测量和控制应用。
3. 稳定性好:超声波传播速度恒定,不受环境温度和湿度等因素的影响。
4. 响应速度快:超声波测距传感器可以在几毫秒内完成距离测量,适用于快速反应的应用。
四、超声波测距应用领域1. 工业自动化:超声波测距广泛应用于生产线上的物体检测、位移测量等工业自动化应用,为生产过程提供了准确和可靠的测量数据。
2. 机器人导航:超声波测距被用于机器人导航系统中,可以实现避障和目标定位的功能,提高机器人的自主导航能力。
3. 车辆防撞系统:超声波测距被应用于车辆的倒车雷达和自动驾驶系统中,可以实时监测车辆周围的距离,防止碰撞事故的发生。
4. 医疗诊断:超声波测距在医疗领域中被用于检测胎儿发育、器官疾病的诊断等方面,为医生提供重要的辅助诊断信息。
五、超声波测距的未来发展随着科技的不断发展,超声波测距技术也不断进步。
未来,我们可以期待以下方面的发展:1. 更高精度:通过改进传感器和信号处理算法,超声波测距可以实现更高精度的测量,满足更多应用的需求。
超声波测距报告
应用场景
超声波测距技术在机器人 避障、智能家居、无人机 定位等领域具有广泛的应 用前景。
05
结果分析
结果准确性分析
准确性评估
01
通过与激光测距仪的测量结果进行对比,评估超声波测距的准
确性。
误差范围
02
确定超声波测距的误差范围,判断其是否满足测量精度要求。
生变化,影响测量精度。
障碍物表面特性影响
超声波在遇到不同表面特性的障碍物时反 射特性和衰减特性不同,可能影响测量结
果。
角度依赖性
超声波测距的精度受到发射器和接收器之 间角度的影响,角度偏差可能导致测量误 差。
测量范围限制
超声波传播距离较短,通常在几米至几十 米范围内,对于远距离目标测量效果较差 。
03
超声波测距报告
汇报人: 202X-12-25
目录
• 引言 • 超声波测距技术 • 实验设备与环境 • 实验过程与结果 • 结果分析 • 结论与建议
01
引言
目的和背景
目的
本报告旨在全面介绍超声波测距技术,包括其工作原理、应用领域、优缺点以及未来发展趋势。
背景
随着科技的发展,测距技术在各个领域都得到了广泛的应用。超声波测距作为一种非接触式测距方法,具有精度 高、速度快、稳定性好等优点,因此在机器人定位、无人驾驶、无人机飞行控制等领域具有广阔的应用前景。
超声波测距技术的原理
超声波的产生与接收
超声波测距系统通常由超声波发射器和接收器组成。发射器负责产生超声波,而接收器则 负责接收反射回来的声波。
测距原理
超声波在空气中传播的速度是已知的(约为340m/s),因此,通过测量超声波从发射到 被物体反射回来的时间,就可以计算出物体与测距仪之间的距离。公式为:距离 = 声速 × 时间 / 2。
超声波测距实验报告含代码
实验六超声波测距一、实验内容编写C51程序,使用超声波测量实验板距离障碍物的距离,将结果(以厘米计)显示到数码管上。
测量距离在30cm~200cm之间。
二、实验原理振动频率超过20kHz,不能被人耳所接收的声波称作“超声波”。
超声波频率高,波长短,在一定距离内沿直线传播,具有良好的束射性和方向性,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪等。
当超声波在发射后遇到障碍物反射回来之后,根据发射和接收的时间差计算出发射点到障碍物的实际距离。
在不考虑温度等因素的情况下,超声波在空气中的传播速度约为340m/s,根据记录的时间差t,就可以计算出发射点距障碍物的距离(s),即:s=340*t/2。
超声波测距装置分为两部分:超声波发生器和超声波接受器。
本实验中采用压电式超声波发生器。
它利用压电晶体的谐振原理来进行电能和机械能之间的相互转换。
超声波发生器内部有两个压电晶片和一个共振板。
当压电晶片外加一定电压的脉冲信号,并且其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,将电能转换为机械能,产生超声波。
反之,如果两电极间未外加电压,而共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。
因此同一种装置即可作为发生器,也可以作为接收器。
本实验使用的压电晶片的固有振荡频率为40kHz左右。
超声波测距产生误差的原因包括时间误差和超声波传播速度误差两大方面。
时间误差方面可以通过各种软件措施进行弥补,使用单片机也可以达到微秒级,对整体误差影响很小。
超声波的传播速度受空气的密度所影响,空气的密度越高则超声波的传播速度就越快,而空气的密度又与温度有着密切的关系,另外和湿度也有一定的关系。
整体来说,实际速度变化的幅度能够达到5%,是更加重要的影响因素。
本实验基本原理框图如下:本实验基本电路原理图如下:三、实验流程图1、外部中断服务程序e0流程图2、定时器0中断服务程序Timer0流程图3、定时器1中断服务程序Timer1流程图4、主程序流程图四、程序源代码1.#include <reg52.h>2.3.sfr P4 = 0xC0;4.sfr P4SW = 0xBB;5.sbit CLK = P4^4;6.sbit DAT = P4^5;7.sbit out = P1^0;8.9.bit badvalue;10.unsigned int count = 0;11.unsigned long int result = 0;12.unsigned long int n = 0;13.unsigned int m = 0;14.int i;15.unsigned int code tab[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};16.17.void show(unsigned int count){18. unsigned int i, num, c;19. num = tab[count];20.for (i = 0; i < 8; i++)21. {22. CLK = 0;23. c = num & 0x80;24. DAT = c;25. CLK = 1;26. num <<= 1;27. }28.}29.30.void display(unsigned int c)31.{32. show(c % 10);33. c /= 10;34. show(c % 10);35. show(c / 10);36.}37.38.void delay(unsigned char i,unsigned char j)39.{40.while(i--)41. {42.while(j--);43. j=255;44. }45.}46.47.void e0() interrupt 048.{ unsigned long t;49.if(INT0 == 0)50. {51. TR1=0;52. delay(2,255);53.if(badvalue)54. {55. TR1=0;56. result=0;57. }58.else59. {60. t=TH1;61. t = t << 8;62. t |= TL1;63. t=t*170;64. result=t/10000;65. }66.if(result != 11)67. n = 0;68.if(result < 300)69. m = 0;70.if(result >= 11 && result<= 15 )71. {72. n++;73.if(n > 10)74. {75. display(result);76. n = 0;77. }78. }79.else80. {81. display(result);82. }83. EX0=0;84. }85.}86.87.void timer0() interrupt 188.{89. out = ~out;90.if(count != 0x00)91. count-=1;92.else93. {94. TR0=0;95. delay(3,120);96. EX0=1;97. }98.}99.100.void timer1() interrupt 3101.{102. badvalue = 1;103.}104.105.void main()106.{107. P4=0xFF;108. P4SW=0x70;109. TMOD = 0x12;110. EA = 1;111. EX0 = 0;112. ET0 = 1;113. ET1 = 1;114. IT0 = 1;115.116.while(1)117. {118. count = 4;119. out = 0;120. badvalue = 0;121.122. TH0=0xf3;123. TL0=0xf3;124. TH1=0x00;125. TL1=0x00;126.127. TR0=1;128. TR1=1;129.for(i = 0; i < 5; i++)130. delay(255,255);131.132. }133.}五、思考题1. 当时间测量定时器溢出时,能够测量的最大距离是多少?定时器1在工作方式1下是16位定时器,最大值65535,也就是可以累加65536个数值,用65536*340/2/10000 = 1114cm,这便是能够测量的最大距离。
超声波测距器实验报告
超声波测距器的设计设计说明:超声波测距器可应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于,如液位、井深、管道长度、物体厚度等的测量。
也有很多方法可以测量,这里用超声波设计一个测距器,实现距离的测量。
1、基本部分a)测量电阻范围:0.10—3.00mb)测量精度:1cmc)测量时与被测物体无直接接触,能够清晰、稳定的显示测量结果。
2、发挥部分a)可以根据温度的不同,导致的速度的不同,用不同的速度测量距离。
摘要:本文介绍了基于AT89C52单片机的超声波测距器。
通过DS18B20数字温度测量仪测出当前的室温,送入单片机,单片机经过对比,进而得出用哪个档进行测量,单片机和发射电路发射出超声波,超声波遇到障碍物,反射回来,在经过接收电路接收,送入单片机,单片机经过计算,得出距离,并在数码管上显示出距离。
测量精度高达±0.5%,并且显示稳定的4位有效数字。
不仅测量简便,读数直观,且测量精度、分辨率较高。
关键词:单片机;DS18B20;CX20106A;TCT40-10F1;TCT40-10S1一、系统设计1、模块方案比较与论证由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。
利用超声波检测距离设计比较方便,计算处理也较简单,并且在测量精度方面也能达到日常使用的要求。
超声波发生器可以分为两大类:一类是用电器方式产生超声波;另一类是用机械方式产生超声波。
根据设计要求并综合各方面因素,本次决定采用AT89C51单片机作为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成,本系统的总方框图如图(1)所示:为较好的实现各模块的功能,我们分别设计了几种方案并分别进行了论证。
1.1单片机系统及显示电路单片机采用89C51或其兼容系列。
系统采用12MH最高精度的精度,以获得较稳定的时钟频率,并减小测量误差。
单片机用P1.0端口输出超声波换能器所需的40kHz方波信号,利用外中断0口检测超声波接收电路输出的返回信号。
超声波测距实训报告
超声波测距实训报告
超声波测距实训报告
一、实验目的
1. 掌握超声波测距的原理和方法;
2. 学习使用超声波模块进行测距;
3. 验证超声波测距的准确性和可靠性。
二、实验原理
超声波测距原理是利用超声波传播速度较快、能够穿透介质的特性来测量距离的一种方法。
通过发射超声波信号并接收回波信号,根据信号的往返时间来计算距离。
超声波模块一般由超声波传感器和控制电路组成。
超声波传感器会发射一束超声波信号,并接收回波信号。
控制电路会计算信号往返时间,并转换为距离值。
三、实验步骤
1. 将超声波模块与Arduino主板通过引脚连接;
2. 在Arduino上编写程序,设置超声波模块的引脚模式,并读取距离值;
3. 将Arduino通过USB线连接到电脑上,并上传程序;
4. 打开串口监视器,观察并记录测得的距离值;
5. 移动障碍物,再次记录距离值,并与实际距离进行对比。
四、实验数据
实验中我们测得的距离值如下:
实际距离(cm)测得距离(cm)
10 9.8
20 19.6
30 29.4
五、实验结果分析
通过实验数据可以看出,超声波测距的结果与实际距离十分接近,测距精度较高。
但是由于超声波信号的传播受到环境影响,如空气温度、湿度等,可能会有一定的误差。
同时,超声波测距的有效范围也受限于传感器的特性。
六、实验结论
通过本次实验,我们成功掌握了超声波测距的原理和方法,并验证了其准确性和可靠性。
超声波测距在实际应用中具有较高的测量精度和稳定性,广泛用于物体检测、避障等领域。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理及应用课程设计报告题目二十七:超声波测距系统设计学生XX专业学号同组同学指导教师学院二〇一六年七月2015-2016学年第二学期成绩:一、设计要求1.搭建单片机的最小系统;(基本项)2.选用超声波模块,设计模块与单片机的接口;(基本项)3.采用LCD显示器显示测量结果;(基本项)4.编写相应的程序;(基本项)5.提高测量精度的方法。
(创新项)二、设计题目介绍及分析使用MCS-51 系列单片机作为控制器,选用超声波模块,组建测距系统并显示结果。
三、设计方案论证通过循环来时时的对目标进行测距。
四、具体硬件设计说明蜂鸣器:通过PNP三极管驱动。
接到P3^2引脚。
按键:有键按下时IO口变为低电平。
开始按键连接到P3^1,P3^2的按键控制中断。
超声波模块:选用HC-SR04。
提供一个10uS以上脉冲触发信号,该模块内部将发出8个40kHz周期电平并检测回波。
一旦检测到有回波信号则输出回响信号。
回响信号的脉冲宽度与所测的距离成正比。
由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。
超声波TRIG连接到P1^0,ECHO连接到P1^1。
LCD的E,RW,RS引脚分别接到单片机P2^7,P2^5,P2^6,P0口作为数据输出、五、软件设计说明开始初始化等待按键按下发出超声波开启定时器0否发出超声波信号时开启定时器0,通过定时器计算回波信号持续时间进而计算出距离。
/******************************************************************************** 单片机课程设计* 题号:27题,超声波测距* 组员:马铭阳,程岩,孔维士* 学号?30222204 130222206 130222207* 日期:2016年6月30日* 说明KEY_START按下,程序执行,KEY1按下显示题号,持续10秒*******************************************************************************/#include<reg51.h>#include<intrins.h>#include<lcd.h>sbit Trig = P1^0; //超声波发送sbit Echo = P1^1; //超声波接收sbit key_start=P3^1; //开始按键sbit key1=P3^2; //中断按键sbit buzzer=P1^5; //蜂鸣器按键unsigned char code TABLE[] = " DISTANCE: ";unsigned char code ASCII[] = {'0','1','2','3','4','5','6','7','8','9','.','-','C','M',' '}; unsigned char code CLASS[] = " NO.27 ";static unsigned char DisNum = 0; //?????unsigned int time=0;unsigned int i=0;unsigned int key_flag=0;long S=0;bit flag =0; //成功标志位unsigned char disbuff[4] ={ 0,0,0,0,};/******************************************************************************************************************************************************************///延时函数void delayms(unsigned int ms){unsigned char i=100,j;for(;ms;ms--){while(--i){j=10;while(--j);}}}//计算距离void Conut(void){time=TH0*256+TL0;TH0=0;TL0=0;S=(long)(time*0.17);if((S>=700)||flag==1){flag=0;LcdWriteData( ASCII[11]);LcdWriteData( ASCII[10]);LcdWriteData(ASCII[11]);LcdWriteData( ASCII[11]);LcdWriteData( ASCII[12]); buzzer=0;delayms(50);buzzer=1;}else{disbuff[3]=S%10000/1000;disbuff[2]=S%1000/100;disbuff[1]=S%100/10;disbuff[0]=S%10/1;LcdWriteData( ASCII[disbuff[3]]);LcdWriteData( ASCII[disbuff[2]]);LcdWriteData( ASCII[disbuff[1]]); LcdWriteData( ASCII[10]); LcdWriteData( ASCII[disbuff[0]]); LcdWriteData( ASCII[12]);LcdWriteData( ASCII[13]);}}//定时器0void zd0() interrupt 1 //触发时说明超出X围{flag=1; //成功标志位置1}void inter() interrupt 0 //外部中断{LcdWrite(0x01);LcdWrite(0x80);for (i=0;i<7;i++){LcdWriteData(CLASS[i]);delayms(5);}delayms(100);LcdWrite(0x80);for (i=0;i<11;i++){LcdWriteData(TABLE[i]);delayms(5);}LcdWrite(0x80+0x46);}//超声波发射void StartModule(){Trig=1; //发脉冲_nop_(); //用NOP函数时间更精准_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();Trig=0;}void key_board0(void) //按键扫描程序{while(1){if(key_start==0){delayms(10);if(key_start==0){while(!key_start);key_flag=1;break;}}else if(key1==0){delayms(10);if(key1==0){while(!key1);key_flag=2;break;}}}}void key_board1(void){if(key_start==0){delayms(10);if(key_start==0){while(!key_start);key_flag=1;}}if(key1==0){delayms(10);if(key1==0){while(!key1);key_flag=2;}}}void main(void){P1 = 0xF0; //低位拉低TMOD=0x01;TH0=0;TL0=0;ET0=1; //定时器0中断IT0=1; //外部中断0EX0=1;EA=1;LcdInit();key_board0();//key_board1();//if(key_flag==1)//{LcdWrite(0x80);for (i=0;i<11;i++) //显示DISTANCE{LcdWriteData(TABLE[i]);delayms(5);}LcdWrite(0x80+0x46);while(1){StartModule();while(!Echo); //判断是否收到回波信号TR0=1; //收到时,开启定时器while(Echo); //回波信号结束后关闭定时器TR0=0; //关闭定时器Conut(); //计算距离LcdWrite(0x80+0x46); //设置数据指针起点,第二排第一个delayms(80);}}以下是LCD显示程序#include"lcd.h"/******************************************************************************* * 函数名: Lcd1602_Delay1ms* 函数功能: 延时函数,延时1ms* 输入: c* 输出: 无* 说名: 该函数是在12MHZ晶振下,12分频单片机的延时。
*******************************************************************************/void Lcd1602_Delay1ms(uint c) //误差0us{uchar a,b;for (; c>0; c--){for (b=199;b>0;b--){for(a=1;a>0;a--);}}}/******************************************************************************* * 函数名: LcdWrite* 函数功能: 向LCD写入一个字节的命令* 输入:* 输出: 无*******************************************************************************/ #ifndef LCD1602_4PINS //当没有定义这个LCD1602_4PINS时void LcdWrite(uchar ) //写入命令{LCD1602_E = 0; //使能LCD1602_RS = 0; //选择发送命令LCD1602_RW = 0; //选择写入LCD1602_DATAPINS = ; //放入命令Lcd1602_Delay1ms(1); //等待数据稳定LCD1602_E = 1; //写入时序Lcd1602_Delay1ms(5); //保持时间LCD1602_E = 0;}#elsevoid LcdWrite(uchar ) //写入命令{LCD1602_E = 0; //使能清零LCD1602_RS = 0; //选择写入命令LCD1602_RW = 0; //选择写入LCD1602_DATAPINS = ; //由于4位的接线是接到P0口的高四位,所以传送高四位不用改Lcd1602_Delay1ms(1);LCD1602_E = 1; //写入时序Lcd1602_Delay1ms(5);LCD1602_E = 0;// Lcd1602_Delay1ms(1);LCD1602_DATAPINS = << 4; //发送低四位Lcd1602_Delay1ms(1);LCD1602_E = 1; //写入时序Lcd1602_Delay1ms(5);LCD1602_E = 0;}#endif/******************************************************************************** 函数名: LcdWriteData* 函数功能: 向LCD写入一个字节的数据* 输入: dat* 输出: 无*******************************************************************************/ #ifndef LCD1602_4PINSvoid LcdWriteData(uchar dat) //写入数据{LCD1602_E = 0; //使能清零LCD1602_RS = 1; //选择输入数据LCD1602_RW = 0; //选择写入LCD1602_DATAPINS = dat; //写入数据Lcd1602_Delay1ms(1);LCD1602_E = 1; //写入时序Lcd1602_Delay1ms(5); //保持时间LCD1602_E = 0;}#elsevoid LcdWriteData(uchar dat) //写入数据{LCD1602_E = 0; //使能清零LCD1602_RS = 1; //选择写入数据LCD1602_RW = 0; //选择写入LCD1602_DATAPINS = dat; //由于4位的接线是接到P0口的高四位,所以传送高四位不用改Lcd1602_Delay1ms(1);LCD1602_E = 1; //写入时序Lcd1602_Delay1ms(5);LCD1602_E = 0;LCD1602_DATAPINS = dat << 4; //写入低四位Lcd1602_Delay1ms(1);LCD1602_E = 1; //写入时序Lcd1602_Delay1ms(5);LCD1602_E = 0;}#endif/******************************************************************************** 函数名: LcdInit()* 函数功能: 初始化LCD屏* 输入: 无* 输出: 无*******************************************************************************/#ifndef L CD1602_4PINSvoid LcdInit() //LCD初始化子程序{LcdWrite(0x38); //开显示LcdWrite(0x0c); //开显示不显示光标LcdWrite(0x06); //写一个指针加1LcdWrite(0x01); //清屏LcdWrite(0x80); //设置数据指针起点}#elsevoid LcdInit() //LCD初始化子程序{LcdWrite(0x32); //将8位总线转为4位总线LcdWrite(0x28); //在四位线下的初始化LcdWrite(0x0c); //开显示不显示光标LcdWrite(0x06); //写一个指针加1LcdWrite(0x01); //清屏LcdWrite(0x80); //设置数据指针起点}#endif六、测试及调试硬件调试:焊接前用恒流源供电测量每个元件是否工作正常。