導航:首頁 > 操作系統 > 51單片機樂譜

51單片機樂譜

發布時間:2022-09-28 12:31:34

⑴ 哪位大神有51單片機音樂頻譜程序的發給我!謝了!

1、音樂頻譜程序不通用,不同的音樂對應不同的編碼,所以給你你也沒法改造!
2、告訴你最快捷的方法就是網路上下載一個單片機音樂代碼生成器,把你想要的音樂對照的樂譜輸到軟體裡面,然後生成就出來代碼,輸入的是音符,輸出的是完整代碼,直接下載到單片機就可以使用。
3、還可以自己編寫,找到低中高的,ran,mi,fa,sao,la,xi的頻率,自己在定時器寫個不斷改變頻率的定時,輸出不同的頻率就可以了!
希望可以幫到你,如果滿意,請採納!
這是我寫的一段,不用照抄,知道方法改造很快!
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit BEEP = P3^7;
uchar code SONG_TONE[]=
{
212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,129,169,190,119,119,126,159,142,159,0
};
uchar code SONG_LONG[]=
{
9,3,12,12,12,24,9,3,12,12,12,24,9,3,12,12,12,12,12,9,3,12,12,12,24,0
};

void DelayMS(uint ms)
{
uchar t;
while(ms--)
{
for(t=0;t<120;t++);
}
}

void PlayMusic()
{
uint i =0,j,k;
while(SONG_LONG[i]!=0||SONG_TONE[i]!=0)
{
for(j=0;j<SONG_LONG[i]*20;j++)
{
BEEP = ~BEEP;
for(k=0;k<SONG_TONE[i]/3;k++);
}
DelayMS(10);
i++;
}
}

void main()
{
while(1)
{
PlayMusic();
DelayMS(500);
}
}

⑵ 單片機 樂譜編輯怎麼用

A B C D E F G
6 7 1 2 3 4 5

⑶ 用51單片機實現音樂播放的原理是什麼

需要寫一段程序。
如果是簡單的音樂,編樂譜推蜂鳴器就可以;如果是mp3/wav之類的音樂,需要晶元自帶解碼模塊,或者使用外部解碼晶元,還需要dac將聲音推出來。

聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單處機某個口線的「高」電平或低電平,則在該口線上就能產生一定頻率的矩形波,接上喇叭就能發出一定頻率的聲音,若再利用延時程序控制「高」「低」電平的持續時間,就能改變輸出頻率,從而改變音調。要准確奏出一首曲子,必須准確地控制樂曲節奏,即一音符的持續時間。音符的節拍我們可以用定時器T0來控制,送入不同的初值,就可以產生不同的定時時間。便如某歌曲的節奏為每分鍾94拍,即一拍為0.64秒。

⑷ 求51單片機蜂鳴器國歌音符編碼!!!要是c語言寫的!

太簡單了,直接delay把7個聲調 re mi fa sao la xi做出來子函數,調用就可以了這個方法最簡單,適合初學者容易理解。然後找到樂譜,調用你的聲調就可以了

⑸ 高分請教單片機 樂譜的編制

單片機實現音樂的原料很簡單,把樂曲中的符號按次序排成一個表,然後按該表編輯要播放的音樂,再由查表程序依次取出,產生音符並控制節奏。

一般來說結束符為FF,體止符為00, 0x是16進制數字表示法前綴

其他字元的意思,你可以查看你彈片機程序是怎麼定義的就知道了。

⑹ 51單片機音律和節拍是怎麼送到P2.0口的

51單片機產生音樂的原理是每個節拍的持續時間內,將定時的定時時間設為周期的一半,定時器時間到就產生中斷,將P2.0口的狀態取反一次。例如,聲音頻率是1KHZ,周期是1ms,定時500us就可以了 。由於音樂的頻率是有規律的,可以將不同的音符的定時器初值製成表格,主程序根據樂譜內容查表,即可得到頻率有規律的方波,推動揚聲器發聲即可。

⑺ 51單片機簡譜編碼

// 8鍵電子琴C程序 自己根據音節做個與簡譜對應的表就可以了。
#include <AT89X51.H>
sbit SPEAKER = P3^7;
#define KEY P1
unsigned char MUSIC;
unsigned char STH0;
unsigned char STL0;
unsigned int code tab[]={
64021,64103,64260,64400,//低音3開始
64524,64580,64684,64777,
64820,64898,64968,65030,
65058,65110,65157,65178
};
void main(void){
TMOD=0x01;
ET0=1;
EA=1;
KEY = 0xff;
while(1){
if(KEY != 0xff){
switch (~KEY){//顯示的列位置
case 0x01://
MUSIC = 7;
break;//
case 0x02://
MUSIC = 6;
break;//
case 0x04://
MUSIC = 5;
break;//
case 0x08://
MUSIC = 4;
break;//
case 0x10://
MUSIC = 3;
break;//
case 0x20://
MUSIC = 2;
break;//
case 0x40://
MUSIC = 1;
break;//
case 0x80://
MUSIC = 0;
break;//
}
STH0=tab[MUSIC]/256;
STL0=tab[MUSIC]%256;
TR0=1;
}else{
SPEAKER = 1;
TR0=0;
}
}
}
void t0(void) interrupt 1 using 0{
TH0=STH0;
TL0=STL0;
SPEAKER=~SPEAKER;
}

⑻ 51單片機曲譜編寫音樂程序,我看不懂曲譜,誰能教下我!

//《世上只有媽媽好》51單片機C語言程序和音樂采燈程序
//此程序在硬體上調試通過
//本程序的單片機晶振採用11.0592MHZ
//此程序的流水燈隨音樂的節拍的快慢而動

#include <reg51.h>
sbit speaker=P2^0; //接音頻放大電路,
//sbit speaker=P3^2;
sbit sw=P3^0; //電後位後,sw合上後就開始放音樂,燈開始閃動,sw斷開,音樂停 止, 燈也同時停止閃動
unsigned char timer0h,timer0l,time,led=1,j=0;
unsigned char flagd=0;
//世上只有媽媽好數據表
code unsigned char sszymmh[]={ 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1,
6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1,
6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2,
5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1,
2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0
} ;
// 音階頻率表 高八位
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;
time=1;
sw=1;
while(time)
{
if(sw)
{P1=0;i=0;continue;}
if(j==8)
{
//led=1;
j=0;flagd=~flagd;
if(flagd)
{
led=0x80;
}
else
{
led=1;
}
}

else
{
P1=~led;
if(flagd)
{
led=led>>1;
}
else
{
led=le d<<1;
}
j++;
}
k=sszymmh[i]+7*sszymmh[i+1]-1;
timer0h=FREQH[k];
timer0l=FREQL[k];
time=sszymmh[i+2];
i=i+3;
song();
}
}
}

⑼ 誰能講解一下用51單片機寫音樂樂譜

用51單片機寫音樂樂譜 的單片機音樂代碼生成器,可以參考一下,下載附件 有 模擬實例可以模擬試試。


⑽ 51單片機編歡樂頌的樂譜

請問如何把MIDI樂譜寫入單片機

21ic有相關的討論,你可以去看看,有沒有幫助

閱讀全文

與51單片機樂譜相關的資料

熱點內容
電線平方數演算法 瀏覽:196
有一個電影男主叫馬克 瀏覽:779
韓國,補課電影演員表 瀏覽:182
linux查看系統命令是什麼 瀏覽:32
matlab歷史命令 瀏覽:219
主角穿越到工作細胞的小說 瀏覽:102
九十年代香港老太太鬼電影 瀏覽:871
特工劉堅是李連傑的哪部電影 瀏覽:334
極坐標運演算法則 瀏覽:605
十大香港全漏電影 瀏覽:335
小虎還鄉裡面的驢叫什麼 瀏覽:499
誰有小電影網址啊 瀏覽:376
香港滿清十大酷刑一共有幾部電影 瀏覽:709
icloud發件伺服器埠是什麼 瀏覽:572
天殘腳電影 瀏覽:335
十部必看剿匪電影 瀏覽:692
免費台灣理論 瀏覽:132
大地影院明天有什麼電影 瀏覽:483
金石學pdf 瀏覽:696
河南天工集團廣訊通伺服器地址 瀏覽:420