【正文】
基于 CPLD 的 MIDI 音樂播放器設(shè)計 3 C P L D( E P M 5 7 0 T 1 4 4 C 5 )光 電 傳 感 器串 口彩 燈 閃 爍數(shù) 碼 管 顯 示蜂 鳴 器 圖 系統(tǒng)框圖 宜賓職業(yè)技術(shù)學(xué)院電子信息與控制工程系 基于 CPLD 的 MIDI 音樂播放器設(shè)計 4 3 硬件設(shè)計 本設(shè)計的主控芯片選用 CPLD,硬件電路由光電傳感器、蜂鳴器、數(shù)碼管顯示、彩燈閃爍及串口電路,由于串口電路選用 CPLD 的專用下載器( USB Blaster),所以在此不多做介紹。這種基于查找表的架構(gòu)在最小的 I/O 焊盤約束的空間內(nèi)提供了最多的邏輯容量。除這些典型的 CPLD 應(yīng)用之外, MAX II 器件還能滿足大量從前在 FPGA、ASSP 和標準邏輯器件中實現(xiàn)的低密度可編程邏輯需求。該芯片采用 TQFP 封裝,共 144 只管腳,可用 I/O是 116 個,如表 所示。 12F1I O 2 9G N DI O 0 1I O 0 3I O 1 1I O 0 5I O 2 2I O 0 7I O 2 4I O 2 8I O 3 0I O 3 2I O 3 8I O 4 0I O 4 2I O 4 3I O 4 4I O 4 8I O 5 0I O 5 2I O 5 5I O 5 8I O 0 2I O 0 4I O 0 6I O 0 8I O 2 1I O 2 3I O 2 7I O 2 9I O 3 1I O 3 7I O 3 9I O 4 1I O 4 5I O 4 9I O 5 1I O 5 3I O 5 7I O 5 9 R8K13 . 3 VI O 0 2I O 0 3I O 0 4I O 0 5I O 0 6I O 0 7I O 0 8C L K 0C L K 1I O 1 5I O 1 6I O 1 7I O 1 8I O 1 9I O 2 0I O 2 1I O 2 6I O 2 7I O 2 8I O 2 9I O 3 0I O 3 3I O 3 4I O 3 5I O 3 6I O 3 7I O 3 8I O 3 9I O 4 0I O 4 1I O 4 2I O 4 3I O 4 4I O 4 7I O 4 8I O 4 9I O 5 0I O 5 1I O 6 0 I O 6 1I O 6 2 I O 6 3I O 6 6 I O 6 7I O 6 8 I O 6 9I O 7 0 I O 7 1T M ST D OT C KT D IBANK 1IO2IO3IO4IO5IO6IO7IO8I O / G C L K 012I O / G C L K 114IO15IO16IO17IO18IO19IO20IO21IO26IO27IO28IO29IO30IO33IO34IO35IO36IO37IO38IO39IO40IO41IO42I O / D E V _ O E43I O / D E V _ C L R n44IO47IO48IO49IO50IO51U 7 AE P M 5 7 0 T 1 4 4 C 5T M S22T D I23T C K24T D O25U 7 CE P M 5 7 0 T 1 4 4 C 51 23 45 67 89 1011 1213 1415 1617 1819 2021 2223 2425 2627 2829 3031 3233 3435 3637 3839 4041 4243 4445 4647 4849 50J1H E A D E R 2 5 X 2I O 3 6 圖 蜂鳴器連接電路 宜賓職業(yè)技術(shù)學(xué)院電子信息與控制工程系 基于 CPLD 的 MIDI 音樂播放器設(shè)計 7 光電傳感器電路 光電傳感器電路(如圖 所示)對環(huán)境光線較敏感,一般用來檢測周圍環(huán)境的光線的亮度,觸發(fā) 控制器 或繼電器模塊等,模塊在環(huán)境光線亮度達不到設(shè)定閥值時, D0端輸出高電平,當外界環(huán)境光線亮度超過設(shè)定閥值時, D0 端輸出 低電平, DO 輸出端可以與 控制器的 I/O 口 直接相連,通過 控制器 來檢測高低電平,由此來檢測環(huán)境的光線亮度改變。 R 2 44 7 0 ΩR 2 34 7 0 ΩR 2 2 4 7 0 ΩR 2 1 4 7 0 ΩR 1 3 4 7 0 ΩR 2 0 4 7 0 ΩR 1 94 7 0 ΩR 1 84 7 0 ΩR 1 64 7 0 ΩR 1 54 7 0 ΩR 1 44 7 0 ΩR 1 74 7 0 ΩR14 7 0 ΩR24 7 0 ΩR34 7 0 ΩR44 7 0 ΩR54 7 0 ΩR64 7 0 ΩR74 7 0 ΩR84 7 0 ΩR94 7 0 ΩR 1 04 7 0 ΩR 1 14 7 0 ΩR 1 24 7 0 Ωabfcg deDPY a1b2c3d4e5f6g7dp8dp10 11D S 3abfcg deDPY a1b2c3d4e5f6g7dp8dp10 11D S 2abfcg deDPY a1b2c3d4e5f6g7dp8dp10 11D S 1123456789101112J2123456789101112J1+5D1D2D3D4D5D6P I N _ 3 7P I N _ 3 8P I N _ 3 9P I N _ 4 0P I N _ 4 1P I N _ 4 2 圖 數(shù)碼管顯示及彩燈閃爍電路 宜賓職業(yè)技術(shù)學(xué)院電子信息與控制工程系 基于 CPLD 的 MIDI 音樂播放器設(shè)計 8 4 軟件設(shè)計 設(shè)計從成本考慮出發(fā)和功能實現(xiàn)等,采用 Altera 的 Quartus II 來軟件來處理。 ( 2) 設(shè)計思路:本設(shè)計將歌曲設(shè)計成一個狀態(tài)機,每個音節(jié)做成一個狀態(tài)機的狀態(tài),音節(jié)持續(xù)的時間由計數(shù)器變量 TIME 控制。至于其他音符,可以同樣求出對應(yīng)的分頻系數(shù)。四拍; N同時,因為有限狀態(tài)機具有有限個狀態(tài),所以可以在實際的工程上實現(xiàn)。在有限 狀態(tài)機中,狀態(tài) 寄存器 的的下一個狀態(tài)不僅與輸入信號有關(guān),而且還與該寄存器的當前狀態(tài)有關(guān),因此 有限狀態(tài)機又可以認為是組合邏輯和寄存器邏輯的一種組合。在程序中, TIME 的值在時鐘 50MHz 頻率下,設(shè)定為 250ms。為了節(jié)省內(nèi)部資源,我們只演奏一首歌曲。 根據(jù)系統(tǒng) 最大 的分頻系數(shù)為 61225,故采用 16 位二進制計數(shù)器已能滿足分頻要求。 “0”表示休止符,在很多音樂中,休止符也是一個重要的音符。d54545, //低音 6 M_1 = 1639。d30612, //中音 5 M_6 = 1639。 //控制音的長短 (250ms) assign beep=beep_r。 //計數(shù)器加 1 if(count==count_end) begin count=1639。 //蜂鳴器不叫 else 宜賓職業(yè)技術(shù)學(xué)院電子信息與控制工程系 基于 CPLD 的 MIDI 音樂播放器設(shè)計 12 beep_r=!beep_r。 s y s _ c l k ( G N D )k e ( G N D ) f a [ 5 . . 0 ]6 39。 宜賓職業(yè)技術(shù)學(xué)院電子信息與控制工程系 基于 CPLD 的 MIDI 音樂播放器設(shè)計 13 5 產(chǎn)品制作 PCB 設(shè)計 使用 Protel 99 SE軟件進行 PCB 設(shè)計,繪制原理圖的過程為圖紙設(shè)置、添加元件庫、放置元件、元件布局、開始連線、布線調(diào)整、電氣規(guī)則檢查,檢查無誤后就可以保存并打印。 發(fā)光二極管:用萬用表檢測 LED 發(fā)光二極管 D1(大頭為正,小頭為負),萬用表的正極接 D1 的正極,負極接 D1 的負極,看 D1 是否發(fā)光,發(fā)光就正常,沒發(fā)光就說明D1 已損壞。 元器件安裝 先安裝數(shù)碼管,要注意數(shù)碼管的高度,接著安裝電阻,注意引腳要直,安裝位置可參照電路原理圖,最后安裝發(fā)光二極管。一般元器件應(yīng)緊密安裝,使元器件貼在印制板上,緊貼的容限在 左右。 同時 焊接時應(yīng)按以下步驟: ( 1)準備工作。 ( 3)放上焊錫絲。 ( 5)移開電烙鐵。下載模式我們進行 USB Blaster 線的下載方式。 (2)單擊 Hardware Setup,單擊 Currently select hardware,選擇 USBBlaster[USB0],如圖 所示。 表 蜂鳴器調(diào)試記錄 器件 現(xiàn)象 CPLD(晶振 50MHz) 接上蜂鳴器發(fā)出刺耳的聲音,硬件正常 CPLD(晶振 20MHz) 接上蜂鳴器發(fā)出預(yù)先設(shè)定音樂,但聲音 有沙啞,頻率不對,有偏差 通過以上的調(diào)試得到結(jié)果,結(jié)合本音樂程序和硬件搭配,最終判別出問題出出在晶振頻率上,本程序需要的頻率為 48MHz,硬件滿足要求,但鎖相環(huán) PLL 所要的頻率為宜賓職業(yè)技術(shù)學(xué)院電子信息與控制工程系 基于 CPLD 的 MIDI 音樂播放器設(shè)計 18 整數(shù),需將 50MHz 降為 1MHz 然后在倍頻到 48MHz,得到我們所需要的聲音。 彩燈的調(diào)試 將 彩燈與 CPLD 連接并 運行程序,發(fā)光二極管循環(huán)閃爍,并且每顆發(fā)光二極管都能正常工作,通過測試證明硬件滿足要求。 reg [8:0]num。 // 比如 50M 分 1MHz, clkin=50M, //50000000/1000000=50,就把上面 num 改為 50,下面 num改為 50/2=25. if(num25) clkout=1。 宜賓職業(yè)技術(shù)學(xué)院電子信息與控制工程系 基于 CPLD 的 MIDI 音樂播放器設(shè)計 20 結(jié)束語 通過對整體的學(xué)習和編程設(shè)計,完成了音樂播放器的設(shè)計,音樂播放器的 設(shè)計經(jīng)過了整體分析、模塊化分析、整體與模塊的仿真分析這樣三個步驟,硬件實現(xiàn)了循環(huán)演奏以及數(shù)碼管顯示時間等功能,描述了其工作原理、設(shè)計思路及實現(xiàn)方法,并在 Quartus II上選用目標芯片仿真實現(xiàn)了音樂硬件演奏電路的功能。在設(shè)計的過程中,還掌握了許多有關(guān)電子領(lǐng)域必要軟件的使用,對今后的工作都有一定得幫助。從論文的選題、文獻的采集、框架的設(shè)計、結(jié)構(gòu)的布局到最終的論文定稿,從內(nèi)容到格式,從標題到標點,他 們 都費盡心血。 時間的倉促及自身專業(yè)水平的不足,整篇論文肯定存在尚未發(fā)現(xiàn)的缺點和錯誤。 //光電傳感器 output beep。 //寄存器 reg[7:0] state。 reg [31:0]counter2。 reg [11:0]min。d45863, //中音 1 M_2 = 1639。d27273, //中音 6 H_1 = 1639。 //輸出 音樂 /************************** **模塊名稱:分頻器 ** 功能描述:計數(shù)分頻 ************************