電子琴課程設(shè)計(jì)報(bào)告電子版(微機(jī)) DOC
《電子琴課程設(shè)計(jì)報(bào)告電子版(微機(jī)) DOC》由會(huì)員分享,可在線閱讀,更多相關(guān)《電子琴課程設(shè)計(jì)報(bào)告電子版(微機(jī)) DOC(13頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 大 連 海 洋 大 學(xué) 課 程 設(shè) 計(jì) 報(bào) 告 紙 學(xué)院:信息工程學(xué)院 專業(yè)班級(jí):自動(dòng)化 姓名: 學(xué)號(hào): 自動(dòng)化專業(yè)課程設(shè)計(jì)報(bào)告 《微機(jī)原理及應(yīng)用課程設(shè)計(jì)》 題目:計(jì)算機(jī)仿真電子琴 班 級(jí) 姓 名 學(xué) 號(hào) 時(shí) 間 2011/12/19~2011/12/23 地 點(diǎn) 電信實(shí)驗(yàn)中心第六實(shí)驗(yàn)
2、室 指 導(dǎo) 教 師 大 連 水 產(chǎn) 學(xué) 院 信 息 工 程 學(xué) 院 自 動(dòng) 化 教 研 室 題目:計(jì)算機(jī)仿真電子琴. 一、課程設(shè)計(jì)的目的與要求 1、教學(xué)目的 本課程的課程設(shè)計(jì)是自動(dòng)化專業(yè)學(xué)生學(xué)習(xí)完《微機(jī)原理及應(yīng)用》課程后,進(jìn)行的一次以匯編語(yǔ)言為主,硬件設(shè)計(jì)為輔的綜合訓(xùn)練。本課程設(shè)計(jì)的其目的在于加深對(duì)微機(jī)原理基本知識(shí)的理解,掌握匯編語(yǔ)言程序設(shè)計(jì)的基本方法;掌握運(yùn)用微機(jī)原理開(kāi)發(fā)系統(tǒng)的基本方法。 2、 教學(xué)要求 從課程設(shè)計(jì)的目的出發(fā),通過(guò)設(shè)計(jì)工作的各個(gè)環(huán)節(jié),達(dá)到以下要求:
3、1) 掌握匯編語(yǔ)言程序設(shè)計(jì)的基本方法。 2) 進(jìn)一步理解各種接口電路的應(yīng)用。例如8255并行接口,8253定時(shí)器等。 3) 掌握利用PC機(jī)揚(yáng)聲器發(fā)出不同頻率聲音的方法。 二、課程設(shè)計(jì)課題的分析 1、主要技術(shù)指標(biāo) 編寫程序 (1)在程序運(yùn)行時(shí)使PC即成為一架可彈奏的電子琴。當(dāng)按下數(shù)字健1---8時(shí),依次發(fā)出1,2,3,4,5,6,7,I這8個(gè)音調(diào)。自行設(shè)計(jì)按下某一鍵則退出電子琴狀態(tài)。 (2)在程序運(yùn)行時(shí)使PC自動(dòng)演奏一首樂(lè)曲。 2、設(shè)計(jì)思路 通過(guò)編程,建立一個(gè)DOS界面,建立簡(jiǎn)單的菜單選項(xiàng),可是實(shí)現(xiàn)電子琴的基本彈奏功能??梢酝ㄟ^(guò)按鍵“1、3、4、5、6、7”實(shí)現(xiàn)音調(diào)的低音輸入
4、,按鍵“Q、W、E、R、T、Y、U”實(shí)現(xiàn)對(duì)音調(diào)的中音輸入,按鍵“A、S、D、F、G、H、J”實(shí)現(xiàn)音調(diào)的高音輸入,可以按“ESC”或“ENTER”鍵退出、“P”進(jìn)入播放音樂(lè)模式,有兩個(gè)音樂(lè)可以選擇,1是水手,2是新年好。 3、硬件參數(shù)及硬件接線電路圖 (1)地址和初值 8255口地址: PA口=60H PB口=61H PC口=62H 控制口=63H 8253口地址:計(jì)數(shù)器0=40H 計(jì)數(shù)器1=41H 計(jì)數(shù)器2=42H 控制寄存器=43H 8253初值:600Hz聲音,1.19MHz/600=1983 (2)接線電路圖 PC機(jī)揚(yáng)聲器電路以及相關(guān)接口電路:(如圖1) 圖
5、1 接線電路圖 4、作原理 PC中的定時(shí)電路有三個(gè)通道,通道3用于發(fā)聲,通道1用于控制系統(tǒng)內(nèi)部的時(shí)鐘。 通道1的工作方式和通道3一樣,但是系統(tǒng)啟動(dòng)時(shí)設(shè)定其發(fā)出一個(gè)頻率固定為18.2Hz的信號(hào),這個(gè)信號(hào)直接送到系統(tǒng)中的"中斷控制器"。每一個(gè)"Hz"都產(chǎn)生一個(gè)硬件中斷,一般稱這個(gè)硬中斷為"IRQ0",對(duì)應(yīng)的中斷號(hào)是08H。在定時(shí)器的控制下每隔55毫秒就要執(zhí)行一個(gè)08H號(hào)中斷,這個(gè)中斷的主要工作就是連續(xù)地計(jì)數(shù)。 由于PC計(jì)算機(jī)的時(shí)鐘晶振為1.1931816MHz,根據(jù)頻率的公式: f=1/T 則頻率周期為 T=1/f 定時(shí)器的計(jì)數(shù)器為16位計(jì)數(shù)器,則最大的計(jì)數(shù)值為655
6、36,那么其定時(shí)時(shí)間為: t=65536*T=65536/f=0.0549254(秒) 即:PC定時(shí)器每秒可中斷18.2065次。 5、程序流程圖(見(jiàn)圖2) 開(kāi) 始 顯示緩存區(qū),變量初始化 掃描鍵盤 調(diào)用發(fā)音子程序 是否Esc或Enter 是否是P鍵 是否是Q鍵 返回DOS N 播放音樂(lè)菜單 播放音樂(lè)程序 鍵盤掃描 是否Enter鍵停止 是否Esc或Enter 返回DOS Y Y N Y N Y N Y N 圖2 程序流程圖 三、課程設(shè)計(jì)的結(jié)果 程序開(kāi)始,顯示提示信息,對(duì)緩存區(qū)初始化。按鍵掃描,接著調(diào)用發(fā)音子程序在把AL
7、送緩存區(qū),發(fā)出與按鍵相對(duì)應(yīng)頻率的聲音,從而實(shí)現(xiàn)計(jì)算機(jī)仿真電子琴的功能。并不停地對(duì)Esc鍵、Enter鍵、P鍵掃描,當(dāng)Esc鍵或Enter鍵按下時(shí),就退出程序。當(dāng)按下P時(shí),顯示播放音樂(lè)目錄。當(dāng)按下數(shù)字選擇鍵時(shí),播放程序中預(yù)設(shè)的曲目,中途可以通過(guò)Enter鍵,終止音樂(lè)播放。當(dāng)檢測(cè)到Q時(shí),退出到計(jì)算機(jī)仿真電子琴演奏狀態(tài)。 1、程序代碼: STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS DATA SEGMENT ASSUME DS:DATA STR_1 DB 0DH,0AH,'<<-----WELCOME YOU TO USING----->
8、> $' STR_2 DB 0DH,0AH,' Author:SunFh Date:2011/12/20 $' STR_3 DB 0DH,0AH,'This is an electric piano!$' STR_4 DB 0DH,0AH,'LOW: 1-2-3-4-5-6-7$' STR_5 DB 0DH,0AH,'MID: Q-W-E-R-T-Y-U$' STR_6 DB 0DH,0AH,'HIG: A-S-D-F-G-H-J$' STR_7 DB 0DH,0AH,'You can press play it that likes a piano.'
9、 DB 0DH,0AH,'And you can press ''ESC'' or ''ENTER'' to EXIT.$' STR_8 DB 0DH,0AH,'What''s more,' DB 0DH,0AH,' you can press ''P'' to play some musics!$' STR_9 DB 0DH,0AH,'Please selectT the music (Press ''Q'' to exit this MENU):$' STR_10 DB 0DH,0AH,'1. Shui Shou$' STR_11 DB 0DH,0AH,'2. X
10、in Nian Hao' DB 0DH,0AH,'You can press "ENTER" to stop play.$' STR_12 DB 0DH,0AH,'INPUT ERROR!$' STR_13 DB 0DH,0AH,'Please input again!$' STR_21 DB 0DH,0AH,' $' NOTE_T DW 262,294,330,349,392,440,494 DW 523,587,659,698,784,880,988 DW 1046,1175,1318,1397,1568,1760,1975 DW 0 KEY_
11、T DB '1','2','3','4','5','6','7' DB 'q','w','e','r','t','y','u' DB 'a','s','d','f','g','h','j' DB '0' MUSIC_N1 DB '6','e','w','e','w','e','r','t','r','w','e','0','r' DB 'r','r','r','w','q','w','e','w','w','e','q','7','6','q','7' DB '6','e','w','e','w','e','r','r','r','e','
12、w','e' DB 'r','e','w','q','w','q','w','e','7','7','6','5','6','6' DB 'w','w','w','w','r','r','e','w','w','w','e','w','q','w','q','6',0 MUSIC_D1 DB 8,4,4,8,4,4,6,2,4,4,4,6,2 DB 4,2,2,4,4,4,2,2,4,4,4,4,4,4,16 DB 8,4,4,8,4,4,4,2,2,4,4,16 DB 6,2,4,4,6,2,4,4,4,4,4,2,2,16 DB 6,2,4,4,4,2,2,4,2
13、,2,4,4,4,2,2,16 MUSIC_N2 DB '1','1','1','t','3','3','3','1','1','3','5','5','4','3','2','2','3' DB '4','4','3','2','3','1','1','3','2','t','u','2','1',0 MUSIC_D2 DB 4,4,8,8,4,4,8,8,4,4,8,8,4,4,16,4,4 DB 8,8,4,4,8,8,4,4,8,8,4,4,32 JIEPAI DB ? SPEED DB 2 JIANGE DB 1 DATA ENDS CODE SEGMEN
14、T ASSUME CS:CODE SHOW MACRO STR LEA DX,STR MOV AH,09H INT 21H ENDM MAIN PROC FAR MOV AX,DATA MOV DS,AX SHOW STR_21 SHOW STR_1 SHOW STR_2 SHOW STR_3 SHOW STR_4 SHOW STR_5 SHOW STR_6 SHOW STR_7 SHOW STR_8 SHOW STR_21 MOV BX,0 KEY_SCAN:
15、MOV AL,6 MOV JIEPAI,AL MOV BX,0000H MOV AH, 00H INT 16H CMP AL, 0DH JZ EXIT CMP AL, 1BH JZ EXIT CMP AL, 'p' JZ PLAY LOOKUP:CMP KEY_T[BX],AL JE NEXT INC BX JMP LOOKUP NEXT:SHL BX,1 MOV CX,NOTE_T[BX] CALL BEEP JMP KEY_SCAN EXIT:MOV AH,
16、4CH INT 21H ERROR: SHOW STR_12 SHOW STR_13 JMP PLAY PLAY:SHOW STR_21 SHOW STR_9 SHOW STR_10 SHOW STR_11 INPUT:MOV AH, 00H INT 16H CMP AL, 'q' JZ START CMP AL, 0DH JZ EXIT CMP AL, 1BH JZ EXIT CMP AL, '1' JZ NEXT6 CMP AL, '2' JZ NE
17、XT7 CALL ERROR JMP INPUT NEXT6:CALL PLAY_M1 NEXT7:CALL PLAY_M2 START:CALL MAIN STOP:PUSH AX MOV AH,00H INT 16H CMP AL,0DH JZ PLAY RET PLAY_M1 PROC NEAR NEXT5:MOV BX,0 NEXT3:MOV AL,MUSIC_N1[BX] PUSH AX MOV AL,MUSIC_D1[BX] MOV JIEPAI,AL POP AX PUSH
18、 AX MOV AH,11 INT 21H CMP AL,0FFH JZ STOP POP AX CMP AL, 0 JE INPUT PUSH BX MOV BX,0 LOOK1:CMP KEY_T[BX],AL JE NEXT1 INC BX AND BX,0FFH JMP LOOK1 NEXT1:SHL BX,1 MOV CX,NOTE_T[BX] CMP CX,0 JE NEXT4 CALL BEEP CALL PAUSE POP BX
19、 INC BX JMP NEXT3 NEXT4:CALL NOBEEP CALL PAUSE POP BX INC BX JMP NEXT3 PLAY_M1 ENDP IN:JMP INPUT PLAY_M2 PROC NEAR NEX5:MOV BX,0 NEX3:MOV AL,MUSIC_N2[BX] PUSH AX MOV AL,MUSIC_D2[BX] MOV JIEPAI,AL POP AX PUSH AX MOV AH,11 INT 21H
20、CMP AL,0FFH JZ STOP POP AX CMP AL, 0 JE IN PUSH BX MOV BX,0 LOO1:CMP KEY_T[BX],AL JE NEX1 INC BX AND BX,0FFH JMP LOO1 NEX1:SHL BX,1 MOV CX,NOTE_T[BX] CMP CX,0 JE NEX4 CALL BEEP CALL PAUSE POP BX INC BX JMP NEX3 NEX4:CALL NO
21、BEEP CALL PAUSE POP BX INC BX JMP NEX3 PLAY_M2 ENDP MAIN ENDP BEEP PROC NEAR MOV DX,0012H MOV AX,34DCH DIV CX OUT 42H,AL MOV AL,AH OUT 42H,AL CALL SPK_ON MOV AH,00H INT 1AH MOV AL,JIEPAI ADD AL,SPEED CBW ADD AX,DX MOV BX,AX DEL
22、AY1: MOV AH,00H INT 1AH CMP BX,DX JNZ DELAY1 CALL SPK_OFF RET BEEP ENDP NOBEEP PROC NEAR CALL SPK_OFF MOV AH,00H INT 1AH MOV AL,JIEPAI ADD AL,SPEED CBW ADD AX,DX MOV BX,AX DELAY2:MOV AH,00H INT 1AH CMP BX,DX JNZ DELAY2 RET NOBEEP ENDP
23、 PAUSE PROC NEAR CALL SPK_OFF MOV AH,00H INT 1AH MOV AL,JIANGE CBW ADD AX,DX MOV BX,AX DELAY3:MOV AH,00H INT 1AH CMP BX,DX JNZ DELAY3 RET PAUSE ENDP SPK_ON PROC NEAR PUSH AX IN AL,61H OR AL,03H OUT 61H,AL POP AX RET SPK_ON EN
24、DP SPK_OFF PROC NEAR PUSH AX IN AL,61H AND AL,0FCH OUT 61H,AL POP AX RET SPK_OFF ENDP CODE ENDS END MAIN 2、實(shí)驗(yàn)現(xiàn)象 (1)程序正常運(yùn)行,如圖3 圖3 程序正常運(yùn)行 (2)音樂(lè)播放菜單(按P鍵),如圖4 圖4 音樂(lè)播放菜單 (3)輸入錯(cuò)誤按鍵,顯示錯(cuò)誤,鍵盤重新輸入,如圖5 圖5 輸入錯(cuò)誤按鍵 (4)音樂(lè)播放終止,可以重新選擇播放音樂(lè)或者返回,如圖6 圖6 音樂(lè)終止畫面
25、(5)返回主菜單界面(按Q鍵),如圖7 圖7 返回主菜單界面 四、課程設(shè)計(jì)的心得與體會(huì) 一個(gè)星期的課程設(shè)計(jì),讓我嘗試了失敗的打擊,和成功的喜悅。雖然自己查閱了很多資料,但是發(fā)信自己對(duì)知識(shí)的掌握還是不夠扎實(shí),不過(guò)自己在課程設(shè)計(jì)過(guò)程中,也學(xué)到了不少擴(kuò)展的知識(shí)。在程序匯編時(shí)候,會(huì)遇到很多問(wèn)題,自己的英文不是很好,有些錯(cuò)誤都看不明白,但是跟同學(xué)討論學(xué)習(xí)之后,修改程序,改正錯(cuò)誤。讓我意識(shí)到,合作是很有必要的,每個(gè)人理解的擅長(zhǎng)的地方都不同,通過(guò)交流也會(huì)取長(zhǎng)補(bǔ)短。 五、參考文獻(xiàn) [1] 王忠民,微型計(jì)算機(jī)原理,西安:西安電子科技大學(xué)出版社,2007年 [2] 趙燕,何南,微機(jī)原理與應(yīng)用實(shí)驗(yàn)指導(dǎo)書(shū),大連海洋大學(xué),2008年 [3] 仇玉章,馮一兵,微計(jì)算機(jī)技術(shù)——實(shí)驗(yàn)與輔導(dǎo),北京:清華大學(xué)出版社,2006年 [4] 朱定華,微機(jī)原理、匯編與接口技術(shù)實(shí)驗(yàn)教程,北京:清華大學(xué)出版社,2007年
- 溫馨提示:
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 110中國(guó)人民警察節(jié)(筑牢忠誠(chéng)警魂感受別樣警彩)
- 2025正字當(dāng)頭廉字入心爭(zhēng)當(dāng)公安隊(duì)伍鐵軍
- XX國(guó)企干部警示教育片觀后感筑牢信仰之基堅(jiān)守廉潔底線
- 2025做擔(dān)當(dāng)時(shí)代大任的中國(guó)青年P(guān)PT青年思想教育微黨課
- 2025新年工作部署會(huì)圍繞六個(gè)干字提要求
- XX地區(qū)中小學(xué)期末考試經(jīng)驗(yàn)總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 支部書(shū)記上黨課筑牢清廉信念為高質(zhì)量發(fā)展?fàn)I造風(fēng)清氣正的環(huán)境
- 冬季消防安全知識(shí)培訓(xùn)冬季用電防火安全
- 2025加強(qiáng)政治引領(lǐng)(政治引領(lǐng)是現(xiàn)代政黨的重要功能)
- 主播直播培訓(xùn)直播技巧與方法
- 2025六廉六進(jìn)持續(xù)涵養(yǎng)良好政治生態(tài)
- 員工職業(yè)生涯規(guī)劃方案制定個(gè)人職業(yè)生涯規(guī)劃
- 2024年XX地區(qū)黨建引領(lǐng)鄉(xiāng)村振興工作總結(jié)
- XX中小學(xué)期末考試經(jīng)驗(yàn)總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 幼兒園期末家長(zhǎng)會(huì)長(zhǎng)長(zhǎng)的路慢慢地走