52单片机超声波测距论文最终版要点.docx

上传人:b****6 文档编号:8496091 上传时间:2023-01-31 格式:DOCX 页数:13 大小:118.77KB
下载 相关 举报
52单片机超声波测距论文最终版要点.docx_第1页
第1页 / 共13页
52单片机超声波测距论文最终版要点.docx_第2页
第2页 / 共13页
52单片机超声波测距论文最终版要点.docx_第3页
第3页 / 共13页
52单片机超声波测距论文最终版要点.docx_第4页
第4页 / 共13页
52单片机超声波测距论文最终版要点.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

52单片机超声波测距论文最终版要点.docx

《52单片机超声波测距论文最终版要点.docx》由会员分享,可在线阅读,更多相关《52单片机超声波测距论文最终版要点.docx(13页珍藏版)》请在冰豆网上搜索。

52单片机超声波测距论文最终版要点.docx

52单片机超声波测距论文最终版要点

超声波测距

 

摘要:

本作品采用AT89S52作为主控制器,包括LCD液晶显示模块、超声波测距模块,构成了一个基于单片机控制的超声波测距。

系统框图如图1所示

 

硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波接收电路等几部分。

单片机采用AT89S52,系统晶振采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。

单片机用P1.0端口输出超声波换能器所需的40kHz的方波信号,P3.2端口监测超声波接收电路输出的返回信号。

显示电路采用简单实用的LCD1602液晶显示,输出端口为单片机的P2口,位码输出端口分别为单片机的P3.5、P3.6、P3.7口。

1.1系统整体方案的设计

由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。

利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到农业生产等自动化的使用要求。

 

    超声波发生器可以分为两大类:

一类是用电气方式产生超声波,一类是用机械方式产生超声波。

电气方式包括压电型、电动型等;机械方式有加尔统笛、液哨和气流旋笛等。

它们所产生的超声波的频率、功率、和声波特性各不相同,因而用途也各不相同。

目前在近距离测量方面常用的是压电式超声波换能器。

根据设计要求并综合各方面因素,本文采用AT89S52单片机作为控制器,用LCD实现数字动态显示,采用555定时器构成振荡电路。

 

1.151系列单片机的功能特点

5l系列单片机中典型芯片(AT89C51)采用40引脚双列直插封装(DIP)形式,内部由CPU,4kB的ROM,256B的RAM,2个16b的定时/计数器TO和T1,4个8b的工/O端I:

IP0,P1,P2,P3,一个全双功串行通信口等组成。

特别是该系列单片机片内的Flash可编程、可擦除只读存储器(E~PROM),使其在实际中有着十分广泛的用途,在便携式、省电及特殊信息保存的仪器和系统中更为有用。

该系列单片机引脚与封装如图2-1所示。

52系列单片机提供以下功能:

4kB存储器;256BRAM;32条工/O线;2个16b定时/计数器;5个2级中断源;1个全双向的串行口以及时钟电路。

空闲方式:

CPU停止工作,而让RAM、定时/计数器、串行口和中断系统继续工作。

掉电方式:

保存RAM的内容,振荡器停振,禁止芯片所有的其他功能直到下一次硬件复位。

5l系列单片机为许多控制提供了高度灵活和低成本的解决办法。

充分利用他的片内资源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。

 

1.3系统整体方案的论证

超声波测距的原理是利用超声波的发射和接收,根据超声波传播的时间来计算出传播距离。

实用的测距方法有两种,一种是在被测距离的两端,一端发射,另一端接收,直接接收波方式,适用于身高计;一种是发射波被物体反射回来后接收的反射波方式,适用于测距仪。

此次设计采用反射波方式。

测距仪的分辨率取决于对超声波传感器的选择。

超声波传感器是一种采用压电效应的传感器,常用的材料是压电陶瓷。

由于超声波在空气中传播时会有相当的衰减,衰减的程度与频率的高低成正比;而频率高分辨率也高,故短距离测量时应选择频率高的传感器,而长距离的测量时应用低频率的传感器。

2.1超声波测距单片机系统

超声波测距单片机系统主要由:

AT89C51单片机、晶振、复位电路、电源滤波部份构成。

如图3-2。

图3-2:

超声波测距单片机系统

2.2超声波发射、接受电路

超声波发射如图3-3,接收电路如图3-4。

超声波发射电路由电阻74ALO4、555电路及超声波发送头T40构成接收电路。

由555发射出波形,再由555外围的电路经过滤波、调整,形成好看无杂波的波形,再经过74AL04反向驱动放大,最后由超声波发射探头发射出去。

接收电路由一级放大100倍,低通滤波,高通滤波,二级放大100倍,经过比较器LM393转换为高低电平,触发三极管,启动中断计时。

图3-3:

超声波测距发送单元

图3-4:

超声波测距接收单元

由于反射回来的超声波信号非常微弱,所以接收电路需要将其进行放大。

接收电路如图3-4所示。

接收到的信号加TL084的两级放大器上进行放大。

每级放大器的放大倍数为100倍。

放大的信号经过高低通两段滤波,使波形该接收电路结构简单,性能较好,制作难度小。

2.3显示电路

本系统采用三位一体LCD显示所测距离值,如图3-6。

显示电路采用简单实用的LCD1602液晶显示,输出端口为单片机的P2口,位码输出端口分别为单片机的P3.5、P3.6、P3.7口。

图3-5:

显示单元

3.1主程序设计

超声波测距的软件设计主要由主程序、超声波发生子程序、超声波接收程序及显示子程序组成。

超声波测距的程序既有较复杂的计算(计算距离时),又要求精细计算程序运行时间(超声波测距时),所以控制程序可采用C语言编程。

 

主程序首先是对系统环境初始化,设定时器0为计数,设定时器1定时。

置位总中断允许位EA。

进行程序主程序后,进行定时测距判断,当测距标志位ec=1时,测量一次,程序设计中,超声波测距频度是4-5次/秒。

测距间隔中,整个程序主要进行循环显示测量结果。

当调用超声波测距子程序后,首先由单片机产生4个频率为38.46kHz超声波脉冲,加载的超声波发送头上。

超声波头发送完送超声波后,立即启动内部计时器T0进行计时,为了避免超声波从发射头直接传送到接收头引起的直射波触发,这时,单片机需要延时约1.5-2ms时间(这也就是超声波测距仪会有一个最小可测距离的原因,称之为盲区值)后,才启动对单片机P3.2脚的电平判断程序。

当检测到P3.2脚的电平由高转为低电平时,立即停止T0计时。

由于采用单片机采用的是12MHz的晶振,计时器每计一个数就是1μs,当超声波测距子程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按式

(2)计算,即可得被测物体与测距仪之间的距离。

设计时取15℃时的声速为340m/s则有:

  d=(c×t)/2=172×T0/10000cm其中,T0为计数器T0的计算值。

 测出距离后结果将以十进制BCD码方式送往LCD显示约0.5s,然后再发超声波脉冲重复测量过程

 

3.2程序流程图:

本次实训在设计中,力求能达到最基础的功能,系统性能的稳定,在此条件下在加强其测距的距离。

 

3.3程序清单:

Main.c:

#include

#include"Delay.h"

#include

#defineucharunsignedchar

#defineuintunsignedint

//#defineVELOCITY_30C3495

#defineLcd_PortP2//定义数据端口

enumstate_all{n1,n2,n3}state;

ucharaa[10]={'0','1','2','3','4','5','6','7','8','9'};

longintdistance=0;

sbitOutput=P1^0;//发射控制端口

sbitLcd_RS=P3^5;//定义和LCD的连接端口,写数据指令端口2.6

sbitLcd_RW=P3^6;//读写端口2.5

sbitLcd_E=P3^7;//使能端口2.4

sbitLcd_Busy=P2^7;//读忙端口

//bitflag;

//发射超声波

voidTrig_SuperSonic(void)

{

Output=1;

TR0=1;

Delayus(45);

Output=0;

Delayus(5);//

EX0=1;

}

 

//距离转换函数

voidMeasure_Distance(void)

{

longintl;

longinth,y;

l=TL0;

h=TH0;

y=(h<<8)+l;

TL0=0x00;

TH0=0x00;

Delayus(20);

//distance=(int)(y*17/100);//mm

distance=(int)(y*340*80/200000);//mm310y*340*100/200000测80cm,200cm校准

}

//外部中断

voidExt0(void)interrupt0

{

TR0=0;

EX0=0;

//flag=1;

//Output=0;

}

//定时器初始化函数

voidInit_MCU(void)

{

TMOD=0x01;//定时器0初始化,设置为16位自动重装模式

TL0=0x00;

TH0=0x00;//1ms定时

ET0=1;//开定时器0

EA=1;//总中断使能

//TF0=1;

IT0=0;//

}

//初始化清零

voidInit_Parameter(void)

{

TL0=0x00;

TH0=0x00;

EX0=0;

}

//读忙信号判断

voidRead_Busy(void)

{

uchark=255;

Lcd_Port=0xff;

Lcd_RS=0;

Lcd_RW=1;

Lcd_E=1;

while((k--)&&(Lcd_Busy));

Lcd_E=0;

}

//写指令函数

voidWrite_Comm(uintlcdcomm)

{

Read_Busy();//先读忙

Lcd_RS=0;//端口定义为写指令

Lcd_RW=0;//端口写入使能

Lcd_E=1;//端口输入总使能

Lcd_Port=lcdcomm;//数据端送指令

Lcd_E=0;//端口输入总禁止

}

//写数据函数

voidWrite_Chr(uintlcddata)

{

Read_Busy();//先读忙

Lcd_RS=1;//端口写数据使能

Lcd_RW=0;//端口写入使能

Lcd_E=1;//端口总输入使能

Lcd_Port=lcddata;//数据端口送数据

Lcd_E=0;//端口总输入禁止

}

//初始化LCD

voidInit_LCD(void)

{

Delayms

(2);//稍微延时,等待LCD进入工作状态

Write_Comm(0x38);//8位2行5*8

Write_Comm(0x0c);//显示开/关,光标开闪烁开

Write_Comm(0x01);//清显示

Write_Comm(0x06);//文字不动,光标右移

Write_Comm(0x02);//光标归位

}

voidTimer0(void)interrupt1using1

{

TR0=0;//

EX0=0;//

//set=1;

TH0=0X00;

TL0=0X00;

}

voidmain(void)

{

Delayms(10);

Init_MCU();//定时器初始化

Init_LCD();//lcd初始化

distance=0;

Write_Comm(0x80);//确定显示位置,第1行第3列

Write_Chr(aa[distance/1000]);//m

Write_Chr('.');

Write_Chr(aa[distance/100%10]);//dm

Write_Chr(aa[distance%100/10]);//cm

Write_Chr(aa[distance%10]);//mm

Write_Chr('m');

state=n1;

while

(1)

{

Write_Comm(0x80);//确定显示位置,第1行第3列

Write_Chr('0');

Write_Chr(aa[distance/1000]);

Write_Chr('.');

Write_Chr(aa[distance/100%10]);

Write_Chr(aa[distance%100/10]);

Write_Chr(aa[distance%10]);

Write_Chr('m');

Delayms(100);//LCD刷新时间10090

switch(state)

{

casen1:

//等待状态

Init_Parameter();//清零

state=n2;

break;

casen2:

Trig_SuperSonic();//发射超声波

state=n3;

break;

casen3:

Delayms(10);

Measure_Distance();//有接收到,就显示出距离,没有就显示0

state=n1;

Delayms(200);

break;

}

}

}

延时程序

#include"reg52.h"

#defineucharunsignedchar

//1ms延时函数,

voidDelayms(ucharms)

{

uchari;

while(ms--!

=0)

for(i=0;i<125;i++)

;

}

//1us延时函数

voidDelayus(ucharus)

{

while(us--!

=0);

}

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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