《毕业论文打印版》word版.doc_第1页
《毕业论文打印版》word版.doc_第2页
《毕业论文打印版》word版.doc_第3页
《毕业论文打印版》word版.doc_第4页
《毕业论文打印版》word版.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

2010 届毕业设计(论文) 题 目: 基于单片机的超声波测距的设计 学 院: 电子与信息工程学院 专 业: 通信工程 班 级: 通信0602班 姓 名: 指导教师: 起讫时间: 2010-03-012010-6-18 2010年6月38基于单片机的超声波测距的设计摘 要在空气介质中,由于超声波传播不易受干扰,能量消耗缓慢,传播的距离较远,因而超声波经常用于距离的测量。为此,深入研究超声波的产生与传播规律、开发高性能超声波换能器及其收发电路,对于超声波检测技术的发展具有十分重要的现实意义。本设计利用SST89E58RD单片机作为主控制器,结合超声波测距的原理,实现倒车雷达防撞报警功能。文中主要介绍了硬件方面和软件方面的设计,其中检波接收电路和温度补偿电路分别采用了CX20106A和DS18B20两款集成芯片,减小了电路间的相互干扰,提高了超声波测距的精度。该系统的最大测距误差为1cm,测距范围为10250cm。除此之外,系统还具有结构简单,体积小,使用方便等特点。本次课题的实验结果达到了预期要求,设计出的系统可以利用超声波进行测距并显示在数码管上,同时进行报警,具有一定的实用价值。关键词:超声波 测距 单片机目 录摘 要The Design of Ultrasonic Distance Measurement Based on MCU AbstractIn the medium, the ultrasonic wave transmission is not easy to disturb, its energy consumption is slowly and it can be transmitted distantly, so it is frequently used in ultrasonic distance measurement. Therefore, the in-depth study of the generation and transmission law of ultrasonic and the development of high-performance ultrasonic sensor and transmit and receive circuits is of great practical significance in the development of ultrasonic detection technology.The design using single-chip SST89E58RD as the master combined with the principle of ultrasonic distance measurement to realize the back-draft anti-collision alarm function. The designs of the hardware circuits and the software are introduced in this paper. The integrated chips of CX20106A and DS18B20 are separately used in the detection receiving circuit and the temperature compensation circuit, the mutual disturbance between circuits is reduced. The maximum distance measurement error is 1cm, and the range of the system is 10250 cm. Besides that, this system has simple structure, small size, easy-to-use features and so on.The experiment result meets the anticipated requirements. The system designed can be used in ultrasonic distance measurement. The distance can be displayed and alarming at the same time. The study on this design has certain practical value.Key Words: Ultrasonic; Distance measurement; MCU目 录摘 要IAbstractII第一章 绪论51.1 超声波测距的背景51.2 超声波测距的研究现状51.3 超声波测距的系统设计和工作过程61.3.1 超声波测距的系统设计61.3.2 超声波测距的工作过程71.4 本文的内容安排8第二章 超声波测距的硬件设计92.1 SST89E58RD单片机主控系统电路设计92.1.1 80C51单片机基本组成92.1.2 SST89E58RD单片机的特性102.1.3 复位电路和时钟电路112.1.4 主控制模块硬件电路122.2 超声波发射和接收模块122.2.1 超声波传感器122.2.2 超声波的发射电路设计132.2.3 超声波的接收电路设计142.3 温度补偿模块142.3.1 DS18B20性能特点152.3.2 DS18B20的内部结构152.3.3 DS18B20的测温原理152.3.4 DS18B20与单片机的接口电路162.4 数码管和LED显示模块172.4.1 数码管显示模块172.4.2 LED显示模块192.5 声音报警模块202.5.1 蜂鸣器的简介202.5.2 声音报警的实现202.6 超声波测距系统的整体电路图20第三章 系统软件实现过程223.1 软件开发环境223.2 程序流程的相关介绍223.2.1 程序流程图223.2.2 程序设计思路233.3 各模块程序设计243.3.1 超声波发射和接收子程序243.3.2 温度补偿和声速计算子程序253.3.3 距离计算子程序263.3.4 显示距离和报警子程序26第四章 系统调试、分析与结果294.1 硬件电路基本调试294.2 分模块调试294.3 整体联调314.4 结果分析32第五章 总结与展望345.1 总结345.2 展望34参考文献35致 谢37南京工业大学本科生毕业设计(论文)第一章 绪论1.1 超声波测距的背景近年来,随着超声测距技术研究的不断深入和超声波防尘、防雾、非接触式的特有优点逐渐为人们所重视,超声测距的应用变得越来越普及。目前,超声测距技术已广泛地应用于机械制造、电子冶金、航海、宇航、石油化工、交通等工业领域1,大部分的超声应用问题都可以统一到超声测距问题上来。于是,超声测距这个古老而前沿的课题又重新焕发出蓬勃的生命力。深入研究超声波测距的相关技术及方法,对超声检测的应用和普及更具有重要的现实意义。目前,随着城市交通系统的负荷日益加重,汽车倒车引起的交通事故也越来越多。据有关调查统计,15%的汽车交通事故是由于倒车时汽车的后视能力不良造成的。因此,增加汽车的后视能力,研制汽车后部探测障碍物的倒车雷达成为近些年来的研究热点之一2。在弹性媒质中传播的应力、质点位移、质点速度等量的变化称为声波3,当声波频率高到超声频率范围时,则称为超声波,又称超声。超声波测距技术是一种有源非接触性测距技术,在社会生活中已有广泛的应用如汽车倒车雷达等,汽车倒车防撞预警系统即是俗称的倒车雷达,是汽车泊车辅助装置。在汽车倒车时,倒车雷达采用超声波测距原理探测汽车尾部与障碍物之间的距离,当汽车尾部与障碍物的距离达到一定的探测范围时,倒车雷达通过数码管实时动态显示当前的距离。当汽车与障碍物的距离达到设定的安全警告值时,倒车雷达发出报警声,以警示驾驶员从而安全倒车。1.2 超声波测距的研究现状迄今为止,在倒车雷达的研究中,国内外许多学者均着眼于测距传感器的研究4。目前测定汽车安全距离的技术主要有超声波测距、激光测距、微波雷达测距以及CCD摄像系统测距等几种方式5。国内外都在研究如何利用先进的技术,即汽车避撞技术,辅助汽车驾驶者对影响公路交通安全的人、车、路环境进行实时监控,在危急情况下由系统主动干涉驾驶操纵、辅助驾驶者进行应急处理、防止汽车碰撞事故的发生。随着人们对汽车驾驶辅助系统易用性要求的提高,以及单片机价格不断下降和汽车电子系统网络化发展的要求,新型的倒车雷达都是以单片机为核心的智能测距传感系统。超声波测距仪在近几十年来的研究中不断吸收多门类、多学科的知识和理论,综合了现代声学、控制论、数字信号处理和计算机应用等学科,涵盖了传感器、集成电路、机械制造等技术,领域涉及换能器阵列和机械构造研究、电路阻抗匹配研究、滤波器设计、处理器控制等方面,逐渐发展为一个综合性、专门化的研究课题,研究方向向实用化和高精化纵深发展。目前已研制出的超声测距仪中,测距量程一般为312m,美国AIRMAR公司生产的AirducerAR30超声波传感器的作用距离可达30m,但价格昂贵。精确度方面,普通阈值检测法的测量误差在4%左右。在3m12m内,多数研究成果都以绝对误差作为参照,与准确值的差距在厘米数量级范围内。如采用互相关或伪随机码等算法,精确度一般可以得到进一步提高,绝对误差可控制在0.05m以内,和激光测距、视觉传感器等方式相比,在提高测距量程和精确度方面,超声测距仪器还有很大的发展潜力和上升空间。此外,实用性也是一个重要的发展趋势,研制自动化、智能化、成本低、体积小的测距仪将为工程技术人员提供更多便利。目前超声测距在汽车运输中的应用主要有两个方面:一是在交通管制系统中,采用超声波传感检测道路车流量及车速。利用的是超声波的多普勒频移效应。在日本东京的高速公路上,每隔300m设有超声波车辆传感器。超声波传感器由于信息处理简单、快速并且价格低,在交调市场得到了广泛应用,但是其固有的一些缺陷仍旧得不到解决:(1)探测波束角过大,方向性差,往往只能获得目标的距离信息,不能准确地提供目标的距离信息,也即是说分车型误差极大,在实际应用中,往往采取其他传感器来补偿,或采用多传感器融合技术来提高测量精度等;(2)超声波受环境温度、湿度等条件的影响,以及超声固有的宽波束角,超声传感器在测距时与实际的值误差较大。二是采用超声波传感器作为汽车的防撞探测装置,属于测距范畴。利用安装在汽车前后四角的超声波传感器,发现各方向的障碍物,用蜂鸣器、指示灯和电子显示器告诉司机障碍物与汽车之间的大致距离和方向,确保车辆行驶的安全。除此之外,超声在生物学领域的酶工程、发酵工程、细胞工程以及肿瘤的生物治疗中有很广阔的应用前景,是一个崭新的研究方向6。1.3 超声波测距的系统设计和工作过程1.3.1 超声波测距的系统设计本文在深入理解超声波测距基本原理的基础上,根据实际倒车过程中驾驶员的具体需求设定了系统的性能指标,提出了基于超声波测距的汽车倒车雷达系统的整体设计方案。本文介绍基于51单片机控制的倒车雷达系统,该系统采用通用型单片机作为核心控制模块,方便系统功能扩展。在掌握超声波测距原理的基础上,完成了基于时差测距原理的一种超声波测距系统的硬件设计,其中为了进一步提高系统测量精度和系统稳定性,在硬件上增加了温度传感器测温电路。系统结构设计如图1-1所示:图1-1 系统结构示意图系统设计包含硬件设计及软件设计两部分。硬件系统主要由单片机控制电路、超声波发射和接收电路、温度补偿电路、数码管和LED显示电路及语音报警电路等五部分组成。软件开发工具选用Keil uVision3,这是开发单片机的软件,Keil uVision3提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Keil uVision3)将这些部份组合在一起。编程语言方面,采用C的编程方式。1.3.2 超声波测距的工作过程超声波测距技术,是利用超声波在空气中的定向传播特性和固体反射特性,通过接收自身反射的超声波反射信号,根据超声波发出及回波接收时间差及传播速度,计算出传播距离。超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时,超声波在空气中传播的速度为340m/s,根据计时时间t,就可以计算出发射点距障碍物的距离s,即s = 340t/2。这就是时间差测距法。本系统就是利用单片机控制超声波发射器发射超声波脉冲,同时利用单片机中的计数器开始计时。超声波达到后面的障碍物就会反射回来,接收装置接收到回波信号后由外部比较电路产生高电平使单片机产生外部中断。单片机运行中断服务子程序(ISR)计算出距离,并将距离显示在数码管上,同时产生报警。1.4 本文的内容安排本论文共分为五章,具体如下:第一章绪论,介绍了超声波测距的背景、研究现状以及超声波测距的系统设计和工作过程。第二章是超声波测距的硬件设计,先简介了超声波测距的主要原理,之后按照功能图分模块去具体给出相应的模块电路图,其间也给出了涉及到实现各个模块所需的关键器件的说明介绍,最后再组合成一个整体硬件并给出整体系统电路图。第三章软件设计过程,先介绍了单片机编程所需的软件Keil uVision3以及C语言,然后相对应硬件模块部分对整个系统的程序流程作介绍以及相应程序解析。第四章是系统的调试与分析,首先是整体硬件电路的检测,重点是软件程序部分的调试,也是分模块调试并对调试时所用到的一些调试工具作了介绍,最后介绍了整体联调的过程、调试过程需要注意的问题和对结果作了比较简要的分析。 第五章是对本论文的总结与展望。第二章 超声波测距的硬件设计2.1 SST89E58RD单片机主控系统电路设计主控制模块是本次设计的核心,因此该模块的器件选择和电路设计是最重要的,它是控制、协调系统各个模块正常完成相应功能的关键。因此,需要一个处理功能强大、外部接口较多、体积较小的智能器件作为控制核心支持主控制模块运行。而单片机是微电子技术与计算机技术的结晶,现已成为集成电路(Integrated Circuit)大家族中的重要成员。单片机是集成在一个芯片上的计算机,全称单片微型计算机SCMC(Single Chip Microcomputer)。单片机是计算机、自动控制和大规模集成电路技术相结合的产物,融计算机结构和控制功能于一体7。单片机共同的特点是它们在一块芯片上集成了一台微机最基本的部分,只要辅以少量的外部电路或外部设备即可构成一个微机系统。同时单片机具有体积小、功能强、价格低廉等优点。选择SST公司的SST89E58RD为主控制器,有丰富的中断源,可以很方便的采用中断方式测得超声波往返所需要的时间,从而达到测距的目的。 为能够更好了解该芯片的功能,首先介绍以下80C51单片机的基本特点。2.1.1 80C51单片机基本组成80C51单片机由CPU系统、存储器系统、I/O口和其它功能单元组成,如图2-18:图2-1 8051单片机基本结构图1. CPU系统包括8位CPU(含布尔处理器),时钟电路以及总线控制逻辑。CPU是单片机的核心,它决定了单片机的主要功能特性,51的CPU能处理8位二进制数或代码,中央处理器主要由运算部件和控制部件组成。主要完成运算和控制功能。2. 存储器系统包括程序存储器、数据存储器、特殊功能寄存器等,下面是具体介绍。片内程序存储器ROM:80C51共有4KB掩膜ROM,用于存放程序、原始数据或表格,可以外扩至64K。片内数据存储器RAM:80C51芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据,并且也可再外扩到64K。特殊功能寄存器SFR:特殊功能寄存器与片内RAM统一编址,离散分布在80HFFH的地址空间中,且每一位的定义和作用与单片机各部件直接相关。3. I/O口主要是指4个并行I/O口和1个全双工异步串口。四个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入输出。一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。4. 中断控制系统:80C51单片机的中断功能较强,以满足控制应用的需要。80C51共有5个中断源,即外中断2个,定时计数中断2个,串行中断1个。全部中断分为高级和低级共二个优先级别。5. 定时器/计数器:80C51共有2个16位的定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。2.1.2 SST89E58RD单片机的特性本系统采用的微控制器为SST89E58RD单片机。SST89E58RD是SST公司出产的一款基于51内核结构的单片机,与其它兼容的8051系列(MCS-51)单片机相比,SST89E58RD具备低EMI(Electro Magnetic Interference,电磁干扰)模式,抗干扰能力和可靠性更高等特点,且具有较丰富的内部资源。SST89E58RD单片机的特性如下:(1) 兼容80C51系列,内置超级FLASH存储器的单片机; (2) 5V的工作电压,操作频率为 040MHz; (3) 与现行的80C52列单片机硬件PIN-TO-PIN完全兼容,软件、开发工具也完全兼容; (4) 1K*8 的内部RAM(256Bytes+768Bytes,可放心使用C语言编程); (5) 32K*8的基本存储块和8K*8的二级存储块(扇区大小为128字节),具有极强的抗干扰性)64kB的片内FLASH程序存储器,具有ISP(在系统编程)和IAP(在应用中编程)功能; (6) 通过软件或ISP选择支持12时钟(默认)或6时钟模式; (7) SPI(串行外围接口)和增强型UART; (8) PCA(可编程计数器阵列),具有PWM和捕获/比较功能; (9) 4个8位I/O口(P0P3),1个4位I/O口(P4); (10) 3个16位定时器/计数器; (11) 1个可编程看门狗定时器(WDT); (12) 10个中断源,4个中断优先级; (13) 2个DPTR寄存器; (14) 低EMI方式(ALE禁能); (15) 兼容TTL和CMOS逻辑电平、掉电检测、低功耗模式(掉电模式、外部中断唤醒、空闲模式); (16) 温度范围:商业级(0+70)、工业级(-40+85)。 SST89E58RD的上述优点使得它可以很好地应用于测控领域。2.1.3 复位电路和时钟电路为确保单片机系统的稳定可靠工作,复位电路是必不可少的一部分。目前为止,单片机复位电路主要有四种类型:微分型复位电路;积分型复位电路;比较器型复位电路;看门狗型复位电路9。本系统带有一个手动复位端,无论单片机处于正常运行状态,还是当单片机出现死循环(形成死机现象)时,按下手动复位端,系统将被强制复位,恢复到初始状态。系统的时钟电路中的石英晶体振荡器采用外接形式,外接晶振频率为11.0592MHz。SST89E58RD单片机的复位电路和时钟电路如图2-2所示。图2-2 时钟电路和复位电路2.1.4 主控制模块硬件电路整个超声波测距系统是以单片机为核心的主控制模块,本此设计采用的是SST89E58RD这个芯片,晶振为11.0592MHz,为了方便单片机的重复工作,还加入了复位电路。单片机控制部分的原理图如图2-3所示:图2-3 主控制模块电路原理图2.2 超声波发射和接收模块2.2.1 超声波传感器超声传感器,也即超声换能器,是超声波测距系统中的重要组长部分。顾名思义,换能器就是进行能量转换的器件,是将一种形式的能量转换成另一种形式的装置。通常所说的换能器一般都是指的电声换能器。用来发射声波的换能器叫发射换能器。换能器处在发射状态时,将电能转换成机械能,再转换成声能。用来接收声波的换能器叫接收器。换能器处在接收状态时,将声能转换成机械能,再转换成电能。一般情况下,换能器既能用来发射,也能用来接收。通常换能器都有一个电的储能元件和一个机械振动系统。按照实现机电转换的物理效应的不同,可将换能器分成:电动式、电磁式、磁致伸缩式、电容式、压电式和电磁致伸缩式等10。目前使用较多的是电气类中的压电式超声换能器。此次超声波测距系统的超声波传感器选用型号为T/R40-16,超声波工作频率为40KHz。超声波换能器采用收发分体式,分别是一支超声波发射换能器TCT40-16T和一支超声波接收换能器TCT40-16R。超声波信号通过超声波发射换能器发射至空气中,遇被测物反射后回波被超声波接收换能器接收。2.2.2 超声波的发射电路设计图2-4 发射电路原理图40KHz超声波发射电路之一,由U1:AU1:C三门振荡器在U1:C的输出为40KHz方波,工作频率主要由C1、R1和RV1决定,用RV1可调电阻来调节频率。U1:C的输出激励换能器T40-16的一端和反向器U1:D,U1:D输出激励换能器T40-16的另一端,因此,加入U1:D使激励电压提高了一倍。电容C3、C2平衡U1:C和U1:D的输出,使波形稳定。电路中反向器U1:AU1:D用CC4069六反向器中的四个反向器,剩余两个不用(输入端应接地)。电源用5V电源。测量U1:C输出频率应为40KHz2KHz,否则调节RV1。为了提高输入电流,电源由单片机控制模拟开关实现而不是直接由单片机输出作为电源。2.2.3 超声波的接收电路设计由于超声波在空气中传播,其能量会随传输距离的增大而减小,从远距离障碍物反射的回波信号一般比较弱(接收电压为mV级),所以在设计超声波接收电路时,要有较大的放大倍数;为减小环境噪声对回波信号的影响,也要考虑选用滤波特性较好的电路,使回波易于检测。超声波接收电路使用集成电路CX20106A,可用来完成信号的放大、限幅、带通滤波、峰值检波和波形整形等功能,电路如图2-5所示。其中的前置放大器具有自动增益控制功能,可以保证在超声传感器接收较远反射信号输出微弱电压时,放大器有较高的增益,在近距离输入信号强时放大器不会过载;其带通滤波器中心频率可由芯片5脚的外接电阻调节,不需要外接电感,可避免外磁场对电路的干扰,可靠性较高,CX20106A接收超声波有很高的灵敏度和抗干扰能力,可以满足接收电路的要求。同时,使用集成电路也可以减少电路之间的相互干扰,减小电噪声。 在图中R4和C3是控制CX20106内部放大增益,R5控制带通滤波器的中心频率。一般取R4=4,C3=1uF。其余元件按图2取值。US_T为超声波接收头,OUT_INT当收到超声波是产生一个下降沿,接到单片机的外部中断上。一些资料表示,在CX20106的1脚输入0.2mV的信号。在5脚将会输出滤波后放大的有用信号。在实测中,5脚并没有一个放大的信号输出。图2-5 接收电路原理图2.3 温度补偿模块温度补偿电路采用了美国DALLAS半导体公司的DS18B20单总线型数字温度传感器11。单总线即只用一根信号线来传输数据,而且数据传输是双向的,单总线具有“线与”功能,连接方便,便于扩展。DS18B20集温度测量、A/D转换于一体,具有体积小、动态范围宽、测量精度高等优点。2.3.1 DS18B20性能特点DS18B20是美国DS18B20是美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度并且可以分别在 93.75ms和750ms内完成9位和12位的数字量。从DS18B20读出信息或向DS18B20写入信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而,使用DS18B20可使系统结构更趋简单,可靠性更高。DS18B20的性能特点12可以归纳如下: (1) 独特的单线接口,仅需要一个端口引脚进行通信; (2) 多个DS18B20可以并联在唯一的3线上,实现多点组网功能; (3) 可通过数据线供电,电压范围为3.05.5V; (4) 零待机功耗; (5) 测温范围为-55125,分辨率最大可达 0.0625; (6) 温度以912位数字量读出; (7) 用户可定义的非易失性温度报警设置; (8) 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; (9) 负电压特性,电源极性接反时,不会因发热而烧毁,只是不能正常工作。2.3.2 DS18B20的内部结构数字温度传感器DS18B20内部结构主要由四部分组成:64位光刻ROM、温度灵敏组件、非易失性温度报警触发器TH和TL、配置寄存器13。ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM从高位到低位依次由8位CRC、48位列号和8位家族代码(28H)组成。这也是多个DS18B20可以采用连接到一个口线上进行多点测温的原因。DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2PROM。高速暂存RAM包含8字节存储器。前两个字节包含测得的温度信息。第3和第4字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率。 2.3.3 DS18B20的测温原理低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数振荡器随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器决定,每次测量前,首先将-55所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55所对应的一个基数值。 减法计数器1对低温度系数振荡器产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置值将重新被装入,减法计数器1重新开始对低温度系数振荡器产生的脉冲信号进行计数。如此循环直到减法计数器2 计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。2.3.4 DS18B20与单片机的接口电路DS18B20采用单总线方式和SST89E58RD单片机相连,即DS18B20的1脚接地,3脚接VCC,2脚接至SST89E58RD的P2.3引脚,同时将P2.3引脚采用一只4.7k的电阻上拉至VCC。DS18B20与单片机接口电路如图2-6所示:图2-6 DS18B20的电路原理图2.4 数码管和LED显示模块2.4.1 数码管显示模块为了显示单片机输出的超声波测得的距离,便于验证程序逻辑和电路的正确性,系统使用了四位数码管显示所测得的距离。为了让显示部分不因为数码管位数增加而占用单片机更多的口,同时使显示更为灵活,本次拟采用的是将8155芯片和基本数码管显示电路相结合的动态显示方式。因此,这里关于显示模块需要先将8155芯片和显示方式,以及基本的数码管电路连接作相应的说明。2.4.1.1 8155芯片简介8155芯片是单片机应用系统中广泛应用的芯片之一,其内部结构如下图2-7:图2-7 8155结构框图由图可知,8155内部包含8:1. SRAM:容量为256字节;2. 并行口:可编程的8位口A、B、和6位口C;3. 计数器:一个14位的二进制减法计数器;4. 只允许写入的8位命令寄存器/只允许读出的8位状态寄存器。相应的一些引脚功能如下:AD7AD0:三态地址/数据总线。可以直接和80C51系列单片机的P0口连接。ALE:地址锁存允许信号输入端。其信号的下降沿将AD7/AD0线上的8位地址所存在内部地址寄存器中。:片选信号。:内端口和SRAM选择信号。高电平时,选择内部端口;当位低电平时,选择SRAM。:写选通信号。低电平时,将AD7AD0上的数据写入SRAM的某一单元或写入某一端口。:读选通信号。低电平有效时,将8155SRAM某单元的内容读至数据总线,或将内部端口的内容读至数据总线。PA7PA0:A口的8根通用I/O线。数据的输入或输出的方向由可编程的命令寄存器内容决定。PB7PB0:A口的8根通用I/O线。数据的输入或输出的方向由可编程的命令寄存器内容决定。PC5PC0:C口的6根数据/控制线。通用I/O方式时传送I/O数据,A或B口选通I/O方式时传送的控制和状态信息。控制功能的实现由可编程命令寄存器内容决定。2.4.1.2 显示方式显示分为静态显示和动态显示两种。静态显示是指显示器显示某一字符时,相应段的数码管的发光二极管恒定地导通或截止。所谓动态显示,就是一位一位地轮流点亮显示器的各个位。对于显示器的每一位而言,每隔一段时间点亮一次。虽然在同一时刻只有一位显示器在工作,但由于人眼的视觉暂留效应和二级管熄灭的余辉,我们看到的却是多个字符“同时”显示。当显示器位数较多时,一般采用动态显示。正因为动态显示的灵活和较广的适用性,因此本次系统显示部分就采用动态显示。但由于动态显示需要较多的I/O口,因此需要8155进行端口扩展,若显示器的位数不大于8位,则控制显示器公共极电位只需一个I/O口(字位口),控制各位LED显示器所显示的字形也需要一个8位口(字形口)。8155的端口A可以作为字位口,端口B作为字形口。此外需要注意的是,作为显示用的数码管分为共阳极数码管和共阴极数码管。共阳极数码管需要把公共端接高电位,用低电平控制;共阴极数码管则是把公共端接低电位,用高电平控制。共阴极数码管对单片机提供电压的要求较低8。本次设计采用了共阴极数码管。2.4.1.3 显示模块硬件电路在显示部分,需要用8155的A端口控制数码管的显示位,并且用B端口显示数值,具体电路原理图见图2-8。本次设计中需要显示四位数,这样的设计很方便扩展。因为这样只是在8155周围加电路,而不会影响单片机电路接法,需要改动的也就是显示部分。图2-8 数码管显示电路原理图2.4.2 LED显示模块LED是英文light emitting diode(发光二极管)的缩写,它的基本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后四周用环氧树脂密封,起到保护内部芯线的作用,所以LED的抗震性能好。在本系统中使用八个LED灯,分别连接单片机的P1.0P1.7口。正常工作时亮灯数越多表示距离越接近,从而达到视觉上的警示作用。2.5 声音报警模块2.5.1 蜂鸣器的简介在单片机系统中,除了显示器件外经常用到发声器件,最常见的发声器件就是蜂鸣器。蜂鸣器一般用于一些要求不高的声音报警及发出按键操作提示音等。虽然蜂鸣器也有自己固有的频率,但是也可以对其施加不同频率的方波,使之发出一些简单的乐曲14。蜂鸣器最重要的特点是只要按照极性要求加上合适的直流电压就可以发出固有频率的声音,使用起来比扬声器简单。2.5.2 声音报警的实现采用一个蜂鸣器,由P2.4输出一定频率的信号,在连接到蜂鸣器之前,经过一个三极管8050的放大。报警部分的连线,如图所示。当满足距离条件时,蜂鸣器蜂鸣工作提示驾驶员,具有较强的实用性。采用有源蜂鸣器作为报警发音器件,一是器件成本低,二是便于动态扫描显示的软件编程。蜂鸣器与单片机接口电路如图2-9所示:图2-9 蜂鸣器的电路原理图2.6 超声波测距系统的整体电路图整个超声波测距系统中的各个主要功能模块硬件电路均已实现,因此很容易得到其整体电路图。只需注意一些连线即可,如图2-10所示。图2-10 超声波测距系统整体电路图南京工业大学本科生毕业设计(论文)第三章 系统软件实现过程3.1 软件开发环境开发环境是指编写程序所需的工具和一些其它的辅助软件工具,这里重点介绍Keil软件以及汇编语言。在研制单片机应用系统时,汇编语言是一种常用的软件工具,它能直接操作硬件,指令的执行速度快。但其指令系统的固有格式受硬件结构的限制很大,难以编写与调试,可移植性也差。随着单片机硬件性能的提高,工作速度越来越快,因此在编写单片机应用系统程序时,更着重于程序本身的编写效率。所以,Keil C51已成为目前最流行的开发单片机的软件工具。与汇编语言相比,Keil C51在功能、结构、可读性、可维护性上有明显的优势,因而易学易用。另外,使用Keil C51可以缩短开发周期,降低开发成本,可靠性高,可移植性好。 在软件编写部分主要用了Keil软件对单片机进行编写程序,用的是Keil uVision3软件,该软件是用C语言对单片机进行编写程序,能够自动由高级语言程序转成汇编语言,并通过ISP下载到单片机中。Keil C51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编语言代码高效、快速的特点。C51已被完全集成到uVision3的集成开发环境中,这个集成开发环境包括:编译器、汇编器、实时操作系统、项目管理器和调试器。Keil uVision3可为它们提供单一而灵活的开发环境,它的windows集成开发环境Keil uVision3的强大功能和具体使用方法。在Keil uVision3中,可以完成从源程序编写、编译、连接定位到目标文件的仿真调试等全部工作。Keil uVision3是一种基于windows的多窗口软件仿真器,它可以在完全没有单片机硬件的情况下模拟调试各种应用程序,即使是对单片机内部特殊集成功能的编程15。3.2 程序流程的相关介绍3.2.1 程序流程图 结合上一章超声波测距系统的原理图,可以得出超声波测距系统程序流程图如3-1所示:图3-1 接收系统整体程序流程图3.2.2 程序设计思路本超声测距系统的软件设计采用模块化设计,由主程序、超声波发生子程序、超声波接收中断程序、温度补偿子程序及显示子程序组成。主程序流程图如图3-1所示。超声波测距,最重要的就是对发射信号的控制及对接收测量的时机控制。在设计中,SST89E58RD对发射的控制就是对40kHz方波产生电路的控制。由SST89E58RD的P2.2口控制超声波发射电路以50个脉冲的序列发射出去,在程序中用延时实现。脉冲发射同时打开定时器T0开始计时,发射后等待延时后,打开外部中断INT0,接收标志复位,等待回波反射到接收探头。等待延时的原因是,超声波发射探头发射的超声波一般都会存在余波干扰,有部分声波会直接传到接收探头,经接收电路放大后,系统就会把它误认为是检测的回波信号,发射后等待延时,可以避免检测到余波信号,当然这也会导致测量盲区的存在。3.3 各模块程序设计3.3.1 超声波发射和接收子程序超声波测距的程序需要定时器计数,得出超声波从发射到遇到障碍物反射并接收时的时间差,从而通过公式算出距离。首先进行计时初始化,然后发送一串超声波,等待接收回波。相关程序如下:us = 0;/初始化发送时间T=0Tmpchange(); /采样当前温度temp=RDtmp();EA = 1;/打开全局中断EX0 = 1;/打开外部中断0ECHO = 1;/开始发送超声波TR0 = 1;/定时器0开始计数delay(25);/延时,屏蔽发射时的余波。isReturn = 0;/接收标志复位for(i = 0; i 15;sign = buf; /符号位buf = temp;buf = buf 9;TMPHI = buf;/整数位buf = temp;buf = buf & 0x0f;BUF0 = buf 3;/小数点后1位buf = buf & 0x07;BUF1 = buf 2;/小数点后2位buf = buf & 0x03;BUF2 = buf 1;/小数点后3位buf = buf & 0x01;BUF3 = buf;/小数点后4位TMPLO = BUF0*5000+BUF1*2500+BUF2*1250+BUF3*625;/小数位整合成十进制Dis_BUF2 = TMPHI%10; TMPHI = TMPHI/10;Dis_BUF3 = TMPHI%10; TMPHI = TMPHI/10;Dis_BUF 4 =

温馨提示

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

评论

0/150

提交评论