超声波模块DYP-ME007和单片机的使用毕业论文.doc_第1页
超声波模块DYP-ME007和单片机的使用毕业论文.doc_第2页
超声波模块DYP-ME007和单片机的使用毕业论文.doc_第3页
超声波模块DYP-ME007和单片机的使用毕业论文.doc_第4页
超声波模块DYP-ME007和单片机的使用毕业论文.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

辽宁科技大学本科生毕业设计 第 II 页超声波模块DYP-ME007和单片机的使用毕业论文目 录第一章 绪论11.1 选题背景及目的11.2 超声波介绍及其应用领域11.3 本设计的主要研究内容21.3.1 超声波测距的原理21.3.2 设计的主要内容3第二章 超声波测距系统42.2 单片机AT89C51的特性52.3 超声波探头介绍6第三章 超声波测距硬件电路设计83.1超声波测距系统电路总体设计方案83.2 超声波测距系统电路各部分模块的设计93.2.1 超声波发射接收电路的设计93.2.2 温度补偿电路的设计113.2.3 显示模块的设计12第四章 系统软件设计144.1 显示子程序154.2 外部中断子程序164.3 测量温度子程序17辽宁科技大学本科生毕业设计 第 37页第一章 绪论1.1 选题背景及目的1.2 超声波介绍及其应用领域当物体振动时会发出声音。科学家们将每秒钟振动的次数称为声音的频率,它的单位是赫兹。人类耳朵能听到的声波频率为2020K赫兹。当声波的振动频率大于20K赫兹或小于20赫兹时,人们便听不见了。因此,把频率高于20K赫兹的声波称为“超声波”。通常用于医学诊断的超声波频率为15兆赫。超声波具有方向性好,穿透能力强,易于获得较集中的声能,在水中传播距离远等特点。可用于测距,测速,清洗,焊接和碎石等。在医学,军事,工业以及农业上有明显的作用。理论研究表明,在振幅相同的条件下,一个物体振动的能量与振动频率成正比,超声波在介质中传播时,介质质点振动的频率很高,因而能量很大。在我国北方干燥的冬季,如果把超声波通入水罐中,剧烈的振动会使罐中的水破碎成许多小雾滴,再用小风扇把雾滴吹入室内,就可以增加室内空气湿度.这就是超声波加湿器的原理。应用领域1机械行业:防锈油脂的去除;量具刃具的清洗;机械零部件的除油除锈发动机、化油器及汽车零件的清洗,过滤器及滤网的疏通清洗等等。 2表面处理行业:电镀前的除油除锈;离子镀前清洗;磷化处理;清除积炭,氧化皮,抛光膏,金属工件表面活化处理等等。 3医疗行业:医疗器械的清洗,消毒,杀菌,实验器皿的清洗等等。4 仪器仪表行业:精密零件的高清洁度清洗,装配前清洗等等。5 机电电子行业:印刷线路板除松香,焊斑;高压触点,接线柱等机械电子零件的清洗等等。6 光学行业:光学器件的除油、除汗和清灰等。7 半导体行业:半导体晶片的高清洁度清洗。8 科教文化:化学生物等实验器皿的清洗和除垢。9 钟表首饰:清除油泥、灰尘、氧化层和抛光膏等。10石油化工行业:金属滤网的清洗疏通、化工容器和交换器的清洗等等。11纺织印染行业:清洗纺织锭子和喷丝板等。12其它:超声清洗:清除污染物,疏通细小孔洞,如:清洁印章,古董修复和汽车电喷头疏通等。超声搅拌:加快溶解,提高均匀度,加快物理化学反应,防止过腐蚀和加速油水乳化,如:溶剂染料混合和超声磷化等。超声凝聚:加速沉淀,分离,如:种子浮选和饮料除渣等。超声杀菌:杀灭细菌及有机污染物,如:污水处理和除气等。超声粉碎:降低溶质颗粒度,如:细胞粉碎和化学检测等。超声封孔:排除间隙气体,提高整体密度,如:工件浸漆等。1.3 本设计的主要研究内容1.3.1 超声波测距的原理超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波, 从而测出发射和接收回波的时间差t,然后求出距离 (1-1)式(1-1)中的c为超声波在空气中传播的速度。限制该系统的最大可测距离存在四个因素:超声波的幅度、反射物的质地、反射和入射声波之间的夹角以及接收装置的灵敏度。接收装置对声波脉冲的直接接收能力将决定最小可测距离。超声波的波速c与温度有关,表1-1列出了几种不同温度下的波速。表1-1 声速与温度的关系温度()3020100102030100声速(m/s)313319325331338344349386可以推导得出,温度和波速大概有c=331.5+0.607T这样的规律,波速确定后,只要测得超声波往返的时间t,即可求得距离S。1.3.2 设计的主要内容单片机控制超声波模块发射及检波接收,其系统原理框图如图1-3所示。 图1-3 超声波测距系统框图先驱动DS18B20温度传感器,测出当前温度,然后根据公式换算出当前波速,然后控制口P1.0(Trig引脚)发一个10US以上的高电平,就可以在接收口P3.2(Echo引脚)等待高电平输出。一有输出就可以开定时器计时,当此口变为低电平时就进入外部中断0,在中断程序中读取定时器的值,此时就为此次测距的时间,方可算出距离。如此不断的周期测,就可以达到你移动测量的值了相应的计算结果被送至LED数码管进行显示。第二章 超声波测距系统本设计是基于单片机控制的,在介绍电路设计之前,先简单了解一下单片机的工作原理,即简单介绍STC89C51的一些特性。2.1 单片机基础知识单片微型计算机简称单片机,特别适用于控制领域,故又称为微控制器(Microcontroller)。单片微型计算机是微型计算机的一个重要分支,也是一种非常活跃且颇具生命力的机种。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:CPU(Central Processing Unit,中央处理器)、存储器和I/O接口电路等。因此,单片机只需要与适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机内部结构如图2-1所示。图2-1 单片机内部结构与单片机相比,微型计算机是一种多片机系统。它是由中央处理器(CPU)芯片、ROM芯片、RAM芯片和I/O接口芯片等通过印刷电路板上总线(地址总线AB、数据总线DB和控制总线CB)连成一体的完整计算机系统。其中,中央处理器(CPU)的字长长,功能强大;ROM和RAM的容量很大;I/O接口的功能也大,这是单片机无法比拟的。因此,单片机在结构上与微型计算机十分相似,是一种集微型计算机主要功能部件于同一块芯片上的微型计算机,并由此而得名。2.2 单片机AT89C51的特性AT89C系列单片机是Atmel公司生产的一款标准型单片机。其中数字89是单片机AT89C51的特性,C表示CMOS工艺。其管脚图如图2-2所示。图2-2 AT89C51单片机管脚图AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。P3口也可作为AT89C51的一些特殊功能口,如下所示:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2.3 超声波探头介绍 超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物 位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求本测距模块使用的是压电式超声波发生器探头,压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器内部结构如图2-3所示,它有两个压电陶瓷晶片和一个金属片共振板。当它的两极外加脉冲信 号,其频率等于压电陶瓷晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当金属片共振板接收到超声波 时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。 图2-3 压电式超声波发生器第三章 超声波测距硬件电路设计3.1超声波测距系统电路总体设计方案由单片机STC89C51编程产生10US以上的高电平,由P1.0口输出,就可以在接收口P3.2(Echo引脚)等待高电平输出。一旦有高电平出处,即在模块中经过放大电路,驱动超声波发射探头发射超声波。发射出去的超声波经障碍物反射回来后,由超声波接收头接收到信号,通过接收电路的检波放大、积分整形及一系列处理,接收口P3.2口即变为低电平,读取单片机中定时器的值。单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由单片机控制显示出来。该测距装置是由超声波模块、单片机、和LED显示电路组成。传感器输入端与发射接收电路组成超声波测距模块,模块的输出输入端与单片机相连接,单片机的输出端与显示电路输入端相连接。其时序图如图3-1所示。图3-1 时序图超声波测距模块的发射端在T0时刻发射方波,同时启动定时器开始计时,当收到回波后,产生一负跳变到单片机中断口,单片机响应中断程序,定时器停止计数。计算时间差,即可得到超声波在媒介中传播的时间t,由此便可计算出距离。3.2 超声波测距系统电路各部分模块的设计3.2.1 超声波发射接收电路的设计发射电路的设计由模块中产生的40kHz的方波需要进行放大,才能驱动超声波传感器发射超声波,发射驱动电路其实就是一个信号放大电路,本模块所选用的是74HC04集成芯片,图3-1为发射电路图。图3-1 发射电路74HC04内部集成了六个反向器,同时具有放大的功能。74HC04的管脚如图3-2所示。图3-2 74HC04管脚图接收电路的设计超声波接收头接收到超声波后,转换为电信号,此时的信号比较弱,必需经过放大。本系统采用了LM741对接收到的信号进行放大,接收电路如图3-3所示。图3-3 接收电路超声波探头接收到超声波后,通过声电转换,产生一正弦信号,其频率为传感器的中心频率,即40kHz。该信号通过C1高通滤波后经LM741放大,最后经二极管整形后输出到单片机中断口。LM741是一单运放集成芯片,图3-4为LM741管脚图。图3-4 LM741管脚图其板上接线方式为,VCC、trig(控制端)、 echo(接收端)、 out(空脚)、 GND 使用方法简单,一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出。一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离。如此不断的周期测,就可以达到移动测量的值了。 图3-5 超声波测距模块外观图DYP-ME007超声波测距模块可提供3cm-3.5m的非接触式距离感测功能,图3-5为DYP-ME007外观,包括超声波发射器、接收器与控制电路。其基本工作原理为给予此超声波测距模块一触发信号后发射超声波,当超声波投射到物体而反射回来时,模块输出一回响信号,以触发信号和回响信号间的时间差,来判定物体的距离。3.2.2 温度补偿电路的设计稳定准确的超声波传播速度是保证测量精度的必要条件,而超声波在空气中传播时,其速度受到了温度,湿度,粉尘,大气压,气流等因素的影响,其中温度影响最大,而超声波在空气中的速度与温度的关系的表达式为c=331.45,由泰勒公式将其展开,可得到近似计算公式c=331.5+0.607T。式中T是环境摄氏温度,所以温度每变化1摄氏度,声速的变化为0.6m/s,可见温度对声速的影响很大,测量时必须进行温度补偿。DS18B20温度传感器是美国DALLAS半导体公司推出的一种改进型智能温度传感器,测温范围为-55125摄氏度,最大分辨率可达0.0625摄氏度。DS18B20可以直接读出被测温度值,而且采用了线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点,测温电路如图3-5所示。 图3-5 测温电路原理图3.2.3 显示模块的设计 LED(Light-Emitting Diode,发光二极管)有七段和八段之分,也有共阴和共阳两种。LED数码管结构简单,价格便宜。下图示出了八段LED数码显示管的结构和原理图。图(a)为八段共阴数码显示管结构图,图(b)是它的原理图,图(c)为八段共阳LED显示管原理图。八段LED显示管由八只发光二极管组成,编号是a、b、c、d、e、f、g和SP,分别与同名管脚相连。七段LED显示管比八段LED少一只发光二极管SP,其他与八段相同。图3-6 8段数码管示意图单片机对LED管的显示可以分为静态和动态两种。静态显示的特点是各LED管能稳定地同时显示各自字形;动态显示是指各LED轮流地一遍一遍显示各自字符,人们由于视觉器官惰性,从而看到的是各LED似乎在同时显示不同字形。为了提高系统可靠性并降低成本,单片机控制系统通常采用动态扫描显示。所以本系统采用了两片74HC573分别作为断码和位码的选通芯片,并用一片10K的排阻提供上拉电流,以达到数码管动态描显示,电路原理图如图3-6所示。图3-6 显示电路原理图第四章 系统软件设计 软件分为两部分,主程序和中断服务程序,如图4-1所示。主程序完成初始化工作、超声波发射和接收,距离计算、结果的输出。 外部中断服务子程序主要完成时间值的读取。外部中断子程序计算距离结果输出定时器及中断初始化发射超声波开外部中断指示灯闪烁单片机初始化DS18B20初始化开 始收到回波? NO YES 图4-1 主程序流程图主程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式。置位总中断允许位EA。然后给Trig一个20us的高电平,然后在Echo引脚等待其变为高电平,一旦输出了高电平,表明超声波已开始发射,此刻即计时,等待Echo变为低电平,即触发外部中断0的跳变沿方式中断。读取当前定时器的值,换算成时间,乘以温度补偿后的波速,即得到测距距离。由于采用的是11.0592MHz的晶 振,计数器每计一个数大概就是1s,当主程序检测到接收成功的标志位后,将计数器T1中的数(即超声波来回所用的时间)按式计算,即可得被测物体与测距仪之间的距离。测出距离后结果将以十进制BCD码方式送往LED显示约0.5s,然后再发超声波脉冲重复测量过程。为了有利于程序结构化和容易计算出距离,主程序采用C语言编写。4.1 显示子程序 本系统的LED显示采用了动态显示方式,用两块74HC573分别选通段码和位码,没显示一根管延时2ms,利用人眼的视觉暂留效应,达到静态显示的效果,C程序如下。void display(uint distance_date) uchar dm,cm,mm; dm=distance_date/100; cm=distance_date%100/10; mm=distance_date%10; dula=0; P0=tabledm; dula=1; dula=0; wela=0; P0=0x7f; wela=1; wela=0; delay(2); dula=0; P0=table1cm; dula=1; dula=0; wela=0; P0=0xbf; wela=1; wela=0; delay(2); P0=tablemm; dula=1; dula=0; P0=0xdf; wela=1; wela=0; delay(2); 4.2 外部中断子程序 因本设计把数据换算,计算距离以及显示子程序都放在了主程序中,所以外部中断子程序比较简单,它实现了对T1数值读取,以及关闭外部中断的功能。流程图如图4-2所示。外部中断入口关外部中断读取时间值返回 图4-2 外部中断程序流程图 c程序如下:INTO_() interrupt 0 outcomeH =TH1; outcomeL =TL1; succeed_flag=1; EX0=0; 4.3 测量温度子程序测温电路由美国DALLAS公司的DS18B20芯片完成,其初始化过程如下: DS18B20的初始化(1) 先将数据线置高电平“1”。 (2) 延时(该时间要求的不是很严格,但是尽可能的短一点)(3) 数据线拉到低电平“0”。(4) 延时750微秒(该时间的时间范围可以从480到960微秒)。(5) 数据线拉到高电平“1”。(6) 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。(7) 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。(8) 将数据线再次拉高到高电平“1”后结束。DS18B20的写操作(1) 数据线先置低电平“0”。(2) 延时确定的时间为15微秒。(3) 按从低位到高位的顺序发送字节(一次只发送一位)。(4) 延时时间为45微秒。(5) 将数据线拉到高电平。(6) 重复上(1)到(6)的操作直到所有的字节全部发送完为止。(7) 最后将数据线拉高。DS18B20的读操作(1)将数据线拉高“1”。(2)延时2微秒。(3)将数据线拉低“0”。(4)延时15微秒。(5)将数据线拉高“1”。(6)延时15微秒。(7)读数据线的状态得到1个状态位,并进行数据处理。(8)延时30微秒。开始初始化初始化写命令:跳过读序列号操作(0XCC)写命令:启动温度转换(0X44)温度转换结束?写命令:读温度寄存器(0XBE)写命令:跳过读序列号操作(0XCC)写EEPROM,存储结果根据读写操作,其流程图如4-3 转换完毕 图4-3 DS18B20初始化流程图具体的各部分C程序如下:void dsreset(void) /send reset and initialization command uint i; DS=0; i=103; while(i0)i-; DS=1; i=4; while(i0)i-;bit tmpreadbit(void) /read a bit uint i; bit dat; DS=0;i+; /i+ for delay DS=1;i+;i+; dat=DS; i=8;while(i0)i-; return (dat);uchar tmpread(void) /read a byte date uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tmpreadbit();dat=(j1);/读出的数据最低位在最前面,这样刚好一个字节在DAT里 return(dat);void tmpwritebyte(uchar dat) /write a byte to ds18b20 uint i; uchar j; bit testb; for(j=1;j1; if(testb) /write 1 DS=0; i+;i+; DS=1; i=8;while(i0)i-; else DS=0; /write 0 i=8;while(i0)i-; DS=1; i+;i+; void tmpchange(void) /DS18B20 begin change dsreset(); delay(1); tmpwritebyte(0xcc); / address all drivers on bus tmpwritebyte(0x44); / initiates a single temperature conversionuint tmp() /get the temperature float tt; uchar a,b; dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); a=tmpread(); b=tmpread(); temp=b; temp=8; /two byte compose a int variable temp=temp|a; tt=temp*0.0625; temp=tt*10+0.5; return temp;void readrom() /read the serial uchar sn1,sn2; dsreset(); delay(1); tmpwritebyte(0x33); sn1=tmpread(); sn2=tmpread();前两章是该课题的重点,全面介绍了超声波测距系统的原理和设计思路,给出了硬件电路和软件的设计。在硬件电路的设计中,分别详细介绍了发射电路,接收电路及显示模块的设计方法。软件编程部分,给出了整个程序的思路以及程序流程图。 结 论本设计介绍了一种基于单片机的超声波测距系统的原理和设计。给出了硬件和软件的设计方案。超声波测距的原理是利用超声波的发射和接受,根据超声波传播的时间来计算出传播距离。实用的测距方法有两种,一种是在被测距离的两端,一端发射,另一端接收的直接波方式,适用于身高计;一种是发射波被物体反射回来后接收的反射波方式,适用于测距仪。此次设计采用反射波方式。超声波测距仪硬件电路的设计主要包括单片机系统及显示电路、超声波发射检测接收电路,温度补偿电路四部分。单片机采用AT89C51或其兼容系列。采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用P1.0端口输出超过10us的使能信号,利用外中断0口监测超声波接收电路输出的返回信号。显示电路采用简单实用3位共阳LED数码管,段码位码都用74HC573芯片驱动驱动。本设计所设计的超声波测距系统具有测量精度较高、速度快、控制简单方便等优点。测距范围从4cm到80cm,测量精度在3cm内。测距系统在许多工业现场和自动控制场合,都有很重要的作用。但由于经验不足,电路硬件、软件部分都有不够完善的地方,在今后的学习中会进一步改进。总体来说,最重要的是在本设计的设计过程中我学到了很多知识,从中受益匪浅。了解了超声波传感器的原理,也掌握了单片机的开发过程和利用单片机设计电路的方法。对一块电路板的设计、焊板、调试、改进等整个过程,有了更深入的理解和掌握。这些对我今后的学习和工作都会有很大帮助的。附录1附录2#include #define uchar unsigned char#define uint unsigned int#define ulong unsigned longsbit Trig =P10; sbit Echo =P32;sbit test =P11; /测试灯引脚sbit dula =P26; /段码选通引脚sbit wela =P27; /位码选通引脚sbit DS =P22; /测温引脚uchar code table=0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6;uchar code table1=0xfd,0x61,0xdb,0xf3,0x67,0xb7,0xbf,0xe1,0xff,0xf7;uchar flag,outcomeH,outcomeL;bit succeed_flag;void delay(uint count) /延时程序 uint i; while(count) i=200; while(i0) i-; count-; void delay_20us() /延时20us uchar bt ; for(bt=0;bt0)i-; DS=1; i=4; while(i0)i-;bit tmpreadbit(void) /read a bit uint i; bit dat; DS=0;i+; /i+ for delay DS=1;i+;i+; dat=DS; i=8;while(i0)i-; return (dat);uchar tmpread(void) /read a byte date uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tmpreadbit(); dat=(j1); /读出的数据最低位在最前面,这样刚好一个字节在DAT里 return(dat);void tmpwritebyte(uchar dat) /write a byte to ds18b20 uint i; uchar j; bit testb; for(j=1;j1; if(testb) /write 1 DS=0; i+;i+; DS=1; i=8;while(i0)i-; else DS=0; /write 0 i=8;while(i0)i-; DS=1; i+;i+; void tmpchange(void) /DS18B20 begin change dsreset(); delay(1); tmpwritebyte(0xcc); / address all drivers on bus tmpwritebyte(0x44); / initiates a single temperature conversionuint tmp() /get the temperature float tt; uchar a,b; dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); a=tmpread(); b=tmpread(); temp=b; temp=8; /two byte compose a int variable temp=temp|a; tt=temp*0.0625; temp=tt*10+0.5; return temp;void readrom() /read the serial uchar sn1,sn2; dsreset(); delay(1); tmpwritebyte(0x33); sn1=tmpread(); sn2=tmpread();void main(void) uint distance_data; uchar a; float tem; flag=0; /标志位,1表示收到回波,0则未收到 test=0; /控制灯闪烁 Trig=0; TMOD=0x11; /对定时器1选择16位模式 IT0=0; /设置触发方式为低电平触发 IE0=0; EA=1; /开总中断 tmpchange(); /测出当时温度 ET0=0; TR0=0; while(1) EA=0; TH1=0; TL1=0; Trig=1; /让TRIG引脚为高电平 delay_20us(); /延时20us Trig=0; /产生方波 while(Echo=0); /等待Echo变为低电平,即开始发射超声波 TR1=1; /开始计时 succeed_flag=0; EX0=1; TF1=0; EA=1; while(TH125)&(!IE0); /等待25us或者中断产生(即收到回波) TR1=0; /停止计时 EX0=0; /关闭中断 if(succeed_flag=1) /如果收到回波 distance_data=outcomeH; /先保存高8位 distance_data0;a-) display(distance_data); /显示距离 if(succeed_flag=0) /如果没有收到回波 distance_data=0; test = !test; INTO_() interrupt 0 /外部中断0 outcomeH =TH1; outcomeL =TL1; succeed_flag=1; EX0=0; 本文所介绍的三方向(前、左、右)超声波测距系统,就是为机器人了解其前方、左侧和右侧的环境而提供一个运动距离信息。(类似GPS定位系统) 一 超声波测距原理 1、压电式超声波发生器原理压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器内部结构如图1所示,它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波 时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。 2、超声波测距原理超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2二 超声波测距系统的电路设计 系统的特点是利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时,单片机选用8751,经济易用,且片内有4K的ROM,便于编程。电路原理图如图2所示。其中只画出前方测距电路的接线图,左侧和右侧测距电路与前方测距电路相同,故省略之。1、40kHz 脉冲的产生与超声波发射测距系统中的超声波传感器采用UCM40的压电陶瓷传感器,它的工作电压是40kHz的脉冲信号,这由单片机执行下面程序来产生。puzel: mov 14h, #12h;超声波发射持续200mshere: cp

温馨提示

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

最新文档

评论

0/150

提交评论