基于单片机的超声波测距系统的设计与实现毕业论文设计;_第1页
基于单片机的超声波测距系统的设计与实现毕业论文设计;_第2页
免费预览已结束,剩余29页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、武汉长江工商学院毕业论文(设计)学院_专业:电子信息工程 年级:08级题目:基于单片机的超声波测距系统的设计与实现学生:汪帆_学号:20081384指导教师:刘少敏_ 职称:_2012年5月18日武汉长江工商学院本科毕业论文(设计)原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研 究所取得的研究成果。 除了文中特别加以标注引用的内容外, 本论文 不包含任何其他个人或集体已经发表或撰写的成果作品。 本人完全意 识到本声明的法律后果由本人承担。矚慫润厲钐瘗睞枥庑赖。作者签名:年月目录摘 要 . 1聞創沟燴鐺險爱氇谴净。关键词 . 1残骛楼諍锩瀨濟溆塹籟。Abstract. 1酽锕

2、极額閉镇桧猪訣锥。Key wards. 1彈贸摄尔霁毙攬砖卤庑。1 绪论 . 2謀荞抟箧飆鐸怼类蒋薔。1.1研究背景 . . 2厦礴恳蹒骈時盡继價骚。1.2研究意义 . . 2茕桢广鳓鯡选块网羈泪。1.3超声波测距原理 . . 2鹅娅尽損鹌惨歷茏鴛賴。1.3.1 超声波测距基本组成. . 2籟丛妈羥为贍偾蛏练淨。1.3.2 超声波测距基本原理. . 2預頌圣鉉儐歲龈讶骅籴。1.3.3 温度对超声波测距的影响 . . 3渗釤呛俨匀谔鱉调硯錦。2 系统设计方案论证 . . 3铙誅卧泻噦圣骋贶頂廡。2.1系统概述 . . 3擁締凤袜备訊顎轮烂蔷。2.2方案论证 . . 4贓熱俣阃歲匱阊邺镓騷。2.2

3、.1 单片机模块方案论证. . 4坛摶乡囂忏蒌鍥铃氈淚。2.2.2 超声波模块方案论证. . 4蜡變黲癟報伥铉锚鈰赘。2.2.3 显示模块方案论证 . 4買鲷鴯譖昙膚遙闫撷凄。2.2.4 电源模块方案论证 . 5綾镝鯛駕櫬鹕踪韦辚糴。3 硬件设计 . 5驅踬髏彦浃绥譎饴憂锦。3.1单片机模块 . . 5猫虿驢绘燈鮒诛髅貺庑。3.1.1 单片机模块电路 . . 5锹籁饗迳琐筆襖鸥娅薔。3.1.2 时钟电路 . . 5構氽頑黉碩饨荠龈话骛。3.1.3 复位电路 . . 6輒峄陽檉簖疖網儂號泶。3.2超声波模块 . . 6尧侧閆繭絳闕绚勵蜆贅。3.2.1 US-100 超声波测距方法 . 6识饒鎂錕

4、缢灩筧嚌俨淒。3.2.2 US-100 模块电路 . 7凍鈹鋨劳臘锴痫婦胫籴。3.3人机交互模块 . . 7恥諤銪灭萦欢煬鞏鹜錦。3.3.1 液晶显示器 . . 7鯊腎鑰诎褳鉀沩懼統庫。3.3.2 显示器硬件电路 . . 8硕癘鄴颃诌攆檸攜驤蔹。3.3.3 按键与开关 . . 8阌擻輳嬪諫迁择楨秘騖。3.4电源模块 . . 8氬嚕躑竄贸恳彈瀘颔澩。4 软件设计 . 9釷鹆資贏車贖孙滅獅赘。4.1软件设计概述 . . 9怂阐譜鯪迳導嘯畫長凉。4.2软件设计思路和流程图 . . 9谚辞調担鈧谄动禪泻類。4.3超声波模块驱动程序 . . 11嘰觐詿缧铴嗫偽純铪锩。4.3.1 发射接收程序 . . 1

5、2熒绐譏钲鏌觶鷹緇機库。4.3.2 防溢出中断程序 . . 12鶼渍螻偉阅劍鲰腎邏蘞。4.4测距算法 . . 13纣忧蔣氳頑莶驅藥悯骛。4.5液晶模块驱动程序 . . 14颖刍莖蛺饽亿顿裊赔泷。4.6系统暂停中断程序 . . 14濫驂膽閉驟羥闈詔寢賻。5 系统调试 . 15銚銻縵哜鳗鸿锓謎諏涼。5.1系统调试概述 . . 15挤貼綬电麥结鈺贖哓类。5.2硬件调试 . . 15赔荊紳谘侖驟辽輩袜錈。5.3软件调试 . . 16塤礙籟馐决穩賽釙冊庫。6 总结 . 16裊樣祕廬廂颤谚鍘羋蔺。参考文献. 16仓嫗盤紲嘱珑詁鍬齊驁。附录一 . 18绽萬璉轆娛閬蛏鬮绾瀧。附录二 . 19骁顾燁鶚巯瀆蕪領鲡

6、赙。1基于单片机的超声波测距系统的设计与实现摘 要: 本论文所研究的基于单片机的超声波测距系统可以被广泛的应用在实时近距离 测距场合,如倒车雷达、液位测量等。该系统能够对大体积的静止物体,实现 3cm 到 400cm 的测距,测距精度为1cm。系统利用超声波模块US-100 作为测距传感器,ATMEL89C52 单片机作为核心处理器,1602ZFA 型液晶屏作为距离数据显示器,此外本系统能够通过一个按键 控制测距状态。 本文将围绕此超声波测距系统的工作原理、 电路设计、软件设计、 系统调试、 改进与完善等展开论述。 经过实验证明, 本系统不仅制作成本较低, 而且具有良好的稳定性 和实用性。瑣钋

7、濺暧惲锟缟馭篩凉。关键词:超声波测距;US-100 模块;1602ZFA 液晶显示器The system of ultrasonic ranging of using the Single-chipMicrocomputer鎦诗涇艳损楼紲鯗餳類。Abstract : This thesis introduces a system of ultrasonic ranging of using the Single-chipMicrocomputer, which can be used in closed ranging. This system can achieve measuring a

8、distancewhich is from 3cm to 400cm, but the object which is measured should be quiescent condition and own anenough large volume. This system uses ultrasonic ranging module US-100 to be a ranging sensor,makes ATMEL89C52 Single-chip Microcomputer into the core processor,and uses 1602ZFA LCD screento

9、display the distance data. At same time, you can press a button to make this system entering into thepausing state. This thesis will analyze the system of ultrasonic ranging, embaying its operating principle,circuit design, software design, system debug, improvement and perfection. Through experimen

10、t proving,This system does not only have a low production cost, but also have a better stability and practicalapplicability .栉缏歐锄棗鈕种鵑瑶锬。Key wards : ultrasonic ranging;US-100 module1602ZFA LCD;辔烨棟剛殓攬瑤丽阄应。21绪论1.1 研究背景超声波定义为频率大于 20kHz 的声波,属于机械波的范畴, 是一种人耳不能识别的声信 号。它具有良好的方向性,穿透力强的特点,并且在媒质中存在反射、折射、衍射、散射等

11、传播规律。随着现代电子技术和工业技术的发展,超声波在各个领域都有了广泛的应用,如在工业控制方面,利用超声波衍射制造超声波流量计;在医疗方面,利用超声波的折射 和反射进行医学超声波检查;在集成电路制造中对大规模集成电路进行检查等。而本 论文介绍的超声波测距则是应用超声波的折射规律完成距离测量。近些年来在人们的生活和生产中,超声波测距技术已得到较广泛的应用,通常能完成对大体积静态物体 的测距,如房屋墙壁和液面高度等。峴扬爛滾澗辐滠兴渙藺。1.2 研究意义超声波测距的研究意义主要表现在以下四个方面:(1)它是一种非接触式的测距,可以应用在探测领域或者危险作业的领域;(2)超声波具有良好稳定性、方向性

12、的特性,除了温度因素外,受其他环境因素影响非常小,这样的特性使它很适合用来作为距离测量。(3)超声波测距易于实现, 它的产生和接受可以方便控制,并且测距数据处理简单。(4 )超声波测距的实时性较好,能够迅速的完成距离测量。詩叁撻訥烬忧毀厉鋨骜。1.3 超声波测距原理1.3.1 超声波测距基本组成超声波测距功能的实现必须包含三个基本的组成部分,分别为超声波发生器、超声波反射物体和超声波接收器。超声波发生器是用来产生和制造超声波的装置,超声波反射物体也就是测距中的被测对象, 而超声波接收器即是用来识别被测物反射回来的超声波的装置。其三者的关系如图 1-1 所示。则鯤愜韋瘓賈晖园栋泷。超声波测距中主

13、要应用超声波的反射现象,所以被测物体应该具有较大的声波反射面, 体积相对较大。而对于超声波接收装置则是根据发生器产生的超声波频率特性来设计的,超声波的频率不同则相应的接收装置也不同。基本办法是使得装置在没有接收特定频率超声波的时候是低电平,在接收到超声波的时候是高电平,这样就可以完成声波信号到电信号的转变。目前市场上的超声波测距模块基本上都已经包含了相匹配的超声波发生器和超声波接收 器,使用起来比较方便。胀鏝彈奥秘孫戶孪钇賻。1.3.2 超声波测距基本原理超声波发发生器器向某一方向对被测物体发射超声波,在启动发生器,发射超声波的同超声波超声波接吃器图 1-1 超声波测距系统组成超声波反肘物体3

14、时记录此时的时刻,超声波在空气中传播,途中碰到被测物体就会发生反射现象,被反射的超声波再经空气传播,到达超声波接收器,记录此时的时刻,那么得到发射和接收的时间间隔T。利用超声波在空气中的传播速度V为已知,此时我们假设发生器TX 和接收器 RX 与被测物体表面均平行,且 TX 和 RX 相隔距离为d。那么我们可以得到被测距离值公式:L =V*Tcosv鳃躋峽祷紉诵帮废掃減。2其中的 v 为声波的反射角,且 _acrtan2,其物理模型如下图 1-2 所示。2L图 1-2 测距系统数学模型那么当被测距离远大于 TX、RX 间距时,即 L 远大于 d,那么反射角二 0,即COS: 1, 那么得到 L

15、 的近表达式为公式:,V.T2在常温下空气中超声波的传播速度为340m/s ,通常计算距离L=170 T。1.3.3温度对超声波测距的影响由于超声波也是一种声波, 其声速 V 与温度有关,因此对于超声波测距而言,环境温度成为影响测距精度的主要原因之一。不同的温度,导致声速的变化,使得大范围测量的距离误差变大,所以温度是超声波测距必须考虑的问题。下表列出了几种不同温度下的声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通 过温度补偿的方法加以校正。稟虛嬪赈维哜妝扩踴粜。表 1-1超声波在空气传播速度与温度关系温度C)-30-20-100102030100声速

16、(m / S) 3133193253233383443493862系统设计方案论证2.1 系统概述本论文的主要任务是完成一个应用超声波传感器,并且以单片机为核心控制器的实时携4便式超声波测距系统。 本系统设计的测距范围是完3cm 到 400cm 的范围,测距精度达到 1cm。被测物体运动状态为静止,物理状态为固态或者液态,且具有较大的声波反射面或者较大的体积,例如墙壁、门宽、液位高度等。陽簍埡鮭罷規呜旧岿錟。基于本系统的功能要求, 将本系统划分为以下四个基本模块:(1)单片机模块,实现测距数据处理,为系统的核心部分;(2)超声波模块,主要任务是完成超声波产生和超声波接收,作为该系统的传感器;(

17、3)人机交互模块,该模块包括显示器和按键开关两个部分,其 中显示部分主要完成系统状态指示和测距结果的显示,按键开关用来暂停系统和重启系统;(4)电源模块,提供稳定的5V 电压,为各个模块提供工作电压。本系统构成如下图2-1所示。在 2.2 节和第三章的论述中,也将以这四个基本模块为线索展开。沩氣嘮戇苌鑿鑿槠谔應。图 2-1 系统硬结构图2.2 方案论证本系统的方案论证将围绕上节划分的四个基本模块展开论述。2.2.1 单片机模块方案论证对于单片机模块,在单片机的选择方面以低价格、低功耗且能完成系统控制性为标准。因为超声波测距系统的数据处理通常较容易,所以一般的8 位单片机都可以满足系统要求,如

18、AVR 公司的 ATmegea-16 系列单片机、Freescale 公司的 08 系列单片机、ATMEL 公司的 51 系列单片机等。本系统选用了传统的51 系列单片机作为核心控制器,即ATMEL 公司的AT89C52 型号单片机,这款单片机不仅价格低廉操作简单,并且它的定时器模块,中断模块已足够实现本测距系统的控制,丰富的外部引脚也能好满足本系统的其他模块接入。钡嵐縣緱虜荣产涛團蔺。2.2.2 超声波模块方案论证对于超声波模块的方案有两种基本方案,一种是采用分离式的超声波模块,即超声波发生电路和超声波接受电路为分开的独立电路单元,这里超声波发生电路通常用超声波换能器和电流驱动电路构成, 而

19、超声波接受电路则由频率敏感元件和单稳态触发电路构成。另一种是采用集成的超声波模块,典型如US-100,该模块专门用于 5 米内的超声测距,它包含完整的超声波发生和接受电路,且自带一个温度校准电路, 并有电平和串口两种距离测量方式供使用者选择。相比这两种方案,后者的不仅制作价格较低,而且电路稳定性更好,调试和制作都相对简单,故本系统选用了集成超声波模块US-100。懨俠劑鈍触乐鹇烬觶騮。2.2.3 显示模块方案论证对于人机交互模块的方案,主要在于显示方案的选择。通常的显示方案可以考虑LED数码管显示或者 LCD 液晶显示。如果本系统采用LED 数码管显示方案,则至少选用3 片 75段数码管,这样

20、电路相对复杂, 且仅仅能够显示距离信息,状态指示非常很局限。如果采用LCD 液晶显示方案,则电路相对简化,并且系统的状态信息和测距数据都能很好的给出,6但是软件设计部分会相对复杂。考虑到测距系统应该有一个很好的交互指示功能, 统用了16*2 字符型 1602ZFA 液晶显示器作为显示模块。謾饱兗争詣繚鮐癞别濾。224 电源模块方案论证对于电源模块的方案,因为本系统的设计任务是一个携便式设备,故采用电池供电。 考虑使用时间和系统整体功耗问题,本系统选用电池为9V 干电池。这里电源模块可供选择的方案有:串联型稳压电路或者开关型稳压电路。开关型稳压电路的效率较高,且纹波较串联型较小,但是制作成本较高

21、,并且电路结构比较复杂。又因为本系统的其他基本均为数字单 元,对电源纹波要求较小, 故本系统最终采用了串联型稳压电源方案,采用集成三端稳压芯片 LM2940。呙铉們欤谦鸪饺竞荡赚。3硬件设计3.1 单片机模块单片机模块主要由 AT89C52 单片机及其外围时钟电路和复位电路等构成,具体电路连 接和分析在以下几节中论述。莹谐龌蕲賞组靄绉嚴减。3.1.1 单片机模块电路本节给出单片机模块的整体电路图包括单片机模块的引脚连接、 时钟电路和复位电路,如下图 3-1所示。其中单片机的 P1.2 口和 P1.3 口用来连接 US100 超声波模块的触发引脚 TX 和接受引脚 RX,P0 口和 P2 口提供

22、给液晶模块的数据传输和控制,且单片机的 EA 引脚应接高电平,使用单片机的内部ROM 作为单片机的程序存储器2。麸肃鹏镟轿騍镣缚縟糶。Hi : 4DK -JKTEKT图 3-1 单片机模块电路图3.1.2时钟电路单片机的时钟电路是为系统提供基本的时钟信号3,51 系列单片机的时钟电路通常分为所以本系- - -11:D592- ;- -.3DP .:C5 .卿. tr&T*- -U11fts和 C7;!H Uk - -PDJOZAEOXTA12P0.IJW)1PD.2/AD2PD.3ZAD3P0.4(AD431-铀3 38 8喘一I3I35 5嗤I32I32.lilpdLHlHI.lil

23、pdLHlHI3 36 6一嗨41411 1 1111 2LJ2I2LJ2I 1414一I I 15157两种:外部震荡方式电路和内部震荡方式电路。本系统的单片机模块采用本部震荡方式时钟8电路,即在其引脚 XTAL1 和引脚 XTAL2 外接石英晶体和微调电容,构成振荡器。本系统 采用时钟电路的晶振为11.0592MHz,电容为 30pF。其连接图如 3-2 所示。納畴鳗吶鄖禎銣腻鰲锬。30p图 3-2 时钟电路3.1.3复位电路当晶体振荡电路工作后, 在单片机的 RESET 输入端出现两个机器周期 以上的高电平,单片机会被初始化复位,复位后各特殊功能寄存器将恢复初始状态。51 单片机通常采用

24、上电复位和手动复位的方法,这里同时采用了这两种方式,当接通电源时会产生一次复位,当正在工作时,若需要复位可以按复位键进行复位,即手动复位。该电路电阻为10K,电容为10uF,其电路连接如图 3-3 所示。風撵鲔貓铁频钙蓟纠庙。图 3-3 复位电路3.2 超声波模块本节主要论述 US-100 超声波测距模块在本系统中的连接方法。3.2.1 US-100 超声波测距方法本系统采用 US-100 的电平触发测距,其在电平触发下的工作时序图 序图只需在 Trig/TX 管脚输入一个 10US 以上的高电平,系统便可发出声波脉冲,然后检测回波信号。 当检测到回波信号后,模块还要进行温度值的测XTAL1C

25、23-4 所示,根据时8 个 40KHZ 的超30pXTAL2X1匚I11 0591GND9量,然后根 据当前温度对测距结果进行校正,将校正后的结果通过Echo/RX 管脚输出。灭暧骇諗鋅猎輛觏馊藹在此模式下,模块将距离值转化为340m/s 时的时间值的 2 倍,通过 Echo 端输出一高10电平,可根据此高电平的持续时间来计算距离值。即距离值为:(高电平时间*340m/s)/2。在这里因为距离值已经经过温校正, 此时无需再根据环境温度对超声波声速进行校正,即不管温度多少,声速选择 340m/s 即可。铹鸝饷飾镡閌赀诨癱骝。搭岌倩号|1侃嗨高电平发射援久发出信号循环发出rNOKH Z毗冲楼执联

26、紳时乌桂皈的时fel事|廉她的樹即妁卑模块启动池麼舊巒器側齟|空就勺曲环境温度血- 根JK环境温凌对删耳她果魁|打校1E输出,距議更椎确温盛校正氐回睛电平宽度只打图 3-4 US-100 在电平触发下的工作时序图3.2.2 US-100 模块电路在本系统中 US-100 超声波模块的连接如下图 3-5 所示,其 Trig/TX 管脚连接单片机的 P1.3 口,由单片机输出一个 10us 的高电平; Echo/RX 管脚连接单片机的 P1.2 口, 单片机检测 P1.2 口的电平变化,其具体检测方法在第四章软件设计分析部分给出。攙閿频嵘陣澇諗谴隴泸。图 3-5 US-100 模块电路图3.3 人

27、机交互模块本系统的人机交互模块分为液晶显示器和按键开关两个部分,下面几节将分别分析这两个部分。3.3.1 液晶显示器本系统采用的液晶显示器型号为1062ZFR,它是一个 16*2 字符型液晶显示器5,专门用于显示字母、数字、符号等的点阵型液晶显示模块。LCD 1062ZFR 的引脚如下:D0 D7 八个数据端口,VSS 负电源端口,VDD 正电源端口, VO 对比度调节端口, RS 状态控制端,RW 读写控制端,E 使能端,A 和 K 灰度参考端口。趕輾雏纨颗锊讨跃满賺。输出回响疳VCc cV VC CAPICW18RN ND DG GN NN ND D11332 显示器硬件电路液晶显示器 L

28、CD 1062ZFR 在电路中的连接如图 3-6 所示,将其八个数据端 D0-D7 分别连接单片机的 P0.0-P0.7 口; RS 连接 P2.3 口; RW 连接 P2.4 口; E 连接 P2.5 口; A 端口给电平接GND ;K 端口给高电平接 VCC ; VL 端口接一个 10K 的滑动变阻器,用来调节液晶显示器的对比度;VDD 端口接系统电源 VCC,而负电源端口 VSS 接地即可。夹覡闾辁駁档驀迁锬減。LCD 1602FG口 -FG.1 -PGi -FG3 -PGA PG巴-POJg -PG.7 -GND- VGC -VEC -BNDF23 -P2 4 *PZ5 -RV1iok

29、 图 3-6 液晶显示模块电路图3.3.3按键与开关为了使得本测距系统有更好的操作性、观测性,本系统设计了一个测量暂停按键K1,此按键的具体作用如下:当短按按键K1 时,超声波测距系统停止发生超声波,显示器保留前一时刻的测量数据,以测量者方便观察和记录数据;当长按按键K1 时,返回正常测距状态,可以重新开始测量距离。其硬件连接如下图3-7 所示,即按键 K1 接在单片机 P3.2 引脚上。视絀镘鸸鲚鐘脑钧欖栃。VGCAR2S.1K -储TEXTP3常D2D3D4DD2D3D4D5 5GND- 12图 3-7 按键连接图3.4 电源模块13本系统中的电源模功能是为系统的其他模块提供稳定的5V 工

30、作电压,其实现方法是采用一个 5V 的集成稳压芯片 LM2940,用 9V 的干电池作为其输入,则可以从 LM2940 的输 出端得到5V 的稳定电压。为了使得电源模块提供的 5V 直流工作电压文波更少、稳定性更好,在输入输出端口分别并接滤波电容和电解电容,并且在输出端口并接上一个LED 系统电源指示灯,以方便指示本系统的电源模块是否正常工作,其电路连接如图3-8 所示。偽澀锟攢鴛擋緬铹鈞錠。图 3-8 电源模块电路图4软件设计4.1 软件设计概述本系统软件全部采用 c 语言编写,开发环境为 Keil C。软件组织分为两个部分,分别是chaoshengbo.c 和 SMC162.C,前者是系统

31、程序主函数和超声波驱动程序所在的c 文件,后者是系统采用的字符液晶器 1602ZFR 的驱动程序。软件组织图如下图3-1 所示。关于软件设计思路,算法,各个驱动程序将在后面几节中给出论述,完整程序代码在附录二给出。緦徑铫膾龋轿级镗挢廟。Project Workspace-:迂J Target 1I- Source Group 1蛊chaoshengbo.c p Q srricl62.hsst89x5x4.hH (S) SMC162.CL - Q srricl62ihj岛t的x5x4.h图 4-1 软件组织图4.2 软件设计思路和流程图单片机在上电复位后,首先进行各个模块的初始化、焊. Oi01

32、u Oi01u 丄C4.OJOiu.-tT6XT-OJ01u.唱TE,DH -LEb-*打恥-D.1LEDR3.:R311k0-0N -0N 各个变量的初始赋值, 进入循环测U2-曲曲I14距和显示部分。在循环部分中,把完成一次测量和一次显示刷新作为系统的一个工作周期。 在这个工作周期中, 首先完成的是超声波测距, 即向超声波模块给出触发信号, 然后检测模 传回来的测距信号,打开计时器 T0 ,得到相关数据,然后计算出测量距离,最后再刷新液 晶模块显示出测量距离。此外系统具有两个中断程序,一个是利用定时器TO 中断,防止测量超出距离而导致 TO 溢出。另一个应用外部中断 INTO 来实现测量暂

33、停功能,对应外部中断0引脚 P3.2 的外接按键 K1,当按键短按时,进入外部中断 0 的中断程序,在中断程序中显示前 一时刻的测距数据,并再次检测按键K1 ;当发现 K1 长按时,则从中断程序中返回之前的工作循环。软件流程图如下图 4-2 所示。騅憑钶銘侥张礫阵轸蔼。15(a)主程序(b) TO 中断程序开始系统初始化P1.3口1Ous触发电平1OOus延时(c)INTO 中断程序TH0、TL0清0P1.2=04否是人否P1.2=1、_口是打开TO定时器,允许中断是P1 2=0、_否禁止总中断清空IE01刷新液晶屏1r显示最后测量的数据是关闭TO定时器,关闭中断返回主程序读TH0、TLO,计

34、算距离刷新液晶,显示距离数据骐錾农剎貯狱颢幗騮。4.3 超声波模块驱动程序图 4-2 软件流程图164.3.1 发射接收程序本系统超声波测距传感器采用的是US-100 超声波测距模块,并且利用其电平测量模式,其工作原理图在第二章图 2.6 中给出。其模块的驱动程序是由发射程序和接收程序两部分, 另外加上一个防溢出中断程序构成。镞锊过润启婭澗骆讕瀘。发射程序是通过给单片机的P1.3 口(即与 US-100 的 TX 引脚相连接)大约 10us 的高电平,程序中完成 10us 的时间并没有采用定时器,而是采用延时程序完成,程序中的函数名为 delay_10us()。经过示波器测量,此段延时的时间大

35、约为10.89us。然后给持续一段约 100us的低电平,这样便完成了发射程序,之后便可以进行接收程序。榿贰轲誊壟该槛鲻垲赛。接收程序是用单片机检测 P1.2 口(即与 US-1OO 的 RX 引脚相连接)的电平变化。根据 US-100工作原理图可知,首先保证 P1.2 口的电平为低电平,即此时 US-1OO 还没有接收到超声 波信号,当P1.2 口出现上升沿信号的时刻,打开TO 定时器,进行时间间隔记时,此时TH0 和TLO 初值都为 0。再等待 P1.2 口出现下降沿,此时表示超声波信号接收完毕,关闭定时器T0,读出 TH0 和 TLO 的值分别给变量 time_high 和 time_l

36、ow,即完成此部分程序功能。发射接收程 序的代码如下所示。邁茑赚陉宾呗擷鹪讼凑。sent=1;delay_10us();sent=0;delay_100us();/ 发射完毕TH0=0;TL0=0;while(receive=1);while(receive=0);TR0=1;ET0=1;/ 定时器开始工作while(receive=1&flag_error=0);time_high=TH0;time_low=TL0; / 接收完毕4.3.2防溢出中断程序防溢出中断程序实质是利用了定时器T0 的溢出中断。分析以上的接收程序可知,在P1.2 口接收到上升沿信号后,定时器T0 开始工作,T

37、H0、TL0 从 0 开始增加,但是止到 P1.2 口由高电平变到低电平, 即出现下降沿时,定时器 T0 才停止计数。那么如果在 P1.2 下降沿出现前,定时器 T0 的 TH0 和 TL0 计数发生溢出,即会发生测量错误,属于系统的无效状态。为了 避免这个无效状态, 本系统设定了此防溢出中断程序, 一旦发生溢出情况, 则程序进入定时 器 T0 的中断程序,设置错误标志位 flag_error=1,表示此次测量无效。嵝硖贪塒廩袞悯倉華糲。另外本超声波测距系统的最大测距范围限定在400cm,那么当发生溢出时,定时器TO的计数值为 65536。系统中单片机采用 11.0592Mhz 晶振,对应机器

38、周期约为 1.1us,那么 65536 次计数即表示超声波发射接收时间间隔为59578US,声速取 340m/s,则测量距离约为 1013cm,以超出本系统设定的测距范围, 并且超出传感器的测量范围。 所以上述给出了发生溢出一定 是系统无效的证明。防溢出中断程序的代码如下所示。该栎谖碼戆沖巋鳧薩锭。void zd_TIME0() interrupt 1/T0 中断用来计数器溢出 , 超过测距范围劇妆诨貰攖苹埘呂仑庙。TF0=0;flag_error=1;/中断溢出标志174.4 测距算法测距的基本算法是采用 1.1.2 节中的测距公式,由于采用的US-100 超声波测距模块具有温度补偿电路,可

39、以自动校准由温度引起的声速变化,所以程序中声速可以取为常量340m/s,那么测距公式可以化为公式:L =170 T。在 3.3.1 节中已经提到定时器 T0 的高 8 为计数寄存器 TH0 赋值给 time_high,TL0 的低八位赋值给 time_low,程序中定义一个无符号长整型的变 量time_data 来装载测距时间间隔T,那么只需将 time_high 左移 4 位,再加上 time_low,就可以得到 time_data 的值了。臠龍讹驄桠业變墊罗蘄。系统要求的测距精度是达到1cm,但是为了进一步提高测距精度,本系统软件在测距计算中计算到了毫米 mm 位。具体为程序中设定了一个有

40、4 个元素的字符型数组 display4,这四个元素分别代表 display3、display2、display1、display0分别代表米位、分米位、 厘米位、毫米位,其中这 4 个位均参与计算,但是最后的毫米位作四舍五入处理,不予显示。 这样符合本系统的设计要求,也进一步提高本系统的测距精度。鰻順褛悦漚縫輾屜鸭骞。并且在程序此处部分严格检测数据大小,防止测距超出传感器范围或者测距范围太近 (L 小于3cm),一旦发现错误数据,便设置错误标志位flag_error=1,表示此次测量无效。此段程序的代码如下。穡釓虚绺滟鳗絲懷紆泺。time_data=time_high*256+time_lo

41、w;/测距时间计算time_high=0;time_low=0;flag_error=0;distance_data=0;if(time_data=26471)防止超出测距范围time_data= (time_data*17)/100;得到测距距离distance_data=time_data;if(distance_data=30)/限定测距范围display0=distance_data%10; /显示转换display1=(distance_data/10)%10;display2=(distance_data/100)%10;display3=(distance_data/1000)%

42、10;if(display0=5)/ 四舍五入程序if(display1=9)if(display2=9)display3=display3+1;display2=0;display1=0;else18display2=display2+1;display1=0;else display1=display1+1;display1=display1+0;/ 转换成字符码display2=display2+0;display3=display3+0;4.5 液晶模块驱动程序在本系统的软件设计中,把液晶模块的驱动程序作为一个独立的C 文件组织在程序中,驱动程序8的外部接口包括为几个调用控制函数如 :

43、液晶显示器的数据显示前,都要进行清 屏操作,其调用函数为 LcdWriteCmd(0 x01 , 1 ); 液晶屏上的数据显示分为字符串显示和字符 显示,前者通常使用函数 void PutStr(char x , char y , char* str) ,后者通常调用函 void PutChar(char x , char y , charvalue) 。隶誆荧鉴獫纲鴣攣駘賽。这里给出本系统液晶屏的指示状态和数据显示方法。 首先当液晶显示器出现上行下行全 白时表示系统正在开机启动;当液晶显示器出现上行 now,loading 和下行 waitting. 表示正 在启动超声波模块;当液晶显示器出

44、现上行the distanee is:和下行xxx cm表示系统处于正 常测距状态;当液晶显示器出现上行 stop measuring和下行xxx cm表示系统处于暂停测量 状态;当液晶显示器出现上行there is error和下行check distanee时表示测量距离超出本系统设计的范围。浹繢腻叢着駕骠構砀湊。4.6 系统暂停中断程序系统暂停中断程序即是应用外部中断INT09来实现系统测量暂停功能,在外部中断0 引脚 P3.2 口接一个按键 K1。当按键短按时,进入外部中断0 的中断程序,在中断程序中显示前一时刻的测距数据,并再次检测按键K1 ;当发现 K1 长按时,则从中断程序中返回

45、之前的工作循环。其代码如所示。鈀燭罚櫝箋礱颼畢韫粝。void zd_INT0() interrupt 0/T0 中断用来计数器溢出 , 超过测距范围EA=0;I E0=0;LcdWriteCmd(0 x01 , 1 );/ 清屏幕PutStr(0,0,stop measuring);/显示PutChar(4,1,display3);PutChar(5,1,display2);PutChar(6,1,display1);PutChar(7,1, );PutChar(8,1,c);PutChar(9,1,m);delay_100ms();delay_100ms();delay_100ms();de

46、lay_100ms();delay_100ms();while(1) if(key_stop=0)/ 再次按下则返回19delay_100ms();delay_100ms();delay_100ms();delay_100ms();if(key_stop=0) break; EA=1;5系统调试5.1 系统调试概述本章中主要记录和讲述本超声波测距系统在调试过程中错误的改正和功能的改进。本章将分两个部分进行叙述,分别为系统硬件调试和和系统软件调试。两者调试的基本思想和出发点包含四个方面的内容,他们分别是超声波系统的测距正确性、测距精确性、系统稳定性、使用方便性。这里给出本系统的实物图,如下图5-

47、1 所示。惬執缉蘿绅颀阳灣愴鍵。图 5-1 系统实物图5.2 硬件调试本超声波测距系统的硬件电路中, 除了电源模块为模拟电路单元, 其他模块如单片机模 块、液晶显示器模块等均为数字单元, 正因如此系统中大部分的数字单元, 使得本系统工作 稳定性很高,也使得本系统的硬件调试相对较简单。贞廈给鏌綞牵鎮獵鎦龐。模拟单元电源模块的调试: 经过测量, 得到本超声波测距系统正常测距时稳压芯片输入 直流电流为 50.1mA ,系统额定输入电压为 9V ,那么得到系统功耗为 450.9mW 。为系统提 供 9V 电压的20是南孚 9V 碱性干电池,该电池在 21 摄氏度下,恒流放电至 4.8V 的情况下, 电

48、池容量大概为 400mAh到 600mAh ,即可保证本系统持续工作 1 个小时左右。数字单元的 调试: 数字单元本身具有很好的稳定性, 主要检测各个引脚是否连接正确, 各个引脚电平信 号是否正确。嚌鲭级厨胀鑲铟礦毁蕲。5.3 软件调试本系统的软件调试工具为 Keil C , 软件调试的任务是使得本系统反应出正确的和精确的 被测距离,以及按键正确控制系统状态切换。薊镔竖牍熒浹醬籬铃騫。在本系统的制作中,出现错误测距时,会从程序距离计算部分,液晶显示部分找问题。 比如系统在调试过程中曾经在距离数据显示位本应该显示“0”-“ 9”的数字,结果错误显示“:”调试发现为毫米位四舍五入程序出现bug,修

49、正程序后错误显示“:”的现象解决。程序中也进行了显示优化,采用相应程序使得高位 0 清空处理,使得测量者方便观察数据。齡践砚语蜗铸转絹攤濼。本系统中工作状态切换按键 K1 曾出现按键失效状态,具体表现在:短按 K1 进入中断 程序后,系统暂停工作,但再次按K1,无论是短按还是长按都不会退出中断程序,返回工作状态。最后在程序测试中发现,适当延长按键去抖延时就解决了此问题。绅薮疮颧訝标販繯轅赛。6总结基于前面章节的论述, 将在本章中将指出本系统现存的不足, 也进一步提出对本系统改 进的构想。具体论述从器件选择,硬件电路、软件设计这三个角度展开,具体分析如下。饪箩狞屬诺釙诬苧径凛。本系统现存的不足之

50、处主要表现在两个方面,即功耗过大和程序执行效率10较低。首先本系统现在工作状态额定功率约为450mw,作为一个利用干电池供电的手持携便设备,如果能够将其功耗降低到 100mw 以下,这样可以极大的提高干电池供电时间。这里分析本 系统功耗过大的原因为是采用的 16*2 1602ZFA 字符型液晶显示器工作功率较大,为了降低 功耗可以尝试屏幕较小,且工作电压电流较小的液晶显示器。烴毙潜籬賢擔視蠶贲粵。其次程序效率低的原因表现在程序中大量引入延时程序,并且测量周期较长。 改善方案可以从以下两点着手: (1 )将程序的显示部分和测距部分分开,这样可以有效的缩短测距周期。然后采另外用定时中断定时去刷新液

51、晶屏幕数据。(2)可以采用功能模块较多的单片机,比如具有 PWM 功能、输入捕捉功能等。可以利用 PWM 功能去完成超声波发射驱动,利用 输入捕捉功能去完成时间测量,这样可以极大的提高程序效率,同时提高测距的精度。鋝岂涛軌跃轮莳講嫗键。最后提出对本系统的一点构想, 即在超声波发射接收模块的中间加入一支激光管。在系统开启后, 激光管可以发出激光束指向被测物体, 那么则可用可视光路指示看不见的超声波 传播路径, 让测量者能够更加清楚的观测本超声波测距仪与被测物体是否在一条直线上,避免一些人为的错误。撷伪氢鱧轍幂聹諛詼庞。参考文献1李群芳,肖看 . 单片机原理、接口及应用 . 北京.清华大学出版社

52、.2005 年2沈红卫 . 基于单片机的智能系统设计与实现. 北京. 电子工业出版社 .2005 年3刘海成 . 单片机及应用系统设计原理与实践. 北京. 北京航空航天大学出版社 .2009年4张志良 . 单片机原理与控制技术 . 北京 . 机械工业出版社 .2005 年215郭速学,朱承彦,郭楠 . 图解单片机功能与应用 .北京 . 中国电力出版社 .2008 年6楼然苗,李光飞 . 单片机课程设计指导 .北京 .北京航空航天大学出版社 .2007 年7张义和,陈敌北 .说例 8051. 北京. 人民邮电出版社 .2006 年8吴金戌,沈庆阳,郭庭吉 . 8051 单片机实践与应用 .北京 .清华大学出版社 .200

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论