超声波传感器测距的原理主要是测出回波和发射脉冲之间的时间间隔,由公式:
距离=速度*时间/2计算,输出显示。下面我们以AT89C2051超声波测距程序为例加以说明。
AT89C2051通过P1.6输出10个40kHz脉冲,由非门做电流放大,以推挽形式加到变压器的初级,升压后推动
超声波传感器换能器。在发射的同时, P1.7输出一个高电平启动,给电容C4充电,。发射结束时高电平翻转为低电平,C4开始对R2、R3组成的分压器放电并输出到比较器的负端。
超声波接收换能器将回波送到放大器进行放大后,送入机内比较器的正输入端。发射时P1.7输出的电平用以抑制比较器的翻转,称为渡越时间,抑制发射器发射的超声波直接辐射到接收器。
超声波传感器测距系统软件设计采用模块化设计,由主程序、发射子程序、查蟓接收子程序、定时子程序、显示子程序等模块组成。该系统的主程序处于键控循环工作方式,当按下测量键时,主程序开始调用发射子程序、查询接收子程序、定时子程序,并把测量结果用显示子程序在液晶屏上显示出来。
由于液晶要使用同一P3口,所以必须使用位操作,否则将导致LCD不能正常显示。在系统还可以加入
温度传感器来监测环境温度,可进行温度被偿。为了增强系统的可靠性,应在软硬件上采用抗干扰措施。
下面是AT89C2051超声波测距程序,仅供大家参考:
# pragma DB OE CD OT(5,SPEED) ROM(LARGE)IV
/*连接所需要的库*/
#i nclude
#i nclude
#i nclude
/*定义数据类型*/
typedef unsingned char byte;
typedef unsigned int word
#define uchar unsigned char
#define unint unsigned int
#define ulong unsigned long
/*定义系统常数*/
#define TRUE 1
#define FALSE 0
#define C=340 /*声速*/
/*定义功能位*/
sbit bflag=ACC7;
sbit VOLCK=P1^5;
sbit MING=P3^5;
sbit QUIET=P1^3;
sbit BACK=P1^2;
/*定义显示缓冲区*/
uchar idata ON[16]={’,’L’,’E’,’N’,’G’,’T’,’H’,’=’,’8’,’.’,’8
’8’,’m’,’’,’’,’’};
/*主程序用延时子程序*/
woid main-delay(void)
{
register i;
TRO=1;
&
nbsp; for(i=0;i<15;i++)
{
TH0=0;
TL0=0;
Do{}while(!TF0);
TF0=0;
}
TR0=0;
}
*/通用延时子程序*/
void delay(void)
{
unint i;
for(i=0;i<200;i++){;}
}
/*键盘延时子程序*/
void key-delay(void)
{
unint i;
for(i=0;i<200;i++){;}
}
/*初始化程序*/
void start_main()
{
tegister i;
uchar a[16]={’’,’L’,’E’,’N’,’G’,’T’,’H’,’=,’8’,’.’,’8’,’8
’,’m’,’’,’’,’’};
for(i=0;<16;i++)
{ON[i]=a[i];}
nitlcd();/*初始化液晶*/
display(ON);/*更新显示*/
}
/*主程序*/
void main()
{
register s,keycode;
long idata t;
start-main();/*初始化*/
main-delay();/*延时*/;
if(keycoed= =true)
{
keycode=key-scan-wait();
/*判断是否有测量键按下*/
t=measure();*/测量*/
S=0.5*t*C;*/换算*/
Decode-bcd(s.0x09);
/*把测量结果置换入显示缓冲区*/
init-lcd();/*初始化液晶*/
display(ON);/*更新显示*/
}
}
其他特价产品
1LG6253-4MA91-ZSIEMENS高压液压站
1LA9163-4KA91-ZSIEMENS高压液压站
1PH7184-7NF000AJ3-ZSIEMENS
1LA9183-2WA61-ZSIEMENS
1LA9090-2KA11-ZSIEMENS
1PH7186-7ND300AA3SIEMENS
1LA7096-4AA91SIEMENS
1LG4207-4AA60SIEMENS
1FT6132-6SB71-1DG0SIEMENS
1LE1001-1CA03-4AA4SIEMENS
1LE10011DA433JZ6ZSIEMENS
1LG4316-4AA66-ZSIEMENS
1LA5186-4AA66-Z SIEMENS
主营产品:Sick传感器,Sick激光扫描仪 ,Sick安全光栅 ,
sick激光扫描仪 ,编码器 ,安全光栅 ,安全继电器 ,CAPTRON触摸开关
,菲尼克斯PHOENIX CONTACT
进入上海远康自动化淘宝店铺