基于51单片机超声波测距仪的设计毕业论文_第1页
基于51单片机超声波测距仪的设计毕业论文_第2页
基于51单片机超声波测距仪的设计毕业论文_第3页
基于51单片机超声波测距仪的设计毕业论文_第4页
基于51单片机超声波测距仪的设计毕业论文_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、 题目:基于51单片机的超声波测距仪的设计摘 要传感器技术是现代信息技术的主要容之一。信息技术包括计算机技术、通信技术和传感器技术,计算机技术相当于人的大脑,通信相当于人的神经,而传感器就相当于人的感官。比如温度传感器、光电传感器、湿度传感器、超声波传感器、红外传感器、压力传感器等等,其中,超声波传感器在测量方面有着广泛、普遍的应用。利用单片机控制超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且测量精度较高。超声技术是一门以物理、电子、机械、与材料学为基础的通用技术之一。超声技术是通过超声波产生、传播与接收的物理过程而完成的。超声波具有聚束、定向与反射、透射等特性。 声检测技术是

2、利用超声波在媒质中的传播特性(声速、衰减、反射、声阻抗等)来实现对非声学量(如密度、浓度、强度、弹性、硬度、粘度、温度、流速、流量、液位、厚度、缺陷等)的测定。它的基本原理是基于超声波在介质中传播时遇到不同的介面,将产生反射,折射,绕射,衰减等现象,从而使传播的声时,振幅,波形,频率等发生相应变化,测定这些规律的变化,便可得到材料的某些性质与部构造情况。与传统超声技术完全不同,在不破坏媒质特性的情况下实现非接触性测量,环境适应能力强,可实现在线测量。近二、三十年,特别是近十年来,由于电子技术与压电瓷材料的发展,使超声检测技术得到了迅速的发展。在无损探伤,测温,测距,流量测量,液体成分测量,岩体

3、检测等方面,新的超声检测仪表不断出现,应用领域也不断扩大。本文正是基于这一应用背景。超声波由于其指向性强、能量消耗缓慢、传播距离较远等优点,而经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。超声波测距主要应用于倒车雷达、建筑施工工地以与一些工业现场,例如:液位、井深、管道长度等场合。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在测控系统的研制上也得到了广泛的应用。本文介绍一种以STC AT89C52单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路设计方法。超声波测距是一种传统而实用的非接触测量方法

4、和激光,涡流和无线电测距方法相比,具有不受外界光与电磁场等因素的影响的优点,在比较恶劣的环境中也具有一定的适应能力,且结构简单,成本低,因此在工业控制,建筑测量,机器人定位等方面得到了广泛的应用但由于超声波传播声时难于精确捕捉,温度对声速的影响等原因,使得超声波测距的精度受到了很大的影响,限制了超声测距系统在测量精度要求更高的场合下的应用。目录摘要1引言3第一章超声波测距系统的概述41.1 设计要求41.2 设计方案论证4第二章系统硬件电路的设计52.1 单片机系统电路51)片资源62)80C51的引脚封装63)时钟电路62.2键盘与显示电路71) 键盘电路72) 键盘的抖动干扰和消除方法73

5、) LED 显示器工作原理82.3 超声波发射电路92.4 超声波检测接收电路112.5 温度测量电路121) DS18B20引脚定义:122) DS18B20的主要特性133) DS18b20的指令操作13第三章系统程序的设计143.1 超声波测距器的算法设计153.2 主程序算法设计15第四章做板、焊接与电路调试164.1 做电路板流程161)PCB图的制作162)电路板的制作流程174.2电路板的调试17第五章过程总结18第六章附件与参考文献196.1 作品的程序代码196.3参考文献236.4 词2427 / 27引 言超声波测距系统主要应用于汽车的倒车雷达、机器人自动避障行走、建筑施

6、工工地以与一些工业现场例如:液位、井深、管道长度等场合。因此研究超声波测距系统的原理有着很大的现实意义。对本课题的研究与设计,还能进一步提高自己的电路设计水平,深入对单片机的理解和应用。本文对超声波传感器测距的可能性进行了理论分析,利用模拟电子、数字电子、微机接口、超声波换能器、以与超声波在介质的传播特性等知识,设计出了基于STC AT89C52单片机的超声波测距仪的硬件电路,编写了相应的软件程序。最后,为了保证超声波测距传感器的可靠性和稳定性,采取了相应的抗干扰措施。本论文主要从四部分来介绍设计容:第一部分为整个系统的概述,简单介绍了超声波的发展情况以与基本知识.第二部分为系统硬件设计,主要

7、介绍硬件用到的主芯片STC AT89C52的功能、外部接有超声波发射电路,超声波接收电路,以与键盘和显示部分,实现超声波测距功能等,这一章对硬件电路的整体性描述,起到对电路的一个整体性认识。第三部分为系统软件设计,主要有主程序流图,显示部分程序流图介绍。第四部简单地对系统调试进行了描述,同时对这次设计进行了总结.第一章 超声波测距系统的概述1.1 设计要求利用超声波换能器和单片机设计一种非接触式测距仪,该装置的测量距离为4CM-4M,并且具有温度补偿、测量准确、性能可靠性等优点。Ø 掌握超声波传感器的工作原理并设计超声波发射器与接收器的工作电路。Ø 测量距离为4CM-4M,

8、测量误差1CM。Ø 温度补偿围:-20 - 100C。Ø 实时显示实测距离、温度。1.2 设计方案论证n 由于超声波指向性强,能量消耗慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。利用超声波检测距离设计比较方便,计算处理也比较简单,并且在测量精度方面也能达到使用的要求。n 超声波发生器可以分为两大类:一类是使用电气方式产生超声波;另一类是用机械方式产生超声波。电气方式包括电压型、电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波各不一样,因而用途也各不一样。目前在近距离测量方面较为常用的是压电式超声波换能器。n 根据设计要求并综

9、合各方面因素,本例决定采用AT89C52单片机作为主控器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成。超声波测距器系统设计框图如下:图1 测距仪的系统设计框图第二章 系统硬件电路的设计2.1 单片机系统电路单片机采用89C51或其兼容系列。系统采用12MHZ高精度的晶振,以获得较稳定的时钟频率,并减小测量误差。单片机用P1.0端口控制输出超声波换能器所需的40kHz方波信号,利用外中断0口监测超声波接收电路输出的返回信号。1)片资源·8位CPU·4kbytes 程序存储器(ROM) (52为8K)·256bytes的数据存储器(RAM)52

10、有384bytes的RAM)·32条I/O口线·111条指令,大部分为单字节指令·21个专用寄存器·2个可编程定时/计数器·5个中断源,2个优先级 (52有6个) ·一个全双工串行通信口·外部数据存储器寻址空间为64kB·外部程序存储器寻址空间为64kB·逻辑操作位寻址功能·双列直插40PinDIP封装 ·单一+5V电源供电2)80C51的引脚封装3)时钟电路XTAL1:接外部晶振和微调电容的一端,在单片机部,它是构成片振荡器的反向放大器的输入端。当采用外部振荡器时

11、,该引脚接收振荡器的信号,即把此信号直接接到部振荡器的输入端。XTAL2:接外部晶振和微调电容的另一端,在单片机部,它是构成片振荡器的反向放大器的输出端。当采用外部振荡器时,此引脚应悬空。2.2键盘与显示电路1) 键盘电路在计算机控制系统中,除了与生产过程进行信息传递的过程输入输出设备以外,还有与操作人员进行信息交换的常规输入设备和输出设备。键盘是一种最常用的输入设备,它是一组按键的集合,从功能上可分为数字键和功能键两种,作用是输入数据与命令,查询和控制系统的工作状态,实现简单的人机对话。 键盘接口电路可分为编码键盘和非编码键盘两种类型。编码键盘采用硬件编码电路来实现键的编码,每按下一个键,键

12、盘便能自动产生按键代码。编码键盘主要有BCD码键盘、ASCII码键盘等类型。非编码键盘仅提供按键的通或断状态, 按键代码的产生与识别由软件完成。2) 键盘的抖动干扰和消除方法由于机械触点的弹性振动,按键在按下时不会马上稳定地接通而在弹起时也不能一下子完全地断开,因而在按键闭合和断开的瞬间均会出现一连串的抖动,这称为按键的抖动干扰,其产生的波形如图3所示,当按键按下时会产生前沿抖动,当按键弹起时会产生后沿抖动。这是所有机械触点式按键在状态输出时的共性问题,抖动的时间长短取决于按键的机械特性与操作状态,一般为10100ms,此为键处理设计时要考虑的一个重要参数。按键的抖动会造成按一次键产生的开关状

13、态被CPU误读几次。为了使CPU能正确地读取按键状态,必须在按键闭合或断开时,消除产生的前沿或后沿抖动,去抖动的方法有硬件方法和软件方法两种。 本系统中所采用的是软件方法 软件方法是指编制一段时间大于100ms的延时程序,在第一次检测到有键按下时,执行这段延时子程序使键的前沿抖动消失后再检测该键状态,如果该键仍保持闭合状态电平,则确认为该键已稳定按下,否则无键按下,从而消除了抖动的影响。同理,在检测到按键释放后,也同样要延迟一段时间,以消除后沿抖动,然后转入对该按键的处理。3) LED 显示器工作原理LED(发光二极管Light Emitting Diode的英文缩写)是利用PN结把电能转换成

14、光能的固体发光器件,根据制造材料的不同可以发出红、黄、绿、白等不同色彩的可见光来。LED的伏安特性类似于普通二极管,正向压降约为2伏左右,工作电流一般在10 -20 mA之间较为合适。LED显示器显示方式 在计算机控制系统中,常利用n个LED显示器构成n位显示。通常把点亮LED某一段的控制称为段选,而把点亮LED某一位的控制称为位选或片选。根据LED显示器的段选线、位选线与控制端口的连接方式不同,LED显示器有静态显示与动态显示两种方式,下面以4个共阴极LED的组合为例进行说明。本设计采用动态显示方式,LED动态显示电路如图10所示:图10 LED动态显示方式本项目采用键盘与显示电路2.3 超

15、声波发射电路超声波发射电路原理图如下图。发射电路主要由555振荡电路和反向器CD4069和超声波换能器构成,单片机P1.0端口控制555输出的40kHz方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推挽形式将方波信号加到超声波换能器两端可以提高超声波的发射速度。输出端采用两个反向器并联,用以提高驱动能力。两个上拉电阻一方面可以提高反向器CD4069输出高电平的驱动能力;另一方面可以增加超声波换能器的阻尼效果,以缩短其自由振荡的时间。 用于驱动超声波传感器的40KHz的方波由一片NE555搭成的多谐振荡器生成; 555芯片工作电压为

16、12V,CD4069芯片工作电压为12V, 40KHz的方波经, CD4049调理后,成为振幅24V的方波,提高发射功率。超声波换能器的工作原理 压电式超声波换能器是利用压电晶体的谐振来工作的。超声波换能器部结构如下图所示,它有两个压电晶片和一个共振板。当它的两极加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动产生超声波,这时它是一个超声波发生器;反之,如果两极间未加外电压,当共振板接收道超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收换能器了。超声波发射换能器与接收换能器在结构上稍有不同,使用时应分清器件上的标志。超声波发射换

17、能器上标有字母T,而接收换能器上标有字母R。2.4 超声波检测接收电路 集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,可以利用它制作超声波检测接收电路,如图所示。实验证明,用CX20106A接收超声波(无信号的输出高电平)具有很高的灵敏度和较强的抗干扰能力。适当地更改电容C4的大小,可以改变接收电路的灵敏度和抗干扰能力。CX20106A部电路图超声波检测接收电路工作原理 发射头发射出去的超声波经障碍物反射后,反射到接收头,而接收到的波形幅度非常小,所以 在回波处理电路中,把接收到的

18、波形放大了10000倍,用的LM324搭成的两级交流放大电路。 经放大后的波形送入检波电路 ,射随后经LM324比较器;经比较器调理后的波形成为方波,可送给STC89C51的EXT1外部中断。在模块电路的设计中一定要注意,超声波发射头和接收头之间的干扰;一般压电式的超声波换能器都会存在余波的干扰,发射头和接收头间要有20cm的距离;而在发射头发射超声波后的3ms,接收头会一直接收到发射头传过来的非反射波,这是干扰波,在软件处理的时候一定要注意清除掉此类的干扰。超声波检测接收电路原理图2.5 温度测量电路 目前,温度测量方法很多,温度传感器也非常普遍。实验采用DS18B20芯片的“一线式”温度传

19、感器。该传感器只需占用微处理器的一个普通端口,并且多个传感器可以并联在一起使用,适用于多点温度检测系统,节约了大量系统资源。 DS18B20的外形与管脚排列如下图 :外形与引脚排列图1) DS18B20引脚定义:(1)DQ为数字信号输入/输出端;(2)GND为电源地; (3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。2) DS18B20的主要特性 (1)适应电压围更宽,电压围:3.05.5V,在寄生电源方式下可由数据线供电。 (2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 (3)DS18B20支持多点组网功能,

20、多个DS18B20可以并联在唯一的三线上,实现组网多点测温。 (4)DS18B20在使用中不需要任何外围元件,全部传感元件与转换电路集成在形如一只三极管的集成电路。 (5)测温围55125,在-10+85时精度为±0.5(6)可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。 (7)在9位分辨率时最多在93.75ms把温度转换为数字,12位分辨率时最多在750ms把温度值转换为数字,速度更快。 (8)测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力 (9)负压特性

21、:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。3) DS18b20的指令操作根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。第三章 系统程序的设计超声波测距器的软件设计主要由主程序、超声波程序发生子程序、超声波接收中断程序与显示子程序组成。由于

22、C语言程序有利于实现较复杂的算法,汇编语言程序则具有较高的效率并且容易精确计算程序运行的时间,而超声波测距器的程序既有较复杂的计算(计算距离时),又要求精确计算程序运行时间(超声波测距时),所以控制程序可采用C语言和汇编语言混合编程。下面对超声波测距器的算法3.1 超声波测距器的算法设计距离计算公式:d=s/2=(vt)/2其中d是被测物与测距器的距离;s是超声波的来回路程,v是超声波在当前温度下的速度,t是发送和接收超声波所经历的时间。声波在其传播介质中被定义为纵波。当声波受到尺寸大于其波长的目标物体阻挡时就会发生反射;反射波称为回声。假如声波在介质中传播的速度是已知的,而且声波从声源到达目

23、标然后返回声源的时间可以测量得到,从声波到目标的距离就可以精确地计算出来。这就是本系统的测量原理。超声波测距器原理图T=0 °C,超声波在空气中的传播速度C1=331.45m/s, C=331.45+0.61T (m/s) 式中 T:°C 3.2 主程序算法设计 主程序首先要对系统环境初始化,设置定时器工作模式为16位定时、计数器模式,置位总中断允许位EA并对显示端口P0和P2清0;然后调用超声波发生子程序送出一个超声波脉冲。为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延迟0.1ms后才打开外中断0,接收返回的超声波信号。 由于采用12MHZ晶振,计数器每记

24、一个数就是1us,计算当20时的超声波传输速度v=344m/s,则d=(vt)/2=344t/2=(172T0/106)m=(172T0 /10000)cm 其中T0为中断T0的计数值。 测出距离后,结果以十进制BCD码方式送往LED显示约0.5S,然后再发出超声波脉冲重复测量。右图为软件编程设计流程图:第四章 做板、焊接与电路调试有了硬件模块和相关知识的介绍,我们开始做板、焊接与电路调试 为了作图和焊接的方便,整个系统可分为两大电路模块:1.显示和测温模块 2.超声波收发模块4.1 做电路板流程1)PCB图的制作这里所用到的做图软件是澳大利亚的Altium Designer6.9,这是一个国

25、用的最多的制作电路图的软件,是protel 99的前身。作图的大概流程是:先作原理图,再把做好的原理图导入到pcb图里面,接着配置一下作图的规格并调整元器件的分布位置,最后完成pcb图的连线。上图为显示模块的PCB图上图为超声波收发模块的PCB图2)电路板的制作流程第一步:将PCB图打印到热转印纸上(JS所说的热转印纸就是不干胶纸的黄色底衬!)。 第二步:将打印好PCB的转印纸平铺在覆铜板上,准备转印。 第三步:准备好三氯化铁溶液进行腐蚀。 第四步:效果还不错吧!注意不要腐蚀过度,腐蚀结束,准备焊接。 第五步:清理出焊盘部分,剩下的部分用于阻焊。第六步: 用打孔机为电路板打孔,并匹配元件引脚所

26、需的孔的大小。第七步:安装所需预定原件并焊接好。 4.2电路板的调试1.LED全部显示8888的问题 把HEX程序烧进单片机后,连接电源,发现LED全部显示8888。可能是P0口没有接上拉电阻(上拉电阻的阻值一般在1K-10K之间)。因为“从P0口输出时,必须外接上拉电阻才能有高电平输出。”(见单片机课本p20)。如果P0口不接上拉电阻,那么段选一直是低电平,而采用的是数码管的动态扫描,看上去,位选端相当于一直高电平,即:数码管一直点亮。因此,如果LED全部显示8888,那么在P0口加上上拉电阻或许可以解决问题。2. 555的频率调整在调试的时候发现555的3引脚产生的频率只有35kHZ左右,

27、检查别人正常电路上的单片机的晶体振荡器,观察晶振两个脚上的波形,发现其中一个脚上是40HZ的正弦波,另一个脚上出现类似正弦波的波形,但是有少量谐波成分。但是检查我们自己的晶振,发现一端是40HZ的正弦波,但是另一端出现无规律的杂波,另外ALE端也没有出现方波。P1.0口(输出到超声波发射电路)也没有输出40KHZ的方波。说明单片机没有正常工作。第五章 过程总结实践心得: 通过本次实践,我们组学到了很多:专业知识得到了应用和加深理解,学习专业课的兴趣得到了很大提升,动手能力得到了提高,自学能力更是增强,还发现主动学习和应用性学习不但可以大幅度提升学习效率,而且使学习有很强的方向性,还有很多很多,

28、在次就不在一一说明了,这些心得只有实践了才会有同感。但是在这里强调一点:团队精神!这是我们这次实践中最有价值的收获,它将影响我们的一生。以下是我在完成这次任务中所总结的经验与教训:1. 遇到不懂的问题,应该虚心向别人请教。2. 不要盲目相信课本。例如,书上的原理图上P0口没有接上拉电阻,而实际上P0口一般都要接上拉电阻。本实验中,P0口不接上拉电阻的后果是LED一直显示8888。另外,书上说可以用74LS244驱动LED的断码,而74LS244芯片在本实验中的作用就是输入等于输出,并没有用到锁存功能,所以为了简化电路,可以省掉74LS244。3. 接线应该细心。特别是一些芯片的电源线和地线容易

29、出问题。4. 多调试。包括软件调试和硬件调试。如果一个功能模块电路出现问题,先用软件仿真,看看电路设计是否有误;若无误,则检查硬件电路的连线是否有问题;如果没有问题,再进行硬件仿真,看看是不是程序的问题。一个模块一个模块地排查,就可以发现错误。5. 如果多次检查仍不能解决问题,也不要盲目地换电路,重头开始。耐心地调试,一步一步排查错误,总能找到问题的症结;不仅最后能解决问题,还能学到很多实际操作的方法和经验,这都是在课本上学不到的。总体来说,最重要的是在本课题的设计过程中我学到了很多知识,从中受益匪浅。了解了超声波传感器的原理,学会了各种放大电路的分析、设计,也掌握了单片机的开发过程和利用单片

30、机设计电路的方法。对一块电路板的设计、焊板、调试、改进等整个过程,有了更深入的理解和掌握。这些对我今后的学习和工作都会有很大帮助的。第六章 附件与参考文献6.1 作品的程序代码#include <reg52.h>#include <DS18B20.h>#include <DS1302.h>#define KeyData (P1|0xe0)#define KeyDown 1 /按键按下#define KeyUp 0 /按键弹开bit KeyFirst=1; /按键第一次按下bit KeyState=KeyUp; /按键状态uchar KeyValue; /键值

31、sbit CLK=P16;sbit DAT=P15;sbit MeasureEn=P37; /超声波测距使能按键/uchar TimeInitData7=50,51,16,28,3,1,11; /秒,分,时,日,月,星期,年uchar TimeInitData7=5,5,10,14,4,5,1; /时间芯片DS1302初始值设定,秒,分,时,日,月,星期,年uchar TimeBuff7=0,0,0,0,0,0,0; /接收到的时间信息uchar code DispCode22=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0xbf,0x

32、86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0x40,0x00;/0 1 .9 0. 1. . 9. -uchar NumCode4=0,0,0,0;uchar code LedSelect4=0x01,0x02,0x04,0x08; /数码管的为选通信号int TimeData;int DispNum;int DispTemp;uint Distance3=0,0,0;/定义三次测量结果数组uchar T0Num;uchar MeasureTime; /第几次测量bit FlagEndMeasure; /测量完成一次的标志bit Flag20ms=0

33、;bit Flag50ms=0;bit Flag1s=0;extern bit FlagSgn; /DS18B20正负温度标志void StartMeasured(); /启动测距void Measure3Times();/启动测距三次,并取中值/-void T0Init()TMOD=0x01;TH0=(65536-5000)/256; /定时5ms,动态扫描TL0=(65536-5000)%256;TR0=1;ET0=1;EA=1;/-void T1Init()TMOD|=0x10; /定时器1计数方式TH1=0;TL1=0;TR1=0;/-void Ex0Init()IT0=1; /外部中

34、断0,边沿触发EX0=0;EA=1;/-void Delayus(uint n)while(n-); /延时大约n*10us/-void Send164(uchar Ch) /口线模拟时序,164送显示uchar j;for(j=0;j<8;j+)CLK=0;_nop_();DAT=Ch&0x80;CLK=1;_nop_();Ch<<=1;/-void Disp4() /四个数码管显示static uchar j=0; Send164(DispCodeNumCodej);/调出与显缓区数值相应的字型码P0=(P0&0xf0)|(LedSelectj);j+;j

35、%=4;/-void TempSendDisp() /送显温度if(FlagSgn=1)NumCode0=20;elseNumCode0=21;NumCode1=DispNum%1000/100;if(NumCode1=0)NumCode1=21;NumCode2=DispNum%100/10+10;NumCode3=DispNum%10;/-void DistanceSendDisp() /送显距离NumCode0=DispNum/1000;if(NumCode0=0)NumCode0=21;NumCode1=DispNum%1000/100+10;NumCode2=DispNum%100/

36、10;NumCode3=DispNum%10;/-void SendDisp() /送显数字NumCode0=DispNum/1000;NumCode1=DispNum%1000/100;NumCode2=DispNum%100/10;NumCode3=DispNum%10;/-void KeyScan(void) /键扫描static uchar KeyBuff; if(KeyData!=0xff) / 表示有键按下 if(KeyState!=KeyDown) if(KeyFirst=1) KeyBuff=KeyData; KeyFirst=0; else if(KeyData=KeyBuf

37、f) KeyValue=KeyData;KeyState=KeyDown; else KeyFirst=1; KeyState=KeyUp; /-void KeyProcess() /键盘处理switch (KeyValue)case 0x01: /送显温度DispNum=DispTemp;TempSendDisp();break;case 0x02:/送显距离DispNum=Distance1;DistanceSendDisp();break; case 0x04:/送显时分TimeData=TimeBuff2*100+TimeBuff1;DispNum=TimeData;SendDisp(

38、);break; case 0x08:/送显月日TimeData=TimeBuff4*100+TimeBuff3;DispNum=TimeData;SendDisp();break; case 0x10:/送显年星期 TimeData=TimeBuff6*100+TimeBuff5;DispNum=TimeData;SendDisp();break; default: break;/-void StartMeasured() /启动超声波测距MeasureEn=1;Delayus(12);/延时120us,发射大约5个脉冲MeasureEn=0;TH1=0;TL1=0;TR1=1;Delayus(10);/延时100usEX0=1;/-void EndMeasured() /停止超声波测距TR1=0;EX0=0;/-void PaiXu() /三个测量结果排序uint Temp;uchar i;for(i=0;i<2;i+)if(Distancei)>=(Dista

温馨提示

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

评论

0/150

提交评论