版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p><b> 第一章 緒論3</b></p><p> 1.1 交通燈的介紹3</p><p> 1.2 基于CPLD的交通燈的優(yōu)點3</p><p> 1.3 EDA簡介4</p><p
2、> 1.4 QuartusⅡ簡介5</p><p> 2.1 設(shè)計內(nèi)容要求5</p><p> 2.2 設(shè)計初步構(gòu)思6</p><p> 2.3 設(shè)計總框圖7</p><p> 第三章 各模塊設(shè)計原理及其仿真8</p><p> 3.1 5秒倒計時計數(shù)器8</p><p
3、> 3.1.1 源代碼8</p><p> 3.1.2 元件圖9</p><p> 3.1.3 仿真圖9</p><p> 3.1.4 電路圖9</p><p> 3.1.5流程圖10</p><p> 3.2 25秒倒計時計數(shù)器11</p><p> 3.2.
4、1 源代碼11</p><p> 3.2.2 元件圖13</p><p> 3.2.3 仿真圖13</p><p> 3.2.4 電路圖13</p><p> 3.3 20秒倒計時計數(shù)器14</p><p> 3.3.1源代碼14</p><p> 3.3.2 元件圖1
5、5</p><p> 3.3.3仿真圖16</p><p> 3.4 30秒倒計時計數(shù)器16</p><p> 3.4.1 源代碼16</p><p> 3.4.2 元件圖18</p><p> 3.4.3 仿真圖18</p><p> 3.4.4電路圖19</p&
6、gt;<p> 3.5 15秒倒計時計數(shù)器19</p><p> 3.5.1 源代碼19</p><p> 3.5.2 元件圖21</p><p> 3.5.3 仿真圖21</p><p> 3.5.4電路圖22</p><p> 3.6 控制模塊22</p><
7、;p> 3.6.1 源代碼A22</p><p> 3.6.2 元件圖24</p><p> 3.6.3 仿真圖24</p><p> 3.6.4 電路圖25</p><p> 3.6.5 源代碼B25</p><p> 3.6.6 元件圖27</p><p>
8、3.6.7 仿真圖27</p><p> 3.6.8 電路圖28</p><p> 3.6.9 流程圖29</p><p> 3.7 顯示模塊30</p><p> 3.7.1 源代碼30</p><p> 3.7.2 元件圖32</p><p> 3.7.3 電路圖3
9、3</p><p> 3.7.4 流程圖34</p><p> 3.8.設(shè)計總圖35</p><p> 3.8.1 總電路圖35</p><p> 3.8.2 總仿真圖36</p><p><b> 第四章 調(diào)試36</b></p><p> 第五章
10、實驗現(xiàn)象37</p><p><b> 第六章 總結(jié)38</b></p><p><b> 第一章 緒論</b></p><p> 1.1 交通燈的介紹</p><p> 1918年誕生的第一盞交通燈只有紅綠兩色,它是圓形四面投影器,被安裝在紐約市五號街的一座高塔上,它的誕生,使城市交通
11、大為改善。</p><p> 1925年,留學(xué)美國的中國電機(jī)專家胡汝鼎提出在綠燈之后加個黃燈的設(shè)想被采納,于是誕生了真正意義上的三色交通燈。</p><p> 傳統(tǒng)的交通燈主要由單片機(jī)來控制,它主要由紅黃綠三色燈組成。工作原理是設(shè)置好南北向和東西向的各色燈的亮滅順序和持續(xù)時間來指揮車輛通行。</p><p> 交通燈的發(fā)明和使用極大地保障了人民的生命安全,但因
12、此引起的交通事故卻還是時有發(fā)生。究其原因有以下兩點:</p><p> ?。?)單片機(jī)穩(wěn)定性不夠高,長年累月的運(yùn)行容易引起故障,使得交通信號混亂;</p><p> (2)單片機(jī)控制的交通燈不利于擴(kuò)展,當(dāng)交通燈功能擴(kuò)充或更改的時候只能全部更換,不但浪費(fèi)了資源,而帶來了不便。</p><p> 因此,傳統(tǒng)的交通燈能基本滿足一般交通狀況的需求。然而,對于交通繁忙、路
13、況復(fù)雜的大都市來說就顯得力不從心了。</p><p> 1.2 基于CPLD的交通燈的優(yōu)點</p><p> 基于CPLD的交通燈改變了基于單片機(jī)的傳統(tǒng)交通燈不穩(wěn)定和不利于擴(kuò)展的缺點。</p><p> 本文設(shè)計的基于CPLD的交通信號控制電路,突破了單片機(jī)的種種限制,對傳統(tǒng)的交通燈做了如下改進(jìn):</p><p> (1)
14、用三色箭頭指示燈來替代傳統(tǒng)的紅黃綠三色燈,分別指示左轉(zhuǎn)、直行和右轉(zhuǎn),改變了傳統(tǒng)交通燈一燈三向的狀態(tài),使交通更趨規(guī)則。</p><p> ?。?)增加了左彎待轉(zhuǎn)指示燈,緩解了轉(zhuǎn)彎時的擁堵狀況。</p><p> (3)增加了直行綠燈倒計時功能,以便讓司機(jī)控制過十字路口的車速,使交通更加安全有序。</p><p> ?。?)增加了全紅燈的緊急狀態(tài)。盡管警車、救護(hù)車等公
15、務(wù)車可以在綠燈的狀態(tài)下任意前行,可繁忙的交通還是使得公務(wù)車“有路難行”。緊急狀態(tài)徹底改變了這一狀況,讓十字路口各方向的車都讓路給公務(wù)車,真正做到暢通無阻。</p><p> 本文設(shè)計的交通信號控制電路更趨于理性化和智能化,交通部門可以依據(jù)各路段各個時間點交通的繁忙狀態(tài)和路況的復(fù)雜程度,利用CPLD的可擦除性,根據(jù)時段或路段進(jìn)行不同的設(shè)置,避免了資源浪費(fèi)。而且,CPLD的可擴(kuò)展性也有利于交通部門在新的交通功能發(fā)明
16、之后,在原有交通燈的基礎(chǔ)上進(jìn)行擴(kuò)展,而不必重新設(shè)計,全部更換。</p><p><b> 1.3 EDA簡介</b></p><p> EDA技術(shù)是指以計算機(jī)為工作平臺,融合應(yīng)用電子技術(shù)、計算機(jī)技術(shù)、信息處理及智能化技術(shù)的最新成果,進(jìn)行電子產(chǎn)品的自動設(shè)計。 </p><p> 利用EDA工具,電子設(shè)計師可以從概念、算法、協(xié)議等開始設(shè)計電子
17、系統(tǒng),大量工作可以通過計算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計、性能分析到設(shè)計出IC版圖或PCB版圖的整個過程的計算機(jī)上自動處理完成。 </p><p> 現(xiàn)在對EDA的概念或范疇用得很寬。包括在機(jī)械、電子、通信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學(xué)、軍事等各個領(lǐng)域,都有EDA的應(yīng)用。目前EDA技術(shù)已在各大公司、企事業(yè)單位和科研教學(xué)部門廣泛使用。例如在飛機(jī)制造過程中,從設(shè)計、性能測試及特性分析直到飛行模擬,都可能涉及
18、到EDA技術(shù)。本文所指的EDA技術(shù),主要針對電子電路設(shè)計、PCB設(shè)計和IC設(shè)計。 </p><p> EDA設(shè)計可分為系統(tǒng)級、電路級和物理實現(xiàn)級。</p><p> 1.4 QuartusⅡ簡介</p><p> Quartus II 是Altera公司的綜合性PLD開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardwar
19、e Description Language)等多種設(shè)計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計輸入到硬件配置的完整PLD設(shè)計流程。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計流程外,提供了完善的用戶圖形界面設(shè)計方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,
20、使用戶可以充分利用成熟的模塊,簡化了設(shè)計的復(fù)雜性、加快了設(shè)計速度。對第三方EDA工具的良好支持也使用戶可以在設(shè)計流程的各個階段使用熟悉的第三方EDA工具。 此外,Quartus II 通過和DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設(shè)計、嵌入式軟件開發(fā)、可編程邏輯設(shè)計于一體,是一種綜合性的開</p>&l
21、t;p> 第二章 設(shè)計電路 </p><p> 2.1 設(shè)計內(nèi)容要求</p><p> 2.1.1 設(shè)計制作一塊十字路口的交通燈信號燈的控制電路的專用芯片。</p><p> 2.1.1 A 方向和B方向各設(shè)置紅(R)、黃(Y)、綠(G)三盞燈,三盞燈按合理的順序亮滅,并能將燈亮的時間以倒計時的方式
22、顯示出來。</p><p> 2.1.3、 兩個方向各燈的時間可方便地進(jìn)行設(shè)置和修改。假設(shè)A方向為主干道,車流量大,A方向通行時間比B方向長。設(shè)A方向每次至多通行t1秒,B方向每次至多通行t2秒,黃燈亮t秒。</p><p> 2.2 設(shè)計初步構(gòu)思 </p><p><b> (各交通燈狀態(tài)表)</b></p><p&
23、gt; 如圖所示,G1、Y1、R1、G2、Y2、R2分別代表A、B方向的綠、黃、紅燈。顯然,交通量較大的A方向綠燈亮25秒,黃燈紅燈一次亮5秒和20秒,而交通量較小的B方向綠、黃、紅燈分別亮15秒、5秒、30秒。同時圖中1表示該交通燈處于點亮狀態(tài)。</p><p><b> 2.3 設(shè)計總框圖</b></p><p> 如圖所示,其中分別用兩個控制模塊對各倒計時
24、計數(shù)器進(jìn)行控制,從而達(dá)到設(shè)計要求,顯示模塊用來顯示時間,二極管代表交通燈。</p><p> 第三章 各模塊設(shè)計原理及其仿真</p><p> 3.1 5秒倒計時計數(shù)器</p><p><b> 3.1.1 源代碼</b></p><p> LIBRARY IEEE;</p><p>
25、USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY djs5 IS</p><p><b> PORT</b></p><p> (clk:IN STD_LOGIC;</p>&
26、lt;p> cr:IN STD_LOGIC;</p><p> EN2:IN STD_LOGIC;</p><p> J2:OUT STD_LOGIC;</p><p> q1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p><b> END djs5;</b><
27、;/p><p> ARCHITECTURE a OF djs5 IS</p><p> SIGNAL bcd1n:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b> BEGIN</b></p><p> PROCESS(clk,cr)</p><p><
28、b> BEGIN</b></p><p> IF(cr='0') THEN</p><p> bcd1n<="0101";</p><p> ELSIF(EN2='1')THEN</p><p> IF (CLK'EVENT AND CLK='
29、;1')THEN</p><p> IF(bcd1n=0)THEN</p><p> bcd1n<="0000";</p><p><b> ELSE</b></p><p> bcd1n<=bcd1n-1;</p><p><b> E
30、ND IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> q1<=bcd1n;</p><p> PROCESS(bcd1
31、n)</p><p><b> BEGIN</b></p><p><b> J2<='0';</b></p><p> IF(bcd1n=0)THEN</p><p><b> J2<='1';</b></p>
32、<p><b> END IF;</b></p><p> END PROCESS;</p><p><b> END;</b></p><p><b> 3.1.2 元件圖</b></p><p> (5秒倒計時計數(shù)器元件圖)</p>&l
33、t;p><b> 3.1.3 仿真圖</b></p><p> ?。?秒倒計時計數(shù)器仿真圖)</p><p><b> 3.1.4 電路圖</b></p><p> ?。?秒倒計時計數(shù)器RTL電路圖)</p><p><b> 3.1.5流程圖</b></p&
34、gt;<p> (5秒倒計時計數(shù)器的流程圖)</p><p> 3.2 25秒倒計時計數(shù)器</p><p><b> 3.2.1 源代碼</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><
35、p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY djs25 IS</p><p><b> PORT</b></p><p> (clk:IN STD_LOGIC;</p><p> cr:IN STD_LOGIC;</p><p
36、> EN1:IN STD_LOGIC;</p><p> J1:OUT STD_LOGIC;</p><p> q1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> y10:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p> END djs25;<
37、/p><p> ARCHITECTURE a OF djs25 IS</p><p> SIGNAL bcd1n: STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNAL vcd10n:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b> BEGIN</b
38、></p><p> PROCESS(clk,cr)</p><p><b> BEGIN</b></p><p> IF(cr='0')THEN</p><p> bcd1n<="0101";</p><p> ELSIF(EN1=
39、9;1')THEN</p><p> IF(CLK'EVENT AND CLK='1')THEN</p><p> IF(bcd1n=0 and vcd10n/=0)THEN</p><p> bcd1n<="1001";</p><p> ELSIF(bcd1n=0 and
40、vcd10n=0)THEN</p><p> bcd1n<="0000";</p><p><b> ELSE</b></p><p> bcd1n<=bcd1n-1;</p><p><b> END IF;</b></p><p>
41、<b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> q1<=bcd1n;</p><p> y10<=vcd10n;</p><p> PROCESS (cl
42、k,cr)</p><p><b> BEGIN</b></p><p> IF(cr='0')THEN</p><p> vcd10n<="0010";</p><p> ELSIF (EN1='1')THEN</p><p>
43、 IF(CLK'EVENT AND CLK='1')THEN</p><p> IF(bcd1n=0)THEN</p><p> IF(vcd10n=0)THEN</p><p> vcd10n<="0000";</p><p><b> ELSE</b><
44、/p><p> vcd10n<=vcd10n-1;</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> EN
45、D IF;</b></p><p> END PROCESS;</p><p> PROCESS(bcd1n,vcd10n)</p><p><b> BEGIN</b></p><p><b> J1<='0';</b></p><p&
46、gt; IF(bcd1n=0 and vcd10n=0)THEN</p><p><b> J1<='1';</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p><b> END;</b
47、></p><p><b> 3.2.2 元件圖</b></p><p> ?。?5秒倒計時計數(shù)器元件圖)</p><p><b> 3.2.3 仿真圖</b></p><p> (25秒倒計時計數(shù)器仿真圖)</p><p><b> 3.2.4 電路
48、圖</b></p><p> ?。?5秒倒計時計數(shù)器RTL電路圖)</p><p> 3.3 20秒倒計時計數(shù)器</p><p><b> 3.3.1源代碼</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.
49、ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY djs20 IS</p><p><b> PORT</b></p><p> (clk:IN STD_LOGIC;</p><p> cr: IN STD_LO
50、GIC;</p><p> EN3:IN STD_LOGIC;</p><p> J3:OUT STD_LOGIC;</p><p> q1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> y10:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><
51、p> END djs20; </p><p> ARCHITECTURE a OF djs20 IS </p><p> SIGNAL bcd1n:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNAL vcd10n:STD_LOGIC_VECTOR(3 DOWNTO 0); </p><
52、p><b> BEGIN</b></p><p> PROCESS(clk,cr)</p><p><b> BEGIN</b></p><p> IF(cr='0')THEN</p><p> bcd1n<="0000";--J1<=
53、'1';</p><p> ELSIF(EN3='1')THEN</p><p> IF(CLK'EVENT AND CLK='1')THEN</p><p> IF(bcd1n=0 and vcd10n/=0)THEN</p><p> bcd1n<="1001
54、";</p><p> ELSIF(bcd1n=0 and vcd10n=0)THEN</p><p> bcd1n<="0000";</p><p><b> ELSE</b></p><p> bcd1n<=bcd1n-1;</p><p>&
55、lt;b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> q1<=bcd1n;</p><p> y
56、10<=vcd10n;</p><p> PROCESS(clk,cr)</p><p><b> BEGIN</b></p><p> IF(cr='0')THEN</p><p> vcd10n<="0010";</p><p> EL
57、SIF (EN3='1')THEN</p><p> IF(CLK'EVENT AND CLK='1')THEN</p><p> IF(bcd1n=0)THEN</p><p> IF(vcd10n=0)THEN</p><p> vcd10n<="0000";<
58、;/p><p><b> ELSE</b></p><p> vcd10n<=vcd10n-1;</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END
59、IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> PROCESS(bcd1n,vcd10n)</p><p><b> BEGIN</b></p><p><b>
60、J3<='0';</b></p><p> IF(bcd1n=0 and vcd10n=0)THEN</p><p><b> J3<='1';</b></p><p><b> END IF;</b></p><p> END PRO
61、CESS;</p><p><b> END;</b></p><p><b> 3.3.2 元件圖</b></p><p> ?。?0秒倒計時計數(shù)器元件圖)</p><p><b> 3.3.3仿真圖</b></p><p> (20s倒計時計
62、數(shù)器仿真圖)</p><p><b> 3.3.4 電路圖</b></p><p> (20秒倒計時計數(shù)器RTL電路圖)</p><p> 3.4 30秒倒計時計數(shù)器</p><p><b> 3.4.1 源代碼</b></p><p> LIBRARY IEEE;
63、</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY djs30 IS</p><p><b> PORT</b></p><p> (clk: I
64、N STD_LOGIC;</p><p> cr:IN STD_LOGIC;</p><p> EN4: IN STD_LOGIC;</p><p> J4:OUT STD_LOGIC;</p><p> q1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> y10:OU
65、T STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p> END djs30;</p><p> ARCHITECTURE a OF djs30 IS</p><p> SIGNAL bcd1n:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNAL vcd10n:STD_
66、LOGIC_VECTOR(3 DOWNTO 0);</p><p><b> BEGIN</b></p><p> PROCESS(clk,cr) </p><p><b> BEGIN </b></p><p> IF(cr='0')THEN</p><
67、;p> bcd1n<="0000";--J1<='1';</p><p> ELSIF(EN4='1')THEN</p><p> IF(CLK'EVENT AND CLK='1')THEN</p><p> IF(bcd1n=0 and vcd10n/=0)THE
68、N</p><p> bcd1n<="1001";</p><p> ELSIF(bcd1n=0 and vcd10n=0)THEN</p><p> bcd1n<="0000";</p><p><b> ELSE</b></p><p&g
69、t; bcd1n<=bcd1n-1;</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><
70、p> q1<=bcd1n;</p><p> y10<=vcd10n;</p><p> PROCESS(clk,cr)</p><p><b> BEGIN</b></p><p> IF(cr='0')THEN</p><p> vcd10n<
71、;="0011";--J1<='1';</p><p> ELSIF(EN4='1')THEN</p><p> IF(CLK'EVENT AND CLK='1')THEN</p><p> IF(bcd1n=0)THEN</p><p> IF(vcd
72、10n=0)THEN</p><p> vcd10n<="0000";</p><p><b> ELSE</b></p><p> vcd10n<=vcd10n-1;</p><p><b> END IF;</b></p><p>
73、<b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> PROCESS(bcd1n,vcd10n)</p><
74、;p><b> BEGIN</b></p><p><b> J4<='0';</b></p><p> IF(bcd1n=0 and vcd10n=0)THEN</p><p><b> J4<='1';</b></p><
75、;p><b> END IF;</b></p><p> END PROCESS;</p><p><b> END ;</b></p><p><b> 3.4.2 元件圖</b></p><p> ?。?0秒倒計時計數(shù)器元件圖)</p><
76、p><b> 3.4.3 仿真圖</b></p><p> ?。?0秒倒計時計數(shù)器仿真圖)</p><p><b> 3.4.4電路圖</b></p><p> (30秒倒計時計數(shù)器RTL電路圖)</p><p> 3.5 15秒倒計時計數(shù)器</p><p>&
77、lt;b> 3.5.1 源代碼</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY djs15 IS</p>
78、<p><b> PORT</b></p><p> (clk:IN STD_LOGIC;</p><p> cr:IN STD_LOGIC;</p><p> EN5:IN STD_LOGIC;</p><p> J5:OUT STD_LOGIC;</p><p> q1
79、:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> y10:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p> END djs15;</p><p> ARCHITECTURE a OF djs15 IS</p><p> SIGNAL bcd1n:STD_LOG
80、IC_VECTOR(3 DOWNTO 0);</p><p> SIGNAL vcd10n:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b> BEGIN</b></p><p> PROCESS(clk,cr)</p><p><b> BEGIN</b>
81、</p><p> IF(cr='0')THEN</p><p> bcd1n<="0101" ;--J1<='1';</p><p> ELSIF(EN5='1')THEN</p><p> IF(CLK'EVENT AND CLK='1
82、')THEN</p><p> IF(bcd1n=0 and vcd10n/=0)THEN</p><p> bcd1n<="1001";</p><p> ELSIF(bcd1n=0 and vcd10n=0)THEN</p><p> bcd1n<="0000";<
83、/p><p><b> ELSE</b></p><p> bcd1n<=bcd1n-1;</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;
84、 </b></p><p> END PROCESS;</p><p> q1<=bcd1n;</p><p> y10<=vcd10n;</p><p> PROCESS (clk,cr)</p><p><b> BEGIN</b></p>&
85、lt;p> IF(cr='0')THEN</p><p> vcd10n<="0001";</p><p> ELSIF(EN5='1')THEN</p><p> IF(CLK'EVENT AND CLK='1')THEN</p><p> I
86、F(bcd1n=0)THEN</p><p> IF(vcd10n=0)THEN</p><p> vcd10n<="0000";</p><p><b> ELSE</b></p><p> vcd10n<=vcd10n-1;</p><p><b&
87、gt; END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END IF; </p><p> END PROCESS;</p><p> PROCESS(b
88、cd1n,vcd10n)</p><p><b> BEGIN</b></p><p><b> J5<='0';</b></p><p> IF(bcd1n=0 and vcd10n=0)THEN</p><p><b> J5<='1'
89、;;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p><b> END;</b></p><p><b> 3.5.2 元件圖</b></p><p> (15秒
90、倒計時計數(shù)器元件圖)</p><p><b> 3.5.3 仿真圖</b></p><p> ?。?5秒倒計時計數(shù)器仿真圖)</p><p><b> 3.5.4電路圖</b></p><p> ?。?5秒倒計時計數(shù)器RTL電路圖)</p><p><b>
91、3.6 控制模塊</b></p><p> 3.6.1 源代碼A</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> USE
92、IEEE.STD_LOGIC_ARITH.ALL;</p><p> ENTITY KONGZHI1 IS</p><p><b> PORT</b></p><p> (clk:IN STD_LOGIC;</p><p> state_inputs: IN STD_LOGIC_VECTOR(0 TO 1);&l
93、t;/p><p> c1,c2,c3,b1,b2,b3:OUT STD_LOGIC;</p><p> w0,w1,w2:IN STD_LOGIC;</p><p> r1:OUT STD_LOGIC;</p><p> y1:OUT STD_LOGIC;</p><p> g1:OUT STD_LOGIC;&l
94、t;/p><p> reset:IN STD_LOGIC);</p><p> END KONGZHI1;</p><p> ARCHITECTURE a OF KONGZHI1 IS</p><p> TYPE STATE_SPACE IS(s0,s1,s2);</p><p> SIGNAL current_
95、state,next_state:STATE_SPACE;</p><p><b> BEGIN</b></p><p> PROCESS(clk)</p><p><b> BEGIN</b></p><p> IF reset='1'THEN</p><
96、;p> current_state<=s0;</p><p> ELSIF(CLK'EVENT AND CLK='1')THEN</p><p> CASE next_state is</p><p> WHEN s0=>g1<='0';y1<='1';r1<=
97、9;1';</p><p> IF w0='1'THEN next_state<=s1;--25s;</p><p><b> END IF;</b></p><p><b> b1<='0';</b></p><p> IF(w0=
98、9;0') THEN b1<='1';</p><p><b> END IF;</b></p><p> WHEN s1=>g1<='1';y1<='0';r1<='1';</p><p> IF w1='1' THEN
99、 next_state<=s2;--5s</p><p><b> END IF;</b></p><p><b> b2<='0';</b></p><p> IF(w1='0')THEN b2<='1';</p><p>&
100、lt;b> END IF;</b></p><p> WHEN s2=>g1<='1';y1<='1';r1<='0';</p><p> IF w2='1'THEN</p><p> next_state<=s0;--20s</p>
101、<p><b> END IF;</b></p><p><b> b3<='0';</b></p><p> IF(w2='0') THEN b3<='1';</p><p><b> END IF;</b></p
102、><p><b> END CASE;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> c1<='1' WHEN next_state=s0 ELSE '0';</p>&
103、lt;p> c2<='1' WHEN next_state=s1 ELSE '0';</p><p> c3<='1' WHEN next_state=s2 ELSE '0';</p><p><b> END;</b></p><p><b>
104、 3.6.2 元件圖</b></p><p> ?。刂颇K1的元件圖)</p><p><b> 3.6.3 仿真圖</b></p><p> ?。刂颇K1的仿真圖)</p><p><b> 3.6.4 電路圖</b></p><p> 3.6.5 源
105、代碼B</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> USE IEEE.STD_LOGIC_ARITH.ALL;</p><p>
106、ENTITY KONGZHI2 IS</p><p><b> PORT</b></p><p> (state_inputs: IN STD_LOGIC_VECTOR(0 TO 1);</p><p> clk:IN STD_LOGIC;</p><p> c1,c2,c3,b1,b2,b3:OUT STD_L
107、OGIC;</p><p> w0,w1,w2:IN STD_LOGIC;</p><p> r2:OUT STD_LOGIC;</p><p> y2:OUT STD_LOGIC;</p><p> g2:OUT STD_LOGIC;</p><p> reset:IN STD_LOGIC);</p&
108、gt;<p> END KONGZHI2;</p><p> ARCHITECTURE a OF KONGZHI2 IS</p><p> TYPE STATE_SPACE IS(s0,s1,s2);</p><p> SIGNAL current_state,next_state:STATE_SPACE;</p><p&g
109、t;<b> BEGIN</b></p><p> PROCESS(clk)</p><p><b> BEGIN</b></p><p> IF reset='1'THEN</p><p> current_state<=s0;</p><p&g
110、t; ELSIF(CLK'EVENT AND CLK='1')THEN</p><p> CASE next_state IS</p><p> WHEN s0=>g2<='1';y2<='1';r2<='0';</p><p> IF w0='1'
111、;THEN next_state<=s1;--30s</p><p><b> END IF;</b></p><p><b> b1<='0';</b></p><p> IF(w0='0')THEN b1<='1';</p><
112、p><b> END IF;</b></p><p> WHEN s1=>g2<='0';y2<='1';r2<='1';</p><p> IF w1='1'THEN next_state<=s2;--15s</p><p><b&
113、gt; END IF;</b></p><p><b> b2<='0';</b></p><p> IF(w1='0')THEN b2<='1';</p><p><b> END IF;</b></p><p>
114、WHEN s2=> g2<='1';y2<='0';r2<='1';</p><p> IF w2='1'THEN</p><p> next_state<=s0;--5s</p><p><b> END IF;</b></p>
115、<p><b> b3<='0';</b></p><p> IF(w2='0')THEN b3<='1';</p><p><b> END IF;</b></p><p><b> END CASE;</b></p
116、><p><b> END IF;</b></p><p> END PROCESS;</p><p> c1<='1'WHEN next_state=s0 else '0';</p><p> c2<='1'WHEN next_state=s1 else&
117、#39;0';</p><p> c3<='1'WHEN next_state=s2 else'0';</p><p><b> END;</b></p><p><b> 3.6.6 元件圖</b></p><p> ?。刂颇K2的元件圖)&l
118、t;/p><p><b> 3.6.7 仿真圖</b></p><p> ?。刂颇K2的仿真圖)</p><p><b> 3.6.8 電路圖</b></p><p> ?。刂颇K2的RTL電路圖)</p><p><b> 3.6.9 流程圖</b&g
119、t;</p><p><b> (控制模塊流程圖)</b></p><p><b> 3.7 顯示模塊</b></p><p><b> 3.7.1 源代碼</b></p><p> LIBRARY IEEE;</p><p> USE IEE
120、E.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY XIANSHI IS</p><p><b> PORT(</b></p><p> b1,b2,b3,b4,b5,b6:IN STD_LOGIC;<
121、;/p><p> Q0:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> Q1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> Q2:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> Q3:IN STD_LOGIC_VECTOR(3 D
122、OWNTO 0);</p><p> Q4:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> Q5:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> Q6:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> Q7:IN STD_LOGI
123、C_VECTOR(3 DOWNTO 0);</p><p> Q8:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> Q9:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> CLK:IN STD_LOGIC;</p><p> SG:OUT STD_LOGIC_VEC
124、TOR(6 DOWNTO 0);</p><p> BT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));</p><p><b> END;</b></p><p> ARCHITECTURE one OF XIANSHI IS</p><p> SIGNAL CN:INTEGER RANG
125、E 0 to 2;</p><p> SIGNAL CN1:INTEGER RANGE 0 to 2;</p><p> SIGNAL CNT2:STD_LOGIC_VECTOR(1 DOWNTO 0);</p><p> SIGNAL A:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b>
126、 BEGIN</b></p><p> P1:PROCESS(CN)</p><p><b> BEGIN</b></p><p> IF(b1='1')THEN CN<=0;END IF;</p><p> IF(b2='1')THEN CN<=1;END
127、 IF;</p><p> IF(b3='1')THEN CN<=2;END IF;</p><p> IF(b4='1')THEN CN1<=0;END IF;</p><p> IF(b5='1')THEN CN1<=1;END IF;</p><p> IF(b6
128、='1')THEN CN1<=2;END IF;</p><p> CASE CN IS</p><p><b> WHEN 0=></b></p><p> CASE CNT2 IS</p><p> WHEN "00"=>BT<="0000
129、0001";A<=Q0;</p><p> WHEN "01"=>BT<="00000010";A<=Q1;</p><p> WHEN OTHERS=>NULL;</p><p><b> END CASE;</b></p><p>
130、 WHEN 1=>BT<="00000001";A<=Q2;</p><p><b> WHEN 2=></b></p><p> CASE CNT2 IS</p><p> WHEN "00"=>BT<="00000001";A<=Q
131、3;</p><p> WHEN "01"=>BT<="00000010";A<=Q4;</p><p> WHEN OTHERS=>NULL;</p><p><b> END CASE;</b></p><p> WHEN OTHERS =>
132、;NULL;</p><p> END CASE; </p><p> CASE CN1 IS</p><p><b> WHEN 0=></b></p><p> CASE CNT2 IS</p><p> WHEN "00"=>BT<=&quo
133、t;00000100";A<=Q5;</p><p> WHEN "01"=>BT<="00001000";A<=Q6;</p><p> WHEN OTHERS=>NULL;</p><p><b> END CASE;</b></p><
134、;p><b> WHEN 1=> </b></p><p> CASE CNT2 IS</p><p> WHEN "00"=>BT<="00000100";A<=Q7;</p><p> WHEN "01"=>BT<="00
135、001000";A<=Q8;</p><p> WHEN OTHERS=>NULL;</p><p><b> END CASE;</b></p><p> WHEN 2=>BT<="00000100";A<=Q9;</p><p> WHEN OTHE
136、RS=>NULL;</p><p><b> END CASE;</b></p><p> END PROCESS P1;</p><p> P2:PROCESS(A)</p><p><b> BEGIN</b></p><p><b> CASE
137、 A IS</b></p><p> WHEN "0000"=>SG<="0111111";WHEN"0001"=>SG<="0000110";</p><p> WHEN "0010"=>SG<="1011011";W
138、HEN"0011"=>SG<="1001111";</p><p> WHEN "0100"=>SG<="1100110";WHEN"0101"=>SG<="1101101";</p><p> WHEN "0110&qu
139、ot;=>SG<="1111101";WHEN"0111"=>SG<="0000111";</p><p> WHEN "1000"=>SG<="1111111";WHEN"1001"=>SG<="1101111";</
140、p><p> WHEN OTHERS=>NULL;</p><p><b> END CASE;</b></p><p> END PROCESS P2;</p><p> P3:PROCESS(CLK)</p><p><b> BEGIN</b></p&
141、gt;<p> IF(CLK'EVENT AND CLK='1')THEN </p><p> CNT2<=CNT2+1;</p><p><b> END IF;</b></p><p> END PROCESS P3;</p><p><b> EN
142、D;</b></p><p><b> 3.7.2 元件圖</b></p><p> (顯示模塊的元件圖)</p><p><b> 3.7.3 電路圖</b></p><p><b> 3.7.4 流程圖</b></p><p>&
143、lt;b> ?。@示模塊流程圖)</b></p><p><b> 3.8.設(shè)計總圖</b></p><p> 3.8.1 總電路圖</p><p> 3.8.2 總仿真圖</p><p> ?。傇O(shè)計圖的仿真圖)</p><p><b> 第四章 調(diào)試<
144、/b></p><p> 將程序進(jìn)行編譯后,把管腳綁定后把程序下載到實驗箱上進(jìn)行調(diào)試。</p><p><b> 管腳綁定如下:</b></p><p> CLK0綁定時鐘1KHZ;rest綁定DK4</p><p> Rb綁定LED6;--支干道紅燈;Yb綁定LED7;--支干道黃燈</p>
145、<p> Gb綁定LED8;--支干道綠燈;Ra綁定LED1;--主干道紅燈</p><p> Ya綁定LED2;--主干道黃燈;Ga綁定LED3;--主干道綠燈</p><p> S_G[0]綁定G8;S_G[1]綁定F8;S_G[2]綁定E8;</p><p> S_G[3]綁定D8;S_GG[4]綁定C8;S_G[5]綁定B8;S_G[6]
146、綁定A8;</p><p><b> 第五章 實驗現(xiàn)象</b></p><p> LED主干道亮綠燈,主干道數(shù)碼管顯示25秒,LED支干道亮紅燈,數(shù)碼管顯示30秒。25秒過后,主干道,通過5秒黃燈過渡到紅燈,數(shù)碼管顯示20秒。同時,支干道LED亮綠燈,數(shù)碼管顯示15秒。當(dāng)給DK4一個高電平,系統(tǒng)恢復(fù)到初始狀態(tài),即:主干道亮綠燈,支干道亮紅燈。</p>
147、<p><b> 第六章 總結(jié)</b></p><p> 通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨(dú)立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda交通燈課程設(shè)計--cpld實現(xiàn)交通燈控制系統(tǒng)
- 交通燈課程設(shè)計--基于fpga的交通燈設(shè)計
- 模擬交通燈課程設(shè)計--模擬交通燈的設(shè)計
- 交通燈課程設(shè)計
- 課程設(shè)計交通燈
- 課程設(shè)計—交通燈
- 交通燈課程設(shè)計
- 交通燈課程設(shè)計
- 交通燈課程設(shè)計
- 交通燈課程設(shè)計
- 基于protel的交通燈課程設(shè)計
- 基于multisim交通燈課程設(shè)計
- 基于fpga的交通燈課程設(shè)計
- 交通燈設(shè)計數(shù)電交通燈課程設(shè)計數(shù)電交通燈設(shè)計
- 交通燈課程設(shè)計--plc實現(xiàn)交通燈控制設(shè)計
- 交通燈課程設(shè)計--交通燈控制系統(tǒng)設(shè)計
- 數(shù)電交通燈課程設(shè)計--簡易交通燈的設(shè)計
- 交通燈課程設(shè)計--交通燈控制器
- 基于fpga的交通燈設(shè)計課程設(shè)計
- 交通燈課程設(shè)計 (2)
評論
0/150
提交評論