課程設(shè)計(jì)電子音樂播放器-完整版_第1頁
課程設(shè)計(jì)電子音樂播放器-完整版_第2頁
課程設(shè)計(jì)電子音樂播放器-完整版_第3頁
課程設(shè)計(jì)電子音樂播放器-完整版_第4頁
課程設(shè)計(jì)電子音樂播放器-完整版_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上目 錄1課程設(shè)計(jì)題目 12課程設(shè)計(jì)任務(wù)及要求13總體方案與設(shè)計(jì)說明14硬件電路設(shè)計(jì)及描述35軟件設(shè)計(jì)流程及描述76源程序代碼 97系統(tǒng)調(diào)試108結(jié)論與說明119課程設(shè)計(jì)體會(huì)1110參考文獻(xiàn)11專心-專注-專業(yè)一課程設(shè)計(jì)題目電子音樂播放器二課程設(shè)計(jì)任務(wù)及要求設(shè)計(jì)要求:利用8253作為音階頻率發(fā)生器,應(yīng)先對(duì)一段音樂進(jìn)行編碼后存入音符表,并建立好音階表(只建立一個(gè)8度即可,音階表見附錄),音符長(zhǎng)度不能少于60個(gè),連續(xù)播放3遍后停止。三總體方案與設(shè)計(jì)說明3.1音階頻率表音階頻率(HZ) 12472277331143305370641574661494 表3.1音階和頻率對(duì)應(yīng)關(guān)

2、系設(shè)計(jì)程序時(shí),數(shù)據(jù)段設(shè)置兩張“表”。一張是頻率表,將與音符對(duì)應(yīng)的頻率值依次寫入表中,另一張是時(shí)間表,依次存放每個(gè)音符的單位時(shí)間。當(dāng)然,頻率表和時(shí)間表的表項(xiàng)要一一對(duì)應(yīng),不能錯(cuò)位,頻率表最后一個(gè)表項(xiàng)為0,作為重復(fù)演唱或停止演唱的標(biāo)志。在接通揚(yáng)聲器的情況下,依次取出頻率表中的頻率值,轉(zhuǎn)換成計(jì)數(shù)初值寫入計(jì)數(shù)器,依次取出時(shí)間表中的單位時(shí)間和調(diào)試參數(shù)N相乘,然后再調(diào)用延時(shí)子程序即可得到延時(shí)時(shí)間,也就是音符演奏時(shí)間。61端口第1位與門3.2主機(jī)揚(yáng)聲器電路圖61H端口第0位揚(yáng)聲器放大器8253計(jì)時(shí)器 計(jì)數(shù)值(地址42H)先送低位再送高位控制字(地址43H)主機(jī)揚(yáng)聲器電路圖3.2 從圖中可以看出,PC機(jī)發(fā)聲系統(tǒng)

3、以8253為核心。系統(tǒng)初始化時(shí),8253工作在“方波發(fā)生器”方式,初值為二進(jìn)制數(shù),寫入順序?yàn)橄鹊秃蟾撸?jīng)過簡(jiǎn)單濾波以后,送至揚(yáng)聲器。改變計(jì)時(shí)器的初值就可以使揚(yáng)聲器發(fā)出不同頻率的音響。3.3設(shè)計(jì)總框圖驅(qū)動(dòng)總線連接揚(yáng)聲器可編程計(jì)時(shí)器80838086CPU總線連接可編程并行接口8255控制連接控制開關(guān)設(shè)計(jì)總框圖3.33.4 電路連接CLK0 8253時(shí)鐘信號(hào)GATE0OUT0CS開關(guān)(置高電平)音響200-207A0A1電路連接圖3.4四硬件電路設(shè)計(jì)及描述(含所需器件、硬件原理圖)4.1 芯片介紹8253可編程定時(shí)/計(jì)數(shù)器是Intel公司生產(chǎn)的通用外圍芯片之一,有3個(gè)獨(dú)立的十六位計(jì)數(shù)器,技術(shù)頻率范圍

4、為02MHZ,它所有的技術(shù)方式和操作方式都通過編程控制。8253的功能用途是:(1) 延時(shí)中斷(2) 可編程頻率發(fā)生器VCCWRRDCSA1A0CLK2OUT2GATE2CLK1GATE1OUT1D7D6D5D4D3D2D1D0CLK0OUT0GATE0GND2423222120191817161514131234567891011128253A(3) 事件計(jì)數(shù)器(4) 二進(jìn)倍頻器(5) 實(shí)時(shí)時(shí)鐘(6) 數(shù)字單穩(wěn)(7) 復(fù)雜的電機(jī)控制器8253有六種工作方式:(1) 方式0:計(jì)數(shù)結(jié)束中斷(2) 方式1:可編程頻率發(fā)生器(3) 方式2:頻率發(fā)生器(4) 方式3:方波頻率發(fā)生器(5) 方式4:軟件

5、觸發(fā)的選通信號(hào)(6) 方式5:硬件觸發(fā)的選通信號(hào) 圖4.18253引腳圖如圖4.1所示,各引腳功能如下。D7D0八條雙向數(shù)據(jù)線;WR(低電平有效)寫輸入信號(hào);RD(低電平有效)讀輸入信號(hào);CS(低電平有效)片選輸入信號(hào);A0、A1片內(nèi)寄存器地址輸入信號(hào);CLK計(jì)數(shù)輸入,用于輸入定時(shí)基準(zhǔn)脈沖或計(jì)數(shù)脈沖;OUT輸出信號(hào),以相應(yīng)的電平指示計(jì)數(shù)的完成,或輸出脈沖波形;GATE選通輸入(門控輸入),用于啟動(dòng)或禁止計(jì)數(shù)器的操作,以使計(jì)數(shù)器和計(jì)測(cè)對(duì)象同步。4.2 工作方式(1) 方式0:計(jì)數(shù)結(jié)束產(chǎn)生中斷方式 當(dāng)寫入控制字后,OUT變?yōu)榈碗娖剑?dāng)寫入初值后立即開始計(jì)數(shù),當(dāng)計(jì)數(shù)結(jié)束時(shí),變成高電平。 (2) 方式

6、1:可編程單次脈沖方式 當(dāng)初值裝入后且GATE由低變高時(shí),OUT變?yōu)榈碗娖剑?jì)數(shù)結(jié)束變?yōu)楦唠娖健?(3) 方式2:頻率發(fā)生器方式 當(dāng)初值裝入時(shí),OUT變?yōu)楦撸挥?jì)數(shù)結(jié)束,OUT變?yōu)榈汀T摲绞较氯绻?jì)數(shù)未結(jié)束,但GATE為低時(shí),立即停止計(jì)數(shù),強(qiáng)制OUT變高,當(dāng)GATE再變高時(shí),便啟動(dòng)一次新的計(jì)數(shù)周期。 (4) 方式3:方波發(fā)生器當(dāng)裝入初值后,在GATE上升沿啟動(dòng)計(jì)數(shù),OUT 輸出高電平; 當(dāng)計(jì)數(shù)完成一半時(shí),OUT輸出低電平。方式3與方式2的工作方式類似,也是在初始化完成后能重復(fù)循環(huán)計(jì)數(shù),只是輸出的波形不同。<1> 計(jì)數(shù)過程當(dāng)把方式3的控制字寫入控制字寄存器后,輸出端OUT變成高電平,作

7、為初始電平。再將計(jì)數(shù)初值寫入計(jì)數(shù)初值寄存器CR中,再經(jīng)過一個(gè)時(shí)鐘周期,計(jì)數(shù)初值被移入計(jì)數(shù)執(zhí)行單元CE中,從下一個(gè)時(shí)鐘脈沖開始作減1 計(jì)數(shù),方式3的計(jì)數(shù)過程分為兩種情況:第一種情況:計(jì)數(shù)初值為偶數(shù),當(dāng)作減1計(jì)數(shù)減到N/2時(shí),輸出端OUT端變成低電平,減到0時(shí),輸出端OUT變成高電平,并重新從初值開始新的計(jì)數(shù)過程。若GATE為高電平,則一直重復(fù)同樣的計(jì)數(shù)過程。可見,輸出端OUT輸出連續(xù)的方波,故稱方波發(fā)生器。第二種情況:計(jì)數(shù)初值為奇數(shù),當(dāng)作減1計(jì)數(shù)減到(N+1)/2以后,輸出端OUT變成低電平,減到0時(shí),輸出端OUT又變成高電平。并重新從初值開始新的計(jì)數(shù)過程。這時(shí)輸出端的波形為連續(xù)的近似方波。&l

8、t;2> 門控信號(hào)的影響工作在方式3時(shí),門控信號(hào)GATE的功能與工作方式2一樣,即GATE 為高電平時(shí),允許計(jì)數(shù);GATE為低電平時(shí)停止計(jì)數(shù)。GATE引腳上的信號(hào)從低電平跳到高電平時(shí),將會(huì)重新把計(jì)數(shù)初值寄存器CR中的內(nèi)容移入計(jì)數(shù)執(zhí)行單元CE中,并以新裝入的值重新開始計(jì)數(shù)。<3> 新的計(jì)數(shù)初值對(duì)計(jì)數(shù)過程的影響如果在計(jì)數(shù)過程中寫入新的初值,而GATE信號(hào)一直維持高電平,則新的初值不會(huì)影響當(dāng)前的計(jì)數(shù)過程,只有在計(jì)數(shù)結(jié)束后的下一個(gè)計(jì)數(shù)周期,才按新的初值計(jì)數(shù)。若寫入新的初值后,遇到門控信號(hào)的上升沿,則結(jié)束現(xiàn)行的計(jì)數(shù)過程,從下一個(gè)時(shí)鐘脈沖下降沿開始按新的計(jì)數(shù)初值進(jìn)行計(jì)數(shù)。可見,工作在方式

9、3時(shí),當(dāng)計(jì)數(shù)初值為偶數(shù),OUT端輸出連續(xù)的標(biāo)準(zhǔn)方波;當(dāng)計(jì)數(shù)初值為奇數(shù),在每個(gè)計(jì)數(shù)周期內(nèi),有(N+1)/2個(gè)周期輸出高電平,(N-1)/2個(gè)時(shí)鐘周期輸出低電平,OUT端輸出連續(xù)的近似的方波。4.3 控制字控制字圖4.34.4所需器件1.定時(shí)/計(jì)數(shù)器8253A2.揚(yáng)聲器和喇叭驅(qū)動(dòng)模塊3.頻率發(fā)生芯片74LS393五軟件設(shè)計(jì)流程(模塊流程圖)及描述通過給8253定時(shí)器裝入不同的計(jì)數(shù)值,可以使其輸出不同頻率的波形。當(dāng)與門打開后,經(jīng)過放大器放大的作用,便可驅(qū)動(dòng)揚(yáng)聲器發(fā)出不同頻率的音調(diào),要使該音調(diào)的聲音持續(xù)一段時(shí)間,只要插入一段延時(shí)程序,之后再將揚(yáng)聲器(關(guān)閉與門)即可。music子程序是音樂子程序,SI指

10、向曲中的頻率,BP指向曲中的時(shí)間節(jié)拍。從SI的指向的音節(jié)表中取一個(gè)頻率,只要不是0,即有效就再讀取時(shí)間,然后調(diào)用speaker子程序,計(jì)算計(jì)數(shù)初值送入計(jì)數(shù)器,產(chǎn)生各種頻率信號(hào),再送至揚(yáng)聲器,根據(jù)所取的時(shí)間調(diào)用若干次延時(shí)子程序。這段時(shí)間揚(yáng)聲器就發(fā)出該頻率的聲音,延時(shí)結(jié)束,再修改SI和BP,指向下一個(gè)頻率,重復(fù)上面的工作。播放三次音樂后自動(dòng)停止。開始調(diào)用music程序曲各音符頻率設(shè)置曲各音符時(shí)間設(shè)置讀取頻率freqY頻率=0N調(diào)用speaker程序讀取時(shí)間節(jié)拍time計(jì)算機(jī)計(jì)數(shù)次數(shù)送計(jì)算器,產(chǎn)生頻率信號(hào),再送至揚(yáng)聲器發(fā)出聲音延時(shí)time結(jié)束程序流程圖5.1六源程序代碼(要有注釋)CODE SEGM

11、ENTASSUME CS:CODEORG 1000H ;首地址START:JMP music ;跳轉(zhuǎn)進(jìn)musicmusic: lea si,freq ;取freq的偏移地址 lea bp,time ;取time的偏移地址Lop: mov di,si ;把si的內(nèi)容放到dicmp di,0 ;0用于判斷是否結(jié)束歌曲je fin ;music結(jié)束后轉(zhuǎn)到fin關(guān)閉揚(yáng)聲器mov bx,bp ;把bp的內(nèi)容放到bxcall speakeradd SI,2 ;取下一頻率值add BP,2 ;取下一時(shí)間節(jié)拍值jmp Lop ;跳回lop循環(huán)fin: mov al,ah ;寫回?fù)P聲器端口61H out 61h

12、,al;_-音樂子程序-_speakerprocpush ax ;保存堆棧push bxpush cxpush dxpush di;_初始化部分_ mov al,B ;對(duì)計(jì)數(shù)器寫控制字,選計(jì)數(shù)器2,先寫低8位,后寫高8位。out 43h,al ;方式3(方波發(fā)生器)、雙字節(jié)寫和二進(jìn)制計(jì)數(shù)方式寫到控制口mov dx,00h ;設(shè)置被除數(shù)mov ax,5000div di ; (DI)=頻率,商AL,余數(shù)AHout 42h,al ;先送LSB 最低有效位,42H為8253的通道2端口mov al,ahout 42h,al ;后送MSB 最高有效位wait1:mov cx,3 ;設(shè)循環(huán)次數(shù)3dela

13、y1:loop delay1dec bx ;循環(huán)持續(xù)bx次,即傳進(jìn)來的節(jié)拍時(shí)間jnz wait1;pop di ;恢復(fù)堆棧pop dxpop cxpop bxpop axretspeakerendp;_歌曲樂譜_;歌曲1:兩只老虎freq dw 2 dup(262,294,330,262) dw 2 dup(330,349,392) dw 2 dup(392,440,392,349,330,262) dw 2 dup(294,196,262),10 dup(-1), 0 ;歌曲頻率time dw 8 dup (10000) dw 2 dup (10000,10000,20000) dw 12

14、dup (9000) dw 6 dup(18000) ;歌曲時(shí)間節(jié)拍值 dw 10 dup(10000)CODE ENDSEND START七系統(tǒng)調(diào)試(含軟、硬件調(diào)試時(shí)所出現(xiàn)的問題、解決方法)把程序輸入PC機(jī)后,保存為.asm文件。啟用HK88系統(tǒng): 建立匯編源程序. 建立連接。 編譯為目標(biāo)文件 調(diào)試。 不通過,重新修改(語句錯(cuò)誤、音調(diào)頻率不準(zhǔn)、音調(diào)節(jié)拍不符合) 重新修改、調(diào)試。 正確運(yùn)行。八結(jié)論與說明(使用或操作說明)硬件連接: 定時(shí)/計(jì)數(shù)器8253A芯片模塊的CLK2接時(shí)鐘頻率選擇模塊74LS393的T7端口,分頻器的頻率源為5000HZ。 定時(shí)/計(jì)數(shù)器8253A芯片模塊的GATE2接5V

15、,提供高電平。 定時(shí)/計(jì)數(shù)器8253A芯片模塊的OUT2 接喇叭驅(qū)動(dòng)驅(qū)動(dòng)模塊的SIN 端口。 喇叭驅(qū)動(dòng)驅(qū)動(dòng)模塊的J5插座接揚(yáng)聲器的J5插座。8253A的CLK2接分頻器74LS393(右上方)的T7插孔,分頻器的頻率源為5000。九課程設(shè)計(jì)體會(huì)經(jīng)過一個(gè)星期的課程設(shè)計(jì),完成任務(wù)的效果和預(yù)想中有很大的出入,雖然中間遇到了一些問題,但經(jīng)過我們的努力,還是把問題給解決了。這次課程設(shè)計(jì)對(duì)我綜合運(yùn)用所學(xué)知識(shí)的能力的提高有不小的幫助,之前做的實(shí)驗(yàn)都是很簡(jiǎn)單的編程,跟硬件結(jié)合也沒有這么復(fù)雜,實(shí)現(xiàn)的功能都比較簡(jiǎn)單,可是這次要實(shí)現(xiàn)的功能相對(duì)來說比較復(fù)雜,要求掌握的知識(shí)比較全面。經(jīng)過這次的課程設(shè)計(jì),再一次的印證了理論來源于實(shí)踐,而實(shí)踐又能升華理論這一個(gè)觀點(diǎn)。 首先,要實(shí)現(xiàn)題目要求的功能并有所創(chuàng)新,我們必須全心地投入其中,養(yǎng)成一種敢于鉆研敢于創(chuàng)新的習(xí)慣。在把課程要求實(shí)現(xiàn)到實(shí)際中來的過程中,首先必須清楚明白地了解幾個(gè)參考程序的每一行的意思,這就需要敢于靜心鉆研。為了把使得程序更加完整,就必須進(jìn)行創(chuàng)新,這就需要敢于創(chuàng)新。 其次,通過課程設(shè)計(jì),讓我在課本的基礎(chǔ)上,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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)論