音樂發(fā)生器論文_第1頁
音樂發(fā)生器論文_第2頁
音樂發(fā)生器論文_第3頁
音樂發(fā)生器論文_第4頁
音樂發(fā)生器論文_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、音樂發(fā)生器的設計1、 緒論音樂發(fā)生器是由8255A可編程并行接口和可編程定時計數(shù)器8253芯片組成。用8253芯片產(chǎn)生一定頻率的方波,通過控制輸出方波時間的長短,聲音的長短就得到控制。8255A具有多種功能的可編程并行接口電路芯片。本次接口課程設計是音樂發(fā)生器的設計,用發(fā)生器能演奏一首完整的歌。主要是8253方式選擇。以及如何使用MF2KP軟件。首先我們利用定時器產(chǎn)生各種頻率的聲音,然后再對其進行修改,并編寫以整首歌的代碼,旋律及拍數(shù)可以按音樂簡譜而定。需要編寫對8253,8255進行初始化的程序及對8255芯片的PC0和PC6置0置1來選擇歌曲,實現(xiàn)唱歌功能即實現(xiàn)歌曲的節(jié)拍通過調用延時子程序

2、控制發(fā)音的長短。8253用來實現(xiàn)將頻率信號送到揚聲器而發(fā)聲。通過編程選擇計數(shù)器和設置工作方式,用MF2KP集成開發(fā)環(huán)境進行音樂發(fā)生器控制程序設計,調試直到聽到正常的樂曲。要完成本次課程設計必須先對微機接口原理與接口技術有一個全面的了解。設計的主要目的使我們學生更進一步掌握微機原理及應用課程的有關知識,提高應用微機解決問題的能力,加深對危機應用的理解。2、設計原理音樂樂曲的兩個基本要素是音高和節(jié)拍。因此要產(chǎn)生一個歌曲的音樂就要對音高和節(jié)拍進行控制。音高指每個音符發(fā)聲的高低,即音符的頻率。節(jié)拍指每個音符發(fā)聲的長短,也就是音符的持續(xù)時間(延時)。因此組成樂曲的每個音符的頻率值和持續(xù)時間是編寫歌曲音樂

3、所需要的兩個數(shù)據(jù)。符號頻率對照表1音符12345671(高音)頻率262294330349390440494523音符延時對照表2音符全音符二分音符四分音符八分音符時間1760ms880ms440ms220ms倍數(shù)321684音符的持續(xù)時間根據(jù)樂曲的速度每個音符的節(jié)拍數(shù)確定。在4/4拍中,四分音符為1拍,每小節(jié)4拍,全音符持續(xù)4拍,二分音符持續(xù)2拍,四分音符持續(xù)1拍,八分音符持續(xù)半拍。如給全音符分配1秒的時間,則二分音符的持續(xù)時間為0.5秒,四分音符持續(xù)時間為0.25秒,八分音符持續(xù)時間為0.125秒。根據(jù)歌曲的簡譜及征服的歌曲為4/4拍的得到征服歌曲的簡譜為:5(低音) 5(低音) 1 1

4、2 2 1 2 3 5 3 3 5(低音) 6(低音) 6(低音)公式1:計數(shù)初值(n)=根據(jù)公式1所得征服歌曲的頻率為:196,196,262,262,294,294,262,294,330,392,330,330,196,220,220; 本次課設主要用到的芯片有8255A,8253。8255的4個端口地址為300H303H。其中A口=300H,B口=301H,C口=302H,命令口=303H。8253的四個端口地址為304H307H。其中通道0為304H,通道1為305H,通道2為306H,命令口為307H。所得原理圖如圖1 圖1原理設計圖通過給8253定時器裝入不同的計數(shù)值,可以使其輸

5、出不同頻率的波形。當與門打開后,經(jīng)過放大器放大的作用,便可驅動揚聲器發(fā)出不同頻率的音調,要使該音調的聲音持續(xù)一段時間,只要插入一段子程序,之后再將揚聲器切斷。8253的通道工作方式:8253中各通道可有6種可供選擇的工作方式,以完成定時、計數(shù)或脈沖發(fā)生器等多種功能。方式3:方波發(fā)生器工作方式3被稱作方波發(fā)生器。使用8255A的PB1控制通道2的輸出對揚聲器產(chǎn)生控制的時間。主要應用到DOS的21H號中斷調用。DOS的21H號中斷調用用于單字符輸入以及多字符輸出顯示。音樂演奏實現(xiàn)的一個主要步驟是樂譜編程。通過相應的頻率表將樂譜中對應的音符轉化為計數(shù)器的計數(shù)初值,節(jié)奏通過延時程序轉化為對發(fā)音時間的控

6、制,從而實現(xiàn)音符和節(jié)拍的數(shù)字化。功能說明:8253為可編程的硬件定時/計數(shù)器,具有3個獨立的16位計數(shù)器通道,每個計數(shù)器均可按二進制或二十進制數(shù),每個計數(shù)器的計數(shù)速率高達2MHZ,每個通道有六種工作方式,可由程序設計和改變,所有的輸入和輸出都與TTL兼容。在8253的初始化編程中,由CPU向8253的控制字寄存器寫入一個控制字來規(guī)定8253的工作方式。D0=0時為表示二進制數(shù),D0=1時為BCD碼。 8255有3個8位并行I/O口。具有3個通道3種工作方式的可編程并行接口芯片(40引腳)。其各口功能可由軟件選擇,使用靈活,通用性強。8255可作為單片機與多種外設連接時的中間接口電路。8255作

7、為主機與外設的連接芯片,必須提供與主機相連的3個總線接口,即數(shù)據(jù)線、地址線、控制線接口。同時必須具有與外設連接的接口A、B、C口。由于8255可編程,所以必須具有邏輯控制部分,因而8255內部結構分為3個部分:與CPU連接部分、與外設連接部分、控制部分。3、設計程序開始初始化歌曲的頻率及延時初始化8255和8253取歌曲的第一個音符的頻率和時延是否遇到音符頻率的結束 是 根據(jù)頻率計算計數(shù)初值并送往8253不是 置8255的PC6、PC0為1,使揚聲器發(fā)聲置8255的PC6、PC0為0,使揚聲器發(fā)聲返回DOS調用延時子程序置8255的PC6、PC0為0,關閉揚聲器結束取下一個音符的頻率及延時圖2

8、主程序獲取并保存中斷1CH的中斷向量向中斷1CH裝入新的中斷向量音符的延時次數(shù)已到? 不是 是恢復中斷1CH原來的中斷向量圖3延時子程序流程圖本次課程設計所編寫的總程序如下sstack segment stack DW 200 dup(?)sstack endsdata segmentfreq  DW 196,196,262,262,294,294,262,294,330,392,330,330,196,220,220  DW 330,330,349,330,294,294,262,262,220,220,262,330,294 DW 196,

9、196,262,262,294,294,330,330,392,392,196,220,262,523     DW 330,330,349,330,294,294,262,220,330,392,262,294,262DW 392,523,494,392,392,440,392,392DW 392,523,494,392,440,330,440,440DW 440,440,440,392,330,330,349DW 349,349,349,392,440,330,349,330,294,392,523,494,392,392,440,392,

10、392,DW 392,523,494,392,440,330,440,440DW 440,440,440,392,330,330,349DW 349,349,349,330,262,294,262DW 349,349,349,349,349,392,349,262,349,330,294,330DW 349,349,349,349,330,392,392,349,262,349,392,440,392,392,392,523,495,523time  DW 8 DUP(5),3 DUP(10),5,10,25   DW

11、60;5,5,10,5,10,5,5,20,5,5,10,25          DW 7 DUP(5),10,5,15,5,10,20  DW 5,5,3 DUP(10),12,2,5,125,25,5,5,15,25       DW 5,10,5,5,10,5,25       &#

12、160;   DW 5,10,5,5,10,5,25           DW 5,5,10,5,10,5,25           DW 5,5,10,5,5,20,5,25           DW

13、0;5,10,5,5,10,5,25             DW 5,10,5,5,10,5,25           DW 5,5,10,5,10,5,30           DW 5,5,10,4 DUP(5),

14、20 OLD1 DW ?OLD2 DW?data endscode segment assume cs:code,ds:data,ss:sstackstart: mov ax,data mov ds,ax mov ax,sstack mov ss,ax mov al,10000000b ;8255初始化 mov dx,303h out dx,al mov al,0ch mov dx,303h out dx,al mov al,00h ;關閉喇叭(8255的PC0=0) mov dx,303h out dx,al mov al,10110110b ;8253初始化 mov dx,307

15、h out dx,al mov si,offset freq mov bp,offset time AA0: mov ah, 0bh ;檢測是否有任意鍵按下 int 21h cmp al,00h jne end1 ;若有,則結束演湊 mov di,si cmp di,0 jz end1 mov dx,12h mov ax,34dch ;1.19318MHz div di mov dx,306h ;向8253裝入計數(shù)初值 out dx,al mov al,ah out dx,al mov dx,303h ;打開喇叭 mov al,00000001b out dx,al mov al,000011

16、01b out dx,al mov bx, ds:bp ;取1個音符的延時次數(shù)bx call delay ;調用延時子程序 mov dx,303h mov al,00001100b out dx,al mov al,00000000b ;關閉喇叭 out dx,al add si,2 ;取下1 個音符的頻率 add bp,2 ;取下1 個音符的延時次數(shù) jmp AA0 end1: mov dx, 303h mov al, 00001100b out dx, al mov al, 00000000b ;關閉喇叭 out dx, al mov ah,4ch int 21hnew_intr proc

17、 ;新中斷服務程序 dec bx ;該服務程序只將延時次數(shù)-1 iretnew_intr endpdelay proc near ;延時子程序 pushf push ds push es push bx mov ah,35h ;取原中斷(INT1CH)的向量,并保存 mov al,1ch ;INT 1CH -用戶時鐘服務 int 21h mov old2, bx mov bx, es mov old1, bx pop bx pop es push ds mov ah, 25h ;設置新中斷服務程序的向量 mov al, 1ch mov dx, seg new_intr mov ds,dx le

18、a dx, new_intr int 21h pop ds TD: cmp bx,0h ;延時次數(shù)已到? jnz TD ;未到,則繼續(xù) mov ah,25h ;已到,則恢復原中斷向量 mov al,1ch mov dx,old1 push dx mov dx,old2 pop ds int 21h pop ds popf retdelay endp code ends end start 4、系統(tǒng)聯(lián)調實驗現(xiàn)象:在MF2KP平臺上,通過編程實現(xiàn)8253A接口芯片來控制揚聲器唱一首歌,當程序運行時,揚聲器唱出征服,其中時鐘脈沖頻率為1.19318MHz。5、總結兩周的微機原理及接口技術課程設計使人

19、受益匪淺。音樂程序設計從無到有,這個過程使我了解了,對微機原理硬件知道的太少,對其中有些具體的知識了解很是膚淺。通過查閱了很多資料,了解了許多匯編程序思想,擴展了自己的視野,不再僅僅局限于書本中短短的幾個程序,而且更重要的明白了編寫程序的態(tài)度:仔細謹慎,精益求精。掌握了什么是編譯程序,編譯程序工作的基本過程及各階段的基本任務,熟悉了編譯程序總流程圖,了解了編譯程序的生成過程,構造工具及其相關的技術。在播放歌曲時,發(fā)現(xiàn)低音過低,在調整低音頻率后,效果并沒有明顯的改變。其中設備限制是原因之一,所以本實驗不適合低音較多或低音過低的歌曲,應盡量選擇節(jié)奏感強的歌曲。通過本次實驗,讓我8253以及其他幾個芯片都有了更深的了解,特別是它們的控制方式和各部分的功能更加的熟悉了。  經(jīng)過兩個星期的課程設計,完成任務的效果和預想中有很大的出入,雖然中間遇到了一些問題,但經(jīng)過我們的努力,還是把問題給解決了。這次課程設計對我綜合運用所學知識的能力的提高有不小的幫助,之前做的實驗都是很簡單的編程,跟硬件結合也沒有這么復雜,實現(xiàn)的功能都比較簡單,可是這次要實現(xiàn)的功能相對來說比較復雜,要求掌握的知識比較全面。  經(jīng)過這次的課程設計,再一次的印證了理論來源于

溫馨提示

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

評論

0/150

提交評論