超声波测距(1)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

;超声发生子程序(12M晶振38.5KHz)产生声波脉冲信号(频率约
40kHz的方波),脉冲宽度为12µs左右

NAME CS_T
❖ dd
SEGMENT CODE

PUBLIC CS_T

RSEG dd
❖ CS_T:
PUSH ACC

MOV TH0, #00H

MOV TL0, #00H

MOV A, #10D
❖ Uchar tab1[]=
❖ {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0 xc6,0xa1,0x86,0x8e,0xbf,0xff};
❖ uchar tab2[]={0x01,0x02,0x04,0x08,};
❖ extern void cs_t(void);
三、系统硬件电路的设计
Company Logo
2. 超声波发射电路
超声波发射电路原理图如下图。发射电路主要由反向器74LS04和超声波换能器 构成,单片机P1.0端口输出的40kHz方波信号一路经一级反向器后送到超声波换 能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用 这种推挽形式将方波信号加到超声波换能器两端可以提高超声波的发射速度。 输出端采用两个反向器并联,用以提高驱动能力。两个上拉电阻一方面可以提 高反向器74LS04输出高电平的驱动能力;另一方面可以增加超声波换能器的阻 尼效果,以缩短其自由振荡的时间。

DJNZ ACC, CS_T1 /*是两个机器周期 ,因此一共有12us*/

POP ACC

RET

END
设计建议
❖ 建议最好具有ISP功能 ❖ 或者增加温度补偿的情况 ❖ 或增加报警设置
Company Logo
ISP接口
Company Logo
三、系统硬件电路的设计
复位电路
Company Logo
❖ 晶振电路的原理:晶振两端各接一个无极性电容,电容上电,然后再放电,这样便 可以帮助晶振起振。另:12MHZ的晶振两端接30PF的电容,6MHZ的晶振两端 接20PF的电容。
❖ LED的工作原理:四位共阳LED的一边是段选端,一边是位选端。同名段选端各 自相连,然后7位段选端口接到P0口,位选端接到P2口。通过位选可以控制每一 个LED亮,通过段选端可以控制LED亮什么,其中段选端还要接上拉电阻,其作 用是为了保证LED能够点亮。在位选端加一个高电压,段选端加一个低电压,那 么再加上上拉电阻的作用,便可以保证LED的两端形成一个压差,这样LED就点 亮了。
LOGO
超声波测距器的设计
一、功能要求
Company Logo
超声波测距器可应用于汽车倒车。建筑施
工工地以及一些工业现场的位置监控,也可 用于如液位、井深、管道长度、物体厚度等 的测量。其测量范围为0.10~4.00m,测 量精度为1cm。测量时与被测物体无直接接 触,能够清晰、稳定地显示测量结果。
LED显示电路
晶振电路
三、系统硬件电路的设计
Company Logo
❖ 复位电路的原理:只有在RST端给它24个时钟周期,才能让它复位。当按下开关 时,VCC接通,由于10K电阻的分压作用,RST端的电压为5V,而5V电压正好 可以满足RST复位的24个时钟周期要求,于是RST复位。此电路同时也是自动上 电复位的,当电容开始充电、放电时,RST端的电压便随之变化,电压由低到高, 再由高到低,时间能够满足24个时钟周期,故而RST能够复位。
由于采用12MHZ晶振,计数器每记一个数就是1us,取20℃时 的超声波传输速度v=344m/s,则 d=(vt)/2=344t/2=(172T0/106)m=(172T0 /10000)cm
其中T0为中断T0的计数值。 测出距离后,结果以十进制BCD码方式送往LED显示约0.5S,然 后再发出超声波脉冲重复测量。
} for (i=0; i<300; i++) display(); }
}
超声接收程序(外中断0)
❖ void cs_r(void) interrupt 0 ❖{ ❖ TR0 = 0; ❖ ET0 = 0; ❖ EX0 = 0; ❖ testok = 1; ❖} ❖ /*超时清除程序(内中断T0)*/ ❖ void overtime(void) interrupt 1 ❖{ ❖ EX0 = 0; ❖ TR0 = 0; ❖ ET0 = 0; ❖ testok = 2; ❖}
主程序
❖ void main(void) ❖{ ❖ data uint i; ❖ data ulong time; ❖ P0 = 0xff; /*初始化*/ ❖ P2 = 0xff; ❖ TMOD = 0x11; /*工作方式选择*/ ❖ IE = 0x80; /*CPU开中断*/ ❖ while (1) ❖{ ❖ cs_t(); /*产生 40KHz的方波*/ ❖ delay(1); ❖ testok = 0; ❖ EX0 = 1; /*开外部中断0 */ ❖ ET0 = 1; /*开定时/计数器0 */ ❖ while(!testok) display(); ❖
Company Logo
if (1 == testok) { time = TH0; time = (time<<8) | TL0;/*高8位左移并与低8位
合并*/ time *=172; time /= 10000;%(172T0/10000) dispram[0] = (uchar) (time % 10); time /= 10; dispram[1] = (uchar) (time % 10); time /= 10; dispram[2] = (uchar) (time % 10); dispram[3] = (uchar) (time / 10); if (0 == dispram[3]) dispram[3] = 17; } else if(testok==2){ { dispram[0] = 16; dispram[1] = 16; dispram[2] = 16; dispram[3] = 16; }
2
超声波发射电路
3
超声波检测接收电路
Company Logo
三、系统硬件电路的设计
Company Logo
1. 单片机系统及显示电路
单片机采用89C51或其兼容系列。系统采用 12MHZ高精度的晶振,以获得较稳定的时钟频率, 并减小测量误差。单片机用P1.0端口输出超声波换能 器所需的40kHz方波信号,利用外中断0口监测超声 波接收电路输出的返回信号。显示电路采用简单实用 的4位共阳LED数码管,段码用74LS244驱动,位 码用PNP三极管驱动。单片机系统及显示电路如图:
MCU AT89C51 XAL 12MHz
--------------------------------------*/
❖ #include <reg51.h>
❖ #define uchar unsigned char
❖ #define uint unsigned int
❖ #define ulong unsigned long

PUBLIC DELAY

RSEG PRDELAY

; PUSH ACC
❖ DELAY: MOV R4,#2 ;MOV A,#2 ;
❖ DD1: MOV R5,#24

DJNZ R5,$

DJNZ R4,DD1 ; DJNZ ACC,DD1

;POP ACC
❖ RET
❖ END
Company Logo

SETB TR0 /*定时/计数器0启动*/
❖ CS_T1:
CPL P1.0

NOP

NOP /*是一个机器周期,一个机器周期是一个振荡周期的12分频,*/

NOP /*%如果你的晶振是12MHZ,那你的一个机器周期就是1微秒. */

NOP

NOP

NOP

NOP

NOP

NOP

NOP /*10个NOP 的时间大概是10us*/
❖ 根据设计要求并综合各方面因素,本例决定采用AT89C52单片机作为主控器, 用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成。超声 波测距器系统设计框图如下:
二、方案论证
❖ 超声波测距系统框图
Company Logo
三、系统硬件电路的设计
硬件电路主要分为以下三个部分:
1 单片机系统及显示电路
二、方案论证
Company Logo
❖ 由于超声波指向性强,能量消耗慢,在介质中传播的距离较远,因而超声波经 常用于距离的测量。利用超声波检测距离设计比较方便,计算处理也比较简单, 并且在测量精度方面也能达到使用的要求。
❖ 超声波发生器可以分为两大类:一类是使用电气方式产生超声波;另一类是用 机械方式产生超声波。电气方式包括电压型、电动型等;机械方式有加尔统笛、 液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波各不相同,因而用 途也各不相同。目前在近距离测量方面较为常用的是压电式超声波换能器。
Company Logo
;------------------------------------;延时100机器周期*参数(1~65535) ;-------------------------------------
Company Logo
❖ NAME DELAY

PRDELAY SEGMENT CODE
主程序流程图如下:
距离计算
Company Logo
距离计算公式: D=S/2=(V×t)/2
开始 系统初始化 发送超声波 等待发射超声波
计算距离 显示结果
重新开始
Company Logo
初始化
Company Logo
超声测距器单片机程序
/*--------------------------------------
其中d是被测物与测距器的距离;s是超 声波的来回路程,v是超声波在当前温度下的 速度,t是发送和接收超声波所经历的时间。
四、 系ห้องสมุดไป่ตู้程序的设计
❖ 超声波测距器原理图
T R
障碍物
Company Logo
四、 系统程序的设计
Company Logo
❖ 2.主程序算法设计
主程序首先要对系统环境初始化,设置定时器工作模式为16位定时、 计数器模式,置位总中断允许位EA并对显示端口P0和P2清0;然后调 用超声波发生子程序送出一个超声波脉冲。为了避免超声波从发射器直 接传送到接收器引起的直射波触发,需要延迟0.1ms后才打开外中断0, 接收返回的超声波信号。
三、系统硬件电路的设计
Company Logo
❖超声波换能器的工作原理
压电式超声波换能器是利用压电晶体的谐振来工作的。超声波换能器内部结 构如下图所示,它有两个压电晶片和一个共振板。当它的两极加脉冲信号,其频 率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动 产生超声波,这时它是一个超声波发生器;反之,如果两极间未加外电压,当共 振板接收道超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它 就成为超声波接收换能器了。超声波发射换能器与接收换能器在结构上稍有不同, 使用时应分清器件上的标志。超声波发射换能器上标有字母T,而接收换能器上 标有字母R。
基本原理:
超声接受 超生发生
单片机 控制器
Company Logo
LED 显示 扫面驱动
超声波发射接收传感器
Company Logo
连接外壳的是接地端,黑圈的是正极
发射原理:
Company Logo
发射电路主要由反相器74LS04和超声波换能器构成,单片机 P1.0口输出40khz的方波信号一路经一级反相器送到换能器的一 端,另一路经两级反相器后送到换能器的另一端,用这种推挽的 方式把方波信号加到换能器两端可以提高超声波发射的强度。
❖ extern void delay(uint);
❖ data uchar dispram[5];
❖ void display()
❖ { int j;
❖ for(j=0;j<=3;j++)
❖ {P0=tab1[dispram[j]];

P2=tab2[j];delay(2);

}

}
❖ data uchar testok;
74LS04
Company Logo
接收原理
Company Logo
Company Logo
电路原理图
Company Logo
74LS07
Company Logo
74LS245
Company Logo
Company Logo
四、 系统程序的设计
Company Logo
❖1. 超声波测距器的算法设计 距离计算公式:d=s/2=(vt)/2
相关文档
最新文档