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

標(biāo)題: SYN6288語(yǔ)音播報(bào)模塊 求分享代碼 [打印本頁(yè)]

作者: 安仔.1999    時(shí)間: 2020-12-6 21:39
標(biāo)題: SYN6288語(yǔ)音播報(bào)模塊 求分享代碼
有沒(méi)有完整的代碼啊,跪求

作者: angmall    時(shí)間: 2022-5-19 19:31
我給你來(lái)個(gè)程序試試

  1. //main.c
  2. #include <reg52.h>
  3. #include "speaker.h"

  4. void main()
  5. {
  6.         SpeakerInit();
  7.         while(1)
  8.         {
  9.                 Speaker("哈哈");
  10.                 delayMs(2000);
  11.                 Speaker("歡迎使用 TTS 模塊");
  12.                 delayMs(2000);
  13.         }
  14. }

  15. //speaker.h

  16. #ifndef _SPEAKER_H_
  17. #define _SPEAKER_H_

  18. #ifndef uchar
  19. #define uchar unsigned char
  20. #endif

  21. #ifndef uint
  22. #define uint unsigned int
  23. #endif

  24. void SpeakerInit();                                  //語(yǔ)音初始化程序
  25. char Speaker(char * pString);                        //語(yǔ)音播放程序               
  26. void delayMs(uint xms);

  27. #endif

  28. //speaker.c

  29. #include <reg52.h>
  30. #include <string.h>
  31. #include <math.h>
  32. #include "speaker.h"

  33. void delayMs(uint xms)
  34. {
  35.         uint i,j;
  36.         for(i=0;i<xms;i++)
  37.         for (j=0;j<123;j++);
  38. }

  39. //語(yǔ)音模塊初始化
  40. void SpeakerInit()
  41. {
  42.         /**************串口的初始化*****************/
  43.         TL1=0XFA;        //在11.0592MHZ下,設(shè)置波特率9600bps,工作方式2
  44.         TH1=0XFA;
  45.         TMOD|=0X20;
  46.         SCON=0X50;  //串口工作方式1,允許接收
  47.         PCON=0X80;
  48.         EA=0;
  49.         REN=1;
  50.         TI=0;                  //發(fā)生中斷標(biāo)志位置零
  51.         RI=0;                //接收中斷標(biāo)志位置零
  52.         TR1=1;                //定時(shí)器1用做波特率發(fā)生
  53. }

  54. //語(yǔ)音播報(bào)程序
  55. char Speaker(char * pString)
  56. {
  57.         uchar headOfFrame[5];
  58.         uchar length;                        //定義字符串長(zhǎng)度
  59.         uchar ecc = 0;                   //定義校驗(yàn)字節(jié)
  60.         uint i=0;

  61.         if (pString == NULL)        //空字符串
  62.         return -1;        

  63.         /*****************發(fā)送過(guò)程**********************/
  64.         headOfFrame[0]=0XFD;   //構(gòu)造幀頭FD
  65.         headOfFrame[1]=0X00;   //構(gòu)造數(shù)據(jù)區(qū)長(zhǎng)度的高字節(jié)
  66.         length = strlen(pString);                //需要發(fā)送文本的長(zhǎng)度
  67.         headOfFrame[2]=length+3;//構(gòu)造數(shù)據(jù)區(qū)長(zhǎng)度的低字節(jié)
  68.         headOfFrame[3]=0X01;        //構(gòu)造命令字:合成播放命令
  69.         headOfFrame[4]=0X00;        //構(gòu)造命令參數(shù):編碼格式為GB2312

  70.         for(i=0;i<5;i++)        //依次發(fā)送構(gòu)造好的5個(gè)幀頭字節(jié)
  71.         {
  72.                 ecc=ecc^(headOfFrame[ i]); //對(duì)發(fā)送的字節(jié)進(jìn)行異或校驗(yàn)
  73.                 SBUF=headOfFrame[ i];
  74.                 while (TI==0){;}                 //等待發(fā)送中斷標(biāo)志置位
  75.                 TI=0;                                         //發(fā)送中斷標(biāo)志位清零
  76.         }

  77.         for(i=0;i<length;i++)       //依次發(fā)送待合成的文本數(shù)據(jù)
  78.         {
  79.                 ecc=ecc^(*pString);
  80.                 SBUF = (*pString);
  81.                 pString ++;
  82.                 while(TI==0){;}
  83.                 TI=0;
  84.         }
  85.        
  86.         SBUF=ecc;
  87.         while(TI==0){;}
  88.         TI=0;
  89.        
  90.         return 0;        //成功返回0
  91. }


復(fù)制代碼





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