基于超声波测距的智能小车设计0

本 科 毕 业 论 文

基于超声波测距的智能小车设计

The Design of Intelligent Car Based on Ultrasonic

Ranging

系(院)名称: 电子信息与电气工程

专业班级:

学生姓名:

学生学号: [1**********]07

指导教师姓名: 李 响

指导教师职称: 讲师

2011年 5 月

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得安阳工学院及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作 者 签 名: 日 期: 指导教师签名: 日 期:

使用授权说明

本人完全了解安阳工学院关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名: 日 期:

目 录

摘要 . ................................................................................................................................. I

Abstract .......................................................................................................................... I I 引 言 . ......................................................................................................................... 1

第一章 绪 论 .............................................................................................................. 2

1.1课题研究背景 .................................................................................................... 2

1.2课题研究意义 .................................................................................................... 2

第二章 超声波测距原理 . ...................................................................................... 4

2.1 超声波传感器介绍 ........................................................................................... 4

2.2 超声波发生器 ................................................................................................... 5

2.3压电式超声波发生器原理 ................................................................................ 5

2.4超声波测距的基本原理 .................................................................................... 6

第三章 方案论证及选择 ........................................................................................ 8

3.1 设计的任务要求 ............................................................................................... 8

3.2 系统初步设计及可行性论证 ........................................................................... 8

3.3 微处理器的选择 ............................................................................................... 9

3.4 显示方式的选择 ............................................................................................... 9

3.5 小车电机驱动电路的选择 ............................................................................. 10

3.6 遥控器的选择 ................................................................................................. 10

第四章 硬件电路的设计 ...................................................................................... 11

4.1控制器 .............................................................................................................. 11

4.2 超声波测距模块 ............................................................................................. 13

4.3 超声波测距显示模块 ..................................................................................... 15

4.4 超声波测距报警模块 ..................................................................................... 16

4.5 小车驱动模块 ................................................................................................. 16

4.6 红外遥控接收模块 ......................................................................................... 18

第五章 软件设计 .................................................................................................... 20

5.1 程序设计方案 ............................................................................................................... 20

5.1.1超声波测距程序设计方案 . .................................................................................... 20

5.1.2超声波测距显示程序设计 . .................................................................................... 20

5.1.3超声波数据采集电路软件流程图 ....................................................................... 21

5.2 控制电路程序设计 . ..................................................................................................... 22

5.2.1 红外接收解码设计 ................................................................................................. 22

5.2.2 小车驱动程序设计 ................................................................................................. 22

5.2.3 控制电路程序流程图 . ............................................................................................ 23 结 论 .......................................................................................................................... 24 致 谢 .......................................................................................................................... 25 参考文献 ..................................................................................................................... 26 附录 . .............................................................................................................................. 27

附录A :硬件原理图 .............................................................................................. 27

附录B :硬件PCB 图 .............................................................................................. 29

附录C :硬件实物图 .............................................................................................. 31 附录D :部分源程序 . ........................................................................................................... 32 附录D1:控制源程序 . ........................................................................................................... 32 附录D2:超声波数据测距源程序 . .................................................................................... 37

基于超声波测距的智能小车设计

摘要:本设计采用AT89S52单片机作为主控器,结合超声波测距原理,设计了红外遥控小车的测距报警系统。该系统采用软、硬件结合的方法,具有模块化和多用化等特点,AT89S52单片机为许多控制提供了高度灵活和低成本的解决办法。超声波距离测量系统用的频率为40KHz 的脉冲压力波,发射和接收的传感器有时共用一个,或者两个是分开使用的。发射电路一般由振荡和功放两部分组成,负责向传感器输出一个有一定宽度的高压脉冲串,并由传感器转换成声能发射出去;接收放大器用于放大回声信号以便记录,同时为了使它能接收具有一定频带宽度的短脉冲信号,接收放大器要有足够的频带宽度;收、发隔离则使接收装置避开强大的发射信号;记录、控制部分启动或关闭发射电路并记录发射的瞬时及接收的瞬时,并将时差换算成距离读数并加以显示或记。充分利用它的片内资源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。利用现在最常用的电视机遥控器来控制小车的运动状态。

关键词:超声波 测距 AT89S52 红外遥控

The Design of Intelligent Car Based on Ultrasonic Ranging

Abstract :This design USES the AT89S52 SCM as the main controller, combined with ultrasonic ranging the principle, design the infrared remote control car range finder alarm system. This system USES software and hardware of the method of combining with modularization and multi-purpose, etc, of AT89S52 SCM for many control provides highly flexible and low cost solutions. Ultrasonic distance measurement system frequency used in the pulse pressure wave for 40KHz, sending and receiving sensors sometimes share one or two are used separately. Launch circuit is general by oscillation and amplifier, responsible for two parts to sensor output a certain width, and the high pressure pulse sequence by sensor convert sound energy emitted; Receiving amplifier used to amplify the echo signal so that records,m eanwhile in order to make it can accept certain band width of short pulses, receiving amplifier must have plenty of band width; Collect, hair isolation makes receiving devices to avoid strong signal; Records, the control part on or off the launch circuit and record the launch of the instantaneous and receive the instantaneous, and will be converted to distance jet lag and it displays or remember reading. Make full use of the piece, can in less within resources under the condition of buffer circuit constitute the function is perfect ultrasonic ranging system. The most commonly used by the TV remote control now control car motions.

Key words:Ultrasonic; Ranging; AT89S52; Infrared remote control

引 言

高速度,高效率是现代工业的标志,超声波检测技术是我国重点发展和推广的新技术,其具有高精度,无损,非接触等优点。目前,已经广泛地应用在机械制造,电子冶金,航海,宇航,石油化工,交通等工业领域。此外,在材料科学,医学,生物科学等领域中也占据重要地位。国外在提高超声波测距方面做了大量研究,国内一些学者也做了相关研究。对超声波测距精度主要取决于所测的超声波传播时间和超声波在介质中的传播速度,二者中以传播时间的精度影响较大,所以大部分文献采用降低传播时间的不确定度来提高测距精度。

目前,相位探测法和声谱轮廓分析法或二者结合起来的方法是主要的降低探测传输不确定度的方法。随着检测技术研究的不断深入,对超声检测仪器的功能要求越来越高,单数码显示的超声检测仪测读会带来较大的测试误差。进一步要求以后生产的超声仪能够具有双显及内带有单片机的微处理功能。随后具有检测,记录,存储,数据处理与分析等多项功能的智能化检测分析仪相继研制成功。超声仪研制呈现一派繁荣景象。利用超声波制作汽车防撞雷达可以帮助驾驶员及时了解车周围阻碍情况, 防止汽车在转弯、倒车等情况下撞伤、划伤。硬件电路部分,单片机对外围电路的适时控制, 并提供给外围电路各种所需的信号, 包括频率振荡信号、数据处理信号和译码显示信号等, 大大简化了外围电路的设计难度。同时更重要的是该设计方案大大节省了设计成本, 并且由于是采用软件编程技术, 所以其移植性能好, 在设计电路时可以将其它更多的功能设计进去。

第一章 绪 论

随着社会经济的发展, 交通运输业日益兴旺,汽车的数量在大副攀升。交通拥挤状况也日趋严重,撞车事件屡屡发生,造成了不可避免的人身伤亡和经济损失,针对这种情况,设计一种响应快,可靠性高且较为经济的汽车测距报警系统势在必行,超声波测距法是最常见的一种距离测量方法,应用于汽车停车的前后左右防撞的近距离,低速状况,以及在汽车倒车测距报警系统中,超声波作为一种特殊的声波,同样具有声波传输的基本物理特性——折射,反射,干涉,衍射,散射。超声波测距即是利用其反射特性,当车辆前进或后退时,超声波距离传感器利用超声波检测车辆后方的障碍物位置,并利用数码管及蜂鸣器把车辆到障碍物的距离及位置通知驾驶人员,起到安全的作用。

1.1课题研究背景

近年来,随着电子测量技术的发展,运用超声波作出精确测量已成可能。随着经济发展,电子测量技术应用越来越广泛,而超声波测量精确高,成本低,性能稳定则备受青睐。超声波是指频率在20kHz 以上的声波,它属于机械波的范畴。超声波也遵循一般机械波在弹性介质中的传播规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质吸收而发生衰减等。正是因为具有这些性质,使得超声波可以用于距离的测量中。随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中。一般的超声波测距仪可用于固定物位或液位的测量,适用于建筑物内部、液位高度的测量等。本设计采用40kHz 超声波发射模块。

1.2课题研究意义

由于超声波测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。因此可广泛应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品)、防汛、水文、明渠、空间定位、公路限高等行业中。可在不同环境中进行距离准确度在线标定,可直接用于水、酒、糖、饮料等液位控制,可

进行差值设定,直接显示各种液位罐的液位、料位高度。因此,超声波在特殊环境下有较广泛的测距应用。利用超声波检测往往比较迅速、方便、计算简单、易于实现实时控制,并且在测量精度方面能达到工业实用的指标要求,所以为了使移动机器人能够自动躲避障碍物行走,就必须装备测距系统,以使其及时获取距障碍物的位置信息(距离和方向)。这样超声波测距在移动机器人的研究上就有着深远的意义。同时基于超声波测距系统具有以上的种种优点,在汽车前进、倒车防撞测距的研制方面也得到了广泛的应用。

第二章 超声波测距原理

2.1 超声波传感器介绍

超声波由于其指向性强、能量消耗缓慢、传播距离较远等优点,而经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。超声波测距主要应用于倒车雷达、建筑施工工地以及一些工业现场,例如液位、井深、管道长度等场合。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在测控系统的研制上得到了广泛应用。

超声波传感器是一种将其他形式的能转变为所需频率的超声能或是把超声能转变为同频率的其他形式的能的器件。目前常用的超声波传感器有两大类,即电声型与流体动力型。电声型主要有:1 压电传感器;2 磁致伸缩传感器;3 静电传感器。流体动力型中包括有气体与液体两种类型的哨笛。由于工作频率与应用目的不同,超声波传感器的结构形式是多种多样的,并且名称也有不同,例如在超声波检测和诊断中习惯上都把超声波传感器称作探头,而工业中采用的流体动力型传感器称为“哨”或“笛”。

压电传感器属于超声波传感器中电声型的一种。探头由压电晶片、楔块、接头等组成,是超声波检测中最常用的实现电能和声能相互转换的一种传感器件,是超声波检测装置的重要组成部分。压电材料分为晶体和压电陶瓷两类。属于晶体的如石英,铌酸锂等,属于压电陶瓷的有锆钛酸铅,钛酸钡等。其具有下列的特性:把这种材料置于电场之中,它就产生一定的应变;相反,对这种材料施以外力,则由于产生了应变就会在其内部产生一定方向的电场。所以,只要对这种材料加以交变电场,它就会产生交变的应变,从而产生超声振动。因此,用这种材料可以制成超声波传感器。

传感器的主要组成部分是压电晶片。当压电晶片受发射电脉冲激励后产生振动,即可发射声脉冲,是逆压电效应。当超声波作用于晶片时,晶片受迫振动引起的形变可转换成相应的电信号,是正压电效应。前者用于超声波的发射,后者即为超声波的接收。超声波传感器一般采用双压电陶瓷晶片制成。这种超声传感器需要的压电材料较少,价格低廉,且非常适用于气体和液体介质中。在压电陶

瓷上加有大小和方向不断变化的交流电压时,根据压电效应,就会使压电陶瓷晶片产生机械变形,这种机械变形的大小和方向在一定范围内是与外加电压的大小和方向成正比的。也就是说,在压电陶瓷晶片上加有频率为 f0交流电压,它就会产生同频率的机械振动,这种机械振动推动空气等媒介,便会发出超声波。如果在压电陶瓷晶片上有超声机械波作用,这将会使其产生机械变形,这种机械变形是与超声机械波一致的,机械变形使压电陶瓷晶片产生频率与超声机械波相同的电信号。

压电陶瓷晶片有一个固定的谐振频率,即中心频率 f0。发射超声波时,加在其上面的交变电压的频率要与它的固有谐振频率一致。这样,超声传感器才有较高的灵敏度。当所用压电材料不变时,改变压电陶瓷晶片的几何尺寸,就可非常方便的改变其固有谐振频率。利用这一特性可制成各种频率的超声传感器。

超声波传感器的内部结构由压电陶瓷晶片、锥形辐射喇叭、底座、引线、金属壳及金属网构成,其中,压电陶瓷晶片是传感器的核心,锥形辐射喇叭使发射和接收超声波能量集中,并使传感器有一定的指向角,金属壳可防止外界力量对压电陶瓷晶片及锥形辐射喇叭的损坏。金属网也是起保护作用的,但不影响发射与接收超声波。

2.2 超声波发生器

为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器。

2.3压电式超声波发生器原理

压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器内部结构如图2.1所示,它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。

图2.1压电式超声波传感器结构图

2.4超声波测距的基本原理

谐振频率高于20kHz 的声波被称为超声波。超声波为直线传播方式,频率越高,绕射能力越弱,但反射能力越强。利用超声波的这种性能就可制成超声传感器,或称为超声换能器,它是一种既可以把电能转化为机械能、又可以把机械能转化为电能的器件或装置。换能器在电脉冲激励下可将电能转换为机械能,向外发送超声波;反之,当换能器处在接收状态时,它可将声能(机械能) 转换为电能。

最常用的超声测距的方法是回声探测法,超声波发射器向某一方向发射超声波,在发射时刻的同时计数器开始计时,超声波在空气中传播,途中碰到障碍物面阻挡就立即反射回来,超声波接收器收到反射回的超声波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t ,就可以计算出发射点距障碍物面的距离s ,即:s=340t/2。

由于超声波也是一种声波,其声速V 与温度有关。在使用时,如果传播介质温度变化不大,则可近似认为超声波速度在传播的过程中是基本不变的。如果对测距精度要求很高,则应通过温度补偿的方法对测量结果加以数值校正。声速确定后,只要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的基本原理。如图2.2所示:

图2.2 超声波的测距原理

H =S cos θ (2-1)

θ=arctan(

式中:L---两探头之间中心距离的一半.

又知道超声波传播的距离为: L ) H (2-2)

2S =vt (2-3)

式中:v—超声波在介质中的传播速度;

t—超声波从发射到接收所需要的时间.

将(2-2)、(2-3)代入(2-1)中得:

1L ⎤⎡H =vt cos ⎢arctan ⎥2H ⎦ (2-4) ⎣

其中, 超声波的传播速度v 在一定的温度下是一个常数(例如在温度T=30度时,V=349m/s);当需要测量的距离H 远远大于L 时, 则(2-4)变为: H =1vt 2 (2-5)

所以, 只要需要测量出超声波传播的时间t, 就可以得出测量的距离H.

第三章 方案论证及选择

3.1 设计的任务要求

设计一个超声波测距报警系统,利用红外遥控来小车的运行状态。

主要的任务要求如下:

(1) 能够实现超声波测距,并在数码管上予以显示实际距离。

(2) 通过遥控器能够对小车的前进、后退、左转、右转等运动状态加以控制。

(3) 采集系统采集距离信息, 并根据不同的距离信息发出不同频率的声音。

3.2 系统初步设计及可行性论证

根据设计要求,本文设计了一个基于超声波测距的红外遥控小车,设计框图如下:

图3.1 系统框图

论证1:本系统的设计是否合理

参考结构一:采用分离式结构,超声波数据采集和控制分开。超声波测距、数码管显示和报警为一个独立的系统;红外遥控接收和电机驱动为一个独立的系统。

参考结构二:采用整体式结构,超声波数据采集和控制在一起。超声波测距、数码管显示、报警、红外遥控接收和电机驱动是一个系统。

本系统超声波数据采集和控制既可分开也可融合到一个系统里面,超声波数据采集系统主要是采集距离信息,并根据不同的信息发出不同频率的声音;控制系统主要负责控制小车。通过红外遥控器向控制器发送控制命令以达到手动控制

小车的目的。采用这种控制器+数据采集独立式的结构,其优点是很明显的,具体表现为:分工明确,可以使各部分各司其责,工作效率高, 设计方便,可移植性好。本设计采用该独立式结构方案可行。

3.3 微处理器的选择

方案一:使用51单片机。

51单片机是初学者首选的,具有指令多,编程易等优点。典型代表为AT89S51、AT89S52,由美国ATMEL 公司生产,后授权给中国台湾某公司生产和销售。

方案二:使用AVR ATMEGA系列单片机。

ATMEGA 系列是美国ATMEL 公司生产的AVR 8位单片机中的高端产品,由于市场和技术原因,市场占有率挺高,采用精简指令集系统。具有功耗低、处理速度快、性价比高等优点,但是其价格昂贵,目前市场上不易买到。

方案三:使用MPS430,凌阳61单片机等16位单片机或者ARM 系列单片机。 由于本系统控制功能简单,没有必要为了提高性能而增加成本和开发难度。 经过综合考虑,本题目采用第一套方案,选取IO 口个数和ROM 大小适合本系统的AT89S52单片机。

3.4 显示方式的选择

方案一:采用LCD1602液晶屏显示

LCD1602能够显示两行字符或数字,每行8个,可视面积较小。

方案二:采用LCD12864液晶屏显示

LCD12864能够显示4行汉字,每行显示8个汉字或16个字符。可视面积大,但是价格昂贵,程序设计较为麻烦。

方案三:采用NOKIA5110 LCD液晶屏显示

NOKIA5110 LCD 具有84*48点阵图形显示能力,可同时显示4行,每行7个的12*12汉字,或者显示6行,每行14个的6*8 ASCII码字符。显示信息量一般,且不带字库,显示信息量过大时,需占用单片机大量ROM 或RAM 空间。电路设计和程序设计都较为复杂。

方案四:采用四位数码管显示

数码管只能够显示数据,不能够显示汉字,不过数码管显示直接数据,易懂,而且程序设计比较简单。

综合考虑:本系统采用数码显示,方便直接,性价比高,功耗低。采用四位共阳极数码管,动态扫描。位选采用三极管电流驱动和开关的选择。

3.5 小车电机驱动电路的选择

方案一:采用三极管组成的分立式H 桥电路。

每个电机都采用有四个三极管组成的H 桥电路,三极管价格低廉,电路原理易懂。实际使用的时候,用分立元件制作H 桥式是很麻烦的。

方案二:采用集成电路L298NH 桥电路。

L298N 是专用的驱动集成电路,属于H 桥集成电路,其输出电流大,功率大,可以驱动感性负载,如大功率直流电机,步进电机等特别是器输入端可以与单片机之间相连,从而很方便地受单片机控制,可以之间驱动两个直流电机,并可以实现电机的正反转。

综合考虑:本系统采用集成电路L298N, 通过单片机输出逻辑电平就可以控制小车电机的运动状态。

3.6遥控器的选择

红外遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。

方案一:采用自制矩阵遥控器

采用矩阵键盘、主控器和光电二极管设计一个遥控器,电路设计较为复杂,而且还得编程。

方案二:采用有2262和2272组成的四路遥控器

市场有销售的四路这样的遥控器,不过价格较为昂贵。

方案三:采用目前最为流行软包9012电视机遥控器

这种电视机遥控器,组成简单,应用方便,在主电路中用一个接收头,接受信号。通过单片机进行数据的处理,实现解码,予以控制。

综合考虑:本系统采用采用9012电视机遥控器,方便简单,而且市场上较多,价格便宜。

第四章 硬件电路的设计

硬件系统主要有超声波数据采集模块、红外遥控接收模块、小车驱动模块、距离显示模块、报警模块和主控器组成。系统硬件部分的整体框图4.1如下所示: 超声波数据

显示模块

超声波数据

采集模块超声波数据

采集主控器报警系统模块小车运动状态主控器L298N 电机驱动模块

红外遥控模

直流稳压电

源模块模块

4.1系统硬件部分的整体框图

4.1控制器

本设计经过第三章的论证,选用了ATMEl 公司生产的AT89S52单片机,AT89S52是一个低电压,高性能CMOS 8位单片机,片内含8kB 的可反复擦写的Flash 只读程序存储器和128 B的随机存取数据存储器(RAM ),器件采用ATMEL 公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash 存储单元,内置功能强大的微型计算机的AT89S52提供了高性价比的解决方案。

AT89S52是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89S52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash 存储器结合在一起,特别是可反复擦写的Flash 存储器可有效地降低开发成本。

I/O 端口的编程实际上就是根据应用电路的具体功能和要求对 I/O 寄存器进行编程。具体步骤如下:

(1) 根据实际电路的要求,选择要使用哪些 I/O 端口,用 EQU 伪指令定义

其相应的寄存器;

(2) 初始化端口的数据输出寄存器,应避免端口作为输出时的开始阶段出现不确定状态,影响外围电路正常工作;

(3) 根据外围电路功能,确定 I/O 端口的方向,初始化端口的数据方向寄存器。对于用作输入的端口可以不考虑方向初始化,因为 I/O 的复位缺省值为输入;

(4) 用作输入的 I/O 管脚,如需上拉,再通过输入上拉使能寄存器为其内部配置上拉电阻;

(5) 最后对 I/O 端口进行输出(写数据输出寄存器) 和输入(读端口) 编程,完成对外围电路的相应功能。

图4.2 AT89S52单片机芯片

XTAL1:接外部晶振的一个引脚。在单片机内部,它是一个反相放大器输入端,这个放大器构成了片内振荡器。它采用外部振荡器时,此引脚应接地。

XTAL2:接外部晶振的一个引脚。在片内接至振荡器的反相放大器输出端和内部时钟发生器输入端。当采用外部振荡器时,则此引脚接外部振荡信号的输入。

RST :AT89S52 的复位信号输入引脚,高电位工作,当要对芯片复位时,只要将此引脚电位提升到高电位,并持续两个机器周期以上的时间,AT89S52便能完成系统复位的各项工作,使得内部特殊功能寄存器的内容均被设成已知状态。具体的硬件原理图如图4.3:

4.2 超声波测距模块

超近。该模块的主要技术参数:

(1) 使用电压:DC5V (4) 电平输出:底0V 该模块的外形图如下:(3) 电平输出:高5V (6) 探测距离:2cm-500cm (2) 静态电流:小于2mA (5) 感应角度:不大于15度

图4.3 最小系统硬件原理图 本系统采用深圳市捷深科技生产URF04模块,本模块性能稳定,测度距离精确。能和国外的SRF05,SRF02等超声波测距模块相媲美。模块高精度,盲区(2cm )

图4.4 超声波测距模块的外形图

板上接线方式如表4.1,

表4.1 接线图

该超声波模块的工作原理:

(1) 采用IO 触发测距,给至少10us 的高电平信号;

(2) 模块自动发送8个40khz 的方波,自动检测是否有信号返回;

(3) 有信号返回,通过IO 输出一高电平,高电平持续的时间就是超声波从发射到返回的时间。

超声波发射电路如图4.5所示:

图4.5 超声波发射图

超声波接收电路如图4.6所示:

图4.6 超声波接收电路

超声波模块与单片机接口电路如图4.7:

图4.7 超声波与单片机接口电路

4.3 超声波测距显示模块

在单片机应用系统中,LED 数码管的显示常用两种方法:静态显示和动态扫描显示。本设计中采用动态扫描四个三极管作为位选的驱动开关和电流放大。具体的的硬件电路如图4.8所示:

图4.8超声波测距显示模块硬件电路

4.4 超声波测距报警模块

采用一个蜂鸣器,由P3.1输出一定频率的信号,在连接到蜂鸣器之前,经过一个三极管9012的放大。报警部分的连线,如图4.9所示

图4.9超声波测距报警模块电路

4.5 小车驱动模块

为提高系统效率、降低功耗,功放驱动电路采用基于双极型H 桥型脉宽调制方式(PWM )的集成电路L298N 。L298N 是SGS 公司的产品,内部包含二个H 桥的高电压大电流桥式驱动器,接收标准TTL 逻辑电平信号,可驱动46伏、2安培以下的电机,工作温度范围从-25度到130度。其内部的内部逻辑图如图4.10所示。

图4.10 L298N内部的内部逻辑图

L298N 引脚图如图4.11所示。

图4.11 L298N引脚图

L298N 引脚功能如表4.2。

表4.2 L298N引脚功能说明

本系统所设计的基于L298N 电机驱动电路如图4.12所示。

图4.12 L298N电机驱动电路

4.6 红外遥控接收模块

遥控接收使用红外接收模块1838,该接收模块是一个三端元件,具有功耗低、抗干扰能力强、输入灵敏度高的特点。如图4.13所示,1838接AT89S52的P3.2(外中断0) 。当1838V 接收到遥控信号时,产生中断,处理遥控数据,处理完后返回。

图4.13 红外遥控接收模块

遥控接收使用红外接收模块1838的外形封装如图4.14:

图4.14 遥控接收使用红外接收模块1838的外形封装

红外接收头的主要参数如下: 工作电压:4.8~5.3V 工作电流:1.7~2.7mA 接收频率:38kHz 峰值波长:980nm 静态输出:高电平 输出低电平:≤0.4V 输出高电平:接近工作电压

第五章 软件设计

5.1 程序设计方案

5.1.1 超声波测距程序设计方案

主要由主程序、超声波发生子程序、超声波接收中断程序、报警子程序及显示子程序等部分组成。

在系统硬件构架了超声波测距的基本功能之后,系统软件所实现的功能主要是针对系统功能的实现及数据的处理和应用。根据系统硬件设计和所完成的功能,系统软件需要实现以下功能:

(1) 信号控制

在系统硬件中,已经完成了发射电路、接收电路、检测电路、显示电路、门限检测的设计。在系统软件中,要完成增益控制信号、门控信号、发射脉冲信号、峰值采集信号、远近控制信号的时序及输出。

(2) 数据存储

为了得到发射信号与接收回波间的时间差,要读出此刻计数器的计数值,然后存储在 RAM 中,而且每次发射周期的开始,需要对计数器清零,以备后续处理。

(3) 信号处理

RAM 中存储的计数值并不能作为距离值直接显示输出,因为计数值与实际的距离值之间转换公式为:S=0.5*V*T=0.5*V*(Tr*N)其中,T 为发射信号到接收之间经历的时间,Tr 为方波信号作为计数脉冲时计数器的时间分辨率,N 为计数器的值。在这个部分中,信号处理包括计数值与距离值换算,二进制与十进制转换。

(4) 数据传输与显示

经软件处理得到的距离送显示输出,用四位 LED 表示。由于采用了单片机AT89S52并考虑整个系统的控制流程,整个系统软件都有 AT89S52系列单片机汇编语言实现。由于距离值的得出及显示是在中断子程序中完成的,因此在初始化发射程序后进入中断响应的等待。在中断响应之后,原始数据经计数值与距离值换算子程序,二进制与十进制转换子程序后显示输出。整个系统软件功能的实现可以分为主程序、中断服务程序等几个主要部分。 5.1.2 超声波测距显示程序设计

动态显示是多个数码管交替显示,利用人的视觉暂留作用使人看到多个数码管同时显示。在编程时,需要输出段选和位选信号,位选信号选中其中一个数码管,然后输出段码,使该数码管显示所需要的内容,延时一段时间后,再选中另一个数码管,再输出对应的段码,高速交替。在动态显示程序中,各个位的延时时间长短是非常重要的,如果延时时间长,则会出现闪烁现象;如果延时时间太短,则会出现显示暗且有重影。

例如需要显示数字“12”时,先输出位选信号,选中第一个数码管,输出1 的段码,延时一段时间后选中第二个数码管,输出2 的段码。把上面的流程以一定的速度循环执行就可以显示出“12”,由于交替的速度非常快,人眼看到的就是连续的“12”。

5.1.3超声波数据采集电路软件流程

主程序初始化后主要判断是否发送超声波,发送超声波后,根据超声波接收到

的时间,按照公式计算出距离信息,同时将距离信息发送到相应的显示端口,使LED 显示屏予以显示当前的距离信息。具体的程序流程图如图5.1所示。

图5.1 超声波数据采集电路软件流程图

5.2 控制电路程序设计

5.2.1红外接收解码设计

红外遥控器的一帧数据中含有32 位码,包含两次8 位用户码,8 位数据码和8 位数据码的反码及最后位的同步位。引导码由4.5ms 的载波和4.5ms 的载波关断波形所构成,以作为用户码、数据码以及他们的反码的先导。同步位(SY )是标志最后一位编码是“0”或“1”的标识位,它只有0.56ms 的有载波信号构成。0和1的波形如图5.2:

图5.2 遥控器“0”和“1”

用户码和键数据码的发送均是低位在前,高位在后。

当一个键按下超过36ms ,振荡器使芯片激活,将发射一组108ms 的编码脉冲, 这108ms 发射代码由一个起始码(9ms ), 一个结果码(4.5ms ), 低8位地址码(9ms-18ms ), 高8位地址码(9ms-18ms ),8位数据码(9ms-18ms )和这8位数据的反码(9ms-18ms )组成。如果键按下超过108ms 仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms )和结束码(2.5ms )组成。

单片机接收到信号时,对信号进行解码,解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms 的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms, 所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms 低电平过后,开始延时,0.56ms 以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms 长些,但又不能超过1.12ms, 否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms 左右均可。

5.2.2 小车驱动程序设计

小车控制流程:首先从单片机中读出控制信息,向连接单片机六个端口写入对应的高或低电平。使小车工作于不同的运动状态。端口电平与小车运动状态的

对应关系表如表5.1。

表5.1端口电平与小车运动状态的对应关系

5.2.3 控制电路程序流程

主程序初始化后采用按键查询的方式判断遥控器是否有键按下,根据接收到不同码率,识别出不同的键值,再根据不同的键值执行相应的命令,使小车运动于不同的状态。具体的程序流程图如图5.3所示。

图5.3 控制电路程序流程图

结 论

本设计采用8位微处理器AT89S52为主控制器,通过超声波传感器采集距离信息,并通过主控制器进行数据的转换和控制,同时通过红外遥控器对小车的运动状态加以控制。该系统采用软、硬件结合的方法,硬件系统主要有超声波数据采集模块、红外遥控接受模块、小车驱动模块、距离显示模块、报警模块和主控器组成。AT89S52单片机为许多控制提供了高度灵活和低成本的解决办法。充分利用它的片内资源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。

总而言之,本文的创新点和取得的主要成果是:

(1)具有模块化的特点。该设计采用模块化设计,超声波数据采集系统和红外遥控小车系统。超声波数据采集系统主要是采集距离信息,并根据不同的信息发出不同频率的声音;控制系统主要负责控制小车,通过红外遥控器向控制器发送控制命令,以达到手动控制小车的目的。这样可以使各部分明确分工,更好地提高工作效率。

(2)具有多用化的特点。本文设计中的超声波测距模块可以应用于机器人的距离信息采集,汽车防撞测距等各个方面。具有很高的移植应用价值。

本文所述的系统完成了预期要求的功能指标,但由于时间紧迫,系统有些方面还需改进,为了得到更好的性能,可以从以下几方面来进一步开展工作:

(1)可增加温度补偿单元。要想通过测量超声波传播时间确定距离,声速C 必须恒定,实际上声速随介质、温度、压力等变化而变化。通过对温度修正来校正声速的方法,即用测温元件测量实际环境,根据声速与温度的关系计算出测量时实际环境中的声速,再根据测距公式得到距离。

(2)可以进一步改进接收电路,提高接收电路的反应速度;对于发射电路,可以直接采用硬件电路发生脉冲等。

利用超声波检测往往比较迅速,方便,易于做到实时控制,并且在测量精度方面能达到工业实用的要求。超声波测量在国防,航空航天,电力,石化,机械,材料等众多领域具有广泛的作用,它不但可以保证产品质量,保障安全,还可起到节约能源,降低成本的作用。超声检测设备还具有结构简单,成本低廉的优点,有利于工程实际使用。近十几年来,由于微机技术,现代电子技术,信号处理技术以及超声波产生和接收新技术的发展,突破了常规超声检测的限制,进一步开拓了其适用范围,超声波测距技术将会有更大的发展。

致 谢

在2011年3月以来两个多月的毕业设计期间,我得到了多位老师、同学和朋友的指导和帮助。

首先感谢电子信息与电气工程学院为我提供了进行毕业设计的场地,制作线路板的工具以及计算机等设备。

其次感谢指导老师李响对我关心和督促。感谢他在我论文的修改中给予的帮助。

本毕业设计锻炼了我的系统设计能力,进一步强化了专业知识,提高了将所学知识应用于实践的能力。由于本人水平有限,论文中的错误与纰漏之处恳请各位老师指正。

最后,对参加论文评阅、答辩的所有老师和评委表示最诚挚的感谢!

参考文献

[1] 张珩,刘亚杰.AT89C52超声波测距倒车防撞报警系统[J ]. 现代电子技术,2010.3 [2] 戴日章,吴志勇.基于AT89S52单片机的超声波测距系统设计[J].计量与测量技术,2005(32):17—19.

[3] 赵广涛,程荫杭.基于超声波传感器的测距系统设计[J].传感器与仪器仪表,2006,22(1):129—131.

[4] 石峰.高精度低成本车用超声波传感器的研制[J].传感器世界,2006(1):30—32. [5] 楼燃苗,李光飞.51系列单片机设计实例[M].北京:北京航空航天大学出版社,2003. [6] 何希才.传感器及其应用电路[M].北京:电子工业出版社,2001.

[7] 王安敏,张凯.基于AT89C52单片机的超声波测距系统[J].仪表技术与传感器,2006(6):45—46.

[8] 谢维成,杨加国.单片机原理与应用及C51程序设计[M].北京:清华大学出版社,2006. [9] 李光飞, 单片机c 程序设计实例指导[M].北京:北京航空航天大学出版社,2005. [10] 樊高妮, 何永强. 单片机AT89C2051在超声波测距系统中的应用[J ]. 现代电子技术2006 [11] 华强. 激光-超声-单片机组合汽车防撞系统[J].惠州大学学报2001,21(4) [12] 潘福全, 符传聪. 基于超声波的汽车倒车防撞系统设计[J].机械工程与自动化2010 [13] 王振营,李满,杨君.ProtelDXP2004电路设计与制版实用教程[M].北京:中国铁道出版社,2006,(6)

[14] 刘小春, 首珩. 无刷直流电动机的单片机控制[J]. 自动化技术与应用, 2009, (03) :129-131

[15] 郝建国, 郑燕. 单片机在电子电路设计中的应用[M] .北京:清华大学出版社,2006 [16] 孙育才.MCS-51系列单片微型计算机及其应用[M].东南大学出版社,1991 [17] 李华.MCS-51系列单片机实用接口技术. 北京航空大学出版社,1993

附录A :硬件原理图

附 录

图A1 系统原理图

系统、数码管显示和小车电机驱动原理图分别如图A1,图A2和图A3所示

图A2 数码管显示原理图

图A3 小车电机驱动电路原理图

附录B :硬件PCB 图

超声波数据采集系统、红外遥控小车系统和小车电机驱动硬件PCB 图分别如图B1,图

附录C :硬件实物图

附录C 硬件实物图

附录D :部分源程序

D1:控制源程序 #include #include #include

//////////////////////////////////////////////// #define TURE 1 #define FALSE 0

//////////////////////////////////////////////// sbit IR=P3^2;//红外接口标志

//////////////////////////////////////////// unsigned char irtime;//红外用全局变量 bit irpro_ok,irok; unsigned char IRcord[4]; unsigned char irdata[33];

////////////////////////////////////////////// void Delay(unsigned char mS); void Ir_work(void); void Ircordpro(void);

////////////////////////////////////////////////////////////////// void tim0_isr (void) interrupt 1 using 1//定时器0中断服务函数 {

irtime++; }

////////////////////////////////////////////////////////////////////// void ex0_isr (void) interrupt 0 using 0//外部中断0服务函数 {

static unsigned char i; static bit startflag;

if(startflag) {

if(irtime=33)//引导码 TC9012的头码 i=0;

irdata[i]=irtime;//一次存储32位电平宽度

irtime=0; i++; if(i==33)

{ irok=1; i=0; }

} }

//////////////////////////////////////////////////////////////////// void TIM0init(void)//定时器0初始化 {

TMOD=0x02;//定时器0工作方式2,TH0是重装值,TL0是初值 TH0=0x00; TL0=0x00; ET0=1;//开中断 TR0=1; }

/////////////////////////////////////////////////////////////////// void EX0init(void) {

IT0 = 1;

EX0 = 1; // EX0 中断

else

{irtime=0;startflag=1;}

EA = 1; }

/****************************************************************/ /******************************************************************/ void Ir_work(void)//红外键值散转程序 {

switch(IRcord[2])//判断第三个数码值

{

case 0:P0=0xD8;break;//小车前进 case 1:P0=0xB4;break;//小车后退 case 2:P0=0x98;break;//小车前左转 case 3:P0=0xD0;break;//小车前右转 case 4:P0=0x94;break;//小车后左转 case 5:P0=0xB0;break;//小车后右转 case 6:P0=0x00;break;//小车停在 //case 7:P0=0x80;break;//8 //case 8:P0=0xff;break;//9 }

irpro_ok=0;//处理完成标志

}

/*****************************************************************/ void Ircordpro(void)//红外码值处理函数 {

unsigned char i, j, k; unsigned char cord,value; k=1;

for(i=0;i

for(j=1;j

{

cord=irdata[k];

if(cord>7)//大于某值为1

{

value=value|0x80;

}

else

{

value=value;

}

if(j

{ value=value>>1; }

k++;

}

IRcord[i]=value;

value=0;

} irpro_ok=1;//处理完毕标志位置1

}

///////////////////////////////////////////////////////////////// void main(void)

{

EX0init(); // Enable Global Interrupt Flag

TIM0init();//初始化定时器0

while(1)//主循环

{

if(irok)

{

Ircordpro();//码值处理

irok=0;

}

if(irpro_ok)//step press key

{

Ir_work();//码值识别散转

}

}

}

附录D2:超声波数据测距源程序

#include "reg51.h"

#include

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

sbit transfer=P3^0;

sbit receiver=P3^2;

sbit speak=P3^1;

/*数码管位选控制*/

sbit ledwei0=P3^4;

sbit ledwei1=P3^5;

sbit ledwei2=P3^6;

sbit ledwei3=P3^7;

uchar TimerH,TimerL,temp,i,a,b;

ulong realTimer; //存放真测量时间

ulong real_dis; //存放测量距离

uint dis_flag; //距离计算标志位

uint alarm_flag100=0; //用于报警

uint alarm_flag50=0;

uint alarm_flag20=0;

uint alarm_flag10=0;

uint wei0,wei1,wei2,wei3;

uchar ledflag=0; //数码管标志位,用于刷新

uchar send_flag=0;

uchar count=0; //定时器T0计数

uchar ledcode[11]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90,0xff};

/*延时函数*/

void delay(uint count)

{

}

/*超声波发送函数--40KHZ*/

void CLK40K()

{

uchar i=4; //发送的波形数量=(i/2) TR0=1; do { transfer=~transfer; _nop_ (); _nop_ (); _nop_ ();

_nop_ ();

_nop_ ();

_nop_ ();

_nop_ ();

_nop_ ();

_nop_ (); //START TIME0,同时发送40KHZ 方波 while(count--);

}

while(--i);

}

/*距离测量函数*/

void distance(void)

{

realTimer=TimerH*256+TimerL;

real_dis=realTimer*164/10000; //单位cm

wei0=real_dis%10; wei1=(real_dis/10)%10;

} wei2=(real_dis/100)%10; wei3=real_dis/1000;

/*显示刷新函数函数*/

void display(void)

{

switch(ledflag)

{

case

0:P1=ledcode[wei0];ledwei0=1;ledwei1=0;ledwei2=0;ledwei3=0;break; case

1:P1=ledcode[wei1];ledwei0=0;ledwei1=1;ledwei2=0;ledwei3=0;break; case

2:P1=ledcode[wei2];ledwei0=0;ledwei1=0;ledwei2=1;ledwei3=0;break; case

3:P1=ledcode[wei3];ledwei0=0;ledwei1=0;ledwei2=0;ledwei3=1;break; }

ledflag++;

if(ledflag==4)

ledflag=0;

delay(0x80);//768us=0.768ms//520次

}

/*报警处理函数*/

void alarm_light(void)

{

if(real_dis

{

}

else if(real_dis

speak=1;

{

if(alarm_flag20>=1)

{

speak^=1;

alarm_flag20=0;

}

}

else if(real_dis

{

if(alarm_flag50>=2)

{

speak^=1;

alarm_flag50=0;

}

}

else if(real_dis

{

if(alarm_flag100>=4)

{

speak^=1;

alarm_flag100=0;

}

}

else

{

speak=1;

}

}

/*系统初始化程序*/

void init()//系统初始化

}

void int0(void) interrupt 0 //关闭计数器,存计数值, 置标志

{

EA=0; //关闭中断

//关外部中断

//读取数值 temp=0xfe; P2=temp; TMOD=0X11; //初始化定时器T0,T1用于产生40hz 发射波 TH0=0x00; TL0=0x00; TH1=0x00; TL1=0x00; TF1=0; PX0=1; ET1=1; EA=1; TR1=1; IT0=0; //启动定时器1 //外部低电平触发方式 EX0=0; TimerL=TL0;

TimerH=TH0;

TR0=0;

TH0=0x00;

TL0=0x00;

dis_flag=1;

} //关闭定时器0 //距离计算标志

void time1(void) interrupt 3

{

TF1=0; TH0=0x00;

} TH1=0x00; TL1=0x00; send_flag=1; //开启接收回波中断

/*系统主函数*/

void main()

{

unsigned int i,j; init(); real_dis=150; delay(0x40); while(1) { if(send_flag==1) { //系统初始化 //y预设初值,防止开机未发射超声波,电机锁死

/* 报警级别计数*/

alarm_flag100++; alarm_flag50++; alarm_flag20++; alarm_flag10++;

/* 报警级别计数*/

send_flag=0; count++; if(count==5) { count=0; CLK40K(); delay(0x40); //延时,避开发射的直达声波信号, 可以调节测量

的最小距离

} if(dis_flag==1) { dis_flag=0; } distance(); EA=1; } EX0=1;

display(); //调用显示函数

if(real_dis>i; b=temp

alarm_light();

} }

本 科 毕 业 论 文

基于超声波测距的智能小车设计

The Design of Intelligent Car Based on Ultrasonic

Ranging

系(院)名称: 电子信息与电气工程

专业班级:

学生姓名:

学生学号: [1**********]07

指导教师姓名: 李 响

指导教师职称: 讲师

2011年 5 月

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得安阳工学院及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作 者 签 名: 日 期: 指导教师签名: 日 期:

使用授权说明

本人完全了解安阳工学院关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名: 日 期:

目 录

摘要 . ................................................................................................................................. I

Abstract .......................................................................................................................... I I 引 言 . ......................................................................................................................... 1

第一章 绪 论 .............................................................................................................. 2

1.1课题研究背景 .................................................................................................... 2

1.2课题研究意义 .................................................................................................... 2

第二章 超声波测距原理 . ...................................................................................... 4

2.1 超声波传感器介绍 ........................................................................................... 4

2.2 超声波发生器 ................................................................................................... 5

2.3压电式超声波发生器原理 ................................................................................ 5

2.4超声波测距的基本原理 .................................................................................... 6

第三章 方案论证及选择 ........................................................................................ 8

3.1 设计的任务要求 ............................................................................................... 8

3.2 系统初步设计及可行性论证 ........................................................................... 8

3.3 微处理器的选择 ............................................................................................... 9

3.4 显示方式的选择 ............................................................................................... 9

3.5 小车电机驱动电路的选择 ............................................................................. 10

3.6 遥控器的选择 ................................................................................................. 10

第四章 硬件电路的设计 ...................................................................................... 11

4.1控制器 .............................................................................................................. 11

4.2 超声波测距模块 ............................................................................................. 13

4.3 超声波测距显示模块 ..................................................................................... 15

4.4 超声波测距报警模块 ..................................................................................... 16

4.5 小车驱动模块 ................................................................................................. 16

4.6 红外遥控接收模块 ......................................................................................... 18

第五章 软件设计 .................................................................................................... 20

5.1 程序设计方案 ............................................................................................................... 20

5.1.1超声波测距程序设计方案 . .................................................................................... 20

5.1.2超声波测距显示程序设计 . .................................................................................... 20

5.1.3超声波数据采集电路软件流程图 ....................................................................... 21

5.2 控制电路程序设计 . ..................................................................................................... 22

5.2.1 红外接收解码设计 ................................................................................................. 22

5.2.2 小车驱动程序设计 ................................................................................................. 22

5.2.3 控制电路程序流程图 . ............................................................................................ 23 结 论 .......................................................................................................................... 24 致 谢 .......................................................................................................................... 25 参考文献 ..................................................................................................................... 26 附录 . .............................................................................................................................. 27

附录A :硬件原理图 .............................................................................................. 27

附录B :硬件PCB 图 .............................................................................................. 29

附录C :硬件实物图 .............................................................................................. 31 附录D :部分源程序 . ........................................................................................................... 32 附录D1:控制源程序 . ........................................................................................................... 32 附录D2:超声波数据测距源程序 . .................................................................................... 37

基于超声波测距的智能小车设计

摘要:本设计采用AT89S52单片机作为主控器,结合超声波测距原理,设计了红外遥控小车的测距报警系统。该系统采用软、硬件结合的方法,具有模块化和多用化等特点,AT89S52单片机为许多控制提供了高度灵活和低成本的解决办法。超声波距离测量系统用的频率为40KHz 的脉冲压力波,发射和接收的传感器有时共用一个,或者两个是分开使用的。发射电路一般由振荡和功放两部分组成,负责向传感器输出一个有一定宽度的高压脉冲串,并由传感器转换成声能发射出去;接收放大器用于放大回声信号以便记录,同时为了使它能接收具有一定频带宽度的短脉冲信号,接收放大器要有足够的频带宽度;收、发隔离则使接收装置避开强大的发射信号;记录、控制部分启动或关闭发射电路并记录发射的瞬时及接收的瞬时,并将时差换算成距离读数并加以显示或记。充分利用它的片内资源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。利用现在最常用的电视机遥控器来控制小车的运动状态。

关键词:超声波 测距 AT89S52 红外遥控

The Design of Intelligent Car Based on Ultrasonic Ranging

Abstract :This design USES the AT89S52 SCM as the main controller, combined with ultrasonic ranging the principle, design the infrared remote control car range finder alarm system. This system USES software and hardware of the method of combining with modularization and multi-purpose, etc, of AT89S52 SCM for many control provides highly flexible and low cost solutions. Ultrasonic distance measurement system frequency used in the pulse pressure wave for 40KHz, sending and receiving sensors sometimes share one or two are used separately. Launch circuit is general by oscillation and amplifier, responsible for two parts to sensor output a certain width, and the high pressure pulse sequence by sensor convert sound energy emitted; Receiving amplifier used to amplify the echo signal so that records,m eanwhile in order to make it can accept certain band width of short pulses, receiving amplifier must have plenty of band width; Collect, hair isolation makes receiving devices to avoid strong signal; Records, the control part on or off the launch circuit and record the launch of the instantaneous and receive the instantaneous, and will be converted to distance jet lag and it displays or remember reading. Make full use of the piece, can in less within resources under the condition of buffer circuit constitute the function is perfect ultrasonic ranging system. The most commonly used by the TV remote control now control car motions.

Key words:Ultrasonic; Ranging; AT89S52; Infrared remote control

引 言

高速度,高效率是现代工业的标志,超声波检测技术是我国重点发展和推广的新技术,其具有高精度,无损,非接触等优点。目前,已经广泛地应用在机械制造,电子冶金,航海,宇航,石油化工,交通等工业领域。此外,在材料科学,医学,生物科学等领域中也占据重要地位。国外在提高超声波测距方面做了大量研究,国内一些学者也做了相关研究。对超声波测距精度主要取决于所测的超声波传播时间和超声波在介质中的传播速度,二者中以传播时间的精度影响较大,所以大部分文献采用降低传播时间的不确定度来提高测距精度。

目前,相位探测法和声谱轮廓分析法或二者结合起来的方法是主要的降低探测传输不确定度的方法。随着检测技术研究的不断深入,对超声检测仪器的功能要求越来越高,单数码显示的超声检测仪测读会带来较大的测试误差。进一步要求以后生产的超声仪能够具有双显及内带有单片机的微处理功能。随后具有检测,记录,存储,数据处理与分析等多项功能的智能化检测分析仪相继研制成功。超声仪研制呈现一派繁荣景象。利用超声波制作汽车防撞雷达可以帮助驾驶员及时了解车周围阻碍情况, 防止汽车在转弯、倒车等情况下撞伤、划伤。硬件电路部分,单片机对外围电路的适时控制, 并提供给外围电路各种所需的信号, 包括频率振荡信号、数据处理信号和译码显示信号等, 大大简化了外围电路的设计难度。同时更重要的是该设计方案大大节省了设计成本, 并且由于是采用软件编程技术, 所以其移植性能好, 在设计电路时可以将其它更多的功能设计进去。

第一章 绪 论

随着社会经济的发展, 交通运输业日益兴旺,汽车的数量在大副攀升。交通拥挤状况也日趋严重,撞车事件屡屡发生,造成了不可避免的人身伤亡和经济损失,针对这种情况,设计一种响应快,可靠性高且较为经济的汽车测距报警系统势在必行,超声波测距法是最常见的一种距离测量方法,应用于汽车停车的前后左右防撞的近距离,低速状况,以及在汽车倒车测距报警系统中,超声波作为一种特殊的声波,同样具有声波传输的基本物理特性——折射,反射,干涉,衍射,散射。超声波测距即是利用其反射特性,当车辆前进或后退时,超声波距离传感器利用超声波检测车辆后方的障碍物位置,并利用数码管及蜂鸣器把车辆到障碍物的距离及位置通知驾驶人员,起到安全的作用。

1.1课题研究背景

近年来,随着电子测量技术的发展,运用超声波作出精确测量已成可能。随着经济发展,电子测量技术应用越来越广泛,而超声波测量精确高,成本低,性能稳定则备受青睐。超声波是指频率在20kHz 以上的声波,它属于机械波的范畴。超声波也遵循一般机械波在弹性介质中的传播规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质吸收而发生衰减等。正是因为具有这些性质,使得超声波可以用于距离的测量中。随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中。一般的超声波测距仪可用于固定物位或液位的测量,适用于建筑物内部、液位高度的测量等。本设计采用40kHz 超声波发射模块。

1.2课题研究意义

由于超声波测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。因此可广泛应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品)、防汛、水文、明渠、空间定位、公路限高等行业中。可在不同环境中进行距离准确度在线标定,可直接用于水、酒、糖、饮料等液位控制,可

进行差值设定,直接显示各种液位罐的液位、料位高度。因此,超声波在特殊环境下有较广泛的测距应用。利用超声波检测往往比较迅速、方便、计算简单、易于实现实时控制,并且在测量精度方面能达到工业实用的指标要求,所以为了使移动机器人能够自动躲避障碍物行走,就必须装备测距系统,以使其及时获取距障碍物的位置信息(距离和方向)。这样超声波测距在移动机器人的研究上就有着深远的意义。同时基于超声波测距系统具有以上的种种优点,在汽车前进、倒车防撞测距的研制方面也得到了广泛的应用。

第二章 超声波测距原理

2.1 超声波传感器介绍

超声波由于其指向性强、能量消耗缓慢、传播距离较远等优点,而经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。超声波测距主要应用于倒车雷达、建筑施工工地以及一些工业现场,例如液位、井深、管道长度等场合。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在测控系统的研制上得到了广泛应用。

超声波传感器是一种将其他形式的能转变为所需频率的超声能或是把超声能转变为同频率的其他形式的能的器件。目前常用的超声波传感器有两大类,即电声型与流体动力型。电声型主要有:1 压电传感器;2 磁致伸缩传感器;3 静电传感器。流体动力型中包括有气体与液体两种类型的哨笛。由于工作频率与应用目的不同,超声波传感器的结构形式是多种多样的,并且名称也有不同,例如在超声波检测和诊断中习惯上都把超声波传感器称作探头,而工业中采用的流体动力型传感器称为“哨”或“笛”。

压电传感器属于超声波传感器中电声型的一种。探头由压电晶片、楔块、接头等组成,是超声波检测中最常用的实现电能和声能相互转换的一种传感器件,是超声波检测装置的重要组成部分。压电材料分为晶体和压电陶瓷两类。属于晶体的如石英,铌酸锂等,属于压电陶瓷的有锆钛酸铅,钛酸钡等。其具有下列的特性:把这种材料置于电场之中,它就产生一定的应变;相反,对这种材料施以外力,则由于产生了应变就会在其内部产生一定方向的电场。所以,只要对这种材料加以交变电场,它就会产生交变的应变,从而产生超声振动。因此,用这种材料可以制成超声波传感器。

传感器的主要组成部分是压电晶片。当压电晶片受发射电脉冲激励后产生振动,即可发射声脉冲,是逆压电效应。当超声波作用于晶片时,晶片受迫振动引起的形变可转换成相应的电信号,是正压电效应。前者用于超声波的发射,后者即为超声波的接收。超声波传感器一般采用双压电陶瓷晶片制成。这种超声传感器需要的压电材料较少,价格低廉,且非常适用于气体和液体介质中。在压电陶

瓷上加有大小和方向不断变化的交流电压时,根据压电效应,就会使压电陶瓷晶片产生机械变形,这种机械变形的大小和方向在一定范围内是与外加电压的大小和方向成正比的。也就是说,在压电陶瓷晶片上加有频率为 f0交流电压,它就会产生同频率的机械振动,这种机械振动推动空气等媒介,便会发出超声波。如果在压电陶瓷晶片上有超声机械波作用,这将会使其产生机械变形,这种机械变形是与超声机械波一致的,机械变形使压电陶瓷晶片产生频率与超声机械波相同的电信号。

压电陶瓷晶片有一个固定的谐振频率,即中心频率 f0。发射超声波时,加在其上面的交变电压的频率要与它的固有谐振频率一致。这样,超声传感器才有较高的灵敏度。当所用压电材料不变时,改变压电陶瓷晶片的几何尺寸,就可非常方便的改变其固有谐振频率。利用这一特性可制成各种频率的超声传感器。

超声波传感器的内部结构由压电陶瓷晶片、锥形辐射喇叭、底座、引线、金属壳及金属网构成,其中,压电陶瓷晶片是传感器的核心,锥形辐射喇叭使发射和接收超声波能量集中,并使传感器有一定的指向角,金属壳可防止外界力量对压电陶瓷晶片及锥形辐射喇叭的损坏。金属网也是起保护作用的,但不影响发射与接收超声波。

2.2 超声波发生器

为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器。

2.3压电式超声波发生器原理

压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器内部结构如图2.1所示,它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。

图2.1压电式超声波传感器结构图

2.4超声波测距的基本原理

谐振频率高于20kHz 的声波被称为超声波。超声波为直线传播方式,频率越高,绕射能力越弱,但反射能力越强。利用超声波的这种性能就可制成超声传感器,或称为超声换能器,它是一种既可以把电能转化为机械能、又可以把机械能转化为电能的器件或装置。换能器在电脉冲激励下可将电能转换为机械能,向外发送超声波;反之,当换能器处在接收状态时,它可将声能(机械能) 转换为电能。

最常用的超声测距的方法是回声探测法,超声波发射器向某一方向发射超声波,在发射时刻的同时计数器开始计时,超声波在空气中传播,途中碰到障碍物面阻挡就立即反射回来,超声波接收器收到反射回的超声波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t ,就可以计算出发射点距障碍物面的距离s ,即:s=340t/2。

由于超声波也是一种声波,其声速V 与温度有关。在使用时,如果传播介质温度变化不大,则可近似认为超声波速度在传播的过程中是基本不变的。如果对测距精度要求很高,则应通过温度补偿的方法对测量结果加以数值校正。声速确定后,只要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的基本原理。如图2.2所示:

图2.2 超声波的测距原理

H =S cos θ (2-1)

θ=arctan(

式中:L---两探头之间中心距离的一半.

又知道超声波传播的距离为: L ) H (2-2)

2S =vt (2-3)

式中:v—超声波在介质中的传播速度;

t—超声波从发射到接收所需要的时间.

将(2-2)、(2-3)代入(2-1)中得:

1L ⎤⎡H =vt cos ⎢arctan ⎥2H ⎦ (2-4) ⎣

其中, 超声波的传播速度v 在一定的温度下是一个常数(例如在温度T=30度时,V=349m/s);当需要测量的距离H 远远大于L 时, 则(2-4)变为: H =1vt 2 (2-5)

所以, 只要需要测量出超声波传播的时间t, 就可以得出测量的距离H.

第三章 方案论证及选择

3.1 设计的任务要求

设计一个超声波测距报警系统,利用红外遥控来小车的运行状态。

主要的任务要求如下:

(1) 能够实现超声波测距,并在数码管上予以显示实际距离。

(2) 通过遥控器能够对小车的前进、后退、左转、右转等运动状态加以控制。

(3) 采集系统采集距离信息, 并根据不同的距离信息发出不同频率的声音。

3.2 系统初步设计及可行性论证

根据设计要求,本文设计了一个基于超声波测距的红外遥控小车,设计框图如下:

图3.1 系统框图

论证1:本系统的设计是否合理

参考结构一:采用分离式结构,超声波数据采集和控制分开。超声波测距、数码管显示和报警为一个独立的系统;红外遥控接收和电机驱动为一个独立的系统。

参考结构二:采用整体式结构,超声波数据采集和控制在一起。超声波测距、数码管显示、报警、红外遥控接收和电机驱动是一个系统。

本系统超声波数据采集和控制既可分开也可融合到一个系统里面,超声波数据采集系统主要是采集距离信息,并根据不同的信息发出不同频率的声音;控制系统主要负责控制小车。通过红外遥控器向控制器发送控制命令以达到手动控制

小车的目的。采用这种控制器+数据采集独立式的结构,其优点是很明显的,具体表现为:分工明确,可以使各部分各司其责,工作效率高, 设计方便,可移植性好。本设计采用该独立式结构方案可行。

3.3 微处理器的选择

方案一:使用51单片机。

51单片机是初学者首选的,具有指令多,编程易等优点。典型代表为AT89S51、AT89S52,由美国ATMEL 公司生产,后授权给中国台湾某公司生产和销售。

方案二:使用AVR ATMEGA系列单片机。

ATMEGA 系列是美国ATMEL 公司生产的AVR 8位单片机中的高端产品,由于市场和技术原因,市场占有率挺高,采用精简指令集系统。具有功耗低、处理速度快、性价比高等优点,但是其价格昂贵,目前市场上不易买到。

方案三:使用MPS430,凌阳61单片机等16位单片机或者ARM 系列单片机。 由于本系统控制功能简单,没有必要为了提高性能而增加成本和开发难度。 经过综合考虑,本题目采用第一套方案,选取IO 口个数和ROM 大小适合本系统的AT89S52单片机。

3.4 显示方式的选择

方案一:采用LCD1602液晶屏显示

LCD1602能够显示两行字符或数字,每行8个,可视面积较小。

方案二:采用LCD12864液晶屏显示

LCD12864能够显示4行汉字,每行显示8个汉字或16个字符。可视面积大,但是价格昂贵,程序设计较为麻烦。

方案三:采用NOKIA5110 LCD液晶屏显示

NOKIA5110 LCD 具有84*48点阵图形显示能力,可同时显示4行,每行7个的12*12汉字,或者显示6行,每行14个的6*8 ASCII码字符。显示信息量一般,且不带字库,显示信息量过大时,需占用单片机大量ROM 或RAM 空间。电路设计和程序设计都较为复杂。

方案四:采用四位数码管显示

数码管只能够显示数据,不能够显示汉字,不过数码管显示直接数据,易懂,而且程序设计比较简单。

综合考虑:本系统采用数码显示,方便直接,性价比高,功耗低。采用四位共阳极数码管,动态扫描。位选采用三极管电流驱动和开关的选择。

3.5 小车电机驱动电路的选择

方案一:采用三极管组成的分立式H 桥电路。

每个电机都采用有四个三极管组成的H 桥电路,三极管价格低廉,电路原理易懂。实际使用的时候,用分立元件制作H 桥式是很麻烦的。

方案二:采用集成电路L298NH 桥电路。

L298N 是专用的驱动集成电路,属于H 桥集成电路,其输出电流大,功率大,可以驱动感性负载,如大功率直流电机,步进电机等特别是器输入端可以与单片机之间相连,从而很方便地受单片机控制,可以之间驱动两个直流电机,并可以实现电机的正反转。

综合考虑:本系统采用集成电路L298N, 通过单片机输出逻辑电平就可以控制小车电机的运动状态。

3.6遥控器的选择

红外遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。

方案一:采用自制矩阵遥控器

采用矩阵键盘、主控器和光电二极管设计一个遥控器,电路设计较为复杂,而且还得编程。

方案二:采用有2262和2272组成的四路遥控器

市场有销售的四路这样的遥控器,不过价格较为昂贵。

方案三:采用目前最为流行软包9012电视机遥控器

这种电视机遥控器,组成简单,应用方便,在主电路中用一个接收头,接受信号。通过单片机进行数据的处理,实现解码,予以控制。

综合考虑:本系统采用采用9012电视机遥控器,方便简单,而且市场上较多,价格便宜。

第四章 硬件电路的设计

硬件系统主要有超声波数据采集模块、红外遥控接收模块、小车驱动模块、距离显示模块、报警模块和主控器组成。系统硬件部分的整体框图4.1如下所示: 超声波数据

显示模块

超声波数据

采集模块超声波数据

采集主控器报警系统模块小车运动状态主控器L298N 电机驱动模块

红外遥控模

直流稳压电

源模块模块

4.1系统硬件部分的整体框图

4.1控制器

本设计经过第三章的论证,选用了ATMEl 公司生产的AT89S52单片机,AT89S52是一个低电压,高性能CMOS 8位单片机,片内含8kB 的可反复擦写的Flash 只读程序存储器和128 B的随机存取数据存储器(RAM ),器件采用ATMEL 公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash 存储单元,内置功能强大的微型计算机的AT89S52提供了高性价比的解决方案。

AT89S52是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89S52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash 存储器结合在一起,特别是可反复擦写的Flash 存储器可有效地降低开发成本。

I/O 端口的编程实际上就是根据应用电路的具体功能和要求对 I/O 寄存器进行编程。具体步骤如下:

(1) 根据实际电路的要求,选择要使用哪些 I/O 端口,用 EQU 伪指令定义

其相应的寄存器;

(2) 初始化端口的数据输出寄存器,应避免端口作为输出时的开始阶段出现不确定状态,影响外围电路正常工作;

(3) 根据外围电路功能,确定 I/O 端口的方向,初始化端口的数据方向寄存器。对于用作输入的端口可以不考虑方向初始化,因为 I/O 的复位缺省值为输入;

(4) 用作输入的 I/O 管脚,如需上拉,再通过输入上拉使能寄存器为其内部配置上拉电阻;

(5) 最后对 I/O 端口进行输出(写数据输出寄存器) 和输入(读端口) 编程,完成对外围电路的相应功能。

图4.2 AT89S52单片机芯片

XTAL1:接外部晶振的一个引脚。在单片机内部,它是一个反相放大器输入端,这个放大器构成了片内振荡器。它采用外部振荡器时,此引脚应接地。

XTAL2:接外部晶振的一个引脚。在片内接至振荡器的反相放大器输出端和内部时钟发生器输入端。当采用外部振荡器时,则此引脚接外部振荡信号的输入。

RST :AT89S52 的复位信号输入引脚,高电位工作,当要对芯片复位时,只要将此引脚电位提升到高电位,并持续两个机器周期以上的时间,AT89S52便能完成系统复位的各项工作,使得内部特殊功能寄存器的内容均被设成已知状态。具体的硬件原理图如图4.3:

4.2 超声波测距模块

超近。该模块的主要技术参数:

(1) 使用电压:DC5V (4) 电平输出:底0V 该模块的外形图如下:(3) 电平输出:高5V (6) 探测距离:2cm-500cm (2) 静态电流:小于2mA (5) 感应角度:不大于15度

图4.3 最小系统硬件原理图 本系统采用深圳市捷深科技生产URF04模块,本模块性能稳定,测度距离精确。能和国外的SRF05,SRF02等超声波测距模块相媲美。模块高精度,盲区(2cm )

图4.4 超声波测距模块的外形图

板上接线方式如表4.1,

表4.1 接线图

该超声波模块的工作原理:

(1) 采用IO 触发测距,给至少10us 的高电平信号;

(2) 模块自动发送8个40khz 的方波,自动检测是否有信号返回;

(3) 有信号返回,通过IO 输出一高电平,高电平持续的时间就是超声波从发射到返回的时间。

超声波发射电路如图4.5所示:

图4.5 超声波发射图

超声波接收电路如图4.6所示:

图4.6 超声波接收电路

超声波模块与单片机接口电路如图4.7:

图4.7 超声波与单片机接口电路

4.3 超声波测距显示模块

在单片机应用系统中,LED 数码管的显示常用两种方法:静态显示和动态扫描显示。本设计中采用动态扫描四个三极管作为位选的驱动开关和电流放大。具体的的硬件电路如图4.8所示:

图4.8超声波测距显示模块硬件电路

4.4 超声波测距报警模块

采用一个蜂鸣器,由P3.1输出一定频率的信号,在连接到蜂鸣器之前,经过一个三极管9012的放大。报警部分的连线,如图4.9所示

图4.9超声波测距报警模块电路

4.5 小车驱动模块

为提高系统效率、降低功耗,功放驱动电路采用基于双极型H 桥型脉宽调制方式(PWM )的集成电路L298N 。L298N 是SGS 公司的产品,内部包含二个H 桥的高电压大电流桥式驱动器,接收标准TTL 逻辑电平信号,可驱动46伏、2安培以下的电机,工作温度范围从-25度到130度。其内部的内部逻辑图如图4.10所示。

图4.10 L298N内部的内部逻辑图

L298N 引脚图如图4.11所示。

图4.11 L298N引脚图

L298N 引脚功能如表4.2。

表4.2 L298N引脚功能说明

本系统所设计的基于L298N 电机驱动电路如图4.12所示。

图4.12 L298N电机驱动电路

4.6 红外遥控接收模块

遥控接收使用红外接收模块1838,该接收模块是一个三端元件,具有功耗低、抗干扰能力强、输入灵敏度高的特点。如图4.13所示,1838接AT89S52的P3.2(外中断0) 。当1838V 接收到遥控信号时,产生中断,处理遥控数据,处理完后返回。

图4.13 红外遥控接收模块

遥控接收使用红外接收模块1838的外形封装如图4.14:

图4.14 遥控接收使用红外接收模块1838的外形封装

红外接收头的主要参数如下: 工作电压:4.8~5.3V 工作电流:1.7~2.7mA 接收频率:38kHz 峰值波长:980nm 静态输出:高电平 输出低电平:≤0.4V 输出高电平:接近工作电压

第五章 软件设计

5.1 程序设计方案

5.1.1 超声波测距程序设计方案

主要由主程序、超声波发生子程序、超声波接收中断程序、报警子程序及显示子程序等部分组成。

在系统硬件构架了超声波测距的基本功能之后,系统软件所实现的功能主要是针对系统功能的实现及数据的处理和应用。根据系统硬件设计和所完成的功能,系统软件需要实现以下功能:

(1) 信号控制

在系统硬件中,已经完成了发射电路、接收电路、检测电路、显示电路、门限检测的设计。在系统软件中,要完成增益控制信号、门控信号、发射脉冲信号、峰值采集信号、远近控制信号的时序及输出。

(2) 数据存储

为了得到发射信号与接收回波间的时间差,要读出此刻计数器的计数值,然后存储在 RAM 中,而且每次发射周期的开始,需要对计数器清零,以备后续处理。

(3) 信号处理

RAM 中存储的计数值并不能作为距离值直接显示输出,因为计数值与实际的距离值之间转换公式为:S=0.5*V*T=0.5*V*(Tr*N)其中,T 为发射信号到接收之间经历的时间,Tr 为方波信号作为计数脉冲时计数器的时间分辨率,N 为计数器的值。在这个部分中,信号处理包括计数值与距离值换算,二进制与十进制转换。

(4) 数据传输与显示

经软件处理得到的距离送显示输出,用四位 LED 表示。由于采用了单片机AT89S52并考虑整个系统的控制流程,整个系统软件都有 AT89S52系列单片机汇编语言实现。由于距离值的得出及显示是在中断子程序中完成的,因此在初始化发射程序后进入中断响应的等待。在中断响应之后,原始数据经计数值与距离值换算子程序,二进制与十进制转换子程序后显示输出。整个系统软件功能的实现可以分为主程序、中断服务程序等几个主要部分。 5.1.2 超声波测距显示程序设计

动态显示是多个数码管交替显示,利用人的视觉暂留作用使人看到多个数码管同时显示。在编程时,需要输出段选和位选信号,位选信号选中其中一个数码管,然后输出段码,使该数码管显示所需要的内容,延时一段时间后,再选中另一个数码管,再输出对应的段码,高速交替。在动态显示程序中,各个位的延时时间长短是非常重要的,如果延时时间长,则会出现闪烁现象;如果延时时间太短,则会出现显示暗且有重影。

例如需要显示数字“12”时,先输出位选信号,选中第一个数码管,输出1 的段码,延时一段时间后选中第二个数码管,输出2 的段码。把上面的流程以一定的速度循环执行就可以显示出“12”,由于交替的速度非常快,人眼看到的就是连续的“12”。

5.1.3超声波数据采集电路软件流程

主程序初始化后主要判断是否发送超声波,发送超声波后,根据超声波接收到

的时间,按照公式计算出距离信息,同时将距离信息发送到相应的显示端口,使LED 显示屏予以显示当前的距离信息。具体的程序流程图如图5.1所示。

图5.1 超声波数据采集电路软件流程图

5.2 控制电路程序设计

5.2.1红外接收解码设计

红外遥控器的一帧数据中含有32 位码,包含两次8 位用户码,8 位数据码和8 位数据码的反码及最后位的同步位。引导码由4.5ms 的载波和4.5ms 的载波关断波形所构成,以作为用户码、数据码以及他们的反码的先导。同步位(SY )是标志最后一位编码是“0”或“1”的标识位,它只有0.56ms 的有载波信号构成。0和1的波形如图5.2:

图5.2 遥控器“0”和“1”

用户码和键数据码的发送均是低位在前,高位在后。

当一个键按下超过36ms ,振荡器使芯片激活,将发射一组108ms 的编码脉冲, 这108ms 发射代码由一个起始码(9ms ), 一个结果码(4.5ms ), 低8位地址码(9ms-18ms ), 高8位地址码(9ms-18ms ),8位数据码(9ms-18ms )和这8位数据的反码(9ms-18ms )组成。如果键按下超过108ms 仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms )和结束码(2.5ms )组成。

单片机接收到信号时,对信号进行解码,解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms 的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms, 所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms 低电平过后,开始延时,0.56ms 以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms 长些,但又不能超过1.12ms, 否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms 左右均可。

5.2.2 小车驱动程序设计

小车控制流程:首先从单片机中读出控制信息,向连接单片机六个端口写入对应的高或低电平。使小车工作于不同的运动状态。端口电平与小车运动状态的

对应关系表如表5.1。

表5.1端口电平与小车运动状态的对应关系

5.2.3 控制电路程序流程

主程序初始化后采用按键查询的方式判断遥控器是否有键按下,根据接收到不同码率,识别出不同的键值,再根据不同的键值执行相应的命令,使小车运动于不同的状态。具体的程序流程图如图5.3所示。

图5.3 控制电路程序流程图

结 论

本设计采用8位微处理器AT89S52为主控制器,通过超声波传感器采集距离信息,并通过主控制器进行数据的转换和控制,同时通过红外遥控器对小车的运动状态加以控制。该系统采用软、硬件结合的方法,硬件系统主要有超声波数据采集模块、红外遥控接受模块、小车驱动模块、距离显示模块、报警模块和主控器组成。AT89S52单片机为许多控制提供了高度灵活和低成本的解决办法。充分利用它的片内资源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。

总而言之,本文的创新点和取得的主要成果是:

(1)具有模块化的特点。该设计采用模块化设计,超声波数据采集系统和红外遥控小车系统。超声波数据采集系统主要是采集距离信息,并根据不同的信息发出不同频率的声音;控制系统主要负责控制小车,通过红外遥控器向控制器发送控制命令,以达到手动控制小车的目的。这样可以使各部分明确分工,更好地提高工作效率。

(2)具有多用化的特点。本文设计中的超声波测距模块可以应用于机器人的距离信息采集,汽车防撞测距等各个方面。具有很高的移植应用价值。

本文所述的系统完成了预期要求的功能指标,但由于时间紧迫,系统有些方面还需改进,为了得到更好的性能,可以从以下几方面来进一步开展工作:

(1)可增加温度补偿单元。要想通过测量超声波传播时间确定距离,声速C 必须恒定,实际上声速随介质、温度、压力等变化而变化。通过对温度修正来校正声速的方法,即用测温元件测量实际环境,根据声速与温度的关系计算出测量时实际环境中的声速,再根据测距公式得到距离。

(2)可以进一步改进接收电路,提高接收电路的反应速度;对于发射电路,可以直接采用硬件电路发生脉冲等。

利用超声波检测往往比较迅速,方便,易于做到实时控制,并且在测量精度方面能达到工业实用的要求。超声波测量在国防,航空航天,电力,石化,机械,材料等众多领域具有广泛的作用,它不但可以保证产品质量,保障安全,还可起到节约能源,降低成本的作用。超声检测设备还具有结构简单,成本低廉的优点,有利于工程实际使用。近十几年来,由于微机技术,现代电子技术,信号处理技术以及超声波产生和接收新技术的发展,突破了常规超声检测的限制,进一步开拓了其适用范围,超声波测距技术将会有更大的发展。

致 谢

在2011年3月以来两个多月的毕业设计期间,我得到了多位老师、同学和朋友的指导和帮助。

首先感谢电子信息与电气工程学院为我提供了进行毕业设计的场地,制作线路板的工具以及计算机等设备。

其次感谢指导老师李响对我关心和督促。感谢他在我论文的修改中给予的帮助。

本毕业设计锻炼了我的系统设计能力,进一步强化了专业知识,提高了将所学知识应用于实践的能力。由于本人水平有限,论文中的错误与纰漏之处恳请各位老师指正。

最后,对参加论文评阅、答辩的所有老师和评委表示最诚挚的感谢!

参考文献

[1] 张珩,刘亚杰.AT89C52超声波测距倒车防撞报警系统[J ]. 现代电子技术,2010.3 [2] 戴日章,吴志勇.基于AT89S52单片机的超声波测距系统设计[J].计量与测量技术,2005(32):17—19.

[3] 赵广涛,程荫杭.基于超声波传感器的测距系统设计[J].传感器与仪器仪表,2006,22(1):129—131.

[4] 石峰.高精度低成本车用超声波传感器的研制[J].传感器世界,2006(1):30—32. [5] 楼燃苗,李光飞.51系列单片机设计实例[M].北京:北京航空航天大学出版社,2003. [6] 何希才.传感器及其应用电路[M].北京:电子工业出版社,2001.

[7] 王安敏,张凯.基于AT89C52单片机的超声波测距系统[J].仪表技术与传感器,2006(6):45—46.

[8] 谢维成,杨加国.单片机原理与应用及C51程序设计[M].北京:清华大学出版社,2006. [9] 李光飞, 单片机c 程序设计实例指导[M].北京:北京航空航天大学出版社,2005. [10] 樊高妮, 何永强. 单片机AT89C2051在超声波测距系统中的应用[J ]. 现代电子技术2006 [11] 华强. 激光-超声-单片机组合汽车防撞系统[J].惠州大学学报2001,21(4) [12] 潘福全, 符传聪. 基于超声波的汽车倒车防撞系统设计[J].机械工程与自动化2010 [13] 王振营,李满,杨君.ProtelDXP2004电路设计与制版实用教程[M].北京:中国铁道出版社,2006,(6)

[14] 刘小春, 首珩. 无刷直流电动机的单片机控制[J]. 自动化技术与应用, 2009, (03) :129-131

[15] 郝建国, 郑燕. 单片机在电子电路设计中的应用[M] .北京:清华大学出版社,2006 [16] 孙育才.MCS-51系列单片微型计算机及其应用[M].东南大学出版社,1991 [17] 李华.MCS-51系列单片机实用接口技术. 北京航空大学出版社,1993

附录A :硬件原理图

附 录

图A1 系统原理图

系统、数码管显示和小车电机驱动原理图分别如图A1,图A2和图A3所示

图A2 数码管显示原理图

图A3 小车电机驱动电路原理图

附录B :硬件PCB 图

超声波数据采集系统、红外遥控小车系统和小车电机驱动硬件PCB 图分别如图B1,图

附录C :硬件实物图

附录C 硬件实物图

附录D :部分源程序

D1:控制源程序 #include #include #include

//////////////////////////////////////////////// #define TURE 1 #define FALSE 0

//////////////////////////////////////////////// sbit IR=P3^2;//红外接口标志

//////////////////////////////////////////// unsigned char irtime;//红外用全局变量 bit irpro_ok,irok; unsigned char IRcord[4]; unsigned char irdata[33];

////////////////////////////////////////////// void Delay(unsigned char mS); void Ir_work(void); void Ircordpro(void);

////////////////////////////////////////////////////////////////// void tim0_isr (void) interrupt 1 using 1//定时器0中断服务函数 {

irtime++; }

////////////////////////////////////////////////////////////////////// void ex0_isr (void) interrupt 0 using 0//外部中断0服务函数 {

static unsigned char i; static bit startflag;

if(startflag) {

if(irtime=33)//引导码 TC9012的头码 i=0;

irdata[i]=irtime;//一次存储32位电平宽度

irtime=0; i++; if(i==33)

{ irok=1; i=0; }

} }

//////////////////////////////////////////////////////////////////// void TIM0init(void)//定时器0初始化 {

TMOD=0x02;//定时器0工作方式2,TH0是重装值,TL0是初值 TH0=0x00; TL0=0x00; ET0=1;//开中断 TR0=1; }

/////////////////////////////////////////////////////////////////// void EX0init(void) {

IT0 = 1;

EX0 = 1; // EX0 中断

else

{irtime=0;startflag=1;}

EA = 1; }

/****************************************************************/ /******************************************************************/ void Ir_work(void)//红外键值散转程序 {

switch(IRcord[2])//判断第三个数码值

{

case 0:P0=0xD8;break;//小车前进 case 1:P0=0xB4;break;//小车后退 case 2:P0=0x98;break;//小车前左转 case 3:P0=0xD0;break;//小车前右转 case 4:P0=0x94;break;//小车后左转 case 5:P0=0xB0;break;//小车后右转 case 6:P0=0x00;break;//小车停在 //case 7:P0=0x80;break;//8 //case 8:P0=0xff;break;//9 }

irpro_ok=0;//处理完成标志

}

/*****************************************************************/ void Ircordpro(void)//红外码值处理函数 {

unsigned char i, j, k; unsigned char cord,value; k=1;

for(i=0;i

for(j=1;j

{

cord=irdata[k];

if(cord>7)//大于某值为1

{

value=value|0x80;

}

else

{

value=value;

}

if(j

{ value=value>>1; }

k++;

}

IRcord[i]=value;

value=0;

} irpro_ok=1;//处理完毕标志位置1

}

///////////////////////////////////////////////////////////////// void main(void)

{

EX0init(); // Enable Global Interrupt Flag

TIM0init();//初始化定时器0

while(1)//主循环

{

if(irok)

{

Ircordpro();//码值处理

irok=0;

}

if(irpro_ok)//step press key

{

Ir_work();//码值识别散转

}

}

}

附录D2:超声波数据测距源程序

#include "reg51.h"

#include

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

sbit transfer=P3^0;

sbit receiver=P3^2;

sbit speak=P3^1;

/*数码管位选控制*/

sbit ledwei0=P3^4;

sbit ledwei1=P3^5;

sbit ledwei2=P3^6;

sbit ledwei3=P3^7;

uchar TimerH,TimerL,temp,i,a,b;

ulong realTimer; //存放真测量时间

ulong real_dis; //存放测量距离

uint dis_flag; //距离计算标志位

uint alarm_flag100=0; //用于报警

uint alarm_flag50=0;

uint alarm_flag20=0;

uint alarm_flag10=0;

uint wei0,wei1,wei2,wei3;

uchar ledflag=0; //数码管标志位,用于刷新

uchar send_flag=0;

uchar count=0; //定时器T0计数

uchar ledcode[11]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90,0xff};

/*延时函数*/

void delay(uint count)

{

}

/*超声波发送函数--40KHZ*/

void CLK40K()

{

uchar i=4; //发送的波形数量=(i/2) TR0=1; do { transfer=~transfer; _nop_ (); _nop_ (); _nop_ ();

_nop_ ();

_nop_ ();

_nop_ ();

_nop_ ();

_nop_ ();

_nop_ (); //START TIME0,同时发送40KHZ 方波 while(count--);

}

while(--i);

}

/*距离测量函数*/

void distance(void)

{

realTimer=TimerH*256+TimerL;

real_dis=realTimer*164/10000; //单位cm

wei0=real_dis%10; wei1=(real_dis/10)%10;

} wei2=(real_dis/100)%10; wei3=real_dis/1000;

/*显示刷新函数函数*/

void display(void)

{

switch(ledflag)

{

case

0:P1=ledcode[wei0];ledwei0=1;ledwei1=0;ledwei2=0;ledwei3=0;break; case

1:P1=ledcode[wei1];ledwei0=0;ledwei1=1;ledwei2=0;ledwei3=0;break; case

2:P1=ledcode[wei2];ledwei0=0;ledwei1=0;ledwei2=1;ledwei3=0;break; case

3:P1=ledcode[wei3];ledwei0=0;ledwei1=0;ledwei2=0;ledwei3=1;break; }

ledflag++;

if(ledflag==4)

ledflag=0;

delay(0x80);//768us=0.768ms//520次

}

/*报警处理函数*/

void alarm_light(void)

{

if(real_dis

{

}

else if(real_dis

speak=1;

{

if(alarm_flag20>=1)

{

speak^=1;

alarm_flag20=0;

}

}

else if(real_dis

{

if(alarm_flag50>=2)

{

speak^=1;

alarm_flag50=0;

}

}

else if(real_dis

{

if(alarm_flag100>=4)

{

speak^=1;

alarm_flag100=0;

}

}

else

{

speak=1;

}

}

/*系统初始化程序*/

void init()//系统初始化

}

void int0(void) interrupt 0 //关闭计数器,存计数值, 置标志

{

EA=0; //关闭中断

//关外部中断

//读取数值 temp=0xfe; P2=temp; TMOD=0X11; //初始化定时器T0,T1用于产生40hz 发射波 TH0=0x00; TL0=0x00; TH1=0x00; TL1=0x00; TF1=0; PX0=1; ET1=1; EA=1; TR1=1; IT0=0; //启动定时器1 //外部低电平触发方式 EX0=0; TimerL=TL0;

TimerH=TH0;

TR0=0;

TH0=0x00;

TL0=0x00;

dis_flag=1;

} //关闭定时器0 //距离计算标志

void time1(void) interrupt 3

{

TF1=0; TH0=0x00;

} TH1=0x00; TL1=0x00; send_flag=1; //开启接收回波中断

/*系统主函数*/

void main()

{

unsigned int i,j; init(); real_dis=150; delay(0x40); while(1) { if(send_flag==1) { //系统初始化 //y预设初值,防止开机未发射超声波,电机锁死

/* 报警级别计数*/

alarm_flag100++; alarm_flag50++; alarm_flag20++; alarm_flag10++;

/* 报警级别计数*/

send_flag=0; count++; if(count==5) { count=0; CLK40K(); delay(0x40); //延时,避开发射的直达声波信号, 可以调节测量

的最小距离

} if(dis_flag==1) { dis_flag=0; } distance(); EA=1; } EX0=1;

display(); //调用显示函数

if(real_dis>i; b=temp

alarm_light();

} }


相关文章

  • 智能避障小车论文
  • 课程设计报告 设计题目: 院 系: 专 业: 学 生: 学 号: 指导老师: 日 期: 目录 第1章 引言----------------.------...-...3 第2章 总体方案---------------............ ...查看


  • 超声波避障技术设计
  • 南 京 理 工 大 学 毕业设计说明书(论文) 作 者: 教学点: 专 业: 题 目: 准考证号: 电子工程 超声波在小车避障技术的应用设计 指导者: (姓 名) (专业技术职务) 评阅者: (姓 名) (专业技术职务) 2013 年 5 ...查看


  • 基于单片机智能小车毕业设计(论文)
  • 毕 业 设 计(论 文) 设计(论文)题目: 学 院 名 称: 电子与信息工程学院 专 业: 电子与信息工程 班 级: 姓 名:学 号 指 导 教 师: 胡劲松 职 称 教授 定稿日期:2013 年 5 月 10 日 基于单片机的智能小车 ...查看


  • 智能小车主控系统电路设计图剖析 -电路图天天读(218)
  • 随着科技的不断进步,智能电子产品发展步骤不断加快,各种应用层次的机器人等大量出现,目前应用在智能小车或机器人的微控制器主要是8/16单片机或ARM和数字信号处理器DSP等.本设计采用TI公司生产的功耗低运行速度快且价格便宜的MSP430F2 ...查看


  • 电子信息工程毕业设计题目大全
  • 1 压力容器液位测量 2 多功能遥控小车 3基于RS232的仓库多点温度.湿度.气 4压检测系统 5自动控制升降旗系统 6基于RS485的温度报警系统 7基于模糊算法的水温控制系统的设计 8多分机电话交换机 9简易火灾自动报警系统 10基于 ...查看


  • 智能小车控制系统的设计 论文
  • XXXX 学 院 本 科 生 毕 业 论 文 题 目: 专业班级: 学 号: 学生姓名: 指导教师: 论文完成日期年月 郑 重 声 明 本人的毕业论文是在指导老师 的指导下独立撰写并完成的.毕业论文没有剽窃.抄袭.造假等违反学术道德.学术规 ...查看


  • 超声波避障小车结题报告
  • Harbin Institute of Technology 课程设计说明书(论文) 设计题目: 院 班 级: 设 计 者: 学 号: 指导教师: 设计时间: 哈尔滨工业大学 课程设计考核表 题目:超声波避障小车 学生姓名: 班级: 学号: ...查看


  • 小车控制电路原理图
  • 智能小车控制 在科技高速发展的当今社会,人类对于汽车的无人驾驶技术的研究热度有增无减,工程训练(电工电子)以STC 系列的芯片作为主控芯片,搭配红外循迹.红外测距.超声波测距对智能小车的周边环境进行监测,保障小车可以安全正常的行驶,搭载颜色 ...查看


  • 消防机器人设计报告
  • 基于ATmega2560单片机的智能避障灭火小车 一. 设计方案: 1.控制系统: Arduino Mega2560是采用USB接口的核心电路板,具有54路数字输入输出,适合需要大量IO接口的设计.处理器核心是ATmega2560, 同时具 ...查看


热门内容