N588DMP3模块说明与使用(技术交流文档)1、N588DMP3语音芯片模块功能N588D语音芯片是一款功能强大的可重复擦除烧写的语音单片机芯片。N588D让语音芯片不再为控制方式而寻找合适的外围单片机电路,高度集成的单片机技术足于取代复杂的外围控制电路。配套N588DVoiceChip上位机操作软件可随意更换N588D语音单片机芯片的任何一种控制模式,把信息下载到SPI-Flash上即可。这一块软件操作方式简洁易懂,撮合了语音组合技术,大大减少了语音编辑的时间。完全支持在线下载,即便是N588D通电的情况下,一样可以通过下载器给关联的SPI-Flash下载信息,给N588D语音芯片电路复位一下,就能更新到刚下载进来的控制模式。支持插入静音模式,插入静音不占用SPI-Flash内存的容量,一个地址位可插入10ms~25min的静音;MP3控制模式下,完全迎合市场上MP3的播放/暂停、停止、上一曲、下一曲、音量+、音量-等功能;按键控制模式下触发方式灵活,可随意设置任意按键为脉冲可重复触发、脉冲不可重复触发、无效按键、电平保持不可循环、电平保持可循环、电平非保持可循环、上一曲不循环、下一曲不循环、上一曲可循环、下一曲可循环、音量+、音量-、播放/暂停、停止、播放/停止等15种触发方式,最多可用10个按键触发控制输出;3×8按键组合控制模式下能以脉冲可重复触发的方式触发24个地址位语音,所触发地址位语音可在0~219之间设置;并口控制模式可用8个控制端口进行控制,仅限于N588D-32L、NW-28P;一线串口控制模式可通过发码端控制语音播放、停止、循环播放和音量大小,或者直接触发0~219地址位的任意语音,发码速度600us~2000us;三线串口控制模式和三线串口控制控制端口扩展输出模式之间可通过发码切换,三线串口控制模式下,能控制语音播放、停止、循环播放和音量大小,或者直接触发0~219地址位的任意语音,三线串口控制控制端口扩展输出可以扩展输出8位,在两种模式下切换,能让上一个模式的最后一种状态保持着进入下一个模式。PWM和DAC输出方式,PWM输出可直接推动0.5W/8Ω的扬声器,DAC输出外接功放,音质好。应用范围广,几乎可以涉及到所有的语音场所,如报站器、报警器、提醒器、闹钟、学习机、智能家电、治疗仪、电子玩具、电讯、倒车雷达以及各种自动控制装置等场所,工艺上达到工业应用的要求。2、N588DMP3语音芯片模块特征。3、N588DMP3语音芯片模块参数4、N588DMP3语音芯片模块管脚K1~K10被定义为控制端口按键触发控制端,所对应控制端口分别为P00~P07、P10和P11。通过K1~K10拉低相关控制端口的电平或往相关控制端口输入脉冲,就可达到控制触发语音播放的效果。按键K0~K9的触发模式可以被设置为无效按键、脉冲可重复触发、脉冲不可重复触发、电平保持不可循环、电平保持可循环、电平非保持可循环、上一曲不循环、下一曲不循环、上一曲可循环、下一曲可循环、停止、播放/暂停、音量+、音量-及播放/停止等15种触发方式。按键模式:P00→K1P01→K2P02→K3P03→K4P04→K5P05→K6P06→K7P07→K8P10→K9P11→K10一线串口模式:P00→K1P04→K5P07→K8P01→K2P05→K6P10→K9P02→K3P06→K7P11→K10R1~R3、L0~L7的使用在3×8矩阵按键控制模式下控制端口被定义为R1~R3、L0~L7,R1~R3为矩阵行输入口,L0~L7为矩阵列输入口。当R和L输入口短接时,可触发播放一段语音,3×8矩阵按键模式下所有按键的触发方式被定义为脉冲可重复触发。矩阵的按键接线详见12.3、3×8矩阵按键控制模式。SBT及A0~A7的使用在并口控制模式下控制端口P00、P01、P02、P03、P04、P05、P06、P07、P10被分别定义为SBT,A0、A1、A2、A3、A4、A5、A6、A7。SBT为语音触发试听脚,A0~A7为地址位,分别由低到高。具体控制端口分配详见12.4、并口控制模式。一线串口控制汇编程序说明:此程序跟《N588D语音芯片及模块应用电路》中的一线串口控制模式应用电路相对应,下面仅以20SS封装片PWM输出作为示范,更详细地电路说明请参阅《N588D语音芯片及模块应用电路》。测试芯片:AT89C2051。ORG0000HKEYEQUP1.1;按键引脚RSTEQUP1.4;复位信号引脚SDAEQUP3.0;数据引脚DAIFAZHIEQU50H;发码值暂存地址MOVDAIFAZHI,#0H;发码初始值为0MOVR5,#8;发码8位循环MAIN:JBKEY,MAINMOVR6,#20;延时20MSLCALLDELAY1MSJBKEY,MAIN;按键去抖判断JNBKEY,$;等待按键释放LCALLone_line;调用一线发码子程序INCDAIFAZHI;发码值加1MOVA,DAIFAZHICJNEA,#220,XX2;是否到达语音段最大值220XX2:JCXX3MOVDAIFAZHI,#0HXX3:LJMPMAINone_line:;////一线发码子程序CLRRSTMOVR6,#5;延时5MSLCALLDELAY1MSSETBRSTMOVR6,#20;延时20MSLCALLDELAY1MSCLRSDAMOVR6,#5;延时5MSLCALLDELAY1MSMOVA,DAIFAZHILOOP:SETBSDARRCAJNCDIDIANPIN;高电平脉冲高:低=3:1LCALLDELAY200USLCALLDELAY200USLCALLDELAY200USCLRSDALCALLDELAY200USLJMPLOOP1DIDIANPIN:;低电平脉冲高:低=1:3LCALLDELAY200USCLRSDALCALLDELAY200USLCALLDELAY200USLCALLDELAY200USLOOP1:DJNZR5,LOOPMOVR5,#08HSETBSDARETDELAY200US:MOVR6,#100;延时400US子程序DJNZR6,$RETDELAY1MS:;延时1ms子程序,可以给R6赋值修改延时时间L1:MOVR7,#248DJNZR7,$DJNZR6,L1RETEND一线串口控制CC语言程序说明:此程序跟《N588D语音芯片及模块应用电路》中的一线串口控制模式应用电路相对应。测试芯片:AT89C2051。#includeat89x2051.HsbitKEY=P1^1;/*P1_1为P1口的第2位*/sbitRST=P1^4;/*P1_4为P3口的第3位*/sbitSDA=P3^0;/*P3_0为P3口的第4位*/voiddelay1ms(unsignedcharcount)//1MS延时子程序{unsignedchari,j,k;for(k=count;k0;k--)for(i=2;i0;i--)for(j=248;j0;j--);}voiddelay100us(unsignedcharcount)//100US延时子程序{unsignedchari;unsignedcharj;for(i=count;i0;i--)for(j=50;j0;j--);}Send_oneline(unsignedcharaddr){unsignedchari;RST=0;delay1ms(5);/*复位延时5MS*/RST=1;delay1ms(20);/*delay20ms*/SDA=0;delay1ms(5);/*delay5ms*/for(i=0;i8;i++){SDA=1;if(addr&1){delay100us(6);/*600us*/SDA=0;delay100us(2);/*200us*/}else{delay100us(2);/*200us*/SDA=0;delay100us(6);/*600us*/}addr=1;}SDA=1;}main(){unsignedcharFD=0;P3=0XFF;while(1){if(KEY==0){delay1ms(10);if(KEY==0)//通过按键P1.1来进行发码值的递增{Send_oneline(FD);FD++;if(FD==220)//一线串口时,语音段暂时最多为220段{FD=0;}while(KEY==0);//等待按键释放,以免一次按键误判成几次}}}}