SYN6288语音播放模块.docx

上传人:b****0 文档编号:9145177 上传时间:2023-05-17 格式:DOCX 页数:16 大小:415.12KB
下载 相关 举报
SYN6288语音播放模块.docx_第1页
第1页 / 共16页
SYN6288语音播放模块.docx_第2页
第2页 / 共16页
SYN6288语音播放模块.docx_第3页
第3页 / 共16页
SYN6288语音播放模块.docx_第4页
第4页 / 共16页
SYN6288语音播放模块.docx_第5页
第5页 / 共16页
SYN6288语音播放模块.docx_第6页
第6页 / 共16页
SYN6288语音播放模块.docx_第7页
第7页 / 共16页
SYN6288语音播放模块.docx_第8页
第8页 / 共16页
SYN6288语音播放模块.docx_第9页
第9页 / 共16页
SYN6288语音播放模块.docx_第10页
第10页 / 共16页
SYN6288语音播放模块.docx_第11页
第11页 / 共16页
SYN6288语音播放模块.docx_第12页
第12页 / 共16页
SYN6288语音播放模块.docx_第13页
第13页 / 共16页
SYN6288语音播放模块.docx_第14页
第14页 / 共16页
SYN6288语音播放模块.docx_第15页
第15页 / 共16页
SYN6288语音播放模块.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

SYN6288语音播放模块.docx

《SYN6288语音播放模块.docx》由会员分享,可在线阅读,更多相关《SYN6288语音播放模块.docx(16页珍藏版)》请在冰点文库上搜索。

SYN6288语音播放模块.docx

SYN6288语音播放模块

SYN6288语音播放模块制作

1、SYN6288语音芯片封装图:

1O

28

VDD1O0匚

2

27

\ssiooZ

3

26

Ready/HiK\_

4

25

Rt-h匚

5

24

\DDK>1匚

6

23

VSSIO1匚

7

22

vssppZ

R

21

9

20

\DDPP1_

10

19

BM)Z

11

18

VSSPP

12

17

址匸

B

16

NC匚

14

15

R\l)

\'SSA

cvss

ItFGOUT口CVI>D口VDDIO2_KST

]Til>

□VDIJA

□XOIT

□XIN

]VSSIO2

二|VSN

□^C

2、通信方式:

2.1异步串行通讯(UART接口

PC的数据传输。

SYN6288芯片支

SYN6288提供一组全双工的异步串行通讯(UART接口,实现与微处理器或SYN6288利用TxD和RxD以及GND实现串口通信。

其中GND作为地信号。

持UART接口通讯方式,

RXD

TXD

TXD

——►

RXD

2.2通讯传输字节格式

1初始波特率:

9600bps

2、起始位:

1

3、数据位:

8

4、校验位:

5、停止位:

1

6、流控制:

起始位

DO

D1

D2

D3

D4

D5

D6

D7

停止位

与51单片机通信时,可以用单片机的串行通信方式1

3、硬件电路搭建:

3.1外接电源组接法

5V电源供电模块参考电路

备注:

SYN6288共有6组外接电源,每组电源均使用一个47uF和一个0.1uF的电容;如果用户想节省成本,用户可以在每组电源上均使用0.1uF的电容,并对VDDPP、和VDDA两组电源,各加上一47uF的电容。

3.2复位电路及状态指示电路

 

备注:

Ready/Busy此STATUSI脚信号为低电平时说明芯片正在等待接收数据。

在系统设计时可以将此引脚接

在MC的中断输入源上,产生一个下降沿中断请求发送数据,以示上位机MC可以向语音合成

芯片发送数据。

3.3

SYN6288的扬声器输出

 

3.4SYN6288外接高速晶振

-XJN||UI2

IL

O

20pF

TXC16M

I20pF

XOUT

XOUT『15

3.5SYN6288串口通信的参考电路

 

备注:

上位机发送数据给SYN6288时,中间须加有反向器。

在实际电路中,我们用三极管做了一个反向器,电路如下图:

VCC

TXD

该电路的原理是:

MCU的TXD输出电平为0时,NPN三极管截止,RXD收到的电平为1。

28

RXD

MCU的TXD输出电平为1时,

NPN三极管导通,

RXD收到的电平为0。

3.6Res引脚(即第5引脚)的接法

Res.

SrATUS

3.7总体电路原理图:

忙指示灯

电源指示灯

GNE-

DI

GKC-

t-SSI-OG

1

BD1CC

4

J.

]

2

4

315

<

—I—一

vcmo】

5

X-£E[01

7

:

P

BBFF

10

SFK-

)1

VSSFP

12

13

1脚00

KudyS^aty

VIO5

VSSIU]

5P0

VDDW

KfQ

VSSPP

SXC-

^c.

TXD

VWA

X0UT

KE&OCT

CVDC

ADDIOZ

JUT

CVS5

VOTO:

vs

NC

||hGKD

TXD

WDA

XDv

V3SA

KE.GOUT

CtT-D

Ill'GXD

VCC

Hl

Hsade?

-"

VCC

GKD

 

 

 

4、程序的编与:

4.1命令帧格式:

芯片支持以下命令帧格式:

“帧头FD+数据区长度+数据区”格式。

(最大206个字节)

轍结构

帧头

<1字节)

数据区长度

(2字节〉

数据区

f小于等于203字节}

命令字仃字节〉

命令舂数字节)

特发送文本

(小于等于2皿字节)

异或校验

(1字节)

数据

OjcFD

OjcXXOxXX

OkXX

OsH”,.

OsXX

说明

定义为卜六进制“OzFD"

高丫节在前

低字节在后

长度誉须和前面的“敌据区长度"一致

注意:

数据区(含命令字,命令参数,待发送文本,异或校验)的实际长度必须与帧头后定义的数据区长度严格一致,否则芯片会报接收失败。

4.2语音合成播放命令举例:

帧头

数据区

数据区

长度

命令字

命令参数

持发送文本

异或校螫

数据

OiFD

0x00OxOB

0x01

0x00

字音天下

0xD3OxEEOjd)2OxF-1OxOCOxECfeCF0xC2

OxCl

数据帧OxFD0x00OxOB0x010x000xD3OxEE0xD20xF4OxCCOxECOzCF0xC2OxCl

说明播放文本編码格式为“GP231挈的文本"宇音天下“,不带背荒音乐

上位机发送给SYN6288芯片的所有命令和数据都需要用“帧”的方式进行封装后传输。

其它命令请自行参考SYN628芯片手册:

4.3文本程序发送:

中文系统电脑的文本编码格式一般为:

ANSI即GB2312编码体系,这个可以

用二进制文本编辑器(如BinaryEditor)打开并对照GB231编码表察看。

参考程序:

//speaker.c

#include

#include

#include

#include"typedef.h"

#include"SPEAKER.h"

voiddelayMs(uint16xms){uint16i,j;

for(i=0;i

for(j=0;j<123;j++);

//语音模块初始化

voidSpeakerlnit(){

/**************口的初始^^化*****************/

TL1=0XFA;

〃在11.0592MHZ下,设置波特率

TH1=0XFA;

TM0D=0X20;

SCON=0X50;

〃串口工作方式1,允许接收

PCON=0X80;

EA=0;

REN=1;

TI=0;

//发生中断标志位置零

RI=0;

//接收中断标志位置零

TR1=1;

//定时器1用做波特率发生

9600bps,工作方式2

//语音播报程序

//定义字符串长度

//定义校验字节

uint8Speaker(char*pString){uint8headOfFrame[5];uint8length;

uint8ecc=0;

uint16i=0;

if(pString==NULL)return-1;

 

/*****************

发送过程

headOfFrame[0]=0XFD;head0fFrame[1]=0X00;

//构造帧头FD

〃构造数据区长度的高字节

length=strlen(pString);//需要发送文本的长度

headOfFrame[2]=length+3;〃构造数据区长度的低字节headOfFrame[3]=0X01;//构造命令字:

合成播放命令headOfFrame[4]=OXOO;//构造命令参数:

编码格式为GB2312

for(i=0;i<5;i++)〃依次发送构造好的5个帧头字节

{

ecc=eccA(headOfFrame[i]);//对发送的字节进行异或校验

SBUF=headOfFrame[i];while(TI==O){;}TI=O;

}

for(i=0;i

{

ecc=eccA(*pString);SBUF=(*pString);pString++;

while(TI==0){;}

TI=0;

}

SBUF=ecc;while(TI==0){;}

TI=0;

//等待发送中断标志置位

//发送中断标志位清零

//依次发送待合成的文本数据

 

return0;〃成功返回0

}

//语音读整数

uint8SpeakerInt(intida){

uint8i;

uint8negative=0;〃负数标志位

uint8intLen=5;

charcdat[5]={0};

if(ida<0){〃若为负数取绝对值

ida=abs(ida);

negative=1;

}

cdat[0]=(char)(ida/10000);

cdat[1]=(char)((ida-(cdat[0]*10000))/1000);

cdat[2]=(char)((ida-(cdat[0]*10000)-(cdat[1]*1000))/100);cdat[3]=(char)((ida-(cdat[O]*10000)-(cdat[1]*1000)-(cdat[2]*100))/10);

cdat[4]=(char)((ida-(cdat[0]*10000)-(cdat[1]*1000)-(cdat[2]*100)-(cdat[3]*10))/1);

for(i=0;i<5;i++){

cdat[i]=(char)(cdat[i]+48);

}

if(cdat[0]=='0'){

intLen=4;

if(cdat[1]=='0'){

intLen=3;

if(cdat[2]=='0'){

intLen=2;

if(cdat[3]=='0')

intLen=1;

}

}

}

if(negative==1){

Speaker(”零下");delayMs(1000);

}

Speaker(&cdat[5-intLen]);

return0;

}

voidmain(){

SpeakerInit();

while

(1){

Speaker("现在的室外温度是”);

delayMs(3000);

SpeakerInt(-37);

delayMs(1500);

Speaker("度");

delayMs(1000);

//Speaker.h

#ifndef_SPEAKER_H_

#define_SPEAKER_H_

//语音初始化程序

//语音播放程序

//语音读整数

externvoidSpeakerlnit();

externuint8Speaker(char*pString);

externuint8Speakerlnt(intida);

#endif

//typedef.h

#ifndefTYPEDEF_H_

#defineTYPEDEF_H_

typedefunsignedcharuint8;

typedefunsignedintuint16;

typedefunsignedlonguint32;

#endif

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2