基于单片机超声波测距系统毕业设计正文.doc_第1页
基于单片机超声波测距系统毕业设计正文.doc_第2页
基于单片机超声波测距系统毕业设计正文.doc_第3页
基于单片机超声波测距系统毕业设计正文.doc_第4页
基于单片机超声波测距系统毕业设计正文.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的超声波测距系统设计 前言 随着科技的迅猛发展越来越多科技成果被广泛的运用到人们的日常生活当中,给我 们的生活带来了诸多方便。本设计就是本着这个宗旨出发,利用超声波的特性来为我们 服务。由于超声波指向性强,因而常于距离的测量。超声波发射器向某一方向发射超声 波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回 来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为 v,根据 计时器记录的时间 t,就可以计算出发射点距障碍物的距离 s,即:s=vt/2 。这就是 所谓的时间差测距法。 利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量 精度方面能达到工业实用的要求, 随着科学技术的快速发展,超声波将的应用将越来 越广。但就目前技术水平来说,人们可以具体利用的超声波技术还十分有限,因此, 这是一个正在蓬勃发展而又有无限前景的技术及产业领域。 超声波测距技术在社会生活中已有广泛的应用如汽车倒车雷达等,它们测距精度 一般较低。目前对超声波高精度测距系统的需求越来越大。展望未来,超声波作为一 种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位 高精度的方向发展,以满足日益发展的社会需求。未来的超声波测距技术将朝着更高 精度,更大应用范围,更稳定方向发展,死角问题也能得以解决。 1 超声波测距的基本概述1、2、3 人耳能听到的声音是由于物体振动产生的,它的频率在 20HZ-20KHZ 范围内,超过 20KHZ 称为超声波,低于 20HZ 的称为次声波。超声波是在一种弹性介质中的机械振荡, 它有两种形式:横向振荡(横波)及纵向振荡(纵波) 。在工业中应用主要采用纵向振 荡。超声波可以在气体、液体及固体中传播,其传播速度受很多因素的影响。在空气 中传播超声波,其频率较低、衰减较快。超声波波长短,绕射现象小,其方向性好, 而且穿透能力很强,且碰到杂质或分界面就会有显著的反射现象。这一特性已被广泛 用于超声波探伤、测厚、测距、遥控和超声成像等技术。 1.1 超声波的波形 纵波是质点振动方向和超声波传播方向一致的波,在固体、液体和气体中传播 如图 1.1-1 所示: 横波是质点的振动方向垂直于传播方向的波,它只能在固体中传播。其传播方 向如图 1.1-2 所示: 图 1.1-1 纵波 图 1.1-2 横波 表面波是质点的振动方式介于纵波和横波之间沿着固体表面传播的波,其振幅 大小随着传播深度的增加而迅速衰减。表面波只能沿着固体表面传播,其质点运动轨 迹为椭圆形,且椭圆的长轴垂直于传播方向,而短轴平行于传播方向。传播方向如图 1.1.1-3 所示: 图 1.1.1-3 表面波 1.2 超声波的特性 超声波在介质传播过程中,会发生衰减和散射。由于受介质和杂质的阻碍或吸 收,其强度会产生衰减。尤其是超声波测距仪,对所接受的声波强度都有一定要求, 所以都要对各种衰减进行抑制。 超声波声束能集中在特定的方向上,具有良好的指向性。超声波可以在固体、 液体和气体中以不同的速度进行传播,其速度受介质温度、压力等因素的影响,但在 相同外部环境下,超声波在同一介质中的传播速度是一常数。这是超声仪表进行测距 的基础。 超声波在异种介质的界面上会产生反射、叠加等现象。利用超声波在异质界面 上发生的反射特性,获得从界面反射回来的反射波,通过内部的电路处理从而达到探 测距离的目的。 1.3 超声波测距工作原理 声波是物体机械振动状态(或能量)的传播形式。所谓振动是指物质的质点在其 平衡位置附近进行的往返运动。譬如,鼓面经敲击后,它就上下振动,这种振动状态 通过空气媒质向四面八方传播,这便是声波。 超声波是指振动频率大于20000Hz以上 的,其每秒的振动次数(频率)甚高,超出了人耳听觉的上限(20000Hz) ,人们将这种 听不见的声波叫做超声波。超声和可闻声本质上是一致的,它们的共同点都是一种机 械振动,通常以纵波的方式在弹性介质内会传播,是一种能量的传播形式,其不同点 是超声频率高,波长短,在一定距离内沿直线传播具有良好的束射性和方向性。 超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空 气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。 超声波在空气中的传播速度为v,根据计时器记录的时间t,就可以计算出发射点距障 碍物的距离(s),即: s=vt/2 (1.3-1) 这就是所谓的时间差测距法。采用超声波测量大气中的地面距离,是近代电子技 术发展才获得正式应用的技术,由于超声测距是一种非接触检测技术,不受光线、被 测对象颜色等的影响,在较恶劣的环境(如含粉尘)具有一定的适应能力。因此,用途 极度广泛。例如:测绘地形图,建造房屋、桥梁、道路、开挖矿山、油井等,利用超声 波测量地面距离的方法,是利用光电技术实现的,超声测距仪的优点是:仪器造价比光 波测距仪低,省力、操作方便。 由于是利用超声波测距,要测量预期的距离,所以产生的超声波要有一定的功率 和合理的频率才能达到预定的传播距离,同时这是得到足够的回波功率的必要条件, 只有的得到足够的回波频率,接收电路才能检测到回波信号和防止外界干扰信号的干 扰。经分析和大量实验表明,频率为40KHz左右的超声波在空气中传播效果最佳,同时 为了处理方便,发射的超声波被调制成具有一定间隔的调制脉冲波信号。 1.4 超声波传感器原理与选型4、5 超声波传感器主要材料有压电晶体(电致伸缩)及镍铁铝合金(磁致伸缩)两类。 电致伸缩的材料有锆钛酸铅(PZT)等。压电晶体组成的超声波传感器是一种可逆传感 器,它可以将电能转变成机械振荡而产生超声波,同时它接收到超声波时,也能转变 成电能,所以它可以分成发送器或接收器。小型超声波传感器,发送与接收略有差别, 它适用于在空气中传播,工作频率一般为23-25kHz 及40-45kHz。这类传感器适用于测 距、遥控、防盗等用途。若对发送传感器内谐振频率为40kHz 的压电陶瓷片(双晶振子) 施加40kHz 高频电压,则压电陶瓷片就根据所加高频电压极性伸长与缩短,于是发送 40kHz 频率的超声波,其超声波以疏密形式传播( 疏密程度可由控制电路调制),并传 给波接收器。接收器是利用压力传感器所采用的压电效应的原理,即在压电元件上施 加压力,使压电元件发生应变,则产生一面为“+”极,另一面为“-”极的40kHz 正弦 电压。因该高频电压幅值较小,还必须进行放大。 常用的超声波传感器有 T/R-40-60,T/R-40-12 等(其中 T 表示发送,R 表示接收, 40 表示频率为 40kHZ,16 及 12 表示其外径尺寸,以毫米计) 。本设计选用 T/R-40-12 超声波传感器。 1.5 温度传感器原理与选型 本系统选用 DS18B20 温度传感器作为误差补偿装置。DS18B20 是美国 DALLAS 半导 体公司生产的 1WIRE 数字温度传感器,它可实现数字化输出和测试,并且有控制功 能强、传输距离远、抗干扰能力强、微功耗等特点。DS18B20 的主要特性: 适应电压范围更宽,电压范围 3.05.5V,在寄生电源方式下可由数据线供电。 独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微处 理器与 DS18B20 的双向通讯。 DS18B20 支持多点组网功能,多个 DS18B20 可以并联在唯一的三线上,实现组网多 点测温。 DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只 三极管的集成电路内。 温度范围55125,在-10+85时精度为0.5。 可编程的分辨率为 912 位,对应的可分辨温度分别为 0.5、0.25、0.125 和 0.0625,可实现高精度测温。 在 9 位分辨率时最多在 93.75ms 内把温度转换为数字,12 位分辨率时最多在 750ms 内把温度值转换为数字,速度更快。 测量结果直接输出数字温度信号,以一线总线串行传送给 CPU,同时可传送 CRC 校验码,具有极强的抗干扰纠错能力。 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 2 超声波测距系统硬件设计 2.1 超声波测距系统基本框图 由单片机发出 40kHz 的方波信号进入超声波发射电路,经 LM386 功率放大芯片放 大后进入超声波发射头。超声波发射头发射的超声波在空气中传播一段时间后经前方 被检测物体反射回来,由超声波接收头接收,超声波电路中的 20106 接收芯片对信号 放大整形,超声波接收电路接收回波后发出一个下拉电平使单片机进入中断程序,在 中断程序中,单片机从温度检测电路读取数值并换算成当前温度下的声速,应用时差 法计算所检测的距离,最后所有的数据都在 LCD 显示电路上显示。超声波测距系统基 本框图如图 2.1-1 所示: 单片机 控制器 超声波发 射电路 超声波 接收电路 LCD 显 示电路 温度检测 电路 图 2.1-1 超声波测距系统基本框图 2.2 超声波测距的主控芯片 本设计采用的 AT89C51 是美国 ATMEL 公司生产的低电压,高性能 CMOS8 位单片机, 片内含 4k bytes 的可反复擦写的只读程序存储器(PEROM)和 128 bytes 的随机存取 数据存储器(RAM) ,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标 准 MCS-51 指令系统,片内置通用 8 位中央处理器(CPU)和 Flash 存储单元,功能强 大 AT89C51 单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。 单片机是依赖程序来运行的,并且可以修改。通过不同的程序实现不同的功能, 尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是 花大力气也很难做到的。只因为单片机的通过你编写的程序可以实现高智能,高效率, 以及高可靠性! 2.2.1 AT89C51 功能特性及性能参数 AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个IO 口线,两个16位定时计数器,一个5向量两级中断结构,一个全双工串行通 信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两 种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时计数器, 串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁 止其它所有部件工作直到下一个硬件复位。其参数性能如下: 与MCS-51产品指令系统完全兼容 4k字节可重擦写Flash闪速存储器 1000次擦写周期 全静态操作:0Hz24MHz 三级加密程序存储器 1288字节内部RAM 32个可编程IO口线 2个16位定时计数器 6个中断源 可编程串行UART通道 低功耗空闲和掉电模式 2.2.2 AT89C51 的引脚功能说明 单片机AT89C51的引脚图如图2.2.2-1所示: 图2.2.2-1 单片机AT89C51的引脚图 各引脚功能介绍: Vcc:电源电压;GND:地 P0口:P0 口是一组8 位漏极开路型双向IO 口,也即地址数据总线复用口。 作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作 高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址 (低8位)和数据总线复用,在访问期间激活内部上拉电阻。在FIash编程时,P0口接 收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 P1口: P1是一个带内部上拉电阻的8位双向IO口,P1的输出缓冲级可驱动 (吸收或输出电流)4个TTL逻辑门电路。对端口写“1” ,通过内部的上拉电阻把端口 拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚 被外部信号拉低时会输出一个电流(IIL) 。FIash编程和程序校验期间,P1接收低8位 地址。 P2口:P2是一个带有内部上拉电阻的8位双向IO口,P2的输出缓冲级可驱动 (吸收或输出电流)4个TTL逻辑门电路。对端口写“1” ,通过内部的上拉电阻把端口 拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚 被外部信号拉低时会输出一个电流(IIL) 。在访问外部程序存储器或16位地址的外部 数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。在访问8 位地 址的外部数据存储器(如执行MOVXRI 指令)时,P2 口线上的内容(也即特殊功能寄 存器(SFR)区中R2寄存器的内容) ,在整个访问期间不改变。Flash编程或校验时,P2 亦接收高位地址和其它控制信号。 P3口:P3口是一组带有内部上拉电阻的8 位双向IO 口。P3 口输出缓冲级可 驱动(吸收或输出电流)4 个TTL逻辑门电路。对P3 口写入“1”时,它们被内部上拉 电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3 口将用上拉电阻输出电流。 P3口除了作为一般的IO口线外,更重要的用途是它的第二功能。P3口还接收一 些用于Flash闪速存储器编程和程序校验的控制信号。 RST 复位输入:当振荡器工作时,RST引脚出现两个机器周期以上高电平将使 单片机复位。 ALEPROG: 当访问外部程序存储器或数据存储器时,ALE(地址锁存允许) 输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE 仍以时钟振荡频率 的l6 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是: 每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还 用于输入编程脉冲(PROG) 。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单 元的DO 位置位,可禁止ALE 操作。该位置位后,只有一条MOVX和MOVC指令ALE才会被 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。 PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当 AT89C51 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输 出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。 EA VPP 外部访问允许:欲使CPU仅访问外部程序存储器(地址为0000H FFFFH) ,EA端必须保持低电平(接地) 。需注意的是:如果加密位LB1被编程,复位时 内部会锁存EA端状态。如EA端为高电平(接VCC端) ,CPU则执行内部程序存储器中的指 令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件 是使用12V编程电压Vpp。 XTAL1: 振荡器反相放大器的及内部时钟发生器的输入端。 XTAL2 :振荡器反相放大器的输出端。 2.3 超声波发射电路设计6 由于从单片里发出的 40KHz 脉冲信号的功率较低,不能直接驱动发射换能器,因 而需要一个放大电路将脉冲信号放大后再送至发射换能器,驱动其发出与驱动信号同 频率的超声波,所以发射电路的主要功能就是放大,发射电路如图 5-2 所示。为增大 超声波的发射频率,本设计利用了单运放 LM386,LM386 是专为低损耗电源所设计的功 率放大器集成电路。它的内建增益为 20,透过 pin 1 和 pin8 脚位间电容的搭配,增益 最高可达 200。LM386 可使用电池为供应电源,输入电压范围可由 4V12V,无作动时仅 消耗 4mA 电流,且失真小。发射距离可达 3m。利用 LM386 的驱动放大功能将单片机产 生的 40kHz 方波放大输出。驱动压电式超声波发射头发射超声波。超声波发射电路如 图 2.3-1 所示: 图 2.3-1 超声波发射电路 2.4 超声波检测接收电路设计7 检测接收电路中的 CX20106A 芯片是一款红外线检波接收的专用芯片,常用于电视 机红外遥控接收器。 考虑到红外遥控常用的载波频率 38kHz 与测距超声波频率 40kHz 较为接近,可以 利用它作为超声波检测电路,超声波接收头将机械能转换为电信号。但这个电信号非 常微弱,必须经过放大,CX20106A 芯片完成放大调制的功能。 实验证明,CX20106A 芯片具有很高的灵敏度和较强的抗干扰能力。内部电路由前 置放大器、自动偏置电平控制电路、限幅放大器、带通滤波器、峰值检波器和整形输 出电路组成。接收的回波信号先经过前置放大器和限幅放大器,将信号调整到合适的 幅值;再经过带通滤波器滤波得到有用信号,滤除干扰信号;最后由峰值检波器和整 形电路输出到锁相环路,实现准确的计时。 1 脚是接收信号输入端。2 脚是调节接收信号灵敏度,电阻越小,灵敏度越高。电 容越大,灵敏度越高。电容一般取 1F,电阻 50300 的,在干扰较大的场合增加 电阻阻值可将灵敏度调低,干扰小的场合减小阻值将灵敏度调高。5 脚主要用来调节中 心频率,这里取 200 k,7 脚接上拉电阻,这里取 1 k 左右。 US_R1 为超声波接收头,当收到超声波时产生一个下降沿,接到单片机的外部中 断 INT0 上。当超声波接收头接收到 40kHz 方波信号时,将会将此信号通过 CX20106A 驱动放大送入单片机的外部中断 0 口。单片机在得到外部中断 0 的中断请求后,会转 入外部中断 0 的中断服务程序进行处理。检测接受电路如图 2.4-1 所示: 图 2.4-1 检测接受电路 2.5 超声波温度补偿电路设计8 在本设计中,采用的 DALLAS 半导体器件公司生产的一种可编程数字温度传感器芯 片 DS18B20 来采集温度,该数字温度传感器为独特的 1-Wire 总线接口,全部传感元件 及转换电路集成在一只形如三极管的集成电路内。外型如图 2.5-1 所示: 图 2.5-1 DS18B20 它仅占用 MCU 一只引脚,具有操作简单,温度测量快,精度高等优点。它具有微 型化、低功耗,直接将测得的结果以串行数字信号输出,其中一根线接电源正极,另 一根线接电源负极。只需占用一个普通 I/O 线就可完成与单片机的硬件接口,具有使 用简单方便、分辨率高的优点。其接线电路如图 2.4-2 所示: 123456 A B C D 654321 D C B A Title Num berRevisionSize B Date:9-Jun-2005 Sheet of File:H:Backup of 原原原.DDBDrawn By: R14 4.7K GND 1 DQ 2 VDD 3 U6 DS18B20 VCC Tem p_In 图 2.4-2 温度传感器电路 2.6 超声波显示电路设计 采用字符型 LCD 显示。LCD 字符型液晶显示模块是一类专门用于显示字母、数字、 符号等的点阵式液晶显示模块。LCD1602 应用很普遍,市面上字符液晶绝大多数是基于 HD44780 液晶芯片的,控制原理是完全相同的,因此 HD44780 写的控制程序可以很方便 地应用于市面上大部分的字符型液晶。字符型 LCD 通常有 14 条引脚线或 16 条引脚线 的 LCD,多出来的 2 条线是背光电源线 VCC(15 脚)和地线 GND(16 脚),16 脚接口的管 脚发布如下: 第 1 脚:VSS 为电源地 第 2 脚:VDD 接 5V 电源正极 第 3 脚:V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对 比度最高(对比度过高时会产生“鬼影” ,使用时可以通过一个 10K 的电位器调整对比 度) 。 第 4 脚:RS 为寄存器选择,高电平 1 时选择数据寄存器、低电平 0 时选择指令寄 存器。 第 5 脚:RW 为读写信号线,高电平(1)时进行读操作,低电平(0)时写操作。 第 6 脚:E(或 EN)端为使能(enable)端。 第 714 脚:D0D7 为 8 位双向数据端。 第 1516 脚:空脚或背灯电源。 3 超声波测距系统软件设计 超声波测距仪的软件设计主要由主程序、超声波发生子程序、超声波接收中断程 序及显示子程序组成。我们知道 C 语言程序有利于实现较复杂的算法,汇编语言程序 则具有较高的效率且容易精细计算程序运行的时间,而超声波测距仪的程序既有较复 杂的计算(计算距离时),又要求精细计算程序运行时间(超声波测距时),所以控 制程序可采用 C 语言和汇编语言混合编程。 3.1 超声波测距的算法设计 超声波测距的原理为超声波发生器 T 在某一时刻发出一个超声波信号,当这个超 声波遇到被测物体后反射回来,就被超声波接收器 R 所接收到。这样只要计算出从发 出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距 离。距离的计算公式为: d=s/2=(ct)/2 (3.1-1) 其中,d 为被测物与测距仪的距离,s 为声波的来回的路程,c 为声速,t 为声波来 回所用的时间。 在启动发射电路的同时启动单片机内部的定时器 T0,利用定时器的计 数功能记录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电 路输出端产生一个负跳变,在 INT0 或 INT1 端产生一个中断请求信号,单片机响应外 部中断请求,执行外部中断服务子程序,读取时间差,计算距离。其部分源程序如下: RECEIVE0:PUSH PSW PUSH ACC CLR EX0 ;关外部中断 0 ? MOV R7, TH0 ;读取时间值 MOV R6, TL0? CLR C MOV A, R6 SUBB A, #0BBH;计算时间差 MOV 31H, A ;存储结果 MOV A, R7 SUBB A, #3CH MOV 30H, A? SETB EX0 ;开外部中断 0 POP ACC? POP PSW RETI 3.2 系统程序设计 系统程序首先是对系统环境初始化,设置定时器 T0 工作模式为 16 位定时计数器 模式。置位总中断允许位 EA 并给显示端口 P0 和 P1 清 0。然后调用超声波发生子程序 送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发, 需要延时约 0.1 ms 后,才打开外中断 0 接收返回的超声波信号。由于采用的是 12 MHz 的晶 振,计数器每计一个数就是 1s,当主程序检测到接收成功的标志位后,将计数 器 T0 中的数(即超声波来回所用的时间)按式(3.2-1)计算,即可得被测物体与测 距仪之间的距离,设计时取 20时的声速为 344 m/s 则有: d=(ct)/2=172T0/10000cm (3.2-1) 其中,T0 为计数器 T0 的计算值。测出距离后结果将以十进制 BCD 码方式送往 LED 显示 约 0.5s,然后再发超声波脉冲重复测量过程。 本设计程序采用模块化编程,包括主程序模块,超声波测距程序模块,显示模块, 温度测量模块,外部中断模块。系统程序流程图设计如图 3.2-2 所示: 图 3.2-2 系统程序设计图 4 系统调试与误差分析9 4.1 单片机的编译环境 4.1.1 Keil C51 编译 KEIL C51 标准 C 编译器为 8051 微控制器的软件开发提供了 C 语言环境,同时保留 了汇编代码高效,快速的特点。C51 编译器的功能不断增强,使你可以更加贴近 CPU 本 通过 lcd 显示 计算出距离值 延时 0.5s 关闭计数器 换算当前温度下的声 速 读取温度值 计算超声波传播时 间 发 40kHz 方波 3 个周期,开启计数 器 发射信号进入中 断 Lcd 初始化 开始 身,及其它的衍生产品13。C51 已被完全集成到 uVision2 的集成开发环境中,这个 集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。 uVision2 IDE 可为它们提供单一而灵活的开发环境。 C51 V7 版本是目前最高效、灵活的 8051 开发平台。它可以支持所有 8051 的衍生 产品,也可以支持所有兼容的仿真器,同时支持其它第三方开发工具。因此,C51 V7 版本无疑是 8051 开发用户的最佳选择。 KEIL C51 编译器在遵循 ANSI 标准的同时,为 8051 微控制器系列特别设计。语言 上的扩展能让用户使用应用中的所有资源。存储器和特殊功能寄存器的存取: C51 编 译器可以实现对 8051 系列所有资源的操作。SFR 的存取由 sfr 和 sbit 两个关键字来提 供。变量可旋转到任一个地址空间。用关键字 at 还能把变量放入固定的存储器。存储 模式(大,中,小)决定了变量的存储类型。连接定位器支持的代码区可达 32 个,这 就允许用户在原有 64KROM 的 8015 基础上扩展程序。在 V2 的编译器和许多高性能仿真 器中,可以支持应用程序的调试。中断功能:C51 允许用户使用 C 语言编写中断服务程 序,快速进、出代码和寄存器区的转换功能使 C 语言中断功能更加高效。 可再入功能 是用关键字来定义的。多任务,中断或非中断的代码要求必须具备可再入功能。灵活 的指针:C51 提供了灵活高效的指针。通用指针用 3 个字节来存储存储器类型及目标地 址,可以在 8051 的任意存储区内存取任何变量。特殊指针在声明的同时已指定了存储 器类型,指向某一特定的存储区域。由于地址的存储只需 12 字节,因此,指针存取 非常迅速。 4.1.2 Uvision 集成开发环境 uVision2 集成开发环境包括以下两个部分: 项目管理:工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。 一个单一的 uVision2 工程能够产生一个或多个目标程序。产生目标程序的源文件构成 “组” 。开发工具选项可以对应目标,组或单个文件。 uVision2 包含一个器件数据库 (device database),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满 足用户充分利用特定微控制器的要求。此数据库包含:片上存储器和外围设备的信息, 扩展数据指针(extra data pointer)或者加速器(math accelerator)的特性。 uVision2 可以为片外存储器产生必要的连接选项:确定起始地址和规模。 集成功能:uVision2 的强大功能有助于用户按期完工。集成源极浏览器利用符号 数据库使用户可以快速浏览源文件。用详细的符号信息来优化用户变数存储器。 文件 寻找功能:在特定文件中执行全局文件搜索。工具菜单:允许在 V2 集成开发环境下启 动用户功能。 可配置 SVCS 接口:提供对版本控制系统的入口。 PCLINT 接口:对应 用程序代码进行深层语法分析。Infineon 的 EasyCase 接口:集成块集代码产生。 Infineon 的 DAVE 功能:协助用户的 CPU 和外部程序。DAVE 工程可被直接输入 uVision2。 4.1.3 测试程序 uVision2 调试器具备所有常规源极调试,符号调试特性以及历史跟踪,代码覆盖, 复杂断点等功能DDE 界面和 shift 语言支持自动程序测试 CPU 和外设模拟装置:uVision2 为 8051 及衍生产品提供了高速 CPU 模拟功能和片 上扩展口在对话框内可直接观察和修改 I/O 值,也可以用预装的 C-LIKE 宏指令书写 符号函数来提供动态输入。 目标监控器:uVision2 含一个可配置的监控器,可测试目标器件上的软件体。监 控器用 uVision2 的调试器直接工作,可支持代码区。它要求目标系统具备 6 字节堆栈 空间,6KB 的代码 ROM 和 256 字节 Xdata RAM。 MCB517/251 启动工具包:在开始一项 8051 工程时,MCB 启动工具会对你有很大帮 助。每一个启动工具包括一套 2K 字节的开发工具和许多可快速运行的举例程序。用户 可在检测 8051 性能的同时,查看开发工具的可行性。 MCB517AC 板含高性能 Infineon C517A 单片机,它提供标准 8052 外围设备和 A/D 转换器,PWM,搜索/比较,8 位数据指针,一个高速运算单元。同时包含对 81C90CAN 控制器和代码区的支持。 4.2 超声波测距电路调试 通过多次实验,对电路各部分进行了测量、调试和分析。 首先测试发射电路对信号放大的倍数,先用信号源给发射电路输入端一个 40kHz 的方波信号,峰-峰值为 3.8V。经过发射电路后,其信号峰-峰值放大到 10V 左右。 40kHz 的方波驱动超声波发射头发射超声波,经反射后由超声波接收头接收到 40kHz 的正弦波,由于声波在空气中传播时衰减,所以接收到的波形幅值较低,经接收 电路放大,整形,最后输出一负跳变,在单片机的外部中断源输入端产生一个中断请 求信号。 该测距电路的 40kHz 方波由单片机编程产生,方波的周期为 1/40ms,即 25s,半 周期为 12.5s。每隔半周期时间,让方波输出脚的电平取反,便可产生 40kHz 方波。 由于 12M 晶振的单片机的时间分辨率是 1s,所以只能产生半周期为 12s 或 13s 的方 波信号,频率分别为 41.67kHz 和 38.46kHz。本系统在编程时选用了后者,让单片机产 生约 38.46kHz 的方波。 4.3 系统误差分析 超声波是以声波的形式所进行的能量传播。一般来说,超声波传播的距离大或是 速度慢,能量消耗就大,倘若超声波的能量全部消耗在传播途中或是声波改变方向, 就接收不到回波信号。而超声波传播的速度与弹性介质的种类和状况关系极大,通常 说的声速每秒340米,其传播介质是15的标准空气。研究表明,声波的传播速度与温 度是成正比的,在近地层中,当气温随高度增加而降低时,声音的传播速度随高度增 加而减小,声波的射线就会向上弯曲(俗称声音起飞了);反之,当气温随高度增加而 升高,声波的传播速度就会随高度增加而增加,声波射线呈向下弯曲状,给人的听觉 就是声音在下沉 。 在相同的间隔测量距离,由于波的传播时间是相同的,但不同温度下到声速不同, 所以最终造成测量出来的距离不相等,即如果不是在标准温度下进行测量,将存在系 统误差。在超声波测距系统中,影响测量精度的因素很多,包括现场环境干扰、时基 脉冲频率等;但环境温度对声速的影响最大,从超声波声速经验公式 可以看出,在 0-40时,声速变化范围为 331.4m/s354.85m/s。以 Tv61 . 0 4 . 331 超声波在 20的室温条件下的声速 343.32m/s 为基准,其变化率为 6.83%。所以温度 的影响不能忽略不计。所以在基于单片机 AT89C52 的超声波测距系统中,必须要对温 度进行测量和补偿,以避免温度对测量精度的影响。 5 设计总结 本设计是以 AT89C51 为核心,利用单片机的运算和控制功能,利用超声波的特性 设计出的一种简单的测距系统。利用超声波检测往往比较迅速、方便、计算简单、易 于做到实时控制,并且在测量精度方面能达到工业实用的要求, 随着科学技术的快速发 展,超声波将的应用将越来越广。但就目前技术水平来说,人们可以具体利用的超声 波技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。 经过近一年毕业设计,我要感谢我的指导教师陈钢老师在毕业设计中对我给予的 悉心指导和严格要求。在我毕业设计写作期间,老师给我提供了种种专业知识上的指 导和日常生活上的关怀,没有您们这样的帮助和关怀,我不会这么顺利的完成毕业设 计,借此机会,向您们表示由衷的感激。 接着,我要感谢和我一起做毕业设计的同学。在毕业设计的短短几个月里,你们 给我提出很多宝贵的意见,给了我不少帮助还有工作上的支持,在此也真诚的谢谢你 们。同时,我还要感谢我的寝室同学和身边的朋友,正是在这样一个相互促进的环境 中,在和他们的相互帮助和启发中,才有我今天的小小收获。 最后我要深深地感谢我的家人,正是他们含辛茹苦地把我养育成人,在生活和学 习上给予我无尽的爱、理解和支持,才使我时刻充满信心和勇气,克服成长路上的种 种困难,顺利的完成大学学习。 参考文献: 1 刘凤然: 基于单片机的超声波测距系统, 传感器世界, 2001.5, P29-P32 2 石峰: 高精度低成本车用超声波传感器的研制, 传感器世界, 2006 年 01 期, P30- P32 3 张珂,刘钢海: 提高超声波测距精度方法的研究, 现代电子技术,2007.15, P139-P141 4 何希才: 薛永毅, 传感器及其应用实例, 机械工业出版社, 2004.3, P138-P152 5 胡汉才:单片机原理及其接口技术, 清华大学出版社, 2004.2, P27-P46 6 程 周:可编程序控制器原理与应用,高等教育出版社,2006.4, P3-P7 7 吴中俊、黄永红:可编程序控制器原理及应用,机械工业出版社,2008.8 , P52- P57 8 时玮,孟军,刘波:温度修正的超声波测距控制设计, 机械工程与自动化, 2005 年 06 期, P86-P88 9 苏炜,龚壁建,潘笑:超声波测距误差分析, 传感器技术, 2004 年 06 期, P10-P13 附录:程序清单 #INCLUDE #DEFINE K1 P3_4 #DEFINE CSBOUT P3_5 /超声波发送 #DEFINE CSBINT P3_7 /超声波接收 #DEFINE CSBC=0.034 #DEFINE BG P3_3 UNSIGNED CHAR CSBDS,OPTO,DIGIT,BUFFER3,XM1,XM2,XM0,KEY,JPJS;/显示 标识 UNSIGNED CHAR CONVERT10=0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F;/09 段 码 UNSIGNED INT S,T,I, XX,J,SJ1,SJ2,SJ3,MQS,SX1; BIT CL; VOID CSBCJ(); VOID DELAY(J); /延时函数 VOID SCANLED(); /显示函数 VOID TIMETOBUFFER(); /显示转换函数 VOID KEYSCAN(); VOID K1CL(); VOID K2CL(); VOID K3CL(); VOID K4CL(); VOID OFFMSD(); VOID MAIN() /主函数 EA=1; /开中断 TMOD=0X11; /设定时器 0 为计数,设定时器 1 定时 ET0=1; /定时器 0 中断允许 ET1=1; /定时器 1 中断允许 TH0=0X00; TL0=0X00; TH1=0X9E; TL1=0X57; CSBDS=0; CSBINT=1; CSBOUT=1; CL=0; PTO=0XFF; JPJS=0; SJ1=45; SJ2=200; SJ3=400; K4CL(); TR1=1; WHILE(1) KEYSCAN(); IF(JPJSSJ3) BUFFER2=0X76; BUFFER1=0X76; BUFFER0=0X76; ELSE IF(SSJ1) BUFFER2=0X40; BUFFER1=0X40; BUFFER0=0X40; ELSE TIMETOBUFFER(); ELSE TIMETOBUFFER(); /将值转换成 LED 段码 OFFMSD(); SCANLED(); /显示函数 IF(S=1; /循环右移 1 位 VOID TIMETOBUFFER() /转换段码功能模块 XM0=S/100; XM1=(S-100*XM0)/10; XM2=S-100*XM0-10*XM1; BUFFER2=CONVERTXM2; BUFFER1=CONVERTXM1; BUFFER0=CONVERTXM0; VOID DELAY(I) WHILE(-I); VOID TIMER1INT (VOID) INTERRUPT 3 USING 2 TH1=0X9E; TL1=0X57; CSBDS+; IF(CSBDS=40) CSBDS=0; CL=1; VOID CSBCJ() IF(CL=1) TR1=0; TH0=0X00; TL0=0X00; I=10; WHILE(I-) CSBOUT=!CSBOUT; TR0=1; I=MQS; /盲区 WHILE(I-) I=0; WHILE(CSBINT) I+; IF(I=2450) /上限值 CSBINT=0; TR0=0; TH1=0X9E; TL1=0X57; T=TH0; T=T*256+TL0; S=T*CSBC/2; TR1=1; CL=0; VOID KEYSCAN() /健盘处理函数 XX=0; IF(K1!=1) / 判断开关是否按下 DELAY(400); /延时去抖动 IF(K1!=1) / 判断开关是否按下 WHILE(!K1) DELAY(30); XX+; IF(XX2000) JPJS+; IF(JPJS4) JPJS=0; XX=0; SWITCH(JPJS) CASE 1: K1CL();BREAK; CASE 2: K2CL();BREAK; CASE 3: K3CL();BREAK; CASE 4: K4CL();BREAK; VOID K1CL() SJ1=SJ1+5; IF(SJ1100) SJ1=30; S=SJ1; VOID K2CL() SJ2=SJ2+5; IF(SJ2500) SJ2=40; S=SJ2; VOID K3CL() SJ3=SJ3+10; IF(SJ3500) SJ3=100; S=SJ3; VOID K4CL() SX1=SJ1-1; SX1=SX1/CSBC; MQS=SX1/4.5; VOID OFFMSD() IF (BUFFER0 = 0X3F) BUFFER0 = 0X00; 袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆

温馨提示

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

评论

0/150

提交评论