单片机应用_超声波测距器

合集下载

基于单片机AT89S52的超声波测距仪的设计与实现

基于单片机AT89S52的超声波测距仪的设计与实现

基于单片机AT89S52的超声波测距仪的设计与实现一、引言超声波测距仪是一种非接触式测距设备,通过发送超声波脉冲并接收超声波的回波来计算目标物体与测距仪之间的距离。

它在工业控制、智能车辆、机器人等领域有着广泛的应用。

本文将介绍基于单片机AT89S52的超声波测距仪的设计与实现,详细讨论硬件电路设计、软件程序编写以及实验测试等内容。

二、硬件设计1. 超声波模块超声波模块是测距仪的核心部件,它负责发射超声波脉冲并接收回波。

常见的超声波模块工作频率为40kHz,发送和接收分别采用单一的超声波传感器。

在本设计中,我们选用了HC-SR04型号的超声波模块,该模块具有精准测距、低功耗等优点,适合在单片机项目中使用。

2. 单片机AT89S52单片机AT89S52是一种高性能、低功耗的单片机芯片,它具有多种外设接口和丰富的功能,非常适合作为超声波测距仪的控制核心。

在本设计中,AT89S52的I/O口将分别连接超声波模块的Trig和Echo引脚,以完成数据的发送和接收。

3. 显示模块为了方便用户获取测距结果,我们设计了一个简单的数码管显示模块,用于显示测距仪测量到的距离数值。

利用AT89S52的数码管驱动功能,可以轻松实现距离数值的显示,并且可以根据需要扩展其他功能,比如显示单位、光线亮度调节等。

4. 电源电路为了保证整个测距仪系统的正常工作,我们设计了一个稳压电源电路,用于为AT89S52和超声波模块提供稳定的电压。

在实际应用中,我们可以选择直流电源输入或者电池供电,以满足不同场合的需求。

三、软件程序设计1. 初始化设置在软件程序设计中,首先需要对AT89S52的I/O口进行初始化设置,包括将Trig引脚设置为输出模式、将Echo引脚设置为输入模式,同时配置定时器和中断等功能。

这些初始化设置将为后续的超声波测距操作奠定基础。

2. 超声波信号发送当用户需要进行测距时,软件程序会向超声波模块的Trig引脚发送一个10us的高电平脉冲信号,启动超声波发送。

基于单片机超声波测距系统的设计和实现

基于单片机超声波测距系统的设计和实现

基于单片机超声波测距系统的设计和实现超声波测距系统是利用超声波传播速度较快的特性,通过发射超声波并接收其回波来测量距离的一种常见的测距方式。

在本文中,我们将介绍基于单片机的超声波测距系统的设计和实现。

一、系统设计原理超声波测距系统主要由超声波发射器、超声波接收器、单片机和显示器组成。

其工作原理如下:1.发送超声波信号:超声波发射器通过单片机控制,向外发射超声波信号。

超声波的发射频率通常在40kHz左右,适合在空气中传播。

2.接收回波信号:超声波接收器接收到回波信号后,将信号经过放大和滤波处理后送入单片机。

3.距离计算:单片机通过测量超声波发射和接收的时间差来计算距离。

以声速343m/s为例,超声波的往返时间与距离之间的关系为:距离=时间差×声速/2、通过单片机上的计时器和计数器来测量时间差。

4.数据显示:单片机将计算得到的距离数据通过显示器显示出来,实时展示被测物体与超声波传感器之间的距离。

二、系统设计步骤1.系统硬件设计:选择合适的超声波模块,其具有超声波发射器和接收器功能,并可通过接口与单片机连接。

设计好电源电路以及超声波传感器与单片机之间的连接方式。

2.系统软件设计:根据单片机的型号和编程语言,编写相应的程序。

包括超声波信号的发射和接收控制,计时和计数功能的编程,距离计算和数据显示的实现。

3.硬件连接和调试:将硬件连接好后,对系统进行调试。

包括超声波模块与单片机的连接是否正确,超声波信号的发射和接收是否正常,计时和计数功能是否准确等。

5.优化和改进:根据实际测试结果,对系统进行优化和改进。

如增加滤波和放大电路以提高信号质量,调整超声波模块的发射频率,改进显示方式等。

三、系统实现效果完成以上设计和实施后,我们可以得到一个基于单片机的超声波测距系统。

该系统使用简单,测距精度高,响应速度快,适用于各种距离测量的应用场景。

同时,该系统还可根据具体需求进行各种改进和扩展,如与其他传感器结合使用,增加报警功能等。

基于STM32单片机的高精度超声波测距系统的设计

基于STM32单片机的高精度超声波测距系统的设计

基于STM32单片机的高精度超声波测距系统的设计一、本文概述超声波测距技术因其非接触、高精度、实时性强等特点,在机器人导航、车辆避障、工业测量等领域得到了广泛应用。

STM32单片机作为一种高性能、低功耗的嵌入式系统核心,为超声波测距系统的设计提供了强大的硬件支持。

本文旨在设计一种基于STM32单片机的高精度超声波测距系统,以满足不同应用场景的需求。

二、超声波测距原理本部分将介绍超声波测距的基本原理,包括超声波的产生、传播、接收以及距离的计算方法。

同时,分析影响超声波测距精度的主要因素,为后续系统设计提供理论基础。

三、系统硬件设计3、1在设计基于STM32单片机的高精度超声波测距系统时,我们遵循了“精确测量、稳定传输、易于扩展”的总体设计思路。

我们选用了STM32系列单片机作为系统的核心控制器,利用其强大的处理能力和丰富的外设接口,实现了对超声波发射和接收的精确控制。

在具体设计中,我们采用了回波测距法,即发射超声波并检测其回波,通过测量发射与接收之间的时间差来计算距离。

这种方法对硬件的精度和稳定性要求很高,因此我们选用了高精度的超声波传感器和计时器,以确保测量结果的准确性。

我们还考虑到了系统的可扩展性。

通过STM32的串口通信功能,我们可以将测量数据上传至计算机或其他设备进行分析和处理,为后续的应用开发提供了便利。

我们还预留了多个IO接口,以便在需要时添加更多的传感器或功能模块。

本系统的设计思路是在保证精度的前提下,实现稳定、可靠的超声波测距功能,并兼顾系统的可扩展性和易用性。

31、1.1随着物联网、机器人技术和自动化控制的快速发展,精确的距离测量技术在各个领域的应用越来越广泛。

超声波测距技术作为一种非接触式的距离测量方式,因其具有测量精度高、稳定性好、成本相对较低等优点,在工业自动化、智能家居、机器人导航、安防监控等领域得到了广泛应用。

STM32单片机作为一款高性价比、低功耗、高性能的嵌入式微控制器,在智能设备开发中占据重要地位。

单片机超声波测距原理

单片机超声波测距原理

单片机超声波测距原理单片机超声波测距原理是通过超声波的发射与接收来实现测距的。

超声波传感器是一种使用超声波进行物体测距的传感器,它通过发射出的声波信号与物体发生反射后返回的信号来计算出物体与传感器之间的距离。

测量的原理主要包括发射和接收两个过程。

首先是发射过程。

超声波传感器通过产生高频的电信号驱动超声波发射器,将电信号转化为超声波信号。

超声波发射器通常由压电材料构成,当施加电压后,压电材料会产生机械位移,通过振动将电信号转化为超声波信号,然后将超声波信号传播到空气中。

然后是接收过程。

当超声波信号遇到物体时,一部分超声波信号会被物体表面反射,另一部分则会穿透物体继续传播。

超声波传感器上的接收器感受到反射回来的超声波信号,并将其转化为电信号。

接收器通常也采用压电材料构成,当接收到超声波信号时,压电材料会发生机械变形,产生电压信号,将超声波信号转化为电信号。

接收到的电信号会经过放大与处理,然后输入到单片机中进行距离计算。

测距计算是通过测得超声波从发射出去到反射回来所用的时间来计算的。

超声波传播的速度是已知的,一般在空气中传播速度为343m/s。

当超声波从发射器发送,到接收器接收到反射信号所用的时间为t,根据公式:距离=速度×时间,可以得到物体与传感器之间的距离d=343m/s×t/2。

由于超声波的行程是双程的,所以要将测得的时间除以2,才能得到物体与传感器之间的实际距离。

在单片机中,通过开启发射信号,然后计时接收到反射信号所用的时间,并根据上述公式进行距离计算。

此外,为了提高测距的精度,还可以采用多次测量的方式,然后取多次测量结果的平均值来获得更准确的测距结果。

总结来说,单片机超声波测距原理是通过发射超声波信号,然后接收反射的超声波信号,并根据所用时间计算出物体与传感器之间的距离。

这种原理在实际应用中被广泛使用,如车载倒车雷达、智能门禁系统等。

它具有测量距离远、测量精度高、适用于不同环境等优点,因此在许多领域有着重要的应用价值。

基于单片机控制的超声波测距系统的设计

基于单片机控制的超声波测距系统的设计

基于单片机控制的超声波测距系统的设计一、概述。

超声波测距技术是一种广泛应用的测距技术,它能够非常精确地测量物体到传感器的距离。

本文介绍的基于单片机控制的超声波测距系统主要由控制模块、信号处理模块和驱动模块三部分组成。

其中,控制模块主要实现超声波信号的发射与接收,信号处理模块主要实现对测量结果的处理和计算,驱动模块主要实现对LED灯的控制。

二、硬件设计。

1.超声波发射模块:采用 SR04 超声波发射传感器,并通过单片机的PWM 输出控制 SR04 的 trig 引脚实现超声波信号的发射。

2.超声波接收模块:采用SR04超声波接收传感器,通过单片机的外部中断实现对超声波信号的接收。

3.控制模块:采用STM32F103单片机,通过PWM输出控制超声波发射信号,并通过外部中断接收超声波接收信号。

4.信号处理模块:采用MAX232接口芯片,将单片机的串口输出转换成RS232信号,通过串口与上位机进行通信实现测量结果的处理和计算。

5.驱动模块:采用LED灯,通过单片机的GPIO输出控制LED灯的亮灭。

三、软件设计。

1.控制模块:编写程序实现超声波信号的发射与接收。

其中,超声波发射信号的周期为 10us,超声波接收信号的周期为 25ms。

超声波接收信号的处理过程如下:(1)当 trig 引脚置高时,等待 10us。

(2)当 trig 引脚置低时,等待 echo 引脚为高电平,即等待超声波信号的回波。

(3)当 echo 引脚为高电平时,开始计时,直到 echo 引脚为低电平时,停止计时。

(4)根据计时结果计算物体到传感器的距离,将结果通过串口输出。

2.信号处理模块:编写程序实现接收计算结果,并将结果通过串口与上位机进行通信。

具体步骤如下:(1)等待串口接收数据。

(2)当接收到数据时,将数据转换成浮点数格式。

(3)根据测量结果控制LED灯的亮灭。

以上就是基于单片机控制的超声波测距系统的设计。

该系统能够通过精确测量物体到传感器的距离并对测量结果进行处理和计算,能够广泛应用于各种实际场合。

基于单片机的超声波测距仪设计

基于单片机的超声波测距仪设计

基于单片机的超声波测距仪设计超声波测距仪是一种利用超声波测量距离的装置,具有测量速度快、精度高、非接触等特点,在机器人导航、自动控制、无损检测等领域得到了广泛的应用。

随着单片机技术的不断发展,基于单片机的超声波测距仪设计成为了可能,具有体积小、成本低、易于集成等优点。

本文将介绍一种基于单片机的超声波测距仪的设计与实现方法。

超声波测距仪的工作原理是利用超声波的传输特性来实现距离的测量。

超声波发射器发出超声波,超声波在空气中传播,遇到障碍物或被测物体后反射回来,被超声波接收器接收。

根据超声波的传播速度和传播时间,可以计算出超声波发射器与被测物体之间的距离。

一般来说,超声波的传播速度为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。

通过与实际测量的距离进行对比,我们发现测量结果基本与实际距离相符,误差控制在可接受范围内。

这表明我们搭建的基于超声波的测距系统具有较好的测距准确性和可靠性。

然而,我们也发现在一些特殊情况下,例如目标物体表面有较强的吸收或反射能力时,测量结果可能会出现误差。

这是因为超声波在传播过程中会受到传播介质和目标物体的影响,从而引发信号衰减或多次反射等现象。

在实际应用中,我们需要根据具体情况进行系统的优化和调整,以提高测距的精确度。

基于51单片机的超声波测距系统的毕业设计

基于51单片机的超声波测距系统的毕业设计超声波测距系统是一种常见的非接触式测距技术,通过发送超声波信号并测量信号的回波时间来计算距离。

本文将介绍基于51单片机的超声波测距系统的毕业设计。

首先,我们需要明确设计的目标。

本设计旨在通过51单片机实现一个精确、稳定的超声波测距系统。

具体而言,我们需要实现以下功能:1.发送超声波信号:通过51单片机的IO口控制超声波发射器,发送一定频率和波形的超声波信号。

2.接收回波信号:通过51单片机的IO口连接超声波接收器,接收并放大返回的超声波信号。

3.信号处理:根据回波信号的时间延迟计算出距离,并在显示器上显示出来。

4.稳定性和精确性:设计系统时需考虑测量过程中误差的影响,并通过合适的算法和校准方法提高系统的稳定性和精确性。

接下来,我们需要选择合适的硬件和软件配合51单片机实现上述功能。

硬件方面:1.51单片机:选择一款性能稳定、易于编程的51单片机,如STC89C522.超声波模块:选择一款合适的超声波传感器模块,常见的有HC-SR04、JSN-SR04T等。

模块一般包括发射器和接收器,具有较好的测距性能。

3.显示设备:选择合适的显示设备,如7段LED数码管或LCD显示屏,用于显示测距结果。

软件方面:1.C语言编程:使用C语言编写51单片机的程序,实现超声波测距系统的各项功能。

2.串口通信:通过串口与上位机进行通信,可以对系统进行监控和远程控制。

3.算法设计:选择合适的算法计算超声波回波时间延迟,并根据时间延迟计算距离值。

在设计过程中,我们需要进行以下步骤:1.硬件连接:按照超声波模块的说明书,将模块的发射器和接收器通过杜邦线与51单片机的IO口连接。

2.软件编程:使用C语言编写51单片机的程序,实现超声波模块的控制、信号接收和处理、距离计算等功能。

3.系统测试:进行系统的功能测试和性能测试,验证系统的可靠性和准确性,同时调试系统中出现的问题。

4.系统优化:根据测试结果,对系统进行优化,提高系统的稳定性和精确性。

《2024年基于STM32单片机的高精度超声波测距系统的设计》范文

《基于STM32单片机的高精度超声波测距系统的设计》篇一一、引言在现代电子技术的迅猛发展中,精确测量距离的设备扮演着重要的角色。

随着人类对于生活环境安全性的关注提升,对于各种设备的精度要求也在逐渐加强。

超声波测距技术以其非接触性、高精度、低成本等优点,在众多领域得到了广泛的应用。

本文将详细介绍基于STM32单片机的高精度超声波测距系统的设计。

二、系统概述本系统以STM32单片机为核心控制器,结合超声波测距模块,实现对目标物体的精确测距。

系统主要由STM32单片机、超声波测距模块、电源模块、信号处理模块和显示模块等组成。

通过单片机对超声波模块的控制,实现对目标的精确测距,并通过显示模块实时显示测距结果。

三、硬件设计1. STM32单片机:作为系统的核心控制器,负责整个系统的控制与数据处理。

STM32系列单片机具有高性能、低功耗的特点,能够满足系统对于精确度和稳定性的要求。

2. 超声波测距模块:采用高精度的超声波测距传感器,实现对目标物体的距离测量。

通过超声波的发送与接收,实现对目标的距离计算。

3. 电源模块:为系统提供稳定的电源支持,确保系统的正常工作。

电源模块需考虑到功耗问题,以实现系统的长时间运行。

4. 信号处理模块:对超声波测距模块的信号进行滤波、放大等处理,以提高测距的准确性。

5. 显示模块:实时显示测距结果,方便用户观察与操作。

四、软件设计1. 主程序:负责整个系统的控制与数据处理。

主程序通过控制超声波测距模块的发送与接收,获取目标物体的距离信息,并通过显示模块实时显示。

2. 超声波测距模块控制程序:控制超声波的发送与接收,实现对目标物体的距离测量。

通过计算超声波的发送与接收时间差,计算出目标物体的距离。

3. 数据处理程序:对获取的测距数据进行处理,包括滤波、计算等操作,以提高测距的准确性。

4. 显示程序:将处理后的测距结果显示在显示模块上,方便用户观察与操作。

五、系统实现1. 通过STM32单片机的GPIO口控制超声波测距模块的发送与接收,实现超声波的发送与接收功能。

《2024年基于STM32单片机的高精度超声波测距系统的设计》范文

《基于STM32单片机的高精度超声波测距系统的设计》篇一一、引言随着科技的不断发展,高精度测距技术被广泛应用于各个领域,如机器人导航、环境监测、智能家居等。

本文将介绍一种基于STM32单片机的高精度超声波测距系统的设计。

该系统采用先进的超声波测距原理,结合STM32单片机的强大处理能力,实现了高精度、快速响应的测距功能。

二、系统概述本系统主要由超声波发射模块、接收模块、STM32单片机以及相关电路组成。

通过STM32单片机控制超声波发射模块发射超声波,然后接收模块接收反射回来的超声波信号,根据超声波的传播时间和速度计算距离。

系统具有高精度、抗干扰能力强、测量范围广等特点。

三、硬件设计1. STM32单片机本系统采用STM32系列单片机作为主控制器,具有高性能、低功耗、丰富的外设接口等特点。

通过编程控制单片机的GPIO 口,实现超声波发射和接收的控制。

2. 超声波发射模块超声波发射模块采用40kHz的超声波传感器,具有体积小、功耗低、测距范围广等优点。

通过单片机控制发射模块的触发引脚,产生触发信号,使传感器发射超声波。

3. 超声波接收模块超声波接收模块同样采用40kHz的超声波传感器。

当传感器接收到反射回来的超声波信号时,会产生一个回响信号,该信号被接收模块的回响引脚捕获并传递给单片机。

4. 相关电路相关电路包括电源电路、滤波电路、电平转换电路等。

电源电路为系统提供稳定的电源;滤波电路用于去除干扰信号;电平转换电路用于匹配单片机与传感器之间的电平标准。

四、软件设计1. 主程序设计主程序采用C语言编写,通过STM32单片机的标准库函数实现各功能模块的初始化、参数设置以及控制逻辑。

主程序首先进行系统初始化,然后进入循环等待状态,等待触发信号的到来。

当接收到触发信号时,开始测距流程。

2. 测距流程设计测距流程主要包括发射超声波、等待回响信号、计算距离等步骤。

当接收到触发信号时,单片机控制超声波发射模块发射超声波;然后等待接收模块的回响信号。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计一、需求分析:超声波测距器,可以应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。

要求测量围在1m,测量精度1cm,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。

由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。

利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人的研制上也得到了广泛的应用。

本文旨在设计一种能对中近距离障碍物进行实时测量的测距装置,它能对障碍物进行适时、适量的测量,起到智能操作,实时监控的作用。

关键词单片机AT82S51 超声波传感器测量距离二、硬件设计方案设计思路超声波传感器及其测距原理超声波是指频率高于20KHz的机械波。

为了以超声波作为检测手段,必须产生超生波和接收超声波。

完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。

超声波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。

超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。

超声波测距的原理一般采用渡越时间法TOF(time of flight)。

首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离测量距离的方法有很多种,短距离的可以用尺,远距离的有激光测距等,超声波测距适用于高精度的中长距离测量。

因为超声波在标准空气中的传播速度为340米/秒,由单片机负责计时,单片机使用12.0M晶振,所以此系统的测量精度理论上可以达到毫米级。

由于超声波指向性强,能量消耗缓慢,在介质中传播距离远,因而超声波可以用于距离的测量。

利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到要求。

超声波发生器可以分为两类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。

本课题属于近距离测量,可以采用常用的压电式超声波换能器来实现。

根据设计要求并综合各方面因素,可以采用AT89S51单片机作为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成,超声波测距器的系统框图如下图所示:超声波测距器系统设计框图主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分组成。

采用AT89S51来实现对CX20106A红外接收芯片和TCT40-10系列超声波转换模块的控制。

单片机通过P1.0引脚经反相器来控制超声波的发送,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。

计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。

三、软件设计方案主要由主程序、超声波发生子程序、超声波接收中断程序及显示子程序等部分。

主程序首先对系统环境初始化,设置定时器T0工作模式为16位的定时计数器模式,置位总中断允许位EA并给显示端口P0和P2清0。

然后调用超声波发生子程序送出一个超声波脉冲,为避免超声波从发射器直接传送到接收器引起的直接波触发,需延迟0.1ms(这也就是测距器会有一个最小可测距离的原因)后,才打开外中断0接收返回的超声波信号。

由于采用12MHz 的晶振,机器周期为1us,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按下式计算即可测得被测物体与测距仪之间的距离,设计时取20℃时的声速为340m/s则有:d=(C*T0)/2 =170*T0/10000cm(其中T0为计数器T0的计数值)测出距离后结果将以十进制BCD码方式LED,然后再发超声波脉冲重复测量过程。

主程序框图如下3. 超声波发生子程序和超声波接收中断程序超声波发生子程序的作用是通过P1.0端口发送2个左右的超声波信号频率约40KHz的方波,脉冲宽度为12us左右,同时把计数器T0打开进行计时。

超声波测距器主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(INT0引脚出现低电平),立即进入中断程序。

进入该中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。

四、调试超声波测距仪的制作和调试,其中超声波发射和接收采用Φ15的超声波换能器TCT40-10F1(T发射)和TCT40-10S1(R接收),中心频率为40kHz,安装时应保持两换能器中心轴线平行并相距4~8cm,其余元件无特殊要求。

若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力。

根据测量围要求不同,可适当调整与接收换能器并接的滤波电容的大小,以获得合适的接收灵敏度和抗干扰能力。

硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。

根据实际情况可以修改超声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距离的测量需要。

根据所设计的电路参数和程序,测距仪能测的围为0.27m~5m,测距仪最大误差不超过1cm。

系统调试完后应对测量误差和重复一致性进行多次实验分析,不断优化系统使其达到实际使用的测量要求。

五、心得体会:超声波测距一个陌生的字眼,当选择它的时候我还不知道它的原理是什么,但我对这五个字很感兴趣,我知道雷达探测就是用的超声波原理。

因为我喜欢所以我选择。

设计过程中所遇到的困难一个接一个,怎么发怎么收,采用什么蕊片,收到回波后怎么样计算。

问题一:发不出去超声波发的40KHZ(通过程序调整占空比,发送,)问题二:不知接没接到65MS中断一次,发送40KHZ脉冲,然后查看电平变化问题三:收到了怎么计算d=(C*T0)/2 =170T0/10000cm(其中T0为计数器T0的计数值)问题四:算完怎么样送显分级除法:100,10采用数码管动显上述一些疑问我曾想过,但没想到做起来会那么困难。

一步一个坎。

一步一个脚印,最终到达了我想要的山顶。

附录1:(程序代码); USE BY :超声波测距器 ; IC :AT89C51 ; TEL : ; OSCCAL :XT (12M) ; display :共阳LED 显示 ;测距围27CM-5M ,堆栈在4FH 以上,20H 用于标志;显示缓冲单元在40H-43H ,使用存44H 、45H 、46H 用于计算距离 ;VOUT EQU P1.0 ; 红外脉冲输出端口speakequ p1.1;****************************;中断入口程序 ;**************************** ORG 0000H LJMP START ORG 0003H LJMP PINT0ORG 000BH reti ORG 0013H RETIORG 001BHLJMP INTT1ORG 0023HRETIORG 002BHRETI;* 主 程 序 START: MOV SP,#4FH MOV R0,#40H ;40H-43H为显示数据存放单元(40H 为最高位)MOV R7,#0BHCLEARDISP: MOV R0,#00H INC R0 DJNZR7,CLEARDISPMOV 20H,#00H MOV TMOD,#11H ;T1为 T0为16位定时器MOV TH0,#00H ;65毫秒初 MOV TL0,#00HMOV TH1,#00H MOV TL1,#00HMOV P0,#0FFH MOV P1,#0FFH MOV P2,#0FFH MOV P3,#0FFHMOV R4,#04H ;超声波肪冲个数控制(为赋值的一半)SETB PX0 SETB ET1 SETB EASETB TR1 ;开启测距定时器start1: LCALL DISPLAY JNB 00H,START1 ;收到反射信号时标志位为1 CLR EALCALL WORK;计算距离子程序clr EAMOV R2,#32h;#64H ;测量间隔控制(约4*100=400MS )LOOP: LCALL DISPLAYDJNZ R2,LOOP CLR 00Hsetb et0 mov th0,00h mov tl0,00h SETB TR1 ;重新开启测距定时器SETB EASJMP Start1 ;;* 中断程序* *;T1中断,发超声波用 ;T1中断,65毫秒中断一次 INTT1: CLR EA CLR TR0 clr ex0 MOV TH0,#00H MOV TL0,#00H MOV TH1,#00H MOV TL1,#00H SETB ET0 SETB EASETB TR0 ;启动计数器T0,用以计 intt11:CPL VOUT ;40KHZ nopnop nopnop nop nop nop nop nop DJNZ R4,intt11 ;超声波发送完毕, MOV R4,#04H lcall delay_250 ;延时,避开发射的直达声波信号 SETB EX0 ;开启接收回波中断 RETIOUT: RETI ;外中断0,收到回波时进入 PINT0: nopjb p3.2,pint0_exit CLR TR0 ;关计数器CLR EA ;CLR EX0 ;MOV 44H,TL0;将计数值移入处理单元MOV 45H,TH0 ;mov th0,#00hmov tl0,#00hjnb p3.2,$SETB 00H ;接收成功标志pint0_exit:RETI显示程序; 40H为最高位,43H为最低位,先扫描高位DISPLAY: MOV R1,#40H;G MOV R5,#7fH;G PLAY: MOV A,R5MOV P0,#0FFHMOV P2,A MOV A,R1MOV DPTR,#TABMOVC A,A+DPTRMOV P0,A LCALLDL1MSINC R1MOV A,R5 JNB ACC.4,ENDOUT;GRR AMOV R5,A AJMP PLAY ENDOUT: MOV P2,#0FFHMOV P0,#0FFHRETTAB: DB 18h, 7Bh, 2Ch, 29h, 4Bh, 89h, 88h, 3Bh, 08h,09h,0ffh;共阳段码表 "0" "1" "2" "3" "4" "5""6" "7" "8""9" "不亮""A""-"; 延时程序*;DL1MS:push 06hpush 07hMOV R6,#14HDL1: MOV R7,#19HDL2: DJNZ R7,DL2DJNZ R6,DL1pop 07hpop 06hRET;*************************** ; 距离计算程序 (=计数值*17/1000cm) *;*************************** work: PUSH ACCPUSH PSWPUSH B MOV PSW, #18h MOV R3, 45HMOV R2, 44HMOV R1, #00D MOV R0, #17D LCALL MUL2BY2MOV R3, #03H MOV R2, #0E8H LCALL DIV4BY2LCALL DIV4BY2MOV 40H, R4MOV A,40HJNZ JJ0MOV 40H,#0AH ;最高位为零,不点亮JJ0: MOV A, R0MOV R4, AMOV A, R1MOV R5, AMOV R3, #00DMOV R2, #100DLCALL DIV4BY2MOV 41H, R4MOV A,41HJNZ JJ1MOV A,40H ;次高位为0,先看最高位是否为不亮 SUBB A,#0AHJNZ JJ1MOV 41H,#0AH ;最高位不亮,次高位也不亮JJ1: MOV A, R0MOV R4, AMOV A, R1MOV R5, AMOV R3, #00DMOV R2, #10DLCALL DIV4BY2MOV 42H, R4MOV A,42H JNZ JJ2MOV A,41H ;次次高位为0,先看次高位是否为不亮SUBB A,#0AHJNZ JJ2MOV 42H,#0AH ;次高位不亮,次次高位也不亮JJ2: MOV 43H, R0POP BPOP PSWPOP ACCRET;* 两字节无符号数乘法程序; R7R6R5R4 <= R3R2 * R1R0;MUL2BY2: CLR AMOV R7, AMOV R6, AMOV R5, AMOV R4, AMOV 46H, #10H MULLOOP1: CLR CMOV A, R4 RLC AMOV R4, AMOV A, R5 RLC AMOV R5, AMOV A, R6 RLC AMOV R6, AMOV A, R7 RLC AMOV R7, AMOV A, R0 RLC AMOV R0, AMOV A, R1 RLC AMOV R1, A JNC MULLOOP2MOV A, R4ADD A, R2MOV R4, AMOV A, R5ADDC A, R3MOV R5, AMOV A, R6ADDC A, #00HMOV R6, AMOV A, R7ADDC A, #00HMOV R7, A MULLOOP2: DJNZ 46H, MULLOOP1 RET四字节/两字节无符号数除法程序;R7R6R5R4/R3R2=R7R6R5R4(商).. .R1R0(余数);DIV4BY2: MOV 46H, #20HMOV R0, #00HMOV R1, #00H DIVLOOP1: MOV A, R4 RLC AMOV R4, AMOV A, R5 RLC AMOV R5, AMOV A, R6 RLC AMOV R6, AMOV A, R7 RLC AMOV R7, AMOV A, R0 RLC AMOV R0, AMOV A, R1 RLC AMOV R1, ACLR C MOV A, R0 SUBB A, R2 MOV B, A MOV A, R1 SUBB A, R3 JC DIVLOOP2 MOV R0, B MOV R1, A DIVLOOP2: CPL CDJNZ 46H, DIVLOOP1MOV A, R4 RLC AMOV R4, A MOV A, R5 RLC AMOV R5, A MOV A, R6 RLC AMOV R6, AMOV A, R7 RLC AMOV R7, A RETdelay_250:push pswpush 07hmov r7,#0ffh delay_250_1: nopnopnopnopdjnz r7,delay_250_1 pop 07hpop psw retEND附录2:(电路原理图)在行动前设定目标10 1112 13。

相关文档
最新文档