基于AT89C52单片机的倒车雷达系统Word文档下载推荐.docx
《基于AT89C52单片机的倒车雷达系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于AT89C52单片机的倒车雷达系统Word文档下载推荐.docx(31页珍藏版)》请在冰豆网上搜索。
目录
1超声波测距的工作原理2
1.1超声波传感器2
1.2超声波测距原理及实现3
1.3超声波测距系统参数选择3
2系统硬件设计4
2.1AT89C52芯片介绍4
2.2发射与接收电路设计5
2.3显示电路设计6
2.4报警电路设计7
2.5复位电路7
2.6时钟电路8
3系统软件实现8
3.1主程序8
3.2脉冲的产生及发送9
3.3DS18B20温度采集程序10
3.4LCD显示程序10
3.5数据转换及距离计算11
3.6蜂鸣报警程序12
4基于Proteus的软件仿真12
5系统误差分析及改进14
5.1温度对超声波声速的影响14
5.2超声波反射角的影响14
5.3系统的改进14
6结论15
结束语15
致谢15
参考文献16
附录17
(电子信息工程系指导教师:
陈学军)
摘要:
随着社会的进步,人们生活水平的提高,倒车过程中的安全问题就显得越来越受人重视。
设计利用超声波测距原理来实现安全倒车。
在硬件方面采用以AT89C52芯片为核心,辅助以LCD显示电路、声音报警电路、时钟电路、复位电路和超声波收、发电路,并对各个电路核心部分的原理进行详细的阐述。
在软件编程方面是以汇编语言为主,再结合C语言在计算上的简便性,达到便于后期修改的模块化形式,同时给出了各个模块的具体流程图。
在设计的最后还给出了超声波测距系统的误差分析及改进的方案。
关键词:
倒车;
超声波;
AT89C52芯片;
测距
DesignofReverseSystemBasedonSCM
YangguangZhang
(Electronic&
InformationEngineeringDepartment,Supervisor:
XuejunChen)
Abstract:
Alongwithsocialprogress,improvementofpeople'
slivingstandards,theprocessofreversingsecuritybecomesmoreattentionbypeople.Thedesignusingultrasonicrangingprincipletoachievesafetyreverseing.InthehardwareintheAT89C52asthecorechip,aidedbyLCDdisplaycircuit,sound-lightalarmcircuit,clockingcircuit,resetcircuitandultrasonicaccept,Launchcircuit,andtheprincipleofthecorepartofeachcircuitdetailedinthispaper.Toassemblylanguageprimarilyinsoftwareprogramming,combinethesimplicityoftheClanguageinthecalculation,tofacilitatechangeofthemodularformlate,atthesametimegiveseachmoduleofthespecificflowchart.andinthedesignofthelastitgivestheultrasonicrangingsystemerroranalysisandtheimprovedscheme.
Keywords:
reversing;
ultrasonic;
AT89C52chip;
ranging
1超声波测距的工作原理
1.1超声波传感器
超声波传感器中的超声波,是以前在中学的物理课上学过的,当物体振动时会发出声响。
微小的振动不会被人耳感知,而超过一定大小的振动则会引起人耳的共鸣。
通常来说正常人能听到的声频段是在20Hz~20KHz范围之内,于是这个声频段的声波就被人称之为可听声波,超出该频率范围的声音,人耳便听不到了,其中频率低于可听声波的是低频声波,频率高于可听声波的是超声波,简称为超声。
超声波与人耳平常听到的声波在本质上其实是一致的,它们都是由一种物质振动产生,以横波或纵波的方式通过一定的介质传播开来的,是一种能量的传播形式,它们的不同点在于频率的高低与波长的长短等,超声波具有频率高,波长短的特点。
课题之所以选择超声波作为传感器来测距,更重要的是因为它在空气中指向性很强而且可传递强能量,在短时间内它的能耗又很低。
超声波传感器可以将电能转变为所需的任意超生能,当然反过来也可以将超生能转变为电能以便通过设计电路来进行数据处理[1]。
超声波传感器主要分为两个类别即电声型和流体动力型,因这两者产生的超声波频率、声波及功率各不相同,也就导致了它们将适用于不同的场合。
这里将使用的压电传感器是电声型的一种。
它的探头部分由晶片、楔块、外拉接头等组成如图1所示,是实现声电转换的重要部分。
图1超声波发生器图
超声波传感器的内部是由两块压电晶片与一个共振盘组成,它们由两根金属线引出外壳作为两电极,外部是由金属网包裹。
其工作原理简单的说就是当两电极外加的信号频率和压电晶片的固有频率相同时,两块压电晶片就产生共振,通过带动共振盘的振动,就得到了测距所需的超声波。
相反,若两电极没有通电压,而此时外来的超声波又刚好被共振盘接收时,超声波就驱动共振盘振动并带动外接有导线的压电晶片一起振动,从而就实现了把振动的机械能转变为电能的目的,再通过导线传出以便于后期相应的数据处理。
1.2超声波测距原理及实现
超声波测距的实现[2]是根据其特有的性能分为脉冲回波法、频差法和共振法。
每种方法都各有自己的优缺点,所以都是一些很有用的测距方法。
这里根据本课题的实际情况来考虑将使用脉冲回波法[3],它利用的就是超声波的反射特性。
超声波测距,其原理是向超声波的发射器输入脉冲串,通过超声波发生器产生机械波,同时单片机开始计时。
超声波通过介质沿直线传播到障碍物的表面,在被测面发生反射与折射作用后,其中被反射的部分中有一小部分可以被超声波的接收器接收,经过声/电转换,就完成了把不可测量转化为可测量的过程。
但得到的信号由于在反射到被接收过程中有较多的损耗,所以能够到达接收器的信号只剩毫伏级的正弦波信号了,固需要经放大、整形电路后传送到单片机。
期间,从发射端发射信号到接收端接收信号的时间即为往返时间t。
根据物理上计算路程的公式
利用到超声波测距的实际中可转换为
其中,s就是所求的车尾与障碍物间的距离,c是超声波在常温下于空气中的传播速度。
1.3超声波测距系统参数选择
如图2所示超声波测距系统主要由超声波传感器、超声波发射及接受电路、放大、整形电路、单片机控制电路、LCD显示、报警系统等组成。
LCD显示电路
图2超声波测距系统图
超声波传感器性能的好坏很大程度上决定了超声波测距的准确性、灵敏性。
而超声波传感器中则是以探头的选择为主,超声波传感器的探头一般有收发一体式与收发分体式,鉴于要测的表面不一定都是光滑平整的,所以反射时有一定的角度,固可以选择电子市场上较常见的收发分体式,其一般频率选40KHz。
探头的型号接收端用SZW-R40-10P传感器和发射端用SZW-S40-12M传感器,这两支传感器的特性参数如表1所示。
表1收发传感器特性参数表
型号
SZW-S40-12M
SZW-R40-1OP
结构
开放式
使用方式
发射
接收
中心频率
40±
1KHz
声压
115dBmin(0dB=0.02mPa)
-70dBmin(0dB=1V/μbar)
指向性
75°
80°
容量
2500±
25%pF
1100±
最低使用温度
-40℃
最高使用温度
85℃
最小探测距离
0.2m
最大探测距离
4m
分辨率
9mm
最大输入电压
20Vp-p连续信号
为了能够引起探头中压电晶片的共振,发射电路频率宜选择传感器的固有频率40KHz,这样才有可能使其工作于谐振频率从而达到最优的特性。
超声波电信号放大、整形部分可用集成电路CX20106,选AT89C52作为单片机核心芯片。
2系统硬件设计
超声波测距系统硬件部分包括单片机控制电路,超声波收、发电路,信号整形、放大电路,LCD显示电路,蜂鸣报警电路,复位电路以及时钟电路等的设计。
以上每种电路的设计都有多种方案,下面介绍的电路设计方案都是各个部分电路中比较常见的。
2.1AT89C52芯片介绍
AT89C52单片机[4]是应用于超声波测距系统中常用的芯片之一。
它是一种带8K字节闪存的高性能、低电压微处理器。
包括以下几个部件:
(1)兼容MCS51指令系统;
(2)一个8位CPU;
(3)一个片内振荡器及时钟电路;
(4)8kFlashROM;
(5)128*8位内部RAM;
(6)32条双向I/O口;
(7)3个16位定时器/计数器中断;
(8)8个中断源;
(9)2个读写中断口线,3级加密位;
(10)一个可编程串行通道。
AT89C52单片机芯片的引脚介绍如图3所示。
图3AT89C52芯片图
AT89C52单片机的输入输出端口在编程上是根据应用电路的具体要求和功能对其进行编程的,其具体步骤有以下四点。
(1)先根据实际电路的要求来选择输入输出端口;
(2)初始化端口应尽量避免端口作为输出时的起初阶段会出现不确定状态,影响电路正常的工作;
(3)用作输入的I/O管脚,如需上拉电阻就再通过输入上拉使能寄存器作为其内部配置的上拉电阻;
(4)最后对输入输出端口进行输出与输入编程。
2.2发射与接收电路设计
发射电路是由脉冲发射电路与脉冲产生电路组成的。
其中脉冲产生电路的目的是得到40KHz的脉冲电压,它是由多个74HC04反相器和电阻构成的,由单片机P2口控制。
其中U1A反相器是让输入到传感器两端的电压置反以便得到足够的压差来驱动传感器发射超声波,电路图如图4所示。
图4超声波发射电路图
超声波接收电路主要是用于检测回波,并在接收到超声波的同时向单片机发出中断来停止计时。
超声波测距系统的一个主要因素传播时间是由接收电路设计的好坏决定的。
如图5所示的接收电路主要由CX20106芯片执行命令其中包括检波、滤波放大和整形等功能。
其中检波电路是用于接收反射回来的回波,接着由滤波放大电路对信号进行放大,而整形部分则是把接收到的信号整理成C52单片机能够识别的信号并向单片机提出中断计时的指示。
在这里滤波电路的作用尤其重要,因为超声波在传播、反射与折射后能够被探头接收到的信号已经十分微弱而且还可能夹杂着一些噪声。
鉴于此接收电路可以设计两个以上的滤波放大模块对信号进行多级放大。
图5超声波接收电路图
2.3显示电路设计
显示部分采用LM016L液晶显示。
它是利用液晶材料的光电效应,即对其施加电场,其分子排列就会发生变化,进而对液晶整体的光学折射特点产生影响,通过造成人们视觉的变化来达到显示所需数字的目的。
它有着比较多的特点如微功耗、使用寿命长、屏幕大且清晰、低压等。
电路图如图6所示,LM016L液晶显示共16个管脚,在编程时只用到其中主要的几个管脚,分别是:
使能信号E;
读写选择端R/W;
数据命令端RS。
接着就是对这三个管脚进行初始化、写命令等。
这里当R/W中加高平电压时是进行读操作,而加低平电压时是进行写操作。
RS作为寄存器的选择端,加高平电压是当做数据寄存器,加低平电压就是当做指令寄存器[5],该液晶显示的操作时序如表2所示。
图6显示电路图
表2操作时序表
RS
R/W
操作说明
写入指令码D0~D7
1
读取输出的D0~D7状态字
写入数据D0~D7
从D0~D7读取数据
注:
开始时初始化时E为0,然后置E为1,再进行清零。
读取状态字的时侯,D7位中,当D7=1时,是禁止读写操作;
D7=0,是允许读写操作。
2.4报警电路设计
系统的报警电路如图7所示其中由NPN管、电阻和蜂鸣器组成。
声音报警指的是当超声波探测到的障碍物距离小于所设定的安全值时装置就会发出声音提醒驾驶员。
声音报警器使用BUZZER,它自带着一种报警音,可以给驾驶员直接的提示。
图7声报警电路图
2.5复位电路
复位操作顾名思义就是指恢复到起始的状态,在这里是用来让单片机片初始化的,使单片机能够从出产前的状态运行。
单片机复位电路通常采用上电自动复位、按键电平复位及系统复位。
考虑到设计结构较简单,干扰又不是很大,固用上电自动复位[4],电路图如图8所示。
图8上电复位电路图
至于该测距系统为什么需要一个复位电路,是因为在单片机应用系统工作时,可能会由于一些程序上的运行出错或操作上的错误导致系统死循环跳不出来,从而使装置不能再正常工作。
这时就需要复位来重新启动。
固系统的复位电路是十分重要的要保证其精确、可靠的工作。
要想使系统能可靠的复位,只要RST端保持高电平就可以让单片机处于循环复位中。
2.6时钟电路
每块核心单片机都必须带有一个时钟电路,它是用来给单片机内部提供正常工作的一个时间基准。
如图9所示的时钟电路是由两个起稳定振荡频率、快速起振作用的电容器与一个12MHz的晶体振荡器组成的。
这里选用的是以内部振荡方式得到时钟信号的电路。
图9时钟电路图
3系统软件实现
针对上述介绍的系统硬件基本框架,接下来辅助以软件方面的实现。
系统软件实现的目标主要是增进系统功能的实现以及在数据处理方面的应用,这里在倒车系统中装配了四路测距通道,分别把传感器安装在车尾的左、左中、右中、右四个方位,这样能够比较精确的测得车尾与障碍物的实际距离。
软件实现上对这四路测距通道采用分时工作的方式,就是以从左到右的顺序循环发射与接收超声波进行测距。
整个软件系统在编程方面采用汇编语言及C语言,这里利用了汇编语言具有较高的效率及易精细计算时间的优点与C语言在计算方面的简便。
在上述两种语言作为编程的基础上系统软件采用模块化设计,这种设计方式比较有利于后续的改动,也有利于读者的理解。
其主要包含有主程序、温度采集程序及显示报警程序。
主程序要完成的是系统初始化的工作,中断程序包括定时中断服务子程序与外部中断服务子程序,前者的任务是合理、有序的分配四路测距系统超声波的收发,而后者是完成对超声波传播时间的读取及计算,最后将所得结果输出。
显示报警电路是用来产生能给驾驶员直观提示的电路。
3.1主程序
主程序流程图如图10所示所要的任务是要对系统进行各种操作初始化的。
它是一个单片机程序的主体,统领着单片机整个程序的有效运行,在这个过程中主程序可以不断的调用子程序与中断服务程序,既一个初始化、调用、等待响应的过程。
蜂鸣报警
图10主程序流程图
3.2脉冲的产生及发送
脉冲的产生是这个超声波测距系统的首要步骤,当然在这之前先要运行主程序中的初始化部分程序,也就是对定时/计数器T0进行初始化,选M1、M0分别为0和1的工作方式1的定时模式,在初始化程序中写入初始程序TMOD=0x11。
接着通过P1.0端口发送频率大约为40kHz的方波来作为超声波的脉冲信号,与此同时启动计数器T0进行计时。
脉冲的产生程序较简单,而且又要求运行准确,固可以直接采用汇编语言进行编程,以获得超声波传播经过的时间,流程图如图11所示。
返回
图11超声波发送子程序流程图
3.3DS18B20温度采集程序
温度采集在软件方面的实现较为简单,其流程图如图12所示。
图12温度采集流程图
DS18B20的工作方式是先对其初始化,接着执行存储器的操作指令,最后进行数据的传输。
3.4LCD显示程序
LCD显示块的运行程序流程图如图13所示,包括LCD的初始化、检查忙碌状态、写指令与数据函数、接着就是LCD的显示操作了。
由于液晶显示器是一种运行速度较为慢的零件,固在对其执行每一条指令时必须附带的先对其进行查忙操作,若检测到的是低电平信号则表示LCD显示器此时不忙,否则写入的任何指令都将被其视为无效。
图13LCD显示程序流程图
在编写这块程序的时候,是将通过计算所得的各个距离结果保存到一个数组中,接着读取需要的数据传送到LCD显示屏中呈现给驾驶员,以便驾驶员能直观的对倒车情形进行准确的判断。
3.5数据转换及距离计算
通过上面对温度采集与LCD显示的介绍可知,这两种显示方式都是只接受BCD码的,所以有必要设计一个数据转换程序,以便直接的读取显示,图14实现的就是数据的转换。
首先从单片机中读取进数据,接着进行补码与原码的转化,最后就是把数据写入显示数组num[]中。
图14数据转换程序流程图
由于距离是不能直接测得的,它与温度有关,需要通过相应公式的计算才能间接的获得,所以有必要设计一个计算最终距离的程序如图15所示,其中包括温度与时间数据的读取以及结合温度与速度的关系再加上读进的时间值来进行距离的计算。
图15距离计算流程图
3.6蜂鸣报警程序
倒车系统中的报警是根据测得的实际距离与设定警戒值之间的比较,在警戒值内的距离将激发报警程序,其流程图如图16所示,程序中主要包括报警与延时两个部分。
结束
图16报警流程图
4基于PROTEUS的软件仿真
Proteus是一款功能强大的软件,尤其是单片机系统的仿真,在设计的开发初期,用Proteus来仿真,以便验证设计的可行性,并对设计的准确性做出分析。
首先是要在Proteus上绘制出准备作为仿真实验的电路原理图其如图17所示。
用Proteus绘制好电路图后导入程序文件(用Keil编译过后的HEX文件),然后就可以执行仿真,在仿真的时候P2.6检测到高电平即为返回信号获得,由于在软件中没有CX20106模型,所以P2.6悬空,则程序开始就认为返回信号获得了,所以显示了一个最小测量值0118mm,而温度为26°
C,通过调节DS18B20模型的温度可以测试显示温度是否正确,从图中可以看出显示的温度就是DS18B20的预设温度值。
下面我们再来看看P2.5口是否有发射信号的产生。
由于是频率比较高的信号(40KHz),所以不能通过二极管来观察到,所以在仿真的时候P2.5一直显示的是低电平状态,这时必须用示波器来查看,如图:
图17Proteus仿真原理图
图18仿真结果图
从图18的仿真结果图可以看出,P2.5口输出了信号,由于软件是间隔60ms发送一次40KHz的信号,所以可以看到这样的尖脉冲信号产生。
软件仿真的成功说明本设计达到了初步的要求。
5系统误差分析及改进
5.1温度对超声波声速的影响
每一种声波在介质中传播时其速度都与温度有关[6],超声波也不例外。
表3列出了超声波在多种不同温度下的速度。
表3温度与声速的关系
温度(℃)
-30
-20
-10
10
20
30
100
声速(米/秒)
313
319
325
323
338
344
349
386
在一般状况下,如果实际的温度变化不是很大,那么可以认为声速是一个基本上不变的值,用于计算时取为346m/s。
而如果在应用中对精度的要求高,则可以尝试软硬件两个方面的改进办法,其中硬件方面可以增加一个补偿电路,软件方面可以通过改进算法来加以校正。
其中空气中声速与温度的关系如下:
声速确定完,接着只要配合以超声波于空气中的往返时间,根据公式:
即可得障碍物与车尾的距离。
5.2超声波反射角的影响
系统测距采用的是渡越时间法,其工作方式是从发射传感器中发射出超声波经障碍物放射后由接收传感器获得信号,其原理如图19所示。
图19超声波测距原理
为了进一步的改善倒车系统的测量精度,于是将增加反射角引起的距离误差[7],如图根据公式
可得更为准确的距离值。
5.3系统的改进
鉴于所学知识的局限及时间方面等的原因,下面将对设计存在的一些缺点进行简单的改进说明。
(1)在超声波发射的波形方面,设计采用的是方波,由于方波是一种高次谐波占量比较大的电压波形,它将影响精确的鉴相,同时会增加发射波与接收的回波的谐波失真。
所以可以考虑在后期设计中将方波用正弦波来取代。
(2)大多数的硬件设备在如今的生活中都免不了受到一些外界的干扰,更不用说汽车这种完成暴露于外界交通工具。
所以进行系统设计时理所当然的的会想到使用一些抗干扰的措施。
现在比较常见的硬件抗干扰措施有隔离技术、接地的抗干扰处理以及元件的合理布局[8]。
比如,前面介绍的探头就有金属作为外壳来降低其抗干扰的程度。
同样在此系统的其他设计方面也要考虑到受干扰的程度及使用什么方法对系统进行优化,在最大程度上减少整个系统的最后测量误差。
(3)由于超声波在发出、反射到被传感器接收其振幅会有很大的衰减,并且会呈现出指数规律。
针对这种情况可以在超声波接收回路中增加一个增益调节电路与一个自动增益反馈控制环节[9]。
增益调节的作用是使信号的放大倍数随着测量距离的增加同样呈指数规律增加,这样可以抵消接收到的波形振幅值的变化,而加上自动增益反馈控制环节能让接收到的回波更加稳定。
6结论
系统是以单片机AT89C52为核心芯片,辅助以硬件电路与软件编程实现的一个可以用于对精度要求不是很高的汽车上。
倒车系统可以对一定范围内的距离在理论上实现测距的任务,但是由于现实条件的制约,系统并没有达到最为理想的倒车测距系统的要求,存在着一定的缺陷,还有改进的空间。
说实话对于那些稍微高档点的汽车,现在使用的倒车系统都是配备了整合影音的系统,不仅能够报距,而且可以全方位的显示汽车周围的环境,不过这种倒车系统一般都具有昂贵的身价。
此次设计着重于讲解了倒车系统的基本原理,并且可以据此生产出价格低廉的实物,具有较高的实用性。
结束语:
通过此次汽车倒车系统的设计,不仅巩固了本科期间所学的理论知识,同时也加强了把理论知识付诸于解决实际问题