基于单片机的超声波测距系统设计学士学位论文.doc

上传人:laozhun 文档编号:4022524 上传时间:2023-04-01 格式:DOC 页数:63 大小:2.67MB
返回 下载 相关 举报
基于单片机的超声波测距系统设计学士学位论文.doc_第1页
第1页 / 共63页
基于单片机的超声波测距系统设计学士学位论文.doc_第2页
第2页 / 共63页
基于单片机的超声波测距系统设计学士学位论文.doc_第3页
第3页 / 共63页
基于单片机的超声波测距系统设计学士学位论文.doc_第4页
第4页 / 共63页
基于单片机的超声波测距系统设计学士学位论文.doc_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《基于单片机的超声波测距系统设计学士学位论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的超声波测距系统设计学士学位论文.doc(63页珍藏版)》请在三一办公上搜索。

1、1 绪 论1.1 课题背景传感器技术是现代信息技术的主要内容之一。信息技术包括计算机技术、通信技术和传感器技术,计算机技术相当于人的大脑,通信相当于人的神经,而传感器就相当于人的感官。比如温度传感器、光电传感器、湿度传感器、超声波传感器、红外传感器、压力传感器等等,其中,超声波传感器在测量方面有着广泛、普遍的应用。利用单片机控制超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且测量精度较高。超声波测距系统主要应用于汽车的倒车雷达、机器人自动避障行走、建筑施工工地以及一些工业现场例如:液位、井深、管道长度等场合。因此研究超声波测距系统的原理有着很大的现实意义。对本课题的研究与设计,还

2、能进一步提高自己的电路设计水平,深入对单片机的理解和应用。1.2 课题研究意义由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。因此可广泛应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品)、防汛、水文、明渠、空间定位、公路限高等行业中。可在不同环境中进行距离准确度在线标定,可直接用于水、酒、糖、饮料等液位控制,可进行差值设定,直接显示各种液位罐的液位、料位高度。因此,超声在空气中测距在特殊环境下有较广泛的应用。

3、利用超声波检测往往比较迅速、方便、计算简单、易于实现实时控制,并且在测量精度方面能达到工业实用的指标要求,因此为了使移动机器人能够自动躲避障碍物行走,就必须装备测距系统,以使其及时获取距障碍物的位置信息(距离和方向)。因此超声波测距在移动机器人的研究上得到了广泛的应用。同时由于超声波测距系统具有以上的这些优点,因此在汽车倒车雷达的研制方面也得到了广泛的应用。1.3 现阶段常见问题的分析及解决方案 (1)超声波传播波速不恒定 超声波在介质中的传播速度随周围环境 (温度、压力等)的变化而变化,其中温度的影响最为明显。常温下,超声波的传播速度为 340m/s,温度每升高 1,声速增加约为0.6 m/

4、s,因此超声波测距中一般采用温度补偿的方法,即在数据处理中对超声波传播速度进行实时温度补偿。 (2)回波信号幅值随传播距离增大呈指数规律衰减 回波信号幅值随传播距离增大呈指数规律衰减,使得接收传感器接收到的回波信号随着测量距离的增大而大幅减小,给回波前沿的准确定位带来困难,造成测量精度降低。在回路上串入自动增益调节环节 (AGV),使得电路放大倍数随着测量距离的增大而相应规律地增加,可有效解决该问题。 (3)盲区 发射超声波时,超声波换能器在驱动脉冲结束后,会由于惯性继续振动,产生余振。余振期间,由于无法区分回波信号与余振信号,因此必须等余振停止或衰减到足够小后,才能允许接收传感器接受信号。这

5、段时间由于无法检测超声波传播距离,从而出现盲区。 为了减小盲区,即尽快让余振衰减到零或足够小,马志敏提出自动根据测量距离远近调控发射功率的方法,即自动根据距离的远近来调整发射拖尾波覆盖信号的宽度,从而消除拖尾波的干扰。 QiangLi,Zhang提出增大余振衰减系数的方法,来加速余振的衰减。郗晓田提出通过减小电容上电压最大值U 的初值来加速余振衰减的方法,也可在一定程度上减小盲区。 (4)超声波旁瓣影响 接收传感器在超声波发射结束后接收到的第一个波一般是串扰直通波。它是超声波信号由近源的波束旁瓣或通过换能器绕射,直接到达接收传感器造成的。因此,安装传感器过程中,两个探头之间距离应大于3cm,从

6、而降低超声波旁瓣对测距系统精度的影响 (5)混响信号干扰 混响信号是由于水中介质及界面等非目标物对发射信号的反向散射波在接收点叠加而产生的。其本身是一种回波,且包含的信号频率与发射信号相近,不能被一般滤波电路或算法消除。特别在近距离探测中,它是主要背景干扰。测距时,可以根据时间变化,控制接收放大电路的增益,以实现对混响信号幅值的抑制。 (6)超声波探测器测量分辨力和探测角度范围的矛盾超声波测距选用大波束角探测器,可以满足探测范围要求,但分辨能力较差,难于准确地提供目标的边界信息。然而如果采用小波束角探测器,可以满足分辨能力的需要,但探测范围很难满足要求。针对这一矛盾,金元郁等提出步进电机驱动单

7、套小波束角传感器做扇形扫描的方法,即步 进电机每转过一个步距角1,测距系统便在当前的角度上测取一个距离信息,结合当前的扫描角度,就得到了一个较为精确,而且兼有距离、方向的位置信息。该方法有效弥补了大波束角探测器分辨能力差,小波束角探测器探测范围不足的缺点。2 超声波测距系统2.1 超声波超声波是听觉阈值之外的振动,其频率范围在1010Hz,其中通常的频率大约在103Hz之间。超声波在超声场(被超声波充满的范围)传播时,如果超声波的波长与超声场相比,超声场很大,超声波就像处在一种无限的介质中,超声波自由地向外扩散;反之,如果超声波的波长与相邻介质的尺寸相近,则超声波受到界面限制不能自由的向外扩散

8、。2.1.1 超声波特性(1)束射特性由于超声波的波长短,超声波射线可以和光线一样,能够反射、折射,也能聚焦,而且遵守几何光学上的所有定律。即超声波射线从一种物质表面反射时,入射角等于反射角,当射线透过一种物质进入另一种密度不同的物质时就会产生折射现象,也就是要改变它的传播方向,两种物质的密度差别愈大,则折射率也愈大。(2)吸收特性声波在各种介质中传播时,随着传播距离的增加,其强度会逐渐减弱,这是因为介质要吸收掉它的部分能量。对于同一介质,声波的频率越高,介质吸收就越强。对于一个频率一定的声波,在气体中传播时吸收尤为历害,在液体中传播时吸收就比较弱,在固体中传播时吸收是最小的。(3)超声波的能

9、量传递特性超声波之所以能在各个工业部门中得到广泛的应用,主要原因还在于比声波具有强大得多的功率。为什么有这么强大的功率呢?因为当声波进入某一介质中时,由于声波的作用使物质中的分子也随之振动,振动的频率和声波频率样,分子振动的频率决定了分子振动的速度。频率愈高速度愈大。物资分子由于振动所获得的能量除了与分子本身的质量有关外,主要是由分子的振动速度的平方决定的,所以如果声波的频率愈高,也就是物质分子愈能得到更高的能量。超声波的频率比普通声波要高出很多,所以它可以使物质分子获得很大的能量;换句话来说,超声波本身就可以供给物质分子足够大的功率。 (4)超声波的声压特性当声波进入某物体时,由于声波振动使

10、物质分子相互之间产生压缩和稀疏的作用,将使物质所受的压力产生变化。由于声波振动引起附加压力现象叫声压作用。2.1.2 超声波传感器超声波传感器主要有电致伸缩和磁致伸缩两类,电致伸缩采用双压电陶瓷晶片制成,具有可逆特性。压电陶瓷片具有如下特性:当在其两端加上大小和方向不断变化的交流电压时,就会产生“压电效应”,使压电陶瓷也产生机械变形,这种机械变形的大小以及方向与外加电压的大小和方向成正。也就是说,若在压电晶片两边加以频率为的交流电电压时,它就会产生同频率的机械振动,这种机械振动推动空气的张弛,当落在音频范围内时便会发出声音。反之,如果由超声波机械振动作用于陶瓷片使其发生微小的形变时,那么压电晶

11、片也会产生与振动频率相同的微弱的交流信号。超声波传感器结构如下: 图 2.1 元件内部结构 图 2.2 超声波外部结构超声波测距的原理:声波是物体机械振动状态(或能量)的传播形式。所谓振动是指物质的质点在其平衡位置附近进行的往返运动。譬如,鼓面经敲击后,它就上下振动,这种振动状态通过空气媒质向四面八方传播,这便是声波。 超声波是指振动频率大于20000Hz以上的,其每秒的振动次数(频率)甚高,超出了人耳听觉的上限(20000Hz),人们将这种听不见的声波叫做超声波。超声和可闻声本质上是一致的,它们的共同点都是一种机械振动,通常以纵波的方式在弹性介质内会传播,是一种能量的传播形式,其不同点是超声

12、频率高,波长短,在一定距离内沿直线传播具有良好的束射性和方向性。到超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为v,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),如图2.3,即: 图 2.3超声波测距原理图这就是所谓的时间差测距法。采用超声波测量大气中的地面距离,是近代电子技术发展才获得正式应用的技术,由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,在较恶劣的环境(如含粉尘)具有一定的适应能力。因此,用途极度广泛。例如:测绘地形图,建造

13、房屋、桥梁、道路、开挖矿山、油井等,利用超声波测量地面距离的方法,是利用光电技术实现的,超声测距仪的优点是:仪器造价比光波测距仪低,省力、操作方便。由于是利用超声波测距,要测量预期的距离,所以产生的超声波要有一定的功率和合理的频率才能达到预定的传播距离,同时这是得到足够的回波功率的必要条件,只有的得到足够的回波频率,接收电路才能检测到回波信号和防止外界干扰信号的干扰。经分析和大量实验表明,频率为40KHz左右的超声波在空气中传播效果最佳,同时为了处理方便,发射的超声波被调制成具有一定间隔的调制脉冲波信号限制该系统的最大可测距离存在四个因素:超声波的幅度、反射物的质地、反射和入射声波之间的夹角以

14、及接收装置的灵敏度。接收装置对声波脉冲的直接接收能力将决定最小可测距离。超声波的波速c与温度有关,图2.4显示了几种不同温度下的波速。图2.4 声速与温度的关系图可以推导得出,温度和波速大概有c=331.5+0.6T这样的规律,波速确定后,只要测得超声波往返的时间t,即可求得距离S。2.2 51单片机简介本课题所设计的超声波测距系统是基于单片机控制的,在介绍电路设计之前,我们先来简单了解一下单片机的工作原理,由于本课题所设计的超声波测距系统是以STC公司的8位单片机STC90C52为核心的,所以,在本章先简单的介绍一下STC90C52的一些特性。2.2.1 单片机基础知识单片微型计算机(Sin

15、gle-Chip Microcomputer)简称单片机。它在一块芯片上集成了中央处理器(Central Processing Unit,CPU),只读存储器(Read Only Memory,ROM),随机存储器(Random Access Memory,ROM),定时/计数以及I/O(Input/Output)接口等部件,这些部件构成了一个完整的微型计算机。目前电子设计领域广泛使用的是8位单片机单片机内部结构如图2.5所示。图2.5单片机内部结构由图2.5可见,中央处理器(CPU)是通过内部总线与ROM、RAM、I/O接口以及定时器/计数器相连的,这个结构并不复杂,但并不好理解。为此,在分

16、析单片机工作原理前,先对图2.5中各部件作一基本介绍是十分必要的。1. 中央处理器(CPU)中央处理器是整个单片机的核心部件。51系列单片机是8位数据宽度的处理器,能处理8位二进制数据或代码。CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算器和控制输入/输出等操作。中央处理器由运算器、定时控制部件和寄存器通过总线连接而成的一个整体。(1) 算术逻辑运算部件算术逻辑运算部件(ALU)包括运算器、累加器A、寄存器B、暂存器TMP、程序状态寄存器PSW、堆栈指针SP、数据指针DPTR等。算术逻辑运算部件可以进行加、减、乘、除四则运算,也可以进行与或非异或等逻辑运算,还可以执行数据传送、移位

17、、判断和程序转移等功能。51系列单片机的ALU提供了丰富的指令系统和极快的指令执行速度,大部分指令执行时间位1s,乘法指令为4s。 (2) 控制器控制器包括时钟发生器、定时控制逻辑、指令寄存器、指令译码器、程序计数器PC、程序地址寄存器、数据指针寄存器DPTR和堆栈指针SP等。控制器是用来统一指挥和控制计算机进行工作的部件。它的功能是从程序存储器中提取指令,送到指令寄存器,在送入指令译码器进行译码,并通过定时和控制电路,在规定时刻发出各种操作所需要的内部控制信息及CPU外部所需要的控制信号,如ALE、RD和WR等,使各部分协调工作,完成指令所规定的各种操作。 (3)通用寄存器寄存器是用来存放信

18、息的单元,其优点是存取速度快、方便,寄存器的数量是衡量一台计算机处理能力的重要标志。51系列单片机中的寄存器分为:通用寄存器(片内RAM地址00H1FH即R0R7)、专用寄存器包括程序计数器(PC)、累加器A、寄存器B、程序状态寄存器(PSW)、指针堆栈(SP)、数据指针(DPTR)2. 存储器存储器是单片机的3大部件之一,主要用来存储信息(即数据与程序)。存储器结构分为独立的两部分:数据存储器(RAM)和程序存储器(ROM) (1)ROM ROM(Read Only Memory,只读存储器)一般为64KB,用于存放应用程序,故又称为程序存储器。由于单片机主要在控制系统中使用,因此一旦该系统

19、研制成功,其硬件和应用程序均已定型。为了提高系统的可靠性,应用程序通常固化在片内ROM中,根据片内ROM的结构,单片机又可分为无ROM型、ROM型和EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器)型三类。近年来,又出现了EEPROM(Electrically Erasable Programmable Read Only Memory,电擦除可编程只读存储器)和Flash型ROM存储器。无ROM型单片机特点是片内不集成ROM存储器,故应用程序必须固化到外接的ROM存储器芯片中,才能构成有完整功能的单片机应用系统。ROM型单片机内

20、部,其程序存储器是采用掩膜工艺制成的,程序一旦固化进去便永远不能修改。EPROM型单片机内部的程序存储器是采用特殊FAMOS管构成的,程序一旦写入,也可以通过特殊手段加以修改。因此,EPROM型单片机是深受研制人员欢迎的。 (2) RAM通常,单片机片内RAM(Random Access Memory,随机存取存储器)容量为64256字节,最多可达48K字节。RAM主要用来存放实时数据或作为通用寄存器、数据堆栈和数据缓冲器之用。3. 内部总线单片机内部总线是CPU连接片内各主要部件的纽带,是各类信息传送的公共通道。内部总线主要由三种不同性质的连线组成,它们是地址线、数据线和控制线/状态线。地址

21、线主要用来传送存储器所需要的地址码或外部设备的设备号,通常由CPU发出并被存储器或I/O接口电路所接收。数据线用来传送CPU写入存储器或经I/O接口送到输出设备的数据,也可以传送从存储器或输入设备经I/O接口读入的数据。因此,数据线通常是双向信号线。控制/状态线有两类:一类是CPU发出的控制命令,如读命令、写命令、中断响应等;另一类是存储器或外设的状态信息,如外设的中断请求、存储器忙和系统复位信号等。4. I/O接口和特殊功能部件I/O接口电路有串行和并行两种。串行I/O用于串行通信,它可以把单片机内部的并行8位数据(8位机)变成串行数据向外传送,也可以串行接收外部送来的数据并把它们变成并行数

22、据送给CPU处理。并行I/O口电路可以使单片机和存储器或外设之间并行地传送8位数据(8位机)。2.2.2 单片机的基本工作原理单片机是通过执行程序来工作的,机器执行不同程序就能完成不同的运算任务。因此,单片机执行程序的过程实际上也体现了单片机的基本工作原理。为此,先从指令程序谈起。1.单片机的指令系统和程序编制前面已经介绍,指令是一种可以供机器执行的控制代码,故它又称为指令码(Instruction Code)。指令码由操作码(Operation Code)和地址码(Address Code)构成:操作码用于指示机器执行何种操作;地址码用于指示参加操作的数在哪里。其格式为:操作码地址码 指令码

23、的二进制形式既不便于记忆,又不便于书写,故人们通常采用助记符形式来表示,表2.1所列。表2.1 指令的三种形式指令的二进制形式指令的十六进制形式指令的汇编形式01110100 data174 data1MOV A,#data1;Adata100100100 data224 data2ADD A,#data2; Adata1+data210000000 111111080 FESJMP $;停机指令的集合或指令的全体称为“指令系统”(Instruction System)。微处理器类型不同,它的指令系统也不一样。所谓程序就是采用指令系统中的指令根据题目要求排列起来的有序指令的集合。程序的编制称为

24、“程序设计”。通常,设计人员采用指令的汇编符(即助记符)形式编程,这种程序设计称为“汇编语言程序设计”。2.单片机执行程序的过程为了弄清单片机的工作原理,现以如下的Y=5+10求和程序来说明单片机的工作过程。7405HMOVA,#05H;A05H240AHADDA,#0AH;A5+1080FEHSJMP$;停机该程序由三条指令组成,每条指令均为双字节指令(即第一字节为操作码,第二字节为地址码)。第一条指令的含义是把05H传送到累加器A中;第二条指令是加法指令,它把累加器A中的5和立即数10相加,结果保留到累加器A中;第三条是停机指令,机器执行后处于动态停机状态。2.3 超声波测距系统总体设计由

25、单片机STC89C52编程产生10US以上的高电平,由P1.0口输出,就可以在接收口P3.2(Echo引脚)等待高电平输出。一旦有高电平出处,即在模块中经过放大电路,驱动超声波发射探头发射超声波。发射出去的超声波经障碍物反射回来后,由超声波接收头接收到信号,通过接收电路的检波放大、积分整形及一系列处理,接收口P3.2口即变为低电平,读取单片机中定时器的值。单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由单片机控制显示出来。如图2.6所示图2.6 超声波测距原理图该测距装置是由超声波模块、单片机、和LED显示电路组成。传感器输入端与发射接收电路组成超声波测距模块

26、,模块的输出输入端与单片机相连接,单片机的输出端与显示电路输入端相连接。其时序图如图2.7所示。图2.7 时序图超声波测距模块的发射端在T0时刻发射方波,同时启动定时器开始计时,当收到回波后,产生一负跳变到单片机中断口,单片机响应中断程序,定时器停止计数。计算时间差,即可得到超声波在媒介中传播的时间t,由此便可计算出距离3 超声波测距系统硬件电路设计该设计的硬件电路由主控部分(单片机)、超声波测距模块(HC-SR04)、显示部分(八段数码管)、电源部分(三端稳压器7805)4个部分组成。各部分之间相互协作,构成一个统一的有机整体,实现功能。各部分的硬件电路设计如下。3.1 复位电路(1)单片机

27、STC90C52作为主控芯片,控制整个电路的运行。单片机外围需要一个复位电路,复位电路的功能是:系统上电时提供复位信号,直至系统电源稳定后,撤消复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。该设计采用含有电阻的复位电路,复位电路可以有效的解决电源毛刺和电源缓慢下降(电池电压不足)等引起的问题,在电源电压瞬间下降时可以使电容迅速放电,一定宽度的电源毛刺也可令系统可靠复位。复位电路的设计图如图3.1示:图3.1复位电路 (2)复位是单片机的初始化操作,使CPU及各专用存储器处于一个确定的初始状态,其中把PC的内容初始化为00

28、00H,使单片机从0000H单元开始执行程序,除了系统的正常开机(上电)复位外,当程序运行出错或操作错误使系统处于死循环状态时,为摆脱困境,可按复位键进行复位,复位电路由片外和片内两部分电路组成。STC89S51的RST引脚为复位引脚,只要在RST引脚上出现两个机器周期以上的高电平,即可实现复位。复位通常有上电复位和按键复位两种方法。本设计采用的是按键复位,当按下按键后,电容被短路,RST引脚就处于高电平,就可以达到复位的目的。3.2 数据显示模块显示电路采用简单实用的4位共阳LED数码管,断码用74LS244驱动,位码用PNP三极管9012驱动。由P0口输出显示数据,P2.0P2.3用来位选

29、。显示电路如3.2图:图3.2显示电路3.3 超声波发射和接收电路设计超声波是一种振动频率超过20 kHz的机械波,它可以沿直线方向传播,而且传播的方向性好,传播的距离也较远,在介质中传播时遇到障碍物在入射到它的反射面上就会产生反射波。由于超声波的以上几个特点,所以超声波被广泛地应用于物体距离的测量、厚度等方面。而且,超声波的测量是一种比较理想的的非接触式的测距方法。当进行距离的测量时,由安装在同一水平线上的超声波发射器和接收器完成超声波的发射与接收,并且同时启动定时器进行计数。首先由超声波发射探头向倒车的方向发射超声波并同时启动定时器计时,超声波在空气中传播的途中一旦遇到障碍物后就会被反射回

30、来,当接收探头收到反射波后就会给负脉冲到单片机使其立刻停止计时。这样,定时器就能够准确的记录下了超声波发射点至障碍物之间往返传播所用的时间t(s)。由于在常温下超声波在空气中的传播速度大约为340 m/s,所以障碍物到发射探头之间的距离为: (3-1)因为单片机内部定时器的计时实际上就是对机器周期T的计数,而本设计中时钟频率fosc取12 MHz,设计数值N,则: (3-2)(3-3)(3-4) 在程序中按式(3-4)计算距离。由于条件限制,本设计采用了价格便宜使用方便的HC-SR04超声波测距模块。3.3.1 超声波发射电路设计超声波发射电路是由超声波探头和超声波放大器组成。超声波探头将电信

31、号转换为机械波发射出去,而单片机所产生的40 kHz的方波脉冲需要进行放大才能将超声波探头驱动将超声波发射出去,所以发射驱动实际上就是一个信号的放大电路,本设计选用74LS04芯片进行信号放大,超声波发射电路如图3.3所示。图3.3超声波发射电路工作时,由单片机产生40 kHz的脉冲从P0.1口向超声波的发射电路部分发出信号,再经74LS04放大电路放大后,驱动超声波探头将超声波发射出去。3.3.2 超声波接收电路设计由于超声波在空气中的传播过程中是有衰减的,如果距离较远,那么超声波接收电路所接收到的超声波信号就会比较微弱,因此需要对接收到的信号进行放大而且放大的倍数也要比较大。超声波接收电路

32、主要是由集成电路CX20106A芯片电路构成的,CX20106A芯片电路可以对超声波信号进行放大、限幅、带通滤波、峰值检波、整形、比较等功能,比较完之后超声波接收电路会输出一个低电平到单片机去请求中断,当即单片机停止计时,并开始去进行数据的处理。CX20106A芯片的前置放大器具有自动增益控制的功能,当测量的距离比较近时,放大器不会过载;而当测量距离比较远时,超声波信号微弱,前置放大器就有较大的放大增益效果。CX20106A芯片的5脚在外接电阻对它的带通滤波器的频率进行调节,而且不用再外接其他的电感,能够很好地避免外加磁场对芯片电路的干扰,而且它的可靠性也是比较高的。CX20106A芯片电路本

33、身就具有很高的抗干扰的能力,而且灵敏度也比较高,所以,能满足本设计的要求。超声波接收电路如图3.4所示。图3.4 超声波接收电路3.3.3 HR-SR04超声波集成模块1、产品特点:HC-SR04 超声波测距模块可提供 2cm-400cm 的非接触式距离感测功能, 测距精度可达高到 3mm;模块包括超声波发射器、接收器与控制电路。 基本工作原理:(1)采用 IO 口 TRIG 触发测距,给至少 10us 的高电平信号; (2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回; (3)有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时

34、间。测试距离=(高电平时间*声速(340M/S)/2;2、实物图:如下图接线,VCC 供5V 电源,GND 为地 线,TRIG 触发 控制 信号输入,ECHO 回响信号输出等四支线。图3.5 实物图3、电气参数:电气参数HC-SR04 超声波模块工作电压DC 5 V工作电流15mA工作频率40Hz最远射程4m最近射程2cm测量角度15 度输入触发信号10uS 的 TTL 脉冲输出回响信号输出 TTL 电平信号,与射程成比例规格尺寸45*20*15mm4、超声波时序图:图3.6 超声波时序图 以上时序图表明你只需要提供一个 10uS 以上脉冲触发信号,该模块内部将发出 8 个 40kHz 周期电

35、平并检测回波。一旦检测到有回波信号则输出回响信号,回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。公式:uS/58=厘米或者 uS/148=英寸;或是:距离=高电平时间*声速(340M/S)/2;建议测量周期为 60ms 以上,以防止发射信号对回响信号的影响。注:(1)、此模块不宜带电连接,若要带电连接,则先让模块的 GND 端先连接,否则会影响 模块的正常工作。(2)、测距时,被测物体的面积不少于 0.5 平方米且平面尽量要求平整,否则影响测量的结果5、实物规格:图3.7实物规格4 系统软件设计软件模块主要有:主程序,距离计算程序,显示程序,及

36、终端程序。本次设计使用C语言编写程序,C语言相比汇编有许多的优势;编译器使用Keil Version2进行程序编译,Keil功能强大使用方便。4.1 主程序本设计主程序的思想如下: (1)距离为四位显示单位为mm; (2)超声波每隔60ms发送一次; (3)按键S为测量启动键; (4) 系统采用STC90C52的内时钟:12MHz; (5) 超声波发送一定时间后才开始启动检测,避免直达信号造成误判。所以系统最小测量约为112mm;程序流程图如图4.1图4.1主程序流程图系统主程序如下:void main( void ) TMOD=0x11; /设T0为方式1,GATE=1;TH0=0;TL0=

37、0; TH1=0xf8; /2MS定时TL1=0x30;ET0=1; /允许T0中断ET1=1; /允许T1中断TR1=1; /开启定时器1EA=1; /开启总中断 while(!RX);/当RX为零时等待 TR0=1; /开启计数 while(RX);/当RX为1计数并等待 TR0=0;/关闭计数 Conut();/计算while(1);4.2 距离计算程序程序流程图,如图4.2图4.2计算距离框图void Conut(void) time=(TH0*256+TL0)-10; TH0=0; TL0=0; S=(time*0.17); /算出来是MM if(S=1000)|flag=1) /超

38、出测量范围显示“-” flag=0; disbuff1=10; /“-” disbuff2=10; /“-” disbuff3=10; /“-” else disbuff1=S%1000/100; disbuff2=S%1000%100/10; disbuff3=S%1000%10 %10; 4.3 显示程序void display()unsigned char i=0;/作为查表的索引号while(1)/不停的循环扫描,不扫描则不显示或显示不正确,即为动态显示SMG_q=0;/选择千位数码管P0=discodedisbuff0;/查找定义好的数码管段值与P0口输出delay();/加入短暂延

39、时P0=0XFF;/清除数码管显示,因是共阳型,所以不是0SMG_q=1;/关闭千位数码管SMG_b=0;/选择百位数码管P0=discodedisbuff1;/查找定义好的数码管段值与P0口输出,delay();/加入短暂延时P0=0XFF;/清除数码管显示,因是共阳型,所以不是0SMG_b=1;/关闭百位数码管SMG_s=0;/选择十位数码管P0=discodedisbuff2;/查找定义好的数码管段值与P0口输出delay();/加入短暂延时P0=0XFF;/清除数码管显示,因是共阳型,所以不是0SMG_s=1;/关闭十位数码管SMG_g=0;/选择个位数码管P0=discodedisb

40、uff3;/查找定义好的数码管段值与P0口输出delay();/加入短暂延时P0=0XFF;/清除数码管显示,因是共阳型,所以不是0SMG_g=1;/关闭个位数码管4.4 中断程序本设计中需注意当距离过远或者没有返回信号时候,定时器T1的溢出必须处理。/*定时器1溢出*/void timer1(void)interrupt 2 using 1TR1=0;/*/ void zd3() interrupt 3 /T1中断用来扫描数码管和计800MS启动模块 TH1=0xf8; TL1=0x30;display(); timer+; if(timer=400) timer=0; TX=1; /800

41、MS 启动一次模块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; 5 调试与下载调试与仿真作为硬件与软件结合的重要部分,产品的制作首先要在相关软件中完成模拟运行,检验设计的可行性,然后再在现实中得到实现。本设计通过利用Protel仿真,将编写的程序用Kei

42、l软件编译。5.1 硬件调试硬件调试主要是排除电路中的明显错误,将所画的电路图制作成PCB板之后将所需元件按电路图连接,检查是否正确后对硬件个部分进行检测与调试,分析各端口是否可靠,尤其是可使用万用表等器件对电路进行检查着重查看电路的开路短路,底线是否可靠。5.2 软件调试系统软件程序在编写好之后,可通过编译软件对程序进行编译,变成可执行的目标文件。软件的调试顺序是子程序中断程序算法模块主程序。所有子程序和中断程序调试完成后,应把主程序与它们连接在一起进行整体调试,检查各模块间的相互影响,是否会出现交叉错误。错误出现时及时调整程序,在调试过程中采用逐次扩大的方法,每次增加一个模块进行测试,这样

43、更利于检查问题的所在,节省时间,提高效率。5.3 系统调试经过软件调试,程序无误后,将生成的.HEX文件下载到单片机中。第一步:将单片机开发板与电脑连接,连接电源给系统供电,关闭电源开关,系统断电。第二步:打开STC_ISP软件,并根据自己情况选择相应端口和波特率以及系统单片机型号(本系统采用STC89C52RC)。第三步:点击open-file找到并打开hex代码文件。第四步:点击download/下载。第五步:给单片机系统上电。第六步:断电后连上测距模块,接通电源测试结果是否符合设计要求。5.4 调试中遇到的问题1.在Keil编译完软件后没有生成.hex文件解决办法:选择Keil中的Pro

44、ject选项,选择“Option for targettarget 1”点击Output图5.1 Keil设置图选中“Creat HEX Fi”点击确定,再次编译就会生成.hex文件。如图5.1,图5.2图5.2 Keil设置图2.将单片机与笔记本电脑连接时STC_ISP软件无法向单片机写入程序,并显示“请给MCU上电”遇到这种情况先检查是否打开了电源开关,若开关打开人不能写入程序,一般是系统不兼容该型号的USB转RS232驱动,建议选择合适的转换接口线设计总结在本次设计中,我们广泛借鉴了各种设计的优点,充分考虑了整个设计中的各个环节。但由于条件和技术所限,对于很多以上所分析的在发射和接收过程中所产生的误差没有得到有效的校正。比如未消除温度、气压造成的误差、硬件电路误差等。在我们为期一个学期的设计中,我们用到了以前学到的很多知识,比如电工、单片机、和C语言等。这使我们意识到,任何一件产品的产生,都不是单一知识所能实现的。而且在电路的设计和程序的编制过程中,出现了很多意想不到的错误,让我们措手不及,有些甚至是一些非常低级的错误,但是这些错误也同样让我们获益非浅,它使我

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号