基于AT89S51的超声波测距系统的_第1页
基于AT89S51的超声波测距系统的_第2页
基于AT89S51的超声波测距系统的_第3页
基于AT89S51的超声波测距系统的_第4页
基于AT89S51的超声波测距系统的_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计学号毕业业论论文文题 目:基于 AT89S51 的超声波测距系统的设计与实现作 者向杰届 别2012学 院物理与电子学院专 业电子科学与技术指导老师梅孝安职 称副教授完成时间2012.05 毕业设计I摘要 超声波是指频率在 20kHz 以上的声波,它属于机械波的范畴。随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中。本系统采用以AT89s51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路。整个电路采用模块化设计,由信号发射和接收、供电、温度测量、显示等模块组成。超声波经放大后发射出去,单片机的计时器开始计时,当超声波

2、被反射原路返回后,再经过放大、滤波、整形等环节,被单片机接收,计时器停止计时。用时间乘以速度就得到了测量距离。本系统设有DSl8b20数字温度传感器,能测量环境的温度,以此来校正超声波的速度,使测量结果更准确。本系统硬件和软件设计科学合理,实际测量误差小于3%。关键词:关键词:AT89S51;超声波测距 ;DS18b20 温度检测毕业设计IIAbstractUltrasonic, a sound wave with more than 20 kHz frequency, belongs to the category of mechanical wave. For the unceasing

3、improvement of science and technology, ultrasonic ranging technology has been widely applied in peoples daily work and life. This system uses a low cost, high precision, miniaturization digital display ultrasonic rangefinder hardware circuit which centralized in single chip AT89S51.The whole circuit

4、 uses modular design and consists of the signal transmission and reception, power supply, temperature measurement, display module and so on. The ultrasonic transmits out after being amplified, and then the microcontroller starts its timers. When ultrasonic reflexly returns by the original road, it i

5、s received by microcomputer after getting through the link of amplification ,filtration and reshaping,so the counter stops working. Using the time times speed gets the measured distance. This system ,with DSl8b20 digital temperature sensor, can measure the temperature of the environment so to adjust

6、 the speed of the ultrasonic and make measuring results more accurate. The systems practical measuring error is less than 3% with rational and scientific hardware and software design.Keywords: AT89S51; Ultrasonic distance measure; DS18b20temperature measurement毕业设计III目录摘要摘要 .I IABSTRACTABSTRACT .III

7、I第一章第一章 绪论绪论 .1 11.1 研究背景及意义 .11.2 超声波测距的原理概述 .11.3 研究内容及论文结构 .2第二章第二章 系统总体设计系统总体设计 .4 42.1 方案设计及论证 .42.1.1控制器的选择.42.1.2超声波传感器选择.42.1.3测温传感器选择.52.1.4显示子系统选择.52.2 系统总体设计 .5第三章第三章 系统硬件设计系统硬件设计 .7 73.1 单片机控制电路设计 .73.2 超声波发射及接收电路设计 .83.2.1 超声波发射电路的设计.83.2.2 超声波接收电路的设计.103.3 温度检测电路设计 .103.4 LED 数码管显示电路设计

8、 .113.5 电源电路设计 .12第四章第四章 系统软件设计系统软件设计 .13134.1 系统的算法设计 .134.2 主程序设计 .134.3 定时器 T1 中断服务子程序设计 .144.4 外部中断 INT0 中断服务子程序的设计 .164.5 DS18B20 测温程序设计 .164.6 显示程序设计 .20第五章第五章 硬件测试及误差分析硬件测试及误差分析 .2121第六章第六章 总结总结 .2323参考文献参考文献 .2424致致 谢谢 .2525附录附录 A A :硬件电路原理图:硬件电路原理图.2626附录附录 B B : PCBPCB 图图 .2626附录附录 C C : 源

9、程序源程序.2727毕业设计1第一章 绪论1.1 研究背景及意义随着科技发展,电子测量技术应用越来越广泛,而超声波测量精确高,成本低,性能稳定则备受青睐。超声波是指频率在20kHz以上的声波,它属于机械波的范畴。超声波也遵循一般机械波在弹性介质中的传播规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质吸收而发生衰减等。正是因为具有这些性质,使得超声波可以用于距离的测量中。随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中。一般的超声波测距仪可用于固定物位或液位的测量,适用于建筑物内部、液位高度的测量等。由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等

10、的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。因此可广泛应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品) 、防汛、水文、明渠、空间定位、公路限高等行业中。可在不同环境中进行距离准确度在线标定,可直接用于水、酒、糖、饮料等液位控制,可进行差值设定,直接显示各种液位罐的液位、料位高度。因此,超声在空气中测距在特殊环境下有较广泛的应用。利用超声波检测往往比较迅速、方便、计算简单、易于实现实时控制,并且在测量精度方面能达到工业实用的指标要求,因此为了使移动机器人能够自动

11、躲避障碍物行走,就必须装备测距系统,以使其及时获取距障碍物的位置信息(距离和方向) 。因此超声波测距在移动机器人的研究上得到了广泛的应用。同时由于超声波测距系统具有以上的这些优点,因此在汽车倒车雷达的研制方面也得到了广泛的应用。实际的工作环境对超声波的影响很大,如空气的温度对超声波的速度影响,及供电电源的稳定也会使测量产生很大的误差。本系统通过采用 DS18b20 对声波的速度进行温度补偿,将温度影响降到最低。而系统的电源是 9V 电先通过三端稳压芯片 7805,然后提供的稳定 5V 电压。测试表明本系统的精度较高,在厘米级别。1.2 超声波测距的原理概述发射器对某一方向发射超声波,在发射 超

12、声波的同时开始计时,超声波在空气中进行传播,途中如果遇到障碍物就立即返回来,超声波 探头收到反射波就立即停止计时。 以室温为例, 超声波在大气中的传播速度为 340m/s,计时器记录的时间为 t,就可以计算出发射 端到距障碍物的距离 (s),即:s=340t/2。毕业设计2由于超声波是一种声波,其声速 V 与温度 T 有关。在使用时,如果传播介质的温度变化不是很大,则可以认为超声波速度在介质的传播过程中是近似不变的。如果对检测精度要求很高,则可以通过温度补偿的方法对测量结果加以校正。先确定声速,然后只需要测得超声波在介质中传播的时间,即可求得距离。这就是超声波测距仪的基本原理。 t超声波发射

13、障碍物 S S H H 超声波接收图 1.1 超声波的测距原理 cosSH (1-1))(HLarctg (1-2)式中:L-两超声波传感器之间中心距离的一半。又知超声波传播的距离公式为: vtS 2 (1-3)式中:v超声波在介质中的传播速度; t超声波从发射出去到接收所经过的时间。将后(1-2)和(1-3)代入(1-1)可得:cos21HLarctgvtH (1-4)其中,超声波速度 v 在一定的温度下为一个常数(例如在温度 T=30 度时,V=349m/s);当要测量距离 H 远远大于 L 时,则上式变为:vtH21 (1-5)所以,只需要测量出超声波传播的时间 t,就可以通过公式计算出

14、距离 H.1.3 研究内容及论文结构本文设计的超声波测距系统通过温度补偿计算出当时声波速度,能较准确的测量出距离。经过单片机综合处理后,能显示距离、温度、声速。它包括了控制单元89S51、毕业设计3超声波测距模块、温度测量模块、显示模块、电源模块等。论文构成主要由以下部分组成:第 1 章 包括研究背景和意义,并介绍本系统对误差做出的措施。第 2 章 系统总体方案设计。首先介绍测距系统的设计要求,介绍测距系统传感器的选择、温度测量系统、显示系统的方案设计,然后提出本系统总的方案设计。第 3 章 系统硬件设计。首先分析超声波传感器的工作原理,然后具体讨论测距模块中的超声波发射电路和超声波接收电路以

15、及测距模式电路的硬件设计,然后介绍温度测量模块的设计,最后介绍了系统显示报警模块电路的设计。第 4 章 系统软件设计。在软件设计中采用模块化设计思想,分别对系统的主程序模块、测距模块、中断检测模块、温度检测模块和显示模块的程序进行了软件设计。第 5 章 硬件测试及性能分析。首先对系统进行硬件测距测试,然后对系统性能误差进行讨论。第 6 章 总结。对全文进行总结,指出不足之处,对超声波测距系统的发展前景进行展望。毕业设计4第二章 系统总体设计2.1方案设计及论证要实现超声波测距,需要多方面的知识相互结合,主要解决的部分有控制芯片的选择、距离的测量、温度的测量、距离的显示等等。从技术手段这方面来看

16、,本设计中最主要的是距离测量,其他方面都是围绕着距离测量所展开来的。距离测量首先要选择好适当的传感器,在选择好了传感器后再经由恰当的核心芯片处理即能达到所需精度,下面就对控制器、传感器、显示方案选择做以下论述。2.1.1控制器的选择本文选用的核心芯片是AT89S51单片机。AT89S51是一款功耗低并且性能高的CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写大约1000次的只读程序存储器Flash,设计上采用了ATMEL公司的高密度、非易失性储存技术,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位CPU和I

17、SP Flash存储单元,AT89S51在众多嵌入式实际应用系统中得到非常广泛的应用。简而言之,AT89S51有操作简单,体积较小,编译和调试安装简易,成本较低廉等特点,此外考虑到我自己对于单片机的掌握程度,我选择AT89S51作为系统控制器。2.1.2超声波传感器选择能够完成超声波发送和超声波接收这种功能的装置被称为超声波传感器,或者称为超声波换能器,或超声波探头等。超声波探头主要组成部分是压电晶片,不仅可以发射超声波,还可以接收超声波。小功率超声探头有许多不同的结构,可分直探头、表面波探头、斜探头、双探头、兰姆波探头等。超声传感器的核心部件是塑料外壳或者金属外壳中的一块压电晶片。晶片的材料

18、有许多种。由于晶片的直径和厚度各不相同,从而使每个探头有不同的性能,我们使用前需要了解清楚不同探头的性能参数。超声波传感器的主要性能指标有:(1)工作频率。工作频率就是压电晶片的共振频率。当探头两端电压的频率和晶片的共振频率相等时,探头发射能量最大,灵敏度最高。(2)工作温度。由于压电材料的居里点一般比较高,同时超声波探头使用时功率较小,所以工作温度比较低,可以长时间的工作而不失效。但是医疗用途的超声探头的工作环境的温度比较高,需要单独的制冷设备。(3)灵敏度。主要取决于制造晶片本身。机电耦合系数大,灵敏度高。本设计选用压电式超声波传感器,工作频率是 40KHz,工作温度-20+70,灵敏度在

19、 5 米以内。探头常用材料是压电晶体和压电陶瓷,利用压电效应来进行工作的。毕业设计5逆压电效应的过程是将高频率的电振动转换成高频率的机械振动,从而产生超声波,可制作发射探头;而通过正压电效应,将振动的机械波转换成电信号,可作为接收探头。2.1.3测温传感器选择超声波测距的关键是已知声速,通过距离公式求出声波所跑路程,从而求出距离。但声波的传播速度受温度影响较大,不同的温度下声速不同,从而造成误差。所以通过测量温度,求出当时的准确声速能有效的减小误差。本文采用的是DSl8b20数字温度计来测量温度。DS18b20 具有独特的一线接口,只需要有一条口线即可通信。多点能力,简化了分布式温度传感的应用

20、。不需要外部元件,可用数据总线直接供电,电压范围为 3.0 V至 5.5 V,无需备用电源。测量温度范围为-55 C 至+125 ,范围内精度为0.5 C。温度传感器通过编程可以设置两种分辨率,9位和12位。温度转换为12位数字格式。温度转换所需时间为750毫秒。应用范围包括热敏感系统、恒温控制,消费电子产品温度计,或工业系统中。2.1.4显示子系统选择 显示器是一个典型的输出设备,而且其应用是极为广泛的。最简单的显示器可以用LED数码管,设计简单,易于安装,成本只要几元。从能够实现显示功能以及个人设计简单方便方面考虑,本设计中采用 LED数码管实现显示功能。LED数码管实际上是由七个发光二级

21、管以8字形结构组成的,加上小数点就是8个。这些段通过字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这个特定的段就会发亮,来形成我们所需的字样。2.2 系统总体设计按照系统所需功能,系统硬件结构可以划分为五大主要模块:控制模块、超声波发射模块、超声波接收模块、温度检测模块和数据显示模块。系统总体结构框图如图2.1所示。障 碍 物超声波发射超声波接收89S51单片机温度测量LED 显示毕业设计6图 2.1 系统总体框架图其中测距系统有超声波发射、接收子系统构成;控制部分以 89S51 单片机为核心,其 P1.0 口控制超声波发射电路产生 40KHz 的超声波,利用外部中断

22、监测超声波接收电路输出的返回信号;其中显示系统采用简单实用的 4 位共阳 8 段 LED 数码管。毕业设计7 第三章 系统硬件设计 超声波测距系统由超声波传感器(俗称探头)、MCU 和 4 位数码管、DS18B20、电源等部分组成。在控制器的控制下由传感器发射超声波信号,当遇到障碍时,产生回波信号,传感器接收到回波信号后经控制器进行数据处理,判断出障碍物的位置,由显示器显示距离。3.1 单片机控制电路设计单片机这一词最初源于“Single-Chip Microcomputer”,简称“SCM”。单片机也可以称为“微控制器”或“嵌入式微控制器”。它不仅仅是完成某一个逻辑功能的芯片,而是将一个微型

23、计算机的系统集成到一个芯片上。这就相当于:一块芯片就成了一台计算机。它体积小、质量轻、价格便宜,为学习、应用和开发提供了便利条件。本设计采用 AT89S51 作为系统控制芯片。它是美国 ATMEL 公司生产的一款功耗低、性能高的 8 位单片机,完美的兼容了标准 8051 的指令系统和引脚。图 3.1 单片机最小系统单片机最小系统是指能让单片机工作的最简单的电路,包括电源电路、振荡电路、毕业设计8复位电路,如图 3.1。单片机正常工作电压为 5V,通过 40 引脚接电源正极,20 引脚接电源负极来实现供电。时钟被称为单片机的心脏,单片机各个功能部件的执行都是以始终的频率为基准的,始终的频率能够直

24、接影响单片机的速度,它的质量也影响着单片机的稳定性。常用的时钟有两种方式:内部时钟和外部时钟。51 单片机的内部有用作构成一个振荡器的高增益反相放大器,它的输入端和输出端分别为芯片的 XTAL1 引脚和 XTAL2 引脚,这两个引脚接晶振和微调电容,这样就能够形成一个稳定的自激振荡器。51 单片机晶振的频率一般为 6MHz、12MHz、24MHz,高速的单片机能达到 40MHz 的始终频率。复位就是对单片机进行初始化操作,只要给 RESET 引脚两个机器周期以上的高电平,就可以完成单片机的初始化复位。复位其实就是将 PC 程序计数器初始化为 0000H,是单片机重新从 0000H 开始执行程序

25、。复位电路分为两种:上电复位和按键复位,本文采用的上电复位。上电自动复位就是利用外部的复位电路中的电容充电来实现。在电路图中,电容的的大小是 10uF,电阻的大小是 10K,电容充电到电源电压的 0.7 倍,需要的时间是 10K*10uF=0.1S。也就是说在单片机启动的 0.1S 内,电容两端的电压是在 03.5V 增加,这个时候 10K 电阻两端的电压为从 51.5V 减少。所以在 0.1S 内,RST 引脚所接收到的电压是 5V1.5V。在 5V 正常工作的 51 单片机中小于 1.5V 的电压信号为低电平信号,而大于 1.5V 的电压信号为高电平信号。所以在开机 0.1S 内,单片机系

26、统自动复位。3.2 超声波发射及接收电路设计测距时通过超声波传感器的发送端和接收端实现超声波的发射和接收,通过单片机的定时器进行计时。首先,在发送端向障碍物发送超声波的同时启动单片机的计时器进行计时,超声波在传播过程中遇到障碍物会被反射回来,当探头接收回波信号后马上启动外部中断,定时器的计时停止。这样,单片机的计时器就记录了超声波传播整个过程的时间。当在室温下进行时,超声波在大气中的传播速度大约为 340m/s,所以发射端距障碍物间的距离为:S=340t/2=170t (3-1)当单片机晶振为 12MHz 时,单片机定时器最小定时间隔 T 为 1s,计数为 N,则有:T12/fosc=1s,t

27、=NT (3-2)S170NT (3-3)即 S=17N/1000=0.017N(cm) (3-4)3.2.1 超声波发射电路的设计发射电路是为了驱动传感器探头内的压电晶片,使之振动并发出超声波,而且要使发射出的超声波有足够的能量,尽量传播较远的距离,能更好的达到测量的目的。当毕业设计9施加在探头上脉冲的频率与探头中心频率一致并且足够大的能量即可完成探头的驱动。发射端所需的一串脉冲可以由单片机提供。本系统采用的是由单片机的 P1.0 端口发出40kHz 的脉冲波,一路脉冲信号经过一级反向器后被送到传感器的一个电极。另一路脉冲信号经两级反向器后被送到传感器的另一个电极。用这种推挽方式将脉冲信号加

28、到超声波传感器两端,可以提高超声波信号的发射强度。输出端通过采用两个反向器的并联,可以提高驱动的能力。图中的上拉电阻有两个作用:一方面能够增强超声波换能器的阻尼效果,缩短换能器自由振荡所需的时间,另一个方面能够增强反向器74HC04 输出高电平的驱动能力,原理图如图 3.2。图 3.2 发射电路原理图 1实际中采用的 74HC04 是内含 6 组相同的反相器,电路图如图 3.3。毕业设计10图 3.3 发射电路原理图 23.2.2 超声波接收电路的设计由于在距离较远的情况下,超声波的回波很弱,因而转换为电信号的幅值也较小,为此要求将信号放大。集成电路 CX20106A 是一款常用于红外线的检波

29、接收专用芯片,其灵敏度高,抗干扰能力强,由于红外遥控常用的频率为 38 kHz 和发射出的超声波频率 40 kHz 很接近,所以可以使用它来制作超声波的检波接收电路。图 3.5 接收电路原理图如图 3.5,1 引脚为检波信号的输入端。2 引脚的 RC 串联电路与地相连,能够影响前置放大电路的频率特性和增益。3 引脚连接检波电容。5 引脚连接电阻与电源相连,用来设置中心频率,阻值越小,中心频率越大。6 引脚连接积分电容与地相连,电容的大小能够影响探测距离。7 引脚为命令输出端,需接上拉电阻。工作时,换能器将所接收到的微弱声波振动信号转化成为电信号,送给 CX20106A 的输入端 1,当 CX2

30、0106A 接收到信号进行放大、滤波、检波等一系列的处理后,7 脚就会输出一个低电平,可用于单片机的中断信号源。当单片机接收到中断信号时,说明检测到了反射回来的超声波。单片机就进入中断处理程序,开始进行距离计算。3.3 温度检测电路设计由于超声波也是一种声波, 其声速V跟温度有关,表1列出了几种不同温度下的声速。毕业设计11在使用时,如果温度的变化不是很大, 则可以近似认为超声波的传播速度是不变的。在室温下声波在大气中的传播速度是334 米/秒,但温度对声波传播速度的影响很大。如果温度升高1 , 声波传播速度就会增加大约0.6米/ 秒。采用温度补偿的方法能使测量的精度提高,声速与温度之间的关系

31、式如下:V = 331.45 + 0.607T (3-5)表一:声速与温度关系表温度()-30-20-100102030100声速(m/s)313319325332338344349386本文采用的是 DSl8b20 数字温度计来测量温度,提供可选择的二进制 12 位温度读数来表示温度信息。经过单线接口与单片机进行数据交互。DSl8B20 的电源甚至可以由数据线本身来提供从而不需要再接外部电源。温度传感器 DSl8B20 的测温范围从-55 摄 氏度到+125 摄氏度,精度为 0.5。可在 l s(典型值)内把温度变换成数字量,因此采用DS18B20 实现温度补偿电路的设计。电路连接如图 3.

32、6:图 3.6 DS18b20 电路图3.4 LED数码管显示电路设计LED 是发光二极管的缩写。LED 数码管里面有 8 只发光二极管,分别记作 a、b、c、d、e、f、g、dp,其中 dp 为小数点,每一只发光二极管都有一根电极引到外部引脚上,而另外一只引脚就连接在一起同样也引到外部引脚上,记作公共端。毕业设计1251 系列单片机的输出方式为强下拉/弱上拉,高电平输出电流很小,所以数码管会很暗。一般阴数码管的驱动要加到段选的那一段,共阳数码管要加到位选的那一端。本文选用的 4 位共阳数码管,使用三极管驱动,显示电路如图 3.7。图 3.7 显示电路图三极管起到电流放大,开关控制的作用(单片

33、机的 I/O 口驱动能力有限)。当三极管工作在饱和状态时,它的作用就是个开关了;I/O=0 时导通。深度饱和时三极管Uce=0V,此时集电极电流达到最大。电阻用来限流,并确定了三极管的静态工作点,即工作在深度饱和状态。3.5电源电路设计本系统设计时考虑到便于携带问题,采用 9V 电池供电。由于单片机的工作压是5V,采用 78L05 三端稳压电源调整器来稳定的输出 5V 电压,电路如图 3.8。毕业设计13图 3.8 电源稳压电路图 第四章 系统软件设计 4.1 系统的算法设计根据超声波测距的原理,即超声波发生器 T 在某一时刻发出超声波脉冲信号,超声波遇到被测物体后反射回来,被超声波接收器 R

34、 接收到。这样只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。距离的计算公式为:S=Vt/2 (4-1)其中的 S 为被测物体与测距器之间的距离,V 为声速,t 为声波来回所用的时间。例如 20时的声速为 344m/s。所以,只要测出超声波往返的时间,即可求得距离。由于超声波也是一种声波,其声速C与温度有关,在使用时,如果温度变化不大,则可认为声速是基本不变的,在本系统的设计中利用DS18b20测得环境的温度值T,再由公式V = 331.45 + 0.607T 计算得到准确的声波速度。4.2 主程序设计 系统初始化后首先启动 DS18b20,检测当时

35、温度值,计算出实时的声速。然后启动定时器 T1,进行 12.5us 的计时,在 T1 中断服务子程序中将会在 P10 产生 40KHz 的矩形波。在等待超声波脉冲串发送后关闭计时器 T1,同时打开计时器 T0 对声波传播的时间进行计时。为了避免声波直接从发射端到接收端,需要延迟 0.1 ms 后再打开 INT0中断允许。INT0 中断允许打开后,若 P3.2(INT0)引脚有低电平信号则代表收到了回波信号,程序将进入 INT0 中断服务子程序,在 INT0 中断服务子程序中计数器 T0 将停止计数,读取计数器的值,单片机再调用距离计算子程序进行计算,计算出传感器到目标物体之间的距离,此后主程序

36、调用显示子程序进行显示。主程序的流程图如图 4.1所示:毕业设计14在系统初使化的过程中,主要是设置定时器,同时还要打开总中断等。当 P1.0 发出脉冲串后,同时打开定时器进行计时。当超声波接收到回波信号后,会产生一个低电平给 INT0,之后进入中断处理程序。在主程序中又会恢复定时器的初值等,依此进行循环。毕业设计15开始系统初始化温度检测计算声速启动 T1,产生 40KHz 矩形脉冲串启动 T0,开始计时,开放外部中断回波接收成功,进入外部中断子程序,得出传播时间计算距离显示距离图 4.1 主程序设计流程图4.3 定时器T1中断服务子程序设计本设计中 40 kHz 方波的产生采用软件方式实现

37、:控制 P1.0 口输出 12.5s 的高电平,再输出 12.5s 的低电平,这样得到一个周期为 40 kHz 的脉冲,再循环发送 5次。超声波发生子程序用定时器 T1 中断程序产生超声波。定时器 T1 中断服务程序流程图如图 4.2 所示:毕业设计16连续发射 5 个 40kHz 的超声波计数器 T0 清零并启动计数器 T0,开中断允许 EA延时 0.1ms 以避免“虚假发射波”开外部中断 INT0返 回定时器 T1 中断服务子程序入口 图 4.2 T1 中断服务子程序流程图主要程序如下:TR1=1; / 启动定时器 1,发送信号 while(cshu10) ; / 等待脉冲串 发送完 TR

38、1=0;/ 定时器用于发送脉冲,发完一次后关闭TR0=1; / 启动定时器 0,脉冲串发完后,开始记时 delay(12);/ 0.1s 延时EX0=1;void CTC1_INT ( ) interrupt 3/12.5us 中断一次,用于发射脉冲VOLCK=VOLCK;cshu+;毕业设计174.4 外部中断INT0中断服务子程序的设计本设计利用外中断 0 检测返回超声波信号,一旦接收到返回超声波信号(即 INT0引脚出现低电平) ,立即进入中断程序。进入中断后就立即关闭计数器 T0 停止计数。外部中断 INT0 中断服务子程序流程图如图 4.3 所示:关中断允许停止计数器 T0 计数,并

39、读取 T0 计数值存储调用距离计算子函数返 回外部中断 INT0 中断服务子程序入口 图 4.3 INT0 中断服务子程序主要程序如下: void serve_INT0( ) interrupt 0 EX0=0; / 关中断TR0=0; / 关闭定时器 0 time=(long)TL0;time+=(long)TH0*256;time=time-120;Timetojuli();TH0=0;TL0=0; 4.5 DS18b20测温程序设计DS18b20 测温程序总体上包括两部分:启动温度转换和读取温度。启动温度转换有三个步骤:复位 18B20、发出 Skip ROM 命令(CCH)、发出 Co

40、nvert T 命令(44H)。读取温度包括五个步骤:复位 DS18B20、发出 Skip ROM 命令(CCH)、发出 Read 命令毕业设计18(BEH)、读两字节的温度温、度格式转换。DS18b20 采用的单总线数据传输模式,复位、写数据、读数据都有不同的时序。从应用手册上能找出相应的时序。 图 4.4 18b20 复位时序单片机 t0 时刻发送一复位脉冲(最短为 480us 的低电平信号),接着在 tl 时刻释放总线并进入接收状态,DS18B20 在检测到总线的上升沿之后,等待 15-60us,接着DS18B20 在 t2 时刻发出存在脉冲(低电平持续 60-240us),如图中虚线所

41、示。 换句话说如果 t2t3 之间信号电平如果为低,则说明 DS18B20 复位成功;否则失败。复位程序如下:void DS18b20_reset(void)bit flag=1;while (flag)while (flag) DQ = 1;delay(1); DQ = 0; delay(50); / 550us DQ = 1; delay(6); / 66us flag = DQ; delay(45); /延时 500usflag = DQ;DQ=1;毕业设计19 图 4.5 18b20 写入时序当单片机将总线 t0 时刻从高拉至低电平时,就产生写时间隙。见上图,从 t0 时刻开始 15u

42、s 之内应把所要写入的位送到总线上。DS18B20 在 t0 后 15-60us 间对总线进行采样,若低电平写入的位则是 0;若高电平,写入的位则是 1。连续两次位写入的间隙需大于 1us。写数据程序如下: void write_byte(uint16 val)uint8 i;for (i=0; i= 1; /右移一位DQ = 1;delay(1); 图 4.6 18b20 读字节时序当单片机将总线 t0 时刻从高电位拉至低电位时,只须将总线保持低电平 4us 之后,在 t1 时刻将总线拉到高电平,产生读的时间间隙,读时间在 t1 时刻后 t2 时刻前有效,t2 距 t0 为 15us,也就是

43、说,t2 时刻前主机必须完成读位 并在 t0 后的 60us120us 内释放总线。毕业设计20读数据程序如下:uint8 read_byte(void)uint16 i, value=0;for (i=0; i= 1;DQ = 0;nops(); /4usDQ = 1;nops(); /4us if (DQ)value|=0 x80;delay(6); /66usDQ=1;return(value);通过是复位、读、写程序的调用,启动温度转换和读取温度只需按步骤调用程序即可读出温度数值。启动转换和读取温度程序如下:void start_temp_sensor(void)DS18b20_res

44、et();write_byte(0 xCC); / 发 Skip ROM 命令write_byte(0 x44); / 发转换命令int16 read_temp(void)uint8 temp_data2; / 读出温度暂放DS18b20_reset(); / 复位write_byte(0 xCC); / 发 Skip ROM 命令write_byte(0 xBE); / 发读命令temp_data0=read_byte(); /温度低 8 位temp_data1=read_byte(); /温度高 8 位temp = temp_data1;temp = 4;return temp;毕业设计2

45、14.6显示程序设计本系统设计时开机就会自动检测温度先显示三次实时温度值再显示测量距离,中途可以通过按键来显示温度和声速,下面以距离显示为例说明显示程序。本系统用动态扫描法实现 LED 数字显示,位选 I/O 口等于 0 时选通相应数码管,而位码则通过对数值的取整和取余运算分别求出个、十、百位的数值。小数点则通过与上 0 x7f 使第二位一直显示显示小数点。距离显示子程序如下:void display(void) / 显示 5 位数据 P0=tablenumber4;S1=0;delay(200);S1=1;P0=tablenumber3 & 0X7F;S2=0;delay(200);

46、S2=1;P0=tablenumber2;S3=0;delay(200);S3=1;P0=tablenumber1;S4=0;delay(200);S4=1;毕业设计22第五章 硬件测试及误差分析超声波测距时需要测的是从开始发射到接收回波信号的声波往返时间差,由于我们需要检测的有效信号为反射的回波信号,故要尽量避免检测到余波信号,余波干扰也是超声波检测中存在最小测量盲区的主要原因。理论上本设计存在的盲区约为 20cm。超声波测距所能测的距离大小与传感器的驱动功率、测量方法有很大关系。本设计理论上测量距离范围为 0.22.5m,误差比较稳定,能够精确到 1cm,基本满足设计要求。图 5.1 超声

47、波测距系统实物图表二:距离测试及误差计算实际距离/cm20304050607090100测量结果/cm19294049606991100误差53.330201.431.110实际距离/cm110120140160180200220240测量结果/cm111120140161182201222243误差0.9000.61.10.50.91.2表二是利用本文的测距仪进行实际测量的结果。由表中数据可见, 在20150cm 范围内误差相对较小。小于20cm 范围内误差较大,这是因为超声波距离测量存在一定范围的盲区,盲区的出现是因为发出信号必须有一个上升时间, 当距离太近时计算机系统已不能处理迅速返回的

48、反射波信号, 所以距离小于0.2米测量误差明显增加。毕业设计23200cm以后的数据误差增大, 这是由于发射功率不够大, 接收到的信号很微弱, 引入了一些干扰因素。但电路引入温度补偿电路后总的实验结果误差在厘米级,基本上可以满足测量要求。系统在设计、计算过程中必定会产生一定的误差,这是允许的,但是我们要尽量减小误差,以下就可能产生误差的原因进行分析。(1) 环境温度引起的误差 这是在不同的气候条件下引起大误差的主要原因。声速 v 随着环境温度变化的近似计算公式: V=335.5+0.607T(m/s) (5-1)根据以上计算公式,再根据本设计中硬件处理的时间计算,在温差30左右时前后的误差大概

49、在18cm,前后相差较大。在本设计中采用了温度补偿的方法,能有效的减小温度带来的误差。(2) 反射物体表面材料的介质引起的误差 反射物体表面光滑的介质比之粗糙的介质测量结果要好,如果反射物体的表面比较粗糙会引起回波信号的减弱,测量结果误差增大。(3) 超声波波束的入射角的影响 障碍物、探头两者之间存在一个几何角度,即反射波入射到探头的角度,当这个角度不是与障碍物垂直时,系统测量到的距离不是垂直距离,这就会造成测量误差。尤其在障碍物的距离较小的时候这个误差就会成为距离测量的主要误差来源。只需摆正好测距仪,这种误差是可以尽量减小的。(4) 直达波的影响 有一部分声波从发射探头直接转到接收探头,这部

50、分信号直接加到回波信号中干扰回波信号的检测。这干扰能够通过软件算法进行处理,消除直达波的干扰。芯片一旦判定收到的超声波信号是声波衍射返回的信号时则自动忽略结果,继续等待在该工作周期内是否为有效反射波,有则尽心处理,没有则进行新的一次测量。毕业设计24第六章 总结本文借助于模数电技术和单片机技术的结合,解决了超声波测距的一些文题。本毕业设计以AT89S51为核心,灵活的运用超声波换能集成电路作为超声波的接收电路,在讨论了超声波测距原理、硬件电路实现和软件设计方法基础上,基本完成了超声波测距的设计要求。而且本系统具有温度补偿系统,具有测量精度高、抗干扰能力强、反应速度快等特点,可适用于各种水文液位

51、测量、障碍物的识别以及车辆自动导航等领域,因此具有广阔的应用前景。不过,本设计尚可以在以下几个方面进行改善,从而使得本设计的测距仪功能更加完美:(1) 由于探头的限制,在高温高压等恶性环境下测量误差大,根据实际情况更换合适的探头。(2) 系统动态性能不高,在被测表面移动速度很小时,可以实现跟踪测量,但是若其移动速度过大则误差随之增大。毕业设计25参考文献1 胡汉才.单片机原理及接口技术M.北京:清华大学出版社,2004.2 房小翠.单片微型计算机与接口技术M.北京:国防工业出版社,2003.3 童诗白.模拟电子技术基础(第 3 版)M.北京:高等教育出版社,2003.4 阎石.数字电子技术基础

52、(第 5 版)M.北京:高等教育出版社,2004.5 康华光.电子技术基本(模拟部分)M.北京:高等教育出版社,2004.6 康华光.电子技术基本(数字部分)M.北京:高等教育出版社,2004.7 李丽娟.C语言程序设计 M北京:中国铁道铁道出版社,2006.8 张毅刚等. MCS-51 单片机应用设计M.哈尔滨:哈工大出版社,2004.9 赵负图.传感器集成电路手册M.北京:化学工业出版社,2003.10 何立民.单片机高级教程M.北京:北京航空航天大学出版社,2000.11 Harvey L ,Coles G S V ,Watson J . The development of an en

53、vironment chamber for the characterization of gas sensorsJ . Sensors and Actuators ,1989 ,16 :393 - 405.12 Nordic VLSI ASA Inc. 2. 4GHz wireless audio st reamern RF24Z1. 2006 - 11.毕业设计26致 谢经过几个月的忙碌和工作,本次毕业设计已经接近尾声。由于我经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一起工作的同学们的支持,想要完成这个设计是难以想象的。本次设计能够顺利完成,首先要感谢所有给我授过

54、课的老师,无论是基础课老师还是专业课老师。尤其要感谢在本次设计中给与我大力支持和帮助的指导老师梅孝安老师,尽管他平日里工作繁忙,但在我做毕业设计的每个阶段,从查阅资料到设计草案的确定和修改、中期检查、后期详细设计、装配草图等整个过程中都给了我悉心的指导。对于我的每个问题,老师总是耐心地解答,使我能够充满热情地投入到毕业设计中去。除了敬佩梅孝安老师的专业水平外,他严谨的治学态度也永远是我学习的榜样,并将积极影响我今后的学习和工作。最后,再次感谢所有帮助过我的同学和老师。 毕业设计27附录A :硬件电路原理图 附录 B : PCB 图毕业设计28附录 C : 源程序#include#include

55、#include /*定义数据类型*/typedef unsigned char uint8;typedef unsigned int uint16;typedef char int8;typedef int int16;/* 端口定义 */sbit DQ = P14; /温度输入口sbit VOLCK=P10; /声波发射sbit key=P20;sbit S1 =P24;/位选sbit S2 =P25;sbit S3 =P26;sbit S4 =P27;sbit K1 =P15; /中断显示灯sbit K2=P16;/*定义系统常数*/int16 temp;/温度返回值float V;/声

56、波速度long int time; / 时间 bit CLflag; / 测量标志 char cshu; / 串数 /* 显示段码位码 */char code table =0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90; /数字0-9的编码char weima2=0;char idata number9; / 显示数据char weima_V9; #define nops(); _nop_(); _nop_(); _nop_(); _nop_(); /定义空指令/* 延时子程序*/void delay( int j) i

57、nt i; for(i=0;ij;) i+; 毕业设计29void delay_ms(int x)int i ,j ;for (i=0;ix;i+)for(j=0;j120;j+);void display(void) / 显示5位数据 P0=tablenumber4;S1=0;delay(200);S1=1;P0=tablenumber3 & 0X7F;S2=0;delay(200);S2=1;P0=tablenumber2;S3=0;delay(200);S3=1;P0=tablenumber1;S4=0;delay(200);S4=1;void Timetojuli(void)

58、/ 将测量的时间转换为距离 long int s;s=time*V/2; /单位为微米number4=s/10000000; / 十米 number3=s/1000000%10; / 米 number2=s/100000%10; / 分米 number1=s/10000%10; / 厘米 number0=s%1000; / 毫米 / 初始化定时器,CTC0、CTC1用于定时 void init_CTC(void )TMOD |= 0 x21; / 设CTC1工作于模式2, 定时器 CTC0 工作在方式1 ET0 = 0; / 不允许CTC0中断 毕业设计30void init_INT( ) / 外部中断初始化为高优先级,并开中断 IP=0 x01; / 置外部中断INT0优先级为高 TCON=0; / 设置外部中断0的中断方式为电平触发 /*18B20*/* * 18B20复位函数*/void DS18b20_reset(void)bit flag=1;while (flag)while (flag) DQ = 1;delay(1); DQ = 0; delay(50); / 550us DQ = 1; delay(6); / 66us flag = DQ; delay(45); /延时500usflag = DQ;DQ=1;/* *

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论