• 工作总结
  • 工作计划
  • 心得体会
  • 述职报告
  • 申请书
  • 演讲稿
  • 讲话稿
  • 领导发言
  • 读后感
  • 观后感
  • 事迹材料
  • 党建材料
  • 策划方案
  • 对照材料
  • 不忘初心
  • 主题教育
  • 脱贫攻坚
  • 调查报告
  • 疫情防控
  • 自查报告
  • 工作汇报
  • 党史学习
  • 当前位置: 达达文档网 > 文档下载 > 工作计划 > 正文

    基于单片机汽车倒车防撞系统设计与制作

    时间:2021-02-27 21:02:15 来源:达达文档网 本文已影响 达达文档网手机站

    题 目: 基于单片机的汽车倒车防撞系统的 设计与制作 毕业设计说明书(论文)中文摘要 随着社会经济的发展和交通运输业的不断兴旺,汽车的数量在不断的增加。交通拥挤状况也日益严重,撞车事件也经常发生,造成了很多不可避免的人声伤亡和经济损失,面对这种情况,设计一种响应快、可靠性高并且比较经济的汽车防撞预警系统显得非常的重要。超声波测距法是一种最常见的距离测量方法。本文介绍的就是利用超声波测距法设计一种倒车防撞报警系统。

    本文的内容是基于超声波测距的倒车防撞系统的设计,主要是利用超声波的特点和优势,将超声波测距系统和51单片机结合于一体,设计出一种基于51单片机的倒车防撞系统。本系统采用软硬结合的方法,具有模块化和多用化的特点。

    关键词 防撞 超声波 测距 单片机 Title Automobile back-draft collision avoidance system based on single chip design and production Abstract With the social and economic development and transportation continues to boom, the automobile quantity climbs in the first mate. Traffic congestion condition also day by day serous, the collision event occurred repeatedly, has caused the inevitable person casualties and the economic loss, in view of this kind of situation, designed one kind to respond quickly, the reliability was high also a more economical automobile guards against hits the early warning system imperative, the ultrasonic wave range finding was the most common one distance range finder method, this article introduces is guards against using the ultrasonic wave range finding design one kind of reversing collision avoidance system. The paper is based on the ultrasonic distance reversing collision avoidance system design, mainly using ultrasound features and advantages, ultrasound ranging system and the integration with the integration AT89S51 monolithic integrated circuit, AT89S51 monolithic integrated circuit based on the design of a reverse collision avoidance warning systems. The system used software and hardware integrated approach of modular and multi-use characteristics. Keywords Impact-proof Ultrasonic ranging Microcontroller 毕业设计说明书(论文)外文摘要 目 次 1 绪论 1 1.1课题设计的背景和意义 1 1.2超声波测距的研究历史与发展趋势 1 2 设计思想及方案论证 3 2.1系统总体的设计思想 3 2.2 方案选择 3 2.1.1 显示模块 3 2.1.2 测距传感器模块 4 2.1.3 报警模块 5 3 系统硬件电路设计 6 3.1 超声波的介绍 6 3.1.1 超声波的特点 6 3.1.2 超声波的应用 6 3.1.3 超声波传感器 6 3.1.4 超声波测距原理 7 3.1.5 超声波发射电路设计 8 3.1.6 超声波接收电路设计 9 3.1.7 HC-SR04超声波测距模块 10 3.2 显示模块设计 12 3.3 报警电路设计 14 3.4 单片机控制电路设计 15 3.4.1 主控芯片STC89C52 15 3.4.2 时钟电路 17 3.4.3 复位电路 17 4 系统软件部分的设计 19 4.1系统的主程序设计 19 4.2 系统的子程序设计 21 4.2.1 中断处理程序 21 4.2.2 蜂鸣器分段报警程序 22 4.3 本章小结 23 5 硬件组装及调试 24 5.1 硬件组装及调试 24 5.2测量结果 24 5.4本章小结 27 结论 28 致谢 29 参考文献 30 附录A 程序清单 31 图1 单片机整体电路原理图 37 图2 超声波测距模块原理图 38 图3 设计实物图 39 1 绪论 1.1课题设计的背景和意义 随着我国经济的飞速发展,交通运输车辆的不断增多,由此产生的交通问题越来越为人们所关注。由于倒车后视镜有死角,司机目测距离有误差,视线模糊等原因,倒车事故发生的频率远大于汽车前进时的事故率。倒车事故不仅会对自己的车和他人财物造成损伤如果伤及儿童更是不堪设想。有鉴于此,汽车产品家族中,专为倒车泊车而设计的“倒车测距仪”应运而生。经过调查,绝大部分非职业汽车司机都希望有一种能发现汽车尾部障碍物的“后视眼”。倒车测距仪的加装可以解决司机的后顾之忧,大大降低倒车事故的发生。

    倒车测距仪是一个由单片机控制的汽车泊车安全辅助装置。该测距仪将单片机的实时控制及数据处理功能,与超声波的测距技术、传感器技术相结合,能够测量并显示车辆后部障碍物里车辆的距离,同时用间歇的“嘟嘟”声发出警报,“嘟嘟”声间隙随障碍物距离的缩小而缩短,司机不但可以直接观察到显示的距离,还可以凭听觉判断车后障碍物离车辆的远近,解除了司机倒车和起动车辆时前后左右探视所引起的困扰,并可以帮助司机扫除视野死角和视线模糊的缺陷,提高倒车的安全性。

    1.2超声波测距的研究历史与发展趋势 众所周知,关于超声波的研究起始于1876年,这是人类首次有效产生的高频声波,这些年来,随着超声波技术的不断深入,再加上其具有高精度,无损,非接触等优点,超声波的应用变得越来越普及,多年来已在一些领域的要应用。超声波测距是一种传统而实用的非接触测量方法,和激光、涡流和无线电测距方法相比,具有不受外界光及电磁场等因素的影响的优点,在比较恶劣的环境中也具有一定的适应能力,且结构简单,成本低,因此在工业控制、建筑测量、机器人定位方面得到了广泛的应用。但由于超声波传播声时难于精确捕捉,温度对声速的影响等原因,使得超声波测距的精度受到了很大的影响,限制了超声测距系统在测量精度要求更高的场合下的应用。

    国内外的学者在提高超声波测距精度方面作了大量的研究,影响超声波测距精度的因素包括所测的超声波传输时间和超声波在介质中的传播速度,其中传输时间的精度影响较大。许多人提出采用降低传输时间的不确定度来提高测量精度,目前,相位探测法和声谱轮廓分析法或者二者的结合是主要的降低传输时间不确定度的方法。厦门大学的童峰提出了一种回波轮廓分析法,该方法在测距中通过两次探测求取回波轮廓包络曲线来求得回波的起点,通过这种方法使测量精度有了很大的提高。意大利的Carullo等人介绍了一种自适应系统,发射特殊的波形来获得好的回波包络,设置一定的回波开启电平,并采用自动增益的控制放大器。也有文献提出通过数字信号处理技术和小波变换理论来提高测量精度。

    2 设计思想及方案论证 2.1系统总体的设计思想 本系统采用超声波测距原理,由发射器、接收器和信号处理装置三部分组成。通过超声波发射装置发出超声波,根据接收器接到超声波时的时间差就可以知道距离。超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。(超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2)。

    系统的总体结构框图如图2.1所示。

    单片机 控制 LED显示 超声波接收 蜂鸣器报警 超声波发送 图2.1系统总体结构框图 2.2 方案选择 2.2.1 显示模块 方案一:LED数码显示管是一种由LED发光二极管组合显示字符的显示器件。它使用了8个LED显示管,其中7个用于显示字符,1个用来显示小数点,故通常称之为八段发光二极管数码显示器。对LED数码显示器的控制可以采用按时间向它提供具有一定驱动能力的位选和段选信号。LED数码显示有动态扫描显示法和静态显示。

    方案二:点阵字符型液晶显示模块具有体积小、功耗低、显示内容丰富等特点,可以显示数字和西文字符。液晶模块内部的字符发生存储器(CGROM)已经存储了阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等不同的点阵字符图形,每一个字符都有一个固定的代码,显示方便且显示质量高、功耗低,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了。

    鉴于本次设计只需显示车后障碍物距离车尾的距离,显示内容比较简单,LED数码管可完全满足设计要求,且价格低廉,因此选择LED数码管显示模块。

    2.2.2 测距传感器模块 目前常见的测距传感器,主要有红外传感器、激光传感器、超声波传感器。按照常规技术的应用有以下三种方案可供选择:
    方案一:红外传感器测距 其原理是传感器的红外发光管发出红外光,光敏接收管接收前方物体的反射光,接收管接收的光强随反射物体的距离变化,据此判断前方是否有障碍物并根据接收信号的强弱判断物体的距离。

    方案二:激光传感器测距 它是利用激光的单色性和相干性好、方向性强等特点,以实现高精度的计量和检测,如测量长度、距离、速度、角度等。激光测距在技术途径上可分为脉冲式激光测距仪和连续波相位式激光测距。脉冲式激光测距原理与雷达测距相似,测距仪向目标发射激光信号,碰到目标就要被反射回来,由于光的传播速度是已知的,所以只要记录下光信号的往返时间,用光速乘以往返时间的二分之一,就是所要测量的距离。

    方案三:超声波测距 超声波就是空气中传播的超过人类听觉频率极限的声波。其原理犹如蝙蝠,从嘴里发出超声波,当超声波遇到小昆虫时,它的耳朵能够接收反射回波,从而判断昆虫的位置并予以捕杀。超声波传感器的工作方式是通过发送器发射出来的超声波被物体反射后传到接收器接受来判断是否检测到物体的。

    根据以上的性能比较,我们能看出激光传感器是比较理想的选择,但是其价格较高,不易为大众所接受。考虑到车辆行驶过程中,测距应当有较强的抗干扰能力和较短的响应时间,最终选择方案三。

    2.2.3 报警模块 报警模块可选择蜂鸣器或者语音模块。蜂鸣器比较简单,只能发出不同频率的蜂鸣声音;
    语音模块可根据需求发出各种不同的语音。本次设计仅需在车后障碍物与车尾距离到达预先设定的警戒距离范围内时发出警报音,蜂鸣器完全可以满足设计要求,故选择蜂鸣器来实现报警功能。

    3 系统硬件电路设计 3.1 超声波的介绍 我们知道,当物体振动时会发出声音。科学家们将每秒钟振动的次数称为声音的频率,它的单位是赫兹。人类耳朵能听到的声波频率为20~20KHz。当声波的振动频率大于20KHz或小于20Hz时,我们便听不见了。因此,我们把频率高于20KHz的声波称为“超声波”。

    3.1.1 超声波的特点 超声波通常以纵波的方式在弹性介质内会传播,是一种能量的传播形式,其特点是超声频率高,波长短,在一定距离内沿直线传播具有良好的方向性。

    超声波具有以下的特点:
    (1) 超声波可在气体、液体、固体、固熔体等介质中有效传播。

    (2) 超声波可传递很强的能量。

    (3) 超声波会产生反射、干涉、叠加和共振现象。

    (4) 超声波在液体介质中传播时,可在界面上产生强烈的冲击和空化现象。

    3.1.2 超声波的应用 超声波广泛地应用在多种技术中。超声波有两个特点,一个是能量大,一个是沿直线传播。

    (1) 工程学方面的应用:水下定位与通讯、地下资源勘查等。

    (2) 生物学方面的应用:剪切大分子、生物工程及处理种子等。

    (3) 诊断学方面的应用:A型、B型、M型、D型、双功及彩超等。

    (4) 治疗学方面的应用:理疗、治癌、外科、体外碎石、牙科等。

    3.1.3 超声波传感器 超声波传感器是利用超声波的特性研制而成的传感器。超声波是一种振动频率高于声波的机械波,由换能晶片在电压的激励下发生振动产生的,它具有频率高、波长短、绕射现象小,特别是方向性好、能够成为射线而定向传播等特点。超声波对液体、固体的穿透本领很大,它可穿透几十米的深度。超声波碰到杂质或分界面会产生显著反射形成反射成回波,碰到活动物体能产生多普勒效应。因此超声波检测广泛应用在工业、国防、生物医学等方面。以超声波作为检测手段,必须产生超声波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声换能器,或者超声探头。

    超声探头的核心是其塑料外套或者金属外套中的一块压电晶片。构成晶片的材料可以有许多种。晶片的大小,如直径和厚度也各不相同,因此每个探头的性能是不同的,我们使用前必须预先了解它的性能。超声波传感器的主要性能指标包括:
    (1) 工作频率 工作频率就是压电晶片的共振频率。当加到它两端的交流电压的频率和晶片的共振频率相等时,输出的能量最大,灵敏度也最高。

    (2) 工作温度 由于压电材料的居里点一般比较高,特别是诊断用超声波探头使用超声波传感器功率较小,所以工作温度比较低,可以长时间地工作而不失效。医疗用的超声探头的温度比较高,需要单独的制冷设备。

    (3)指向性 超声波传感器探测的范围。

    (4) 灵敏度 主要取决于制造晶片本身。机电耦合系数大,灵敏度高;
    反之,灵敏度低。

    3.1.4 超声波测距原理 通过超声波发射装置发出超声波,根据接收器接到超声波时的时间差就可以知道距离了,这与雷达测距原理相似。测量原理图如下图3.1所示。

    T R L 图3.1 超声波测距原理图 测距时由安装在同位置的超声波发射器和超声波接收器完成超声波的发射和接收,由定时器计时。首先有发射器向特定方向发射超声波并同时启动定时器计时,超声波在介质中传播时,一旦遇到障碍物就会被反射回来,当接收器接收到反射波后立即停止计时。这样,定时器就记录下了超声波自发射点至障碍物之间往返传播经历的时间t(s)。由于常温下,超声波在空气中的传播速度约为340m/s,所以发射点距障碍物之间的距离为:
    (3.1)
    公式(3.1)中,L为车尾与障碍物的距离,单位为米,t为计时器记录的时间,单位为秒。

    由于单片机内部定时器的计时,实际上是对机器周期T机的计数,设计中时钟频率fosc取12MHz,设计数值为N,则 或 (3.2)
    程序中按(3.2)式计算车尾与障碍物间的距离。

    3.1.5 超声波发射电路设计 超声波发射电路采用基于MAX232的方波发射电路,利用MAX232的电荷泵输出±8.5V电压驱动超声波传感器。MAX232芯片是美信(MAXIM)公司推出的一款兼容RS232标准的芯片。MAX232主要是用来进行电平转换,该器件包含两个驱动器、两个接收器和一个电压发生器。由单片机产生相位相反的2个40KHz方波信号,并通过单片机P0.0和P0.1口输出。信号通过MAX232放大后叠加在超声波传感器两端,信号电压幅值大约17V,频率为40KHz,超声波传感器在这个电压的作用下,产生40KHz的超声波。具体电路如图3.2所示。

    图3.2超声波发射电路 3.1.6 超声波接收电路设计 超声波接收包括接收探头,信号放大器等部分,超声波接收探头必须与发射探头型号相同,否则可能导致接收效果不理想,甚至不能接收回波信号。由于超声波接收探头接收的回波信号非常弱,所以必须用放大器进行放大,没有接收到回波信号时,超声波接收电路的输出端为低电平,当接收到回波信号后,输出端由低电平变为高电平,且高电平持续的时间就是超声波从发射到返回的时间。具体电路如图3.3所示。

    图3.3超声波接收电路 3.1.7 HC-SR04超声波测距模块 HC-SR04超声波测距模块是将超声波发射探头、超声波接收探头、MAX232、TL074C及STC11等器件与超声波收发电路集成到的一起的一个超声波测距模块。可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm。模块包括超声波发射器、接收器与控制电路。HC-SR04超声波测距模块的电气参数如表3-1所示。

    HC-SR04基本工作原理:
    (1)采用IO口TRIG触发测距,给最少10μs的高电平信号 (2)模块自动发送8个40KHz的方波,自动检测是否有信号返回 (3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。

    表3.1 HC-SR04超声波测距模块的电气参数 电气参数 HC-SR04超声波测距模块 工作电压 DC 5 V 工作电流 15mA 工作频率 40kHz 最远射程 4m 最近射程 2cm 测量角度 15度 输入触发信号 10μs的TTL脉冲 输出回响信号 输出TTL 电平信号,与射程成比例 规格尺寸 45×20×15mm 模块的接线方式如图3.4所示,VCC供5V电源,GND为地线,TRIG为触发控制信号输入,ECHO为回响信号输出口端。

    图3.4 HC-SR04接线图 一个控制口发出一个10μs以上的高电平,就可以在接收口等待高电平输出。一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时间就为此次测距的时间,通过运算即可得出距离。这样不断的循环周期测量,就可以在不停地移动的过程中测量距离值了。但是,为防止发射信号对回收信号的影响,HC-SR04超声波测距模块的测量周期最好定在60ms以上,所以本设计将测量周期定在80ms。

    HC-SR04超声波测距模块的时序图如图3.5所示。

    10μs的TTL 触发信号 循环发出8个40KHz的脉冲 模块内部发出信号 输出回响信号 回响电平输出与检测距离成正比 图3.5 HC-SR04超声波测距模块的时序图 图3.5表明只需要提供一个10μs以上脉冲触发信号,该模块内部将发出8个40KHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。

    3.2 显示模块设计 在单片机系统中,最常用的显示器有:发光二极管,简称LED(Light Emitting Diode);
    液晶显示器,简称LCD;
    荧光管显示器,简称VFD(Vacuum Fluorscents Display)。其中LED是一种极低功耗显示器,广泛应用于测量产品中。由于本课题不需要复杂的显示信息,所以选择的是LED显示模块,可以节约硬件资源,降低成本。

    LED数码管里面有8只发光二极管,分别记作a、b、c、d、e、f、g、dp,其中dp为小数点,每一只发光二极管都有一根电极引到外部引脚上,而另外一只引脚就连接在一起同样也引到外部引脚上,记作公共端(COM),如图3.6所示,而图3.7为实物图,其中引脚的排列因不同的厂商而有所不同。

    图3.6 LED数码管引脚图 图3.7 LED数码管实物图 市面上常用的LED数码管有两种即共阳极数码管与共阴极数码管。共阳极是数码管里面的发光二极的阳极接在一起作为公共引脚即公共阳极,在使用时此公共引脚接到电源正极。相反,共阴极就是数码管里面的发光二极管的阴极接在一起作为公共引脚即公共阴极,在使用时此引脚接到电源负极。

    单片机对数码管的显示可以分为静态显示和动态显示,静态显示能够稳定地显示数值,但是搭建电路时比较烦索。而动态显示是数码管轮流显示,只要轮流显示的速度足够快,每秒约50次以上,由于人眼的“视觉暂留”特性,看起来就像是连续显示。这种显示方式在数码管应用系统中应用的最为广泛,这也是本次设计中所应用的显示方法。

    显示电路如下图3.8所示。

    图3.8 LED数码管显示电路 3.3 报警电路设计 本设计采用峰鸣音报警电路。峰鸣音报警接口电路的设计只需购买市售的压电式蜂鸣器,然后通过单片机的1根口线经驱动器驱动蜂鸣音发声。压电式蜂鸣器约需10mA的驱动电流,可以使用TTL系列集成电路7406或7407低电平驱动,也可以用一个晶体三极管驱动。本设计中,P3.4输出低电平时,三极管导通,蜂鸣器两端获得约+5V电压而发出蜂鸣;
    当P3.4输出高电平时,三极管截止,蜂鸣器停止发声。报警电路如图3.9所示。

    图3.9 报警电路 3.4 单片机控制电路设计 3.4.1 主控芯片STC89C52 STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。

    主要特性如下:
    1. 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051;

    2. 工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机);

    3. 工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz;

    4. 用户应用程序空间为8K字节;

    5. 片上集成512字节RAM;

    6. 通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻;

    7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片;

    8. 具有EEPROM功能;

    9. 具有看门狗功能;

    10. 共3个16位定时器/计数器。即定时器T0、T1、T2;

    11. 外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒;

    12. 通用异步串行口(UART),还可用定时器软件实现多个UART;

    13. 工作温度范围:-40~+85℃(工业级)/0~75℃(商业级);

    14. PDIP封装。

    本次使用的是STC89C52RC单片机,具体引脚图如图3.10。

    图3.10 STC89C52RC单片机引脚图 STC89C52RC单片机通过P0.1引脚控制发射电路发射超声波,回波信号传送给P0.2,由P1.0~P1.7控制4个共阳LED数码管显示电路,报警电路由P3.4引脚控制。

    3.4.2 时钟电路 单片机各功能部件的运行都是以时钟控制信号为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟设计有两种方式:一种是内部时钟方式,另一种方式为外部时钟方式。本设计采用内部时钟方式。

    单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器,如图3.11是内部时钟方式的振荡器电路。电路中的电容典型值通常选择为30pF左右,电容的大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。晶体的振荡频率的范围通常是在1.2~12MHz之间选择。

    图3.11 时钟电路 3.4.3 复位电路 复位是单片机的初始化操作,只需给复位引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可以使单片机复位。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态,为摆脱死锁状态,也需要按复位键使RST引脚为高电平使单片机重新启动。单片机的复位功能是由外部的复位电路来实现的,复位电路通常采用上电自动复位和按键复位两种方式,此设计中采用按键复位方式,复位电路如图3.12所示。

    图3.12 复位电路 4 系统软件部分的设计 本设计采用的是模块化的思路来进行设计和编写程序,程序主要由系统主程序和中断程序构成。主程序完成单片机的初始化,超声波的发射和接收、计算超声波发射点与障碍物之间的距离、数码管显示和蜂鸣器报警等。系统程序设计的主要的功能是发射超声波、接受超声波、计算测量距离、数据计算、蜂鸣器报警和数码管显示。

    4.1系统的主程序设计 整个系统的设计的关键是对距离进行测量的,然后通过单片机来处理测量数据是比较容易实现的,能精确的实现测距。在测距中,各种信号对声速的影响都将干扰到测距的准确性,其中超声波的余波信号对整个设计中测距的精确度的干扰的影响比较大。超声波接收回路中的超声波信号一共有两种波信号:第一种波信号为余波信号就是当发射探头发射出信号之后,超声波接收探头马上就接收到的超声波信号,实际就是超声波的发射信号;
    另一种波信号就是有效信号,即经过障碍物表面反射回来的超声波回波信号,也是所需要测量的距离数值。

    在进行超声波测距时,实际上测距就是记录从超声波发射电路发射超声波信号开始到接收到信号的声波的往返时间差,然后通过数据计算出距离,对于回波信号需要进行检测的有效信号是反射物体反射的回波信号,所以要尽量避免在检测时候检测到余波信号。余波就是在发射超声波时超声波信号直接到达接受探头的波信号,同时余波信号也是超声波测量时存在测量盲区的最主要的原因。

    超声波接收电路在接收到超声波回波后,向单片机发出有效信号,单片机通过外部中断的改变记录回波信号的到达时间,中断发生之后就是表示已经接收到了回波信号,这个时候停止计时,并且读取计数器中的数值,这个数值就是需要进行测量的时间差的数据。

    程序中对测距距离的计算方法是按上一章中提到的公式(3.2)
    进行计算的,其中,N为计数器的值,声速的值取为340 m/s。

    综合以上的分析可以得到系统主程序的流程图,系统主程序流程图如图4.1所示。

    开始 单片机初始化 超声波模块复位 发射并接收超声波 记录输出高电平时间 计算测量距离 显示距离同时蜂鸣器报警 延时 图4.1 系统主程序流程图 4.2 系统的子程序设计 4.2.1 中断处理程序 负责计算车尾与障碍物之间的距离是INT0的中断程序。根据前面的对超声接收电路的分析,在超声波集成模块接收到超声波回波信号后,超声波接收电路就会产生一个低电平送至单片机的P3.2引脚,使系统中断,则系统转入中断处理程序。进入中断处理后,定时器T0和外部中断0就立即被关闭,同时读取时间值,并给回波接收标志位清零即成功接收到回波信号。中断处理程序的程序流程图如图4.2所示。

    开始 计时停止 关闭中断 距离计算处理 显示距离并判断是否报警 N Y 指定的报警声开启 返回 图4.2 中断处理程序流程图 4.2.2 蜂鸣器分段报警程序 主程序根据距离计算公式计算数据即距离结果的远近,通过数码管显示,并且同时控制蜂鸣器的鸣叫。在本设计中,利用的是单片机P3.4引脚来产生方波来控制蜂鸣器鸣叫的,蜂鸣器报警程序的程序流程图如图4.3所示。

    开始 显示距离 距离小于500cm N Y 距离小于20cm N 蜂鸣器高频鸣叫 返回 图4.3 蜂鸣器报警程序流程图 4.3 本章小结 本章在硬件电路的基础上完成了系统软件的设计,对系统的功能有了进一步的了解。首先,对系统进行了总体分析,包括系统的总体逻辑关系及软件控制流程图。其次,对各子程序进行了分析,根据硬件电路模块的划分,系统的软件子程序划分为中断处理程序,蜂鸣器分段报警程序等。分别对各部分的设计思想,运算方法及各指令集进行了详细的阐述。

    5 硬件组装及调试 5.1 硬件组装及调试 本次设计的汽车倒车测距仪以HC-SR04型的超声波测距传感器模块为主体,中心频率是基本稳定在40 kHz,安装时保持模块平整摆放即使两超声波探头的中心轴线平行。其它硬件的组装和连线焊接如下:P1口分别接到四位八段的共阳数码管的a、b、c、d、e、f、g、dp引脚上,用来进行动态的段扫描;
    P2口的P2.0、P2.1、P2.2、P2.3控制四位数码管的片选;
    P3口的P3.4通过一个三极管连接到蜂鸣器上,构成蜂鸣器报警电路,进行蜂鸣器鸣叫报警;
    P0.1端口接超声波模块的发射端;
    P0.2端口接超声波接收端,用作判断超声波是否接收到了回波的信号,并控制计数器停止计时。

    超声波测距时需要测的是从发射开始到接收到回波信号的这段时间里的声波往返的时间差,由于需要对接收到的回波信号进行检测,而检测的有效信号为反射的回波信号,所以应该要尽量避免检测到余波信号而超声波检测中最小测量盲区存在的主要原因也是因为余波干扰的缘故。因为超声波测距所能测的距离的大小与传感器的驱动功率、测量方法有很大关系,而从理论上来讲,本设计系统采用的超声波模块测距时存在的盲区大约为2cm左右,而且本设计理论上的测量距离范围为2cm~4m,测量的误差比较小,测量显示值稳定,能基本满足设计要求。

    5.2测量结果 硬件电路制作应避免出现虚焊或焊接短路的情况,完成并调试好后,便可将程序文件下载到单片机芯片试运行。根据实际情况可以修改超声波发生子程序每次发送的脉冲个数和两次测量的间隔时间,以适应不同距离的测量需要。如表5.1所示。

    表5.1 实际距离与测量距离误差关系 实际距离(cm)
    15 20 40 60 120 150 180 200 230 测量距离(cm)
    20 20 40.5 61 119 151.5 178.5 198 232.5 误差 (cm)
    5 0 0.5 1 1 1.5 1.5 2 2.5 根据文中电路参数和程序,测距器可测量的范围为0.2~4.0m,在试验中对测量范围0.15~2.30m内的物体做了多次测试,经过多次测量发现,在同一温度下有如下规律: (1)对于同一距离进行多次测量取平均值的方法,所测数据稳定性较好2m范围内变化平均值误差最大不超过20mm; (2)测量误差随着所测距离的增大而增大。

    这里的误差包含两种:一种是固定误差—测量的起始位置与探头的压电晶片所在位置之间的距离,这种误差不随测量环境和距离的变化而变化;另一种是可变误差随着距离的增大而增大,主要是由接收超声波越过阀值的时间与超声波实际到达探头的时间不同引起的。

    (3)20mm以内是盲区。

    5.3 误差分析 声波传输速度与媒介的弹性模量和密度相关,因此,利用声速测量距就要考虑这些因素对声速影响。在气体中,压强、温度、湿度等因素会引密变化,气体中声速主要受密度影响。液体的深度、温度等因素会引起度变化,固体中弹性模量对声速影响较密度影响更大。一般超声波在固体传播速度最快,液体次之,在气体中的传播速度最慢。气体中声速受温度影响最大‘声波扰动是机械的,声波在传播中带有机械能量,声能传播的中逐渐转变成热,从而出现随距离而逐渐衰减的现象,称为声吸收。

    1、温度对声速的影响 在空气中测量距离时,根据超声波测距公式L=C×T,可知测距的误差是由超声波的传播速度误差和测量距离传播的时间误差引起的。温度是影响声速的主要因素。  
    超声波的传播速度受空气的密度所影响,空气的密度越高则超声波的传播速度就越快,而空气的密度又与温度有着密切的关系。

    已知超声波速度与温度的关系如下:  (5.1) 式中:R—气体普适常量;
    M—气体分子量;
    T—绝对温度 近似公式为:℃ (5.2) 式中:C0为零度时的声波速度323m/s;
    T为实际温度(℃) 对于超声波测距精度要求达到1mm时,就必须把超声波传播的环境温度考虑进去。例如当温度0℃时超声波速度是332m/s, 30℃时是350m/s,温度变化引起的超声波速度变化为18m/s。若超声波在30℃的环境下以0℃的声速测量100m距离所引起的测量误差将达到5m,测量1m误差将达到5mm。

    表5.2为声速c与温度有关系,如温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。声速确定后,只要测得超声波往返时间,即可求得距离。在系统加入温度传感器来监测环境温度,可进行温度补偿。本文要求精度不高,所以未加测温部分,如果要提高精度这里可以增加DS18B20测量环境温度模块,如果想要增强系统的可靠性,可在软硬件上采用抗干扰措施。根据不同的环境温度确定声速,以提高测距的稳定性和准确性。

    表5.2声速c与温度对应表 温度(℃) -30 -20 -10 0 10 20 30 100 声速(m/s)
    313 319 325 323 338 344 349 386 2、湿度对超声波衰减程度的影响 声波传播过程中,声压的幅度由于媒质中声吸收而衰减,声强随频高衰减增加,进而湿度对超声波衰减程度有一定的影响。

    3、硬件电路引起的时间误差 由于收发电路对信号的处理会对回声时间产生y个固定的延迟时间从而引出一定的测量误差. 另外,在测量过程中测量的起始位置与探头的压电晶片所在位置之间一定的距离,也对测量结果造成一定的误差,但是这种误差不随测量环境距离的变化而变化,属于固定误差。需要进行硬件调试才会有所改善,但是不可能完全消除。

    5.4本章小结 本章对汽车倒车测距仪的硬件进行了组装与调试,并进行了实地测量,测量结果基本达到要求,并对产生误差的可能原因进行了分析,给出了减小误差的方法。期望在未来的研究中能够设计出更加完美的方案。

    结 论 随着社会的发展,人们对距离或长度测量的要求越来越高。超声波测距由于其能进行非接触测量和相对较高的精度,越来越被人们所重视。本设计的超声波测距仪,可以对不同距离进行测试,并可以进行一定的误差分析。

    本文以检测距离为目标,对超声波的工作原理、超声波测距主要误差来源作了相应的分析。围绕如何开发基于单片机的超声波测距系统进行了如下工作:
    (1)探讨了超声波测量技术,分析了超声波测距的误差来源,提出了系统的总体设计思想。

    (2)设计了以STC89C52RC单片机为核心的超声波界面检测系统,该系统具有低成本、高精度、微型化数字显示的特点。

    (3)在系统硬件设计的基础上,对系统的软件需要实现的功能进行了分析,设计了系统的主程序流程,分析各个中断程序和主程序之间的关系,用C语言逐个实现了各自的功能模块。

    由于个人能力及试验条件有限,我的设计还有很多不足之处,系统虽然能实现基本的功能,但投入使用时仍需要对系统作进一步的完善和提高:
    (1)超声波的测量距离与环境直接相关,由于本设计中所用设定温度为常温,故应用范围相对较小。如果需要扩大测距范围,可以根据实际情况添加更合适的温度传感器。

    (2)由于受实验条件的限制,本设计未能进行现场实验数据的采集,所有实验仅局限于实验室,这与实际测量有一定差距。

    (3)超声波探头相对安装位置的影响,渡越时间延迟造成的误差及其他误差源的存在,从软件角度,使用一些数据处理算法,消除误差干扰,提高测量精度。

    致 谢 岁月荏苒,四年的大学生活即将结束,站在毕业的门槛上,回首往昔,汗水和泪水成为丝丝的记忆,酸酸的甜甜的一直回荡。值此毕业论文完成之际,我谨向所有关心、爱护、帮助我的人们表示最诚挚的感谢与最美好的祝愿。

    本设计是在我的导师XX老师的亲切关怀和悉心指导下完成的,从课题的选择到论文的最终完成,老师都始终给予我细心的指导和不懈的支持。论文的字里行问都倾注了导师的关怀和心血。她严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。

    此谨向老师致以诚挚的谢意和崇高的敬意。

    在课题设计过程中还得到了吴珊珊老师和许多同学的帮助,正是在各位老师的大力支持和各位同学的通力协助下,我才得以顺利完成学位论文,在此一并表示深深的谢意。

    由于本人知识水平有限,文中难免有错误和不完善之处,谨请读者提出批评和指正。

    最后,衷心感谢在百忙之中抽出时间审阅本论文的专家教授。

    参 考 文 献 [1] 沈红卫.单片机应用系统设计实例与分析[M].北京航空航天大学出版社,2001. [2] 张毅刚.单片机原理及应用[M].北京:高等教育出版社,2001. [3] 杨恢先.黄辉先.单片机原理及应用[M].上海:复旦大学出版社,2002. [4] 徐淑华,程退安,姚万生.单片机微型机原理及应用[M].哈尔滨:哈尔滨工业大学出版社,1994. [5] 戴佳,戴卫恒.51单片机C语言应用设计实例精讲[M].北京:电子工业出版社,2007. [6] 何立明.单片机应用系统抗干扰技术[M].北京:北京航空航天大学出版社,2000. [7] 涂时亮.单片微机软件设计技术[M].重庆:科学技术文献出版社重庆分社,2003. [8] 邦田.电子电路实用抗干扰技术[M].北京:人民邮电出版社,1994. [9] 童诗白,华成英.模拟电子技术基础[M].北京:高等教育出版社,2001. [10] 赵文博.新型常用集成电路速查手册[M].人民邮电出版社,2005. [11] 常敏,王涵,范江波等.单片机应用程序开发与实践[M].电子工业出版社,2009. [12] 胡瑞,周锡青.基于超声波传感器的测距报警系统设计[J].科技信息.2009. [13] 李光飞,李良儿,楼然苗.单片机C程序设计实例指导[M].北京航空航天大学出版社,2005. [14] 杜树春编著.单片机C语言和汇编语言混合编程实例详解[M].北京航空航天大学出版社,2006. [15] 田立,田清等.51单片机C语言程序设计快速入门[M].人民邮电出版社,2007. [16] 赵占林,刘洪梅.超声测距系统误差分析及修正[J].科技情报开发与经济.2002. [17] 宋明耀.提高超声波测距精度的设计[J].测试测量.2004. [18] 李茂山.超声测距原理及实践技术[J].实用测试技术.1994. [19] 常静,贺焕林.减少超声波测距仪盲区的研究[M].棉花加工技术,2005. 附录A 程序清单 /******************************************************************/ #include <reg52.h> //器件配置文件 #include <intrins.h> sbit RX=P0^1; sbit TX=P0^2; sbit BEEP=P3^4; unsigned int time=0; unsigned int timer=0; unsigned char posit=0; unsigned long S=0; bit flag =0; Unsigned char const discode[] ={ 0xC0,0xe7,0x89,0x83,0xa6,0x92,0x90,0xc7,0x80,0x82,0xbf,0xff/*-*/}; unsigned char const positon[4]={ 0xfe,0xfd,0xFB,0xd7 }; unsigned char disbuff[4] ={ 0,0,0,0,}; /********************************************************/ void Display(void) //扫描数码管 { if(posit==0) {P1=(discode[disbuff[posit]])&0x7f;} else {P1=discode[disbuff[posit]];} P2=positon[posit]; if(++posit>=3) posit=0; } /********************************************************/ void Conut(void) { time=TH0*256+TL0; TH0=0; TL0=0; // S=(time*1.7)/100; //算出来是CM S=time*1.085; S/=58*2; //算出来是CM if((S>=500)||flag==1) //超出测量范围显示“-” { flag=0; disbuff[0]=10; //“-” disbuff[1]=10; //“-” disbuff[2]=10; //“-” } else { disbuff[0]=S%1000/100; disbuff[1]=S%1000%100/10; disbuff[2]=S%1000%10 %10; } if (S<=10) { BEEP=0; } if ((S>10)&&(S<500)) { BEEP=1; } } /********************************************************/ void zd0() interrupt 1 //T0中断用来计数器溢出,超过测距范围 { flag=1; //中断溢出标志 } void zd1() interrupt 2 //T0中断用来计数器溢出,超过测距范围 { TH1=0x20; TL1=0x41; Display(); } /********************************************************/ void zd3() interrupt 3 //T1中断用来扫描数码管和计800MS启动模块 { TH1=0xf8; TL1=0x30; Display(); timer++; if(timer>=400) { timer=0; 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=0x11; //设T0为方式1,GATE=1;

    TH0=0; TL0=0; TH1=0xf8; //2MS定时 TL1=0x30; ET0=1; //允许T0中断 ET1=1; //允许T1中断 TR1=1; //开启定时器 EA=1; //开启总中断 while(1) { while(!RX); //当RX为零时等待 TR0=1; //开启计数 while(RX); //当RX为1计数并等待 TR0=0; //关闭计数 Conut(); //计算 } } } } 图1 单片机整体电路原理图 图2 超声波测距模块原理图 图3 设计实物图

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网