基于AT89S51单片机的超声波测距系统毕业论文.doc

上传人:知****量 文档编号:43224902 上传时间:2022-09-17 格式:DOC 页数:31 大小:2.12MB
返回 下载 相关 举报
基于AT89S51单片机的超声波测距系统毕业论文.doc_第1页
第1页 / 共31页
基于AT89S51单片机的超声波测距系统毕业论文.doc_第2页
第2页 / 共31页
点击查看更多>>
资源描述

《基于AT89S51单片机的超声波测距系统毕业论文.doc》由会员分享,可在线阅读,更多相关《基于AT89S51单片机的超声波测距系统毕业论文.doc(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 基于AT89S51单片机的超声波测距系统毕业论文目录1.前言11.1 课题背景与研究的目的和意义11.2基于单片机的超声波测距系统11.3课题主要容12.系统设计技术参数要求32.1系统任务要求:32.2系统设计的主要技术参数:33.系统设计43.1系统设计总体框图43.2系统模块设计43.2.1 单片机系统与按键设计53.2.2 超声波发射和接收电路53.2.3显示电路63.2.4 供电电路73.2.5报警输出电路74.系统软件设计94.1 主程序设计94.2 超声波测距子程序94.3产生超声波的子程序104.4 超声波测距程序流程图124.5 超声波测距程子序流程图135.系统操作说明1

2、4参考文献15致谢语16附录1729 / 31 1.前言1.1 课题背景与研究的目的和意义 传感器技术是现代信息技术的主要容之一。信息技术包括计算机技术、通信技术和传感器技术,计算机技术相当于人的大脑,通信相当于人的神经,而传感器就相当于人的感官。比如温度传感器、光电传感器、湿度传感器、超声波传感器、红外传感器、压力传感器等等,其中,超声波传感器在测量方面有着广泛、普遍的应用。利用单片机控制超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且测量精度较高。 超声波测距系统主要应用于汽车的倒车雷达、机器人自动避障行走、建筑施工工地以与一些工业现场例如:液位、井深、管道长度等场合。因此研

3、究超声波测距系统的原理有着很大的现实意义。对本课题的研究与设计,还能进一步提高自己的电路设计水平,深入对单片机的理解和应用。1.2基于单片机的超声波测距系统 基于单片机的超声波测距系统,是利用单片机编程产生频率为40kHz的方波,经过发射驱动电路放大,使超声波传感器发射端震荡,发射超声波。超声波波经反射物反射回来后,由传感器接收端接收,再经接收电路放大、整形,控制单片机中断口。其系统框图如图1-1所示。图1-1 基于单片机的超声波测距系统框图 这种以单片机为核心的超声波测距系统通过单片机记录超声波发射的时间和收到反射波的时间。当收到超声波的反射波时,接收电路输出端产生一个负跳变,在单片机的外部

4、中断源输入口产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离,结果输出给LED显示。 利用单片机准确计时,测距精度高,而且单片机控制方便,计算简单。许多超声波测距系统都采用这种设计方法。1.3课题主要容 通过上节介绍我们知道,以单片机为核心的超声波测距系统设计简单、方便,而且测精度能达到工业要求。本课题研究的测距系统就是用单片机控制的。 通过超声波发射器向某一方向发射超声波,单片机在发射时刻同时开始计时,超声波在空气中传播,途中碰到障碍物就立即反射回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为V,根据计时器记录的时间t,就可以计

5、算出发射点距障碍物的距离。 本系统利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时。系统定时发射超声波,在启动发射电路的同时启动单片机部的定时器,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波的反射波时,接收电路输出端产生一个负跳变,单片机检测到这个负跳变信号后,停止部计时器记时,读取时间,计算距离,测量结果输出给LED显示。利用本测距系统测量围应在40cm699cm,其误差1cm。2.系统设计技术参数要求2.1系统任务要求: 1.开机时数码管显示-; 2.无承受信号数码管显示CCC; 3.若环境温度变化15,测距精度变化1%。2.2系统设计的主要技术参

6、数: 1.稳压直流电源4.55.5V,交流电源6V; 2.驱动电流:30-50mA; 3.盲区值为40厘米,最远可测699厘米。3.系统设计3.1系统设计总体框图 按照系统设计的功能的要求,初步确定设计系统由单片机主控模块、显示模块、超声波发射模块、接收模块共四个模块组成。 单片机主控芯片使用51系列AT89S51单片机,该单片机工作性能稳定,同时也是在单片机课程设计中经常使用到的控制芯片。 发射电路由单片机输出端直接驱动超声波发送。接收电路使用三极管组成的放大电路,该电路简单,调试工作小较小。超声波接收模块超声波发射模块单片机控制系统(AT89S51)显示模块键盘模块供电单元图3-1 系统设

7、计框图 硬件电路的设计主要包括单片机系统与显示电路、超声波发射电路和超声波接收电路、报警输出电路、供电电路等几部分。单片机采用AT89S51,系统晶振采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用P2.7端口输出超声波换能器所需的40kHz的方波信号,P3.5端口监测超声波接收电路输出的返回信号。显示电路采用简单实用的3位共阳LED数码管,段码输出端口为单片机的P2口,位码输出端口分别为单片机的P3.4、P3.2、P3.3口,数码管位驱运用PNP三极管S9012三极管驱动。3.2系统模块设计 本系统由单片机AT89S51控制,包括单片机系统、发射电路与接收放大电路和显

8、示电路几部分组成,如图3-1 所示。硬件电路的设计主要包括单片机系统与显示电路、超声波发射电路和超声波接收电路三部分。单片机采用AT89S51。采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用P2.7端口输出超声波换能器所需的40kHz的方波信号,P3.5端口监测超声波接收电路输出的返回信号。显示电路采用简单实用的3位共阳LED数码管,段码输出端口为单片机的P2口,位码输出端口分别为单片机的P3.4、P3.2、P3.3口,数码管位驱运用PNP三极管S9012三极管驱动。 超声波接收头接收到反射的回波后,经过接收电路处理后,向单片机P3.5输入一个低电平脉冲。单片机控制着

9、超声波的发送,超声波发送完毕后,立即启动部计时器T0计时,当检测到P3.5由高电平变为低电平后,立即停止部计时器计时。单片机将测得的时间与声速相乘再除以2即可得到测量值,最后经3位数码管将测得的结果显示出来。3.2.1 单片机系统与按键设计 超声波测距单片机系统主要由:AT89S51单片机、晶振、复位电路、电源滤波部份构成。由K1,K2组成测距系统的按键电路。用于设定超声波测距报警值。如图3-2。图3-2 超声波测距单片机系统3.2.2 超声波发射和接收电路 超声波发射如图3-3,接收电路如图3-4。超声波发射电路由电阻R1、三极管BG1、超声波脉冲变压器B与超声波发送头T40构成,超声波脉冲

10、变压器,在这里的作用是提高加载到超声波发送头两产端的电压,以提高超声波的发射功率,从而提高测量距离。接收电路由BG1、BG2组成的两组三级管放大电路构成;超声波的检波电路、比较整形电路由C7、D1、D2与BG3组成。 40kHz的方波由AT89S51单片机的P2.7输出,经BG1推动超声波脉冲变压器,在脉冲变压器次级形成60VPP的电压,加载到超声波发送头上,驱动超声波发射头发射超声波。发送出的超声波,遇到障碍物后,产生回波,反射回来的回波由超声波接收头接收到。由于声波在空气中传播时衰减,所以接收到的波形幅值较低,经接收电路放大,整形,最后输出一负跳变,输入单片机的P3脚。图3-3 超声波测距

11、发送单元 该测距电路的40kHz方波信号由单片机AT89S51的P2.7发出。方波的周期为1/40ms,即25s,半周期为12.5s。每隔半周期时间,让方波输出脚的电平取反,便可产生40kHz方波。由于单片机系统的晶振为12M晶振,因而单片机的时间分辨率是1s,所以只能产生半周期为12s或13s的方波信号,频率分别为41.67kHz和38.46kHz。本系统在编程时选用了后者,让单片机产生约38.46kHz的方波。图3-4 超声波测距接收单元 由于反射回来的超声波信号非常微弱,所以接收电路需要将其进行放大。接收电路如图3-4所示。接收到的信号加到BG1、BG2组成的两级放大器上进行放大。每级放

12、大器的放大倍数为70倍。放大的信号通过检波电路得到解调后的信号,即把多个脉冲波解调成多个大脉冲波。这里使用的是I N 4148检波二极管,输出的直流信号即两二极管之间电容电压。该接收电路结构简单,性能较好,制作难度小。3.2.3显示电路 本系统采用三位一体L E D 数码管显示所测距离值,如图3-5。数码管采用动态扫描显示,段码输出端口为单片机的P2口,位码输出端口分别为单片机的P3.4、P3.2、P3.3口,数码管位驱运用PNP三极管S9012三极管驱动。图3-5 显示单元图3.2.4 供电电路 本测距系统由于采用的是LED数码管用为显示方式,正常工作时,系统工作电流约为30-45mA,为保

13、证系统统计的可靠正常工作,系统的供电方式主要交流AC6-9伏,同时为调试系统方便,供电方式考虑了第二种方式,即由USB口供电,调试时直接由电脑USB口供电。6伏交流是经过整流二极管D1-D4整流成脉动直流后,经虑波电容C1虑波后形成直流电,为保证单片机系统的可电,供电路中由5伏的三端称压集成电路进行稳压后输出5伏的真流电供整个系统用电,为进一步提高电源质量,5伏的直流电再次经过C3、C4滤波。图3-6 供电单元电路图3.2.5报警输出电路为了提高测测距系统的实用性,本测距系统的报警输出提供开关量信号与声响信号两种方式。方式一:报警信号由单片机P3.1端口输出,继电器输出,可驱动较大的负载,电路

14、由电阻R6、三极管BG9、继电器JDQ组成,当测量值低于事先设定的报警值时,继电器吸合,测量值高于设定的报警值时,继电器断开。方式二:报警信号由单片机P0.2口输出,提供声响报警信号,电路由电阻R7、三极管BG8、蜂鸣器BY组成,当测量值低于事先设定的报警值时,蜂鸣器发出“滴、滴、滴”报警声响信号,测量值高于设定的报警值时,停止发出报警声响。报警输出电路如图3-7。图3-7 报警输出电路4.系统软件设计4.1 主程序设计 超声波测距的软件设计主要由主程序、超声波发生子程序、超声波接收程序与显示子程序组成。超声波测距的程序既有较复杂的计算(计算距离时),又要求精细计算程序运行时间(超声波测距时)

15、,所以控制程序可采用C语言编程。 主程序首先是对系统环境初始化,设定时器0为计数,设定时器1定时。置位总中断允许位EA。进行程序主程序后,进行定时测距判断,当测距标志位ec=1时,测量一次,程序设计中,超声波测距频度是4-5次/秒。测距间隔中,整个程序主要进行循环显示测量结果。当调用超声波测距子程序后,首先由单片机产生4个频率为38.46kHz超声波脉冲,加载的超声波发送头上。超声波头发送完送超声波后,立即启动部计时器T0进行计时,为了避免超声波从发射头直接传送到接收头引起的直射波触发,这时,单片机需要延时约1.5 -2ms时间(这也就是超声波测距仪会有一个最小可测距离的原因,称之为盲区值)后

16、,才启动对单片机P3.5脚的电平判断程序。当检测到P3.5脚的电平由高转为低电平时,立即停止T0计时。由于采用单片机采用的是12 MHz的晶振,计时器每计一个数就是1s,当超声波测距子程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按式(2)计算,即可得被测物体与测距仪之间的距离。 设计时取15时的声速为340 m/s则有:d=(ct)/2=172T0/10000cm其中,T0为计数器T0的计算值。测出距离后结果将以十进制BCD码方式送往LED显示约0.5s,然后再发超声波脉冲重复测量过程。4.2 超声波测距子程序Void wdzh()TR0=0;TH1=0x00;T

17、L1=0x00;csbint=1;sx=0;delay(1700);csbfs();csbout=1;TR1=1;i=yzsj;while(i-) i=0;while(csbint)/判断接收回路是否收到超声波的回波 i+; if(i=3300) csbint=0; TR1=0;s=TH1;s=s*256+TL1;TR0=1;csbint=1;jsz=s*csbc;/计算测量结果jsz=jsz/2; 4.3产生超声波的子程序 为了方便程序移置与准确产生超声波信号,本测距的超声波产生程序是用汇编语言编写的进退声波产生程序。产生的超声波个数为 UCSBFS SEGMENT CODE RSEG UC

18、SBFS PUBLIC CSBFSCSBFS: mov R6,#8h ;超声波发射的完整波形个数:共计四个 here: cpl p2.7 ;输出40kHz方波 nop nop nop nop nop nop nop nop nop djnz R6,here RET END4.4 超声波测距程序流程图 YYN=N0=0=1开始初始化测量标志启动定时器超声波测距距离上限值距离=显示值= C C C显示值= - - -测量段码转换显示设定段码转换距离|=报警输出=N4.5 超声波测距程子序流程图Y标志=1?发送超声波延时避开盲区收到回波否?预设时间?启动计时器T0停止计时计算测量值超声波测距完毕NN

19、YYN5.系统操作说明将写好程序的AT89S51机装到测距板上,通电后将测距板的超声波头对着墙面往复移动,看数码管的显示结果会不会变化,在测量围能否正常显示。如果一直显示“- - -”,则需将下限值增大(调节高频变压器旋钮)。本测距板1s测量4-5次,超声波发送功率较大时,测量距离远,则相应的下限值(盲区为40厘米)应设置为高值,本测距测出距离上限值为699厘米,超出测值或超声波接收头无信号数码管将显示“CCC”。试验板中的声速没有进行温度补偿,声速值为340m/s,该值为15时的超声波值。参考文献1薛园园.51单片机开发与应用技术详解.:电子工业,2009.2 红卫.基于单片机智能系统设计与

20、实现.:电子工业,2005.3 国田.白焰.董玲.51单片机实用C语言程序设计.中国电力,2009.4 群芳,黄建.单片机微型计算机与接口技术.:电子工业,2001.5 楼然苗,光飞.51系列单片机设计实例.:航空航天大学,2003.6 王守中.51单片机开发入门与典型实例.:人民邮电,2009.致谢语离别在即,站在人生的又一个转折点上,心中难免思绪万千,一种感恩之情油然而生。生我者父母。感谢生我养我,含辛茹苦的父母。是你们,为我的学习创造了条件;是你们,一如既往的站在我的身后默默的支持着我。没有你们就不会有我的今天。谢谢你们,我的父亲母亲!在这三年中,老师的谆谆教导、同学的互帮互助使我在专业

21、技术和为人处事方面都得到了很大的提高。感谢湄职院在我三年的大学生活当中对我的教育与培养,感谢湄职院电子系所有专业老师,没有你们的辛勤劳动,就没有我们今日的满载而归,感谢大学三年曾经帮助过我的所有同学。在制作毕业设计过程中老师的耐心指导、帮助下,我才能顺利完成毕业设计,老师指导了我的设计的结构、思路、同时提供了一些专业知识的帮助。老师们的热情解答和同学们的热心帮助才使我的毕业设计能较为顺利的完成。在此我向你们表示最衷心的感谢。 感谢在毕设中帮助过我的所有同学和师兄师姐们。 最后感谢我的家人、朋友对我的支持。附录附录一 系统总原理图附录二 系统印刷电路的制作图附录三 C语言程序/ 晶振:12M /

22、 盲区值(最小可测距离):40厘米 / 测量上限:699厘米 /#include #include #define uchar unsigned char#define uint unsigned int#define k1 P3_7 /k1功能键#define k2 P3_6 /k2数值调整键#define bjh P3_1 /定值输出#define sx P0_2 /报警值输出(声音)#define csbout P2_7 /超声波发送#define csbint P3_5 /超声波接收uchar ec,cls;cs;xl,mq,xm0,xm1,xm2,sec20,sec,sec1,buf

23、fer3,BitCounter,temp,Number8=1,2,3,4,5,6,7,8; uchar temp1,convert10=0x81,0xED,0xA2,0xA8,0xCC,0x98,0x90,0xAD,0x80,0x88;/09段码uint zzz,dz,zzbl,i,jsz,yzsj,kk,s,ss;static uchar bdata ke,kw; /可位寻址的状态寄存器float csbc,wdz;sbit LED1 = P34; /数码管位驱动sbit LED2 = P32; /数码管位驱动sbit LED3 = P33; /数码管位驱动sbit k11=ke0;sbit

24、 k12=ke1;sbit k22=ke2;sbit k21=ke3;sbit b=ke4;sbit c=ke5;sbit d=ke6;sbit e=ke7;sbit w=kw0;sbit zj1=kw1;sbit zj2=kw2;void delay(i); /延时函数void scanLED(); /显示函数void timeToBuffer(); /显示转换函数void time();void jpcl();void jy();void wdzh();void bgcl();void jpzcx();void mqjs();void csbfs();void csbsc();void c

25、lcs();void offmsd();void main() EA=1; /开中断 TMOD=0x11; /设定时器0为计数,设定时器1定时 ET0=1; /定时器0中断允许 TH0=0xD8; TL0=0xF0; /设定时值为20000us(20ms) TR0=1; csbout=1; d=0; TR1=0; temp1=15; zzz=699; mq=40; dz=100; cls=5; xl=temp1; csbsc(); mqjs(); /盲区设定 k12=1; k1=1; k2=1; k22=1; bjh=1; d=1; sx=0; clcs(); /测量次数 while(1) i

26、f (ec=1) ec=0; wdzh(); /调用超声波测量 bgcl(); /调用报警处理程序 timeToBuffer(); /调用转换段码功能模块 offmsd(); /调用显示转换程序 scanLED(); /调用显示函数 if(jszzzz) buffer0=0x93; buffer1=0x93; buffer2=0x93; else if (jsz=cs) / 50 * 10 ms = 0.5 s sec20=0; ec+; e=e; if (ec3) ec=0; sec1+; if (sec1100) sec1=0; sec+; /秒计时 if (sec=3) sec=0; v

27、oid jpcl() /按键处理程序 k11=k1; if (!k12&k11) b=1; k12=k11; k11=k1; k21=k2; if (b=1) sx=0; while(b) buffer0=0x84; buffer1=0x84; buffer2=0x84; sec=0; c=0; while(!c) if (sec=2) c=1; scanLED(); c=0; zzbl=jsz; jsz=dz; timeToBuffer(); jpzcx(); dz=kk; if (dz699) dz=; if (dz6) xm0=0; if (e=1) buffer2=0xFF; else

28、 buffer2=convertxm0; scanLED(); if (!k12&k11) c=1; k22=k21; k12=k11; buffer2=convertxm0; c=0; while(!c) k11=k1; k21=k2; if (!k22&k21) xm1+; if (xm19) xm1=0; if (e=1) buffer1=0xFF; else buffer1=convertxm1; scanLED(); if (!k12&k11) c=1; k22=k21; k12=k11; buffer1=convertxm1; c=0; while(!c) k11=k1; k21=

29、k2; if (!k22&k21) xm2+; if (xm29) xm2=0; if (e=1) buffer0=0xFF; else buffer0=convertxm2; scanLED(); if (!k12&k11) c=1; b=0; kk=xm0*100+xm1*10+xm2; k22=k21; k12=k11; void wdzh() TR0=0; TH1=0x00; TL1=0x00; csbint=1; sx=0; delay(1700); csbfs(); csbout=1; TR1=1; i=yzsj; while(i-) i=0; while(csbint) /判断接

30、收回路是否收到超声波的回波 i+; if(i=3300) csbint=0; TR1=0; s=TH1; s=s*256+TL1; TR0=1; csbint=1; jsz=s*csbc; /计算测量结果 jsz=jsz/2;void bgcl() if (jszdz) bjh=0; else bjh=1; void mqjs() yzsj=260;void csbsc()csbc=0.034;void clcs() cs=100/4; /测量2次/秒void offmsd() /百位为数0判断模块 if (buffer2=0x81) /如果值为零时百位不显示 buffer2=0xff;附录四

31、 元件清单编号型号、规格描述数量编号型号、规格描述数量R14.7k1/4W电阻器1C1220uF电解电容器1R24.7k1/4W电阻器1C2104瓷片电容器1R3150k1/4W电阻器1C3220uF电解电容器1R44.7k1/4W电阻器1C4104瓷片电容器1R5150k1/4W电阻器1C530pF瓷片电容器1R64.7k1/4W电阻器1C630pF瓷片电容器1R74.7k1/4W电阻器1C7104瓷片电容器1R810k1/4W电阻器1C8104瓷片电容器1R94.7k1/4W电阻器1C910uF电解电容器1R104.7k1/4W电阻器1IC1AT89S52单片机1R114.7k1/4W电阻

32、器1IC37805三端稳压器1R124.7k1/4W电阻器1Y112MHz晶振1BYBEEP5V有源蜂鸣器1USBUSBUSB接口1K1SW-0606轻触铵钮1TT40-16T传声波传感器1K2SW-0606轻触铵钮1RT40-16R传声波传感器1BG19012PNP1D11N4007整流二极管1BG29013NPN1D21N4007整流二极管1BG39013NPN1D31N4007整流二极管1BG49013NPN1D41N4007整流二极管1BG59012PNP1D5IN4148开关二极管1BG69012PNP1D6IN4148开关二极管1BG79012PNP1D71N4007整流二极管1BG89013NPN1JP116176-b接插件1BG99012PNP1JP2DG7.62-2P接插件2JDQHRS1H-S5VDC继电器1B7M-7.6

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁