《微機原理與應(yīng)用》課程設(shè)計_第1頁
《微機原理與應(yīng)用》課程設(shè)計_第2頁
《微機原理與應(yīng)用》課程設(shè)計_第3頁
《微機原理與應(yīng)用》課程設(shè)計_第4頁
《微機原理與應(yīng)用》課程設(shè)計_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

電子音樂播放器一、 課程設(shè)計的目的和意義學(xué)習(xí)和掌握計算機中常用接口電路的應(yīng)用和設(shè)計技術(shù),學(xué)會針對不同的要求設(shè)計匯編程序代碼,充分認識理論知識對應(yīng)用技術(shù)的指導(dǎo)性作用,進一步加強理論知識與應(yīng)用相結(jié)合的實踐和鍛煉。通過這次設(shè)計實踐能夠進一步加深對專業(yè)知識和理論知識學(xué)習(xí)的認識和理解,使自己的設(shè)計水平和對所學(xué)知識的應(yīng)用能力以及分析問題解決問題的能力得到全面提高。二、 設(shè)計要求利用8254作為音階頻率發(fā)生器,應(yīng)先對至少兩段音樂進行編碼后存入音符表,并建立好音階表,每段音符長度不能少于60個,每首連續(xù)播放3遍后,自動播放下一段音樂,幾段音樂播完后,循環(huán)播放,直到有鍵盤輸入任意字符時停止,并且使用8255作為控制開關(guān)的并行輸入接口,輸入開關(guān)選擇的音樂控制信號。三、 設(shè)計總框圖

四、設(shè)計設(shè)計思路說明:電子音樂播放器屬于接口電路的連接使用,本設(shè)計是以8254芯片為核心的發(fā)生系統(tǒng)。8086CPU在形成系統(tǒng)總線后,通過和8254及8255的連接使用可以很好的驅(qū)動揚聲器發(fā)音。系統(tǒng)初始化后,8255通過B通道,從控制開關(guān)讀取所需的控制字,并送入8086CPU中進行判斷,選擇不同的播放音樂。使8254的通過0號計數(shù)器工作在“頻率發(fā)生器”方式3,向發(fā)生器發(fā)出不同頻率的方波。當給定不同的計數(shù)初值時可以使揚聲器發(fā)出不同頻率的音響。五、程序流程圖六、接口電路原理圖1、8254的基本知識8254占用4個端口,3個定時器各占1個,控制端口占1個。8254的內(nèi)部結(jié)構(gòu)如圖所示,它主要包括以下幾個主要部分:Dt~Do內(nèi)部數(shù)據(jù)總線Dt~Do內(nèi)部數(shù)據(jù)總線8254的內(nèi)部結(jié)構(gòu)(1).數(shù)據(jù)總線緩沖器實現(xiàn)8254與CPU數(shù)據(jù)總線連接的8位雙向三態(tài)緩沖器,用以傳送CPU向8254的控制信息、數(shù)據(jù)信息以及CPU從8254讀取的狀態(tài)信息,包括某時刻的

實時計數(shù)值。.讀/寫控制邏輯控制8254的片選及對內(nèi)部相關(guān)寄存器的讀/寫操作,它接收CPU發(fā)來的地址信號以實現(xiàn)片選、內(nèi)部通道選擇以及對讀/寫操作進行控制。.控制字寄存器在8254的初始化編程時,由CPU寫入控制字,以決定通道的工作方式,此寄存器只能寫入,不能讀出。.計數(shù)通道0#、1#、2#:這是三個獨立的,結(jié)構(gòu)相同的計數(shù)器/定時器通道,每一個通道包含一個16位的計數(shù)寄存器,用以存放計數(shù)初始值,一個16位的減法計數(shù)器和一個16位的鎖存器,鎖存器在計數(shù)器工作的過程中,跟隨計數(shù)值的變化,在接收到CPU發(fā)來的讀計數(shù)值命令時,用以鎖存計數(shù)值,供CPU讀取,讀取完畢之后,輸出鎖存器又跟隨減1計數(shù)器變化。.8254外部引腳8254芯片是具有24個引腳的雙列直插式集成電路芯片,其引腳分布如圖所示。8254芯片的24個引腳分為兩組,一組面向CPU,另一組面向外部設(shè)備,各個引腳及其所傳送信號的情況,介紹如下:1.D7~D0:雙向、三態(tài)數(shù)據(jù)線引腳,與系統(tǒng)的數(shù)據(jù)線連接,傳送控制、數(shù)據(jù)及狀態(tài)信息。RD:來自于CPU的讀控制信號輸入引腳,低電平有效。WR:來自于CPU的寫控制信號輸入引腳,低電平有效。CS:芯片選擇信號輸入引腳,低電平有效。數(shù)據(jù)蠲控制絡(luò)電源,VCC地876543211O543867-MD數(shù)據(jù)蠲控制絡(luò)電源,VCC地876543211O543867-MD1111JIJIJIJIJIJ1CLKOGATEOOUTO計數(shù)器0號■*—CLK1■*—GATE1—*-OUTl計數(shù)器1號(6).8254端口地址ZCS/RD/WRAlA2寄存器選擇與操作01000寫九計數(shù)器#00r001寫理計數(shù)器#101010寫&計數(shù)器#201.01;1 寫衣控制寄存器00100讀計數(shù)器#000101讀計數(shù)器#100.11.0讀計數(shù)器#空00111.無操作(二烝卜1XXXX黑止1二忍缶:01.-1.XX無操作(二態(tài))8254端口地址(7).8254功能8253A既可作定時器又可作計數(shù)器:計數(shù):計數(shù)器裝入初值后,當GATE為高電平時,可用外部事件作為CLK脈沖對計數(shù)值進行減1計數(shù),每來一個脈沖減1,當計數(shù)值減至0時,由OUT端輸出一個標志信號。定時:計數(shù)器裝入初值后,當GATE為高電平時,由CLK脈沖觸發(fā)開始自動計數(shù),當計數(shù)到零時,發(fā)計數(shù)結(jié)束定時信號。除上述典型應(yīng)用外,8253A還可作頻率發(fā)生器、分頻器、實時鐘、單脈沖發(fā)生器等。(二)、系統(tǒng)設(shè)計(1).控制字8255利用端口B從音樂播放選擇端口讀入8位數(shù)據(jù)進行判斷,同時8254選擇通道0,方式3,二進制,先讀低位/后高位讀數(shù)。則輸入的控制字為:MOVDX,D8255_MODEMOVAL,10000010BOUTDX,ALMOVDX,D8254_MODEMOVAL,00110110BOUTDX,AL(2).演奏單音符8254芯片(口地址為40H—43H)的0號計數(shù)器工作在方式3作為頻率發(fā)生器發(fā)出方波。每一個音符對應(yīng)一個頻率,將與一個頻率對應(yīng)的計數(shù)初值寫入0號計數(shù)器,揚聲器就可以發(fā)出相應(yīng)的音調(diào)。由于本實驗采用的時鐘是8086CPU時鐘,其頻率可選為1MHZ。故計數(shù)初值的計算公式如下:計數(shù)初值=1M/輸出頻率1MHZ轉(zhuǎn)換為16進制數(shù)為0F4240H,因此在打開揚聲器的情況下執(zhí)行以下子程序即可發(fā)出與輸出頻率對應(yīng)的音調(diào)。MOV DX,4CHMOV AX,4B40HMOV CX,頻率值DIV CX ;AX=計數(shù)初值OUT 40H,ALMOV AL,AHOUT 40H,AL(3).演奏時間控制通過控制每個音符的演奏時間可以使樂曲更加有節(jié)奏感。最直觀的方法是按照樂譜為每一個音符規(guī)定一個演奏時間,但是利用這種方法調(diào)試程序特別困難。特別是在遇到一首不熟悉的歌曲時,初期很難確定每個音符的演唱時間,而調(diào)試程序的時候費時費力,效果很差。我們可以利用另外一種方法,即為每個音符規(guī)定一個“單位時間”單位時間XN二音符的演唱時間其中,N為調(diào)試參數(shù),一首歌曲只有一個調(diào)試參數(shù),它為常數(shù)。由于每個音符的節(jié)奏(即演唱時間)不同,所以各個音符的“單位時間”都不一樣。每個音符演奏的“單位時間”的確定:我們知道,音符的節(jié)奏分為一拍、半拍、1/4拍、1/8拍等等。如果在一首歌中,所有音符中演奏時間最短的為1/8拍,我們就規(guī)定1/8拍音符的“單位時間”為1,1/4拍音符的“單位時間”為2,半拍音符的“單位時間”為4,一拍音符的“單位時間”為8。調(diào)試參數(shù)N的確定:顯然,如果能測出一段樂譜的總的時間t,用T(i)來表示第i個音符的“單位時間”那么: N=—T(i)i、頻率表和時間表設(shè)計程序時,數(shù)據(jù)段設(shè)這兩張“表”一張是頻率表,將與音符對應(yīng)的頻率值依次寫入表中,另一張是時間表,依次存放每個音符的單位時間。當然頻率表項和時間表項要一一對應(yīng),不能錯位,頻率表的最后一個表項為0作為重復(fù)演唱或者停止演唱的標志。在接通揚聲器的情況下,依次取出頻率表中的頻率值,轉(zhuǎn)換成計數(shù)初值寫入2號計數(shù)器,依次取出時間表中的單位時間和調(diào)試參數(shù)N相乘,然后再調(diào)用延時子程序即可得到延時時間,也就是音符的演奏時間。表一:音階頻率表音階頻率(HZ)TOC\o"1-5"\h\z247247(12〈2)2=2773113303704154661 247(12〈2)12=247*2=494表二:音符頻率表(HZ)247.247.277.311.311.330.330.311.311.277277,311,277,247,466,247,415,415,247,247277.311.311.330.330.311.311.370.415.370311.277.247.277.277.247.330.370.415.370330.247.247.311.311.330.311.277.247.277370,370,370,370,247,247,277,247,415,370,--1表三:單位時間表44 8448444224484442244844 844888444484444 1644444444444416七、設(shè)計總結(jié)(一)設(shè)計總結(jié)通過對電子音樂播放器的設(shè)計,從電路到匯編代碼,再到對程序的調(diào)試,在整個的設(shè)計過程中學(xué)到了很多,例如,對8254發(fā)生原理的理解,其工作原理就是對輸入相同的脈沖,通過計數(shù)器的控制作用,輸出需要的不同頻率的波。同時用到了8255的并行接口,將二進制的控制信息傳入8086CPU中處理,選擇是否對音樂播放進行調(diào)整。在使用8255和8254接口的時候,都要對其進行初始化,這初始化程序的編寫,有助于對這些接口芯片的工作原理的理解。同時在調(diào)試過程中對不同音階進行調(diào)試,加深了對發(fā)聲原理的理解與掌握??傊?,在實驗中自己動手,把理論知識用于實踐,從中能夠領(lǐng)會很多。(二)設(shè)計存在的問題和不足由于是初次設(shè)計這個微機課程設(shè)計,在設(shè)計中由于考慮不全或知識面的狹窄,導(dǎo)致了在實驗設(shè)計中出現(xiàn)一些不足和錯誤,主要有以下幾點:1、 實驗箱里面的線路連接和接線接頭不是很熟悉,在實驗連線中偶爾出現(xiàn)錯誤。2、 關(guān)于實驗中的芯片的使用方法,存在問題,不能準確的合理使用芯片功能。3、 寫程序代碼時,由于知識面的狹窄,會對一些步驟的編寫出現(xiàn)錯誤,不過查資料后都正確的改正了。4、 關(guān)于循環(huán)和聲音控制計數(shù)器中數(shù)的計算有點問題,不過經(jīng)過老師的解答,也基本弄清楚了。5、 設(shè)計中最大的難處就是實現(xiàn)上面的對音節(jié)時間的控制方式,在最后的編程中沒有使用上面的時間控制方式,從而導(dǎo)致了最后輸出地音樂的聲音不是很標準,同時也難調(diào)試。(三)心得體會這次課程設(shè)用了一個星期,在這一個星期的日子里,雖然還要復(fù)習(xí)其他的學(xué)科知識以應(yīng)對相應(yīng)的期末考試,但在每天下午的設(shè)計實驗室里面還是靜下心來認認真真的編寫匯編代碼,學(xué)習(xí)連接線路芯片。在之前的書本理論知識的學(xué)習(xí)中對相應(yīng)的芯片知識不是很了解,在課程設(shè)計的過程中,加深了其理解。同時,也對整個學(xué)科的知識進行了匯總學(xué)習(xí)。從8286CPU到8255并行接口再到8254可編程計數(shù)器的使用原來和連接方法進行深入的學(xué)習(xí),關(guān)于8255和8254相應(yīng)的程序控制字進行了理解與掌握,基本熟悉了其相關(guān)的用法,在把理論知識用在了實際問題的解答之中,即進一步學(xué)會了怎么將理論與實踐結(jié)合起來解決問題。雖然,認認真真的看書找資料,但還是會在設(shè)計過程中遇到一些問題,但在老師是指導(dǎo)下,問題一個一個的解決,知識和動手能力再一點一點的增加,相信只有把知識應(yīng)用到實際中才算是真正的學(xué)習(xí)知識。八、匯編程序代碼D8255_MODEEQU0C003HD8255_B_DUEQU0C001HD8254_MODEEQU0C063HD8254_COUTEQU0C060HNAME DZYYBFPAGE 50,70DATA1 SEGMENTFREQ1DW247,247,277,311,311,330,330,311,311,277DW277,311,277,247,466,247,415,415,247,247DW277,311,311,330,330,311,311,370,415,370DW311,277,247,277,247,330,370,415,370,330DW247,247,311,311,330,311,277,247,415,370,0,0TIME1DW50,25,25,50,50,50,50,25,100,50DW25,25,50,50,50,50,25,100,50,25DW25,50,50,50,50,50,50,25,50,50DW25,25,50,50,50,25,100,75,25,25DW25,25,25,25,25,25,100,50,50,25,0,0FREQ2DW265,294,330,262,262,294,330,262,330,349DW392,330,349,392,392,440,392,349,330,262DW392,440,392,349,330,262,294,196,262,294DW196,262,0TIME2DW50,50,100,100,100,100,100,50,50,100DW100,100,100,100,50,50,100,100,100,100DW100,100,50,50,100,100,100,100,100,50DW100,100,0,0FREQ3DW7DUP(330),392,262,294,330,4DUP(349)DW2DUP(330),330,294,262,294,392DW7DUP(330),392,262,294,330,4DUP(349)第8頁DW2DUP(330),392,392,349,294,262,0,0TIME3DW2DUP(25,25,50),4DUP(25),100TIME3DWDW2DUP(25,25,50),4DUP(25)DW2DUP(50),2DUP(25,25,50),4DUP(25),100DW2DUP(25,25,50),4DUP(25),100,0,0DATA1ENDSSTACK1SEGMENTPARASTACKDW100DUP(?)STACK1ENDSCODESEGMENTASSUMEASSUMECS:CODE,DS:DATA1SS:STACK1START:MOVAX,DATA1MOVDS,AXMOVAX,0MOVSI,AXMOVDX,D8255_MODEMOVAL,10000010B;B端口方式0輸人OUTDX,ALMOVDX,D8254_MODE;連接8253的控制端口MOVAL,00110110B;定義8253為通道0,方式3,OUTDX,AL;二進制,先讀低位/后讀高位MUSIC1:MOVCX,4HCIRCUL1:DECCXJZMUSIC2LEADI,FREQ1;取偏移地址LEABP,TIME1

L00P1:MOVAX,[DI];取時間偏移地址CMPAX,0JECIRCUL1CALLSPEAKERXORAX,AXMOVDX,D8255_B_DU;連接8255_B端口INAL,DX;從手動控制端讀入控制選擇信息MOVAH,0CMPAX,SI;判斷輸入的信息變化沒有,JZAAA1;沒變則表示沒有改變原來的選擇MOVSI,AXCMPAL,1H;判斷輸入的信息,JNZAAA2:選擇播放那首音樂JMPMUSIC1AAA2:CMPAL,2HJNZAAA3JMPMUSIC2AAA3:CMPAL,4HJNZAAA1JMPMUSIC3AAA1:ADDDI,2ADDBP,2JMPLOOP1MUSIC2:MOVCX,4HCIRCUL2:DECCXJZMUSIC3LEADI,FREQ2LEABP,TIME2LOOP2:MOVAX,[DI]

CMPAX,0JECIRCUL2CALLSPEAKERXORAX,AXMOVDX,D8255_B_DU;連接8255_B端口INAL,DX;從手動控制端讀入控制選擇信息MOVAH,0HCMPAX,SI;判斷輸入的信息變化沒有,沒變JZAAA6;則表示沒有改變原來的選擇MOVSI,AXCMPAL,1H;判斷輸入的信息,選擇播放那首音樂JNZAAA4JMPMUSIC1AAA4:CMPAL,2HJNZAAA5JMPMUSIC2AAA5:CMPAL,4HJNZAAA6JMPMUSIC3AAA6:ADDDI,2ADDBP,2JMPLOOP2MUSIC3:MOVCX,4HCIRCUL3:DECCXJNZLOOOPCALLBREAKJMPMUSIC1LOOOP:LEADI,FREQ3;取偏移地址

LEABP,TIME3;取時間偏移地址L00P3:MOVAX,[D

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論