微機(jī)原理課程設(shè)計(jì)音樂(lè)播放器_第1頁(yè)
微機(jī)原理課程設(shè)計(jì)音樂(lè)播放器_第2頁(yè)
微機(jī)原理課程設(shè)計(jì)音樂(lè)播放器_第3頁(yè)
微機(jī)原理課程設(shè)計(jì)音樂(lè)播放器_第4頁(yè)
微機(jī)原理課程設(shè)計(jì)音樂(lè)播放器_第5頁(yè)
已閱讀5頁(yè),還剩12頁(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)介

一、課程設(shè)計(jì)的任務(wù)和目的課程設(shè)計(jì)題目:音樂(lè)播放器課程設(shè)計(jì)的實(shí)現(xiàn)目的:本課程設(shè)計(jì)主要是通過(guò)匯編語(yǔ)言用軟件編程的方法實(shí)現(xiàn)簡(jiǎn)單的音樂(lè)播放功能。通過(guò)在《微機(jī)原理與接口技術(shù)》課程上所學(xué)的匯編知識(shí)和8253/8254芯片相關(guān)知識(shí),來(lái)完成本課程設(shè)計(jì);用匯編程序完成鍵控音樂(lè)播放器的,用8253/8254定時(shí)器來(lái)產(chǎn)生聲音。該播放器有若干首歌曲可以選擇,開(kāi)始時(shí)輸出說(shuō)明,要用戶選擇要播放的歌曲,然后根據(jù)用戶按鍵進(jìn)行播放、退出或出錯(cuò)提示。通過(guò)課程設(shè)計(jì)環(huán)節(jié)來(lái)加強(qiáng)對(duì)所學(xué)知識(shí)的理解和應(yīng)用。二、課程設(shè)計(jì)相關(guān)知識(shí)2.1定時(shí)/計(jì)數(shù)器8253/58254在微機(jī)及控制系統(tǒng)中,經(jīng)常要用到定時(shí)信號(hào)。如系統(tǒng)的日歷時(shí)鐘,動(dòng)態(tài)存儲(chǔ)器刷新。對(duì)外部執(zhí)行機(jī)構(gòu)控制時(shí)也需要定時(shí)中斷、定時(shí)檢測(cè)、定時(shí)查詢等。定時(shí)的方法主要是兩種:軟件定時(shí):利用指令的執(zhí)行時(shí)間設(shè)計(jì)循環(huán)程序,使CPU執(zhí)行延遲子程序的時(shí)間就是定時(shí)時(shí)間。缺點(diǎn):執(zhí)行延遲時(shí),CPU—直被占用,降低了CPU的效率。硬件定時(shí):用計(jì)數(shù)器/定時(shí)器作為主要硬件,在軟件簡(jiǎn)單指令的控制下產(chǎn)生精確的時(shí)間延遲。突出優(yōu)點(diǎn)為計(jì)數(shù)時(shí)不占用CPU時(shí)間,如利用定時(shí)器/計(jì)數(shù)器產(chǎn)生中斷信號(hào),可建立多作業(yè)環(huán)境,提高了CPU效率。作為定時(shí)器可用8253或者8254,二者功能基本相同,知識(shí)工作的最高頻率不一樣。本實(shí)驗(yàn)就采用了8254,其主要功能為:每片上有3個(gè)獨(dú)立的16位的減計(jì)數(shù)器通道。對(duì)于每個(gè)計(jì)數(shù)器,都可以單獨(dú)作為定時(shí)器或計(jì)數(shù)器使用,并且都可以按照二進(jìn)制或十進(jìn)制來(lái)計(jì)數(shù)。每個(gè)通道都有6種工作方式,都可以通過(guò)程序設(shè)置或改變。每個(gè)計(jì)數(shù)器的速率可高達(dá)10MHz。主要部分有:數(shù)據(jù)總線緩沖器、讀/寫(xiě)控制邏輯、控制字寄存器、計(jì)數(shù)通道0#、1#、2#:內(nèi)部結(jié)構(gòu)如下圖:8254內(nèi)部結(jié)構(gòu)2.28254外部引腳8254芯片是具有24個(gè)引腳的雙列直插式集成電路芯片,其引腳分布如圖所示。8254芯1文檔收集于互聯(lián)網(wǎng),如有不妥請(qǐng)聯(lián)系刪除.文檔來(lái)源為文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持.文檔收集于互聯(lián)網(wǎng),如有不妥請(qǐng)聯(lián)系刪除.感覺(jué)無(wú)法下手,沒(méi)辦法只能硬著頭皮啃下去,多看幾個(gè)和音樂(lè)播放有關(guān)的匯編程序,然后我就能慢慢看懂了并理解了別的作者的設(shè)計(jì)思路。然后再根據(jù)自己的思路,對(duì)照本人在圖書(shū)館借的匯編語(yǔ)言指導(dǎo)書(shū)慢慢編寫(xiě)符合自己思路的程序。一次寫(xiě)出來(lái)的程序肯定不會(huì)是正確的,還需要進(jìn)一步調(diào)試它。檢查程序過(guò)程中,在充分思考的基礎(chǔ)上多次實(shí)驗(yàn)是檢查改正程序的良方。編寫(xiě)程序的過(guò)程中,體會(huì)最深的是子程序的調(diào)用和程序的條理問(wèn)題,一個(gè)程序就算功能實(shí)現(xiàn)了,但是也要使主程序和子程序的條理分明,易讀性高,才能算一個(gè)比較好的程序。調(diào)試程序中,學(xué)習(xí)了DEBUG的使用,DEBUG對(duì)檢查程序的錯(cuò)誤作用很大。同時(shí),也要靈活使用各種調(diào)試方法,來(lái)縮小尋找錯(cuò)誤的范圍。書(shū)到用時(shí)方恨少。在課程設(shè)計(jì)過(guò)程中,我才體會(huì)到這句話的深意。課堂上學(xué)的8254的知識(shí)和匯編語(yǔ)言都太少,還不足以完成本次課設(shè),為此我經(jīng)常跑圖書(shū)館借了各種各樣的工具書(shū)。有的書(shū)用處較大,有的書(shū)僅能用到一小塊知識(shí),就是這樣,一步步在知識(shí)的海洋里我尋覓著自己需要的東西,確實(shí)克服了不少困難,解決了不少問(wèn)題?;蛟S坎坷才能更好的使人成長(zhǎng)。在這次的課程設(shè)計(jì)中,我的收獲是不但做出了一個(gè)符合要求的音樂(lè)播放器,而且為自己積累了一些寶貴的經(jīng)驗(yàn)。同時(shí)我也對(duì)音樂(lè)方面的頻率知識(shí)有了一些認(rèn)識(shí),我想如果不是本次課程設(shè)計(jì)中用到這方面知識(shí),我這輩子可能沒(méi)有機(jī)會(huì)去接觸這方面的知識(shí)了。這,或許也是我比別的同學(xué)多出的一點(diǎn)收獲吧!六、附錄1、源程序代碼:SSEGSEGMENTPARASTACK'stack'dw100hdup(0);Resizethestackbychangingthenumber'100'SSEGENDSDSEGSEGMENTINFO1DB0DH,0AH,'',0DH,0AH,'THEREARE3SONGS:',0DH,0AH,0DH,0AH,'$'INFO2DB'1.HAPPYBIRTHDAY',0DH,0AH,'$'INFO3DB'2.SHEEP',0DH,0AH,'$'INFO4DB'3.RIVER',0DH,0AH,'$'INFO5DB'0.EXIT',0DH,0AH,'$'INFO6DB'YOUHAVECHOSEN:$'INFO7DB'THANKYOUFORYOURUSE',0DH,0AH,'$'INFO8DB'',0DH,0AH,'PRESSTHEKEYTOSELECTSONG!',0DH,0AH,'$'INFO9DB0DH,0AH,'',0DH,0AH,'|INVALIDSELECTION|',0DH,0AH,'',0DH,0AH,'$'FREG1DW2dup(262),294,262,349,262,262,294,262,392,249,262,262,523,440,349;曲1的頻率DW330,294,466,266,440,349,392,349,-1TIME1DW1,1,2,2,2,4,1,1,2,2,2,4,1,1,2,2,2,2,4,1,1,2,2,2,4;曲1的時(shí)間FREG2DW330,294,262,294,3DUP(330);曲2的頻率DW3DUP(294),330,392,392DW330,294,262,294,4DUP(330)DW294,294,330,294,262,-1TIME2DW6DUP(1),2;曲2的時(shí)間DW2DUP(1,1,2)DW12DUP(1),4FREG3DW330,392,330,294,330,392,330,294,330,330,392,330,294,262,294,330,392,294;曲3的頻率DW262,262,220,196,220,262,294,332,262,-1TIME3DW3DUP(2),1,1,2,1,1,4DW2DUP(2,2,1,1),4DW3DUP(2,1,1,1),4DSEGENDSCSEGSEGMENTassumecs:CSEG,ds:DSEG,es:DSEG,ss:SSEGINITPROCmovax,dsegmovds,axmoves,axINITENDPMAINPROCcallINITRE:MOVDX,28BHMOVAL,89HOUTDX,ALMOVDX,28AHINAL,DXMOVDX,288HOUTDX,ALLEADX,INFO1MOVAH,09HINT21HLEADX,INFO2INT21HLEADX,INFO3INT21HLEADX,INFO4INT21HLEADX,INFO5INT21HLEADX,INFO8INT21HMOVAH,01HINT21H;曲3的時(shí)間;初始化程序;程序入口;關(guān)閉揚(yáng)聲器;輸出說(shuō)明信息;讀取按鍵CMPAL,'1'

JEMUSIC1CMPAL,'2'

JEMUSIC2CMPAL,'3'

JEMUSIC3CMPAL,'0'JEEXITLEADX,INFO9MOVAH,09HINT21HJMPREMUSIC1:MOVSI,OFFSETFREG1MOVBP,OFFSETTIME1CALLPLAYJMPREMUSIC2:MOVSI,OFFSETFREG2MOVBP,OFFSETTIME2CALLPLAYJMPREMUSIC3:MOVSI,OFFSETFREG3MOVBP,OFFSETTIME3CALLPLAYJMPREEXIT:MOVDX,28BHMOVAL,89HOUTDX,ALMOVDX,28AHINAL,DXMOVDX,288HOUTDX,ALLEADX,INFO7MOVAH,09HINT21Hmovax,4c00hint21hMAINENDPPLAYPROCL1:MOVBX,DS:[SI]CMPBX,-1JEL0;根據(jù)不同的按鍵播放不同的曲子;無(wú)效選擇,輸出錯(cuò)誤提示;指向曲1的表;指向曲2的表;指向曲3的表;關(guān)閉揚(yáng)聲器;輸出歡迎使用信息,增加界面友好度;Theendoftheprogram,returntothesystem;PLAY子程序,功能上面介紹過(guò);取頻率;看是否有效;無(wú)效就退出MOVCX,DS:[BP]MOVCX,DS:[BP]MOVDL,CLADDDL,30HMOVAH,02HINT21HMOVDX,0FHMOVAX,4240HDIVBXMOVBX,AXMOVDX,283HMOVAL,36HOUTDX,ALMOVDX,280HMOVAX,BXOUTDX,ALMOVAL,AHOUTDX,ALMOVDX,28BHMOVAL,89HOUTDX,ALMOVDX,28AHINAL,DXNOTALMOVDX,288HOUTDX,ALROD:CALLDELAYLOOPRODMOVDX,28BHMOVAL,89HOUTDX,ALMOVDX,28AHINAL,DXMOVDX,288HOUTDX,ALCALLDELAY_OFFADDSI,2ADDBP,2JMPL1L0:RETPLAYENDPDELAYPROCPUSHAXPUSHBXPUSHCXPUSHDX;讀取時(shí)間;保存時(shí)間;計(jì)算計(jì)數(shù)初值,1M的十六進(jìn)制為OF4240H;設(shè)置計(jì)數(shù)器工作方式;輸入計(jì)數(shù)初值;開(kāi)揚(yáng)聲器;延時(shí);關(guān)揚(yáng)聲器;音節(jié)間延時(shí);延時(shí)子程序;循環(huán)這么多次;循環(huán)這么多次LL1:MOVCX,0FFFFHLOP:LOOPLOPDECBXJNZLL1POPDXPOPCXPOPBXPOPAXRETDELAYENDPDELAY_OFFPROCPUSHAXPUSHBXPUSHCXPUSHDXMOVBX,0FHLL2:MOVCX,0CFFFHLOP2:LOOPLOP2DECBXJNZLL2POPDXPOPCXPOPBXPOPAXRETDELAY_OFFENDPCSEGENDSENDMAIN2、各個(gè)音符的對(duì)應(yīng)頻率表音符頻率/HZ半周期/us音符頻率/HZ半周期/us低1D02621908#4FA#7400676#1DO#2771805中5SO7840638低2RE2941700#5SO#8310602#2RE#3111608中6LA8800568低3M3301516#6LA#9320536低4FA3491433中7SI9880506#4FA#3701350高1DO10460478低5S03921276#DO#11090451#5SO#4151205高

溫馨提示

  • 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)論