毕业设计超声波测距仪的设计_第1页
毕业设计超声波测距仪的设计_第2页
毕业设计超声波测距仪的设计_第3页
毕业设计超声波测距仪的设计_第4页
毕业设计超声波测距仪的设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要本设计采用以AT89S58单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法。整个电路采用模块化设计,由主程序、预置子程序、发射子程序、接受子程序、显示子程序、语音播报子程序等模块组成。发射模块发射超声波,接受模块接受回波,单片机计算距离,显示测量结果。各探头的信号经单片机综合分析处理,实现超声波测距仪的各种功能。在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块。相关部分附有硬件电路图、程序流程图。超声波测距今年来得到了广泛的应用。本设计的优点在于超声波明显特征是方向性好,穿透性强。尤其是在光不透明的固体中,它碰到杂质或分界面就有显著地反射

2、。用超声波测距离时通过测量发射的超声波与接受到被测物体反射的回波之间的时间差来确定的。关键词:AT89S51,超声波,测距目 录第一章 绪论1.1课题设计目的及意义设计的目的随着科学技术的快速发展,超声波将在测距仪中的应用越来越广。但就目前的急速水平来说,人们可以具体利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。展望未来,超声波测距仪作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,满足日益发展的社会需求,如声纳的发展趋势基本:研制具有更高定位精度的被动测距声纳,以满足水中武器实施全隐蔽攻击的需求;继续发展采

3、用低频线谱检测的潜艇拖拽线列阵声纳,实现超远程的被动探测和识别;研制更适合与前还工作的潜艇声纳,特别是解决浅海水中目标识别问题;搭理降低潜艇自噪声,改善潜艇声纳的工作环境。毋庸置疑,无线的超声波测距仪将于自动化智能化接轨,与其他的测距仪集成和融合,形成多测距仪。随着测距仪的技术进步,测距仪将从具有单纯判断功能发展到具有学习功能,最终发展到具有创造力。在新的世纪里,面貌一新的测距仪将发挥更大的作用。设计的意义随着科学技术的发展,人们生活水平的提高,城市发展建设加快,城市给排水系统也有较大发展,其状况不断改善。但是,由于历史原因合成时间的许多不可预见因素,城市给排水系统,特别是排水系统往往落后于城

4、市建设。因此,经常出现开挖已经建设好的建筑设施来改造排水系统的现象。城市污水给人们带来了困扰,因此,箱涵的排污疏通对打城市给排水系统污水处理,人们生活舒适显得非常重要。而设计研制箱涵排水疏通移动机器人的自动控制系统,保证机器人在箱涵中自由排污疏通,是箱涵排污疏通机器人的设计研制的核心部分。控制系统核心部分就是超声波测距仪的研制。因此,设计好的超声波测距仪就显得非常重要了。这就是我设计超声波测距仪的意义。1.3本课题研究的主要内容超声波是指频率高于20KHz的机械波。为了以超声波作为检测手段,必须产生超生波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。超声

5、波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。超声波测距的原理一般采用渡越时间法TOF(time of flight)。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离。本设计主要是基于AT89S51芯片为核心的超声波测距仪,74LS04组成的超声波发射电路、并有超声波处理模块CX20106A、液晶显示等器件组成,包括单片机系统、超声波发射电路、超声波接收电路、单

6、片机复位电路、LCD显示电路语音播报电路。主要实现超声波测距并指示功能。依据实际的测量精度要求添加温度补偿电路。本系统成本低廉,功能实用。第二章 系统方案论证2.1.1超声波测距原理发射器发出的超声波以速度v在空气中传播,在到达被测物体是被反射返回,由接受器接受,其往返时间为t,有s=vt/2即可算出被测物体的距离。由于超声波也是一种声波,其声速v与温度有关,下表列出了几种不同温度下的声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应该通过温度补偿的方法加以校正。表21 超声波波速与温度的关系表温度()-30-20-100102030100声速(m/s)31

7、3319325323338344349386超声波测距仪原理框图单片机发出40khz的信号,经放大后通过超声波发射器输出;超声波接受器将接受到得超声波信号经放大器放大,用锁相环电路进行检波处理后,启动单片机中断程序,测得时间为t,再由软件进行辨别、计算,得出距离数并送LCD显示并送语音播报模块播报。课题设计的要求设计一个超声波测距仪,要求:超声波测距的原理一般采用渡越时间法TOF(time of flight)。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离。测量距离的方法有很多种,短距离的可以用尺,远距离的有激光测距等,超声波测距适用于

8、高精度的中长距离测量。因为超声波在标准空气中的传播速度为331.45米/秒,由单片机负责计时,单片机使用12.0MHZ晶振,所以此系统的测量精度理论上可以达到毫米级。由于超声波指向性强,能量消耗缓慢,在介质中传播距离远,因而超声波可以用于距离的测量。利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到要求。图2-1 发射模块图2-2 接收模块超声波发生器可以分为两类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。本课题属于近距离测量,可以采用常用的压电式超声波换能器来实现。超声波测距的原理是利用超声波的发射和接受,根据超声波传播的时间来计算出传播距离。实用的

9、测距方法有两种,一种是在被测距离的两端,一端发射,另一端接收的直接波方式,适用于身高计;一种是发射波被物体反射回来后接收的反射波方式,适用于测距仪。此次设计采用反射波方式。测距仪的分辨率取决于对超声波传感器的选择。超声波传感器是一种采用压电效应的传感器,常用材料是压电式陶瓷。由于超声波在空气传播时会有相当的衰减,衰减的程度与频率的高低成正比;而频率高分辨率也高,故短距离测量时应选择高频率的传感器,而长距离测量时应用低频率的传感器。超声探头的核心是其塑料外套或者金属外套中的一块压电晶片。构成晶片的材料可以有许多种。晶片的大小,如直径和厚度也各不相同,因此每个探头的性能是不同的,我们使用前必须预先

10、了解它的性能。超声波传感器的主要性能指标包括:工作频率。工作频率就是压电晶片的共振频率。当加到它两端的交流电压的频率和晶片的共振频率相等时,输出的能量最大,灵敏度也最高。工作温度。由于压电材料的居里点一般比较高,特别时诊断用超声波探头使用功率较小,所以工作温度比较低,可以长时间地工作而不失效。医疗用的超声探头的温度比较高,需要单独的制冷设备。显示单元是计算机系统开发时使用的主要设备之一,它可将计算机的运算结果、中间结果、存储器地址以及存储器、寄存器中的内容显示出来,从而实现人机对话。可以做显示器的有:LED,LCD,CRT等。CRT就是常见的显像管式的显示器。优点是颜色视觉效果好,视角宽,可靠

11、性高,便宜;缺点是体积大耗电多,有微量的X射线辐射。LED就是发光二极管。LED一般适合做大屏幕的显示设备,最突出的有点那就是屏幕尺寸可以不受限制,亮度可以做的很高,其他的如显色性、对比度等都不如CRT显示器。但是考虑到本设计需要WT588D是一款功能强大的可重复擦除烧写的语音单 成的单片机技术足于取代复杂的外围控制电路。配套WT-APP上位机操作软件可随意更换WT588D语音单片机芯片的任何一种控制模式,把信息下载到SPI-Flash上即可。软件操作方式简洁易懂,撮合了语音组合技术,大大减少了语音编辑的时间。大家知道,声音在不同温度的空气中传播速度是不同的,所以这里要考虑到温度补偿的问题。温

12、度传感器有很多种,例如温度传感器AD590。AD590是美国模拟器件公司生产的单片集成两端感温电流源。流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数。AD590的测温范围为-55+150。AD590的电源电压范围为4V30V。电源电压可在4V-6V范围变化,电流变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。输出电阻为710WM。它的精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55+150范围内,非线性误差为±0.3。但是考虑到成本问题我选用TS-18B20数字温度传感器。该产品采用

13、美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。独特的一线接口,只需要一条口线通信多点能力,简化了分布式温度传感应用无需外部元件可用数据总线供电,电压范围为3.0V至5.5V无需备用电源测量。温度范围为-55°C至+125 。-10°C至+85°C范围内精度为±0.5°C 温度传感器可编程的分辨率为912位温度转换为12位数字格式最大值为750毫秒用户可定义的非易失性温度报警设置应用范围包括恒温控制,工业系统,消费电子产品温度计,或

14、任何热敏感系统。硬件电路的设计主要包括单片机系统及显示电路、语音播报电路、温度补偿电路、无线传输、超声波发射电路和超声波检测接受电路五部分。单片机采用AT89C51或其兼容系列。采用12MHz高精度的晶振,以获得较稳定的时钟频率,减小测量误差。单片机用P3.6端口输出超声波换能器所需的40KHz的方波信号,利用外部中断1口检测超声波接受电路输出的返回信号。3.1AT89S51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含有4K bytes的课反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度。非易失性存储技

15、术生产,兼容标准MCS51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89S51单片机可以为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。主要性能参数Ø 与MCS51产品指令系统完全兼容。Ø 4K字节可以重复擦写Flash闪速存储器。Ø 1000吃擦写周期。Ø 全静态操作:0Hz24Hz。Ø 三级加密程序存储器。Ø 128*8字节内部RAM。Ø 32个可编程I/O口线。Ø 6个中断源。Ø 可编程串行UART通道。Ø 低功耗空闲和掉电模式。功能特性概述A

16、T89S51提供以下功能:Ø 4k字节Flash闪速存储器;Ø 128字节内部RAM;Ø 32个I/O口线;Ø 两个16位定时器/计时器;Ø 一个5向量两级中断结构;Ø 一个双工串行口通信;Ø 片内振荡器及时钟电路。同时,AT89S51可以降至0Hz的静态逻辑操作,并支持两种软件可选的节点工作模式。空闲方式停止CPU的工作,当允许RAM,定时/计数器,串行口及中断系统继续工作。掉电式保存RAM中的内容,但振荡器停止工作并禁止其他左右部件工作直到下一个硬件复位。其作用主要是为了保证单片机系统能正常工作。如图3-2所示,单片机最

17、小系统主要由AT89S51单片机、外部振荡电路、复位电路和+5V电源组成。在外部振荡电路中,单片机的XTAL1和XTAL2管脚分别接至由12MHZ晶振和两个30PF电容构成的振荡电路两侧,为电路提供正常的时钟脉冲。在复位电路中,单片机RESET管脚一方面经20 F的电容接至电源正极,实现上电自动复位,另一方面经开关s接电源。其主要功能是把PC初始化为0000H,是单片机从0000H单元开始执行程序,除了进入系统的初始化之外,当由于程序出错或者操作错误使系统处于死锁状态时,为了摆脱困境,也需要按复位键重新启动。因此,复位电路是单片机系统中不可缺少的一部分。单片机发出超声波测距是通过不断检测超声波

18、发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差tr,然后求出距离SCt2 (2-1)式中的C为超声波波速。限制该系统的最大可测距离存在4个因素:超声波的幅度、反射的质地、反射和入射声波之间的夹角以及接收换能器的灵敏度。接收换能器对声波脉冲的直接接收能力将决定最小的0可测距离。为了增加所测量的覆盖范围、减小测量误差,可采用多个超声波换能器分别作为多路超声波发射接收的设计方法,限于实际需要,本电路只采用单路超声波发射接收。由于超声波属于声波范围,其波速C与温度有关。压电式超声波换能器是利用压电晶体的谐振来工作的。超声波换能器内部有两个压电晶片和一个换能板。当它的两极外加脉冲信号,其频

19、率等于压电晶片的固有振荡频率时,压电晶片会发生共振,并带动共振板振动产生超声波,这时它就是一个超声波发生器;反之,如果两电极问未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收换能器。超声波发射换能器与接收换能器在结构上稍有不同,使用时应分清器件上的标志。表3-1 反相器74LS04参数最大额定值电源电压-0.5 to +7.0VDC输入电压-1.5 to Vcc+1.5V直流输出电压-0.5 to Vcc+0.5V钳位二极管电流±20mA直流输出电流,每个引脚(输出)±25mA功耗600mW发射电路主要由反相器74LS0

20、4和超声波发射换能器T构成,如图3-3所示,单片机P2.7端口输出的40kHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。输出端采两个反向器并联,用以提高驱动能力。上位电阻R2、R3一方面可以提高反向器74LS04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡时间。图3-3超声波发射电路DS18B20温度传感器是美国DALLAS半导体公司推出的一种改进型智能温度传感器,测温范围为-55125,最大分辨率可达0.0625。DS18B

21、20可以直接读出被测温度值,而且采用了一线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。测温电路图3-5所示。(1):技术性能描述独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。Ø 测温范围55125,固有测温分辨率0.5。Ø 工作电源:35V/DC。Ø 在使用中不需要任何外围元件。Ø 测量结果以912位数字量方式串行传送。Ø 不锈钢保护管直径6。Ø 适用于DN1525,DN40DN250各种介质工业管道和狭小空间设备测温。Ø 标准安装螺纹M10

22、X1,M12X1.5,G1/2任选。Ø PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。(2):应用范围Ø 该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域。Ø 轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。Ø 汽车空调、冰箱、冷柜、以及中低温干燥箱等。Ø 供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制。图3-5 DS18B20电路温度补偿电路3.7.1 12864液晶资料模块3.7.2 12864液晶基本特性12864液晶基本特性如表3-2所示。12864液晶基本特性显示单

23、元电路3.9无线发射与接收电路无线发射与接收电路采用无线通信模块。它是新一代的多通道嵌入式无线数传模块,其可设置众多的频道,发射功率高,而仍然具有较低的功耗。它可以在工业等强干扰的恶劣环境中使用。在任何状态下都可以1次传输256bytes的数据,当设置空中波特率大于串口波特率时,可1次传输无限长度的数据。同时它还提供标准的UART/TTL,RS485和RS232三种接口1200/2400/4800/9600bps四速率,和三种接口校验方式.采用串口设置模块参数。具有丰富便洁的软件编程设置选项。无线发射与接收电路见图3-9通讯距离:0-700米(10dbm,10kbps,可视距离)天线阻抗:50

24、工作温度:-40-85供电方式:DC3.3V5V尺寸:32.3x54.0mm(不包括天线)图3-9无线发射与接收电路第四章系统的软件设计4.2主程序流程图软件分为两部分,主程序和中断服务程序,如图4-1、图4-2、图4-3所示。主程序完成初始化工作、各路超声波发射和接收顺序的控制。定时中断服务子程序完成单方向超声波的发射,外部中断服务子程序主要完成时间值的读取、距离计算、结果的输出等工作。主程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式。置位总中断允许位EA并给显示端口P0和P1清0。然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引

25、起的直射波触发,需要延时约0.1ms(这也就是超声波测距仪会有一个最小可测距离的原因)后,才打开外中断1接收返回的超声波信号。图4-1主程序流程图由于采用的是12MHz的晶振,计数器每计一个数就是1s,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按式(4-2)计算,即可得被测物体与测距仪之间的距离,设计时取20时的声速为344m/s则有:d=(ct)/2=172T0/10000cm (4-2)其中,T0为计数器T0的计算值。测出距离后结果将传给LCD数码显示约5s,同时测量距离送语音模块播报。然后再发超声波脉冲重复测量过程。为了有利于程序结构化和容易计算出距离

26、,主程序采用C语言编写。超声波发生子程序的作用是通过P2.7端口发送2个左右超声波脉冲信号(频率约40kHz的方波),脉冲宽度为12s左右,同时把计数器T0打开进行计时。超声波发生子程序较简单,但要求程序运行准确。图4-2 定时中断服务子程序图4-3 外部中断服务子程序超声波测距仪主程序利用外中断1检测返回超声波信号,一旦接收到返回超声波信号(即INT1引脚出现低电平),立即进入中断程序。进入中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断1关闭,并将测距成功标志字赋值2以表示此次测距不成功。超声波测距仪的制

27、作和调试都比较简单,其中超声波发射和接收采用15的超声波换能器tct40-10f1(T发射)和CX20106A(R接收),中心频率为40kHz,安装时应保持两换能器中心轴线平行并相距48cm,其余元件无特殊要求。若能将超声波接受电路用金属壳屏蔽起来,则可能提高抗干扰能力。根据测量范围要求不同,可适当调整与接收换能器并接的滤波电容C16的大小,以获得合适的接受灵敏度和抗干扰能力。硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。根据实际情况可以修改超声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距离的测量需要。根据所设计的电路参数和程序,测距仪能测的范围为0.07

28、5.5m,测距仪最大误差不超过1cm。系统调试完后应对测量误差和重复一致性进行多次实验分析,不断优化系统使其达到实际使用的测量要求。软件的调试程序见附录二总 结由于时间和其它客观上的原因,此次设计没有成功做出实物。但是对设计有一个很好的理论基础。设计的最终结果是使超声波测距仪能够产生超声波,实现超声波的发送与接收,从而实现利用超声波方法测量物体间的距离。以数字的形式显示测量距离。超声波测距的原理是利用超声波的发射和接受,根据超声波传播的时间来计算出传播距离。实用的测距方法有两种,一种是在被测距离的两端,一端发射,另一端接收的直接波方式,适用于身高计;一种是发射波被物体反射回来后接收的反射波方式

29、,适用于测距仪。此次设计采用反射波方式。超声波测距仪硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分。单片机采用AT89S51或其兼容系列。采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用P2.7端口输出超声波换能器所需的40kHz的方波信号,利用外中断1口监测超声波接收电路输出的返回信号。显示电路采用简单实用的128*64液晶模块。超声波发射电路主要由反相器74LS04和超声波发射换能器T构成,单片机P2.7端口输出的40kHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,

30、用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。输出端采两个反向器并联,用以提高驱动能力。上位电阻R2、R3一方面可以提高反相器74LS04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由震荡时间。压电式超声波换能器是利用压电晶体管的谐振来工作的。超声波换能器内部有两个压电晶片和一个换能板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片会发生共振,并带动共振板振动产生超声波,这时它就是一个超声波发生器;反之,如果两电极问未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收换

31、能器。超声波发射换能器与接收换能器在结构上稍有不同,使用时应分清器件上的标志。超声波检测接收电路主要是由集成电路CX20106A组成,它是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,可以利用它制作超声波检测接收电路。实验证明用CX20106A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。适当更改电容C16的大小,可以改变接收电路的灵敏度和抗干扰能力。超声波测距仪的软件设计主要有主程序、超声波发生程序、超声波接收中断程序及显示子程序组成。我们知道C语言程序有利于实现较复杂的算法,汇编

32、语言程序则具有较高的效率且容易精细计算程序运行的时间,而超声波测距仪的程序有较复杂的计算(计算距离时),所以控制程序可采用C语言编程。超声波测距仪主程序利用外中断1检测返回超声波信号,一旦接收到返回超声波信号(即INT1引脚出现低电平),立即进入中断程序。进入中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断1关闭,并将测距成功标志字赋值2以表示此次测距不成功。超声波测距的算法设计原理为超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就被超声波接收器R所接收到。这样只要计算出从发

33、出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。在启动发射电路的同时启动单片机内部的定时器T0,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生一个负跳变,在INT1端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。在元件及调制方面,由于采用的电路使用了很多集成电路。外围元件不是很多,所以调试不会太难。一般只要电路焊接无误,稍加调试应该会正常工作。电路中除集成电路外,对各电子元件也无特别要求。根据测量范围要求不同,可适当调整与接收换能器并接的滤波电容C16的大小,以获得

34、合适的接受灵敏度和抗干扰能力。若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力。致 谢首先,我要感谢我的导师郑良田、崔爱霞老师在毕业设计中对我给予的悉心指导和严格要求,同时也感谢本校的一些老师在毕业设计这期间所给予我的帮助。在毕业设计论文写作期间,各位老师给我提供了种种专业知识上的指导和日常生活上的关怀,没有您们这样的帮助和关怀,我不会这么顺利的完成毕业设计,借此机会,向您们表示由衷的感激。同时还要感谢系实验室在毕业设计期间提供给我们优越的实验条件。接着,我要感谢和我一起做毕业设计的同学们。在毕业设计的短短3个月里,你们给我提出很多宝贵的意见,给予了我不少帮助还有工作上的支持,在此也真

35、诚的谢谢你们。同时,我还要感谢我的寝室同学和身边的朋友,真是在这样一个团结友爱、相互促进的环境中,在和他们的相处帮助和启发中,才有我今天的小小收获。最后我要深深地感谢我的家人,真是他们含辛茹苦地把我养育成人,在生活和学习上给予我无尽的关怀、理解和支持,才使我时刻充满信心和勇气,克服成长道路上的种种困难,顺利的完成大学学习。还有许许多多给予我学业上鼓励和帮助的朋友,在此无法一一列举,在此也一并表示衷心地感谢!1胡平,超声波测距仪的研制,计算机与现代化,2003.102时德刚,刘哗。超声波测距的研制,计算机测量与控制,2002.103华兵。MCS-51单片机原理应用,武汉:武汉华中科技大学出版社,

36、2002.5。125-144页。4李华。MCU-51系列单片机实用接口技术,北京:北京航天大学出版社,1993.6。376-380页。5郁有文。传感器原理及工程应用M.西安:西安电子科技大学出版社,2000。6中国电子学会敏感技术分会,北京电子学会.2000/2001 传感器与执行器大全(年卷) M.北京:电子工业出版社,2001。7刘和平等。PIC16F87X单片机实用技术与接口技术C语言及其应用M。北京:北京航空航天大学出版社,2002.4。8陈新建。PIC系列单片机程序设计与开发应用M。北京:北京航空航天大学出版社,2007.5。9张明峰。PIC单片机入门与实战M. 北京:北京航空航天大

37、学出版社,2004.410Myke Predko著;胡光华译。PIC微控制器基础与实践M。北京:科学出版社,2007.5。11刘笃仁主编。基于PIC16F87X系列M。西安:电子工业出版社,2005.1。285-291页。12黄智伟主编。全国大学生电子设计竞赛训练教程M。西安:电子工业出版社,2005.1。13牛余朋,成曙。基于单片机的超声波测距系统J。北京:兵工自动化,2005.2。78-88页。14何莉,曾宪文,徐霞。基于PIC单片机的超声波测距系统J。北京:压电与声光,第26卷第2期,2004年4月。15宋敬国,李元宗,徐玉华。PIC单片机在超声波测距系统中的应用J。北京:机械工程与自动

38、化,第4期(总第143期),2007年8月。16姜道连,宁延一,袁世良。用AT89C2051设计超声波测距仪J。TI:国外电子元器件,2000,第12月。17苏伟,巩壁建。超声波检测距误差分析。传感器技术,2004。257-274页。附录二 程序清单/*包含头文件*/#include<stdio.h>#include<math.h>#include<intrins.h>#include<reg52.h>#define NOP _nop_();_nop_();_nop_()#define uchar unsigned char#define uin

39、t unsigned int#define ufloat unsigned float#define ulong unsigned long/*常量定义*/#definecircle0xf2/循环播放#definestop_play 0xfe/停止播放#definevo_00xe0/音量1#definevo_10xe1/音量2#definevo_20xe2/音量3#definevo_30xe3/音量4#definevo_40xe4/音量5#definevo_50xe5/音量6#definevo_60xe6/音量7#definevo_70xe7/音量8/*位定义*/sbit RST=P20;sb

40、it CS=P21;/片选端sbit CLK=P22;/时钟sbit DAT=P23;/数据位sbit busy=P30;/忙信号/*函数名:void send_com(uchar add)/功能:发码播放,add为语音地址*/sbit DQ = P26; /定义DS18B20端口DQuchar presence ;uchar temp_data2=0x00,0x00;uchar display5=0x00,0x00,0x00,0x00,0x00;uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04, 0x05,0x06,0x06

41、,0x07,0x08,0x08,0x09,0x09;bit flash=0; /显示开关标记/*位定义/*/sbit csb=P36;sbit green=P23;sbit yellow=P24;sbit red=P25;bit flag_1=0;uchar vo_vo=0xe7;uint speed=340;uint temp2;uint temp;#definenop_nop_()uint count=0;uchar high_time,low_time,flag=0,tc=2;uchar flag_2=0;uchar tc_say=0;uint dis,dis_49;#define uc

42、har unsigned char#define uint unsigned int/*12864LCD引脚定义*/sbit LCD_CS=P10; /寄存器选择输入sbit SID=P11; /液晶读/写控制sbit SCLK=P12; /液晶使能控制#define delayNOP(); _nop_();_nop_();_nop_();_nop_();/*延时*/void delay_ms(uint t)unsigned char i;while(t-)for(i=123;i>0;i-) ;void delay(int ms) while(ms-) uchar i; for(i=0;

43、i<246;i+) _nop_();_nop_();_nop_();_nop_(); void delay_tms(uint t) uchar k; while(t-) for(k=0; k<125; k+) /*延时函数200us*/void delay_lcd(int ms) uchar t; while(ms-) for(t=0; t<20; t+) ; /*延时n个ms函数*/void delay_nms(uint ms) /delay ms function uchar i;while(ms-) for(i = 0; i < 123; i+); /*延时100

44、us函数*/void delay100us()uchar j;for(j=50;j>0;j-);/*发送一个字节*/void sendbyte(uchar bbyte) uchar i; for(i=0;i<8;i+) SID=bbyte&0x80; /取出最高位 SCLK=1; _nop_(); _nop_(); SCLK=0; bbyte<<=1; /左移 /*写指令或数据函数*/void write(bit start, uchar ddata) uchar start_data,Hdata,Ldata; if(start=0) /11111,(0),(0

45、),0 start_data=0xf8; /写指令 else /11111,(0),(1),0 start_data=0xfa; /写数据Hdata=ddata&0xf0; /取高四位 Ldata=(ddata<<4)&0xf0; /取低四位 sendbyte(start_data); /发送起始信号 delay_lcd(1); /延时 sendbyte(Hdata); /发送高四位 delay_lcd(1); /延时 sendbyte(Ldata); /发送低四位 delay_lcd(1); /延时 /函数名:void lcd_pos(uchar X,uchar

46、Y)/功能: 设定显示位置*/void lcd_pos(uchar X,uchar Y) uchar pos; if (X=1) X=0x80; elseif (X=2)X=0x90;elseif (X=3)X=0x88;elseif (X=4)X=0x98; pos = X+Y ; write(0,pos);/lcd_wcmd(pos); /写位置命令/*函数名:show(uint ss)/功能:显示测试数据*/void show(uint ss) uchar data_s2,i; data_s0=ss/10000; /数据的处理 if(data_s0=0) /测量数据的十米位为0 data

47、_s0=0x20; else data_s0=data_s+0x30;/? data_s1=ss%10000/1000+0x30; lcd_pos(3,5); /第三行,第七个(2*n+1)字节位置显示 write(1,data_s1);/for(i=0;i<2;i+) / /write(1,data_si);/lcd_wdat(data_si); /显示米位数据 /delay(1);/ data_s0=ss%1000/100+0x30; data_s1=ss%100/10+0x30; lcd_pos(3,6); for(i=0;i<2;i+) write(1,data_si);/

48、lcd_wdat(data_si); /显示分米和厘米位数据 delay(1); write(1,ss%10+0x30);/lcd_wdat(ss%10+0x30); /显示毫米位数据 delay(1);/*程序功能:ST7920控制芯片(汉字库),串口模式。12864 图片与文字显示*/uchar code DIS1 = "超声波测距中."uchar code DIS3 = "距障碍物: . m"uchar code DIS4 = "测距情况: 安全 "uchar code DIS5 = "测距情况: 请保持"u

49、char code DIS6 = "测距情况: 危险!"uchar code DIS8 = " "uchar code DIS9 = "超声波倒车测距仪"uchar code DIS10= " V1.0 2008.12.4 "uchar code point4= "."uchar code space4= " "/*初始化LCD*/void lcd_init() delay_lcd(10); /延时等待LCM进入工作状态 LCD_CS=1; /片选 高电平有效 write(0

50、,0x30); /基本指令操作 write(0,0x0c); /显示打开,光标关,反白关 write(0,0x01); /清屏,将DDRAM的地址计数器归零 write(0,0x06);/*图形显示*/void photodisplay(uchar *bmp) uchar i,j; write(0,0x34); /写数据时,关闭图形显示 for(i=0;i<32;i+) write(0,0x80+i); /先写入水平坐标值 write(0,0x80); /写入垂直坐标值 for(j=0;j<16;j+) /再写入两个8位元的数据 write(1,*bmp+); delay_lcd(

51、1); for(i=0;i<32;i+) write(0,0x80+i); write(0,0x88); for(j=0;j<16;j+)write(1,*bmp+);delay_lcd(1); write(0,0x36); /写完数据,开图形显示/*函数名:void clr_screen()/功能: LCD清屏*/void clr_screen() write(0,0x34);/lcd_wcmd(0x34); /扩充指令操作 delay(5); write(0,0x30);/lcd_wcmd(0x30); /基本指令操作 delay(5); write(0,0x01);/lcd_wcmd(0x01); /清屏 delay(5);/*函数名:void displayall

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论