基于EDA的交通燈控制系統(tǒng)設(shè)計_第1頁
基于EDA的交通燈控制系統(tǒng)設(shè)計_第2頁
基于EDA的交通燈控制系統(tǒng)設(shè)計_第3頁
基于EDA的交通燈控制系統(tǒng)設(shè)計_第4頁
基于EDA的交通燈控制系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2008級學生 派'* EDA課程設(shè)計EDA!程設(shè)計報告書課題名稱 基于EDA的交通燈控制系統(tǒng)設(shè)計姓名陳勇學號0812201-08物理與電信工程系專 業(yè)電子信息工程指導教師田旺蘭講師2011年6月10日一、設(shè)計任務(wù)及要求:設(shè)計任務(wù):設(shè)計一個具有四種信號燈的交通燈控制器。要 求:1 .由一條主干道和一條支干道匯合成十字路口,在每個入口處設(shè)置紅、綠、 黃、左拐允許四盞信號燈,紅燈亮禁止通行,綠燈亮允許通行,黃燈亮則給行駛 中的車輛有時間停在禁行線外,左拐燈亮允許車輛向左拐彎。2 .信號燈變換次序為:主支干道交替允許通行,主干道每次放行40秒,亮5秒紅燈讓行駛中的車輛有時間停到禁行線外, 左

2、拐放行15秒,亮5秒紅燈;支 干道放行30秒,亮5秒黃燈,左拐放行15秒,亮5秒紅燈。各計時電路為 倒計時顯示。指導教師簽名:2011年 月 日二、指導教師評語:指導教師簽名:2011 年月日三、成績驗收蠱章2011 年月日基于EDA的交通燈控制系統(tǒng)設(shè)計1設(shè)計目的(1)掌握十字路口交通燈控制的設(shè)計原理,并能夠運用VHD閭程語言編寫出實驗程序,進一步對所學的ED砍口識進行掌握與實際應(yīng)用。(2)學會在quartusII軟件環(huán)境中仿真,熟悉軟件的基本操作和運行環(huán)境。(3)鍛煉自己獲取信息的能力,以及能夠獨立自主的思考和解決問題的能力。2設(shè)計的主要內(nèi)容和要求設(shè)計一個基于EDA 勺交通燈控制系統(tǒng),所要設(shè)

3、計的交通信號燈控制電路要能 夠適用于由一條主干道和一條支干道的匯合點形成的十字交叉路口。能夠做到 主、支干道的紅綠燈閃亮的時間不完全相同, 在綠燈跳變紅燈的過程中能夠用黃 燈進行過渡,使得行駛過程中的車輛有足夠的時間停下來。還要求在主、支干道各設(shè)立一組計時顯示器,能夠顯示相應(yīng)的紅、黃、綠倒計時。可以利用VHD印言合理設(shè)計系統(tǒng)功能,使紅黃綠燈的轉(zhuǎn)換有一個準確的時間間隔和轉(zhuǎn)換順序。3整體設(shè)計方案根據(jù)設(shè)計要求和系統(tǒng)所具有功能,并參考相關(guān)的文獻資料,經(jīng)行方案設(shè)計,畫出如下所示的十字路口交通燈控制器系統(tǒng)框圖,及為設(shè)計的總體方案,框圖如圖3.1所示。并且可以得出系統(tǒng)的狀態(tài)圖如圖 3.2所示,其中:S0:支

4、干道沒有車輛行駛,支干道綠燈,支干道紅燈S1:支干道有車輛行駛,支干道綠燈,支干道紅燈S2:主干道黃燈,支干道綠燈S3:主干道紅燈,支干道綠燈S4:主干道紅燈,支干道黃燈圖3.1整體設(shè)計方框圖17CA"0圖3.2系統(tǒng)狀態(tài)圖4硬件電路的設(shè)計4.1 頂層文件原理圖根據(jù)以上設(shè)計思路,可以得到如下的頂層文件原理圖如4.1所示,具體實物模塊如圖4.2所示。 a國 斯士 ,士士-*aClKlfil:fTmEImP TM副的iMEtp qEDLir|d 町E節(jié)切i;一.一.ek3R叫ih 15伍切LP 3TikflFii-ir nilHh£lL|MI力0呻句I I ww Lp H|”uF

5、但 l1|圖4.1頂層文件原理圖j- dktad5 0carsel2 .0s!seg6.0 insffi1i圖4.2頂層文件的實體圖4.2時鐘分頻器模塊設(shè)計 b kb hi i a 一 !» ra m nj a elk CLK1S a臥m*FitarIVir:mstIS!y M lg|>FM.I-a-* 1/E* _! U I ;/;(圖4.3時鐘分頻器模塊分頻器實現(xiàn)的是將高頻時鐘信號轉(zhuǎn)換成低頻時鐘信號,用于觸發(fā)控制器、計 數(shù)器和掃描顯示電路。系統(tǒng)的動態(tài)掃描需要1HZ的脈沖,而系統(tǒng)時鐘計時模塊需 要1HZ的脈沖。分頻模塊主要為系統(tǒng)提供所需的時鐘計時脈沖。該模塊將1kHZ的脈沖信

6、號進行分頻,產(chǎn)生1S的方波,作為系統(tǒng)時鐘計時信號。具體實物模塊 如圖4.3所示。4.3 控制及計時模塊設(shè)計控制模塊根據(jù)外部輸入信號和計時模塊產(chǎn)生的輸出信號,產(chǎn)生系統(tǒng)的狀態(tài) 機,控制其他部分協(xié)調(diào)工作。計時模塊用來設(shè)定主干道和支干道計時器的初值, 并為掃描顯示譯碼模塊提供倒計時時間??刂萍坝嫊r模塊采用狀態(tài)機進行設(shè)計,可以定義出 5種狀態(tài),分別為S0:主 干道綠燈,支干道紅燈且沒有車輛行駛;S1:主干道綠燈,支干道紅燈或支干道有車輛駛?cè)?;S2:主干道黃燈,支干道紅燈;S3:主干道紅燈,支干道綠燈;S4: 主干道紅燈,支干道黃燈。利用 CASES句定義狀態(tài)的轉(zhuǎn)換方式及時間的變換方 式,達到主干道綠燈亮

7、45秒,支干道綠燈亮25秒,黃燈亮5秒的設(shè)計要求。 具體實物模塊如圖4.4所示,其中:CAR為支干道車輛檢測開關(guān)CLK1S TIWE1H3.Ocar TlMFlLp 0TIMC2H|3 01FiMEZ |3 OJ(e>jnt6 0ledf: 0在支干道有車的情況下,模塊可以進行減計時CLK1S為1S的時鐘脈沖TIME1H、TIME1L、TIME2H、TIME2L 分別 為主干道時鐘高位、主干道時鐘低位、支干道 時鐘高位、支干道時鐘低位圖4.4控制電路模塊LED為LED燈發(fā)光情況,分別為主干道綠燈、 主干道黃燈、主干道紅燈、支干道綠燈、主干 道黃燈、主干道紅燈Count的總的系統(tǒng)時間,用來

8、改變系統(tǒng)的狀態(tài)4.4 譯碼顯示電路設(shè)計根據(jù)狀態(tài)控制器所控制的狀態(tài)和計數(shù)器 的計時時間,選擇當前狀態(tài)下的根據(jù)狀態(tài)控 制器所控制的狀態(tài)和計數(shù)器的計時時間,選 擇當前狀態(tài)下的采用動態(tài)掃描顯示。具體實 物模塊如圖4.5所示。elkCLP?e|2 0| 會犧0TlklEI Hp 0) 711/lrl ip 0 TIM訓,Uj TlMDLp 0| ccur|E Ft心圖4.5譯碼顯示電路模塊4.5 頂層文件的編寫將以上各個單元模塊仿真成功后,再進行頂層文件的編寫。將各個單元模塊 的變量賦值給頂層文件,從而將各個單元模塊連接起來,統(tǒng)一調(diào)配。得到頂層文 件的實體模塊如圖4.2所示。其中:CLK為1KHZK統(tǒng)時

9、鐘脈沖CAM支干道車輛行駛情況,高電平為有車行駛,低電平為無車行駛LED為交通燈發(fā)光情況SEL為數(shù)碼管位碼掃描SEGJ數(shù)碼管段碼5軟件設(shè)計5.1 時鐘分頻模塊:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fp ISPORT(clk:IN STD_LOGIC;CLK1S:OUT STD_LOGIC);END fp;ARCHITECTURE one OF fp ISSIGNAL N: STD_LOGIC_VECTOR(9 DOWNTO 0);BEGINPROCESS(clk)BEGI

10、NIF clk'EVENT AND clk='1' THEN N<=N+1;END IF;END PROCESS;CLK1S<=N(9);END one;5.2 交通燈控制及計時模塊:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY kz ISPORT(CLK1S,car:IN STD_LOGIC;-1S脈沖,支干道車輛檢測TIME1H,TIME1L:OUT STD_LOGIC_VECTOR(3 DOWNTOM道計時TIME2H,TIME2L:OUT

11、 STD_LOGIC_VECTOR(3 DOWNTOM道計時 count:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-系統(tǒng)總計時led:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);- 交通燈顯示END KZ;ARCHITECTURE one OF kz ISTYPE states IS (s0,s1,s2,s3,s4,s5);-狀態(tài)初始化SIGNAL current_state,next_state :states;SIGNAL c:STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINREG:PROCESS(CLK1S,car,cu

12、rrent_state,c)BEGINIF car ='0'THEN current_state <= s0;c<="0000000"ELSEIF CLK1S'EVENT AND CLK1S ='1' THEN - 支干道有車開始計數(shù)c <=c+1;current_state <=next_state;END IF;END IF;CASE current_state IS - 狀態(tài)轉(zhuǎn)換WHEN s0 => LED <="100001" - 支干道無車不減計時TIME1H<=

13、"0100"TIME1L<="0101"TIME2H<="0101"TIME2L<="0000"IF car = '1' THEN next_state <= s1;ELSE next_state <= s0;END IF;WHEN s1 => LED <="100001" - 主干道綠燈,支干道紅燈IF c="0101100" THEN next_state <= s2;ELSE next_state <

14、= s1;END IF;WHEN s2 => LED <="010001" - 主干道黃燈,支干道紅燈IF c="0110001" THEN next_state <= s3;ELSE next_state <=s2;END IF;WHEN s3 => LED <="001100" - 主干道紅燈,支干道綠燈IF c="1001010" THEN next_state <= s4;ELSE next_state <= s3;END IF;WHEN s4 => L

15、ED <="001010" - 支干道黃燈,主干道紅燈IF c="0110001" THEN next_state <= s5;ELSE next_state <=s4;END IF;WHEN OTHERS => LED <="100001" next_state <= s0;END CASE;IF c="0101101" THEN TIME1H<="0000"TIME1L<="0101"- - 系統(tǒng)時間為45,主干道黃燈計時5

16、 秒END IF;IFc="0110010" THENTIME1H<="0011"TIME1L<="0000"TIME2H<="0010"TIME2L<="0101"- - 系統(tǒng)時間為50,主干道計時30 秒 , 支干道計時25秒END IF;IF c="1001011" THEN TIME2H<="0000"TIME2L<="0101"- - 系統(tǒng)時間為75,支干道黃燈計時5 秒END IF;IFc

17、="1010000"THENTIME1H<="0100"TIME1L<="0000"TIME2H<="0101"TIME2L<="0101"- - 系統(tǒng)時間為80,主干道計時45 秒,支干道計時50 秒END IF;IF c="1010000" THEN c<="0000000" - 系統(tǒng)時間清零END IF;END PROCESS REG;count <=c;END one;5.3 掃描顯示譯碼器:LIBRARY IE

18、EE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY xs ISPORT(clk,CLK1S,car:IN STD_LOGIC;TIME1H,TIME1L:IN STD_LOGIC_VECTOR(3 DOWNTO 0); 主干道置數(shù)- TIME2H,TIME2L:IN STD_LOGIC_VECTOR(3 DOWNTO 0); 支干道置數(shù)- count:IN STD_LOGIC_VECTOR(6 DOWNTO 0); -計數(shù)信號 sel:OUT STD

19、_LOGIC_VECTOR(2 DOWNTO 0); -數(shù)碼管位碼- seg:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -數(shù)碼管段碼-END xs;ARCHITECTURE one OF xs ISSIGNAL num:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL numsel:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL numseg:STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL Q1,Q2,Q3,Q4:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINSM:PROCES

20、S (clk,num,numsel) - 掃描BEGINIF clk'EVENT AND clK='1' THEN numsel<=numsel+1;IF numsel="011" THEN numsel<="000"END IF;END IF;END PROCESS SM;WX:PROCESS (numsel,Q1,Q2,Q3,Q4) -位選BEGINCASE numsel ISWHEN"011" =>num<=Q4;WHEN"010" =>num<=Q

21、3;WHEN"001" =>num<=Q2;WHEN"000" =>num<=Q1;WHEN OTHERS =>NULL;END CASE;END PROCESS WX;ZS:PROCESS(CLK1S,car,Q1,Q2,Q3,Q4,num,TIME1H,TIME1L,TIME2H,TIME2L)- 數(shù)碼管置數(shù)BEGINIF car ='1' THENIF CLK1S'EVENT AND CLK1S='1' THENIF Q2>"0000" THEN Q2&

22、lt;=Q2-1;ELSEIF Q1>"0000" THEN Q1<=Q1-1;Q2<="1001" - 減計時END IF;END IF;IF Q4>"0000" THEN Q4<=Q4-1;ELSEIF Q3>"0000" THEN Q3<=Q3-1;Q4<="1001"END IF;END IF;END IF;IF Q1="0000" AND Q2="0000" THENQ1<=TIME1H;Q2

23、<=TIME1L;END IF;IF Q3="0000" AND Q4="0000" THENQ3<=TIME2H;Q4<=TIME2L;END IF;ELSE Q1<=TIME1H;Q2<=TIME1L; -支路無車輛不減計時Q3<=TIME2H;Q4<=TIME2L;END IF;END PROCESS ZS;YM:PROCESS (num,numseg)BEGINCASE num ISWHEN "0000"=>numseg<="1111110"WHEN &

24、quot;0001"=>numseg<="0110000"WHEN "0010"=>numseg<="1101101"WHEN "0011"=>numseg<="1111001"WHEN "0100"=>numseg<="0110011"WHEN "0101"=>numseg<="1011011"WHEN "0110"=>

25、numseg<="1011111"WHEN "0111"=>numseg<="1110000"WHEN "1000"=>numseg<="1111111"WHEN "1001"=>numseg<="1111011"WHEN OTHERS=>NULL;END CASE;END PROCESS YM;sel<=numsel;seg<=numseg;END one;5.4 頂層文件:LIBRARY IE

26、EE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY jtd ISPORT (clk:IN STD_LOGIC;-動態(tài)掃描時鐘car:IN STD_LOGIC;-支路車輛傳感信號led:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); -交通燈信號sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -數(shù)碼管位碼seg:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -數(shù)碼管段碼-END jt

27、d;ARCHITECTURE one OF jtd ISCOMPONENT fPPORT(clK:IN STD_LOGIC;CLK1S:OUT STD_LOGIC);END COMPONENT;COMPONENT kzPORT(CLK1S,car:IN STD_LOGIC;TIME1H,TIME1L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);TIME2H,TIME2L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);count:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);led:OUT STD_LOGIC_VECTOR(5 DOW

28、NTO 0);END COMPONENT;COMPONENT xsPORT(clK,CLK1S,car:IN STD_LOGIC;TIME1H,TIME1L:IN STD_LOGIC_VECTOR(3 DOWNTO 0);TIME2H,TIME2L:IN STD_LOGIC_VECTOR(3 DOWNTO 0);count:IN STD_LOGIC_VECTOR(6 DOWNTO 0);sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);seg:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END COMPONENT;SIGNAL CLK1S:STD_

29、LOGIC;SIGNAL count:STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL TIME1H,TIME1L,TIME2H,TIME2L:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINU1:fp PORT MAP(CLK=>clk,CLK1S=>CLK1S);U2:kzPORTMAP(CLK1S=>CLK1S,car=>car,count=>count,led=>led,TIME1H=>TIME1H, TIME1L=>TIME1L,TIME2H=>TIME2H,TIME2L=>TIM

30、E2L);U3:xsPORTMAP(clk=>clk,CLK1S=>CLK1S,car=>car,count=>count,sel=>sel,seg=>seg, TIME1H=>TIME1H,TIME1L=>TIME1L,TIME2H=>TIME2H,TIME2L=>TIME2L); END;6系統(tǒng)仿真與分析6.1 仿真結(jié)果利用quartusII軟件對頂層實體程序進行編譯,生成了可以進行仿真定時分 析以及下載到可編程器件的相關(guān)文件,然后進行仿真,即可得到最后仿真結(jié)果。 仿真結(jié)果如圖6.1所示:Vaue at20.25 ncznrft?

31、B 1ctrQ 1ckE led ledLtf ledtLD 0B KDC01忙10 USp10DD01led:4: I 戶國sagseqO 制國 xq【£JB C110011B 1 0 0 R n0 1LJLIE12K1LJ1LHULU0LLX1J£ LJ2K1-Value 就 2CL25 nccarR 1dkeoE rrle 1'XnoiIE:。£ 1i«l.UCOledt,2£013BQledl.41eoled國B 1S 5egE C110011segfoiE 1整1B 1E0力引60seg4C 1w 1-1當班OY二11 ,仁/, 11廣倏I_IYmlq三審MO.,dm 4.0 ns MO.,0 ns鴕0.。七10 US 4的 此以J20 25 m*caielk9 1b a1_1 L_1 _1|_|11111 1_ 1 1 l_t國3B 1OKC1WWQlWicoa iMUBC百E田00蟲引BO互kd(480LF14d1可E 1國xg3 QUQGL1二二wn工匚:jou工口mip工camn工-up二工加1工二工

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論