《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說(shuō)明書音樂(lè)演奏程序設(shè)計(jì)
《《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說(shuō)明書音樂(lè)演奏程序設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說(shuō)明書音樂(lè)演奏程序設(shè)計(jì)(29頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、武漢理工大學(xué)《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說(shuō)明書 課程設(shè)計(jì)任務(wù)書 學(xué)生姓名: 專業(yè)班級(jí): 自動(dòng)化0801班 指導(dǎo)教師: 工作單位: 自動(dòng)化學(xué)院 題 目: 音樂(lè)演奏程序設(shè)計(jì) 要求完成的主要任務(wù): (包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書撰寫等具體要求) 1.使用匯編語(yǔ)言設(shè)計(jì)一個(gè)在計(jì)算機(jī)上運(yùn)行的音樂(lè)演奏程序; 2.屏幕顯示鋼琴圖像; 3.按大寫字母“A”,唱樂(lè)曲1;按大寫字母“B”,唱樂(lè)曲2;按大寫字母“C”,唱樂(lè)曲3,依次類推; 4.按"Q"鍵,退出; 5.撰寫課程設(shè)計(jì)說(shuō)明書。內(nèi)容包括:摘要、目錄、正文、參考文
2、獻(xiàn)、附錄(程序清單)。正文部分包括:設(shè)計(jì)任務(wù)及要求、方案比較及論證、軟件設(shè)計(jì)說(shuō)明(軟件思想,流程,源程序設(shè)計(jì)及說(shuō)明等)、程序調(diào)試說(shuō)明和結(jié)果分析、課程設(shè)計(jì)收獲及心得體會(huì)。 時(shí)間安排: 1月5日-----1月7日 查閱資料及方案設(shè)計(jì) 1月8日-----元月11日 編程 1月12日-----1月13日 調(diào)試程序 1月14日-----1月16日 撰寫課程設(shè)計(jì)報(bào)告 指導(dǎo)教師簽名: 年 月 日 系主任(或責(zé)任教師)簽名: 年 月 日
3、 目錄 摘要 - 1 - 一 設(shè)計(jì)任務(wù)及要求 - 2 - 1.1 設(shè)計(jì)目的 - 2 - 1.2 設(shè)計(jì)要求 - 2 - 二 軟件設(shè)計(jì)說(shuō)明 - 3 - 2.1 設(shè)計(jì)思路 - 3 - 2.2 設(shè)計(jì)流程圖 - 4 - 2.3 程序模塊 - 5 - 2.3.1 主程序 - 5 - 2.3.2 主菜單界面 - 6 - 2.3.3 音樂(lè)代碼段 - 7 - 2.3.4 歌曲演奏子程序 - 8 - 2.3.5 通用發(fā)聲子程序 - 9 - 2.3.6 鋼琴界面畫圖程序 - 10 - 2.4 擴(kuò)展功能 - 12 - 三 調(diào)試說(shuō)明及結(jié)果分析 -13 - 四
4、課程設(shè)計(jì)收獲及心得體會(huì) - 17 - 參考文獻(xiàn) - 18 - 附錄 - 19 - - 26 - 摘要 本文主要對(duì)利用微機(jī)原理與接口技術(shù)來(lái)編寫簡(jiǎn)易電子鋼琴進(jìn)行分析,并介紹了基于8255A,8254芯片電子鋼琴系統(tǒng)的設(shè)計(jì)結(jié)構(gòu)與體系。將簡(jiǎn)譜音階轉(zhuǎn)換成匯編代碼,通過(guò)通用發(fā)聲程序發(fā)出對(duì)應(yīng)的聲音。 通過(guò)IBM-PC/XT機(jī)內(nèi)的定時(shí)/計(jì)數(shù)器接口芯片8254,8255,可以實(shí)現(xiàn)聲音的接口。本文通過(guò)匯編語(yǔ)言編程,由系統(tǒng)內(nèi)的8255A并行I/O接口的PB端口最低位來(lái)控制喇叭驅(qū)動(dòng)系統(tǒng),PB0控制8253-5定時(shí)/計(jì)數(shù)器的定時(shí)計(jì)數(shù);PB1來(lái)控制喇叭接通和斷開,以
5、此來(lái)發(fā)聲。對(duì)樂(lè)譜的頻率和節(jié)拍進(jìn)行編程,轉(zhuǎn)化為對(duì)8254-5定時(shí)/計(jì)數(shù)器和8255A并行接口的控制命令,從而實(shí)現(xiàn)音樂(lè)演奏。另外,為了方便實(shí)現(xiàn)人機(jī)交互,必須在顯示器上顯示相應(yīng)的提示語(yǔ)句,這個(gè)可以通過(guò)調(diào)用BIOS中斷10H號(hào)功能語(yǔ)句來(lái)實(shí)現(xiàn)。程序運(yùn)行時(shí),人工輸入相關(guān)參數(shù),程序檢測(cè)輸入?yún)?shù)并執(zhí)行相關(guān)的指令,從而實(shí)現(xiàn)音樂(lè)播放功能。 本程序主要完成的功能有完成三首歌曲的選擇與播放,還附加一個(gè)模擬鋼琴演奏部分。相應(yīng)的輔助功能有顯示提示信息,操作員通過(guò)鍵盤輸入相應(yīng)的字符命令,然后程序進(jìn)行檢測(cè),播放相應(yīng)的歌曲或者退出程序,可以重復(fù)操作。 關(guān)鍵詞:匯編 接口 音樂(lè) 演奏
6、 音樂(lè)演奏程序設(shè)計(jì) 一 設(shè)計(jì)任務(wù)及要求 1.1 設(shè)計(jì)目的 1) 鞏固和加深已經(jīng)學(xué)習(xí)的微機(jī)原理與接口技術(shù)知識(shí),并在設(shè)計(jì)的過(guò)程中學(xué)習(xí)新的匯編語(yǔ)言; 2) 熟練掌握匯編語(yǔ)言中各中段語(yǔ)句的使用; 3) 了解并掌握通用發(fā)聲程序的編寫方法以及發(fā)聲原理; 4) 熟練掌握8254,8255芯片的功能和使用方法; 5)通過(guò)設(shè)計(jì)一款音樂(lè)演奏軟件來(lái)培養(yǎng)對(duì)這門學(xué)科的興趣。 1.2 設(shè)計(jì)要求 要求完成的主要任務(wù): (包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書撰寫等具體要求) 1.使用匯編語(yǔ)言設(shè)計(jì)一個(gè)在計(jì)算機(jī)上運(yùn)行的音樂(lè)演奏程序; 2.屏幕顯示鋼琴圖像;
7、 3.按大寫字母“A”,唱樂(lè)曲1;按大寫字母“B”,唱樂(lè)曲2;按大寫字母“C”,唱樂(lè)曲3,依次類推; 4.按"Q"鍵,退出; 5.撰寫課程設(shè)計(jì)說(shuō)明書。 二 軟件設(shè)計(jì)說(shuō)明 2.1 設(shè)計(jì)思路 首先,設(shè)計(jì)一個(gè)主界面,用數(shù)據(jù)段語(yǔ)句定義,在程序執(zhí)行的開始所有定義的提示都應(yīng)顯示出來(lái),但它們不參與程序內(nèi)部的計(jì)算和轉(zhuǎn)換,而所定義的音樂(lè)頻率表和節(jié)拍時(shí)間,將隨通用發(fā)生程序執(zhí)行播放歌曲。課程設(shè)計(jì)中使用的數(shù)據(jù)全部定義在名稱為DSEG數(shù)據(jù)段中。 音樂(lè)頻率表和節(jié)拍時(shí)間則均使用字(DW)的存儲(chǔ)方式來(lái)實(shí)現(xiàn)在主菜單顯示和子菜單顯示數(shù)據(jù)段均使用字節(jié)(DB)的存儲(chǔ)方式來(lái)實(shí)現(xiàn)在此程序中主要運(yùn)用主程序
8、調(diào)用子程序方法實(shí)現(xiàn)該程序的功能。用到的芯片還包括8255,8254。該程序包括: 主程序主菜單界面模塊,音樂(lè)代碼等數(shù)據(jù)段模塊,歌曲演奏子程序模塊,通用發(fā)聲子程序模塊鋼琴界面畫圖程序模塊共七大模塊。 主程序模塊的功能主要是調(diào)用主菜單顯示模塊,將主菜單顯示在屏幕上,并對(duì)用戶輸入的菜單項(xiàng)目值進(jìn)行判斷進(jìn)而通過(guò)跳轉(zhuǎn)語(yǔ)句調(diào)用相應(yīng)的子程序。 2.2 設(shè)計(jì)流程圖 開始 初始化 提示輸入語(yǔ)句并輸入 是O? 是A? 是B? 是C? 是Q? 進(jìn)入我的鋼琴 播放:龍的傳人 播放:愛(ài)的就是你 播放:祝你生日快樂(lè) 結(jié)束 Y Y Y Y N N N N N 圖2
9、.1 總流程圖 2.3 程序模塊 2.3.1 主程序 初始化之后顯示主界面,輸入字符后,將其分別與‘O’、‘A’、‘B’、‘C’、‘Q、比較,是‘O’則進(jìn)入我的鋼琴界面可以進(jìn)行演奏,是‘A’則播放歌曲1,是‘B’則播放歌曲2,是‘C’則播放歌曲3,是‘Q’則退出,都不是則再次輸入。 START: MOV AX,DATAS MOV DS,AX LEA DX,STRING MOV AH,09H INT 21H ;提示選擇信息 MOV AH,09H MOV DX,OFFSET CHOSE INT
10、 21H ;----------------------- INPUT: MOV AH,01H INT 21H CMP AL,O JZ CTONE CMP AL,o JZ CTONE CMP AL,A JZ MUSICA CMP AL,a JZ MUSICA CMP AL,B JZ MUSICB CMP AL,b JZ MUSICB CMP AL,C JZ MUSICC CMP AL,c JZ MUSICC CMP AL,Q JZ EXIT CMP AL,q JZ EXIT JMP INPU
11、T 2.3.2 主菜單界面 以下為主界面的代碼段,執(zhí)行主程序是直接調(diào)用顯示。 STRING DB ,10,13 DB ########################### ,10,13 DB ## O ______________ ## ,10,13 DB ## /\_. _| Piano | ##
12、 ,10,13 DB #### | |_____________| #### ,10,13 DB ## ## __\__ [_____________| ## ## ,10,13 DB ## __][_\_ ][ ][ ## ,10,13 DB ## ## ,10,13 DB
13、 ## O> My piano ## ,10,13 DB ## A> Long de chuan ren ## ,10,13 DB ## B> Ai de jiu shi ni ## ,10,13 DB ## C> Happy Birthday ## ,10,13 DB ## Q> exit ##
14、 ,10,13 DB ## ## ,10,13 DB ############################### ,10,13 DB O O ,10,13 DB O | O O | O ,10,13 DB __\
15、|/__ __\|/__ ,10,13 DB \ / \ / ,10,13 DB \ / \ / ,10,13 DB %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ,10,13,$ 運(yùn)行程序后顯示界面如圖2.2: 圖2.
16、2 主菜單界面 2.3.3音樂(lè)代碼段 歌曲1至3的音樂(lè)頻率表和節(jié)拍時(shí)間在程序執(zhí)行的開始所有定義的提示都應(yīng)顯示出來(lái),但它們不參與程序內(nèi)部的計(jì)算和轉(zhuǎn)換,而所定義的音樂(lè)頻率表和節(jié)拍時(shí)間,將隨通用發(fā)生程序執(zhí)行播放歌曲。 音樂(lè)頻率表和節(jié)拍時(shí)間則均使用字(DW)的存儲(chǔ)方式來(lái)實(shí)現(xiàn),在主菜單顯示和子菜單顯示數(shù)據(jù)段均使用字節(jié)(DB)的存儲(chǔ)方式來(lái)實(shí)現(xiàn)。 1) 音階簡(jiǎn)譜向匯編語(yǔ)言轉(zhuǎn)換原理 PC機(jī)上大多數(shù)I/O都是由主板上的8255(或8255A)可編程外圍接口芯片(PPI)管理的。PPI包括三個(gè)8位寄存器:兩個(gè)輸入寄存器,端口地址分別是60H、62H;一個(gè)輸出寄存器,端口地址為61H。由PPI輸出
17、寄存器中的,也就是61H端口的D0、D1位來(lái)控制揚(yáng)聲器的驅(qū)動(dòng)方式。 BIOS中的BEEP子程序:1、只能發(fā)出896Hz的聲音;2、產(chǎn)生的音長(zhǎng)只能是0.5s的倍數(shù)。3、編寫通用發(fā)聲程序應(yīng)該能發(fā)出任意頻率的聲音,可由 1193100給定頻率=12348C給定頻率 (2—1) 計(jì)算出來(lái)。 聲音的持續(xù)時(shí)間更易于調(diào)整。利用CPU來(lái)產(chǎn)生延遲時(shí)間是最常用的一種方法。組成樂(lè)曲的每個(gè)音符的頻率值和持續(xù)時(shí)間是樂(lè)曲程序發(fā)聲所需要的兩個(gè)數(shù)據(jù)。 以下列出歌曲1的數(shù)據(jù)段: ;1 long de chuan ren MUS_FREQA
18、 DW 330,371,393,441,495,441,393,393,371,330 DW 330,371,393,441,495,441,393,391,393,441,495 DW 330,371,393,441,495,441,393,393,371,330 DW 371,371,371,393,371,330,330,294,330 DW 495,495,495,441,393,441,441,495,441
19、 DW 393,393,393,441,393,371,371,393,371 DW 495,495,495,441,393,441,441,495,441 DW 393,393,371,393,371,330,330,294,330,-1 MUS_TIMEA DW 1600,1600,1600,3200,1600,1600,3200,1600,1600,4800 DW 3
20、200,1600,1600,3200,1600,1600,1600,1600,1600,1600,4800 DW 3200,1600,1600,3200,1600,1600,3200,1600,1600,4800 DW 3200,3200,1600,3200,1600,3200,1600,1600,4800 DW 3200,3200,3200,1600,1600,3200,1600,1600,4800 DW 3200,3200,
21、3200,1600,1600,3200,1600,1600,4800 DW 3200,3200,3200,1600,1600,3200,1600,1600,4800 DW 3200,3200,3200,1600,1600,3200,1600,1600,3200 2.3.4 歌曲演奏子程序 以第一首歌的播放程序?yàn)槔?,程序演示圖見圖2.3。 MUSICA PROC NEAR ;顯示提示信息 MOV DX,OFFSET MUSIA MOV AH,09H INT 21H
22、 CALL HUAGANGQIN PUSH DS MUS_TIMEA 首地址指針 SI BP 取出[SI]中的頻率值 取出[BP]中對(duì)應(yīng)的持續(xù)時(shí)間 DI BX 是-1? 通用發(fā)聲程序發(fā)出該頻率聲音 SI+2 BP+2 回主菜單 N Y 圖2.3 音樂(lè)演奏演示圖 MUS_FRERA偏移首地址 SUB AX,AX PUSH AX LEA SI,MUS_FREQA LEA BP,DS:MUS_TIMEA MOV C
23、X,0 FREQA: LEA BX,MUS_JIEZOUA ADD BX,CX MOV DI,[BX] MOV BUFFER,DI MOV DI,[SI] CMP DI,-1 JE END_MUSA MOV DX,DS:[BP] MOV BX,DX CALL PAINTKEY CALL GENSOUND ADD SI,2
24、 ADD BP,2 ADD CX,2 JMP FREQA END_MUSA: CALL INIT CALL OPEN JMP START MUSICA ENDP 2.3.5通用發(fā)聲子程序 直接調(diào)用該程序可發(fā)出對(duì)應(yīng)頻率的聲音。 GENSOUND PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSH DI MOV AL,0
25、B6H OUT 43H,AL MOV DX,12H MOV AX,533H*896 DIV DI OUT 42H,AL MOV AL,AH OUT 42H,AL IN AL,61H MOV AH,AL OR AL,3 OUT 61H,AL WAIT1: MOV CX,0FFFFH DELAY1: LOOP DELAY1
26、 DEC BX JNZ WAIT1 MOV AL,AH OUT 61H,AL POP DI POP DX POP CX POP BX POP AX RET GENSOUND ENDP 2.3.6鋼琴界面畫圖程序 調(diào)用匯編的畫圖的相關(guān)指令,此處用到劃線與寫像素點(diǎn)語(yǔ)句。先勾勒出鋼琴按鍵的總框圖,程序中給定劃線起始坐標(biāo)點(diǎn),再通過(guò)寫像素點(diǎn)畫陰影,不同的陰影給定不同顏色。特別注意的
27、是鋼琴白按鍵寫白色,黑鍵寫黑色。 PAINTSIDE24: DRAWOBILQUE 405,SI,360,WHITE INC SI CMP SI,150 JC PAINTSIDE24 MOV SI,140 PAINTSIDE34: DRAWOBILQUE 455,SI,410,WHITE INC SI CMP SI,150 JC PAINTSIDE34 MOV SI,140 PAINTSIDE44: DRAWOBILQUE 505,SI,460,WHITE INC SI CMP SI,150 JC PAINTSIDE44 ;畫分割線 MO
28、V SI,240 REDRAW04: MOV DI,SI SUB DI,90 DRAWOBILQUE SI,140,DI,BLACK ADD SI,50 CMP SI,540 JC REDRAW04 MOV SI,150 HUAGANGQIN PROC CALL INIT CALL OPEN MOV SI,190 ;SI=START_X MOV DI,140 ;DI=START_Y MOV BP,540 ;BP=END_X D
29、RAWW4: DRAWLINE0 SI,DI,BP,WHITE DEC SI DEC BP INC DI CMP DI,230 JC DRAWW4 ;畫陰影 DRAW 100,230,450,250,GRAY ;側(cè)面陰影 MOV SI,140 PAINTSIDE4: DRAWOBILQUE 540,SI,450,GRAY INC SI CMP SI,160 JC PAINTSIDE4 ;黑鍵陰影 MOV SI,140 PAINTSIDE04: DRAWOBI
30、LQUE 255,SI,210,WHITE INC SI CMP SI,150 JC PAINTSIDE04 MOV SI,140 PAINTSIDE14: DRAWOBILQUE 305,SI,260,WHITE INC SI CMP SI,150 JC PAINTSIDE14 MOV SI,140 PAINTB4: MOV SI,OFFSET BLACKL MOV DI,OFFSET
31、BLACKR MOV SI,[SI+BX] MOV BP,[DI+BX] MOV DI,140 DRAWB4: DRAWLINE0 SI,DI,BP,BLACK DEC SI DEC BP INC DI CMP DI,185 JC DRAWB4 ADD BX,2 CMP BX,9 JC PAINTB4 ;黑鍵底下陰影 MOV BX,0 PAINTBB4: MOV SI,OFFSET BBL MOV DI,OFFSET BBR
32、 MOV SI,[SI+BX] MOV BP,[DI+BX] DRAW SI,185,BP,195,BLACK ADD BX,2 CMP BX,9 JC PAINTBB4 HUAGANGQIN ENDP REDRAW14: DRAWLINE1 SI,230,250,BLACK ADD SI,50 CMP SI,440 JC REDRAW14 ;畫黑鍵盤 MOV BX,0 PAINTSIDE24: DRAWOBILQUE 405,SI,360,WHITE INC SI CM
33、P SI,150 JC PAINTSIDE24 MOV SI,140 PAINTSIDE34: DRAWOBILQUE 455,SI,410,WHITE INC SI CMP SI,150 JC PAINTSIDE34 MOV SI,140 PAINTSIDE44: DRAWOBILQUE 505,SI,460,WHITE INC SI CMP SI,150 JC PAINTSIDE44 ;畫分割線 MOV SI,240 REDRAW04: MOV DI,SI SUB DI,90 DRAWOBILQUE SI,
34、140,DI,BLACK ADD SI,50 CMP SI,540 JC REDRAW04 MOV SI,150 REDRAW14: DRAWLINE1 SI,230,250,BLACK ADD SI,50 CMP SI,440 JC REDRAW14 ;畫黑鍵盤 MOV BX,0
35、 2.4 擴(kuò)展功能 除了課設(shè)要求實(shí)現(xiàn)的功能外,我們加入了一個(gè)模擬鋼琴演奏模塊,即可以通過(guò)按電腦鍵盤模擬按鋼琴的鍵,自己譜曲演奏。 功能的實(shí)現(xiàn):首先,定義好do,re,mi,fa,so,la,si各個(gè)音節(jié)的頻率數(shù)據(jù)段,當(dāng)選擇字符‘O’進(jìn)入My piano后,程序提示可以按鍵演奏,并掃描,獲取所按鍵的ASCII碼;然后,將其轉(zhuǎn)換為按鍵上對(duì)應(yīng)的字符,此程序?yàn)?,2,3,4,5,6,7正好是數(shù)字,分別表示do,re,mi,fa,so,la,si,同時(shí)每個(gè)數(shù)字對(duì)應(yīng)音節(jié)的頻率數(shù)據(jù)段中各個(gè)頻率;再次,調(diào)用通用發(fā)聲程序發(fā)出所按鍵對(duì)應(yīng)的頻率聲音。 程序段如下: CTONE: CALL HU
36、AGANGQIN ;獲取彈奏的音符 SCAN: MOV AH,00H INT 16H CMP AL,4FH JZ END_MUSA CMP AL,6FH JZ END_MUSA CMP AL,37H ;ASCII>37H,退出 JA ERROR CMP AL,31H ;ASCII<31H,退出 JC ERROR AND AX,000FH ;將ASCII碼轉(zhuǎn)換成數(shù)字 MOV BUFFER,AX ;將數(shù)字存儲(chǔ)在內(nèi)存空間BUFFER中 JMP PLAY ERROR
37、: CMP AL,1BH JZ EXIT JMP SCAN PLAY: MOV DI,TONEF DEC AX ADD AX,AX ;TABFx為雙字表,需要將獲得的ASCII符*2 ADD DI,AX MOV BX,[DI] ;根據(jù)按鍵獲取的ASCII碼得到相應(yīng)的頻率值 MOV DX,12H MOV AX,34DEH ;1.193182MHZ/BX DIV BX OUT 42H,AL MOV AL,AH OUT 42H,AL CALL PAINTKEY CALL DELAY ;揚(yáng)聲器延時(shí) MOV AX,12H ;往揚(yáng)聲器送高頻,模擬關(guān)閉
38、 OUT 42H,AL MOV AL,AH OUT 42H,AL JMP SCAN EXIT: MOV AH,4CH INT 21H 三 調(diào)試說(shuō)明及結(jié)果分析 確定設(shè)計(jì)思路和流程圖后,通過(guò)查閱相關(guān)資料和即時(shí)學(xué)習(xí),最后寫出了最初版的程序,調(diào)試過(guò)程中也遇到各種各樣的問(wèn)題,下面將主要問(wèn)題即解決方案歸納如下: a) 運(yùn)行主程序,只正常顯示一部分界面,其他地方出現(xiàn)大量亂碼。 解決方法:在主菜單的數(shù)據(jù)段定于語(yǔ)句中字符串后面加了$,問(wèn)題得到解決。 b) 播放音樂(lè)時(shí)音樂(lè)有踩上節(jié)奏,即每個(gè)音符發(fā)聲時(shí)間一樣長(zhǎng),沒(méi)有節(jié)奏感。 解決方法:經(jīng)過(guò)檢查程序,發(fā)現(xiàn)音樂(lè)的
39、節(jié)拍時(shí)間的數(shù)據(jù)沒(méi)有正常送入發(fā)生程序,經(jīng)過(guò)修改后得到解決。 c) 主菜單中要按兩次Q鍵才能退出運(yùn)行。 解決方法:檢查程序,再退出處多插入了一條讀取字符的命令,刪除后問(wèn)題得到解決。 d) 小組成員將在各自電腦上調(diào)試好的音樂(lè)代碼段插入總的程序后,唱歌速度變快,失真。 解決方法:這是由于自己寫的發(fā)生程序中時(shí)間的延遲程序延時(shí)長(zhǎng)短不同,調(diào)成一致后問(wèn)題得到解決。 調(diào)試好后無(wú)誤的程序運(yùn)行結(jié)果圖: 把編好的源程序命名保存為YINYUE.asm,在asm集成環(huán)境中進(jìn)行調(diào)試,如果編譯成功,就選擇運(yùn)行選項(xiàng)中的生成exe文件,這樣就產(chǎn)生了一個(gè)可運(yùn)行程序,然后點(diǎn)擊運(yùn)行,就會(huì)看到與題目要求相符的界面。 主菜單
40、圖見圖3.1 圖3.1 主菜單界面 進(jìn)入My piano 界面后見圖3.2 圖3.2 My piano 播放《 Long de chuan ren(龍的傳人)》界面見圖3.3 圖3.3 Long de chuan ren 播放《Ai de jiu shi ni(愛(ài)的就是你)》界面見圖3.4
41、 圖3.4 Ai de jiu shi ni 播放《Happy birthday(祝你生日快樂(lè))》界面見圖3.5 圖3.5 Happy birthday 四 課程設(shè)計(jì)收獲及心得體會(huì) 在課程設(shè)計(jì)開始階段,我感到無(wú)從下手,畢竟上課時(shí)學(xué)到都只是匯編基本知識(shí),用來(lái)做課程設(shè)計(jì)是遠(yuǎn)遠(yuǎn)不夠的。后來(lái),經(jīng)過(guò)上網(wǎng)查閱相關(guān)資料和翻閱書籍,并學(xué)習(xí)匯編語(yǔ)言的新知識(shí),心中才有了一個(gè)基本的思路。之后便和小組成員一起投入到了為期近兩周的
42、微機(jī)課設(shè)中去。 本次課程設(shè)計(jì)的主要任務(wù)是用匯編語(yǔ)言編寫音樂(lè)演奏程序播放自己選定的歌曲,這其中涉及到8255A,8254芯片的利用,這讓我加深了對(duì)這些芯片的認(rèn)識(shí)。而這其中用到了端口地址及工作方式這些接口技術(shù),從而我領(lǐng)悟到微機(jī)原理與接口技術(shù)是相互關(guān)聯(lián)相互滲透的。 經(jīng)過(guò)小組成員的共同努力,第一周我們的設(shè)計(jì)思路及流程圖已近定下,得到老師的認(rèn)可后,我們開始著手編寫和調(diào)試程序,這期間遇到了各種各樣的問(wèn)題,但問(wèn)題并不可怕,小組成員齊心協(xié)力,總能化解一個(gè)一個(gè)難題,每解決一個(gè)難題,大伙都特別興奮,而且信心也倍增,我們享受著其中的喜怒哀樂(lè),覺(jué)得一切都很充實(shí)。 短短的兩周課程設(shè)計(jì)卻困難重重的,但是我們,一起克
43、服困難,努力去完成課程設(shè)計(jì)。我們?cè)诮鉀Q困難的過(guò)程中有很多自己的感受,我想很多同學(xué)都會(huì)和我有一樣的感受,那就是感覺(jué)匯編語(yǔ)言真的是很神奇,很有意思。我們從開始的擔(dān)心和害怕漸漸變成了享受,享受著匯編帶給我們的快樂(lè)??粗约鹤龀鰜?lái)的東西,心里面的感覺(jué)真的很好。雖然我們做的東西都還很簡(jiǎn)單,但是畢竟是我們自己設(shè)計(jì)出來(lái)的,很有成就感。而且我們也學(xué)會(huì)了很多知識(shí)。 總的來(lái)說(shuō),這次課程設(shè)計(jì)實(shí)習(xí)讓我收獲頗多,不但鞏固了我微機(jī)原理與接口技術(shù)這門課上學(xué)到的知識(shí),而且豐富了我的匯編知識(shí),因?yàn)橥ㄟ^(guò)微機(jī)課設(shè)我學(xué)到了以前沒(méi)接觸過(guò)的匯編語(yǔ)言。這次課設(shè)培養(yǎng)了我的興趣,增強(qiáng)了我獨(dú)立的去分析問(wèn)題和解決問(wèn)題的能力,感謝學(xué)校提供的這次機(jī)
44、會(huì),也感謝老師的栽培和指導(dǎo)! 參考文獻(xiàn) [1] 周佩玲.微型計(jì)算機(jī)原理及接口技術(shù).電子工業(yè)出版社,2005 [2] 譚浩強(qiáng).微型計(jì)算機(jī)原理及應(yīng)用.清華大學(xué)出版社,2001 [3] 戴梅萼,史嘉權(quán).微型計(jì)算機(jī)技術(shù)及應(yīng)用.清華大學(xué)出版社,2003 [4] 沈美明.IBM PC機(jī)匯編語(yǔ)言程序設(shè)計(jì).清華大學(xué)出版社,1991 [5] 宋杰,汪志宏,江敏.微機(jī)原理與接口技術(shù)課程設(shè)計(jì).機(jī)械工業(yè)出版社,2005 附錄:總程序 ;畫橫線 ;--------
45、---------------------------- DRAWLINE0 MACRO START_X,START_Y,END_X,COLOR LOCAL PAINT PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,0CH MOV AL,COLOR MOV BX,0 MOV CX,START_X MOV DX,START_Y PAINT: INT 10H INC CX CMP CX,END_X JC PAINT POP DX POP CX POP BX POP AX ENDM ;畫豎線 ;----------
46、-------------------------- DRAWLINE1 MACRO START_X,START_Y,END_Y,COLOR LOCAL PAINT PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,0CH MOV AL,COLOR MOV BX,0 MOV CX,START_X MOV DX,START_Y PAINT: INT 10H INC DX CMP DX,END_Y JC PAINT POP DX POP CX POP BX POP AX ENDM ;畫斜線 向右傾斜 ;------
47、------------------------------ DRAWOBILQUE MACRO START_X,START_Y,END_X,COLOR LOCAL PAINT2 PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,0CH MOV AL,COLOR MOV BX,0 MOV DX,START_Y MOV CX,START_X PAINT2: INT 10H DEC CX INC DX CMP CX,END_X JA PAINT2 POP DX POP CX POP BX POP AX ENDM ;畫
48、填充矩形 ;------------------------------------ DRAW MACRO START_X,START_Y,END_X,END_Y,COLOR LOCAL DRAW_NEXT PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,0CH ;寫像素點(diǎn) MOV AL,COLOR ;設(shè)置顏色 MOV BH,0 ;選用頁(yè)號(hào)0 MOV CX,START_X ;列起始點(diǎn)
49、 MOV DX,START_Y ;行起始點(diǎn) DRAW_NEXT: INT 10H ;畫點(diǎn) INC CX ;畫橫線 CMP CX,END_X ;比較行是否畫完 JNE DRAW_NEXT ;畫另一行 MOV CX, START_X ;另一行的起始點(diǎn) INC DX CMP DX,END_Y ;比較列是否畫完 JNE DRAW_NEXT;未完繼續(xù)畫 POP DX POP CX
50、 POP BX POP AX ENDM DATAS SEGMENT ;1 long de chuan ren MUS_FREQA DW 330,371,393,441,495,441,393,393,371,330 DW 330,371,393,441,495,441,393,391,393,441,495 DW 330,371,393,441,495,441,393,393,371,330 D
51、W 371,371,371,393,371,330,330,294,330 DW 495,495,495,441,393,441,441,495,441 DW 393,393,393,441,393,371,371,393,371 DW 495,495,495,441,393,441,441,495,441 DW 393,393,371,393,371,330,330,294,330,-1
52、 MUS_TIMEA DW 1600,1600,1600,3200,1600,1600,3200,1600,1600,4800 DW 3200,1600,1600,3200,1600,1600,1600,1600,1600,1600,4800 DW 3200,1600,1600,3200,1600,1600,3200,1600,1600,4800 DW 3200,3200,1600,3200,1600,3200,16
53、00,1600,4800 DW 3200,3200,3200,1600,1600,3200,1600,1600,4800 DW 3200,3200,3200,1600,1600,3200,1600,1600,4800 DW 3200,3200,3200,1600,1600,3200,1600,1600,4800 DW 3200,3200,3200,1600,1600,3200,1600,1600,3200
54、 MUS_JIEZOUA DW 6,7,1,2,3,2,1,1,7,6 DW 6,7,1,2,3,2,1,7,1,2,3 DW 6,7,1,2,3,2,1,1,7,6 DW 7,7,7,1,7,6,6,5,6 DW 3,3,3,2,1,2,2,3,2 DW 1,1,1,2,1,7,7,1,7
55、DW 3,3,3,2,1,2,2,3,2 DW 1,1,7,1,7,6,6,5,6 ;2 ai de jiu shi ni MUS_FREQB DW 525,393,262,393,350,393,350,393,441,525,525,441,525,393,525,589 DW 525,589,700,700,700,700,661,589,525,441 DW 525,589,7
56、00,700,700,589,661,589,589,525,525,525,525,441,393,350,350 DW 441,393,393,350,350,294,350,393,393 DW 525,393,262,393,350,393,350,393,441,525,525,441,525,393,525,589 DW 525,589,700,700,700,700,661,589,525,441 DW
57、 525,589,700,700,700,589,661,589,589,525,525,525,525,441,393,350,350 DW 441,393,393,350,350,294,350,350 DW -1 MUS_TIMEB DW 8DUP(2000),4000,6 DUP(2000),4000 DW 9DUP(2000),8000
58、 DW 5DUP(2000),1000,1000,9 DUP(2000),6000 DW 8DUP(2000),4000 DW 8DUP(2000),4000,6 DUP(2000),4000 DW 9DUP(2000),8000 DW 5DUP(
59、2000),1000,1000,9 DUP(2000),6000 DW 5DUP(2000),4000,2000,4000 MUS_JIEZOUB DW 5,2,5,2,1,2,1,2,3,5,5,3,5,3,5,6 DW 5,6,1,1,1,1,7,6,5,3 DW 5,6,1,1,1,6,7,6,6,5,5,5,5,5,3,2,1 DW 3,2,2,1
60、,1,6,1,2,2 DW 5,2,5,2,1,2,1,2,3,5,5,3,5,3,5,6 DW 5,6,1,1,1,1,7,6,5,3 DW 5,6,1,1,1,6,7,6,6,5,5,5,5,5,3,2,1 DW 3,2,2,1,1,6,1,2 ;3 Happy Birthday MUS_FREQC DW
61、 262,262,294,262,349,330,262,262,294 DW 262,392,349,262,262,523,440,349 DW 330,294,466,466,440,262,392,349 DW -1 MUS_JIEZOUC DW 5,5,6,5,1,7 DW 5,5,6,5,2,1 DW 5,5,5,3,1,7,6
62、 DW 4,4,3,1,2,1 MUS_TIMEC DW 2DUP(520 ),1000,1000,1000,2000,520,520,1000 DW 1000,1000,2000,520,520,1000,1000,1000 DW 1000,3000,520,520,1000,1000,1000,2000 WHITE DB 0FFH BLACK DB 0 YELLOW DB
63、0EEH GRAY DB 8 CHOSE DB Plesae chose the letter to continue,0AH,0DH,$ ANSWER DB 0AH,0DH, You just made a good choice, now enjoy yourself! DB 0AH,0DH, DB 0AH,0DH, " Press o to return $" MUSIA DB @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
64、 ,0AH,0DH DB Song: Long de chuan ren ,0AH,0DH DB @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ,0AH,0DH,$ MUSIB DB @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ,0AH,0DH
65、 DB Song: Ai de jiu shi ni ,0AH,0DH DB @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ,0AH,0DH,$ MUSIC DB @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ,0AH,0DH DB
66、 Song: Happy birthday to you ,0AH,0DH DB @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ,0AH,0DH,$ TABFC DW 192,294,330,350,393,441,495 BUFFER DW 0 DTIME DW 10 TONEF DW 0 TABOLINE DW 240,290,340,390,440,490 BLACKL DW 225,275,375,425,475 BLACKR DW 255,305,405,455,505 BBL DW 180,230,330,380,430 BBR DW 211,261,361,411,461 WL
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲成本核算與控制培訓(xùn)課件
- 新員工入職培訓(xùn)思想修養(yǎng)篇(ppt47)
- 同步電機(jī)的工作原理及結(jié)構(gòu)特點(diǎn)
- 電影敘事結(jié)構(gòu)模式完整版
- 南州六月荔枝丹課件分析說(shuō)明方法
- 人教版小學(xué)音樂(lè)六下《愛(ài)我中華》課件
- &#215;&#215;空調(diào)設(shè)備有限公司整體發(fā)展戰(zhàn)略診斷(PPT 50頁(yè))
- 《酒店培訓(xùn)體系建設(shè)》課件
- 細(xì)胞膜系統(tǒng)的結(jié)構(gòu)
- 觸發(fā)器及其應(yīng)用
- 柱體、錐體、臺(tái)體的表面積與體積
- 萬(wàn)能險(xiǎn)銷售流程和話術(shù)0
- 紅外光譜基本原理
- 3技術(shù)創(chuàng)新管理-(9)
- 函數(shù)的零點(diǎn)(精品)