关键词不能为空

当前您在: 主页 > 英语 >

超声波测距报警器

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-09 08:03
tags:

-

2021年2月9日发(作者:hov)


超声波测距报警器



功能介绍:





本设计可用于测距,


并附带报警功能 ,


利用超声波检测往往比较迅


速、方便、计算简单、易于做到实 时控制,并且在测量精度方面能达


到工业实用的要求,测量范围为


~


,可应用于汽车倒车报警雷达。



工作原理:



超声波发射器向某一方向 发射超声波,


在发射时刻的同时开始计


时,超声波在空气中传播 ,


途中碰到障碍物就立即返回来,超声波接


收器收到反射波就立 即停止计时。超声波在空气中的传播速度为


340m/s


,根据 计时器记录的时间


t


,就可以计算出发射点距障碍物的


距离


(s)


,即:


s= 340t/


2



超声波测距的原理是 利用超声波在空气中的传播速度为已知,


测量声


波在发射后遇到 障碍物反射回来的时间,


根据发射和接收的时间差计


算出发射点 到障碍物的实际距离。



总体系统分析:





本系统采用单片机


STC89C52 +


最小系统


+


数码管显示模块


+


数码管


驱动模块


+H C-SR04


超声波传感器


+


蜂鸣器模 块


+


按键模块。



1


)本设计采用数码管显示测量的距离,


74HC573


和三极管驱动


数码管,使显示更亮。< /p>




2



HC- SR04


超声波模块测距,测量范围为


~





3


) 本设计附带报警装着,报警距离可以采用按键设定




4


)按键说明:三个按键从左往右依次为


+


键,


-


键,设置键。




5


)本设计采用


usb


接口供电



硬件设计



HC-SR04


超声波测距模块可提供



2cm-400cm


的非接触式距离感


测功能,测距精度可达高到



3mm


;模块包括超声波发射器、接收


器与控制电路。







基本工作原理:




1


)采用



IO




TRIG


触发测距,给最少



10us


的高电平信呈。




2



模块自动发送< /p>



8




40khz


的方波,


自动检测是否有信号返回;




3


)有信号返回,通过



IO




ECHO


输出一个高电平,高电平持续


的时间就是超声波从发射到返回的时间。测试距离


=


(高电平 时间


*


声速(


340M/S

< p>



/


2




超声波时序图:






以上时序图表明只需要提供一个



10uS


以上脉冲触发信号,


该模块 内


部将发出



8




40kHz

周期电平并检测回波。


一旦检测到有回波信号


则输出回响信 号。


回响信号的脉冲宽度与所测的距离成正比。


由此通


过发射信号到收到的回响信号时间间隔可以计算得到距离。公式:


uS/ 58=







uS/148=









=






间< /p>


*





340M/S



/


2


;建议测量周期为



60ms


以上,以防止发射









如右图接线,


VCC




5V


电源,



GND


为地线,


TRIG


触发控制信号


输入,


ECHO


回响信号输出等四个接口端。



软件分析





电路图如图所示




单片机程序代码:



#include <>//


器件配置文件



#include <>


//


传感器接口



sbit RX



= P3^2;


sbit TX



= P3^3;


//


按键声明



sbit S1



= P1^4;


sbit S2



= P1^5;


sbit S3



= P1^6;


//


蜂鸣器



sbit Feng= P2^0;



//


变量声明



unsigned int



time=0;


unsigned int



timer=0;


unsigned char posit=0;


unsigned long S=0;


unsigned long BJS=50;//


报警距离


80CM


//


模式



0


正常模式



1


调整



char Mode=0;


bit



flag=0;



unsigned


char


const


={0x3f ,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40 ,0xff/*-*/};


discode[]


//


数码管显示码


09-



不显示



unsigned char const positon[4]={0xfd,0xfb,0xf7,0xfe};


//


位选



unsigned char disbuff[4]




={0,0,0,0};



//


数组用于存放距离信息



unsigned char disbuff_BJ[4]


={0,0,0,0};//


报警信息




//


延时


1 00ms


(不精确)



void delay(void)


{






unsigned char a,b,c;






for(c=10;c>0;c--)










for(b=38;b>0;b--)














for(a=130;a>0;a--);


}



//


按键扫描



void Key_()


{





//+


if(S1==0)


{
































}


//-


delay();


delay();





//


延时去抖



while(S1==0)


{



}



BJS++;



//


报警值加



P1=P1|0x0f;


if(BJS>=151) //


最大


151


{



}


BJS=0;


else if(S2==0)


{






delay();


delay();


while(S2==0)


{




























}



}



P1=P1|0x0f;


BJS--;



//


报警值减



if(BJS<=1)



//


最小


1


{



}


BJS=150;


//


功能



else if(S3==0)



{










delay();


delay();


while(S3==0)


{



}



Mode++;


//


模式加



//


加到


2


时清零


P1=P1|0x0f;


//


设置键



if(Mode>=2)







}





}


{



}


Mode=0;



/******* ************************************************** *********************


****************** **********/


//


扫描数码管



void Display(void)



{












//


正常显示



if(Mode==0)


{









P0=0x00;



//


关闭显示



if(posit==0)//


数码管的小数点



{



}


else


{


P0=(discod e[disbuff[posit]])|0x80;//


按位或,最高位变为


1


,显示小数点






-


-


-


-


-


-


-


-



本文更新与2021-02-09 08:03,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/619917.html

超声波测距报警器的相关文章