A. 51單片機譜曲問題
B. 單片機譜曲軟體講解
每一個數值代表並口內輸出高電平的埠。
C. 怎樣把歌譜翻譯成51單片機C程序代碼
用定時器T0的中斷實現"渴望"主題曲的播放
#include<reg51.h> //包含51單片機寄存器定義的頭文件
sbit sound=P3^7; //將sound位定義為P3.7
unsigned int C; //儲存定時器的定時常數
//以下是C調低音的音頻宏定義
#define l_ 262 //將「l_」宏定義為低音「1」的頻率262Hz
#define l_re 286 //將「l_re」宏定義為低音「2」的頻率286Hz
#define l_mi 311 //將「l_mi」宏定義為低音「3」的頻率311Hz
#define l_fa 349 //將「l_fa」宏定義為低音「4」的頻率349Hz
#define l_sao 392 //將「l_sao」宏定義為低音「5」的頻率392Hz
#define l_la 440 //將「l_a」宏定義為低音「6」的頻率440Hz
#define l_xi 494 //將「l_xi」宏定義為低音「7」的頻率494Hz
//以下是C調中音的音頻宏定義
#define 523 //將「」宏定義為中音「1」的頻率523Hz
#define re 587 //將「re」宏定義為中音「2」的頻率587Hz
#define mi 659 //將「mi」宏定義為中音「3」的頻率659Hz
#define fa 698 //將「fa」宏定義為中音「4」的頻率698Hz
#define sao 784 //將「sao」宏定義為中音「5」的頻率784Hz
#define la 880 //將「la」宏定義為中音「6」的頻率880Hz
#define xi 987 //將「xi」宏定義為中音「7」的頻率523H
//以下是C調高音的音頻宏定義
#define h_ 1046 //將「h_」宏定義為高音「1」的頻率1046Hz
#define h_re 1174 //將「h_re」宏定義為高音「2」的頻率1174Hz
#define h_mi 1318 //將「h_mi」宏定義為高音「3」的頻率1318Hz
#define h_fa 1396 //將「h_fa」宏定義為高音「4」的頻率1396Hz
#define h_sao 1567 //將「h_sao」宏定義為高音「5」的頻率1567Hz
#define h_la 1760 //將「h_la」宏定義為高音「6」的頻率1760Hz
#define h_xi 1975 //將「h_xi」宏定義為高音「7」的頻率1975Hz
/*******************************************
函數功能:1個延時單位,延時200ms
******************************************/
void delay()
{
unsigned char i,j;
for(i=0;i<250;i++)
for(j=0;j<250;j++)
;
}
/*******************************************
函數功能:主函數
******************************************/
void main(void)
{
unsigned char i,j;
//以下是《渴望》片頭曲的一段簡譜
unsigned int code f[]={re,mi,re,,l_la,,l_la, //每行對應一小節音符
l_sao,l_mi,l_sao,l_la,,
l_la,,sao,la,mi,sao,
re,
mi,re,mi,sao,mi,
l_sao,l_mi,l_sao,l_la,,
l_la,l_la,,l_la,l_sao,l_re,l_mi,
l_sao,
re,re,sao,la,sao,
fa,mi,sao,mi,
la,sao,mi,re,mi,l_la,,
re,
mi,re,mi,sao,mi,
l_sao,l_mi,l_sao,l_la,,
l_la,,re,l_la,,re,mi,
re,
l_la,,re,l_la,,re,mi,
re,
0xff}; //以0xff作為音符的結束標志
//以下是簡譜中每個音符的節拍
//"4"對應4個延時單位,"2"對應2個延時單位,"1"對應1個延時單位
unsigned char code JP[ ]={4,1,1,4,1,1,2,
2,2,2,2,8,
4,2,3,1,2,2,
10,
4,2,2,4,4,
2,2,2,2,4,
2,2,2,2,2,2,2,
10,
4,4,4,2,2,
4,2,4,4,
4,2,2,2,2,2,2,
10,
4,2,2,4,4,
2,2,2,2,6,
4,2,2,4,1,1,4,
10,
4,2,2,4,1,1,4,
10
};
EA=1; //開總中斷
ET0=1; //定時器T0中斷允許
TMOD=0x00; // 使用定時器T0的模式1(13位計數器)
while(1) //無限循環
{
i=0; //從第1個音符f[0]開始播放
while(f[i]!=0xff) //只要沒有讀到結束標志就繼續播放
{
C=460830/f[i];
TH0=(8192-C)/32; //可證明這是13位計數器TH0高8位的賦初值方法
TL0=(8192-C)%32; //可證明這是13位計數器TL0低5位的賦初值方法
TR0=1; //啟動定時器T0
for(j=0;j<JP[i];j++) //控制節拍數
delay(); //延時1個節拍單位
TR0=0; //關閉定時器T0
i++; //播放下一個音符
}
}
}
/***********************************************************
函數功能:定時器T0的中斷服務子程序,使P3.7引腳輸出音頻的方波
************************************************************/
void Time0(void ) interrupt 1 using 1
{
sound=!sound; //將P3.7引腳輸出電平取反,形成方波
TH0=(8192-C)/32; //可證明這是13位計數器TH0高8位的賦初值方法
TL0=(8192-C)%32; //可證明這是13位計數器TL0低5位的賦初值方法
}
D. 如何用單片機的蜂鳴器譜曲
其實就是設定定時器的時間決定頻率,就能改變音頻,按譜的規律編程就ok
E. 單片機音樂播放器代碼不為誰而作的歌
咨詢記錄 · 回答於2021-11-17
F. 跪求c51單片機蜂鳴器演奏《小蘋果》c語言程序
找個單片機譜曲軟體把小蘋果的數據代碼譯出來然後根據電路寫程序就可以了
G. 求一份C51單片機數字音樂盒(LCD1602顯示歌詞,歌詞需與音樂同步)的課程設計。程序為C語言程序的。
蜂鳴器不能唱歌,只會有調子,不知道顯示歌詞有什麼用,
此外,你給的分太少了,我只給你蜂鳴器唱歌的程序,
一個是單純的如何讓蜂鳴器播放音樂,
一個是紅外遙控播放音樂,音樂部分就只在MUSIC.C裡面,你看一下就行了,
樂音是由物體振動發出的,如果你的蜂鳴器的發聲頻率大約等於樂音的頻率,那麼就能發出類似的調子,具體的音符頻率表在我給的PDF的第30頁。
再奉送你一個專門單片機編歌譜曲的軟體。
H. 單片機譜曲軟體怎麼用
頻率就是音符,每個音符對應一個頻率
I. 各位大神,怎樣用單片機的譜曲軟體進行譜曲
單片機音樂代碼生成器,用你想要的譜曲 輸入後 生成代碼,就可以模擬效果,內有模擬實例可以參考。