接口課程設(shè)計(jì)菜單選擇的音樂程序設(shè)計(jì)與實(shí)現(xiàn)
《接口課程設(shè)計(jì)菜單選擇的音樂程序設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《接口課程設(shè)計(jì)菜單選擇的音樂程序設(shè)計(jì)與實(shí)現(xiàn)(16頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、遼 寧 工 業(yè) 大 學(xué) 課 程 設(shè) 計(jì) 說 明 書(論 文) 目錄 第1章 課程設(shè)計(jì)簡(jiǎn)介 1 1.1課程設(shè)計(jì)題目 1 1.2課程設(shè)計(jì)目的 1 1.3課程設(shè)計(jì)設(shè)備 1 1.4課程設(shè)計(jì)任務(wù) 1 1.5課程設(shè)計(jì)要求 1 第2章 程序設(shè)計(jì) 2 2.1程序設(shè)計(jì)方法 2 2.2 音樂菜單界面設(shè)計(jì) 2 2.3音樂程序設(shè)計(jì) 5 2.3.1音符與頻率值 5 2.3.2 選擇音樂 5 2.3.3設(shè)計(jì) 6 第3章 總結(jié) 13 參考文獻(xiàn) 14 致謝 15
2、 第1章 課程設(shè)計(jì)簡(jiǎn)介 1.1課程設(shè)計(jì)題目 菜單選擇的音樂程序設(shè)計(jì)與實(shí)現(xiàn)(一) 1.2課程設(shè)計(jì)目的 掌握PC系列微機(jī)發(fā)聲系統(tǒng)的工作原理,掌握模塊化程序設(shè)計(jì)的方法。 1.3課程設(shè)計(jì)設(shè)備 硬件環(huán)境:IBM-PC機(jī),硬盤40G以上,內(nèi)存256M以上,打印機(jī)等。 軟件環(huán)境:Windows 2000 Server或Windows XP Server操作系統(tǒng),MASM匯編軟件。 1.4課程設(shè)計(jì)任務(wù) (1) 如下圖所示,設(shè)計(jì)一個(gè)簡(jiǎn)單的音樂程序菜單界面,用戶鍵入菜單項(xiàng)序號(hào)選擇菜單項(xiàng)。 1.MUSIC----
3、------1 2.MUSIC----------2 3.MUSIC----------3 4.RETURN DOS (2) 限定使用模塊化程序設(shè)計(jì)的方法,最少組織三首歌曲,每首歌曲只反復(fù)演唱幾個(gè)小節(jié)即可。 (3) 三首歌曲只能使用一個(gè)音樂控制程序。 1.5課程設(shè)計(jì)要求 (1)選擇音樂菜單界面的設(shè)計(jì)要求采用兩種方法,一種是用戶鍵入菜單項(xiàng)序號(hào)選擇菜單項(xiàng),一種是用彩色條選擇菜單項(xiàng)。 (2)首先要求設(shè)計(jì)與實(shí)現(xiàn)一首歌曲演唱幾個(gè)小節(jié),然后設(shè)計(jì)與實(shí)現(xiàn)該首歌曲重復(fù)演唱,最后組織三首不同歌曲用同一個(gè)音樂控制程序選擇。要求每名學(xué)生組織的歌曲不同于其他同學(xué)。 第2章 程序設(shè)計(jì) 2.1程序設(shè)計(jì)
4、方法 2.1.1模塊化程序設(shè)計(jì)方法的指導(dǎo)思想 如果待解決的問題比較簡(jiǎn)單,所編制的程序又不大時(shí),就可以將整個(gè)程序放在一個(gè)模塊中。但對(duì)大而復(fù)雜的設(shè)計(jì)任務(wù),不可能由一個(gè)人用一個(gè)程序來實(shí)現(xiàn)。 為了解決這些問題,必須采用自頂向下,逐步求精的模塊化和結(jié)構(gòu)化的設(shè)計(jì)方法,即將一個(gè)大而復(fù)雜的設(shè)計(jì)任務(wù)按其需要實(shí)現(xiàn)的主要功能分解為若干相對(duì)獨(dú)立的模塊,并確定好各模塊之間的調(diào)用關(guān)系和參數(shù)傳遞方式,對(duì)其中的公共部分還可以抽出來作為獨(dú)立的公共子程序模塊供大家調(diào)用,然后可以將這些模塊分配給個(gè)人,每個(gè)人在設(shè)計(jì)自己的一部分時(shí),還可以采用自頂向下,逐步求精的方法進(jìn)一步細(xì)化,分解成一些更小的模塊,并將各個(gè)模塊的功能逐步細(xì)化為一
5、系列的處理步驟或某種程序設(shè)計(jì)語(yǔ)言的語(yǔ)句,分別編寫、調(diào)試,最后再將它們的目標(biāo)模塊連接裝配成一個(gè)完整的整體。 2.2 音樂菜單界面設(shè)計(jì) 程序流程框圖如下: N Y N Y N Y N Y 主模塊 顯示菜單框 顯示選擇字符串 等待鍵輸入 鍵值=‘4’ 鍵值=‘1’ 鍵值=‘2’ 鍵值=‘3’ 返回DOS 轉(zhuǎn)MUSICI1模塊 轉(zhuǎn)MUSICI2模塊 轉(zhuǎn)MUSICI3模塊 圖一 音樂菜單界面設(shè)計(jì)流程圖 源程序代碼如下: PUBLIC S
6、TATRO EXTRN START1:FAR,SRART2:FAR,SRART3:FAR DISP MACRO YYXX,VAR MOV AH,2 MOV BH,0 MOV DX,YYXX INT 10H MOV AH,9 MOV DX,0FFSET VAR INT 21H ENDM
7、 DATA0 SEGMENT L1 DB MENU , 0AH,0DH DB xxxxxxxxxxxxxxxx ,0AH,0DH DB x x ,0AH,0DH DB x 1.MUSIC1 x ,0AH,0DH DB
8、 x 2.MUSIC2 x ,0AH,0DH DB x 3.MUSIC2 x ,0AH,0DH DB x 4.RETURN DOS x ,0AH,0DH DB xxxxxxxxxxxxxxxx ,0AH,0DH,$ L9 DB ’
9、 CHOICE(1,2,3,4): ,$ DATA0 ENDS CODE0 SEGMENT ASSUME CS:CODE0,DS:DATA0 ;----------------------------------------- START0: MOV AX,DATA0 MOV DS,AX MOV AX,2 INT 10H DISP 0800H,L1 ;顯示菜單框圖 DP: DISP 0D00H,L9 ;-------
10、--------------------------------------- MOV AH,1 INT 21H 等待鍵入 CMP AL,4 JE RT CMP AL,1 JE STRT1 CMP AL,3 JE STRT2 CMP AL,3 JE STRT3
11、 JMP DP STRT: JMP START1 STRT: JMP START2 STRT: JMP START3 RT: MOV AH,4CH INT 21H CODE ENDS END START0 2.3音樂程序設(shè)計(jì) 音符 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 . 1 頻率 175 196 220 247 262 294 330 349 392
12、 440 494 524 588 660 698 784 880 988 1048 2.3.1音符與頻率值 2.3.2 選擇音樂 MUSIC-----1的簡(jiǎn)譜 頻率以及時(shí)間對(duì)應(yīng) 頻率:440,440,440,392,440,1048,1048,294, 時(shí)間:20 ,20 ,20 ,10 ,10 ,20 ,20 ,40, 頻率:330,1048,294,294,1048,440,440 時(shí)間:20 ,20 ,20 ,10 ,10 ,20 ,60 MUSIC-----2的簡(jiǎn)譜 頻率以及時(shí)間的對(duì)應(yīng)
13、 頻率:660,660,784,880,988,784,660,588, 時(shí)間:20 ,20 ,20 ,20 ,20 ,20 ,20 ,20 , 頻率:660,588,660,524,880,880,784 時(shí)間:20 ,20 ,20 ,20 ,30 ,10 ,40 MUSIC-----3的簡(jiǎn)譜 頻率以及時(shí)間的對(duì)應(yīng): 頻率:880,524,880,880,660,588,660,784, 時(shí)間:40 ,30 ,10 ,30 ,10 ,10 ,10 ,20 , 頻率:880,880,660,880,524,880,880 時(shí)間:30 ,10 ,10 ,10 ,10
14、,10 ,80 2.3.3設(shè)計(jì) MUSIC1 流程圖如下: 設(shè)置顯示方式 MUSIC1 建音符頻率表 建音符時(shí)間表 音符頻率表指針DI 音符時(shí)間表指針DI 轉(zhuǎn)發(fā)聲模塊 圖二 MUSIC1 流程圖 MUSIC1 源程序代碼如下: PUBLIC START1 ;MUSIC 模塊 EXTRN START4;FAR DATA1 SEGMENT MUSIC DW 440,440,440,392,440,1048,1048,294
15、 DW 330,1048,294,294,1048,440,440,0FFFFH TIME1 DB 20,20,20,10,10,20,20,40,20,20,20,10,10,20,60 DATA1 ENDS CODE1 SEGMENT ASSUME CS:CODE1,DS:DATA1 START1: MOV AX,DATA1 MOV DS,AS MOV AX,2 INT 10H MOV SI,OFFSET MUS
16、IC1 MOV DI,OFFSET TIME1 JMP START4 CODE1 ENDS END MUSIC2流程圖如下: 設(shè)置顯示方式 MUSIC2 建音符頻率表 建音符時(shí)間表 音符頻率表指針DI 音符時(shí)間表指針DI 轉(zhuǎn)發(fā)聲模塊 圖三 MUSIC2流程圖 MUSIC2 源程序代碼如下: PUBLIC START2 ;MUSIC2 EXTRN START4:FAR DATA2 SEGMENT MUS
17、IC2 DW 660,660,784,880,988,784,660,588 DW 660,588,660,524,880,880,784,0FFFFH TIME2 DB 20,20,20,20,20,20,20,20,20,20,20,20,30,10,40 DATA2 ENDS CODE2 SEGMENT ASSUME CS:CODE2,DS:DATA2 START2: MOV AX,DATA2 MOV DS,AX MOV AX,2 INT 10H MOV SI,0FFSET M
18、USIC2 MOV DI,0FFSET TIME2 JMP START4 CODE2 ENDS END MUSIC3流程圖如下: 設(shè)置顯示方式 MUSIC3 建音符頻率表 建音符時(shí)間表 音符頻率表指針DI 音符時(shí)間表指針DI 轉(zhuǎn)發(fā)聲模塊 圖四 MUSIC3流程圖 MUSIC3 源程序代碼如下: PUBLIC START3 EXTRN START4:FAR DATA3 SEGMENT MUSIC3
19、 DW 880,524,880,880,660,588,660,784 DW 880,880,660,880,524,880,880,0FFFFH TIME3 DB 40,30,10,30,10,10,10,20,30,10,10,10,10,10,80 DATA3 ENDS CODE3 SEGMENT ASSUME CS:CODE3,DS:DATA3 START3: MOV AX,DATA3 MOV DS,AX
20、 MOV AX,2 IN 10H MOV SI,OFFSET MUSIC3 MOV DI,OFFSET TIME3 JMP START4 CODE3 ENDS END 發(fā)聲模塊流程圖如下: 發(fā)聲模塊 設(shè)置顯示方式 顯示提示信息 SI、DI 壓入堆棧 取出堆棧中的SI、DI的值 再次將SI、DI壓入堆棧 取音符頻率 頻率=FFFH? 計(jì)音符的8254通道2的計(jì)數(shù) 值 送8254的控制字 送82
21、54的計(jì)數(shù)值 打開發(fā)聲 通道 延遲(音符發(fā)聲 持續(xù)時(shí)間) 關(guān)閉發(fā)聲 通道 SI+2—〉SI 、DI+1—〉DI 又鍵入? 轉(zhuǎn)主模塊 延遲 Y N N Y 圖五 發(fā)聲模塊流程圖 發(fā)聲源程序代碼如下: PUBLIC START4 EXTRN START0:FAR DISP MACRO YYXX,VAR MOV AH,2 MOV BH,0 MOV DX,YYXX INT 10H MOV AH,09 MOV DX,OFFSET VAR INT 21H ENDM ST
22、ACK SEGMENT STA DW 50 DUP(?) TOP EQU LENGTH STA STACK ENDS DATA4 SEGMENT MESS DB STRIKE ANY KEY,RETURN TO MENU !,OAH,ODH,$ DATA4 ENDS CODE4 SEGMENT ASSUME CS:CODE4,DS:DATA4 START4: PUSH DS MOV AX,DATA4 MOV DS,AX MOV AX,2 INT 10H DISP 1000H,MESS
23、POP DS PUSH SI PUSH DI PLAY: POP DI POP SI PUSH SI PUSH DI PLY1: MOV AX,WORD PTR [SI] CMP AX,OFFFFH JZ PLAY_END MOV DX,12H MOV AX,34EOH DIV WORD PTR [SI] MOV BX,AX MOV AL,0B6H OUT 43H,AL MOV AX,BX OUT
24、42H,AL MOV AL,AH OUT 42H,AL IN AL,61H OR AL,03H OUT 61H,AL CALL DELAY IN AL,61H AND AL,0FCH OUT 61H,AL ADD SI,02 INC DI JMP PLY1 PLAY_END: MOV AH,01 INT 16H JZ WAIT1 POP DI POP SI JMP START0 WAIT1: PUSH AX PUSH CX MOV AX,06
25、00H WT1: MOV CX,0FFFFH WT2: LOOP WT2 DEC AX JNZ WT1 POP CX POP AX JMP PLAY DELAY PROC NEAR PUSH AX PUSH CX MOV AL,[DI] DLY: MOV CX,0060 DLY1: MOV BX,0FFFFH DLY2: DEC BX JNZ DLY2 LOOP DLY1 DEC AL JNZ DLY POP
26、 CX POP AX RET DELAY ENDP CODE4 ENDS END 第三章 總結(jié) 這次課程設(shè)計(jì)完成后,體會(huì)頗多,不斷學(xué)習(xí)新的知識(shí),吸取經(jīng)驗(yàn),達(dá)到進(jìn)步的目的。在課程設(shè)計(jì)中,通過努力以及相關(guān)圖書資料的幫助,逐漸熟悉了微型機(jī)與接口的應(yīng)用知識(shí)及其相關(guān)的操作。 在這次課程設(shè)計(jì)過程中,我學(xué)會(huì)了利用匯編程序?qū)崿F(xiàn)軟件的具體功能,同時(shí)對(duì)語(yǔ)言的編寫能力有了進(jìn)一步加強(qiáng),在指導(dǎo)教師的悉心講解下,我解了的在編寫程序中遇到的種種困難,例如:如何利用匯編程序來實(shí)現(xiàn)音樂界面的設(shè)計(jì),怎樣通過程序來實(shí)現(xiàn)音樂的播放等等,都在老師的指導(dǎo)下一一解決,是我從中受到很大啟發(fā)。 通過
27、本次課程設(shè)計(jì),讓我有機(jī)會(huì)將平時(shí)所學(xué)到的書本知識(shí)得以實(shí)踐化,檢驗(yàn)了本身對(duì)知識(shí)了解程度的不足,也從中學(xué)到了很多知識(shí)點(diǎn)與應(yīng)用技術(shù)。 這里我衷心的感謝王老師的耐心指導(dǎo)! 參考文獻(xiàn) [1] 雷曉平 .微型計(jì)算機(jī)原理與應(yīng)用.北京:電子工業(yè)出版社,2002年 [2] 周明德,張淑玲.80x86、80x87結(jié)構(gòu)與匯編語(yǔ)言程序設(shè)計(jì).北京:清華大學(xué)出版社,1993年 [3] 周明德,蔣本珊.微機(jī)原理與接口技術(shù).北京:人民郵電出版社,2002年 [4] 鄭緯民,湯志中.計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(第二版).北京:清華大學(xué)出版社,
28、1998年 [5] 凌志浩 微機(jī)原理與接口技術(shù)教程與實(shí)訓(xùn) . 華東理工大學(xué)出版社,2005 [6] 齊志儒,高福祥.《匯編語(yǔ)言程序設(shè)計(jì)》(第三版).東北大學(xué)出版社, 2003.05 [7] 齊志儒.《匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)教程》.東北大學(xué)出版社,2003 [8] 沈美明,溫冬嬋.《IBM-PC 匯編語(yǔ)言程序設(shè)計(jì)》.清華大學(xué)出版社,2004 [9] 張君,齊志儒.《匯編語(yǔ)言程序設(shè)計(jì)題集》.東北大學(xué)出版社,2003 [10] 沈美明,溫冬嬋,張赤紅.《IBM-PC 匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)教程》.清華大學(xué)出版社, 2006
29、 致謝 在課設(shè)完成之際,我要特別感謝我的指導(dǎo)老師王老師的熱情關(guān)懷和悉心指導(dǎo)。在進(jìn)行課設(shè)的過程中,王老師傾注了大量的心血和汗水,無論是在課設(shè)的選題,還是在進(jìn)行課設(shè)過程中,我都得到了王老師悉心細(xì)致的教誨和無私的幫助,特別是她廣博的學(xué)識(shí)、深厚的學(xué)術(shù)素養(yǎng)、嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和一絲不茍的工作作風(fēng)使我終生受益,在此表示真誠(chéng)地感謝和深深的謝意。 在課設(shè)過程中,也得到了許多同學(xué)的寶貴建議,同時(shí)還得到許多同學(xué)的支持和幫助,在此一并致以誠(chéng)摯的謝意。 在此衷心感謝所有關(guān)心、支持、幫助過我的良師益友。 15
- 溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 物業(yè)管理制度:常見突發(fā)緊急事件應(yīng)急處置程序和方法
- 某物業(yè)公司冬季除雪工作應(yīng)急預(yù)案范文
- 物業(yè)管理制度:小區(qū)日常巡查工作規(guī)程
- 物業(yè)管理制度:設(shè)備設(shè)施故障應(yīng)急預(yù)案
- 某物業(yè)公司小區(qū)地下停車場(chǎng)管理制度
- 某物業(yè)公司巡查、檢查工作內(nèi)容、方法和要求
- 物業(yè)管理制度:安全防范十大應(yīng)急處理預(yù)案
- 物業(yè)公司巡查、檢查工作內(nèi)容、方法和要求
- 某物業(yè)公司保潔部門領(lǐng)班總結(jié)
- 某公司安全生產(chǎn)舉報(bào)獎(jiǎng)勵(lì)制度
- 物業(yè)管理:火情火災(zāi)應(yīng)急預(yù)案
- 某物業(yè)安保崗位職責(zé)
- 物業(yè)管理制度:節(jié)前工作重點(diǎn)總結(jié)
- 物業(yè)管理:某小區(qū)消防演習(xí)方案
- 某物業(yè)公司客服部工作職責(zé)