超声波倒车雷达
摘要
随着生活质量的提高,工作的需要,科技的发展,人们将越来越多的在生活中和工作中将汽车作为其日常的生活工具。给汽车安装倒车雷达系统,将使汽车安全性大大提高,以确保行车安全。
本系统是基于单片机控制的汽车倒车“雷达”系统,系统由AT89C51单片机、超声波发射电路、超声波接收放大电路等部件组成。主要实现驾驶员在无法后视的情况下能够通过系统的声音、灯光、影像显示,清楚车后障碍物的状况,并通过报警信号避免撞车,安全倒车。
关键字:单片机 ;超声波 ;接收 ;发射
Abstract
In the condition of the life quality raise, necessaries of work, development of science and technology, more and more people will use automobile as their important tool in the living life and neutralization work .To fix a back car radar system in the motor vehicle will make car’s backward more secure. And will improve the security of driver.
This “radar” system is based on one-chip computer to control a automobile and to help a driver to backed a car . Below the situation that the main driver can’t see the afterwards of car, by means of the systematic LED digital display, the driver can see the distance between the car to the obstacle state. Moreover, it can avoid the collision of vehicles by the means of the alarm averts. And make backed a car secure complete by the systematic help.
Key words: MCU ; Automobile ;Ultrasonic ;Distance- measurement
目录
1 绪论 .............................................................................................................................................. 1
1.1 课题研究的背景及意义 . ................................................................................................... 1
1.2 国内外的发展情况 . ........................................................................................................... 1
2 系统的总体设计 .......................................................................................................................... 3
2.1 系统设计要点 . ................................................................................................................... 3
2.1.1 设计的功能 . ............................................................................................................ 3
2.1.2方案的实现 . ............................................................................................................. 3
2.2 超声波倒车雷达系统原理 . ............................................................................................... 4
2.3 系统可能出现的误差分析 . ............................................................................................... 5
2.3.1 温度影响 . ................................................................................................................ 5
2.3.2 声波的衰减程度影响分析 . .................................................................................... 6
2.3.3 发射频率对误差的影响 . ........................................................................................ 7
2.3.4 回波测量的计时准确度分析 . ................................................................................ 7
3 系统的硬件设计 .......................................................................................................................... 8
3.1 单片机的选择 . ................................................................................................................... 8
3.2 单片机结构 . ....................................................................................................................... 8
3.3 管脚说明 . ........................................................................................................................... 9
3.4 晶振电路 . ......................................................................................................................... 11
3.4 复位电路 . ......................................................................................................................... 12
3.5 超声波发射电路 . ............................................................................................................. 12
3.6 超声波接收电路 . ............................................................................................................. 13
4 系统的软件设计 ........................................................................................................................ 14
4.1 整体程序设计 . ................................................................................................................. 14
4.2 基础功能模块设计 . ......................................................................................................... 15
4.3 系统的控制程序 . ............................................................................................................. 18
结论 ................................................................................................................................................ 25
致谢 ................................................................................................................................................ 26
参考文献 ........................................................................................................................................ 27
1 绪论
1.1 课题研究的背景及意义
随着社会的发展,城市中汽车的数量正在不断增加,同时,人们对汽车操作的便捷性和安全性愈加挑剔。其中汽车倒车时的不便和安全隐患逐渐被汽车制造行业所重视,虽然每辆车都有后视镜装置,然而其自身存在的可视盲区是一个难以解决的严重问题。据调查显示,因汽车倒车而造成的人员、财产损失正逐年上升。人们迫切希望有一种装置能够辅助完成汽车的“后视”功能,在倒车时能够提示驾驶员汽车后方障碍物状况,并能根据距离和障碍物的情况及时报警防止驾驶员误操作,来保证驾车者的安全。
倒车雷达全称叫做“倒车防撞雷达”,也叫“泊车辅助装置”,是汽车泊车或者倒车时的安全辅助性装置,能以声音、灯光、影像等方式直观地告知驾驶员车辆周围的障碍情况,解除驾驶员泊车和启动车辆时前后左右探视所引起的困扰,并帮助驾驶员解决视野死角和视线模糊等问题,从而提高驾驶的安全性。
1.2 国内外的发展情况
经济的发展和科学技术的进步,推动着交通运输业朝行驶高速化,车流密集化和驾驶非职业化的方向发展。在汽车的数量急剧增加的同时,相应的公路管理、交通系统却比较落后,而因此造成的事故频繁发生,在一些大型城市该现象尤为明显。智能交通系统ITS (Intelligent Transportation System )是当前国际各个国家共同关注的交通管理前沿技术,它能充分地发挥出现有交通基础设施的潜在能量,在提高工作效率、增强交通安全性、改善环境几方面已取得了卓越成效。我国在近几年也慢慢开始进行相关技术的研究开发,倒车雷达技术是ITS 中的一项重要研究,它的成功与否与ITS 有着相当紧密的关系。
目前,很多科研机构都已对汽车倒车雷达技术进行了较为深入的开发,国内外也早已有了许多相关产品。
将其按照工作方式分类,主要有激光、超声波、红外、毫米波这几种测量方法,它们的工作原理虽然不一样,但都是通过不同的测试方法从而判断车后方障碍物与本车间的相对距离,并根据程序中定义的危险等级做出相应的警示措施。下面简要分析一下几种方式的特点:
激光方式:激光具有高定向性,能以定向的光束无发散地直线向前传播;单色性好,它可以达到的亮度比太阳光还高几百亿倍;相干性好,激光的频率、振动方向、相位高度一致。因此激光波束近似直线性,很少扩散,波束能量集中,传输距离较远。但它在对气候的适应能力方面具有局限性,因为激光测距方式受恶劣天气、汽车激烈震动、发射镜表面磨损、污染等因素影响,则探测距离减少二分之一至三分之一, 降低了实用精度,所以在汽车倒车雷达领域激光测距方式没有得到很好发展。
红外线方式:红外线可以人为制造, 自然界中也广泛存在, 一般的生物都会辐射出红外线, 体现出来的宏观效应就是热度。 红外线透视和夜视是分别利用了红外线的不同性质。红外线测距系统成本低廉,但是容易受到天气和路边等物体干扰的影响,在恶劣的天气与环境下探测距离仍然不能满足要求。
毫米波方式:毫米波是微波的一个波段,频率在30-300G, 相应波长为1-10mm 。毫米波电子系统具有如下特性:小天线孔径具有较高的天线增益; 高跟踪精度和制导精度; 不易受电子干扰; 低角跟踪时多径效应和地杂波干扰小; 多目标鉴别性能好; 雷达分辨率高; 大气衰减“谐振点”可作保密传输。但其价格昂贵,结构复杂。
超声波方式:超声波是频率大于20 kHz 的声波, 具有方向性强、能量衰减缓慢、在介质中转播距离远等特点, 用于测距计算方法简单, 常用于非接触式距离测量, 其传感器种类较多, 由于超声波指向性强,在传输过程中能量损耗缓慢,反射能力强,经常被用于距离的测量。由于超声波测距的探测距离较短,主要用于倒车雷达等近距离测距。
将其按照其测距的方向又可分为倒车雷达和前置雷达两种。倒车雷达主要针对当前在拥挤的街道、停车场以及人群当中倒车时可能发生的倒车碰撞事故而设计的,它是在汽车以较低速度倒车行驶时,周期内不停检测车后障碍物到车的距离,当达到一定危险距离时即时给予司机以声与光的形式的警告。由于倒车雷达检测距离比较短,可选择红外线和超声波。本文的研究对象就是超声波倒车雷达。
2 系统的总体设计
2.1 系统设计要点
系统设计主要包括了硬件与软件的设计。
硬件设计部分,由外围电路和单片机构成。包括单片机的选择,各电路元器件的选择等,使设计出的系统具有较高的可行性。电路部分主要是超声波的输出与接收电路的设计。
软件设计部分主要是编程语言的选择和控制程序的的编写。本系统采用51系列单片机,使用汇编语言进行编程。本系统软件设计采用模块化系统设计方法,先编写各个功能模块子程序,然后进行组合与调整,经过调试后,最终的系统能达到设计目的。
2.1.1系统功能
驾驶员能随时看到车后的障碍物距离汽车的距离,当障碍物距离车后部0.8m 时开始有报警信号,信号间隔时间长短由单片机根据距离而设定,有LED 指示功能, 让驾车者清楚障碍物的方位,左边的绿灯亮表示当前显示的距离为左边障碍物的距离,右边的黄灯亮表示当前显示的距离为右边障碍物的距离。随着距离的缩短,报警信号开始变得急促,在0.5m 时报警LED 指示亮红灯,在0.2m 时报警信号持续短音, LED 指示条亮红灯。
2.1.2方案的实现
系统采用超声波测距原理。超声波测距仪器一般由发射器、接收器和信号处理装置三部分组成。工作时,超声波发射器发出超声波脉冲,超声波接收器接收遇到障碍物反射回来的反射波,准确测量超声波从发射到遇到障碍物反射返回的时间,根据超声波的传播速度,可以计算出障碍物距离。作为一种非接触式的检测方式,和其他几种测距方式相比,由于超声波具有穿透性较强、空气传播衰减小、反射能力强的特点,所以超声波测距具有在近距离范围内有不受光线和雨雪雾的影响、结构简单、制作方便成本低等优点。高速的单片机微秒级的机器周期,可实现较精确的时间测量。本电路采用12MHz 晶振,最大误差在0.1720MM ,满足了系统的性能要求。
2.2超声波倒车雷达系统原理
超声波测距的原理:声波是一种能在气体液体和固体中传播的机械波,根据声波振动频率的范围,可以分为次声波,声波,超声波和特声波。一般人能够听到的声音的频率范围在20Hz-20KHz 之间,频率低于20Hz 为次声波,高于20KHz 的波称为超声波,频率高于1000MHz 称为特超声波。
超声波的特点:超声波为直线传播方式,因为其波长短,超声波可以和光线一样,能够反射、折射,也能聚焦,频率越高绕射能力越弱,但反射能力越强,指向性越强,而且遵守几何光学上的定律因此适用于距离的测定,其在空气中传播的速度为340m/s。超声波由超声波换能器发射和接收。超声波换能器可以将其他形式的能量转换成高频声能(发射换能器),并且也能够将超声能量转换为其他易于检测的能量(接收换能器),本设计采用两对发射和接收探头进行超声波的发射和接收。
单片机发出超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波, 从而测出发射和接收回波的时间差t ,然后求出距离
S ct
2 (2-1)
式(2-1)中的c 为超声波在空气中传播的速度。
限制该系统的最大可测距离存在四个因素:超声波的幅度、反射物的质地、反射和入射声波之间的夹角以及接收换能器的灵敏度。接收换能器对声波脉冲的直接接收能力将决定最小可测距离。为了增加所测量的覆盖范围,减少测量误差,可采用多个超声波换能器分别作为多路超声波发射/接收的设计方法。由于超声波的速度c 与温度有关,表2.1列出了几种不同温度下的波速。
表2.1 声速与温度的关系
波速确定后,只要测得超声波往返的时间t ,即可求得距离S 。其系统原理框图如图2.1所示。
图2.1 超声波测距系统框图
单片机AT89C51发出短暂的40kHz 信号,经放大后通过超声波换能器输出;反射后的超声波经超声波换能器作为系统的输入,锁相环对此信号锁定,产生锁定信号启动单片机中断程序,读出时间t ,再由系统软件对其进行计算、判别后,相应的计算结果被送至LED 数码管进行显示。
2.3 系统可能出现的误差分析
声波在传播中容易受外界环境的影响,这对测量距离的结果将有一定的影响。本节具体讨论温度、衰降度和计时准确性对测量的影响。声波传输速度与媒介的弹性模量和密度相关,因此,利用声速测量距离,就要考虑这些因素对声速影响。在气体中,压强、温度、湿度等因素会引起密度变化,气体中声速主要受密度影响,液体的深度、温度等因素会引起密度变化,固体中弹性模量对声速影响较密度影响更大,一般超声波在固体中传播速度最快,液体次之,在气体中的传播速度最慢。
气体中声速受温度的影响最大。声波扰动是机械的,声波在传播中带有机械能量,声能传播的途中逐渐转变成热,从而出现随距离而逐渐衰减的现象,称为声吸收。声波的频率越高衰减得越厉害,传播距离也越短,在给定的频率下,衰减是湿度的函数。
2.3.1 温度影响
声速受温度的影响声速受温度的影响为:
C θ=C 0sqrt (1+θ/273 ) (2-2) 其中C θ为修正后的声速,C 0为初速。空气中温度、声速表如图2.2所示。
图 2.2 空气中温度—声速表
空气中温度、声速增量情况如图2.3所示。
图 2.3 空气中温度—声速增量图
由图可知当温度从0-40℃变化时,将会产生7%的声速变化,因此,为了提高测量准确度,计算时必须根据温度进行声速修正。工业测量中,一般用公式计算超声波在空气中的传播速度即:
C θ=331+0. 6θ (2-3)
2.3.2 声波的衰减程度影响分析
声波传播过程中,声压的幅度由于媒质中声吸收而衰减,声强随频率增高衰减增加,在给定的频率时衰减是湿度的函数。有关文献指出:产生最大衰减时的湿度值视频率而不同,例如:频率大于125 kHz时,最大衰减发生在湿度为100%RH
处,而在频率40 kHz时,最大衰减发生在湿度50 % RH处。
2.3.3 发射频率对误差的影响
超声波频率高对探测较小目标有利。有关文献指出有效反射目标应大于至少10个波长以上,对于非垂直于发射波束的目标,大波束角的传感器通常可以获得更强的回波信号,而波束角越窄对于减小散射波的干扰越有利。
2.3.4 回波测量的计时准确度分析
在室温下,空气中的声速是345 m/s,考虑反射式测量有2倍路程,则被测距离与测距时间关系为:
345 d t (2-4)2
也就是每计时1us 对应被测距离0. 172 mm,表2.2表示了几种计数频率对应的最小测距分辨率。
表 2.2 测距分辨率
记数频率
(MHz )
最小分辨
率(mm )
本电路使用的是1MHz 的记数脉冲,分辨率在0.1720左右,满足实际的要求。 0.1720 0.0690 0.0345 0.0172 1 2 5 10
3 系统的硬件设计
本系统硬件电路主要由AT89C51单片机核心电路、超声波发射电路、超声波接收放大电路等部件组成。
3.1单片机的选择
本系统主要用AT89C51来计算倒车的距离和控制外围电路的协调工作。如超声波的发射时间和发射频率、数码管的动态显示、扬声器的报警脉冲等。
AT89C51是一种带4K 字节闪烁可编程可擦除只读存储器(FPEROM —Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU 和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51是一种高效微控制器,AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
3.2 单片机结构
MCS-51单片机是在一个芯片中集成了CPU 、RAM 、ROM 、定时器/计数器和多功能I/O口等一台计算机所需的基本功能部件。其内部结构如图3.1所示。
图 3.1 MCS-51单片机内部结构框图
MCS-51单片机的基本构件主要包括了一个8位CPU ;4KB 的ROM 或EPROM ;21个特设功能寄存器;4个8为并行I/O口,其中P0,P2为地址/数据线,可寻址64KB ROM和64KB RAM;21个特殊功能寄存器;一个可编程全
双工串行口;具有5个中断源,两个优先级,嵌套中断结构;两个16位定时/记数器;一个片内振荡器及时钟电路等。
3.3 管脚说明
AT89C51管脚说明如图3.2所示。
图3.2 AT89C51管脚说明
VCC :供电电压+5V。
GND :接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL 门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH 编程时,P0 口作为原码输入口,当FIASH 进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲 器能接收输出4TTL 门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL 门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行
存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH 编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL )这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下所示:
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 /INT1(外部中断1)
P3.4 T0(记时器0外部输入)
P3.5 T1(记时器1外部输入)
P3.6 /WR(外部数据存储器写选通)
P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST :复位输入。当振荡器复位器件时,要保持RST 脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE 脉冲。如想禁止ALE 的输出可在SFR8EH 地址上置0。此时, ALE 只有在执行MOVX ,MOVC 指令是ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE 禁止,置位无效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH ),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET ;当/EA端保持高电平时,此间内部程序存储器。在FLASH 编程期间,此引脚也用于施加12V 编程电源(VPP )。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 芯片擦除:
整个PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE 管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU 停止工作。但RAM ,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
本设计使用了单片机的两个中断,分别为外部中断:INT1;定时/记数中断器:T0、T1。P1.0~P1.5口作为单片机的控制信号输出端口,其中P1.0为左路超声波发射信号,P1.2为右路超声波发射电路,P1.1为LED 显示左路数据指示灯,P1.3为LED 显示右路数据指示灯,P1.5为报警信号脉冲的输出端。
3.4 晶振电路
晶振是用来接时钟电路的,也就是用来立生时钟的,如图3.3所示。
图 3.3 晶振电路
单片机没有时钟那就不能工作的,它有节拍的工作都是在时钟的控制下进行的,这都是一定的,晶振的型号一般是12M ,还有24M
,等等,根据你对时钟
的要求,选用不同的型号,至于电容一般都是30,这个电容是用来微调的。
3.4 复位电路
复位电路有上电复位和手动按钮复位两种形式,RST/VPD端的高电平直接由上电瞬间产生高电平则为上电复位;若通过按钮产生高电平复位信号称为手动按钮复位。如图3.4所示。
图 3.4复位电路
上电自动复位是在加电的瞬间,电容C1通过电阻R17充电,就在AT89C51的RES 端出现一定时间的高电平,只要高电平的时间足够长,就可以有效的复位。RES 端在加电时应保持高电平时间包括Vcc 的上升时间和振荡器起振时间,Vcc 上升时间若为10ms ,振荡器起振时间和频率有关,10MHz 时约为1ms ,1MHz 时约为10ms 。所以一般为可靠复位,RST 上电时应保持20ms 以上的高电平。当振荡器频率为12MHz 时,典型值为:C1=10uf,R17=8.2k。
人工复位是将一个按钮开关并联于上电自动复位电路,按一下开关就在RST 端出现一段时间的高电平,即使器件复位。
3.5 超声波发射电路
超声波发射电路主要由电路、超声波发射器和单片机组成。如图3.5所示。
图3.5超声波发射电路
超声波的发射电路实际上是由LM555构成的40KHZ 多谐振荡电路。调节电阻器R1阻值,可以改变振荡频率。由LM555第3脚输出端驱动超声波传感器,使之发射出超声波信号。电路简单易制。电路工作电压12V ,工作电流40-50mA 。发射超声波信号大于8m 。第4脚接单片机的P3.2。
3.6 超声波接收电路
超声波的接收电路由超声波雷达跟电路系统组成。如图3.6所示。
图3.6 超声波接收电路
由于超声波在空气中传播时,其能量的衰减程度与传播距离成正比,所以超声波传感器的接受信号一般在10mv —60mv 之间。为了便于使用,接受电路要提供100倍以上的放大增益. 该电路将超声波信号,经过放大方波整形之后,最后在输送到单片机中进行数据处理。
4 系统的软件设计
4.1整体程序设计
软件总体设计思路:整个软件采用模块化设计,由主程序、定时中断子程序、外部中断子程序, 显示子程序等模块组成。 软件设计的主要思路是发射、接收处理、显示、声音报警等功能编成独立的模块,在主程序中采用循环的方式。当按下控制键后,循环执行主程序中的报警检测程序、当有回波时外部中断子程序向CPU 申请中断、CPU 执行外部中断子程序,并把测量的结果进行分析处理,根据处理结果决定显示程序的内容以及判断是否调用声音报警程序。当测得距离小于预置距离时,声音报警程序被调用。系统的主流程图如图4.1所示。
图 4.1 主程序流程图
本软件系统的工作过程如下:由主程序初始化单片机,调用发射程序让发射器发射超声波,然后主程序进入报警扫描,如果有系统申请中断,则进入中断程
序,中断程序将屏蔽剩余的中断申请,这样保证了取得的数据是离车辆最近的障碍物的距离,接下来中断程序将停止记时器,然后从记数中读取数据并计算结果。其中T0记数/定时器用来作为200us 的定时,30ms 的定时,还有0.5Hz 显示刷新频率的定时,T0为超声波发射时长的定时器,T1作为报警的定时器,报警的定时器定时是一种可变定时时长,它能够根据距离的变化来决定报警声音的频率,当距离越来越短时报警声音将越来越急促。
4.2 基础功能模块设计
单片机编程产生超声波,在系统发射超声波的同时利用定时器的计数功能开始计时,接收到回波后,接收电路输出端产生的负跳变在单片机的外部中断源输入口产生一个中断请求信号,响应外部中断请求,执行外部中断服务子程序,停止计时,读取时间差,计算距离,然后通过软件译码,将数据通过LED 显示。 外部中断子程序如图4.2所示。
图4.2 外部中断INT1服务子程序
显示子程序流程图如图4.3所示。
图4.3显示子程序流程图
发射超声波程序流程图如图4.4所示。
图4.4 发射超声波程序
计时器T0中断服务子程序流程图如图4.5所示。
图4.5 计时器T0中断服务子程序
计时器T1中断服务子程序流程图如图4.6所示。
图4. 6计时器T1中断服务子程序
主程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式。置位总中断允许位EA 并给显示端口P0和P1清0。然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1 ms(这也就是超声波测距仪会有一个最小可测距离的原因)后,才打开外中断0接收返回的超声波信号。由于采用的是12 MHz的晶振,计数器每计一个数就是1μs,主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按式(4-1)计算,即可得被测物体与测距仪之间的距离,设计时取20℃时的声速为344 m/s则有:
d=(c×t)/2=172T0/10000cm (4-1) 其中,T0为计数器T0的计算值。
测出距离后结果将以十进制BCD 码方式送往LED 显示约0.5s ,然后再发超声波脉冲重复测量过程。
4.3 系统的控制程序
系统各功能模块的控制程序为:
;********超声测距主程序S_MAIN******************
; 程序功能:测试障碍物距离,用数码管显示结果
; 出口参数:P0,P2.0-P2.3
ORG 0000H
LJMP MAIN
ORG 0013H
LJMP CUNT_L
MAIN:
MOV TMOD,#10H
CSH:MOV TL0,#00H
MOV TH0,#00H
MOV 20H,#25
MOV 21H,#50
MOV 22H,#99
CLR F0
JB P2.2,$
SETB EA
SETB EX1
SETB TR0
HERE:SETB P3.2
NOP
NOP
NOP
NOP
NOP
JNB F0,NEXT0
LCALL CUNT_L
LCALL DISP1
SJMP NEXT1
NEXT0:JBC TR0,NEXT1
SJMP HERE
NEXT1:CLR TR0
LJMP CSH
;****** *INT1中断服务子程序INPUT1********
; 程序功能:计算障碍物测试距离
INPUT1: CLR TR0
SETB F0
RETI
;***** ****计算距离子程序CUNT_L**********
; 程序功能:计算距前方障碍物的距离
CUNT_L: MOV R2,TL0
MOV R3,TL1
MOV R6,#11H MOV R7,#00H LCALL MULD MOV R6,#64H MOV R7,#00H LCALL DIVD MOV 73H,R2 MOV 74H,R3 MOV A,73H RET
;*********显示数据处理子程序 HE ************
; 功能:将A 中的数据转换成0.0~5.0之间的十进制数
; 显示数据存放在40H ,41H 单元中,40H 单元存放整数,41H 单元存放小数
HE: MOV R2,#00H
MOV R3,A
MOV R6,#00H MOV R7,#0AH LCALL MULD MOV R6,#00H MOV R7,#33H LCALL DIVD MOV A,R3 LCALL HBCD MOV 41H,A ANL 41H,#0FH SWAP A ANL A,#0FH MOV 40H,A RET
;*********双字节乘法子程序 MULD ***********
; 功能:双字节二进制无符号数乘法
; 被乘数在R2,R3中,乘数在R6,R7中,乘积在R2,R3,R4,R5中
MULD: MOV A,R3
MOV B,R7
MUL AB MOV R4,B MOV R5,A MOV A,R3 MOV B,R6 MUL AB ADD A,R4 MOV R4,A CLR A ADDC A,B
MOV R3,A MOV A,R2 MOV B,R7 MUL AB ADD A,R4 MOV R4,A MOV A,R3 ADDC A,B MOV R3,A CLR A RLC A XCH A,R2 MOV B,R6 MUL AB ADD A,R3 MOV R3,A MOV A,R2 ADDC A,B MOV R2,A RET
;********双字节除法子程序 DIVD ********
; 功能:双字节二进制无符号数除法
; 被除数在R2,R3,R4,R5中,除数在R6,R7中,OV=0时,双字节商在R2,R3中,OV=1时表示溢出
DIVD: CLR C
MOV A,R3
SUBB A,R7 MOV A,R2 SUBB A,R6 JC DVD1 SETB OV
RET
DVD1: MOV B,#10H
DVD2: CLR C
MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
XCH A,R2
RLC A
XCH A,R2
MOV F0,C
CLR C
SUBB A,R7
MOV R1,A
MOV A,R2
SUBB A,R6
ANL C,/F0
JC DVD3
MOV R2,A
MOV A,R1
MOV R3,A
INC R5
DVD3: DJNZ B,DVD2
MOV A,R4
MOV R2,A MOV A,R5 MOV R3,A CLR OV RET
;***********将十六进制数转换成BCD 码子程序 HBCD *********** ; 功能:将单字节十六进制整数转换成单字节BCD 码整数
; 单字节十六进制整数在累加器A 中,转换后的BCD 码十位和个位整数存在A 中,百位存在R3中
HBCD: MOV B,#100
DIV AB
MOV R3,A MOV A,#10 XCH A,B DIV AB SWAP A ORL A,B RET
;******* ******LED动态显示子程序 DISP1 *********************
; 功能:用两位LED 显示0.0~5.0数字
; 将40H,41H 单元的内容用两位LED 显示
DISP1: MOV DPTR,#TAB
MOV A,41H
MOVC A,@A+DPTR CLR P2.0 SETB P2.1 MOV P0,A LCALL DELLAY LCALL DELLAY MOV DPTR,#EVER
MOV A,40H MOVC A,@A+DPTR CLR P2.1 SETB P2.0 MOV P0,A LCALL DELLAY LCALL DELLAY RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
EVER: DB 40H,079H,024H,030H,19H,12H,02H,078H,00H,10H
DELLAY:MOV R6,#10
DEL2:MOV R7,#250
DEL1:NOP
NOP
DJNZ R7,DEL1 DJNZ R6,DEL2 RET END
结论
本次毕业设计从开始的课题认识和软件学习到最终的硬件调试和程序编写实现设计的功能,总共历时3个月的时间,在本次毕业设计中,从对系统的认识到预计的基本功能的实现,在此期间有失败的痛苦也有成功的喜悦,从某种意义上说它使我重新获得新生,新的生命、新的精神和新的方法和态度。我可以自豪的说从此以后我将不再是一名“一心只读圣人书”,只会夸夸奇谈的大学生,我也能做一些简单的电路设计,我将要依靠我所学的知识自己生存并且为社会的发展创造价值。
值得高兴的是终于完成了我的毕业设计也完成了自己在大学学习中最后的使命,同时也对本专业有了一个更新的认识,特别是对单片机有了更加深刻的理解。学会电路设计不是一件容易的事,想成为一名合格的电子工程师更不容易。他将是长期的理论知识积累和真实实践经验的结合。
经过这次毕业设计的洗礼,学会了自己处理问题的方法和思路, 更重要的是我真正次体会从知识到实践是多么的艰难, 并且知道自己所拥有的知识是多么的有限, 尽管完成了, 但我觉得还有很多没有完善的地方,觉得我还可以做得更好。这个过程中也暴露了很多问题 :
(1)解决问题的方法的思路比较模糊, 对系统的整体的把握能力不强。因此只能是简单的实现了简单的功能,有很多地方还是不知其所以然。
(2)知识面太狭窄,比如一个芯片只知道它有这种功能而不知道它还有很多的功能。这样面对一个新的课题开始自己没有什么正确的思路和创意,造成走了很多弯路,做了很多无用功。
(3)平时资料积累有限,造成很多资料奇缺,最后很多资料都是来源于互连网上,资料太杂,其真实性无法判别,很容易被误导。加之动手的机会太少,缺少调试电路的基本经验,这将花费更多的时和精力在调试电路上面。
不管怎样,这次毕业设计让我受益非浅,无论将来的路怎样,它将是我第一笔人生财富。
致谢
大学本科的学习生活即将结束, 在此, 我要感谢所有曾经教导过我的老师和关心帮助我的同学。他们在我的大学生活和学习过程中给予了我无私的帮助, 本次毕业设计能够成功的完成要特别感谢我的两位导师——刘兴祥老师和张俊乐老师对我的关怀和教导, 他们严谨的治学态度和高深的学术水平让我受益非浅。在做毕业设计的过程中他们都给予极大我大的帮助, 特别是在总体的把握和有关细节上给予了重要的点拨, 在他们的指导下每一步都有条不紊的进行着, 并且顺利、按时地完成了毕业设计。
参考文献
[1]曹国华, 余锡存. 单片机原理及其接口技术. 西安:西安电子科技大学出版社,2000
[2]江思明. 电路工程设计-Protel99实例演练. 中国:人民邮电出版社,2000
[3]苏炜, 龚壁建, 潘笑. 超声波测距误差分析 . 中国:长江科学院,2002
[4]张振荣.MCS —51单片机原理及应用技术. 中国:人民邮电出版社 2000
[5]马忠梅等. 单片机的C 语言应用程序设计. 北京:航空航天大学出版社,1997
[6]陈建锋.Intel 单片机应用技术. 陕西科学出版社,1991
[7]胡大可等. 基于单片机8051的嵌入式开发指南. 电子工业出版社,2003
[8]赵亮, 侯国锐. 单片机C 语言编程与实例. 人民邮电出版社,2003
[9]康华光. 电子技术基础. 北京:高等教育出版社,2000
[10]王煜东. 传感器及应用,机械工业出版社,2009
[11]范晶彦. 传感器与检测技术应用,机械工业出版社,2008
[12]程德福. 传感器原理及应用,机械工业出版社,2010
[13]陈黎敏. 传感器技术及其应用,机械工业出版社,2010
[14]金发庆. 传感器技术及其工程应用,机械工业出版社,2010
[15]林莉,李喜孟. 超声波频谱分析技术及其应用,机械工业出版社,2009
[16]谢文和. 传感技术及其应用, 高等教育出版社, 2004
[17]路锦正, 王建勤, 杨绍国. 超声波测距仪的设计, 传感器技术,2002
[18]XU Cheng-xun ,Application of Ultrasonic Distance Measurement Sensor to
Centering System for Coil Loading,China Nonferrous Metals Processing
[19]YANG Lu SONG Wen-ai ,Ultrasonic Technique for the Barrel with Different
Thickness ,North China Institute of Technolgy,2004
[20]Zhang Liping Wang Xiqin ,VEHICLE BASED LOCAL ENVIRONMENT
SENSING AND MULTISENSOR DATA FUSION, Department of Electronic Engineering ,2004