找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11569|回復: 3
收起左側

51單片機控制syn6288播放漢語音程序

[復制鏈接]
ID:3721 發(fā)表于 2015-1-5 22:09 | 顯示全部樓層 |閱讀模式
  1. //注意:51單片機使用12M晶振串口發(fā)送數(shù)據(jù)會有誤差而不能工作
  2. //                所以只能使用11.0592M的晶振

  3. #include <reg51.h>            
  4. #include <string.h>
  5. #include "uart.h"

  6. void syn6288(char*  tex,unsigned  char changdu);
  7. /****************************************************************************
  8. * 函  數(shù):void  main(void)
  9. * 功  能:主函數(shù)
  10. * 參  數(shù):無
  11. * 返回值:無
  12. * 更  新:無
  13. * 備  注:無
  14. ****************************************************************************/
  15. void  main(void)
  16. {        
  17. /****************需要發(fā)送的文本**********************************/
  18.         char code text[] =  {"[v10][m10]湖北"};
  19.         char code hubei[] =  {"[v9][m9]ok"};
  20. /****************串口的初始化************************************/
  21.         
  22.         uartinit();
  23.         syn6288(text,sizeof(text));
  24.         uart_delay(2000);                  //延時很重要

  25.         syn6288(hubei,sizeof(hubei));
  26.         uart_delay(1000);                  //延時很重要
  27.        

  28.         while(1)
  29.         ;
  30. }
  31. /****************************************************************************
  32. * 函  數(shù):void syn6288(char*  tex,unsigned  char changdu)
  33. * 功  能:語音讀取字符串
  34. * 參  數(shù):tex--------字符串的地址
  35. *         changdu----字符串tex的長讀
  36. * 返回值:無
  37. * 更  新:無
  38. * 備  注:無
  39. ****************************************************************************/
  40. void syn6288(char*  tex,unsigned  char changdu)
  41. {       
  42.         unsigned  char  headOfFrame[5];
  43.     unsigned  char  length;  
  44.         unsigned  char  ecc  = 0;                          //定義校驗字節(jié)
  45.         unsigned  int i=0;
  46.         length =changdu;                         //需要發(fā)送文本的長度

  47.         /*****************發(fā)送過程**************************************/           
  48.         headOfFrame[0] = 0xFD ;                         //構造幀頭FD
  49.         headOfFrame[1] = 0x00 ;                         //構造數(shù)據(jù)區(qū)長度的高字節(jié)
  50.         headOfFrame[2] = length + 3;                 //構造數(shù)據(jù)區(qū)長度的低字節(jié)
  51.         headOfFrame[3] = 0x01 ;                         //構造命令字:合成播放命令
  52. /*****************帶背景音樂**************************************/                   
  53.         headOfFrame[4] = 0x21 ;                         //構造命令參數(shù):編碼格式為GBK

  54. /*****************不帶背景音樂**************************************/                   
  55.         //headOfFrame[4] = 0x01 ;                         //構造命令參數(shù):編碼格式為GBK

  56.         for(i = 0; i<5; i++)                                   //依次發(fā)送構造好的5個幀頭字節(jié)
  57.         {  
  58.             ecc=ecc^(headOfFrame[i]);                 //對發(fā)送的字節(jié)進行異或校驗       
  59.             SBUF = headOfFrame[i];
  60.             while (TI== 0) {;}                           //等待發(fā)送中斷標志位置位
  61.             TI = 0;                                                 //發(fā)送中斷標志位清零
  62.         }

  63.         for(i = 0; i<length; i++)                   //依次發(fā)送待合成的文本數(shù)據(jù)
  64.         {  
  65.             ecc=ecc^(tex[i]);                                 //對發(fā)送的字節(jié)進行異或校驗       
  66.             SBUF = tex[i];
  67.             while (TI== 0) {;}
  68.             TI = 0;
  69.                 //uart_delay(10);                               
  70.         }
  71.         //uart_delay(1000);
  72.         SBUF=ecc;                                                        //最后發(fā)送校驗字節(jié)
  73.         while(TI== 0)
  74.                 ;
  75.         TI=0;        


  76. }
復制代碼
完整代碼下載: syn6288_2_ok.rar (50.03 KB, 下載次數(shù): 290)

回復

使用道具 舉報

ID:86401 發(fā)表于 2015-7-27 10:01 | 顯示全部樓層
這個的原理能不能講講
回復

使用道具 舉報

ID:97870 發(fā)表于 2015-12-1 17:54 | 顯示全部樓層
為啥我把你的程序復制粘貼了下編譯有錯。磕軒臀铱纯磫
回復

使用道具 舉報

ID:85865 發(fā)表于 2016-4-28 19:52 | 顯示全部樓層
下來學習一下
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表