基于单片机的超声波测距系统的设计与实现毕业论文(设计)(16页).doc

上传人:1595****071 文档编号:37056074 上传时间:2022-08-29 格式:DOC 页数:16 大小:282KB
返回 下载 相关 举报
基于单片机的超声波测距系统的设计与实现毕业论文(设计)(16页).doc_第1页
第1页 / 共16页
基于单片机的超声波测距系统的设计与实现毕业论文(设计)(16页).doc_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《基于单片机的超声波测距系统的设计与实现毕业论文(设计)(16页).doc》由会员分享,可在线阅读,更多相关《基于单片机的超声波测距系统的设计与实现毕业论文(设计)(16页).doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-基于单片机的超声波测距系统的设计与实现毕业论文(设计)-第 13 页武汉长江工商学院毕业论文(设计)学院: 工学院 专业: 电子信息工程 年级: 08级 题目: 基于单片机的超声波测距系统的设计与实现 学生: 汪帆 学号: 20081384 指导教师: 刘少敏 职称: 2012年5月18日武汉长江工商学院本科毕业论文(设计)原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。 作者签名: 年 月 日目 录摘 要1关键词1Abst

2、ract1Key wards11 绪论21.1 研究背景21.2 研究意义21.3 超声波测距原理21.3.1 超声波测距基本组成21.3.2 超声波测距基本原理21.3.3 温度对超声波测距的影响32 系统设计方案论证32.1 系统概述32.2 方案论证42.2.1 单片机模块方案论证42.2.2 超声波模块方案论证42.2.3 显示模块方案论证42.2.4 电源模块方案论证53 硬件设计53.1 单片机模块53.1.1 单片机模块电路53.1.2 时钟电路53.1.3 复位电路63.2 超声波模块63.2.1 US-100超声波测距方法63.2.2 US-100模块电路73.3 人机交互模

3、块73.3.1 液晶显示器73.3.2 显示器硬件电路73.3.3 按键与开关83.4 电源模块84 软件设计94.1 软件设计概述94.2 软件设计思路和流程图94.3 超声波模块驱动程序114.3.1 发射接收程序114.3.2 防溢出中断程序114.4 测距算法124.5 液晶模块驱动程序134.6 系统暂停中断程序135 系统调试145.1 系统调试概述145.2 硬件调试145.3 软件调试156 总结15参考文献15附录一17附录二18基于单片机的超声波测距系统的设计与实现摘 要:本论文所研究的基于单片机的超声波测距系统可以被广泛的应用在实时近距离测距场合,如倒车雷达、液位测量等。

4、该系统能够对大体积的静止物体,实现3cm到400cm的测距,测距精度为1cm。系统利用超声波模块US-100作为测距传感器,ATMEL89C52单片机作为核心处理器,1602ZFA型液晶屏作为距离数据显示器,此外本系统能够通过一个按键控制测距状态。本文将围绕此超声波测距系统的工作原理、电路设计、软件设计、系统调试、改进与完善等展开论述。经过实验证明,本系统不仅制作成本较低,而且具有良好的稳定性和实用性。关键词:超声波测距;US-100模块;1602ZFA液晶显示器 The system of ultrasonic ranging of using the Single-chip Microco

5、mputerAbstract:This thesis introduces a system of ultrasonic ranging of using the Single-chip Microcomputer, which can be used in closed ranging. This system can achieve measuring a distance which is from 3cm to 400cm, but the object which is measured should be quiescent condition and own an enough

6、large volume. This system uses ultrasonic ranging module US-100 to be a ranging sensor, makes ATMEL89C52 Single-chip Microcomputer into the core processor, and uses 1602ZFA LCD screen to display the distance data. At same time, you can press a button to make this system entering into the pausing sta

7、te. This thesis will analyze the system of ultrasonic ranging, embaying its operating principle, circuit design, software design, system debug, improvement and perfection. Through experiment proving, This system does not only have a low production cost, but also have a better stability and practical

8、 applicability.Key wards: ultrasonic ranging;US-100 module; 1602ZFA LCD;1 绪论1.1 研究背景超声波定义为频率大于20kHz的声波,属于机械波的范畴,是一种人耳不能识别的声信号。它具有良好的方向性,穿透力强的特点,并且在媒质中存在反射、折射、衍射、散射等传播规律。随着现代电子技术和工业技术的发展,超声波在各个领域都有了广泛的应用,如在工业控制方面,利用超声波衍射制造超声波流量计;在医疗方面,利用超声波的折射和反射进行医学超声波检查;在集成电路制造中对大规模集成电路进行检查等。而本论文介绍的超声波测距则是应用超声波的折射规

9、律完成距离测量。近些年来在人们的生活和生产中,超声波测距技术已得到较广泛的应用,通常能完成对大体积静态物体的测距,如房屋墙壁和液面高度等。1.2 研究意义超声波测距的研究意义主要表现在以下四个方面:(1)它是一种非接触式的测距,可以应用在探测领域或者危险作业的领域;(2)超声波具有良好稳定性、方向性的特性,除了温度因素外,受其他环境因素影响非常小,这样的特性使它很适合用来作为距离测量。(3)超声波测距易于实现,它的产生和接受可以方便控制,并且测距数据处理简单。(4)超声波测距的实时性较好,能够迅速的完成距离测量。1.3 超声波测距原理1.3.1 超声波测距基本组成 超声波测距功能的实现必须包含

10、三个基本的组成部分,分别为超声波发生器、超声波反射物体和超声波接收器。超声波发生器是用来产生和制造超声波的装置,超声波反射物体也就是测距中的被测对象,而超声波接收器即是用来识别被测物反射回来的超声波的装置。其三者的关系如图1-1所示。图1-1 超声波测距系统组成 超声波测距中主要应用超声波的反射现象,所以被测物体应该具有较大的声波反射面,体积相对较大。而对于超声波接收装置则是根据发生器产生的超声波频率特性来设计的,超声波的频率不同则相应的接收装置也不同。基本办法是使得装置在没有接收特定频率超声波的时候是低电平,在接收到超声波的时候是高电平,这样就可以完成声波信号到电信号的转变。目前市场上的超声

11、波测距模块基本上都已经包含了相匹配的超声波发生器和超声波接收器,使用起来比较方便。1.3.2 超声波测距基本原理 超声波发发生器器向某一方向对被测物体发射超声波,在启动发生器,发射超声波的同时记录此时的时刻,超声波在空气中传播,途中碰到被测物体就会发生反射现象,被反射的超声波再经空气传播,到达超声波接收器,记录此时的时刻,那么得到发射和接收的时间间隔。利用超声波在空气中的传播速度为已知,此时我们假设发生器TX和接收器RX与被测物体表面均平行,且TX和RX相隔距离为。那么我们可以得到被测距离值公式:其中的为声波的反射角,且,其物理模型如下图1-2所示。图1-2 测距系统数学模型那么当被测距离远大

12、于TX、RX间距时,即L远大于d,那么反射角0,即,那么得到L的近表达式为公式:在常温下空气中超声波的传播速度为340m/s ,通常计算距离。1.3.3 温度对超声波测距的影响由于超声波也是一种声波,其声速V与温度有关,因此对于超声波测距而言,环境温度成为影响测距精度的主要原因之一。不同的温度,导致声速的变化,使得大范围测量的距离误差变大,所以温度是超声波测距必须考虑的问题。下表列出了几种不同温度下的声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。表1-1 超声波在空气传播速度与温度关系温度()-30-20-1001020301

13、00声速(ms)3133193253233383443493862 系统设计方案论证2.1 系统概述本论文的主要任务是完成一个应用超声波传感器,并且以单片机为核心控制器的实时携便式超声波测距系统。本系统设计的测距范围是完3cm到400cm的范围,测距精度达到1cm。被测物体运动状态为静止,物理状态为固态或者液态,且具有较大的声波反射面或者较大的体积,例如墙壁、门宽、液位高度等。基于本系统的功能要求,将本系统划分为以下四个基本模块:(1)单片机模块,实现测距数据处理,为系统的核心部分;(2)超声波模块,主要任务是完成超声波产生和超声波接收,作为该系统的传感器;(3)人机交互模块,该模块包括显示器

14、和按键开关两个部分,其中显示部分主要完成系统状态指示和测距结果的显示,按键开关用来暂停系统和重启系统;(4)电源模块,提供稳定的5V电压,为各个模块提供工作电压。本系统构成如下图2-1所示。在2.2节和第三章的论述中,也将以这四个基本模块为线索展开。图2-1系统硬结构图2.2 方案论证本系统的方案论证将围绕上节划分的四个基本模块展开论述。2.2.1 单片机模块方案论证对于单片机模块,在单片机的选择方面以低价格、低功耗且能完成系统控制性为标准。因为超声波测距系统的数据处理通常较容易,所以一般的8位单片机都可以满足系统要求,如AVR公司的 ATmegea-16系列单片机、Freescale公司的0

15、8系列单片机、ATMEL公司的51系列单片机等。本系统选用了传统的51系列单片机作为核心控制器,即ATMEL公司的AT89C52型号单片机1,这款单片机不仅价格低廉操作简单,并且它的定时器模块,中断模块已足够实现本测距系统的控制,丰富的外部引脚也能好满足本系统的其他模块接入。2.2.2 超声波模块方案论证对于超声波模块的方案有两种基本方案,一种是采用分离式的超声波模块,即超声波发生电路和超声波接受电路为分开的独立电路单元,这里超声波发生电路通常用超声波换能器和电流驱动电路构成,而超声波接受电路则由频率敏感元件和单稳态触发电路构成。另一种是采用集成的超声波模块,典型如US-100,该模块专门用于

16、5米内的超声测距,它包含完整的超声波发生和接受电路,且自带一个温度校准电路,并有电平和串口两种距离测量方式供使用者选择。相比这两种方案,后者的不仅制作价格较低,而且电路稳定性更好,调试和制作都相对简单,故本系统选用了集成超声波模块US-100。2.2.3 显示模块方案论证对于人机交互模块的方案,主要在于显示方案的选择。通常的显示方案可以考虑LED数码管显示或者LCD液晶显示。如果本系统采用LED数码管显示方案,则至少选用3片7段数码管,这样电路相对复杂,且仅仅能够显示距离信息,状态指示非常很局限。如果采用LCD液晶显示方案,则电路相对简化,并且系统的状态信息和测距数据都能很好的给出,但是软件设

17、计部分会相对复杂。考虑到测距系统应该有一个很好的交互指示功能,所以本系统用了16*2字符型1602ZFA液晶显示器作为显示模块。2.2.4 电源模块方案论证对于电源模块的方案,因为本系统的设计任务是一个携便式设备,故采用电池供电。考虑使用时间和系统整体功耗问题,本系统选用电池为9V干电池。这里电源模块可供选择的方案有:串联型稳压电路或者开关型稳压电路。开关型稳压电路的效率较高,且纹波较串联型较小,但是制作成本较高,并且电路结构比较复杂。又因为本系统的其他基本均为数字单元,对电源纹波要求较小,故本系统最终采用了串联型稳压电源方案,采用集成三端稳压芯片LM2940。3 硬件设计3.1 单片机模块单

18、片机模块主要由AT89C52单片机及其外围时钟电路和复位电路等构成,具体电路连接和分析在以下几节中论述。3.1.1 单片机模块电路本节给出单片机模块的整体电路图包括单片机模块的引脚连接、时钟电路和复位电路,如下图3-1所示。其中单片机的P1.2口和P1.3口用来连接US100超声波模块的触发引脚TX和接受引脚RX,P0口和P2口提供给液晶模块的数据传输和控制,且单片机的EA引脚应接高电平,使用单片机的内部ROM作为单片机的程序存储器2。图3-1单片机模块电路图3.1.2 时钟电路单片机的时钟电路是为系统提供基本的时钟信号3,51系列单片机的时钟电路通常分为两种:外部震荡方式电路和内部震荡方式电

19、路。本系统的单片机模块采用本部震荡方式时钟电路,即在其引脚XTAL1和引脚XTAL2外接石英晶体和微调电容,构成振荡器。本系统采用时钟电路的晶振为11.0592MHz,电容为30pF。其连接图如3-2所示。图3-2 时钟电路3.1.3 复位电路当晶体振荡电路工作后,在单片机的RESET输入端出现两个机器周期4以上的高电平,单片机会被初始化复位,复位后各特殊功能寄存器将恢复初始状态。51单片机通常采用上电复位和手动复位的方法,这里同时采用了这两种方式,当接通电源时会产生一次复位,当正在工作时,若需要复位可以按复位键进行复位,即手动复位。该电路电阻为10K,电容为10uF,其电路连接如图3-3所示

20、。图3-3 复位电路3.2 超声波模块本节主要论述US-100超声波测距模块在本系统中的连接方法。3.2.1 US-100超声波测距方法本系统采用US-100的电平触发测距,其在电平触发下的工作时序图3-4所示,根据时序图只需在Trig/TX 管脚输入一个10US 以上的高电平,系统便可发出8 个40KHZ 的超声波脉冲,然后检测回波信号。当检测到回波信号后,模块还要进行温度值的测量,然后根据当前温度对测距结果进行校正,将校正后的结果通过Echo/RX 管脚输出。在此模式下,模块将距离值转化为340m/s 时的时间值的2倍,通过Echo 端输出一高电平,可根据此高电平的持续时间来计算距离值。即

21、距离值为:(高电平时间*340m/s)/2。在这里因为距离值已经经过温校正,此时无需再根据环境温度对超声波声速进行校正,即不管温度多少,声速选择340m/s 即可。图3-4 US-100在电平触发下的工作时序图3.2.2 US-100模块电路在本系统中US-100超声波模块的连接如下图3-5所示,其Trig/TX 管脚连接单片机的P1.3口,由单片机输出一个10us的高电平;Echo/RX 管脚连接单片机的P1.2口,单片机检测P1.2口的电平变化,其具体检测方法在第四章软件设计分析部分给出。图3-5 US-100模块电路图3.3 人机交互模块本系统的人机交互模块分为液晶显示器和按键开关两个部

22、分,下面几节将分别分析这两个部分。3.3.1 液晶显示器本系统采用的液晶显示器型号为1062ZFR,它是一个16*2字符型液晶显示器5,专门用于显示字母、数字、符号等的点阵型液晶显示模块。LCD 1062ZFR的引脚如下:D0D7八个数据端口,VSS负电源端口,VDD正电源端口,VO对比度调节端口,RS状态控制端,RW读写控制端,E使能端,A和K灰度参考端口。3.3.2 显示器硬件电路液晶显示器LCD 1062ZFR在电路中的连接如图3-6所示,将其八个数据端D0-D7分别连接单片机的P0.0-P0.7口;RS连接P2.3口;RW连接P2.4口;E连接P2.5口;A端口给电平接GND;K端口给

23、高电平接VCC;VL端口接一个10K的滑动变阻器,用来调节液晶显示器的对比度;VDD端口接系统电源VCC,而负电源端口VSS接地即可。图3-6 液晶显示模块电路图3.3.3 按键与开关 为了使得本测距系统有更好的操作性、观测性,本系统设计了一个测量暂停按键K1,此按键的具体作用如下:当短按按键K1时,超声波测距系统停止发生超声波,显示器保留前一时刻的测量数据,以测量者方便观察和记录数据;当长按按键K1时,返回正常测距状态,可以重新开始测量距离。其硬件连接如下图3-7所示,即按键K1接在单片机P3.2引脚上。图3-7 按键连接图3.4 电源模块本系统中的电源模功能是为系统的其他模块提供稳定的5V

24、工作电压,其实现方法是采用一个5V的集成稳压芯片LM2940,用9V的干电池作为其输入,则可以从LM2940的输出端得到5V的稳定电压。为了使得电源模块提供的5V直流工作电压文波更少、稳定性更好,在输入输出端口分别并接滤波电容和电解电容,并且在输出端口并接上一个LED系统电源指示灯,以方便指示本系统的电源模块是否正常工作,其电路连接如图3-8所示。图3-8 电源模块电路图4 软件设计4.1 软件设计概述本系统软件全部采用c语言编写,开发环境为Keil C。软件组织6分为两个部分,分别是chaoshengbo.c 和SMC162.c,前者是系统程序主函数和超声波驱动程序所在的c文件,后者是系统采

25、用的字符液晶器1602ZFR的驱动程序。软件组织图如下图3-1所示。关于软件设计思路,算法,各个驱动程序将在后面几节中给出论述,完整程序代码在附录二给出。图4-1 软件组织图4.2 软件设计思路和流程图单片机在上电复位后,首先进行各个模块的初始化、各个变量的初始赋值,进入循环测距和显示部分。在循环部分中,把完成一次测量和一次显示刷新作为系统的一个工作周期。在这个工作周期中,首先完成的是超声波测距,即向超声波模块给出触发信号,然后检测模传回来的测距信号,打开计时器T0,得到相关数据,然后计算出测量距离,最后再刷新液晶模块显示出测量距离。此外系统具有两个中断程序,一个是利用定时器T0中断,防止测量

26、超出距离而导致T0溢出。另一个应用外部中断INT0来实现测量暂停功能,对应外部中断0引脚P3.2的外接按键K1,当按键短按时,进入外部中断0的中断程序,在中断程序中显示前一时刻的测距数据,并再次检测按键K1;当发现K1长按时,则从中断程序中返回之前的工作循环。软件流程图如下图4-2所示。(b)T0中断程序(a)主程序否否否否是是是是P1.3口10us触发电平系统初始化100us延时TH0、TL0清0打开T0定时器,允许中断P1.2=0P1.2=1P1.2=0关闭T0定时器,关闭中断读TH0、TL0,计算距离刷新液晶,显示距离数据开始清空TF0设置测距错误键值=1(c)INT0中断程序返回主程序

27、禁止总中断刷新液晶屏显示最后测量的数据P3.2按下是返回主程序清空IE0 图4-2 软件流程图4.3 超声波模块驱动程序4.3.1 发射接收程序本系统超声波测距传感器采用的是US-100超声波测距模块,并且利用其电平测量模式,其工作原理图在第二章图2.6中给出。其模块的驱动程序是由发射程序和接收程序两部分,另外加上一个防溢出中断程序构成。发射程序是通过给单片机的P1.3口(即与US-100的TX引脚相连接)大约10us的高电平,程序中完成10us的时间并没有采用定时器,而是采用延时程序完成,程序中的函数名为delay_10us()。经过示波器测量,此段延时的时间大约为10.89us。然后给持续

28、一段约100us的低电平,这样便完成了发射程序,之后便可以进行接收程序。接收程序是用单片机检测P1.2口(即与US-100的RX引脚相连接)的电平变化。根据US-100工作原理图可知,首先保证P1.2口的电平为低电平,即此时US-100还没有接收到超声波信号,当P1.2口出现上升沿信号的时刻,打开T0定时器,进行时间间隔记时,此时TH0和TL0初值都为0。再等待P1.2口出现下降沿,此时表示超声波信号接收完毕,关闭定时器T0,读出TH0和TL0的值分别给变量time_high和time_low,即完成此部分程序功能。发射接收程序的代码如下所示。sent=1;delay_10us();sent=

29、0;delay_100us();/发射完毕TH0=0;TL0=0;while(receive=1);while(receive=0);TR0=1;ET0=1;/定时器开始工作while(receive=1&flag_error=0);time_high=TH0;time_low=TL0; /接收完毕4.3.2 防溢出中断程序防溢出中断程序实质是利用了定时器T0的溢出中断7。分析以上的接收程序可知,在P1.2口接收到上升沿信号后,定时器T0开始工作,TH0、TL0从0开始增加,但是止到P1.2口由高电平变到低电平,即出现下降沿时,定时器T0才停止计数。那么如果在P1.2下降沿出现前,定时器T0的

30、TH0和TL0计数发生溢出,即会发生测量错误,属于系统的无效状态。为了避免这个无效状态,本系统设定了此防溢出中断程序,一旦发生溢出情况,则程序进入定时器T0的中断程序 ,设置错误标志位flag_error=1,表示此次测量无效。另外本超声波测距系统的最大测距范围限定在400cm,那么当发生溢出时,定时器TO的计数值为65536。系统中单片机采用11.0592Mhz晶振,对应机器周期约为1.1us,那么65536次计数即表示超声波发射接收时间间隔为59578us,声速取340m/s,则测量距离约为1013cm,以超出本系统设定的测距范围,并且超出传感器的测量范围。所以上述给出了发生溢出一定是系统

31、无效的证明。防溢出中断程序的代码如下所示。 void zd_TIME0() interrupt 1 /T0中断用来计数器溢出,超过测距范围 TF0=0; flag_error=1; /中断溢出标志4.4 测距算法测距的基本算法是采用1.1.2节中的测距公式,由于采用的US-100超声波测距模块具有温度补偿电路,可以自动校准由温度引起的声速变化,所以程序中声速可以取为常量340m/s,那么测距公式可以化为公式:。在3.3.1节中已经提到定时器T0的高8为计数寄存器TH0赋值给time_high,TL0的低八位赋值给time_low,程序中定义一个无符号长整型的变量time_data来装载测距时间

32、间隔T,那么只需将time_high左移4位,再加上time_low,就可以得到time_data的值了。系统要求的测距精度是达到1cm,但是为了进一步提高测距精度,本系统软件在测距计算中计算到了毫米mm位。具体为程序中设定了一个有4个元素的字符型数组display4,这四个元素分别代表display3、 display2、display1 、display0分别代表米位、分米位、厘米位、毫米位,其中这4个位均参与计算,但是最后的毫米位作四舍五入处理,不予显示。这样符合本系统的设计要求,也进一步提高本系统的测距精度。并且在程序此处部分严格检测数据大小,防止测距超出传感器范围或者测距范围太近(L

33、小于3cm),一旦发现错误数据,便设置错误标志位flag_error=1,表示此次测量无效。此段程序的代码如下。 time_data=time_high*256+time_low;/测距时间计算 time_high=0; time_low=0; flag_error=0; distance_data=0; if(time_data=26471)/防止超出测距范围 time_data= (time_data*17)/100;/得到测距距离 distance_data=time_data; if(distance_data=30)/限定测距范围 display0=distance_data%10;

34、 /显示转换display1=(distance_data/10)%10;display2=(distance_data/100)%10;display3=(distance_data/1000)%10;if(display0=5) /四舍五入程序if(display1=9)if(display2=9)display3=display3+1;display2=0;display1=0;elsedisplay2=display2+1;display1=0;else display1=display1+1;display1=display1+0;/转换成字符码display2=display2+0

35、; display3=display3+0;4.5 液晶模块驱动程序在本系统的软件设计中,把液晶模块的驱动程序作为一个独立的C文件组织在程序中,驱动程序8的外部接口包括为几个调用控制函数如:液晶显示器的数据显示前,都要进行清屏操作,其调用函数为LcdWriteCmd(0x01 , 1 );液晶屏上的数据显示分为字符串显示和字符显示,前者通常使用函数void PutStr(char x , char y , char* str),后者通常调用函void PutChar(char x , char y , char value)。这里给出本系统液晶屏的指示状态和数据显示方法。首先当液晶显示器出现上

36、行下行全白时表示系统正在开机启动;当液晶显示器出现上行now,loading和下行waitting.表示正在启动超声波模块;当液晶显示器出现上行the distance is: 和下行xxx cm表示系统处于正常测距状态;当液晶显示器出现上行stop measuring和下行xxx cm表示系统处于暂停测量状态;当液晶显示器出现上行there is error和下行check distance时表示测量距离超出本系统设计的范围。4.6 系统暂停中断程序系统暂停中断程序即是应用外部中断INT09来实现系统测量暂停功能,在外部中断0引脚P3.2口接一个按键K1。当按键短按时,进入外部中断0的中断程

37、序,在中断程序中显示前一时刻的测距数据,并再次检测按键K1;当发现K1长按时,则从中断程序中返回之前的工作循环。其代码如所示。void zd_INT0() interrupt 0 /T0中断用来计数器溢出,超过测距范围EA=0;IE0=0;LcdWriteCmd(0x01 , 1 );/清屏幕PutStr(0,0,stop measuring);/显示PutChar(4,1,display3);PutChar(5,1,display2);PutChar(6,1,display1);PutChar(7,1, );PutChar(8,1,c);PutChar(9,1,m);delay_100ms(

38、);delay_100ms();delay_100ms();delay_100ms();delay_100ms();while(1)if(key_stop=0)/再次按下则返回delay_100ms(); delay_100ms(); delay_100ms();delay_100ms();if(key_stop=0) break;EA=1; 5 系统调试5.1 系统调试概述本章中主要记录和讲述本超声波测距系统在调试过程中错误的改正和功能的改进。本章将分两个部分进行叙述,分别为系统硬件调试和和系统软件调试。两者调试的基本思想和出发点包含四个方面的内容,他们分别是超声波系统的测距正确性、测距精确

39、性、系统稳定性、使用方便性。这里给出本系统的实物图,如下图5-1所示。图5-1 系统实物图 5.2 硬件调试本超声波测距系统的硬件电路中,除了电源模块为模拟电路单元,其他模块如单片机模块、液晶显示器模块等均为数字单元,正因如此系统中大部分的数字单元,使得本系统工作稳定性很高,也使得本系统的硬件调试相对较简单。模拟单元电源模块的调试:经过测量,得到本超声波测距系统正常测距时稳压芯片输入直流电流为50.1mA,系统额定输入电压为9V,那么得到系统功耗为450.9mW。为系统提供9V电压的是南孚9V碱性干电池,该电池在21摄氏度下,恒流放电至4.8V的情况下,电池容量大概为400mAh到600mAh

40、,即可保证本系统持续工作1个小时左右。数字单元的调试:数字单元本身具有很好的稳定性,主要检测各个引脚是否连接正确,各个引脚电平信号是否正确。5.3 软件调试本系统的软件调试工具为Keil C,软件调试的任务是使得本系统反应出正确的和精确的被测距离,以及按键正确控制系统状态切换。在本系统的制作中,出现错误测距时,会从程序距离计算部分,液晶显示部分找问题。比如系统在调试过程中曾经在距离数据显示位本应该显示“0”-“9”的数字,结果错误显示“:”,调试发现为毫米位四舍五入程序出现bug,修正程序后错误显示“:”的现象解决。程序中也进行了显示优化,采用相应程序使得高位0清空处理,使得测量者方便观察数据

41、。本系统中工作状态切换按键K1曾出现按键失效状态,具体表现在:短按K1进入中断程序后,系统暂停工作,但再次按K1,无论是短按还是长按都不会退出中断程序,返回工作状态。最后在程序测试中发现,适当延长按键去抖延时就解决了此问题。6 总结基于前面章节的论述,将在本章中将指出本系统现存的不足,也进一步提出对本系统改进的构想。具体论述从器件选择,硬件电路、软件设计这三个角度展开,具体分析如下。本系统现存的不足之处主要表现在两个方面,即功耗过大和程序执行效率10较低。首先本系统现在工作状态额定功率约为450mw,作为一个利用干电池供电的手持携便设备,如果能够将其功耗降低到100mw以下,这样可以极大的提高

42、干电池供电时间。这里分析本系统功耗过大的原因为是采用的16*2 1602ZFA字符型液晶显示器工作功率较大,为了降低功耗可以尝试屏幕较小,且工作电压电流较小的液晶显示器。其次程序效率低的原因表现在程序中大量引入延时程序,并且测量周期较长。改善方案可以从以下两点着手:(1)将程序的显示部分和测距部分分开,这样可以有效的缩短测距周期。然后采另外用定时中断定时去刷新液晶屏幕数据。(2)可以采用功能模块较多的单片机,比如具有PWM功能、输入捕捉功能等。可以利用PWM功能去完成超声波发射驱动,利用输入捕捉功能去完成时间测量,这样可以极大的提高程序效率,同时提高测距的精度。最后提出对本系统的一点构想,即在

43、超声波发射接收模块的中间加入一支激光管。在系统开启后,激光管可以发出激光束指向被测物体,那么则可用可视光路指示看不见的超声波传播路径,让测量者能够更加清楚的观测本超声波测距仪与被测物体是否在一条直线上,避免一些人为的错误。参考文献1 李群芳,肖看.单片机原理、接口及应用.北京.清华大学出版社.2005年2 沈红卫.基于单片机的智能系统设计与实现.北京.电子工业出版社.2005年3 刘海成.单片机及应用系统设计原理与实践.北京.北京航空航天大学出版社.2009年4 张志良.单片机原理与控制技术.北京.机械工业出版社.2005年5 郭速学,朱承彦,郭楠.图解单片机功能与应用.北京.中国电力出版社.

44、2008年6 楼然苗,李光飞.单片机课程设计指导.北京.北京航空航天大学出版社.2007年7 张义和,陈敌北.说例8051.北京.人民邮电出版社.2006年8 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用.北京.清华大学出版社.2002年9 许泳龙.单片机原理及应用.北京.机械工业出版社.2005年10 吴国经.单片机应用技术.北京.中国电力出版社.2004年11 李全利,迟荣强.单片机原理及接口技术.北京.高等教育出版社.2004年附录一:整体硬件电路图附录二:部分程序代码Chaoshengbo.c文件代码如下:void main(void)LcdInit();delay_100us();PutStr(0,0,now,loading);PutStr(0,1,waitting.);while(1) sent=1; delay_10us(); sent=0; delay_100us(); TH0=0; TL0=0; while(receive=1); while(receive=0); TR0=1;/为高电平 ET0=1; /定时器开始工作 while(receive=1&flag_error=0); time_high=TH0; time_low=TL0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁