版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上前 言匯編語言是一種功能很強的程序設計語言,也是利用計算機所有硬件特性并能直接控制硬件的語言。匯編語言,作為一門語言,對應于高級語言的編譯器,需要一個“匯編器”來把匯編語言原文件匯編成機器可執(zhí)行的代碼。高級的匯編器如MASM,TASM等等為我們寫匯編程序提供了很多類似于高級語言的特征,比如結構化、抽象等。在這樣的環(huán)境中編寫的匯編程序,有很大一部分是面向匯編器的偽指令,已經(jīng)類同于高級語言。而此次的微機原理與接口技術(基于16位機)的課程設計正是利用這個學期所學的匯編語言來設計一個鍵盤鋼琴的應用程序,要求該匯編語言程序能實現(xiàn)鍵盤鋼琴的功能,就是在鍵盤上按下自定義的按鍵之后
2、,可以從主板的蜂鳴器上發(fā)出一定頻率的音調(diào),而這些音調(diào)的頻率都是相應音階的特征頻率,故發(fā)出的聲正好就是音樂的各個音階聲調(diào)。通過這個應用程序,按照音樂的譜子連續(xù)地按下相應按鍵,就可以像鋼琴那樣發(fā)出音樂來,但是局限于揚聲器的原因,所發(fā)出的音樂沒有真正的鋼琴那樣美妙。但是現(xiàn)在的一些鍵盤鋼琴的軟件已經(jīng)能驅動聲卡,來獲得更好更逼真的鋼琴音樂效果了。中文摘要采用16 位微處理器 8086 CPU 以及86 系列微型計算機的指令系統(tǒng); 軟件設計平臺為多功能微型計算機實驗軟件MFS 中的微機原理實驗集成環(huán)境MF2KP,仿真設計平臺為Proteus 軟件。 設計匯編語言程序,實現(xiàn)鍵盤鋼琴功能,具體功能要求如下:
3、(1)在鍵盤上自定義若干鍵對應鋼琴鍵; (2)單擊鋼琴鍵,計算機發(fā)出相應音階,發(fā)聲時間自定義;(3)單擊”ESC”鍵退出程序。 關鍵字: 16位微處理器 集成環(huán)境 匯編語言 鍵盤鋼琴 目 錄專心-專注-專業(yè)1 設計意義及要求1.1 設計意義鍵盤鋼琴,電腦鍵盤代替鋼琴鍵演奏鋼琴樂曲。最原始、也是最流行的版本,音符以ABCDEGF為編排。讓不懂音樂的網(wǎng)友可以快速上手,其體積小,簡單方便、易傳播,因此在網(wǎng)上普及率最高。鍵盤鋼琴讓人可以在閑暇時刻,可以小小地娛樂一下,增加生活的樂趣。由于一架鋼琴過于昂貴,對于一般的普通工薪階層的人來說,還是很難接觸到鋼琴的,而鍵盤鋼琴的出現(xiàn)正好讓那些業(yè)余愛好者,既滿足
4、的對鋼琴音樂藝術的追求,也更廉價和便捷。對于初學音樂的人來說,這樣的鍵盤鋼琴軟件更是訓練的好助手,可以幫助你迅速熟悉各音階音調(diào)和旋律節(jié)奏。因此,這樣的軟件也很多版本,有專業(yè)版,也有簡單的Flash版,當然也有此次課設要求設計的簡陋版。專業(yè)版能提供多種樂器音色、錄放功能、音符顯示。不太好的地方是鍵盤要按下去才發(fā)音,沒有延時,彈起來不太就手。Flash版音色也比較好,提供了多鍵位,也可以自定義鍵位。1.2 設計要求設計匯編語言程序,實現(xiàn)鍵盤鋼琴功能,具體要完成的設計任務如下:(1) 在鍵盤上自定義若干鍵對應著鋼琴鍵;(2) 單擊鋼琴鍵,計算機發(fā)出相應的音階,發(fā)聲時間自定義;(3) 單擊“ESC”鍵
5、退出程序音階與頻率的對應關系如下所示:音符45671234567頻率/Hz1751962202472622943303493924404945235876592 總體方案論證2.1按鍵與音調(diào)頻率值的對應設計此匯編語言程序,要實現(xiàn)鍵盤鋼琴,首先是按鍵的自定義設計,因為題中要求設計的按鍵音調(diào)音階有十四個,但是從網(wǎng)上查資料得知,各音階與其相應頻率有如表1-1所示的關系。表1-1 音階與頻率的對應關系 單位:HzA11022044088017603520B12324749498819753950C131262523104620934186D147294587117523494698E165330659
6、131826375277F175349698139727945587G196392784156831366271從表中可知:高低音之間有著大約兩倍的關系,這樣就很方便數(shù)據(jù)的儲存了,只需要將其中一個音度的頻率值存儲下了,再進行二倍關系的換算即可得到倍低音、低音、中音、高音、倍高音五種音度的音調(diào)頻率值。因為題目中主要是對低、中、高音的要求,在這里就以低音為基準存儲數(shù)據(jù)值和換算其他音調(diào)頻率值,由表1-1中得知低音音符1 2 3 4 5 6 7的音調(diào)頻率分別為131、147、165、175、196、220、247。其中,中音各音調(diào)的頻率是相應低音音調(diào)頻率的兩倍, 高音各音調(diào)頻率是低音的四倍的。又因為低
7、音的頻率值最大為247,正好小于一個無符字節(jié)數(shù)值的最大值255,因此,只需要在程序的數(shù)據(jù)區(qū)內(nèi)安排七個字節(jié)來存放頻率數(shù)據(jù),即:FREQ DB 131,147,165,175,196,220,247這樣,不僅節(jié)省了存儲空間,而且降低了存儲數(shù)據(jù)的復雜程度??紤]到字母鍵盤一共也只用26個,就不對所有音調(diào)都進行字母鍵盤的按鍵定義了,只補齊題目中所缺的高音和低音,共21個音階。則可以按如下表1-2中的對應關系,設置21個按鍵分別對應著低、中、高三種音度的各音調(diào)的頻率值。由于字母所對應的ASCII碼并不是連續(xù)的,因此在這里就將其的ASCII碼存儲到數(shù)據(jù)區(qū),然后根據(jù)變址尋址的方式音度音名1234567低音頻率
8、/Hz自定義按鍵131147165175196220247QWERTYU中音頻率/Hz自定義按鍵131*2147*2165*2175*2196*2220*2247*2ASDFGHJ高音頻率/Hz自定義按鍵131*4147*4165*4175*4196*4220*4247*4ZXCVBNM表1-2 音階頻率與自定義按鍵的對應表對字母按鍵的ASCII碼進行地址編碼,可以將字母的ASCII碼的按表1-2的順序存放,即:KEYS DB QWERTYU , ASDFGHJ , ZXCVBNM這樣看來,就是將這些ASCII碼值分出三類,分別為低音類、中音類、高音類。根據(jù)輸入KEY的ASCII碼值利用一個2
9、1次的LOOP循環(huán)就可以找到對應的偏移地址,再將所得的偏移地址減去首地址的偏移地址得到該KEY的地址相對值,再把該相對值與6和13大小判斷偏移地址的所屬類別(小于等于6為低音類,大于6小于等于13為中音類,大于13為高音類)。知道KEY的所屬類別,就知道基準頻率值應該乘以多大的倍數(shù)才是該KEY的真正的頻率值,低音類倍數(shù)為1,中音類倍數(shù)為2,高音類倍數(shù)為4。接下來還要確定是哪個基準頻率值,由于已經(jīng)知道所屬類別,如果是低音類則就是地址相對值,如果是中音類,則地址相對值要減去7,顯然高音類則減去14,就得到了一個0至6的編碼,再由換碼指令XLAT對頻率數(shù)據(jù)FREQ進行換碼,可以很快得到該KEY的對應
10、的基準頻率值。最后是將得到的基準頻率值乘以得到的類別倍數(shù),就得到最后想要的輸入KEY的音調(diào)頻率值。舉例如下:輸入按鍵KEY的ASCII碼值為“D”,其ASCII碼是44H,在一個21次的LOOP循環(huán)下,可以得到數(shù)據(jù)位44H的偏移地址DI,在將該偏移地址DI-首地址的偏移地址KEYS=偏移地址的相對值9。因為6913屬于中音類,基準頻率值的倍數(shù)為2。因為屬于中音類KEY“D”編碼為9-7=2,在換碼可以知道,“D”對應的基準頻率值為165,故最后得到“D”的頻率值為165*2=330Hz。因此,用此算法得到各個按鍵的頻率值是可行的。不僅節(jié)省了存儲空間,而且降低了存儲數(shù)據(jù)的復雜程度,在程序編寫上可
11、以將這一段寫成子程序,更加使得程序簡潔明了。2.2 揚聲器的驅動分析該程序主要是驅動電腦主板上的揚聲器,根據(jù)音階音調(diào)不同的頻率值,來是揚聲器發(fā)出不同的聲音,從而產(chǎn)生想彈鋼琴一樣的感覺,當然音質(zhì)是不能相提并論的。(在這里需要說明的是,現(xiàn)在大多數(shù)筆記本主板上已沒有這個揚聲器,但是臺式機大多還是有的,在臺式機上的效果更好點。)在電路上如下圖2-1所示:8255(PB1)圖2-1 8253的電路連接圖在PC/XT/AT家族中,計時器芯片的3個通道都用其專門的功能,通道2是用來控制計算機的揚聲器的聲音頻率的。通道2用于產(chǎn)生頻率信號,故工作方式在方式3,計數(shù)值為6A4H=1190,方波輸出頻率為1.19M
12、Hz/1190=1KHz,此信號決定了揚聲器的聲調(diào),而通道2的控制字則為0B6H,1.19M約等于十六進制12348CH。由圖1-1可知8253的通道2計數(shù)由8255A的PB0控制,當PB0輸出為高電平的時候,是門GATE2為高電平。此時,8253的通道2允許計數(shù),故通道2的輸出方波受PB0控制,從而控制揚聲器的音調(diào)高低。通道2的輸出能否對揚聲器產(chǎn)生持續(xù)控制還取決于8255A的PB1。當PB1為“0”時,OUT2不能通過“與門”;反之則可通過“與門”控制揚聲器。所以,揚聲器發(fā)音時間的長短取決于8255A的PB1信號。另外,CPU通過8255A的C口,得知5283通道2的狀態(tài)和揚聲器驅動器的狀態(tài)
13、。由上可知,需要揚聲器正常發(fā)聲,需要8253和8255A的協(xié)同工作,而8253的控制字在網(wǎng)上查的為43H,則同過下面的程序來初始化8253MOV AL,0B6HOUT 43H,AL 而通道2的端口地址為42H,由于N值一般計算得出都大于255,故需要一個字的寫入,而又因為 8253只有八位數(shù)據(jù)線,故字的寫入需要兩次,一般將N值直接給AX然后通過下面的程序即可完成。OUT 42H,ALMOV AL,AH OUT 42H,AL而8255A能控制8253和揚聲器,但是只要PB0和PB1同時為高調(diào)平,揚聲器就為開,則對8255A的控制就是在對揚聲器的控制,在網(wǎng)上得知8255A的B口地址為61H,則可以
14、通過下面的程序實現(xiàn)揚聲器的開與關。IN AL,61HOR AL,3 ;可以保證PB0和PB1同時為高調(diào)平OUT 61H,AL ;打開揚聲器 MOV AL,AHAND AL,0FCH ;可以保證PB0和PB1同時為低調(diào)平OUT 61H,AL ;關閉揚聲器2.3 發(fā)聲時間因為只要通過8255A將揚聲器打開而不關閉,那么只要8253正常工作,揚聲器就會一直發(fā)聲,需要發(fā)聲時間多長,只需要寫一個延時子程序即可,利用LOOP和跳轉指令就可以得到一個雙循環(huán)程序,在根據(jù)指令時間依次乘以LOOP循環(huán)的次和跳轉指令的跳轉次數(shù)就可以得到想要的延時時間。子程序循環(huán)完畢在將揚聲器關閉即可。延時子程序時間的長短就是發(fā)聲時
15、間的長短。3 程序設計3.1 主程序設計及其流程圖開始數(shù)據(jù)初始化(輸入KEYS,音符頻率FREQ等)顯示提示信息輸入按鍵KEY顯示請輸入正確key 發(fā)聲子程序SOUND判斷輸入:KEY是否為ESC?否 結束提示語KEYS首地址給BX 返回DOS循環(huán)次數(shù)CX=21 結束 計算KEY所對應頻率值的子程序FIFRE 判斷KEY和BX 是否相等 ? 否 BX=BX+1 否 LOOP判斷CX 是否為零 ? 是 圖3-1 主程序的流程圖如圖3-1,主程序的主要任務:1) 如果輸入的KEY為“ESC”時,直接跳轉至退出EXIT處;2) 找出輸入按鍵KEY的偏移地址,若不是正確按鍵,則顯示提醒語句并重新輸入K
16、EY;3) 將得到的KEY偏移地址送入子程序FIFRE計算得出頻率值,接著再將頻率值給子程序SOUND并發(fā)出音調(diào),完成之后,跳轉至輸入口INPUT。3.2 子程序設計及其流程圖3.2.1 計算頻率值的子程序FIFRE 開始 設置倍數(shù)標志DL=1 計算DI相對于KEYS的值并給DI小于等于 將DI與6 相比 大于 DI=DI-7且DL=DL+1 將DI與6 小于等于 相比DI=DI-7且DL=DL+2 將DI給AX后進行換碼,相乘DL得到AX值給BX 圖3-2 子程序FIFER流程圖 結束計算輸入值所對應頻率值的子程序FIFRE的主要任務:將偏移地址DI減去首地址的偏移地址KEYS得到該KEY的
17、地址相對值,再把該相對值與6和13大小判斷偏移地址的所屬類別,小于等于6為低音類,基準值倍數(shù)DL=1,大于6小于等于13為中音類,基準值倍數(shù)DL=2,大于13為高音類,基準值倍數(shù)DL為4。最后的DL為基準頻率值賦給AL,與基準值倍數(shù)DL相乘,得到頻率值AX,再將AX最后賦給BX。最后子程序FIFER結束時,BX即為輸入KEY的音調(diào)頻率值。3.2.2 發(fā)聲子程序SOUND 開始向8253的43H寫入控制字0B6H給DX、AX分別賦值12H、348CHDIV BX得到計數(shù)初值AX=N分兩次向通道2端口42H寫入計數(shù)初值N 打開揚聲器延時子程序DELAY關閉揚聲器結束圖3-3 子程序SOUND流程圖
18、子程序FIFER流程圖如圖3-3所示,其主要任務是完成發(fā)聲,在該子程序中,分兩次向通道2端口42H寫入計數(shù)初值N的程序語句為:OUT 42H,ALMOV AL,AH OUT 42H,AL打開和關閉揚聲器的程序為:IN AL,61HOR AL,3 ;可以保證PB0和PB1同時為高調(diào)平OUT 61H,AL ;打開揚聲器 MOV AL,AHAND AL,0FCH ;可以保證PB0和PB1同時為低調(diào)平OUT 61H,AL ;關閉揚聲器 開始入棧保護BX和CX3.2.3延時子程序DELAY BX=4000 CX=0FFFH 否 CX=0? 是 BX=BX-1 BX=0? 恢復BX和CX圖3-4 延時子程
19、序DELAY 結束4 結果分析4.1 程序調(diào)試與改進按上面的思路和流程圖寫好程序后,對程序進行調(diào)試:1) 一開始在輸入顯示這里,使用的是DOS的1號單字符輸入,會產(chǎn)生“回顯”,但對于鍵盤鋼琴來說,這一點沒有必要,于是改進后使用7號無“回顯”的單字符輸入。之前,一直想把音符也顯示出來,按的什么顯示相應的音符,成功實現(xiàn)之后,在進行第一次答辯時,研究生學長認為此舉沒有很大的必要性,可以不顯示相應的音符,經(jīng)過思考之后也表示贊同,如圖4-1和4-2是不同程序的界面顯示,調(diào)試后看起來更簡潔明了; 圖4-1 改進之前的程序界面 圖4-2 改進之后的程序界面 2)在第一次答辯時,由于對題目認識得不夠深入,只對
20、任務書中要求的音符進行了,編寫,在答辯時,在學長的指導下,回來查資料后知道了音符與頻率的一般規(guī)律,于是改進方案,將高、低音補齊,得到更多的音調(diào)選擇;3)在算法上的改進,之前是算法是只根據(jù)數(shù)據(jù)區(qū)地址的關系進行推算所有頻率值的地址,這樣既浪費存儲空間,又不能很好實現(xiàn)算法,沒有可變性,在得知音符的2倍關系之后,再次思考得出上面的新算法,新算法較之前的,不但減少了存儲空間,算法也變得簡單易懂。4.2 結果記錄及分析調(diào)試之后,運行結果和課題的設計要求完全相符合。1) 開始運行程序,能看到如下圖4-3所示的“Welcome to Piano of Keyboard”程序運行開始提示語,緊接著出現(xiàn)的是如圖4
21、-4所示的操作提示語,圖4-3 程序運行開始提示語圖4-4 程序操作提示語2)分別按鍵盤上的按鍵Q、W、E、R、T、Y、U 得到低音聲的各音調(diào), 分別按鍵盤上的按鍵A 、S、D、F、G、H、J 得到中音聲的各音調(diào);分別按鍵盤上的按鍵Z、X、C、V、B、N、M 得到高音聲的各音調(diào)。 3)單擊“ESC”可以退出程序,并顯示退出提示語,如圖4-5所示;圖4-5 程序退出時顯示提示語心得與體會經(jīng)過一周的匯編課程設計,我在其中經(jīng)歷了很大的困難,可是也感受到了巨大的幸福。當我面對一個難題,從一籌莫展到逐漸清晰明朗,到最后成功的完成任務。只要親身經(jīng)歷過,才能感受其中的淚水和快樂。更重要的是我們對匯編有了進一
22、步的理解。有了實際運用的體會,只是更加的融會貫通了,不管是從知識上還是從思維邏輯方式上,我們都有了很大的進步。還有就是深切感受到了課本以外的世界獨立接受新知識,獨立面對新問題的能力,面對挑戰(zhàn)不氣餒,積極的去面對,戰(zhàn)勝它。讓自己變得充實起來。以及感謝老師給我們這次課程設計的機會,知識來源于實踐,應用于實踐??傊@次的課程設計使我受益匪淺。在以后的日子里我們要本著一切從應用出發(fā)的度去學習。同樣要珍惜以后的實踐學習。參考文獻1周佩玲,彭虎,傅忠謙.微機原理與接口技術(基于16位機).電子工業(yè)出版社,2005.2周佩玲,吳耿峰,萬炳奎編.十六位微型計算機原理接口及其應用.中國科學技術大 學出版社,19
23、95.3周明德.微型計算機系統(tǒng)原理及應用(第四版)習題集與實驗指導書.清華大學出版社,2002.4戴梅萼.微型計算機技術及應用(第三版).清華大學出版社,2003.5孫德文.微型計算機技術.高等教育出版社,2001. 6 王爽.匯編語言.清華大學出版社(第二版),2008致 謝一周的匯編語言課程設計結束了,我的收獲很大。通過課程設計的編程和對編程過程中遇到的問題的思考,有效的提高了我對匯編的認識和理解,切實的提高了我的編程能力,補全了我的不足。通過這次課程設計,我鞏固所了學過的知識,能用匯編語言熟練地運用順序、選擇、循環(huán)三大結構,進一步掌握了各個指令的功能,特別是轉向指令,掌握了子程序的定義及
24、調(diào)用,以及正確地運用DEBUG指令。在整個程序的編寫中,調(diào)試占了很大部分的時間。要想寫好匯編語言的程序,必須認真對待代碼的每一個細節(jié),還必須熟練的掌握debug命令,這對程序的調(diào)試是非常重要的。通過這次實際動手能力的培養(yǎng),我進一步熟悉了匯編語言的結構和使用方法,基本達到了能獨立閱讀、編制和調(diào)試 另外,就是我對這門課內(nèi)容的學習感受。要學好這門課,我認為應該做到以下三點:1) 課本上應該記住的東西一定要記住,記不住就沒法做題,(例如指令,尋址方式等等)若記住你做題就會做,看程序也就能看懂,記不住見了它就會對它不知所措,一臉茫然。2)預習很重要,這一點不僅適用于這一科的學習,確切的說它適用于任何一科
25、,有的同學這一點作的不好,上課只知道豎著兩個耳朵傻傻的聽老師講課,也不注意動動腦子隨時思考,延續(xù)以前填鴨式的學習方式,想讓老師講給所有的東西,殊不知很多東西還要自己從書本獲得。這就難免出現(xiàn)聽不懂的情況,這好比讓一個不懂外語的人聽外語錄音,在他的心里,聽外語就像聽天書一般,所以說你要學一點新東西,前提是你對它要有一點了解,不然的話你所作的一切只不過是在浪費時間,浪費金錢,浪費生命。3)理論與實踐相結合,不懂的地方應勤問老師勤問同學,直到把它搞懂為止。附錄 程序代碼DATA SEGMENT KEYS DB QWERTYU,ASDFGHJ,ZXCVBNM FREQ DB 131,147,165,17
26、5,196,220,247 WELC DB Welcome to Piano of Keyboard,0DH,0AH,0DH,0AH, EXPL DB Explanation:, 0DH,0AH,Key:QWERTYU-Low Notes 1 2 3 4 5 6 7,0DH,0AH,Key:ASDFGHJ-Middle Notes 1 2 3 4 5 6 7,0DH,0AH,Key:ZXCVBNM-High Notes 1 2 3 4 5 6 7,0DH,0AH, Please Note Your Caps Lock Truned On, 0DH,0AH ESCQ DB 0DH,0AH,Ple
27、ase play:,0DH,0AH,(You can Type ESC to exit),0DH,0AH,0DH,0AH,$ LAST DB 0DH,0AH,Welcome again!,$ REMI DB Reminder:Please play the Key:QWERTYU-ASDFGHJ-ZXCVBNM,0DH,0AH,$DATA ENDSCODE SEGMENTASSUME CS:CODE DS:DATA START: MOV AX,DATA MOV DS,AX ;初始化數(shù)據(jù)區(qū) LEA DX,WELC MOV AH,9 INT 21H ;顯示提示語句 INPUT: MOV AH,7
28、INT 21H ;不回顯輸入鍵盤的KEY CMP AL,1BH ;判斷輸入KEY是否為“ESC” JZ EXIT ;若輸入KEY為“ESC”則跳轉到退出EXIT LEA DI,KEYS MOV CX,21 FIND: CMP AL,DI JZ SING ;找到KEY相對應的偏移地址DI則跳轉至SING INC DI LOOP FIND ;根據(jù)輸入KEY的ASCII碼找到相對應的偏移地址 LEA DX,REMI MOV AH,9 INT 21H ;輸入的KEY不正確,顯示提醒請輸入正確的KEY JMP INPUT ;不是正確的輸入KEY,則跳轉至INPUT SING: CALL FIFRE ;進
29、入計算KEY所對應頻率值的子程序 CALL SOUND ;進入根據(jù)頻率值發(fā)出音調(diào)的子程序 JMP I NPUT ;發(fā)聲完畢后跳轉至INPUT EXIT: LEA DX,LAST MOV AH,9 INT 21H ;顯示退出時的字幕 MOV AX,4C00H INT 21H ;返回DOS FIFRE PROC ;計算KEY所對應頻率值的子程序 MOV DL,1 ;標記頻率基準值的倍數(shù)值 LEA BX,KEYS SUB DI,BX ;計算偏移地址相對與首地址的值 CMP DI,6 JNA SOU ;屬于低音直接跳轉至SOU SUB DI,7 ;屬于中音,將偏移地址減7 ADD DL,1 ;標記倍數(shù)
30、值加倍為2 CMP DI,6 JNA SOU ;屬于中音,跳轉至SOU SUB DI,7 ;屬于高音,將偏移地址再減7 ADD DL,2 ;標記倍數(shù)值再加倍為4 SOU: MOV AX,DI ;將被換碼給AL LEA BX,FREQ XLAT MUL DL ;頻率基準值乘以倍數(shù)得到KEY所對應的頻率值 MOV BX,AX RETFIFRE ENDP SOUND PROC ;根據(jù)頻率值發(fā)出音調(diào)的子程序 MOV AL,0B6H OUT 43H,AL ;向8253的43H寫入控制字 MOV DX,12H MOV AX,348CH DIV BX ;計算計數(shù)初值N OUT 42H,AL MOV AL,A
31、H OUT 42H,AL ;向通道2端口42H寫入計數(shù)初值N IN AL,61H OR AL,3 OUT 61H,AL ;打開揚聲器 CALL DELAY ;進入延時子程序 IN AL,61H AND AL,0FCH OUT 61H,AL ;關閉揚聲器 RETSOUND ENDP DELAY PROC ;延時時間子程序 PUSH BX PUSH CX MOV BX,4000 DY1: MOV CX,0FFFH DY0: LOOP DY0 DEC BX JNZ DY1 ;利用LOOP循環(huán)和跳轉指令進行雙循環(huán) POP CX POP BX RET DELAY ENDP CODE ENDS END S
32、TART DATA SEGMENT KEYS DB QWERTYU,ASDFGHJ,ZXCVBNM FREQ DB 131,147,165,175,196,220,247 WELC DB Welcome to Piano of Keyboard,0DH,0AH,0DH,0AH, EXPL DB Explanation:, 0DH,0AH,Key:QWERTYU-Low Notes 1 2 3 4 5 6 7,0DH,0AH,Key:ASDFGHJ-Middle Notes 1 2 3 4 5 6 7,0DH,0AH,Key:ZXCVBNM-High Notes 1 2 3 4 5 6 7,0D
33、H,0AH, Please Note Your Caps Lock Truned On, 0DH,0AH ESCQ DB 0DH,0AH,Please play:,0DH,0AH,(You can Type ESC to exit),0DH,0AH,0DH,0AH,$ LAST DB 0DH,0AH,Welcome again!,$ REMI DB Reminder:Please play the Key:QWERTYU-ASDFGHJ-ZXCVBNM,0DH,0AH,$DATA ENDSCODE SEGMENTASSUME CS:CODE DS:DATA START: MOV AX,DATA MOV DS,AX ;初始化數(shù)據(jù)區(qū) LEA DX,WELC MOV AH,9 INT 21H ;顯示提示語句 INPUT: MOV AH,7 INT 21H ;不回顯輸入鍵盤的KEY CMP AL,1BH ;判斷輸入KEY是否為“ESC” JZ EXIT ;若輸入KEY為“ESC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度兒童游樂場主題設計策劃與施工合同4篇
- 2025版孟玲與張偉離婚協(xié)議及子女撫養(yǎng)費支付與變更執(zhí)行合同4篇
- 上海住宅裝修服務合同范本(2024版)版B版
- 2025年度商鋪租賃合同商業(yè)秘密保護及保密協(xié)議4篇
- 2025版綠化用水合同履約驗收與評價協(xié)議4篇
- 2025版油罐租賃及遠程監(jiān)控管理系統(tǒng)合同范本3篇
- 二零二五版駕駛員薪酬激勵與考核合同3篇
- 二零二五版反擔保協(xié)議書范本匯編9篇
- 全新多媒體展覽展示合作合同(2025年度)3篇
- 2025年度醫(yī)療器械代理銷售與品牌形象塑造協(xié)議4篇
- 【探跡科技】2024知識產(chǎn)權行業(yè)發(fā)展趨勢報告-從工業(yè)轟鳴到數(shù)智浪潮知識產(chǎn)權成為競爭市場的“矛與盾”
- 《中國政法大學》課件
- GB/T 35270-2024嬰幼兒背帶(袋)
- 2024-2025學年高二上學期期末數(shù)學試卷(新題型:19題)(基礎篇)(含答案)
- 2022版藝術新課標解讀心得(課件)小學美術
- 七上-動點、動角問題12道好題-解析
- 2024年九省聯(lián)考新高考 數(shù)學試卷(含答案解析)
- 紅色歷史研學旅行課程設計
- 下運動神經(jīng)元損害綜合征疾病演示課件
- 2023中考地理真題(含解析)
- JJF 1101-2019環(huán)境試驗設備溫度、濕度參數(shù)校準規(guī)范
評論
0/150
提交評論