实用文库汇编之超声波测距仪单片机课设实验报告
基于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〕超近。
单片机实验报告

机电与信息工程学院单片机技术与应用实验设计课题题目:超声波测距仪的设计姓名:雷苓露学号: 201400800097 年级专业:电子信息科学与技术14级2班学期: 2014-2015学年度第2学期超声波测距仪的设计一、实验目的及意义超声波测距是一种传统而实用的非接触测量方法,和激光、涡流和无线电测距方法相比,具有不受外界光及电磁场等因素的影响的优点,在比较恶劣的环境中也具有一定的适应能力,且结构简单,成本低,因此在工业控制、建筑测量、机器人定位方面得到了广泛的应用。
由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。
利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到农业生产等自动化的使用要求。
距离是在不同的场合和控制中需要检测的一个参数,测距成为数据采集中要解决的一个问题。
而由于超声波的速度相对光速小的多,其传播时间比较容易检测,并且易于定向发射,方向性好,强度好控制,因而人类采用仿真技能利用超声波测距。
超声波测距是一种利用超声波特性、电子技术、光电开关相结合来实现非接触式距离测量的方法。
因为它是非接触式的,所以它就能够在某些特定场合或环境比较恶劣的情况下使用。
比如要测量有毒或有腐蚀性化学物质的液面高度或高速公路上快速行驶汽车之间的距离。
此次选题的目的在于锻炼自己的综合能力,超声波测距的设计包含多方面的知识,有利于综合检测自己的能力,全面复习大学四年所学,学以致用。
二、实验设计的思路和方案1、设计思路本实验主要由单片机系统及显示电路、超声波发射电路和超声波接收电路三部分组成。
利用单片机来实现对超声波和超声波转换模块的控制。
选择通用、价廉的STC89C51单片机为控制平台,通过细化设计要求,结合传感器技术相关知识实现超声波测距仪的功能。
设计完成以一个超声波测距系统,超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差,最终计算出发射点到障碍物的实际距离。
超声波测距仪实训报告

超声波测距仪实训报告一、实训目的本次实训的目的是通过设计和制作超声波测距仪,深入了解超声波测距的原理和应用,掌握相关的电子电路设计、焊接、调试和编程技能,提高实际动手能力和问题解决能力。
二、实训原理超声波测距的原理是利用超声波在空气中的传播速度和往返时间来计算距离。
超声波发生器发射出一定频率的超声波,当遇到障碍物时会反射回来,被超声波接收器接收。
通过测量发射和接收的时间差,再根据超声波在空气中的传播速度(约 340 米/秒),就可以计算出障碍物与测距仪之间的距离。
计算公式为:距离=(传播速度 ×时间差)/ 2三、实训设备和材料1、超声波传感器模块(HCSR04)2、单片机开发板(如 STM32、Arduino 等)3、面包板、杜邦线4、电阻、电容等电子元件5、示波器、万用表6、电脑及编程软件四、实训步骤1、硬件电路设计将超声波传感器模块与单片机开发板连接,根据模块的引脚定义和开发板的接口,使用杜邦线进行连接。
连接电源和地,确保电路的供电正常。
2、软件编程选择相应的编程环境,如 Arduino IDE 或 Keil 等。
编写控制程序,实现超声波的发射和接收,并计算距离。
通过串口将测量的距离数据发送到电脑上进行显示。
3、电路焊接与调试如果需要制作永久性的电路,可以将元器件焊接在电路板上。
使用示波器和万用表检查电路的工作状态,确保信号的正常传输。
4、系统测试将制作好的超声波测距仪放置在不同的距离处,测量并记录数据。
分析测量结果的准确性和稳定性,对系统进行优化和改进。
五、遇到的问题及解决方法1、信号干扰在实际测量中,发现测量结果有时会出现较大的误差,经过检查发现是由于周围环境中的电磁干扰导致的。
解决方法是增加滤波电容,提高电路的抗干扰能力。
2、测量范围有限超声波测距仪的测量范围受到传感器性能和环境因素的影响。
为了扩大测量范围,尝试调整发射功率和接收灵敏度,但效果不明显。
最终通过更换性能更好的超声波传感器模块解决了问题。
超声波测距仪单片机课设实验报告总结计划学习材料.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。
通过与实际测量的距离进行对比,我们发现测量结果基本与实际距离相符,误差控制在可接受范围内。
这表明我们搭建的基于超声波的测距系统具有较好的测距准确性和可靠性。
然而,我们也发现在一些特殊情况下,例如目标物体表面有较强的吸收或反射能力时,测量结果可能会出现误差。
这是因为超声波在传播过程中会受到传播介质和目标物体的影响,从而引发信号衰减或多次反射等现象。
在实际应用中,我们需要根据具体情况进行系统的优化和调整,以提高测距的精确度。
基于51单片机的超声波测距仪课程设计报告

毕业论文声明本人郑重声明:1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。
除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。
对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。
本人完全意识到本声明的法律结果由本人承担。
2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。
本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。
3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。
4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。
论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。
论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。
学位论文作者(签名):年月关于毕业论文使用授权的声明本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。
本人完全了解大学有关保存,使用毕业论文的规定。
同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。
本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。
如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。
本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。
本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*作者:角狂风*作品编号:1547510232155GZ579202创作日期:2020年12月20日实用文库汇编之微机原理与单片机系统课程设计专业:轨道交通信号与控制班级:交控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。
模块包括超声波发射器、接收器与控制电路。
当提供一个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显示模块发生故障;若指示灯不能正常点亮,则说明超声波测距模块发生故障。
2、增加一个锁存按钮。
由于设计时我们设计的为每800ms超声波测距模块启动一次,由于定时器会产生误差,造成测得距离不断变化,增加一个锁存按钮,当确定显示结果稳定时,按下按钮时,关闭超声波测距模块,可以使结果清楚显示。
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.46元3 硬件设计此系统的硬件设计主要包括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延时电路来代替。
通过这次课程设计,我加深了对单片机的理解,也为以后更好的运用打下了基础。
最后要感谢李老师的指导,在李老师的耐心解答下,我受益匪浅。
作者:角狂风作品编号:1547510232155GZ579202创作日期:2020年12月20日参考文献[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时间uint timer=0; //定时器1时间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%10;value[2]=S/10%10;value[3]=S%10;}/********************************************************/ 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;}}/********************************************************/ void zd0() interrupt 1 //T0中断用来计数器溢出{flag=1; //中断溢出标志}/********************************************************/ void Count(void) //计算程序{time=TH0*256+TL0; //这是最后算到的时间,往返时间,但应该再乘以12/11.0593M是一个机器周期,时间应该是time*12/11.059TH0=0; //定时器0的初始值为0TL0=0;S=(time*1.845)/10; //算出来是mm,time*12*170/(11.0592*1000)mm=time*(1845/10000)mm W[0]=S;if(((W[0]-W[1])^2)<=100) //进行校正,若两次结果相差小于10mm,则采用前一次结果S=W[1];else作者:角狂风作品编号:1547510232155GZ579202创作日期:2020年12月20日W[1]=S;if (S>=4000) //最大距离4m,即4000mmS=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; //允许T0中断ET1=1;TR1=1;qq=1;suocun=0;EA=1;while(1){while(!RX) ; //当RX为零时等待,即echo为低电平TX=1;TR0=1;D1=1; //开启计数while(RX); //当RX为1计数并等待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;}}附录二:1.距离小于4m时的仿真图图1 距离小于4m2.距离大于4m时的仿真图图2 距离大于4m 作者:角狂风作品编号:1547510232155GZ579202创作日期:2020年12月20日。