




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)任務(wù)書(shū)學(xué)生姓名: 劉沛 專(zhuān)業(yè)班級(jí): 電氣0901 指導(dǎo)教師: 張 銳 工作單位: 自動(dòng)化學(xué)院 題 目: 計(jì)算機(jī)電子琴軟件軟件設(shè)計(jì) 初始條件:1.用于調(diào)試程序的IBM兼容PC機(jī)一臺(tái);2.安裝DOS/WIN98操作系統(tǒng)或運(yùn)行于DOS/ WIN98兼容方式;3. EDIT 等文本編輯器輸入80x86匯編程序,MASM 5.0編譯及鏈接程序。要求完成的主要任務(wù): (包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書(shū)撰寫(xiě)等具體要求)1.使用匯編語(yǔ)言設(shè)計(jì)一個(gè)運(yùn)行于計(jì)算機(jī)的電子琴軟件,軟件應(yīng)實(shí)現(xiàn)彈奏功或演奏。其中彈奏:用戶(hù)每按一琴鍵彈奏相應(yīng)音符;演奏:按下某鍵后自動(dòng)彈奏預(yù)存琴譜功能;還可以附加變調(diào)、變速和記
2、錄創(chuàng)作等其它功能。2.說(shuō)明書(shū)撰寫(xiě)格式應(yīng)符合課程設(shè)計(jì)說(shuō)明書(shū)統(tǒng)一書(shū)寫(xiě)格式。時(shí)間安排:1.程序框圖設(shè)計(jì),3天2.編程,4天3.調(diào)試,3天4.編寫(xiě)設(shè)計(jì)報(bào)告,4天指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日19 / 25目錄摘要······························&
3、#183;·································I1 設(shè)計(jì)任務(wù)和思路··············
4、83;·····································11.1設(shè)計(jì)任務(wù)···········&
5、#183;··········································11.2設(shè)計(jì)思路······
6、;················································12更件部分工作原理&
7、#183;·················································2
8、2.1 8255工作原理················································
9、·22.2 8253工作原理···············································
10、;··23程序流程圖··············································
11、3;·········43.1主程序流程圖·······································
12、···········43.2演奏子程序流程·····································&
13、#183;··········53.3音樂(lè)播放子程序流程·····································
14、·······63.4彈奏子程序流程圖·········································
15、·····63.5發(fā)音子程序流程圖 ···········································
16、;··74各部分功能實(shí)現(xiàn)說(shuō)明··············································
17、··74.1 發(fā)音部分功能實(shí)現(xiàn)··············································
18、;74.2 變調(diào)功能的實(shí)現(xiàn)················································
19、;84.3 彈奏功能的實(shí)現(xiàn)················································
20、;84.4演奏功能的實(shí)現(xiàn)················································
21、9 4.4.1歌曲選擇功能實(shí)現(xiàn)········································9 4.4.2 音樂(lè)播放功能實(shí)現(xiàn)·····
22、;···································95 程序運(yùn)行結(jié)果·············
23、183;·······································10結(jié)束語(yǔ)·········
24、83;·················································
25、83;·12參考文獻(xiàn)···············································
26、83;···········13附錄 程序清單·····································
27、·················14成績(jī)?cè)u(píng)定表································
28、;·························19摘要匯編語(yǔ)言是一種功能很強(qiáng)的程序設(shè)計(jì)語(yǔ)言,也是利用計(jì)算機(jī)所有硬件特性并能直接控制硬件的語(yǔ)言。利用匯編語(yǔ)言能夠直接訪(fǎng)問(wèn)與硬件相關(guān)的存儲(chǔ)器或I/O端口,從而最大限度地發(fā)揮硬件的功能。本文主要介紹了利用匯編語(yǔ)言設(shè)計(jì)一個(gè)運(yùn)行于計(jì)算機(jī)的電子琴軟件,軟件能夠?qū)崿F(xiàn)彈奏,演奏的功能,當(dāng)按下彈奏鍵時(shí),實(shí)現(xiàn)彈奏功
29、能,發(fā)出音符對(duì)應(yīng)頻率的聲音,按下演奏鍵時(shí),實(shí)現(xiàn)演奏功能,播放預(yù)存的音樂(lè),按下指定的音調(diào)選擇按鍵后,選擇低音,中音或高音,則分別用低音,中音或高音進(jìn)行彈奏或演奏。首先介紹了PC機(jī)內(nèi)揚(yáng)聲器的控制電路,接著介紹了相關(guān)接口芯片8255和8253的內(nèi)部結(jié)構(gòu)和工作原理,接著講述了各部分功能的具體實(shí)現(xiàn)方法。關(guān)鍵詞:匯編語(yǔ)言,8255,8253,揚(yáng)聲器 計(jì)算機(jī)電子琴軟件設(shè)計(jì)1 設(shè)計(jì)任務(wù)和思路1.1設(shè)計(jì)任務(wù)使用匯編語(yǔ)言設(shè)計(jì)一個(gè)運(yùn)行于計(jì)算機(jī)的電子琴軟件,軟件應(yīng)實(shí)現(xiàn)彈奏功能或演奏功能。其中彈奏:用戶(hù)每按一琴鍵彈奏相應(yīng)音符;演奏:按下某鍵后自動(dòng)彈奏預(yù)存琴譜功能;還可以附加變調(diào)、變速和記錄創(chuàng)作等其它功能。軟件預(yù)想功能為
30、:按數(shù)字1-8為彈奏功能;按字母p為演奏功能;按d選擇低音,按z選擇中意,按g選擇高音。1.2設(shè)計(jì)思路 電子琴的設(shè)計(jì)實(shí)際上就是要設(shè)計(jì)一個(gè)程序,能夠通過(guò)該程序控制PC機(jī)內(nèi)揚(yáng)聲器的發(fā)聲規(guī)律,按下相應(yīng)的按鍵后,揚(yáng)聲器能發(fā)出指定頻率的聲音。PC機(jī)內(nèi)的揚(yáng)聲器是通過(guò)并行接口芯片8255和定時(shí)芯片8253來(lái)控制發(fā)音的,其電路連接方式如下圖所示。 8255A PB1 PB0 CLK2 8253GATE2 OUT2 &揚(yáng)聲器1.19318MHZ 圖1 PC機(jī)內(nèi)揚(yáng)聲器控制電路 由圖可知,揚(yáng)聲器是由8253通道2產(chǎn)生的方波信號(hào)和8255的PB1 相與后驅(qū)動(dòng)發(fā)聲的,且通道2的門(mén)信號(hào)由8255的PB0提供,要想
31、讓揚(yáng)聲器發(fā)聲,PB0和PB1必須同時(shí)為高電平,因此,可以通過(guò)對(duì)8255的PB0和PB1的設(shè)置來(lái)控制揚(yáng)聲器的開(kāi)通和關(guān)斷,而其發(fā)音頻率可以通過(guò)對(duì)8253通道2的計(jì)數(shù)初值的設(shè)置來(lái)控制。所設(shè)計(jì)程序的任務(wù)就是要通過(guò)對(duì)按鍵的判斷來(lái)設(shè)置8255的PB0和PB1輸出電平的高低,以及8253通道2計(jì)數(shù)初值的設(shè)置。計(jì)數(shù)初值N=時(shí)鐘頻率/音階頻率.各音階的頻率如下表所示。表1 各音符頻率表音符1234567頻率(低)131147165175196220247頻率(中)262294330349392440494頻率(高)5245886606987848809882硬件部分工作原理2.1 8255工作原理8255的內(nèi)部
32、結(jié)構(gòu)圖如圖2所示,它有3個(gè)數(shù)據(jù)端口,分為兩組,A組由A口和C口高四位組成,B組由B口和C口低四位組成。其方式控制字如圖3所示。圖2 8255內(nèi)部結(jié)構(gòu)圖圖3 8255方式控制字方式控制字的特征位D0D7D6D5D4D3D2D1 1 A組工作方式0 0方式00 1方式11 ´方式2B組工作方式0方式01方式1A口輸入/輸出1輸入0輸出PC7PC4輸入/輸出1輸入0輸出B口輸入/輸出1輸入0輸出PC3PC0輸入/輸出1輸入0輸出 PC機(jī)內(nèi)8255的A口,B口,C口和控制口的端口位置分別為:60H,61H,62H,63H。2.2 8253工作原理 8253芯片中有3個(gè)計(jì)數(shù)通道,稱(chēng)為通道0,1
33、,2,它們與外部電路相連的信號(hào)線(xiàn)有3根:CLK,GATE,OUT,CLK是脈沖輸入端,GATE是門(mén)控信號(hào),OUT是輸出信號(hào),計(jì)數(shù)器工作在減1狀態(tài)。其內(nèi)部結(jié)構(gòu)圖和方式控制字格式如圖4,圖5所示。其中當(dāng)計(jì)數(shù)器工作在方式3時(shí),輸出信號(hào)為方波信號(hào)。內(nèi)部總線(xiàn)A1GATE0CLK0OUT0GATE1CLK1OUT1GATE2CLK2OUT2D0-D7計(jì)數(shù)器0計(jì)數(shù)器2計(jì)數(shù)器1控制寄存器A0數(shù)據(jù)總線(xiàn)緩沖器R/W邏輯電路圖4 8253內(nèi)部結(jié)構(gòu)圖D7D6D5D4D3D2D1D0計(jì)數(shù)器選擇00 計(jì)數(shù)器001計(jì)數(shù)器110 計(jì)數(shù)器211 不用00 計(jì)數(shù)器鎖存01 讀寫(xiě)低8位10 讀寫(xiě)高8位11 讀寫(xiě)16位工作方式選擇0
34、00 方式0001 方式1×10 方式2×11 方式3100 方式4101 方式5計(jì)數(shù)方式0 二進(jìn)制1 BCD計(jì)數(shù)圖5 8253控制字格式PC機(jī)內(nèi)8253的通道0,通道1,通道2,控制口的端口位置分別為:40H,41H,42,43H。因?yàn)閾P(yáng)聲器是由通道2來(lái)控制的,故應(yīng)選擇通道2,工作方式選為方式3,輸出的信號(hào)則為方波信號(hào)。3程序流程圖3.1主程序流程圖 主程序的流程圖如下圖所示:為d?為z?為g?開(kāi)始顯示輸入提示信息從鍵盤(pán)讀入字符為q?結(jié)束選擇低音選擇中音選擇高音顯示輸入提示從鍵盤(pán)讀入字符為q?為p?為18?調(diào)用演奏子程序調(diào)用彈奏子程序NYNYYYNNYYNNYN圖6 主程
35、序流程圖3.2演奏子程序流程圖當(dāng)按鍵為p為時(shí),調(diào)用音樂(lè)播放子程序,音樂(lè)播放子程序的流程圖如下圖所示。顯示輸入提示從鍵盤(pán)讀入字符Y為q?YN返回調(diào)用音樂(lè)1播放子程序?yàn)??為2?NY調(diào)用音樂(lè)2播放子程序N顯示輸入提示從鍵盤(pán)讀入字符為q?為c?YN返回YN圖7 音樂(lè)播放子程序流程圖3.3 音樂(lè)播放子程序流程圖 演奏時(shí),通過(guò)判斷按鍵為1或2來(lái)調(diào)用音樂(lè)播放子程序1或2,音樂(lè)播放子程序流程圖如圖8所示。計(jì)數(shù)器清零CL自增1YCL>歌曲長(zhǎng)度?N返回查表得相應(yīng)頻率計(jì)算計(jì)數(shù)初值調(diào)用發(fā)音子程序圖8 音樂(lè)播放子程序流程圖3.4彈奏子程序流程圖 當(dāng)按鍵為1-8時(shí),調(diào)用演奏子程序,演奏子程序的流程圖如下圖所示:查
36、表得相應(yīng)頻率計(jì)算計(jì)數(shù)初值返回調(diào)用發(fā)音子程序 圖9 演奏子程序流程圖3.5 發(fā)音子程序流程圖 在彈奏和演奏時(shí)都需調(diào)用發(fā)音子程序,發(fā)音子程序的作用是控制揚(yáng)聲器的發(fā)音,其流程圖如下:8253初始化開(kāi)揚(yáng)聲器延時(shí)關(guān)揚(yáng)聲器返回 圖10 發(fā)音子程序流程圖4 各部分功能實(shí)現(xiàn)說(shuō)明4.1 發(fā)音部分功能實(shí)現(xiàn)由更件的連接形式可知,揚(yáng)聲器的開(kāi)斷是由8255的PB0和PB1以及8253通道2同時(shí)控制的,PB0和PB1同時(shí)為高電平時(shí),揚(yáng)聲器開(kāi),有一個(gè)為低電平時(shí),揚(yáng)聲器關(guān)斷,又知8255 B口位置為61H,8253通道2位置為42H,控制口位置為43H。具體程序編寫(xiě)如下。 8253初始化程序段: mov al,1011011
37、0b ;選擇8253的通道2,并設(shè)置為工作方式3out 43h,al mov ax,bxout 42h,al ;將計(jì)數(shù)初值的低8位寫(xiě)入計(jì)數(shù)通道m(xù)ov al,ahout 42h,al ;將計(jì)數(shù)初值的高8位寫(xiě)入計(jì)數(shù)通道開(kāi)揚(yáng)聲器程序段:in al,61h ;讀入B口數(shù)據(jù)or al,03h ;將PB0 和PB1置1out 61h,al ;將設(shè)置好的數(shù)據(jù)送回B口關(guān)揚(yáng)聲器程序段:in al,61h ;讀入B口數(shù)據(jù) and al,0fch ;將PB0 和PB1置0out 61h,a ;將設(shè)置好的數(shù)據(jù)送回B口4.2 變調(diào)功能的實(shí)現(xiàn) 揚(yáng)聲器發(fā)音的頻率是由8253產(chǎn)生方波的頻率決定的,而方波頻率又是由通道的計(jì)數(shù)初
38、值來(lái)決定的,因此可以通過(guò)改變通道的計(jì)數(shù)初值來(lái)實(shí)現(xiàn)變調(diào)功能。計(jì)數(shù)初值N=時(shí)鐘頻率/音階頻率,時(shí)鐘頻率為1.19318MHZ=1234DCH,可以將相應(yīng)音調(diào)對(duì)應(yīng)的時(shí)鐘頻率存入內(nèi)存單元,當(dāng)選擇相應(yīng)的音調(diào)時(shí),計(jì)算計(jì)數(shù)初值時(shí),采用對(duì)應(yīng)的時(shí)鐘頻率值,具體程序如下。 cmp al,'d' ;為d則選擇低音 jne j1 mov num2,50 jmp choice j1:cmp al,'z' ;為z則選擇中音 jne j2 mov num2,12h jmp choice j2:cmp al,'g' ;為g則選擇高音 jne loop0 mov num2,06h
39、其中,num1和num2中存放的是時(shí)鐘頻率值,num1中固定為34DCH,選擇低音時(shí),num2值設(shè)為50,中音時(shí)設(shè)為12H,高音時(shí)設(shè)為06H。計(jì)算計(jì)數(shù)初值程序如下:mov ax,num1 mov dx,num2 div 音符頻率通過(guò)這樣的設(shè)置,即可實(shí)現(xiàn)電子琴的變調(diào)功能。 4.3 彈奏功能的實(shí)現(xiàn)當(dāng)按鍵為數(shù)字1-8時(shí),選擇彈奏功能,通過(guò)對(duì)按鍵的判斷,求得其偏移位置,然后通過(guò)查表得其相應(yīng)頻率值,再由上述計(jì)算計(jì)數(shù)初值的方法求得計(jì)數(shù)初值,然后將計(jì)數(shù)初值送人8253的通道2,最后調(diào)用發(fā)音子程序即實(shí)現(xiàn)彈奏功能。具體程序段如下: sub al,31h ;求偏移量 shl al,1 mov bl,al ;保存偏
40、移量 mov bh,0 mov ax,num1 ;計(jì)算計(jì)數(shù)初值 mov dx,num2 div word ptrtab+bx mov bx,ax ;保存計(jì)數(shù)初值4.3 演奏功能的實(shí)現(xiàn)4.3.1 歌曲選擇功能實(shí)現(xiàn) 當(dāng)按鍵為p時(shí),選擇演奏功能,播放預(yù)存的音樂(lè),由于預(yù)存了兩首歌曲,因此需進(jìn)行選擇,按下p后,顯示輸入提示信息,按1或2選擇對(duì)應(yīng)的歌曲,然后調(diào)用相應(yīng)的音樂(lè)播放子程序,播放完后顯示輸入提示信息,按q退出,按c繼續(xù)。具體程序?qū)崿F(xiàn)如下:loop2: mov dx,offset mesg1 ;顯示輸入提示信息mov ah,09hint 21h mov ah,07h ;從鍵盤(pán)讀入一個(gè)字符int 21
41、hcmp al,'q' ;為q則退出je choicecmp al,'1' ;為1則選擇歌曲1jne next1 call music1jmp loop3next1:cmp al,'2' ;為2則選擇歌曲2jne loop2 ;不為q,1,2則重新選擇call music2loop3:mov dx,offset mesg2 ;播放完后顯示輸入提示信息 mov ah,09h int 21hmov ah,7 ;從鍵盤(pán)讀入一個(gè)字符int 21hcmp al,'q' ;為q則返回je choicecmp al,'c' ;為
42、c則繼續(xù)播放je loop2jmp loop34.3.2 音樂(lè)播放功能實(shí)現(xiàn) 選擇歌曲后,調(diào)用對(duì)應(yīng)的音樂(lè)播放子程序,音樂(lè)播放需用到循環(huán)結(jié)構(gòu),首先將計(jì)數(shù)器清零,接著計(jì)數(shù)器自增1,求得偏移量,然后通過(guò)查表的到相應(yīng)的頻率,再計(jì)算計(jì)數(shù)初值,將計(jì)數(shù)初值送人8253計(jì)數(shù)通道,調(diào)用發(fā)音子程序,若計(jì)數(shù)器的值大于歌曲長(zhǎng)度,則返回。具體程序段如下。 mov cl,0 ;將計(jì)數(shù)器清零ad:inc cl ;計(jì)數(shù)器值自增1cmp cl,31 ;計(jì)數(shù)器值若大于歌曲長(zhǎng)度,則返回je returnmov al,cl sub al,1 ;求偏移量shl al,1mov bl,al ;保存偏移量mov bh,0mov ax,num
43、1 ;計(jì)算計(jì)數(shù)初值mov dx,num2div word ptrsong2+bxmov bx,axcall speaker ;調(diào)用發(fā)音子程序jmp ad5 程序運(yùn)行結(jié)果 運(yùn)行程序后,顯示如下界面,等待輸入字符。圖11 程序運(yùn)行結(jié)果圖1 按提示輸入字符,按q則退出,按d選擇低音,按z選擇中音,按g選擇高音,選擇音調(diào)后,顯示如下界面:圖12 程序運(yùn)行結(jié)果圖2等待輸入字符,按q則退出,按p則演奏,按數(shù)字1-8則彈奏。按下p后,程序運(yùn)行如下: 圖13 程序運(yùn)行結(jié)果圖3按提示輸入字符,按下q則返回,按下1或2進(jìn)行歌曲選擇,歌曲播放完后程序運(yùn)行如下:圖14 程序運(yùn)行結(jié)果圖4按提示按下鍵盤(pán),若按下q,則推出
44、,若按下c,則繼續(xù)播放歌曲。下面是按下c后的運(yùn)行結(jié)果: 圖15 程序運(yùn)行結(jié)果圖5結(jié)束語(yǔ)通過(guò)這次課程設(shè)計(jì),我從中學(xué)到了許多從課本上學(xué)不到的東西,鍛煉了自己編程的能力,最后程序運(yùn)行時(shí)能夠?qū)崿F(xiàn)目標(biāo),我感到很有成就感,從中也獲得了很多樂(lè)趣,當(dāng)然,最重要的是加深了我對(duì)課本理論知識(shí)的理解。當(dāng)剛看到這個(gè)課設(shè)題目時(shí),我感到無(wú)從下手,因?yàn)槲叶疾恢繮C機(jī)的內(nèi)部具體結(jié)構(gòu),從理論課上只是了解了CPU的結(jié)構(gòu)和工作原理,以及幾個(gè)接口芯片的工作原理,還有匯編語(yǔ)言的一些基本指令。但我沒(méi)有被嚇到,我冷靜下來(lái)思考后,發(fā)現(xiàn)其本質(zhì)就是控制PC機(jī)內(nèi)揚(yáng)聲器的發(fā)音,通過(guò)查閱資料我了解了PC機(jī)內(nèi)揚(yáng)聲器的電路連接形式,發(fā)現(xiàn)它是由接口芯片82
45、55和8253共同控制的,8255的PB0作為8253通道2的門(mén)信號(hào),而8255的PB1和8253通道2的輸出相與后的信號(hào)作為揚(yáng)聲器的驅(qū)動(dòng)信號(hào),了解了其內(nèi)部接線(xiàn)方式后,思路也就有了,要想讓揚(yáng)聲器發(fā)聲,8255的PB0和PB1必須同時(shí)為高電平,其中之一為低電平時(shí),揚(yáng)聲器就不能發(fā)聲,而發(fā)聲的音調(diào)則可通過(guò)改變8253的計(jì)數(shù)初值來(lái)實(shí)現(xiàn),接下來(lái)的任務(wù)就是通過(guò)編程來(lái)控制8255和8253,從而間接地控制揚(yáng)聲器的發(fā)聲規(guī)律,而8255和8253這兩個(gè)接口芯片在理論課上都已介紹過(guò),對(duì)其工作原理和編程方法都有一定的了解,看到這些熟悉的內(nèi)容時(shí),我淡定了很多。有了思路之后,我并沒(méi)有急著寫(xiě)程序,因?yàn)槲覒岩墒遣皇敲颗_(tái)PC
46、機(jī)的揚(yáng)聲器接線(xiàn)方式都是這樣的,所以我開(kāi)始只編了一段控制揚(yáng)聲器發(fā)音的程序,來(lái)看看程序運(yùn)行時(shí)揚(yáng)聲器到底發(fā)不發(fā)音,結(jié)果發(fā)聲了,這讓我很驚喜,也很有動(dòng)力,更加激發(fā)了我的興趣,接下來(lái)我就開(kāi)始編寫(xiě)實(shí)現(xiàn)指定功能的程序了,首先是最簡(jiǎn)單的彈奏功能,通過(guò)對(duì)按鍵的判斷來(lái)發(fā)出相應(yīng)頻率的聲音,因?yàn)橐袛喟存I,所以很自然地就想到了CMP指令,在計(jì)算計(jì)數(shù)初值時(shí),因?yàn)橐玫较鄳?yīng)音符的頻率,所以需要將按鍵轉(zhuǎn)換為音符的頻率,我開(kāi)始想用課本上常見(jiàn)的XLAT換碼指令,但AL存放的數(shù)最大為128,很明顯容量不夠,于是我采用了基址+變址的尋址方法,在編程的過(guò)程中,由于要程序?qū)崿F(xiàn)多個(gè)功能,所以用子程序的結(jié)構(gòu)會(huì)比較方便,需要完成某個(gè)功能時(shí),
47、只需調(diào)用相應(yīng)子程序就可以了,這樣會(huì)使得程序的結(jié)構(gòu)清楚明了;在開(kāi)揚(yáng)聲器和關(guān)揚(yáng)聲器之間需要一定的延時(shí),當(dāng)把計(jì)數(shù)器置為0ffffh時(shí),延時(shí)還是顯得太短,于是延時(shí)我采用了AX和CX相配合的方式,使得延時(shí)達(dá)到預(yù)期的目的;在完成基本功能后,我還試著加上一些附加功能,比如變調(diào),錄音,通過(guò)我的不斷嘗試,終于把變調(diào)功能實(shí)現(xiàn)了,但錄音功能沒(méi)能像預(yù)期的那樣。總之,這次課程設(shè)計(jì)讓我學(xué)到了許多從課本上學(xué)不到的知識(shí),加深了對(duì)理論知識(shí)的理解,激發(fā)了我對(duì)匯編語(yǔ)言的興趣。上理論課時(shí),只是老師講,我們聽(tīng),那些指令讓我感到很枯燥,因?yàn)椴恢浪降子惺裁醋饔?,而這次課程設(shè)計(jì)剛好把這些指令應(yīng)用到了實(shí)際中來(lái),加深了對(duì)各種指令功能的理解,
48、最后功能實(shí)現(xiàn)時(shí),感到很有成就感,覺(jué)得匯編語(yǔ)言很神奇,激發(fā)了我對(duì)它的興趣。參考文獻(xiàn)1 彭虎,周佩玲.微機(jī)原理與接口技術(shù)(第二版).電子工業(yè)出版社,20102 陳慧杰. 計(jì)算機(jī)揚(yáng)聲器發(fā)聲的控制. 內(nèi)蒙古民族大學(xué)出版社,20013 Peter Abel著,沈美明等譯. IBM PC匯編語(yǔ)言設(shè)計(jì)程序. 人民郵電出版社,20024 馮繼超.微機(jī)原理實(shí)驗(yàn)指導(dǎo)書(shū).武漢理工大學(xué)出版社,2010附錄 程序清單data segmentmesg db 'press q to quit,press d or z or h to chose yin diao',0ah,0dh,'$'me
49、sg1 db 'press q to return,press 1 or 2 to chose music',0ah,0dh,'$'mesg2 db 'press q to return,press c to continue',0ah,0dh,'$'mesg3 db 'press q to return,press p to play music,press 18 to hand play',0ah,0dh,'$' num1 dw 34dchnum2 dw 12htab dw 262,294,33
50、0,347,392,440,494,524 song1 dw 262,294,330,262,262,294,330,262 dw 330,347,392,330,347,392,392,440 dw 392,347,330,262,392,440,392,347 dw 330,262,392,262,392,392,262,392 ;兩只老虎 song2 dw 330,330,347,392,392,347,330,294 dw 262,262,294,330,330,294,294,330 dw 330,347,392,392,347,330,294,262 dw 262,294,330,
51、294,262,262 ;歡樂(lè)頌 data endscode segment assume cs:code,ds:datastart:mov ax,data mov ds,ax loop0:mov dx,offset mesg ;顯示輸入提示信息 mov ah,09h int 21 loop1:mov ah,07h ;讀入字符 int 21h cmp al,'q' ;為q則退出 je done cmp al,'d' ;為d,選擇低音 jne j1 mov num2,50 jmp choice j1:cmp al,'z' ;為z選擇中音 jne j2 mov num2,12h jmp choice j2:cmp al,'g' ;為g選擇高音 jne loop0 mov num2,06hchoice:mov dx,offset mesg3 mov ah,09h int 21h put1:mov ah,07h int 21h cmp al,'q' ;為q則返回 je loop0 cmp al,'p' ;為p選擇演奏 jne next call pla
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報(bào)書(shū)語(yǔ)文
- 課題申報(bào)書(shū)咋寫(xiě)
- 微課題研究申報(bào)書(shū)
- 借款合同范本員工向公司
- 醫(yī)學(xué)課題申報(bào)書(shū) 范文
- 學(xué)生曠課課題申報(bào)書(shū)
- 業(yè)務(wù)員用車(chē)合同范例
- 前后院老屋出租合同范本
- 合同范本文壁紙
- 創(chuàng)新專(zhuān)業(yè)研究課題申報(bào)書(shū)
- JGJ162-2014建筑施工模板安全技術(shù)規(guī)范-20211102195200
- 現(xiàn)代家政導(dǎo)論-課件 2.2家庭制度認(rèn)知
- 2024年天津市專(zhuān)業(yè)技術(shù)人員繼續(xù)教育網(wǎng)公需課答案
- 《網(wǎng)絡(luò)營(yíng)銷(xiāo)》試題及答案2
- 重度哮喘診斷與處理中國(guó)專(zhuān)家共識(shí)(2024版)解讀
- 譯林版-小學(xué)五年級(jí)下冊(cè)-繪本閱讀-Home-Is-Best-課件
- 社會(huì)變革中的民事訴訟讀書(shū)筆記
- 甲狀腺術(shù)后病人護(hù)理查房
- 《創(chuàng)傷失血性休克中國(guó)急診專(zhuān)家共識(shí)(2023)》解讀課件
- 2024年全國(guó)體育單招英語(yǔ)考卷和答案
- 河北省邯鄲市磁縣2024屆中考數(shù)學(xué)模試卷含解析
評(píng)論
0/150
提交評(píng)論