何 穎,張耀楠,董昌孝
(西安思源學院 陜西 西安710038)
智能音樂自動彈奏、錄制、播放音樂盒的設(shè)計
何 穎,張耀楠,董昌孝
(西安思源學院 陜西 西安710038)
很多音樂芯片模塊價格比較昂貴并且其功能被寫死,用法不靈活。對于只需要產(chǎn)生小段音樂時,可通過單片機發(fā)送PWM波,控制蜂鳴器發(fā)聲。該系統(tǒng)采用單片機完成軟硬件設(shè)計與制作。系統(tǒng)硬件主要由AltiumDesigner09繪制,軟件主要完成擦除模塊、彈奏模塊、播放內(nèi)置音樂模塊以及播放存儲音樂模塊4個模塊的功能。實際應(yīng)用表明,設(shè)計方案性價比高、低功耗、移植性強。
單片機;彈奏錄制;播放音樂;擦除;蜂鳴器
單片機因其價格低廉,功能強大,體積小,深受電子設(shè)計愛好者的青睞[1]。 STC系列是現(xiàn)代電子設(shè)計最常用一款,其中51系列更是被稱為經(jīng)典,因為51系列有功能豐富的指令集[2-3],在智能玩具,電子賀卡等場景中廣泛使用,這些產(chǎn)品可在蜂鳴聲驅(qū)動器單芯片中使用,也就是連接到配置的音樂,可在編程界面來控制不同的聲音產(chǎn)生音樂。
目前市場上有很多音樂芯片模塊,能夠直接產(chǎn)生多樣性的音樂,但這種這個模塊,價格比較昂貴并且其功能被寫死,用法不靈活。對于只需要產(chǎn)生小段音樂的場合,可通過單片機發(fā)送PWM波,控制蜂鳴器發(fā)聲[4]。
1.1 音調(diào)和節(jié)拍
音調(diào)表示的是一個高頻率的音符,反映了頻率的大小。如果f1和f2兩個音符相差一倍的頻率,則稱f2比f1高一個倍頻程。節(jié)拍則表示的是一個音符唱的時間單片機可以通過延遲的方法來控制一個音符唱多長的時間,從而實現(xiàn)對節(jié)拍的控制[5-6]。
1.2 單片機實現(xiàn)音樂播放
只用單片機來實現(xiàn)音樂播放,需將要播放的音樂轉(zhuǎn)化為數(shù)組放到軟件程序中,然后逐個播放音符即可。
1)單片機初始化,設(shè)置單片機計數(shù)器的工作方式及中斷方式和中斷優(yōu)先級;
2)將樂譜中的音符轉(zhuǎn)換為相應(yīng)的音調(diào)和節(jié)拍參數(shù),定義這些參數(shù)為兩個數(shù)組;
3)通過程序依次取出數(shù)組中的一個相關(guān)參數(shù),賦值給單片機定時器作為定時初值,每當定時時間到,切換高電平和低電平,驅(qū)動蜂鳴器逐個播放音符;
4)直到取出最后一個參數(shù),根據(jù)需要循環(huán)不停的播放整個樂曲。
此次設(shè)計用STC89C52芯片為主控芯片,通過軟件來控制各按鍵功能,外部加3極管驅(qū)動放音設(shè)備[7-8]。本次設(shè)計硬件上共有5個模塊,分別是單片機控制模塊、按鍵播放模塊、按鍵彈奏模塊、揚聲器發(fā)聲模塊、電源模塊。電路硬件原理圖如圖1所示[9-11]。
圖1 電路硬件原理圖
單片機按鍵模塊是通過相應(yīng)的按鍵操作實現(xiàn)單片機的不同功能模塊。彈奏模塊是有8個音符相對應(yīng)的8個按鍵,通過按鍵操作實現(xiàn)彈奏的功能。播放內(nèi)置音樂是播放通過軟件編寫燒錄進去的音樂,當按鍵ke21按下時,P1.1為低電平,執(zhí)行相應(yīng)的程序,達到播放音樂的效果;播放錄制音樂是播放用戶通過彈奏儲存到數(shù)組的音樂,當按鍵key3按下時,P1.2為低電平,執(zhí)行相應(yīng)的程序,達到播放用戶彈奏過的音樂效果。擦除模塊是當按鍵key1按下時,P1.0為低電平,執(zhí)行相應(yīng)的擦除功能。發(fā)聲模塊是通過兩個三極管串聯(lián)組成一只的新的三極管,這支等效三極管的放大倍數(shù)是原先兩個三極管放大倍數(shù)之積。揚聲器是可以將電能轉(zhuǎn)換為聲音信號的電子元件,選用8 Ω 0.5 W的外磁式喇叭,外部磁喇叭功率大,散熱性好等。選用四腳小按鍵開關(guān),通過按鍵實現(xiàn)設(shè)計的各個模塊的功能。
本次設(shè)計在實現(xiàn)功能上一共有4個模塊,分別是擦除模塊、彈奏模塊、播放內(nèi)置音樂模塊及播放存儲音樂模塊。在主程序設(shè)計中,先初始化單片機,設(shè)定單片機為用戶需要的模式,然后調(diào)用子函數(shù)使程序順序執(zhí)行[12-13]。主程序流程圖如圖2所示。
圖2 主程序流程圖
3.1 用戶彈奏模塊
用戶彈奏模塊,用P3口控制,P3.0到P3.7分別對應(yīng) Do,Ri,Mi,F(xiàn)a,So,La,Xi,Do,利用 IF 語句對變量a.b賦值,并保存音符到相應(yīng)數(shù)組save[num_note]。
當P3口中某一位為低電平,說明這位相對應(yīng)的按鍵被按下,在定時器中斷中將a,b賦值給TH0,TL0,speaker取反來控制揚聲器發(fā)出相應(yīng)的聲音,同時如果按鍵一直被按下,則調(diào)用存儲函數(shù)cunchu()記錄按鍵按下的時長,也就是節(jié)拍,按鍵松開后保存節(jié)拍到相應(yīng)數(shù)組save_beat[num_beat]。變量清零,關(guān)閉中斷,關(guān)閉喇叭,等待下次按鍵,num_beat,num_note自加,save[]和save_beat[]數(shù)組的最大值為219,表示可存儲219個節(jié)拍和音符。當P3口無鍵按下時,a,b清零,保存空音符到數(shù)組save{num_note},關(guān)閉中斷,關(guān)閉揚聲器,節(jié)拍清零,防止程序錯亂。
3.2 播放內(nèi)置音樂模塊
P1.1端口為低電平,延時消抖之后,確定有鍵按下時,調(diào)用play1()函數(shù),m為存儲音符數(shù)組shengri_tone[]和存儲節(jié)拍數(shù)組shengri_beat[]函數(shù)的指針,依次取數(shù)組的值賦值給s和c,通過計算得出a和b,在定時器中斷函數(shù)中a和b分別賦值給TH0和TL0,以此驅(qū)動喇叭發(fā)聲,播放內(nèi)置音樂,當m大于33時(33為數(shù)組的大?。?,存儲音樂的數(shù)組已經(jīng)全部取完,音樂播放完畢[14-15]。流程圖如圖3所示。
圖3 播放內(nèi)置音樂模塊
3.3 播放存儲音樂模塊
P1.2端口為低電平時,調(diào)用play2()函數(shù),m為存儲音符數(shù)組save[]和存儲節(jié)拍數(shù)組save_beat[]函數(shù)指針,依次取數(shù)組的值賦值給s和c,通過計算得出a和b,在定時器中斷函數(shù)中a和b分別賦值給TH0和TL0,驅(qū)動喇叭發(fā)聲播放音樂,當m大于num_note時,存儲音樂的數(shù)組已全部取完,音樂播放完畢。流程圖如圖4所示。
圖4 播放存儲音樂流程圖
3.4 擦除模塊
擦除模塊是擦除存儲的音符。擦除按鍵設(shè)定為P1.0管腳,當P1.0為低電平時,將存儲音符數(shù)組save[]、存儲節(jié)拍數(shù)組save_beat[]以及計數(shù)變量num_note、num_beat清零。
系統(tǒng)實物正面圖如圖5所示。
圖5 實物正面圖
本設(shè)計是以單片機控制音樂播放,實現(xiàn)了智能光電語音,音樂自動彈奏、錄制、播放音樂盒的設(shè)計與制作。本次設(shè)計采用STC89C52為主控芯片,分別通過控制按鍵彈奏、按鍵擦除、按鍵播放音樂及錄制音樂四個模塊,通過編程界面來控制不同的聲音,從而產(chǎn)生音樂。該設(shè)計具有較強的移植性和適應(yīng)性,就實用與產(chǎn)品系統(tǒng)化而言,具有很大的開發(fā)潛力。
[1]楊萬鈞.多系統(tǒng)平臺協(xié)作電子音樂系統(tǒng)研究與實現(xiàn)[J].中國教育技術(shù)裝備,2014,22:1-6,12.
[2]劉垣,李外云,趙嘉怡.基于STC單片機WAVE音樂播放器的設(shè)計與實現(xiàn) [J].科技創(chuàng)新與應(yīng)用,2015(34):50-51.
[3]馬志強,王建剛,孫少林,等.基于STM32的PWM音樂播放器應(yīng)用設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2012,11:63-65.
[4]王瑾,袁戰(zhàn)軍.基于單片機的電阻爐溫度報警電路設(shè)計[J].科技創(chuàng)新與應(yīng)用,2014,34:79-80.
[5]李峽.如何讓單片機演奏音樂[J].河南科技,2011(6):88-89.
[6]劉瑞濤.電子音樂播放器的設(shè)計與實現(xiàn) [J].價值工程,2014(13):189-190.
[7]陸志烽.單片機應(yīng)用實訓課程項目化設(shè)計研究[J].科技視界,2015(23):212-213.
[8]何諧,唐大權(quán),張淑廷,等.一種基于51單片機的音樂播放器的設(shè)計[J].現(xiàn)代電子技術(shù),2014(16):11-13,17.
[9]趙建領(lǐng),崔昭霞.精通51單片機開發(fā)研究與應(yīng)用實例[M].北京:電子工業(yè)出版社,2012.
[10]馬洪濤.基于語音識別技術(shù)的音樂播放器設(shè)計[J].電子制作,2014,10:70,69.
[11]黃玉豪.STC89C58RD+單片機在MP3播放器設(shè)計中的應(yīng)用[J].電子產(chǎn)品世界,2013(6):68-71.
[12]趙佰生,倪巍東,金澤浩.基于單片機的音樂信號處理系統(tǒng)研究[J].科學中國人,2014(14):49.
[13]繆賢浩,劉凱.基于雙核單片機的音樂播放系統(tǒng)的研究[J].無線互聯(lián)科技,2014(9):78,80.
[14]張志偉.基于STM32單片機的多功能媒體播放器設(shè)計[J].陜西理工學院學報:自然科學版,2015(4):12-16.
[15]陳敏.無線音樂播放器控制系統(tǒng)設(shè)計[J].科技風,2013(19):71,73.
Design of automatic playing,recording and playing music box of intelligent music
HE Ying,ZHANG Yao-nan, DONG Chang-xiao
(Xi'an Siyuan University, Xi'an 710038,China)
Many music chip modules are expensive and their functions are written and the usage is not flexible.For the only need to produce a small piece of music,Wecan be sent through the microcontroller PWM wave and control buzzer sound.The system uses the MCU to complete the software and hardware design and production.The system hardware is mainly drawn by AltiumDesigner09,and the software mainly completes the erase module, playing module, playing the built-in music module and playing the function of the 4 modules.The practical application shows that the design scheme has high cost performance,low power consumption and strong portability.
microcontroller; playing recorded; playingmusic; erase; buzzer
TN912.2
:A
:1674-6236(2017)15-0042-03
2016-06-02稿件編號:201606018
2015年西安思源學院高等教育教學改革重點項目(15SYKP009);西安思源學院校級重大科研項目(XASY-B1601)
何 穎(1983—),女,陜西渭南人,碩士,講師。研究方向:信號與信息處理。