基于单片机的测距仪的设计.docx
- 文档编号:28272103
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:35
- 大小:367.44KB
基于单片机的测距仪的设计.docx
《基于单片机的测距仪的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的测距仪的设计.docx(35页珍藏版)》请在冰豆网上搜索。
基于单片机的测距仪的设计
本科生毕业论文(设计)
题目:
基于单片机的测距仪的设计
学生姓名:
张学武
学号:
201211020226
专业班级:
电信12102班
指导教师:
蔡剑华曾高秋
完成时间:
2015年5月
基于单片机的测距仪的设计
电子信息科学与技术专业学生:
张学武
指导教师:
蔡剑华曾高秋
摘要:
本文设计了以AT89C52单片机为核心控制单元的超声波测距仪,文章概述了超声波检测的发展及基本原理,介绍了超声波传感器的原理及特性。
利用超声波检测往往比较方便、迅速、计算简单、易于做到实时控制。
该系统主要由蜂鸣器模块、超声波发送模块、超声波接收模块、显示模块四个模块构成。
利用超声波传感器对前方物体进行感应,经单片机对超声波传感器发送和接收的
声波信号进行分析和计算处理,最后将处理结果在LCD1602上显示
关键词:
AT89C52单片机,超声波,LCD显示单元,温度补偿
DesignofDistanceMeasuringInstrument
BasedOnMCU
ElectronicsandInformationScienceandTechnology
Candidate:
ZhangXuewu
Advisor:
CaiJianhuaZengGaoqiu
Abstract:
ThispaperdesignsaAT89C52microcontrollerasthecorecontrolunitofultrasonicdistancemeasuringinstrument,thearticleoutlinesthedevelopmentandthebasicprincipleofultrasonictesting,introducestheprincipleandcharacteristicsofultrasonicsensor.Theuseofultrasonictestingisoftenmoreconvenient,rapid,simple,easytoachievereal-timecontrol.Thesystemconsistsoffourmodules:
buzzermodule,ultrasonictransmittermodule,ultrasonicreceivingmoduleanddisplaymodule.Theultrasonicsensorisusedforsensingthefrontobject,andthetransmittingandreceivingoftheultrasonicsensoristransmittedandreceivedbythesinglechipmicrocomputer.Analysisandcalculationoftheacousticsignalprocessing,andfinallytheresultswillbeprocessedontheLCD1206display.
Keywords:
AT89C52singlechip,ultrasonic,LCDdisplayunit,temperaturecompensation
引言
因为超声波指向性强,能量损耗迟缓,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。
使用超声波检测往往比较迅速、便利、计算简单、易于做到及时控制,而且在测量精度方面能达到工业实用的要求,是以在移动机器人的研制上也得到了普遍的应用[1]。
单片机是把微型计算机中的微处理器、存储器、I/O接口、定时/计数器、串行接口、中断系统等电路集成在一起的微型计算机。
单片机在近十年间得到了飞速的发展,先后经历了4位机、8位机、16位机、32位机等有几个代表性的发展阶段。
本文详细介绍了超声波测距的原理与结构,在发射信号时,打开定时器中断0,接收到发射超声波信号时,这时定时器中断0计录的时间就为超声波传播经过测距仪到前方物体的来回时间。
利用公式S=T×V/2(V为超生波传播速度,本设计设定值340m/s),经过单片机处理得到距离值S并且通过LCD1602显示出来。
1概述
1.1研究背景
超声波是指频率在20kHz以上的声波,它属于机械波的领域[2]。
超声波也依照一般机械波在弹性介质中的传播规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质吸收而发生衰减等。
正是因为具有这些性质,使得超声波可以用于距离的测量中。
随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中,例如探伤技术、清洗技术、测距技术等等。
超声波测距,多用于汽车倒车雷达、建筑工地以及一些工业现场的位置监控如液位、进深的测量等场合。
1.2课题研究意义
因为超声测距是一种非接触检测技术,不受光线、被测东西颜色等的影响,较别的仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,对于被测物处于暗中、有尘土、烟雾、电磁干扰等恶劣环境有一定的适应能力。
具有少维护、不污染、高可靠、长寿命等特点。
是以可普遍应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品)、防汛、水文、明渠、空间定位、公路限高、料位测量、车辆自动导航、物体辨认与定位、车辆安全行驶辅助系统甚至地形地貌探测等许多领域中[3]。
可在不同环境中进行距离准确度在线标定,可直接用于水、酒、糖、饮料等液位控制,可进行差值设定,直接显示各种液位罐的液位、料位高度。
因此,超声在空气中测距在特殊环境下有较普遍的应用。
利用超声波检测往往比较迅速、方便、计算简单、易于实现实时控制,并且在测量精度方面能达到工业实用的指标要求,是以为了使移动机器人能够主动规避障碍物行走,就必需装备测距系统,以使其实时获取距障碍物的位置信息(距离和方向)。
因此超声波测距在移动机器人的研究上得到了广泛的应用。
同时由于超声波测距系统具有以上的这些优点,是以在汽车倒车雷达的研制方面也得到了普遍的应用[4]。
1.3国内外研究情况
近十年来,国内科研人员对关于超声波回波信号处理方法的研究已经十分成熟,但是作为超声波探测定位的关键技术,仍将是一个重要的研究方向[5]。
国内的超声波测量主要集中在对0~10m固体和液体的测量,一般测量精度高,回波稳定。
近年来随着超声波技术研究的不断深入已广泛用于各类工业领域,如工业自动控制,建筑工程测量和机器人视觉辨认等方面。
2设计要求
1、硬件设计:
利用AT89C51单片机和超声波模块设计出超声波测距仪。
主要模块有:
单片机最小系统、超声波发送和接收模块、温度补偿模块、报警模块。
2、软件设计:
使用KeilC51设计系统软件,并完成联机调试,软件设计的主要模块有:
超声波的测量和显示、1602的初始化、温度传感器的温度测量,延时程序。
3需要实现的技术指标:
探测距离为2cm-450cm。
3设计方案论证
3.1设计方案
方案一:
以S3C2410为核心,实现该芯片对其外围电路的适时控制,对其进行编程,并且提供给外围电路各种所需的各种信号,包括频率振荡信号、数据处理信号和译码显示信号等等,这样就大大简化了外围电路的设计难度,而且同时更加重要的是这种设计方案大大地节省了设计的成本,并且由于采用的是软件编程技术,所以它的移植性较好。
频率为40kHz左右的超声波在空气中传播的效率是最佳的,发射的超声波被调制成40kHz左右,具有一定间隔调制脉冲波信号[6]。
方案二:
采用CPLD来控制的D来控制的超声波测距仪,主要是在软件上运用VHDL(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage)编写程序并且使用MAX+plusII软件进行软硬件设计的仿真和调试,最终实现测距功能。
使用本方案的优点在于在超声波测距仪设计中采用MAX7000s系列中的EPM7128SLC84-15的CPLD器件,其最高频率可达175.4MHz,可用于组合逻辑电路、时序逻辑电路、算法、双端口RAM等的设计。
充分利用了其多达128个宏单元、68pin可编程I/O口,使该器件可以将分频功能、计数功能、显示编码功能、振荡功能全部集于一体。
因其延时平均的特点,保证了测距结果精度高、响应速度快。
该方案的缺点是方案中需要一块FPGA,一块双口RAM,还需要一块用来存储波形数据的EEPROM,那么设计成本较高。
同时在FPGA中还要用到硬件描述语言(VHDL语言)编写程序来实现硬件电路功能。
由于EPM7128SLC84-15的算法复杂,在软件实现起来编程也复杂[7]。
方案三:
采用单片机来控制的超声波测距仪是先由单片机产生一个信号,经过信号线,把信号引入到与超声波发射器相连的信号引脚上,再由超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。
超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离即:
S=vt/2。
3.2方案论证
方案一能够实现自动测距、实时显示的功能,集探伤、测距等多种功能于一体,所有运算、处理、显示都实现数字化;而且操作简单。
使用方便,所有功能都有按键控制;测量迅速、精确,结果显示直观;仪器仅仅依靠电池供电,设有低功耗模式;体积小,携带方便。
方案三计硬件简单,容易实现,测距范围适中。
测量误差可控制在士1cm左右。
系统软件采用合理算法,提高了测量精度,具有较好的应用价值。
另外其使用的51系列单片机内部含有Flash存储器,在系统开发过程中可以反复擦写;用静态时钟方式,可以节省电能;支持ISP(在线编程),不需要把单片机从电路板取下来就可以擦写程序;晶振频率高达24M,运行速度更快,价格也比较便宜;增了看门狗电路,防止程序“走飞”,更加安全可靠。
与第二种方案相比,第三种使用的是单片机,编译语言使用C语言来实现,所以比较简单。
3.3超声波测距原理
通过超声波发射装置发射超声波,根据接收器接到超声波的时间差就可以知道距离了。
这与雷达测距的原理相似[8]。
超声波发射装置向某一方向发射超声波,在发射超声速波的同时开始计时,途中遇到障碍物就立即返回来,超声波接收器接到反射波就立刻停止计时超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离即:
S=vt/2
由于超声波也是一种声波,其声速C与温度有关,附表列出了几种不同温度下的声速。
在使用时,如果温度变化不大,则可认为声速是基本不变的。
如果测距精度要求很高,则应通过温度补偿的方法加以校正。
式中V为超声波在空气中的传播速度,0℃时为331m/s,25℃时为347m/s
其与环境温度T℃的关系如表3.3所示:
表3.3温度与声速变化
-30
-20
-10
0
10
20
30
100
声速(米/秒)
313
319
325
323
338
344
349
386
4设计总体方案
4.1总体设计思路
根据题目的要求,经过仔细的考虑各种要素,制定了一个整体方案:
以AT89C51单片机为控制核心,由超声波发射、接收模块、2个按键,蜂鸣器构成的报警电路,LED显示以及温度传感器来构成由单片机最小系统来控制的超声波测距仪,其结构框图如图4-1所示:
图4-1系统框图
4.2显示部分
方案一:
数码管显示,由于本题要求实时的显示测距的距离、温度,而数码管不能显示字符。
方案二:
LED点阵显示,LED点阵显示虽然能够显示数字和字符,但是显
的效果不好,而且不易编程。
方案三:
LCD液晶显示,LCD液晶显示不但能显示字符和数字,而且效果较好,且容易实现。
经过比较,选取方案三作为此次的显示电路。
4.3按键部分
方案一:
采用独立按键,按键的数目比少,但是它的结构简单执行效率高。
方案二:
采用矩阵键盘,它以较少得IO口实现了按键的功能,执行效率高
其操作比较复杂。
经对比,由于我们需求的按键比较少,但是对执行的效率比较高,所以采用的是独立按键。
5硬件电路
本系统由单片机、按键电路、显示接口电路、蜂鸣器电路、温度传感器电路等五部分组成。
电路图如图下图5-1所示:
图5-1原理图
5.1功能与原理
功能:
形成超声波发送,并通过超声波的发送与接收来测得前方物体的距离,可以自行设置最短测距,当测得距离小于设置的最短测距时,就会蜂鸣器报警,带有温度补偿以提高测距的精确度。
超声波测距的算法为:
超声波在空气中传播的速度为每秒钟340米(15℃时)。
X2是超声波的返回时刻,X1是超声波的发送时刻,X2-X1得出的是一个时间差的绝对值,假定X2-X1=0.3S,则有340m×0.03S=10.2m。
超声波由发送到遇到发射物返回的距离如图5-2所示:
图5-2测距原理
5.2资源分配
软、硬件设计是必不可少的,为了满足功能和指标的要求,资源分配为:
单片机用12MHz晶振,P0口以及P2^0,P2^1,P2^2接LCD显示电路,P3^5,P3^6分别接功能键,调整键。
P3^3接蜂鸣器报警电路。
P2^4接DS18B20温度传感器,实现温度的测量以及补偿。
P3^2、P2^5分别接超声波发送电路和超声波接收电路。
5.3超声波发送电路
超声波发射电路是由超声波探头和超声波放大器组成。
超声波探头将电信号转换为机械波发射出去,而单片机所产生的40kHz的方波脉冲需要进行放大才能将超声波探头驱动将超声波发射出去.超声波发射电路主要由555振荡器和一个共发射极放大电路成。
其原理图如图5-3所示。
图5-3超声波发送电路
5.4超声波接收电路
由于超声波在空气中的传播过程中是有衰减的,如果距离较远,那么超声波接收电路所接收到的超声波信号就会比较微弱,因此需要对接收到的信号进行放大而且放大的倍数也要比较大。
超声波接收电路主要是由集成电路CX20106A芯片电路构成的,CX20106A芯片电路可以对超声波信号进行放大、限幅、带通滤波、峰值检波、整形、比较等功能,比较完之后超声波接收电路会输出一个低电平到单片机去请求中断,当即单片机停止计时,并开始去进行数据的处理。
CX20106A芯片的前置放大器具有自动增益控制的功能,当测量的距离比较近时,放大器不会过载;而当测量距离比较远时,超声波信号微弱,前置放大器就有较大的放大增益效果。
CX20106A芯片的5脚在外接电阻对它的带通滤波器的频率进行调节,而且不用再外接其他的电感,能够很好地避免外加磁场对芯片电路的干扰,而且它的可靠性也是比较高的。
CX20106A芯片电路本身就具有很高的抗干扰的能力,而且灵敏度也比较高,所以,能满足本设计的要求。
超声波接收电路如图5-4所示。
图5-4超声波接收电路
5.5HR-SR04超声波传感器模块
1、产品特点:
HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。
基本工作原理:
(1)采用IO口TRIG触发测距,给至少10us的高电平信号;
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。
测试距离=(高电平时间*声速(340M/S))/2。
2、实物图
如图5-5接线所示,VCC提供5V电源,GND为地线,
图5-5实物图
3电气参数如表5.5:
表5.5电气参数表
电气参数
HC-SR04超声波模块
工作电压
DC5V
工作电流
15mA
工作频率
40Hz
最远射程
4m
最近射程
2cm
测量角度
15度
输入触发信号
10uS的TTL脉冲
输出回响信号
输出TTL电平信号,与射程成比例
规格尺寸
45*20*15mm
4超声波时序图,如图5-6所示:
图5-6超声波时序图
以上时序表明你只需要提供一个10uS以上的脉冲触发信号,该模块内部将发出8个40KHz周期电平并检测回波。
一旦检测到有回波信号则输出回响信号,回响信号的脉冲宽度与测得的距离成正比。
由此通过发送信号到收到的回响信号的时间间隔可以计算得到距离。
5.6复位电路
如图5-7所示,复位电路的工作原理是:
单片机的复位电路在刚接通电时,刚开始电容是没有电的,电容内的电阻很低,通电后,5V的电通过电阻给电容进行充电,电容两端的电会由0V慢慢的升到4V左右(此时间很短一般小于0.3秒),RC构成的微分电路在上电瞬间产生一个微分脉冲,其宽度大于两个机器周期,89C51将复位。
正因为这样,复位脚的电由低电位升到高电位,引起了内部电路的复位工作,RST端电压慢慢下降,降到一定电压值以后,即为低电平,单片机开始正常工作(这是单片机的上电复位,也叫初始化复位)
图5-7复位电路
5.7外部时钟
采用12MHz的晶振和两个22pf电容组成时钟电路部分。
如图5-8所示:
图5-8时钟电路
5.8按键电路
P3^5为功能键即选择某一位数字进行调整。
P3^6为调整键,调整测距的最小距离的下限值。
如图5-9所示:
图5-9按键电路
5.9报警电路
当被测物的距离超出了HR-SR04超声波模块的测距范围或者当期被测物的距离小于自己设置的最小测距时就会驱动蜂鸣器,产生报警。
如图5-10所示:
图5-10报警电路
5.10温度检测电路
单片机的P2^4接DS18B20对环境温度进行检测,从而对超声波的传播速度进行温度补偿,提高测距的精确度。
温度传感器(DS18B20)的引脚分布如图,其封如图5-11所示:
图5-11DS18B20
引脚功能如下:
NC(1、2、6、7、8脚):
空引脚,悬空不使用。
VDD(3脚):
可选电源脚,电源电压范围3~3.5v。
当工作寄生电源时,此引脚必须接地。
DQ(4脚):
数据输入/输出脚。
漏极开路,常态下为高电平。
GND(5脚):
接地。
5.11显示接口电路
LCD1602管脚功能如表5-10所示:
引脚号
符号
状态
功能
1
VSS
电源地
2
VDD
电源+5V
3
V0
对比度控制端
4
RS
输入
寄存器选择
5
R/W
输入
读\写操作
6
E
输入
使能信号
7-14
DB
三态
数据总线
15
LEDA
输入
背光+5V
16
LEDK
输入
背地光
表5-10
LCD1602主要管脚介绍:
V0:
液晶显示器对比度调整端,接地电源时对比度最高,对比度过高时会产生‘鬼影’,使用时可以通过一个10K的电位器调整对比度。
RS:
寄存器选择,高电平时选择数据寄存器;低电平时选择指令寄存器。
R/W:
读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址;当RS为高电平R/W为高电平R/W为低电平时可以写入数据。
E:
使能端,当E端由高电平跳变成低电平时,液晶模块执行指令。
LCD1602的八位数据端接单片机的P0口,其使能端RS、E分别接单片机的P1.0、P1.1,显示测得的距离和当前的温度。
如图5-10:
图5-12LCD1602
6软件设计
本设计采用的是模块化的思路来进行设计和编写程序,程序主要由系统主程序和中断程序构成。
主程序完成单片机的初始化,超声波的发射和接收、计算超声波发射点与障碍物之间的距离、LCD显示和蜂鸣器报警等。
系统程序设计的主要的功能是发射超声波、接受超声波、计算测量距离、数据计算、蜂鸣器报警和LCD显示。
6.1主程序流程图
软件编程,控制单片机,当发射超声波时打开定时器计时,当接收到发射的超声波时关闭定时器。
温度传感器检测温度,实现温度补偿。
根据超声波发射到接收所用的时间计算测距,并在LCD1602上显示。
其流程图如6-1所示:
图6-1主程序流程图
6.2超声波发送流程图
单片机发射超声波并同时打开定时器计时,当超声波接收登录接收到超声波反射波时停止计时,其流程图如图6-2所示:
图6-2超声波发送流程图
6.3LCD显示流程图
LCD在使用时必须先进行初始化。
显示时应根据显示的位置先定位,再向当前显示缓冲区写入要显示的内容,其流程图如6-3所示
6-3LCD显示流程图
6.4温度读取流程图
首先开始,初始化地址,通过地址得到应答脉冲,如果没有则返回,重新应答,应答脉冲为高电平,则skiprom命令。
再发生converT命令后,延时1s等待温度1s等待温度转的完成,温度转换完成后,在初始化地址,给出应答脉冲时发出ReadScratchpad命令。
后读出先后脉冲,读取第12字节温度数据,再返回开始初始化程序。
其流程图如图6-4所示:
读转换温度值
图6-4温度读取流程图
7系统仿真
7.1仿真电路图
通过Proteus软件和电路原理图绘制出如下仿真电路图,对程序和电路功能进行测试.由于在proteus中没有HR-SR04模块,所以在仿真时,将由555构成的超声波发送电路与由CX20106A芯片构成的超声波接收电路封装,通过自己画出超声波集成模块,从而实现proteus的仿真,如图7-1所示:
图7-1仿真电路图
7.2仿真结果输出
程序初始时,设置最小测距为0.80m,当被测物的距离小于该值时,就会报警且被测物的距离越小,报警声就会越急促。
LCD显示当前测得的距离、温度和设置的最小测距。
在proteus中通过在HR-SR04增加一个滑动变阻器调整555延时从而实现模拟测距过程,如图7-2所示:
7-2仿真结果
可以通过调整键和功能键来设置初始最小测距,如图7-3所示:
图7-3最小测距仿真图
8结论与展望
设计最终基于单片机为核心控制单元,通过keil软件实现C语言的源程序编写,由于C语言通俗易懂,能体现出超声波测距的程序控制逻辑与原理,利用Proteus软件仿真超声波测距系统电路,最终实现报警,温度补偿,测距结果显示功能。
由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,因此超声波测距在移动机器人的研究上得到了广泛的应用。
同时由于超声波测距系统具有这些优点,因此在汽车倒车雷达的研制方面也得到了广泛的应用。
答谢:
首先非常感谢指导老师蔡剑华和曾高秋的精心指导和严格要求,让我充分利用所学的理论知识去完成论文的设计,论文的完成让我极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,尤其是单片机领域,这对我今后进一步从事电子行业有着极大的帮助。
另外,此次毕业设计还获得了其他老师和同学的大力支持。
在此,我忠心感谢蔡剑华老师和曾高秋老师以及诸位的指导和支持。
在未来的工作和学习中,我将以更好的成绩来回报母校。
参考文献:
[1]谢维成,杨加国.单片机原理与应用及C51程序设计(第二版)[M],清华大学出版社.2009:
24-31
[2]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 测距仪 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)