微機(jī)原理與接口技術(shù)專題研究性教學(xué)(二)-音樂(lè)播放_(tái)第1頁(yè)
微機(jī)原理與接口技術(shù)專題研究性教學(xué)(二)-音樂(lè)播放_(tái)第2頁(yè)
微機(jī)原理與接口技術(shù)專題研究性教學(xué)(二)-音樂(lè)播放_(tái)第3頁(yè)
微機(jī)原理與接口技術(shù)專題研究性教學(xué)(二)-音樂(lè)播放_(tái)第4頁(yè)
微機(jī)原理與接口技術(shù)專題研究性教學(xué)(二)-音樂(lè)播放_(tái)第5頁(yè)
已閱讀5頁(yè),還剩32頁(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)介

專題研究性教學(xué)(二)音樂(lè)播放通信1303班

仝欣總體要求與分析2Copyright?2012AndyGuo.Allrightsreserved。/9ippt方案設(shè)計(jì)硬件電路軟件設(shè)計(jì)程序源代碼程序調(diào)試及運(yùn)行總體要求與分析采用匯編語(yǔ)言設(shè)計(jì)一個(gè)播放音樂(lè)程序,該程序可以進(jìn)行如下操作:按大寫字母“A”,奏一首歌曲;按大寫字母“B”;奏另一首歌曲。按Q退出程序。3Copyright?2012AndyGuo.Allrightsreserved。/9ippt設(shè)計(jì)要求總體要求與分析通過(guò)對(duì)8253-5定時(shí)/計(jì)數(shù)器芯片的操作實(shí)現(xiàn)音樂(lè)演奏。該聲音接口通過(guò)匯編語(yǔ)言對(duì)8253-5的端口直接進(jìn)行操作。計(jì)數(shù)器芯片有3個(gè)通道,各自具有專用功能。通道0時(shí)系統(tǒng)的始終節(jié)拍計(jì)時(shí)器,通道1專用于產(chǎn)生動(dòng)態(tài)RAM的定時(shí)刷新信號(hào),通道2用來(lái)控制計(jì)算機(jī)的揚(yáng)聲器的聲音頻率。該音樂(lè)演奏主要用到通道2的功能,使通道2工作在“方波發(fā)生器”方式,產(chǎn)生相應(yīng)頻率的音調(diào)送至喇叭驅(qū)動(dòng)電路,使喇叭發(fā)出不同音調(diào)的聲音。使用8255A的PB0控制通道2的計(jì)數(shù),PB1控制通道2的輸出對(duì)揚(yáng)聲器產(chǎn)生控制的時(shí)間。4Copyright?2012AndyGuo.Allrightsreserved。/9ippt設(shè)計(jì)思路分析總體要求與分析人機(jī)交互包括屏幕顯示提示語(yǔ)以及人工輸入相應(yīng)參數(shù),主要應(yīng)用到BIOS的10H號(hào)中斷調(diào)用以及DOS的21H號(hào)中斷調(diào)用。BIOS的10H號(hào)中斷調(diào)用用于顯示器驅(qū)動(dòng),設(shè)置顯示模式和光標(biāo)位置;DOS的21H號(hào)中斷調(diào)用用于單字符輸入以及多字符輸出顯示。5Copyright?2012AndyGuo.Allrightsreserved。/9ippt設(shè)計(jì)思路分析總體要求與分析音樂(lè)演奏實(shí)現(xiàn)的一個(gè)主要步驟是樂(lè)譜編程。通過(guò)相應(yīng)的頻率表將樂(lè)譜中對(duì)應(yīng)的音符轉(zhuǎn)化為計(jì)數(shù)器的計(jì)數(shù)初值,節(jié)奏通過(guò)延時(shí)程序轉(zhuǎn)化為對(duì)喇叭發(fā)音時(shí)間的控制,從而實(shí)現(xiàn)音符和節(jié)拍的數(shù)字化。6Copyright?2012AndyGuo.Allrightsreserved。/9ippt設(shè)計(jì)思路分析方案設(shè)計(jì)音樂(lè)的實(shí)現(xiàn)主要是對(duì)樂(lè)譜中的單音符按照一定的音符頻率表轉(zhuǎn)化為計(jì)數(shù)器的計(jì)數(shù)頻率以及喇叭發(fā)聲的控制時(shí)間,通過(guò)計(jì)數(shù)產(chǎn)生相應(yīng)的控制動(dòng)作。利用硬件實(shí)現(xiàn)頻率計(jì)數(shù)和延時(shí)時(shí)間的控制,利用8253-5定時(shí)/計(jì)數(shù)器芯片和8255A并行I/O接口芯片。使8253的一個(gè)通道工作在“方波發(fā)生器”模式,實(shí)現(xiàn)對(duì)頻率的計(jì)數(shù);利用8255A的PB3端口實(shí)現(xiàn)發(fā)聲時(shí)間的計(jì)數(shù)控制。7Copyright?2012AndyGuo.Allrightsreserved。/9ippt硬件電路8Copyright?2012AndyGuo.Allrightsreserved。/9ippt硬件電路9Copyright?2012AndyGuo.Allrightsreserved。/9ippt8253的通道0用于產(chǎn)生固定頻率的始終節(jié)拍,通道1用于產(chǎn)生固定頻率的的刷新信號(hào),通道2用于產(chǎn)生頻率信號(hào),工作在方式3,計(jì)數(shù)值為6A4H=1190,方波輸出頻率為1.19MHZ。此信號(hào)頻率決定揚(yáng)聲器的音調(diào),通道2的控制字為0B6H。音樂(lè)產(chǎn)生主要用到通道2。硬件電路10Copyright?2012AndyGuo.Allrightsreserved。/9ippt8253通道2的計(jì)數(shù)由8255A的PB0控制,當(dāng)PB0輸出為高電平時(shí),使門控GATE2為高電平。此時(shí),8253通道2允許計(jì)數(shù),故通道2的輸出方波受PB0的控制,從而控制揚(yáng)聲器的音調(diào)高低。通道2的輸出能否對(duì)揚(yáng)聲器產(chǎn)生持續(xù)控制還取決于8255A的PB1。當(dāng)PB1為“0”時(shí),OUT2不能通過(guò)“與門”;反之,則可以通過(guò)“與門”控制揚(yáng)聲器。所以,揚(yáng)聲器發(fā)音時(shí)間的長(zhǎng)短取決于8255A的PB1信號(hào)。另外CPU通過(guò)讀8255A的C口,得知8253通道2的狀態(tài)和揚(yáng)聲器驅(qū)動(dòng)器的狀態(tài)。軟件設(shè)計(jì)程序運(yùn)行時(shí),屏幕顯示第一界面如下:MusicPlayerPleaseSelectaSongALiangzhilaohuBZhengfuQExit----------------------選擇A、B分別演奏相應(yīng)的音樂(lè),選擇Q鍵結(jié)束程序運(yùn)行。當(dāng)輸入別的按鍵信號(hào)時(shí),顯示出錯(cuò)提示信息,界面如下:ERROR!!!ChooseABQPleaseInputAgain!MusicPlayerPleaseSelectaSongALiangzhilaohuBZhengfuQExit----------------------11Copyright?2012AndyGuo.Allrightsreserved。/9ippt屏幕顯示設(shè)計(jì)軟件設(shè)計(jì)上述提示信息在數(shù)據(jù)段定義,類型為字節(jié)型。首先調(diào)用BIOS中斷的10H號(hào)功能設(shè)置文本模式。程序如下:

MOVAH,00H;BIOS10H子功能

MOVAL,02H;80*25彩色文本模式

INT10H;BIOS10功能調(diào)用然后調(diào)用背景清屏子程序使文本屏幕清空,為輸入信息作準(zhǔn)備,清屏子程序如下:CLRPROCNEARMOVBH,0;第0頁(yè)

MOVBL,00011010B;字符屬性,藍(lán)底綠字不閃爍

MOVDX,0000H;0行0列

MOVAL,'';輸出的字符

MOVCX,80*25;循環(huán)次數(shù)

MOVAH,02H;BIOS10H子功能調(diào)用,置光標(biāo)位置

INT10HMOVAH,09H;BIOS10H子功能調(diào)用,輸出字符

INT10HRETCLRENDP12Copyright?2012AndyGuo.Allrightsreserved。/9ippt屏幕顯示設(shè)計(jì)軟件設(shè)計(jì)最后輸出提示語(yǔ)字符。輸出提示語(yǔ)字符時(shí),需要多次使用一段相同的輸出代碼,將該代碼定義為宏,可以避免多次重復(fù)書寫相同的代碼。不定義為子程序是為了避免多次調(diào)用使執(zhí)行速度減慢。相應(yīng)宏定義語(yǔ)句為:SHOWMACRObLEADX,b;將相應(yīng)字符段的偏移地址裝入DXMOVAH,9;DOS21H號(hào)中斷9子功能輸出多字符

INT21HENDM則相應(yīng)的字符提示信息輸出代碼為:CALLCLRshowINFO1showINFO2showINFO3showINFO4showMUSLIST13Copyright?2012AndyGuo.Allrightsreserved。/9ippt屏幕顯示設(shè)計(jì)軟件設(shè)計(jì)

一首樂(lè)曲由若干音符組成,一個(gè)音符對(duì)應(yīng)一個(gè)頻率。將與一個(gè)頻率對(duì)應(yīng)的計(jì)數(shù)器初值寫入2號(hào)計(jì)數(shù)器(端口地址為42H),揚(yáng)聲器就發(fā)出相應(yīng)的音調(diào),計(jì)數(shù)器初值的計(jì)算公式:計(jì)數(shù)器初值=1193182/輸出頻率

其中,1193182Hz轉(zhuǎn)換成十六進(jìn)制為12348CH,因此在打開揚(yáng)聲器的條件下,執(zhí)行下列程序段即可發(fā)出與輸出頻率對(duì)應(yīng)的音調(diào)。MOVAL,0B6H;寫入方式控制字OUT43H,AL;寫入控制端口MOVDX,12HMOVAX,348CHDIV頻率值

;頻率轉(zhuǎn)換成計(jì)數(shù)初值

OUT42H,AL;低8位送2號(hào)計(jì)數(shù)器

MOVAL,AHOUT42H,AL;高位送2號(hào)計(jì)數(shù)器14Copyright?2012AndyGuo.Allrightsreserved。/9ippt音樂(lè)發(fā)聲控制軟件設(shè)計(jì)接下來(lái)設(shè)計(jì)發(fā)聲程序,發(fā)聲系統(tǒng)受8255A芯片(端口地址為60H-63H)的兩根輸出線PB0和PB1的控制,PB0輸出的高電平使2號(hào)計(jì)數(shù)器正常工作,PB1輸出高電平打開輸出控制門。發(fā)聲程序代碼如下:INAL,61H;讀取8255A的PB端口原輸出值MOVAH,AL;將原輸出值保存于AH中ORAL,3;使PB0、PB1、均為1OUT61H,AL;打開GATE2門,輸出方波到揚(yáng)聲器15Copyright?2012AndyGuo.Allrightsreserved。/9ippt音樂(lè)發(fā)聲控制軟件設(shè)計(jì)

最直觀的方法是按照譜為每一個(gè)音符規(guī)定一個(gè)演奏時(shí)間。在遇到一首不熟悉歌曲時(shí),初期很難確定每個(gè)音符的演唱時(shí)間,而調(diào)試程序的需大量的時(shí)間。為每一個(gè)音符規(guī)定“單位時(shí)間”:

單位時(shí)間*N=音符的延長(zhǎng)時(shí)間

其中,N為調(diào)試參數(shù),一首歌曲只有一個(gè)調(diào)試參數(shù)。設(shè)計(jì)程序時(shí)可以用EQU偽指令定義調(diào)試參數(shù),初值現(xiàn)行估算,調(diào)試時(shí)再修改它。

節(jié)拍時(shí)間設(shè)置好以后,就可以利用延時(shí)程序,通過(guò)PB1端口控制發(fā)聲的時(shí)間長(zhǎng)短。80x86的各種處理器采用6-66MHZ的工作頻率,LOOP治理的執(zhí)行時(shí)間在這些處理器上也不同。為了建立一個(gè)與處理器無(wú)關(guān)的時(shí)間延遲,IBM采用了一個(gè)利用硬件產(chǎn)生時(shí)間延遲的方法,即通過(guò)監(jiān)控端口61H的PB4,使PB4每15.08us觸發(fā)一次,以產(chǎn)生一個(gè)固定不變的時(shí)間基準(zhǔn),在IBM-PC/XT中的BIOS中的WAITF子程序,就是一個(gè)產(chǎn)生N*15.08us時(shí)間延遲的程序,調(diào)用WAITF子程序時(shí),CX寄存器必須裝入15.08us的倍數(shù)N。16Copyright?2012AndyGuo.Allrightsreserved。/9ippt節(jié)拍時(shí)間的實(shí)現(xiàn)軟件設(shè)計(jì)waitfprocnear;延時(shí)保護(hù)程序

pushax;保護(hù)寄存器waitf1:inal,61h;讀取PB端口地址

andal,10h;低四位清零

cmpal,ah;檢查是否改變

jewaitf1;等待改變

movah,al;改變,保護(hù)新端口值

loopwaitf1;繼續(xù),直到CX=0popax;恢復(fù)寄存器

retwaitfendp17Copyright?2012AndyGuo.Allrightsreserved。/9ippt節(jié)拍時(shí)間的實(shí)現(xiàn)軟件設(shè)計(jì)18Copyright?2012AndyGuo.Allrightsreserved。/9ippt音樂(lè)樂(lè)譜編程軟件設(shè)計(jì)19Copyright?2012AndyGuo.Allrightsreserved。/9ippt程序流程圖軟件設(shè)計(jì)20Copyright?2012AndyGuo.Allrightsreserved。/9ippt程序流程圖軟件設(shè)計(jì)21Copyright?2012AndyGuo.Allrightsreserved。/9ippt程序流程圖程序源代碼DATASEGMENTINFO1DB0DH,0AH,'MusicPlayer$'INFO2DB0DH,0AH,'$'INFO3DB0DH,0AH,'PleaseSelectaSong$'INFO4DB0DH,0AH,'$'INFO5DB0DH,0AH,'ERROR!!!ChooseABQ$'INFO6DB0DH,0AH,'PleaseInputAgain!$'MUSLISTDB0DH,0AH,'ALiangzhilaohu'DB0DH,0AH,'BZhengfu'DB0DH,0AH,'QExit'DB0DH,0AH,'-------------------------'DB0DH,0AH,'$'22Copyright?2012AndyGuo.Allrightsreserved。/9ippt程序源代碼DATASEGMENTINFO1DB0DH,0AH,'MusicPlayer$'INFO2DB0DH,0AH,'$'INFO3DB0DH,0AH,'PleaseSelectaSong$'INFO4DB0DH,0AH,'$'INFO5DB0DH,0AH,'ERROR!!!ChooseABQ$'INFO6DB0DH,0AH,'PleaseInputAgain!$'MUSLISTDB0DH,0AH,'ALiangzhilaohu'DB0DH,0AH,'BZhengfu'DB0DH,0AH,'QExit'DB0DH,0AH,'-------------------------'DB0DH,0AH,'$'23Copyright?2012AndyGuo.Allrightsreserved。/9ippt程序源代碼DATASEGMENTINFO1DB0DH,0AH,'MusicPlayer$'INFO2DB0DH,0AH,'$'INFO3DB0DH,0AH,'PleaseSelectaSong$'INFO4DB0DH,0AH,'$'INFO5DB0DH,0AH,'ERROR!!!ChooseABQ$'INFO6DB0DH,0AH,'PleaseInputAgain!$'MUSLISTDB0DH,0AH,'ALiangzhilaohu'DB0DH,0AH,'BZhengfu'DB0DH,0AH,'QExit'DB0DH,0AH,'-------------------------'DB0DH,0AH,'$'24Copyright?2012AndyGuo.Allrightsreserved。/9ippt程序源代碼;*********************************************兩只老虎MUS_FREG1DW262,294,330,262DW262,294,330,262DW330,350,393DW330,350,393DW393,441,393,350,330,262DW393,441,393,350,330,262DW294,196,262DW294,196,262,-1MUS_TIME1DW4*15,4*15,4*15,4*15DW4*15,4*15,4*15,4*15DW4*15,4*15,8*15DW4*15,4*15,8*15DW2*15,1*15,2*15,1*15,4*15,4*15DW2*15,1*15,2*15,1*15,4*15,4*15DW4*15,4*15,8*15DW4*15,4*15,8*1525Copyright?2012AndyGuo.Allrightsreserved。/9ippt程序源代碼;*********************************************征服MUS_FREG2DW784,1046,988,784,880,659,880DW880,880,880,784,659,659,698DW698,698,698,784,88

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論