学生用生产实习单片机超声波测距指导书.docx
- 文档编号:14236597
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:30
- 大小:1.21MB
学生用生产实习单片机超声波测距指导书.docx
《学生用生产实习单片机超声波测距指导书.docx》由会员分享,可在线阅读,更多相关《学生用生产实习单片机超声波测距指导书.docx(30页珍藏版)》请在冰点文库上搜索。
学生用生产实习单片机超声波测距指导书
单片机超声波
测距设计指导书
郑洪庆编
电子与电气工程系
2013-9
基于单片机的超声波测距仪的设计
1设计任务与要求
1.1设计项目
基于单片机的超声波测距仪的设计
1.2设计任务
本设计采用超声波传感器,以单片机为核心,实现非接触式距离智能距离测量。
显示模块是一个的数码显示;测量结果的显示用到三位数字段码,格式为X点XX米。
采用AT89S52单片机作处理器,工作电源:
AC6V及电脑USB口两种供电方式供电;超声波测距范围:
40cm~550cm(盲区40cm),测量结果由三位数码管直接显示出来,当测量超过上限值收不到回波时显示“CCC”,测量低于下限值40cm时显示“---”。
模块上设有一输出端口,用于输出报警信号,当测量结果小于设定的报警值时继电器吸合。
报警值可通过板上的两个按键开关K1,K2设定,设定值范围40cm~550cm(与测量上限值相配)。
1.3性能指标
(1)具有反射式超声波测距功能,测距范围:
40cm到550cm;
(2)误差:
1%;
(3)距离显示:
用三位LED数码管进行显示(单位是CM)。
(4)供电方式:
6VAC,或5伏电脑USB口供电。
(5)报警输出:
一路继电器开关量输出及一路声响信号输出。
(6)测距仪具有温度补偿功能,并显示当前温度(该项内容选做)。
(7)其他创新设计
2设计教学内容
1、设计动员,下达任务书和指导书,课堂讲解。
2、查阅资料、搜集数据,拟定设计程序和进度计划。
3、方案设计、电路焊接、程序编写等。
4、整体调试。
5、撰写设计报告(设计说明书)
6、答辩考核
3提交成果形式
(1)超声波测距实物;
(2)设计报告一份。
4设计组织形式
学生每一人做同一个设计题目,每人都必须独立完成设计课题(包括设计电路、焊接电路、编写程序、系统调试等)。
设计结束时每人都要进行答辩。
5设计步骤和要点
5.1电路原理图设计(一周)
(1)查阅相关资料,进行总体设计。
由于买的是别人设计好的电路板,所以要求同学根据电路板(PCB图),利用万用表测量,并画出原理图。
(2)设计电路原理图。
电路原理图设计要符合项目的工作原理,连线要正确,端口要有标号。
图中所使用的元器件要合理选用,电阻,电容等器件的参数要正确标明。
原理图要完整,CPU,外围器件,扩器接口,输入/输出装置,电源等要一应俱全。
(3)用Protel画出电路原理图。
(4)用Protel软件自己重新设计PCB图。
注:
指导老师指导学生如何根据别人设计好的PCB图画出原理图,最后根据用Protel画出原理图、并设计出PCB图。
5.2电路板焊接(一周)
(1)查找相关资料,熟悉超声波测距工作原理。
(2)电路板焊接
(3)电路板调试
注:
指导老师介绍基于单片机超声波测距的工作原理、指导学生焊接电路板、最后把烧好程序的单片机给学生调试电路板。
焊接前
焊接后
5.3程序设计与调试(一周)
(1)根据要求,将总体功能分解成若干个子功能模块,每个功能模块完成一个特定的功能。
(2)根据总体要求及分解的功能模块,确定各功能模块之间的关系,设计直出完整的程序流程图。
(3)调试设计的程序,编译,排除语法错误,能生成HEX文件。
(4)将汇编后生成的HEX文件传送到实验装置或Proteus,执行该程序,检查该程序、是否达到设计要求,若未达到,修改程序,直到达到要求为止。
注:
指导老师指导学生程序设计并调试(最好采用C语言编程)。
指导老师不能一开始就把全部程序给学生,最好给出各个模块的程序。
比如数码管显示模块、蜂鸣器报警模块、继电器输出模块等。
由于程序量比较大,要求学生充分利用课余时间调试。
6设计报告要求
设计报告是学生对设计全过程的系统总结,学生应按《闽南理工学院本科毕业设计(论文)撰写规范》格式编写设计说明书。
设计说明书需要学生做完三周设计后,独立完成。
7考核及评分标准
考核分三部分,一部分是出勤率,占10%;第二部分是设计完成情况验收成绩,占60%;第三部分为设计报告,占30%。
设计评分基本标准如下表:
评定项目
评分成绩
1.设计内容合理、方案正确,具有可行性(30分)
2.设计结果(软件程序)正确(20分)
3.创新性(10分)
4.设计报告规范、分析正确,参考文献充分(30分)
5.答辩(10分)
总分
备注:
成绩等级:
优(90分—100分)、良(80分—89分)、中(70分—79分)、及格(60分—69分)、60分以下为不及格。
附1超声波传感器工作原理
超声波是由机械振动产生的,可在不同介质中以不同的速度传播。
由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。
超声测距是一种非接触式的检测方式。
与其它方法相比,如电磁的或光学的方法,它不受光线、被测对象颜色等影响。
对于被测物处于黑暗、有灰尘、烟雾、电磁干扰、有毒等恶劣的环境下有一定的适应能力。
因此在液位测量、机械手控制、车辆自动导航、物体识别等方面有广泛应用。
特别是应用于空气测距,由于空气中波速较慢,其回波信号中包含的沿传播方向上的结构信息很容易检测出来,具有很高的分辨力,因而其准确度也较其它方法为高;而且超声波传感器具有结构简单、体积小、信号处理可靠等特点。
利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求。
为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。
总体上讲,超声波发生器可以分为两大类:
一类是用电气方式产生超声波,一类是用机械方式产生超声波。
电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。
它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。
目前较为常用的是压电式超声波发生器。
压电型超声波传感器的工作原理:
它是利用压电效应的原理,压电效应有逆效应和顺效应,超声波传感器是可逆元件,超声波发送器就是利用压电逆效应的原理。
所谓压电逆效应如图2-2所示,是在压电元件上施加电压,元件就变形,即称应变。
若在图a所示的已极化的压电陶瓷上施加如图b所示极性的电压,外部正电荷与压电陶瓷的极化正电荷相斥,同时,外部负电荷与极化负电荷相斥。
由于相斥的作用,压电陶瓷在厚度方向上缩短,在长度方向上伸长。
若外部施加的极性变反,如图c所示那样,压电陶瓷在厚度方向上伸长,在长度方向上缩短。
图2-2压电逆效应图
超声波测距的方法有多种,如相位检测法、声波幅值检测法和渡越时间检测法等。
相位检测法虽然精度高,但检测范围有限;声波幅值检测法易受反射波的影响。
本测距系统采用超声波渡越时间检测法。
其原理为:
检测从超声波发射器发出的超声波,经气体介质的传播到接收器的时间,即渡越时间。
渡越时间与气体中的声速相乘,就是声波传输的距离。
超声波发射器向某一方向发射超声波,在发射时刻的同时单片机开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。
再由单机计算出距离,送LED数码管显示测量结果。
超声波在空气中的传播速度随温度变化,其对应值如表2-1,根据计时器记录的时间t(见图2-1),就可以计算出发射点距障碍物的距离(s),即:
s=vt/2。
表2-1声速与温度的关系
温度(℃)
-30
-20
-10
0
10
20
30
100
声速(m/s)
313
319
325
323
338
344
349
386
图2-1超声波测距时序图
附2单片机最小系统设计
单片机又称单片微控制器,是在一块芯片中集成了CPU(中央处理器)、RAM(数据存储器)、ROM(程序存储器)、定时器/计数器和多种功能的I/O(输入/输出)接口等一台计算机所需要的基本功能部件,从而可以完成复杂的运算、逻辑控制、通信等功能。
在这里,我们没必要去找到明确的概念来解析什么是单片机,特别在使用C语言编写程序的时,不用太多的去了解单片机的内部结构以及运行原理等。
从应用的角度来说,通过从简单的程序入手,慢慢的熟悉然后逐步深入精通单片机。
单片机的最小系统就是让单片机能正常工作并发挥其功能时所必须的组成部分,也可理解为是用最少的元件组成的单片机可以工作的系统。
对51系列单片机来说,最小系统一般应该包括:
单片机、时钟电路、复位电路、输入/输出设备等(见图1)。
图1单片机最小系统框图
依据上文的内容,设计51系列单片机最小系统见图2。
图251系列单片机最小系统
下面就图2所示的单片机最小系统各部分电路进行详细说明。
1时钟电路
在设计时钟电路之前,让我们先了解下51单片机上的时钟管脚:
XTAL1(19脚):
芯片内部振荡电路输入端。
XTAL2(18脚):
芯片内部振荡电路输出端。
XTAL1和XTAL2是独立的输入和输出反相放大器,它们可以被配置为使用石英晶振的片内振荡器,或者是器件直接由外部时钟驱动。
图2中采用的是内时钟模式,即采用利用芯片内部的振荡电路,在XTAL1、XTAL2的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。
一般来说晶振可以在1.2~12MHz之间任选,甚至可以达到24MHz或者更高,但是频率越高功耗也就越大。
在本实验套件中采用的11.0592M的石英晶振。
和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。
当采用石英晶振时,电容可以在20~40pF之间选择(本实验套件使用30pF);当采用陶瓷谐振器件时,电容要适当地增大一些,在30~50pF之间。
通常选取33pF的陶瓷电容就可以了。
另外值得一提的是如果读者自己在设计单片机系统的印刷电路板(PCB)时,晶体和电容应尽可能与单片机芯片靠近,以减少引线的寄生电容,保证振荡器可靠工作。
检测晶振是否起振的方法可以用示波器可以观察到XTAL2输出的十分漂亮的正弦波,也可以使用万用表测量(把挡位打到直流挡,这个时候测得的是有效值)XTAL2和地之间的电压时,可以看到2V左右一点的电压。
2复位电路
在单片机系统中,复位电路是非常关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位。
MCS-5l系列单片机的复位引脚RST(第9管脚)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
复位操作通常有两种基本形式:
上电自动复位和开关复位。
图2中所示的复位电路就包括了这两种复位方式。
上电瞬间,电容两端电压不能突变,此时电容的负极和RESET相连,电压全部加在了电阻上,RESET的输入为高,芯片被复位。
随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0,芯片正常工作。
并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动复位的效果。
一般来说,只要RST管脚上保持10ms以上的高电平,就能使单片机有效的复位。
图中所示的复位电阻和电容为经典值,实际制作是可以用同一数量级的电阻和电容代替,读者也可自行计算RC充电时间或在工作环境实际测量,以确保单片机的复位电路可靠。
3EA/VPP(31脚)的功能和接法
51单片机的EA/VPP(31脚)是内部和外部程序存储器的选择管脚。
当EA保持高电平时,单片机访问内部程序存储器;当EA保持低电平时,则不管是否有内部程序存储器,只访问外部存储器。
对于现今的绝大部分单片机来说,其内部的程序存储器(一般为flash)容量都很大,因此基本上不需要外接程序存储器,而是直接使用内部的存储器。
在本实验套件中,EA管脚接到了VCC上,只使用内部的程序存储器。
这一点一定要注意,很多初学者常常将EA管脚悬空,从而导致程序执行不正常。
附3KEILC软件的应用
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。
μVision2IDE是一个基于Windows的开发平台,包含一个高效的编辑器、一个项目管理器和一个MAKE工具。
μVision支持所有的Keil8051工具,包括C编译器、宏汇编器连接/定位器、目标代码到HEX的转换器。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20MB以上的硬盘空间和Windows98/NT/2000/XP等操作系统。
μVision通过以下特性加速嵌入式系统的开发过程:
(1)全功能的源代码编辑器。
(2)器件库用来配置开发工具设置。
(3)项目管理器用来创建和维护项目。
(4)集成的MAKE工具可以汇编编译和连接嵌入式应用。
(5)所有开发工具的设置都是对话框形式。
(6)真正的源代码级的对CPU和外围器件的调试器。
(7)GDIAGDI接口用来在目标硬件上进行软件调试以及和Monitor-51进行通信。
本节通过实例来学习Keil软件的使用,在这一部分将学习如何输入源程序、建立工程、对工程进行详细的设置,以及如何将源程序变为目标代码。
3.1μVision2概述
双击μVision2启动图标,出现如图3-1所示的启动提示信息,μVision2界面如图3-2所示,有3个窗口:
项目窗口、源程序编辑窗口、输出窗口。
μVision2允许同时打开、浏览多个文件。
项目窗口:
包含3个页面(Files、Regs、Books),默认为Files,用来显示项目中包含的工程和文件名。
源程序编辑窗口:
编辑源程序。
输出窗口:
包含3个页面(Build、Command、FindinFiles),默认为Build页面,用来显示工程文件编译时的结果。
图3-1μVision2的启动提示信息
图3-2μVision2启动界面
下面对μVision2的工具栏进行简单介绍。
3.1.1文件操作工具栏
文件操作工具栏如图3-3所示。
图3-3文件操作工具栏
3.1.2编辑工具栏
编辑工具栏如图3-4所示。
图3-4编辑工具栏
3.1.3视图工具栏
视图工具栏如图3-5所示。
图3-5视图工具栏
3.1.4调试工具栏
调试工具栏如图3-6所示。
图3-6调试工具栏
3.1.5项目操作工具栏
项目操作工具栏如图3-7所示。
图3-7项目操作工具栏
3.2Keil工程项目的建立
3.2.1源文件的建立
选择菜单File→New或者单击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编缉窗口,在该窗口中输入以下汇编语言源程序,保存该文件,注意必须加上扩展名(汇编语言源程序一般用asm或a51为扩展名)。
这里假定将文件保存为lsd.asm(以流水灯设计为例),如图3-8所示。
图3-8流水灯控制源程序文件的建立与保存
ORG00H
LOOP:
MOVA,#0FEH;赋初值
MOVR2,#8;设计数值
OUTPUT:
MOVP1,A;送P1口输出
RLA;数据移位
ACALLDELAY
DJNZR2,OUTPUT
LJMPLOOP
DELAY:
MOVR6,#0;延时子程序
MOVR7,#0
DELAYLOOP:
DJNZR6,$
DJNZR7,DELAYLOOP
RET
END
3.2.2建立工程文件
在项目开发中,并不是仅有一个源程序就行了,还要为这个项目选择CPU(Keil支持数百种CPU,而这些CPU的特性并不完全相同),确定编译、汇编、连接的参数,指定调试的方式,有一些项目还会有多个文件组成等。
为管理和使用方便,Keil使用工程(Project)这一概念,将这些参数设置和需要的所有文件都加在一个工程中,只能对工程而不能对单一的源程序进行编译(汇编)和连接等操作。
下面就一步一步地来建立工程。
选择Project→NewProject…菜单命令,出现一个对话框,要求给将要建立的工程起一个名字。
可以在编缉框中输入一个名字(设为lsd),不需要扩展名,如图3-9所示。
图3-9新建工程窗口(流水灯)
单击“保存”按钮,出现第二个对话框,如图3-10所示,这个对话框要求选择目标CPU(即所用芯片的型号)。
Keil支持的CPU很多,选择Atmel公司的AT89C51芯片。
单击ATMEL前面的“+”号,展开该层,单击其中的AT89C51,然后再单击“确定”按钮,回到主界面,此时,在工程窗口的文件页中出现了Target1。
图3-10CPU类型选择窗口
前面有“+”号,单击“+”号展开,可以看到下一层的SourceGroup1,这时的工程还是一个空的工程,里面什么文件也没有,需要手动把刚才编写好的源程序加入,右击SourceGroup1出现一个下拉菜单,如图3-11所示。
图3-11选择添加源程序窗口
选中其中的AddFilestoGroup‘SourceGroup1’,出现一个对话框,如图3-12所示,要求寻找源文件。
注意,该对话框下面的“文件类型”默认为Csourcefile(*.c),也就是以C为扩展名的文件,而我们的文件是以asm为扩展名的,所以在列表框中找不到lsd.asm,需要将文件类型改掉。
单击对话框中“文件类型”后的下拉列表,找到并选中AsmSourceFile(*.a51,*.asm)。
图3-12选择源程序窗口
这样,在列表框中就可以找到lsd.asm文件了。
双击lsd.asm文件,将文件加入项目。
注意,在文件加入项目后,该对话框并不消失,等待继续加入其他文件,但初学时常会误认为操作没有成功而再次双击同一文件,这时会出现如图3-13所示的对话框,提示你所选文件已在列表中,此时应单击“确定”按钮,返回前一对话框,然后单击Close按钮即可返回主界面。
图3-13添加源程序双击同一文件时的提示
返回后,单击SourceGroup1前面的“+”号,会发现lsd.asm文件已在其中,双击文件名,即打开该源程序,如图3-14所示。
图3-14lsd.asm已经添加到项目窗口
3.3工程的详细设置
工程建立以后,还要对工程进行进一步设置,以满足要求。
使用菜单Project→Optionfortarget‘target1’或右击Project窗口的Target1选择Optionfortarget‘target1’,即出现对工程设置的对话框,如图3-15所示,这个对话框非常复杂,共有8个页面,绝大部分设置项取默认值就行了。
如C51、A51、BL51分别与C51编译选项、A51的汇编选项和BL51连接器的连接选项等用法有关。
这里均取默认值,不作任何修改。
以下仅对一些常用的选项作以简单介绍。
图3-15工程设置窗口
设置对话框中的Target页面。
如图3-16所示,Xtal后面的数值是晶振频率值,默认值是所选目标CPU的最高可用频率值,对于我们所选的AT89C51而言是24MHz。
该数值与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。
正确设置该数值可使显示时间与实际所用时间一致,一般将其设置成与你的硬件所用晶振频率相同,如果没必要了解程序执行的时间,也可以不设置,这里设置为12.0。
图3-16工程设置窗口中的Target页面
MemoryModel用于设置RAM使用情况,有3个选择项,Small是所有变量都在单片机的内部RAM中;Compact是可以使用一页外部扩展RAM;而Large则是可以使用全部外部的扩展RAM。
CodeRomSize用于设置ROM空间的使用,同样也有3个选择项,即Small模式,只用小于2KB的程序空间;Compact模式,单个函数的代码量不能超过2KB,整个程序可以使用64KB程序空间;Large模式,可用全部64KB空间。
UseOn-chipROM选择项确认是否仅使用片内ROM(注意:
选中该项并不会影响最终生成的目标代码量)。
Operating项是操作系统选择,Keil提供了两种操作系统:
Rtxtiny和Rtxfull。
关于操作系统是另外一个很大的话题了,通常不使用任何操作系统,即使用该项的默认值None(不使用任何操作系统)。
设置对话框中的Output页面,如图3-17所示,这里面也有多个选择项。
其中CreateHexFile用于生成可执行代码文件(可以用编程器写入单片机芯片的HEX格式文件,文件的扩展名为.hex),默认情况下该项未被选中,如果要写程序做硬件实验,就必须选中该项。
这一点是初学者易疏忽的,在此特别提醒注意。
选中DebugInformation将会产生调试信息,这些信息用于调试,如果需要对程序进行调试,应当选中该项。
图3-17工程设置窗口中的Output页面
BrowseInformation是产生浏览信息,该信息可以用菜单View→Browse来查看,这里取默认值。
按钮SelectFolderforObjects用来选择最终目标文件所在的文件夹,默认是与工程文件在同一个文件夹中。
NameofExecutable用于指定最终生成的目标文件的名字,默认与工程的名字相同,这两项一般不需要更改。
Listing页面用于调整生成的列表文件选项,如图3-18所示。
在汇编或编译完成后将产生(*.lst)的列表文件,在连接完成后也将产生(*.m51)的列表文件,该页用于对列表文件的内容和形式进行细致的调节,其中比较常用的选项是CCompileListing下的AssemblyCode项,选中该项可以在列表文件中生成C语言源程序所对应的汇编代码。
图3-18工程设置窗口中的Listing页面
C51页面用于对Keil的C51编译器的编译过程进行控制,如图3-19所示。
其中比较常用的是CodeOptimization组,该组中Level是优化等级,C51在对源程序进行编译时,可以对代码多至9级优化,默认使用第8级,一般不必修改。
如果在编译中出现一些问题,可以降低优化级别试一试。
Emphasis是选择编译优先方式,第一项是代码量优化(最终生成的代码量小);第二项是速度优先(最终生成代码的速度快);第三项是默认。
默认的是速度优先,可根据需要更改。
图3-19工程设置窗口中的C51页面
Debug页面用于设置对用户程序的调试方式,如图3-20所示。
选中单选框UseSimulator时采用μVision2模拟器进行调试,选中单选框UseKeilMonitor-51Driver时采用Keil公司提供的监控程序进行调试,同时可以在下拉列表框中进行选择,前者可以在μVision2环境中仅用软件方式即可完成对用户程序的调试,后者需要硬件目标板或相应硬件虚拟仿真环境的支持。
图3-20工程设置窗口中的Debug页面
设置完成后按“确定”按钮返回主界面,工程文件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 生产 实习 单片机 超声波 测距 指导书
![提示](https://static.bingdoc.com/images/bang_tan.gif)