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

付費下載

下載本文檔

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

文檔簡介

.讀取8253計數(shù)初值和音長8253置初值開啟與門和8253GATE延時讀取8253計數(shù)初值和音長8253置初值開啟與門和8253GATE延時關閉與門和8253GATE返回圖2.1單音調子程序流程圖四、詳細設計1.揚聲器在PC/XT機中,揚聲器接口電路由8255A-5、8253-5、驅動器和低通濾波器等構成,其中8253-5是音頻信號源,8255A-5作控制器,驅動器用來增大8253-5輸出的TTL電平信號的驅動能力,低通濾波器將脈沖信號轉換成接近濾波的音頻信號,去驅動揚聲器發(fā)聲。8253-5的計數(shù)器2的CLK2端所加的時鐘脈沖頻率為1.19318MHZ??筛鶕?jù)這個頻率和所要產生的聲音頻率,計算出定時常數(shù),經(jīng)編程讓計數(shù)器2輸出指定頻率的波形。8255A-5的PB0接8253-5的GATE2,作為計數(shù)器的門控信號,允許或禁止8253-5計數(shù)。8255A-5的PB1接與門U87的一個輸入端,用來對計數(shù)器2的OUT2端輸出的波形作進一步的控制,當PB1=1時,8253-5從OUT2輸出的波形才能通過與門U87送到驅動器75477的A端,送到揚聲器插座使之發(fā)聲。當PB1=0時,OUT2輸出的波形不能通過與門,揚聲器不會發(fā)聲。當PB1PB0=11時揚聲器能連續(xù)發(fā)聲。2.界面設計主界面為一架電子琴,并采用漂亮的字體作為提示語。利用int10h實現(xiàn),利用宏定義畫線和矩形。DRAWSQREMACROSTART_X,START_Y,END_X,END_Y,COLORLOCALROW_UP,ROW_DOWN,RANK_LEFT,RANK_RIGHTPUSHAX PUSHBX PUSHCX PUSHDX PUSHSI MOVAH,0CH MOVAL,COLOR MOVBH,0 MOVCX,START_X MOVDX,START_Y ROW_UP:;畫上邊 INT10H INCCX CMPCX,END_X JNEROW_UP RANK_RIGHT:;畫右邊 INT10H INCDX CMPDX,END_Y JNERANK_RIGHT MOVCX,START_X;下邊起始點 MOVSI,END_X INCSI ROW_DOWN:;畫下邊 INT10H INCCX CMPCX,SI JNEROW_DOWN MOVDX,START_Y;右邊起始點 MOVCX,START_X RANK_LEFT:;畫右邊 INT10H INCDX CMPDX,END_Y JNERANK_LEFT POPSI POPDX POPCX POPBX POPAXENDM五、調試與運行結果說明1.主界面圖5.1主界面2.退出界面圖5.2退出界面六、課程設計總結本次課程設計由我、鄧云杰、劉萌萌三個同學協(xié)作共同完成。通過這次的課程設計,讓我對微機原理與匯編語言這門課有了更深的認識,系統(tǒng)的掌握了微機原理與匯編語言的應用知識。這次課程設計我們做的是用PC機模擬電子琴發(fā)聲,通過老師的提示及相關實驗指導書的資料我們找到了入手點,在已有基礎題目的基礎上加入創(chuàng)新內容。在基礎功能的實現(xiàn)上并沒有遇到問題,主要也是有參考內容的指導,同時通過參考內容更好的把握了設計的整體思路及各個模塊的細節(jié)。但是在拓展功能上就有不少的問題。對于在程序設計中出現(xiàn)的一些問題,我們通過翻閱相關資料和請教老師,最終都得到了解決。雖然此次課程設計的過程是艱辛的,但結果還是令我們比較欣慰的。提高了自己的分析解決問題的能力,并且使自己所學的知識與實踐相結合,應用到實踐當中。遇到問題時,應該對自己有信心,但也要知道自己的不足,認真去查閱資料和學習不懂的知識。另外在本次課程設計中,培養(yǎng)了同學之間協(xié)作精神,有問題時一起討論共同解決問題,提高了自己的合作能力。七、結束語匯編語言作為一種低級程序設計語言,既然是低級所以應該是最底層的,與我們計算機內部的結構聯(lián)系應該聯(lián)系很密切,而且在我們學習中也深刻的了解到了這一點。比如說后來學到的寄存器、中斷、還要各種尋址方式以及進棧出棧,好多的就是設計到計算機硬件。學完匯編這門課我也對之前的高級語言中的一些知識有了更新的認識,能夠讓我們更好的理解高級語言,尤其是高級語言中的C語言。匯編語言對于內存的操作都是基于內存地址的,而C語言中最令人頭疼的指針概念,說白了就是內存的地址指針的學習和應用中最頭疼的就是在指針這個抽象的概念和實際的內存單元之問建立思維映射,而這些恰恰是我們在匯編語言學習中頻繁做的一件平常事另外,對于c語言中的數(shù)據(jù)類型形參實參函數(shù)調用全局變量局部變量等概念及操作,我們都可以用匯編語言中的一些操作相關聯(lián),把這些抽象的概念和過程,通過匯編語言形成一個具體的映像,深度割析,這樣我們才能真正的學會學好C語言計算機科學的各個方面是一個統(tǒng)一的整體,只有多方面穿插,交互才能更好的搭建計算機知識體系。我想如果想學好計算機編程技能,如果想做一名合格的編程人員,如果想在計算機編程之路走的更遠,我們也必須從匯編語言開始,才能完整、完善的建立計算機編程知識體系!所以對于我自己來說,要以今天的學習為跳板,為今后的匯編語言的繼續(xù)學習打好基礎。愿自己在計算機這條道路上越走越遠。本次設計得到了老師的大力支持和幫助,其中老師對此次設計的題目的主要難度以及一些要求和目的給出了詳細的解釋。同學對設計中遇到的匯編語言方面的知識給予了很大的幫助。感謝陳微老師這學期對我們的諄諄教導、對微機原理課程的認真講解以及對課程設計的細心指導。您的認真負責讓我感覺到了一個電腦工作者所要具備的素質,您的講課風格讓我對微機原理這門課產生了濃厚興趣,并會更努力的去學習它!八、程序清單DRAWMACROSTART_X,START_Y,END_X,END_Y,COLORLOCALDRAW_NEXT;local:避免宏重復調用時,標號的重復;功能:畫填充的矩形;使用條件:START_X<END_X,START_Y<END_YPUSHAXPUSHBXPUSHCXPUSHDXMOVAH,0CH;寫像素點MOVAL,COLOR;設置顏色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,COLOR LOCALROW_UP,ROW_DOWN,RANK_LEFT,RANK_RIGHT;功能:畫不填充的矩形PUSHAXPUSHBXPUSHCXPUSHDXPUSHSIMOVAH,0CHMOVAL,COLORMOVBH,0MOVCX,START_XMOVDX,START_Y ROW_UP:;畫上邊 INT10HINCCXCMPCX,END_X JNEROW_UP RANK_RIGHT:;畫右邊 INT10HINCDXCMPDX,END_Y JNERANK_RIGHTMOVCX,START_X;下邊起始點MOVSI,END_XINCSI ROW_DOWN:;畫下邊 INT10HINCCXCMPCX,SI JNEROW_DOWNMOVDX,START_Y;右邊起始點MOVCX,START_X RANK_LEFT:;畫右邊 INT10HINCDXCMPDX,END_Y JNERANK_LEFTPOPSIPOPDXPOPCXPOPBXPOPAXENDMDATASSEGMENT;此處輸入數(shù)據(jù)段代碼DATA1DB49h,56h,62h,66h,74h,83h,94h,10h;音頻表 NUMDB?;NUM為8253計數(shù)器初值的序號;白色琴鍵坐標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,148,159,170,181,192,203ED_HXDW214,225,236,247,258,269,280ED_YDW90;黑色琴鍵坐標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;字體顏色DB'ThisIsMyCurriculumDesign',0FFHDB'ThankYouForYourSupport',0FFHDB'1.PRESS1~8TOPLAY',0FFHDB'2.PRESSESCTOEXIT',0FFH,0FFH;顯示字DATASENDSSTACKSSEGMENT;此處輸入堆棧段代碼STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSMAINPROCNEARSTART:;此處輸入代碼段代碼CALLINIT;調用初始化程序MOVBX,OFFSETDATA1;獲取音頻表SKY:MOVAH,07H;無回顯過濾的字符輸入AL=8位數(shù)據(jù) INT21HCMPAL,27;如果按CTRL+C,退出 JEEXIT1CMPAL,31H;若AL小于1,循環(huán),否則繼續(xù)執(zhí)行程序,31H是ASKII碼'1' JLSKYCMPAL,38H;若AL大于8,循環(huán),否則繼續(xù)執(zhí)行程序,38H是ASKII碼'8' JGSKYSUBAL,31HMOVAH,00HMOVDI,[BX+SI]MOVSI,AXMOVNUM,AL;將所獲取的鍵值賦給8253計數(shù)器MOVAL,[BX][SI];寄存器基址加變址尋址方式PUSHBX CALLINIT1 CALLWAITF INAL,61HANDAL,0FCH OUT61H,AL;關閉揚聲器 JMPSKYMAINENDP;8253初始化子程序 INIT1PROCNEAR;選擇方式三通道二MOVDL,0AH;控制揚聲器聲音MULDLMOVDI,AXMOVAL,0B6H OUT43H,ALMOVDX,0012HMOVAX,34DEHDIVDIOUT42H,ALMOVAL,AHOUT42H,AL INAL,61H;聲音開始MOVAH,ALORAL,03H OUT61H,AL RET INIT1ENDP;延時子程序 WAITFPROCNEARPUSHAX;保護寄存器 WAITF1: INAL,61H;讀取PB端口值ANDAL,10H;低四位清零CMPAL,AH JEWAITF1MOVAH,AL LOOPWAITF1POPAX RET WAITFENDP INITPROCNEAR;初始化屏幕:畫琴鍵MOVAX,DATASMOVDS,AXMOVAH,0;設置屏幕MOVAL,0DH INT10H;BIOS對屏幕及顯示器所提供的服務程序MOVAH,0BHMOVBH,0MOVBL,09H;背景色 INT10H CALLSHOW_TEXT DRAW45,30,285,94,05H DRAWSQRE45,30,285,94,0DH DRAWSQRE49,48,280,49,00HLEASI,ST_LX;畫21個白色鍵LEADI,ED_LXMOVCX,21 INIT_DRAW: DRAW[SI],ST_Y,[DI],ED_Y,0FH DRAW[SI],90,[DI],93,07H;陰影ADDSI,2ADDDI,2 LOOPINIT_DRAWLEASI,BT_X;畫15個黑色鍵LEADI,BD_XMOVCX,15 INIT_BLOCK: DRAW[SI],BT_Y,[DI],BD_Y,00HADDSI,2ADDDI,2 LOOPINIT_BLOCK RET INITENDP SHOW_TEXTPROCNEAR;在屏幕上顯示字符LEADI,TEXT;載入字符串首地址MOVDH,[DI];賦行值INCDI;取得列MOVDL,[DI];賦列值MOVSTART_COL,DL;保存開始列MOVAH,2;設置光標位置MOVBH,0;0頁 INT10HINCDI;取得顏色值MOVBL,[DI];賦顏色值 CHAR_WRITE:INCDI;取得要顯示的字符MOVAL,[DI]CMPAL,0FFH

溫馨提示

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

評論

0/150

提交評論