標(biāo)題: 一個(gè)單片機(jī)做的簡(jiǎn)易音樂播放器程序(帶仿真文件) [打印本頁(yè)]

作者: laowen    時(shí)間: 2013-6-26 16:16
標(biāo)題: 一個(gè)單片機(jī)做的簡(jiǎn)易音樂播放器程序(帶仿真文件)
簡(jiǎn)易播放器項(xiàng)目需求

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

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

延伸內(nèi)容:
文件系統(tǒng)的學(xué)習(xí)和使用(FatFS)







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




作者: laowen    時(shí)間: 2013-6-26 16:16
  1. //51單片機(jī)播放音樂庫(kù)文件   
  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 改成狀態(tài)機(jī)方式,少用一個(gè)定時(shí)器
  13.    Revision:        1.0  

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

  19. 音高由三位數(shù)字組成:  
  20.         個(gè)位是表示 1~7 這七個(gè)音符   
  21.         十位是表示音符所在的音區(qū):1-低音,2-中音,3-高音;  
  22.         百位表示這個(gè)音符是否要升半音: 0-不升,1-升半音。  
  23.    
  24. 音長(zhǎng)最多由三位數(shù)字組成:   
  25.         個(gè)位表示音符的時(shí)值,其對(duì)應(yīng)關(guān)系是:   
  26.             |數(shù)值(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.         百位是符點(diǎn)位: 0-無符點(diǎn),1-有符點(diǎn)  

  30. 調(diào)用演奏子程序的格式  
  31.         Play(樂曲名,調(diào)號(hào),升降八度,演奏速度);  
  32.     |樂曲名           : 要播放的樂曲指針,結(jié)尾以(0,0)結(jié)束;  
  33.     |調(diào)號(hào)(0-11)       :   是指樂曲升多少個(gè)半音演奏;  
  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         //定義普通音符演奏的長(zhǎng)度分率,//每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;    //音符定時(shí)器初值暫存   
  50. unsigned char Sound_Temp_TH1,Sound_Temp_TL1;    //音長(zhǎng)定時(shí)器初值暫存   

  51. #define PLAY_STOP_STATE 0
  52. /* 正在播放 */
  53. #define PLAY_ING_STATE  1
  54. /* 暫停狀態(tài) */
  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//音符發(fā)生中斷   
  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.                 /* 準(zhǔn)備開始了 */
  112.                 for(i=0;i<12;i++)               // 根據(jù)調(diào)號(hào)及升降八度來生成新的頻率表   
  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)   //計(jì)算歌曲長(zhǎng)度   
  135.                 {   
  136.                     SoundLength+=2;   
  137.                 }   
  138.                                 
  139.                 Point = 0;   
  140.                 Tone   = Sound[Point];   
  141.                                 
  142.                 Length = Sound[Point+1];     
  143.                                              // 讀出第一個(gè)音符和它時(shí)時(shí)值   

  144.                 //LDiv0 = 12000/Speed;                // 算出1分音符的長(zhǎng)度(幾個(gè)10ms)      
  145.                 LDiv0 = 12000 / 100;                // 算出1分音符的長(zhǎng)度(幾個(gè)10ms)      
  146.                 LDiv4 = LDiv0/4;                    // 算出4分音符的長(zhǎng)度   
  147.                 LDiv4 = LDiv4-LDiv4*SOUND_SPACE;    // 普通音最長(zhǎng)間隔標(biāo)準(zhǔn)   
  148.                 /* 進(jìn)入下一狀態(tài) */
  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.                 /* 進(jìn)入暫停態(tài) */
  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;                                 //計(jì)算出音符   
  178.                     SM=Tone/10%10;                              //計(jì)算出高低音   
  179.                     SH=Tone/100;                                //計(jì)算出是否升半   
  180.                     CurrentFre = NewFreTab[SignTab[SL-1]+SH];   //查出對(duì)應(yīng)音符的頻率        
  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);//計(jì)算計(jì)數(shù)器初值   

  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是對(duì)中斷延時(shí)的補(bǔ)償   
  191.                     }   
  192.                     SLen=LengthTab[Length%10];  //算出是幾分音符   
  193.                     XG=Length/10%10;            //算出音符類型(0普通1連音2頓音)   
  194.                     FD=Length/100;   
  195.                     LDiv=LDiv0/SLen;            //算出連音音符演奏的長(zhǎng)度(多少個(gè)10ms)   
  196.                     if (FD==1)   
  197.                     {
  198.                         LDiv=LDiv+LDiv/2;   
  199.                     }
  200.                     if(XG!=1)      
  201.                     {
  202.                         if(XG==0)               //算出普通音符的演奏長(zhǎng)度   
  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;       //算出頓音的演奏長(zhǎng)度   
  216.                         }
  217.                     }
  218.                     else  
  219.                     {
  220.                         LDiv1=LDiv;   
  221.                     }
  222.                     if(SL==0)
  223.                     {
  224.                         LDiv1=0;   
  225.                     }
  226.                     LDiv2=LDiv-LDiv1;       //算出不發(fā)音的長(zhǎng)度   

  227.                     if (0 == PlaySuspendFlag)
  228.                     {
  229.                         /* 進(jìn)入暫停態(tài) */
  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.                 /* 播放結(jié)束了 */
  270.                 BeepIO = 1;   
  271.                 /* 執(zhí)行下一首操作 */
  272.                 /* 現(xiàn)在先返回 */
  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.                 /* 在暫停狀態(tài)下要求退出播放 */
  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. };

復(fù)制代碼

作者: 1156615097    時(shí)間: 2013-7-23 23:30
不錯(cuò)的,好,大家一起學(xué)習(xí)下

作者: 930417801    時(shí)間: 2013-7-25 17:20
不錯(cuò)的,好,大家一起學(xué)習(xí)下
作者: diid0071    時(shí)間: 2013-7-26 17:17
程序錯(cuò)一大堆,無語
作者: liang1981    時(shí)間: 2013-7-28 10:34
下啦!謝謝樓主分享。

作者: rich3524    時(shí)間: 2014-5-14 18:20
好,謝謝分享
作者: ksws0347395    時(shí)間: 2014-6-12 14:44
那些程序編譯不了的,我想問你那個(gè)  music.hex文件是怎么弄出來的!
作者: ensin    時(shí)間: 2014-6-12 16:51
看看.......................
作者: miljay    時(shí)間: 2014-6-29 21:41
感謝大大
作者: miljay    時(shí)間: 2014-6-29 22:14
給大神贊一個(gè)
作者: 雪落有聲    時(shí)間: 2014-6-30 12:14
好東西,謝謝樓主哦
作者: 璦    時(shí)間: 2014-7-1 22:15
不錯(cuò)呀!大神!
作者: coolzoom    時(shí)間: 2014-7-19 22:58
太好了,學(xué)習(xí)
作者: 兒戲    時(shí)間: 2014-7-20 15:00
學(xué)習(xí)學(xué)習(xí)
作者: lovingadu    時(shí)間: 2014-8-6 19:38
很好,感謝樓主
作者: qzsulin    時(shí)間: 2014-8-7 09:19
不錯(cuò)學(xué)習(xí)下
作者: skype1027    時(shí)間: 2014-12-28 13:34
看看。。。。。
作者: lxl2255    時(shí)間: 2015-1-7 11:11
good  想看看
作者: 南窗憶    時(shí)間: 2015-1-7 13:04
看看。。。
作者: 南窗憶    時(shí)間: 2015-1-7 13:15
看看,
作者: 師太來取精    時(shí)間: 2015-1-7 23:22
怎么得M幣啊
作者: 邃海    時(shí)間: 2015-1-8 13:40
謝謝分享
作者: 2808569472    時(shí)間: 2015-1-11 15:50
謝謝樓主分享,下載收藏。
作者: hans1229    時(shí)間: 2015-2-8 17:01
做的還不錯(cuò)哦
作者: sddxbff    時(shí)間: 2015-10-19 23:53
兔兔兔兔兔兔兔兔兔兔兔兔兔兔兔兔兔兔兔兔兔兔
作者: tysw    時(shí)間: 2015-10-20 11:30
這個(gè)動(dòng)手能力要求有點(diǎn)高啊
作者: lu莊公    時(shí)間: 2015-10-20 14:04
謝謝樓主分享
作者: lu莊公    時(shí)間: 2015-10-20 14:08
yfdhfj
作者: lu莊公    時(shí)間: 2015-10-20 14:08
tresytrh
作者: y1065403288    時(shí)間: 2015-12-12 23:08
謝謝樓主分享
作者: c996860r    時(shí)間: 2016-3-15 19:05
這個(gè)可以用嗎
作者: c996860r    時(shí)間: 2016-3-15 19:05
這個(gè)可以用嗎
作者: zwt    時(shí)間: 2016-4-10 16:47
怎么下載啊
作者: 壹勿所知    時(shí)間: 2016-4-12 08:59
收藏謝謝
作者: gxzhi    時(shí)間: 2016-4-12 13:46
下載試試
作者: 砍柴少年    時(shí)間: 2016-4-12 22:15
很好,我很喜歡這個(gè)網(wǎng)站
作者: 3131245778    時(shí)間: 2016-5-10 23:11
有錯(cuò)誤呀

作者: FSLTKJ    時(shí)間: 2016-5-11 08:47
學(xué)習(xí)一下,用蜂鳴器放音樂。
作者: caocheng7979    時(shí)間: 2016-5-11 17:00
下載試試

作者: taotao342832    時(shí)間: 2016-5-11 22:16
正好需要,謝謝
作者: 會(huì)死啊的話    時(shí)間: 2016-5-22 18:18
謝謝分享

作者: kcetry    時(shí)間: 2016-5-27 09:01
學(xué)習(xí)了
作者: yyb    時(shí)間: 2016-6-4 17:19
非常好,正好在找
作者: 薇子    時(shí)間: 2016-6-6 14:25
感謝樓主分享,先下載看看
作者: seanlea-    時(shí)間: 2016-12-26 12:37
好厲害
作者: seanlea-    時(shí)間: 2016-12-26 12:38
想下載~~
作者: niyaolin    時(shí)間: 2017-5-31 22:39
樓主你那個(gè)創(chuàng)建任務(wù)的編程思想是什么  想深入了解一下
作者: 365371112    時(shí)間: 2017-6-9 09:06
東西很好
作者: 365371112    時(shí)間: 2017-6-9 09:09
在學(xué)習(xí),謝謝分享。。
作者: early7722    時(shí)間: 2017-6-15 09:22
學(xué)習(xí)下
作者: IRROBOT    時(shí)間: 2017-6-15 10:17
51黑有你更精彩。!
作者: 越快樂越墮落    時(shí)間: 2017-6-15 13:06
升級(jí)成讀卡的更佳!
作者: 15576118519    時(shí)間: 2017-6-17 20:59
感謝樓主分享。!
作者: LHSHL    時(shí)間: 2017-7-22 09:43
學(xué)習(xí)中
作者: 穿著安踏去拉薩    時(shí)間: 2017-11-14 09:24
laowen 發(fā)表于 2013-6-26 16:16

樓主,你這程序?qū)崿F(xiàn)的功能是只有播放旋律還是旋律和歌聲都有
作者: www123lhs    時(shí)間: 2017-11-14 13:12
很棒,超級(jí)喜歡。
作者: linsv7    時(shí)間: 2017-12-5 17:29
哇  我也想做一個(gè)
作者: ggddwo    時(shí)間: 2018-5-10 11:18
666,學(xué)習(xí)學(xué)習(xí)
作者: ggddwo    時(shí)間: 2018-5-10 11:18
學(xué)習(xí)一下,正好也在做
作者: 花柶芕    時(shí)間: 2018-6-8 17:28
這個(gè)用的是STC89C52嗎
作者: 花柶芕    時(shí)間: 2018-6-8 17:30
這個(gè)是哪種單片機(jī)啊

作者: cfdly0107    時(shí)間: 2018-9-3 19:46
謝謝樓主
作者: 飄絮    時(shí)間: 2018-10-15 00:13
謝謝分享!
作者: 18316414936    時(shí)間: 2018-12-21 09:47
感謝分享




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