基于单片机的超声波测厚仪设计.docx
《基于单片机的超声波测厚仪设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的超声波测厚仪设计.docx(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、图2-1 超声波原理示意图2.3 设计思路此次设计包括硬件设计和软件设计两部分,电路结构可以分为超声波传感器电路、液晶显示电路、单片机电路、温度补偿电路、提示电路、按键电路等。系统总体设计框图如图2-2所示。图2-2 系统总设计框图此次设计的内容包括硬件电路连接和软件设计两部分。开始先通过单片机驱动DS18B20温度传感器,由温度传感器进行温度测量后计算得出当前温度下的超声在空气中的传播速度,然后由Trig引脚发出一个高电平信号,发射超声波。超声波经过反射回来后,通过等待超声波接受口Echo引脚有高电平输出,一旦有高电平输出打开定时器进行计时。由定时器计算得出超声波传感器发射超声波与接收到超声
2、波回波之间的时间差。就可以计算得出厚度,再由液晶显示器显示数值。当距离小于某一数值或者超出测量范围时,蜂鸣器发出声音进行报警。2.4 本章小结 本章首先对超声波的一些基础特性惊醒了阐述,及其在现实生活中的主要应用,接着详细介绍了三种超声测厚方法的基本原理,最后介绍本系统所采用的基本原理和总体设计思路,为接下来论述各模块在硬件和软件上的实现奠定基础。 第三章 硬件设计3.1 单片机模块3.1.1 单片机简介AT89C51是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含4k字节的可反复擦写的只读程序存健器(EROME)和128 字节的随机存取数据存储器。兼容标准MCS-51指令系
3、统,片内置通用8位中央处理器(CPU)和Flash存储单元。AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM。32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作权式。拉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件I作直到下一个硬件复位。图3-1为AT89C51单片机的方框图。图3-1 AT89C51单片机的方框图其引脚功能如下:l VCC:电源电压;l GND:地;l P0口:8位漏极开路型双向I/O口;l P
4、1口:带内部上拉电阻的8位双向I/O口;l P2口:带内部上拉电阻的8位双向I/O口;l P3口:带内部上拉电阻的8位双向I/O口,其第二功能如表3-1所示;l RST:复位输入,高电平有效;l ALE/PROG:ALE为地址锁存控制信号端,PROG为编程脉冲输入端;l PSEN:访问片外程序存储器;l EA/VPP:外部访问允许;l XTAL1:反向放大器输入端;l XTAL2:反相器输出端。P3口作为第二功能使用时各个功能引脚如表3-1所示:表3-1 P3口各引脚第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外中断0)P3.3INT1(外
5、中断1)P3.4T0(定时/计数器0外部输入)P3.5T1(定时/计数器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)3.1.2 单片机最小系统单片机最小系统,也叫单片机最小应用系统,是指用最少的原件组成单片机可以工作的系统。电源、振荡电路、复位电路构成了单片机最小系统的三要素,也就是说,一个单片机具备了这三个条件,就可以运行下载的程序了,其他的比如LED小灯、数码管、液晶等设备都是属于单片机的外部设备,即外设。单片机最小系统电路图如图3-2所示。图3-2 单片机最小系统电路图(1) 电源:主控电路供电5V。(2) 振荡电路:由晶振和电容组成,理论上来说,
6、振荡频率越高表示单片机的运行速度越快,但是同时也对存储器的速度和印刷电路板的要求也就越高。AT89C51单片机的18脚和19脚是品振引脚,此最小系统接的是11.0592MHZ的晶振,外加两个33Pf的电容,这个电容的值没有特别的要求,作用是帮助晶振起振,并维持振荡信号的稳定。晶振电路如图3-3所示。(3) 复位电路:接到了单片机的9脚(RST)复位引脚上,当程序运行过程中突然断电,此时单片机内部有的数据会丢失,有的还没有丢失,为了单片机下次打开时还能正常运行,再次上电后,单片机内部要进行一个初始化,这个过程就可以理解为上电复位;当程序运行时,遭受外界干扰死机,或者程序跑飞的时候,就可以按下复位
7、键让程序重新开始运行,这个过程叫手动复位;当程序死机或者跑飞的时候,如果程序长时间失去响应,单片机看门狗会自动复位重启单片机这个过程就是程序自动复位15。15本单片机最小系统采用手动复位方式,复位电路如图3-4所示。图3-3 晶振电路 图3-4 复位电路 3.2温度检测模块 3.2.1 数字温度传感器DS18B20简介声波在空气中传播时,空气的温度、大气压力、湿度等都会对超声波的速度有影响,其中空气的温度对于超声波的速度影响最大,所以,为了避免环境温度而带来的偏差,必须对环境温度进行检测,并通过计算消除环境温度引起的偏差。DS18B20具有接线简单、体积小、使用方便的特点,封装后可以用于各种场
8、合的测温,尤其适应于狭小空间的测温。DS18B20可以直接将温度转化成串行数字信号供处理器处理,DSI8B20与单片机的连接十分简单,单片机只需要一个I/O口就可以控制DS18B20进行温度采集16。DS18B20与单片机的连接如图3-5所示。图3-5 DS18B20连接电路3.2.2 DS18B20工作原理DS18B20的ROM中存放了一个64位的序列号,可以看作是该温度传感器的地址序列码。光刻ROM序列号的作用是可以使每一个的温度传感器各不相同17。这样一台主机就可以挂接多个温度传感器,组成多个测温网点。 当进行温度操作时,如果主机对多个DS18B20进行使用,要先将主机逐个与各个DS18
9、B20进行挂接,读出其序列号,然后将所有的DS18B20挂接到总线上,单片机发出匹配ROM指令,如果是只针对一个DS18B20进行操作,则可以不用进行这些步骤,并且不用读取ROM和匹配ROM,直接跳过(CCH);然后开始温度转换、读取。DS18B20 ROM 部分命令和功能命令如表3-2,表3-3所示。表3-2 DS18B20 ROM命令命令代码搜索ROM0xF0读取ROM0x33匹配ROM0x55跳过ROM0xCC表3-3 DS18B20功能命令命令代码转换温度0x44读暂存器0xBE写暂存器0x4EDS18B20测量范围是-55+125,测量分辨率为912位(复位值为12位,最大转换时间为
10、750ms)。在要进行测温或者温度转换时控制器要发出44H命令,此时就会进行测温,温度转换结束之后,会以两个字节的形式保存在高速缓存存储器中。每个字节都是个八位的数据,高字节的前五位是温度符号位,如果前五位就是0,则代表温度大于零,反之为1。如果是正温度就直接乘以0.0625就得到了温度的值,如果小于零,就要减1在取反,再乘以0.0625。DS18B20温度传感器的内部结构图如图3-6所示。图3-6 DS18B20内部结构图3.2.3 温度补偿超声波在固体中传播速度最快,在气体中传播速度最慢,而且声速c与温度有关。如果环境温度变化显着,必须考虑温度补偿问题。为了提高系统的测量精度,本文设计了温
11、度补偿电路。根据实际温度的值,利用式(3-1)可计算补偿声速。表3-4为几种温度下的对应不同声速。空气中声速与温度的关系可以表示为: c=331.41+T/273331.4+0.607T(m/s) 式(3-1)式中,T 为环境摄氏温度。表3-4 声速与温度对应表温度-30-20-100102030100声速米/秒3133193253323383443493863.3 超声波模块HC-SR04超声波模块的电路连接如图3-7所示。HC-SR04超声波传感器可以提供2cm450cm的非接触式测量,测量精度可以达到3mm,该模块包括超声波发射电路,超声波接收电路和超声波控制电路。HC-SR04具有以下
12、几个特点: (1)超微型,体积小,相当于两个发射头面积的大小 (2)盲区小,10mm以内可以当作0来处理:(3)测量速度快,10ms的测量周期不容易丢失目标:(4)发射头和接收头成直线关系。图3-7 超声波电路连接图 HC-SR04的引脚与单片机的接法如下: (1)VCC:接5V电源; (2)GND:接地; (3)Trig(控制器发射信号端):接单片机的I/O口; (4)Echo(接收端):接单片机的I/O口。超声波传感器的Trig端口和Echo端口在连接单片机端口时,要先接个上拉电阻,因为单片机的P2端口自带上拉电阻,所以将Trig端口和Echo端口接在P2.0和P2.1端口上。HC-SR0
13、4的电气参数如表3-5所示。表3-5 HC-SR04电气参数表电气参数HC-SR04工作电压DC 5V工作电流小于2mA工作频率40HZ感应角度不大于15度探测距离2cm450cm精度可达3mm输入触发信号10s的TTL输出回响信号输出TTL脉冲,与距离成正比尺寸大小452015mm3.4 蜂鸣器和指示灯报警电路蜂鸣器是一种一体化结构的电子讯响器,分为无源蜂鸣器和有源蜂鸣器,所谓的“源”是指电子元器件在工作时,如果其内部振荡源存在,则这种器件叫做有源器件。如果元器件在工作时内部没有振荡源则这种期间被称为无源器件。 有源蜂鸣器本身含有驱动,直接给他一定的电压就可以发声,无源蜂鸣器要靠外部驱动才可
14、以响。无源蜂鸣器的理想驱动是一定频率的方波。蜂鸣器的I/O口与单片机的I/O口相连,当测量的距离小于或者超出测距范围时蜂鸣器报警,红色发光二极管亮灯,在安全距离之内时,红色发光二极管就不会会亮起,表示在安全距离以内。蜂鸣器和指示灯报警电路图如图3-8所示。图3-8 报警电路图3.5显示模块3.5.1 LM016L液晶显示模块简介LM016L液晶显示器与单片机的连接电路如图3-9所示,VEE端是液晶显示对比度调节,如果直接接到VCC端会使对比度过高不会显示内容,一般要加一个电位进行对比度调节。E是使能端,又称为允许输入端或禁止端,下降沿使能。RS是数据命令选择端,R/W是读写选择端。D0D7是数
15、据传输端。LM016L液晶显示器共有14个引脚,引脚说明如表3-6所示。表3-6 LM016L液晶显示器引脚说明编号符号引脚说明1VSS一般接地2VDD接电源3VEE液晶显示对比度调节4RS寄存器选择5R/W读写信号线6E使能端714D0D7数据端 图3-9 LM016L连接电路3.6 本章小结本章主要介绍此次设计所用到的硬件设计。首先本章第一节介绍了设计所用单片机AT89C51的基本参数以及引脚功能,接着介绍单片机最小系统,详细介绍了复位电路、振荡电路;第二节介绍了温度检测模块,详细介绍温度传感器DS18B20的特点以及工作原理,并介绍温度与声速的关系式来实现温度补偿;第三节介绍HC-SR0
16、4超声波传感器的特点以及与单片机的连接方式;第四节主要介绍蜂鸣器以及发光二极管,二者组成报警电路;第五节介绍LM016L液晶显示模块,阐述了其基本参数及引脚功能。- 11 -第四章 软件设计4.1 Keil开发环境及开发语言此次开发环境选择Keil Vision 4集成开发环境。Keil提供了包括C编译器、宏编译、链接器、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部分组合在一起。图4-1为此次设计所用的Keil Vision 4集成开发环境。此次设计编程语言采用C语言, 它是目前广泛流行的结构化程序设计语言,既具有高级语言的优点,又具有低级语言的许
17、多特点,适合编写系统软件和应用软件。图4-1 Keil Vision 4开发环境本次设计采用的是模块化的思路来进行设计和编写程序的,程序由主程序模块、温度传感器模块、液晶显示模块、超声波模块、头文件模块、报警模块组成,主程序用来进行函数调用和定时器定时。系统总流程图如图4-2所示。图4-2 超声波测厚仪的总体流程图- 40 -4.2主程序模块主程序首先是调用各个模块的初始化函数,报警电路调整最大值与最小值,启动超声波,当RX为0时等待,开始计时,再次等待RX为1,关闭计时,延时20ms,调用温度转换函数,得出温度值,再调用超声波计算函数,测出厚度,若厚度超过测量范围,则蜂鸣器报警,红灯亮;若厚
18、度在测量范围内,则蜂鸣器不响,红灯不亮;厚度显示在液晶显示屏上。主函数流程图如图4-3所示。图4-3 主函数流程图4.3 温度检测模块DS18B20是单总线技术,有着严格的时序概念。在软件编写的时候要严格按照时序图进行延时,否则会出现初始化失败等错误。温度检测模块包括DS18B20初始化、读操作、写操作、转化操作,还有温度判断操作。由于声速在不同温度下会发生变化,所以考虑到不同温度下超声波的速度来计算厚度,由表3-4可直接得出不同温度对应速度,温度检测模块总流程图如图4-4所示。图4- 4温度检测模块流程图4.4 超声波模块超声波模块包括超声波发射函数和超声波距离计算函数,先启动超声波,发射信
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 超声波 测厚仪 设计
限制150内