微機(jī)原理與匯編語言課設(shè)-電子琴_第1頁
微機(jī)原理與匯編語言課設(shè)-電子琴_第2頁
微機(jī)原理與匯編語言課設(shè)-電子琴_第3頁
微機(jī)原理與匯編語言課設(shè)-電子琴_第4頁
微機(jī)原理與匯編語言課設(shè)-電子琴_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微機(jī)原理與匯編語言課程設(shè)計電子琴學(xué)院:計算機(jī)科學(xué)技術(shù)專業(yè):計算機(jī)科學(xué)與技術(shù)(工)班級:計13-1班姓名:肖林英學(xué)號:25指導(dǎo)教師:2016年6月10日微機(jī)原理與匯編語言課程設(shè)計任務(wù)書一、題目:電子琴二、設(shè)計的目的.掌握利用PC機(jī)揚聲器發(fā)出不同頻率聲音的方法;.學(xué)習(xí)利用系統(tǒng)功能調(diào)用從鍵盤上讀取字符的方法;.掌握定時器/計數(shù)器8253的工作原理;三、設(shè)計要求編寫程序,程序運行時使PC機(jī)成為一架可演奏的“鋼琴”。當(dāng)按下數(shù)字鍵8時,依次發(fā)出1,2,3,4,5,6,7,七個高音和低音,Esc則退出演奏狀態(tài)。獨立完成課程設(shè)計。四、設(shè)計內(nèi)容及步驟.PC機(jī)揚聲器電路電路圖如圖1所示:61H端口第。位61H端口

2、第。位計數(shù)值控制字圖1PC機(jī)揚聲器控制電路通過給8253定時器裝入不同的計數(shù)值,可以使其輸出不同頻率的波形。當(dāng)與門打開后,經(jīng)過放大器的放大作用,便可驅(qū)動揚聲器發(fā)出不同頻率的音調(diào)。為使該音調(diào)的聲音持續(xù)一段時間,要插入一段延時程序,之后再將揚聲器關(guān)閉(關(guān)閉與門)。.建立音頻表要使計算機(jī)成為可彈奏的簡易電子琴,需要使用系統(tǒng)調(diào)用的01H功能以接收鍵入字符,并且要建立一張音頻表。五、課程設(shè)計工作量每人的程序量應(yīng)在100行有效程序行以上,不得抄襲,否則給不及格成績。六、課程設(shè)計工作計劃2016年6月6日2016年6月6日2016年6月10日2016年6月10日下午指導(dǎo)教師講課,學(xué)生準(zhǔn)備文獻(xiàn)資料;每人完成自

3、己程序并能獨立演示;驗收,學(xué)生撰寫課程設(shè)計報告。指導(dǎo)教師簽字:專業(yè)主任簽章:微機(jī)原理與匯編語言課程設(shè)計指導(dǎo)教師評語與成績TOC o 1-5 h z HYPERLINK l bookmark15 一、概述1 HYPERLINK l bookmark17 .課題描述1 HYPERLINK l bookmark19 .程序設(shè)計目的1 HYPERLINK l bookmark21 二、需求分析1 HYPERLINK l bookmark23 三、總體設(shè)計2 HYPERLINK l bookmark25 .電子琴程序2 HYPERLINK l bookmark27 .單音調(diào)子程序SOUND3 HYPER

4、LINK l bookmark29 四、詳細(xì)設(shè)計3 HYPERLINK l bookmark31 .揚聲器3.界面設(shè)計4 HYPERLINK l bookmark33 五、調(diào)試與運行結(jié)果說明5 HYPERLINK l bookmark35 .主界面5 HYPERLINK l bookmark37 .退出界面6 HYPERLINK l bookmark39 六、課程設(shè)計總結(jié)6 HYPERLINK l bookmark41 七、結(jié)束語7 HYPERLINK l bookmark43 八、程序清單7參考文獻(xiàn)14第第 頁共18頁七、結(jié)束語匯編語言作為一種低級程序設(shè)計語言,既然是低級所以應(yīng)該是最底層的,

5、與我們計算機(jī)內(nèi)部的結(jié)構(gòu)聯(lián)系應(yīng)該聯(lián)系很密切,而且在我們學(xué)習(xí)中也深刻的了解到了這一點。比如說后來學(xué)到的寄存器、中斷、還要各種尋址方式以及進(jìn)棧出棧,好多的就是設(shè)計到計算機(jī)硬件。學(xué)完匯編這門課我也對之前的高級語言中的一些知識有了更新的認(rèn)識,能夠讓我們更好的理解高級語言,尤其是高級語言中的C語言。匯編語言對于內(nèi)存的操作都是基于內(nèi)存地址的,而C語言中最令人頭疼的指針概念,說白了就是內(nèi)存的地址指針的學(xué)習(xí)和應(yīng)用中最頭疼的就是在指針這個抽象的概念和實際的內(nèi)存單元之問建立思維映射,而這些恰恰是我們在匯編語言學(xué)習(xí)中頻繁做的一件平常事另外,對于c語言中的數(shù)據(jù)類型形參實參函數(shù)調(diào)用全局變量局部變量等概念及操作,我們都可以

6、用匯編語言中的一些操作相關(guān)聯(lián),把這些抽象的概念和過程,通過匯編語言形成一個具體的映像,深度割析,這樣我們才能真正的學(xué)會學(xué)好C語言計算機(jī)科學(xué)的各個方面是一個統(tǒng)一的整體,只有多方面穿插,交互才能更好的搭建計算機(jī)知識體系。我想如果想學(xué)好計算機(jī)編程技能,如果想做一名合格的編程人員,如果想在計算機(jī)編程之路走的更遠(yuǎn),我們也必須從匯編語言開始,才能完整、完善的建立計算機(jī)編程知識體系!所以對于我自己來說,要以今天的學(xué)習(xí)為跳板,為今后的匯編語言的繼續(xù)學(xué)習(xí)打好基礎(chǔ)。愿自己在計算機(jī)這條道路上越走越遠(yuǎn)。本次設(shè)計得到了老師的大力支持和幫助,其中老師對此次設(shè)計的題目的主要難度以及一些要求和目的給出了詳細(xì)的解釋。同學(xué)對設(shè)計

7、中遇到的匯編語言方面的知識給予了很大的幫助。感謝陳微老師這學(xué)期對我們的諄諄教導(dǎo)、對微機(jī)原理課程的認(rèn)真講解以及對課程設(shè)計的細(xì)心指導(dǎo)。您的認(rèn)真負(fù)責(zé)讓我感覺到了一個電腦工作者所要具備的素質(zhì),您的講課風(fēng)格讓我對微機(jī)原理這門課產(chǎn)生了濃厚興趣,并會更努力的去學(xué)習(xí)它!八、程序清單DRAWMACROSTART_X,START_,YEND_X,END_Y,COLORLOCALDRAW_NEXT;1吐避免宏重復(fù)調(diào)用時,標(biāo)號的重復(fù);功能:畫填充的矩形;使用條件:START_XEND_X,START_YEND_YPUSHAXPUSHBXPUSHCXPUSHDXMOVAH,0CH;寫像素點MOVAL,COLOR;設(shè)置顏

8、色MOVBH,0;選用頁號0MOVCX,START_X;列起始點MOVDX,START_Y;行起始點DRAW_NEXT:INT10H;畫點INCCX;畫橫線CMPCX,END_X;比較行是否畫完JNEDRAW_NEXT;畫另一行MOVCX,START_X;另一行的起始點INCDXCMPDX,END_Y;比較列是否畫完JNEDRAW_NEXT;未完繼續(xù)畫POPDXPOPCXPOPBXPOPAXENDMDRAWSQREMACROSTART_X,START_Y,END_X,END_Y,COLORLOCALROW_UP,ROW_DOWN,RANK_LEFT,RANK_RIGHT;功能:畫不填充的矩形P

9、USHAXPUSHBXPUSHCXPUSHDXPUSHSIMOVAH,0CHMOVAL,COLORMOVBH,0MOVCX,START_XMOVDX,START_YROW_UP:;畫上邊INT10HINCCXCMPCX,END_XJNEROW_UPRANK_RIGHT:;畫右邊INT10HINCDXCMPDX,END_YJNERANK_RIGHTMOVCX,START_X;下邊起始點MOVSI,END_XINCSIROW_DOWN:;畫下邊INT10HINCCXCMPCX,SIJNEROW_DOWNMOVDX,START_Y;右邊起始點MOVCX,START_XRANK_LEFT:;畫右邊IN

10、T10HINCDXCMPDX,END_YJNERANK_LEFTPOPSIPOPDXPOPCXPOPBXPOPAXENDMDATASSEGMENT;此處輸入數(shù)據(jù)段代碼DATA1DB49h,56h,62h,66h,74h,83h,94h,10h;音頻表NUMDB?;NUM為8253計數(shù)器初值的序號;白色琴鍵坐標(biāo)ST_LXDW50,61,72,83,94,105,116ST_MXDW127,138,149,160,171,182,193ST_HXDW204,215,226,237,248,259,270ST_YDW50ED_LXDW60,71,82,93,104,115,126ED_MXDW137

11、,148,159,170,181,192,203ED_HXDW214,225,236,247,258,269,280ED_YDW90;黑色琴鍵坐標(biāo)BT_XDW57,68,90,101,112DW134,145,167,178,189DW211,222,244,254,265BT_YDW50BD_XDW64,75,97,108,119DW141,152,174,185,196DW218,229,251,262,273BD_YDW70;定義在屏幕繪制字START_COLDB?;存儲起始行TEXTDB16;起始行DB2;起始列DB31H;字體顏色DBThisIsMyCurriculumDesign,

12、0FFHDBThankYouForYourSupport,0FFHDB1.PRESS18TOPLAY,0FFHDB2.PRESSESCTOEXIT,0FFH,0FFH;顯示字DATASENDSSTACKSSEGMENT;此處輸入堆棧段代碼STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSMAINPROCNEARSTART:;此處輸入代碼段代碼CALLINIT;調(diào)用初始化程序MOVBX,OFFSETDATA1;獲取音頻表SKY:MOVAH,07H;無回顯過濾的字符輸入AL=8位數(shù)據(jù)INT21HCMPAL,27;如果按CTRL+C,退出J

13、EEXIT1CMPAL,31H;若AL小于1,循環(huán),否則繼續(xù)執(zhí)行程序,31H是ASKII碼1JLSKYCMPAL,38H;若AL大于8,循環(huán),否則繼續(xù)執(zhí)行程序,38H是ASKII碼8JGSKYSUBAL,31HMOVAH,00HMOVDI,BX+SIMOVSI,AXMOVNUM,AL;將所獲取的鍵值賦給8253計數(shù)器MOVAL,BXSIPUSHBXCALLINIT1CALLWAITFINAL,61HANDAL,0FCHOUT61H,ALJMPSKYMAINENDP;8253初始化子程序INIT1PROCNEARMOVDL,0AHMULDLMOVDI,AXMOVAL,0B6HOUT43H,ALM

14、OVDX,0012HMOVAX,34DEHDIVDIOUT42H,ALMOVAL,AHOUT42H,ALINAL,61HMOVAH,ALORAL,03HOUT61H,ALRETINIT1ENDP;延時子程序WAITFPROCNEARPUSHAXWAITF1:INAL,61HANDAL,10HCMPAL,AHJEWAITF1MOVAH,ALLOOPWAITF1POPAX;寄存器基址加變址尋址方式;關(guān)閉揚聲器;選擇方式三通道二;控制揚聲器聲音;聲音開始;保護(hù)寄存器;讀取PB端口值;低四位清零RETWAITFENDPINITPROCNEAR;初始化屏幕:畫琴鍵MOVAX,DATASMOVDS,AXM

15、OVAH,0MOVAL,0DHINT10HMOVAH,0BHMOVBH,0MOVBL,09HINT10HCALLSHOW_TEXTDRAW45,30,285,94,05HDRAWSQRE45,30,285,94,0DHDRAWSQRE49,48,280,49,00HLEASI,ST_LXLEADI,ED_LXMOVCX,21INIT_DRAW:DRAWSI,ST_Y,DI,ED_Y,0FHDRAWSI,90,DI,93,07HADDSI,2ADDDI,2LOOPINIT_DRAWLEASI,BT_XLEADI,BD_XMOVCX,15INIT_BLOCK:DRAWSI,BT_Y,DI,BD_Y

16、,00HADDSI,2;設(shè)置屏幕;BIOS對屏幕及顯示器所提供的服務(wù)程序;背景色;畫21個白色鍵;陰影;畫15個黑色鍵ADDDI,2LOOPINIT_BLOCKRETINITENDPSHOW_TEXTPROCNEAR;在屏幕上顯示字符LEADI,TEXT;載入字符串首地址MOVDH,DI;賦行值INCDI;取得列MOVDL,DIMOVSTART_COL,DLMOVAH,2MOVBH,0INT10HINCDIMOVBL,DICHAR_WRITE:INCDIMOVAL,DICMPAL,0FFHJEBUMP_ROWCMPAL,0JZEND_TEXTCALLSHOW_CHARJMPCHAR_WRITE;賦列值;保存開始列;設(shè)置光標(biāo)位置;0頁;取得顏色值;賦顏色值;取得要顯示的字符;行結(jié)束否;下一行;結(jié)束否;顯示字符;下一個字符END_TEXT:RETBUMP_ROW:INCDH;下一行MOVDL,START_COL;賦開始列值MOVAH,2;設(shè)光標(biāo)位置MOVBH,0INT10HJMPCHAR_WRITESHOW_TEXTENDPSHOW_CHARP

溫馨提示

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

評論

0/150

提交評論