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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2292|回復: 0
收起左側

基于51單片機的語音合成模塊 源程序資料

[復制鏈接]
ID:452570 發表于 2020-8-15 09:37 | 顯示全部樓層 |閱讀模式
  1. #include "main.h"

  2. bit bSysHalfSec;
  3. u8 TimeWaitCnt = 0;

  4. u8 code PrevFile[] = {0xAA, 0x05,0x00, 0xAF};/*此數組指令可以直接由上位機生成,復制過來即可  */
  5. u8 code NextFile[] = {0xAA, 0x06, 0x00, 0xB0};
  6. u8 code Path[] = {0xAA, 0x08, 0x10, 0x02, 0x2F, 0xB9, 0xE3, 0xB8, 0xE6, 0x2A, 0x2F, 0xD0, 0xA1, 0xC3, 0xD7, 0x2A, 0x4D, 0x50, 0x33, 0x8B, }; // flash   /廣告*/小米*MP3



  7. /***************************************************************************************

  8. 本程序為MP3串口模塊測試程序C51版本,測試芯片采用 STC12C5A32S2,外部晶振,11.0592MHZ
  9. 串口設置:9600



  10. **************************************************************************************/

  11. u8 UartData = 0xff;
  12. /*****************************************************************************
  13. 函 數 名  : Timer0Init
  14. 功能描述  : 定時器初使化 定時2毫秒@11.0592MHz
  15. 輸入參數  : void
  16. 輸出參數  : 無
  17. 返 回 值  :
  18. 調用函數  :
  19. 被調函數  :

  20. 修改歷史      :
  21.   1.日    期   : 2013年3月26日
  22.     作    者   : Blueice
  23.     修改內容   : 新生成函數

  24. *****************************************************************************/
  25. void Timer0Init ( void )
  26. {
  27.     AUXR |= 0x80;        /*定時器時鐘1T模式  */
  28.     TMOD &= 0xF0;        /*設置定時器模式  */
  29.     TMOD |= 0x01;        /*設置定時器模式  */
  30.     TL0 = 0x9A;            /*設置定時初值  */
  31.     TH0 = 0xA9;            /*設置定時初值  */
  32.     TF0 = 0;            /*清除TF0標志  */
  33.     TR0 = 1;            /*定時器0開始計時  */
  34.     ET0 = 1;
  35. }
  36. /*****************************************************************************
  37. 函 數 名  : SysInit
  38. 功能描述  : 系統初使化
  39. 輸入參數  : void
  40. 輸出參數  : 無
  41. 返 回 值  :
  42. 調用函數  :
  43. 被調函數  :

  44. 修改歷史      :
  45.   1.日    期   : 2013年3月24日
  46.     作    者   : Blueice
  47.     修改內容   : 新生成函數

  48. *****************************************************************************/
  49. void SysInit ( void )
  50. {
  51.     Timer0Init();
  52.     UartInit();
  53.     EA = 1;/*開總中斷  */
  54. }
  55. /*****************************************************************************
  56. 函 數 名  : Delay1us
  57. 功能描述  : 1微秒延時函數
  58. 輸入參數  : int T
  59. 輸出參數  : 無
  60. 返 回 值  :
  61. 調用函數  :
  62. 被調函數  :

  63. 修改歷史      :
  64.   1.日    期   : 2016年2月19日
  65.     作    者   : wskblueice
  66.     修改內容   : 新生成函數

  67. *****************************************************************************/
  68. void Delay1us ( int T )
  69. {
  70.     T = T - 70;
  71.     do
  72.     {
  73.         ;
  74.     }
  75.     while ( T-- );
  76. }
  77. #define  sda   P01 /*一線串口發送引腳  */
  78. /*****************************************************************************
  79. 函 數 名  : SendData
  80. 功能描述  : 一線串口發送函數
  81. 輸入參數  : u16 N
  82. 輸出參數  : 無
  83. 返 回 值  :
  84. 調用函數  :
  85. 被調函數  :

  86. 修改歷史      :
  87.   1.日    期   : 2014年8月17日
  88.     作    者   : wskblueice
  89.     修改內容   : 新生成函數

  90. *****************************************************************************/
  91. void SendData ( u8 addr )
  92. {
  93.     u8 i;

  94.     EA = 0;/*發送時關掉中斷,防止中斷影響時序  */

  95.     sda = 1;/*開始拉搞  */
  96.     Delay1us ( 1000 );
  97.     sda = 0;/*開始引導碼*/
  98.     Delay1us ( 2200 );/*此處延時最少要大于2ms,此參數延時為310ms  */

  99.     for ( i = 0; i < 8; i++ ) /*總共8位數據  */
  100.     {
  101.         sda = 1;
  102.         if ( addr & 0x01 ) /*3:1表示數據位1,每個位用兩個脈沖表示  */
  103.         {
  104.             Delay1us ( 500 );
  105.             sda = 0;
  106.             Delay1us ( 210 );
  107.         }
  108.         else              /*1:3表示數據位0 ,每個位用兩個脈沖表示  */
  109.         {
  110.             Delay1us ( 210 );
  111.             sda = 0;
  112.             Delay1us ( 500 );
  113.         }
  114.         addr >>= 1;
  115.     }
  116.     sda = 1;
  117.     EA = 1;
  118. }
  119. /*****************************************************************************
  120. 函 數 名  : UartSendData
  121. 功能描述  : 兩線串口發送指令
  122. 輸入參數  : u8 *Buff
  123. 輸出參數  : 無
  124. 返 回 值  :
  125. 調用函數  :
  126. 被調函數  :

  127. 修改歷史      :
  128.   1.日    期   : 2016年5月1日
  129.     作    者   : wskblueice
  130.     修改內容   : 新生成函數

  131. *****************************************************************************/
  132. void UartSendData ( u8 *Buff, u8 Len )
  133. {
  134.     u8 i;
  135.     for ( i = 0 ; i < Len ; i++ )
  136.     {
  137.         UartPutByte ( Buff[i] );
  138.     }
  139. }
  140. /*****************************************************************************
  141. 函 數 名  : main
  142. 功能描述  : 系統主循環
  143. 輸入參數  : void
  144. 輸出參數  : 無
  145. 返 回 值  :
  146. 調用函數  :
  147. 被調函數  :

  148. 修改歷史      :
  149.   1.日    期   : 2013年2月21日
  150.     作    者   : Blueice
  151.     修改內容   : 新生成函數

  152. *****************************************************************************/
  153. void main ( void )
  154. {

  155.     SysInit();
  156.     P0M0 |= BIT ( 0 ) | BIT ( 1 );
  157.     UartSendData ( Path, 20 );
  158.     while ( 1 )
  159.     {
  160.         if ( TimeWaitCnt == 4 ) /*每隔兩秒會自動發下一曲指令  */
  161.         {
  162.             TimeWaitCnt = 0;
  163.             SendData ( 0x15 );//next file
  164.             //UartSendData ( NextFile,4 );
  165.         }
  166.     }
  167. }
  168. /*****************************************************************************
  169. 函 數 名  : tm0_isr
  170. 功能描述  : 定時中斷
  171. 輸入參數  : 無
  172. 輸出參數  : 無
  173. 返 回 值  :
  174. 調用函數  :
  175. 被調函數  :

  176. 修改歷史      :
  177.   1.日    期   : 2013年3月26日
  178.     作    者   : Blueice
  179.     修改內容   : 新生成函數

  180. *****************************************************************************/
  181. void Timer0_isr() interrupt 1
  182. {
  183.     static u8 TimeCnt;

  184.     TL0 = 0x9A;        /*設置定時初值  */
  185.     TH0 = 0xA9;        /*設置定時初值  */

  186.     TimeCnt++;
  187.     if ( ( TimeCnt % 5 ) == 0 )
  188.     {


  189.     }
  190.     if ( ( TimeCnt % 250 ) == 0 )
  191.     {
  192.         TimeCnt = 0;
  193.         bSysHalfSec = !bSysHalfSec;
  194.         P00 = !P00;
  195.         TimeWaitCnt++;
  196.     }

  197. }
復制代碼

程序截圖

程序截圖

電路圖

電路圖

車計費系統-語音.7z

5.64 MB, 下載次數: 14, 下載積分: 黑幣 -5

整體設計資料

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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