單片機(jī)音樂程序的設(shè)計(jì)原理解析_第1頁(yè)
單片機(jī)音樂程序的設(shè)計(jì)原理解析_第2頁(yè)
單片機(jī)音樂程序的設(shè)計(jì)原理解析_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、【W(wǎng)ord版本下載可任意編輯】 單片機(jī)音樂程序的設(shè)計(jì)原理解析我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單處機(jī)某個(gè)口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制“高”“低”電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào)。 例如,要產(chǎn)生200Hz的音頻信號(hào),按圖1接入喇叭(若屬臨時(shí)實(shí)驗(yàn),也可將喇叭直接接在P1口線上),實(shí)驗(yàn)程序?yàn)椋?其中子程序DEL為延時(shí)子程序,當(dāng)R3為1時(shí),延時(shí)時(shí)間約為20us,R3中存放延時(shí)常數(shù),對(duì)200HZ音頻,其周期為1/200秒,即5ms。這樣,當(dāng)P1.4的高電平或低電平的持續(xù)時(shí)間為

2、2.5ms,即R3的時(shí)間常數(shù)取2500/20=125(7DH)時(shí),就能發(fā)出200HZ的音調(diào)。將上述程序鍵入學(xué)習(xí)機(jī),并不斷修改R3的常數(shù)可以感到音調(diào)的變化。 樂曲中,每一音符對(duì)應(yīng)著確定的頻率,表1給出C調(diào)時(shí)各音符頻率及其相應(yīng)的時(shí)間常數(shù)。 讀者可以根據(jù)表1所提供的常數(shù),將其16進(jìn)制代碼送入R3,反復(fù)練習(xí)體會(huì)。根據(jù)表1可以奏出音符。僅這還不夠,要準(zhǔn)確奏出一首曲子,必須準(zhǔn)確地控制樂曲節(jié)奏,即一音符的持續(xù)時(shí)間。 音符的節(jié)拍我們可以用定時(shí)器T0來控制,送入不同的初值,就可以產(chǎn)生不同的定時(shí)時(shí)間。便如某歌曲的節(jié)奏為每分鐘94拍,即一拍為0.64秒。其它節(jié)拍與時(shí)間的對(duì)應(yīng)關(guān)系見表2。 但時(shí),由于T0的定時(shí)時(shí)間只能

3、為131毫秒,因此不可能直接用改變T0的時(shí)間初值來實(shí)現(xiàn)不同節(jié)拍。我們可以用T0來產(chǎn)生10毫秒的時(shí)間基準(zhǔn),然后設(shè)置一個(gè)中斷計(jì)數(shù)器,通過判別中斷計(jì)數(shù)器的值來控制節(jié)拍時(shí)間的長(zhǎng)短。表2中也給出了各種節(jié)拍所對(duì)應(yīng)的時(shí)間常數(shù)。例如對(duì)1/4拍音符,定時(shí)時(shí)間為0.16秒,相應(yīng)的時(shí)間常數(shù)為16(即10H);對(duì)3拍音符,定時(shí)時(shí)間為1.92秒,相應(yīng)時(shí)間長(zhǎng)數(shù)為192(即C0H)。 我們將每一音符的時(shí)間常數(shù)和其相應(yīng)的節(jié)拍常數(shù)作為一組,按順序?qū)非械乃谐?shù)排列成一個(gè)表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就可以實(shí)現(xiàn)演奏效果。 此外,結(jié)束符和體止符可以分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子

4、終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。 為了產(chǎn)生手彈的節(jié)奏感,在某些音符(例如兩個(gè)相同音符)音插入一個(gè)時(shí)間單位的頻率略有不同的音符。 程序框圖如圖2所示。 下面給出程序序請(qǐng)單,可直接在TD-III型學(xué)習(xí)機(jī)上演奏,對(duì)其它不同型號(hào)的學(xué)習(xí)機(jī),只需相應(yīng)地改變一下地址即可。本程序演奏的是民歌“八月桂花遍地開”,C調(diào),節(jié)奏為94拍/分。讀者也可以自行找出一首歌,按表1和表2給定的常數(shù),將樂曲翻譯成碼表輸入機(jī)器,而程序不變。本實(shí)驗(yàn)方法簡(jiǎn)便,即使不懂音樂的人,將一首陌生的曲子翻譯成代碼也是易事,和著機(jī)器的演奏學(xué)唱一首歌曲,其趣味無窮。 硬件連接說明: 隨便找一個(gè)仿真機(jī)或者什么單片機(jī)實(shí)驗(yàn)板,只要能工作的就行,將程序輸入,運(yùn)行,然后找個(gè)音箱(你計(jì)算機(jī)旁邊

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論