找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 6869|回復: 7
打印 上一主題 下一主題
收起左側

單片機播放音樂的譜子問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:82702 發(fā)表于 2015-6-11 12:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
大家好!最近對51單片機播放音樂比較感興趣,但中間遇到一些問題特來請教!1.這一首生日歌的歌譜是用簡譜寫的,那么搜索什么可以找到其他的譜子;2.譜子中的1.2.3……是怎么區(qū)分高8位,還是低8位的?3.曲子的頻率的計算公式是如何?或者說怎么用這個代碼移植到其他曲子?#include <reg51.h>
sbit      speaker=P1^5;  
unsigned char timer0h,timer0l,time;
        //生日歌
code unsigned char sszymmh[]={5,1,1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4,
         5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, 1,2,4,
         5,1,1, 5,1,1, 5,2,2, 3,2,2, 1,2,2, 7,1,2, 6,1,2,
         4,2,1, 4,2,1, 3,2,2, 1,2,2, 2,2,2, 1,2,4};
       // 音階頻率表 高八位
code unsigned char FREQH[]={
                                0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,
                                0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i
                                0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,
                                0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,
                               } ;
         // 音階頻率表 低八位
code unsigned char FREQL[]={
                                 0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,
                                 0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i
                                 0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,
                                 0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,
                                };
void delay(unsigned char t)
   {
   unsigned char t1;
   unsigned long t2;
   for(t1=0;t1<t;t1++)
   {
    for(t2=0;t2<8000;t2++)
       {
        ;
        }
   }
   TR0=0;
}
void t0int() interrupt 1
{
TR0=0;
speaker=!speaker;
TH0=timer0h;
TL0=timer0l;
TR0=1;
}
void song()
{
TH0=timer0h;
TL0=timer0l;
TR0=1;
delay(time);                       
}

void main(void)
{
unsigned char k,i;
TMOD=1; //置CT0定時工作方式1
EA=1;
ET0=1;//IE=0x82 //CPU開中斷,CT0開中斷
while(1)
      {
       i=0;  
       while(i<75){         //音樂數(shù)組長度 ,唱完從頭再來        
       k=sszymmh[i]+7*sszymmh[i+1]-1;
       timer0h=FREQH[k];
       timer0l=FREQL[k];
       time=sszymmh[i+2];
       i=i+3;
       song();
        }
      }
  }
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:15020 發(fā)表于 2015-6-11 14:27 | 只看該作者

音樂常識:
單片機音樂中音調(diào)和節(jié)拍的確定方法
簡易的單片機音樂控制
聲音三要素
下載地址:http://d.119g.com/f/0D91F59FCB1A91E6.html

評分

參與人數(shù) 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:82323 發(fā)表于 2015-6-13 14:24 來自手機 | 只看該作者
首先要定義出各個音調(diào)的頻率 ,然后寫入音符,控制好節(jié)拍就ok了

評分

參與人數(shù) 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:82702 發(fā)表于 2015-6-14 15:52 | 只看該作者
yutian_51hei 發(fā)表于 2015-6-11 14:27
音樂常識:
單片機音樂中音調(diào)和節(jié)拍的確定方法
簡易的單片機音樂控制

地址貌似不能用啊~
回復

使用道具 舉報

5#
ID:82702 發(fā)表于 2015-6-14 15:52 | 只看該作者
娃哈哈 發(fā)表于 2015-6-13 14:24
首先要定義出各個音調(diào)的頻率 ,然后寫入音符,控制好節(jié)拍就ok了

可以詳細點嗎~
回復

使用道具 舉報

6#
ID:15020 發(fā)表于 2015-6-16 08:45 | 只看該作者

我沒試過,我看里面有幾個相關資料,里面還有編輯軟件,我想你能用的上
我也在想準備找個時間試一下。
下載地址是可以下的,惡心的網(wǎng)盤沒辦法,你打開鏈接,
下面有文件下載地址:
電信下載   網(wǎng)通下載   備份下載
任先其一者可以下載的

評分

參與人數(shù) 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

7#
ID:83339 發(fā)表于 2015-6-18 09:48 | 只看該作者
哇塞,,好帖子

評分

參與人數(shù) 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

8#
ID:83344 發(fā)表于 2015-6-18 10:52 | 只看該作者
只給看的份了
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表