找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1849|回复: 2
打印 上一主题 下一主题
收起左侧

基于51单片机的蜂鸣器,播放音乐

[复制链接]
跳转到指定楼层
楼主
ID:900456 发表于 2021-10-8 14:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
简单以实现
适合i/o口操作学习
  1. #include <reg52.h>
  2. #include <delay.h>


  3. sbit FM=P2^3;



  4. unsigned char code Music_Code[]={ 0x0F,0x03, 0x10,0x03, 0x15,0x03, 0x16,0x03, 0x16,0x02,
  5.                                   0x16,0x01, 0x17,0x04, 0x17,0x04, 0x16,0x04, 0x15,0x03,
  6.                                   0x10,0x04, 0x17,0x00, 0x0F,0x03, 0x10,0x03, 0x15,0x03,
  7.                                   0x16,0x03, 0x16,0x00, 0x17,0x04, 0x16,0x04, 0x15,0x03,
  8.                                   0x15,0x03, 0x19,0x03, 0x19,0x02, 0x19,0x03, 0x17,0x03,
  9.                                   0x17,0x01, 0x0F,0x67, 0x10,0x04, 0x15,0x04, 0x16,0x66,
  10.                                   0x16,0x00, 0x17,0x04, 0x16,0x04, 0x15,0x03, 0x15,0x67,
  11.                                   0x10,0x04, 0x17,0x01, 0x00,0x00 };


  12. void main()
  13. {
  14.         while(1)
  15.         {
  16.                 FM=0;
  17.                 Delay_ms(500);
  18.                 FM=1;
  19.                 Delay_ms(500);
  20.         }
  21. }
  22. */

  23. //51单片机播放音乐库文件
  24. /**************************************************************************

  25.                                              SOUND PLAY FOR 51MCU

  26.                                COPYRIGHT (c)   2005 BY JJJ.
  27.                                        --  ALL RIGHTS RESERVED  --

  28.    File Name:       SoundPlay.h
  29.    Author:          Jiang Jian Jun
  30.    Created:         2005/5/16
  31.    Modified:                NO
  32.    Revision:                 1.0

  33. *******************************************************************************/

  34. /*说明**************************************************************************
  35. 曲谱存贮格式 unsigned char code MusicName{音高,音长,音高,音长...., 0,0};        末尾:0,0 表示结束(Important)

  36. 音高由三位数字组成:
  37.                  个位是表示 1~7 这七个音符
  38.                  十位是表示音符所在的音区:1-低音,2-中音,3-高音;
  39.                  百位表示这个音符是否要升半音: 0-不升,1-升半音。

  40. 音长最多由三位数字组成:
  41.                  个位表示音符的时值,其对应关系是:
  42.                          |数值(n):  |0 |1 |2 |3 | 4 | 5 | 6
  43.                          |几分音符: |1 |2 |4 |8 |16 |32 |64                 音符=2^n
  44.                  十位表示音符的演奏效果(0-2):  0-普通,1-连音,2-顿音
  45.                  百位是符点位: 0-无符点,1-有符点

  46. 调用演奏子程序的格式
  47.                  Play(乐曲名,调号,升降八度,演奏速度);
  48.         |乐曲名           : 要播放的乐曲指针,结尾以(0,0)结束;
  49.         |调号(0-11)       :        是指乐曲升多少个半音演奏;
  50.         |升降八度(1-3)          : 1:降八度, 2:不升不降, 3:升八度;
  51.         |演奏速度(1-12000):        值越大速度越快;

  52. ***************************************************************************/
  53. #ifndef __SOUNDPLAY_H_REVISION_FIRST__
  54. #define __SOUNDPLAY_H_REVISION_FIRST__

  55. #include <REGX51.H>

  56. //**************************************************************************

  57. #define SYSTEM_OSC                 11059200//12000000        //定义晶振频率12000000HZ
  58. #define SOUND_SPACE         4/5                 //定义普通音符演奏的长度分率,//每4分音符间隔
  59. sbit    BeepIO    =           P2^3;                //定义输出管脚

  60. unsigned int  code FreTab[12]  = { 262,277,294,311,330,349,369,392,415,440,466,494 }; //原始频率表
  61. unsigned char code SignTab[7]  = { 0,2,4,5,7,9,11 };                                                                   //1~7在频率表中的位置
  62. unsigned char code LengthTab[7]= { 1,2,4,8,16,32,64 };                                                
  63. unsigned char Sound_Temp_TH0,Sound_Temp_TL0;        //音符定时器初值暂存
  64. unsigned char Sound_Temp_TH1,Sound_Temp_TL1;        //音长定时器初值暂存
  65. //**************************************************************************


  66. //挥着翅膀的女孩
  67. unsigned char code Music_Girl[]={ 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x03,
  68.                                   0x16,0x03, 0x17,0x03, 0x17,0x03, 0x17,0x03, 0x18,0x03,
  69.                                   0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x02, 0x18,0x03,
  70.                                   0x17,0x03, 0x15,0x02, 0x18,0x03, 0x17,0x03, 0x18,0x02,
  71.                                   0x10,0x03, 0x15,0x03, 0x16,0x02, 0x15,0x03, 0x16,0x03,
  72.                                   0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x1A,0x03,
  73.                                   0x1B,0x03, 0x1F,0x03, 0x1F,0x03, 0x17,0x03, 0x18,0x03,
  74.                                   0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03,
  75.                                   0x18,0x03, 0x1F,0x03, 0x1F,0x02, 0x16,0x03, 0x17,0x03,
  76.                                   0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02,
  77.                                   0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,
  78.                                   0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03,
  79.                                   0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66,
  80.                                   0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03,
  81.                                   0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03,
  82.                                   0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,
  83.                                   0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03,
  84.                                   0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66,
  85.                                   0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03,
  86.                                   0x1F,0x00, 0x1A,0x03, 0x1A,0x03, 0x1A,0x03, 0x1B,0x03,
  87.                                   0x1B,0x03, 0x1A,0x03, 0x19,0x03, 0x19,0x02, 0x17,0x03,
  88.                                   0x15,0x17, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x18,0x03,
  89.                                   0x17,0x04, 0x18,0x0E, 0x18,0x03, 0x17,0x04, 0x18,0x0E,
  90.                                   0x18,0x66, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03,
  91.                                   0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66,
  92.                                   0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03,
  93.                                   0x1F,0x66, 0x1F,0x04, 0x1B,0x0E, 0x1B,0x03, 0x19,0x03,
  94.                                   0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03,
  95.                                   0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04,
  96.                                   0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03,
  97.                                   0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03,
  98.                                   0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03,
  99.                                   0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03,
  100.                                   0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x18,0x02,
  101.                                   0x18,0x03, 0x1A,0x03, 0x19,0x0D, 0x15,0x03, 0x15,0x02,
  102.                                   0x18,0x66, 0x16,0x02, 0x17,0x02, 0x15,0x00, 0x00,0x00};
  103. //同一首歌
  104. unsigned char code Music_Same[]={ 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03,
  105.                                   0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02,
  106.                                   0x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02,
  107.                                   0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66,
  108.                                   0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00,
  109.                                   0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03,
  110.                                   0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02,
  111.                                   0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03,
  112.                                   0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D, 0x17,0x03,
  113.                                   0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C,
  114.                                   0x10,0x02, 0x15,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66,
  115.                                   0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03,
  116.                                   0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01,
  117.                                   0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x10,0x02,
  118.                                   0x10,0x03, 0x10,0x03, 0x1A,0x0C, 0x18,0x0D, 0x17,0x03,
  119.                                   0x16,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70,
  120.                                   0x18,0x03, 0x17,0x02, 0x15,0x03, 0x15,0x03, 0x16,0x66,
  121.                                   0x16,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x03, 0x10,0x02,
  122.                                   0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0F,0x0C,
  123.                                   0x1A,0x02, 0x19,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66,
  124.                                   0x18,0x03, 0x18,0x02, 0x17,0x03, 0x16,0x03, 0x19,0x00,
  125.                                   0x00,0x00 };
  126. //两只蝴蝶                                 
  127. unsigned char code Music_Two[] ={ 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03,
  128.                                   0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02,
  129.                                   0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03,
  130.                                   0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x16,0x03,
  131.                                   0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01,
  132.                                   0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03,
  133.                                   0x16,0x03, 0x15,0x03, 0x10,0x03, 0x15,0x03, 0x16,0x01,
  134.                                   0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03,
  135.                                   0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02,
  136.                                   0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03,
  137.                                   0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x19,0x03,
  138.                                   0x19,0x01, 0x19,0x03, 0x1A,0x03, 0x19,0x03, 0x17,0x01,
  139.                                   0x16,0x03, 0x16,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03,
  140.                                   0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0D, 0x15,0x00,
  141.                                   0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03,
  142.                                   0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03,
  143.                                   0x16,0x0D, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03,
  144.                                   0x1A,0x02, 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03,
  145.                                   0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03,
  146.                                   0x19,0x02, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E,
  147.                                   0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E,
  148.                                   0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03,
  149.                                   0x17,0x0D, 0x16,0x03, 0x17,0x03, 0x19,0x01, 0x19,0x03,
  150.                                   0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03,
  151.                                   0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03, 0x16,0x03,
  152.                                   0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02,
  153.                                   0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01,
  154.                                   0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x03,
  155.                                   0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,
  156.                                   0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,
  157.                                   0x17,0x16, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,
  158.                                   0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x0F,0x02,
  159.                                   0x10,0x03, 0x15,0x00, 0x00,0x00 };










  160. void InitialSound(void)
  161. {
  162.         BeepIO = 1;
  163.         Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256;        // 计算TL1应装入的初值         (10ms的初装值)
  164.         Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256;        // 计算TH1应装入的初值
  165.         TH1 = Sound_Temp_TH1;
  166.         TL1 = Sound_Temp_TL1;
  167.         TMOD  |= 0x11;
  168.         ET0    = 1;
  169.         ET1           = 0;
  170.         TR0           = 0;
  171.         TR1    = 0;
  172.         EA     = 1;
  173. }

  174. void BeepTimer0(void) interrupt 1        //音符发生中断
  175. {
  176.         BeepIO = !BeepIO;
  177.         TH0    = Sound_Temp_TH0;
  178.          TL0    = Sound_Temp_TL0;
  179. }
  180. //**************************************************************************
  181. void Play(unsigned char *Sound,unsigned char Signature,unsigned Octachord,unsigned int Speed)
  182. {
  183.         unsigned int NewFreTab[12];                //新的频率表
  184.         unsigned char i,j;
  185.         unsigned int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength;
  186.         unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD;
  187.         for(i=0;i<12;i++)                                 // 根据调号及升降八度来生成新的频率表
  188.         {
  189.                 j = i + Signature;
  190.                 if(j > 11)
  191.                 {
  192.                         j = j-12;
  193.                         NewFreTab[i] = FreTab[j]*2;
  194.                 }
  195.                 else
  196.                         NewFreTab[i] = FreTab[j];

  197.                 if(Octachord == 1)
  198.                         NewFreTab[i]>>=2;
  199.                 else if(Octachord == 3)
  200.                         NewFreTab[i]<<=2;
  201.         }                                                                        
  202.         
  203.         SoundLength = 0;
  204.         while(Sound[SoundLength] != 0x00)        //计算歌曲长度
  205.         {
  206.                 SoundLength+=2;
  207.         }

  208.         Point = 0;
  209.         Tone   = Sound[Point];        
  210.         Length = Sound[Point+1];                         // 读出第一个音符和它时时值
  211.         
  212.         LDiv0 = 12000/Speed;                                // 算出1分音符的长度(几个10ms)         
  213.         LDiv4 = LDiv0/4;                                         // 算出4分音符的长度
  214.         LDiv4 = LDiv4-LDiv4*SOUND_SPACE;         // 普通音最长间隔标准
  215.         TR0          = 0;
  216.         TR1   = 1;
  217.         while(Point < SoundLength)
  218.         {
  219.                 SL=Tone%10;                                                                 //计算出音符
  220.                 SM=Tone/10%10;                                                                 //计算出高低音
  221.                 SH=Tone/100;                                                                 //计算出是否升半
  222.                 CurrentFre = NewFreTab[SignTab[SL-1]+SH];         //查出对应音符的频率         
  223.                 if(SL!=0)
  224.                 {
  225.                         if (SM==1) CurrentFre >>= 2;                 //低音
  226.                         if (SM==3) CurrentFre <<= 2;                 //高音
  227.                         Temp_T = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC);//计算计数器初值
  228.                         Sound_Temp_TH0 = Temp_T/256;
  229.                         Sound_Temp_TL0 = Temp_T%256;
  230.                         TH0 = Sound_Temp_TH0;  
  231.                         TL0 = Sound_Temp_TL0 + 12; //加12是对中断延时的补偿
  232.                 }
  233.                 SLen=LengthTab[Length%10];         //算出是几分音符
  234.                 XG=Length/10%10;                         //算出音符类型(0普通1连音2顿音)
  235.                 FD=Length/100;
  236.                 LDiv=LDiv0/SLen;                         //算出连音音符演奏的长度(多少个10ms)
  237.                 if (FD==1)
  238.                         LDiv=LDiv+LDiv/2;
  239.                 if(XG!=1)        
  240.                         if(XG==0)                                 //算出普通音符的演奏长度
  241.                                 if (SLen<=4)        
  242.                                         LDiv1=LDiv-LDiv4;
  243.                                 else
  244.                                         LDiv1=LDiv*SOUND_SPACE;
  245.                         else
  246.                                 LDiv1=LDiv/2;                 //算出顿音的演奏长度
  247.                 else
  248.                         LDiv1=LDiv;
  249.                 if(SL==0) LDiv1=0;
  250.                         LDiv2=LDiv-LDiv1;                 //算出不发音的长度
  251.                   if (SL!=0)
  252.                 {
  253.                         TR0=1;
  254.                         for(i=LDiv1;i>0;i--)         //发规定长度的音
  255.                         {
  256.                                 while(TF1==0);
  257.                                 TH1 = Sound_Temp_TH1;
  258.                                 TL1 = Sound_Temp_TL1;
  259.                                 TF1=0;
  260.                         }
  261.                 }
  262.                 if(LDiv2!=0)
  263.                 {
  264.                         TR0=0; BeepIO=1;
  265.                         for(i=LDiv2;i>0;i--)         //音符间的间隔
  266.                         {
  267.                                 while(TF1==0);
  268.                                 TH1 = Sound_Temp_TH1;
  269.                                 TL1 = Sound_Temp_TL1;
  270.                                 TF1=0;
  271.                         }
  272.                 }
  273.                 Point+=2;
  274.                 Tone=Sound[Point];
  275.                 Length=Sound[Point+1];
  276.         }
  277.         BeepIO = 1;
  278. }
  279. //**************************************************************************
  280. #endif

  281. void main()
  282. {
  283.         InitialSound();
  284.         while(1)
  285.         {
  286.    Play(Music_Girl,0,2,350);
  287.    Play(Music_Same,0,2,350);
  288.    Play(Music_Two,0,2,350);
  289.         }
  290. }

  291. /***************************************************************************
  292. 附:3首曲谱编码表

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

  387. ***************************************************************************/
复制代码

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:971480 发表于 2021-10-12 21:35 | 只看该作者
delay函数未声明?
回复

使用道具 举报

板凳
ID:900456 发表于 2022-6-9 10:47 | 只看该作者

调用delay.h文件,自己写个ms函数就完事了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表