ys-syn6288的一个简单应用
- 格式:docx
- 大小:15.76 KB
- 文档页数:3
ecc=ecc^(text[i]);//对发送的字节进行异或校验
SBUF = text[i];
while (TI== 0) {;}
TI = 0;
}
SBUF=ecc;//最后发送校验字节
while (TI== 0) {;}
TI=0;
Delay();
}//语音合成函数
void main(void)
{ int k=1;
headOfFrame[2] = length + 3;//构造数据区长度的低字节
headOfFrame[3] = 0x01 ;//构造命令字:合成播放命令
/*****************带背景音乐**************************************/
for(i = 0; i<5; i++)//依次发送构造好的5个帧头字节
length =sizeof(text);//需要发送文本的长度
/*****************发送过程**************************************/
headOfFrame[0] = 0xFD ;//构造帧头FD
headOfFrame[1] = 0x00 ;//构造数据区长度的高字节
PCON=0x80;
EA=0;
REN=1;
TI=0;
RI=0;
TR1=1;
}//串口初始化函数晶振11.059MHZ波特率9600
/*char background()
{
char j=1;
if(key2==0)
{
return j++;
if(j==17)
j=1;
}
}//背景音乐选择函数(递增型)*/
void sendvoice()
{
ecc=ecc^(headOfFrame[i]);//对发送的字节进行异或校验
SBUF = headOfFrame[i];
while (TI== 0) {;}//等待发送中断标志位置位
TI = 0;//发送中断标志位清零
}
for(i = 0; i<length; i++)//依次发送待合成的文本数据
unsigned char headOfFrame[5];
void Delay()
{
int i,j;
for(i=0;i<100;i++)
{
for(j=0;j<100;j++)
{;;}
}
}//延时函数
void uartin()
{
TL1=0xfa;
TH1=0xfa;
TMOD=0x20;
SCON=0x50;
{
/****************需要发送的文本**********************************/
char text[]={"[v13]此处禁止停车请离开谢谢合作"};
unsigned char length;
unsigned char ecc 0;//定义校验字节
unsigned int i=0;
#include <reg51.h>
#include <string.h>
sbit key1 = P2^7;
sbit key2 = P2^6;
int a[] ={0x01,0x09,0x11,0x19,0x21,0x29,0x31,0x39,0x41,0x49,0x51,0x59,0x61,0x69,0x71,0x79};//背景英语数组;
uartin();
if(key2==0)
{
headOfFrame[4] =a[k];//构造命令参数:编码格式为GBK
k++;
}
if(key1==0)
{
sendvoice();
}
}//主函数