匯編程序課程設計報告樂曲程序的設計與實現(xiàn)-武漢理工_第1頁
匯編程序課程設計報告樂曲程序的設計與實現(xiàn)-武漢理工_第2頁
匯編程序課程設計報告樂曲程序的設計與實現(xiàn)-武漢理工_第3頁
匯編程序課程設計報告樂曲程序的設計與實現(xiàn)-武漢理工_第4頁
匯編程序課程設計報告樂曲程序的設計與實現(xiàn)-武漢理工_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、武漢理工大學ibm-pc匯編語言程序設計課程設計學 號: 課 程 設 計題 目樂曲程序的設計與實現(xiàn)學 院計算機科學與技術學院專 業(yè)計算機科學與技術專業(yè)班 級姓 名指導教師2010年1月15日課程設計任務書學生姓名: 專業(yè)班級:計算機科學與技術 指導教師: 工作單位:計算機科學與技術學院 題目: 樂曲程序的設計與實現(xiàn)初始條件:理論:完成了匯編語言程序設計課程,對微機系統(tǒng)結構和80系列指令系統(tǒng)有了較深入的理解,已掌握了匯編語言程序設計的基本方法和技巧。實踐:完成了匯編語言程序設計的4個實驗,熟悉了匯編語言程序的設計環(huán)境并掌握了匯編語言程序的調(diào)試方法。要求完成的主要任務: (包括課程設計工作量及其技

2、術要求,以及說明書撰寫等具體要求)進一步理解和掌握程序直接控制i/o方式,掌握計算機發(fā)聲程序的設計。具體的設計任務及要求:1采用位觸發(fā)方式編寫程序,使計算機發(fā)出音響并奏出兩只老虎的樂曲。1) 通過查閱相關資料,進一步理解程序直接控制i/o方式和位觸發(fā)方式控制聲音的工作原理。2) 一首樂曲是由不同頻率和節(jié)拍的音調(diào)組成,因此控制脈沖的頻率和持續(xù)時間是編寫樂曲程序的關鍵。根據(jù)已知的音符頻率對照表,給出樂曲的頻率表;設二分音符持續(xù)時間為0.5秒(50*10ms),50作為2拍的計數(shù)值,給出樂曲的節(jié)拍時間表;3) 編寫程序并調(diào)試通過。2進一步學習利用定時器產(chǎn)生聲音的方法,使計算機奏出樂曲(例如兩只老虎等

3、)。在完成設計任務后,按要求撰寫課程設計說明書;對課程設計說明書的具體要求請見課程設計指導書。閱讀資料:1)ibmpc匯編語言程序設計實驗教程3.1節(jié)2)ibmpc匯編語言程序設計(第2版)10.4節(jié),10.5節(jié)時間安排:設計安排一周:周1、周2:完成系統(tǒng)分析及設計。周3、周4:完成程序調(diào)試,和驗收。周5:撰寫課程設計報告。指導教師簽名: 年 月 日系主任(或責任教師)簽名: 年 月 日1設計內(nèi)容及要求1.1.采用位觸發(fā)方式編寫程序,使計算機發(fā)出音響并奏出兩只老虎的樂曲。1.2.根據(jù)已知的音符頻率對照表,給出樂曲的頻率表。1.3.設二分音符持續(xù)時間為0.5秒(50*10ms),50作為2拍的計

4、數(shù)值,給出樂曲的節(jié)拍時間表。2設計中使用的關鍵技術和方法2.1.在8253/54定時器內(nèi)部有3個獨立工作的計數(shù)器:count0,count1,count2,端口地址分別為40h、41h和42h。其中count2用來控制發(fā)聲器發(fā)聲。設裝入計數(shù)器2的計數(shù)器初值為x則ibm中的beep子程序能在mode3下產(chǎn)生頻率為1.19318mhz/x的聲音。8253/54內(nèi)部還有一個公用的控制寄存器,端口地址為43h。三個計數(shù)器是分別編程的,對任一個計數(shù)器編程時,首先將控制字節(jié)寫入寇埴寄存器??刂谱止?jié)各位含義如下:sc1sc0rl1rl0m2m1m0bcd 0 二進制 00 計數(shù)器鎖存操作 1 bcd碼 01

5、 只讀/寫 lsb 10 只讀/寫 msb 000 mode0 11 讀/寫lsb,msb 001 mode1 x10 mode2 x11 mode300 選擇count0 100 mode4 01 選擇count1 101 mode5 10 選擇count2 11 無效其次,向count2送入一個計數(shù)初值,指定發(fā)聲頻率。2.2.揚聲器驅動方式7 6 5 4 3 2 1 061h count2clk2 out2gate2&pb1pb01.193mhzvcc如圖所示,gate2與端口61h的pb0相連,當pb0=1時,gate2獲得高電平,使定時器可以在mode3下工作。定時器的out2與端口6

6、1h的pb1通過一個與門與揚聲器的驅動電路相連。當pb1=1時,允許out2的輸出信號到達揚聲器電路。2.380x86 pc的時間延遲ibm采用了一種利用硬件產(chǎn)生時間延遲的方法,即通過監(jiān)控端口61h的pb4每15.08s觸發(fā)一次,以產(chǎn)生一個固定不變的時間基準。2.4.樂曲程序樂曲是按照一定的高低、長短和強弱關系組成的已調(diào),每個音符的音高和音長與頻率和節(jié)拍有關。音高與頻率如下表1234567123456711311471651751962202472622943303493924404945233設計方案說明3.1.程序結構及各功能模塊說明主程序music將音符的頻率送入di寄存器,將音符的持續(xù)

7、時長送入bx;然后調(diào)用soundf子程序。soundf子程序用di中的數(shù)據(jù)去除12348h的到商送入42h,使其產(chǎn)生制定頻率的信號;然后置61h的pb0,pb1為11,使揚聲器發(fā)出相應的聲音;根據(jù)bx中的數(shù)據(jù)重復調(diào)用waitf子程序,是揚聲器發(fā)聲得以延續(xù);最后恢復61h的初始設置。waitf子程序中,根據(jù)cx中的數(shù)據(jù)產(chǎn)生固定的延時。3.2算法流程圖見下頁初始化si-didi=-1?ds:bp-bxcall soundfsi=si+2bp=bp+2結束music主程序begin12348/di-axax-42h保存61h端口設置打開揚聲器663-cxcall waitfbx=bx-1bx=0?恢

8、復61h端口設置endsoundf子程序beginpb4=1?cx=cx-1cx=0?endwaitf子程序nnyyynyn3.4數(shù)據(jù)結構的定義和說明dseg segmentfreq dw 2 dup(262,292,330,262) dw 2 dup(330,349,392) dw 2 dup(392,440,392,349,330,262) dw 2 dup(262,330,262) dw -1time dw 8 dup(40) dw 2 dup(40,40,80) dw 2 dup(30,10,30,10,40,40) dw 2 dup(40,40,50)dseg ends其中freq是

9、音符頻率表的首地址,time是音符的持續(xù)時長表首地址。4測試及評估在如下平臺測試程序:計算機: 計算機類型 acpi multiprocessor pc 操作系統(tǒng) microsoft windows xp professional 操作系統(tǒng)版本升級(sp) service pack 3 directx 4.09.00.0904 (directx 9.0c) 日期/時間 2010-01-14 / 17:31 主板: cpu 類型 dualcore amd athlon 64 x2, 2800 mhz (14 x 200) 5400+ 主板名稱 colorful c.a770 v1.5 主板芯片組

10、 amd 770, amd hammer 系統(tǒng)內(nèi)存 2048 mb (ddr2-800 ddr2 sdram) bios 類型 ami (08/28/08) 通訊端口 通訊端口 (com1) 通訊端口 打印機端口 (lpt1)當在cx中存放663時,音符延續(xù)時間很短以致辨別不清,初步斷定問題在于硬件,將cx中的數(shù)值增大至8000后,扥到記過符合預期5設計心得5.1在soundf子程序中曾對ax,bx,cx,dx,di進行了進站出站操作,經(jīng)過仔細分析,這些操作是沒用用的,刪除了這些操作,簡化了程序。5.2對該程序進一步改進擴展的設想音符和頻率之間有一定的對應關系,如果計算機鍵盤上的一些鍵和音符、

11、頻率也形成一種對應關系,則可通過鍵盤控制揚聲器發(fā)出各種音符聲音,這時計算機鍵盤就變成了鋼琴鍵盤,就可以用他彈奏出簡單的樂曲了。六參考文獻 大眾樂譜網(wǎng)ibmpc匯編語言程序設計實驗教程3.1節(jié) 沈美明 溫冬禪 編著ibmpc匯編語言程序設計(第2版)10.4節(jié),10.5節(jié) 沈美明 溫冬禪 編著七附錄:源程序清單dseg segmentfreq dw 2 dup(262,292,330,262) dw 2 dup(330,349,392) dw 2 dup(392,440,392,349,330,262) dw 2 dup(262,330,262) dw -1time dw 8 dup(40) d

12、w 2 dup(40,40,80) dw 2 dup(30,10,30,10,40,40) dw 2 dup(40,40,50)dseg endscseg segmentassume cs:cseg,ds:dsegmusic proc farmov ax,dsegmov ds,axlea si,freqlea bp,ds:timelable1:mov di,sicmp di,-1je lable2mov bx,ds:bpcall soundfadd si,2add bp,2jmp lable1lable2:mov ax,4c00hint 21hmusic endpsoundf proc farmov al,0b6hout 43h,almov dx,12hmov ax,348chdiv diout 42h,almov al,ahout 42h,alin al,61hmov ah,alor al,3out 61h,aldelay: mov cx,8000 call waitf dec bx jnz delay mov al,ah out 61h,al retsoundf endp waitf proc nearpush axwaitf1:in al,61hand al,10hcmp al,ahje waitf1mov ah,alloop waitf1pop axretwaitf

溫馨提示

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

最新文檔

評論

0/150

提交評論