#用51单片机设计超声波测距系统的设计原理和电路附源程序Word下载.docx

上传人:b****3 文档编号:14272995 上传时间:2022-10-21 格式:DOCX 页数:17 大小:67.07KB
下载 相关 举报
#用51单片机设计超声波测距系统的设计原理和电路附源程序Word下载.docx_第1页
第1页 / 共17页
#用51单片机设计超声波测距系统的设计原理和电路附源程序Word下载.docx_第2页
第2页 / 共17页
#用51单片机设计超声波测距系统的设计原理和电路附源程序Word下载.docx_第3页
第3页 / 共17页
#用51单片机设计超声波测距系统的设计原理和电路附源程序Word下载.docx_第4页
第4页 / 共17页
#用51单片机设计超声波测距系统的设计原理和电路附源程序Word下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

#用51单片机设计超声波测距系统的设计原理和电路附源程序Word下载.docx

《#用51单片机设计超声波测距系统的设计原理和电路附源程序Word下载.docx》由会员分享,可在线阅读,更多相关《#用51单片机设计超声波测距系统的设计原理和电路附源程序Word下载.docx(17页珍藏版)》请在冰豆网上搜索。

#用51单片机设计超声波测距系统的设计原理和电路附源程序Word下载.docx

图2单片机系统及显示电路

2.超声波发射电路

利用555时基电路振荡产生40kHz的超声波信号,使之和换能器的40kHz固有频率一致。

12V电源保证555时基具有足够驱动能力。

P1.1为超声波发射控制信号,由单片机控制。

发射电路如图3所示:

图3超声波发射电路原理图

3.超声波检测接收电路

超声波接收电路采用集成电路CX20106A,这是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。

考虑到红外遥控常用的载波频率38KHz和测距超声波频率40KHz较为接近,可以利用它作为超声波检测电路。

实验证明其具有很高的灵敏度和较强的抗干扰能力。

适当改变C4的大小,可改变接受电路的灵敏度和抗干扰能力。

接收电路如图4所示:

图4超声波接收电路图

四.系统软件部分

超声波测距程序设计软件部分主要由主程序,超声波发射子程序,超声波接受中断程序及显示子程序组成。

下面对超声波测距仪的算法,主程序,超声波发射子程序和超声波接受中断程序逐一介绍。

1.超声波测距仪的算法设计

下图示意了超声波测距的原理,即超声波发生器T在某一时刻发出的一个超声波信号,当超声波遇到被测物体后反射回来,就被超声波接收器R所接受。

这样只要计算出发生信号到接受返回信号所用的时间,就可算出超声波发生器和反射物体的距离。

距离计算公式:

d=s/2=(c*t)/2

*d为被测物和测距器的距离,s为声波的来回路程,c为声速,t为声波来回所用的时间

2.主程序

主程序框图如右图所示:

主程序首先对系统环境初始化,设置定时器T0工作模式为16位的定时计数器模式,置位总中断允许位EA并给显示端口P0和P2清0。

然后调用超声波发生子程序送出一个超声波脉冲,为避免超声波从发射器直接传送到接收器引起的直接波触发,需延迟0.1ms(这也就是测距器会有一个最小可测距离的原因)后,才打开外中断0接收返回的超声波信号。

由于采用12MHz的晶振,机器周期为1us,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按下式计算即可测得被测物体和测距仪之间的距离,设计时取20℃时的声速为344m/s则有:

d=(C*T0)/2=172T0/10000cm(其中T0为计数器T0的计数值)

测出距离后结果将以十进制BCD码方式LED,然后再发超声波脉冲重复测量过程。

3.超声波发生子程序和超声波接收中断程序

超声波发生子程序的作用是通过P1.1端口发送超声波发射控制脉冲信号,同时把计数器T0打开进行计时。

超声波测距器主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(INT0引脚出现低电平),立即进入中断程序。

进入该中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。

如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2以表示此次测距不成功。

五.软硬件调试及性能

超声波发射和接收采用Φ15的超声波换能器TCT40-10F1(T发射)和TCT40-10S1(R接收),中心频率为40kHz,保持两换能器中心轴线平行并相距4~8cm。

主要性能指标:

测距仪能测的范围为0.08~3.00m,测距仪精度1cm。

程序清单

以下是用汇编语言编写的超声波测距控制源程序:

采用AT89S5212MHz晶振

显示缓冲单元在40H~43H,使用内存44H、45H、46H用于计算距离

20H用于标志

VOUTEQUP1.0;

脉冲输出端口

*中断入口程序*

ORG0000H

LJMPSTART

ORG0003H

LJMPPINT0

ORG000BH

LJMPINTT0

ORG0013H

RETI

ORG001BH

LJMPINTT1

ORG0023H

RETI

ORG002BH

*主程序*

START:

MOVSP,#4FH

MOVR0,#40H;

40~43H为显示数据存放单元(40为最高位)

MOVR7,#0BH

CLEARDISP:

MOV@R0,#00H

INCR0

DJNZR7,CLEARDISP

MOV20H,#00H

MOVTMOD,#21H;

T1为8位自动重装模式,T0为16位定时器

MOVTH0,#00H;

65ms初值

MOVTL0,#00H;

40KHz初值

MOVTH1,#0F2H

MOVTL1,#0F2H

MOVP0,#0FFH

MOVP1,#0FFH

MOVP2,#0FFH

MOVP3,#0FFH

MOVR4,#04H;

超声波脉冲个数控制(为赋值的一半)

SETBPX0

SETBET0

STEBEA

CLR00H

SETBTR0;

开启测距定时器

START1:

LCALLDISPLAY

JNB00H,START1;

收到反射信号时标志位为1

CLREA

LCALLWORK;

计算距离子程序

SETBEA

CLR00H

SETBTR0;

重新开启测距定时器

MOVR2,#64H;

测量间隔控制(约4*100=400ms)

LOOP:

DJNZR2,LOOP

SJMPSTART1

*中断程序*

;

T0中断,65ms中断一次

INTT0:

CLRTR0

MOVTH0,#00H

MOVTL0,#00H

SETBET1

SETBTR0;

启动计时器T0,用以计算超声波来回时间

SETBTR1;

开启发超声波用定时器T1

OUT:

T1中断,发超声波用

INTT1:

CPLVOUT

DJNZR4,RETIOUT

CLRTR1;

超声波发送完毕,关T1

CLRET1

MOVR4,#04H

SETBEX0;

开启接收回波中断

RETIOUT:

外中断0,收到回波时进入

PINT0:

CLRTR0;

关计数器

CLRTR1

CLREX0

MOV44H,TL0;

将计数值移入处理单元

MOV45H,TH0

SETB00H;

接收成功标志

*延时程序*

DL1MS:

MOVR6,#14H

DL1:

MOVR7,#19H

DL2:

DJNZR6,DL2

DJNZR6,DL1

RET

*显示程序*

40H为最高位,43H为最低位,先扫描高位

DISPLAY:

MOVR1,#40H;

G

MOVR5,#0F7H;

PLAY:

MOVA,R5

MOVP0,#0FFH

MOVP2,A

MOVA,@R1

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

LCALLDLIMS

INCR1

MOVA,R5

JNBACC.0,ENDOUT;

RRA

MOVR5,A

AJMPPLAY

ENDOUT;

MOVP2,#0FFH

MOVP0,#0FFH

RET

TAB;

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH

共阳数码管0,1,2,3,4,5,6,7,8,9,不亮,A,—

*距离计算程序(=计算值×

17/1000cm)近似

WORK:

PUSHACC

PUSHPSW

PUSHB

MOVPSW,#18H

MOVR3,45H

MOVR2,44H

MOVR1,#00D

MOVR0,#17D

LCALLMUL2BY2

MOVR3,#03H

MOVR2,#0E8H

LCALLDIV4BY2

LCALLDIV4BY2

MOV40H,R4

MOVA,40H

JNZJJ0

MOV40H,#0AH;

最高位为0,不点亮

JJ0:

MOVAR0

MOVR4,A

MOVAR1

MOVR5A

MOVR3,#00D

MOVR2,#100D

MOV41H,R4

MOVA,41H

JNZJJ1

MOVA,40H;

此高位为0,先看最高位是否为不亮

SUBBA,#0AH

JNZJJ1

MOV41H,#0AH;

最高位不亮,次高位也不亮

JJ1:

MOVA,R0

MOVA,R1

MOVR5,A

MOVR3,#00D

MOVR2,#10D

MOV42H,R4

MOVA42H

JNZJJ2

MOVA,41H;

次高位为0,先看次高位是否为不亮

SUBBA,#0AH

MOV42H,#0AH;

次高位不亮,次高位也不亮

JJ2:

MOV43H,R0

POPB

POPPSW

POPAC

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1