北郵數(shù)字邏輯課程設(shè)計(jì)簡(jiǎn)易電子琴_第1頁
北郵數(shù)字邏輯課程設(shè)計(jì)簡(jiǎn)易電子琴_第2頁
北郵數(shù)字邏輯課程設(shè)計(jì)簡(jiǎn)易電子琴_第3頁
北郵數(shù)字邏輯課程設(shè)計(jì)簡(jiǎn)易電子琴_第4頁
北郵數(shù)字邏輯課程設(shè)計(jì)簡(jiǎn)易電子琴_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、簡(jiǎn)易電子琴實(shí)驗(yàn)報(bào)告綜合設(shè)計(jì): 程序編寫: 實(shí)驗(yàn)報(bào)告撰寫:北京郵電大學(xué) 計(jì)算機(jī)學(xué)院 某人 一實(shí)驗(yàn)?zāi)康?.掌握較復(fù)雜邏輯的設(shè)計(jì)和調(diào)試。2.掌握用VHDL語言設(shè)計(jì)數(shù)字邏輯電路。3.掌握ispLEVER軟件的使用方法。4.掌握ISP器件的使用。5.用途: 有電子琴的基本功能,可彈奏出簡(jiǎn)單的樂曲。二實(shí)驗(yàn)器材1.在系統(tǒng)可編程邏輯器件1032E2.示波器3.邏輯測(cè)試筆4.TEC-5實(shí)驗(yàn)系統(tǒng)三實(shí)驗(yàn)內(nèi)容設(shè)計(jì)一個(gè)簡(jiǎn)易電子琴,有兩種模式,既可以音階彈奏,也可以自動(dòng)播放樂曲。要求音階彈奏的時(shí)候,可以彈奏高音低音一共14個(gè)不同音符,自動(dòng)播放樂曲的時(shí)候,要求可以按一定節(jié)奏自動(dòng)播放一首預(yù)存在系統(tǒng)中的樂曲。四實(shí)驗(yàn)設(shè)計(jì)原理從試

2、驗(yàn)系統(tǒng)外部接入一個(gè)時(shí)鐘信號(hào),對(duì)時(shí)鐘信號(hào)進(jìn)行分頻,可以得到不同分頻的脈沖信號(hào)。當(dāng)這個(gè)分頻值設(shè)定為一定的數(shù)值時(shí),就可以使試驗(yàn)系統(tǒng)的喇叭發(fā)出不同的音符,從而完成音階演奏。自動(dòng)演奏時(shí),除了對(duì)外部時(shí)鐘進(jìn)行分頻得到不同的音符外,還需要通過時(shí)鐘信號(hào)對(duì)節(jié)拍進(jìn)行控制,設(shè)置該音樂最短的音符為基本單位,一步一步往后執(zhí)行,根據(jù)某個(gè)音符的節(jié)拍數(shù)來確定執(zhí)行時(shí)間,從而可以按照節(jié)奏將一段音樂自動(dòng)演奏出來。五設(shè)計(jì)方案1.一共有14個(gè)琴鍵,表示中音的1-7到低音的1-7,按照電子琴的排列布局來安排琴鍵位置。2根據(jù)不同音符的頻率,用多模計(jì)數(shù)器對(duì)時(shí)鐘信號(hào)進(jìn)行分頻,得到特定的脈沖信號(hào),為了使信號(hào)穩(wěn)定,需要對(duì)其進(jìn)行翻轉(zhuǎn)得到2分頻信號(hào)再輸

3、出。3.綜合原理圖4.外部輸入50kHz的時(shí)鐘信號(hào),根據(jù)下表用多模計(jì)數(shù)器對(duì)時(shí)鐘信號(hào)進(jìn)行分頻,得到分頻系數(shù)。低音部分音符 (C)1234567頻率(Hz)262294330349392440494模191170151143128114101高音部分音符 (C)1234567頻率(Hz)5205816586947818931000模96867672645650六程序?qū)崿F(xiàn)*實(shí)體部分*library ieee;use ieee.std_logic_1164.all;use ;use ;entity Orgen is port ( moderm:in std_logic;-模式選擇,0為音階自演奏模式,

4、1為自動(dòng)播放模式 clk:in std_logic;-時(shí)鐘信號(hào) Index:in std_logic_vector(13 downto 0);-琴鍵選擇信號(hào),1表示選擇摸個(gè)琴鍵,共有14個(gè)琴鍵,可以選擇14個(gè)音,分別是低音1-7和中音1-7 Code:out std_logic_vector(6 downto 0);-七段發(fā)光二極管編碼,用于顯示彈奏的音符 high:out std_logic;-如果是中音,小燈亮,反之不亮 tone0:inout integer range 0 to 2047;-分頻系數(shù) result:inout std_logic-輸出音頻信號(hào) );end Orgen;*

5、結(jié)構(gòu)體部分*architecture Orgen_Player of Orgen is-程序使用的是50kHz的時(shí)鐘信號(hào)begin Search:process(Index,clk,moderm)-Search進(jìn)程,根據(jù)琴鍵選擇信號(hào)得到不同的分頻系數(shù) variable step:integer range 0 to 2000; variable count2:integer range 0 to 2000;begin*音階演奏模式部分* if Moderm=0 then-手動(dòng)音階演奏模式 case Index is when 00000000000001= tone0=96;Code=0000

6、110;high tone0=85;Code=1011011;high tone0=76;Code=1001111;high tone0=72;Code=1100110;high tone0=64;Code=1101101;high tone0=57;Code=1111101;high tone0=51;Code=0000111;high tone0=48;Code=0000110;high tone0=43;Code=1011011;high tone0=38;Code=1001111;high tone0=0;Code=0000000;high=0;-根據(jù)不同的琴鍵信號(hào),分配了不同的分頻系

7、數(shù),為不同音名的發(fā)光二極管編碼,同時(shí)調(diào)整高低音顯示信號(hào) end case; end if; *自動(dòng)演奏部分* if (moderm=1) and (clkevent and clk=1) then-自動(dòng)演奏模式 -tone0=0;-從手動(dòng)音階模式切換到自動(dòng)演奏模式,首先將tone0變?yōu)?,防止影響 if count2 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0=57; step:=step+1;-step不同,表示樂曲演奏到不同的位置,賦予不同的分

8、頻系數(shù),然后step+1 end case; end if; end if;end process;*發(fā)生進(jìn)程,控制喇叭發(fā)聲* Made_Code:process(clk)-發(fā)聲進(jìn)程,發(fā)出不同的音頻 variable count1:integer range 0 to 2000; begin if clkevent and clk=1 then if count1tone0 then count1:=count1+1;-事先查好每個(gè)音名的頻率,根據(jù)音頻系數(shù)進(jìn)行分頻,得到是正確頻率兩倍的音 else count1:=0; result=not result;-對(duì)得到的音頻再進(jìn)行2分頻,得到穩(wěn)定的

9、正確的音頻信號(hào) end if; end if; end process; end Orgen_Player;七基于QuartusII9.0的仿真實(shí)現(xiàn)1.仿真電路圖2.仿真波形圖八基于TEC-5試驗(yàn)系統(tǒng)的實(shí)現(xiàn)效果1.音階模式下,可以根據(jù)琴鍵的輸入演奏低音1-7和中音1-7一共14個(gè)音符。2.自動(dòng)演奏模式下,可以自動(dòng)演奏事先存入的一段音樂閃爍小星星的片段。3.演奏不同的音符時(shí),數(shù)碼顯示管會(huì)顯示不同的音符,同時(shí)用一個(gè)信號(hào)等表示是中音還是低音。九實(shí)驗(yàn)中出現(xiàn)的問題以及解決方法1.由于分頻信號(hào)采用tone0表示,當(dāng)模式在手動(dòng)音階演奏模式和自動(dòng)演奏模式之間切換時(shí),由tone0的影響,有時(shí)會(huì)導(dǎo)致自動(dòng)演奏不成功

10、或者音階演奏出現(xiàn)雜音,這是一個(gè)相對(duì)比較難處理的問題。后來經(jīng)過多次嘗試,加了一個(gè)判斷的標(biāo)志位,當(dāng)在不同模式之間切換的時(shí)候,首先對(duì)原先的tone0清零,消除原先模式帶來的影響。最后取得了不錯(cuò)的切換效果。2.剛開始調(diào)試硬件的時(shí)候,琴鍵并不靈敏,有時(shí)候在高電平的時(shí)候發(fā)聲有時(shí)候卻在低電平的時(shí)候發(fā)聲,出現(xiàn)了很大的邏輯錯(cuò)誤。原先以為是程序的邏輯有問題,但是在Quartus上作了仿真卻沒有發(fā)現(xiàn)太大的問題。經(jīng)過討論,覺得是硬件的接觸問題,將邏輯輸入信號(hào)改由脈沖同步輸入,使輸入信號(hào)更加穩(wěn)定,使演奏信號(hào)穩(wěn)定下來。3.調(diào)試硬件的時(shí)候,演奏到中音的時(shí)候,小燈泡卻始終不亮,首先檢查了代碼,沒發(fā)現(xiàn)有太明顯的邏輯不合理現(xiàn)象。于是用邏輯筆去測(cè)試輸入輸出管腳的電平,發(fā)現(xiàn)無論什么時(shí)候管腳都是輸出低電平,可能是芯片內(nèi)部出了問題。于是我們重新固定好管腳,重新將程序燒入,終于使小燈泡在中音演奏的時(shí)候發(fā)光。十實(shí)驗(yàn)收獲與總結(jié)1.簡(jiǎn)易電子琴雖然看起來比較簡(jiǎn)單,但是要真正實(shí)現(xiàn)還是要花一番功夫,計(jì)算分頻系數(shù),連線等都是細(xì)致的工作,這更加考驗(yàn)人的耐心和細(xì)心。2.由于數(shù)字邏輯這門課是在大二上學(xué)期開設(shè)的,已經(jīng)

溫馨提示

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