基于MSP430 launchpad超声波测距系统.docx
《基于MSP430 launchpad超声波测距系统.docx》由会员分享,可在线阅读,更多相关《基于MSP430 launchpad超声波测距系统.docx(33页珍藏版)》请在冰豆网上搜索。
![基于MSP430 launchpad超声波测距系统.docx](https://file1.bdocx.com/fileroot1/2022-11/25/d5af4dd5-0f81-4b28-9893-76fc203cd3ba/d5af4dd5-0f81-4b28-9893-76fc203cd3ba1.gif)
基于MSP430launchpad超声波测距系统
目录
摘要2
第1章绪论5
1.1课题研究的背景5
1.2课题研究的意义5
1.3论文结构6
第2章超声波测距原理7
2.1超声波简介7
2.2超声波测距原理7
第3章方案论证9
3.1设计思路9
3.2系统结构设计10
第4章主要元件介绍11
4.1单片机MSP430launchpadM430G255311
4.2超声波传感器HC-SR0412
第5章硬件电路设计15
5.1超声波发射电路15
5.2超声波接收电路15
5.3显示电路16
5.4电源电路18
5.5复位电路18
第6章软件设计19
6.1主程序流程19
6.2子程序设计21
6.2.1超声波发送子程序及超声波接收中断子程序21
6.2.2测温子程序22
6.2.3距离计算子程序23
第7章软件调试及系统仿真24
7.1软件编译调试环境——IAR24
7.2IAR工程文件的建立、设置与目标文件的获得24
7.2.1IAR工程的建立24
7.2.2工程的详细设置26
7.2.3编译、连接27
7.3误差及特性分析29
结论30
参考文献31
致谢32
附录1相关设计图33
附录2元器件清单表35
附录3主要程序36
摘要
本设计介绍了基于单片机控制的超声测距仪的原理:
由AT89C430控制定时器产生超声波脉冲并计时,计算超声波自发射至接收的往返时间,从而得到实测距离。
并且在数据处理中采用了温度补偿的调整,用四位LED数码管切换显示距离和温度。
整个硬件电路由超声波发射电路、超声波接收电路、电源电路、显示电路等模块组成。
各探头的信号经单片机综合分析处理,实现超声波测距仪的各种功能。
在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块。
相关部分附有硬件电路图、程序流程图,给出了系统构成、电路原理及程序设计。
此系统具有易控制、工作可靠、测距准确度高、可读性强和流程清晰等优点。
实现后的作品可用于需要测量距离参数的各种应用场合。
关键词:
AT89C430,超声波,温度补偿,测距
ABSTRACT
ThedesignintroducestheprincipleoftheultrasonicdistancemeasurementinstrumentbasedonSCMC-controlled:
AT89C430controlstimerstoproducetheultrasonicwavepulseandtime,countthetimeofultrasonicwavespontaneousemissiontoreceiveround-trip,thusobtainsthemeasureddistance.Andthetemperaturecompensationadjustmentisusedinthedataprocessing,withfourLEDnixietubesdisplaydistanceortemperaturebyswitching.Theentirehardwarecircuitiscomposedbyultrasonictransmittercircuit,ultrasonicreceivercircuit,thepowercircuit,displaycircuit,andothermodules.TheprobesignalsareintegratedanalysisedbySCMCtoachievethevariousfunctionsofultrasonicdistancemeasurementinstrument.Basedonthishasdesignedsystem'soverallconcept,finaladoptionofhardwareandsoftwaretoachievethevariousfunctionalmodules.Therelevantpartshavethehardwareschematicsandprocessflowchart.Ithasgiventhesystemconstitution,thecircuitryandtheprogramming.Theinstrumentsystemhasfeatures:
easeofcontrol,stabilityofoperation,highnessofprecisionanddistinctnessofprogrammeprocess,etc.Aftertherealizationoftheworkscanbeusedforneedsofthevariousparametersmeasureddistanceapplications.
Keywords:
AT89C430,Ultrasonicwave,Temperaturecompensation,Measuredistance
第1章绪论
1.1课题研究的背景
人们生活水平的提高,城市发展建设加快,城市给排水系统也有较大发展,其状况不断改善。
但是,由于历史原因合成时间住的许多不可预见因素,城市给排水系统,特别是排水系统往往落后于城市建设。
因此,经常出现开挖已经建设好的建筑设施来改造排水系统的现象。
城市污水给人们带来了困扰,因此箱涵的排污疏通对大城市给排水系统污水处理,人们生活舒适显得非常重要。
而设计研制箱涵排水疏通移动机器人的自动控制系统,保证机器人在箱涵中自由排污疏通,是箱涵排污疏通机器人的设计研制的核心部分。
控制系统核心部分就是超声波测距仪的研制。
随着科学技术的快速发展,超声波将在传感器中的应用越来越广。
但就目前技术水平来说,人们可以具体利用的传感技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。
展望未来,超声波传感器作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求,如声纳的发展趋势基本为:
研制具有更高定位精度的被动测距声纳,以满足水中武器实施全隐蔽攻击的需要;继续发展采用低频线谱检测的潜艇拖曳线列阵声纳,实现超远程的被动探测和识别;研制更适合于浅海工作的潜艇声纳,特别是解决浅海水中目标识别问题。
毋庸置疑,未来的超声波传感器将与自动化智能化接轨,与其他的传感器集成和融合,形成多传感器。
随着传感器的技术进步,传感器将从具有单纯判断功能发展到具有学习功能,最终发展到具有创造力。
1.2课题研究的意义
在现实生活中,一些传统的距离测量方式在某些特殊场合存在不可克服的缺陷,例如,液面测量就是一个距离测量,传统的电极法是采用差位分布电极,通过给电或脉冲检测液面,电极长期浸泡在水中或其它液体中,极易被腐蚀、电解,从而失去灵敏性。
而利用超声波测量距离可以很好地解决这一问题。
目前市面上常见的超声波测距系统不仅价格昂贵,体积过大而且精度也不高等种种因素,使得在一些中小规模的应用领域中难以得到广泛的应用。
为解决这一系列难题,本文设计了一款基于AT89C430单片机的低成本、高精度、微型化的超声波测距仪。
1.3论文结构
论文首先对课题的背景和意义进行阐述,并概述了论文结构。
第2章先就超声波测距的原理进行介绍,并提出了提高测距的精度的方案——温度补偿,且描述了其具体补偿方式。
第3章针对本文采用的设计方案进行了可行性的论证,并得出了系统结构框图。
第4章介绍了设计中需要用到的主要器件,且因其在本设计的作用不同而详尽程序亦不同。
第5章从整体硬件设计出发,对各部分电路进行了详细说明。
第6章先给出了软件设计的整体流程图,并且对关键部分软件设计做了进一步的解释。
程序编译及系统仿真也是本文的一个要点,所以特别分出一章来详细介绍了程序编译的环境和编译的步骤以及仿真的环境和部分仿真的效果图。
第2章超声波测距原理
2.1超声波简介
我们知道,当物体振动时会发出声音。
科学家们将每秒钟振动的次数称为声音的频率,它的单位是赫兹。
我们人类耳朵能听到的声波频率为20~20000赫兹。
当声波的振动频率大于20000赫兹或小于20赫兹时,我们便听不见了。
因此,我们把频率高于20000赫兹的声波称为“超声波”。
通常用于医学诊断的超声波频率为1~5兆赫。
超声波具有方向性好,穿透能力强,易于获得较集中的声能,在水中传播距离远等特点。
可用于测距,测速,清洗,焊接,碎石等。
在医学,军事,工业,农业上有明显的作用。
理论研究表明,在振幅相同的条件下,一个物体振动的能量与振动频率成正比,超声波在介质中传播时,介质质点振动的频率很高,因而能量很大。
在我国北方干燥的冬季,如果把超声波通入水罐中,剧烈的振动会使罐中的水破碎成许多小雾滴,再用小风扇把雾滴吹入室内,就可以增加室内空气湿度。
这就是超声波加湿器的原理。
对于咽喉炎、气管炎等疾病,药品很难血流到打患病的部位。
利用加湿器的原理,把药液雾化,让病人吸入,能够疗效。
利用超声波巨大的能量还可以使人体内的结石做剧烈的受迫振动而破碎。
2.2超声波测距原理
超声波是利用反射的原理测量距离的,被测距离一端为超声波传感器,另一端必须有能反射超声波的物体。
测量距离时,将超声波传感器对准反射物发射超声波,并开始计时,超声波在空气中传播到达障碍物后被反射回来,传感器接收到反射脉冲后立即停止计时,然后根据超声波的传播速度和计时时间就能计算出两端的距离。
测量距离D为
(2.1)
式中c——超声波的传播速度;
——超声波发射到接收所需时间的一半,也就是单程传播时间。
由上式可风,距离的测量精度主要取决于计时精度和传播速度两方面。
计时精度由单片机定时器决定,定时时间为机器周期与计数次数的乘积,可选用12MHz的晶振,使机器周期为精确的1µs,不会产生累积误差,使定时间达到1µs。
超声波的传播速度c并不是固定不变的,传播速度受空气密度、温度和气体分子成分的影响,关系式为
(2.2)
式中γ——气体定压热容与定容热容的比值,空气为1.40。
R——气体普适常数,为8.314kg/mol。
T——气体势力学温度,与摄氏温度的关系是T=273K+t。
M——气体相对分子质量,空气为28.8×10-3kg/mol。
c0——0℃时的声波速度,为331.4m/s。
由上式可见,超声波在空气中传播时,受温度影响最大,由表达式可计算出波速与温度的关系,如表2.1所示。
温度越高,传播速度越快,而且不同温度下传播速度差别非常大,例如0℃时的速度为332m/s,30℃时的速度为350m/s,相差18m/s。
因此,需要较高的测量精度时,进行温度补偿是最有效的措施。
对测量精度要求不高时,可认为超声波在空气中的传播速度为340m/s。
表2.1超声波传播速度与温度关系表
项目
数值
温度
-30
-20
-10
0
10
20
30
40
50
60
100
声速/(m•s)
313
319
325
332
338
344
350
356
361
367
388
第3章方案论证
3.1设计思路
测量距离方法有很多种,短距离可以用尺,远距离有激光测距等,超声波测距适用于高精度中长距离测量。
因为超声波在标准空气中传播速度为331.45米/秒,由单片机负责计时,单片机使用12.0M晶振,所以此系统测量精度理论上可以达到毫米级。
目前比较普遍的测距的原理:
通过发射具有特征频率的超声波对被摄目标的探测,通过发射出特征频率的超声波和反射回接受到特征频率的超声波所用的时间,换算出距离,如超声波液位物位传感器,超声波探头,适合需要非接触测量场合,超声波测厚,超声波汽车测距告警装置等。
由于超声波指向性强,能量消耗缓慢,在介质中传播距离远,因而超声波可以用于距离测量。
利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到要求。
由于超声波易于定向发射、方向性好、强度易控制、与被测量物体不需要直接接触的优点,是作为液体高度测量的理想手段。
在精密的液位测量中需要达到毫米级的测量精度,但是目前国内的超声波测距专用集成电路都是只有厘米级的测量精度。
通过分析超声波测距误差产生的原因,提高测量时间差到微秒级,以及用温度传感器进行声波传播速度的补偿后,我们设计的高精度超声波测距仪能达到毫米级的测量精度。
目前超声波测距已得到广泛应用,国内一般使用专用集成电路根据超声波测距原理设计各种测距仪器,但是专用集成电路的成本较高、功能单一。
而以单片机为核心的测距仪器可以实现预置、多端口检测、显示、报警等多种功能,并且成本低、精度高、操作简单、工作稳定、可靠。
以80430为内核的单片机系列,其硬件结构具有功能部件齐全、功能强等特点。
尤其值得一提的是,出8位CPU外,还具备一个很强的位处理器,它实际上是一个完整的位微计算机,即包含完整的位CPU,位RAM、ROM(EPROM),位寻址寄存器、I/O口和指令集。
所以,80430是双CPU的单片机。
位处理在开关决策、逻辑电路仿真、过程测控等方面极为有效;而8位处理则在数据采集和处理等方面具有明显长处。
根据设计要求并综合各方面因素,可以采用AT89C430单片机作为主控制器,它控制发射触发脉冲的开始时间及脉宽,响应回波时刻并测量、计数发射至往返的时间差。
利用软件产生超声波信号,通过输出引脚输入至驱动器,经驱动器驱动后推动产
生超声波;超声波信号的接收采用锁相环LM567对放大后的信号进行频率监视和控制。
一旦探头接到回波,若接收到的信号频率等于振荡器的固有频率(此频率主要由RC值决定),则其输出引脚的电平将从“1”变为“0”(此时锁相环已进入锁定状态),这种电平变化可以作为单片机对接收探头的接收情况进行实时监控。
可对测得数据优化处理,并采用温度补偿,使测量误差降到更低限度;AT89C430还控制显示电路,用动态扫描法实现LED数字显示。
3.2系统结构设计
超声波测距仪系统结构如图3.1所示。
它主要由单片机、超声波发射及接收电路、超声波传感器、温度传感器、键盘、LED显示电路及电源电路组成。
系统主要功能包括:
1)超声波的发射、接收,并根据计时时间计算测量距离;
2)检测空气温度用于距离计算的补偿;
3)LED显示器显示距离;
4)键盘接收用户命令并处理;
5)当系统运行不正常时,用电平式开关与上电复位电路复位。
图3.1超声波测距仪系统结构框图
第4章主要元件介绍
4.1单片机MSP430launchpadM430G2553
简介
单片机即单片微型计算机SCMC(SingleChipMicroComputer)。
它把构成一台计算机的主要功能部、器件,如CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入/输出设备(例如:
串行口、并行输出口等)、中断系统、定时/计数器等集中在一块芯CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入/输出设备(例如:
串行口、并行输出口等)制功能,所以又称为微控制器MCU(MicrocontrollerUnit)。
相对于普通微机,单片机的体积要小得多,一般嵌入到其他仪器设备里,实现自动检测与控制,因此也称为嵌入式微控制器EMCU(EmbeddedMicrocontrollerUnit)。
简介
MSP430LaunchPad是一款易于使用的闪存编程器和调试工具,它提供了在MSP430超值系列器件上进行开发所需的一切内容。
它提供了具有集成仿真功能的14/20引脚DIP插座目标板,可通过SpyBi-Wire(2线JTAG)协议对系统内置的MSP430超值系列器件进行快速编程和调试。
由于MSP430闪存的功耗极低,因此无需外部电源即可在数秒内擦除闪存并对其进行编程。
LaunchPad将MSP430器件与CodeComposerStudio版本4或IAR嵌入式工作平台等集成软件环境相连接。
MSP430超值系列器件上的这些IDE是免费且非受限的软件。
LaunchPad支持所有采用14或20引脚DIP封装(TI封装代码:
N)的MSP430G2xx闪存器件。
LaunchPad还采用用于定制项目和应用的板载可编程LED和按钮!
10引脚PCB连接器还可用于连接LaunchPad和附加器件
特性
实现在采用14或20引脚DIP(N)封装的所有MSP430超值系列器件上的开发。
LaunchPad的集成仿真器接口将基于闪存的MSP430超值系列器件与PC相连接,可通过USB实现实时系统内编程和调试
包含一根可与PC相连接的微型USB电缆
现已推出可供免费下载的IARKickstart和CodeComposerStudio版本4集成开发环境,它们包含汇编器、连接器、仿真器、源码级调试器和C编译器。
MSP430超值系列器件上的这些免费IDE是非受限的软件。
符合RoHS
4.2超声波传感器HC-SR04
1、本模块性能稳定,测度距离精确。
能和国外的SRF05,SRF02等超声波测距模块相媲美。
模块高精度,盲区(2cm)超近,稳定的测距是此产品成功走向市场的有力根据!
2主要技术参数:
1:
使用电压:
DC5V2:
静态电流:
小于2mA
3:
电平输出:
高5V4:
电平输出:
底0V
5:
感应角度:
不大于15度6:
探测距离:
2cm-450cm
7:
高精度可达0.2cm
接线方式,VCC、trig(控制端)、echo(接收端)、GND
3模块工作原理:
(1)采用IO触发测距,给至少10us的高电平信号;
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO输出一高电平,高电平持续的时间就是
超声波从发射到返回的时间.测试距离=(高电平时间*声速(340M/S))/2;
超声波模块原理图:
第5章硬件电路设计
5.1超声波发射电路
超声波发射电路原理图如图5.1所示。
发射电路主要由反相器74LS04和超声波发射换能器T40构成,单片机P1.0端口输出的40kHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。
输出端采用两个反向器并联,用以提高驱动能力。
上位电阻R1、R2一方面可以提高反向器74LS04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡时间。
图5.1超声波发射电路原理图
5.2超声波接收电路
超声波接收电路由超声波传感器、两级放大电路和锁相环电路组成。
超声波传感器接收到的反射波信号非常微弱,两级放大电路用于对传感器接收到的信号进行放大。
锁相环电路接收到频率符合要求的信号后向单片机发出中断请求。
锁相环LM567内部压控振荡器的中心频率为
,锁定带宽与C3有关。
由于发送的超声波频率为40kHz,帮调整相关元件使锁相环的中心频率为40kHz,只响应该频率的信号,避免了其他频率信号的干扰。
当超声波传感器接收到超声波信号后,送入两级放大器放大,放大后的信号进入锁相环检波,如果频率为40kHz,则从8脚发出低电平中断请求信号送单片机P3.3端,单片机检测到低电平后停止定时器的工作。
超声波接收电路如图5.2所示。
图5.2超声波接收电路
5.3显示电路
显示电路采用LCD43010显示,该模块具有以下特点:
●84x48的点阵LCD,可以显示4行汉字,
●采用串行接口与主处理器进行通信,接口信号线数量大幅度减少,包括电源和地在内的信号线仅有9条。
支持多种串行通信协议(如AVR单片机的SPI、MCS430的串口模式0等),传输速率高达4Mbps,可全速写入显示数据,无等待时间。
●可通过导电胶连接模块与印制版,而不用连接电缆,用模块上的金属钩可将模块固定到印制板上,因而非常便于安装和更换。
●LCD控制器/驱动器芯片已绑定到LCD晶片上,模块的体积很小。
●采用低电压供电,正常显示时的工作电流在200μA以下,且具有掉电模式。
LPH7366的这些特点非常适合于电池供电的便携式通信设备和测试设备中
5.4电源电路
电源电路如图5.4所示。
为方便起见,本设计采用的是9V电池供电,直流电送入三端稳压器LM7805稳压,输出+5V稳恒直流电,作为电路的电源。
LED是电源指示灯,通电后发光。
图5.4电源电路
5.5复位电路
AT89C430复位有一个专用的外部引脚RESET,外部可通过此引脚输入一个正脉冲使单片机复位。
所谓复位,就是强制单片机系统恢复到确定的初始状态,并使系统重新从初始状态开始工作。
本设计采用的是电平式开关与上电复位电路,为了能使运行中的系统,经人工干预,强制系统进行复位。
其电路图如5.4所示:
图5.4复位电路
第6章软件设计
6.1主程序流程
我们知道C语言程序有利于实现较复杂的算法,汇编语言程序则具有较高的效率且容易精细计算程序运行的时间,而超声波测距仪的程序既有较复杂的计算(计算距离时),又要求精细计算程序运行时间(超声波测距时),所以控制程序可采用C语言和汇编语言混合编程。
因为本设计对时间要求精度较高的部分全部由单片机内部的定时器完成,而虽然温度传感器的读写对时间精度要求也高,但经详细计算所得出的C程序已被广泛应用,故直接借用已有程序也能作到对温度的准确读取,所心本设计全部使用C语言编程,这样能使设计中所用到的公式能方便快捷的体现和实现,又缩短了论文的篇幅。
软件采用模块化设计方法,由主程序、超声波发生子程序、超声波接收中断子程序、温度测量子程序、距离计算子程序、显示子程序、键盘扫描处理程序等模块组成。
图6.1为主程序流程图。
系统上电后,首先系统初始化,不断扫描按键k1,若按键k1按下,则开始测量空气温度,然后将P1.0置位,使定时器T0开始定时,控制超声波传感器发出超声波,同时使定时器T1开始定时。
CPU循环检测P3.3引脚,当P3.3为低电平时接收到回波,立即使T1停止工作,保存定时器的计数值。
然后根据温度和传输时间计算距离,温度补偿措施使测量精度有了明显提高,计算出距离后调用距离显示子程序,LED显示距离。
最后检测按键k2,若k2闭合,则LED显示温度(5s后恢复显示本次测量距离;若按键k2没有闭合,则显示器恒定显示最新一次的测量结果;若要进行下一次测量,则先要按下k3重新开始,再按下按键k1才执行新一次测量。
由于不需输入数据,键盘只设置了1个按键,用于复位。
6.2子程序设计
6.2.1超声波发送子程序及超声波接收中断子程序
超声波发生子程序的作用是通过P1.0端口发送左右超声波脉冲信号(频率约40kHz