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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3013|回復: 4
收起左側

簡易單片機Mp3程序 蜂鳴器播放敢問路在何方(新手入門級)

[復制鏈接]
ID:964116 發表于 2021-9-8 19:55 | 顯示全部樓層 |閱讀模式
包含Proteus仿真和源碼
51hei.png 51hei截圖20210908193904.png

單片機源程序如下:
  1. #include <reg52.h>
  2. sbit beep = P2^3;
  3. unsigned char timer0H, timer0L, time;

  4. //單片機晶振采用11.0592MHz

  5. code unsigned char FREQH[] = {
  6.     0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8,    //低音1234567
  7.     0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC,//1,2,3,4,5,6,7,i
  8.     0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE,            //高音 234567
  9.     0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF};   //超高音 1234567

  10. code unsigned char FREQL[] =
  11. {
  12.     0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 0xB6,    //低音1234567
  13.     0x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, //1,2,3,4,5,6,7,i
  14.     0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D,             //高音 234567
  15.     0x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16        //超高音 1234567
  16. };  
  17.            
  18. code unsigned char song[] =
  19. {
  20.     6, 1, 2,  1, 2, 4,  6, 1, 2,  3, 2, 4,  2, 2, 2,  2, 2, 2,  3, 2, 1,  2, 2, 1,  1, 1, 6,    //你挑著擔
  21.     7, 1, 2,  6, 1, 4,  7, 1, 2,  2, 2, 4,  3, 2, 2,  1, 2, 2,               //我牽著馬
  22.     6, 1, 4,  6, 1, 6,  3, 2, 6,  6, 2, 5,  3, 2, 2,  6, 2, 5,
  23.     5, 2, 2,  4, 2, 2,  3, 2, 6,  1, 2, 5,  2, 2, 2,  3, 2, 6,
  24.     4, 2, 2,  3, 2, 2,  2, 2, 10,                                           //迎來日出,送走晚霞
  25.     6, 1, 4,  3, 2, 4,  2, 2, 2,  3, 2, 2,  6, 1, 4,  1, 2, 8,         
  26.     3, 2, 4,  2, 2, 2,  7, 1, 4,  3, 2, 2,  2, 2, 2,  6, 1, 2,  1, 2, 2,  2, 2, 2,  3, 2, 10,       //踏平坎坷成大道   
  27.     3, 2, 6,  6, 2, 4,  3, 2, 2,  6, 2, 4,  5, 2, 2,  4, 2, 2,  3, 2, 6,  5, 2, 2,  2, 2, 4,
  28.     4, 2, 2,  3, 2, 2,  2, 2, 2,  1, 2, 4,  2, 2, 8,  3, 2, 4,              //斗罷艱險又出發
  29.     2, 2, 2,  7, 1, 4,  3, 2, 2,  7, 1, 2,  6, 1, 2,  5, 1, 4,  6, 1, 8,  
  30.     3, 2, 4,  5, 2, 8,  3, 2, 2,  5, 2, 2,  6, 2, 5,
  31.     1, 3, 2,  7, 2, 2,  6, 2, 2,  5, 2, 4,  6, 2, 10,                       //啦 啦啦 啦 啦 啦啦啦
  32.     1, 3, 6,  7, 2, 5,  6, 2, 2,  6, 2, 4,  5, 2, 6,  5, 2, 2,  6, 2, 2,  3, 2, 10,     //一番番春秋冬夏
  33.     1, 3, 6,  7, 2, 5,  6, 2, 2,  6, 2, 4,  5, 2, 6,  6, 2, 2,  3, 2, 10,               //一番番酸甜苦辣
  34.     6, 1, 5,  1, 2, 2,  3, 2, 5,  1, 2, 2,  2, 2, 2,  3, 2, 2,  2, 2, 8,    //敢問路在何方
  35.     2, 2, 2,  7, 3, 4,  2, 2, 2,  7, 1, 2,  6, 1, 2,  5, 1, 4,  6, 1, 10,   //路在腳下
  36.     6, 1, 5,  1, 2, 2,  3, 2, 5,  1, 2, 2,  2, 2, 2,  3, 2, 2,  2, 2, 8,    //敢問路在何方
  37.     3, 2, 4,  5, 2, 6,  3, 2, 4,  7, 2, 5,
  38.     1, 3, 2,  7, 2, 2,  6, 2, 2,  5, 2, 4,  6, 2, 10, 6, 2, 10, 0, 0, 0     //路在腳下
  39. };

  40. void t0int() interrupt 1         //T0中斷程序,控制發音的音調
  41. {
  42.     TR0 = 0;                     //先關閉T0
  43.     beep = !beep;          //輸出方波, 發音
  44.     TH0 = timer0H;               //下次的中斷時間, 這個時間, 控制音調高低
  45.     TL0 = timer0L;
  46.     TR0 = 1;                     //啟動T0
  47. }

  48. void delay(unsigned char t)     //延時程序,控制發音的時間長度
  49. {
  50.     unsigned char t1;
  51.     unsigned long t2;
  52.     for(t1 = 0; t1 < t; t1++)    //雙重循環, 共延時t個半拍
  53.       for(t2 = 0; t2 < 4000; t2++); //延時期間, 可進入T0中斷去發音
  54.     TR0 = 0;                        //關閉T0, 停止發音
  55. }

  56. void sing()                      //演奏一個音符
  57. {
  58.     TH0 = timer0H;               //控制音調
  59.     TL0 = timer0L;
  60.     TR0 = 1;                     //啟動T0, 由T0輸出方波去發音
  61.     delay(time);                 //控制時間長度
  62. }

  63. void main(void)
  64. {
  65.     unsigned char k, i;
  66.     TMOD = 1;                    //置T0定時工作方式1
  67.     ET0 = 1;                     //開T0中斷
  68.     EA = 1;                      //開總中斷
  69.     while(1)
  70.         {
  71.       i = 0;
  72.       time = 1;
  73.       while(time)
  74.           {
  75.         k = song[i] + 7 * song[i + 1] - 1;//第i個是音符, 第i+1個是第幾個八度
  76.         timer0H = FREQH[k];      //從數據表中讀出頻率數值
  77.         timer0L = FREQL[k];      //實際上, 是定時的時間長度
  78.         time = song[i + 2];   //讀出時間長度數值
  79.         i += 3;
  80.         sing();                  //發出一個音符
  81.           }  
  82.     }  
  83. }
復制代碼
51hei.png
所有資料51hei附件下載:
MP3 - 副本.rar (34.76 KB, 下載次數: 13)

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:857072 發表于 2021-9-9 08:40 來自手機 | 顯示全部樓層
你怕是對mp3有什么誤解。。。
回復

使用道具 舉報

ID:277550 發表于 2021-9-9 09:29 | 顯示全部樓層
仿真,

//一番番酸甜苦辣

開始亂響
回復

使用道具 舉報

ID:624769 發表于 2021-9-9 21:11 | 顯示全部樓層
你管這叫MP3? 這充其量屬于,“單片機簡易演奏器”。
回復

使用道具 舉報

ID:885138 發表于 2021-9-10 07:23 來自手機 | 顯示全部樓層
叫mp3是不對啦,不過讓單片機把自己的想法變為led的亮滅閃爍,然后是發出聲音……的確是當年很開心的事:-)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久免费 | 二区视频| 黄色av网站在线观看 | 翔田千里一区二区 | 国产精品日韩一区 | 欧美一级在线观看 | 欧美日韩在线高清 | 国产成人精品久久二区二区91 | 国产激情| 九九热这里只有精品6 | 日韩av在线中文字幕 | 精品乱码一区二区三四区视频 | 免费激情 | 免费国产黄网站在线观看视频 | 黄网站免费在线 | 亚洲视频二 | 欧美激情在线精品一区二区三区 | 国产精品久久久久久影视 | 国产精品a久久久久 | 成年视频在线观看 | 久久久久久高潮国产精品视 | 久久国产福利 | 毛片一区二区 | 国产一区二区 | 色视频在线播放 | 欧美男人天堂 | 精品视频在线观看 | 黄色精品视频网站 | 99久久婷婷国产综合精品电影 | 91观看| 久久这里只有精品首页 | 乱码av午夜噜噜噜噜动漫 | 亚洲精品www | 超碰在线免费 | 日韩欧美一区在线 | 成人欧美一区二区三区在线播放 | 免费国产视频 | 国产一区二区三区 | 成人激情视频网 | 在线色网址 | 久久国产精品偷 |