基于单片机的超声波测距系统的设计本科毕业设计.docx
- 文档编号:28585085
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:55
- 大小:2.75MB
基于单片机的超声波测距系统的设计本科毕业设计.docx
《基于单片机的超声波测距系统的设计本科毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的超声波测距系统的设计本科毕业设计.docx(55页珍藏版)》请在冰豆网上搜索。
基于单片机的超声波测距系统的设计本科毕业设计
基于单片机的超声波测距系统的设计
声明
本人所呈交的基于单片机的超声波测距系统的设计,是我在指导教师的指导和查阅相关著作下独立进行分析研究所取得的成果。
除文中已经注明引用的内容外,本论文不包含其他个人已经发表或撰写过的研究成果。
对本文的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。
作者签名:
日期:
2011、3、26
【摘要】
超声波技术是一门各行各业都要使用的通用技术,它是通过超声波产生、传播以及接收的物理过程完成的。
超声波指向性强,能量耗损缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。
利用超声波测距迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此得到广泛应用。
目前超声波技术广泛应用于各个工业部门的超声波探测、超声焊接、超声检测和超声医疗方面。
本系统设计利用STC89C52RC为主控芯片,利用单片机程序产生40KHz方波信号,通过推挽放大驱动超声波发射器向外发射超声波信号,同时开始计时,超声波信号经障碍物反射后被超声波接收器接收,利用接收芯片接收并将信号传至单片机,单片机通过发射与接收之间的时间差,即可计算障碍物的距离。
并通过程序的设计利用四位数码管将探测结果直观显示出来。
基于单片机的超声波测距系统易实现,成本低,精确度高,并且容易做到实时控制,具备较强的实用性。
【关键词】:
单片机,超声波,测距
ABSTRACT
SCMisanintegratedcircuitchip,ultra-largescaleintegratedcircuittechnologyisusedwithdataprocessingcapabilitiestothecentralprocessingunitCPUrandomaccessmemoryRAM,read-onlymemoryROM,avarietyofI/Oportandinterruptsystem,timers/timerotherfunctions(andpossiblythedisplaydrivercircuit,pulsewidthmodulationcircuit,analogmultiplexers,A/Dconvertercircuit)intoasinglesiliconwaferconsistingofasmallbutcompletecomputersystem.SCMhasasimplestructure,control,lightweight,etc.,inthemachineryandelectronics,aerospace,metallurgyandmanyotherareasofmining,andhouseholdapplianceshavebeenwidelyused,playedahugerole.Ultrasonicpointtostrongenergydissipationisslow,thespreadinthemediumdistance,andthereforefrequentlyusedultrasonicdistancemeasurement.Usingultrasonicrangingrapid,convenient,simplecomputationandeasytodoreal-timecontrolandmeasurementprecisioncanbeachievedinthepracticalrequirementsofindustry,sowidelyused.
Ultrasoundtechnologyisacommontechniqueusedinallwalksoflifetobe,itisthroughultrasoundgeneration,transmissionandreceptionofthephysicalprocessofcompletion.Ultrasoundtechnologyiscurrentlywidelyusedinvariousindustrialsectorsoftheultrasonicprobe,ultrasonicwelding,ultrasonictestingandultrasonicmedicalcare.Ultrasonicdistancemeasurementsystembasedonsinglechipeasytoimplement,lowcost,highaccuracyandeasyreal-timecontrol,withastrongpractical.
【KEYWORD】:
microcontroller,ultrasound,ranging
引言
由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。
利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求。
超声波测距主要应用于倒车提醒、建筑工地、工业现场等的距离测量,虽然目前的测距量程上能达到百米,但测量的精度往往只能达到厘米数量级。
由于超声波易于定向发射、方向性好、强度易控制、与被测量物体不需要直接接触的优点,是作为距离测量的理想手段。
一、超声波测距原理
(一)超声波发生器
为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。
总体上讲,超声波发生器可以分为两大类:
一类是用电气方式产生超声波,一类是用机械方式产生超声波。
电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。
它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。
目前较为常用的是压电式超声波发生器。
(二)压电式超声波发生器原理
压电式超声波发生器实际上是利用压电晶体的谐振来工作的。
超声波发生器内部结构如图1所示,它有两个压电晶片和一个共振板。
图1超声波发生器内部结构
当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。
反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。
(三)超声波测距原理
在超声探测电路中,发射端得到输出脉冲为一系列方波,其宽度为发射超声的时间间隔,被测物距离越大,脉冲宽度越大,输出脉冲个数与被测距离成正比。
超声测距大致有以下方法:
一种是取输出脉冲的平均值电压,该电压(其幅值基本固定)与距离成正比,测量电压即可测得距离;另一种是测量输出脉冲的宽度,即发射超声波与接收超声波的时间间隔t,如图2所示,故被测距离为S=v·t/2。
本系统测量采用第二种方案。
由于超声波的声速与温度有关,如果温度变化不大,则可认为声速基本不变。
如果测距精度要求很高,则应通过温度补偿的方法加以校正。
超声波测距适用于高精度的中长距离测量。
因为超声波在标准空气中的传播速度为331.45米/秒,由单片机负责计时,单片机使用12.0MHz晶振,所以此系统的测量精度理论上可以达到毫米级。
图2超声波测距原理
假定S为被测物体到测距仪之间的距离,测得的时间为t(s),超声波传播速度为v(m/s)表示,则有关系式
(1)
S=v·t/2
(1)
在精度要求较高的情况下,需要考虑温度对超声波传播速度的影响,按式
(2)对超声波传播速度加以修正,以减小误差。
温度与声速的关系参照表1。
v=331.4+0.607T
(2)
式中:
T为实际温度单位为℃;
v为超声波在介质中的传播速度单位为m/s。
考虑到实际环境的温度变化不是很大,以及技术有限,所以本设计使用关系式
(1)作为参考公式。
表1一些温度下的声速
温度与声速参照表
温度T(℃)
-30
-20
-10
0
10
20
30
声速v(m/s)
313
319
322
331
337
344
350
二、单片机STC89C52RC
(一)单片机简介
本设计中选用的宏晶科技的STC89C52RC型单片机是一种低功耗、高性能、采用CMOS工艺的8位微处理器,与工业标准型80C51单片机的指令系统和引脚完全兼容。
片内8KFlash存储器可在线重新编程,或使用通用的非易失性存储器编程器。
由于一般的距离测量中,距离的变化速度并不太快,而且单片机的机器周期可达μs级,则其计时精度为μs级,完全可以满足系统测量的要求,并且成本较低,所以本设计中选用STC89C52RC型号的单片机。
STC89C52RC单片机,基于STC89C51内核,是新一代增强型单片机,指令代码完全兼容传统STC89C51,速度快8~12倍,带ADC,4路PWM,双串口,有全球唯一ID号,加密性好,抗干扰强。
(二)单片机引脚功能
STC89C52RC采用40Pin封装的双列直插DIP结构。
40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
STC89C52RC的引脚图如图3所示,其引脚功能如下:
1.Pin20:
接地脚。
2.Pin40:
正电源脚,工作时,接+5V电源。
3.Pin19:
时钟XTAL1脚,片内振荡电路的输入端。
4.Pin18:
时钟XTAL2脚,片内振荡电路的输出端。
5.STC89C52RC的时钟有两种方式,一种是片内时钟振荡方式,但需在18和19脚外接石英晶体(2-12MHz)和振荡电容,振荡电容的值一般取10p-30p。
另外一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2脚输入。
6.输入输出(I/O)引脚:
Pin39-Pin32为P0.0-P0.7输入输出脚。
Pin1-Pin8为P1.0-P1.7输入输出脚。
Pin21-Pin28为P2.0-P2.7输入输出脚。
图3STC89C52RC引脚图
7.Pin9:
RESET/Vpd复位信号复用脚,当STC89C52RC通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。
STC89C52RC的复位方式可以是自动复位,也可以是手动复位。
此外,RESET/Vpd还是一复用脚,Vcc掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。
8.Pin30:
ALE当访问外部程序存储器时,ALE(地址锁存)的输出用于锁存地址的低位字节。
而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。
如果单片机是EPROM,在编程其间,将用于输入编程脉冲。
9.Pin29:
当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。
10.Pin31:
EA/Vpp程序存储器的内外部选通线,STC89C52RC和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。
如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。
三、系统的组成
本系统设计主要利用STC89C52RC为主控芯片,通过其配合发射电路,接收电路以及显示电路的协调工作,最终实现超声波测距的目的,系统的组成框图如图4所示。
图4系统组成框图
四、系统的硬件设计
(一)超声波发射电路
超声波发射部分是为了让超声波发射换能器能向外界发出40kHz左右的方波脉冲信号。
40kHz左右的方波脉冲信号的产生通常有两种方法:
采用硬件如由555振荡产生或软件如单片机软件编程输出,本系统采用后者。
编程由单片机P1.0端口输出40kHz左右的方波脉冲信号,由于单片机端口输出功率不够,40kHz方波脉冲信号分成两路,送给一个由74AS04组成的推挽式电路进行功率放大以便使发射距离足够远,满足测量距离要求,最后送给超声波发射换能器以声波形式发射到空气中。
发射部分的电路,如图5所示。
图中输出端上拉电阻R5,R6,一方面可以提高反向器74AS04输出高电平的驱动能力,另一方面可以增加超声换能器的阻尼效果,缩短其自由振荡的时间。
图5超声波发射电路
(二)超声波接收电路
图6超声波接收电路
上述超声波发射换能器发射的超声波在空气中传播,遇到障碍物就会返回,超声波接收部分是为了将反射波(回波)顺利接收到超声波接收换能器进行转换变成电信号,并对此电信号进行放大、滤波、整形等处理后,本设计采用索尼公司生产的集成芯片CX20106,得到一个负脉冲送给单片机的P3.2(INT0)引脚,以产生一个中断。
接收部分的电路如图6所示。
可以看到,集成芯片CX20106在接收部分电路中起了很大的作用。
CX20106是一款应用广泛的红外线检波接收的专用芯片,其具有功能强、性能优越、外围接口简单、成本低等优点,由于红外遥控常用的载波频率38kHz与测距的超声波频率40kHz比较接近,而且CX20106内部设置的滤波器中心频率f0可由其5脚外接电阻调节,阻值越大中心频率越低,范围为30~60kHz。
本次设计用它来做接收电路。
CX20106内部由前置放大器、限幅放大器、带通滤波器、检波器、积分器及整形电路构成。
工作过程如下:
接收的回波信号先经过前置放大器和限幅放大器,将信号调整到合适幅值的矩形脉冲,由滤波器进行频率选择,滤除干扰信号,再经整形,送给输出端7脚。
当接收到与CX20106滤波器中心频率相符的回波信号时,其输出端7脚就输出低电平,而输出端7脚直接接到STC89C52RC的INT0引脚上,以触发中断。
本设计使用的CX20106A集成电路对接收探头受到的信号进行放大、滤波,其总放大增益80db。
(三)超声波传感器
图7超声波传感器
超声波发射接收头为本设计中的主要元件,如图7所示,其中标有T字样的是发射头,标有R字样的是接收头。
图7中左侧上面两个为发射头与接收头的背面引脚。
左侧下面两个为超声波传感器的正面视图,右边为超声波传感器的侧面视图。
安装时应保持超声波发射头与接收头的中心轴线平行并相距4~8cm,其余元件无特殊要求。
若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力。
发射接收头的主要参数如下:
1.型号:
TCT40-12R/T(直径12mm)
2.标称频率(KHz):
40KHz
3.发射声压at10V(0dB=0.02mPa):
≥117dB
4.接收灵敏度at40KHz(0dB=V/ubar):
≥-65dB
5.静电容量at1KHz,<1V(PF):
2000±30%
(四)显示电路
超声波测距系统的显示要求比较简单,测量结果采用十进制数字显示。
只需能显示0-9的数字,且显示稳定无闪烁即可。
因此显示部分采用七段半导体数码管即LED。
根据各管的极管接线形式,可分为共阴极型和共阳极型。
在共阴极接法中,LED数码管的a-g七个发光二极管因加正电压而发亮,因加零电压而不发亮。
而在共阳极接法中,刚好与共阴极接法相反。
LED数码管具有亮度大,响应速度快等优点。
LED显示有静态显示和动态显示两种方式,本设计中采用动态显示方式,电路结构图如图8所示。
本设计通过软件的编译来实现由二进制到BCD码的转化,从而简化了显示电路。
但是,在制作超声波测距系统的过程中,我发现由单片机直接驱动LED显示,电流较小,LED虽然有显示但是比较暗,因此显示电路采用简单的4位共阳LED数码管,位码用9012驱动。
图8显示电路
本设计的显示电路采用四位一体共阳数码管利用单片机进行动态显示,动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
所谓动态扫描显示即轮流向各位数码管送出字型码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
本电路中单片机的P0.0至P0.7依次控制段码a、b、c、d、e、f、g、h。
利用P2.4、P2.5、P2.6、P2.7口控制位选,从而达到动态显示的目的。
显示电路采用简单的4位共阳LED数码管,位码用9012驱动。
(五)复位电路
图9单片机复位电路
本设计的复位电路如图9所示,具有上电复位和按键复位两种功能,上电复位电路是由电容C9与电阻R19串联组成,电容接VCC,电阻接地,RESET脚接在它们中间,当上电时,电容相当于短路,此时电阻上的电压等于VCC,经过一段时间后电阻电压逐渐变小直至为0,以达到上电复位的目的。
同时只要按下S1按键,同样可以达到复位的目的。
当VCC上电时,C9充电,在10K电阻R19上出现电压,使得单片机复位;几个毫秒后,C9充满,10K电阻R19上电流降为0,电压也为0,使得单片机进入工作状态。
工作期间,按下S1,C9放电。
S松开,C9又充电,在10K电阻R19上出现电压,使得单片机复位。
几个毫秒后,单片机进入工作状态。
单片机最小系统复位电路的极性电容C9的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统电容值越大需要的复位时间越短。
(六)时钟电路
图10单片机时钟电路
本设计的时钟电路如图10所示,时钟电路主要结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片机的一切指令的执行都是建立在单片机晶振提供的时钟频率。
Y1为12MHZ晶体振荡器,单片机晶振的作用是为系统提供基本的时钟信号,C10与C11为负载电容。
晶振与单片机的脚XTAL0和脚XTAL1构成的振荡电路中会产生谐波,这个谐波对电路的影响不大,但会降低电路的时钟振荡器的稳定性。
为了电路的稳定性起见,ATMEL公司建议在晶振的两引脚处接入两个10pf-50pf的瓷片电容接地来削减谐波对电路的稳定性的影响,所以晶振所配的电容在10pf-50pf之间都可以,本设计C1O、C11采用22Pf。
单片机最小系统晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。
单片机最小系统起振电容C10、C11一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好。
(七)电源电路
图11稳压电源电路
为确保单片机的工作电压为稳定的5V,本设计使用5V稳压电路,电源电路如图4-7所示,本设计采用三端稳压集成电路LM7805作为稳压芯片,三端稳压芯片LM7805组成的稳压电路所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便。
二极管D1起到保护作用,C1与C3为输入滤波电容,C2与C4为输出滤波电容,由于本设计的功率很小,在电路实际测量中,LM7805的输出电流为0.4A,远没有达到额定的最大输出电流1.5A。
所以,不需要为LM7805加散热器,
(八)单片机程序ISP下载接口
图12单片机ISP下载接口电路
为方便单片机的程序下载以及调试,不需每次烧写程序时将单片机从电路板上取下来,本设计为单片机提供了ISP程序下载接口,如图12所示。
通过ISP下载线将电脑和电路板连接,打开ISP下载软件,软件会自动搜索到硬件设备,搜索完成后,可对单片机进行配置和下载程序。
五、系统的软件设计
超声波测距系统的控制核心是单片机,软件主要完成测量过程控制、精确计时、数据计算及结果处理等功能。
系统采用单片机内部自带的定时器/计数器T0中断功能,对发射到接收的时间进行精确计时。
而且为了节约硬件成本,系统采用单片机发出40kHz方波信号,由方波输出程序控制单片机管脚P1.0输出方波信号。
利用外中断0口监测超声波接收电路输出的返回信号,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。
计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。
(一)主程序
超声波是通过P1.0端口发出超声波脉冲信号(频率约40kHz的方波),脉冲宽度为12μs左右,同时把计数器T0打开进行计时。
超声波测距仪主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(即INT0引脚出现低电平),立即进入中断程序。
进入中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。
并且同时读取计数值,对测量结果进行计算,然后显示测量结果。
由于采用12MHz的晶振,机器周期为1us,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按下式计算即可测得被测物体与测距仪之间的距离,设计时取声速为340 m/s则有:
S=(V*T0)/2 =17T0/1000cm(其中T0为计数器T0的计数值),测出距离后结果将以十进制BCD码方式让四位LED显示,然后再发超声波脉冲重复测量过程。
主程序流程图如图13所示。
图13主程序流程图
(二)中断服务程序
超声波发生子程序的作用是通过P1.0端口发送超声波信号频率约40KHz的方波,脉冲宽度为12us左右,同时把计数器T0打开进行计时。
超声波测距器主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(INT0引脚出现低电平),立即进入中断程序。
进入该中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。
如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2以表示此次测距不成功。
然后重新发射超声波,等待回波信号,中断服务程序的流程图如图14所示。
图14中断服务程序流程图
(三)距离计算子程序
在主程序中已经介绍了障碍物距离的计算公式为:
S=(V*T0)/2 =17T0/1000cm(其中T0为计数器T0的计数值),由于本次设计使用的是汇编语言,所以需要调用乘法与除法子程序。
距离计算程序的流程图如图15所示。
超声波距离计算方法设计原理为超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体(障碍物)后反射回来,回波被超声波接收器R所接收到。
这样只要计算出从发射超声波到接收到超声波信号所用的时间,就可以利用上述公式计算出超声波发生器与被测物体之间的距离。
在启动发射超声波脉冲信号的同时启动内部定时器T0,利用定时器的计数功能记录超声波发射与接收到回波之间的时间。
当收到超声波反射波(回波)时,接收芯片CX20106的输出端会产生一个负跳变,在INT0端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差T0。
图15距离计算子程序流程图
所以在距离计算的过程中,首先要读取计数器T0的计数值,即可得到从发射超声波脉冲到接收到回波信号之间的时间差。
利用这个时间差和超声波的传播速度还有公式:
S=(V*T0)/2 =17T0/1000cm就可以调用乘法子程序与除法子程序,从而计算与障碍物之间的距离。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 超声波 测距 系统 设计 本科 毕业设计