超声波语音论文.docx
- 文档编号:24193584
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:38
- 大小:1.38MB
超声波语音论文.docx
《超声波语音论文.docx》由会员分享,可在线阅读,更多相关《超声波语音论文.docx(38页珍藏版)》请在冰豆网上搜索。
超声波语音论文
毕业设计
基于51单片机的超声波测距系统设计
姓名
院(系)
专业班级
学号
指导教师
职称
论文答辩日期2013年月日
摘要
本文旨提出了一种基于51单片机的超声波测距系统。
本系统通过超声波模块进行数据测量,后经单片处理和计算,最终通过数码管显示出测头与物体实际距离,当小于设定范围时,进行语音提醒。
通过实际测试表明,本系统运行可靠,可以实现超声波这种非接触的测距功能。
关键词:
51单片机超声波测距语音
目录
1前言1
1.1研究背景1
1.2国内外研究情况1
1.3本文主要内容及安排2
2控制系统主要硬件介绍2
2.1单片机STC89C52的选型2
2.1.1STC89C52介绍2
2.1.2STC89C52引脚介绍3
2.2超声波测距模块选型5
2.2.1HC-SR04介绍5
2.3显示器件的选型6
2.3.1数码管的选型6
2.4ISD1820语音芯片介绍8
2.4.1 管脚图8
2.4.2引脚描述8
3硬件电路设计9
3.1单片机最小系统的设计9
3.2超声波测距显示电路系统设计11
3.3超声波系统设计11
3.4语音模块设计12
4系统软件设计12
4.1流程图12
4.2单片机测距程序14
5实物性能测试17
5.1单片机测试17
5.2程序调试18
6编程和下载软件的介绍18
6.1Keil的简介18
6.2AltiumDesigner6.0的简介26
6.3STC_ISP_V480的简介28
7总结与展望29
参考文献31
致谢32
1前言
1.1研究背景
随着科技的迅猛发展越来越多的科技成果被广泛的运用到人们的日常生活当中,给我们的生活带来了诸多方便。
本设计就是本着这个宗旨出发,利用超声波的特性来为我们服务。
声波是物体机械振动状态(或能量)的传播形式。
所谓振动是指物质的质点在其平衡位置附近进行的往返运动。
譬如,鼓面经敲击后,它就上下振动,这种振动状态通过空气媒质向四面八方传播,这便是声波。
超声波是指振动频率大于20000Hz以上的,其每秒的振动次数(频率)甚高,超出了人耳听觉的上限(20000Hz),人们将这种听不见的声波叫做超声波。
超声和可闻声本质上是一致的,它们的共同点都是一种机械振动,通常以纵波的方式在弹性介质内会传播,是一种能量的传播形式,其不同点是超声波频率高,波长短,在一定距离内沿直线传播具有良好的束射性和方向性。
由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。
超声波测距由于其能进行非接触测量和相对较高的精度,越来越被人们所重视。
超声波测量技术利用回波测距原理,技术发展已经成熟,应用也积累了很多经验。
超声波测距仪,可以应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于液位、井深、管道长度的测量等场合。
利用超声波检测往往比较迅速、方便、计算简单、易于做到实时监控,并且在测量精度方面能达到工业实用的要求。
随着科学技术的快速发展,超声波在测距仪中的应用越来越广。
展望未来,超声波测距仪作为一种非常重要的工具在各方面都将有很大的发展空间,它将朝着更加高精度的方向发展,以满足日益发展的社会需求。
1.2国内外研究情况
国内超声波技术现已日趋成熟,稳定度也相当高,适合大部分环境下使用;应用领域。
包括:
测距、避障、机器人定位、曲面仿真等。
虽然如此,但也存在一些急待攻克的问题,主要包括:
测量精度的级别有待提高,测量距离不够远,普遍只有10米之内,最远也只有几十米;一些高精度或远距离的产品的电路复杂,成本较高;依然存在一定距离的育盲区等等;这些问题限制了超声波的应用。
针对上述存在的问题,国内外的相关人员进行了努力的攻关。
研究主要集中在以下几个方面:
超声波回波处理、新型换能器研发、发射脉冲选取等等,并且针对超声测距仪器的常见影响因素提出了温度补偿、接收回路串入自动增益调节环节等提高超声波测距精度的措施。
目前在国内的研究成果主要有:
超声波回波处理方面,最小均方自适应时延估计算法;一体化换能器;专用脉冲发生器;采用功率驱动芯片和升压变压器等,还通过超声波测距仪专用集成电路通过分析超声波测距误差产生的原因,来提高测量时间差到微秒级,以及用温度传感器来进行声波传播速度的补偿后,其高精度超声波测距仪也可以达到毫米级的测量精度。
这些新的技术都大大提高了超声波
测距的精度和距离。
国内的超声波测量品牌有古大,飞鹰,百特等。
他们的技术在国内应该处于领先地位,但是低端的很多。
而在国外,超声测量技术也有迅速发展。
国外西门子,HAWK的产品比较齐全,质量比较稳定。
1.3本文主要内容及安排
本文主要内容是对超声波测距系统的分析。
本文的安排为:
第1章是研究背景的介绍;第2章是对控制系统主要硬件的介绍,包括单片机、超声波模块、数码管、语音芯片;第3章是介绍硬件电路设计;第4章是介绍系统软件设计;第5章是介绍实物性能测试;第6章编程和下载软件;第7章是总结与未来展望。
2控制系统主要硬件介绍
2.1单片机STC89C52的选型
2.1.1STC89C52介绍
STC89C52是由深圳宏晶科技公司生产的与工业标准MCS-51指令集和输出管脚相兼容的单片机。
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,2个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。
另外,STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
其PDIP封装如图2.1所示。
图2.1STC89C52PDIP封装图
2.1.2STC89C52引脚介绍
管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
2.2超声波测距模块选型
2.2.1HC-SR04介绍
HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。
基本工作原理:
(1)采用IO口TRIG触发测距,给最少10us的高电平信呈。
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声
波从发射到返回的时间。
测试距离=(高电平时间*声速(340M/S))/2;
超声波电气参数:
电气参数
HC-SR04超声波模块
工作电压
DC5V
工作电流
15mA
工作频率
40kHz
最远射程
4m
最近射程
2cm
测量角度
15度
输入触发信号
10uS的TTL脉冲
输出回响信号
输出TTL电平信号,与射程
规格尺寸
45*20*15mm
超声波时序图如图2.2所示:
图2.2超声波时序图
以上时序图表明你只需要提供一个10uS以上脉冲触发信号,该模块内部将发出8个40kHz周期电平并检测回波。
一旦检测到有回波信号则输出回响信号。
回响信号的脉冲宽度与所测的距离成正比。
由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。
公式:
uS/58=厘米或者uS/148=英寸;或是:
距离=高电平时间*声速(340M/S)/2;建议测量周期为60ms以上,以防止发射信号对回响信号的影响。
2.3显示器件的选型
2.3.1数码管的选型
led数码管(LEDSegmentDisplays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。
位数有半位,1,2,3,4,5,6,8,10位等等,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
图2.3是共阴和共阳极数码管的引脚图,它们的发光原理是一样的,只是它们的电源极性不同而已。
颜色有红,绿,蓝,黄等几种。
led数码管广泛用于仪表,时钟,车站,家电等场合。
选用时要注意产品尺寸颜色,功耗,亮度,波长等。
下面将介绍常用LED数码管内部引脚图片10引脚的LED数码管。
图2.4为常用的LED
图2.3LED数码管引脚图图2.4常用LED数码管
图2.3每一笔划都是对应一个字母表示DP是小数点.
LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。
1)静态显示驱动:
静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O埠进行驱动,或者使用如BCD码二-十进位寄存器进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O口多,如驱动5个数码管静态显示则需要5×8=40根I/O口来驱动,要知道一个89S51单片机可用的I/O口才32个呢。
故实际应用时必须增加驱动器进行驱动,增加了硬体电路的复杂性。
2)动态显示驱动:
数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。
透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位元数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O口,而且功耗更低。
下面介绍四位七段数码管引脚图,内部的四个数码管共用a~dp这8根数据线,为人们的使用提供了方便,因为里面有四个数码管,所以它有四个公共端,加上a~dp,共有12个引脚,图2.5是一个共阴的四位数码管的内部结构图,图2.6为四位共阳数码管。
引脚排列依然是从左下角的那个脚(1脚)开始,以逆时针方向依次为1~12脚,下图中的数字与之一一对应。
图2.5四位共阴数码管
图2.6四位共阳数码管
其中,6,8,9,12,引脚是四位数码管的四个公共端,控制着四个关键,就可以控制数码管的关断和导通。
图2.7四位共阳极数码管实物图
图2.7是四位共阳极数码的实物图,从左下角的那个脚(1脚)开始,以逆时针方向依次为1~12脚。
识别引脚是在实际焊接中非常重要的部分,否则可能出现烧毁数码管,或数码管不亮的情况。
2.4ISD1820语音芯片介绍
2.4.1 管脚图
图2.8ids1820芯片引脚图
2.4.2引脚描述
◆电源(VCC) 芯片内部的模拟和数字电路使用的不同电源总线在此引脚汇合,这样使得噪声最小。
去耦电容应尽量靠近芯片。
◆地线(VSSA, VSSD) 芯片内部的模拟和数字电路的不同地线汇合在这个引脚。
◆录音 (REC) 高电平有效。
只要REC变高(不管芯片处在节电状态还是正在放音),芯片即开始录音。
录音期间,REC必须保持为高。
REC变低或内存录满后,录音周期结束,芯片自动写入一个信息结束标志(EOM),使以后的重放操作可以及时停止。
然后芯片自动进入节电状态。
注:
REC的上升沿有84毫秒防颤,防止按键误触发。
◆边沿触发放音(PLAYE) 此端出现上升沿时,芯片开始放音。
放音持续到EOM标志或内存结束,之后芯片自动进入节电状态。
开始放音后,可以释放PLAYE。
◆电平触发放音(PLAYL) 此端从低变高时,芯片开始放音。
放音持续至此端回到低电平,或遇到EOM标志,或内存结束。
放音结束后芯片自动进入节电状态。
◆录音指示(/RECLED) 处于录音状态时,此端为低,可驱动LED。
此外,放音遇到EOM标志时,此端输出一个低电平脉冲。
此脉冲可用来触发PLAYE,实现循环放音。
◆话筒输入(MIC) 此端连至片内前置放大器。
片内自动增益控制电路(AGC)控制前置放大器的增益。
外接话筒应通过串联电容耦合到此端。
耦合电容值和此端的10KΩ输入阻抗决定了芯片频带的低频截止点。
◆话筒参考(MIC REF) 此端是前置放大器的反向输入。
当以差分形式连接话筒时,可减小噪声,提高共模抑制比。
◆自动增益控制(AGC) AGC动态调整前置增益以补偿话筒输入电平的宽幅变化,使得录制变化很大的音量(从耳语到喧嚣声)时失真都能保持最小。
通常4.7uF的电容器在多数场合下可获得满意的效果。
◆喇叭输出(SP+,SP-) 这对输出端可直接驱动8Ω以上的喇叭。
单端使用时必须在输出端和喇叭之间接耦合电容,而双端输出既不用电容又能将功率提高至4倍。
SP+和SP-之间通过内部的50KΩ的电阻连接,不放音时为悬空状态。
◆外部时钟(XCLK) 此端内部有下拉元件,只为测试用,不用接。
◆振荡电阻(ROSC) 此端接振荡电阻至VSS,由振荡电阻的阻值决定录放音的时间。
◆直通模式(FT) 此端允许接在MIC输入端的外部语音信号经过芯片内部的AGC电路、滤波器和喇叭驱动器而直接到达喇叭输出端。
平时FT端为低,要实现直通功能,需将FT端接高电平,同时REC、PLAYE和PLAYL保持低。
3硬件电路设计
本部分介绍系统的硬件电路设计,包括单片机最小系统,超声波传感器采集电路及距离显示电路。
3.1单片机最小系统的设计
最小系统是指能进行正常工作的最简单电路。
STC89C52最小应用系统电路如图3.1所示。
它包含五个电路部分:
电源电路、时钟电路、复位电路、片内外程序存储器选择电路、输入/输出接口电路。
其中电源电路、时钟电路、复位电路是保证单片机系统能够正常工作的最基本的三部分电路,缺一不可。
图3.1单片机最小系统
下面简单介绍下单片机最小系统的三个主要部分:
电源电路芯片引脚VCC一般接上直流稳压电源+5V,引脚GND接电源+5V的负极,电源电压范围在4~5.5之间,可保证单片机系统能正常工作。
为了确定单片机是否供上电,在VCC和地之间连接了一个发光二极管和1K的电阻。
②时钟电路单片机引脚18和引脚19外接晶振及电容,STC89C52芯片的工作频率可在2~33MHz范围之间选,单片机工作频率取决于晶振XT的频率,通常选用11.0592MHz晶振。
两个小电容通常取值30pF,以保证振荡器电路的稳定性及快速性。
③复位电路一般若在引脚RST上保持24个工作主频周期的高电平,单片机就可以完成复位,但为了保证系统可靠地复位,复位电路应使引脚RST保持10ms以上的高电平。
如图复位电路带有上电自动复位功能,当电路上电时,由于C1电容两端电压值不能突变,电源+5V会通过电容向RST提供充电电流,因此在RST引脚上产生一高电平,使单片机进入复位状态。
随着电容C1充电,它两端电压上升使得RST电位下降,最终使单片机退出复位状态。
正常运行时,可按复位按钮对单片机复位
3.2超声波测距显示电路系统设计
图3.2数码管显示电路系统
本设计采用了四位共阳极数码管作为显示的器件,6,8,9,12引脚是数码管的位选信号端,1,2,3,4,5,7,10,11控制数码管的位选,四位数码管分别用一个S9015三极管进行驱动。
3.3超声波系统设计
图3.3数码管显示电路系统
3.4语音模块设计
图3.4语音电路系统
通过控制PLAYE引脚就可以控制模块的录音与放音。
4系统软件设计
本次软件开发是基于windows平台下开发的,主要通过c语言为主要编程语言,使用的软件是Keil编程软件,电路的绘制使用AD6.9软件进行设计。
主要的烧录器使用STC的USB转串口烧录器STC_ISP_V486。
4.1流程图
根据硬件电路图,综合自己的设计思路,先画出程序流程图,再根据流程图编好程序,经过整理后最后形成最终的程序。
根据要求绘制的本设计的流程图如图4.1所示。
4.1程序流程图
4.2单片机测距程序
#include
#include
#defineRXP1_0
#defineTXP1_1
unsignedinttime=0;
unsignedinttimer=0;
unsignedcharposit=0;
unsignedlongS=0;
bitflag=0;
sbitsp=P1^2;
unsignedcharconstdiscode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF,0xff};
unsignedcharconstpositon[3]={0xfd,0xfb,0xf7};
unsignedchardisbuff[4]={0,0,0,0,};
voiddelay_ms(intn)
{
intm=120;
while(n--)
while(m--);
}
/********************************************************/
voidDisplay(void)//扫描数码管
{
P0=discode[disbuff[posit]];
P2=positon[posit];
if(++posit>=3)
posit=0;
}
/********************************************************/
voidConut(void)
{
time=TH0*256+TL0;
TH0=0;
TL0=0;
S=(time*1.7)/100;//算出来是CM
if(S<=300)
{sp=0;
delay_ms
(1);
sp=1;
}
else{;}
if((S>=700)||flag==1)//超出测量范围显示"-"
{
flag=0;
disbuff[0]=10;//"-"
disbuff[1]=10;//"-"
disbuff[2]=10;//"-"
}
else
{
disbuff[0]=S%1000/100;
disbuff[1]=S%1000%100/10;
disbuff[2]=S%1000%10%10;
}
}
/********************************************************/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超声波 语音 论文