欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
51單片機控制syn6288播放漢語音程序
[打印本頁]
作者:
heicc
時間:
2015-1-5 22:09
標(biāo)題:
51單片機控制syn6288播放漢語音程序
//注意:51單片機使用12M晶振串口發(fā)送數(shù)據(jù)會有誤差而不能工作
// 所以只能使用11.0592M的晶振
#include <reg51.h>
#include <string.h>
#include "uart.h"
void syn6288(char* tex,unsigned char changdu);
/****************************************************************************
* 函 數(shù):void main(void)
* 功 能:主函數(shù)
* 參 數(shù):無
* 返回值:無
* 更 新:無
* 備 注:無
****************************************************************************/
void main(void)
{
/****************需要發(fā)送的文本**********************************/
char code text[] = {"[v10][m10]湖北"};
char code hubei[] = {"[v9][m9]ok"};
/****************串口的初始化************************************/
uartinit();
syn6288(text,sizeof(text));
uart_delay(2000); //延時很重要
syn6288(hubei,sizeof(hubei));
uart_delay(1000); //延時很重要
while(1)
;
}
/****************************************************************************
* 函 數(shù):void syn6288(char* tex,unsigned char changdu)
* 功 能:語音讀取字符串
* 參 數(shù):tex--------字符串的地址
* changdu----字符串tex的長讀
* 返回值:無
* 更 新:無
* 備 注:無
****************************************************************************/
void syn6288(char* tex,unsigned char changdu)
{
unsigned char headOfFrame[5];
unsigned char length;
unsigned char ecc = 0; //定義校驗字節(jié)
unsigned int i=0;
length =changdu; //需要發(fā)送文本的長度
/*****************發(fā)送過程**************************************/
headOfFrame[0] = 0xFD ; //構(gòu)造幀頭FD
headOfFrame[1] = 0x00 ; //構(gòu)造數(shù)據(jù)區(qū)長度的高字節(jié)
headOfFrame[2] = length + 3; //構(gòu)造數(shù)據(jù)區(qū)長度的低字節(jié)
headOfFrame[3] = 0x01 ; //構(gòu)造命令字:合成播放命令
/*****************帶背景音樂**************************************/
headOfFrame[4] = 0x21 ; //構(gòu)造命令參數(shù):編碼格式為GBK
/*****************不帶背景音樂**************************************/
//headOfFrame[4] = 0x01 ; //構(gòu)造命令參數(shù):編碼格式為GBK
for(i = 0; i<5; i++) //依次發(fā)送構(gòu)造好的5個幀頭字節(jié)
{
ecc=ecc^(headOfFrame[i]); //對發(fā)送的字節(jié)進行異或校驗
SBUF = headOfFrame[i];
while (TI== 0) {;} //等待發(fā)送中斷標(biāo)志位置位
TI = 0; //發(fā)送中斷標(biāo)志位清零
}
for(i = 0; i<length; i++) //依次發(fā)送待合成的文本數(shù)據(jù)
{
ecc=ecc^(tex[i]); //對發(fā)送的字節(jié)進行異或校驗
SBUF = tex[i];
while (TI== 0) {;}
TI = 0;
//uart_delay(10);
}
//uart_delay(1000);
SBUF=ecc; //最后發(fā)送校驗字節(jié)
while(TI== 0)
;
TI=0;
}
復(fù)制代碼
完整代碼下載:
syn6288_2_ok.rar
(50.03 KB, 下載次數(shù): 290)
2015-1-5 22:09 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
l137892652
時間:
2015-7-27 10:01
這個的原理能不能講講
作者:
chanyeol
時間:
2015-12-1 17:54
為啥我把你的程序復(fù)制粘貼了下編譯有錯啊?能幫我看看嗎
作者:
252622979
時間:
2016-4-28 19:52
下來學(xué)習(xí)一下
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1