羅衛星
(山西電力職業技術學院,山西 太原 030021)
單片機音樂播放器設計
羅衛星
(山西電力職業技術學院,山西 太原 030021)
利用單片機播放音樂大概是單片機愛好者感興趣的問題之一。文章從單片機的基本發音出發,談單片機音樂播放器的設計原理,并給出具體實例,以供參考。
單片機;音樂;程序設計
單片機是芯片級計算機系統,它可以嵌入到任何對象體系中去,實現智能化控制。獨具魅力的單片機能使你體會到電腦的真諦,你可以用單片機親自動手設計播放簡單音樂程序等。利用單片機播放音樂大概是單片機愛好者感興趣的問題之一。本文從單片機的基本發音原理出發,談談單片機音樂播放器的設計原理,并給出具體實例,以供參考。
聲音是由物體振動產生的,振動的頻率不同,發出的聲音也就不同,有規律的振動發出的聲音稱為“音樂”。一首音樂是由多個音符構成的。每個音符都對應著一個確定的頻率。例如C調中的“1”對應的振動頻率是524 Hz。因此,可以利用不同頻率的組合,構成人們想要的音樂。
樂曲中不同的音符,實質就是不同頻率的聲音。可以通過單片機定時器計數的方式產生不同頻率的脈沖信號,再利用延時來控制發音的長短,即可控制音調中的節拍,經過放大電路,用P1口的P1.0輸出驅動揚聲器,就產生了美妙和諧的樂曲。人們將樂曲中每一個音符所對應的頻率換算成相應的計數初值。然后,將這首樂曲中所有音符的計數初值編成一個表,并且每一個音符的計數初值對應一個確定的數字碼(簡譜碼)見表1。

表1 簡譜對應的頻率、簡譜碼和計數初值
一首樂曲的每一個音符除了頻率之外,還有不同的節拍,即該音符發音的持續時間。只要設定延時時間就可以求得節拍的時間。例如:假設1/4拍為1DELAY,則1拍應為4DELAY,以此類推。所以只要求出1/4拍的1DELAY時間,其余的節拍就是它的倍數。

表2 各調1/4節拍的時間設定和各調1/8節拍的時間設定
樂曲《梁?!返某绦颍?/p>
ORG 0000H
SJMP MAIN
ORG 000BH
AJMP ZD
ORG 0050H 主程序
MAIN:MOV TMOD,#01H
MOV IE,#82H
LOOP:MOV R0,#00;取簡譜碼指針
NEXT:MOV A,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR;查表取音調和節拍
MOV R2,A
JZ TZ;為零,不進行處理
ANL A,#0FH;不是,則取低4位(節拍碼)
MOV R5,A;將節拍碼存入R5
MOV A,R2;將取到的簡譜碼再載入A
SWAP A
ANL A,#0FH;取低4位(音符碼)
JNZ LOOP1;根據音調決定是否演奏.
CLR TR0
SJMP DELAY
LOOP1:DEC A;取到的音符碼減 1(不含 0)
MOV 25H,A
RL A
MOV DPTR,#TAB1;至TABLE1取相對的高位字節計數值
MOVC A,@A+DPTR
MOV TH0,A;取到的高位字節存入TH0
MOV 21H,A;取到的高位字節存入(21H)
MOV A,22H;在載入取到的音符碼
RL A
INC A
MOVC A,@A+DPTR;至TAB1取相對的低位字節計數值
MOV TL0,A;取到的低位字節存入TL0
MOV 20H,A;取到的低位字節存入(20H)
SETB TR0
D0:LCALL DELAY;其本單位時間1/4拍187毫秒
INC R0;取簡譜碼指針加1
JMP NEXT;取下一個簡譜碼TZ:CLR TR0
JMP LOOP;重復循環
ORG 0200H;定時器中斷服務程序ZD:PUSH ACC
PUSH PSW
MOV TL0,20H
MOV TH0,21H
CPL P1.0;將P1.0位反相,控制蜂鳴器發聲
POP PSW
POP ACC
RETI
DELAY:MOV R7,#02;延時子程序
D2:MOV R4,#187
D3:MOV R3,#248
DJNZ R3,$
DJNZ R4,D3
DJNZ R7,D2
RET
TAB1:決定節拍
DW 64 260,64 400,64 521,64 580
DW 64 684,64 777,64 820,64 898
DW 64 968,65 030,65 058,65 110
DW 65 157,65 178,65 217
TAB:樂曲名稱《梁?!?/p>
DB 02H,82H,62H,52H,48H,02H,52H,32H,22H,18H
DB 83H,91H,72H,62H,51H,61H,71H,61H,83H,61H
DB 81H,51H,61H,71H,61H,51H,46H,82H,32H,52H
DB 22H,42H,16H,21H,41H,18H,0E4H,13H,21H,43H
DB 51H,21H,41H,12H,83H,81H,61H,81H,58H,53H
DB 61H,31H,22H,13H,21H,42H,52H,0E2H,42H,21H
DB 11H,91H,41H,18H,63H,81H,32H,52H,21H,41H,
DB 16H,0E4H,11H,21H,31H,51H,26H,11H,21H,43H
DB 51H,82H,62H,52H,61H,51H,42H,21H,11H,0E4H
DB 44H,21H,41H,21H,11H,0E1H,11H,21H,41H,18H
DB 61H,81H,51H,61H,51H,41H,32H,21H,41H,18H
DB 08H,0H,04H;曲子最后靜音5拍長的時間
DB 00H;樂曲結束
END
[1] 肖婧,《單片機入門與趣味實驗設計》,北京航空航天大學出版社,2008-4,142-144.
Music Player Mono-chip Computers Design
Luo Weixing
The use of Mono-chip Computersr music player is probably the single chip lovers interested in one of the issues.In this paper,the basic pronunciation of Mono-chip Computers,Mono-chip Computers music player to talk about the design principles,and gives concrete examples for reference.
Single Microchip Computer;Music;Programming
TN 912
A
1000-8136(2010)32-0137-02