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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

12、,al;_-音樂子程序-_speakerprocpush ax ;保存堆棧push bxpush cxpush dxpush di;_初始化部分_ mov al,B ;對計數(shù)器寫控制字,選計數(shù)器2,先寫低8位,后寫高8位。out 43h,al ;方式3(方波發(fā)生器)、雙字節(jié)寫和二進制計數(shù)方式寫到控制口mov dx,00h ;設置被除數(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 ;設循環(huán)次數(shù)3dela

13、y1:loop delay1dec bx ;循環(huán)持續(xù)bx次,即傳進來的節(jié)拍時間jnz wait1;pop di ;恢復堆棧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) ;歌曲時間節(jié)拍值 dw 10 dup(10000)CODE ENDSEND START七系統(tǒng)調試(含軟、硬件調試時所出現(xiàn)的問題、解決方法)把程序輸入PC機后,保存為.asm文件。啟用HK88系統(tǒng): 建立匯編源程序. 建立連接。 編譯為目標文件 調試。 不通過,重新修改(語句錯誤、音調頻率不準、音調節(jié)拍不符合) 重新修改、調試。 正確運行。八結論與說明(使用或操作說明)硬件連接: 定時/計數(shù)器8253A芯片模塊的CLK2接時鐘頻率選擇模塊74LS393的T7端口,分頻器的頻率源為5000HZ。 定時/計數(shù)器8253A芯片模塊的GATE2接5V

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

溫馨提示

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

最新文檔

評論

0/150

提交評論