《基于51单片机的语音存储与回放系统设计.doc》由会员分享,可在线阅读,更多相关《基于51单片机的语音存储与回放系统设计.doc(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于51单片机的语音存储与回放系统设计Voice storage and playback system based on 51microcontroller仅供学习参考 摘 要摘要在当今的智能化仪器仪表和自动控制装置,添加语音功能可以提升友好的人机界面,方便用户操作。在许多情况下,它需要语音合成,语音识别,语音存储和回放技术和单片机在一起。传统的模拟语音处理系统使存储和声音的再现,但效果不太好。在本文中,数字语音存储与回放系统采用了单片机STC89C51和数码语音芯片ISD2560。 单片机是该系统的控制中心,它主要是为了实现以下功能:重要的控制功能和选择鉴定;第二控制芯片ISD2560语音
2、录制和播放过程中,存储和播放声音。首先,我设计了这个电路系统的硬件,再其次是硬件电路书面记录,回放控制程序,最后,这个总结和展望的设计。关键词:STC89C51单片机 ISD2560语音芯片 语音存储 语音回放III ABSTRACTABSTRACTIn the area of intelligent instruments and automatic control equipments, the system with the phonetic function can greatly increase the friendliness of the man-machine interfa
3、ce, and is also convenient for users to operate. In many situations, designers need to integrate the phonetic synthesis, the phonetic recognition and the phonetic storage and playback technology with the SCM. The common analog-signal digitalize processing system can realize the function of phonetic
4、storage and playback. But the effects are not very good. This dissertation designs the digital phonetic system composed of flash micro-controller STC89C51 and digital audio chip ISD2560. SCM is the control center of the system, it is mainly to achieve the following functions: the keystroke identific
5、ation and the function selection; phonetic storage and playback by using the digital audio chip ISD2560. Firstly, this dissertation designs the hardware circuit of the system. And then compiles the control program of record and playback. At last, the summary and prospects of the design was presented
6、.Key words: STC89C51 ISD2560 phonetic storage phonetic playback 目 录目 录摘要IABSTRACTII目 录III绪论1第一章 整体系统的设计41.1 总体方案论证41.2 器件选择51.2.1 单片机的选择51.2.2 语音芯片选择61.3 ISD2560语音芯片61.3.1 ISD2560的引脚功能71.3.2 ISD2560的操作模式91.3.3 ISD2560的地址空间101.3.4 ISD2560的应用电路101.3.5 电源电路111.4集成功率放大器芯片LM386121.4.1 LM386电子特性121.4.2 LM
7、386的引脚说明13第二章 系统硬件设计142.1系统硬件电路总体设计142.2 STC89C51的外围电路设计142.2.1 晶振电路142.2.2 复位电路设计152.3 语音电路设计152.4 功放电路设计162.5按键局部电路设计17第三章 系统软件设计193.1 主要变量说明193.2 主程序工作原理及流程图193.3 子程序流程图及代码213.3.1 录音子程序213.3.2 放音子程序23结论25致 谢26参考文献27附录一28附录二29附录三30 绪 论绪论1课题研究背景及科学意义现如今有各种各样的智能化的仪器仪表以及自动化控制设备,增加语音功能可以提升友好的人机界面,对于用户
8、的操作来说非常方便。各种语音效劳行业在如今的社会更为广泛,例如 查询系统,语音铃声计算机,公共汽车站,队列,语音报警系统的监测和数字万用表话音等。在许多情况下,设计人员需要语音系统和单片机系统整合在一起。单片机具有体积小,功耗低,功能强大的控制,扩展灵活,微型化和易用性。在生活中处处有单片机的身影。比方移动 , ,计算器,家电产品,电子玩具,掌上电脑和计算机附件,例如鼠标配备有微控制器单元。 单片机将有大量供给链管理的工作。我们可以说,该设备在实现声音方面发挥了重要作用。数字录音机是指利用数字技术来进行语音信号的采集,处理和存储在多个存储设备。与模拟设备相比,数字设备得优点颇多,比方容易小型化
9、,集成化,本钱更加低廉,也更加稳定的,并且操作更直接,方便。如用于监视环境声音采集系统;在家里或学校使用语音,视频机器等,可以被看作是一个记录数字音响系统,是一个典型的应用。在语音信号处理中,传统的方法是使用过滤器来处理,这种方法是利用模拟信号和数字信号之间的相互转换,来实现语音的输入和输出。但这种方法的缺点是,输出不稳定,嘈杂语音信号或声音的修改,这是一种模拟电路不能防止的。为了解决这个问题,我们可以使用专用的音效芯片。语音芯片是控制器的控制下,可手动或声音记录和回放芯片。语音芯片可以很容易地在单片机系统中使用,并且在微控制器接口,是很容易的,它的体积和重量可满足单片机系统的要求。因此,这个
10、问题是设计和使用的声音芯片微控制器,数字信号控制语音的组合。2国内外研究现状伴随着IT行业的蓬勃开展,各种各样的语音录制和传输设备出现,在一个典型的数字语音记录系统中,语音只是一个简单的收集,存储和回放;尽管提供高保真声音可以是很大,但将导致语音设备和大容量存储的数据的需求。对于大型系统而言,我们可以采用更大的容量的硬盘,甚至是一个大型的磁盘阵列来解决;但是对于像视频机,移动语音等容量有限的小型设备来说,这种方法就失去 了它的效用由美国ISD系列芯片ISD语音制造目前典型的音响设备。与直接存储在内存中的专利技术,半导体用语音模拟数据ISD系列芯片,模拟语音是准备直接将数据写入到一个单一的存储单
11、元,无需A / D或D / A转换器,就能很大程度上重现的良好的本色和声音,防止了因为防止了一般固体语音电路因为量化和压缩所造成的量化噪声和失真现象。同时芯片功能强大:即录即放,声音可以掉电保存,10万次的擦写寿命,手动操作和控制兼容的CPU,多芯片级联,无需开发系统等方面。3研究方法为了语音的存储和播放系统的要求,整个系统被分成记录,回放和防止三种状态。语音信号它是一种模拟信号。对于它本身来说不能完成数字化处理,它需要一个特殊的音效芯片,或完全模拟语音信号从A / D和D/ A转换处理。单片机在这一过程中发挥了重要作用。单片机需要控制语音录音的开始与结束,设定信号存储的地址,并在播放时寻址播
12、放空间并控制播放。对于通过A/D和D/A转换完成语音信号处理的方法描述如下:模拟语音信号转换成数字信号,从模拟到数字转换器,然后在存储器中,播放时,通过微控制器控制所述微控制器数据的控制存储从存储器中读出,然后变换成数字信号从扬声器或耳机模拟输出放大的声音。这种方法是简单的电路系统,程序很简单。使用闪存来保存他的声音,即使断掉电源依然能够保持数据不丧失,所以保持数据的平安。但该系统仍需要使用的模拟信号放大器和滤波器电路,这使接收相对失真的语音信号,还需要提高使用的过滤软件的技术,这样的设计不使用这种方法。采用语音处理芯片,就省去了外部放大的环节,也不需要语音信号的滤波;同时语音芯片的抗干扰能力
13、强,对地防止信号的失真非常有效。语音芯片也不用外连存储器,因为它的内部集成了模拟存储阵列,这使得电路更容易理解,所以本设计使用这种方法来实现。4论文的主要工作这种设计的主要任务是参考国内为的有关文献,根据自己对语音存储与回放功能的熟悉程度,用51单片机来设计一款语音存储与回放系统。本文的结构如下:绪论 阐述本文的主题,背景以及研究现状,对已经出现的研究现状和成果进行简单的描述,并且对单片机语音存储与回放系统进行简介,引入论文的中心问题。第1章整体系统的设计。概述选择这种设计的原因及总体过程,说明设计中用到的各种芯片,详细描述微控制器芯片语音选择方法,并介绍了芯片所需的各种功能。第2章 系统硬件
14、设计。详细介绍各个硬件模块的的组成以及它们的工作原理,着重对语音芯片的功能进行了介绍。 第3章 系统软件设计。介绍软件编写的流程图,对录音和放音局部单独介绍。结论 总结设计的过程,提出本设计的优缺点,并对系统有可能的的改良方向提出自己的展望。2 第一章 整体系统的设计第一章 整体系统的设计1.1 总体方案论证方案一:系统主要由单片机AT89C51、AD574、DAC0832及闪速存储器 AT29C040组成。其原理图如图1-1所示。MIC把声音转换成微弱的电信号,经放大器放大后,在经过带通滤波器的滤波过程,输出的信号经过A/D转换,然后被送入单片机内部。接着单片机再将转换后的信号存储在存储器中
15、,在需要放音时,再经D/A转换后输出。这种方法的设计过程比拟简单,但是由于语音信号比拟容易受到外界的干扰,从而造成信号的失真,并且信号的压缩存储方式过于复杂,硬件电路调试起来比拟困难。 单片机AT89C51A/D转换D/A转换带通滤波器闪存存储器AT29C040采样保持MICSPEAKER放大器带通滤波器放大器图1-1 方案一系统原理方案二:这种方案采用STC89C51单片机,再加上专用的语音处理芯片ISD2560。由它们来设计实现语音存储与回放,实现语音的整段录放。系统框图如图1-2所示。键盘控制单片机控制扬声器功率放大器LM386ISD2560语音输入 图1-2 方案二系统原理图该系统对语
16、音信号是采用ISD2560语音芯片来完成,这种芯片的抗干扰能力强,易维护,调整方便,同时还可以作为整个语音业务的子系统来使用,所以我选择了这个方案。接下来,对这一方案进行单独的描述。1.2 器件选择1.2.1 单片机的选择本设计在选取单片机时主要考虑了它的适应性和易操作两个方面,通过上网查阅资料和调查,我们最终选择了STC89C51芯片,它与AT89C51的比照方表1-2-1所示。可见STC89C51的适应范围更广,更容易操作,除上表所示外STC89C51还有超低功耗、高抗静电的优势,设计过程中最担忧的是干扰,这种芯片优异的抗干扰能力也能很好的解决我们的难题,下面我们来简单介绍下这款芯片。表-
17、2-1芯片比照表工程STC89C51AT89C51储存器8位ISPFLASH储存器4位ISPFLASH储存器内部RAM512位内部RAM128位内部RAMI/O口线32个I/O口线32个I/O口线中断源6个中断源5个中断源工作电压3.3-5V5V通信方式串口通信并口通信STC89C51的芯片简介和优点如下表表1-2-2 STC89C51的芯片简介和优点简介STC89C51RC是采用8051核的ISPIn System Programming在系统可编程芯片,最高工作时钟频率为80MHz,片内含8K Bytes的可反复擦写1000次的Flash只读程序存储器,器件兼容标准MCS-51指令系统统及
18、80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元。优点具有在系统可编程ISP特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购置通用编程器,而且速度更快。STC89C51RC系列单片机是单时钟/机器周期(1T)的兼容8051 内核单片机,是高速/ 低功耗的新一代8051 单片机,全新的流水线/精简指令集结构,内部集成MAX810 专用复位电路。图1-3 STC89C51芯片引脚图1.2.2 语音芯片选择语音芯片,也被称为语音IC,也称为声音芯片。芯片本身就能完成芯片录音的ADC和DAC的两个过程,包括语音数据的收集,分析,压缩,存储,和其他步
19、骤。它可以将语音信号通过采样过程,来转化为数字,存储在IC的ROM中,再通过电路将ROM中的数字复原成语音信号;而语音芯片放音功能实质上是一个DAC过程。语音芯片集成电路,根据点的类型,都用声音芯片集成电路被称为语音,但是在语音芯片的大类型中,又被分为语音IC这里应该叫成Speech IC、音乐IC这里应该叫成Music IC两种。目前,最常使用的市场上语音芯片,如表1-2所示。表1-2 常用语音芯片比照表工程TE6310TE6332ISD1420ISD2560语音长度10s32s20s60采样频率kHz6.446.46.48放音触发放音触发无边缘/电平电平工作电压V4.55.52.73.34
20、.55.54.55.5工作电流mA30453030静态电流A2无1010MIC前置是否否否由上表可以看出,ISD2560语音芯片的语音长度较长,工作电流和电压也符合要求。因此,本次设计将采用ISD2560作为系统的语音处理芯片参与工作。1.3 ISD2560语音芯片ISD2560芯片优点颇多,例如它抗断电、音质好,无须专用的开发系统等等,在实际使用时比拟简单便利。它的录音时间为60s,能满足本设计的要求,并且它的反复录放次数能到达10万次,寿命较长。芯片采用多电平直接模拟量存储专利技术,省去了A/D、D/A转换器。每个采样值都能直接存储在片内单个EEPROM单元中,因此能够非常真实、自然地再现
21、语音、音乐、音调和效果声。图1-4 ISD2560内部原理框图1.3.1 ISD2560的引脚功能ISD2560的引脚排列如图图1-5 语音芯片引脚图一些引脚的主要功能描述如下: 表1-3-1 ISD2560的引脚功能引脚功能A0/M0A6/M6、A7A9地址线,ISD器件可以实现1600段录放语音功能,每段录放音都有一个起始端,该起始地址的选择由A0A9确定。当A8、A9同时为高电平时可以选择工作模式。AUX IN当CE和P/R为高,放音不进行,或处于放音溢出状态时,本端的输入信号通过内部功放驱动喇叭输出端。VSSD、 VSSA数字地和模拟地,这两脚最好在引脚焊盘上相连。MIC本端连至片内前
22、置放大器,外接话筒应通过串联电容耦合到本端,耦合电容值和本端的10K输入电阻。MIC REF本端是前置放大器的反向输入。当以差分形式连接话筒时,可减小噪声,提高共模抑制比。AGCAGC动态调整前置增益以补偿话筒输入电平的宽幅变化,使得录制变化很大的音量时失真都能保持最小。响应时间取决于本端的5K输入阻抗外接的对地电容的时间常数。释放时间取决于本端外接的并联对地电容和电阻的时间常数。470K和4.7uF的标称值在绝大多数场合下可获得满意的效果。ANA IN本端为芯片录音信号输出。对话筒输入来说ANA OUT端应通过外接电容连至本端。EOMEOM标志在录音时由芯片自动插入到该信息的结尾。放音遇到E
23、OM时,本端输出低电平脉冲。芯片内部会检测电源电压以维护信息的完整性,当电压低于3.5V时,本端变低,芯片只能放音。OVF芯片处于存储空间末尾时本端输出低电平脉冲表示溢出,之后本端状态跟随CE端的状态,直到PD端变高。本端可用于级联。CE本端变低后而且PD为低,允许进行录放操作。芯片在本端的下降沿锁存地址线和P/R端的状态。PD本端拉高使芯片停止工作,进入不耗电的节电状态,芯片发生溢出,即OVF端输出低电平后,要将本端短暂变高复位芯片,才能使之再次工作。1.3.2 ISD2560的操作模式ISD2560语音芯片的操作模式和直接寻址相互排斥,原因是由于ISD2560内置了假设干种操作模式,因而可
24、用最少的外围器件实现最多的功能。操作模式也由地址端控制,当最高两位A8、A9都为1时,其它地址端置高可选择某个或某几个特定模式。表1-3-2模式控制说明表模式制功能典型应用A0/M0信息检索快速检索信息A1/M1删除EOM标志在全部语音录放结束时,给出EOM标志A2/M2未用当工作模式 操作时,此端应接低电平A3/M3循环放音从0地址开始连续重复放音A4/M4连续寻址可录放连续的多段信息A5/M5CE电平触发允许信号中止A6/M6按钮控制简化器件接口A6/M6按钮控制简化器件接口使用操作模式时需要注意两点,如下表所示:表1-3-3第一所有操作模式下的操作都是从0地址开始,以后的操作根据模式的不
25、同,而从相应的地址开始工作。当电路中录音转放音或进入省电状态时,地址计数器复位为0。当CE变低且最高两地址位同为高时,执行操作模式。这种操作模式将一直有效,直到CE再次由高变低,芯片重新锁存当前的地址模式端电平并执行相应的操作为止。第二操作模式位不加锁定,可以在MSBA8、A9地址位为高电平时,CE电平变低的任何时间执行操作模式操作。如果下一片选周期MSBA8、A9地址位中有一个(或两个)变为低电平,那么执行信息地址,即从该地址录音或放音,原来设定的操作模式状态丧失。1.3.3 ISD2560的地址空间ISD2500系列和1400系列语音电路一样,具有抗断电、音质好,使用方便等优点。它的最大特
26、点在于片内E2PROM容量为480K(1400系列为128K),所以录放时间长;有10 个地址输入端(1400系列仅为8个),寻址能力可达1024位;因此可以到达60秒录音。设有OVF溢 出端,便于多个器件级联。2500系列最多可分为600段,只要在分段录/放音操作前(不少于300纳秒),给地址A0A9赋值,录音及放音功能均从设定的起始地址开始,录音结束由停止键操作决定,芯片内部自动在该段的结束位置插入结束标志EOM;而放音时芯片遇到EOM标志即自动停止放音。2500系列地址空间是这样分配的:注:地址0599作为分段用,地址600767未使用,地址7681023为工作模式选择。 表1-3-4
27、2500系列地址空间表十进制二进制信息时间(秒)A9A8A7A6A5A4A3A2A1A0256025752590000000000000005000001100105.06.257.50100000110010010.012.5015.00250001111101025.031.2537.50300010010110030.037.5045.00400011001000040.050.0060.00500011111010050.062.5075.00599100101011159.974.8789.851.3.4 ISD2560的应用电路ISD2560语音芯片内部集成度很高,能减少外部元器件
28、的使用个数和种类。具体的电路如图1-6 所示。图1-6 ISD2560根本电路原理1.3.5 电源电路 电源电路的设计如下图。由于本设计的芯片大都采用5V USB电源供电,所以本系统采用经三端稳压器件W7805输出5V电压来供电,电容的作用是用来减少输出脉动电压。这样就能得到稳定的直流电压信号,经济实用。如图1-7所示。图1-7 电源电路1.4集成功率放大器芯片LM386设计电路的最后是放音局部,要把前面录制的语音,通过扬声器播放出来,进行这一步需要对前面的信号放大,也就是升压,调幅或调频。这时就要用到功率放大器。本设计选用的是LM386集成功率放大芯片,它能有效的减少外围元件。只需要添加一只
29、外接电容和电阻在1脚和8脚之间,就能把电压增益调改变成任意数值,这样扬声器就能把录制的声音完整的播放出来了 1.4.1 LM386电子特性如表1-6所示,就是LM386芯片的电子特性。如果外加6V电源电压,LM386的静态功耗仅仅只有24mW,因此在电池供电的场合用LM386效果更好。它的输入电压最低为4V,最高为12V。当它无任何操作时,仅仅需要4mA的电流,并且它的失真程度很低。表1-4-1 LM386电子特性表工程测试环境规格工作电压VsV45输入电压VinV-0.4+0.4输入阻抗Rik50静电流IqmAVs=6V,Vin=0V48输出功率PoutmWVs=6V,Rl=8,THD=10
30、%250325电压增益(dB)Pin1、8开路26Pin1、8以10F连接46频宽kHzPin1、8开路300Pin1、8以10F连接60 1.4.2 LM386的引脚说明如图是LM386的引脚排列: 图1-8 LM386引脚图反相输入端是引脚二,输出端是引脚5,同相输入端是3,地和电源分别为引脚4和6,电压增益设定端是引脚8和1。通常在使用时旁路电容接在地和引脚7之间,大小一般是10F。LM386的电源电压为412V;电压增益为20-200dB;4mA是它静态消耗的电流;带宽为300KHz时,1和8脚是开路的,音频功率0.5W;输入阻抗为50K。具体的线路连接详见附录一。 虽然应用LM386
31、不难,但是也要谨慎,当器件断电、上电的一瞬间,或者工作稳定后,旋音量调节钮、插拔音频插头都有可能带来瞬态冲击,会在输出喇叭上发出令人讨厌的噪声。19 第二章 系统硬件设计第二章 系统硬件设计2.1系统硬件电路总体设计硬件电路是由单片机控制局部、语音录放局部和功放局部组成。主控制芯片是STC89C51单片机,通过ISD2560来实现语音的录放, LM386集成功放能使声音放大,控制起来方便并且简单易行。选用的STC89C51单片机和ISD2560语音芯片都是易于控制和操作的,减少不必要的元器件,尽量简化芯片的外围电路,使整个硬件电路更加的易懂、易操作。附录1是STC89C51与ISD2560的接
32、口电路以及外围电路。ISD2560的地址线连接单片机的P1口、P2.4和P2.5,可以来设置语音段的控制操作模式和起始地址;P0.3、P0.4连接按键,由录放音来使用;录放音状态由P2.0P2.3控制;发光二极管连接P0.0P0.3,能提示当前录放音状态。2.2 STC89C51的外围电路设计2.2.1 晶振电路是一种时序电路,它要想正常工作只有提供时钟脉冲信号。单片机里面操作是以系统时钟信号为时间基准,来给各种指令的执行提供时钟节拍。AT89C51得到系统时钟信号的方式有内部振荡或外部振荡。本系统所使用的晶振是市场上常见的,频率为12MHZ,电容是根据系统的特性来决定的,所以选用陶瓷电容,它
33、的大小是22pF。详细电路如下图。图2-1 晶振电路设计图2.2.2 复位电路设计一般的设计系统都会有复位电路的存在,它是保障程序能正常运行的关键点,同样本设计也有考虑到复位电路,在进行语音的录制时,会有各种各样的外界干扰,这样会造成STC89C51单片机运算过程中数据混乱不能使其正常继续执行程序称死机或产生的结果不正确,使语音芯片不能正常的录制,或者放音时杂音过多,极大的影响语音录制和播放的品质,这时就需要复位电路,对单片机进行复位,以使程序重新开始运行,保证正常的语音录制和播放。此次设计是使用外部复位的方法,所谓的外部复位就是如果一个高电平被加到RESET端口,并且超过了2机器周期时,单片
34、机就会产生复位。本系统的外部复位是通过按键来实现的,采用复位端电阻与Vcc电源接通而实现的按键电平复位方法,具体电路如下列图2-2。时把按键与一个10uF的电容相并联,这样能很大程度上抑制高频干扰和杂波,从而使系统的稳定性得到提高,设计出的系统才更加的可靠。图2-2 复位电路图2.3 语音电路设计用ISD2560芯片构成的语音电路,如图2-3所示图2-3 语音电路设计图声音信号放大是通过把扬声器输出信号与功放相连来实现的。一些引脚的接法可以参考前文说明。扬声器使用的型号是BTE-WUC-31MM(8,0.5W),麦克风使用的是6*5咪头驻极性电容式麦克风,实物如下列图。 麦克风 扬声器图2-4
35、 实物图2.4 功放电路设计LM386是功率放大器,它的主要作用前面也有提及,它能对输入的信号进行放大,主要是为了对扬声器进行输出。放大器的外围电路图如2-5所示10uFLM386图2-5 功放电路图放音音量的大小可以通过调节滑动电阻器的大小来实现。本设计是用LM386功率放大器的INPUT+端和ISD2560语音芯片的SP+端之间加上一的滑动变阻器,具体电路如附录一所示。ISD2560语音芯片录入的声音信号,经过的芯片的SP+端传递给下一级,在信号的必经之路上添加滑动变阻器,便可以通过改变滑动变阻器的阻值来改变传输信号的电压,进而改变传递给扬声器的信号的大小,就可以实现对音量的调节,操作比拟
36、简单。2.5按键局部电路设计录放状态的表示是由LED灯来完成,工作状态、录音开始状态和放音开始状态分别由红、黄、绿三盏LED灯表示。按键的作用主要是控制录音和回放过程,所以本设计不仅有复位键,而且还有另外2个按键:录音按键、放音按键。这局部的电路图如图2-6所示。注:LED1型号-HG003;LED2型号-HG002;LED3型号-HG001图2-6 按键局部电路图RECORD键和PLAY键是一端与地相连,另外一端接单片机的P3和P4端口,如果这两个按键没有按下时,单片机的P3、P4端口就相当于是和高电平Vcc相连;如果按键按下时,单片机的P3、P4端口通过按键和地进行连接,相当于被置为低电平
37、。在通过软件程序的编写就能检测到P3、P4口的电位情况,也就能表示录音键和放音键的是否按下。这样就能实现录放状态的控制了。在通过软件程序的编写就能检测到P3、P4口的电位情况,也就能表示录音键和放音键的是否按下。这样就能实现录放状态的控制了。 第三章 系统软件设计第三章 系统软件设计本文中介绍的系统是以STC89C51单片机作为硬件开发核心,STC89C51的软件局部采用的是汇编语言,软件采用符合汇编语言的KEIL C51编译器。整个程序的设计中我们遵循着简洁,易懂的设计思想,在破坏程序完整性的前提下,简化程序编码。在下面的表达中,我们将结合具体硬件电路来介绍各模块的软件设计。3.1 主要变量
38、说明程序中的主要变量及相关功能如下表表3-1 变量功能表RECORD描述录音键按下的状态。录音键按下该变量为1,录音键松开为0。PLAY描述放音键按下的状态。放音键按下该变量为1,放音键松开为0。EOM信息结束的标志。一段语音信号录制完毕后,EOM标志由芯片自动插入到信息结尾,放音过程中,假设EOM=0,说明信号结束,停止播放。PD连接P22控制芯片的工作状态。PD=0时,芯片开始工作;PD=1时,芯片停止工作,进入节电状态。PR连接P20控制语音芯片所处的工作模式。该变量置为0时,芯片处于录音模式;置为1时,芯片处于放音模式。CE对芯片进行片选。当CE=0且PD=0时,允许芯片进行录放的的操
39、作;CE=1时,无法进行录放操作。3.2 主程序工作原理及流程图本系统中录放过程的实现是基于单片机对语音芯片的控制,系统录音与回放的程序实际是单片机通过对ISD2560语音芯片的控制字的写入来完成的,整个程序的主流程图如下列图3-1所示开 始NN延时10ms去抖动PR端置0,设为录音状态结 束系统初始化PD端置0,芯片开始工作,LED1点亮录音键按下?Y录音键松开,CE置1调用录音子程序,开始录音放音键按下?Y调用放音子程序,开始放音芯片停止工作 LED1熄灭Y图3-1 主程序流程图语音芯片ISD2560会提供了地址输入线,但是语音芯片内部的信息段地址却是不能读取。需要使用直接寻址模式寻址。它
40、的实施有两种,如下表:表3-1 寻址方法第一种利用ISD2560 的地址分辨率为100 ms,所以可用单片机内部定时器定时100毫秒,然后再利用一个计数器来计算单片机定时的次数,语音段所占用的地址单元就是计数器的数值。这样可以充分利用ISD2560内部EEPROM的块,此方法适用于字段较多时。第二种如果字段较少,这样的话,地址单元可以直接被分配字段内容。通常计算上每秒所述三个字,180个字需要6s,再根据ISD2560的地址分辨率为100ms,即可计算出语音段所需的地址单元数。本设计是实现单段语音的录放过程,因此没有必要采用直接寻址的方法,可以使用另一种方法,先对端口A6、 A9和A8进行设置
41、,都置为高电平,然后再通过对按键的操作,实现对单段语音的录放过程的控制。在这种模式下,语音存储的起始地址默认从0开始。程序第一步是该系统的初始化,对P1的状态进行设置,让语音芯片处于按键控制的操作模式下。当PD端置为0时,芯片会启动。当PR端是0,芯片被设置在录音状态。系统会反复检测录音键RECORD和放音键PLAY所处的状态。当录音键RECORD被按下后,系统就进入录音状态,调用录音子程序,开始录制过程。而当放音键PLAY被按下后,系统就会进入放音模式,放音子程序被调用,开始放音过程。放音结束后,芯片停止工作。程序代码见附录3。3.3 子程序流程图及代码3.3.1 录音子程序录音局部的子程序
42、流程图如图3-2所示。图3-2录音程序流程图当系统自动检测到录音键被按下时,单片机的CE端就被置为低电平,ISD2560就开始进行录音局部。上文提到RECORD键是表示录音键,通过扫描它来判断录音键是否松开。当检测到录音按键被松开时,芯片的CE端就被置为高电平,结束录音局部,返回主程序。当芯片进行录音和放音的操作时,必须保证芯片的CE端和 PD端都为零,所以操作前首先要把它们都置为低电平,由于P0口外接了灯LED1,因此P0口为高电平时,LED1不导通,不发光;同样P1口外接了灯LED2,当P1口为低电平时,LED2会导通,灯被点亮。程序段如下:CLR CE;开始录音CLR LED2SETB
43、LED1;点亮灯2,灭掉灯1JNB RECORD,$SETB CE;录音键松开后,录音结束 SETB LED2CLR LED1;灯2灭,灯1亮 3.3.2 放音子程序执行放音局部前,主程序会预先判断放音键是否被按下,只有检测到按键被按下,与PLAY相连的P4口为低电平,才会执行放音子程序。放音子程序的流程图如图3-3所示。 图3-3 放音程序流程图当系统自动检测到放音键被按下时,PR端就会被置为1,开始调用放音子程序,进入放音状态。在放音子程序里,CE端被置为低电平,开始进行语音播放。播放完成后,返回主程序并进行下一步操作。 放音的过程比录音时简单,并不需要按着放音键不放。ISD2560芯片在每次录音的结尾都会自动的在程序里插入语音段结束信号EOM,当放音时遇到语音段结束信号EOM为0,就会结束放音,比拟简洁方便。放音程序段如下:SETB PR;置放音状态CLR CE;启动播放CLR LED3;STE