电子信息科学与技术专业毕业设计(论文):基于单片机的超声波测距仪.doc

上传人:文****钱 文档编号:43013 上传时间:2018-05-09 格式:DOC 页数:40 大小:2.64MB
下载 相关 举报
电子信息科学与技术专业毕业设计(论文):基于单片机的超声波测距仪.doc_第1页
第1页 / 共40页
电子信息科学与技术专业毕业设计(论文):基于单片机的超声波测距仪.doc_第2页
第2页 / 共40页
电子信息科学与技术专业毕业设计(论文):基于单片机的超声波测距仪.doc_第3页
第3页 / 共40页
电子信息科学与技术专业毕业设计(论文):基于单片机的超声波测距仪.doc_第4页
第4页 / 共40页
电子信息科学与技术专业毕业设计(论文):基于单片机的超声波测距仪.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、科技学院2012届本科毕业论文基于单片机的超声波测距仪专业电子信息科学与技术指导教师学生姓名学生学号082004110349中国贵州贵阳2012年5月贵州大学科技学院本科毕业论文(设计)第I页目录目录I摘要IIIABSTRACTIV第一章绪论111引言1111设计的应用前景1112课题研究的意义112概述2121单片机应用系统概述2122超声波测距系统概述213本设计主要要求3第二章超声波测距原理421超声波的基本理论422超声波测距系统原理4221超声波传感器4222超声波测距的方案5第三章总体设计方案831超声波测距系统电路总体设计方案832超声波发射和接收电路的设计9321超声波发射电路

2、9322超声波接收电路10323显示电路1133主电路原理图11第四章系统软件设计1341主程序流程1342子程序设计14贵州大学科技学院本科毕业论文(设计)第II页421发送中断子程序14422距离计算子程序16第五章软件调试及系统仿真1751软件编译调试环境1752工程文件的建立、设置与目标文件的获得17521KEIL工程的建立17522工程的详细设置19523编译、连接2053系统仿真21531PROTEUS工作界面21532PROTEUS原理图的绘制22533仿真2254误差及特性分析24第六章后续研究工作25参考文献26附录27附录一系统原理图27附录二系统PCB板图28附录三源程序

3、28附录四元器件清单34致谢35贵州大学科技学院本科毕业论文(设计)第III页基于单片机的超声波测距仪摘要利用超声波测距原理,出于低成本、高精度的目的,提出了一种基于AT89S52的超声波倒车雷达系统的设计方案。硬件部分采用AT89S52单片机作为控制器,主要有超声波发射电路、超声波接收电路、温度检测电路、LED显示电路和报警电路。在分析超声波测距原理的基础上,给出了实现超声波倒车雷达系统的硬件设计电路图和软件设计流程图。该系统测量精度为1CM,测量范围为050400M,完全能够满足各类实验系统的设计要求。整个硬件电路由超声波发射电路、超声波接收电路、电源电路、显示电路等模块组成。各探头的信号

4、经单片机综合分析处理,实现超声波测距仪的各种功能。在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块。相关部分附有硬件电路图、程序流程图,给出了系统构成、电路原理及程序设计。此系统具有易控制、工作可靠、测距准确度高、可读性强和流程清晰等优点。实现后的作品可用于需要测量距离参数的各种应用场合。关键字单片机;超声波;测距贵州大学科技学院本科毕业论文(设计)第IV页ULTRASONICWAVERANGEFINDERBASEDONSCMABSTRACTUSEOFULTRASONICDISTANCEMEASUREMENTPRINCIPLE,DUETOLOWCOST,HIGHACCURA

5、CY,PROPOSEDONEKINDBASEDONTHEAT89S52ULTRASONICREVERSINGRADAROFTHESYSTEMDESIGNTHEHARDWAREPARTOFTHESINGLECHIPMICROCOMPUTERASTHECONTROLLERBYUSINGAT89S52,MAINLYOFULTRASONICTRANSMITTINGCIRCUIT,RECEIVINGCIRCUIT,TEMPERATUREDETECTIONCIRCUIT,LEDDISPLAYCIRCUITANDALARMCIRCUITONTHEANALYSISOFTHEPRINCIPLEOFULTRASO

6、NICDISTANCEMEASUREMENTBASEDON,GIVENTHEREALIZATIONOFULTRASONICREVERSINGRADARSYSTEMHARDWAREDESIGNCIRCUITDIAGRAMANDSOFTWAREDESIGNFLOWCHARTTHEMEASURINGACCURACYOFTHESYSTEMIS1CM,THEMEASUREMENTRANGEIS050400M,FULLYABLETOMEETTHECARREVERSINGSYSTEMDESIGNREQUIREMENTSTHEENTIREHARDWARECIRCUITISCOMPOSEDBYULTRASONI

7、CTRANSMITTERCIRCUIT,ULTRASONICRECEIVERCIRCUIT,THEPOWERCIRCUIT,DISPLAYCIRCUIT,ANDOTHERMODULESTHEPROBESIGNALSAREINTEGRATEDANALYSISBYSCMTOACHIEVETHEVARIOUSFUNCTIONSOFULTRASONICDISTANCEMEASUREMENTINSTRUMENTTHISHASDESIGNEDSYSTEMSOVERALLCONCEPTBASEDON,FINALADOPTIONOFHARDWAREANDSOFTWARETOACHIEVETHEVARIOUSF

8、UNCTIONALMODULESTHERELEVANTPARTSHAVETHEHARDWARESCHEMATICSANDPROCESSFLOWCHARTITHASGIVENTHESYSTEMCONSTITUTION,THECIRCUITRYANDTHEPROGRAMMINGTHEINSTRUMENTSYSTEMHASFEATURESEASEOFCONTROL,STABILITYOFOPERATION,HIGHNESSOFPRECISIONANDDISTINCTNESSOFPROGRAMMEPROCESS,ETCAFTERTHEREALIZATIONOFTHEWORKCANBEUSEDFORNE

9、EDSOFTHEVARIOUSPARAMETERSMEASUREDDISTANCEAPPLICATIONSKEYWORDSSCM,ULTRASONICWAVE,DISTANCEMEASUREMENT贵州大学科技学院本科毕业论文(设计)第1页第一章绪论11引言111设计的应用前景目前国内一般使用专用集成电路设计超声波测距仪,但是专用集成电路的成本很高,并且显示距离也比较困难,操作使用也不是很方便。而本设计研究的测距仪成本低廉,性能优良,市场前景极为广阔。在整个倒车过程中自动测量车尾到最近障碍物的距离,并用数字显示出来,在倒车到极限距离时会发出警告声,提醒驾驶员注意刹车。本设计可望成为驾驶员特别是

10、货车以及公共汽车驾驶员的好帮手,可有效的减少和避免那些视野不良的大型汽车,如集装箱车、载货车、公共汽车等倒车交通事故。随着科学技术的快速发展,超声波将在传感器中的应用越来越广。但就目前技术水平来说,人们可以具体利用的传感技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。展望未来,超声波传感器作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求,如声纳的发展趋势基本为研制具有更高定位精度的被动测距声纳,以满足水中武器实施全隐蔽攻击的需要;继续发展采用低频线谱检测的潜艇拖曳线列阵声纳,实现超远程的被动探测

11、和识别;研制更适合于浅海工作的潜艇声纳,特别是解决浅海水中目标识别问题。毋庸置疑,未来的超声波传感器将与自动化智能化接轨,与其他的传感器集成和融合,形成多传感器。随着传感器的技术进步,传感器将从具有单纯判断功能发展到具有学习功能,最终发展到具有创造力。112课题研究的意义在现实生活中,一些传统的距离测量方式在某些特殊场合存在不可克服的缺陷,例如,液面测量就是一个距离测量,传统的电极法是采用差位分布电极,通过给电或脉冲检测液面,电极长期浸泡在水中或其它液体中,极易被腐蚀、电解,从而失去灵敏性。而利用超声波测量距离可以很好地解决这一问题。目前市面上常见的超声波测距系统不仅价格昂贵,体积过大而且精度

12、也不高等种种因素,使得在一些中小规模的应用领域中难以得到广泛的应用。为解决这一系列难题,本文设计了一款基于AT89S52单片机的低成本、高精度、微型化的超声波测距仪。贵州大学科技学院本科毕业论文(设计)第2页12概述121单片机应用系统概述单片机的出现及发展使计算机技术从通用型数值计算领域进入到智能化的控制领域。从此,计算机技术在两个重要领域通用计算机领域和嵌入式计算机领域都得到了极其重要的发展,并正在深深地改变着我们的社会。单片机应用系统的设计包括单片机基本扩展、外围电路设计和程序设计、单片机应用系统开发环境、系统可靠性设计、电磁兼容性设计等内容。通常开发一个单片机系统的步骤如图11所示图1

13、1技术路线122超声波测距系统概述随着社会的发展,人们对距离或长度测量的要求越来越高。目前测量距离可以采用波在介质中的传播速度和时间关系进行测量。常用的技术主要有激光测距、微波雷达测距和超声波测距三种。激光和雷达测距仪造价偏高,不利于广泛的普及应用,在某些应用领域有其局限性。超声波测距由于其能进行非接触测量和相对较高的精度,越来越被人们所重视。展望未来,超声波测距仪作为一种新型的非常有用的工具在各方面都将有很大的发展空间,它将朝着更高定位、更高精度的方向发展,以满足日益发展的社会需求。由于超声波具有指向性好、能量损耗低、传播距离较远、不易受外界环境影响和对被测目标无损害等特点,利用超声波测量距

14、离就可以解决传统测量方法中遇到的问题。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此超声波测量距离技术在工业控制、勘探测量、机器人定位和安全防范等领域得到了广泛的应用。超声波测距电路可以由传统的模拟或者数字电路构建,但是基于这些传统电路构建贵州大学科技学院本科毕业论文(设计)第3页的系统往往可靠性差,调试困难,可扩展性差,所以基于单片机的超声波测距系统被广泛的应用。通过简单的外围电路发生和接收超声波,单片机通过采样获取到超声波的传播时间,用软件来计算出距离,并且可以采集环境温度进行测距补偿,其测量电路小巧,精度高,反映速度快,可靠性好

15、。超声波测距适用于高精度的中长距离测量,超声波在标准空气中的传播速度为33145M/S,由单片机计时,单片机使用120MHZ晶振,所以此系统的测量精度在理论上可以达到毫米级。本文设计的倒车雷达系统就是利用超声波的上述特性做到对倒车距离实时和高精度的检测,同时,此系统成本低、设计简单、精度和稳定性好,有望得到广泛的应用,从而减少交通事故的发生1。13本设计主要要求1设计一个以单片机为核心的超声波测距仪,可以应用于汽车倒车、工业现场的位置监控;2测量范围在050400M,测量精度1CM;3测量时与被测物无直接接触,能够清晰稳定地显示测量结果。贵州大学科技学院本科毕业论文(设计)第4页第二章超声波测

16、距原理21超声波的基本理论超声波技术是一门以物理、电子、机械、以及材料科学为基础的、各行各业都可使用的通用技术之一。超声波技术是通过超声波的产生、传播以及接收的物理过程完成的。该技术在国民经济中,对提高产品质量,保障生产安全和设备安全运作,降低生产成本,提高生产效率特别具有潜在能力。因此,我国对超声波的研究特别活跃。大家都知道,当物体振动时会发出声音。科学家们将每秒钟振动的次数称为声音的频率,它的单位是赫兹。我们人类耳朵能听到的声波频率为2020000赫兹。当声波的振动频率大于20000赫兹或小于20赫兹时,我们便听不见了。因此,我们把频率高于20000赫兹的声波称为“超声波”。通常用于医学诊

17、断的超声波频率为15兆赫。超声波具有方向性好,穿透能力强,易于获得较集中的声能,在水中传播距离远等特点。可用于测距,测速,清洗,焊接,碎石等。在医学,军事,工业,农业上有明显的作用3。理论研究表明,在振幅相同的条件下,一个物体振动的能量与振动频率成正比,超声波在介质中传播时,介质质点振动的频率很高,因而能量很大。在我国北方干燥的冬季,如果把超声波通入水罐中,剧烈的振动会使罐中的水破碎成许多小雾滴,再用小风扇把雾滴吹入室内,就可以增加室内空气湿度。这就是超声波加湿器的原理。对于咽喉炎、气管炎等疾病,药品很难血流到打患病的部位。利用加湿器的原理,把药液雾化,让病人吸入,能够疗效。利用超声波巨大的能

18、量还可以使人体内的结石做剧烈的受迫振动而破碎。22超声波测距系统原理221超声波传感器总体上讲,超声波发生器可以分为两大类一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。他们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器。压电式超声波发生器实际上是利用压电晶体的谐振来工作的。它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电贵州大学科技学院本科毕业论文(设计)第5页晶片将会发生共振,并带动共振板振动,便产生超声

19、波。反之,如果两极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了,超声波传感器结构如图21、图22所示图21超声波传感器外部结构图22超声波传感器内部结构222超声波测距的方案超声波测距方法主要有三种1相位检测法精度高,但检测范围有限;2声波幅值检测法易受反射波的影响;3渡越时间法工作方式简单,直观,在硬件控制和软件设计上都容易实现,其原理为检测从发射传感器发射的超声波经气体介质传播到接收传感器的时间T,这个时间就是渡越时间,然后求出距离L。设L为测量距离,T为往返时间差,超声波的传播速度为C,则有LCT/2。综合以上分析,本设计将

20、采用渡越时间法,如图23所示图23测距原理由于超声波也是一种声波,其声速C与空气温度有关,一般来说,温度每升高1摄氏度,声速增加06米秒。如表21列出了几种温度下的声速贵州大学科技学院本科毕业论文(设计)第6页表21声速与温度的关系表温度(摄氏度)3020100102030100声速(米秒)313319325323338344349386在使用时,如果温度变化不大,则可认为声速C是基本不变的,计算时取C为340M/S。如果测距精度要求很高,则可通过改变硬件电路增加温度补偿电路的方法或者在硬件电路基本不变的情况下通过软件改进算法的方法来加以校正。在本系统中利用AT89S52中的定时器测量超声波传

21、播时间,利用DS18B20测量环境温度,从而提高测距精度。空气中声速与温度的关系可表示为如下公式/604331162731627345331SMTTC声速确定后,只要测得超声波往返的时间,即可求得距离L1/2331406TT。(系统中应用该式进行温度补偿)如果为了进一步提高测量精度,本设计中将根据需要利用软件方式增加角度补偿的设计222SLH。(系统中应用该式进行角度补偿)5超声波是利用反射的原理测量距离的,被测距离一端为超声波传感器,另一端必须有能反射超声波的物体。测量距离时,将超声波传感器对准反射物发射超声波,并开始计时,超声波在空气中传播到达障碍物后被反射回来,传感器接收到反射脉冲后立即

22、停止计时,然后根据超声波的传播速度和计时时间就能计算出两端的距离。测量距离D为CTD21式中C超声波的传播速度;T21超声波发射到接收所需时间的一半,也就是单程传播时间。由上式可出,距离的测量精度主要取决于计时精度和传播速度两方面。计时精度由单片机定时器决定,定时时间为机器周期与计数次数的乘积,可选用12MHZ的晶振,使机器周期为精确的1S,不会产生累积误差,使定时间达到1S。超声波的传播速度C并不是固定不变的,传播速度受空气密度、温度和气体分子成分的影响,关系式为KTCMRTC27310式中气体定压热容与定容热容的比值,空气为140。贵州大学科技学院本科毕业论文(设计)第7页R气体普适常数,

23、为8314KG/MOL。T气体势力学温度,与摄氏温度的关系是T273KT。M气体相对分子质量,空气为288103KG/MOL。C00时的声波速度,为3314M/S。由上式可见,超声波在空气中传播时,受温度影响最大,由表达式可计算出波速与温度的关系,如表21所示。温度越高,传播速度越快,而且不同温度下传播速度差别非常大,例如0时的速度为332M/S,30时的速度为350M/S,相差18M/S。因此,需要较高的测量精度时,进行温度补偿是最有效的措施。对测量精度要求不高时,可认为超声波在空气中的传播速度为340M/S。4贵州大学科技学院本科毕业论文(设计)第8页第三章总体设计方案31超声波测距系统电

24、路总体设计方案本系统硬件部分由AT89S52控制器、超声波发射电路及接收电路、声音报警电路和LED显示电路组成。当使用时,发射和接收电路工作,经过AT89S52数据处理将距离也显示到LED上,如果距离小于设定值时,报警电路会鸣叫,提醒注意距离。超声波测距器的系统框图如图31所示图31系统设计总框图由单片机AT89S52编程产生10US以上的高电平,由指定引脚输出,就可以在指定接收口等待高电平输出。一旦有高电平输出,即在模块中经过放大电路,驱动超声波发射探头发射超声波。发射出去的超声波经障碍物反射回来后,由超声波接收头接收到信号,通过接收电路的处理,指定接收口即变为低电平,读取单片机中定时器的值

25、。单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由单片机控制显示出来。由如图32所示可以看出,超声波测距模块的发射端在T0时刻发射方波,同时启动定时器开始计时,当收到回波后,产生一负跳变到单片机中断口,单片机响应中断程序,定时器停止计数6。计算时间差,即可得到超声波在媒介中传播的时间T,由此便可计算出距离。贵州大学科技学院本科毕业论文(设计)第9页图32时序图32超声波发射和接收电路的设计分立元件构成的发射和接收电路容易受到外界的干扰,体积和功耗也比较大。而集成电路构成的发射和接收电路具有调试简单,可靠性好,抗干扰能力强,体积小,功耗低的优点,所以优先采用集成

26、电路来设计收发电路。7321超声波发射电路超声波发射电路包括超声波产生电路和超声波发射控制电路两部分,可采用软件发生法和硬件方法产生超声波。在超声波的发射电路的设计中,我们采用电路结构简单的集成电路构成发射电路,如图33所示图33由反相器构成的超声波发射电路图33是由反相器74HC04构成的发射电路,用反相器74HC04构成的电路简单,调试容易,易通过软件控制。单片机输出的方波经过反相器接到发射器T1的两极,用图中的推挽形式将方波信号加到发射器T1两端,可以提高发射器T1的发射强度。图中把两个非门的输出接到一起的目的是为了提高其吸入电流,电路驱动能力提高。74HC04是一个高速CMOS六反相器

27、,具有对称的传输延迟和转换时间,而相对于LSTTL逻辑IC,它的功耗减少很多。另外,上拉电阻R1、R2一方面可以提高反相器74HC04输出贵州大学科技学院本科毕业论文(设计)第10页高电平的驱动能力,另一方面可以增加发射器T1的阻尼效果,缩短其自由振荡的时间。322超声波接收电路如图34是由CX20106A构成的接收电路,在实物的制作过程中,我们将用CX20106A这一型号代替。CX20106A是索尼公司生产的彩电专用红外遥控接收器,是CX20106的改进型,也可用于超声波测试,有较强的抗干扰性和灵敏度。CX20106A采用单列8脚直插式,超小型封装,5V供电。管脚1是超声波信号输入端,其输入

28、阻抗约为40K;管脚2的R1、C4决定接收器R的总增益,增大电阻R1或减小电容C4,将使放大倍数下降,负反馈量增大,电容C4的改变会影响到频率特性,实际使用中一般不改动;管脚3与GND之间连接检波电容C2,考虑到检波输出的脉冲宽度变动大,推荐参数为33UF;管脚5上的电阻R2用以设置带通滤波器的中心频率,阻值越大,中心频率越低,取R2200K时,中心频率约为42KHZ;管脚6与GND之间接入一个积分电容C3,电容值越大,探测距离越短;管脚7是遥控命令输出端,它是集电极开路的输出方式,因此该引脚必须接上一个上拉电阻到电源端,没接收信号时,该端输出为高电平,有信号时则会下降;管脚8接5V电源。图3

29、4CX20106构成的接收电路经过试验后发现用单片机发40KHZ信号与使用CX20106A的电路搭配更加简单合理,使得时间的计算更为精确。该系统的超声波接收模块是由超声波接收探头和红外线接收处理芯片CX20106A组成。超声波接收子程序的流程是,利用INT0中断检测回波信号,若有回波信号(INT0贵州大学科技学院本科毕业论文(设计)第11页口低电平)就关闭外部中断,同时停止计时器的计时,将测距成功标志位标记为1(测距成功),同时提取时间值,计算待测距离,保存最终结果后打开外部中断,等待下次测量。综合以上的分析,在由集成电路构成的接收和发射电路中,发射电路我们选用由反相器构成的电路,接收电路采用

30、由红外接收检波芯片CX20106A构成,主要是考虑到系统的调试简单,成本低以及可靠性好3。323显示电路显示电路如图35,四位LED组成动态扫描电路,由AT89S52的P0口输出。动态扫描时,由P2口控制LED的当前显示位。当距离测量结束并调用显示程序,就会显示距离大小,显示两位小数。当按下按键K2时,将会显示温度值,延时5S后恢复显示距离值。图35显示电路33主电路原理图该系统主电路原理图如图36所示,单片机采用AT89S52,单片机使用外部时钟源,外接6MHZ的晶振,由P00口直接输出40KHZ的驱动信号给放大电路。接收到回波后,经由CX20106A的滤波,产生中断信号,并由P32口输出进

31、行中断。显示电路采用简单实用的3位数码管,连接单片机AT89S52的P0口,而三极管连接P2口,作数码管的位选。工作时,首先将系统初始化,启动计时器。并由P00脚发出40KHZ的驱动信号,同时打开INT0中断,并且开始等待接收到的回波和中断信号,若接收到回波(单片机接收到中断信号),计时器停止计时,保存时间信息,并且根据温度补偿计算贵州大学科技学院本科毕业论文(设计)第12页出当前环境下的声速,计算出当前待测距离后储存,并调用显示子程序。测出距离后结果将以十进制BCD码方式传送到LED显示,然后再发超声波脉冲重复测量过程。图36电流原理图贵州大学科技学院本科毕业论文(设计)第13页第四章系统软

32、件设计41主程序流程我们知道C语言程序有利于实现较复杂的算法,汇编语言程序则具有较高的效率且容易精细计算程序运行的时间,而超声波测距仪的程序既有较复杂的计算(计算距离时),又要求精细计算程序运行时间(超声波测距时),所以控制程序可采用C语言和汇编语言混合编程。因为本设计对时间要求精度较高的部分全部由单片机内部的定时器完成,而虽然温度传感器的读写对时间精度要求也高,但经详细计算所得出的C程序已被广泛应用,故直接借用已有程序也能作到对温度的准确读取,所心本设计全部使用C语言编程,这样能使设计中所用到的公式能方便快捷的体现和实现,又缩短了论文的篇幅。软件采用模块化设计方法,由主程序、超声波发生子程序

33、、超声波接收中断子程序、温度测量子程序、距离计算子程序、显示子程序等模块组成。8图41为主程序流程图。系统上电后,首先系统初始化,不断扫描按键K1,若按键K1按下,则开始测量空气温度,然后将P10置位,使定时器T0开始定时,控制超声波传感器发出超声波,同时使定时器T1开始定时。CPU循环检测P33引脚,当P33为低电平时接收到回波,立即使T1停止工作,保存定时器的计数值。然后根据温度和传输时间计算距离,温度补偿措施使测量精度有了明显提高,计算出距离后调用距离显示子程序,LED显示距离。最后检测按键K2,若K2闭合,则调用温度显示子程序,LED显示温度(温度并非测量距离时用于补偿的温度,而是当前

34、温度)5S后恢复显示本次测量距离;若按键K2没有闭合,则显示器恒定显示最新一次的测量结果;若要进行下一次测量,则先要按下K3重新开始,再按下按键K1才执行新一次测量。由于不需输入数据,键盘只设置了3个按键,用于开始测量距离并显示温度功能设置等。贵州大学科技学院本科毕业论文(设计)第14页NYNYNYYN开始系统初始化显示测量距离测温,根据温度和时间计算距离显示温度5S发射超声波,T1计时K2闭合T1停止定时,保存定时值N接收到反射波K1闭合K3闭合图41主程序流42子程序设计421发送中断子程序超声波发生子程序的作用是通过P10端口发送左右超声波脉冲信号(频率约40KHZ贵州大学科技学院本科毕

35、业论文(设计)第15页的方波),脉冲宽度为12S左右,同时把计数器T1打开进行计时,定时器T1工作在方式0。超声波测距仪主程序利用外中断1检测返回超声波信号,一旦接收到返回超声波信号(即1INT引脚出现低电平),立即进入中断程序。进入中断后就立即关闭计时器T1停止计时,并将测距成功标志字赋值1。如果当计时器溢出时还未检测到超声波返回信号,则定时器T1溢出中断将外中断1关闭,并将测距成功标志字赋值0表示此次测距不成功。T0中断服务程序如下SBITSENDP10VOIDTIMER0VOIDINTERRUPT1SENDSENDTH00X1FTL00XF4超声波接收(外部中断1)程序VOIDINT1V

36、OIDINTERRUPT2IFTH10X00TR10TR00TTH1256TL1TT/1000000TH00X1FTL00XF4TH10X00TL10X00ELSEB0贵州大学科技学院本科毕业论文(设计)第16页TR10TR00TH00X1FTL00XF4TH10X00TL10X00422距离计算子程序当前温度和超声波往返时间均测量出来后,用C语言根据公式计算距离来编程是比较简单的算法。根据测量距离CTD21,而其中KTCMRTC27310,故可简化为KTTKTTCD273171652731210,其实现程序算法如下INCLUDEVOIDDISTANCEVOIDDOUBLERADICAL,DI

37、ST,TRADICALSQRT1TEMNUM273/273DIST1657TRADICALRETURNDIST贵州大学科技学院本科毕业论文(设计)第17页第五章软件调试及系统仿真51软件编译调试环境单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,KEIL软件是目前最流行开发MCS51系

38、列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持KEIL即可看出。KEIL提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(UVISION)将这些部份组合在一起。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么KEIL几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会事半功倍。52工程文件的建立、设置与目标文件的获得521KEIL工程的建立首先启动KEIL软件的集成开发环境,如果已正确安装了该软件,可以从桌面上直接双击UVISI

39、ON的图标以启动该软件。UVISON启动后,程序窗口的左边有一个工程管理窗口,该窗口有3个标签,分别是FILES、REGS、和BOOKS,这三个标签页分别显示当前项目的文件结构、CPU的寄存器及部份特殊功能寄存器的值(调试时才出现)和所选CPU的附加说明文件,如果是第一次启动KEIL,那么这三个标签页全是空的。1、源文件的建立使用菜单“FILENEW”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编缉窗口,在该窗口中输入汇编语言或C语言源程序,然后保存该文件,注意必须加上扩展名(汇编语言源程序一般用ASM或A51为扩展名,而C语言源程序一般用C为扩展名),这里假定将文件保存

40、为EXAM1ASM。需要说明的是,源文件就是一般的文本文件,不一定使用KEIL软件编写,可以使用任意文本编缉器编写,而且,KEIL的编缉器对汉字的支持不好,建议使用ULTRAEDIT之类的编缉软件进行源程序贵州大学科技学院本科毕业论文(设计)第18页的输入。2、建立工程文件在项目开发中,并不是仅有一个源程序就行了,还要为这个项目选择CPU(KEIL支持数百种CPU,而这些CPU的特性并不完全相同),确定编译、汇编、连接的参数,指定调试的方式,有一些项目还会有多个文件组成等,为管理和使用方便,KEIL使用工程(PROJECT)这一概念,将这些参数设置和所需的所有文件都加在一个工程中,只能对工程而

41、不能对单一的源程序进行编译(汇编)和连接等操作。点击“PROJECTNEWPROJECT”菜单,出现一个对话框,要求给将要建立的工程起一个名字,可以在编缉框中输入一个名字(设为EXAM1),不需要扩展名。点击“保存”按钮,出现第二个对话框,如图71所示,这个对话框要求选择目标CPU,KEIL支持的CPU很多,我们选择ATMEL公司的89S52芯片。点击ATMEL前面的“”号,展开该层,点击其中的89S52,然后再点击“确定”按钮,回到主界面,此时,在工程窗口的文件页中,出现了“TARGET1”,前面有“”号,点击“”号展开,可以看到下一层的“SOURCEGROUP1”,这时的工程还是一个空的工

42、程,里面什么文件也没有,需要手动把刚才编写好的源程序加入,点击“SOURCEGROUP1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单,如图51所示。图51加入文件选中其中的“ADDFILETOGROUP”SOURCEGROUP1”,出现一个对话框,要求寻找源文件,注意该对话框下面的“文件类型”默认为CSOURCEFILEC,也就是以C为扩展名的文件,而我们的文件是以ASM为扩展名的,所以在列表框中找不到EXAM1ASM,要将文件类型改掉,点击对话框中“文件类型”后的下拉列表,找到并选中“ASMSOURCEFILEA51,ASM,这样,在列表框中就可以找到EXAM1ASM文件了。双击贵州

43、大学科技学院本科毕业论文(设计)第19页EXAM1ASM文件,将文件加入项目,注意,在文件加入项目后,该对话框并不消失,等待继续加入其它文件,如果误认为操作没有成功而再次双击同一文件,这时会出现重复加入文件错误的对话框,提示你所选文件已在列表中,此时应点击“确定”,返回前一对话框,然后点击“CLOSE”即可返回主界面,返回后,点击“SOURCEGROUP1”前的加号,会发现EXAM1ASM文件已在其中。双击文件名,即打开该源程序。522工程的详细设置工程建立好以后,还要对工程进行进一步的设置,以满足要求。首先点击左边PROJECT窗口的TARGET1,然后使用菜单“PROJECTOPTIONF

44、ORTARGETTARGET1”即出现对工程设置的对话框,这个对话框可谓非常复杂,共有8个页面,要全部搞清可不容易,好在绝大部份设置项取默认值就行了。设置对话框中的TARGET页面,如图52所示图52对目标进行设置XTAL后面的数值是晶振频率值,默认值是所选目标CPU的最高可用频率值,对于我们所选的AT89S52而言是24M,该数值与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。正确设置该数值可使显示时间与实际所用时间一致,一般将其设置成与你的硬件所用晶振频率相同,如果没必要了解程序执行的时间,也可以不设,这里设置为12。MEMORYMODEL用于设置RAM使用情况,有三个选择

45、项,SMALL是所有变量都在单片机的内部RAM中;COMPACT是可以使用一页外部扩展RAM,而LARGET则是可以使用全部外部的扩展RAM。CODEMODEL用于设置ROM空间的使用,同样也有三个选择项,即SMALL模式,只用低于2K的程序空间;COMPACT模式,单个函数的代码量不能超过2K,整个程序可以使用64K程序空间;LARGE模式,可用全部64K空间。USEONCHIPROM选择项,确认是否仅使用片内ROM(注意选中该项并不会影响最终生成的目标代码量);OPERATING项是操作系统选择,KEIL提供了两贵州大学科技学院本科毕业论文(设计)第20页种操作系统RTXTINY和RTXF

46、ULL,关于操作系统是另外一个很大的话题了,通常我们不使用任何操作系统,即使用该项的默认值NONE(不使用任何操作系统);OFFCHIPCODEMEMORY用以确定系统扩展ROM的地址范围,OFFCHIPXDATAMEMORY组用于确定系统扩展RAM的地址范围,这些选择项必须根据所用硬件来决定,由于该例是单片应用,未进行任何扩展,所以均不重新选择,按默认值设置。设置对话框中的OUTPUT页面,如图53所示图53对输出进行控制这里面也有多个选择项,其中CREATHEXFILE用于生成可执行代码文件(可以用编程器写入单片机芯片的HEX格式文件,文件的扩展名为HEX),默认情况下该项未被选中,如果要

47、写片做硬件实验,就必须选中该项,在此特别提醒注意。选中DEBUGINFORMATION将会产生调试信息,这些信息用于调试,如果需要对程序进行调试,应当选中该项。BROWSEINFORMATION是产生浏览信息,该信息可以用菜单VIEWBROWSE来查看,这里取默认值。按钮“SELECTFOLDERFOROBJECTS”是用来选择最终的目标文件所在的文件夹,默认是与工程文件在同一个文件夹中。NAMEOFEXECUTABLE用于指定最终生成的目标文件的名字,默认与工程的名字相同,这两项一般不需要更改。工程设置对话框中的其它各页面与C51编译选项、A51的汇编选项、BL51连接器的连接选项等用法有关

48、,这里均取默认值,不作任何修改。523编译、连接在设置好工程后,即可进行编译、连接。选择菜单PROJECTBUILDTARGET,对当前工程进行连接,如果当前文件已修改,软件会先对该文件进行编译,然后再连接以产生目标代码;如果选择REBUILDALLTARGETFILES将会对当前工程中的所有文件重新进行编译然后再连接,确保最终生产的目标代码是最新的,而TRANSLATE项则仅对该文件进行编译,不进行连接。以上操作也可以通过工具栏按钮直接进行。图54是有关编译、设贵州大学科技学院本科毕业论文(设计)第21页置的工具栏按钮图54有关编译、连接、项目设置的工具条从左到右分别是编译、编译连接、全部重

49、建、停止编译和对工程进行设置。编译过程中的信息将出现在输出窗口中的BUILD页中,如果源程序中有语法错误,会有错误报告出现,双击该行,可以定位到出错的位置,对源程序反复修改之后,最终会得到如图77所示的结果图55正确编译、连接之后的结果提示获得了名为EXAM1HEX的文件,该文件即可被编程器读入并写到芯片中,同时还产生了一些其它相关的文件,可被用于KEIL的仿真与调试,这时可以进入下一步调试的工作。53系统仿真531PROTEUS工作界面PROTEUSISIS的工作界面是一种标准的WINDOWS界面,如图56所示。贵州大学科技学院本科毕业论文(设计)第22页图56PROTEUSISIS的工作界面包括标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。532PROTEUS原理图的绘制PROTEUS中原理图绘制比较简单,具体可参见其帮助,暂不赘述。533仿真由于PROTEUS里没有超声波传感器,也没有能够完全代替它功能元件,所以本设计只叙述其能仿真出来一部分10。1、源程序的录入先右击AT89S52,再左击AT89S52,会出现如图57所示的对话框,点击,选择所需要的HEX文件。然后单击OK。图5

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

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。