資料介紹
單片機(jī)音樂(lè)中音調(diào)和節(jié)拍的確定方法:調(diào)號(hào)-音樂(lè)上指用以確定樂(lè)曲主音高度的符號(hào)。
很明顯一個(gè)八度就有12個(gè)半音。
A、B、C、D、E、F、G。經(jīng)過(guò)聲學(xué)家的研究,全世界都用這些字母來(lái)表示固定的音高。比如,A這個(gè)音,標(biāo)準(zhǔn)的音高為每秒鐘振動(dòng)440周。
升C調(diào):1=#C,也就是降D調(diào):1=BD;277(頻率)
升D調(diào):1=#D,也就是降E調(diào):1=BE;311
升F調(diào):1=#F,也就是降G調(diào):1=BG;369
升G調(diào):1=#G,也就是降A(chǔ)調(diào):1=BA;415
升A調(diào):1=#A,也就是降B調(diào):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,就是說(shuō),這首歌曲的“導(dǎo)”要唱得同A一樣高,人們也把這首歌曲叫做A調(diào)歌曲,或叫“唱A調(diào)”。1=C,就是說(shuō),這首歌曲的“導(dǎo)”要唱得同C一樣高,或者說(shuō)“這歌曲唱C調(diào)”。同樣是“導(dǎo)”,不同的調(diào)唱起來(lái)的高低是不一樣的。
各調(diào)的對(duì)應(yīng)的標(biāo)準(zhǔn)頻率為:
單片機(jī)演奏音樂(lè)時(shí)音調(diào)和節(jié)拍的確定方法
?經(jīng)常看到一些剛學(xué)單片機(jī)的朋友對(duì)單片機(jī)演奏音樂(lè)比較有興趣,本人也曾是這樣。在此,本人將就這方面的知識(shí)做一些簡(jiǎn)介,但愿能對(duì)單片機(jī)演奏音樂(lè)比較有興趣而又不知其解的朋友能有所啟迪。
?一般說(shuō)來(lái),單片機(jī)演奏音樂(lè)基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說(shuō)不能象電子琴那樣能奏出多種音色的聲音。因此單片機(jī)奏樂(lè)只需弄清楚兩個(gè)概念即可,也就是“音調(diào)”和“節(jié)拍”。音調(diào)表示一個(gè)音符唱多高的頻率,節(jié)拍表示一個(gè)音符唱多長(zhǎng)的時(shí)間。
?在音樂(lè)中所謂“音調(diào)”,其實(shí)就是我們常說(shuō)的“音高”。在音樂(lè)中常把中央C上方的A音定為標(biāo)準(zhǔn)音高,其頻率f=440Hz。當(dāng)兩個(gè)聲音信號(hào)的頻率相差一倍時(shí),也即f2=2f1時(shí),則稱(chēng)f2比f(wàn)1高一個(gè)倍頻程, 在音樂(lè)中1(do)與 ,2(來(lái))與 ……正好相差一個(gè)倍頻程,在音樂(lè)學(xué)中稱(chēng)它相差一個(gè)八度音。在一個(gè)八度音內(nèi),有12個(gè)半音。以1—i八音區(qū)為例, 12個(gè)半音是: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個(gè)音階的分度基本上是以對(duì)數(shù)關(guān)系來(lái)劃分的。如果我們只要知道了這十二個(gè)音符的音高,也就是其基本音調(diào)的頻率,我們就可根據(jù)倍頻程的關(guān)系得到其他音符基本音調(diào)的頻率。
?知道了一個(gè)音符的頻率后,怎樣讓單片機(jī)發(fā)出相應(yīng)頻率的聲音呢?一般說(shuō)來(lái),常采用的方法就是通過(guò)單片機(jī)的定時(shí)器定時(shí)中斷,將單片機(jī)上對(duì)應(yīng)蜂鳴器的I/O口來(lái)回取反,或者說(shuō)來(lái)回清零,置位,從而讓蜂鳴器發(fā)出聲音,為了讓單片機(jī)發(fā)出不同頻率的聲音,我們只需將定時(shí)器予置不同的定時(shí)值就可實(shí)現(xiàn)。那么怎樣確定一個(gè)頻率所對(duì)應(yīng)的定時(shí)器的定時(shí)值呢?以標(biāo)準(zhǔn)音高A為例:
???A的頻率f = 440 Hz,其對(duì)應(yīng)的周期為:
T = 1/ f = 1/440 =2272μs
由上圖可知,單片機(jī)上對(duì)應(yīng)蜂鳴器的I/O口來(lái)回取反的時(shí)間應(yīng)為:
t = T/2 = 2272/2 = 1136μs
這個(gè)時(shí)間t也就是單片機(jī)上定時(shí)器應(yīng)有的中斷觸發(fā)時(shí)間。一般情況下,單片機(jī)奏樂(lè)時(shí),其定時(shí)器為工作方式1,它以振蕩器的十二分頻信號(hào)為計(jì)數(shù)脈沖。設(shè)振蕩器頻率為f0,則定時(shí)器的予置初值由下式來(lái)確定:
????t = 12 *(TALL – THL)/ f0
?式中TALL = 216 = 65536,THL為定時(shí)器待確定的計(jì)數(shù)初值。因此定時(shí)器的高低計(jì)數(shù)器的初值為:?
????TH = THL / 256 = ( TALL – t* f0/12) / 256
????TL = THL % 256 = ( TALL – t* f0/12) %256
?將t=1136μs代入上面兩式(注意:計(jì)算時(shí)應(yīng)將時(shí)間和頻率的單位換算一致),即可求出標(biāo)準(zhǔn)音高A在單片機(jī)晶振頻率f0=12Mhz,定時(shí)器在工作方式1下的定時(shí)器高低計(jì)數(shù)器的予置初值為 :
????TH440Hz = (65536 – 1136 * 12/12) /256 = FBH
????TL440Hz = (65536 – 1136 * 12/12)%256 = 90H
根據(jù)上面的求解方法,我們就可求出其他音調(diào)相應(yīng)的計(jì)數(shù)器的予置初值。
?音符的節(jié)拍我們可以舉例來(lái)說(shuō)明。在一張樂(lè)譜中,我們經(jīng)常會(huì)看到這樣的表達(dá)式,如1=C? 、1=G …… 等等,這里1=C,1=G表示樂(lè)譜的曲調(diào),和我們前面所談的音調(diào)有很大的關(guān)聯(lián), 、 就是用來(lái)表示節(jié)拍的。以 為例加以說(shuō)明,它表示樂(lè)譜中以四分音符為節(jié)拍,每一小結(jié)有三拍。比如:?????
其中1 、2 為一拍,3、4、5為一拍,6為一拍共三拍。1 、2的時(shí)長(zhǎng)為四分音符的一半,即為八分音符長(zhǎng),3、4的時(shí)長(zhǎng)為八分音符的一半,即為十六分音符長(zhǎng),5的時(shí)長(zhǎng)為四分音符的一半,即為八分音符長(zhǎng),6的時(shí)長(zhǎng)為四分音符長(zhǎng)。那么一拍到底該唱多長(zhǎng)呢?一般說(shuō)來(lái),如果樂(lè)曲沒(méi)有特殊說(shuō)明,一拍的時(shí)長(zhǎng)大約為400—500ms 。我們以一拍的時(shí)長(zhǎng)為400ms為例,則當(dāng)以四分音符為節(jié)拍時(shí),四分音符的時(shí)長(zhǎng)就為400ms,八分音符的時(shí)長(zhǎng)就為200ms,十六分音符的時(shí)長(zhǎng)就為100ms。
可見(jiàn),在單片機(jī)上控制一個(gè)音符唱多長(zhǎng)可采用循環(huán)延時(shí)的方法來(lái)實(shí)現(xiàn)。首先,我們確定一個(gè)基本時(shí)長(zhǎng)的延時(shí)程序,比如說(shuō)以十六分音符的時(shí)長(zhǎng)為基本延時(shí)時(shí)間,那么,對(duì)于一個(gè)音符,如果它為十六分音符,則只需調(diào)用一次延時(shí)程序,如果它為八分音符,則只需調(diào)用二次延時(shí)程序,如果它為四分音符,則只需調(diào)用四次延時(shí)程序,依次類(lèi)推。
通過(guò)上面關(guān)于一個(gè)音符音調(diào)和節(jié)拍的確定方法,我們就可以在單片機(jī)上實(shí)現(xiàn)演奏音樂(lè)了。具體的實(shí)現(xiàn)方法為:將樂(lè)譜中的每個(gè)音符的音調(diào)及節(jié)拍變換成相應(yīng)的音調(diào)參數(shù)和節(jié)拍參數(shù),將他們做成數(shù)據(jù)表格,存放在存儲(chǔ)器中,通過(guò)程序取出一個(gè)音符的相關(guān)參數(shù),播放該音符,該音符唱完后,接著取出下一個(gè)音符的相關(guān)參數(shù)……,如此直到播放完畢最后一個(gè)音符,根據(jù)需要也可循環(huán)不停地播放整個(gè)樂(lè)曲。另外,對(duì)于樂(lè)曲中的休止符,一般將其音調(diào)參數(shù)設(shè)為FFH,F(xiàn)FH,其節(jié)拍參數(shù)與其他音符的節(jié)拍參數(shù)確定方法一致,樂(lè)曲結(jié)束用節(jié)拍參數(shù)為00H來(lái)表示。
下面給出部分音符(三個(gè)八度音)的頻率以及以單片機(jī)晶振頻率f0=12Mhz,定時(shí)器在工作方式1下的定時(shí)器高低計(jì)數(shù)器的予置初值 :
?
C調(diào)音符?
頻率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調(diào)音符?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調(diào)音符?
頻率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單片機(jī)的蜂鳴器播放音樂(lè)源代碼 68次下載
- 基于51單片機(jī)的播放音樂(lè)實(shí)驗(yàn)設(shè)計(jì)資料源程序文件 15次下載
- 基于51單片機(jī)的單片機(jī)播放音樂(lè)實(shí)驗(yàn)設(shè)計(jì)資料源程序 0次下載
- STM8 開(kāi)發(fā)故事--之蜂鳴器 BEEP設(shè)計(jì)簡(jiǎn)單的音樂(lè)(三)
- 基于51單片機(jī)的音樂(lè)播放器音樂(lè)盒仿真原理圖方案設(shè)計(jì)
- GPS接收機(jī)碼間偏差DCB的確定
- 基于51單片機(jī)的音樂(lè)播放器的制作 113次下載
- 如何使用單片機(jī)實(shí)現(xiàn)音樂(lè)編程 14次下載
- 使用51單片機(jī)實(shí)現(xiàn)音樂(lè)盒的設(shè)計(jì)論文 120次下載
- 單片機(jī)生成的音樂(lè)代碼免費(fèi)下載 37次下載
- 單片機(jī)的音樂(lè)播放器設(shè)計(jì)(C程序及注釋)[詳解音調(diào)、節(jié)拍的確定] 138次下載
- 單片機(jī)音樂(lè)中音調(diào)和節(jié)拍的確定方法 1次下載
- 單片機(jī)音樂(lè)中音調(diào)和節(jié)拍的確定方法 13次下載
- 單片機(jī)音樂(lè)中音調(diào)和節(jié)拍的確定方法 14次下載
- 舞蹈機(jī)器人中音樂(lè)節(jié)拍的識(shí)別 48次下載
- 基于海速芯TM52F1376單片機(jī)的移動(dòng)式音樂(lè)噴泉設(shè)計(jì) 740次閱讀
- 51單片機(jī)燒寫(xiě)程序的方法 5657次閱讀
- 基于單片機(jī)的定時(shí)器的設(shè)計(jì)方法 1w次閱讀
- 單片機(jī)程序的編寫(xiě)方法 4425次閱讀
- 如何確保單片機(jī)精確定時(shí)控制有哪些編程方法詳細(xì)說(shuō)明 4157次閱讀
- 單片機(jī)和單片機(jī)是怎樣通信的 6881次閱讀
- PIC單片機(jī)和AVR單片機(jī)IO的操作方法解析 2728次閱讀
- 單片機(jī)解密原理_單片機(jī)解密方法 1.1w次閱讀
- 8051單片機(jī)有哪些復(fù)位方法 1.1w次閱讀
- 51單片機(jī)時(shí)鐘電路原理是什么?圖文詳解 8.4w次閱讀
- 新手學(xué)習(xí)單片機(jī)的首選:51單片機(jī) 8836次閱讀
- 基于Proteus單片機(jī)的音樂(lè)演奏實(shí)現(xiàn)系統(tǒng) 5631次閱讀
- 單片機(jī)的通信性能分析與評(píng)價(jià)方法 2312次閱讀
- 單片機(jī)基礎(chǔ)知識(shí):單片機(jī)集成電路封裝類(lèi)型及引腳識(shí)別方法 1.1w次閱讀
- 對(duì)單片機(jī)系統(tǒng)可行的EMS技術(shù)方法 1798次閱讀
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 651單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)大棚環(huán)境控制器仿真程序
- 1.10 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論