版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p><b> 課程設計報告</b></p><p> 課程名稱:VHDL語言與EDA課程設計</p><p> 設計題目: 彩燈控制器 </p><p> 系 別: 通信與控制工程系 </p><p> 專 業(yè):
2、 電子信息工程 </p><p> 班 級: </p><p> 學生姓名: </p><p> 學 號: </
3、p><p> 起止日期: 年6月 日 ~ 年6月 日 </p><p> 指導教師: </p><p> 教研室主任: </p><p><b> 摘 要</b>&l
4、t;/p><p> EDA技術是指以計算機為工作平臺,融合了應用電子技術、計算機技術、信息處理及智能化技術的最新成果,進行電子產(chǎn)品的自動設計。本文詳細介紹了多模式流水燈的設計過程、仿真、調(diào)試結(jié)果,并總結(jié)出了我們的心得體會。</p><p> 彩燈是一串按一定規(guī)律連續(xù)閃爍發(fā)光二極管,彩燈控制是可編程控制器的一個應用,其控制思想在工業(yè)控制技術領域也同樣適用。彩燈控制可用多種方法實現(xiàn),但對現(xiàn)代可
5、編程控制器而言,基于EDA技術的彩燈也是很普遍的。</p><p> 關鍵字:EDA技術、多模式彩燈、可編程控制器</p><p><b> 目 錄</b></p><p><b> 1設計目的1</b></p><p> 2設計題目描述和要求1</p><p&
6、gt;<b> 3設計原理1</b></p><p><b> 3.1方案論證1</b></p><p><b> 3.2模塊設計1</b></p><p> 3.2.1集成分頻器1</p><p> 3.2.2 8進制計數(shù)器模塊1</p>&
7、lt;p> 3.2.3彩燈控制模塊1</p><p> 3.2.4 6選1選擇器模塊1</p><p> 3.2.5 6進制計數(shù)器模塊1</p><p><b> 3.3系統(tǒng)結(jié)構(gòu)1</b></p><p><b> 4總結(jié)1</b></p><p>
8、<b> 5致謝1</b></p><p><b> 參考文獻1</b></p><p><b> 附錄一2</b></p><p><b> 附錄二2</b></p><p><b> 附錄三2</b></
9、p><p><b> 1設計目的</b></p><p> 學習EDA開發(fā)軟件和QuartusⅡ的使用方法,熟悉可編程邏輯器件的使用,通過制作來了解彩燈控制系統(tǒng)。</p><p> 2設計題目描述和要求</p><p> 設計一個彩燈控制器,能使8個彩燈(LED管)能連續(xù)發(fā)出六種以上不同的顯示形式;</p>
10、;<p> 2)隨著彩燈顯示圖案的變化,發(fā)出不同的音響聲。</p><p><b> 3設計原理</b></p><p><b> 3.1 方案論證</b></p><p> 這次的彩燈設計采用的是分模塊來完成的,包括分頻器、計數(shù)器、選擇器、彩燈控制器。其中彩燈控制器是用來輸出不同的花樣,彩燈控制器的
11、輸出則是用一個48進制的計數(shù)器來控制,揚聲器的輸出時用不同的頻率來控制,所以用了一個集成分頻器來使輸入的頻率被分為幾種不同的頻率,不同頻率的選擇性的輸出則是用一個6選一的選擇器來控制。基于上述的介紹本次的彩燈控制采用的模式6來進行顯示。</p><p> 圖3.1 模式6結(jié)構(gòu)圖</p><p><b> 3.2 模塊設計</b></p><p&
12、gt; 3.2.1集成分頻器模塊</p><p> 設計要求顯示不同的彩燈的時候要伴隨不同的音樂,所以設計分頻器來用不同的頻率控制不同的音樂輸出。</p><p><b> 模塊說明:</b></p><p> Rst:輸入信號 復位信號 用來復位集成分頻器的輸出使輸出為“0”,及沒有音樂輸出。</p><p>
13、 Clk:輸入信號 模塊的功能即為分頻輸入的頻率信號。</p><p> Clk_4、clk_6、clk_8、clk_10、clk_12、clk_14:輸出信號 即為分頻模塊對輸入信號clk的分頻,分別為1/4分頻輸出、1/6分頻輸出、1/8分頻輸出、1/10分頻輸出、1/12分頻輸出、1/14分頻輸出。</p><p> 圖3.2 集成分頻器</p><p>
14、; 3.2.2 8進制計數(shù)器模塊</p><p> 8進制模塊用來控制彩燈輸出模塊,即確定彩燈控制器的不同的輸出。</p><p> Rst:輸入信號 復位信號 用來復位8進制使其輸出為“000000”。</p><p> Clk:輸入信號 用來給模塊提供工作頻率。</p><p> Count_out[5..0]:輸出信號 即為8
15、進制計數(shù)器的輸出。</p><p> 圖3.3 8進制計數(shù)器</p><p> 3.2.3彩燈控制模塊</p><p> 彩燈控制模塊用來直接控制彩燈的輸出,使彩燈表現(xiàn)出不同的花樣。</p><p> Rst:輸入信號 使彩燈控制模塊的輸出為“00000000”,即讓彩燈無輸出。</p><p> Inpu
16、t[5..0]:輸入信號 不同的輸入使彩燈控制模塊有不同的輸出即彩燈顯示出不同的花樣。</p><p> Output[7..0]:輸出信號 直接與彩燈相連來控制彩燈。</p><p> 圖3.4 彩燈控制模塊</p><p> 3.2.4 6選1選擇器模塊</p><p> Rst:輸入信號 復位信號 使選擇器的輸出為“0”。<
17、;/p><p> In1、in2、in3、in4:輸入信號 接分頻器的輸出。</p><p> Inp[1..0]:輸入信號 接4進制計數(shù)器的輸出用來控制選擇器的選擇不同的輸入選擇不同的輸出。</p><p> Output:輸出信號 直接接揚聲器即輸出的是不同的頻率來控制揚聲器播放音樂。</p><p> 圖3.5 6選1選擇器<
18、;/p><p> 3.2.5 6進制計數(shù)器模塊</p><p> 6進制計數(shù)器作為選擇器的輸入來控制選擇器選擇不同的頻率作為輸出控制揚聲器工作。</p><p> Clk:輸入信號 來為計數(shù)器提供工作頻率。</p><p> Rst:輸入信號 復位信號 使計數(shù)器的輸出為“00”。</p><p> 圖3.6 6
19、進制計數(shù)器</p><p><b> 3.3 系統(tǒng)結(jié)構(gòu)</b></p><p> 整個系統(tǒng)就是各個分模塊組成來實現(xiàn)最后的彩燈控制功能,系統(tǒng)又兩個時鐘來控制一個是控制8進制計數(shù)器即控制彩燈控制模塊來實現(xiàn)彩燈的不同輸出,另一個時鐘為分頻器的輸入來進行分頻處理,最后用來控制揚聲器發(fā)出不同的音樂,具體分頻處理的時鐘的頻率比實現(xiàn)彩燈控制的時鐘頻率要高。</p>
20、<p> 圖 3.7 系統(tǒng)功能模塊</p><p><b> 4.總結(jié)</b></p><p> 這次的EDA課程設計有一周的時間,在這一周的時間里我們充分合理的安排了自己的時間來使本次的課程設計能夠順利的完成,當然我們在本次的設計中并不是一帆風順的,我們遇到了一些的問題,例如我們開始時用的文本的方式用一個總的程序來完成,可以在設計的過程中我們發(fā)現(xiàn)程
21、序編到后面變量越到很容易搞混淆同時各個進程間的聯(lián)系也越來越模糊以至于后面我們自己都不知道程序的整體框圖是什么,導致后面不能夠繼續(xù)下去,后面我們再一次對我們這次的設計題目進行了分析和整理,最后我和我的同伴決定采用分模塊的方式來完成本次的課題設計,當然最重要的是分析各個模塊間的關系。最后我們采用上面分析的結(jié)構(gòu)框圖。最后我們的設計很成功,仿真和硬件測試都是正確的,實現(xiàn)了我們的設計要求和目的。</p><p> 在這次
22、設計中我們收獲了很多,首先最直接的收獲就是我們鞏固了這門課程所學過的知識,把它運用到了實踐當中,并且學到了很多在書本撒和那個所沒有學到的知識,通過查閱相關資料進一步加深了對EDA的了??偟膩碚f,通過這次課程設計不僅鍛煉了我們的動手和動腦能力,也使我懂得了理論與實際相結(jié)合的重要性,只有理論知識是遠遠不夠的,要把所學的理論知識與實踐相結(jié)合起來,才能提高自己的實際動手能力和獨立思考的能力。在我們的共同努力和指導老師的指引下我們圓滿的完成了彩燈
23、控制器的設計,實現(xiàn)了設計目的。</p><p><b> 5.致謝</b></p><p> 在本文的撰寫過程中,xx老師作為我們的指導老師,他們治學嚴謹,學識淵博,視野廣闊,為我營造了一種良好的學術氛圍。置身其間,耳濡目染,潛移默化,使我不僅接受了全新的思想觀念,樹立了明確的學術目標,領會了基本的思考方式,掌握了通用的研究方法,而且還明白了許多待人接物與為人處世
24、的道理。其嚴以律己、寬以待人的崇高風范,樸實無華、平易近人的人格魅力,與無微不至、感人至深的人文關懷,令人如沐春風,倍感溫馨。正是由于他們在百忙之中多次審閱全文,對細節(jié)進行修改,并為本文的撰寫提供了許多中肯而且寶貴的意見,本文才得以成型。</p><p> 在此特向xx老師致以衷心的謝意!向他們無可挑剔的敬業(yè)精神、嚴謹認真的治學態(tài)度、深厚的專業(yè)修養(yǎng)和平易近人的待人方式表示深深的敬意!</p>&l
25、t;p><b> 參考文獻</b></p><p> 趙偉軍.Protel99se教程.北京:人民郵電出版社,1996年</p><p> 金西.VHDL與復雜數(shù)字系統(tǒng)設計.西安:西安電子科技大學出版社,2003</p><p> 漢澤西.EDA技術及其應用.北京:北京航空航天大學出版社,2004</p><p
26、><b> 附錄一</b></p><p><b> 源程序</b></p><p> ----------------------------------------------分頻器模塊----------------------------------------</p><p> LIBRARY ie
27、ee;</p><p> USE ieee.std_logic_1164.all;</p><p> ENTITY fenpinqi IS</p><p><b> PORT</b></p><p><b> (</b></p><p> clk,rst: IN s
28、td_logic;</p><p> clk_4,clk_6,clk_8,clk_10,clk_12,clk_14: OUT std_logic</p><p><b> );</b></p><p> END fenpinqi;</p><p> ARCHITECTURE cd OF fenpinqi IS&
29、lt;/p><p><b> begin</b></p><p> p1:process(clk,rst)</p><p> variable a:integer range 0 to 20;</p><p><b> begin</b></p><p> if rst
30、='1' then</p><p> clk_4<='0'; ----- 復位信號控制部分</p><p><b> else</b></p><p> if clk'event and clk='1'then</p>&l
31、t;p> if a>=3 then</p><p><b> a:=0;</b></p><p> clk_4<='1';</p><p><b> else</b></p><p><b> a:=a+1;</b></p>
32、;<p> clk_4<='0';</p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process p1
33、;</p><p> p2:process(clk,rst)</p><p> variable b:integer range 0 to 20;</p><p><b> begin</b></p><p> if rst='1' then</p><p> clk_6
34、<='0'; ----- 復位信號控制部分</p><p><b> else</b></p><p> if clk'event and clk='1'then</p><p> if b>=5 then</p><p>
35、<b> b:=0;</b></p><p> clk_6<='1';</p><p><b> else</b></p><p><b> b:=b+1;</b></p><p> clk_6<='0';</p>
36、;<p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process p2;</p><p> p3:process(clk,rst)&l
37、t;/p><p> variable c:integer range 0 to 20;</p><p><b> begin</b></p><p> if rst='1' then</p><p> clk_8<='0'; ----- 復
38、位信號控制部分</p><p><b> else</b></p><p> if clk'event and clk='1'then</p><p> if c>=7 then</p><p><b> c:=0;</b></p><p&g
39、t; clk_8<='1';</p><p><b> else</b></p><p><b> c:=c+1;</b></p><p> clk_8<='0';</p><p><b> end if;</b></
40、p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process p3;</p><p> p4:process(clk,rst)</p><p> variable d:integer range
41、 0 to 20;</p><p><b> begin</b></p><p> if rst='1' then</p><p> clk_10<='0'; ----- 復位信號控制部分</p><p><b> else&
42、lt;/b></p><p> if clk'event and clk='1'then</p><p> if d>=9 then</p><p><b> d:=0;</b></p><p> clk_10<='1';</p><p
43、><b> else</b></p><p><b> d:=d+1;</b></p><p> clk_10<='0';</p><p><b> end if;</b></p><p><b> end if;</b&g
44、t;</p><p><b> end if;</b></p><p> end process p4;</p><p> p5:process(clk,rst)</p><p> variable e:integer range 0 to 20;</p><p><b> b
45、egin</b></p><p> if rst='1' then</p><p> clk_12<='0'; ----- 復位信號控制部分</p><p><b> else</b></p><p> if clk'
46、;event and clk='1'then</p><p> if e>=11 then</p><p><b> e:=0;</b></p><p> clk_12<='1';</p><p><b> else</b></p>
47、<p><b> e:=e+1;</b></p><p> clk_12<='0';</p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;
48、</b></p><p> end process p5;</p><p> p6:process(clk,rst)</p><p> variable f:integer range 0 to 20;</p><p><b> begin</b></p><p> if r
49、st='1' then</p><p> clk_14<='0'; ----- 復位信號控制部分</p><p><b> else</b></p><p> if clk'event and clk='1'then</p>
50、<p> if f>=13 then</p><p><b> f:=0;</b></p><p> clk_14<='1';</p><p><b> else</b></p><p><b> f:=f+1;</b><
51、/p><p> clk_14<='0';</p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> end proc
52、ess p6;</p><p><b> end cd;</b></p><p> ----------------------------------------------6選1選擇器---------------------------------------</p><p> LIBRARY ieee;</p>&l
53、t;p> USE ieee.std_logic_1164.all;</p><p> ENTITY counter_6 IS</p><p><b> PORT</b></p><p><b> (</b></p><p> clk,rst: INstd_logic;</p
54、><p> count_out: OUT integer range 0 to 5);</p><p> END counter_6;</p><p> ARCHITECTURE a OF counter_6 IS</p><p><b> begin</b></p><p> PR
55、OCESS (rst,clk)</p><p> variable temp:integer range 0 to 48;</p><p><b> begin</b></p><p> if rst='1' then</p><p><b> temp:=0;</b><
56、;/p><p> else if (clk'event and clk='1') then</p><p> temp:=temp+1;</p><p> if(temp=6) then</p><p><b> temp:=0;</b></p><p><b&
57、gt; end if;</b></p><p><b> end if;</b></p><p> count_out<=temp;</p><p> end PROCESS;</p><p><b> end a;</b></p><p>
58、 -------------------------------------------彩燈控制模塊----------------------------------------</p><p> LIBRARY ieee;</p><p> USE ieee.std_logic_1164.all;</p><p> ENTITY caideng IS&l
59、t;/p><p><b> PORT</b></p><p><b> (</b></p><p> input: ININTEGER RANGE 0 TO 47;</p><p> rst:in std_logic; </p><p> output: OUT
60、std_logic_vector(7 downto 0);</p><p> sm :out std_logic_vector(6 downto 0)</p><p><b> );</b></p><p> end caideng;</p><p> ARCHITECTURE a OF caideng IS&l
61、t;/p><p><b> begin</b></p><p> PROCESS (input)</p><p><b> begin</b></p><p> if rst='1' then output<="00000000";sm<=&quo
62、t;0000000";</p><p><b> else</b></p><p> case input is</p><p> when 0=>output<="10000000";sm<="0000110";</p><p> when 1
63、=>output<="01000000";sm<="0000110";</p><p> when 2=>output<="00100000";sm<="0000110";</p><p> when 3=>output<="00010000&quo
64、t;;sm<="0000110";</p><p> when 4=>output<="00001000";sm<="0000110";</p><p> when 5=>output<="00000100";sm<="0000110";<
65、/p><p> when 6=>output<="00000010";sm<="0000110";</p><p> when 7=>output<="00000001";sm<="0000110";</p><p> when 8=>outp
66、ut<="00010000";sm<="1011011";</p><p> when 9=>output<="00110000";sm<="1011011";</p><p> when 10=>output<="00111000";sm<
67、;="1011011";</p><p> when 11=>output<="01111000";sm<="1011011";</p><p> when 12=>output<="01111100";sm<="1011011";</p>
68、<p> when 13=>output<="01111110";sm<="1011011";</p><p> when 14=>output<="11111110";sm<="1011011";</p><p> when 15=>output&
69、lt;="11111111";sm<="1011011";</p><p> when 16=>output<="10000001";sm<="1001111";</p><p> when 17=>output<="11000001";sm<=
70、"1001111";</p><p> when 18=>output<="11000011";sm<="1001111";</p><p> when 19=>output<="11100011";sm<="1001111";</p>
71、<p> when 20=>output<="11100111";sm<="1001111";</p><p> when 21=>output<="11110111";sm<="1001111";</p><p> when 22=>output<
72、;="11111111";sm<="1001111";</p><p> when 23=>output<="00001000";sm<="1001111";</p><p> when 24=>output<="00000001";sm<=&q
73、uot;1100110";</p><p> when 25=>output<="00000010";sm<="1100110";</p><p> when 26=>output<="00000100";sm<="1100110";</p>&l
74、t;p> when 27=>output<="00001000";sm<="1100110";</p><p> when 28=>output<="00010000";sm<="1100110";</p><p> when 29=>output<=
75、"00100000";sm<="1100110";</p><p> when 30=>output<="01000000";sm<="1100110";</p><p> when 31=>output<="10000000";sm<=&quo
76、t;1100110";</p><p> when 32=>output<="10101010";sm<="1101101";</p><p> when 33=>output<="01010101";sm<="1101101";</p><
77、p> when 34=>output<="10101010";sm<="1101101";</p><p> when 35=>output<="01010101";sm<="1101101";</p><p> when 36=>output<=&q
78、uot;10101010";sm<="1101101";</p><p> when 37=>output<="01010101";sm<="1101101";</p><p> when 38=>output<="10101010";sm<="
79、1101101";</p><p> when 39=>output<="01010101";sm<="1101101";</p><p> when 40=>output<="11000000";sm<="1111101";</p><p&
80、gt; when 41=>output<="00110000";sm<="1111101";</p><p> when 42=>output<="00001100";sm<="1111101";</p><p> when 43=>output<=&quo
81、t;00000011";sm<="1111101";</p><p> when 44=>output<="00000011";sm<="1111101";</p><p> when 45=>output<="00001100";sm<="11
82、11101";</p><p> when 46=>output<="00110000";sm<="1111101";</p><p> when 47=>output<="11000000";sm<="1111101";</p><p>
83、; when others=>null;</p><p><b> end case;</b></p><p><b> end if;</b></p><p> end process;</p><p><b> end a;</b></p>&
84、lt;p> --------------------------------------------8進制計數(shù)器模塊-----------------------------------</p><p> LIBRARY ieee;</p><p> USE ieee.std_logic_1164.all;</p><p> ENTITY counte
85、r_48 IS</p><p><b> PORT</b></p><p><b> (</b></p><p> clk,rst: INstd_logic;</p><p> count_out: OUT integer range 0 to 47);</p><p
86、> end counter_48;</p><p> ARCHITECTURE a OF counter_48 IS</p><p><b> begin</b></p><p> PROCESS (rst,clk)</p><p> variable temp:integer range 0 to 4
87、8;</p><p><b> begin</b></p><p> if rst='1' THEN</p><p><b> temp:=0;</b></p><p> else if (clk'event and clk='1') then<
88、/p><p> temp:=temp+1;</p><p> if(temp=48) then</p><p><b> temp:=0;</b></p><p><b> end if;</b></p><p><b> end if;</b&g
89、t;</p><p> count_out<=temp;</p><p> end PROCESS;</p><p><b> end a;</b></p><p> -------------------------------------------6進制計數(shù)器模塊-----------------
90、-----------------</p><p> LIBRARY ieee;</p><p> USE ieee.std_logic_1164.all;</p><p> ENTITY counter_6 IS</p><p><b> PORT</b></p><p><b&g
91、t; (</b></p><p> clk,rst: INstd_logic;</p><p> count_out: OUT integer range 0 to 5);</p><p> end counter_6;</p><p> ARCHITECTURE a OF counter_6 IS</p&g
92、t;<p><b> begin</b></p><p> PROCESS (rst,clk)</p><p> variable temp:integer range 0 to 48;</p><p><b> begin</b></p><p> if rst='
93、1' THEN</p><p><b> temp:=0;</b></p><p> else if (clk'event and clk='1') then</p><p> temp:=temp+1;</p><p> if(temp=6) then</p>&
94、lt;p><b> temp:=0;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> count_out<=temp;</p><p> end PROCESS;</
95、p><p><b> end a;</b></p><p><b> 附錄二 </b></p><p><b> 編譯</b></p><p><b> 附錄三 </b></p><p><b> 時序仿真</
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設計彩燈控制器
- eda課程設計-彩燈控制器
- eda課程設計---節(jié)日彩燈控制器
- eda課程設計--多路彩燈控制器
- 《eda技術》課程設計報告----彩燈控制器
- eda課程設計--多路彩燈控制器的設計
- eda課程設計一個彩燈控制器
- 彩燈控制器課程設計--流水彩燈控制器
- 彩燈控制器課程設計
- 彩燈控制器課程設計
- 課程設計-- 彩燈控制器
- 彩燈控制器課程設計
- 彩燈控制器課程設計
- eda彩燈控制課程設計
- eda課程設計--用vhdl實現(xiàn)多路彩燈控制器的設計
- 彩燈控制器課程設計
- 課程設計--彩燈控制器
- 彩燈控制器課程設計 (3)
- 課程設計報告彩燈控制器
- 多路彩燈控制器 課程設計
評論
0/150
提交評論