欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于AT89S52单片机的超声波测距设计.docx

    • 资源ID:15284962       资源大小:212.54KB        全文页数:17页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于AT89S52单片机的超声波测距设计.docx

    1、基于AT89S52单片机的超声波测距设计基于AT89S52单片机的超声波测距设计 摘要:超声波具有指向性强,能量消耗缓慢,传播距离较远等优点,所以,在利用传感器技术和自动控制技术相结合的测距方案中,超声波测距是目前应用最普遍的一种,它广泛应用于防盗、倒车雷达、水位测量、建筑施工工地以及一些工业现场。本文介绍了一种基于DSI8B20的AT89S52单片机超声波测距系统,阐述了DS18B20测温原理由温度可算出实际环境下的超声波速度,利用AT98S52的计数器可以获得超声波在两探头之间的飞行时间,已知超声波的传播速度和飞行时间可以获得两探头之间的距离。整个系统结构简单、工作可靠,有良好的测量精度。

    2、 关键词:AT89S52;DS18B20;控制;超声波速度;飞行时间;距离。一、超声波测距原理: 在测距方面,按测量范围或测量精度可分很多种类。但根据测量须传感器主要分为电测和光测,电测精度相对较低,对环境要求不是特别高;光测精度在一定范围内可达纳米级,但对环境要求很高;而超声波测距主要足因为其结构简单容易集成且体积小,且能满足一定的精度而被广泛应用于工业中。目前测量距离一般都采用波在介质中的传播速度和时间关系进行测量。常用的技术主要有激光测距、微波雷达测距和超声波测距三种。超声波具有指向性强、能量消耗缓慢且在介质中传播的距离较远的优点,因而经常用于距离的测量。超声波测距主要应用于建筑施工工地

    3、以及一些工业现场和移动机器人的研制上,可在潮湿高温,多尘等恶劣环境下工作。例如:液位、厚度、管道长度等场合。相比于其它定位技术而言,超声波定位技术成本低、精度高、操作简单、工作稳定可靠,非常适合于短距离测量定位。AT89S52单片机为许多控制提供了高度灵活和低成本的解决办法。充分利用它的片内资源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。本文介绍一种以AT89S52单片机为核心的低成本、高精度、LED数字显示超声波测距仪的硬件电路和软件设计方法。实际使用证明该仪器工作稳定,性能良好。超声波测距器系统设计框图如图所示: 由单片机AT89S51编程产生40kHz的方波,由P1.0口输

    4、出,再经过放大电路,驱动超声波发射探头发射超声波。发射出去的超声波经障碍物反射回来后,由超声波接收头接收到信号,通过接收电路的检波放大、积分整形及一系列处理,送至单片机。单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由单片机控制显示出来。该测距装置是由超声波传感器、单片机、发射/接收电路和LED显示器组成。传感器输入端与发射接收电路相连,接收电路输出端与单片机相连接,单片机的输出端与显示电路输入端相连接。其时序图如图:单片机在T0时刻发射方波,同时启动定时器开始计时,当收到回波后,产生一负跳变到单片机中断口,单片机响应中断程序,定时器停止计数。计算时间差,即可

    5、得到超声波在媒介中传播的时间t,由此便可计算出距离。二、系统各部分电路设计: 2.1 发射模块设计:超声波发射电路原理图,单片机P1.0端口输出的40KHz方波信号一路经一级反相器后送到超声波换能器的一个电极,另一路经两级反相器后送到超声波换能器的另一个电极,用这种推挽形式将方波信号加到超声波换能器两端可以提高超声波发射强度。输出端采用两个反向器并联,可以提高驱动能力。上拉电阻R1、R2一方面可以提高反相器74LS04输出高电平的驱动能力;另一方面可以增加超声波换能器的阻尼效果,以缩短其自由振荡的时间。压电式超声波换能器是利用压电晶体的谐振来工作的。超声波换能器内部结构如图5所示,它有两个压电

    6、晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率,压电晶片将会发生共振,并带动共振板振动产生超声波,这是它就是一个超声波发生器;反之,如果两电极未加外电压,当共振板接收到超声波时,将压迫压电晶片振动,将机械能转换为电信号,这时它就成为超声波接收换能器了。超声波发生换能器与接收换能器在结构上稍有不同,使用时应分清器件上的标志。图图2.2 接受模块设计:集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,可以利用它制作超声波检测接收电路,如图,用CX20106A接收

    7、超声波(无信号时输出高电平)具有很高的灵敏度和抗干扰能力。适当的更改电容C4的大小,可以改变接收电路的灵敏度和抗干扰能力。图2.3 测温及报警模块:测温及报警电路如图3所示,采用MAXIM 公司的DS18B20作为温度传感和测量装置,测量范围在之间,测量分辨率可选9位或12位,在范围内保证精度因此完全可以满足普通条件下的测温要求。DS18B20采TO一92型封装只有3个引脚,一根电源线,一根地线,一根数据线,每片DS18B20有一个64位串行代码存储器。这里用P3.7口作为与DS18B20的数据输入输出口。报警电路在所测温度高于所设温度范围时发出报警声。2.4 显示模块的设计:LED(Ligh

    8、t-Emitting Diode,发光二极管)有七段和八段之分,也有共阴和共阳两种。LED数码管结构简单,价格便宜。图,图1-7(b)是它的原理图,图1-7(c)为八段共阳LED显示管原理图。八段LED显示管由八只发光二极管组成,编号是a、b、c、d、e、f、g和SP,分别与同名管脚相连。七段LED显示管比八段LED少一只发光二极管SP,其他与八段相同。图2.4.1 八段LED数码显示管原理和结构单片机对LED管的显示可以分为静态和动态两种。静态显示的特点是各LED管能稳定地同时显示各自字形;动态显示是指各LED轮流地一遍一遍显示各自字符,人们由于视觉器官惰性,从而看到的是各LED似乎在同时显

    9、示不同字形。 为了减少硬件开销,提高系统可靠性并降低成本,单片机控制系统通常采用动态扫描显示。但是由于本系统所用的单片机引脚少,剩余引脚很多,而且也只需显示三位字符,所以,采用了静态的显示方式,且采用了软件译码,这样单片机引脚输出可直接接到LED显示管上。这样省去了外部复杂的译码电路。3、系统程序设计:超声波测距器的软件设计主要有主程序、超声波发生子程序、超声波接收中断程序即显示子程序组成。由于C程序有利于实现较复杂的算法,汇编语言程序则具有较高的效率并且容易精确计算程序运行的时间,而超声波测距器的程序既有较复杂的计算,又要求精确计算程序运行时间,所以控制程序可采用C语言和汇编语言混合编程。3

    10、.1 超声波测距器的算法设计:图,即超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就会被超声波接收器R接收到。这样,只要计算出从发出超声波信号到接收到返回信号所用时间,就可算出超声波发生器与反射物体的距离。该距离的计算公式如下: d=s/2=(vt)/2其中:d为被测物体与测距器的距离;s为声波的来回路程;v为声速;t为声波来回所用的时间。超声波的速度v与温度有关。表1列出了几种不同温度下的超声波声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。声速确定后,只要测得超声波往返的时间,即可求得距离。

    11、 表1 不同温度下超声波声速表温度/C-30-20-100102030100声速/(m/s)313319325323338344349386图3.1.1 超声波测距原理图 3.2 主程序:主程序首先要对系统环境初始化,设置定时器T0工作模式为16位定时/计数器模式,置位总中断允许位EA并对显示端口P0和P2清0;然后调用超声波发生子程序送出一个超声波脉冲。为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1ms(这也就是超声波测距器会有一个最小可测距离的原因)后才打开外中断0接收返回的超声波信号。由于采用的是12MHz的晶振,计数器每计一个数就是1s,所以当主程序检测到接收

    12、成功的标志后,将计数器T0中的数(即超声波来回所用的时间)按式d=(vt)/2=(172T0/10000)cm计算,即可得被测物体与测距器之间的距离。设计时取20C时的声速为344m/s。测出距离后,结果将以十进制BCD码方式送往LED显示约0.5s,然后再发送超声波重复测量过程。图7所示为主程序流程图。3.3 超声波发生子程序和超声波接收中断程序: 主程序流程图超声波发生子程序的作用是通过P1.0端口发送两个左右的超 声波脉冲信号(频率约40kHz的方波),脉冲宽度为12s左右,同时把计数器T0打开进行计时。超声波发生子程序较简单,但要求程序运行时间准确,所以采用汇编语言程序。超声波测距器主

    13、程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(即INT0引脚出现低电平),立即进入超声波接收中断程序。就立即关闭计时器T0,停止计时,并将测距成功标志字赋值1。如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2,以表示本次测距不成功。四、调试及性能分析:超声波测距器的制作和调试都较为简单,其中超声波发射和接收采用15的超声波换能器TCT40-10F1(T发射)和TCT40-10S1(R接收),中心频率为40kHz,安装时应保持两换能器中心轴线平行并相距4-8cm,其余原件无特殊要求。若能将超声波接收电路用金属壳屏蔽起来,则可

    14、提高抗干扰性能。根据测量范围要求不同,可适当的调整与接收换能器并接的滤波电容C4的大小,以获得合适的接收灵敏度和抗干扰能力。硬件电路制作完成并调整好后,便可将程序编译好下载到单片机运行。根据实际情况,可以修改超声波发生子程序每次发送的脉冲个数和两次测量的间隔时间,以适应不同距离的测量需要。五、电路图:单片机及显示系统电路图超声波发射电路原理图超声波检测接收电路图温度控制报警电路图参考文献:51系列单片机原理与实践教程 西安电子科技大学出版社 邹应全编;传感器及其应用实例 机械工业出版社 何希才 薛永毅编;传感器与检测技术 电子工艺出版社 徐科军编;超声波测距误差分析 苏炜 龚壁建 潘笑.附录:

    15、程序:/*超声波测距器单片机程序*/#include#define uchar unsigned char#define uint unsigned int#define ulong unsigned long extern void cs_t(void);extern void delay(uint);extern void display(uchar *);data uchar testok;/*主程序*/void main(void) data uchar dispram5; data uint i; data ulong time; P0=0xff; P2=0xff; TMOD=0x1

    16、1; IE=0x80; while(1) cs_t(); delay(1); testok=0; EX0=1; ET0=1; while(! testok) display(dispram); if(1=testok) time=TH0; time=(time8) | TL0; time*=172; time/=10000; dispram0=(uchar)(time%10); time/=10; dispram1=(uchar)(time%10); time/=10; dispram2=(uchar)(time%10); dispram3=(uchar)(time/10); if(0=dis

    17、pram3)dispram3=17; else dispram0=16; dispram1=16; dispram2=16; dispram3=16; for(i=0;i300;i+)display(dispram); /*超声波接收程序(外中断0)*/void cs_r(void) interrupt 0 TR0=0; ET0=0; EX0=0; testok=1; /*超时清除程序(内中断0)*/void overtime(void) interrupt 1 EX0=0; TR0=0; ET0=0; testok=2; /*文件2:cs_t.asm*/*超声波发生子程序*/ NAME CS

    18、_T?PR?CS_T?CS_T SEGMENT CODE PUBLIC CS_T RSEG ?PR?CS_T?CS_TCS_T: PUSH ACC MOV TH0,#00H MOV TL0,#00H MOV A,#4D SETB TR0CS_T1: CPL P1.0 NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP DJNZ ACC,CS_T1 POP ACC RET END/*文件3:display.asm*/*4位共阳LED动态扫描显示程序*/ NAME DISPLAY?PR?_DISPLAY?DISPLAY SEGMENT CODE?CO?_DISPLAY?

    19、DISPLAY SEGMENT DATA EXTRN CODE(_DELAY) PUBLIC _DISPLAY RSEG ?CO?_DISPLAY?DISPLAY?_DISPLAY?BYTE:DISPBIT: DS 1DISPNUM: DS 1 RSEG ?PR?_DISPLAY?DISPLAY_DISPLAY: PUSH ACC PUSH DPH PUSH DPL PUSH PSW INC DISPNUM MOV A,DISPNUM CJNE A,#4D,DISP1DISP1: JC DISP2 MOV DISPNUM,#00H MOV DISPBIT,#0FEHDISP2: MOV A,R

    20、1 ADD A,DISPNUM MOV R0,A MOV A,R0 MOV DPTR,#DISPTABLE MOVC A,A+DPTR MOV P0,A MOV A,DISPNUM CJNE A,#2D,DISP3 CLR P0.7DISP3: MOV P2,DISPBIT MOV R6,#00H MOV R7,#0AH LCALL _DELAY MOV P0,#0FFH MOV P2,#0FFH MOV A,DISPBIT RL A MOV DISPBIT,A POP PSW POP DPL POP DPH POP ACC RETDISPTABLE: DB 0C0H,0F9H,0A4H,0B

    21、0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0BFH,0FFH END/*文件4:delay.asm*/*延时100个机器周期*/ NAME DELAY?PR?_DELAY?DELAY SEGMENT CODE PUBLIC _DELAY RSEG ?PR?_DELAY?DELAY_DELAY: PUSH ACC ;2 MOV A,R7 ;1 JZ DELA1 ;2 INC R6 ;1DELA1: MOV R5,#50D ;2 DJNZ R5,$ ;2 DJNZ R7,DELA1 ;2 DJNZ R6,DELA1 ;2 POP A

    22、CC ;2 RET ;2 END 附录2:实物图仅供个人用于学习、研究;不得用于商业用途。For personal use only in study and research; not for commercial use.Nur fr den persnlichen fr Studien, Forschung, zu kommerziellen Zwecken verwendet werden.Pour l tude et la recherche uniquement des fins personnelles; pas des fins commerciales. , , . 以下无正文


    注意事项

    本文(基于AT89S52单片机的超声波测距设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开