如何不用单片机控制超声波侵入传感器传感器发射和接收信号?

比较简单的AVR单片机超声波测距的实例
单片机&嵌入式
单片机应用
嵌入式操作系统
学习工具&教程
学习和开发单片机的必备工具
(有问必答)
(带你轻松入门)
电子元件&电路模块
当前位置: >>
>> 浏览文章
比较简单的AVR单片机超声波测距的实例
于调试检查及使用在不同场合。测量范围10cm-250cm,测距小于100cm时,误差是1~2cm.,大于 100cm时,误差是3~5cm。SL-SRF-25超声波传感器,还可以指定从单片机I/O端口上输出分段距离检测信号,可以直接装在双龙SL系列机器人上,作为寻物、避障探测等应用。LED发光二极管显示所测分段距离范围信号,可以用于机器人控制。&
&&&&&&&短路插针JD1-2/-3脚功能接地;JD1-1接PC5;短路块插于2,3间,使用LED数码管显示;&短路块插于1,2间,使用LED发光二极管显示,或超声波传感器输出分段控制信号。超声波传感器输出分段控制信号对应J1引脚&:
&&&&&&&&1、J1-1&PD0&&避障距离范围5~9cm&
&&&&&&&&2:&&J1-2&PD1&&避障距离范围10~19cm&
&&&&&&&&3:&&J1-3&PD2&&避障距离范围20~29cm&
&&&&&&&&4:&&J1-4&PD3&&避障距离范围30~39cm&
&&&&&&&&5:&&J1-5&PD4&&避障距离范围40~49cm&
&&&&&&&&6:&&J1-6&PD5&&避障距离范围50~99cm&
&&&&&&&&7:&&J1-7&PD6&&避障距离范围100~179cm&
&&&&&&&&8:&&J1-8&PD7&&避障距离范围180~250cm&
&SLSRF-25电原理图
SL-SRF-25超声波测距源程序:
/*********************************************************************
Project&&&&&&&&:&&&超声波测距
Chip&type&&&&&&:&&&ATMEGA8
Clock&frequency:&&&8.000000MHz
*********************************************************************/
#include&iom8v.h&
#include&macros.h&
#pragma&interrupt_handler&intt0:10&&&&&&&&&&&&&&&&&&&&//T0溢出中断
#pragma&interrupt_handler&icp_timer1:6&&&&&&&&&&&&&&&&//T1捕捉中断
#pragma&data:code&&//设定数据区为程序存储器
const&unsigned&char&tab1[]={0X28,0XEE,0X32,0XA2,0XE4,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&0XA1,0X21,0XEA,0X20,0XA0};//七段译码字型表(lm,cm)
const&unsigned&char&tab2[]={0X08,0XCE,0X12,0X82,0XC4,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&0X81,0X01,0XCA,0X00,0X80};//七段译码字型表(m)
#pragma&data:data&//设定数据区回到数据存储器
unsigned&char&ledbuff[]={0X08,0X28,0X28};//显示缓冲区
unsigned&char&
unsigned&char&
unsigned&char&
void&intt0(void)//T0中断定时程序,定时58US,即测距1CM.
&TCNT0=0XC6;
void&icp_timer1(void)//ICP1捕捉中断,捕捉频率38.5~41.6
&if&(96&=ICR1&=104)
&&SREG&=0X7f;
&&newcount=count-13;
&&TCNT1=0;
&&TCCR1B=0X81;
void&delay_1us(void)//1us
&asm(&nop&);
void&delay_us(unsigned&int&t)//tus
&unsigned&int&i=0;
&for(i=0;i&t;i++)
&delay_1us();
void&delay_1ms(void)//1ms
&unsigned&int&i;
&for(i=1;i&1142;i++);
void&delay_ms(unsigned&char&t)
&unsigned&char&&i=0;
&for(i=0;i&t;i++)
&&delay_1ms();
void&send40kHz(void)&&&&&&&&&&&//发射40KHz超声波
&TIMSK&=0XDF;//禁止ICP1使能
&OCR2=0X64;
&TCCR2=0X19;
void&close40kHz(void)&&&&&&&&&//停止发射超声波
&TCCR2=0X00;
void&hextobcd(unsigned&char&m)//将count十六进制数据转换为LED七段码
&unsigned&char&
&temp=m%10;
&ledbuff[0]=tab1[temp];//mm位
&temp=m%10;
&ledbuff[1]=tab1[temp];//lm位
&temp=m/10;
&ledbuff[2]=tab2[temp];//m位
void&display3led(void)&&&&&&&&//数码管显示
&unsigned&char&i;
&&for(i=0;i&3;i++)
&&PORTD=ledbuff[i];
&&PORTC=~(1&&i);//PC0-mm位,PC1-lm位,PC2-m位
&&delay_1ms();
&&PORTC=(1&&i);
void&display8led(void)&&&&&&&&//8LED显示
&&&&if(newcount&10)&&&&&&&&&&&&&&&&
&&&&&&PORTD=0XFE;
&&&&else&if&(newcount&20)
& &&PORTD=0XFD;
&&&&else&if&(newcount&30)&&&
&&&&&&PORTD=0XFB;
&&&&else&if&(newcount&40)
&&&&&&PORTD=0XF7;
&&&&else&if&(newcount&50)&&
&&&&&&PORTD=0XEF;
&&&&else&if&(newcount&100)&
&&&&&&PORTD=0XDF;
&&&&else&if&(newcount&180)&
&&&&&&PORTD=0XBF;
&&&&else&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&PORTD=0X7F;
void&mcu_init(void)//MCU初始化
&DDRD=0XFF;
&PORTD=0XFF;
&DDRC=0XDF;&&&&&&&//PC5为输入
&PORTC=0XFF;
&DDRB=0XFE;
&PORTB=0XF7;
&TCNT2=0X00;
&TCNT0=0XC6;&&&&&&//T0定时58US
&TCCR0=0X02;&&&&&&//T0定时器1/8分频
&TCNT1=0X00;
&TCCR1A=0X00;
&TCCR1B=0X81;&&&&&//输入捕获噪音抑制允许,ICP1下降沿触发,系统时钟
&TIMSK=0X01;&&&&&&//使能T0定时溢出
void&main(void)
&unsigned&char&i;
&mcu_init();
&&send40kHz();
&&SREG|=0X80;&
&&delay_us(50);
&&close40kHz();
&&delay_us(20);
&&TIMSK=0X21;
&&if(!(PINC&0X20))&&&&&&&&&&&&&&&&&&&&//如果插上JD1短路块,则数码管显示距离
&&&&if&(newcount!=oldcount)
&&&&&&&oldcount=
&&&&&&&hextobcd(oldcount);
&&&&for(i=0;i&20;i++)
&&&&&&&display3led();
&&&&PORTC=0XFF;
&&&&display8led();&
&&&&delay_ms(100);
双龙SL-SRF-25超声波避障程序&51单片机
/***********************************************************************/
&&&&&&&&&&&&&&&&&广州双龙电子
&&&&&&&&&&&&&&&&.CN
&&&&&&&&超声波避障,避障距离为10前进遇障后退左转弯.
&&&&接线方法:
&&&&&&&&&52板P1.0(用短线)接超声波传感器J1-1(J1插针的第一脚)
&&&&&&&&&用户可以根据自已的避障距离,把52板P1.0脚连接到超声波传感器的相应脚
&&&以下是避障距离范围情况:
&&&&&&&&1:&&J1-1&&避障距离范围5~9cm&
&&&&&&&&2:&&J1-2&&避障距离范围10~19cm&
&&&&&&&&3:&&J1-3&&避障距离范围20~29cm&
&&&&&&&&4:&&J1-4&&避障距离范围30~39cm&
&&&&&&&&5:&&J1-5&&避障距离范围40~49cm&
&&&&&&&&6:&&J1-6&&避障距离范围50~99cm&
&&&&&&&&7:&&J1-7&&避障距离范围100~179cm&
&&&&&&&&8:&&J1-8&&避障距离范围180~250cm&
&&&Chip&type&&&&&&&:&&AT89S52&&&&
&&&Clock&frequency&:&&24MHz
/************************************************************************/
#include&&reg52.h&
sbit&P1_0=P1^0;&&&&&&&&&&&&&&//定义避障距离检测脚
void&delay_1ms(void)&&&&&&&&&//1毫秒延时程序
unsigned&char&j=0,i=8;
&&&&&&&&while(--j)&;&
&&&while(--i);
void&delay(unsigned&char&i)&&//&毫秒级延时程序
&&while(i--)
&&delay_1ms();&&
void&forward(void)&&&&&&&&&&&//LED4~5亮,前进
&&&P0=0XE7;
&&&P3=0x50;
void&left&(void)&&&&&&&&&&&&&//LED1~3亮,左转
&&P0=0XF8;
&&P3=0x60;
void&back&(void)&&&&&&&&&&&&//LED全亮,后退
&&P3=0XA0;
void&init(void)&&&&&&&&&&&&//端口初始化
&&P1|=0X01;&&&&&&&&&&&&&&&&//要读取P1.0,就先写1
&&P0=255;&&&&&&&&&&&&&&&&&&//8LED全不亮
/***********************************************************************
&&&&&&&&&&&&&&&&&&&&&主函数
***********************************************************************/
void&main(void)&&&&
&&init();&&&&&&&&&&&&&&&&//系统初始化
&&while(1)&&&&&&&&&&&&&&&//循环
&&&&if(!P1_0)&&&&&&&&&&&&//如果在避障范围,则后退,左转弯
&&&&&&back();
&&&&&&delay(200);&&&&&&&&&//后退200毫秒
&&&&&&left();
&&&&&&delay(200);&&&&&&&&&//左转90度.
&&&&&&&forward();
&&&&&&&delay(200);
【】【】【】【】
上一篇:下一篇:
CopyRight @
单片机教程网
, All Rights Reserved[转载]基于AT89S51单片机的超声波测距系统
基于AT89S51单片机的超声波测距系统
完成日期:2011年4月1日
&&&&超声波具有指向性强,能量消耗缓慢,传播距离较远等优点,所以,在利用传感器技术和自动控制技术相结合的测距方案中,超声波测距是目前应用最普遍的一种,它广泛应用于防盗、倒车雷达、水位测量、建筑施工工地以及一些工业现场。
本课题详细介绍了超声波传感器的原理和特性,以及Atmel公司的AT89S51单片机的性能和特点,并在分析了超声波测距的原理的基础上,指出了设计测距系统的思路和所需考虑的问题,给出了以AT89S51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法。该系统电路设计合理、工作稳定、性能良好、检测速度快、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求。
:超声波&&
Ultrasonic wave has strong pointing to nature ,slowly energy
consumption ,propagating distance farther ,so, in utilizing the
scheme of distance finding that sensor technology and automatic
control technology combine together ,ultrasonic wave finds range to
use the most general one at present ,it applies to guard against
theft , move backward the radar , water level measuring , building
construction site and some industrial scenes extensively。
This subject has introduced principle and characteristic of the
ultrasonic sensor in detail ,and the performance and characteristic
of one-chip computer AT89S51 of Atmel Company ,and on the basis of
analyzing principle that ultrasonic wave finds range ,the
systematic thinking and questions needed to consider that have
pointed out that designs and finds range ,provide low cost , the
hardware circuit of high accuracy , ultrasonic range finder of
miniature digital display and software design method taking AT89S51
as the core ,this circuit of system is reasonable in design,
working stability, performance good measuring speeding soon ,
calculating simple , apt to accomplish real-time control ,and can
reach industry's practical demand in measuring the precision 。
Key Words: U One- R
课题背景,目的和意义
传感器技术是现代信息技术的主要内容之一。信息技术包括计算机技术、通信技术和传感器技术,计算机技术相当于人的大脑,通信相当于人的神经,而传感器就相当于人的感官。比如温度传感器、光电传感器、湿度传感器、超声波传感器、红外传感器、压力传感器等等,其中,超声波传感器在测量方面有着广泛、普遍的应用。利用单片机控制超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且测量精度较高。
超声波测距系统主要应用于汽车的倒车雷达、机器人自动避障行走、建筑施工工地以及一些工业现场例如:液位、井深、管道长度等场合。因此研究超声波测距系统的原理有着很大的现实意义。对本课题的研究与设计,还能进一步提高自己的电路设计水平,深入对单片机的理解和应用。
基于单片机的超声波测距系统
基于单片机的超声波测距系统,是利用单片机编程产生频率为40kHz的方波,经过发射驱动电路放大,使超声波传感器发射端震荡,发射超声波。超声波波经反射物反射回来后,由传感器接收端接收,再经接收电路放大、整形,控制单片机中断口。其系统框图如图1-1所示。
图1-1 基于单片机的超声波测距系统框图
这种以单片机为核心的超声波测距系统通过单片机记录超声波发射的时间和收到反射波的时间。当收到超声波的反射波时,接收电路输出端产生一个负跳变,在单片机的外部中断源输入口产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离,结果输出给LED显示。
利用单片机准确计时,测距精度高,而且单片机控制方便,计算简单。许多超声波测距系统都采用这种设计方法。
课题主要内容
通过上节介绍我们知道,以单片机为核心的超声波测距系统设计简单、方便,而且测精度能达到工业要求。本课题研究的测距系统就是用单片机控制的。
通过超声波发射器向某一方向发射超声波,单片机在发射时刻同时开始计时,超声波在空气中传播,途中碰到障碍物就立即反射回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为V,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离。
本系统利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时。系统定时发射超声波,在启动发射电路的同时启动单片机内部的定时器,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波的反射波时,接收电路输出端产生一个负跳变,单片机检测到这个负跳变信号后,停止内部计时器记时,读取时间,计算距离,测量结果输出给LED显示。
利用本测距系统测量范围应在40cm~599cm,其误差1cm。
超声波测距的方法有多种,如相位检测法、声波幅值检测法和渡越时间检测法等。相位检测法虽然精度高,但检测范围有限;
声波幅值检测法易受反射波的影响。
本测距系统采用超声波渡越时间检测法。其原理为:
检测从超声波发射器发出的超声波,经气体介质的传播到接收器的时间,即渡越时间。渡越时间与气体中的声速相乘,就是声波传输的距离。超声波发射器向某一方向发射超声波,在发射时刻的同时单片机开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。再由单机计算出距离,送LED数码管显示测量结果。
超声波在空气中的传播速度随温度变化,其对应值如表2-1 ,根据计时器记录的时间t
(见图2-1),就可以计算出发射点距障碍物的距离( s ) ,即: s = v t / 2 。
表2-1 声速与温度的关系
温度(℃)
图2-1 超声波测距时序图
超声波传感器
2.1.1 超声波发生器
为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类:
一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;
机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器。
压电式超声波发生器原理
压电型超声波传感器的工作原理:它是利用压电效应的原理,压电效应有逆效应和顺效应,超声波传感器是可逆元件,超声波发送器就是利用压电逆效应的原理。所谓压电逆效应如图2-2所示,是在压电元件上施加电压,元件就变形,即称应变。若在图a所示的已极化的压电陶瓷上施加如图b所示极性的电压,外部正电荷与压电陶瓷的极化正电荷相斥,同时,外部负电荷与极化负电荷相斥。由于相斥的作用,压电陶瓷在厚度方向上缩短,在长度方向上伸长。若外部施加的极性变反,如图c所示那样,压电陶瓷在厚度方向上伸长,在长度方向上缩短。
图2-2压电逆效应图
2.1.3单片机超声波测距系统构成
单片机AT89S51发出短暂的40kHz信号,经放大后通过超声波换能器输出;反射后的超声波经超声波换能器作为系统的输入,锁相环对此信号锁定,产生锁定信号启动单片机中断程序,读出时间t,再由系统软件对其进行计算、判别后,相应的计算结果被送至LED数码管进行显示。
限制超声波系统的最大可测距离存在四个因素:超声波的幅度、反射物的质地、反射和入射声波之间的夹角以及接收换能器的灵敏度。接收换能器对声波脉冲的直接接收能力将决定最小可测距离。
图2-3 超声波测距系统框图
按照系统设计的功能的要求,初步确定设计系统由单片机主控模块、显示模块、超声波发射模块、接收模块共四个模块组成。
单片机主控芯片使用51系列AT89S51单片机,该单片机工作性能稳定,同时也是在单片机课程设计中经常使用到的控制芯片。
发射电路由单片机输出端直接驱动超声波发送。
接收电路使用三极管组成的放大电路,该电路简单,调试工作小较小。
图3-1:系统设计框图
硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波接收电路三部分。单片机采用AT89S51。采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用P0.0端口输出超声波换能器所需的40kHz的方波信号,P3.7端口监测超声波接收电路输出的返回信号。显示电路采用简单实用的3位共阳LED数码管,段码输出端口为单片机的P2口,位码输出端口分别为单片机的P0.2、P0.3、P0.4口,数码管位驱运用PNP三极管S9012三极管驱动。
AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4k
bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
主要性能参数:
·与MCS-51产品指令系统完全兼容
·4k字节在系统编程(ISP)Flash闪速存储器
·1000次擦写周期
·4.0-5.5V的工作电压范围
·全静态工作模式:0Hz-33MHz
·三级程序加密锁
·128&8字节内部RAM
·32个可编程I/O口线
·2个16位定时/计数器
·6个中断源
·全双工串行UART通道
·低功耗空闲和掉电模式
·中断可从空闲模唤醒系统
·看门狗(WDT)及双数据指针
·掉电标识和快速编程特性
·灵活的在系统编程(ISP字节或页写模式)
功能特性概述:
&&& AT89S51
提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32个I/O 口线,看门狗(WDT),两个数据指针,两个16
位定时/计数器,一个5
向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM
中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
& 引脚功能说明
& ·Vcc:电源电压
& ·GND:地
·P0口:P0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“l”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在F1ash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
& ·P1口:Pl
是一个带内部上拉电阻的8位双向I/O口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
Flash编程和程序校验期间,Pl接收低8位地址。
端口引脚 第二功能:
P1.5 MOSI(用于ISP编程)
P1.6 MISO(用于ISP编程)
P1.7 SCK (用于ISP编程)
&&& ·P2 口:P2
是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4
个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8
位地址的外部数据存储器(如执行MOVX@Ri 指令)时,P2
口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。
Flash编程或校验时,P2亦接收高位地址和其它控制信号。
&&& ·P3 口:P3
口是一组带有内部上拉电阻的8 位双向I/0 口。P3 口输出缓冲级可驱动(吸收或输出电流)4
个TTL逻辑门电路。对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,如下表所示:
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
&&& AT89S51
中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和XTAL2
分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图3-2。
外接石英晶体(或陶瓷谐振器)及电容Cl、C2 接在放大器的反馈回路中构成并联振荡电路。对外接电容Cl、C2
虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,推荐电容使用30pF±10pF,而如使用陶瓷谐振器选择40pF±10F。
用户也可以采用外部时钟。采用外部时钟的电路如图5右图所示。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。
由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。图3-2为晶体接线图和外接时钟线路图。
图3-2 内部振荡电路
超声波测距系统构成
本系统由单片机AT89S51控制,包括单片机系统、发射电路与接收放大电路和显示电路几部分组成。硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波接收电路三部分。单片机采用AT89S51。采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用P0.0端口输出超声波换能器所需的40kHz的方波信号,P3.7端口监测超声波接收电路输出的返回信号。显示电路采用简单实用的3位共阳LED数码管,段码输出端口为单片机的P2口,位码输出端口分别为单片机的P0.2、P0.3、P0.4口,数码管位驱运用PNP三极管S9012三极管驱动。
超声波接收头接收到反射的回波后,经过接收电路处理后,向单片机P3.7输入一个低电平脉冲。单片机控制着超声波的发送,超声波发送完毕后,立即启动内部计时器T0计时,当检测到P3.7由高电平变为低电平后,立即停止内部计时器计时。单片机将测得的时间与声速相乘再除以2即可得到测量值,最后经3位数码管将测得的结果显示出来。
超声波测距单片机系统
超声波测距单片机系统主要由:AT89S51单片机、晶振、复位电路、电源滤波部份构成。由K1、K2、K3组成测距系统的按键电路。用于设定超声波测距报警值。如图3-3。
超声波发射、接收电路
超声波发射、接收电路如图3-4。超声波发射电路由电阻R2、三极管BG1、超声波脉冲变压器B及超声波发送头T40构成,超声波脉冲变压器,在这里的作用是提高加载到超声波发送头两端的电压,以提高超声波的发射功率,从而提高测量距离。接收电路由BG1、BG2组成的两组三级管放大电路构成;超声波的检波电路、比较整形电路由C7、D1、D2及BG3组成。
40kHz的方波由AT89S51单片机的P0.0输出,经BG1推动超声波脉冲变压器,在脉冲变压器次级形成60VPP的电压,加载到超声波发送头上,驱动超声波发射头发射超声波。发送出的超声波,遇到障碍物后,产生回波,反射回来的回波由超声波接收头接收到。由于声波在空气中传播时衰减,所以接收到的波形幅值较低,经接收电路放大,整形,最后输出一负跳变,输入单片机的P3.7脚。
图3-4:超声波测距发送接收单元、单元
该测距电路的40kHz方波信号由单片机AT89S51
的P0.0发出。方波的周期为1/40ms,即25&s,半周期为12.5&s。每隔半周期时间,让方波输出脚的电平取反,便可产生40kHz方波。由于单片机系统的晶振为12M晶振,因而单片机的时间分辨率是1&s,所以只能产生半周期为12&s或13&s的方波信号,频率分别为41.67kHz和38.46kHz。本系统在编程时选用了后者,让单片机产生约38.46kHz的方波。
由于反射回来的超声波信号非常微弱,所以接收电路需要将其进行放大。接收电路如图3-4所示。接收到的信号加到BG2、BG3组成的两级放大器上进行放大。每级放大器的放大倍数为70倍。放大的信号通过检波电路得到解调后的信号,即把多个脉冲波解调成多个大脉冲波。这里使用的是1N4148检波二极管,输出的直流信号即两二极管之间电容电压。该接收电路结构简单,性能较好,制作难度小。
3.2.3显示电路
本系统采用三位一体L E D
数码管显示所测距离值,如图3-5。数码管采用动态扫描显示,段码输出端口为单片机的P2口,位码输出端口分别为单片机的P0.2、P0.3、P0.4口,数码管位驱运用PNP三极管S9012三极管驱动。
图3-5:显示单元图
3.2.4 供电电路
本测距系统由于采用的是LED数码管用为显示方式,正常工作时,系统工作电流约为30-45mA,USB口供电。为提高超声波测距板的供电品质,板上设有C1、C2用为滤波。
图3-6:供电单元电路图
3.2.4报警输出电路
为提高测测距系统的实用性,本测距系统的报警输出提供开关量信号及声响信号两种方式。
报警信号由单片机P3.6口输出,提供声响报警信号,电路由电阻R10、三极管BG8、蜂鸣器BY组成,当测量值低于事先设定的报警值时,单片机P3.6口输出高电平,三极管BG8导通,蜂鸣器发出“滴、滴、滴…..”报警声响信号,测量值高于设定的报警值时,停止发出报警声响。报警输出电路如图3-7。
图3-7 报警输出电路
主程序设计
超声波测距的软件设计主要由主程序、超声波发生子程序、超声波接收程序及显示子程序组成。超声波测距的程序既有较复杂的计算(计算距离时),又要求精细计算程序运行时间(超声波测距时),所以控制程序可采用C语言编程。&
主程序首先是对系统环境初始化,设定时器0为计数,设定时器1定时。置位总中断允许位EA。进行程序主程序后,进行定时测距判断,当测距标志位ec=1时,测量一次,程序设计中,超声波测距频度是4-5次/秒。测距间隔中,整个程序主要进行循环显示测量结果。当调用超声波测距子程序后,首先由单片机产生4个频率为38.46kHz超声波脉冲,加载的超声波发送头上。超声波头发送完送超声波后,立即启动内部计时器T0进行计时,为了避免超声波从发射头直接传送到接收头引起的直射波触发,这时,单片机需要延时约1.5
-2ms时间(这也就是超声波测距仪会有一个最小可测距离的原因,称之为盲区值)后,才启动对单片机P3.7脚的电平判断程序。当检测到P3.7脚的电平由高转为低电平时,立即停止T0计时。由于采用单片机采用的是12
MHz的晶振,计时器每计一个数就是1μs,当超声波测距子程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按式(2)计算,即可得被测物体与测距仪之间的距离。
设计时取15℃时的声速为340
m/s则有:&&d=(c&t)/2=172&T0/10000cm其中,T0为计数器T0的计算值。&测出距离后结果将以十进制BCD码方式送往LED显示约0.5s,然后再发超声波脉冲重复测量过程。&&&&&
超声波测距子程序&&&&&&&
csbcj()&&&&&&&&&&&
//超声波测距子程序
delay(5000);
csbfs();&&&&&&&&&&&&&
//超声波发送
while(i--)&&&&&&&&&&&&&
while(csbint)&&&&&&&&&&
//判断接收回路是否收到超声波的回波
&&&&&&&&&&&
i++;&&&&&&&&&&&&&&&
&&&&&&&&&&&
if(i&=2000)&&&&&&&&
//如果达到一定时间没有收到回波,则将csbint置零,退出接收回波处理程序
&&&&&&&&&&&
t=TH0;&&&&&&&&&&&&&&&&&
t=t*256+TL0;
t=t;&&&&&&&&&&&
s=t*&&&&&&&&&&&&&&
//计算测量结果
产生超声波的子程序:
为了方便程序移置及准确产生超声波信号,本测距的超声波产生程序是用汇编语言编写的进退声波产生程序。产生的超声波个数为
&& UCSBFS SEGMENT CODE
&& RSEG UCSBFS
&& PUBLIC CSBFS
CSBFS:&&& mov
;超声波发射的完整波形个数:共计四个
p0.0&&&&&&
;输出40kHz方波&&&&&&&
nop&&&&&&&&&&&&&
&&&&&&nop&&&&&&&&&&&&&
nop&&&&&&&&&&&&&
nop&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
R6,here&&&
超声波测距程序流程图&
超声波测距程子序流程图
我们的步骤是先焊接各个模块,焊接完每个模块以后,再进行模块的单独测试,以确保在整个系统焊接完能正常的工作,原件安装完毕后,将写好程序的AT89S51机装到测距板上,通电后将测距板的超声波头对着墙面往复移动,看数码管的显示结果会不会变化,在测量范围内能否正常显示。如果一直显示“-
-”,则需将下限值增大。本测距板1s测量2-3次,超声波发送功率较大时,测量距离远,则相应的下限值(盲区)应设置为高值。试验板中的声速没有进行温度补偿,声速值为340m/s,该值为15℃时的超声波值。&&&&&
从实物测试的总体来说本测距板基本上达到了要求,理想上超声波测距能达到500到700厘左右,而我们所能实现的最大距离只有699厘,测量结果受环境温度影响。分析原因如下:
超声波发射部份由电阻R2、三极管BG1、超声波脉冲变压器B及超声波发送头T40构成,以提高超声波的发射功率,从面提高测量距离。这种方式,加大的超声波了送头的余振时间,造成超声波测距盲区值较大(本系统盲区值为40厘米)。
2.本测距板没有设计温度补偿对测量结果进行修正。但在硬件的PCB上预留的位置。
[1]赵建领 薛园园 51单片机开发与应用技术详解北京:电子工业出版社,2009
[2] 沈红卫. 基于单片机智能系统设计与实现. 北京:电子工业出版社,2005
[3] 杨国田 白 焰 董 玲 51单片机实用C语言程序设计 中国电力出版社 2009
[4] 李群芳,黄建. 单片机微型计算机与接口技术. 北京:电子工业出版社,2001
[5] 楼然苗、李光飞. 51系列单片机设计实例. 北京:北京航空航天大学出版社,2003
[6] 王守中& 51单片机开发入门与典型实例.&
北京:人民邮电出版社,2009
型号、规格
型号、规格
1/4W电阻器
电解电容器
1/4W电阻器
瓷片电容器
1/4W电阻器
电解电容器
1/4W电阻器
瓷片电容器
1/4W电阻器
瓷片电容器
1/4W电阻器
瓷片电容器
1/4W电阻器
瓷片电容器
1/4W电阻器
1/4W电阻器
1/4W电阻器
传声波传感器
传声波传感器
开关二极管
开关二极管
5V有源蜂鸣器
三位数码管
高频变压器
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 超声波侵入传感器 的文章

 

随机推荐