久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 33106|回復: 64
收起左側

一個單片機做的簡易音樂播放器程序(帶仿真文件)

  [復制鏈接]
ID:51275 發表于 2013-6-26 16:16 | 顯示全部樓層 |閱讀模式
簡易播放器項目需求

基本需求:
1.        使用Buzz播放音樂,音樂數據存在Code Flash空間
2.        開機后在LCD顯示所有音樂,可以通過上、下鍵翻頁。當前音樂有指示。按確定鍵播放音樂。
3.        播放音樂的同時在LCD1602屏上顯示音樂的信息:演唱者,時間等。按左、右鍵分別播放上一首,下一首,按Enter鍵暫停/繼續。

進一步需求:
1.        使用單片機內部的數據空間存放音樂數據
2.        瀏覽時按下ESC鍵,提示是否刪除音樂,可取消,可確認?梢允褂脭祿I快速的定位音樂
3.        有上位機可以更新音樂數據。

延伸內容:
文件系統的學習和使用(FatFS)



izkLgUWMbS2eU.png

ibulT6cgPtllgy.png

源代碼及Proteus7.5仿真文件下載(不能用其他版本): spark_music.7z (122.21 KB, 下載次數: 738)

評分

參與人數 3黑幣 +15 收起 理由
348652560 + 5 很給力!
key可 + 5 正在學習的路途中,雖然還不太懂
巍隨風 + 5 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:51275 發表于 2013-6-26 16:16 | 顯示全部樓層
  1. //51單片機播放音樂庫文件   
  2. /**************************************************************************  
  3.      
  4.                         SOUND PLAY FOR 51MCU  
  5.    
  6.                     COPYRIGHT (c)   2005 BY JJJ.  
  7.                             --  ALL RIGHTS RESERVED  --  
  8.    
  9.    File Name:       SoundPlay.h  
  10.    Author:          Jiang Jian Jun  
  11.    Created:         2005/5/16  
  12.    Modified:        YES 2012.1.6 改成狀態機方式,少用一個定時器
  13.    Revision:        1.0  

  14.    
  15. *******************************************************************************/  
  16.   
  17. /*說明**************************************************************************  
  18. 曲譜存貯格式 unsigned char code MusicName{音高,音長,音高,音長...., 0,0}; 末尾:0,0 表示結束(Important)  

  19. 音高由三位數字組成:  
  20.         個位是表示 1~7 這七個音符   
  21.         十位是表示音符所在的音區:1-低音,2-中音,3-高音;  
  22.         百位表示這個音符是否要升半音: 0-不升,1-升半音。  
  23.    
  24. 音長最多由三位數字組成:   
  25.         個位表示音符的時值,其對應關系是:   
  26.             |數值(n):  |0 |1 |2 |3 | 4 | 5 | 6   
  27.             |幾分音符: |1 |2 |4 |8 |16 |32 |64      音符=2^n  
  28.         十位表示音符的演奏效果(0-2):  0-普通,1-連音,2-頓音  
  29.         百位是符點位: 0-無符點,1-有符點  

  30. 調用演奏子程序的格式  
  31.         Play(樂曲名,調號,升降八度,演奏速度);  
  32.     |樂曲名           : 要播放的樂曲指針,結尾以(0,0)結束;  
  33.     |調號(0-11)       :   是指樂曲升多少個半音演奏;  
  34.     |升降八度(1-3)    : 1:降八度, 2:不升不降, 3:升八度;  
  35.     |演奏速度(1-12000): 值越大速度越快;  

  36. ***************************************************************************/  

  37. #include "hw_config.h"  
  38. #include "music.h"
  39. #include "hw_driver.h"
  40. #include <stdio.h>

  41. //**************************************************************************   
  42. #define SYSTEM_OSC      11059200//12000000  //定義晶振頻率12000000HZ   
  43. #define SOUND_SPACE     4/5         //定義普通音符演奏的長度分率,//每4分音符間隔   
  44. #define    BeepIO    BUZZ       //定義輸出管腳   
  45.   
  46. unsigned int  code FreTab[12]  = { 262,277,294,311,330,349,369,392,415,440,466,494 }; //原始頻率表   
  47. unsigned char code SignTab[7]  = { 0,2,4,5,7,9,11 };                                  //1~7在頻率表中的位置   
  48. unsigned char code LengthTab[7]= { 1,2,4,8,16,32,64 };                        
  49. unsigned char Sound_Temp_TH0,Sound_Temp_TL0;    //音符定時器初值暫存   
  50. unsigned char Sound_Temp_TH1,Sound_Temp_TL1;    //音長定時器初值暫存   

  51. #define PLAY_STOP_STATE 0
  52. /* 正在播放 */
  53. #define PLAY_ING_STATE  1
  54. /* 暫停狀態 */
  55. #define PLAY_SUSPEND_STATE 2
  56. u8 MusicPlayState = PLAY_STOP_STATE;


  57. extern bit StartPlayFlag;
  58. extern bit PlaySuspendFlag;
  59. bit CalOverFlag = 0;

  60. static u8 *Sound;
  61. static u8 Signature;
  62. static u8 Octachord;
  63. //**************************************************************************   
  64. void InitialSound(void)   
  65. {   
  66.     BeepIO = 1;   
  67.     TMOD  |= 0x10;   
  68.     ET1    = 1;   
  69.     TR1    = 0;  
  70.         MusicPlayState = PLAY_STOP_STATE;
  71. }   
  72.   
  73. void BeepTimer0(void)   interrupt TIMER1_OVERFLOW//音符發生中斷   
  74. {   
  75.         
  76.     BeepIO = !BeepIO;   
  77.     TH1    = Sound_Temp_TH0;   
  78.     TL1    = Sound_Temp_TL0;   
  79.         
  80. }   
  81. //**************************************************************************   


  82. void play_sound(unsigned char *sound,unsigned char signature,unsigned octachord)
  83. {
  84.     Sound = sound;
  85.     Signature = signature;
  86.     Octachord = octachord;
  87.         StartPlayFlag = 1;
  88. }

  89. unsigned char idata Tone,Length,SH,SM,SLen,XG,FD;  
  90. u8 SL = 0;
  91. void Play()   
  92. {   
  93.     static unsigned int  idata NewFreTab[12];     //新的頻率表   
  94.     static unsigned char  idata i;
  95.         static unsigned char  idata        j;   
  96.     static unsigned int idata  Point;
  97.     static unsigned int idata LDiv;
  98.         static unsigned int idata LDiv0;
  99.         static unsigned int idata LDiv1;
  100.         static unsigned int idata LDiv2;
  101.         static unsigned int idata LDiv4;
  102.         static unsigned int idata CurrentFre;
  103.         static unsigned int idata Temp_T;
  104.         static unsigned int idata SoundLength;   

  105.         
  106.     switch (MusicPlayState)
  107.     {
  108.         case PLAY_STOP_STATE:
  109.             if (1 == StartPlayFlag)
  110.             {
  111.                 /* 準備開始了 */
  112.                 for(i=0;i<12;i++)               // 根據調號及升降八度來生成新的頻率表   
  113.                 {   
  114.                     j = i + Signature;   
  115.                     if(j > 11)   
  116.                     {   
  117.                         j = j-12;   
  118.                         NewFreTab[i] = FreTab[j]*2;   
  119.                     }   
  120.                     else  
  121.                     {
  122.                         NewFreTab[i] = FreTab[j];   
  123.                     }

  124.                     if(Octachord == 1)   
  125.                     {
  126.                         NewFreTab[i]>>=2;   
  127.                     }
  128.                     else if(Octachord == 3)   
  129.                     {
  130.                         NewFreTab[i]<<=2;   
  131.                     }
  132.                 }                                      
  133.                 SoundLength = 0;   
  134.                 while(Sound[SoundLength] != 0x00)   //計算歌曲長度   
  135.                 {   
  136.                     SoundLength+=2;   
  137.                 }   
  138.                                 
  139.                 Point = 0;   
  140.                 Tone   = Sound[Point];   
  141.                                 
  142.                 Length = Sound[Point+1];     
  143.                                              // 讀出第一個音符和它時時值   

  144.                 //LDiv0 = 12000/Speed;                // 算出1分音符的長度(幾個10ms)      
  145.                 LDiv0 = 12000 / 100;                // 算出1分音符的長度(幾個10ms)      
  146.                 LDiv4 = LDiv0/4;                    // 算出4分音符的長度   
  147.                 LDiv4 = LDiv4-LDiv4*SOUND_SPACE;    // 普通音最長間隔標準   
  148.                 /* 進入下一狀態 */
  149.                 MusicPlayState = PLAY_ING_STATE;
  150.                                 
  151.             }
  152.                         
  153.             break;
  154.         case PLAY_ING_STATE:
  155.                         if (0 == StartPlayFlag)
  156.                         {
  157.                                 TR1 = 0;
  158.                                 BeepIO = 1;
  159.                                 MusicPlayState = PLAY_STOP_STATE;
  160.                         }
  161.             else if (1 == PlaySuspendFlag)
  162.             {
  163.                 /* 進入暫停態 */
  164.                                 TR1 = 0;
  165.                                 BeepIO = 1;
  166.                 MusicPlayState = PLAY_SUSPEND_STATE;
  167.             }
  168.             else if (Point < SoundLength)
  169.             {   
  170.                                 
  171.                            
  172.                 if (0 == CalOverFlag)
  173.                 {
  174.                                        
  175.                                        
  176.                                        
  177.                     SL=Tone%10;                                 //計算出音符   
  178.                     SM=Tone/10%10;                              //計算出高低音   
  179.                     SH=Tone/100;                                //計算出是否升半   
  180.                     CurrentFre = NewFreTab[SignTab[SL-1]+SH];   //查出對應音符的頻率        
  181.                     if(SL!=0)   
  182.                     {   
  183.                                                 
  184.                         if (SM==1) CurrentFre >>= 2;        //低音   
  185.                         if (SM==3) CurrentFre <<= 2;        //高音   
  186.                         Temp_T = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC);//計算計數器初值   

  187.                         Sound_Temp_TH0 = (u8)(Temp_T >> 8);
  188.                         Sound_Temp_TL0 = (u8)Temp_T;

  189.                         TH1 = Sound_Temp_TH0;     
  190.                         TL1 = Sound_Temp_TL0 + 12; //加12是對中斷延時的補償   
  191.                     }   
  192.                     SLen=LengthTab[Length%10];  //算出是幾分音符   
  193.                     XG=Length/10%10;            //算出音符類型(0普通1連音2頓音)   
  194.                     FD=Length/100;   
  195.                     LDiv=LDiv0/SLen;            //算出連音音符演奏的長度(多少個10ms)   
  196.                     if (FD==1)   
  197.                     {
  198.                         LDiv=LDiv+LDiv/2;   
  199.                     }
  200.                     if(XG!=1)      
  201.                     {
  202.                         if(XG==0)               //算出普通音符的演奏長度   
  203.                         {
  204.                             if (SLen<=4)      
  205.                             {
  206.                                 LDiv1=LDiv-LDiv4;   
  207.                             }
  208.                             else  
  209.                             {
  210.                                 LDiv1=LDiv*SOUND_SPACE;   
  211.                             }
  212.                         }
  213.                         else  
  214.                         {
  215.                             LDiv1=LDiv/2;       //算出頓音的演奏長度   
  216.                         }
  217.                     }
  218.                     else  
  219.                     {
  220.                         LDiv1=LDiv;   
  221.                     }
  222.                     if(SL==0)
  223.                     {
  224.                         LDiv1=0;   
  225.                     }
  226.                     LDiv2=LDiv-LDiv1;       //算出不發音的長度   

  227.                     if (0 == PlaySuspendFlag)
  228.                     {
  229.                         /* 進入暫停態 */
  230.                         MusicPlayState = PLAY_SUSPEND_STATE;
  231.                     }
  232.                                         CalOverFlag = 1;
  233.                 }
  234.                                 if (SL != 0)
  235.                                 {
  236.                                        
  237.                                 TR1 = 1;
  238.                 if (LDiv1 != 0)   
  239.                 {   
  240.                                        
  241.                                                 
  242.                                         LDiv1--;
  243.                     return;
  244.                     
  245.                 }  
  246.                                 }
  247.                                 
  248.                                 
  249.                 TR1 = 0;
  250.                 if(LDiv2 != 0)   
  251.                 {   
  252.                     TR1=0;
  253.                     BeepIO=1;   
  254.                     
  255.                     
  256.                         LDiv2--;
  257.                                                 return;
  258.                   
  259.                 }   
  260.                                 
  261.                                 CalOverFlag = 0;
  262.                 Point+=2;   
  263.                 Tone=Sound[Point];   
  264.                 Length=Sound[Point+1];   
  265.             }   
  266.             else
  267.             {
  268.                                 
  269.                 /* 播放結束了 */
  270.                 BeepIO = 1;   
  271.                 /* 執行下一首操作 */
  272.                 /* 現在先返回 */
  273.                 StartPlayFlag = 0;
  274.                 MusicPlayState = PLAY_STOP_STATE;
  275.             }
  276.             break;
  277.         case PLAY_SUSPEND_STATE:
  278.             if (0 == PlaySuspendFlag)
  279.             {
  280.                 MusicPlayState = PLAY_ING_STATE;
  281.             }
  282.             if (0 == StartPlayFlag)
  283.             {
  284.                 /* 在暫停狀態下要求退出播放 */
  285.                                 TR1 = 0;
  286.                                 BeepIO = 1;
  287.                 MusicPlayState = PLAY_STOP_STATE;
  288.                 PlaySuspendFlag = 0;
  289.             }
  290.             break;

  291.     }

  292. }   
  293. //**************************************************************************   
  294.   
  295.   
  296.   
  297.   
  298. //揮著翅膀的女孩   
  299. unsigned char code Music_Girl[]={ 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x03,   
  300.                                   0x16,0x03, 0x17,0x03, 0x17,0x03, 0x17,0x03, 0x18,0x03,   
  301.                                   0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x02, 0x18,0x03,   
  302.                                   0x17,0x03, 0x15,0x02, 0x18,0x03, 0x17,0x03, 0x18,0x02,   
  303.                                   0x10,0x03, 0x15,0x03, 0x16,0x02, 0x15,0x03, 0x16,0x03,   
  304.                                   0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x1A,0x03,   
  305.                                   0x1B,0x03, 0x1F,0x03, 0x1F,0x03, 0x17,0x03, 0x18,0x03,   
  306.                                   0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03,   
  307.                                   0x18,0x03, 0x1F,0x03, 0x1F,0x02, 0x16,0x03, 0x17,0x03,   
  308.                                   0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02,   
  309.                                   0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,   
  310.                                   0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03,   
  311.                                   0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66,   
  312.                                   0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03,   
  313.                                   0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03,   
  314.                                   0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,   
  315.                                   0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03,   
  316.                                   0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66,   
  317.                                   0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03,   
  318.                                   0x1F,0x00, 0x1A,0x03, 0x1A,0x03, 0x1A,0x03, 0x1B,0x03,   
  319.                                   0x1B,0x03, 0x1A,0x03, 0x19,0x03, 0x19,0x02, 0x17,0x03,   
  320.                                   0x15,0x17, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x18,0x03,   
  321.                                   0x17,0x04, 0x18,0x0E, 0x18,0x03, 0x17,0x04, 0x18,0x0E,   
  322.                                   0x18,0x66, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03,   
  323.                                   0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66,   
  324.                                   0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03,   
  325.                                   0x1F,0x66, 0x1F,0x04, 0x1B,0x0E, 0x1B,0x03, 0x19,0x03,   
  326.                                   0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03,   
  327.                                   0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04,   
  328.                                   0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03,   
  329.                                   0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03,   
  330.                                   0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03,   
  331.                                   0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03,   
  332.                                   0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x18,0x02,   
  333.                                   0x18,0x03, 0x1A,0x03, 0x19,0x0D, 0x15,0x03, 0x15,0x02,   
  334.                                   0x18,0x66, 0x16,0x02, 0x17,0x02, 0x15,0x00, 0x00,0x00};   
  335. //同一首歌   
  336. unsigned char code Music_Same[]={ 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03,   
  337.                                   0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02,   
  338.                                   0x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02,   
  339.                                   0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66,   
  340.                                   0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00,   
  341.                                   0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03,   
  342.                                   0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02,   
  343.                                   0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03,   
  344.                                   0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D, 0x17,0x03,   
  345.                                   0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C,   
  346.                                   0x10,0x02, 0x15,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66,   
  347.                                   0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03,   
  348.                                   0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01,   
  349.                                   0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x10,0x02,   
  350.                                   0x10,0x03, 0x10,0x03, 0x1A,0x0C, 0x18,0x0D, 0x17,0x03,   
  351.                                   0x16,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70,   
  352.                                   0x18,0x03, 0x17,0x02, 0x15,0x03, 0x15,0x03, 0x16,0x66,   
  353.                                   0x16,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x03, 0x10,0x02,   
  354.                                   0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0F,0x0C,   
  355.                                   0x1A,0x02, 0x19,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66,   
  356.                                   0x18,0x03, 0x18,0x02, 0x17,0x03, 0x16,0x03, 0x19,0x00,   
  357.                                   0x00,0x00 };   
  358. //兩只蝴蝶                                    
  359. unsigned char code Music_Two[] ={ 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03,   
  360.                                   0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02,   
  361.                                   0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03,   
  362.                                   0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x16,0x03,   
  363.                                   0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01,   
  364.                                   0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03,   
  365.                                   0x16,0x03, 0x15,0x03, 0x10,0x03, 0x15,0x03, 0x16,0x01,   
  366.                                   0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03,   
  367.                                   0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02,   
  368.                                   0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03,   
  369.                                   0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x19,0x03,   
  370.                                   0x19,0x01, 0x19,0x03, 0x1A,0x03, 0x19,0x03, 0x17,0x01,   
  371.                                   0x16,0x03, 0x16,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03,   
  372.                                   0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0D, 0x15,0x00,   
  373.                                   0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03,   
  374.                                   0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03,   
  375.                                   0x16,0x0D, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03,   
  376.                                   0x1A,0x02, 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03,   
  377.                                   0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03,   
  378.                                   0x19,0x02, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E,   
  379.                                   0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E,   
  380.                                   0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03,   
  381.                                   0x17,0x0D, 0x16,0x03, 0x17,0x03, 0x19,0x01, 0x19,0x03,   
  382.                                   0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03,   
  383.                                   0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03, 0x16,0x03,   
  384.                                   0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02,   
  385.                                   0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01,   
  386.                                   0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x03,   
  387.                                   0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,   
  388.                                   0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,   
  389.                                   0x17,0x16, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,   
  390.                                   0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x0F,0x02,   
  391.                                   0x10,0x03, 0x15,0x00, 0x00,0x00 };   

  392. struct MusicInfo idata OurMusic[MUSIC_CNT] =
  393. {
  394.     {(u32)Music_Girl, sizeof(Music_Girl), "girl", "zhang"},
  395.     {(u32)Music_Same, sizeof(Music_Same), "same", "cai"},
  396.     {(u32)Music_Two, sizeof(Music_Two), "butty", "pang"},
  397.         //{(u32)Music_Two, sizeof(Music_Girl), "boy", "zhang"},
  398.     //{(u32)Music_Two, sizeof(Music_Same), "hello", "cai"},
  399.     //{(u32)Music_Two, sizeof(Music_Two), "Red", "pang"},
  400.    
  401. };

復制代碼
回復

使用道具 舉報

ID:52177 發表于 2013-7-23 23:30 | 顯示全部樓層
不錯的,好,大家一起學習下
回復

使用道具 舉報

ID:52249 發表于 2013-7-25 17:20 | 顯示全部樓層
不錯的,好,大家一起學習下
回復

使用道具 舉報

ID:52302 發表于 2013-7-26 17:17 | 顯示全部樓層
程序錯一大堆,無語
回復

使用道具 舉報

ID:25058 發表于 2013-7-28 10:34 | 顯示全部樓層
下啦!謝謝樓主分享。
回復

使用道具 舉報

ID:61343 發表于 2014-5-14 18:20 | 顯示全部樓層
好,謝謝分享
回復

使用道具 舉報

ID:61594 發表于 2014-6-12 14:44 | 顯示全部樓層
那些程序編譯不了的,我想問你那個  music.hex文件是怎么弄出來的!
回復

使用道具 舉報

ID:62830 發表于 2014-6-12 16:51 | 顯示全部樓層
看看.......................
回復

使用道具 舉報

ID:63362 發表于 2014-6-29 21:41 | 顯示全部樓層
感謝大大
回復

使用道具 舉報

ID:63362 發表于 2014-6-29 22:14 | 顯示全部樓層
給大神贊一個
回復

使用道具 舉報

ID:55063 發表于 2014-6-30 12:14 | 顯示全部樓層
好東西,謝謝樓主哦
回復

使用道具 舉報

ID:63309 發表于 2014-7-1 22:15 | 顯示全部樓層
不錯呀!大神!
回復

使用道具 舉報

ID:63888 發表于 2014-7-19 22:58 | 顯示全部樓層
太好了,學習
回復

使用道具 舉報

ID:64125 發表于 2014-7-20 15:00 | 顯示全部樓層
學習學習
回復

使用道具 舉報

ID:64655 發表于 2014-8-6 19:38 | 顯示全部樓層
很好,感謝樓主
回復

使用道具 舉報

ID:64825 發表于 2014-8-7 09:19 | 顯示全部樓層
不錯學習下
回復

使用道具 舉報

ID:61804 發表于 2014-12-28 13:34 | 顯示全部樓層
看看。。。。。
回復

使用道具 舉報

ID:11942 發表于 2015-1-7 11:11 | 顯示全部樓層
good  想看看
回復

使用道具 舉報

ID:71768 發表于 2015-1-7 13:04 | 顯示全部樓層
看看。。。
回復

使用道具 舉報

ID:71768 發表于 2015-1-7 13:15 | 顯示全部樓層
看看,
回復

使用道具 舉報

ID:71697 發表于 2015-1-7 23:22 | 顯示全部樓層
怎么得M幣啊
回復

使用道具 舉報

ID:71854 發表于 2015-1-8 13:40 來自手機 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:70129 發表于 2015-1-11 15:50 | 顯示全部樓層
謝謝樓主分享,下載收藏。
回復

使用道具 舉報

ID:72616 發表于 2015-2-8 17:01 | 顯示全部樓層
做的還不錯哦
回復

使用道具 舉報

ID:92972 發表于 2015-10-19 23:53 | 顯示全部樓層
兔兔兔兔兔兔兔兔兔兔兔兔兔兔兔兔兔兔兔兔兔兔
回復

使用道具 舉報

ID:93003 發表于 2015-10-20 11:30 | 顯示全部樓層
這個動手能力要求有點高啊
回復

使用道具 舉報

ID:92713 發表于 2015-10-20 14:04 | 顯示全部樓層
謝謝樓主分享
回復

使用道具 舉報

ID:92713 發表于 2015-10-20 14:08 | 顯示全部樓層
yfdhfj
回復

使用道具 舉報

ID:92713 發表于 2015-10-20 14:08 | 顯示全部樓層
tresytrh
回復

使用道具 舉報

ID:79573 發表于 2015-12-12 23:08 | 顯示全部樓層
謝謝樓主分享
回復

使用道具 舉報

ID:109067 發表于 2016-3-15 19:05 | 顯示全部樓層
這個可以用嗎
回復

使用道具 舉報

ID:109067 發表于 2016-3-15 19:05 | 顯示全部樓層
這個可以用嗎
回復

使用道具 舉報

ID:113309 發表于 2016-4-10 16:47 | 顯示全部樓層
怎么下載啊
回復

使用道具 舉報

ID:112865 發表于 2016-4-12 08:59 來自手機 | 顯示全部樓層
收藏謝謝
回復

使用道具 舉報

ID:71993 發表于 2016-4-12 13:46 | 顯示全部樓層
下載試試
回復

使用道具 舉報

ID:99401 發表于 2016-4-12 22:15 | 顯示全部樓層
很好,我很喜歡這個網站
回復

使用道具 舉報

ID:119928 發表于 2016-5-10 23:11 | 顯示全部樓層
有錯誤呀
回復

使用道具 舉報

ID:111256 發表于 2016-5-11 08:47 | 顯示全部樓層
學習一下,用蜂鳴器放音樂。
回復

使用道具 舉報

ID:120091 發表于 2016-5-11 17:00 | 顯示全部樓層
下載試試
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 色综合欧美 | 福利色导航 | 亚洲欧美少妇 | 午夜免费福利片 | 国产高清一区二区三区 | 黄色大片在线免费观看 | 国产做a爱免费视频 | 色视频在线免费观看 | 亚洲精品欧美 | 中文在线a在线 | 久久国产综合 | 高清黄色毛片 | 国产精品久久久久久亚洲调教 | 亚洲成人自拍网 | 国产精品女人久久久 | 欧美 中文字幕 | 嫩草视频在线看 | 亚洲欧美视频在线观看 | 日韩在线免费观看视频 | 亚洲视频精品 | 亚洲国产一区二区三区在线观看 | 欧美黄色性生活视频 | 青春草在线 | 男人av在线| 91精品入口蜜桃 | 国产精品永久免费视频 | 国产精品久久久久久一级毛片 | 精品国产色 | 亚洲视频在线看 | 久热久 | 91精品久久久久久久久中文字幕 | 亚洲国产精品久久久久 | 狠狠躁18三区二区一区 | 欧美视频精品 | 国产精品久久亚洲 | av一区二区三区 | 在线观看av不卡 | 亚洲高清久久 | 一级aaaaaa毛片免费同男同女 | 欧美日韩在线国产 | 国产原创在线观看 |