基于某51单片机的地超声波测距系统的设计Word格式.docx

上传人:b****2 文档编号:4058219 上传时间:2023-05-02 格式:DOCX 页数:20 大小:1,017.75KB
下载 相关 举报
基于某51单片机的地超声波测距系统的设计Word格式.docx_第1页
第1页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第2页
第2页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第3页
第3页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第4页
第4页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第5页
第5页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第6页
第6页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第7页
第7页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第8页
第8页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第9页
第9页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第10页
第10页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第11页
第11页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第12页
第12页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第13页
第13页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第14页
第14页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第15页
第15页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第16页
第16页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第17页
第17页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第18页
第18页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第19页
第19页 / 共20页
基于某51单片机的地超声波测距系统的设计Word格式.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于某51单片机的地超声波测距系统的设计Word格式.docx

《基于某51单片机的地超声波测距系统的设计Word格式.docx》由会员分享,可在线阅读,更多相关《基于某51单片机的地超声波测距系统的设计Word格式.docx(20页珍藏版)》请在冰点文库上搜索。

基于某51单片机的地超声波测距系统的设计Word格式.docx

〔2-1〕

其中d为被测物与测距器的距离,s为声波的来回路程,c为声波,t为声波来回所用的时间。

其中声速c与温度有关。

T〔2-2〕

如果要提高测距准确度,如此必须考虑温度的影响,也可取室温简化电路设计,将温度传感器作为扩展电路,在力所能与的情况下完成。

超声波测距模块HC-SR04

HC-SR04超声波测距模块可提供2cm至400cm的非接触式距离感测功能,测距精度可达3mm;

模块自身包括超声波发射器、接收器与控制电路。

实物如图2-1所示:

图2-1HC-SR04模块实物图

HC-SR04工作原理与说明:

1、给Trig触发控制信号IO端口至少10us的高电平信号。

2、模块自动发送8个40khz的方波,并自动检测是否有信号返回。

3、有信号返回时,Echo回响信号输出端口输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。

4、两次测距时间间隔最少在60ms以上,以防止发射信号对回响信号的影响。

如图2-2所示:

图2-2HC-SR04工作原理

2.2LCD1602显示屏

LCD1602显示屏实物如图2-3所示:

图2-3LCD1602显示屏

 

LCD1602电路原理图如图2-4所示:

图2-4LCD1602电路原理图

2.3IAP单片机

IAP15F2K61S2单片机为增强型8051CPU,具有1个单时钟/机器周期,其工作电压为4.2V~5.5V,速度比普通的8051快8~12倍;

61K字节片内FLASH程序存储器,片内大容量2048字节的SRAM,大容量的片内EEPPOM,擦写次数在10万次以上;

一共有8道10位高速ADC,速度高达30万次/s,3路PWM还可当3路DA使用;

共有3通道比拟单元,内部高可靠复位,8级可选复位门槛电压,彻底省掉外部复位电路;

内部高精度RC时钟,内部时钟从5MHz~35MHz可选,相当于普通8051的60MHz~420MHz;

两组高速异步串行通信端口,可以在5组管脚之间进展切换,分时复用可当5组串口使用;

各种接口扩展齐全,一根USB线实现系统供电、程序下载与通信功能。

单片机实物图与引脚图如图2-5、图2-6所示:

图2-5IAP单片机实物图

图2-6IAP单片机引脚图

2.4单片机最小系统

对于一个单片机系统,能够工作的前提是具有最小系统模块,最小系统一般包括单片机、晶振电路、复位电路。

单片机的复位与晶振电路都是常见的接法,电源用一个按键控制接通与断开,使得程序下载变得方便。

电路如图2-7所示:

图2-7单片机最小系统

电源电路

此最小系统中的电源供电模块的电源可以通过计算机的USB口供应,也可使用外部稳定的5V电源供电模块供应。

时钟电路

单片机晶振的作用是为系统提供根本的时钟信号。

内部时钟电路的晶振频率一般选择在4MHZ~12MHZ之间〔本设计选用12MHZ〕,外接两个谐振电容,该电容的典型值为30pF。

如图2-8所示:

图2-8时钟电路

复位电路

按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。

如图2-9:

图2-9复位电路

2.4系统整体设计

系统主要由三局部组成:

单片机,超声波测距模块和LCD1602显示屏构成。

单片机在控制中作为控制器,用于对超声波模块的控制和计时,显示电路主要实时显示测量数值。

系统框图如图2-10所示:

图2-10系统框图

3原理图

根据前面对设计的各个相关模块的分别讲述,再结合单片机的引脚功能,从而得到系统整体电路图,如图3-1所示:

图3-1原理图

在图3-1中,LCD1602的D0到D7连接10K上拉排阻并外接到单片机的P2.0到P2.7端口,用于显示所测量距离,超声波HC-SR04的trig端、echo端分别接在单片机的P0.0、P3.2这两个端口,利用单片机的计时器将时间计算出来。

最后通过程序设计将计算出的距离显示到LCD1602液晶显示屏上。

4PCB图

生成PCB如图4-1、4-2所示:

图4-1PCB原理图

图4-2PCB图

5程序流程图

5.1主程序设计

这次软件设计使用的软件是KeiluVision4。

Keil4集成开发环境是一个窗口化的软件开发平台,它集成了功能强大的编辑器、工程管理器以与各种编译工具Keil4使用简单、功能强大,是设计者完成设计任务的重要保证,还能加速单片机应用程序的开发过程。

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

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

由于采用的是12MHz的晶振,计算器每计一个数就是1us,,当主程序检测到接收成功的标志位后,将计数器T0中的数〔即超声波来回所用的时间〕按计算公式计算,即可得被测物体与测距器之间的距离,设计时取声速为340m/s。

超声波测距程序见附录。

5.2程序流程图

主程序流程图如图5-1所示:

图5-1主程序流程图

测距程序流程图如图5-2所示:

图5-2测距程序流程图

6设计感想

在本次实训中,我们首先第一周进展了FPGA的学习,由教师带领我们学习FPGA的根本操作以与简单电路的设计,其中我认为最为主要的就是让我们认识到了FPGA的开展现状以与开展前景。

通过了解,我们知道了FPGA的方便,可以用语言来实现我们需要的功能,进而自动实现其电路的设计,帮助我们简化了很多步骤,在这一周的学习当中,我们首先学会了如何用语言来实现流水灯的设计,以与其根本的设计思路和方法还有quartus2软件的使用方法,继而学会了如何捕捉上升沿,这个很重要,对于以后我们工作能够起很大的作用,最主要的是我们学到了很多电路设计方面的经验,是我们平常在书本上学不到的,能够帮助我们在以后的工作当中节省很多的时间,创造了很多捷径,能够提高我们的效率。

在第二周的时间里,我设计了超声波测距电路,首先当我拿到这个题目时,对于这个课题只有一些初步的想法,通过理论课的学习对此有一个初始的印象,然后就是去找资料,了解到了我们要设计的这个电路具体的实现原理、所需模块等方面,以与他的组成局部,基于这个单片机,我们首先就要设计它的最小系统,然后我们还需要超声波传感器。

并且还需要对于测完的距离进展显示,这时就需要显示装置,这里我们用的是LCD1602A显示屏。

拿到装置以后,我并不会连接,所以就需要认识每个器件的引脚功能,工作原理,引脚的定义以与接法等等,然后我们就要进展绘制原理图,然后生成PCB板,在确认无误之后才能进展焊接,在焊接过程当中我们要注意的是焊点是否焊严,焊锡不能过多,走线要符合,在开始这次的设计工程当中,没有安排好,把LCD1602的数据口和单片机引脚接反,这是一个失误的地方,在教师指导下纠正过来。

我在焊接完板子之后,要进展测试,首先测试显示装置,由于没有电位器,我们就要计算电阻,使显示器能够正常工作,有适当的比照度,亮度等等,在我们进展测试的时候,换了好几个电阻才调整到了适当的亮度。

在各模块都工作正常后,我们要进展程序的编写,要考虑很多方面,例如接口,语法,逻辑等有没有错误,是很必要的,然后进展调试,更改程序等等。

本次设计的超声波测距电路经过测试,误差在1CM左右是0-2CM里可以承受的X围。

经过本次实训,使我收获良多,首先我们认识到了FPGA的开展现状,然后我们了解了电路设计制作的根本流程,让我对这方面的工作有了一定的认识,帮助我们规划以后的工作,是我们本次实训的最大收获。

而且,在设计超声波测距电路过程中我查阅了很多的资料,自主的学习了很多以前没有注意但是实际需要的东西,帮助我们完善了知识储藏,也在一定程度上增强了了我们实际的工作能力,是我们在课堂学习当中没方法实践的方面,然而在以后我们走上工作岗位上却是很重要的东西,所以很感谢这次生产实习让我学到了这么多的东西,做出了实物也使我很有成就感,对这方面的内容有了更大的兴趣以与了解,能够在我走上工作岗位之前给自己提个醒,未雨绸缪,提早做好工作之前的准备。

参考文献

[1]X岩,X鑫.单片机原理与应用.机械工业,2015.6.

[2]X立南.单片机原理与应用教程.大学,2013.

[3]楼然苗,李光飞.单片机课程设计指导.航空航天大学,2012.

[4]俞国亮.MCS-51单片机原理与应用.清华大学,2008.

[5]瞿金辉,周蓉生.超声波测距系统的设计.中国仪器仪表,2007.8.

[6]谭浩强.C语言程序设计(第四版).清华大学,2011.11

[7]周凯,赵望达,赵迪.高精度超声波测距系统.测试技术卷,2007

附录A器件清单:

器件清单如表A-1所示:

元件

说明

数量

IAP15F2K61S2

单片机

1

HC-SR04

超声波模块

LCD1602

液晶显示屏

CH340G

USB转TTL下载器

按键开关

四脚

自锁开关

六脚

瓷片电容

30pF

2

电解电容

10uF

滑动变阻器103

10KΩ

排阻A102J

10KΩ上拉电阻

电阻

300Ω

晶振

12MHz

导线

假如干

表A-1器件清单

附录B程序代码:

#include<

stc15f2k60s2.h>

#include<

intrins.h>

#defineuintunsignedint

#defineucharunsignedchar

uints,time,a,b,c,d;

sbitRS=P3^6;

sbitRW=P3^5;

sbitEN=P3^7;

sbitTrig=P0^1;

sbitEcoh=P0^0;

ucharcodedis_code1[]="

DistanceTest:

"

;

uchardis_code2[]="

0.00M"

ucharcache[3]={0,0,0};

voiddelay_ms(uinttimer)

{

uchari=0;

while(timer--)

for(i=600;

i>

0;

i--);

}

voidDelay15us(unsignedchari)//12.000MHz

_nop_();

i=42;

while(--i);

voidwait()

RS=0;

RW=1;

EN=0;

EN=1;

P2=0XFF;

while(P2&

0X80);

voidwrite_lcd_(uchar)

wait();

RW=0;

P2=;

delay_ms(5);

voidwrite_lcd_data(uchardat)

{

RS=1;

P2=dat;

voidlcd_init()

write_lcd_(0x38);

delay_ms

(1);

write_lcd_(0x06);

write_lcd_(0x0C);

write_lcd_(0x01);

voidchaoshengbo(void)

time=TH0*256+TL0;

TH0=0;

TL0=0;

s=time*0.17;

//?

?

CM

cache[0]=s/1000;

cache[1]=s/100%10;

cache[2]=s/10%10;

dis_code2[0]=cache[0]+'

0'

dis_code2[2]=cache[1]+'

dis_code2[3]=cache[2]+'

write_lcd_(0x80+0x40);

write_lcd_data(dis_code2[0]);

write_lcd_data(dis_code2[2]);

write_lcd_data(dis_code2[3]);

}

voidmain()

lcd_init();

AUXR&

=0x7F;

//定时器时钟12T模式

TMOD&

=0x00;

//设置定时器模式

TMOD|=0x11;

//定时器工作方式1

ET0=1;

//定时器0中断允许

EA=1;

//开总中断

write_lcd_(0x80);

for(i=0;

i<

15;

i++)

{

write_lcd_data(dis_code1[i]);

16;

write_lcd_data(dis_code2[i]);

delay_ms(2000);

i=0;

while

(1)

Trig=1;

Delay15us();

Trig=0;

while(!

Ecoh);

TR0=1;

while(Ecoh);

TR0=0;

chaoshengbo();

delay_ms(1000);

voidtimer0()interrupt1//外部中断1函数

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

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2