Side Menu

ISD1420语音组合精灵板

2017-5-6 09:59| 发布者: admin| 查看: 1065| 评论: 0

摘要: ISD1420语音组合精灵板是一块最小化的语音模块,用户可以不需要了解语音芯片及语音合成等的内部机理,只需简单的外部串口控制,就可以直接在喇叭上获得理想的语音合成效果。板上语音芯片可插拔,选用ISD1420芯片。 ...

ISD1420语音组合精灵板是一块最小化的语音模块,用户可以不需要了解语音芯片及语音合成等的内部机理,只需简单的外部串口控制,就可以直接在喇叭上获得理想的语音合成效果。板上语音芯片可插拔,选用ISD1420芯片
本精灵板结构紧凑体积仅半个烟盒大小,以标准组件模块方式灵活自如地应用在各种用户系统及各种产品空间中。该精灵板虽体积小巧但包含了大量最新的器件和技术成果,如先进数字音频录放芯片(ISD1420)音质好断电不丢信息可自由录入语音内容;片内可擦写程序存储器的单片机(AT89C2051)使控制灵活功能强大;低压差微功耗的三端稳压器(HT7251)使输入电源电压范围扩至5-12伏、板载LM386功放可提供0.5W的喇叭输出。独有语音黑匣子功能设计可以记录本板放音的历史过程,使本板不但具备语音合成输出功能,也增有数据采集、存储功能……
一、设计
1、分段录制好音源芯片ISD1420。将需要的语音单词先通过磁带录音机或多媒体电脑录制好,分成若干段(最大64段),再通过"ISD1425高级语音编程拷贝机"全部自动分段写入到ISD1420芯片中,将此音源芯片插入本精灵板。--ISD芯片可即录即放反复修改内容,内部语音及分段信息在断电后也能保持100年。
2、本精灵板上ISD1420语音芯片录好了31段如下常用字词:"幺(00)、零(01)、壹(02)、贰(03)、叁(04)、肆(05)、伍(06)、六(07)、柒(08)、捌(09)、玖(0A)、十(0B)、百(0C)、千(0D)、万(0E)、温度(0F)、度(10)、正(11)、负(12)、现在(13)、正常(14)、偏高(15)、偏低(16)、上升(17)、下降(18)、号(19)、小时(1A)、分(1B)、秒(1C)、点(1D),嘟(1E)"等。
如需其它专业广播级语音,请另行联系。

3、根据需要编写系统串行通讯程序,指令如下:
标准5V的RS232串口协议方式(TX、RX双线,串口方式一、无校验):
串口速率: 4800 bit/s(12M晶振时置FA)
引导码: AA AA
静音延迟0.5秒:DD (在一句话中停顿一会,起逗号作用)

句结束放音存储码: FF (立刻语音合成放音,并存储该指令,以后可检查复听)
句结束存储无音码: FE (存储该指令,以后可检查复听;但现在并不组合放音出来)
TX端放音忙信号: 低电平有效 (空闲为高电平,语音合成放音期间变为低电平输出。)
数据码: 码址与语音段位序号对应,如00为第一段,01为第二段,02为第三段,…….每句话最多48段。
★厂家免费提供范例式的接口源程序供参考,也可以提供其他特定要求的接口设计。
4、举例说一句"嘟,现在温度126.5度,偏高。",应发码:AA AA 1E DD 13 0F 02 0C 03 0B 07 1D 06 10 DD 15 FF。
二、使用
1、性能:电源电压5-12V,静态电流13mA,工作电流150mA,接口电平5V,外接喇叭8W,输出音频功率0.5W。
2、合成:按需要和规定提供控制指令(5V的RS232方式),用户可使用控制单片机的任意口线模拟通讯,本板即调用ISD语音芯片的相应段语音内容连续播放出来,语音合成放音期间TX端输出低电平。
3、检听:按一下板上按钮,或给"AN"端提供高电平脉冲,即可听到最近一次的语音组合发音内容,再按则听到前一次的内容,如此可一直向前检索复听,一般可查听近2000段纪录,可方便地作为设备运行黑匣子使用。语音结束5秒钟后没有按键,系统即复位,再按键即播放最新一段的语音。持续按键不放即按从后到前的顺序依次播放以前的语音组合句的记录。
4、换片学习:如果更换语音芯片的内容或更换芯片,即需要先让系统学习一遍(将语音芯片的分段地址都搜索并存储起来)。将短路跳针置于1-2位置按一下AN按钮,喇叭里会发出一些零乱的声音,放音完毕后即将短路跳针置回2-3,系统断电再通电即可控制使用。
5、通讯问题:如果用户使用微机或主频是11.0592MHZ的单片机控制,本板上的12M晶振也应改为11.0592MHZ晶振。

 

ISD1420语音组合精灵板串行接口发码测试程序AT89C2051单片机 12MHz
**** 初始化 ****

 

ORG 0000H ;
主程序
MAIN: MOV SP,#10H ;
MOV P1,#0FFH ;
MOV P3,#0FFH ;
CLR ET1 ;
CLR ES ;
CLR EX1 ;
CLR EX0 ;
CLR EA ;
MOV R3,#0DDH ;
JJK: MOV R0,#40H ;键输入存储的首地址
MOV SP,#10H ;
MOV P1,#0FFH ;
MOV P3,#0FFH ;
MOV SCON,#50H ;串行口工作于方式1
MOV PCON,#00H ;SMOD=0=fosc/32 (SMOD=1=fosc/16)
MOV TMOD,#20H ;定时器1工作于方式2 自动装入的8位计数器
MOV TH1,#0FAH ;波特率设置4800 1位起始位 8位数据位 1位停止位
MOV TL1,#0FAH ;
WW2: SETB T1 ;
MOV P1,#0EFH ;
JB RXD,WWWL ;
AJMP FCCC ;
WWWL: JNB P1.0,WW0 ;
JNB P1.1,WW0 ;
JNB P1.2,WW0 ;
JNB P1.3,WW0 ;
MOV P1,#0DFH ;
JNB P1.0,WW0 ;
JNB P1.1,WW0 ;
JNB P1.2,WW0 ;
JNB P1.3,WW0 ;
MOV P1,#0BFH ;
JNB P1.0,WW0 ;
JNB P1.1,WW0 ;
JNB P1.2,WW0 ;
JNB P1.3,WW0 ;
AJMP WW2 ;
WW0:MOV A,P1 ;
CLR T1 ;
MOV 30H,#100 ;
DD0: JNB P1.0,$ ;
JNB P1.1,$ ;
JNB P1.2,$ ;
JNB P1.3,$ ;
ACALL Y100 ;
DJNZ 30H,DD0 ;
SETB T1 ;
CJNE A,#0E7H,JJ1 ;
MOV A,#01H ;
JJ1: CJNE A,#0D7H,JJ2 ;
MOV A,#02H ;
JJ2: CJNE A,#0B7H,JJ3 ;
MOV A,#03H ;
JJ3: CJNE A,#0EBH,JJ4 ;
MOV A,#04H ;
JJ4: CJNE A,#0DBH,JJ5 ;
MOV A,#05H ;
JJ5: CJNE A,#0BBH,JJ6 ;
MOV A,#06H ;
JJ6: CJNE A,#0EDH,JJ7 ;
MOV A,#07H ;
JJ7: CJNE A,#0DDH,JJ8 ;
MOV A,#08H ;
JJ8: CJNE A,#0BDH,JJ9 ;
MOV A,#09H ;
JJ9: CJNE A,#0EEH,JJ0 ;每一段的结束键
MOV A,#0AH ;
JJ0: CJNE A,#0DEH,JJA ;
MOV A,#00H ;
JJA: CJNE A,#0BEH,JJB ;
MOV A,R3 ;
CJNE A,#0DDH,JJBB ;
AJMP MAIN ;
JJBB: CJNE A,#0AAH,JJBB1 ;
AJMP FMM;
JJBB1: DEC R0 ;
AJMP AA ;输入结束
JJB: MOV R3,#00H ;
MOV @R0,A ;
INC R0 ;
AJMP WW2 ;没有输入结束键继续输入
AA: DEC R0 ;
MOV 3FH,#0AH ;
MOV 26H,#28H ;
AA0: MOV 20H,#00H ;
MOV 21H,#00H ;
MOV 22H,#00H ;
MOV 23H,#00H ;
MOV R1,#23H ;
AA1: MOV A,@R0 ;
CJNE A,#0AH,AA2 ;
MOV 18H,R0 ;
结果在 25H,24H 20H 21H 22H 23H
ACALL AH ;
调四位BCD码转换十六位二进制数 千 百 十 个
MOV 19H,R1 ;
MOV R1,26H ;
MOV @R1,24H ;
INC R1 ;
MOV @R1,25H ;
INC R1 ;
MOV 26H,R1 ;
MOV R1,19H ;
MOV R0,18H ;
DEC R0 ;
CJNE R0,#3EH,AA0 ;
AJMP FMM ;
AA2: MOV @R1,A ;
DEC R0 ;
DEC R1 ;
AJMP AA1 ;
FMM: MOV A,#0AAH ;发码0AAH
ACALL OUT ;
MOV A,#0AAH ;发码0AAH
ACALL OUT ;
MOV R1,26H ;
DEC R1 ;
FMM2: JB T0,FMM1 ;
T0=0 1420 T0=1 2500
DEC R1 ;
FMM1: MOV A,@R1 ;
ACALL OUT ;
DEC R1 ;
CJNE R1,#27H,FMM2 ;
MOV A,#0FFH ;发码0FFH
ACALL OUT ;
MOV A,#0FFH ;发码0FFH
ACALL OUT ;
MOV R3,#0AAH ;
AJMP JJK ;
发CCH CCH
FCCC: MOV A,#0AAH ;发码0AAH
ACALL OUT ;
MOV A,#0AAH ;发码0AAH
ACALL OUT ;
MOV A,#0CCH ;
ACALL OUT ;
MOV A,#0CCH ;
ACALL OUT ;
MOV A,#0FFH ;发码0FFH
ACALL OUT ;
MOV A,#0FFH ;发码0FFH
ACALL OUT ;
AJMP MAIN ;
******************** 发送子程序 **********************
OUT: MOV TMOD,#20H ;定时器1工作于方式2 自动装入的8位计数器
MOV SCON,#50H ;串行口工作于方式1
MOV PCON,#00H ;
SMOD=0=fosc/32 (SMOD=1=fosc/16)
MOV TH1,#0FAH ;波特率设置4800 1位起始位 8位数据位 1位停止位
MOV TL1,#0FAH ;
SETB TR1 ;
MOV SBUF,A ;数据在A
JNB TI,$ ;
CLR TI ;
RET ;
****************** 1mS延时 ****************************
Y100: MOV TMOD,#01H ;
MOV TL0,#20H ;10mS延时初值置入
MOV TH0,#0FCH ;(65536-X)*1=10MS
SETB TR0 ;65536-(10000/1)
JNB TF0,$ ;
CLR TF0 ;
CLR TR0 ;
RET ;
BCD码转换成二进制数
AH: MOV R7,#03H ;
MOV R0,#20H ;
MOV 25H,#00H ;
MOV A,@R0 ;
MOV 24H,A ; R2
ML10: MOV A,24H ;
MOV B,#0AH ;
MUL AB ;
MOV 24H,A ; R2
MOV A,B ;
XCH A,25H ;
MOV B,#0AH ;
MUL AB ;
ADD A,25H ;
MOV 25H,A ;
INC R0 ;
MOV A,@R0 ;
ADD A,24H ;
MOV 24H,A ;
MOV A,25H ;
ADDC A,#00H ;
MOV 25H,A ;
DJNZ R7,ML10 ;
RET ;
END
\


鲜花

握手

雷人

路过

鸡蛋