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