FPGA設(shè)計(jì)一個(gè)樂曲自動(dòng)演奏控制器_第1頁
FPGA設(shè)計(jì)一個(gè)樂曲自動(dòng)演奏控制器_第2頁
FPGA設(shè)計(jì)一個(gè)樂曲自動(dòng)演奏控制器_第3頁
FPGA設(shè)計(jì)一個(gè)樂曲自動(dòng)演奏控制器_第4頁
FPGA設(shè)計(jì)一個(gè)樂曲自動(dòng)演奏控制器_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、;.樂曲自動(dòng)演奏器一、 功能介紹使用FPGA設(shè)計(jì)一個(gè)樂曲自動(dòng)演奏控制器,將源程序下載至FPGA器件中,實(shí)現(xiàn)樂曲自動(dòng)演奏。(本設(shè)計(jì)的樂曲是友誼天長(zhǎng)地久的部分音樂)樂曲演奏的原理是:由于組成樂曲的每個(gè)音符的頻率值(音調(diào))及其持續(xù)時(shí)間(音長(zhǎng))是樂曲演奏的2個(gè)基本數(shù)據(jù),因此需要控制輸出到揚(yáng)聲器的激勵(lì)信號(hào)的頻率高低和該頻率信號(hào)持續(xù)的時(shí)間。頻率的高低決定了音調(diào)的高低,而樂曲的簡(jiǎn)譜與各音名的頻率之間也有固定的對(duì)應(yīng)關(guān)系。所有不同頻率的信號(hào)都是從同一基準(zhǔn)頻率分頻而得來的,由于音階頻率多為非整數(shù),而分頻系數(shù)又不能為小數(shù),故必須將計(jì)算的到的分頻數(shù)進(jìn)行四舍五入取整,基準(zhǔn)頻率和分頻系數(shù)應(yīng)綜合考慮加以選擇,從而保證音樂不

2、會(huì)走調(diào)。如在4MHz時(shí)鐘下,中音1(對(duì)應(yīng)的頻率值為523.3Hz)的分頻系數(shù)應(yīng)該為:4000000/(2*523.3)=0xd3821,這樣只需對(duì)系統(tǒng)時(shí)鐘進(jìn)行3821次分頻即可得到所要的中音1。至于其他音符,同樣可求出對(duì)應(yīng)的分頻系數(shù),這樣利用程序可以很輕松地得到對(duì)應(yīng)的樂聲。此外,在程序中設(shè)置了一個(gè)狀態(tài)機(jī),每250ms改變一個(gè)狀態(tài)(即一個(gè)節(jié)拍),組成樂曲的每個(gè)音符的頻率值(音調(diào))相對(duì)應(yīng)于狀態(tài)機(jī)的每一個(gè)狀態(tài)。只要讓狀態(tài)機(jī)的狀態(tài)按順序轉(zhuǎn)換,就可以自動(dòng)播放音樂了。友誼天長(zhǎng)地久樂譜見下表(注:N一拍;N兩拍;N四拍;N八拍;N為樂譜。由于芯片存儲(chǔ)容量太小,源程序只加入樂譜的一部分音符)友誼天長(zhǎng)地久樂譜0

3、 5 | 1. 1 1 3 | 2. 1 2 3 | 1. 1 3 5 | 6. 6 | 5. 3 3 1 | 2. 1 2 3 | 1. 6 6 5 | 1. 6 | 5. 3 3 1 | 2. 1 2 6 | 5 . 3 3 5 | 6. 1 | 5. 3 3 1 | 2. 1 2 3 | 1. 6 6 5 | 1. 0 ¶ 簡(jiǎn)譜中的音名與頻率的關(guān)系音名頻率/Hz分頻數(shù)低音539216d5102低音644016d4545中音1523.516d3821中音2587.316d3373中音3659.316d3033中音578416d2551高音588016d2273高音6176016d

4、1913二、 硬件設(shè)計(jì)(電路圖、原器件清單)實(shí)物元件清單:印刷電路板一個(gè);電阻(10K的10個(gè),200的8個(gè),1K的14個(gè),50的1個(gè));三極管3個(gè);發(fā)光二極管(紅黃綠各三個(gè));蜂鳴器1個(gè);8段顯示器2個(gè);按鍵4個(gè);4M晶振1個(gè);電容(104的6個(gè),10的1個(gè));電源線1個(gè);芯片底座1個(gè);電路圖:功率放大顯示部分:核心控制部分:三、 軟件設(shè)計(jì)(流程圖、源程序)流程圖一個(gè)完整的EDA設(shè)計(jì)流程既是自頂向下設(shè)計(jì)方法的具體實(shí)施途徑,也是EDA工具軟件本身的組成結(jié)構(gòu)。其大致的設(shè)計(jì)流程包括:設(shè)計(jì)輸入、綜合、適配、時(shí)序仿真和功能仿真、編程下載、硬件測(cè)試的步驟。對(duì)于目前流行的EDA工具軟件,圖1-1的設(shè)計(jì)流程

5、具有一般性3。圖1-1 應(yīng)用FPGA/CPLD的EDA開發(fā)設(shè)計(jì)流程框圖各部分源程序及說明module song(clk,beep); /模塊名稱song/I/O口說明input clk; /系統(tǒng)時(shí)鐘4MHzoutput beep; /蜂鳴器輸出端/內(nèi)部寄存器reg beep_r; /寄存器reg3:0 state; /樂譜狀態(tài)機(jī)reg15:0count,count_end;reg17:0count1;/參數(shù)-分頻系數(shù)parameter L_5=16'd5102, /低音5L_6=16'd4545, /低音6M_1=16'd3821, /中音1M_2=16'd34

6、05, /中音2M_3=16'd3033, /中音3M_5=16'd2551, /中音5M_6=16'd2273, /中音6H_1=16 'h1913; /高音6parameter TIME=1000000; /控制每個(gè)音的長(zhǎng)短(250ms)assign beep= beep_r; /輸出音樂/上升沿脈沖計(jì)數(shù)always(posedge clk)begin count<=count+1'b1; /計(jì)數(shù)器加1 if(count=count_end) begin count<=16'h0; /計(jì)數(shù)器取0 beep_r<=! beep

7、_r; /輸出取反 endend/上升沿脈沖計(jì)數(shù)always(posedge clk)begin if(count1<TIME) count1= count1+1'b1; else begin count1=18'd0; if(state=4'd15) state= 4'd0; else state= state+1'b1; case(state) 4'd0, 4'd1: count_end=L_5; 4'd2, 4'd3, 4'd4, 4'd5, 4'd6, 4'd7, 4'

8、d8 : count_end=M_1; 4'd9, 4'd10: count_end=M_3; 4'd11, 4'd12, 4'd13, 4'd14: count_end=M_2; 4'd15: count_end=M_1; default:count_end=16'hffff; endcase endendEndmodule引腳鎖定方法信號(hào)引腳beepPin-12clkPin-43四、 設(shè)計(jì)總結(jié)經(jīng)過我們一組人的共同努力,我們的課程設(shè)計(jì)完成。在此期間,我們收獲頗豐。首先這是既制作收音機(jī)后的又一次焊接印刷電路板的機(jī)會(huì),利于提高我們的

9、對(duì)器件的辨別、理解能力,還有自己的動(dòng)手能力。焊好電路板后,我覺得挺麻煩的就是程序的調(diào)試。剛開始的調(diào)試是在實(shí)驗(yàn)室的試驗(yàn)箱上,一切運(yùn)行正常,但轉(zhuǎn)到我們需要用的芯片上就不能出現(xiàn)我們想要的結(jié)果。后來又查資料,了解到芯片的時(shí)鐘的頻率不同,然后我們就開始轉(zhuǎn)換頻率再計(jì)算,同時(shí)把原來的程序根據(jù)要求的頻率進(jìn)行修改,但還是不能顯示出流暢的音樂。最后,當(dāng)我們想放棄這個(gè)設(shè)計(jì)換其他程序設(shè)計(jì)的時(shí)候,我們想起可能是蜂鳴器本身的問題。然后,我們找到以前制作收音機(jī)的喇叭,接上后效果還是挺明顯的,聽到音樂的那一刻確實(shí)挺有成功感。其次,也是對(duì)EDA這門課的深入理解與應(yīng)用。如果說剛開始我還不知道EDA是干嘛的,但現(xiàn)在我可以說寫一下簡(jiǎn)單的程序,看懂一些復(fù)雜的程序,然后就是提高了對(duì)Quart

溫馨提示

  • 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. 人人文庫網(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)論