匯編語(yǔ)言-兩只老虎-實(shí)驗(yàn)報(bào)告(共18頁(yè))_第1頁(yè)
匯編語(yǔ)言-兩只老虎-實(shí)驗(yàn)報(bào)告(共18頁(yè))_第2頁(yè)
匯編語(yǔ)言-兩只老虎-實(shí)驗(yàn)報(bào)告(共18頁(yè))_第3頁(yè)
匯編語(yǔ)言-兩只老虎-實(shí)驗(yàn)報(bào)告(共18頁(yè))_第4頁(yè)
匯編語(yǔ)言-兩只老虎-實(shí)驗(yàn)報(bào)告(共18頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第三次實(shí)驗(yàn)報(bào)告姓名:陳柯吉 學(xué)號(hào):2012141441338第三次實(shí)驗(yàn) 8253定時(shí)器/計(jì)數(shù)器與接口實(shí)驗(yàn) -樂(lè)曲程序計(jì)算機(jī)是如何產(chǎn)生音樂(lè)和聲響的呢?原來(lái)在計(jì)算機(jī)中有一個(gè)可編程時(shí)間間隔定時(shí)器8253,它能根據(jù)程序提供的計(jì)數(shù)值和工作模式,產(chǎn)生各種形狀和各種頻率的計(jì)數(shù)/定時(shí)脈沖,提供給系統(tǒng)的各個(gè)部件使用。它還可以產(chǎn)生不同頻率的脈沖作為揚(yáng)聲器的聲源。在8253定時(shí)器內(nèi)部有3個(gè)獨(dú)立工作的計(jì)數(shù)器:Counter0, Counter1, Countre2,每個(gè)計(jì)數(shù)器都分配有一個(gè)端口地址,分別是40H,41H,42H。8253內(nèi)部還有一個(gè)公用的控制寄存器,端口地址為43H,端口地址輸入到8253的CS,A1,

2、A0端,分別對(duì)三個(gè)計(jì)數(shù)器和控制器尋址。對(duì)8253編程時(shí),先要設(shè)定控制字,以選擇計(jì)數(shù)器,確定工作模式和計(jì)數(shù)值的格式,每個(gè)計(jì)數(shù)器由三個(gè)引腳與外部聯(lián)系,CLK為時(shí)鐘輸入端,GATA為門(mén)控制信號(hào)輸入端,OUT為計(jì)數(shù)/定時(shí)信號(hào)輸入端。每個(gè)計(jì)數(shù)器是以倒計(jì)數(shù)的方式計(jì)數(shù),也就是說(shuō),從計(jì)數(shù)初值開(kāi)始逐次減1,直到減為0為止。端口地址與計(jì)數(shù)器的關(guān)系:40H選中計(jì)數(shù)器0:作為定時(shí)器為系統(tǒng)日時(shí)鐘提供計(jì)時(shí)基準(zhǔn)41H選中計(jì)數(shù)器1:作為定時(shí)器使用42H選中計(jì)數(shù)器2:用來(lái)控制揚(yáng)聲器發(fā)聲43H公用的控制器:分別對(duì)三個(gè)寄存器和控制器尋址那么,如何觸動(dòng)揚(yáng)聲器發(fā)出聲音呢?原來(lái)PC機(jī)的主音箱上裝有一只小喇叭,由定時(shí)器8253和并行接口芯

3、片8255(可編程外圍接口芯片)控制其發(fā)聲,8255包括三個(gè)8位寄存器,兩個(gè)用于輸入功能,一個(gè)用于輸出功能。輸入寄存器分配的I/O端口地址為60H和62H,輸出寄存器分配的I/O端口地址為61H。8253定時(shí)器計(jì)數(shù)器2連接到揚(yáng)聲器,其電路如下: 8253 DRIVER 19318MHZ CLK 喇叭與門(mén)門(mén)22門(mén)1門(mén) OUT2 8255 PB0 GATE2 PB1 裝入計(jì)數(shù)器2的計(jì)數(shù)初值為533H(1.19318MHz/896Hz=1331=533H),這樣,得到的控制字為10110110B=0B6H,即選中計(jì)數(shù)器2,讀/寫(xiě),工作方式三(方波發(fā)聲器),二進(jìn)制。計(jì)數(shù)器2的初始化程序?yàn)椋?MOV A

4、L,0B6H OUT 43H,AL 1) 計(jì)算計(jì)數(shù)值程序段:MOV DI, 給定頻率 MOV DX, 12HMOV AX, 34DCHDIV DIAX中即為計(jì)數(shù)值。2) 打開(kāi)揚(yáng)聲器發(fā)聲,8255PB0,PBI送出高電平:IN AL , 61HOR AL , 3OUT 61H , AL3)關(guān)閉揚(yáng)聲器,停止發(fā)聲:IN AL ,61HAND AL , 0FCHOUT 61H, AL 兩只老虎的音頻表定義在數(shù)據(jù)段中,如下:STACK SEGMENT DW 100 DUP(?)STACK ENDSDATA SEGMENTMUSIC DW 2 DUP(262,294,330,262) ; 頻率表,1231

5、;1231 DW 2 DUP(330,349,392) ;345;345; DW 2 DUP(392,440,392,349,330,262) ;565431;565431 dw 2 dup(294,196,262),0 ;251;251,0表示結(jié)束 TIME DW 10 DUP(250*50),500*50,250*50,250*50,500*50 ;節(jié)拍表 DW 2 DUP(120*50,120*50,120*50,120*50,250*50,250*50) DW 2 DUP(250*50,250*50,500*50)N EQU 32 ;32個(gè)音符DATA ENDS二實(shí)驗(yàn)?zāi)康模?學(xué)習(xí)825

6、3計(jì)數(shù)器2輸出方波信號(hào)用以驅(qū)動(dòng)揚(yáng)聲器發(fā)聲的原理,通過(guò)程序設(shè)置計(jì)數(shù)器2的輸出波形的頻率和延續(xù)時(shí)間,控制揚(yáng)聲器的音調(diào)和發(fā)生長(zhǎng)短。三.實(shí)驗(yàn)內(nèi)容:1.設(shè)計(jì)程序讓微機(jī)演奏一段兩只老虎的樂(lè)曲。2.思考如何讓PC機(jī)演奏一遍,兩遍以及數(shù)遍這段兩只老虎的樂(lè)曲,并修改程序?qū)崿F(xiàn)。四.實(shí)驗(yàn)報(bào)告:整理出運(yùn)行正確的源程序清單(加以中文注釋?zhuān)?,并給出詳細(xì)程序流程圖。 開(kāi)始判斷是1或21 輸入19的數(shù)字選擇循環(huán)次數(shù) 調(diào)用SONG子程序打開(kāi)揚(yáng)聲器2 否調(diào)用延時(shí)子程序關(guān)閉揚(yáng)聲器輸入一個(gè)字符循環(huán)次數(shù)=0?結(jié)束否是結(jié)束否判斷是17,QU,AJ嗎判斷是ESC嗎嗎根據(jù)預(yù)先設(shè)置好的頻率賦值給變量關(guān)閉揚(yáng)聲器打開(kāi)揚(yáng)聲器 調(diào)用延時(shí)子程序STAC

7、K SEGMENT DW 100 DUP(?)STACK ENDSDATA SEGMENTMUSIC DW 2 DUP(262,294,330,262) ; 頻率表,1231;1231 DW 2 DUP(330,349,392) ;345;345; DW 2 DUP(392,440,392,349,330,262) ;565431;565431 dw 2 dup(294,196,262),0 ;251;251,0表示結(jié)束 TIME DW 10 DUP(250*50),500*50,250*50,250*50,500*50 ;節(jié)拍表 DW 2 DUP(120*50,120*50,120*50,1

8、20*50,250*50,250*50) DW 2 DUP(250*50,250*50,500*50)N EQU 32 ;32個(gè)音符M DB ?SAY DB 'Please input the times(19) you want: ','$'SAY2 DB '1 .TIGERS 2.PIANO: ','$'SAY3 DB 'ERROR','$'DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK ;說(shuō)明代碼段、數(shù)據(jù)段、附;加段、

9、堆棧段START: MOV AX,DATA ;設(shè)置數(shù)據(jù)段的段地址 MOV DS,AX MOV ES,AXAGA: LEA DX,SAY2 MOV AH,9 INT 21H ;輸出“1 .TIGERS 2.PIANO” MOV AH,1 INT 21H ;輸入一個(gè)字符 CMP AL,31H JE TIGERS ;與一比較,相等則轉(zhuǎn)TIGERS CMP AL,32H JE PIANO2 ;與二比較,相等則轉(zhuǎn)PIANO MOV DL,0AH; 以下三行輸入一個(gè)回車(chē) MOV AH,2 INT 21H LEA DX,SAY3 MOV AH,9 INT 21H ;顯示輸出'ERROR' J

10、MP AGATIGERS: LEA DX,SAY MOV AH,9 INT 21H ;輸出“TING JI BIAN:$” CALL INPUTA : CALL SONG DEC M JNZ A ;M自減1JMP QUIT2PIANO2: CALL PIANO;-;子程序INPUT;輸入;- INPUT PROC MOV AH,1 INT 21H ;輸入一個(gè)字符 LEA SI,M SUB AL,30H ;將ASCII碼轉(zhuǎn)為16進(jìn)制數(shù) MOV SI,AL RET INPUT ENDP;-;-;子程序SONG;播放音樂(lè);- SONG PROCMOV AL,0B6H OUT 43H,AL ;選擇計(jì)數(shù)

11、器2 LEA SI,MUSIC LEA DI,TIME MOV CX,N ;循環(huán)次數(shù)SONG2: PUSH CX PUSH DI MOV DI, SI MOV DX, 12H MOV AX, 34DCH DIV DI ;設(shè)置計(jì)數(shù)初值 OUT 42H,AL MOV AL,AH OUT 42H,AL IN AL , 61H OR AL , 3 OUT 61H , AL ;打開(kāi)揚(yáng)聲器 POP DI MOV CX,20000 CALL DELAY ;調(diào)用延時(shí)子程序 IN AL ,61H AND AL ,0FCH OUT 61H, AL ;關(guān)閉揚(yáng)聲器 ADD SI,2 ADD DI,2 POP CX L

12、OOP SONG2SONG ENDP;-;-;子程序DELAY;延時(shí)子程序;-DELAY PROCPUSH AX PUSH BX MOV BX,DI DELAY1: AGAIN: LOOP AGAIN DEC BX JNZ DELAY1 POP BX POP AX RETDELAY ENDP;-;-;子程序 piano;-PIANO PROC MOV DL,0AH MOV AH,2 INT 21HLP: MOV AH,1 INT 21H ;輸入一個(gè)字符HIGH1: CMP AL,31H JNE HIGH2 MOV DI,523 JMP SOUNDHIGH2: CMP AL,32H JNE HI

13、GH3 MOV DI,587 JMP SOUNDHIGH3: CMP AL,'3' JNE HIGH4 MOV DI,659 JMP SOUNDHIGH4: CMP AL,'4' JNE HIGH5 MOV DI,698 JMP SOUNDHIGH5: CMP AL,'5' JNE HIGH6 MOV DI,784 JMP SOUNDHIGH6: CMP AL,'6' JNE HIGH7 MOV DI,880 JMP SOUNDHIGH7: CMP AL,'7' JNE MIDDLE1 MOV DI,988 JMP

14、 SOUNDMIDDLE1: CMP AL,'Q' JNE MIDDLE2 MOV DI,262 JMP SOUNDMIDDLE2: CMP AL,'W' JNE MIDDLE3 MOV DI,294 JMP SOUNDMIDDLE3: CMP AL,'E' JNE MIDDLE4 MOV DI,330 JMP SOUNDMIDDLE4: CMP AL,'R' JNE MIDDLE5 MOV DI,349 JMP SOUNDMIDDLE5: CMP AL,'T' JNE MIDDLE6 MOV DI,392 JMP

15、 SOUNDMIDDLE6: CMP AL,'Y' JNE MIDDLE7 MOV DI,440 JMP SOUNDMIDDLE7: CMP AL,'U' JNE LOW1 MOV DI,494 JMP SOUNDLOW1: CMP AL,'A' JNE LOW2 MOV DI,131 JMP SOUNDLOW2: CMP AL,'S' JNE LOW3 MOV DI,147 JMP SOUNDLOW3: CMP AL,'D' JNE LOW4 MOV DI,165 JMP SOUNDLOW4: CMP AL,&#

16、39;F' JNE LOW5 MOV DI,175 JMP SOUNDLOW5: CMP AL,'G' JNE LOW6 MOV DI,196 JMP SOUNDLOW6: CMP AL,'H' JNE LOW7 MOV DI,220 JMP SOUNDLOW7: CMP AL,'J' JNE QUIT1 MOV DI,247 JMP SOUNDQUIT1: CMP AL,1BH JE QUIT2 JMP LPSOUND: MOV DX, 12H MOV AX, 34DCH DIV DI ;設(shè)置計(jì)數(shù)初值 OUT 42H,AL MOV AL,AH OUT 42H,AL IN AL , 61H OR AL , 3 OUT 61H , AL ;打開(kāi)揚(yáng)聲器 POP DI MOV CX,20000 CALL DELAY ;調(diào)用延時(shí)子程序 IN AL ,61H AND AL ,0FCH

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論