單片機音樂中音調和節拍的確定方法:調號-音樂上指用以確定樂曲主音高度的符號。很明顯一個八度就有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 #G415A 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 494TH/TL F88B F8F2 F95B F9B7 FA14 FA66 FAB9 FB03 FB4A FB8F FBCF FC0BC調音符 1 1# 2 2# 3 4 4# 5 5# 6 6# 7頻率Hz 523 553 586 621 658 697 739 783 830 879 931 987TH/TL FC43 FC78 FCAB FCDB FD08 FD33 FD5B FD81 FDA5 FDC7 FDE7 FE05C調音符 頻率Hz 1045 1106 1171 1241 1316 1393 1476 1563 1658 1755 1860 1971TH/TL FB21 FE3C FE55 FE6D FE84 FE99 FEAD FEC0 FE02 FEE3 FEF3 FF02
上傳時間: 2013-10-20
上傳用戶:哈哈haha
摘 要: 本文件是C8051單片機I2C總線讀寫測試程序;將跳線器JP6短接,使用外部22.1184MHz晶振. 功能:定義 0 ~ 9 鍵為數字鍵, A ~ F 為功能鍵。按 A 鍵后,可按0 ~ 9 數字鍵, 從零地址開始存儲該鍵值,并送LED數碼管上顯示該鍵值。按 C 鍵停止后,按 B 鍵, 從零地址開始讀取數據值,并送LED數碼管上顯示。讀取速度每秒一次。在按 C 鍵停止后,可按 A 鍵重新輸入。
上傳時間: 2015-09-02
上傳用戶:sevenbestfei
摘 要: 本文件是C8051單片機LCD測試程序,功能:定義 A ~ F 為功能鍵。按"A"顯示畫點圖形,按"B" 顯示畫直線圖形, 按"C"顯示畫矩型圖形,按"D"顯示畫矩型圖形,按"E"顯示畫圓形圖形, "F"顯示待機界面. 將跳線器J8短接J16斷開,R44閑置。使用外部22.1184MHz晶振。
上傳時間: 2013-12-02
上傳用戶:xyipie
功能:使用CCU的4個模塊,實現非對稱PWM輸出。 說明:將跳線器J5、J6、J27取出,J3短接到OCD端,在JP6的PWM1、PWM2、PWM3 分別測試模塊A、B、C的輸出,DAOUT是模塊D輸出經漏波后的電壓。 通過跳線器J8、J9選擇高頻晶振6MHz。
上傳時間: 2014-01-04
上傳用戶:CHENKAI
本文件是I2C總線讀寫測試程序;將跳線器JP6短接,使用外部22.1184MHz晶振. 功能:定義 0 ~ 9 鍵為數字鍵, A ~ F 為功能鍵。按 A 鍵后,可按0 ~ 9 數字鍵, 從零地址開始存儲該鍵值,并送LED數碼管上顯示該鍵值。按 B 鍵后,從零地 址開始讀取數據值,并送LED數碼管上顯示。讀取速度每秒一次。按 C 鍵后, 停止任何操作。
上傳時間: 2013-12-21
上傳用戶:guanliya
文件是I2C總線讀寫測試程序;將跳線器JP6短接,使用外部22.1184MHz晶振. * 功能:定義 0 ~ 9 鍵為數字鍵, A ~ F 為功能鍵。按 A 鍵后,可按0 ~ 9 數字鍵, * 從零地址開始存儲該鍵值,并送LED數碼管上顯示該鍵值。按 B 鍵后,從零地 * 址開始讀取數據值,并送LED數碼管上顯示。讀取速度每秒一次。按 C 鍵后, * 停止任何操作。
上傳時間: 2016-06-13
上傳用戶:tedo811
本文件是LCD測試程序,功能:開機顯示"銘朗科技,WWW.MLARM.COM"信息,為待機界面。 * 定義 A ~ F 為功能鍵。按"A"顯示畫點圖形,按"B"顯示畫直線圖形,按"C"顯示畫矩型圖形, * 按"D"顯示畫矩型圖形,按"E"顯示畫圓形圖形, "F"顯示待機界面.將跳線器JP8短接,R44閑置。 * 使用外部22.1184MHz晶振.
上傳時間: 2016-06-13
上傳用戶:nanxia
1.有三根桿子A,B,C。A桿上有若干碟子 2.每次移動一塊碟子,小的只能疊在大的上面 3.把所有碟子從A桿全部移到C桿上 經過研究發現,漢諾塔的破解很簡單,就是按照移動規則向一個方向移動金片: 如3階漢諾塔的移動:A→C,A→B,C→B,A→C,B→A,B→C,A→C 此外,漢諾塔問題也是程序設計中的經典遞歸問題
上傳時間: 2016-07-25
上傳用戶:gxrui1991
數字音樂盒 (1) 硬件電路中用P1.0~P1.7控制按鍵,其中P1.0~P1.3掃描行,P1.4~P1.7掃描列。 (2) 用P0.0~P0.7,P2.0~P2.7控制LED,其中P0.0~P0.7控制七段碼a,b,c,d,e,f,g,用P2.0~P2.7為數碼管位選信號。 (3) 用,P2.0~P2.2作為LCD的RS,R/W,E的控制信號。用P0.0~P0.7作為LCD的D0~D7的控制信號。 (4) 用P3.7口控制蜂鳴器(J2,J4斷開,J3短接)。 (5) 電路為12MHZ晶振頻率工作,起振電路中C1,C2均為30pf。
上傳時間: 2016-12-03
上傳用戶:ruixue198909
板上資源: LM2576電源,MAX3232電平轉換芯片,11.0592M有源晶振,ATMEGA128L,FM32256(鐵電),滑槽式SIM卡座,40PZIF接插件,通信 模塊支持CM320,TC35i,MC35i,MC39i,GTM900A/B等模塊。 使用方法:1、不焊接M128和FM32256以及晶振,將橋接電阻R29,R30,R31焊上,就是標準串口無線MODEM,根據模塊不同可以支持GPRS和CDMA, 當然也可以作為GSM貓或者短信貓來使用。 2、焊上M128芯片,FM32256可以根據實際需要決定是否使用,除了支持上面的應用模式外,還能做成不需要上位機的透明傳輸模塊, 實現單片機或者一些非計算機設備無線上網傳輸數據的要求。
上傳時間: 2017-01-19
上傳用戶:ukuk