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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3117|回復: 4
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
包含Proteus仿真和源碼


單片機源程序如下:
  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附件下載:
MP3 - 副本.rar (34.76 KB, 下載次數: 13)

評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:857072 發表于 2021-9-9 08:40 來自觸屏版 | 只看該作者
你怕是對mp3有什么誤解。。。
回復

使用道具 舉報

板凳
ID:277550 發表于 2021-9-9 09:29 | 只看該作者
仿真,

//一番番酸甜苦辣

開始亂響
回復

使用道具 舉報

無效樓層,該帖已經被刪除
5#
ID:624769 發表于 2021-9-9 21:11 | 只看該作者
你管這叫MP3? 這充其量屬于,“單片機簡易演奏器”。
回復

使用道具 舉報

6#
ID:885138 發表于 2021-9-10 07:23 來自觸屏版 | 只看該作者
叫mp3是不對啦,不過讓單片機把自己的想法變為led的亮滅閃爍,然后是發出聲音……的確是當年很開心的事:-)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91久久国产综合久久91精品网站 | 国产精品一区二区久久 | 欧美日韩淫片 | 免费激情网站 | caoporn国产 | 国产亚洲精品久久19p | 91精品国产91久久久久游泳池 | 欧美大片一区 | 亚洲一区中文字幕 | 三级成人在线 | 99热精品久久 | 亚洲一区中文 | 最新黄色在线观看 | 亚洲欧美日韩中文字幕一区二区三区 | av永久| 亚洲成av人影片在线观看 | 日韩精品在线一区 | 婷婷桃色网| 成人黄色电影在线观看 | 亚洲精品久久久久久国产精华液 | 欧美1区| 中文字幕第十五页 | 风间由美一区二区三区在线观看 | 久久久性色精品国产免费观看 | 国产精品视频网 | 久久91精品国产 | 日韩欧美中文字幕在线观看 | 2018天天干天天操 | 国产精品久久久爽爽爽麻豆色哟哟 | 日韩精品一区在线观看 | 久综合| 国产精品一区二区av | 91亚洲精品国偷拍自产在线观看 | 理论片87福利理论电影 | 国产乱码精品一区二三赶尸艳谈 | 黄在线免费观看 | 精品久久久久久久久久 | 久久成人精品视频 | 性做久久久久久免费观看欧美 | 亚洲人成网亚洲欧洲无码 | 国产精品s色 |