基于數(shù)碼管顯示的彩燈控制器.docx_第1頁
基于數(shù)碼管顯示的彩燈控制器.docx_第2頁
基于數(shù)碼管顯示的彩燈控制器.docx_第3頁
基于數(shù)碼管顯示的彩燈控制器.docx_第4頁
基于數(shù)碼管顯示的彩燈控制器.docx_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

eda原理及應(yīng)用課程設(shè)計報告 課題名稱: 基于數(shù)碼管顯示的彩燈控制器 院 系: 機(jī)電工程學(xué)院 專 業(yè): 電子信息工程 學(xué)生姓名: 陳納爽 學(xué)生學(xué)號: 201033285123 彩燈及數(shù)碼管顯示控制摘 要隨著科技的發(fā)展 , 在現(xiàn)代生活中, 彩燈作為一種景觀應(yīng)用越來越多。而在電子電路設(shè)計領(lǐng)域中,電子設(shè)計自動化(eda)工具已成為主要的設(shè)計手段,vhdl語言則是eda的關(guān)鍵技術(shù)之一,它采用自頂向下的設(shè)計方法,即從系統(tǒng)總體要求出發(fā),自上至下地將設(shè)計任務(wù)分解為不同的功能模塊,最后將各功能模塊連接形成頂層模塊,完成系統(tǒng)硬件的整體設(shè)計。本文介紹了基于eda技的多路彩燈控制器的設(shè)計與分析。在max+plusii環(huán)境下采用vhdl語言實現(xiàn),論述了基于vhdl語言和fpga芯片的數(shù)字系統(tǒng)設(shè)計思想和實現(xiàn)過程。電子設(shè)計自動化技術(shù)eda的發(fā)展給電子系統(tǒng)的設(shè)計帶來了革命性的變化,eda軟件設(shè)計工具,硬件描述語言,可編程邏輯器件使得eda技術(shù)的應(yīng)用走向普及。fpga是新型的可編程邏輯器件,采用fpga進(jìn)行產(chǎn)品開發(fā)可以靈活地進(jìn)行模塊配置,大大縮短了產(chǎn)品開發(fā)周期,也有利于產(chǎn)品向小型化,集成化的方向發(fā)展。關(guān)鍵詞: vhdl 彩燈 仿真1、概述1.1、設(shè)計目的:設(shè)計一個彩燈控制器,使彩燈(led管)可以實現(xiàn)彩燈逐漸增多及兩種不同頻率的閃爍,有復(fù)位開關(guān)。整個系統(tǒng)有四個輸入信號clk,option,fan,clr,三個輸出信號控制倆個八路彩燈及數(shù)碼管顯示。option的高低電平控制彩燈閃爍的快慢,fan的高低電平控制彩燈的逐漸增多減少。1.2、設(shè)計要求:u 掌握fpga 的程序設(shè)計方法。 u 掌握硬件描述語言語法。 u 程序設(shè)計完成后要求在軟件中實現(xiàn)功能仿真。2、系統(tǒng)設(shè)計2.1、設(shè)計原理:整個系統(tǒng)共有四個輸入信號:基準(zhǔn)時鐘信號clk,系統(tǒng)清零信號(復(fù)位信號)clr,彩燈節(jié)奏快慢選擇開關(guān)option;共有3個輸出信號ledout7.0,shuguan6.0,doubleled7.0,分別用于控制彩燈及數(shù)碼管的顯示。據(jù)此,我們可將整個彩燈控制器cdkzq分為四大部分:彩燈花樣控制部分、分頻部分、定時部分和計數(shù)部分。當(dāng)各個模塊均完成上述操作之后,形成最后的彩燈顯示系統(tǒng),并且進(jìn)行仿真。仿真通過,即可下載到指定的fpga芯片里面,并進(jìn)行實際連線,進(jìn)行最后的硬件測試。把分頻部分的不同頻率的時鐘信號cp輸送到計數(shù)部分 ,從而控制彩燈閃爍速度的快慢 ,定時部分控制每種速度維持的時間長短。原理圖模塊原理圖管腳圖22、設(shè)計方案:在電路中以 1 代表燈亮,以 0 代表燈滅,由 0、1按不同的規(guī)律組合代表不同的燈光圖案,同時使其選擇不同的頻率,從而實現(xiàn)多種圖案多種頻率的花樣功能顯示。在該電路中只需簡單的修改程序就可以靈活地調(diào)整彩燈圖案和變化方式。下面就以一個彩燈控制系統(tǒng)的實現(xiàn)為例進(jìn)行簡單說明。此彩燈控制系統(tǒng)設(shè)定有兩種花樣變化 。彩燈圖案狀態(tài)變換的速度有快、慢兩種。3、程序仿真圖start compilation先編譯generate functional simulation netlist然后生成功能仿真網(wǎng)絡(luò)表assignmentssettingsimulation setting設(shè)置成功能仿真然后新建一個vector waveform file 通過viewutility windows-node finder 把輸入輸出管腳添加進(jìn)波形仿真圖里 點擊start simulation得到仿真圖waveform1:4、實驗結(jié)果分析實驗表明 ,此設(shè)計方法能夠滿足多種不同花樣彩燈的變化要求 ,并且該方法便于擴(kuò)展不同變化模式的彩燈花樣,同時又實現(xiàn)了彩燈的兩種不同頻率的閃爍。如果不按任何按鍵時候,燈就按四種花樣順序循環(huán)跑,如果按下某個鍵再松開,比如按下c鍵然后松開,那么不管之前燈跑到哪個花樣,按鍵后燈就會從c代表的花樣處開始跑,然后是d花樣,然后是a花樣,依次循環(huán)。但是a,b,c,d認(rèn)為是按下會彈起的按鍵,因為這個程序里,如果一直按著按鍵不松手,會導(dǎo)致燈只是反復(fù)跑一個花樣。比如按著b鍵不松手,那么就會反復(fù)跑b花樣。還有不能允許同時按下兩個鍵,三個鍵,4個鍵,也就是說,同一時刻abcd只能有一個是高電平,否則會出錯,因為這個程序并沒有防錯機(jī)制。5、心得體會本次設(shè)計的課題是彩燈控制器的設(shè)計,當(dāng)拿到這個課題的時候經(jīng)過分析就知道關(guān)鍵是計數(shù)器和分頻器的使用,分頻的方法有很多種,對于同一種功能的實現(xiàn),用vhdl可以采用多種方式進(jìn)行描述,每種方式之間各有優(yōu)劣,本次設(shè)計只采用了其中較簡單的一種,應(yīng)盡量用最簡潔的語言寫出所需功能的程序。通過這次課程設(shè)計對技術(shù)有了更進(jìn)一步的熟悉,vhdl語言和語言等其他語言還是有很大的區(qū)別。vhdl是eda技術(shù)的重要組成部分,其具有與具體硬件電路無關(guān)和與設(shè)計平臺無關(guān)的特性,并且具有良好的電路行為描述和系統(tǒng)描述的能力,并在語言易讀性和層次化、結(jié)構(gòu)化設(shè)計方面,表現(xiàn)了強(qiáng)大的生命力和應(yīng)用潛力。其主要的也是最大的優(yōu)點就在于設(shè)計者可以專心致力于其功能的實現(xiàn),而不需要對不影響功能的與工藝有關(guān)的因素花費過多的時間和精力。在實際操作中發(fā)現(xiàn)設(shè)計和課本上的知識有很大聯(lián)系,但又高于課本,一個簡單的原理要把它應(yīng)用以及和其他功能綜合起來就有些困難。通過設(shè)計也鞏固了我們的書本知識以及通過借閱書籍和上網(wǎng)查找資料,也豐富了自己對的了解。6、致謝7、參考文獻(xiàn)1 周潤景.基于quartus的fpga/cpld數(shù)字系統(tǒng)設(shè)計實例m.電子工業(yè)出版社.2007,82 潘松 黃繼業(yè). eda技術(shù)實用教程(第二版).北京:科學(xué)出版社,2006.93 林明權(quán) 馬維旻 vhdl數(shù)字控制系統(tǒng)設(shè)計范例.電子工業(yè)出版社2003,14 褚振勇. fpga設(shè)計及應(yīng)用(第三版)m.西安電子科技大學(xué)出版社.2012,48、附錄彩燈顯示控制器的源程序library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;- uncomment the following library declaration if instantiating- any xilinx primitives in this code.-library unisim;-use unisim.vcomponents.all;entity colorled is port ( clk : in std_logic; clr : in std_logic; option : in std_logic; fan:in std_logic; ledout:out std_logic_vector(7 downto 0); shuma:out std_logic_vector(6 downto 0); doubleled:out std_logic_vector(7 downto 0);end colorled;architecture rtl of colorled iscomponent timer isport( clk : in std_logic; clr : in std_logic;option : in std_logic;fan:in std_logic;fanout:out std_logic;clkout : out std_logic);end component timer;component shower isport( clk : in std_logic; clr : in std_logic;fanin:in std_logic;ledout:out std_logic_vector (7 downto 0);shuma:out std_logic_vector(6 downto 0);doubleled:out std_logic_vector(7 downto 0);end component shower;signal clk_tmp:std_logic;signal fan_tmp:std_logic;beginu1:timer port map(clk,clr,option,fan,fan_tmp,clk_tmp);u2:shower port map(clk_tmp,clr,fan_tmp,ledout,shuma,doubleled);end rtl;以上為頂層文件代碼以下為分頻計數(shù)模塊及彩燈顯示控制模塊的代碼library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;- uncomment the following library declaration if instantiating- any xilinx primitives in this code.-library unisim;-use unisim.vcomponents.all;entity timer is port ( clk : in std_logic;-時鐘 clr : in std_logic;-復(fù)位 fan:in std_logic; fanout:out std_logic; option : in std_logic;-快慢分頻 clkout : out std_logic);-輸出時鐘end timer;architecture rtl of timer issignal clk_tmp:std_logic;signal fan_tmp:std_logic;-signal counter:std_logic_vector(1 downto 0);-計數(shù)器signal counter:integer range 0 to 16000000;beginprocess(clk,clr,option)begin if clr=1 then clk_tmp=0; counter=0; elsif clkevent and clk=1 then if option=0 then -四分頻 if counter=16000000 then counter=0; clk_tmp=not clk_tmp;else counter=counter+1;end if; else -八分頻 if counter=8000000 then counter=0; clk_tmp=not clk_tmp;else counter=counter+1;end if; end if; end if;end process;-begin- if clr=1 then- clk_tmp=0;- counter=00;- elsif clkevent and clk=1 then- if option=0 then -四分頻- if counter=01 then- counter=00;- clk_tmp=not clk_tmp;-else- counter=counter+1;-end if;- else -八分頻- if counter=11 then- counter=00;- clk_tmp=not clk_tmp;-else- counter=counter+1;-end if;- end if;- end if;-end process;clkout=clk_tmp; -輸出分頻時鐘fan_tmp=fan;fanout=fan_tmp;end rtl;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;- uncomment the following library declaration if instantiating- any xilinx primitives in this code.-library unisim;-use unisim.vcomponents.all;entity shower is port ( clk : in std_logic; clr : in std_logic; fanin:in std_logic; ledout:out std_logic_vector (7 downto 0); shuma:out std_logic_vector(6 downto 0); -8位彩燈輸出 doubleled:out std_logic_vector(7 downto 0);end shower;architecture rtl of shower istype states is (s0,s1,s2,s3,s4,s5,s6,s7); -moore狀態(tài)signal state:states;beginprocess(clk,clr,fanin)begin if clr=1 then state=s0; ledout=00000000; doubleled=00000000; shuma if fanin=1 then state=s7; ledout=11111110; doubleled=11111110; shuma=1111001; else state=s1; ledout=00000000; doubleled=00000000; shuma if fanin=1 then state=s0; ledout=00000000; doubleled=00000000; shuma=0000000; else state=s2; ledout=10000000; doubleled=10000000; shuma if fanin=1 then state=s1; ledout=10000000; doubleled=10000000; shuma=1111000; else state=s3; ledout=11000000; doubleled=11000000; shuma if fanin=1 then state=s2; ledout=11000000; doubleled=11000000; shuma=

溫馨提示

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

最新文檔

評論

0/150

提交評論