找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 21860|回復(fù): 33
收起左側(cè)

這個(gè)單片機(jī)最小系統(tǒng)播放音樂的例子真不錯(cuò)

  [復(fù)制鏈接]
ID:73477 發(fā)表于 2015-2-10 20:16 | 顯示全部樓層 |閱讀模式
         學(xué)習(xí)單片機(jī),制作單片機(jī)最小系統(tǒng)是每個(gè)單片機(jī)愛好者的都經(jīng)歷過的階段,單片機(jī)最小系統(tǒng)制作好有什么用呢?為提高單片機(jī)愛好者學(xué)習(xí)制作單片機(jī)最小系統(tǒng)興趣,這里介紹一個(gè)有趣的單片機(jī)小程序,就是用單片機(jī)最小系統(tǒng)播放歡樂頌及最炫民族風(fēng)片段。在按下圖制作好單片機(jī)最小系統(tǒng)后,再增加三只元件:1個(gè)電阻、1個(gè)S9012三極管,1個(gè)8歐的小喇叭后,即可完成這個(gè)單片機(jī)最小系統(tǒng)播放歡樂頌及最炫民族風(fēng)片段的小試驗(yàn),單片機(jī)愛好者通過這個(gè)小試驗(yàn)后,一定會(huì)大大增強(qiáng)對(duì)單片機(jī)學(xué)習(xí)的興趣。       這個(gè)單片機(jī)最小系統(tǒng)播放歡樂頌及最炫民族風(fēng)片段的小試驗(yàn),由于電路比較簡單,所以這里就不畫出原理圖了,直接給出試驗(yàn)的PCB圖,感興趣的愛好者可以按圖進(jìn)行焊接制作,制作好后向單片機(jī)內(nèi)燒寫程序后安裝上去就可以工作,感受一下單片機(jī)的無窮勉力。
      下載 單片機(jī)播放歡樂頌與最炫民族風(fēng)片段程序包.zip (204.72 KB, 下載次數(shù): 172)



      焊好的單片機(jī)最小系統(tǒng)播放歡樂頌及最炫民族風(fēng)片段試驗(yàn)板的實(shí)物照片




  1. /******************************************************************************/
  2. /**程序名稱:單片機(jī)播放歡樂頌與最炫民族風(fēng)片段
  3. /**其    他:用于時(shí)鐘周期為12MHz的STC89C52單片機(jī)
  4. /******************************************************************************/
  5. #include<reg52.h>
  6. sbit BUZZER = P3^2;

  7. #define uchar unsigned char
  8. #define uint  unsigned int
  9. #define REST         36                        //休止符
  10. #define A                  0                  //低音1
  11. #define AB          1                  //低音1.5
  12. #define B                  2                  //低音2
  13. #define BC          3                  //低音2.5
  14. #define C                  4                  //低音3
  15. #define D                  5                  //低音4
  16. #define DE                 6                  //低音4.5
  17. #define E                 7                       //低音5
  18. #define EF          8                  //低音5.5
  19. #define F                  9                  //低音6
  20. #define FG          10          //低音6.5
  21. #define G                 11          //低音7
  22. #define L                  12          //中音1
  23. #define LM          13          //中音1.5
  24. #define M                  14          //中音2
  25. #define MN          15          //中音2.5
  26. #define N                  16                 //中音3
  27. #define O                  17          //中音4
  28. #define OP          18          //中音4.5
  29. #define P                  19          //中音5
  30. #define PQ          20          //中音5.5
  31. #define Q                  21          //中音6
  32. #define QR          22          //中音6.5
  33. #define R                  23          //中音7
  34. #define S                  24          //高音1
  35. #define SU          25          //高音1.5
  36. #define U                  26          //高音2
  37. #define UV          27          //高音2.5
  38. #define V                  28          //高音3
  39. #define W                  29          //高音4
  40. #define WX          30          //高音4.5
  41. #define X                  31          //高音5
  42. #define XY          32          //高音5.5
  43. #define Y                  33          //高音6
  44. #define YZ          34          //高音6.5
  45. #define Z                  35          //高音7

  46. //音階
  47. uchar code m_note[][2] = {
  48. {248,136},{248,243},{249,88},{249,184},{250,18},{250,103},{250,184},{251,3},{251,75},
  49. {251,143},{251,206},{252,11},{252,67},{252,121},{252,172},{252,219},{253,9},{253,51},
  50. {253,91},{253,129},{253,165},{253,199},{253,231},{254,5},{254,33},{254,60},{254,85},
  51. {254,109},{254,132},{254,153},{254,173},{254,192},{254,210},{254,227},{254,243},{255,2},
  52. {0,0},
  53. };


  54. //音符(1對(duì)應(yīng)三十二分音符,32對(duì)應(yīng)全音符)
  55. uchar code display[][2] = {
  56. //歡樂頌
  57. {N,8},{N,8},{O,8},{P,8},{P,8},{O,8},{N,8},{M,8},{L,8},{L,8},{M,8},{N,8},{N,12},{M,4},{M,8},{0xff,8},
  58. {N,8},{N,8},{O,8},{P,8},{P,8},{O,8},{N,8},{M,8},{L,8},{L,8},{M,8},{N,8},{M,12},{L,4},{L,8},{0xff,8},
  59. {M,8},{M,8},{N,8},{L,8},{M,8},{N,4},{O,4},{N,8},{L,8},{M,8},{N,4},{O,4},{N,8},{M,8},{L,8},{M,8},{E,8},
  60. {N,8},{N,8},{O,8},{P,8},{P,8},{O,8},{N,8},{M,8},{L,8},{L,8},{M,8},{N,8},{M,12},{L,4},{L,8},{0xff,8},
  61. {M,8},{M,8},{N,8},{L,8},{M,8},{N,4},{O,4},{N,8},{L,8},{M,8},{N,4},{O,4},{N,8},{M,8},{L,8},{M,8},{E,8},
  62. {N,8},{N,8},{O,8},{P,8},{P,8},{O,8},{N,8},{M,8},{L,8},{L,8},{M,8},{N,8},{M,12},{L,4},{L,8},{0xff,8},
  63. //樂譜(最炫民族風(fēng))
  64. {N,8},{F,4},{F,4},{L,8},{N,8},{M,4},{M,2},{N,2},{M,4},{L,4},
  65. {M,4},{L,4},{F,8},{N,8},{F,4},{F,4},{L,8},{N,8},
  66. {P,4},{M,2},{N,2},{M,4},{L,4},{M,4},{L,4},{G,4},{E,4},
  67. {N,8},{F,4},{F,4},{L,8},{N,8},{M,4},{M,2},{N,2},{M,4},{L,4},
  68. {M,4},{L,4},{F,4},{E,4},{N,8},{F,4},{F,4},{L,8},{N,8},
  69. {P,4},{N,4},{0xff,24},//前奏
  70. {F,8},{F,4},{E,4},{F,8},{F,4},{L,4},{L,8},{M,4},{L,4},{F,8},
  71. {0xff,8},{L,8},{L,4},{E,4},{L,4},{M,4},{N,4},{P,4},{P,4},{N,4},
  72. {M,8},{N,8},{0xff,8},{Q,4},{Q,4},{Q,4},{P,4},{N,4},{N,8},{L,4},
  73. {F,4},{F,4},{F,4},{N,4},{M,8},{0xff,8},{N,4},{N,4},{P,4},{N,4},
  74. {M,4},{N,4},{M,4},{L,4},{F,8},{E,8},{F,8},{0xff,8},
  75. {F,8},{F,4},{E,4},{F,8},{F,4},{L,4},{L,8},{M,4},{L,4},{F,8},
  76. {0xff,8},{L,8},{L,4},{E,4},{L,4},{M,4},{N,4},{P,4},{P,4},{N,4},
  77. {M,8},{N,8},{0xff,8},{Q,4},{Q,4},{Q,4},{P,4},{N,4},{N,8},{L,4},
  78. {F,4},{F,4},{F,4},{N,4},{M,8},{0xff,8},{N,4},{N,4},{P,4},{N,4},
  79. {M,4},{N,4},{M,4},{L,4},{F,8},{E,8},{F,8},{0xff,8},
  80. {N,4},{N,4},{P,4},{N,4},{N,4},{P,4},{P,4},{Q,4},{S,4},{Q,4},
  81. {P,8},{Q,8},{0xff,8}, //此處有變調(diào)
  82. {F,8},{F,4},{E,4},{F,8},{L,8},{M,4},{N,2},{M,2},{L,4},{M,4},
  83. {N,8},{0xff,8},{F,4},{Q,4},{Q,4},{P,4},{M,4},{N,2},{M,2},
  84. {L,4},{M,4},{N,8},{0xff,8},{0xff,16},{L,4},{F,4},{F,4},{L,4},
  85. {M,8},{E,4},{E,4},{N,4},{P,4},{N,4},{M,4},{L,8},{0xff,8},
  86. {F,4},{L,4},{M,4},{N,4},{M,4},{L,4},{E,4},{C,4},{F,8},{0xff,8},{0xff,16},
  87. {F,8},{F,4},{E,4},{F,8},{L,8},{M,4},{N,2},{M,2},{L,4},{M,4},
  88. {N,8},{0xff,8},{F,4},{Q,4},{Q,4},{P,4},{M,4},{N,2},{M,2},
  89. {L,4},{M,4},{N,8},{0xff,8},{0xff,16},{L,4},{F,4},{F,4},{L,4},
  90. {M,8},{E,4},{E,4},{N,4},{P,4},{N,4},{M,4},{L,12},{L,4},
  91. {F,4},{L,4},{M,4},{N,4},{P,4},{N,4},{N,4},{P,4},{Q,8},{0xff,8},{0xff,8},

  92. {Q,6}, {Q,2},{Q,4},{Q,4},{Q,6},{P,2},{N,4},{M,4},{M,6},{M,2},{N,6},{P,2},{N,6},{M,2},
  93. {L,6},{F,2},{F,8},{F,4},{E,4},{F,8},{F,4},{L,4}, {M,4},{N,2},{M,2},        {L,4},{M,4},{N,8},{0xff,8},
  94. {Q,4},{P,4},{N,4},{M,4},{P,4},{N,4},{M,4},{L,4},{L,8},{0xff,8},{F,2}, {A,2},{B,2},{C,2},{B,2},
  95. {A,2}, {F,2},{A,2},

  96. {N,4},{N,4},{P,4},{N,4},{N,4},{P,4},{P,4},{Q,4},{S,4},{Q,4},
  97. {P,8},{Q,8},{0xff,8}, //此處有變調(diào)
  98. {F,8},{F,4},{E,4},{F,8},{L,8},{M,4},{N,2},{M,2},{L,4},{M,4},
  99. {N,8},{0xff,8},{F,4},{Q,4},{Q,4},{P,4},{M,4},{N,2},{M,2},
  100. {L,4},{M,4},{N,8},{0xff,8},{0xff,16},{L,4},{F,4},{F,4},{L,4},
  101. {M,8},{E,4},{E,4},{N,4},{P,4},{N,4},{M,4},{L,8},{0xff,8},
  102. {F,4},{L,4},{M,4},{N,4},{M,4},{L,4},{E,4},{C,4},{F,8},{0xff,8},{0xff,16},
  103. {F,8},{F,4},{E,4},{F,8},{L,8},{M,4},{N,2},{M,2},{L,4},{M,4},
  104. {N,8},{0xff,8},{F,4},{Q,4},{Q,4},{P,4},{M,4},{N,2},{M,2},
  105. {L,4},{M,4},{N,8},{0xff,8},{0xff,16},{L,4},{F,4},{F,4},{L,4},
  106. {M,8},{E,4},{E,4},{N,4},{P,4},{N,4},{M,4},{L,12},{L,4},
  107. {F,4},{L,4},{M,4},{N,4},{P,4},{N,4},{N,4},{P,4},{Q,8},{0xff,8},{0xff,8},


  108. {0,0xff},
  109. };
  110. uchar time_h,time_l;
  111. void Delay(uchar x);

  112. void main()
  113. {
  114.         uchar j;
  115.         uint i;
  116.         TMOD = 0x01;
  117.         ET0 = 1;
  118.         EA = 1;
  119.         TR0 = 1;
  120.         i = 0;
  121.         j = 0;
  122.         while(1)
  123.         {
  124.                 while(display[i][1] != 0xff)
  125.                 {
  126.                         if(display[i][0] == 0xff)
  127.                         {
  128.                                 TR0 = 0;
  129.                                 Delay(display[i][1]);
  130.                             BUZZER = 1;       
  131.                         }
  132.                         else
  133.                         {
  134.                                 time_h = m_note[display[i][0]][0];
  135.                                 time_l = m_note[display[i][0]][1];
  136.                                 TH0 = time_h;
  137.                                 TL0 = time_l;
  138.                                 ET0 = 1;
  139.                                 TR0 = 1;
  140.                                 Delay(display[i][1]);
  141.                                 TR0 = 0;
  142.                                 ET0 = 0;
  143.                             BUZZER = 1;       
  144.                         }                       
  145.                         i++;
  146.                 }
  147.                 i = 0;
  148.         }
  149. }

  150. void Timer0() interrupt 1
  151. {
  152.         TR0 = 0;
  153.         TH0 = time_h;
  154.         TL0 = time_l;
  155.         BUZZER = ~BUZZER;
  156.         TR0 = 1;
  157. }

  158. void Delay(uchar x)
  159. {
  160.         uint i,j;
  161.         for(i = 0;i < x;i++)
  162.                 for(j = 0;j < 12000;j++);
  163. }
復(fù)制代碼


評(píng)分

參與人數(shù) 4威望 +1 黑幣 +13 收起 理由
祝云章 + 5 很給力!
魔術(shù)快斗 + 2 很棒棒
god147 + 1 絕世好帖!
123456love + 1 + 5 共享資料的積分獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:73463 發(fā)表于 2015-2-12 10:15 | 顯示全部樓層
來一首高大上的歌曲
回復(fù)

使用道具 舉報(bào)

ID:73489 發(fā)表于 2015-2-13 07:43 來自手機(jī) | 顯示全部樓層
厲害,譜子看起來挺麻煩的
回復(fù)

使用道具 舉報(bào)

ID:73711 發(fā)表于 2015-4-12 18:47 | 顯示全部樓層
上傳個(gè)視頻就最好了  樂譜是怎么做的  謝謝了
回復(fù)

使用道具 舉報(bào)

ID:69803 發(fā)表于 2015-4-17 23:58 來自手機(jī) | 顯示全部樓層
收藏了 哈哈
回復(fù)

使用道具 舉報(bào)

ID:78012 發(fā)表于 2015-4-27 15:57 | 顯示全部樓層
太棒了
回復(fù)

使用道具 舉報(bào)

ID:74143 發(fā)表于 2015-4-28 11:35 | 顯示全部樓層
不錯(cuò),謝謝分享。
回復(fù)

使用道具 舉報(bào)

ID:65980 發(fā)表于 2015-5-14 11:20 | 顯示全部樓層
謝謝 分享
回復(fù)

使用道具 舉報(bào)

ID:80238 發(fā)表于 2015-5-17 12:08 | 顯示全部樓層
必須收藏。。
回復(fù)

使用道具 舉報(bào)

ID:93449 發(fā)表于 2015-10-27 12:35 | 顯示全部樓層
蠻不錯(cuò)的哦,
回復(fù)

使用道具 舉報(bào)

ID:94143 發(fā)表于 2015-10-31 21:22 | 顯示全部樓層
編曲子好像很麻煩的樣子
回復(fù)

使用道具 舉報(bào)

ID:94402 發(fā)表于 2015-11-2 15:40 | 顯示全部樓層
挺不錯(cuò)的 收藏了
回復(fù)

使用道具 舉報(bào)

ID:92858 發(fā)表于 2015-11-12 22:05 | 顯示全部樓層
很贊啊
回復(fù)

使用道具 舉報(bào)

ID:122598 發(fā)表于 2016-5-22 16:58 | 顯示全部樓層
群主在馬?
回復(fù)

使用道具 舉報(bào)

ID:122598 發(fā)表于 2016-5-22 17:06 | 顯示全部樓層
老師BUZZER取僅只用于常量,程序中有兩次賦值,到底是變量還是常量呀%
回復(fù)

使用道具 舉報(bào)

ID:92231 發(fā)表于 2016-5-29 10:05 來自手機(jī) | 顯示全部樓層
用來取代童車上的音樂,要是加一個(gè)按鍵控制樂曲切換就更好了
回復(fù)

使用道具 舉報(bào)

ID:153199 發(fā)表于 2016-12-25 16:11 | 顯示全部樓層
能否分享一下譜曲軟件
回復(fù)

使用道具 舉報(bào)

ID:136460 發(fā)表于 2016-12-31 11:00 | 顯示全部樓層
挺不錯(cuò)的 收藏了
回復(fù)

使用道具 舉報(bào)

ID:154654 發(fā)表于 2017-1-1 22:01 | 顯示全部樓層
還是覺得有點(diǎn)
回復(fù)

使用道具 舉報(bào)

ID:89286 發(fā)表于 2017-1-4 20:32 | 顯示全部樓層
THANKS FOR SHARING
回復(fù)

使用道具 舉報(bào)

ID:205064 發(fā)表于 2017-5-30 16:21 | 顯示全部樓層
找了很久51單片機(jī)制作音樂播放器的例子,終于給我找到了
回復(fù)

使用道具 舉報(bào)

ID:193383 發(fā)表于 2017-6-28 12:54 | 顯示全部樓層
非常感謝樓主分享,謝謝!
回復(fù)

使用道具 舉報(bào)

ID:99130 發(fā)表于 2017-6-29 16:22 | 顯示全部樓層
miuifen 發(fā)表于 2015-4-12 18:47
上傳個(gè)視頻就最好了  樂譜是怎么做的  謝謝了

有專門的譜曲軟件
回復(fù)

使用道具 舉報(bào)

ID:217472 發(fā)表于 2017-7-8 20:08 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:91202 發(fā)表于 2017-10-15 15:12 | 顯示全部樓層
請(qǐng)問樓主,出來的音色動(dòng)聽嗎?我現(xiàn)在做了一個(gè)發(fā)聲的,只能發(fā)簡單干燥的聲音
回復(fù)

使用道具 舉報(bào)

ID:241152 發(fā)表于 2017-10-26 15:24 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:160782 發(fā)表于 2017-10-27 08:02 來自手機(jī) | 顯示全部樓層
這么厲害,我以為是單片機(jī)控制播放器,這個(gè)直接用單片機(jī)播放旋律的!謝謝!
回復(fù)

使用道具 舉報(bào)

ID:244589 發(fā)表于 2017-11-2 17:03 | 顯示全部樓層
如果只是播放旋律而已的話,那么只要有你們想要播的歌曲的譜子,然后再懂得看譜子的話就可以編了。我一開始以為是播放全歌,認(rèn)真看完之后才知道只是旋律。不過樓主已經(jīng)好厲害了,寫的程序比較易懂。謝謝

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 贊一個(gè)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:258673 發(fā)表于 2017-12-7 15:49 | 顯示全部樓層
厲害,學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

ID:256184 發(fā)表于 2017-12-7 19:49 | 顯示全部樓層
sirs 發(fā)表于 2015-5-17 12:08
必須收藏。。

咋收藏啊。。。
回復(fù)

使用道具 舉報(bào)

ID:318304 發(fā)表于 2018-5-20 00:24 來自手機(jī) | 顯示全部樓層
穿著安踏去拉薩 發(fā)表于 2017-11-2 17:03
如果只是播放旋律而已的話,那么只要有你們想要播的歌曲的譜子,然后再懂得看譜子的話就可以編了。我一開始 ...

你說的旋律和全歌有什么區(qū)別嗎
回復(fù)

使用道具 舉報(bào)

ID:318304 發(fā)表于 2018-5-20 00:33 來自手機(jī) | 顯示全部樓層
樓主,我想借鑒一下你的程序,我用的是11.0592的該怎么改程序啊,我有點(diǎn)急用
回復(fù)

使用道具 舉報(bào)

ID:332040 發(fā)表于 2018-5-20 13:04 | 顯示全部樓層
不錯(cuò),很給力,贊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表