资源描述
山东科技大学毕业设计(论文)摘 要近年来,我国的汽车数量正逐年增加,在公路、街道、停车场、车库等拥挤、狭窄的地方倒车时,驾驶员既要前瞻,又要后顾,稍微不小心就会发生追尾事故。因此,增加汽车的后视能力,研制汽车后部探测障碍物的倒车雷达便成为近些年来的研究热点。为此,设计了以单片机为核心,利用超声波实现无接触测距的倒车雷达系统。工作时,超声波发射器不断发射出一系列连续脉冲,给测量逻辑电路提供一个短脉冲。最后由信号处理装置对接收的信号依据时间差进行处理,自动计算出车与障碍物之间的距离。目前,国内外一般的超声波测距仪,其理想的测量距离为0.5m5m,因此大都用于汽车倒车雷达等近距离测距中。设计根据声波在空气中传播反射原理,并且也介绍了基于STC89C52单片机的超声波测距器。该设计由超声波模块HC-SR04、LED显示电路、键盘控制电路以及报警模块等部分组成,在探测范围内数码管显示出汽车与障碍物的距离,当距离小于所设计的安全距离时,蜂鸣报警器发出报警声,辅助驾驶人员能够安全倒车驾驶。关键词:超声波;测距;STC89C52;HC-SR04;倒车雷达AbstractIn recent years, the number of cars in China is increasing year by year. On highways, streets, parking lot, garage and other crowded, narrow place when reversing, the driver should be forward-looking, want to look back again, a bit not careful collision occurs. Therefore. Increase the car rear view ability, detect obstacles of developing the back of my car reversing radar has become a hot research topic in recent years. Therefore, designed with the single chip processor as the core, the use of ultrasound to realize non-contact ranging reverse radar system. Work, ultrasonic transmitter continuously emit a series of consecutive pulse,For logic circuit provides a short pulse measurement. , the ideal measuring distance of 0.5 m 5 m, so mostly used in the close distance such as car reversing radar. Design according to the principle of the reflected sound waves in the air, and also introduces the ultrasonic range finder based on STC89C52 single-chip microcomputer. The design by the ultrasonic transmitting, LED detailed introduces the ranging system hardware composition. Ultrasonic receiving circuit using HC - SR04 transceiver discrete integrated ultrasonic probe, the module consists of ultrasonic emitter, receiver and control circuit.KEY WORD:Ultrasonic;Measure distance;STC89C52;HC-SR04;Reversing radar 目 录摘 要IAbstractII目 录III第1章 绪论11.1 项目研究背景11.2 目前国内倒车雷达的发展现状21.3 项目研究内容与方法4第2章 总体设计方案及论证52.1 系统的总体框图52.2 各模块的功能6第 3 章 超声波测距原理73.1 超声波测试分析73.2超声波测距模块9第4章 硬件实现及单元电路设计134.1 单片机STC89C52RC134.2 主控制模块设计164.3 时钟电路的设计194.4 复位电路的设计214.5 显示电路的设计224.6声音报警电路的设计234.7 键盘模块设计244.8 电源设计24第5章 系统的软件设计255.1 系统的主程序设计255.2 中断处理程序285.3 显示子程序285.4 距离计算子程序29第6章 总结和展望296.1 总结296.2 展望30致 谢31参考文献32附件1:33 PCB图、代码及实物图36附件243中英文翻译43IV 第1章 绪论倒车雷达又称泊车辅助系统,是汽车泊车安全辅助装置,能以声音或者更为直观的显示告知驾驶员周围障碍物的情况,解除了驾驶员泊车和起动车辆时前后左右探视所引起的困扰,并帮助驾驶员扫除了视野死角和视线模糊的缺陷,提高了驾驶的安全性。当前社会经济的不断发展和工业科学技术的不断提高,汽车已逐渐进入不少百姓家。汽车使用数量的不断增加,从而由此导致的倒车交通安全问题也非常严重,道路交通压力增加,交通安全问题也是面临严峻挑战。在面临如此严峻的交通安全问题,许多涉及安全问题的汽车辅助系统也纷纷现世。而本设计就是利用单片机知识、传感器知识等,进行的汽车防撞装置的设计,在汽车倒车时,这种装置可以在驾驶员对车尾与障碍物体的距离远近无法目测和判断时进行报警。1.1 项目研究背景在现如今伴随着世界经济的不断发展,汽车工业作为推动经济发展的龙头产业,其规模也在不断扩大。中国经济的持续增长和汽车价格的持续下降,吸引了越来越多的家庭去购买自己的汽车。随着汽车拥有量的增加,在享受汽车给我们带来的便利的同时,由于汽车而产生的问题也日益突出。大多数有经验的驾驶员对倒车的基本方法很熟悉,然而很少的人知道倒车是多么危险。许多车队的管理者坦言,在他们所有的机动车事故中,30%60%是倒车事故。一个水平中等的驾驶员花费在倒车上的时间远远不足他们总驾驶时间的 1%。这意味着相比较而言,当你向后移动车辆时发生事故的可能性相当高,在2002年汽车事故的发生比例中,倒车引起的事故占21%,倒车成为令人们头痛的一项任务,即使是经验丰富的司机也在抱怨倒车是件费力费神的事。公路、街道、停车场、车库的拥挤不堪,车辆之间、车辆与人、车辆与墙壁等障碍物之间的碰撞时有发生,针对这一情况,人们对汽车操纵的便捷提出了更高的要求,希望有种装置能够解决汽车倒车给人们带来的倒车问题。有鉴于此,专门为汽车倒车所设计的“倒车雷达”应运而生, 倒车雷达(Car Reversing Aid System)全称“倒车防撞雷达”,又称“泊车辅助装置”,它是汽车泊车或者倒车时的安全辅助装置,由超声波传感器(俗称探头)、控制器和显示器(或蜂鸣器)等部分组成。它能以声音或者更为直观的显示告知驾驶员周围障碍物的情况,解除了驾驶员泊车、倒车和启动车辆时前后左右探视所引起的困扰,为倒车导向,提示方向盘该如何打。驾驶者可根据操作指示完成倒车工作。它的运用可极大地减轻驾驶者的体力、脑力劳动强度,降低倒车难度,避免驾驶员因方向感不强,判断和操作失误,并帮助驾驶员扫除了视野死角和视线模糊的缺陷,提高驾驶的安全性,大量避免了由于倒车镜死角和驾驶者目测据误差等原因说引起的交通事故。同时在它的研制基础上,如果完善动力执行机构和地图导航功能,可实现倒车的自动控制,所以本课题的研究也将对最终实现汽车无人驾驶产生积极的意义。1.2 目前国内倒车雷达的发展现状经过多年的发展,倒车雷达设计以及使用发生了质的变化。经过这几年的发展,倒车雷达系统已经经过了五代技术改良,不管从结构外观上,还是从性能价格上,这五代产品都各有特点,使用较多的是数码显示、荧屏显示和魔幻镜倒车雷达这三种。 第一代:倒车时通过喇叭提醒 。”倒车请注意!”想必不少人还记得这种声音,这就是倒车雷达的第一代产品,现在只有少部分商用车还在使用。只要司机挂上倒档,它就会响起,提醒周围的人注意,从某种意义上来说,它对驾驶员并没有直接的帮助,不能算真正的倒车雷达,基本属于淘汰产品。 第二代:采用蜂鸣器不同声音提示驾驶员。这是倒车雷达系统的真正开始。倒车时,如果车后1.8m1.5m处有障碍物,蜂鸣器就会开始工作。蜂鸣声越急,表示车辆离障碍物越近。但没有语音提示,也没有距离显示,虽然司机知道有障碍物,但不能确定障碍物离车有多远,对驾驶员帮助不大。 第三代:数码波段显示具体距离或者距离范围。这代产品比第二代进步很多,可以显示车后障碍物离车体的距离。如果是物体,在1.8m开始显示;如果是人,在0.9m左右的距离开始显示。这一代产品有两种显示方式,数码显示产品显示距离数字,而波段显示产品由3种颜色来区别:绿色代表安全距离,表示障碍物距离有0.8m以上;黄色代表警告距离,表示障碍物距离只有0.6m0.8m;红色代表危险距离,表示障碍物距离只有不到0.6m,必须停止倒车。 第三代产品把数码和波段组合在一起,比较实用,但安装在车内影响美观。 第四代:液晶屏动态显示。这一代有一个质的飞跃,特别是荧屏显示开始出现动态显示系统。不用挂倒档,只要发动汽车,显示器上就会出现汽车图案以及车辆周围障碍物的距离,色彩清晰漂亮,外表美观,可以直接粘贴在仪表盘上,安装很方便。不过LCD显示外观虽精巧,灵敏度较高,但抗干扰能力不强,所以误报也较多。 第五代:魔幻镜倒车雷达。结合了前几代产品的优点,采用了最新仿生超声雷达技术,配以高速电脑控制,可全天候准确地测知2m以内的障碍物,并以不同等级的声音提示和直观的显示提醒驾驶员。魔幻镜倒车雷达可以把后视镜、倒车雷达、免提电话、温度显示和车内空气污染显示等多项功能整合在一起,并设计了语音功能,是目前市面上最先进的倒车雷达系统。因为其外形就是一块倒车镜,所以可以不占用车内空间,直接安装在车内后视镜的位置。而且颜色款式多样,可以按照个人需求和车内装饰选配。 1.3 项目研究内容与方法本课题的任务是设计一个基于单片机的超声波倒车雷达系统。本系统采用超声波测距原理,包括超声波传感器(俗称探头)、控制器和显示器等几个部分。驾驶者在倒车时,启动倒车雷达,在控制器的控制下,由装置于车尾保险杠上的探头发送超声波,遇到障碍物,产生回波信号,传感器接收到回波信号后经控制器进行数据处理,判断出障碍物的位置,由显示器显示距离并发出警示信号,得到及时警示,从而使驾驶者倒车时做到心中有数,使倒车变得更轻松。本课题的现实应用的意义在于(1)将倒车自动化从被动防撞引向智能控制方向发展;(2)体现了“以人为本”的驾驶理念,倒车时驾驶者的视线可集中在前方,不需顾及车后状况,增加倒车的安全性和可靠性,并且它的应用可减轻司机体力和脑力劳动的强度;(3)它取代了传统倒车对人的驾车经验和技术的依赖,使初学者不需要旁人指导也能根据提示完成复杂的倒车任务;(4)安全可靠的防碰撞预警,使驾驶者无论是白天还是夜晚都能实现安全倒车;(5)这一方案建立在安装小组件的基础上,避免对汽车整车的影响,为应用和普及创造了条件,经济性较好,易于普及。设计中采用模块化设计方法,硬件设计包括系统控制模块、测距模块即超声波发射和接收模块,显示报警模块块设计等,软件设计包括计算模块、测距模块、显示模块设计等。 第2章 总体设计方案及论证2.1 系统的总体框图本设计包括硬件和软件设计两个部分。模块划分为数据采集、按键控制、四位数码管显示、报警等子模块。电路结构可划分为:超声波传感器、蜂鸣器、单片机控制电路等。就此设计的核心模块来说,单片机就是设计的中心单元,所以此系统也是单片机应用系统的一种应用。单片机应用系统也是有硬件和软件组成。硬件包括单片机、输入/输出设备、以及外围应用电路等组成的系统,软件是各种工作程序的总称。系统采用STC89C52单片机作为核心控制单元,当测得的距离小于设定距离时,主控芯片将测得的数值与设定值进行比较处理。然后控制蜂鸣器报警。系统总体的设计方框图如图2.1。电源STC89C52主控制器模块按键控制超声波传感器模块 4位数码管显示模块蜂鸣器报警模块 图2.1 系统总体的设计方框图2.2 各模块的功能1.单片机主控模块 电源启动后,单片机通过发送高电平对超声波模块进行触发。利用内部的定时器判断超声波的收发时间。由单片机内部进行计算出波源和障碍物的距离。并通过液晶模块和报警模块体现出来,若距离小于设定的距离,单片机控制蜂鸣器进行报警。2.键盘模块 按键1:复位键; 按键2:报警距离设定按键 按键3:自定义报警距离增加1cm 按键4:自定义报警距离减少1cm3. 超声波模块 超声波模块采用现成HC-SR04超声波集成模块,该模块可提供 2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm。模块包括超声波发射器、接收器与控制电路。(1)采用IO口TRIG触发测距,给至少10us的高电平信号;(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340m/s)/2;4.液晶显示模块采用4位共阳极动态显示模式,用来显示实时距离。5.蜂鸣器报警电路 在本系统工作过程中,若测得的距离小于设定距离,蜂鸣器会进行报警。第3章 超声波测距原理3.1 超声波测距分析 最常用的超声测距的方法是回声探测法,超声波发射器向某一方向发射超声波,在发射时刻的同时计数器开始计时,超声波在空气中传播,途中碰到障碍物面阻挡就立即反射回来,超声波接收器收到反射回的超声波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物面的距离s,即:s=340t/2。 由于超声波也是一种声波,其声速V与温度有关。在使用时,如果传播介质温度变化不大,则可近似认为超声波速度在传播的过程中是基本不变的。如果对测距精度要求很高,则应通过温度补偿的方法对测量结果加以数值校正。声速确定后,只要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的基本原理。如图3.1所示。 图3.1 超声波的测距原理 (3-1) (3-2)式中:L-两探头之间中心距离的一半.又知道超声波传播的距离为: ( 3-3)式中:v超声波在介质中的传播速度; t超声波从发射到接收所需要的时间.将(3-2)、(3-3)代入(3-1)中得: ( 3-4)其中,超声波的传播速度v在一定的温度下是一个常数(例如在温度T=30度时,V=349m/s);当需要测量的距离H远远大于L时,则(3-4)变为: ( 3-5) 而超声波在空气中的传播速度是340m/s,所以,只要需要测量出超声波传播的时间t,就可以得出测量的距离H。根据超声波测距原理,超声波收发设备应该完成超声波脉冲的发射以及回波首波的精确检测。从结构上可以将收发设备分为收发一体换能器和收发分立换能器,这两种形式各自有优缺点。收发一体超声波换能器由于超声波发射和接收在一个口,因此其不存在近距离形成所谓的三角关系,因此其近距离的测量精度高。但是也由于收发共用端口的原因,导致了在发射完成脉冲序列之前不能够开始接收,这就导致了盲区的存在,这在原理是是不能消除的。收发分立超声波换能器虽然在近距离上可以进行测量,近乎没有盲区的存在,但是在近距离上一定会形成一个三角关系,从而导致其近距离上的测量相对误差极大。而在电路上,由于收发一体的超声波换能器的发射驱动电路和接收极的接收检测电路彼此相连,导致了电路的相互干扰,增加了抗干扰设计工作。虽然收发分立形式也存在串扰的缺点,但其是可以通过软硬件设计消除的。从总体上来说,收发分立在应用上更加简单、可靠,本次设计采用收发分立形式换能器。3.2 超声波测距模块3.2.1 HC-SR04超声波模块介绍 本设计的超声波模块采用现成的HC-SR04超声波模块,该模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到 3mm。模块包括超声波发射器、接收器与控制电路。基本工作原理:采用IO口TRIG触发测距,给至少10us的高电平信号;模块自动发送8个40khz的方波,自动检测是否有信号返回;有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S)/2。其中VCC供5V电源,GND为地线,TRIG触发控制信号输入,ECHO 回响信号输出等四支线。实物如下图3.2。 图3.2 HC-SR04超声波模块超声波探测模块HC-SR04的使用方法如下:IO口触发,给TRIG口至少10us的高电平,启动测量;模块自动发送8个40Khz的方波,自动检测是否有信号返回;有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间,测试距离=(高电平时间*340)/2,单位为m。程序中测试功能主要由两个函数完成。超声波测距模块HC-SR04时序图如图3.3所示。 图3.3 超声波时序图超声波探测模块HC-SR04的原理图如图3.4所示。 图3.4 超声波探测模块HC-SR04原理图根据HC-SR04的原理图,HC-SR04测距模块时一个相对独立的系统。采用的电源芯片MAX232为超声波换能器提供了合适的电压,驱动换能器正常工作。它采用了单片机EM78P135作为控制器,完成了对外部触发信号的检测、产生脉冲信号、检测回波首波信号等工作。与此同时其还肩负着控制电路的开启,处理超声波换能器的横向干扰,并且消除电路固定延时影响等工作。对于本次设计,选用这种测距模块将极大减少设计的工作,降低设计的成本。 超声波探测模块HC-SR04的电气参数如图3.5所示。 图3.5 HC-SR04的电气参数3.2.2 HC-SR04总体性能分析由于HC-SR04在设计上的较为周全的考虑,使得其的精度较高。但是由于其基于性价比优先的设计思路,其采用了应用广泛、性价比较高的经典设计,即在回波接收处理电路中采用了放大、滤波、放大、过零检测的方法。这种方法结构简单,便于集成化、小型化,但是由于回波信号随着测量距离的变化将发生剧烈变化,这将极大增加系统的设计难度,过零检测电路的参考电压的设置将极为困难。1. 由于空气气流的起伏、目标的形状和粗糙度不同、传感器的响应特性较差等原因,使得传感器的回波信号不是一个规则信号,有较大的不确定性,给触发阀值的设置带来难度,从而使首波的检测发生错误。从而带来了测距的不确定性。2. 由于测量距离、超声的入射角度、反射介质等方面的不同,使得接收换能器所获得的回波幅度相差很大。使用单一电平阈值时,若设置的闭值过高,则可能使较微弱回波漏触发,出现测量错误;若阈值过低,则可能出现的测量相位误差如图3.6所示:图3.6 阈值过低时可能出现的测量相位误差由于测距模块的集成化、小型化的设计需求,所以选用的是低压、小型换能器,其发射功率较小,这就直接决定了它的测量距离的不足。再加上换能器的发射角较大,能量不够集中,这更是减小了其探测范围。测距能力的不足,一定程度上意味着对较近距离的小体积物体探测能力的不足。第4章 硬件实现及单元电路设计4.1 单片机STC89C52RC4.1.1 单片机简介 本设计中选用的宏晶科技的STC89C52RC型单片机是一种低功耗、高性能、采用CMOS工艺的8位微处理器,与工业标准型80C51单片机的指令系统和引脚完全兼容。片内8K Flash存储器可在线重新编程,或使用通用的非易失性存储器编程器。由于一般的距离测量中,距离的变化速度并不太快,而且单片机的机器周期可达 s级,则其计时精度为 s级,完全可以满足系统测量的要求,并且成本较低,所以本设计中选用STC89C52RC型号的单片机。STC89C52RC单片机,基于STC89C51内核,是新一代增强型单片机,指令代码完全兼容传统STC89C51,速度快812倍,带ADC,4路PWM,双串口,有全球唯一ID号,加密性好,抗干扰强。STC89C52RC单片机的引脚图如图4.1所示。 图4.1 STC89C52RC单片机的引脚图STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM, MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。STC89C52单片机的基本组成框图见图4.2。图4.2 STC89C52单片机结构图4.1.2 单片机主要特性1. 一个8 位的微处理器(CPU)。2. 片内数据存储器RAM(128B),用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据等,SST89 系列单片机最多提供1K 的RAM。3. 片内程序存储器ROM(4KB),用以存放程序、一些原始数据和表格。但也有一些单片机内部不带ROM/EPROM,如8031,8032,80C31 等。目前单片机的发展趋势是将RAM 和ROM 都集成在单片机里面,这样既方便了用户进行设计又提高了系统的抗干扰性。SST 公司推出的89 系列单片机分别集成了16K、32K、64K Flash 存储器,可供用户根据需要选用。4. 四个8 位并行IO 接口P0P3,每个口既可以用作输入,也可以用作输出。5. 两个定时器计数器,每个定时器计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。为方便设计串行通信,目前的52 系列单片机都会提供3 个16 位定时器/计数器。6. 五个中断源的中断控制系统。现在新推出的单片机都不只5 个中断源,例如SST89E58RD 就有9 个中断源。7. 一个全双工UART(通用异步接收发送器)的串行IO 口,用于实现单片机之间或单机与微机之间的串行通信。8. 片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率为12MHz。SST89V58RD 最高允许振荡频率达40MHz,因而大大的提高了指令的执行速度。 STC89C52单片机的中断系统:STC89C52系列单片机的中断系统有5个中断源,2个优先级,可以实现二级中断服务嵌套。由片内特殊功能寄存器中的中断允许寄存器IE控制CPU是否响应中断请求;由中断优先级寄存器IP安排各中断源的优先级;同一优先级内各中断同时提出中断请求时,由内部的查询逻辑确定其响应次序。 STC89C52单片机的定时/计数器:在单片机应用系统中,常常会有定时控制需求,如定时输出、定时检测、定时扫描等;也经常要对外部事件进行计数。89C52单片机内集成有两个可编程的定时/计数器:T0和T1,它们既可以工作于定时模式,也可以工作于外部事件计数模式,此外,T1还可以作为串行口的波特率发生器。4.2 主控制模块设计 本设计的主控制模块包括:STC89C52RC单片机,复位电路,超声波测距模块,时钟电路。主控制最小系统电路如图4.3所示。 图4.3 主控制最小系统电路电路中用到3个按键,一个是设定键,一个加键,一个减键。按下设置键,系统进入报警距离设置界面,默认的报警距离是0.5米。当按一下加键时,设置距离加一厘米,当按一下减键时,设置距离减一厘米。硬件电路总设计原理图见图4.4,从以上的分析可知在本设计中要用到如下器件:STC89C52RC、超声波传感器、按键、四位数码管、蜂鸣器等一些单片机外围应用电路。其中D1为电源工作指示灯。图 4.4 总设计电路图4.3 时钟电路的设计 本设计的时钟电路如图4.5所示,时钟电路主要结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片机的一切指令的执行都是建立在单片机晶振提供的时钟频率。 Y1为12MHZ晶体振荡器,单片机晶振的作用是为系统提供基本的时钟信号,C2与C3为负载电容。晶振与单片机的脚XTAL2和脚XTAL1构成的振荡电路中会产生谐波,这个谐波对电路的影响不大,但会降低电路的时钟振荡器的稳定性。为了电路的稳定性起见,在晶振的两引脚处接入两个10pf-50pf的瓷片电容接地来削减谐波对电路的稳定性的影响,所以晶振所配的电容的值处在10pf-50pf之间都可以,本设计C2和C3采用0.1f。51单片机最小系统晶振的振荡频率直接影响单片机处理速度,频率越大处理速度越快,并且电容离晶振越近越好,晶振离单片机越近越好。 图4.5 时钟电路4.4 复位电路的设计 本设计的复位电路如图4.6所示,具有上电复位和按键复位两种功能,上电复位电路是由电容C与电阻R串联组成,电容接VCC,电阻接地,RESET脚接在它们中间,当上电时,电容相当于短路,此时电阻上的电压等于VCC,经过一段时间后电阻电压逐渐变小直至为0,以达到上电复位的目的。同时只要按下S1按键,同样可以达到复位的目的。 当VCC上电时,C充电,在10K电阻R上出现电压,使得单片机复位;几个毫秒后,C充满,10K电阻R上电流降为0,电压也为0,使得单片机进入工作状态。工作期间,按下S1,C放电。S松开,C又充电,在10K电阻R上出现电压,使得单片机复位。几个毫秒后,单片机进入工作的状态。 单片机最小系统复位电路的极性电容C的大小影响单片机的复位时间,一般采用1030uF,单片机最小系统电容值越大需要的复位时间越短。 图4.6 单片机复位电路原理图4.5 显示电路的设计 超声波测距系统的显示要求比较简单,测量结果采用十进制数字显示。只需能显示0-9的数字,且显示稳定无闪烁即可。因此显示部分采用七段半导体数码管即LED。根据各管的极管接线形式,可分为共阴极型和共阳极型。在共阴极接法中,LED数码管的a-g七个发光二极管因加正电压而发亮,因加零电压而不发亮。而在共阳极接法中,刚好与共阴极接法相反。LED数码管具有亮度大,响应速度快等优点。LED显示有静态显示和动态显示两种方式,本设计中采用动态显示方式,电路结构图如图4.7所示。 本设计通过软件的编译来实现由二进制到BCD码的转化,从而简化了显示电路。但是,在制作超声波测距系统的过程中,由单片机直接驱动LED显示,电流较小,LED虽然有显示但是比较暗,因此显示电路采用简单的4位共阳LED数码管,位码用9012驱动。 图4.7 显示电路原理图本设计的显示电路采用四位一体共阳数码管利用单片机进行动态显示,动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。所谓动态扫描显示即轮流向各位数码管送出字型码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。实际设计中本电路单片机的P1.0至P1.7依次控制段码a、b、c、d、e、f、g、h。利用P3.4、P3.5、P3.6、P3.7口控制位选,从而达到动态显示的目的。显示电路采用简单的4位共阳LED数码管,位码用9012驱动。4.6声音报警电路的设计 由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来进行放大电流。蜂鸣器模块的电路图如图4.8所示。图4.8 声音报警电路4.7 键盘模块设计本按键模块使用的是多位独立按键,按键一端接IO口,一端接地,由于单片机的IO口都有内部上拉,因此当按键没有按下的时候,IO检测到的时候高电平,当按键按下的时候,相当于IO短接地,因此这时候单片机检测到的电平为低电平,通过检测不同时刻的IO口状态就可以判断按下的是哪个按键。 图4.9 键盘模块电路图4.8 电源设计 出于实际应用的考虑,本设计的电源采用3节5号干电池4.5V供电,可以同时满足实用性和经济因素的考虑。电源接口电路如图4.9所示。当电源接通时,二极管发光,表示系统正在工作。开关控制采用自锁开关,图中P2为电源盒接口或USB输入的接口,SW1为电源开关,用来接通电源或断开电源。 图4.9 电源接口电路第5章 系统的软件设计本设计采用的是模块化的思路来进行设计和编写程序,程序主要由系统主程序和中断程序构成。主程序完成单片机的初始化,超声波的发射和接收、计算超声波发射点与障碍物之间的距离、数码管显示和蜂鸣器报警等。系统程序设计的主要的功能是发射超声波、接受超声波、计算测量距离、蜂鸣器报警和数码管显示。5.1 系统的主程序设计 超声波测距系统的控制核心是单片机,软件主要完成测量过程控制、精确计时、数据计算及结果处理等功能。主程序对整个单片机系统进行初始化后,由单片机的IO口TRIG触发测距,给测距模块输入端最少10us的高电平信号,模块自动发送8个40khz的方波,自动检测是否有信号返回,同时将定时器T0启动。有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间,同时系统进入中断服务程序。然后调用距离计算的子程序,再根据定时器T0记录的时间计算出所需要测量的距离,然后再调用显示子程序,再将测出的距离以十进制的形式送到数码管显示,同时调用声音处理程序来控制蜂鸣器进行报警。最后主程序通过对P3.3端口返回的高电平的接收,完成后续的工作,假如标志位清零则说明接收到了回波信号,那么主程序就返回到初始端重新将回波接收标志位置位并且在单片机的TRIG端口上发送10us的高电平信号到超声波发射电路,就这样,连续不断地运行,循环不断地工作用来实现测距。在进行超声波测距时,实际上测距就是记录从超声波发射电路发射超声波信号开始到接收到信号的声波的往返时间差,然后通过数据计算出距离。其中,N为计数器的值,声速的值取为340m/s综合以上的分析可得到系统主程序流程图,系统主程序的流程图如图5.1所示。开始开始单片机初始化初始化定时器T0发射超声波检测是否有回波NO NO开启定时器YES读取计数值计算距离蜂鸣报警LED数码管显示标志位清零 图5.1 主程序工作流程图5.2 中断处理程序 负责计算车尾与障碍物之间的距离是INT0的中断程序。根据前面的对超声接收电路的分析,在超声波集成模块接收到超声波回波信号后,超声波测距模块就会产生一个高电平送至单片机的P3.3引脚,使系统中断,则系统转入中断处理程序。进入中断处理后,定时器T0就立即被关闭,同时读取返回的高点平的持续时间值,并给回波接收标志位清零即成功接收到回波信号。中断处理程序的程序流程图如图5.2所示。 图5.2 中断处理程序流程图5.3 显示子程序在显示数据时,为了节省I/O端口资源,降低功耗,本设计采用动态显示的方法。其中P1口是段码,低电平有效。P3口是位码,低电平有效。P3.7口控制最高位,一直到P3.4口控制最低位。究竟是哪个数码管会显示出字形,取决于单片机对位选通端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的位选端,即可实现数字的动态显示。四个数码管的段码都是P1口的输出,即四个数码管输入的段码都是一样的,为了使其分别显示不同的数字,对已处理数据查表从高位显示,经过延时再显示第二位、再经过一段延时,依次下去直到最低位,然后循环。这样测试结果可通过数码管的动态显示方法显示出来。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的。显示子程序的流程图如图5.3所示。 图5.3 显示子程序的流程图 5.4 距离计算子程序在主程序中已经介绍了障碍物距离的计算公式为:S=(V*T0)/2=17T0/1000cm(其中T0为计数器T0的计数值),由于本次设计使用的是程序语言,所以需要调用乘法与除法子程序。距离计算程序的流程图如图5.4所示。 图5.4 距离计算子程序流程超声波距离计算方法设计原理为超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体(障碍物)后反射回来,回波被超声波接收器R所接收到。这样只要计算出从发射超声波到接收到超声波信号所用的时间,就可以利用上述公式计算出超声波发生器与被测物体之间的距离。在启动发射超声波脉冲信号的同时启动内部定时器T0,利用定时器的计数功能记录超声波发射与接收到回波之间的时间。当收到超声波反射波(回波)时,接收芯片在INT1端输出一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差T0。第6章 总结和展望6.1 总结 随着科学技术的快速发展,超声波将在测距仪中的应用越来越广。但就目前技术水平来说,人们可以具体利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。展望未来,超声波测距仪作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求。 本设计主要是基于STC89C52芯片为核心的超声波测距仪,并有HC-SR04超声波测距模块、数码管显示等器件组成,包括单片机系统、超声波发射电路、超声波接收电路、单片机复位电路、LED显示电路和按键电路,主要实现车辆超声波测距并报警功能。设计的最终结果是使超声波测距仪能够产生超声波,实现超声波的发送与接收,从而实现利用超声波方法测量物体间的距离。以数字的形式显示测量距离。本文所设计的超声波测距报警系统,其结构简单、体积小、抗干扰性能好,若要满足更高的精度要求,还须进行适当改进。在某些特殊场合的应用中,还要考虑超声波的人射角、反射角以及超声波传播介质的密度、表面光滑度等因素。本系统不仅适用于车辆距离报警系统,还适用于水文液位测量,应用范围较广。6.2 展望本设计还可以在几个方面进行修改完善,进而使得本设计的测距仪功能更加完善,诸如:1因为超声波探头的限制,本设计装置在温度不同的环境下测量误差也不一样,所以要根据实际情况对探头进行合适的更换。2系统动态性能不高,当与向障碍物移动速度小的时侯,能够稳定测量并稳定显示,但是如果移动速度太大就会使误差也逐渐增大。3本设计中并没有温度补偿模块,主要是本设计做为倒车雷达使用对精确的距离要求不高主要是起到警报的作用,所以没有采用温度补偿模块进行设计。如果在设计中考虑到温度补偿这个模块,并添加到设计中去,那么整个系统将会更完善。4整个设计利用的是超声波模块设计,电路简单,编程容易,完全能实现功能要求。汽车倒车雷达所涉及的学科的内容比较多,诸如传感器、单片机等,现在各个学科还在不断的发展之中,相信也将推动这个系统功能的更加完善,并且应用将更为广泛。 致 谢首先,我要感谢张瑞老师在毕业设计中对我给予的悉心指导和严格要求,在我毕业论文写作期间,老师给我提供了各方面知识上的指导和日常生活上的关怀,没有您这样的帮助和关怀,我不会这么顺利的完成毕业设计,借此机会,向您表示由衷的感激。接着,我要感谢我的室友给了我很多宝贵的意见。在毕业设计的短短3个月里,你们给我提出很多宝贵的意见,给了我不少帮助还有工作上的支持,在此也真诚的谢谢你们。感谢山东科技大学,感谢您为我提供了4年大学学习的机会,也许我马上就要离开,但我永远不会忘记在这4年中哭过、笑过的回忆。参考文献1 Vizimuller. RFdesign Guide-systems,cCrcuits,and Equations M.Boston:ArtechHouse,1995.2Keil Software.The Final WorldOnthe 8051M. Germany:Keil.Elektronik Gmbh and Keil software,1997.3 梁小流,梁建和.基于89S52汽车防撞雷达系统设计J.机电工程技术,2011,10(4):4951.4 唐桃波, 陈玉林. 基于AT89C51的智能无线安防报警器 J. 电子设计应用, 2003, 5(6): 4951.5 李全利. 单片机原理及接口技术M. 北京: 北京航空航天大学出版社, 2004.6 薛均义, 张彦斌. MCS-51系列单片微型计算机及其应用M. 西安: 西安交通大学出版社, 2005.7 徐爱钧, 彭秀华. 单片机高级语言C51应用程序设计M. 北京: 北京航空航天大学出版社, 2006.8 康华光. 电子技术基础(模拟部分)M. 北京: 高等教育出版社, 2004.9高海生,杨文焕.单片机应用技术大全M.成都:西南交通大学出版社,1996.10张友德,赵志英,涂时亮.单片机微型机原理、应用与实验M.上海:复旦大学出版社,1997.附件1:电气原理图PCB图程序代码:#include /调用单片机头文件#define uchar unsigned char /无符号字符型 宏定义变量范围0255#define uint unsigned int /无符号整型 宏定义变量范围065535#include #include eeprom52.h/数码管段选定义 0 1 2 3 4 56 7 8 9uchar code smg_du=0 x28,0 xee,0 x32,0 xa2,0 xe4,0 xa1,0 x21,0 xea,0 x20,0 xa0, 0 x60,0 x25,0 x39,0 x26,0 x31,0 x71,0 xff; /断码uchar dis_smg8 =0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8;/数码管位选定义sbit smg_we1 = P34; /数码管位选定义sbit smg_we2 = P35;sbit smg_we3 = P36;sbit smg_we4 = P37;sbit c_send = P32;/超声波发射sbit c_recive = P33;/超声波接收sbit beep = P23; /蜂鸣器IO口定义uchar smg_i = 3; /显示数码管的个位数bit flag_300ms ;long distance; /距离uint set_d; /距离uchar flag_csb_juli; /超声波超出量程uint flag_time0; /用来保存定时器0的时候的uchar menu_1; /菜单设计的变量/*1ms延时函数*/void delay_1ms(uint q)uint i,j;for(i=0;iq;i+)for(j=0;j120;j+);/*处理距离函数*/void smg_display()dis_smg0 = smg_dudistance % 10;dis_smg1 = smg_dudistance / 10 % 10;dis_smg2 = smg_dudistance / 100 % 10 & 0 xdf; ;/*把数据保存到单片机内部eeprom中*/void write_eeprom()SectorErase(0 x2000);byte_write(0 x2000, set_d % 256);byte_write(0 x2001, set_d / 256);byte_write(0 x2058, a_a);/*把数据从单片机内部eeprom中读出来*/void read_eeprom()set_d = byte_read(0 x2001);set_d = 8;set_d |= byte_read(0 x2000);a_a = byte_read(0 x2058);/*开机自检eeprom初始化*/void init_eeprom()read_eeprom();/先读if(a_a != 1)/新的单片机初始单片机内问eepromset_d = 50;a_a = 1;write_eeprom(); /保存数据/*独立按键程序*/uchar key_can; /按键值void key() /独立按键程序static uchar key_new;key_can = 20; /按键值还原P2 |= 0 x07;if(P2 & 0 x07) != 0 x07)/按键按下delay_1ms(1); /按键消抖动if(P2 & 0 x07) != 0 x07) & (key_new = 1)/确认是按键按下key_new = 0;switch(P2 & 0 x07)case 0 x06: key_can = 3; break; /得到k2键值case 0 x05: key_can = 2; break; /得到k3键值case 0 x03: key_can = 1; break; /得到k4键值else key_new = 1;/*按键处理显示函数*/void key_with()if(menu_1 = 1)/设置报警if(key_can = 2)set_d + ;/加1
展开阅读全文