資料介紹
單片機音樂中音調和節拍的確定方法:調號-音樂上指用以確定樂曲主音高度的符號。
很明顯一個八度就有12個半音。
A、B、C、D、E、F、G。經過聲學家的研究,全世界都用這些字母來表示固定的音高。比如,A這個音,標準的音高為每秒鐘振動440周。
升C調:1=#C,也就是降D調:1=BD;277(頻率)
升D調:1=#D,也就是降E調:1=BE;311
升F調:1=#F,也就是降G調:1=BG;369
升G調:1=#G,也就是降A調:1=BA;415
升A調:1=#A,也就是降B調:1=BB。466,
C 262?? #C277?? D 294?? #D(bE)311? E 330?? F 349?? #F369?? G 392? #G415
A 440.??? #A466??? B 494
所謂1=A,就是說,這首歌曲的“導”要唱得同A一樣高,人們也把這首歌曲叫做A調歌曲,或叫“唱A調”。1=C,就是說,這首歌曲的“導”要唱得同C一樣高,或者說“這歌曲唱C調”。同樣是“導”,不同的調唱起來的高低是不一樣的。
各調的對應的標準頻率為:
單片機演奏音樂時音調和節拍的確定方法
?經常看到一些剛學單片機的朋友對單片機演奏音樂比較有興趣,本人也曾是這樣。在此,本人將就這方面的知識做一些簡介,但愿能對單片機演奏音樂比較有興趣而又不知其解的朋友能有所啟迪。
?一般說來,單片機演奏音樂基本都是單音頻率,它不包含相應幅度的諧波頻率,也就是說不能象電子琴那樣能奏出多種音色的聲音。因此單片機奏樂只需弄清楚兩個概念即可,也就是“音調”和“節拍”。音調表示一個音符唱多高的頻率,節拍表示一個音符唱多長的時間。
?在音樂中所謂“音調”,其實就是我們常說的“音高”。在音樂中常把中央C上方的A音定為標準音高,其頻率f=440Hz。當兩個聲音信號的頻率相差一倍時,也即f2=2f1時,則稱f2比f1高一個倍頻程, 在音樂中1(do)與 ,2(來)與 ……正好相差一個倍頻程,在音樂學中稱它相差一個八度音。在一個八度音內,有12個半音。以1—i八音區為例, 12個半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。這12個音階的分度基本上是以對數關系來劃分的。如果我們只要知道了這十二個音符的音高,也就是其基本音調的頻率,我們就可根據倍頻程的關系得到其他音符基本音調的頻率。
?知道了一個音符的頻率后,怎樣讓單片機發出相應頻率的聲音呢?一般說來,常采用的方法就是通過單片機的定時器定時中斷,將單片機上對應蜂鳴器的I/O口來回取反,或者說來回清零,置位,從而讓蜂鳴器發出聲音,為了讓單片機發出不同頻率的聲音,我們只需將定時器予置不同的定時值就可實現。那么怎樣確定一個頻率所對應的定時器的定時值呢?以標準音高A為例:
???A的頻率f = 440 Hz,其對應的周期為:
T = 1/ f = 1/440 =2272μs
由上圖可知,單片機上對應蜂鳴器的I/O口來回取反的時間應為:
t = T/2 = 2272/2 = 1136μs
這個時間t也就是單片機上定時器應有的中斷觸發時間。一般情況下,單片機奏樂時,其定時器為工作方式1,它以振蕩器的十二分頻信號為計數脈沖。設振蕩器頻率為f0,則定時器的予置初值由下式來確定:
????t = 12 *(TALL – THL)/ f0
?式中TALL = 216 = 65536,THL為定時器待確定的計數初值。因此定時器的高低計數器的初值為:?
????TH = THL / 256 = ( TALL – t* f0/12) / 256
????TL = THL % 256 = ( TALL – t* f0/12) %256
?將t=1136μs代入上面兩式(注意:計算時應將時間和頻率的單位換算一致),即可求出標準音高A在單片機晶振頻率f0=12Mhz,定時器在工作方式1下的定時器高低計數器的予置初值為 :
????TH440Hz = (65536 – 1136 * 12/12) /256 = FBH
????TL440Hz = (65536 – 1136 * 12/12)%256 = 90H
根據上面的求解方法,我們就可求出其他音調相應的計數器的予置初值。
?音符的節拍我們可以舉例來說明。在一張樂譜中,我們經常會看到這樣的表達式,如1=C? 、1=G …… 等等,這里1=C,1=G表示樂譜的曲調,和我們前面所談的音調有很大的關聯, 、 就是用來表示節拍的。以 為例加以說明,它表示樂譜中以四分音符為節拍,每一小結有三拍。比如:?????
其中1 、2 為一拍,3、4、5為一拍,6為一拍共三拍。1 、2的時長為四分音符的一半,即為八分音符長,3、4的時長為八分音符的一半,即為十六分音符長,5的時長為四分音符的一半,即為八分音符長,6的時長為四分音符長。那么一拍到底該唱多長呢?一般說來,如果樂曲沒有特殊說明,一拍的時長大約為400—500ms 。我們以一拍的時長為400ms為例,則當以四分音符為節拍時,四分音符的時長就為400ms,八分音符的時長就為200ms,十六分音符的時長就為100ms。
可見,在單片機上控制一個音符唱多長可采用循環延時的方法來實現。首先,我們確定一個基本時長的延時程序,比如說以十六分音符的時長為基本延時時間,那么,對于一個音符,如果它為十六分音符,則只需調用一次延時程序,如果它為八分音符,則只需調用二次延時程序,如果它為四分音符,則只需調用四次延時程序,依次類推。
通過上面關于一個音符音調和節拍的確定方法,我們就可以在單片機上實現演奏音樂了。具體的實現方法為:將樂譜中的每個音符的音調及節拍變換成相應的音調參數和節拍參數,將他們做成數據表格,存放在存儲器中,通過程序取出一個音符的相關參數,播放該音符,該音符唱完后,接著取出下一個音符的相關參數……,如此直到播放完畢最后一個音符,根據需要也可循環不停地播放整個樂曲。另外,對于樂曲中的休止符,一般將其音調參數設為FFH,FFH,其節拍參數與其他音符的節拍參數確定方法一致,樂曲結束用節拍參數為00H來表示。
下面給出部分音符(三個八度音)的頻率以及以單片機晶振頻率f0=12Mhz,定時器在工作方式1下的定時器高低計數器的予置初值 :
?
C調音符?
頻率Hz?262?277?293?311?329?349?370?392?415?440?466?494
TH/TL?F88B?F8F2?F95B?F9B7?FA14?FA66?FAB9?FB03?FB4A?FB8F?FBCF?FC0B
C調音符?1?1#?2?2#?3?4?4#?5?5#?6?6#?7
頻率Hz?523?553?586?621?658?697?739?783?830?879?931?987
TH/TL?FC43?FC78?FCAB?FCDB?FD08?FD33?FD5B?FD81?FDA5?FDC7?FDE7?FE05
C調音符?
頻率Hz?1045?1106?1171?1241?1316?1393?1476?1563?1658?1755?1860?1971
TH/TL?FB21?FE3C?FE55?FE6D?FE84?FE99?FEAD?FEC0?FE02?FEE3?FEF3?FF02
- 基于51單片機的蜂鳴器播放音樂源代碼 55次下載
- 基于51單片機的播放音樂實驗設計資料源程序文件 1次下載
- 基于51單片機的單片機播放音樂實驗設計資料源程序 0次下載
- STM8 開發故事--之蜂鳴器 BEEP設計簡單的音樂(三)
- 基于51單片機的音樂播放器音樂盒仿真原理圖方案設計
- GPS接收機碼間偏差DCB的確定
- 基于51單片機的音樂播放器的制作 105次下載
- 如何使用單片機實現音樂編程 14次下載
- 使用51單片機實現音樂盒的設計論文 115次下載
- 單片機生成的音樂代碼免費下載 37次下載
- 單片機的音樂播放器設計(C程序及注釋)[詳解音調、節拍的確定] 138次下載
- 單片機音樂中音調和節拍的確定方法 1次下載
- 單片機音樂中音調和節拍的確定方法 13次下載
- 單片機音樂中音調和節拍的確定方法 14次下載
- 舞蹈機器人中音樂節拍的識別 48次下載
- 基于海速芯TM52F1376單片機的移動式音樂噴泉設計 596次閱讀
- 51單片機燒寫程序的方法 4928次閱讀
- 基于單片機的定時器的設計方法 1w次閱讀
- 單片機程序的編寫方法 4091次閱讀
- 如何確保單片機精確定時控制有哪些編程方法詳細說明 3985次閱讀
- 單片機和單片機是怎樣通信的 6753次閱讀
- PIC單片機和AVR單片機IO的操作方法解析 2608次閱讀
- 單片機解密原理_單片機解密方法 1.1w次閱讀
- 8051單片機有哪些復位方法 1.1w次閱讀
- 51單片機時鐘電路原理是什么?圖文詳解 8.4w次閱讀
- 新手學習單片機的首選:51單片機 8535次閱讀
- 基于Proteus單片機的音樂演奏實現系統 5316次閱讀
- 單片機的通信性能分析與評價方法 2102次閱讀
- 單片機基礎知識:單片機集成電路封裝類型及引腳識別方法 1w次閱讀
- 對單片機系統可行的EMS技術方法 1637次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 651單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 751單片機大棚環境控制器仿真程序
- 1.10 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多