基于单片机的录音器的设计.docx
《基于单片机的录音器的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的录音器的设计.docx(18页珍藏版)》请在冰豆网上搜索。
基于单片机的录音器的设计
南京机电职业技术学院
毕业设计(论文)
题目基于单片机的录音器的设计
系部电子工程系专业电子测量与仪器
姓名邹峰学号G0910525
指导教师郭晓凤
2012年05月09日
摘要
语音录放系统以AT89C52单片机为控制核心。
ISD2560是一种永久记忆型语音录放电路器件,它具有音质自然、使用方便、单片存放、反复录音、低功耗、抗断电等特点,广泛应用于许多领域。
ISD2560省去A/D和D/A转换器,集成度较高,内部包括前置放大器、内部时钟、定时器、采样时钟、滤波器、自动增益控制、逻辑控制、模拟收发器、解码器和480KB的EEPROM。
为降低成本,在最小硬件设计基础上,系统功能尽可能用软件程序实现,利用C51高级C语言编程开发。
关键:
词AT89C52单片机,ISD2560,语音录放
前言
单片机是一款功能强大,集成度非常高的数字处理系统。
它集成了ADC和PWM的模块而且还有硬件滤波器!
它基本上可以处理生活中实时性不太强的数字信号和模拟信号,并实现通信。
该课题设计基于AT89C52单片机,介绍和分析了录音器的基本原理,并作出较为简单的录音器模型展示其原理!
主要运用了AT89C52单片机内部集成的ADC转换模块以及PWM功能,将从外部接收的模拟信号转换为数字信号,并存储在AT45DB41B存储芯片中,再将从AT45DB041B存储芯片中读取数字信号转化为模拟信号,送到外部的喇叭中进行播放。
主要功能有录音,存储,删除,放音等!
Abstract
ThevoicerecordingsystemwithAT89C52MCUasthecontrolcore.ISD2560isapermanentmemorytypevoicerecordingcircuitdevice,ithasthequalityofnatural,easytouse,amonolithicstorage,repeatedrecordings,lowpowerconsumption,powerresistanceandothercharacteristics,arewidelyusedinmanyfields.ISD2560withoutA/DandD/Aconverter,highintegrationlevel,interiorincludesapreamplifier,aninternalclock,timer,samplingclock,filters,automaticgaincontrol,logiccontrol,analogtransceiver,decoderand480KBEEPROM.Inordertoreducethecost,theminimumbasedonthehardwaredesign,systemfunctionasfaraspossibleusingasoftwareprogram,usingC51advancedCprogramminglanguage
Keywords:
AT89C52,ISD2560,voicerecordingcircuit
第1章绪论
引言
目前基于单片微机的语音系统的应用越来越广泛,如电脑音钟、语音型数字万用表、手机话费查询系统、排队机、监控系统语音报警以及公共汽车报站器等等,本文用单片机AT89C52和录放时间达60s的数码语音芯片ISD2560设计了一套智能录取、循环播放,而且不必使用专门的ISD语音开发设备。
数字语音录放系统的发展
数字语音录放是指利用数字技术对语音信号进行采集、处理、并且在一定存储设备中进行存储,并可在需要时进行输出的过程。
相对于模拟设备来说,数字设备易于集成、小型化、成本更低,同时更为稳定,且操作更为直接、方便,使得数字语音录放系统目前在各种领域中得到了广泛的应用。
例如监控环境中使用的语音采集系统;再如家庭或学校中使用的语音复读机等,都可看作是数字语音录放系统的典型应用。
然而目前一般的数字语音录放系统中,对语音只是进行简单的采集、存储和播放;虽然可以较大程度上保证语音的保真度,但过多的语音数据会造成对大量存储设备的需求。
对于大型系统,可通过采用大容量的硬盘、甚至大规模的磁盘阵列来解决;但是对于小型的设备,例如便携式的语音复读机,由于容量有限,则不能采用同样的方法。
近年来,语音信号处理技术研究的突飞猛进,为数字语音录放系统提供了新的发展空间。
对语音的采集、处理从前简单的波形编码转变为进行参数编码、压缩,从而大大减少了存储数据。
举例来说,原始语音一般都是采用8KHz抽样,16bits的线性PCM编码进行采集后的数据进行压缩,存储量则可以大大减少,当需要恢复语音时,可利用编码后的参数进行合成,可以得到质量令人满意的结果。
第2章单片机控制语音录放系统的设计
总体方案论证
方案一:
利用单片机及其外围硬件电路(如A/D、D/A、存储器等),就能完成语音信号的数字化处理,实现语音的存储与回放,及单片机测控系统的语音提示报警及语音提示操作。
但是语音信号容易受到外界干扰而失真,并且信号的压缩存储比较复杂,硬件电路不宜调试。
方案二:
直接采用单片机AT89C52与专用的语音处理芯片ISD2560设计实现语音存储与回放,实现语音的分段录取、组合回放。
语音信号抗干扰能力强,存储方便,调试简单,还可以作为语音服务的子系统。
所以,选择此方案。
本设计基于语音回放系统,可实现录音,循环放音功能。
系统框图如下图所示:
单片机控制
ISD2560
按键录音
松键循环放音
图3-1系统框图
单片机AT89C52
AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,与标MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。
2.2.1主要性能参数
·与MCS—51产品指令和引脚完全兼容
·8k字节可重擦写Flash闪速存储器
·1000次擦写周期
·全静态操作:
0Hz—24MHz
·三级加密程序存储器
·256×8字节内部RAM
·32个可编程I/O口线
·3个16位定时/计数器
·8个中断源
·可编程串行UART通道
·低功耗空闲和掉电模式
图3-2AT89C52引脚分布
功能特性概述:
AT89C52提供以下标准功能:
8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
2.2.2引脚功能说明
·P0口:
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上
拉电阻。
·P1-P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示:
图3-3
·RST:
复位输入。
。
·ALE/PROG:
地址锁存允许端
·PSEN:
程序储存允许(PSEN)输出是外部程序存储器的读选通信号。
·EA/VPP:
外部访问允许。
·XTAL1:
振荡器反相放大器的及内部时钟发生器的输入端。
·XTAL2:
振荡器反相放大器的输出端。
ISD2560语音芯片
2.3.1ISD2560的简介
ISD2560语音芯片是美国Winbond公司产品,是ISD系列单片语音录放集成电路的一种。
这是一种永久记忆型语音录放电路,录音时间为60s,可重复录放10万次。
芯片采用多电平直接模拟量存储专利技术,省去了A/D、D/A转换器。
每个采样值直接存储在片内单个EEPROM单元中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”。
ISD2560集成度较高,内部包括前置放大器、内部时钟、定时器、采样时钟、滤波器、自动增益控制、逻辑控制、模拟收发器、解码器和480K字节的E2PROM等,内部原理框图及引脚排列如图3-4所示。
ISD2560控制电平与TTL电平兼容,接口简单,使用方便。
该器件的采样频率为,同一系列的产品采样频率越低录放时间越长但通频带和音质会有所降低。
此外,ISD2560还省去了A/D和D/A转换器。
其集成度较高,内部包括前置放大器、内部时钟、定时器、采样时钟、滤波器、自动增益控制、逻辑控制、模拟收发器、解码器和480K字节的EEPROM。
ISD2560内部EEPROM存储单元均匀分为600行,有600个地址单元,每个地址单元指向其中一行,每一个地址单元的地址分辨率为100ms。
此外,ISD2560还具备微控制器所需的控制接口。
通过操纵地址和控制线可完成不同的任务,以实现复杂的信息处理功能,如信息的组合、连接、设定固定的信息段和信息管理等。
ISD2560可不分段,也可按最小段长为单位来任意组合分段。
2.3.2引脚功能说明
图3-5ISD2560引脚图
ISD2560具有28脚SOIC和28脚PDIP两种封装形式。
图3-5所示是其引脚排列。
各引脚的主要功能如下:
·电源(VCCA,VCCD):
模拟和数字电源。
为了最大限度的减小噪声,芯片内部的模拟和数字电路使用不同的电源总线,并且分别引到外封装上。
模拟和数字电源最好分别走线,并应当尽可能在靠近供电段相连,而去耦电容则应当尽量靠近芯片。
·地线(VSSA,VSSD):
数字和模拟地。
由于芯片内部使用不同的模拟和数字地线,因此,这两脚最好通过低阻抗通路连接到地。
·节电控制(PD):
节电控制引脚。
该端拉高可使芯片停止工作而进入节电状态。
芯片发生溢出,即OVF引脚输出低电平后,应将此引脚变高以将地址指针复位到录音/放音空间的开始位置。
·片选(CE):
芯片使能输入引脚,低电平有效。
该端变低且PD也为低电平时,允许进行录、放操作。
芯片在该引脚的下降沿将锁存地址线和P/R引脚的状态。
·A0/M0~A6/M6,A7~A9(1~10引脚):
地址线/模式输入。
共有1024种组合状态。
是前面的600个状态作内部存储器的寻址用,最后256个状态作为操作模式。
当A8或A9有一个为0时,为地址线,作为当前录音/放音操作的起始地址,地址端只用做输入,不输出操作过程中的内部地址信息,地址输入在CE的下降沿被锁存。
当A8和A9均为1时,当模式输入,共有6种操作模式(见表7-1),由M0~M6决定,允许多种模式同时存在。
·录放模式(P/R):
该端状态一般在CE的下降沿锁存。
高电平选择放音,低电平选择录音。
录音时,由地址端提供起始地址,直到录音持续到CE或PD变高,或内存溢出;如果是前一种情况,芯片将自动在录音结束处写入EOM标志。
放音时,由地址端提供起始地址,放音持续到EOM标志。
如果CE一直为低,或芯片工作在某些操作模式,放音则会忽略EOM而继续进行下去,直到发生溢出为止。
·信息结尾标志(EOM):
信息结尾标志输出引脚,低电平有效。
EOM标志在录音时由芯片自动插入到该信息段的结尾。
当放音遇到EOM时,此引脚输出低电平脉冲。
另外,ISD2560芯片内部会自动检测电源电压以维护信息的完整性,当电压低于时,此引脚变低,此时芯片只能放音。
·溢出标志(OVF):
芯片处于存储空间末尾时,该端输出低电平脉冲以表示溢出,之后该端状态跟随CE端的状态,直到PD端变高。
·话筒输入(MIC):
麦克的输入通过此引脚将信号送至片内的前置放大器,片内自动增益电路(AGC)将此前置放大器的增益控制在-15~24dB。
外接话筒应该通过一系列电容交流耦合进此引脚,耦合电容值和芯片内部此引脚的10kΩ输入阻抗共同决定了ISD2560芯片频带的低频节截止点。
·话筒参考(MICREF):
该端是前置放大器的反向输入,当以差分形式连接话筒时,可减少噪声,提高共模抑制比。
·自动增益控制(AGC):
AGC可动态调整前置增益以补偿话筒输入电平的宽幅变化,这样在录制变化很大的音量(从耳语到喧嚣声)时就能保持最小失真。
·模拟输出(ANAOUT):
前置放大器输出。
其前置电压增益取决于ACG引脚的电平。
·模拟输入(ANAIN):
模拟输入(ANAIN):
该端为芯片录音信号输入。
对话筒输入来说,ANAOUT端应通过外接电容连至该端,该电容和本端的3KΩ输入阻抗决定了芯片频带的附加低端截止频率。
其它音源可通过交流耦合直接连至该端。
·扬声器输出(SP+、SP-):
可驱动16Ω以上的喇叭。
ISD2500系列的所有器件在芯片上都有一个差分扬声器驱动器。
扬声器输出端在录音和节电模式时保持为VSSA电平,因此多个ISD2500系列器件同时使用时,他们的扬声器输出端不能并接,并行连接可能会造成芯片的损坏。
单端输出时必须在SP输出端和扬声器间接耦合电容,双端输出既不用电容又能将输出功率提高4倍。
·辅助输入(AUXIN):
当CE和P/R为高,不进行放音或处入放音溢出状态时该端的输入信号将通过内部功放驱动喇叭输出端。
当多个ISD2560芯片级联时后级的喇叭输出将通过该端连接到本级的输出放大器。
为防止噪声建议在存放内存信息时该端不要有驱动信号。
外部时钟(XCLK):
该端内部有下拉元件,不用时应接地。
地址/模式输入(AX/MX):
地址端的作用取决于最高两位(MSB,即A8和A9)的状态。
当最高两位中有一个为0时,所有输入均作为当前录音或放音的起始地址。
地址端只作输入,不输出操作过程中的内部地址信息。
地址在CE的下降沿锁存。
当最高两位全为1时,A0~A6可用于模式选择。
操作模式
由于ISD2560内置了若干种操作模式,因而可用最少的外围器件实现最多的功能。
操作模式也由地址端控制;当最高两位都为1时,其它地址端置高可选择某个(或某几个)特定模式。
因此操作模式和直接寻址相互排斥。
具体操作模式见表7-1所列。
操作模式可由微控制器也可由硬件实现。
使用操作模式要注意两点:
(1)所有操作最初都是从0地址即存储空间的起始端 开始。
后续的操作根据选用的模式可从其它地址开始。
但是,电路由录转放或由放转录(M6模式除外),或都执行了掉电周期后,地址计数器将复位为0。
(2)当CE变低且最高两地址位同为高时,执行操作模式。
这种操作模式将一直有效,直到CE再次由高变低,芯片重新锁存当前的地址/模式端电平并执行相应的操作为止。
表7-1ISD2560操作模式列表
第3章硬件电路及软件实现
系统硬件电路设计
1.本系统主要可分为3个部分:
单片机控制部分、语音播报部分、和键盘输入部分,采用52单片机作为主控制芯片,利用ISD2560实现语音录放,简单易行且控制方便。
2.系统采用的微控制器是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合
3.该单片机的P1口是一个双向I/O口,其中~口内部提供了上拉电阻,、需外部上拉。
、同时也是片内精密比较器的正输入端(AIN0)和负输入端(AIN1)。
P3口是7个带有内部上拉电阻的双向口。
4.数码语音芯片选用的是ISD2500系列单片语音录放集成电路ISD2560,它具有抗断电、音质好,使用方便,无须专用的开发系统等优点。
图3-1硬件电路设计
5.实现的功能如下:
6.按下开始键,启动录音,松开开始键,结束录音。
注意,录音时间不能超过预先设定的每段语音的时间。
7.结束录音后,循环播放所录声音3次。
系统软件设计
3.2.1系统软件总流程图
软件系统的总体流程如图3-2所示:
图3-2软件流程图
3.2.2录放音时AT89C52单片机对ISD2560的控制
录音时,按下“开始”键,单片机控制PD、P/R引脚为高电平,并指定录音地址,启动录音过程。
在预先设定的时间内(<60s)结束录音,松开“开始”键,单片机控制P/R引脚回到高电平,即完成一段语音的录制。
之后打开外部中断0,指定放音地址,启动放音程序,每次放音结束时,EOM输出会触发单片机的外部中断0,经过适当的延时后,重新启动第二次放音,这样重复三次后关闭外部中断0,流程结束,等待下一次录音。
语音器件外围电路设计
(1)扬声器电路语音器件的SP+(引脚14),SP-(引脚15)分别接扬声器的一端。
通电后,系统可以驱动16Ω以上的扬声器。
(2)话筒电路MICIN(引脚17)、MICREF(引脚18)分别通过相应的电容连接到话筒两端。
通过MICIN将话筒的输入信号送至片内前置放大器,片内自动增益控制电路AGC将此前置放大器的增益控制在-15~+24dB,具体电路如图3所示。
该器件在使用前需用单片机写入初始状态。
第5章总结
ISD2560语音芯片在语音录放系统中的实际应用效果非常好,而且编程也比较简单,与其它一些数字语音芯片相比,ISD2560的突出特点是放音效果极佳,能够非常真实、自然地再现语音、音乐、音调和效果声,另外,使用该芯片也可自己设计电路实现录音操作,使用十分方便。
本设计是一种基于51单片机控制的语音录音/放音系统,它采用ISD单片语音录音/放音集成电路系列中的ISD2560实现语音的存储和播放,ISD2560采用直接电平存储技术,不仅省去了A/D、D/A转换器,而且语音自然真实。
致谢
在本论文完成之际,首先要向我的指导老师郭晓凤致以诚挚的谢意。
在实物制作和论文的写作过程中,郭老师给了我许许多多的帮助和关怀。
郭老师学识渊博、治学严谨,待人平易近人,在郭老师的悉心指导中,我不仅学到了扎实的专业知识,也在怎样处人处事等方面收益很多;在此我谨向郭老师表示衷心的感谢和深深的敬意。
同时也感谢机电学院电子工程系09届全体同学的帮助和勉励,同窗之谊和手足之情,我将永生难忘
此外,我要感谢我们学院给我们提供实验设备的各位老师,正是由于他们的传道、授业、解惑,让我学到了专业知识,并从他们身上学到了如何求知治学、如何为人处事。
参考文献
[1].陈后金.数字信号处理[M].北京:
高等教育出版社,2003.
[2].李建忠.单片机原理及应用[M].西安:
西安电子科技大学出版社,2002.
[3].杨素行.模拟电子技术基础简明教程.北京:
高等教育出版社.2004.
[4].余孟尝.数字电子技术基础简明教程.北京:
高等教育出版社.2001.
[5].全国大学生电子设计竞赛组委会全国大学生电子设计竞赛获奖作品选编.北京:
北京理工大学出版社,1997
[6].张绍高.数字音频技术原理及应用.(第1版).北京:
国防工业出版社,
[7].吴瞋山.电子线路设计与实践北京:
电子工业出版社出版.2005
[8].谢自美设计.实验.测试(第三版)武汉:
华中科技大学出版2000年7月
[9].(单片机爱好网)
[10].http:
//(太延资料下载站)
附录
附录1:
元器件清单
名称
型号规格
数量
名称
型号规格
数量
芯片
AT89C52
1
电容
22pF
2
ISD2560
1
10uF
1
电阻
10k
4
6
1k
1
220uF
1
470k
1
22uF
1
1
1
开关
START
1
晶振
1
RST
1
喇叭
1
话筒
1
附录2:
程序清单
#include<>
#defineucharunsignedchar
#defineuintunsignedint
ucharcount;//重复播放次数计数器
ucharStartFlag;//开始键按下标志
ucharIdleFlag;//系统是否处于空闲状态标志
/*定义语音芯片ISD2560的控制引脚*/
sbitSTART=P1^0;
sbitEOM=P1^4;
sbitPR=P1^5;
sbitPD=P1^6;
sbitCE=P1^7;
/*录音函数*/
voidrecord(void)
{
CE=0;//片选有效
PD=0;//非节电模式
PR=0;//录音
}
/*放音函数*/
voidplayback(void)
{
CE=0;//片选有效
PD=0;//非节电模式
PR=1;//放音
}
/*延时t毫秒*/
voiddelay(uintt)
{
uinti;
while(t--)
{
/*对于时钟,约延时1ms*/
for(i=0;i<125;i++){
}
}
}
/*外部中断0服务子程序*/
voidout_int0()interrupt0using1
{
EX0=0;//关外部中断0
PD=1;//进入节电状态
if(count<2)
{//再重播2次,共3次放音
count++;
delay(500);//延时500ms
P2=P2&0xFC;//A8=A9=0
P0=P0&0x00;//起始地址为0
playback();//从地址0处播放
EX0=1;//开外部中断0
}
else
{
IdleFlag=1;//变为空闲状态,可以再次按开始键
count=0;
}
}
/*主程序*/
voidmain(){
EA=1;//开CPU中断
count=0;
StartFlag=0;
IdleFlag=1;
while(IdleFlag==1)
{
if(START){
delay(10);//延时去抖动
if(START)
StartFlag=1;//开始键按下标志
}
if(StartFlag==1){
do{
P2=P2&0xFC;//A