资源描述
JIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY 本科毕业设计(论文)基于单片机的汽车防撞测距警报系统 学院名称: 电气信息学院 专 业: 测控技术与仪器 班 级: 08东测控 姓 名: 陶银杰 指导教师姓名: 朱 雷 指导教师职称: 讲 师 2012年6月 江苏技术师范学院毕业设计说明书(论文)基于单片机的汽车防撞测距警报系统摘要: 本文介绍了一种单片机控制的汽车防撞测距报警系统,此系统利用AT89C52单片机作为主控制器,结合超声波测距原理,通过发射和接收超声波信号,再由单片机进行数据处理,通过数码管显示距离,当超过设定的距离时蜂鸣器报警。该系统采用软、硬结合的方法,具有模块化和多用化的特点。该论文对系统各个单元的原理进行了介绍。对组成的各系统电路的芯片进行了介绍,并阐述了它们的工作原理。此系统具有结构简单,精度高,使用方便等特点。 关键词:单片机;超声波 ;测距IAutomobiles Anti-collision Distance Alarm System Based on MUCAbstract: This article describes a microprocessor controlled car crash ranging alarm system, this system using AT89C52 microcontroller as the main controller, combined with the principle of ultrasonic distance measurement by transmitting and receiving ultrasonic signals, and then by the microcontroller for data processing, through digitaldisplay distance, buzzer alarm when exceeds a set distance. The system uses a soft hard combination, modular and multi-use characteristics. The paper introduced the principle of the system unit. The composition of each system circuit chips were introduced, and described how they work. This system has a simple structure, high precision, easy to use features.Keywords: Single-chip microcomputer ;Ultrasonic wave;Measuring distance目录前言1第一章 系统设计方案31.1总体方案设计31.2方案的比较与确定31.3 方案的确定9第二章 系统硬件设计102.1 单片机最小系统102.1.1 AT89C52芯片102.1.2 复位电路122.1.3 时钟电路132.2 超声波发射电路和接受电路142.2.1 HC-SR04主要技术参数142.2.2 HC-SR04工作原理152.3显示电路152.4 报警电路152.5 L298N驱动电路172.6系统原理18第三章 系统软件的设计193.1系统软件实现功能193.2 主程序193.3 显示子程序和报警子程序21第四章 系统调试与分析264.1 硬件调试264.2 软件调试264.3 数据测量与分析27结束语28参考文献29致谢31附录1 原理图32附录2 元件清单34附录3 源程序35附录4 实物图44江苏技术师范学院毕业设计说明书(论文)前言随着我国经济迅速发展,人民生活水平不断提高。汽车已经成为人们日常生活中必不可少的一部分,我国的汽车数量逐年上升,但是随着汽车驾驶员数量的逐渐增加也引发了一系列的问题。汽车的数量在大副攀升,交通拥挤状况也日趋严重,撞车、盗窃1事件屡屡发生,造成了不可避免的人身伤亡和经济损失,针对这种情况,设计一种响应快,可靠性高且较为经济的汽车防撞报警系统势在必行。超声波测距法是最常见的一种距离测距方法2-4,应用于汽车的前后左右防撞的近距离和低速状况下。在汽车防撞报警系统中,超声波作为一种特殊的声波,同样具有声波传输的基本物理特性折射,反射,干涉,衍射,散射。汽车防撞报警器5将单片机的实时控制及数据处理功能,与超声波的测距技术、传感器技术相结合,可检测汽车运行中后方障碍物与汽车的距离及汽车车速,通过数显装置显示距离,并由报警电路根据距离远近情况发出警告声。 本课题把硬件电路和软件有机的结合起来,完成汽车行车、倒车报警系统的设计,能够了解单片机技术的现状,而且通过对电路系统的设计,学习掌握了数字电路从原理图到PCB版的全部过程,形成完善的设计思路以及思想,并通过对汽车超声波报警器的软件设计的过程,锻炼应用C以及相关汇编语言等软件设计电路程序的能力为以后参与实际工作奠定良好的设计基础。由于计算机技术和高速设备的快速发展,数字化采集和分析的超声波信号的持续发展成为了可能。国内也出现了各种类型的数字超声波检测设备,并已成为超声波探测发展方向。厦门大学一些学者们研究的超声波回声剖面分析,该方法主要是在测距中通过两次探测求取回波包络曲线来得到回波的起点,这种方法处理后的超声波传播时间的准确性大大的得到改善。意大利Carullo等人推出了一种自适应的系统,使用一个特殊的发射波形,取得良好的回波包络和环境噪声估计,设置一定的回声开平电路,且采用自动增益控制放大器的优点,通过这些措施来提高超声检测精度。此外,也有很多的文献研究,利用数字信号处理技术和小波变换理论来提高传输时间的准确性。这种研究已取得了良好效果。目前,计算机价格大幅度下降,采用非一体化超声波检测仪器,计算机可发挥它一机多用的各种功能,这种方法可以节约很多。过去那种全功能的仪器设置,还不如单独的超声仪,计算机可充分发挥各自特点。高智能化检测仪器只能满足检测条件,使用环境,重复性测试内容等基本情况一样,才可充分发挥其特有功能。仪器设计也应从实际情况出发,才能满足用户的要求。综上所述,我国超声波仪器的研制与生产,有较大发展,有的型号已超过国外同类仪器水平。第 45 页 共 44 页第一章 系统设计方案1.1总体方案设计按照系统设计的功能要求,初步确定设计系统主要由晶振电路、复位电路、超声波发射电路、超声波接收电路、驱动电路、显示电路、报警电路组成。见系统框图1-1。图1-1 系统框图由于超声波发射与接收电路是整个系统最重要部分,因此确定一种好的设计方案关系到整个系统的精确性和安全可靠性。本设计通过多种方案比较,最后达到最佳方案确定。1.2方案的比较与确定方案一:40kHz的超声波发送脉冲信号由单片机的P1.0口送出,发出一系列的脉冲群,每一个脉冲群的持续时间大约为0.5ms左右。信号经过三极管放大,再经过阻抗匹配电路即变压器(变压器输入输出比为1:10)后,驱动超声波发射头,发射换能器两端就加上了高电压,内部的压电晶片开始震动,经过压电换能器将发出40kHz的脉冲超声波。当超声波遇到障碍物时就会产生反射波,发射波返回到超声波传感器 7-8上,尽管发射部分的脉冲电压比较高,但是由回波引起的接受压电晶片产生的射频电压幅度近距离有几毫伏,远距离还不到几毫伏,由于在较远距离的情况下,声的回波很弱,因而转换为电信号的幅值也很小,为此要求将信号放大6000倍左右。信号经过放大整形电路产生一个负脉冲信号,使单片机产生中断。在接收端第一级,要求其放大倍数为了C945这62倍左右,所以选择只三极管,达到了放大倍数。第二三级选用了一枚集成放大器NE5532,它集成了两个放大器,可达到预定放大倍数。方案二:由施密特振荡器和数字功放电路组成,由P1.0口发出的同步脉冲信号如图1-2。它启动振荡器,输出40kHz的高频信号,经整形及功放电路,加至发射换能器,发出40kHz的超声波。接收电路主要由回波放大接收及比较控制电路组成,如图1-2所示。图1-2 接收控制及接口电路初始,比较器A1同相端已经通过调整Rr,使其电压略高于2.5V。因此A1应输出高电平,但由于D1相位作用,A1输出低电平,即RS触发器的=0,Q=1, =1,= 0。当P1.0发出启动信号,在A点形成正脉冲,经N1反相,= 0,D1相位释放,= 1,Q=0,= 1(正跳),T0计数器开始计数。脉冲过后,= 1,=1,Q=0,= 1。回波信号经放大滤波,送至比较器A1的反相端,它是叠加在2.5V电压上的交变40kHz的信号。它的前沿使A1输出低电平。=0,= 1,Q=1,= 0(负跳),即获得负跳沿信号,CPU响应中断,T0计数停,计数值N1送存RAM。由于发射探头和接收探头都是平行放置且距离较近,发射探头发射超声波时,接收探头会引起强烈的感应信号,因此必须将其隐去。当P1.0输出启动信号,主控同步脉冲加至比较器A2时,A2输出一个远大于2.5V的电压,经过D2降压后约为7.5V左右,加至A1同相端,又C2的延迟作用,A1同相端产生一定宽度和高度的方波,它的幅度和宽度均大于发射串扰信号,A1输出端即RS触发器的端仍为高电平,这样串扰信号将被隐去。这段时间称为盲区,约2ms。方案三:(1)发射电路。发射电路由555多谐振荡器和数字功率放大器组成。采用555 多谐振荡器可以实现宽范围占空比的调节,并且电路设计简单占用面积小。如图1-3所示,由单片机P1.0口发出同步脉冲信号,该同步脉冲启动多谐振荡器,使其输出20kHz的高频电压信号,经过整形及功放电路加至超声波换能器探头,根据逆压电效应,产生振动频率为20kHz 的超声波。(2)接收电路。接受电路主要由回波放大接收电路及比较电路组成。如图1-4所示,首先调节可调电阻使比较器A1 同相端电位高于2.5V。由于D1输出低电平, 而反相器N 输出高电平,所以有RS 触发器的=0,=1,Q=1,=0当P1.0发出启动信号(如图1-3中(1)所示)经过微分电路形成的同步脉冲信号通过反相器N 的反相功能,=0,D1 箝位释放=1,Q=0,=1(正跳变),T0 计数器开始记数,脉冲经过之后=1,Q=0,=1。 回波信号经过放大滤波送至比较器A1的反相端,它是叠加在2.5V上的频率为20KHz的高频电压信号。如图1-3中的(3)所示,其前上升沿使A1输出低电平,=0,=1,Q=1,=0(负跳变);即获得负跳沿信号,CPU 响应中断请求,使T0计数器停止计数,记数值N 送存RAM。(3)盲区干扰信号的消隐。通常发射换能器和接收换能器都是平行放置且距离较近。当发射探头发射超声波时接收换能器接收到的第一个波是串扰直通波,也称泄漏波它是近源的波束旁瓣或通过绕射由发射换能器直接到达接收换能器而造成的。因此,通常接收探头会引起强烈的感应信号。所以必须将其隐去,当P1.0输出启动信息,同步脉冲加至比较器A2时,A2 输出一远大于2.5V 的电压, 经D2降压后大约等于7.5V,加至A1同相端,由于C1延迟作用,A1同相端将产生一定宽度和高度的方波,如图1-3中的(4)所示。它的宽度和幅度都大于发射串扰信号,A1 输出端即RS触发器S端仍为高电平,这样串扰信号将被隐去,这段时间称为盲区,约2毫秒。图1-3 测距脉冲图图1-4 超声波回波接收电路方案四:(1)发射电路。发射电路由脉冲产生电路和发射电路组成。脉冲产生电路的主要任务是产生40kHz 脉冲电压。它由与非门和电阻电容构成振荡电路,由单片机P1.1 口控制其是否工作。脉冲产生电路的输出电压经脉冲变压器升压后输出到超声传感器。其中,脉冲变压器对脉冲电压变换值的大小直接影响测距范围,应尽量提供脉冲变压器副边电压幅值。(2)接收电路。接收电路的主要任务是检测回波,并向单片机发出中断以停止计时。接收电路设计的好坏直接影响超声波在空气中传播时间的测量。接收部分电路由检波电路、滤波放大电路和整形电路组成。检波电路拾取回波中的正半波,以便后级电路放大;整形电路把回波信号整理为单片机系统能够接收的信号并向单片机申请中断以停止计时。接收电路的主体是滤波放大电路。由于超声回波信号十分微弱并含有噪声,S/N较小,所以接收电路设置了两级高Q值的滤波放大电路。滤波放大电路采用二阶带通滤波放大器,一级和二级滤波放大电路采用相同的结构和参数。其电路如图1-6所示。图1-6中,R11、R12、C13、C14、R15 和运算放大器Amp1A 组成了一级滤波放大电路;R21、R22、C23、C24、R25 和运算放大器Amp1B 组成了二级滤波放大电路。图1-5发射部分电路图1-6 一次和二次滤波放大电路发射接收电路中应考虑的各种问题。发射波形如图 1-7,传感器的振荡波形要经过一段时间才能达到稳定状态,理论上信号的幅度时指数上升的,Q 各周期后达到满幅度的 95%,1.5Q 个周期后达到 99%。为提高传感器的灵敏度,Q 值一般不能太低,为使传感器充分振荡起来,发射脉宽要求不能小于 Q 个振荡周期,才能使发射幅度基本达到最大。考虑到测量“盲区”影响,这里选择脉宽为 120s,包含 5 个调制的 44kHz 的方波信号。图1-7 发射波形测距器的发射波形如图1-7,在规定时刻将一持续时间为的正弦波加到传感器上,然后关闭发射电路,打开接收通道,接收来自障碍物的反射波。 传感器发射电压大小主要取决于发射信号损失及接收机的灵敏度,综合各种损耗的因素,包括往返传播损失,声波传输损失,声波反射损失,环境噪声损失,接收预放大单元的作用是对有用的信号进行放大,并抑制其它的噪声和干扰,从而达到最大信噪比,以利检测单元的正确检测。如何达到信号的最佳接收关系整个系统的准确性和安全性,所以也应考虑到影响接收信号的各方面问题。在传感器接收到的信号中,除了障碍物反射的回波外,总混有杂波和干扰脉冲等环境噪声。室内环境中噪声主要集中在低频段,远离回波信号频率,因此系统的总噪声系数主要有接收机的内部噪声决定,其功率谱宽度远大于接收机的通频带。我们可以近似的将其作为白噪声处理,根据已有知识,输入为已知信号加白噪声的条件下,匹配滤波器的输出信噪比最大。匹配滤波器具有以下特点:(1)输出最大信噪比与信号波形无关;(2)匹配滤波器对信号的幅度和时延具有适应性,即对只有幅度和出现时间不同的信号,它们的匹配滤波器是相同的;(3)匹配滤波器与相关接收和相关器具有等效性。实际上很难得到精确的匹配滤波器,由于单个射频脉冲的频谱是连续的,用普通的窄带滤波器就能把其主峰部分(w 附近)滤波出来,适当的选择滤波器的通带宽度就能取得与匹配滤波器相差不多的效果。图 1-8信号放大器原理图接收放大器的作用是放大有用信号,并抑止其它噪声与干扰,从而达到最大的信噪比,以利于检测电路的正确检测。放大器组成框图如图 1-8,采用三级放大电路。前置放大主要起阻抗匹配的作用,使输入信号功率最大。带通放大器选择最佳时间带宽积,以达到匹配滤波的效果。模拟开关起收发隔离的作用。在测量近距离时,模拟开关闭合,发射信号可以进入接收通道;测量远距离时,模拟开关断开,发射信号不可以进入接收通道。程控放大器分为 2 档,分别放大 10 倍和 100 倍,由控制端 A1,A0 控制。1.3 方案的确定综合以上四种方案比较,最后确定直接采用超声波测距模块。该电路简单方便,经济实用。比较适合本设计需要。由AT89C52单片机编程,执行程序后P1.0口产生脉冲信号,经HC-SRO4超声波测距模块,产生超声波和接收。将超声波调制脉冲变为交变电压信号,送入MAX232接收器中进行处理。输出端7高电平越变为低电平,作为中断请求信号,送至单片机处理。在启动发射电路的同时启动单片机内部的定时器T0,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生一个负跳变,在INTO或INT1端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。第二章 系统硬件设计硬件电路主要包括六个部分:单片机外围电路、超声波发射和接收电路、显示电路、报警电路、L298N驱动电路组成。运用L298N芯片驱动小车行使,利用HC-SR04超声波传感器模块来实现测距功能。2.1 单片机最小系统单片机最小系统通常作为系统的最前端,它既是协调整机工作的控制器,又是数据处理器。本设计中单片机最小系统主要是由AT89C52芯片、复位电路、时钟电路组成。2.1.1 AT89C52芯片AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。89C52相对于89C51优越性包括:第一是RAM空间增大:AT89C51有128字节的内部RAM,称为DATA存储区。AT89C52的内部RAM扩展为256字节,其中高128字节,位于从80H开始的地址空间中,称为IDATA存储区,但IDATA区的访问只能是间接寻址方式。第二是内部Flash变大:AT89C51有4 kB的内部Flash PERAM,而AT89C52的内部Flash PERAM增加1倍,达到8kB。 第三是中断源增加:在AT89C52申P1.0和P1.1还可分别作为定时器/计数器2的外部计数输入(P1.O/T2)和(P1.1/T2EX),也就是说,P1.0同时可作为定时器针数器T2的外部计数输入和输出占空比50%的时钟脉冲端口,Pl.l同时可作为定时器/计数器T2捕获厘新装载触发和方向控制端口。故AT89C52除了具备AT89C51的定时器/汁数器T和定时器/计数器Tl,还额外增加了一个定时器/计数器12。而定时器/计数器T2的控制和状态位单独位于,I2CON、T2MOD,定时器/计数器12在16位捕获方式或自动重新装载方式下的捕获/重载寄存器组是(TCA02H、RCAP2L)。 AT89C52具有40个引脚,主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。芯片引脚图如图2-1所示。 图2-1 AT89C52单片机芯片根据系统设计要求,各接口功能9-11如下:P1.0: 产生输出一个脉冲信号。INT0: 产生中断请求,接前方测距电路。INT1: 产生中断请求,接前方测距电路。P0.0: 用于显示输出,接显示器。P0.1: 用于显示输出,接显示器。P0.2: 用于显示输出,接显示器。P0.3: 用于显示输出,接显示器。P0.4: 用于显示输出,接显示器。P0.5: 用于显示输出,接显示器。P0.6: 用于显示输出,接显示器。P0.7: 用于显示输出,接显示器。L298N与单片机连接:P1.2:用于连接IN1。P1.3: 用于连接IN2。P1.4: 用于连接ENA。P1.5: 用于连接IN3。P1.6: 用于连接IN4。P1.7: 用于连接ENB。P2.5: 接报警电路XTAL1:接外部晶振的一个引脚。在单片机内部,它是一反相放大器输入端,这个放大器构成了片内振荡器。它采用外部振荡器时,引脚应接地。XTAL2:接外部晶振的一个引脚。在片内接至振荡器的反相放大器输出端和内部时钟发生器输入端。当采用外部振荡器时,则此引脚接外部振荡信号的输入。RST:AT89C52 的复位信号输入引脚,高电位工作,当要对芯片又时,只要将此引脚电位提升到高电位,并持续两个机器周期以上的时间,AT89C52 便能完成系统复位的各项工作,使得内部特殊功能寄存器的内容均被设成已知状态。2.1.2 复位电路(1)单片机AT89C52作为主控芯片,控制整个电路的运行。单片机外围需要一个复位电路,复位电路的功能是:系统上电时提供复位信号,直至系统电源稳定后,撤消复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。该设计采用含有电阻的复位电路,复位电路可以有效的解决电源毛刺和电源缓慢下降(电池电压不足)等引起的问题,在电源电压瞬间下降时可以使电容迅速放电,一定宽度的电源毛刺也可令系统可靠复位。复位电路如图2-2所示。 图2-2 复位电路(2)复位是单片机的初始化操作,使CPU及各专用存储器处于一个确定的初始状态,其中把PC的内容初始化为0000H,使单片机从0000H单元开始执行程序,除了系统的正常开机(上电)复位外,当程序运行出错或操作错误使系统处于死循环状态时,为摆脱困境,可按复位键进行复位,复位电路由片外和片内两部分电路组成。AT89C52的RST引脚为复位引脚,只要在RST引脚上出现两个机器周期以上的高电平,即可实现复位。复位通常有上电复位和按键复位两种方法。本设计采用的是上电复位,开机时电容器是空的,上电后就对电容充电,充电电流,在电阻上形成正电压,RST引脚就处于高电平,就可以达到复位的目的。在实际应用系统中,为了保证复位电路可靠工作,常将RC电路接施密特电路后再接入单片机复位端和外围电路复位端。这特别适合于应用现场干扰大、电压波动大的工作环境,并且,当系统有多个复位端时,能保证可靠地同步复位。2.1.3 时钟电路时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在惟一的时钟信号控制下严格地按时序进行工作 。该时钟电路由两个电容和一个晶体振荡器组成。X1是接外部晶体管的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。输出端为引脚X2,在芯片的外部通过这两个引脚接晶体振荡器和微调电容,形成反馈电路,构成一个稳定的自激振荡器。晶振电路如图 2-3 所示。图2-3 晶振电路电路中的C3和C4一般取30PF左右,而晶体振荡器的频率范围通常是1.212MHz,而电路中采用12MHz,晶体振荡器的频率越高,振荡频率就越高。2.2 超声波发射电路和接受电路本设计采用的是HC-SRO4超声波测距模块12,它有发生电路和接受电路构成。模块性能稳定,测度距离精确。能和国外的SRF05、SRF02等超声波测距模块相媲美。模块精度高,盲区达到(2cm),有稳定的测距功能。本模块可提供全套测距程序:C51,PIC18F877,超声波LCD1602显示,超声波LCD12864显示,数码管显示,串口显示等,测距参考程序。2.2.1 HC-SR04主要技术参数(1)使用电压:DC5V; (2)静态电流:小于2mA;(3)电平输出:高5V; (4)电平输出:底0V;(5)感应角度:不大于15度; (6)探测距离:2cm-450cm ;(7)高精度:可达0.3cm;(8)接线方式:VCC、trig(控制端)、 echo(接收端)、GND 2.2.2 HC-SR04工作原理(1)采用IO触发测距,给至少10us的高电平信号;(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;(3)有信号返回,通过IO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间。2.3显示电路显示器是一个典型的输出设备,而且其应用是极为广泛的,几乎所有的电子产品都要使用显示器,其差别仅在于显示器的结构类型不同而已。最简单的显示器可以使LED 发光二极管,给出一个简单的开关量信息,而复杂的较完整的显示器应该是 CRT监视器或者屏幕较大的 LCD 液晶屏。综合课题的实际要求以及考虑单片机的接口资源,采用工业字符型液晶,能够同时显示16x02即32个字符。1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图。本设计中,1602用来显示测试的距离,1602显示电路如图2-4所示。2.4 报警电路报警电路的作用是当小车与障碍物之间的距离达到初始设置距离的时候,蜂鸣器发出警报。报警电路由一个三极管、一个电阻和一个蜂鸣器组成的。当单片机P1.5端口为低电平时,报警。报警电路如图2-5所示。图2-4显示电路图2-5 系统报警电路2.5 L298N驱动电路L298N 为SGS-THOMSON Microelectronics 所出产的双全桥步进电机专用驱动芯片,内部包含4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge的高电压、大电流双全桥式驱动器,接收标TTL逻辑准位信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信号。本设计是用L298芯片来驱动小车。L298N管脚图如图2-6所示。图2-6 L298N管脚图单片机的I/O端口分别与L298N的IN1,IN2,IN3,IN4连接,接受脉冲信号。1脚和15脚发射极分别引出以便接入电流采样电阻,形成电流传感信号。 OUT1,OUT2,OUT3,OUT4分别接电机的一相。5脚,7脚,10脚和12脚接输入控制电平。ENA,ENB控制使能端,控制电机的停转,高电平有效。驱动电路图如图2-7所示。图2-7驱动电路图2.6系统原理系统原理图见附录1。工作原理: 由单片机AT89C52编程产生方波信号,经过P1.0口连接到超声波模块发送超声,再经过放大电路,驱动超声波发射探头发射超声波,发射出的超声波经障碍物反射回来,经过P3.2口由超声波接收头接收信号。通过接收电路的检波放大、积分整形以及一系列的处理,送至单片机。单片机利用声波传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由单片机控制显示模块,显示出具体的距离。第三章 系统软件的设计在系统硬件构架了超声波测距的基本功能之后,系统软件所实现的功能主要是针对系统功能的实现及数据的处理和应用。根据第二章所述系统硬件设计和所完成的功能。3.1系统软件实现功能(1)信号控制。在系统硬件中,已经完成了发射电路、接收电路、检测电路、显示电路、门限检测的设计。在系统软件中,要完成增益控制信号、门控信号、发射脉冲信号、峰值采集信号、远近控制信号的时序及输出。(2)数据存储。为了得到发射信号与接收回波间的时间差,要读出此刻计数器的计数值,然后存储在 RAM 中,而且每次发射周期的开始,需要对计数器清零,以备后续处理。(3) 信号处理。RAM 中存储的计数值并不能作为距离值直接显示输出,因为计数值与实际的距离值之间转换公式为 (3-1)其中,T 为发射信号到接收之间经历的时间,Tr 为方波信号作为计数脉冲时计数器的时间分辨率,N 为计数器的值。在这个部分中,信号处理包括计数值与距离值换算,二进制与十进制转换。(4) 数据传输与显示。经软件处理得到的距离送显示输出,用1602 液晶表示。由于采用了单片机AT89C52并考虑整个系统的控制流程,整个系统软件都有AT89C52系列单片机汇编语言实现。由于距离值的得出及显示是在中断子程序中完成的,因此在初始化发射程序后进入中断响应的等待。在中断响应之后,原始数据经计数值与距离值换算子程序,二进制与十进制转换子程序后显示输出。整个系统软件功能的实现可以分为主程序、中断服务程序几个主要部分。3.2 主程序主程序是单片机程序的主体,整个单片机端系统软件的功能的实现都是在其中完成的,程序首先完成初始化过程,然后是一个重复的控制发射信号的过程,即调用发射子程序几遍,而且每次发射周期结束都会判断在发射信号后延时等待的过程中是否发生了中断,即是否有回波产生来判断程序得流程,有回波的话,再经过测距的子程序流来计算距离,判断所测距离是否在安全范围内,以驱动显示和报警电路。主程序流程图如图3-1所示。图3-1 主程序流程图上电后小车显示“ Aptitude Crash-”“ worthy System”,按下功能键后开始设定报警距离值,设定在10cm以上比较好,设定时小车停止一切动作,功能键按下一次后同时按+,-键设定值,设定好后按确定键,则设定值有效,功能键按下两次后小车行驶并开始测距判断,功能键按下三次后,显示初始显示状态。(1)脉冲的产生与超声波发射。在脉冲产生前先对定时/计数器T0进行初始化,在这里选择的是工作方式1定时器模式,所以TMOD应该设定为0x11,再开启T0的同时开发发射超声波脉冲。这由单片机执行下面程序来产生。#include sbit csbout=P10; /超声波发送前方测距电路的输入端接单片机P1.0端口,单片机执行上面的程序后,在P1.0 端口输出一个脉冲信号,经过三极管T放大,驱动超声波发射头发出脉冲超声波,且持续发射。 (2)超声波的接收与处理。超声波的接收是由外部中断口INT0是否有中断脉冲产生来判断的。定时子程序转回来的时候,要对中断进行初始化。选定的是INT0口,工作方式为脉冲方式。#include sbit csbout=P10; /超声波发送 sbit csbint=P11; /超声波接收 声波接收电路经过前置放大、限幅放大、宽频带滤波器、检波器及比较器、整形、置后比较器的一系列工作之后,在信号输出端7脚由高电平跃变为低电平,作为中断请求信号,送至单片机处理。 前方测距电路的输出端接单片机INT0端口,中断优先级最高。部分源程序如下:write_com(0x80); /显示前方障碍物距离write_com(0x80+0x40); /显示设定报警距离(3)数据读取和储存。为了得到发射信号与接收回波间的时间差,要读出T0计数器的计数值,然后存储在 RAM 中,而且每次发射周期的开始,需要对计数器清零,以备后续处理。(4)计算超声波传播时间。T0中读取出来的时间差数据并不能作为距离值直接显示输出,因为时间差值与实际的距离值之间转换公式为 (3-2)其中,V为声音在常温下的传播速度,T为发射信号到接收之间经历的时间 13-15。3.3 显示子程序和报警子程序考虑到提高系统资源的利用率,显示采用动态显示法实现。部分源程序,显示流程图和报警流程图如图3-2和3-3所示。超声波测得的数据送至单片机处理后,由LCD1602显示出数据来。图3-2显示程序图小车行驶中,超声波对障碍物距离进行测距,然后把数据送至单片机处理,当超声波测得的距离小于设定值的时候,蜂鸣器发出警报,小车停止前进。当测得的距离大于设定值时,小车继续前进。 图3-3 报警流程图部分源程序如下:sbit temp_control=P23;/报警距离设计 按一次为距离设计 , 按两次为正常工作状态sbit temp_1=P22; /设定时确定键控制 sbit temp_add=P21; /加键sbit temp_sub=P20; /减键uchar num; /显示位数计数uchar table116= Distance=_._M ;uchar table216=Dis_Setup= . M ;uchar code table316= Aptitude Crash-;uchar code table416= worthy System ;uchar table516=Dis_Setup= CM;uchar code table616=Key Sure Button ;ucharcodeASCII15=0,1,2,3,4,5,6,7,8,9,.,_,M;uint time=0; /定时器值unsigned long S=0; /存放距离值unsigned long S_flag = 20; /存放报警距离值,初始值为20cmunsigned long temp_value; /设定值预放存储器bit flag =0; /定时器溢出标志uchar disbuff4 = 0,0,0,0,;uint temp_control_m; /控制按键次数void delay(uint n) /延时1MS uint x,y; for(x=n;x0;x-) for(y=110;y0;y-); /*/ void delayms(uint ms) /延时10MSuchar i=100,j;for(;ms;ms-)while(-i)j=10;while(-j);void write_com(uchar com) /写地址 lcdrs=0;P0=com;lcden=0;delay(5);lcden=1;delay(5);lcden=0;void write_date(uchar date) /写数据 lcdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0;void init() /液晶初始化 lcden=0;write_com(0x38);delay(20);write_com(0x0c);delay(20);write_com(0x06);delay(20);write_com(0x01);delay(20);IN1 = 1; /初始化电机驱动模块,使电机等待正转IN2 = 0;IN3 = 1;IN4 = 0;ENA = 0;ENB = 0;baojing = 1; /关闭报警temp_value = S_flag;第四章 系统调试与分析本设计由硬件电路和软件组成,所以系统调试时要分为硬件调试和软件调试。硬件调试由于涉及到较多的模块,所以调试起来比较费劲,设计的不定的因素也比较多,因此调试的时候采用分块调试方法,排除各个模块的干扰。软件调试时,不同的CPU,其汇编语言有可能有所差异,所以不易移植。4.1 硬件调试 硬件调试分两步:第一步:系统上电之前,先用万用表等工具、根据硬件逻辑设计图,仔细检查各个模块线路是否连接正确,并核对元器件型号、规格和安装是否符合要求,应特别注意电源系统的检查,防止电源的短路的极性错误,并重点检查系统总线是否存在相互之间短路或与其他信号线的短路。第二步:第一的调试,只是对系统进行初步调试,可以排除一些明显的故障,而硬件故障(如各个部件内部存在的故障和部件之间来连接的逻辑错误)主要是靠软件和硬件的联调来排除。4.2 软件调试首先是通过软件仿真,先进行单个程序仿真,然后再进行整体程序仿真,不断修改,逐步完善其功能。在这步完成后应该确定其I/O口的分配,时钟的选择和各输入信号的逻辑性及给出系统所需的信号。调试的时候一定要细心,有耐心,踏踏实实的一步一步调,不可急,否则程序会一塌糊涂。 其过程分为以下几个步骤: 第一步:建立源程序。通过计算机开发系统的编辑软件,按照所要求的格式、语法规定、源程序输入到开发系统中,并存在磁盘上。第二步:在计算机上,利用KILE软件对第一步输入的源程序进行编译,变为可执行的目标代码。如果源程序有语法错误,则其错误将显示出来,然后返回到第一步进行修改,再进行编译,知道语法错误全部纠正为止。第三步:动态在线调试。对于和系统无联系的程序,可以借助动态在线调试手段,如单步运行、设置断点等,发现逻辑错误,然后返回刀片第一步修改,直到逻辑错误纠正为止。对于和系统硬件紧密相关的程序,则需要软件,硬件同时进行调试,将程序烧入CPU,然后将CPU插入系统,发现硬件故障排除故障,发现逻辑错误,修改程序,消除逻辑错误。4.3 数据测量与分析介于实际测量工作的局限性,最后在测量中选取了10cm,15cm,20cm,50cm,四个距离进行测量,每个距离连续测量7次,得出测量数据,如表所4-2示,从表中的数据可以看出,测量只和实际值之间都存在误差16,但对于连续测量的准确性还是比较高的。对所测的每组数据去掉一个最大值和一个最小值,在求其平均值,用来作为最终的测量数据,最后进行比较分析。这样处理数据也有一定的科学道理和合理性。从表中的数据开,虽然受到了温度的影响,此系统是无法避免的,但从全部数据来看,本设计的绝对误差都不较小,也比较稳定。测距误差主要来源于以下几个方面:超声波发射与接收探头与被测点存在一定角度,这个角度直接影响到测量距离的精确值,本系统中只能靠目测及简单的工具微调超声波发射头和接收头的中轴线平行,股存在一定误差。 表4-2 测试数据表实际距离(cm)测得距离(cm)误差(cm)102100.215.4150.42120154504表4-2数据表明,在1020cm距离之间的测量,本设计的精确度相当高,误差比全部控制在1以下,而在50cm以上的距离的测量中,误差略又升高,最小的可测距离是由接受换能器对声波脉冲的直接接受能力决定。结束语经过几周的奋战,我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点太片面。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺,这次做论文的经历也会使我终身受益,我感受到做论文是要用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,那也就不叫论文了。通过这次毕业设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到很多问题,可以说是困难重重,必须要一一解决。同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,希望这次的经历能让我在以后学习中激励我继续进。参考文献1 晏敏、曾云、曾健平等远程汽车防盗报警系统的设计J宇航测技术,2004,24(6):49-512 罗庆生,韩宝玲一种基于超声波与红外线探测技术的测距定位系统J计算机测量与控制,2005,13(4):304-3013 HERRINGTON D R.Ultrasonic range finder uses few componentsJ. EDN,1999,(6):23-264 Riihijarvi J,Mahonen P,Saarancn M j.ct al.Providing network connectivity for small apliance;Afunctionally minimize-ed embedded Web ServerJ.IEEE Comin,2001,39(10):74-795 戴巍现代汽车防撞系统J汽车维修,2006,(3)40-416 黄继昌电子元器件应用手册M北京:人名邮电出版社,20077 赵广涛,程萌杭基于超声波传感器的测距系统设计J微计算机信息,2006,22(1):129-1308 石峰高精度低成本车用超声波传感器的研制J传感器世界,2006,(1):30-329 牛余朋,成曙基于单片机的超声波测距系统J兵工自动化ORDNANCE INDUSTRY AUTOMATION ,2005,24(4):77-79 10 陈光东单片机微型计算机原理与接口技术(第二版)M武汉:华中理工大学出版社,1999:21-2511 李群芳等单片机微型计算机与接口技术(第二版)M北京:电子工业出版社,200512 盛春明超声波测距仪J电子制作,2010(05):33-36 13 张建,李钢超声波测距系统的研究与设计J合肥工业大学学报(自然科学版),2004,27(06):58-6114 张珩,刘亚杰AT89C52超声波测距倒车防撞报警系统J现代电子技术,2010,11(03):45-5015 仇成群,胡天云基于超声波的汽车防撞报警系统的设计J制造业自动化,2009,8(04):23-2616 苏伟,龚壁建等超声波测距误差分析J传感器技术,2004,23(06):10-13致谢大学生活一晃而过,回首走过的岁月,心中倍感充实,当我写完这篇毕业论文的时候,有一种如释重负的感觉,感慨良多。首先我要诚挚的感谢我的论文指导老师朱雷老师,每次遇到难题,我最先做的就是向老师寻求帮助。非常感谢他在忙碌的教学工作中挤出时间来审查、修改我的论文。还有教过和没教过我的所有老师们,你们严谨细致、一丝不苟的作风一直是我工作、学习中的榜样:你们循循善诱的教导和不拘一格的思路给予我无尽的启迪。在此,谨向老师们致以衷心的感谢和崇高的敬意。最后,我要向百忙中之中抽时对本文进行审阅,评议和参与本人论文答辩的各位老师表示感谢!附录1 原理图附录2 元件清单序号名字型号数量备注1单片机AT89C521双列直插240腿双列直插底座1供单片机用3电容10424晶振12M15电容30pF26电解100uF27排阻10K18电阻1K59发光二极管3mm红 绿410电容0.1uF211按键12*12*6112电阻1.5K413三极管PNP9012114电阻2K115开关116超声波模块收发,发射117LCD液晶显示屏1602118芯片L298N119蜂鸣器5V直流1附录3 源程序#include /器件配置文件#include #define uchar unsigned char#define uint unsigned intsbit TX = P10;sbit RX = P11;sbit lcdrs=P27;sbit lcden=P26;sbit IN1 = P12;sbit IN2 = P13;sbit IN3 = P14;sbit IN4 = P15;sbit ENA = P16;sbit ENB = P17;sbit baojing
展开阅读全文