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

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

ha

2015届毕业生

毕业设计说明书

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

院系名称:信息科学与工程学院专业班级:电信1107

学生姓名:刘彪学号:201116910909

指导教师:杨静教师职称:讲师

2015年5 月29 日

I

摘要

AT89C51是单片机里应用比较广泛的一款,在自动控制领域里享有很高的价值。以其易用性和多功能性受到了广大电子设计爱好者的好评。本次设计主要是利用AT89C51单片机、超声波传感器完成测距报警系统的制作。以AT89C51为主控芯片,利用超声波的传播特性完成距离的检测,将前方物体的距离探测出来。然后单片机处理运算单元,与设定的报警距离值进行比较判断,当测得距离小于设定值时,AT89C51发出指令控制蜂鸣器报警。通过DS18B20进行温度补偿,减少温度带来的干扰,提高测量精度。

整个硬件电路由超声波发射电路、超声波接收电路、电源电路、显示电路等模块组成,各探头的信号经单片机综合分析处理,实现超声波测距的各种功能。在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个模块功能。本毕业设计包括:硬件电路图、程序流程图,并给出了系统结构、电路原理和程序设计。系统具有易于控制、工作可靠、测距精度高、可读性强和流程清晰等优点。

关键词:超声波传感器、AT89C51、DS18B20

I

Title Ultrasonic Ranging System Based on MCU

Abstract

AT89C51 is used widely which enjoys a high value in the field of automatic control system. It has been well received on versatility and ease of use by the majority of electronic design enthusiasts. This design is composed of SCM AT89C51, ultrasonic distance sensor and alarm system. As the main chip in AT89C51, using of ultrasonic sensors to detect obstacles. Microcontroller as a processing operation unit, then setting the alarm values are compared to judge the distance, when the measured distance is less the value. Then buzzer starts alarm at the microcontroller control. DS18B20 as a temperature compensation sensor, in order to reduce interference caused by temperature, improve the measurement accuracy.

The entire hardware circuit is composed by ultrasonic transmitter circuit, ultrasonic receiver circuit, the power circuit, display circuit and other modules. Each of the probe signal by the microcontroller comprehensive analysis process, then realize various functions of ultrasonic distance measurement. Base on this has designed system's overall concept, final adoption of hardware and software to achieve the various functional modules. The graduation project include: hardware circuit, program flow chart, and gives the system structure, circuit theory and programming. The instrument system has features: ease of control, stability of operation, highness of precision and readability, etc.

Keywords :Ultrasonic sensors、AT89C51、DS18B20

II

目次错误!未找到引用源。

III

1

1绪论

1.1课题背景及重要意义

随着社会的需求,电子测量的传感器技术应用越来越多。超声波测量的精度符合工业要求,低成本性能稳定使它备受欢迎,随着科技对精度的要求越来越高,超声波测距技术已经被广泛用于人们日常生活和工作之中[1]。

由超声波测距是一种非接触的测量技术,不受光线、被测对象颜色这些外部环境的束缚。较其它仪器更加的方便和直接,更耐潮、腐蚀性气体等恶劣环境,具有很少需要维护、无污染、使用的寿命比较长等特点[2]。可在不同环境中能够实现距离信息实时在线显示,可直接用于水、酒、糖等液位的测量,也能够进行差值设定,直接显示各种液位的高度。因此,超声波在空气中的测距在特定的场合下有较为广泛的应用。利用超声波测距往往速度快而直接、能够迅速的实时控制,并且在测量准确度上得到了业界普遍的认可。它在汽车倒车雷达的研究和使用方面也得到了认可,并且被广泛的应用[3]。在其它方面的应用,也发挥着巨大的潜在价值,如医疗、潜艇等高精尖的科技上。

1.2课题的意义

基于影响超声波测距引起误差的几个重要因素做了分析,并为系统选择了比较合适的传感器。此系统打算在实验室内实现小范围的距离测距,测试距离约为0.02m —3m 。系统整体构架如下图所示。

图1-1系统设计方案图

显示模块

语音模块

单片机控制单元

发射电路

检测电路

接受电路

发射探头

接受探头

障碍物

2

显示电路可以采用动态扫描的方式来实现,这样可以大大减少对硬件的需求的程度。通过单片机内部程序的执行能够使内部计数得到的时间数据迅速的转换为距离信息,并且实现在4个LED 数码管显示出来,数据XXXX ,单位cm [4]。 基于超声波测距能够克服传统上测距的缺陷,如能够进行液面的测量,传统上的测量方式不仅存在严重的缺陷而且操作起来难以实现;而且基于AT89C51单片机的超声波测距系统不仅价格低廉,其系统的体积也不大,同时也能够实现高精度的要求,这就为未来能够电子技术领域的广泛应用提供了良好的条件,这也是研究超声波技术课题的重要意义[5]。

1.3本文主要研究内容

本系统硬件部分由AT89C51控制器,超声波的接受电路以及发射电路、报警装置、温度补偿传感器电路和显示电路组成。当进行倒车时,发射和接受的超声波的电路开始工作,经过AT89C51数据处理的结果将以距离信息显示到LED 数码管上,倘若距离小于所设定值时,报警电路中的蜂鸣器就会发出鸣叫,能够提醒司机遇到障碍物,要保持车距,注意安全[6]。超声波测距流程框图如下图所示:

图1-

2系统设计总框图

发射出去的声波碰到障碍物后大部分的会反射回来,一部分因折射而损失掉;由超声波接受头接受到信号,这时通过接受电路处理。单片机可以利用声波在环境中的传播速度和发射脉冲到接受反射脉冲的时间差,就能够计算出测距仪到障碍物的距离。倘若所显示的测量距离小于所设定的距离值,报警电路的蜂鸣器就会发出报警,起到警惕的作用。

对本课题的研究而言,不仅会从深度上分析超声波测距的基本原理,也了解超声波的特点及如何应用超声波,对本课题的研究后,也要展望未来超声波的发

发射电路

接受电路

LED

AT89C51

DS18B20

报警电路

展趋势,如何使这门技术富有价值,更重的一点是,此课题的研究不只仅研究理论方面,还要动手实践,设计硬件和编写软件,正真做到学以致用。

3

2 超声波测距原理与方法

2.1超声波简介

超声波技术在整个国民经济中的各个领域取得了广泛的应用。对提高产品的性能和质量,保障安全生产和机器设备的安全运作,有着十分重要的作用,在工业生产中提高生产的效益具有其它技术所不具备的优点。

超声波的物理性质主要是指超声波的折射和反射,当超声波要通过两种特性阻抗特性不同介质的平面上时,超声波的传播变成两种方式,一部分超声波在平面上被反射回来,而此系统就是利用超声波的此特性;另一部分超声波会穿过介质面,在另一种介质内部继续传播[7]。这两种传播方式称为超声波的反射和折射。正是利用超声波的这些特性,才使超声波的研究具备了真正的价值。

2.2 超声波测距原理

超声波测距可以通过不同的方式实现:例如相位检测法、往返时间检测法及声波幅值检测法等比较常用的三种方法[8]。本系统采用往返时间检测法的方式进行距离的测量。其所经过的时间也就是往返的总时间。由于确定了往返时间,再按照周围环境中空气的温度,可以实际情况推测出超声波在空气中的传播速度,便可以计算出距离。

如果测量的障碍物与测距仪之间的距离是s(m),超声波从发射到接受所用的总时间为t(s),超声波传播速度为v(m/s)表示。则有关系式如(2-1);

(2-1)由于超声波的传播速度与环境中的温度紧密相关,一般而言,环境中的温度每抬高1℃,其超声波的传播速度也会随着增加0.6米/秒[9]。

表2-1 环境中不同温度下的传播速度

温度(℃)-30 -20 -10 0 10 20 30

声速(m/s)313 319 325 323 338 344 349

在设计系统时,倘若环境中空气温度变化不大,就可以认为声速c是定值,这时取声速c为340m/s。如果测距精度要求的非常高,这时就可以通过改变硬

4

5

件电路的办法来实现其精度的测量,通过增加温度补偿电路法来加以实现精度的测量。

在本系统的设计计划利用AT89C51中的定时器来测量超声波传播在空气中的传播时间。利用DS18B20传感器测量环境中空气的温度,从而克服了测量精度低的缺点。空气中的超声波的传播速度与环境中空气的温度的关系可表示为:

273.16

331.45

331.40.6273.16

T c T +≈≈+(m/s) (2-2)

这时按式(2-2)对超声波传播速度进行实时的修正,以来提高测量的准确度。 这时式(2-2)可以简化为:

(2-3) 式中,T 的温度单

位为℃,v 为超声波在介质中的传播速度单位为m/s [10]。

当超声波的传播速度知道后,这时只需要求超声波在介质中传播的往返的时间t(s),可求得传感器与障碍物的距离l 为:

l=1/2(331.4+0.6T )t (2-4)

2.3本章小结

本章首先介绍了超声波的基本的特性和特点,而后利用超声波的这些基本的特性为我们所用,如超声波的直线传播方式以及超声波在特定环境温度下有恒定的速度可以用来距离。接下来介绍了超声波的形成的方式和传播的特点,超声波在传播过程中的会发生反射、折射规律等特点;通过超声波的内部结构和影响超声波传播的几个重要参数给出本系统设计中所用超声波传感器的该如何选择。通过以上的这些特性,给出了超声波测距的原理以及公式表达式,这为超声波测距的软件系统的实现,提供了保障;在硬件电路的实践上提供了根据。而本章研究的重点是超声波的一些重要特性和超声波测距的基本原理,为后面章节系统的设计提供了有利的途径。

3 系统硬件设计

3.1硬件的选择

3.1.1 主控制器模块

采用单片机作为整个系统控制的中心,用来控制超声波传感器的收发模块,以实现特定的性能。充分了解我们的系统后,重点在于实现超声波测距功能,而在这一点上。单片机就显现并发挥出来它特别而又独特的好处,不仅体现在控制上的稳定,而且操作方便和快捷[11]。从这方面来看,单片机就可以充分发挥其丰富的资源,并且具有价格低廉等优点。因此,这种方案是一种较为理想的方案。单片机各管脚图如图3-1:

图3-1 AT89C51管脚图

对于本系统实物设计而言,若选用一片CPLD作为系统数据处理的核心,也能实现全局的掌控,处理的速度快、程序语言采用VHDL也比较容易编写,而且开发的周期也不会太长,虽然它的优点很明显,但是仅本系统采用单片机作为数据的核心则是更为合理,首先超声波测距对数据的处理速度要求不是很高,因此对系统信息的处理的要求自然没有太高的要求,仅这一点而言单片机就可以胜任,

6

同时单片机更为廉价,更符合商业的发展。综合各种考虑,我们决定采用AT89C51单片机作为系统的主控制器。

3.1.2 电源模块

对于电源模块经过综合的考虑将采用3节1.5v干电池共4.5v做电源,干电池输出的电压稳定,并且经过试验验证系统工作时,单片机、传感器的工作电压稳定能够满足本系统的要求,最重要的是干电池更换方面,与5v蓄电池相比较体积小,节约空间。综合考虑选择干电池供电是更加可行的方式。

3.1.3 显示模块

用数码管进行显示,数码管的显示速度快,使用起来简单,显示画面简洁明了。所以得到非常广泛的应用。在这里我们需要显示的数据仅是长度单位即距离值,用数码管作为显示模块足以满足要求。倘若用LCD液晶屏显示,虽然也满足此系统的各项要求,但是显然浪费了资源,仅从这点,选择数码管是更为合理的方案。

3.1.4 温度补偿模块

采用DS18B20器件作为温度补偿电路的温度传感器。DS18B20的数字温度输出是通过“一线”总线的方式,这是它独特的数字信号总线协议,和其它的传感器不同的是,它是将信号线和电源线结合在一起的方式,仅是使用一条口线,因此使用起来特别的简单;另外它每个芯片有特定的唯一编码,能够实现联网寻址等[12]。也可以使用多个这样的传感器组件成传感器网络,这能够实现更大测量系统的可能性。最重要的是,它在测温精度高,容易实现时间的转换,分辨率的精度等方面和其它温度传感器相比较,已经有了很大的进步,同时它体积微小,形状如三极管,具有三个管脚;其特点是独特的单线接口,也就是说只需一个接口引脚即可以通信,无需外部元件,并且可用数据线供电,又不需要备份电源;测量温度的范围是从-55℃到+125℃,分辨值为0.5℃。也可以等效成为华氏温度。它是通过九位的数字值来读取温度的,能够在一秒内把把数字信号转化为温度。对于用户而言,带来了诸多的方面和满意的效果。DS18B20实物图如图3-2:

7

图3-2 DS18B20实物图

左边管脚为GND与地相连、DQ为中间管脚,为数字输入输出管脚、最右为VDD 与电源相连。

3.1.5 报警模块

采用蜂鸣器提示,优点是实现的电路简单而实用,且性能稳定同时可靠性高。报警电路的作用是与单片机的p2.3管脚相连,当测距的距离值小于特定值时,p2.3的电平值会从低电平变为高电平,这时蜂鸣器便会发出报警,当数码管所显示的数值大于所设定的值,蜂鸣器则保持不工作的状态[13]。报警电路的作用就是提醒用户的目的。

图3-3 蜂鸣器实物

3.2 最终方案

经过反复论证,我们最终确定了如下方案:

1、主控芯片采用AT89C51单片机作为主控制器;

2、用3节干电池供电;

3、用数码管显示;

8

4、采用DS18B20传感器做温度补偿;

5、用蜂鸣器做提示。

3.3本章小结

本章主要是通过对比各硬件器件的优缺点,来找到合适本系统所需要的最佳器件;如供电模块是选用干电池或是蓄电池、显示模块是用液晶显示还是用数码管显示、报警模块用蜂鸣器还是语音芯片、温度补偿传感器是用DS18B20传感器还是用TP100器件;通过对不同器件的特性、参数做比较,选择出设计本系统所需要的最合适的器件,这样做既节约了资源,也节约了设计系统所需要的成本;通过这样的对比,能够使我们更加了解不同器件的各个性能指标和参数,也培养了我们良好的学习的习惯,既找到了实现目标的最佳途径,有利于对专业知识的深度认知,对以后的学习和职业的发展有巨大的好处。

9

4 硬件实现与电路设计

4.1 主控制模块

主控制最小系统电路如图4-1所示。

图4-1 单片机主控电路

4.2 单片机的时钟电路与复位电路设计

单片机使用串口对单片机进行程序的烧写,下载程序简单且迅速;而且AT89C51单片机内部集成的电路结构,具有十分强大的抗干扰能力[14]。

本系统采用内部方式的时钟电路和复位电路,如下图:

图4-2 时钟电路

10

图4-3 复位电路

4.3超声波测距模块

超声波模块使用的是现成的HC-SR04超声波的发射和接受模块,该模块功能能够实现 2cm-400cm 的非接触式距离的测量,测距误差能够达到 3mm。其中此模块包括控制电路、超声波发射器与接收器三个部分组成[15]。

此模块的基本工作原理:采用 IO 口 TRIG 触发的方式来实现的,其中模块自动发送40KHz左右的方波信号,能够实现自动检测是否有方波信号折回;倘若有方波信号的折回,可以通过 IO 口 ECHO 输出一个持续的高电平信号,因此高电平持续的时间就是超声波在整个传播过程中所用的时间。测试距离=(高电平时

4-4:

间*声速(340M/S))/2。实物如下图

11

12

此超声波测距模块正常工作时的电气参数如下表:

表4-1 超声波传感器模块工作特性参数

电气参数 HC-SRO4超声波模块

工作电压 5v 工作电流

15mA 工作频率 40kHz 测量角度 15度 最远射程 4m 最近射程 2cm

触发信号 持续10us 的TTL 脉冲 回响信号 输出TTL 电平信号 规格尺寸

45*20*15mm

此模块要注意的是:此模块不可以带电连接,倘若必须要带电连接,就必须

先让此模块的GND 管脚首先连接,否则会影响模块的稳定性,导致模块错误的数据传输。测距的时候,被测物体的面积不能太小,否则发射出去的超声波难以反射回来,同时要求平面要求尽可能的平整,否则也会影响测量的结果的准确度。

4.4 声音报警电路的设计

如下图所示,用一个蜂鸣器和三极管、电阻组成的并与单片机的P2.3引脚连接,通过软件程序控制管脚高低电平的输出,从而控制蜂鸣器的工作与否;这样就组成声音报警电路。如图4-5:

图4-5 声音报警电路图

4.5 显示模块

显示模块采用数码管显示接口电路如图4-6所示。

图4-6 数码管电路

4.6温度补偿电路

温度补偿电路采用DS18B20传感器进行测量环境中的温度,P2.4引脚接DS18B20数据总线,并且控制DS18B20传感器进行温度的转换和传输的数据。本系统对温度传感器DS18B20选用的是外部供电的方式。并且总线控制器也不需要在温度转换的阶段连续的保持高的电平信号。因此在转换的过程中,也可以在单线总线上完成其他数据传输,如图4-7:

图4-7 温度传感器接口电路图

13

4.7元件清单

综上分析,系统所需的元件清单如下表:

表4-2 系统设计所需原件清单

参数名称种类数量

10k 电阻R14 1

10uF 电容C1 1

12M 晶振Y1 1

指示灯发光二极管D1 1

SW-灰色电源开关SW1 1

DS04 数码管DS1 1

U1 单片机U1 1

蜂鸣器蜂鸣器B1 1

S9012 三极管Q1.Q2.Q3.Q4.Q5 5

20uF 电容C2.C3 2

Header4 超声波接口P1 1

SW—PB 独立按键S1.S2.S3.S4 4

2k 电阻R4.R5.R6.R13.R15

1k 电阻R1.R2.R3.R8.R9.R10.R11.R12

DS18B20 温度传感器U2 1

4.8本章总结

本章通过各个模块电路图的设计和硬件功能的实现来完成实际的操作,首先是对单片机的时钟电路和复位电路进行了设计,其次是结合超声波的特性对超声波测距传感器做了详细的介绍,说明了各个引脚的功能及如何结合单片机构成一个简单的系统,再者就是如何设计声音报警电路以及显示模块电路的设计,最后最重要的就是如何利用温度传感器DS18B20来设计温度补偿电路来提高超声波测距的精度。总的来说本章就是通过各个模块的设计,然后结合在一起实现其功能。在这实现的过程中不仅要求我们掌握一些计算机仿真软件的使用,

14

如keil uVision软件来完成程序的编写,并且生成可执行的.hex文件植入到单片机中[16]。其次就是电路仿真软件,如Proteus软件进行仿真;最终便是硬件电路的焊接与调试[17]。本章需要我们较强的专业知识体系和较强的实践动手能力。

15

16

5系统软件设计方案

5.1主程序流程图

如图5-1所示为超声波测距主程序流程图。

图5-1 系统软件的整体流程图

系统初始化

报警结束

测得距离小于设定值比较

距离比较,报警是否持续

开始

启动报警电路,开启报警

再次检测等待下次

报警

结束

Y

N

N

Y

Y

N

51单片机超声波测距程序

//晶振:11.0592 //TRIG:P1.2 ECH0:P1.1 //波特率:9600 #include #include #include #define uchar unsigned char #define uint unsigned int sbit RX=P0^2; sbit TX=P0^3; unsigned int time=0; unsigned int timer=0; float S=0; bit flag =0; void Conut(void) { time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.87)/100; //算出来是CM if(flag==1) //超出测量 { flag=0; printf("-----\n"); } printf("S=%f\n",S); } void delayms(unsigned int ms) { unsigned char i=100,j; for(;ms;ms--) { while(--i)

{ j=10; while(--j); } } } void zd0() interrupt 1 //T0中断用来计数器溢出,超出测距范围{ flag=1; //中断溢出标志 } void StartModule() //T1中断用来扫描数码管和计800ms启动模块{ TX=1; //800MS启动一次模块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; } void main(void) { TMOD=0x21; //设T0为方式1,GATE=1; SCON=0x50; TH1=0xFD; TL1=0xFD; TH0=0; TL0=0;

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

一设计题目基于51单片机的超声波测距 二设计者 姓名班级学号组号 三、设计思路及框图、原理图 任务:以单片机为核心,设计并制作一超声波测距系统基本要求: 利用时间差测距,不考虑温度变化 用数码管显示测试结果 工作频率:450kHz 测距范围:0.5~10米 测试精度: 10% 发挥部分尽量增大测控范围,提高测试精度 1.系统的硬件结构设计 1.1. 超声波发生电路 发射电路主要由反相器74LS04和超声波发射换能器T构成,单片机P1.0端口输出的450kHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。输出端采两个反向器并联,用以提高驱动能力。上位电阻R1O、R11一方面可以提高反向器74LS04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡时间。 1.2超声波检测接收电路 采用集成电路CX20106A为超声波接收芯片。实验证明用CX20106A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。适当更改电

容C4的大小,可以改变接收电路的灵敏度和抗干扰能力。 1.3 显示电路 显示电路主要由74ls273芯片驱动,用PNPC8550三级管进行位选,七段共阳极数码管显示。 2.系统的软件结构设计 设计思路 主程序中包括温度补偿子程序,计算子程序,显示子程序。采用汇编编程。首先进行系统初始化。其次利用循环产生4个40KHZ的方波,由输出口进行输出,并开始计时。第三等待中断,若超声波被接收探头捕捉到,那么通过中断可测得

超声波测距程序(详细C语言数码管显示)

超声波测距程序(详细C语言数码管显示) #include //头文件 #include// _nop_() 函数延时1US用 #include #include #define uchar unsigned char #define uint unsigned int #define nop _nop_() sbit csb=P1^0;//超声波发送端口为P1.0 sbit bai=P2^2;//数码管百位 sbit shi=P2^1;//数码管十位 sbit ge=P2^0;//数码管个位 uchar flag;//超声波接收标志 float juli1;//距离变量,用来数码管显示用 int juli; uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管0到9的代码 int xianshi[3]; void delayshow(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void ledshow(void) { xianshi[0]=juli/100; xianshi[1]=((juli%100)/10); xianshi[2]=juli%10; bai=0; P0=table[xianshi[0]]; delayshow(2); bai=1; delayshow(2); shi=0; P0=table[xianshi[1]]; delayshow(2); shi=1;

基于单片机的超声波测距

测控技术与仪器专业课程设计报告 班级姓名学号起始时间 课程设计题目: 测控技术与仪器专业课程设计报告 摘 要:本文介绍了一种基于单片机的超声波测距仪的设计。详细给出了超声波测距仪的工作原理、超 声波发射电路和接受电路、测温电路、显示电路等硬件设计,以及相应的软件设计。设计中采用升压电路,提高了超声换能器的输出能力;采用红外接收芯片,减少了电路间相互干扰,提高了灵敏度;同时,考虑了环境温度对超声波测距的影响,采用温度传感器,提高了测量精度。该设计试验运行良好,系统结构简单、操作方便、价格低廉,具有广阔的推广前景。 关键字:超声波测距仪;超声波换能器;单片机;温度传感器 1 对题目的认识和理解 目前,常用的测距方法主要有毫米波测距、激光测距和超声波测距三种。超声波测距较前两种测距方法而言,具有指向性强、能耗缓慢、受环境因素影响较小等特点,广泛应用于如井深、液位、管道长度、倒车等短距离测量。 超声波测距适用于高精度中长距离测量。因为超声波在标准空气中传播速度为331.45m/s ,由单片机负责计时,单片机使用12.0M 晶振,所以此系统测量精度理论上可以达到毫米级。 目前比较普遍的测距的原理是:通过发射具有特征频率的超声波对被摄目标的探测,通过发射出特征频率的超声波和反射回接受到特征频率的超声波所用的时间,换算出距离,如超声波液位物位传感器,超声波探头,适合需要非接触测量场合,超声波测厚,超声波汽车测距告警装置等。 本设计选用频率为40kHZ 左右的超声波,它在空气中传播的效率最佳。由于超声波测距主要受温度影响较大,所以本设计增加了温度补偿电路。本设计具有电路简单、操作简便工作稳定可靠、测距精确和能耗小、成本低等特点,可实现无接触式测量,应用广泛。 1.1 超声波测距原理 超声波测距是通过超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即反射回来,超声波接收器收到回波就立即停止计时。根据计时器测出发射和接收回波的时间差t ,可以计算出发射点距障碍物的距离s :2 = t c s ,其中t c 为超声波在空气中的传 播速度,它随温度的变化而变化,其变化关系如下:331.50.6=+t c T 式中T 为环境摄氏温度,可由温 度传感器获取。

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

微机原理与单片机系统课程设计 业:专轨道交通信号与控制 级:班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超声波测距模块设计

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

单片机课程设计 一、需求分析: 超声波测距器,可以应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。要求测量围在1m,测量精度1cm,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人的研制上也得到了广泛的应用。 本文旨在设计一种能对中近距离障碍物进行实时测量的测距装置,它能对障碍物进行适时、适量的测量,起到智能操作,实时监控的作用。 关键词单片机AT82S51 超声波传感器测量距离 二、硬件设计方案 设计思路 超声波传感器及其测距原理 超声波是指频率高于20KHz的机械波。为了以超声波作为检测手段,必须产生超生波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。超声波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。

超声波测距的原理一般采用渡越时间法TOF(time of flight)。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离 测量距离的方法有很多种,短距离的可以用尺,远距离的有激光测距等,超声波测距适用于高精度的中长距离测量。因为超声波在标准空气中的传播速度为340米/秒,由单片机负责计时,单片机使用12.0M晶振,所以此系统的测量精度理论上可以达到毫米级。 由于超声波指向性强,能量消耗缓慢,在介质中传播距离远,因而超声波可以用于距离的测量。利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到要求。 超声波发生器可以分为两类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。本课题属于近距离测量,可以采用常用的压电式超声波换能器来实现。 根据设计要求并综合各方面因素,可以采用AT89S51单片机作为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成,超声波测距器的系统框图如下图所示: 超声波测距器系统设计框图 主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分组成。采用AT89S51来实现对CX20106A红外接收芯片和TCT40-10系列超声波转换模块的控制。单片机通过P1.0引脚经反相器来控制超声波的发送,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。

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

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

一、实验目的 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 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2。实物如下图1。其中VCC 供5V 电源,GND 为地线,TRIG 触发控制信号输入,ECHO 回响信号输出等四支线。

超声波测距仪的设计说明

题目:超声波测距仪的设计 超声波测距仪的设计 一、设计目的: 以51单片机为主控制器,利用超声波模块HC-SR04,设计出一套可在数码管上实时显示障碍物距离的超声波测距仪。 通过该设计的制作,更为深入的了解51的工作原理,特别是51的中断系统及定时器/计数器的应用;掌握数码管动态扫描显示的方法和超声波传感器测距的原理及方法,学会搭建51的最小系统及一些简单外围电路(LED显示电路)。从中提高电路的实际设计、焊接、检错、排错能力,并学会仿真及软件调试的基本方法。 二、设计要求: 设计一个超声波测距仪。要求: 1.能在数码管上实时显示障碍物的实际距离; 2.所测距离大于2cm小于300cm,精度2mm。 三、设计器材: STC89C52RC单片机 HC-SR04超声波模块 SM410561D3B四位的共阳数码管 9014三极管(4) 按键(1) 电容(30PF2,10UF1) 排阻(10K),万用板,电烙铁,万用表,5V直流稳压电源,镊子,钳子,

导线及焊锡若干,电阻(200欧5)。 四、设计原理及设计方案: (一)超声波测距原理 超声测距仪是根据超声波遇到障碍物反射回来的特性进行测量的。超声波发射器向某一方向发射超声波,在发射同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即中断停止计时。通过不断检测产生波发射后遇到障碍物所反射的回波,从而测出发射超声波和接收到回波的时间差T,然后求出距离L。基本的测距公式为:L=(△t/2)*C 式中 L——要测的距离 T——发射波和反射波之间的时间间隔 C——超声波在空气中的声速,常温下取为344m/s 声速确定后,只要测出超声波往返的时间,即可求得L。 根据本次设计所要求的测量距离的围及测量精度,我们选用的是HC-SR04超声波测距模块。(如下图所示)。此模块已将发射电路和接收电路集成好了,硬件上不必再自行设计繁复的发射及接收电路,软件上也无需再通过定时器产生40Khz的方波引起压电陶瓷共振从而产生超声波。在使用时,只要在控制端‘Trig’发一个大于15us宽度的高电平,就可以在接收端‘Echo’等待高电平输出。单片机一旦检测到有输出就打开定时器开始计时。 当此口变为低电平时就停止计时并读出定时器的值,此值就为此次测距的时间,再根据传播速度方可算出障碍物的距离。 (二)超声波测距模块HC-SR04简要介绍 HC-SR04超声波测距模块的主要技术参数使用方法如下所述: 1. 主要技术参数: ①使用电压:DC5V ②静态电流:小于2mA ③电平输出:高5V

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

基于51单片机的超声波测距系统 贾源 完成日期:2011年2月22日

目录 一、设计任务和性能指标 (3) 1.1设计任务 (3) 1.2性能指标 (3) 二、超声波测距原理概述 (4) 2.1超声波传感器 (5) 2.1.1超声波发生器 (5) 2.1.2压电式超声波发生器原理 (5) 2.1.3单片机超声波测距系统构成 (5) 三、设计方案 (6) 3.1AT89C2051单片机 (7) 3.2超声波测距系统构成 (8) 3.2.1超声波测距单片机系统 (9) 图3-1:超声波测距单片机系统 (9) 3.2.2超声波发射、接收电路 (9) 图3-1:超声波测距发送接收单元 (10) 3.2.3显示电路 (10) 四.系统软件设计 (11) 4.1主程序设计 (11) 4.2超声波测距子程序 (12) 4.3超声波测距程序流程图 (13) 4.4超声波测距程子序流程图 (14) 五.调试及性能分析 (14) 5.1调试步骤 (14) 5.2性能分析 (15) 六.心得体会 (15) 参考文献 (16) 附录一超声波测系统原理图 (18) 附录二超声波测系统原理图安装图 (19) 附录三超声波测系统原理图PCB图 (20) 附录四超声波测系统原理图C语言原程序 (21) 参考文献 (26)

一、设计任务和性能指标 1.1设计任务 利用单片机及外围接口电路(键盘接口和显示接口电路)设计制作一个超声波测距仪器,用LED数码管把测距仪距测出的距离显示出来。 要求用Protel 画出系统的电路原理图,印刷电路板,绘出程序流程图,并给出程序清单。 1.2性能指标 距离显示:用三位LED数码管进行显示(单位是CM)。 测距范围:25CM到 250CM之间。误差:1%。

超声波测距C语言源程序代码

超声波测距C语言源程 序代码 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

/*{HZ即单位s的倒数}本晶振为12MHZ,因此外部的时钟频率为12MHZ,所以内部的时钟频率为(12M H Z)/12=1M H 即1000000HZ,而机械频率为1/(1MHZ),即每完成一次计算(即定时器的值加一)用时, 即1us(微秒).*/ /*************************************************************************** ********/ #include<> #define UC unsigned char #define UI unsigned int void delay(UI); sbit BX = P3^0;void TimeConfiguration(); a = 0; b = 0; c = 0; P2 =~ 0x00; goto loop; } time = TL0 + TH0*256; juli = ( int )( (time*/2 ); BAI = ( (juli%1000)/100 ); SHI = ( (juli%100)/10 ); GE = ( juli%10 ); /******************************************两种模式的距离显示 ********************************************/ if(juli > MAX) { Hong = 0; Lv = 1; while( t1-- ) { a = 0; b = 1; c = 1; P2 =~ CharacterCode[BAI]; delay(400); a = 1; b = 0; c = 1; P2 =~ CharacterCode[SHI]; delay(400); a = 1; b = 1; c = 0; P2 =~ CharacterCode[GE]; delay(390);

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

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

基于单片机的超声波测距仪设计 1总体设计方案介绍 1.1超声波测距原理 发射器发出的超声波以速度υ在空气中传播,在到达被测物体时被反射返回,由接收器接收,其往返时间为t,由s=vt/2即可算出被测物体的距离。由于超声波也是一种声波,其声速v 与温度有关,下表列出了几种不同温度下的声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。 表1-1 超声波波速与温度的关系表 表1-1 1.2超声波测距仪原理框图如下图 单片机发出40kHZ的信号,经放大后通过超声波发射器输出;超声波接收器将接收到的超声波信号经放大器放大,用锁相环电路进行检波处理后,启动单片机中断程序,测得时间为t,再由软件进行判别、计算,得出距离数并送LED

显示。 图1-1 超声波测距仪原理框图 2 系统的硬件结构设计 硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分。单片机采用AT89C51或其兼容系列。采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用P1.0端口输出超声波换能器所需的40kHz的方波信号,利用外中断0口监测超声波接收电路输出的返回信号。显示电路采用简单实用的4位共阳LED数码管,段码用74LS244驱动,位码用PNP三极管8550驱动。 2.1 51系列单片机的功能特点及测距原理 2.1.1 51系列单片机的功能特点 5l系列单片机中典型芯片(AT89C51)采用40引脚双列直插封装(DIP)形式,内部由CPU,4kB的ROM,256 B的RAM,2个16b的定时/计数器TO和T1,4个8 b的工/O端I:IP0,

用51单片机实现HC-SR04超声波测距程序

#include //包括一个52标准内核的头文件 #define uchar unsigned char //定义一下方便使用 #define uint unsigned int #define ulong unsigned long sbit Trig = P1^0; //产生脉冲引脚 sbit Echo = P3^2; //回波引脚 sbit test = P1^1; //测试用引脚 uchar code SEG7[10]={~0xC0,~0xF9,~0xA4,~0xB0,~0x99,~0x92,~0x82,~0xF8,~0x80,~0x90};//数码管0-9 uint distance[4]; //测距接收缓冲区 uchar ge,shi,bai,temp,flag,outcomeH,outcomeL,i; //自定义寄存器 bit succeed_flag; //测量成功标志 //********函数声明 void conversion(uint temp_data); void delay_20us(); void main(void) // 主程序 { uint distance_data,a,b; uchar CONT_1; i=0; flag=0; test =0; Trig=0; //首先拉低脉冲输入引脚 TMOD=0x11; //定时器0,定时器1,16位工作方式 TR0=1; //启动定时器0 IT0=0; //由高电平变低电平,触发外部中断 ET0=1; //打开定时器0中断 EX0=0; //关闭外部中断 EA=1; //打开总中断0 while(1) //程序循环 { EA=0; Trig=1; delay_20us(); Trig=0; //产生一个20us的脉冲,在Trig引脚 while(Echo==0); //等待Echo回波引脚变高电平 succeed_flag=0; //清测量成功标志 EX0=1; //打开外部中断 TH1=0; //定时器1清零 TL1=0; //定时器1清零 TF1=0; //

基于51单片机超声波测距

一设计要求 (1)设计一个以单片机为核心的超声波测距仪,可以应用于汽车倒车、工业现场的位置监控; (2)测量范围在0.50~4.00m,测量精度1cm; (3)测量时与被测物无直接接触,能够清晰稳定地显示测量结果。 二超声波测距系统电路总体设计方案 本系统硬件部分由AT89S52控制器、超声波发射电路及接收电路、温度测量电路、声音报警电路和LCD显示电路组成。汽车行进时LCD显示环境温度,当倒车时,发射和接收电路工作,经过AT89S52数据处理将距离也显示到LCD 上,如果距离小于设定值时,报警电路会鸣叫,提醒司机注意车距。超声波测距器的系统框图如下图所示: 图5 系统设计总框图 由单片机AT89S52编程产生10us以上的高电平,由指定引脚输出,就可以在指定接收口等待高电平输出。一旦有高电平输出,即在模块中经过放大电路,驱动超声波发射探头发射超声波。发射出去的超声波经障碍物反射回来后,由超声波接收头接收到信号,通过接收电路的处理,指定接收口即变为低电平,读取单片机中定时器的值。单片机利用声波的传播速度和发射脉冲到接收反射脉冲的

时间间隔计算出障碍物的距离,并由单片机控制显示出来。 由时序图可以看出,超声波测距模块的发射端在T0时刻发射方波,同时启动定时器开始计时,当收到回波后,产生一负跳变到单片机中断口,单片机响应中断程序,定时器停止计数。计算时间差,即可得到超声波在媒介中传播的时间t,由此便可计算出距离。 图6 时序图 三超声波发射和接收电路的设计 分立元件构成的发射和接收电路容易受到外界的干扰,体积和功耗也比较大。而集成电路构成的发射和接收电路具有调试简单,可靠性好,抗干扰能力强,体积小,功耗低的优点,所以优先采用集成电路来设计收发电路。 3.1 超声波发射电路 超声波发射电路包括超声波产生电路和超声波发射控制电路两部分,可采用软件发生法和硬件方法产生超声波。在超声波的发射电路的设计中,我们采用电路结构简单的集成电路构成发射电路:

带温度补偿的超声波测距程序

/**程序:基于HC-SR04得超声波测距系统 *单片机型号:STC90C51612MHz *说明:开始连续进行7次超声波测距,每次测距间隔80ms, *完成后对7次结果排序并将最大得2个数值与最小得2个数值去除,对剩余得 *3个数值取平均值。完成后指示灯灭,输出结果到LCD1602上。测量超出范围则发出报警声、 *使用两个IO端口控制HC-SR04触发信号输入与回响信号输出, *以及一个T0定时器用于时间计数。 * 使用DS18B20测量环境温度,声速公式:V=334。1m/s+Temperature*0、61, *单片机晶振为12Mhz(11、953M),计数时为T=1us *计算公式:S=(334。1m/s+Temperature*0。61)*N*T/2,N为计数值=TH0*256+TL0*/ /*包含头文件*/ #include 〈reg51。h> #include 〈intrins。h> #define Delay4us(){_nop_();_nop_();_nop_();_nop_();} /*宏定义*/ #define uchar unsignedchar?//无符号8位 #define uint?unsigned int//无符号16位 #define ulongunsigned long ?//无符号32位 /*全局变量定义*/ sbit BEEP=P1^5;??//报警测量超出范围 sbit Trig=P3^4; //HC-SR04触发信号输入 sbitEcho=P3^2;?//HC—SR04回响信号输出 float xdataDistanceValue=0。0;?//测量得距离值 float xdata SPEEDSOUND; ??//声速 float xdataXTALTIME; ?//单片机计数周期 uchar xdata stringBuf[6];??//数值转字符串缓冲 //LCD1602提示信息 uchar codePrompts[][16]= { ?{"Measure Distance"}, //测量距离 {"-Out of Range -"}, //超出测量范围 ?{"MAX range400cm "}, //测距最大值400cm {”MIN range 2cm"},?//测距最小值2cm {”"},?//清屏 }; uchar xdata DistanceText[]="Range: ";//测量结果字符串 uchar xdata TemperatureText[]="Temperature:";//测量温度值 /*外部函数声明*/ extern voidLCD_Initialize(); //LCD初始化 extern void LCD_Display_String(uchar*, uchar); externvoid ReadTemperatureFromDS18B20(); extern int xdataCurTempInteger; void DelayMS(uint ms);?//毫秒延时函数 voidDelay20us(); //20微秒延时函数 voidHCSR04_Initialize();//HCSR04初始化 float MeasuringDistance();?//测量距离

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

综合性课程设计报告基于proteus仿真软件的超声波测距报警控制器设计 院系:计算机与通信工程学院 专业:电子信息工程 学号: 姓名: 指导教师: 设计时间:2012/6/27 综合课程设计任务书

专业:电子信息工程班级:4091603: 设计题目:基于proteus仿真软件的超声波测距报警控制器设计 一、设计实验条件 keil C和proteus仿真软件 二、设计任务 1)总体功能设计 2)硬件电路设计 3)软件设计 4)工作总结 三、设计说明书的容 1.设计题目与设计任务(设计任务书) 2.前言(绪论)(设计的目的、意义等) 3.主体设计部分(各部分设计容、总结分析、结论等) 4.结束语 5.参考文献 (答辩时间18周星期日晚7:30,地点:综合楼1313室) 四、设计时间与设计时间安排 1、设计时间:2周 2、设计时间安排: 熟悉实验设备、实验、收集资料:2 天 设计计算、绘制技术图纸:5 天 编写课程设计说明书:2 天 答辩:1 天 目录

一、设计题目 (2) 二、设计任务及要求 (3) 三、设计容 (3) 1.绪论 (3) 2.总体方案 (4) 2.1 总体设计方案 (4) 2.2超声波测距框图 (4) 3.系统硬件设计 (5) 3.1 硬件设计方案 (5) 3.2 各主要模块的硬件设计 (6) 4.系统软件设计 (10) 4.1 程序设计 (10) 4.2 程序流程图 (10) 四、结束语 (13) 五、参考文献 (13) 附录A 系统仿真图 (14) 附录B程序代码 (15) 一、设计题目 基于proteus仿真软件的超声波测距报警控制器设计

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

基于单片机的超声波测距系统的研究与设计 发表时间:2010-05-26T14:50:36.437Z 来源:《赤子》2010年第2期供稿作者:贾岩孙彩英 [导读] 随着汽车的日益普及,停车场越来越拥堵,车辆常常需要在停车场穿行,掉头或倒车 贾岩孙彩英(哈尔滨学院,黑龙江哈尔滨 150000) 摘要:简析超声波测踞原理,探讨基于单片机的超声波测距系统的研究与设计。 关键词:单片机;超声波;测距 随着汽车的日益普及,停车场越来越拥堵,车辆常常需要在停车场穿行,掉头或倒车。由于这些低速行驶的车辆与其他车辆非常的接近,司机的视野也颇受限制,碰撞与拖挂的事故经常发生,在夜间时则更加显著。为了确保汽车的安全,现介绍一种超声波测距离的报警装置,可有效的避免此类事故的发生。 1 超声波测距原理 超声波传感器分机械方式和电气方式两类,它实际上是一种换能器,在发射端它把电能或机械能转换成声能,接收端则反之。本次设计超声波传感器采用电气方式中的压电式超声波换能器,它是利用压电晶体的谐振来工作的。它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,就成为超声波接收器。在超声波电路中,发射端输出一系列脉冲方波,脉冲宽度越大,输出的个数越多,能量越大,所能测的距离也越远。超声波发射换能器与接收换能器其结构上稍有不同,使用时应分清器件上的标志。 超声波测距的方法有多种:如往返时间检测法、相位检测法、声波幅值检测法。本设计采用往返时间检测法测距。其原理是超声波传感器发射一定频率的超声波,借助空气媒质传播,到达测量目标或障碍物后反射回来,经反射后由超声波接收器接收脉冲,其所经历的时间即往返时间,往返时间与超声波传播的路程的远近有关。测试传输时间可以得出距离。 假定s为被测物体到测距仪之间的距离,测得的时间为t/s,超声波传播速度为v/m·s-1表示,则有关系式(1) s=vt/2(1) 在精度要求较高的情况下,需要考虑温度对超声波传播速度的影响,按式(2)对超声波传播速度加以修正,以减小误差。 v=331.4+0.607T(2) 式中,T为实际温度单位为℃,v为超声波在介质中的传播速度单位为m/s。 2 系统结构 本系统由超声波发射、回波信号接收、温度测量、显示和报警、电源等硬件电路部分以及相应的软件部分构成。 3 超声波发射电路 在本系统中采用的超声传感器是一种开发型的,固有频率为40Khz。超声波发射电路如。 该电路采用由双非门组成的三点RC振荡电路,频率为40Khz,与非门A是超声波发射控制门,振荡器的振荡信号经4049放大后可直接推动超声波发射探头。二极管D1,D2起限制电压的作用,电容C1用于隔离直流。 4 超声波接收电路 超声波接收电路由以MC3403为核心的三级滤波放大电路和二极管的倍压稳流电路等组成。处理好的回波信号被送到ARM的A/D转换模块进行A/D采样,从而触发得到返回的时间。德州仪器公司的MC3403的具体引脚配置。 5 声光报警电路 声光报警电路AP8821来完成。AP8821是API型21秒一次性编程语音芯片。它具有高质量的录音功能,采用ADPCM制,声音信息存储在512K的EPROM中,6K取样频率能存储21秒的声音数据。AP8821避免采用复杂的电路,但是能录制出不同的声音。它的声音可以根据需要分14段录制,分段组合可达到长时间录音,效果并不是简单的音符曲调。而是极其逼真的话语或模拟声音。AP8821有两个PWM引脚,VOUT1与VOUT2直接驱动喇叭或蜂鸣器,电流输出引脚VOUT。通过一个NPN晶体管来驱动喇叭或蜂鸣器,不需要复杂的滤波和放大电路。具有自动平滑功能,在放音结束时消除噪音。 6 LCD显示部分 本设计显示部分采用字符型TC1602液晶显示所测距离值。TC1602显示的容量为2行16个字。液晶显示屏有微功耗、体积小、显示内容丰富、超薄轻巧、使用方便等诸多优点,与数码管相比,显得更专业、美观。 7 超声波汽车倒车防撞系统的软件设计 超声波传感器安装在汽车的尾部,其接收和发射传感器距离较近,之间容易有较强的干扰信号。为防止误测现象,在软件上采用延迟接收技术,一次提高系统的抗干扰能力。 系统软件设计采用模块化设计,主要包括主程序设计、T1中断服务子程序、INT0外部中断服务子程序、测温子程序、距离计算子程序、显示子程序、延时子程序和报警子程序设计等。 系统软件编制时应考虑相关硬件的连线,同时还要进行存储空间、寄存器以及定时器和外部中断引脚的分配和使用。定时器T1,T0均工作在工作方式1,为16位计数,T1定时器被用来开启一次测距过程以它的溢出为标志开始一个发射测量循环,T0定时器是用来计算脉冲往返时间,它们的初值均设为0。 系统初始化后就启动定时器T1从0开始计数,此时主程序进入等待,当到达65 ms时T1溢出进入T1中断服务子程序;在T1中断服务子程序中将启动一次新的超声波发射,同时开启定时器T0计时,为了避免直射波的绕射,需要延迟1 ms后再开INT0中断允许;INT0中断允许打开后,将提出中断请求进入INT0中断服务子程序,在INT0中断服务子程序中将停止定时器T0计时,读取定时器T0时间值到相应的存储区,同时设置接收成功标志;主程序一旦检测到接收成功标志,将调用测温子程序,采集超声波测距时的环境温度,并换算出准确的声速,存储到RAM存储单元中;单片机再调用距离计算子程序进行计算,计算出传感器到目标物体之间的距离;此后主程序调用显示子程序进行显示;若超过设定的最小报警距离还将启动扬声器报警;当一次发射、接收、显示的过程完成后,系统将延迟100ms重新让T1置初值,再次启动T1以溢出,进入下一次测距。如果由于障碍物过远,超出量程,以致在T0溢出时尚未接收到回波,则显示“ERROR”重新回到

51单片机超声波测距程序

//超声波测距,测距范围2cm-400cm; #include #include #define uint unsigned int #define uchar unsigned char sbit trig=P1^0; sbit echo=P3^2; sbit test=P1^1; //测试灯sbit dula=P2^6; sbit wela=P2^7; sbit BEEP=P2^3; uint timeh,timel,distance; uint ge,shi,bai,xiaoshu,flag,time; /*共阴极数码管不带小数点代码表*/

uchar code list[]={ 0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c , 0x39 , 0x5e , 0x79 , 0x71 }; /*共阴极数码管带小数点代码表*/ uchar code listtwo[] = { 0xbf,0x86,0xdb,0xcf,0xe6, 0xed,0xfd,0x87,0xff,0xef}; /*长延时函数*/ void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=100;y>0;y--); }

/*短延时函数*/ void delay20us() { uchar a; for(a=0;a<100;a++); } /*报警函数*/ void beer() { // BEEP=0; delay(10); } /*定时器初始化*/ void initime0() { TMOD=0x01; TH0=0;

stm32超声波测距程序

stm32超声波测距程序 单片机用的是STM32F103VC系列,超声波是淘宝买的一个模块,只有5个引脚,用起来很方便。 用的时候只需要其中4个脚,VCC,GND,TRIG,ECHO。 TRIG接PA8,OUT_PP模式;ECHO接PA9,IN_FLOATING模式。 #include "stm32f10x_heads.h" #include "HelloRobot.h" #include "display.h" void Tim2_Init(void); void TIM2_IRQHandler(void) { if(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_12)==0) GPIO_SetBits(GPIOE,GPIO_Pin_12); else GPIO_ResetBits(GPIOE,GPIO_Pin_12); TIM_ClearFlag(TIM2, TIM_FLAG_Update); } int main(void) { u16 count; float length; BSP_Init(); Tim2_Init();//定时器初始化函数 LCM_Init(); delay_nms(5);

GPIO_ResetBits(GPIOA,GPIO_Pin_8); Display_List_Char(1,0,"distance:"); //PA8:Trig PA0:Echo while (1) { GPIO_SetBits(GPIOA,GPIO_Pin_8); delay_nus(20);//拉高超过10us,发射超声波 GPIO_ResetBits(GPIOA,GPIO_Pin_8); TIM2->CNT=0;//计数器清0 while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_9)==0);//等待ECHO脚高电平 TIM_Cmd(TIM2, ENABLE);// TIM2 enable counter [允许tim2计数] while((GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_9)==1)&&(TIM2->CNTARR-10)); TIM_Cmd(TIM2, DISABLE); count=TIM2->CNT;//ECHO脚低电平后读取计数器的值,从而算出往返时间 length=count/58.0; Display_List_Char(1,9," "); Display_List_Float(1,9,length); delay_nms(200); } } void Tim2_Init(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_DeInit(TIM2);//复位TIM2定时器

相关文档
最新文档