也只是一部废铁。我们在确定了一项设 计所要实现的功能后,根据要实现的功能设计相应的硬件系统。硬件系统搭建起 来之后,若调试无误,才进行相应的软件模块的设计。 本系统采用51系列单片机作为硬件开发核心,单片机的软件部分采用汇编语 言开发,软件采用符合汇编语言的KEIL C51编译器。在这章节中,将结合具体硬 件电路来介绍各模块的软件设计。 3.1 主要变量说明 程序中的主要变量及相关功能如下: LED1~LED3:描述发光二极管的关断。当这 3 个变量分别为 1 时,二极管熄 灭,当变量为 1 时,二极管点亮。 RECORD:描述录音键按下的状态。该变量为 1 表示录音键按下,为 0 表示 录音键松开。 PLAY:描述放音键按下的状态。该变量为 1 表示放音键按下,为 0 表示放音 键松开。 PD:控制芯片的工作状态。PD=0 时,芯片开始工作;PD=1 时,芯片停止工 作,进入节电状态。 PR:控制语音芯片所处的工作模式。该变量置为 0 时,芯片处于录音模式; 置为 1 时,芯片处于放音模式。 CE:对芯片进行片选。当 CE=0 且 PD=0 时,允许芯片进行录放的的操作; CE=1 时,无法进行录放操作。 EOM:信息结束的标志。一段语音信号录制完毕后,EOM 标志由芯片自动插 入到信息结尾,放音过程中,若 EOM=0,说明信号结束,停止播放。 3.2 主程序工作原理及流程图 本系统中单片机控制语音芯片录播的程序主要是单片机对 ISD2560 芯片的
控 制字的写入,程序流程图如图 3-1 所示。 22 开始 系统初始化 PD端置0,芯片开始工作;灯1点亮 PR端置0,设为录音状态 录音键按下? 延时10ms去抖动 调用录音子程序,开始录音 放音键按下? 调用放音子程序,开始放音 结束 Y N Y N 芯片停止工 作,灯1熄灭 图 3-1 主程序流程图 ISD2560 虽然提供了地址输入线,但它的内部信息段的地址却无法读出。需 要采用直接寻址模式进行寻址。其实现方式有两种:一是由于 ISD2560 的地址分 辨率为 100 ms,所以可用单片机内部定时器定时 100 ms,然后再利用一计数器对 23 单片机定时次数进行计数,则计数器的计数值为语音段所占用的地址单元。该方 式能充分利用 ISD2560 内部的 EEPROM,在字段较多时可利用该方法。二是语音 字段如果较少,则可根据每一字段的内容多少,直接分配地址单元。一般按每秒 说 3 个字计算,60s 可说 180 个字,再根据 ISD2560 的地址分辨率为 100ms,即可 计算出语音段所需的地址单元数。本系统完成的是语音单段录放的功能,可不必 采用直接寻址模式,而是设置 A8、A9 和 A6 的电平为高,利用按钮控制操作模式 完成对单段语音信号的录放即可。在这种模式下,语音存储的起始地址默认从 0 开始。 程序首先是系统的初始化,设置 P1 的状态使得语音芯片处于按键控制的操作 模式下。将 PD 端置为 0,芯片启动。置 PR 端为 0,设置芯片在录音状态。此后 循
环扫描 RECORD 和 PLAY 键按下的状态。RECORD 键按下后,进入录音模式, 调用录音子程序开始录音。PLAY 键按下后,进入放音状态,调用放音子程序开始 放音。放音结束后,PD 端置 1,芯片停止工作。程序代码见附录 2。 3.3 子程序流程图及代码 3.3.1 录音子程序 录音子程序流程图如图 3-2 所示。 CE置0开始录音 点亮灯2熄灭灯1 是否松开录音键? 录音结束 熄灭灯2点亮灯1 Y N 返回 图 3-2 录音程序流程图 24 录音键按下后,置CE 端为低电平,芯片开始录音。然后一直扫描 RECORD 所 表示的录音按键是否松开,若按键松开,则置CE 端为高电平,录音结束。程序段 如下: CLR CE;开始录音 CLR LED2 SETB LED1;点亮灯 2,灭掉灯 1 JNB RECORD,$ SETB CE;录音键松开后,录音结束 SETB LED2 CLR LED1;灯 2 灭,灯 1 亮 3.3.2 放音子程序 放音程序的流程图如图 3-3 所示。 置放音状态 CE置0启动放音 灯3点亮灯1熄灭 语音结束信号EOM为0? 灯3熄灭灯1点亮 Y N 返回 图 3-3 放音程序流程图 放音键按下后,置 PR 端为 1,进入放音状态。将CE 端置为低电平,启动播放。 播放过程中等待语音段结束信号 EOM,当 EOM=0 时,提示语音信号结束。返回 主程序并进行下一步操作。放音程序段如下: SETB PR;置放音状态 25 CLR CE;启动播放 CLR LED3; STEB LED1;点亮灯 3,熄灭灯 1 NOP NOP TURN: JB EOM,TURN;等待语音
段结束信号 SETB LED3; CLR LED1;灯 3 灭,灯 1 亮 26 结束语 本文设计的语音系统硬件电路简单,调试方便。即可作为电脑语音系统的语 音板,又可作为语音服务系统的子系统。针对 ISD 语音芯片的特点,设计出的一 种由单片机控制,能够实现录放功能的语音电路,可作为录音机、复读机、音频 记录仪使用,既节省存储空间,又降低成本,具有较高的实用价值。 ISD 语音芯片精度高,集成度高,能够使得微机的语音输出结构大大的简化, 能使生产的造价大大的降低;由于 ISD 芯片的抗干扰性强,所以在恶劣的环境的 系统中也能正常使用,例如:机动车辆,语音室里都能正常的输出语音,信息保 存时间长,工作可靠;输出可以高保真的再现原声,可将 ISD 芯片用于语音及声 音信号的检测或模拟系统,能实现语音的非定长录制。 上面这个语音芯片设计电路可以应用于家电、防盗、通信、汽车侦测器、工 业产品、医疗、美容器材及警报,绒毛玩具、精美礼品、精美广告赠品、益智玩 具、圣诞及节日礼品玩具、圣诞树、圣诞鱼、有声语音闹钟。且外围电路元件少、 体积小、易于再次开发或改进电路,具有很高的实用价值。 对于该系统的改进,主要有 2 个方面。硬件部分的改进,利用 AT89C51 芯片 余下的管脚可以外接一显示模块,对当前录放音的状态进行显示。而对于软件部 分,可以利用 ISD2560 直接寻址模式对语音信号分段录放。ISD2560 最
大录音时 间为 60s,对声音信号分段录音,设置各录音段的起始地址,存储在芯片的存储器 中,放音时,直接寻找到起始地址就能实现对各段语音信号的播放了。 27 参考文献 [1]余永权.ATMEL89 系列单片机应用技术.北京:北京航空航天大学出版社,2002 [2]ISD Series Single-Chip Voice Device Data Book. Winbond Inc., 2000 [3]陈后金.数字信号处理.北京:高等教育出版社,2003 [4]李建忠.单片机原理及应用.西安:西安电子科技大学出版社, 2002 [5]江思明.电路工程设计——Protel 99 实例演练.北京:人民邮电出版社,2000 [6]MSC121X Precision ADC and DACS with 8051 Microcontroller and Flash Memory User ’s Guide. Texas Instruments Inc., 2005 [7]张绍高.数字音频技术原理及应用(第 1 版).北京:国防工业出版社,2000 [8]吴瞋山.电子线路设计与实践.北京:电子工业出版社,2005 [9]康华光.电子技术基础.模拟部分.北京:高等教育出版社,2006 [10]钟玉琢等.多媒体计算机技术基础及应用(第 1 版).北京:高等教育出版社, 1999 [11]Myke predko. 精通 8051 程序设计.北京:人民邮电出版社, 2006 [12]At mel 8051 Microcontrollers Hardware Manual. Atmel Inc., 2004 [13]求实科技.单片机典型模块设计实例导航.北京:人民邮电出版社,2004 [14]陈小忠.单片机接口技术实用子程序.北京:人民邮电出版社,2005 [15]赵晶主.电路设计与制板 Protel99 高级应用.北京:人民