基于单片机超声波测距系统设计实验报告-重

合集下载

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

基于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单片机的超声波测距仪设计报告,对这个主题的观点和理解。

希望这篇文章内容全面、深入,并能帮助您对超声波测距仪设计有更深刻的理解。

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

基于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单片机的超声波测距仪达到了预期的效果。

能够精确测量目标与测距仪之间的距离,并显示在相关的显示设备上。

基于单片机的超声波测距课程设计报告

基于单片机的超声波测距课程设计报告

基于单片机的超声波测距课程设计报告课程设计说明书题目:超声波测距院(系):电子工程与自动化专业:学生姓名:学号:指导教师:年 11 月 7 日目录一、绪论二、对本课程的设计分析2.1 总体设计方案介绍2.1.1 超声波测距原理2.1.2 超声波测距原理框图2.2 系统硬件设计方案2.2.1 51系列单片机的功能特点及测距原理2.2.1.1 51系列单片机的功能特点2.2.1.2 单片机实现测距原理三、主要电路模块的实现方案比较及选择3.1 超声波发射电路3.2 超声波检测接收电路3.3 超声波测距系统的硬件电路设计3.4 系统电路图及其PCB图四、系统的软件设计4.1 主程序流程图4.2超声波发射子程序和超声波接收中断程序五、测试数据以及结论六、课程设计过程中遇到的主要问题以及解决办法七、心得体会一、绪论随着社会的发展,人们对距离或长度测量的要求越来越高。

超声波测距由于其能进行非接触测量和相对较高的精度,越来越受到人们的重视。

超声波测距离的一个最重要的功能就是作用于倒车系统上。

要实现倒车系统的准确精度,就得把超声波和单片机相结合,利用单片机的控制系统和精确的运算使超声波测距离更加快速和精确。

从而,减少事故的发生。

经过该实验学习利用单片机和超声波探测元件测试距离的基本方法,进一步熟悉单片机定时器技术、中断技术在数据采集和数据处理过程中的综合运用方法,提高综合应用程序的编程方法与技巧。

发射器发出的40KHz超声波以速度v在空气中传播,在到达被测物体时被反射返回,由接收器接收,其往返时间为t,由s=vt/2即可算出被测物体的距离。

报告内容包括:单片机控制主程序、中断子程序、延时子程序和超声波发射、接收电路、数码管驱动显示电路以及主电路。

二、对本课程设计的分析2.1总体设计方案介绍2.1.1超声波测距原理发射器发出的超声波以速度v在空气中传播,在到达被测物体时被反射返回,由接收器接收,其往返时间为t,由s=vt/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灯的亮灭。

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

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

(完整版)基于51单片机的超声波测距系统设计

(完整版)基于51单片机的超声波测距系统设计

完满 WORD 格式整理1设计任务本文采纳超声波传感器 ,IAP15 单片机以及 LCD显示模块设计了一种超声波测距显示器,能够实现丈量物体到仪器距离以及显示等功能。

是一种构造简单、性能稳固、使用方便、价钱便宜的超声波距离丈量器,拥有必定的适用价值。

2设计思路超声波测距超声波超声波是指频次在 20kHz 以上的声波,它属于机械波的范围。

最近几年来,跟着电子丈量技术的发展,运用超声波作出精准丈量已成可能。

跟着经济发展,电子丈量技术应用愈来愈宽泛,而超声波丈量精准高,成本低,性能稳固则备受喜爱。

超声波也按照一般机械波在弹性介质中的流传规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质汲取而发生衰减等。

正是因为拥有这些性质,使得超声波能够用于距离的丈量中。

跟着科技水平的不停提升,超声波测距技术被宽泛应用于人们平时工作和生活之中。

一般的超声波测距仪可用于固定物位或液位的丈量,合用于建筑物内部、液位高度的丈量等。

超声在空气中测距在特别环境下有较宽泛的应用。

利用超声波检测常常比较快速、方便、计算简单、易于实现及时控制,并且在丈量精度方面能达到工业适用的指标要求,所以为了使挪动机器人能够自动闪避阻碍物行走,就一定装备测距系统,以使其及时获得距阻碍物的地点信息(距离和方向)。

所以超声波测距在挪动机器人的研究上获得了宽泛的应用。

同时因为超声波测距系统拥有以上的这些长处,所以在汽车倒车雷达的研制方面也获得了宽泛的应用。

超声波测距原理最常用的超声测距的方法是回声探测法,超声波发射器向某一方向发射超声波,在发射时辰的同时计数器开始计时,超声波在空气中流传,途中遇到阻碍物面阻拦就立刻反射回来,超声波接收器收到反射回的超声波就立刻停止计时。

超声波在空气中的流传速度为340m/s,依据计时器记录的时间 t ,就能够计算出发射点距阻碍物面的距离s,即:s=340t/2 。

因为超声波也是一种声波,其声速 V 与温度有关。

课程设计实验报告-超声波测距仪的设计

课程设计实验报告-超声波测距仪的设计

超声波测距仪的设计一、设计目的本设计利用超声波传输中距离与时间的关系,采用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〕超近。

基于单片机的超声波测距系统实验报告

基于单片机的超声波测距系统实验报告

基于单片机的超声波测距系统实验报告一、引言超声波测距系统是一种基于超声波工作原理的测距技术,主要通过发送超声波信号并检测回波信号来测量目标物体与传感器之间的距离。

本实验旨在通过使用单片机搭建一个基于超声波的测距系统,通过实际测量和数据分析来验证其测距的准确性和可靠性。

二、原理超声波测距系统主要包括超声波发射器、超声波接收器和单片机控制系统三部分。

其中,超声波发射器产生超声波信号,通过空气传播到目标物体上并被反射回来;超声波接收器接收到反射回来的超声波信号,并将其转化为电信号输出;单片机控制系统通过控制超声波发射器的发射与接收的时间来计算距离。

三、实验步骤1.搭建硬件连接:将超声波发射器和接收器分别连接到单片机的GPIO引脚,并通过电阻和电容进行滤波处理。

2.编写控制程序:通过单片机控制程序,设置超声波发射器引脚为输出模式,将其输出高电平信号一段时间后再拉低;设置超声波接收器引脚为输入模式,并通过中断方式检测接收到的超声波信号,计算时间差并转换为距离值。

3.进行实际测量:将超声波发射器和接收器对准目标物体,启动测量程序并记录距离值。

4.多次实验并计算平均值:为了提高测距的准确性,进行多次实验并计算多次测量结果的平均值。

四、实验结果和讨论通过多次实验测量,我们得到了如下结果:测量1距离为30cm,测量2距离为31cm,测量3距离为29cm。

将这些结果进行平均,得到最终距离结果为30cm。

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

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

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

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

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

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

基于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单片机的高精度超声波测距系统的设计》范文

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

单片机超声波测距实习报告

单片机超声波测距实习报告

一、实习背景随着科技的不断发展,单片机技术在各个领域得到了广泛应用。

超声波测距技术作为一种非接触式测量方法,具有精度高、稳定性好、抗干扰能力强等优点,在工业自动化、智能家居、机器人等领域有着广泛的应用前景。

本实习报告旨在通过单片机超声波测距实验,了解超声波测距原理,掌握单片机编程技巧,并实现一个简单的超声波测距系统。

二、实习目的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)超声波测距原理正确,程序编写无误。

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

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

基于单片机的超声波测距系统设计一、本文概述随着科技的飞速发展,超声波测距技术以其非接触、高精度、实时性强等优点,在众多领域如机器人导航、自动驾驶、工业控制、安防监控等中得到了广泛应用。

单片机作为一种集成度高、控制灵活、成本较低的微控制器,是实现超声波测距系统的理想选择。

本文旨在探讨基于单片机的超声波测距系统的设计原理、硬件构成、软件编程及实际应用,以期为相关领域的科研人员和技术人员提供参考。

本文将首先介绍超声波测距的基本原理和关键技术,包括超声波的传播特性、测量原理及误差分析。

接着,详细阐述基于单片机的超声波测距系统的硬件设计,包括单片机的选型、超声波收发模块的选择与连接、信号处理电路的设计等。

在此基础上,本文将介绍系统的软件设计,包括超声波发射与接收的时序控制、距离数据的处理与显示等。

还将讨论系统的低功耗设计、抗干扰措施以及在实际应用中的优化策略。

本文将通过具体实例,展示基于单片机的超声波测距系统在机器人定位、障碍物检测等场景中的应用,以验证系统的可行性和实用性。

本文期望能为相关领域的研究提供有益的参考,推动超声波测距技术的进一步发展和应用。

二、超声波测距原理超声波测距系统主要基于超声波在空气中的传播速度以及反射原理进行设计。

超声波是一种频率高于20kHz的声波,其传播速度在标准大气条件下约为343米/秒。

在超声波测距系统中,超声波发射器向目标物体发射超声波,当超声波遇到目标物体后,会发生反射,反射的超声波被超声波接收器接收。

测距的原理在于测量超声波从发射到接收的时间差。

设超声波发射器发射超声波的时间为t1,接收器接收到反射波的时间为t2,则超声波从发射到接收所经历的时间为Δt = t2 - t1。

由于超声波在空气中的传播速度是已知的,所以可以通过测量时间差Δt来计算目标物体与测距系统之间的距离D。

距离D的计算公式为:D = V * Δt / 2,其中V为超声波在空气中的传播速度。

在实际应用中,为了确保测量的准确性,通常会采用一些技术手段来减少误差。

基于单片机的超声波测距仪的设计毕业设计论文

基于单片机的超声波测距仪的设计毕业设计论文

摘要超声波具有很强的指向性,消耗能量缓慢,距离传播较远等优点,所以,在利用自动化控制技术和传感器应用技术相结合的测距方案中,利用超声波专有特性测距是目前最普遍的一种方式,它被广泛地应用于防盗、倒车雷达、水位测量、建筑施工工地以及一些工业现场。

本论文详细的介绍了超声波传感器的原理及特性,并且介绍了Atmel公司的AT89C52单片机的性能与特点,且在分析了超声波测距原理的基础上,指出了本次方案的思路和所需考虑的问题,给出了以AT89C52单片机为核心,LCD显示电路,硬件制作和软件设计为一体的设计方案。

矚慫润厲钐瘗睞枥庑赖。

关键字:超声波测距;单片机;测距;AT89C52;LED显示屏AbstractUltras onic wave has strong poin ti ng to n ature ,slowly en ergy con sumpti on ,propagat ing dista nce farther ,so, in utiliz ing the scheme of dista nce finding that sen sor tech no logy and automatic con trol tech no logy comb ine together ,ultras onic wave finds range to use the most gen eral one at prese nt ,it applies to guard aga inst theft , move backward the radar , water level measuri ng , buildi ng con structi on site and some in dustrial sce nes exte nsivel聞. 創沟燴鐺險爱氇谴净。

This subject has introduced principle and characteristic of the ultrasonic sensor in detail ,and the performa nce and characteristic of on e-chip computer AT89C52 of Atmel Company ,and on the basis of analyzing principle that ultrasonic wave finds range ,the systematic thi nking and questi ons n eeded to con sider that have poin ted out that desig ns and finds range .Given the AT89C52, LCD display circuit, the hardware and the software desig n productio n残骛楼諍锩瀨濟溆塹籟。

超声波测距实验报告

超声波测距实验报告

超声波测距实验报告电子综合实验课程报告课题名称:超声测距仪专业:生物医学工程班级:,,级生物医学,,班姓名:敖一鹭刘晓莎尹曼邹燕一引言随着科学技术的快速发展,超声波将在测距仪中的应用越来越广。

但就目前技术水平来说,人们可以具体利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。

声波测距作为一种典型的非接触测量方法,在很多场合,诸如工业自动控制,建筑工程测量和机器人视觉识别等方面得到广泛的应用。

和其他方法相比,如激光测距、微波测距等,由于声波在空气中传播速度远远小于光线和无线电波的传播速度,对于时间测量精度的要求远小于激光测距、微波测距等系统,因而超声波测距系统电路易实现、结构简单和造价低,且超声波在传播过程中不受烟雾、空气能见度等因素的影响,在各种场合均得到广泛应用。

然而超声波测距在实际应用也有很多局限性,这都影响了超声波测距的精度。

一是超声波在空气中衰减极大,由于测量距离的不同,造成回波信号的起伏,使回波到达时间的测量产生较大的误差;二是超声波脉冲回波在接收过程中被极大地展宽,影响了测距的分辨率,尤其是对近距离的测量造成较大的影响。

其他还有一些因素,诸如环境温度、风速等也会对测量造成一定的影响,这些因素都限制了超声波测距在一些对测量精度要求较高的场合的应用,如何解决这些问题,提高超声波测距的精度,具有较大的现实意义。

为了今后能够为社会做出更多有益的发明发现,超声测距课程设计应运而生。

二课题要求以单片机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选题背景由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因此它被广泛应用于距离的测试。

基于单片机的超声波测距系统实验报告

基于单片机的超声波测距系统实验报告

基于单片机得超声波测距系统实验报告一、实验目得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 输出一个高电平,高电平持续得时间就就是超声波从发射到返回得时间。

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

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

基于51单片机超声波测距仪设计超声波测距仪是一种应用较为广泛的测量设备,可以用于测量物体与超声波传感器之间的距离。

本文将基于51单片机设计一个简单的超声波测距仪,并介绍其原理、硬件电路和程序设计。

一、原理介绍:超声波测距仪的工作原理是利用超声波传感器发射超声波,并接收其反射回来的波,通过计算发射和接收之间的时间差,从而确定物体与传感器之间的距离。

超声波的传播速度在空气中近似为331.4m/s,根据速度与时间关系,可以通过测量时间来计算距离。

二、硬件电路设计:1.超声波模块:选用一个常见的超声波模块,包括超声波发射器和接收器。

2.51单片机:使用51单片机作为控制器,负责控制超声波模块和处理测距数据。

3.LCD显示屏:连接一个LCD显示屏,用于显示测距结果。

4.连接电路:将超声波发射器和接收器分别连接到单片机的引脚,将LCD显示屏连接到单片机的相应引脚。

三、程序设计:1.初始化:包括初始化单片机的GPIO引脚、定时器以及其他必要的设置。

2.发送信号:发射一个超声波信号,通过超声波模块的引脚控制。

此时,启动定时器开始计时。

3.接收信号:当接收到超声波的反射信号时,停止定时器,记录计时的时间差。

根据超声波传播速度,可以计算出距离。

4.显示结果:将测得的距离数据显示在LCD显示屏上。

四、实现效果:通过以上设计,可以实现一个简单的超声波测距仪。

在实际应用中,可以根据需求扩展功能,例如增加报警功能、计算速度等。

总结:本文基于51单片机设计了一个超声波测距仪,包括硬件电路设计和程序设计。

通过该设备可以实现对物体与超声波传感器之间的距离进行测量,并将结果显示在LCD显示屏上。

该设计只是一个基本的框架,可以根据需要进行进一步的改进和优化。

单片机超声波测距实习报告

单片机超声波测距实习报告

实习报告:基于单片机的超声波测距系统设计与实现一、实习背景及目的随着科技的不断发展,超声波测距技术在工业生产、机器人导航、自动驾驶等领域得到了广泛的应用。

本次实习旨在学习和掌握单片机超声波测距系统的设计与实现,提高自己的实际动手能力和创新能力。

二、实习内容与过程1. 了解超声波测距原理超声波测距原理是利用超声波在传播过程中,遇到障碍物时会产生反射现象,通过测量发射超声波和接收反射波之间的时间差,计算出障碍物与测距仪之间的距离。

2. 选定硬件平台本次实习选用AT89C51单片机作为控制核心,配合超声波发射接收模块、信号处理电路、显示电路等构成超声波测距系统。

3. 设计硬件电路根据超声波测距原理,设计超声波发射接收模块、信号处理电路、环境温度检测电路等。

其中,超声波发射接收模块负责发射超声波并接收反射波;信号处理电路对接收到的信号进行放大、滤波等处理,以便单片机能够准确地捕捉到信号;环境温度检测电路用于补偿超声波传播速度受温度影响产生的误差。

4. 编写程序代码利用C语言编写程序代码,实现单片机对超声波发射接收模块的控制、信号处理以及距离计算等功能。

程序主要包括以下几个部分:(1)初始化单片机,配置IO口、定时器等;(2)控制超声波发射接收模块发射超声波,并等待接收反射波;(3)对接收到的信号进行处理,提取有效信号;(4)计算反射波与发射波之间的时间差,并根据超声波传播速度计算距离;(5)将计算得到的距离显示在LCD屏幕上。

5. 系统调试与优化通过反复实验,对超声波测距系统进行调试和优化,提高测距精度和稳定性。

主要针对以下几个方面进行调整:(1)调整超声波发射接收模块的灵敏度,以适应不同距离的测量;(2)优化信号处理算法,提高对噪声的抗干扰能力;(3)根据环境温度变化,调整超声波传播速度的补偿系数。

三、实习成果与分析通过本次实习,成功设计并实现了基于单片机的超声波测距系统,实现了对不同距离的准确测量。

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

指导教师评定成绩:审定成绩:自动化学院计算机控制技术课程设计报告设计题目:基于单片机的超声波测距系统设计单位(二级学院):学生姓名:专业:班级:学号:指导教师:负责项目:设计时间:二〇一四年五月自动化学院制目录一、设计题目 0基于51单片机的超声波测距系统设计 0设计要求 0摘要 (1)二、设计报告正文 (2)2.1 超声波测距原理 (2)2.2系统总体方案设计 (3)2.3主要元件选型及其结构 (4)2.4硬件实现及单元电路设计 (9)2.5系统的软件设计 (12)三、设计总结 (17)四、参考文献 (17)五、附录 (18)附录一:总体电路图 (18)附录二:系统源代码 (18)一、设计题目基于51单片机的超声波测距系统设计设计要求1、以51系列单片机为核心,控制超声波测距系统;2、测量范围为:2cm~4m,测量精度:1cm;3、通过键盘电路设置报警距离,测出的距离通过显示电路显示出来;4、当所测距离小于报警距离时,声光报警装置报警加以提示;5、设计出相应的电子电路和控制软件流程及源代码,并制作实物。

摘要超声波具有传播距离远、能量耗散少、指向性强等特点,在实际应用中常利用这些特点进行距离测量。

超声波测距具有非接触式、测量快速、计算简单、应用性强的特点,在汽车倒车雷达系统、液位测量等方面应用广泛。

本次课设利用超声波传播中距离与时间的关系为基本原理,以STC89C52单片机为核心进行控制及数据处理,通过外围电源、显示、键盘、声光报警等电路实现系统供电、测距显示、报警值设置及报警提示的功能。

软件部分采用了模块化的设计,由系统主程序及各功能部分的子程序组成。

超声波回波信号输入单片机,经单片机综合分析处理后实现其预定功能。

关键词:STC89C52单片机; HC-SR04;超声波测距二、设计报告正文2.1 超声波测距原理常用的超声测距的方法是回声探测法,超声波发射器向某一方向发射超声波,在发射时刻的同时计数器开始计时,超声波在空气中传播,途中碰到障碍物面阻挡就立即反射回来,超声波接收器收到反射回的超声波就立即停止计时。

设超声波在空气中的传播速度为340m/s (不计介质温度变化对速度的影响),根据计时器记录的时间t ,就可以计算出发射点距障碍物面的距离s ,即:s=340t/2。

如图2-1所示:超声波发射障碍物超声波接收图2-1 超声波的测距原理θcos S H = (2-1))(H L arctg =θ (2-2)式中: L —两探头中心之间距离的一半;又知道超声波传播的距离为:vt S =2 (2-3)式中: v —超声波在介质中的传播速度;t —超声波从发射到接收所需要的时间;将式2-1、2-2、2-3联立得:]cos[21H L arctg vt H = (2-4)其中,超声波的传播速度v 在一定的温度下是一个常数(例如在温度T=30度时,V=349m/s);当需要测量的距离H 远远大于L 时,上式变为: vt H 21= (2-5) 所以,只要需要测量出超声波传播的时间t,就可以得出测量的距离H.2.2系统总体方案设计本超声波测距系统由系统硬件电路及软件程序实现两部分构成。

其中由STC89C52单片机最小系统、HC-SR04超声波模块、电源接口电路、4位共阳极数码管显示电路、三极管驱动电路、蜂鸣器声光报警电路及键盘电路构成硬件系统。

以STC89C52单片机为核心,通过触发信号控制HC-SR04超声波测距模块发射超声波并接收回波,测算出前方障碍的距离,输入单片机进行运算,与预设报警距离比较后判断是否启动蜂鸣器声光报警装置。

根据系统功能要求及模块划分可绘制出系统硬件框图,如图2-2所示:图2-2 系统硬件框图2.3主要元件选型及其结构2.3.1 STC89C52芯片STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。

工作电压:5.5V~3.3V。

STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。

另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

最高运作频率35MHz,6T/12T可选。

其引脚图如图2-3所示:a引脚图b实物图图2-3 STC89C52引脚图2.3.2 HC-SR04超声波模块HC-SR04超声波模块具有性能稳定、测度距离精确、模块高精度、盲区小等特点,使用简单易操作,常用于距离测量。

其原理图及实物图如图2-4、图2-5所示:图2-4 HC-SR04超声波模块原理图图2-5 HC-SR04超声波模块实物图(1)接线方式:VCC(接电源)、Trig(控制端)、Echo(接收端)、GND(接地)(2)基本工作原理:a.采用I/O口TRIG触发测距,给至少10us的高电平信号;b.模块自动发送8个40kHz的方波,自动检测是否有信号返回;c.有信号返回,通过I/O口ECHO输出一个高电平,同时开始计时直到此口变为低电平,高电平持续的时间就是超声波从发射到返回的时间。

测试距离=(高电平时间*声速(340M/S))/2。

(3)电气参数表1 HC-SR04电气参数表(4)超声波时序图图2-6 超声波时序图(5)操作:初始化时将trig和echo端口都置低,首先向给trig发送至少10 us 的高电平脉冲(模块自动向外发送8个40kHz的方波),然后等待,捕捉echo 端输出上升沿,捕捉到上升沿的同时,打开定时器开始计时,再次等待捕捉echo 的下降沿,当捕捉到下降沿,读出计时器的时间,这就是超声波在空气中运行的时间,按照测试距离=(高电平时间*声速(340M/S))/2就可以算出超声波到障碍物的距离。

2.3.3 4位共阳数码管(1)共阳数码管的实物图、原理图如图2-7、图2-8所示:图2-7 4位共阳数码管实物图图2-8 4位共阳数码管原理图(2)工作原理:共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。

共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。

当某一字段的阴极为高电平时,相应字段就不亮。

(3)动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。

2.4 硬件实现及单元电路设计(1)单片机最小系统单片机系统由电源、晶振电路、复位电路组成。

如图2-9所示:图2-9 单片机最小系统(2)电源接口电路设计电源部分的设计采用3节5号干电池4.5V供电,如图2-10所示:图2-10 电源接口电路(3)超声波模块接口HC-SR04超声波模块接口如图2-11所示:图2-11 HC-SR04超声波模块接口(4) 4位共阳极数码管显示电路及三极管驱动电路显示电路如图2-12所示:图2-12 4位共阳数码管显示电路当I/O口输出低电平时,相应段被选通,反之则不然。

三极管驱动电路如图2-13所示:图2-13 三极管驱动电路当I/O口输出低电平时,相应位被选通,反之则不然。

(5)声光报警电路的设计声光报警电路如图2-14所示:图2-14 声光报警电路声光报警电路由一个蜂鸣器、一个三极管、一个发光二极管、两个电阻构成。

其中电阻起限流的作用,当I/O口输出低电平时,三极管饱和导通,蜂鸣器报警、LED亮,反之则不报警。

(6)键盘电路的设计键盘电路如图2-15所示:图2-15 键盘电路2.5系统的软件设计(1)各主要模块①超声波测距模块。

给超声波Trig口至少10us的高电平,启动测量,定时器T0计时,通过计算测得距离。

②显示模块。

包括数码管位选函数、段选函数及距离处理显示模块。

将超声波测距测量值、报警设定值显示在4位数码管上。

③键盘模块。

由键盘检测函数及键盘处理函数组成。

有设定键、加键、减键、复位键、开关键。

主要设置报警值。

④声光报警模块。

将测量值与设定报警值比较,若小于设定值,报警。

⑤特殊存储器eepom模块。

包括单片机eepom存储器读、写操作以及初始化。

其内存储设定报警值,掉电数据不丢失。

⑥定时器模块。

TO定时器用于超声波测距的计时。

T1定时器用于主程序扫描时间的控制。

(2)主程序源代码void main(){send_wave(); //测距离函数smg_display(); //处理距离显示函数time_init(); //定时器初始化init_eepom(); //初始化eepom(读取set_d)while(1){if(flag_300ms == 1) //300ms执行一次{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 < 4){key_with(); //按键处理函数,修改报警设定值}}}(3)主程序工作流程图图2-16 主程序流程图(4)超声波探测程序流程图图2-17 超声波探测程序流程图三、设计总结四、参考文献[1] C程序设计(第三版). 谭浩强 . 清华大学出版社 .[2] 新概念51单片机c语言教程 . 郭天祥 . 电子工业出版社[3] 传感器与检测技术 . 胡向东 . 机械工业出版社[4] 微控制其原理及应用 . 向敏 . 人民邮电出版社五、附录附录一:系统总体电路图图5-1 超声波探测程序流程图附录二:系统软件源代码/*****************************************************课设名称:基于51单片机的超声波测距系统设计*硬件平台: 超声波模块+51最小系统*显示模块:4个数码管*输入模块:3个按键*实现的功能:用超声波模块把距离测量出来,用数码管显示,可通过按键设置要报警的距离,低于设置* 的值则自动报警,一直按住调值的键会越加越快,超出量程(3.8m)则显示888 *接口说明:数码管位P3^4 P3^5 P3^6 P3^7* 超声波发射=>P3^2* 超声波接收=>P3^3按键用的接口是P2口*待改进的地方:温度补偿,提高精度*当前的缺陷:不能测出4m的距离*测量单位:米(m)****************************************************/#include <reg52.h>#include <intrins.h>#include <string.h>#include <eepom52.h>#define uchar unsigned char#define uint unsigned int//数码管段选定义设0 1 2 3 4 5 6 7 8 9uchar code smg_duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管位选uchar dis_smg[4] ={0,1,2,3};sbit smg_we1 = P3^4; //数码管位选端口sbit smg_we2 = P3^5;sbit smg_we3 = P3^6;sbit smg_we4 = P3^7;sbit c_send = P3^1; //超声波发射sbit c_recive = P3^0; //超声波接收uchar flag_hc_value; //超声波中间变量sbit beep = P2^3; //蜂鸣器IO口定义uchar smg_i = 3; //显示数码管的个数:3bit flag_300ms ; //主程序300ms处理一次的标识符bit key_500ms ; //按键程序500ms处理一次的标识符long distance; //定义测量距离uint set_d; //定义设定距离uchar flag_csb_juli; //超声波超出量程long flag_time0;//按键的IO变量的定义uchar key_can; //按键值的变量uchar zd_break_en,zd_break_value; //自动退出设置界面uchar menu_ljsd = 10; //用来控制连加的速度bit flag_lj_en; //按键连加使能bit flag_lj_3_en; //按键连3次连加后使能加的数就越大了uchar key_time; //定时器用,作为连加的中间变量,按键时间uchar flag_value; //定时器用,作为连加的中间变量uchar menu_1; //菜单设计的变量uchar a_a; //设定值写入单片机标志符/***********************数码管位选函数*****************************/ void smg_we_switch(uchar i){switch(i){case 3: smg_we1 = 0; smg_we2 = 1; smg_we3 = 1; smg_we4 = 1; break;case 2: smg_we1 = 1; smg_we2 = 0; smg_we3 = 1; smg_we4 = 1; break;case 1: smg_we1 = 1; smg_we2 = 1; smg_we3 = 0; smg_we4 = 1; break;case 0: smg_we1 = 1; smg_we2 = 1; smg_we3 = 1; smg_we4 = 0; break;}}/***********************数码管显示函数*****************************/ void display(){static uchar i;i++;if(i >= smg_i) //smg_i=3,i = 0;smg_we_switch(i); //调用位选函数P1 = dis_smg[i]; //段选}/******************把数据保存到单片机内部eepom中******************/void write_eepom(){SectorErase(0x2000);byte_write(0x2000, set_d % 256); //写入set_d值byte_write(0x2001, set_d / 256);byte_write(0x2058, a_a); //a_a标识符}/******************把数据从单片机内部eepom中读出来*****************/void read_eepom(){set_d = byte_read(0x2001); //读出set_d值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;//key_new、key_old 按键标识符,key_new=0表示有键瞬间按下,//检测确认按键后,key_old=1. key_value按键检测中间变量if(key_new == 0) //初始有键按下{if((P2 & 0x07) == 0x07) //松手检测(5次)key_value ++;elsekey_value = 0;if(key_value >= 5) //确认无键按下{key_value = 0;key_new = 1; //置位key_new,表初始无键按下flag_lj_en = 0; //关闭连加的使能flag_lj_3_en = 0; //关闭3秒后连加的使能flag_value = 0; //连加变量清零key_time = 0;write_eepom(); //值(set_d)写入单片机}}else //初始无键按下{if((P2 & 0x07) != 0x07) //按键检测(5次)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; //自动退出设置界变量清零,30秒后退出设置界面}}key_can = 20;if(key_500ms == 1) //连按500ms,启动连加{key_500ms = 0;key_new = 0;key_old = 1;zd_break_value = 0; //自动退出设置界变量清零,30秒后退出设置界面}if((key_new == 0) && (key_old == 1)) //确认有键按下{switch(P2 & 0x07){case 0x06: key_can = 1; break; //得到k2键值(设定键)case 0x05: key_can = 2; break; //得到k3键值(加)case 0x03: key_can = 3; break; //得到k4键值(减)}}key_old = key_new; //初始化标识符}/*******************按键处理数函数***************************/void key_with(){if(key_can == 1) //得到k2键值(设定键){menu_1 ++;if(menu_1 >= 2){menu_1 = 0;}if(menu_1 == 0) //退出设定界面{menu_ljsd = 10; //连加速度控制变量(复位为500ms)dis_smg[0] = smg_duan[distance % 10]; //测量值显示用dis_smg[1] = smg_duan[distance / 10 % 10] ;dis_smg[2] = smg_duan[distance / 100 % 10] & 0x7f;smg_i = 3;}if(menu_1 == 1) //设置界面{menu_ljsd = 1; //连加速度变量(50ms)dis_smg[0] = smg_duan[set_d % 10]; //设定值显示用dis_smg[1] = smg_duan[set_d / 10 % 10];dis_smg[2] = smg_duan[set_d / 100 % 10] & 0x7f ;dis_smg[3] = 0x88;smg_i = 4; //A,设定值修改标识符}}if(menu_1 == 1) //设置报警值{if(flag_lj_3_en == 0) //三次连加之后速度加快menu_ljsd = 10 ; //500ms 加减一次elsemenu_ljsd = 1; //50ms 加减一次if(key_can == 2) //得到k3键值(加){set_d ++ ;if(set_d > 350)set_d = 350;dis_smg[0] = smg_duan[set_d % 10]; //设定值显示dis_smg[1] = smg_duan[set_d / 10 % 10] ;dis_smg[2] = smg_duan[set_d / 100 % 10] & 0x7f;dis_smg[3] = 0x88;}if(key_can == 3) //得到k4键值(减){set_d -- ;if(set_d <= 1)set_d = 1;dis_smg[0] = smg_duan[set_d % 10]; //设定值显示dis_smg[1] = smg_duan[set_d / 10 % 10] ;dis_smg[2] = smg_duan[set_d / 100 % 10] & 0x7f ;dis_smg[3] = 0x88; //a}}}/*********************定时器0、定时器1初始化******************/void time_init(){EA = 1; //开总中断TMOD = 0X11; //定时器0、定时器1工作方式1ET0 = 1; //开定时器0中断TR0 = 1; //允许定时器0定时ET1 = 1; //开定时器1中断TR1 = 1; //允许定时器1定时}/****************延迟函数(10us,超声波发射需要)********************/void delay(){int i=10;for(i;i>=0;i--){_nop_(); //执行一条_nop_()指令就是1us}}/*********************超声波测距程序*****************************/void send_wave(){long temp = 888;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 > 21000)) //当超声波超过测量范围时,显示3个888{TR0 = 0;flag_csb_juli = 2;temp = 888;flag_hc_value = 0;break ;}else{flag_csb_juli = 1;}}if(flag_csb_juli == 1) //距离处理{TR0=0; //关定时器0定时EA = 0;temp = TH0; //读出定时器0的时间temp = temp * 256 + TL0;temp /= 59; //HC-SR04超声波模块距离(厘米)=T*uS/58.823EA = 1;if(temp > 380) //如果大于3.8m就超出超声波的量程{temp = 888;}}EA = 0;distance = temp; //距离EA = 1;}/****************冒泡排序(最大值沉底)**************************/int iBuff[5];void choise(int *a,int n) //选择法排序{int i,j,k,temp;for(i=0;i<n-1;i++) {k=i; //给记号赋值for(j=i+1;j<n;j++)if(a[k]>a[j]) k=j; //是k总是指向最小元素*/if(i!=k) { //当k!=i是才交换,否则a[i]即为最小temp=a[i];a[i]=a[k];a[k]=temp;}}}/*******************测量距离处理及显示函数**********************/void smg_display(){int Buff[5];char i;if(distance == 95)return; //95去掉iBuff[4] = iBuff[3];iBuff[3] = iBuff[2];iBuff[2] = iBuff[1];iBuff[1] = iBuff[0];iBuff[0] = (int)distance;for(i = 0; i<5; i++)Buff[i] = iBuff[i];choise(Buff,5); //调用choise函数,冒泡排序distance = (long)Buff[2]; //取得排序后5值的中间值,以消弱误触,稳定测量结果EA = 0; //关中断dis_smg[0] = smg_duan[distance % 10]; //取百分位(厘米级)dis_smg[1] = smg_duan[distance / 10 % 10]; //取十分位(分米级)dis_smg[2] = smg_duan[distance / 100 % 10] & 0x7f; //取个位(米级)EA = 1; //开中断}/*********************报警函数****************************************/void clock_h_l(){static uchar value;if(distance <= set_d){value ++; //多次检测,消除实际距离在设定距离左右变化时的干扰if(value >= 5){beep = ~beep; //蜂鸣器报警}}else{value = 0;beep = 1; //取消报警}}void main(){send_wave(); //测距离函数smg_display(); //处理距离显示函数time_init(); //定时器初始化init_eepom(); //初始化eepom(读取set_d)while(1){if(flag_300ms == 1) //300ms执行一次{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 < 4){key_with(); //按键处理函数}}}/************定时器0中断服务程序用做超声波测距的******************/ void time0_int() interrupt 1{}/**************定时器1中断服务程序,用作主程序********************/ void time1_int() interrupt 3{static uchar value;TH1 = 0xf8;TL1 = 0x30; //定时2msdisplay(); //数码管显示函数value++;if(value >= 150) //300ms中断一次{value = 0;flag_300ms = 1;}if(value % 25 == 0){if(flag_lj_en == 1) //按下按键使能50ms{key_time ++;if(key_time >= menu_ljsd) //500ms{key_time = 0;key_500ms = 1; //500msflag_value ++;if(flag_value >= 3){flag_value = 10;flag_lj_3_en = 1; //3次后1.5秒后连加大些}}}}}。

相关文档
最新文档