欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 如何將這個程序中的按鍵去掉也能讓語音播報 [打印本頁]

作者: fgwan    時間: 2016-8-14 10:10
標(biāo)題: 如何將這個程序中的按鍵去掉也能讓語音播報
    如題,我寫了個程序,如果把獨立按鍵去掉語音播報就播報不了。求教各位大神如何將語音播報中的獨立按鍵去掉也能讓語音正常播報。
#include <reg51.h>
#include <stdio.h>
#include <string.h>
#define uchar unsigned char
#define uint unsigned int
#define KEY          P0  //P1用于鍵掃描
#define BUFLEN      32  //文字緩沖區(qū)的長度
#define HEADLEN       5  //數(shù)據(jù)包頭的長度
#define LEN_OFFSET    2  //長度字節(jié)的偏移量(本例中長度不超過255字節(jié),因此只使用1字節(jié)長度)
//數(shù)據(jù)包頭(0xFD + 2字節(jié)長度 + 1字節(jié)命令字 + 1字節(jié)命令參數(shù))
uchar head[HEADLEN] = {0xfd,0x00,0x00,0x01,0x00};
//文字(中間有需要變化的內(nèi)容可在發(fā)送前修改)
uchar text[BUFLEN] = {"機油溫度         度"};
//延時1ms
void Delay1ms(uchar n)
{
    uchar i=112;
while(n--)
{
  while(i--);
}
}
//串口初始化
void UART_InitBaud(void)
{
SCON=0xD8 ;  //晶振為11.059MHZ時,設(shè)定串口波特率為9600bit/s,方式3  
TMOD=0x20 ;
PCON=0x00 ;
TH1=0xFD ;
TR1=1;
}
//串口發(fā)送數(shù)據(jù)
void UART_Trans(uchar n)
{
SBUF = n;   
while(TI==0);  //發(fā)送數(shù)據(jù)   
TI=0;
}   
//發(fā)聲程序
void Speech(uchar *buf, uchar len)
{
uchar i = 0;          //循環(huán)計數(shù)變量
uchar xor = 0x00;     //校驗碼初始化
   
head[LEN_OFFSET] = len + 3;  //計算正文長度(1命令字 + 1命令參數(shù) + 文字長度 + 1校驗位)
//發(fā)送數(shù)據(jù)包頭(0xFD + 2字節(jié)長度 + 1字節(jié)命令字 + 1字節(jié)命令參數(shù))
for(i = 0; i < HEADLEN; i++)
{
  xor ^= head[i];
  UART_Trans(head[i]);
  Delay1ms(2);
    }
//發(fā)送文字內(nèi)容
for(i = 0; i < len; i++)
{
  xor ^= buf[i];
  UART_Trans(buf[i]);
  Delay1ms(2);
}
UART_Trans(xor);        //發(fā)送校驗位
}

//主函數(shù)
void main()
{
uchar xor = 0;    //校驗碼(正文內(nèi)容的異或)
uchar i = 0;      //循環(huán)計數(shù)變量
float num = 123.45;  //測試值,可以由用戶程序自動生成
uchar numbuf[10];
memset(numbuf,0,sizeof numbuf);


UART_InitBaud();  //初始化串口為 9600bps
while(1)
{
  if(KEY != 0xff)
  {
   Delay1ms(10);
   if(KEY != 0xff)
   {
       sprintf(text + 10,"%6.2f",num);  //將浮點數(shù) num 轉(zhuǎn)為字符串,
                                    //并追加到數(shù)組text[]的第6字節(jié)后
            //(前6字節(jié)為字符串“當(dāng)前值”)
            //參見庫函數(shù)sprintf()的用法
    num -= 0.43;
    Speech(text,20);   //調(diào)用發(fā)聲函數(shù),讀出指定長度數(shù)據(jù)
   }
  }
  Delay1ms(100); //延時
}
}

作者: fgwan    時間: 2016-8-14 10:11
我的語音模塊用的是SYN6288
作者: 389056325    時間: 2018-5-7 19:09
播報軟件是什么





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1