久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

基于FPGA的交通燈控制系統(tǒng)

時(shí)間:2019-05-15 11:07:18下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫寫幫文庫小編為你整理了多篇相關(guān)的《基于FPGA的交通燈控制系統(tǒng)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《基于FPGA的交通燈控制系統(tǒng)》。

第一篇:基于FPGA的交通燈控制系統(tǒng)

基于FPGA的交通燈控制系統(tǒng)

摘 要:針對(duì)現(xiàn)實(shí)中越來越嚴(yán)重的城市交通擁堵現(xiàn)象,提出了一種城市十字路口 交通信號(hào)燈控制與FPGA實(shí)現(xiàn)的新方法。利用超高速硬件描述語言VHDL設(shè)計(jì)十字路口交通信號(hào)燈控制器,實(shí)現(xiàn)主干道和支干道的交通控制功能,實(shí)時(shí)監(jiān)測(cè)每個(gè)路口的車輛通行情況,以此更改主干道與支干道的交通燈狀態(tài),提高十字路口的車輛通行效率,最后通過硬件測(cè)試實(shí)現(xiàn)具體功能。

關(guān)鍵詞:VHDL FPGA 交通燈控制

一、概述 1.1 設(shè)計(jì)要求:

(1)設(shè)計(jì)一個(gè)交通信號(hào)燈控制器,由一條主干道和一條支干道匯合成十字路口,在每個(gè)入口處設(shè)置紅、綠、黃三色信號(hào)燈,紅燈亮禁止通行,綠燈亮允許通行,黃燈亮則給行駛中的車輛有時(shí)間停在禁行線外。(2)紅、綠、黃發(fā)光二極管作信號(hào)燈。

(3)主干道處于常允許通行的狀態(tài),支干道有車來時(shí)才允許通行。主干道亮綠燈時(shí),支干道亮紅燈;支干道亮綠燈時(shí),主干道亮紅燈。

(4)主、支干道均有車時(shí),兩者交替允許通行,主干道每次放行45秒,支干道每次放行25秒,設(shè)立45秒、25秒計(jì)時(shí)、顯示電路。

(5)在每次由綠燈亮到紅燈亮的轉(zhuǎn)換過程中,要亮5秒黃燈作為過渡,使行駛中的車輛有時(shí)間停到禁行線外,設(shè)立5秒計(jì)時(shí)、顯示電路。1.2 課題分析

(1)主支道路分4種行車狀況,無無、無有、有無、有有,此信號(hào)從傳感器輸出信號(hào)得到,作為系統(tǒng)的輸入,在本系統(tǒng)中用撥片開關(guān)模擬狀態(tài)輸入。(2)主支道路有4種亮燈情況:主綠支紅、主黃支紅、支綠主紅、支黃主紅。(3)只要支路無車通行,則一直為主綠支紅狀態(tài),只有支路有車通過才會(huì)進(jìn)入支綠主紅狀態(tài)。

(4)系統(tǒng)可以根據(jù)行車情況智能進(jìn)入相應(yīng)亮燈情況,提高了十字路口的通車效率。

(5)用6個(gè)發(fā)光二極管作為主道路綠黃紅三燈顯示輸出和支道路綠黃紅三燈顯示輸出;用4個(gè)數(shù)碼管分別作為主支道路倒計(jì)時(shí)顯示輸出。

二、系統(tǒng)方案設(shè)計(jì) 2.1 整體模塊設(shè)計(jì) 2.1.1整體設(shè)計(jì)思路

整體設(shè)計(jì)思路為:交通燈控制系統(tǒng)主要包括兩個(gè)模塊,即交通燈控制模塊和倒計(jì)時(shí)顯示模塊。首先利用教學(xué)實(shí)驗(yàn)箱提供的1HZ時(shí)鐘信號(hào),實(shí)現(xiàn)計(jì)數(shù)功能,1s計(jì)數(shù)一次,同時(shí)設(shè)定主干道、支干道的交通燈的具體亮燈時(shí)間,并將計(jì)數(shù)結(jié)果傳給倒計(jì)時(shí)模塊,以實(shí)現(xiàn)倒計(jì)時(shí)模塊顯示的時(shí)間與交通燈的狀態(tài)相對(duì)應(yīng)。在交通燈控制過程中,用狀態(tài)機(jī)來實(shí)現(xiàn),設(shè)定主干道、支干道的行車檢測(cè)信號(hào),用以進(jìn)行狀態(tài)變換。每進(jìn)入一個(gè)狀態(tài)就開始計(jì)數(shù),該狀態(tài)結(jié)束則清零,在下個(gè)狀態(tài)開始時(shí)重新計(jì)數(shù),實(shí)現(xiàn)每個(gè)狀態(tài)亮燈時(shí)間不同的需求。2.1.2 整體設(shè)計(jì)框架

根據(jù)系統(tǒng)要求可知:

輸入信號(hào)為系統(tǒng)時(shí)鐘,主支道路行車情況模擬輸入。輸出信號(hào)為主支道路紅綠黃顯示信號(hào)、倒計(jì)時(shí)顯示。

2.2 交通燈狀態(tài)轉(zhuǎn)換模塊設(shè)計(jì)

由原理分析可知系統(tǒng)需要在4種亮燈狀態(tài)之間切換,所以需要設(shè)計(jì)一個(gè)狀態(tài)轉(zhuǎn)換控制模塊,而倒計(jì)時(shí)顯示則來自內(nèi)部的計(jì)數(shù),所以狀態(tài)轉(zhuǎn)換模塊內(nèi)部包含了計(jì)數(shù)模塊,又因?yàn)槎O管模擬紅綠燈顯示是和亮燈狀態(tài)緊密相關(guān)的,所以相應(yīng)的二極管控制整合在狀態(tài)轉(zhuǎn)換控制模塊內(nèi)部。故在狀態(tài)轉(zhuǎn)換模塊內(nèi)部包含3個(gè)子模塊,分別為計(jì)數(shù)模塊、狀態(tài)轉(zhuǎn)換控制模塊、二極管實(shí)現(xiàn)模塊。最后因?yàn)閿?shù)碼管動(dòng)態(tài)顯示模塊需要根據(jù)亮燈狀態(tài)決定輸出,所以本模塊還需增加計(jì)數(shù)輸出以及狀態(tài)輸出信號(hào)。該模塊計(jì)數(shù)采用1hz的時(shí)鐘脈沖,以期實(shí)現(xiàn)交通燈的秒數(shù)設(shè)置。

狀態(tài)循環(huán)控制: S0:主干道綠燈支干道紅燈45s S1:主干道黃燈支干道紅燈5s S2:主干道紅燈支干道綠燈25s S3:主干道紅燈支干道黃燈5s

2.3 數(shù)碼管倒計(jì)時(shí)顯示模塊設(shè)計(jì)

由于此模塊采用了數(shù)碼管的動(dòng)態(tài)顯示原理,所以代碼量較多,單獨(dú)分為一個(gè)模塊,又因?yàn)閯?dòng)態(tài)顯示倒計(jì)時(shí)間是與亮燈狀態(tài)緊密相關(guān)的,所以必須從交通燈狀態(tài)控制模塊獲取相關(guān)的狀態(tài)輸入,引出狀態(tài)輸出信號(hào),以供本模塊使用。又因?yàn)閯?dòng)態(tài)顯示需要較高的時(shí)鐘頻率,所以本模塊的時(shí)鐘信號(hào)采用系統(tǒng)輸入信號(hào),而非之前計(jì)數(shù)的1hz時(shí)鐘。4位數(shù)碼管的前兩位顯示支干道的亮燈時(shí)間,后兩位顯示主干道的亮燈時(shí)間。

三、硬件設(shè)計(jì) 3.1總體設(shè)計(jì)框圖

由clk1hz輸入,用來計(jì)數(shù),道路行車檢測(cè)由pass_state1,pass_state0控制,pass_state1為主干道行車檢測(cè),pass_state0為支干道行車檢測(cè)。1為有車通行,0為無車通行,輸出為數(shù)碼管的位選信號(hào)和段選信號(hào),以及6個(gè)二極管控制信號(hào)。

3.2交通燈狀態(tài)轉(zhuǎn)換模塊

輸入計(jì)數(shù)時(shí)鐘和行車控制,輸出主干道以及支干道紅綠黃三燈的控制信號(hào),最重要的是將此時(shí)的計(jì)數(shù)時(shí)間輸出給倒計(jì)時(shí)模塊,并將4個(gè)狀態(tài)的狀態(tài)輸出信號(hào)給倒計(jì)時(shí)模塊,實(shí)現(xiàn)在對(duì)應(yīng)的狀態(tài)下顯示對(duì)應(yīng)的時(shí)間。3.3數(shù)碼管倒計(jì)時(shí)顯示模塊

為了實(shí)現(xiàn)數(shù)碼管動(dòng)態(tài)掃描,此模塊的時(shí)鐘使用較高頻率,輸入上級(jí)電路的計(jì)數(shù)輸出和狀態(tài)輸出,給出位選以及段選信號(hào)的控制。

四、硬件測(cè)試 4.1 引腳分配

Pin_3——1hz時(shí)鐘輸入,用于狀態(tài)控制模塊 Pin_33——24khz時(shí)鐘輸入,用于數(shù)碼管動(dòng)態(tài)掃描 Pin_4——K1 支干道行車模擬輸入 Pin_5——K2 主干道行車模擬輸入

Pin_6,Pin_8,Pin_10——數(shù)碼管位選信號(hào)

Pin_11,Pin_12,Pin_13,Pin_14,Pin_15,Pin_30,Pin_31——數(shù)碼管段選信號(hào)

Pin_34——R1主干道紅燈 Pin_35——Y1 主干道黃燈 Pin_36——G1 主干道綠燈 Pin_37——R2 支干道紅燈 Pin_39——Y2 支干道黃燈 Pin_40——G2 支干道綠燈

4.2 仿真結(jié)果 交通燈顯示:

倒計(jì)時(shí)顯示:

S1狀態(tài)(支紅主黃):

S0狀態(tài)(支紅主綠)

五、總結(jié)

基本實(shí)現(xiàn)了設(shè)計(jì)所需的功能,能根據(jù)道路行車情況實(shí)現(xiàn)交通燈的智能控制,并將紅綠燈通行的時(shí)間通過數(shù)碼管直觀顯示出來,較好的完成了十字路口交通情況的模擬。

六、附錄

6.1 頂層模塊源程序

LIBRARY IEEE;---自動(dòng)交通燈控制系統(tǒng)頂層描述 USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY TRAFFIC_LIGHT_CONTROL IS PORT(CLK1hz,CLK1khz : IN STD_LOGIC;---信號(hào)時(shí)鐘輸入

PASS_STATE : IN STD_LOGIC_VECTOR(1 DOWNTO 0);---主支通道的通車情況,低位為支通道高位為主通道,0為無車1為有車

ALIGHT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);---主干道紅綠黃燈控制信號(hào) BLIGHT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);---支干道紅綠黃燈控制信號(hào) SEL : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);---輸出數(shù)碼管位選信號(hào) LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0)---輸出數(shù)碼管段選信號(hào));END ENTITY TRAFFIC_LIGHT_CONTROL;

ARCHITECTURE behav OF TRAFFIC_LIGHT_CONTROL IS COMPONENT STATE_CONTROL PORT(CLK1 : IN STD_LOGIC;---1Hz時(shí)鐘信號(hào)輸入

PASS_STATE_IN : IN STD_LOGIC_VECTOR(1 DOWNTO 0);---主支通道的通車情況,低位為支通道高位為主通道,0為無車1為有車

A_LIGHT: OUT STD_LOGIC_VECTOR(2 DOWNTO 0);---主干道紅綠黃燈控制信號(hào) B_LIGHT: OUT STD_LOGIC_VECTOR(2 DOWNTO 0);---支干道紅綠黃燈控制信號(hào) CNTOUT : OUT STD_LOGIC_VECTOR(5 DOWNTO 0);---已計(jì)數(shù)時(shí)間輸出

STATEOUT : OUT STD_LOGIC_VECTOR(1 DOWNTO 0)---狀態(tài)輸出,傳遞給數(shù)碼顯示模塊);END COMPONENT;

COMPONENT DISPLAY PORT(CLK2 : IN STD_LOGIC;---1KHz時(shí)鐘信號(hào)輸入

CNTIN : IN STD_LOGIC_VECTOR(5 DOWNTO 0);---亮燈已過時(shí)間輸入 STATEIN : IN STD_LOGIC_VECTOR(1 DOWNTO 0);---狀態(tài)輸入

LED7SOUT : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);---數(shù)碼管段選信號(hào)輸出 SELOUT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0)---數(shù)碼管位選信號(hào)輸出);END COMPONENT;

SIGNAL MSTATE : STD_LOGIC_VECTOR(1 DOWNTO 0);---中間信號(hào)傳遞通車狀態(tài)

SIGNAL MCNT : STD_LOGIC_VECTOR(5 DOWNTO 0);---中間信號(hào)傳遞亮燈已計(jì)數(shù)時(shí)間

BEGIN---例化語句

U1: STATE_CONTROL PORT MAP(CLK1=>CLK1hz,PASS_STATE_IN=>PASS_STATE,B_LIGHT=>BLIGHT, A_LIGHT=>ALIGHT, CNTOUT=>MCNT, STATEOUT=>MSTATE);U2: DISPLAY PORT MAP(CLK2=>CLK1khz,CNTIN=>MCNT,STATEIN=>MSTATE,LED7SOUT=>LED7S,SELOUT=>SEL);

END ARCHITECTURE behav;6.2 交通燈狀態(tài)轉(zhuǎn)換模塊源程序

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY STATE_CONTROL IS GENERIC(GREENA_CNT:INTEGER:=45;---主通道綠燈亮的時(shí)間45s

YELLOWA_CNT:INTEGER:=5;---主通道黃燈亮的時(shí)間5s

GREENB_CNT:INTEGER:=25;---支通道綠燈亮的時(shí)間25s

YELLOWB_CNT:INTEGER:=5);---支通道黃燈亮的時(shí)間5s PORT(CLK1 : IN STD_LOGIC;---1Hz時(shí)鐘信號(hào)輸入

PASS_STATE_IN : IN STD_LOGIC_VECTOR(1 DOWNTO 0);---主支通道的通車情況,低位為支通道高位為主通道,0為無車1為有車

A_LIGHT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);---主干道紅綠黃燈控制信號(hào) B_LIGHT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);---支干道紅綠黃燈控制信號(hào) CNTOUT : OUT STD_LOGIC_VECTOR(5 DOWNTO 0);---已計(jì)數(shù)時(shí)間輸出 STATEOUT : OUT STD_LOGIC_VECTOR(1 DOWNTO 0)---剩余時(shí)間輸出顯示);END ENTITY STATE_CONTROL;

ARCHITECTURE behav OF STATE_CONTROL IS TYPE STATES IS(ST0,ST1,ST2,ST3);---4個(gè)狀態(tài)分別為【主綠支紅45s、主黃支紅5s、支綠主紅25s、支黃主紅5s、】

SIGNAL STATE : STATES:=ST0;---初始化狀態(tài)為狀態(tài)0 SIGNAL CNT_EN : STD_LOGIC:='0';---計(jì)數(shù)使能控制信號(hào),初始不計(jì)數(shù)

SIGNAL CNT : STD_LOGIC_VECTOR(5 DOWNTO 0):=“000001”;---因?yàn)槌跏疾挥?jì)數(shù),但已過一個(gè)周期,所以初值為1 BEGIN

PROCESS(CLK1)BEGIN IF CLK1'EVENT AND CLK1 = '0' THEN

IF(CNT_EN='1')THEN---計(jì)數(shù)模塊

CNT<=CNT+1;ELSE

CNT<=“000001”;---若溢出則計(jì)數(shù)使能為0,CNT重新賦值為1 END IF;CASE STATE IS---狀態(tài)循環(huán)控制模塊 WHEN ST0 => IF(CNT=GREENA_CNT)THEN---主綠支紅若計(jì)數(shù)滿45s則根據(jù)主支通道的通車情況決定轉(zhuǎn)入下一個(gè)狀態(tài)

CASE PASS_STATE_IN IS

WHEN “00” => STATE<=ST0;

WHEN “01” => STATE<=ST1;

WHEN “10” => STATE<=ST0;

WHEN “11” => STATE<=ST1;

WHEN OTHERS => NULL;

END CASE;ELSE

STATE<=ST0;---若計(jì)數(shù)未滿則為原來狀態(tài)

END IF;WHEN ST1 =>---主黃支紅若計(jì)數(shù)滿5s則根據(jù)主支通道的通車情況決定轉(zhuǎn)入下一個(gè)狀態(tài)

IF(CNT=YELLOWA_CNT)THEN

CASE PASS_STATE_IN IS

WHEN “00” => STATE<=ST2;

WHEN “01” => STATE<=ST2;

WHEN “10” => STATE<=ST2;

WHEN “11” => STATE<=ST2;

WHEN OTHERS => NULL;

END CASE;ELSE

STATE<=ST1;---若計(jì)數(shù)未滿則為原來狀態(tài) END IF;WHEN ST2 =>---支綠主紅若計(jì)數(shù)滿25s則根據(jù)主支通道的通車情況決定轉(zhuǎn)入下一個(gè)狀態(tài)

IF(CNT=GREENB_CNT)THEN

CASE PASS_STATE_IN IS

WHEN “00” => STATE<=ST3;

WHEN “01” => STATE<=ST2;

WHEN “10” => STATE<=ST3;

WHEN “11” => STATE<=ST3;

WHEN OTHERS => NULL;

END CASE;ELSE

STATE<=ST2;---若計(jì)數(shù)未滿則為原來狀態(tài)

END IF;

WHEN ST3 =>---支黃主紅若計(jì)數(shù)滿5s則根據(jù)主支通道的通車情況決定轉(zhuǎn)入下一個(gè)狀態(tài)

IF(CNT=YELLOWA_CNT)THEN

CASE PASS_STATE_IN IS

WHEN “00” => STATE<=ST0;

WHEN “01” => STATE<=ST0;

WHEN “10” => STATE<=ST0;

WHEN “11” => STATE<=ST0;

WHEN OTHERS => NULL;

END CASE;ELSE

STATE<=ST3;---若計(jì)數(shù)未滿則為原來狀態(tài)

END IF;END CASE;END IF;CNTOUT<=CNT;END PROCESS;

PROCESS(STATE)BEGIN CASE STATE IS WHEN ST0 =>---狀態(tài)0時(shí)主綠支紅

A_LIGHT<=“010”;B_LIGHT<=“100”;CNT_EN<='1';STATEOUT<=“00”;---將當(dāng)前狀態(tài)傳遞給數(shù)碼管顯示模塊,以供后續(xù)使用 IF(CNT=GREENA_CNT)THEN CNT_EN<='0';END IF;

WHEN ST1 =>---狀態(tài)1時(shí)主黃支紅

A_LIGHT<=“001”;B_LIGHT<=“100”;CNT_EN<='1';STATEOUT<=“01”;---將當(dāng)前狀態(tài)傳遞給數(shù)碼管顯示模塊,以供后續(xù)使用 IF(CNT=YELLOWA_CNT)THEN CNT_EN<='0';END IF;

WHEN ST2 =>---狀態(tài)2時(shí)支綠主紅

A_LIGHT<=“100”;B_LIGHT<=“010”;CNT_EN<='1';STATEOUT<=“10”;---將當(dāng)前狀態(tài)傳遞給數(shù)碼管顯示模塊,以供后續(xù)使用 IF(CNT=GREENB_CNT)THEN CNT_EN<='0';END IF;

WHEN ST3 =>---狀態(tài)3時(shí)支黃主紅

A_LIGHT<=“100”;B_LIGHT<=“001”;CNT_EN<='1';STATEOUT<=“11”;---將當(dāng)前狀態(tài)傳遞給數(shù)碼管顯示模塊,以供后續(xù)使用 IF(CNT=YELLOWB_CNT)THEN CNT_EN<='0';END IF;

END CASE;END PROCESS;END behav;6.3 數(shù)碼管顯示倒計(jì)時(shí)源程序

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY DISPLAY IS PORT(CLK2 : IN STD_LOGIC;---時(shí)鐘輸入

CNTIN : IN STD_LOGIC_VECTOR(5 DOWNTO 0);---已計(jì)數(shù)輸入,來自狀態(tài)控制模塊 STATEIN : IN STD_LOGIC_VECTOR(1 DOWNTO 0);---狀態(tài)輸入,來自狀態(tài)控制模塊 LED7SOUT : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);---數(shù)碼管段選信號(hào)輸出 SELOUT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0)---數(shù)碼管位選信號(hào)輸出);END ENTITY DISPLAY;ARCHITECTURE behav OF DISPLAY IS BEGIN PROCESS(CLK2)VARIABLE BITSEL : STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN-----------------------------位選信號(hào)循環(huán)模塊----------------IF CLK2'EVENT AND CLK2='0' THEN CASE BITSEL IS WHEN “000” => BITSEL:=“001”;SELOUT<=“001”;WHEN “001” => BITSEL:=“010”;SELOUT<=“010”;WHEN “010” => BITSEL:=“011”;SELOUT<=“011”;WHEN “011” => BITSEL:=“000”;SELOUT<=“000”;WHEN OTHERS => NULL;END CASE;END IF;-------------------------動(dòng)態(tài)顯示模塊-----------------CASE STATEIN IS WHEN “00” =>---主綠支紅狀態(tài) OK CASE BITSEL IS WHEN “000” =>---主綠支紅狀態(tài) 點(diǎn)亮支干道十位數(shù)字 OK CASE CNTIN IS WHEN “000001” => LED7SOUT <= “1101101”;---01 50 WHEN “000010” => LED7SOUT <= “1100110”;---02 49 WHEN “000011” => LED7SOUT <= “1100110”;WHEN “000100” => LED7SOUT <= “1100110”;WHEN “000101” => LED7SOUT <= “1100110”;WHEN “000110” => LED7SOUT <= “1100110”;---06 45 WHEN “000111” => LED7SOUT <= “1100110”;WHEN “001000” => LED7SOUT <= “1100110”;WHEN “001001” => LED7SOUT <= “1100110”;WHEN “001010” => LED7SOUT <= “1100110”;WHEN “001011” => LED7SOUT <= “1100110”;---11 40 WHEN “001100” => LED7SOUT <= “1001111”;WHEN “001101” => LED7SOUT <= “1001111”;WHEN “001110” => LED7SOUT <= “1001111”;WHEN “001111” => LED7SOUT <= “1001111”;WHEN “010000” => LED7SOUT <= “1001111”;---16 35 WHEN “010001” => LED7SOUT <= “1001111”;WHEN “010010” => LED7SOUT <= “1001111”;WHEN “010011” => LED7SOUT <= “1001111”;WHEN “010100” => LED7SOUT <= “1001111”;WHEN “010101” => LED7SOUT <= “1001111”;---21 30 WHEN “010110” => LED7SOUT <= “1011011”;WHEN “010111” => LED7SOUT <= “1011011”;WHEN “011000” => LED7SOUT <= “1011011”;WHEN “011001” => LED7SOUT <= “1011011”;WHEN “011010” => LED7SOUT <= “1011011”;---26 25 WHEN “011011” => LED7SOUT <= “1011011”;WHEN “011100” => LED7SOUT <= “1011011”;WHEN “011101” => LED7SOUT <= “1011011”;WHEN “011110” => LED7SOUT <= “1011011”;WHEN “011111” => LED7SOUT <= “1011011”;---31 20 WHEN “100000” => LED7SOUT <= “0000110”;WHEN “100001” => LED7SOUT <= “0000110”;WHEN “100010” => LED7SOUT <= “0000110”;WHEN “100011” => LED7SOUT <= “0000110”;WHEN “100100” => LED7SOUT <= “0000110”;---36 15 WHEN “100101” => LED7SOUT <= “0000110”;WHEN “100110” => LED7SOUT <= “0000110”;WHEN “100111” => LED7SOUT <= “0000110”;WHEN “101000” => LED7SOUT <= “0000110”;WHEN “101001” => LED7SOUT <= “0000110”;---41 10 WHEN “101010” => LED7SOUT <= “0111111”;WHEN “101011” => LED7SOUT <= “0111111”;WHEN “101100” => LED7SOUT <= “0111111”;WHEN “101101” => LED7SOUT <= “0111111”;---45 06 WHEN OTHERS => NULL;END CASE;WHEN “001” =>---主綠支紅狀態(tài) 點(diǎn)亮支干道個(gè)位數(shù)字 OK CASE CNTIN IS WHEN “000001” => LED7SOUT <= “0111111”;---01 50 WHEN “000010” => LED7SOUT <= “1101111”;---02 49 WHEN “000011” => LED7SOUT <= “1111111”;WHEN “000100” => LED7SOUT <= “0000111”;WHEN “000101” => LED7SOUT <= “1111101”;WHEN “000110” => LED7SOUT <= “1101101”;WHEN “000111” => LED7SOUT <= “1100110”;---07 44 WHEN “001000” => LED7SOUT <= “1001111”;WHEN “001001” => LED7SOUT <= “1011011”;WHEN “001010” => LED7SOUT <= “0000110”;WHEN “001011” => LED7SOUT <= “0111111”;WHEN “001100” => LED7SOUT <= “1101111”;---12 39 WHEN “001101” => LED7SOUT <= “1111111”;WHEN “001110” => LED7SOUT <= “0000111”;WHEN “001111” => LED7SOUT <= “1111101”;WHEN “010000” => LED7SOUT <= “1101101”;WHEN “010001” => LED7SOUT <= “1100110”;---17 34 WHEN “010010” => LED7SOUT <= “1001111”;WHEN “010011” => LED7SOUT <= “1011011”;WHEN “010100” => LED7SOUT <= “0000110”;WHEN “010101” => LED7SOUT <= “0111111”;WHEN “010110” => LED7SOUT <= “1101111”;---22 29 WHEN “010111” => LED7SOUT <= “1111111”;WHEN “011000” => LED7SOUT <= “0000111”;WHEN “011001” => LED7SOUT <= “1111101”;WHEN “011010” => LED7SOUT <= “1101101”;WHEN “011011” => LED7SOUT <= “1100110”;---27 24 WHEN “011100” => LED7SOUT <= “1001111”;WHEN “011101” => LED7SOUT <= “1011011”;WHEN “011110” => LED7SOUT <= “0000110”;WHEN “011111” => LED7SOUT <= “0111111”;WHEN “100000” => LED7SOUT <= “1101111”;---32 19 WHEN “100001” => LED7SOUT <= “1111111”;WHEN “100010” => LED7SOUT <= “0000111”;WHEN “100011” => LED7SOUT <= “1111101”;WHEN “100100” => LED7SOUT <= “1101101”;WHEN “100101” => LED7SOUT <= “1100110”;---37 14 WHEN “100110” => LED7SOUT <= “1001111”;WHEN “100111” => LED7SOUT <= “1011011”;WHEN “101000” => LED7SOUT <= “0000110”;WHEN “101001” => LED7SOUT <= “0111111”;---41 09 WHEN “101010” => LED7SOUT <= “1101111”;WHEN “101011” => LED7SOUT <= “1111111”;WHEN “101100” => LED7SOUT <= “0000111”;WHEN “101101” => LED7SOUT <= “1111101”;---45 06 WHEN OTHERS => NULL;END CASE;WHEN “010” =>---主綠支紅狀態(tài) 點(diǎn)亮主干道十位數(shù)字 OK CASE CNTIN IS WHEN “000000” => LED7SOUT <= “1111101”;---00 46 WHEN “000001” => LED7SOUT <= “1100110”;WHEN “000010” => LED7SOUT <= “1100110”;WHEN “000011” => LED7SOUT <= “1100110”;WHEN “000100” => LED7SOUT <= “1100110”;WHEN “000101” => LED7SOUT <= “1100110”;---05 41 WHEN “000110” => LED7SOUT <= “1100110”;WHEN “000111” => LED7SOUT <= “1001111”;WHEN “001000” => LED7SOUT <= “1001111”;WHEN “001001” => LED7SOUT <= “1001111”;WHEN “001010” => LED7SOUT <= “1001111”;---10 36 WHEN “001011” => LED7SOUT <= “1001111”;WHEN “001100” => LED7SOUT <= “1001111”;WHEN “001101” => LED7SOUT <= “1001111”;WHEN “001110” => LED7SOUT <= “1001111”;WHEN “001111” => LED7SOUT <= “1001111”;---15 31 WHEN “010000” => LED7SOUT <= “1001111”;WHEN “010001” => LED7SOUT <= “1011011”;WHEN “010010” => LED7SOUT <= “1011011”;WHEN “010011” => LED7SOUT <= “1011011”;WHEN “010100” => LED7SOUT <= “1011011”;---20 26 WHEN “010101” => LED7SOUT <= “1011011”;WHEN “010110” => LED7SOUT <= “1011011”;WHEN “010111” => LED7SOUT <= “1011011”;WHEN “011000” => LED7SOUT <= “1011011”;WHEN “011001” => LED7SOUT <= “1011011”;---25 21 WHEN “011010” => LED7SOUT <= “1011011”;WHEN “011011” => LED7SOUT <= “0000110”;WHEN “011100” => LED7SOUT <= “0000110”;WHEN “011101” => LED7SOUT <= “0000110”;WHEN “011110” => LED7SOUT <= “0000110”;---30 16 WHEN “011111” => LED7SOUT <= “0000110”;WHEN “100000” => LED7SOUT <= “0000110”;WHEN “100001” => LED7SOUT <= “0000110”;WHEN “100010” => LED7SOUT <= “0000110”;WHEN “100011” => LED7SOUT <= “0000110”;---35 11 WHEN “100100” => LED7SOUT <= “0000110”;---36 10 WHEN “100101” => LED7SOUT <= “0111111”;WHEN “100110” => LED7SOUT <= “0111111”;WHEN “100111” => LED7SOUT <= “0111111”;WHEN “101000” => LED7SOUT <= “0111111”;WHEN “101001” => LED7SOUT <= “0111111”;WHEN “101010” => LED7SOUT <= “0111111”;WHEN “101011” => LED7SOUT <= “0111111”;WHEN “101100” => LED7SOUT <= “0111111”;WHEN “101101” => LED7SOUT <= “0111111”;---45 01 WHEN OTHERS => NULL;END CASE;WHEN “011” =>---主綠支紅狀態(tài) 點(diǎn)亮主干道個(gè)位數(shù)字 OK CASE CNTIN IS WHEN “000000” => LED7SOUT <= “1111101”;---00 46 WHEN “000001” => LED7SOUT <= “1101101”;---01 45 WHEN “000010” => LED7SOUT <= “1100110”;WHEN “000011” => LED7SOUT <= “1001111”;WHEN “000100” => LED7SOUT <= “1011011”;WHEN “000101” => LED7SOUT <= “0000110”;WHEN “000110” => LED7SOUT <= “0111111”;---06 40 WHEN “000111” => LED7SOUT <= “1101111”;WHEN “001000” => LED7SOUT <= “1111111”;WHEN “001001” => LED7SOUT <= “0000111”;WHEN “001010” => LED7SOUT <= “1111101”;WHEN “001011” => LED7SOUT <= “1101101”;---11 35 WHEN “001100” => LED7SOUT <= “1100110”;WHEN “001101” => LED7SOUT <= “1001111”;WHEN “001110” => LED7SOUT <= “1011011”;WHEN “001111” => LED7SOUT <= “0000110”;WHEN “010000” => LED7SOUT <= “0111111”;---16 30 WHEN “010001” => LED7SOUT <= “1101111”;WHEN “010010” => LED7SOUT <= “1111111”;WHEN “010011” => LED7SOUT <= “0000111”;WHEN “010100” => LED7SOUT <= “1111101”;WHEN “010101” => LED7SOUT <= “1101101”;---21 25 WHEN “010110” => LED7SOUT <= “1100110”;WHEN “010111” => LED7SOUT <= “1001111”;WHEN “011000” => LED7SOUT <= “1011011”;WHEN “011001” => LED7SOUT <= “0000110”;WHEN “011010” => LED7SOUT <= “0111111”;---26 20 WHEN “011011” => LED7SOUT <= “1101111”;WHEN “011100” => LED7SOUT <= “1111111”;WHEN “011101” => LED7SOUT <= “0000111”;WHEN “011110” => LED7SOUT <= “1111101”;WHEN “011111” => LED7SOUT <= “1101101”;---31 15 WHEN “100000” => LED7SOUT <= “1100110”;WHEN “100001” => LED7SOUT <= “1001111”;WHEN “100010” => LED7SOUT <= “1011011”;WHEN “100011” => LED7SOUT <= “0000110”;WHEN “100100” => LED7SOUT <= “0111111”;---35 10 WHEN “100101” => LED7SOUT <= “1101111”;WHEN “100110” => LED7SOUT <= “1111111”;WHEN “100111” => LED7SOUT <= “0000111”;WHEN “101000” => LED7SOUT <= “1111101”;WHEN “101001” => LED7SOUT <= “1101101”;WHEN “101010” => LED7SOUT <= “1100110”;WHEN “101011” => LED7SOUT <= “1001111”;WHEN “101100” => LED7SOUT <= “1011011”;WHEN “101101” => LED7SOUT <= “0000110”;---45 01 WHEN OTHERS => NULL;END CASE;

WHEN OTHERS => NULL;END CASE;-----------WHEN “01” =>---主黃支紅狀態(tài) OK CASE BITSEL IS WHEN “000” =>---主黃支紅狀態(tài) 點(diǎn)亮支干道十位數(shù)字 CASE CNTIN IS WHEN “000001” => LED7SOUT <= “0111111”;WHEN “000010” => LED7SOUT <= “0111111”;WHEN “000011” => LED7SOUT <= “0111111”;WHEN “000100” => LED7SOUT <= “0111111”;WHEN “000101” => LED7SOUT <= “0111111”;WHEN OTHERS => NULL;END CASE;WHEN “001” =>---主黃支紅狀態(tài) 點(diǎn)亮支干道個(gè)位數(shù)字 CASE CNTIN IS WHEN “000001” => LED7SOUT <= “1101101”;WHEN “000010” => LED7SOUT <= “1100110”;WHEN “000011” => LED7SOUT <= “1001111”;WHEN “000100” => LED7SOUT <= “1011011”;WHEN “000101” => LED7SOUT <= “0000110”;WHEN OTHERS => NULL;END CASE;WHEN “010”=>---主黃支紅狀態(tài) 點(diǎn)亮主干道十位數(shù)字 CASE CNTIN IS WHEN “000001” => LED7SOUT <= “0111111”;WHEN “000010” => LED7SOUT <= “0111111”;WHEN “000011” => LED7SOUT <= “0111111”;WHEN “000100” => LED7SOUT <= “0111111”;WHEN “000101” => LED7SOUT <= “0111111”;WHEN OTHERS => NULL;END CASE;WHEN“011” =>---主黃支紅狀態(tài) 點(diǎn)亮主干道個(gè)位數(shù)字 CASE CNTIN IS WHEN “000001” => LED7SOUT <= “1101101”;WHEN “000010” => LED7SOUT <= “1100110”;WHEN “000011” => LED7SOUT <= “1001111”;WHEN “000100” => LED7SOUT <= “1011011”;WHEN “000101” => LED7SOUT <= “0000110”;WHEN OTHERS => NULL;END CASE;WHEN OTHERS => NULL;END CASE;-----------------------WHEN “10” =>---支綠主紅狀態(tài) OK CASE BITSEL IS WHEN “000” =>---支綠主紅狀態(tài) 點(diǎn)亮支干道十位數(shù)字 OK CASE CNTIN IS WHEN “000001” => LED7SOUT <= “1011011”;---01 25 WHEN “000010” => LED7SOUT <= “1011011”;WHEN “000011” => LED7SOUT <= “1011011”;WHEN “000100” => LED7SOUT <= “1011011”;WHEN “000101” => LED7SOUT <= “1011011”;WHEN “000110” => LED7SOUT <= “1011011”;---06 20 WHEN “000111” => LED7SOUT <= “0000110”;WHEN “001000” => LED7SOUT <= “0000110”;WHEN “001001” => LED7SOUT <= “0000110”;WHEN “001010” => LED7SOUT <= “0000110”;WHEN “001011” => LED7SOUT <= “0000110”;---11 15 WHEN “001100” => LED7SOUT <= “0000110”;WHEN “001101” => LED7SOUT <= “0000110”;WHEN “001110” => LED7SOUT <= “0000110”;WHEN “001111” => LED7SOUT <= “0000110”;WHEN “010000” => LED7SOUT <= “0000110”;---16 10 WHEN “010001” => LED7SOUT <= “0111111”;WHEN “010010” => LED7SOUT <= “0111111”;WHEN “010011” => LED7SOUT <= “0111111”;WHEN “010100” => LED7SOUT <= “0111111”;WHEN “010101” => LED7SOUT <= “0111111”;---21 05 WHEN “010110” => LED7SOUT <= “0111111”;WHEN “010111” => LED7SOUT <= “0111111”;WHEN “011000” => LED7SOUT <= “0111111”;WHEN “011001” => LED7SOUT <= “0111111”;---25 01 WHEN OTHERS => NULL;END CASE;WHEN “001” =>---支綠主紅狀態(tài) 點(diǎn)亮支干道個(gè)位數(shù)字 OK CASE CNTIN IS WHEN “000001” => LED7SOUT <= “1101101”;---01 25 WHEN “000010” => LED7SOUT <= “1100110”;WHEN “000011” => LED7SOUT <= “1001111”;WHEN “000100” => LED7SOUT <= “1011011”;WHEN “000101” => LED7SOUT <= “0000110”;WHEN “000110” => LED7SOUT <= “0111111”;---06 20 WHEN “000111” => LED7SOUT <= “1101111”;WHEN “001000” => LED7SOUT <= “1111111”;WHEN “001001” => LED7SOUT <= “0000111”;WHEN “001010” => LED7SOUT <= “1111101”;WHEN “001011” => LED7SOUT <= “1101101”;---11 15 WHEN “001100” => LED7SOUT <= “1100110”;WHEN “001101” => LED7SOUT <= “1001111”;WHEN “001110” => LED7SOUT <= “1011011”;WHEN “001111” => LED7SOUT <= “0000110”;WHEN “010000” => LED7SOUT <= “0111111”;---16 10 WHEN “010001” => LED7SOUT <= “1101111”;WHEN “010010” => LED7SOUT <= “1111111”;WHEN “010011” => LED7SOUT <= “0000111”;WHEN “010100” => LED7SOUT <= “1111101”;WHEN “010101” => LED7SOUT <= “1101101”;---21 05 WHEN “010110” => LED7SOUT <= “1100110”;WHEN “010111” => LED7SOUT <= “1001111”;WHEN “011000” => LED7SOUT <= “1011011”;WHEN “011001” => LED7SOUT <= “0000110”;---25 01 WHEN OTHERS => NULL;END CASE;WHEN “010” =>---支綠主紅狀態(tài) 點(diǎn)亮主干道十位數(shù)字 OK CASE CNTIN IS WHEN “000001” => LED7SOUT <= “1001111”;---01 30 WHEN “000010” => LED7SOUT <= “1011011”;---02 29 WHEN “000011” => LED7SOUT <= “1011011”;WHEN “000100” => LED7SOUT <= “1011011”;WHEN “000101” => LED7SOUT <= “1011011”;WHEN “000110” => LED7SOUT <= “1011011”;---06 25 WHEN “000111” => LED7SOUT <= “1011011”;WHEN “001000” => LED7SOUT <= “1011011”;WHEN “001001” => LED7SOUT <= “1011011”;WHEN “001010” => LED7SOUT <= “1011011”;WHEN “001011” => LED7SOUT <= “1011011”;---11 20 WHEN “001100” => LED7SOUT <= “0000110”;WHEN “001101” => LED7SOUT <= “0000110”;WHEN “001110” => LED7SOUT <= “0000110”;WHEN “001111” => LED7SOUT <= “0000110”;WHEN “010000” => LED7SOUT <= “0000110”;---16 15 WHEN “010001” => LED7SOUT <= “0000110”;WHEN “010010” => LED7SOUT <= “0000110”;WHEN “010011” => LED7SOUT <= “0000110”;WHEN “010100” => LED7SOUT <= “0000110”;WHEN “010101” => LED7SOUT <= “0000110”;---21 10 WHEN “010110” => LED7SOUT <= “0111111”;WHEN “010111” => LED7SOUT <= “0111111”;WHEN “011000” => LED7SOUT <= “0111111”;WHEN “011001” => LED7SOUT <= “0111111”;---25 06 WHEN OTHERS => NULL;END CASE;WHEN“011” =>---支綠主紅狀態(tài) 點(diǎn)亮主干道個(gè)位數(shù)字 OK CASE CNTIN IS WHEN “000001” => LED7SOUT <= “0111111”;---01 30 WHEN “000010” => LED7SOUT <= “1101111”;---02 29 WHEN “000011” => LED7SOUT <= “1111111”;WHEN “000100” => LED7SOUT <= “0000111”;WHEN “000101” => LED7SOUT <= “1111101”;WHEN “000110” => LED7SOUT <= “1101101”;WHEN “000111” => LED7SOUT <= “1100110”;---07 24 WHEN “001000” => LED7SOUT <= “1001111”;WHEN “001001” => LED7SOUT <= “1011011”;WHEN “001010” => LED7SOUT <= “0000110”;WHEN “001011” => LED7SOUT <= “0111111”;WHEN “001100” => LED7SOUT <= “1101111”;---12 19 WHEN “001101” => LED7SOUT <= “1111111”;WHEN “001110” => LED7SOUT <= “0000111”;WHEN “001111” => LED7SOUT <= “1111101”;WHEN “010000” => LED7SOUT <= “1101101”;WHEN “010001” => LED7SOUT <= “1100110”;---17 14 WHEN “010010” => LED7SOUT <= “1001111”;WHEN “010011” => LED7SOUT <= “1011011”;WHEN “010100” => LED7SOUT <= “0000110”;WHEN “010101” => LED7SOUT <= “0111111”;WHEN “010110” => LED7SOUT <= “1101111”;---22 09 WHEN “010111” => LED7SOUT <= “1111111”;WHEN “011000” => LED7SOUT <= “0000111”;WHEN “011001” => LED7SOUT <= “1111101”;---25 06 WHEN OTHERS => NULL;END CASE;

WHEN OTHERS => NULL;END CASE;------------

WHEN “11” =>---支黃主紅狀態(tài) OK CASE BITSEL IS WHEN “000” =>---支黃主紅狀態(tài) 點(diǎn)亮支干道十位數(shù)字 CASE CNTIN IS WHEN “000001” => LED7SOUT <= “0111111”;WHEN “000010” => LED7SOUT <= “0111111”;WHEN “000011” => LED7SOUT <= “0111111”;WHEN “000100” => LED7SOUT <= “0111111”;WHEN “000101” => LED7SOUT <= “0111111”;WHEN OTHERS => NULL;END CASE;WHEN “001” =>---支黃主紅狀態(tài) 點(diǎn)亮支干道個(gè)位數(shù)字 CASE CNTIN IS WHEN “000001” => LED7SOUT <= “1101101”;WHEN “000010” => LED7SOUT <= “1100110”;WHEN “000011” => LED7SOUT <= “1001111”;WHEN “000100” => LED7SOUT <= “1011011”;WHEN “000101” => LED7SOUT <= “0000110”;WHEN OTHERS => NULL;END CASE;WHEN “010” =>---支黃主紅狀態(tài) 點(diǎn)亮主干道十位數(shù)字 CASE CNTIN IS WHEN “000001” => LED7SOUT <= “0111111”;WHEN “000010” => LED7SOUT <= “0111111”;WHEN “000011” => LED7SOUT <= “0111111”;WHEN “000100” => LED7SOUT <= “0111111”;WHEN “000101” => LED7SOUT <= “0111111”;WHEN OTHERS => NULL;END CASE;WHEN “011” =>---支黃主紅狀態(tài) 點(diǎn)亮主干道個(gè)位數(shù)字 CASE CNTIN IS WHEN “000001” => LED7SOUT <= “1101101”;WHEN “000010” => LED7SOUT <= “1100110”;WHEN “000011” => LED7SOUT <= “1001111”;WHEN “000100” => LED7SOUT <= “1011011”;WHEN “000101” => LED7SOUT <= “0000110”;WHEN OTHERS => NULL;END CASE;

WHEN OTHERS => NULL;END CASE;

------------END CASE;END PROCESS;END behav;

第二篇:FPGA交通燈實(shí)驗(yàn)報(bào)告

交通燈實(shí)驗(yàn)報(bào)告

一,實(shí)驗(yàn)?zāi)康?/p>

實(shí)現(xiàn)兩路信號(hào)燈交替亮起,并利用兩組數(shù)碼管分別對(duì)兩路信號(hào)進(jìn)行倒計(jì)時(shí)。

兩路信號(hào)時(shí)間分別為:

V:綠燈(30S)

H:紅燈(35S)

黃燈(5s)

綠燈(30S)

紅燈(35S)

黃燈(5S)

二,實(shí)驗(yàn)步驟 建立工程

可在歡迎界面點(diǎn)擊“Creat a New Project”進(jìn)入工程建立界面,亦可關(guān)閉歡迎界面,點(diǎn)擊菜單欄的“File”,點(diǎn)擊“New Project Wizard”進(jìn)入建立工程界面。右側(cè)為建立工程界面,點(diǎn)擊next。

在此界面選定工程路徑,取好工程名,點(diǎn)擊“Next”。注意:路徑中不能有中文,工程名也不能有中文。

一直點(diǎn)擊“Next”進(jìn)入器件設(shè)置界面,DE2-70開發(fā)工具采用的Cyclone II系列的EP2C70F896C6N。點(diǎn)擊“Finish”,完成工程建立

1、點(diǎn)擊“File”,點(diǎn)擊“New” 選擇“Verilog HDL” 2,點(diǎn)擊主界面工具欄中的 選擇“Verilog HDL”

3、寫入verilog代碼。

代碼如下:

module traffic(Clk_50M,Rst,LedR_H,LedG_H,LedY_H,LedR_V,LedG_V,LedY_V,Seg7_VH,Seg7_VL,Seg7_HH,Seg7_HL,led15);

parameter S1=2'b00;parameter S2=2'b01;parameter S3=2'b10;parameter S4=2'b11;

input Clk_50M,Rst;output LedR_H,LedG_H,LedY_H,LedR_V,LedG_V,LedY_V;output[6:0] Seg7_VH,Seg7_VL,Seg7_HH,Seg7_HL;output led15;

//-------------div for 1Hz-------start----reg Clk_1Hz;reg [31:0] Cnt_1Hz;always@(posedge Clk_50M or negedge Rst)begin

if(!Rst)

begin

Cnt_1Hz<=1;

Clk_1Hz<=1;

end

else

begin

if(Cnt_1Hz>=25000000)

end

//-----------div for 1Hz------end-----reg[7:0] Cnt30,CntH,CntV,CntHH,CntVV;reg[7:0] CntDis,CntDiss;//-----------30 counter and seg7---start---reg LedR_H,LedG_H,LedY_H,LedR_V,LedG_V,LedY_V;always@(posedge Clk_1Hz)begin

end

begin

Cnt_1Hz<=1;

Clk_1Hz<=~Clk_1Hz;

end

else

Cnt_1Hz<=Cnt_1Hz + 1;

case(state)

S1:

end

always@(posedge Clk_1Hz)begin

case(stateV)

S1:

begin

if(CntV>=30)

CntV<=1;

begin

if(Cnt30>=30)

Cnt30<=1;

else

Cnt30<=Cnt30 + 1;S2:

begin

if(Cnt30>=5)

Cnt30<=1;end

else

Cnt30<=Cnt30 + 1;S3:

begin

if(Cnt30>=30)

Cnt30<=1;end

else

Cnt30<=Cnt30 + 1;S4:

begin

if(Cnt30>=5)

Cnt30<=1;end

else

Cnt30<=Cnt30 + 1;end endcase

else

CntV<=CntV + 1;

S2: begin

end

end if(CntV>=5)

CntV<=1;

else

CntV<=CntV + 1;end

S3:

begin

if(CntV>=35)

CntV<=1;

else

CntV<=CntV + 1;end endcase always@(posedge Clk_1Hz)begin

case(stateH)

S1:

end

always@(negedge Clk_50M or negedge Rst)begin

begin

if(CntH>=35)

CntH<=1;

else

CntH<=CntH + 1;

S2:

begin

if(CntH>=30)

CntH<=1;end

else

CntH<=CntH + 1;end

S3:

begin

if(CntH>=5)

CntH<=1;

else

CntH<=CntH + 1;end endcase

case(state)

S1:

end always@(negedge Clk_50M or negedge Rst)begin

case(state)

S1:

end

//16進(jìn)制計(jì)數(shù)器轉(zhuǎn)換為用于顯示的10進(jìn)制計(jì)數(shù)器 always@(posedge Clk_50M)begin

if(CntVV>29)

begin

CntDis[7:4]<=3;

CntDis[3:0]<=CntVV20;end else if(CntVV>9)begin

CntDis[7:4]<=1;

CntDis[3:0]<=CntVV30;end else if(CntHH>19)begin

CntDiss[7:4]<=2;

CntDiss[3:0]<=CntHH10;end else

CntDiss<=CntHH;

end

if(Cnt30>=5)

end

end S3:

begin

state<=S4;

end S4:

begin

state<=S1;

end default:

begin

state<=S1;

end endcase

if(Cnt30>=30)

if(Cnt30>=5)always@(posedge Clk_1Hz)begin

case(state)

S1:

end

always@(posedge Clk_50M or negedge Rst)

begin

stateH<=S1;

stateV<=S1;

end S2:

begin

stateH<=S1;

stateV<=S2;

end S3:

begin

stateH<=S2;

stateV<=S3;

end S4:

begin

stateH<=S3;

stateV<=S3;

end endcase begin

if(!Rst)

begin

LedR_H<=0;

else

LedG_H<=0;LedY_H<=0;

LedR_V<=0;

LedG_V<=0;end LedY_V<=0;

begin

case(state)

S1:

begin

LedR_H<=1;LedG_H<=0;LedY_H<=0;LedR_V<=0;LedG_V<=1;LedY_V<=0;end

S2:

begin

LedR_H<=1;LedG_H<=0;LedY_H<=0;LedR_V<=0;LedG_V<=0;LedY_V<=1;end

S3:

begin

LedR_H<=0;LedG_H<=1;LedY_H<=0;LedR_V<=1;LedG_V<=0;LedY_V<=0;end

S4:

begin LedR_H<=0;LedG_H<=0;

end

LedY_H<=1;LedR_V<=1;LedG_V<=0;LedY_V<=0;end

default:

begin

end LedR_H<=0;LedG_H<=0;LedY_H<=0;LedR_V<=0;LedG_V<=0;LedY_V<=0;end

endcase assign led15=state;

endmodule

module SEG7_LUT input [3:0] iDIG;output reg

always @(iDIG)begin

case(iDIG)4'h1: oSEG = 7'b1111001;

//---t----4'h2: oSEG = 7'b0100100;// |

| 4'h3: oSEG = 7'b0110000;// lt rt

4'h4: oSEG = 7'b0011001;// |

| 4'h5: oSEG = 7'b0010010;//---m----4'h6: oSEG = 7'b0000010;// |

| 4'h7: oSEG = 7'b1111000;// lb rb 4'h8: oSEG = 7'b0000000;// |

| 4'h9: oSEG = 7'b0011000;//---b----4'ha: oSEG = 7'b0001000;4'hb: oSEG = 7'b0000011;4'hc: oSEG = 7'b1000110;4'hd: oSEG = 7'b0100001;4'he: oSEG = 7'b0000110;[6:0] oSEG;[6:0] oSEG;(oSEG,iDIG);

end

4'hf: oSEG = 7'b0001110;4'h0: oSEG = 7'b1000000;endcase endmodule 編譯工程

保存文件,將文件放在所建工程所在路徑下 點(diǎn)擊主界面工具欄中的圖標(biāo)

也可點(diǎn)擊菜單欄中“Processing”,點(diǎn)擊“Start Compilation”

分配關(guān)鍵如下:

Clk_50M Input PIN_AD15 LedG_H Output PIN_AD9 LedG_V Output PIN_AJ6 LedR_H Output PIN_AJ7)LedR_V Output PIN_AJ5)LedY_H Output PIN_AD8 LedY_V Output PIN_AK5 Rst Input PIN_AA23 Seg7_HH[6] Output PIN_G1 Seg7_HH[5] Output PIN_H3 Seg7_HH[4] Output PIN_H2 Seg7_HH[3] Output PIN_H1 Seg7_HH[2] Output PIN_J2 Seg7_HH[1] Output PIN_J1 Seg7_HH[0] Output PIN_K3

Seg7_HL[6] Seg7_HL[5] Seg7_HL[4] Seg7_HL[3] Seg7_HL[2] Seg7_HL[1] Seg7_HL[0] Seg7_VH[6] Seg7_VH[5] Seg7_VH[4] Seg7_VH[3] Seg7_VH[2] Seg7_VH[1] Seg7_VH[0] Seg7_VL[6] Seg7_VL[5] Seg7_VL[4] Seg7_VL[3] Seg7_VL[2] Seg7_VL[1] Seg7_VL[0] Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output PIN_E4 PIN_F4 PIN_G4 PIN_H8 PIN_H7 PIN_H4 PIN_H6 PIN_AD17 PIN_AF17 7 PIN_AE17 7 PIN_AG16 PIN_AF16 7 PIN_AE16 7 PIN_AG13 PIN_AD12 PIN_AD11 PIN_AF10 8 PIN_AD10 PIN_AH9 8 PIN_AF9 8 PIN_AE8 8

燒寫代碼

在管腳配置完成后,還需將工程再編譯一次,成功后,點(diǎn)擊主界面工具欄中的亦可點(diǎn)擊主界面菜單欄中“Tools”,點(diǎn)擊“Programmer”

進(jìn)入代碼燒寫界面后,點(diǎn)擊“Start”,當(dāng)“Progress”為100%時(shí),表示燒寫完成,這是可觀察DE2-70板現(xiàn)象

獲得預(yù)期的效果,兩組的信號(hào)紅黃綠燈交替切換,計(jì)數(shù)器記為零時(shí)信號(hào)燈切換狀態(tài),紅燈35s,黃燈5s,綠燈30s。三,心得體會(huì)

通過本次實(shí)驗(yàn)初步了解了EDA技術(shù),熟悉了FPGA開發(fā)板的開發(fā)流程,鍛煉了動(dòng)手能力。

第三篇:基于FPGA的智能交通燈

設(shè)計(jì)題目: 基于FPGA的交通燈控制系統(tǒng)設(shè)計(jì)

專 業(yè):

學(xué)生姓名: 學(xué) 號(hào):

起迄日期: 2014.8.22.--2014.9.22.指導(dǎo)教師: 教研室主任:

目錄

1.緒論..............................................................1 2.課題研究背景及意義................................................1 3.設(shè)計(jì)要求..........................................................1 4.設(shè)計(jì)方案..........................................................1 4.1方案比較....................................錯(cuò)誤!未定義書簽。4.2 方案說明...................................錯(cuò)誤!未定義書簽。5.VHDL語言介紹...................................錯(cuò)誤!未定義書簽。6.系統(tǒng)仿真..........................................................3 6.1 系統(tǒng)電路框圖................................................4 6.2設(shè)計(jì)結(jié)果仿真.................................................4 7.心得體會(huì)..........................................................5 8.參考文獻(xiàn)..........................................................6 7.附件..............................................................6

摘要:針對(duì)現(xiàn)實(shí)中越來越嚴(yán)重的城市交通擁堵現(xiàn)象,提出了一種城市十字路口交通信號(hào)燈控制與FPGA實(shí)現(xiàn)的新方法。設(shè)計(jì)的智能交通控制系統(tǒng)利用對(duì)相向車道采用不同步的紅綠燈信號(hào)控制方法,能夠減少交通資源浪費(fèi),大幅提高十字路口的車輛通行效率。利用超高速硬件描述語言VHDL設(shè)計(jì)十字路口交通信號(hào)燈控制器,實(shí)現(xiàn)主干道和支干道的交通控制功能,并通過Quartus II完成綜合、仿真、進(jìn)行管腳分配、繪出仿真波形及原理圖。

關(guān)鍵字:硬件描述語言VHDL;交通信號(hào)燈;智能控制

1.緒論

智能的交通燈指揮著人們和各種車輛的安全運(yùn)行,實(shí)現(xiàn)紅、黃、綠燈的自動(dòng)指揮是城鄉(xiāng)交通管理現(xiàn)代化的重要課題。在城鄉(xiāng)街道的十字交叉路口,為了保證交通秩序和行人的安全,一般在每條街道上各有一組紅、黃、綠交通信號(hào)燈,其中紅燈亮,表示該條道禁止通行;黃燈亮該條道路上未過停車線的停止通行,已過停車線的車輛繼續(xù)通行;綠燈亮,表示該條道路允許通行。交通燈自動(dòng)控制十字路口兩組紅、黃、綠交通燈的狀態(tài)轉(zhuǎn)換,指揮各種車輛和行人安全通行。實(shí)現(xiàn)十字路口交通管理自動(dòng)化。

DEA技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴(kuò)大與深入,在電子信息,通信,自動(dòng),控制及計(jì)算機(jī)應(yīng)用等領(lǐng)域的重要性日益突出,因此本論文研究基于FPGA的交通燈設(shè)計(jì)。FPGA中有大量實(shí)現(xiàn)組合邏輯的資源,可以完成較大規(guī)模的組合邏輯電路設(shè)計(jì),而其中相當(dāng)數(shù)量的存儲(chǔ)電路(觸發(fā)器)又可完成復(fù)雜的時(shí)序邏輯電路設(shè)計(jì)。通過使用各種EDA工具,用原理圖或硬件描述語言,可以很方便地將復(fù)雜的電路在FPGA中實(shí)現(xiàn)。像典型的數(shù)字系統(tǒng)分頻器,數(shù)字鐘,數(shù)字頻率計(jì)等等都可用FPGA完成。本文以QuartusII 軟件為開發(fā)平臺(tái),通過VHDL硬件描述語言以及原理圖的輸入方式來設(shè)計(jì)交通燈。

2.課題研究背景及意義

隨著公路交通運(yùn)輸?shù)陌l(fā)展,交通擁擠、道路阻塞和交通事故頻繁發(fā)生等問題越來越嚴(yán)重地困擾著世界各大城市。相對(duì)于交通運(yùn)輸工具的飛速發(fā)展,我國交通配套設(shè)施建設(shè)明顯滯后,道路安全網(wǎng)絡(luò)、道路標(biāo)識(shí)、交通指揮中心仍然不足。單獨(dú)從車輛方面或道路方面考慮,均很難有效地解決交通問題。通過采用信息通信技術(shù)、電子技術(shù)以及其他科學(xué)技術(shù)把它們聯(lián)系起來,并實(shí)現(xiàn)智能化的交通控制才能解決根本問題,交通信息化需要融合科技力量才能使目前的交通問題得到改善。

在現(xiàn)代文明高速發(fā)展的社會(huì),道路的高度發(fā)達(dá)使得整個(gè)社會(huì)進(jìn)步的速度進(jìn)一步的加快,交通燈的出現(xiàn)是社會(huì)發(fā)展的必然產(chǎn)物。交通燈在道路事業(yè)中占有舉足輕重的地位,它直接影響到公路以及市區(qū)內(nèi)的通車質(zhì)量。所以,智能交通燈的研究具有重大意義。

3.設(shè)計(jì)要求

主干道綠燈亮支干道紅燈亮?xí)r間是50秒,接下來黃燈閃爍5秒,此時(shí)主干道的綠燈和支干道的紅燈繼續(xù)亮;然后是主干道紅燈亮支干道綠燈亮,時(shí)間為20秒,再黃燈閃5秒同時(shí)主干道的紅燈和支干道的綠燈也繼續(xù)亮。

4.設(shè)計(jì)方案

首先根據(jù)系統(tǒng)的需要進(jìn)行分析。系統(tǒng)要求主干道綠燈亮支干道紅燈亮?xí)r間是50秒,接下來黃燈閃爍5秒,此時(shí)主干道的綠燈和支干道的紅燈繼續(xù)亮,然后是 主干道紅燈亮支干道綠燈亮?xí)r間為20秒,再黃燈閃5秒同時(shí)主干道的紅燈和支干道的綠燈也繼續(xù)亮。

因此將整個(gè)系統(tǒng)分為計(jì)時(shí)模塊和控制模塊組成。計(jì)時(shí)模塊中秒模塊主要將50MHZ的時(shí)鐘進(jìn)行分頻得到20ns的時(shí)鐘信號(hào),再將信號(hào)50000000倍得到秒信號(hào)。控制模塊由交通燈控制模塊以及黃燈閃爍模塊構(gòu)成。

Verilog HDL語言介紹 5.1 Verilog HDL特點(diǎn)

Verilog HDL語言不僅定義了語法,而且對(duì)每個(gè)語法結(jié)構(gòu)都定義了清晰地模擬、仿真語義。使用這種語言編寫的模型可以方便地使用Verilog仿真器進(jìn)行驗(yàn)證。Verilog HDL從C語言繼承了多種操作符和結(jié)構(gòu)。Verilog HDL提供了擴(kuò)展的建模能力和擴(kuò)展模塊。

Verilog HDL之所以成為和VHDL并駕齊驅(qū)的描述語言,以為它有如下特點(diǎn):

(1)基本邏輯門,例如and、or和nand等都內(nèi)置在語言中。

(2)用戶定義原語(UDP)創(chuàng)建的靈活性。用戶定義的原語既可以是組合邏輯原語,也可以是時(shí)序邏輯原語。

(3)開關(guān)級(jí)基本結(jié)構(gòu)模型,例如pmos 和nmos等也被內(nèi)置在語言中。(4)提供顯式語言結(jié)構(gòu)指定設(shè)計(jì)中的端口到端口的時(shí)延及路徑時(shí)延和設(shè)計(jì)的時(shí)序檢查。

(5)可采用三種不同方式或混合方式對(duì)設(shè)計(jì)建模。這些方式包括:行為描述方式—使用過程化結(jié)構(gòu)建模;數(shù)據(jù)流方式—使用連續(xù)賦值語句方式建模;結(jié)構(gòu)化方式—使用門和模塊實(shí)例語句描述建模。

(6)Verilog HDL中有兩類數(shù)據(jù)類型:線網(wǎng)數(shù)據(jù)類型和寄存器數(shù)據(jù)類型。線網(wǎng)類型表示構(gòu)件間的物理連線,而寄存器類型表示抽象的數(shù)據(jù)存儲(chǔ)元件。

(7)能夠描述層次設(shè)計(jì),可使用模塊實(shí)例結(jié)構(gòu)描述任何層次。設(shè)計(jì)能夠在多個(gè)層次上加以描述,從開關(guān)級(jí)、門級(jí)、寄存器傳送級(jí)(RTL)到算法級(jí)。

(8)設(shè)計(jì)的規(guī)模可以是任意的;語言不對(duì)設(shè)計(jì)的規(guī)模(大小)施加任何限制。Verilog HDL不再是某些公司的專有語言而是IEEE標(biāo)準(zhǔn)。人和機(jī)器都可閱讀Verilog 語言,因此它可作為EDA的工具和設(shè)計(jì)者之間的交互語言。

5.2Verilog HDL程序基本結(jié)構(gòu)

模塊是Verilog HDL的基本描述單位,描述某個(gè)設(shè)計(jì)的功能或結(jié)構(gòu)及與其他模塊通信的外部端口。一個(gè)模塊的基本語法如下:

module module_name//模塊名稱

(port_list);//輸入輸出信號(hào)列表//說明 reg//寄存器 wire//線網(wǎng)

parameter//參數(shù) input//輸入信號(hào) output//輸出信號(hào) inout//輸入輸出信號(hào) function//函數(shù) task//任務(wù) …//語句

Initial statement Always statement Module instantiation// Gate instantiation// UDP instantiation// Continuous assignment// Endmodule 說明部分用于定義不同的項(xiàng),例如模塊描述中使用寄存器和參數(shù)、語句定義設(shè)計(jì)的功能和結(jié)構(gòu)。說明部分和語句可以放置在模塊的任何地方,但是變量、寄存器、線網(wǎng)和參數(shù)等的說明部分必須在使用前出現(xiàn)。為了使模塊描述清晰和具有良好的可讀性,最好將所有的說明部分放在語句前。

6.系統(tǒng)仿真

本文的仿真是在QuartuslI上進(jìn)行的。QuartuslI 是 Altera 提供的 FPGA/CPLD 開發(fā)集成環(huán)境,Altera 是世界上最大的可編程邏輯器件供應(yīng)商之一。QimrtiisII在21世紀(jì) 初推出,是Altera前一代FPGA/CPLD集成開發(fā)環(huán)境MAX+plusII的更 新?lián)Q代產(chǎn)品,其界面友好,使用便捷。QuartiisII提供了一種與結(jié)構(gòu) 無關(guān)的設(shè)計(jì)環(huán)境,使設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、快速處理和器件 編程。

Altera的QuartusII提供了完整的多平臺(tái)設(shè)計(jì)環(huán)境,能滿足各 種特定設(shè)計(jì)的需要,也是單芯片可編程系統(tǒng)(SOPC)設(shè)計(jì)的綜合性環(huán) 境和SOPC開發(fā)的基本設(shè)計(jì)工具,并為Altera DSP開發(fā)包進(jìn)行系統(tǒng)模 型設(shè)計(jì)提供了集成綜合環(huán)境。

QuartusII包括模塊化的編輯器。編輯器包括的功能模塊有分析 /綜合器、適配器、裝配器、時(shí)序分析器、設(shè)計(jì)輔助模塊、EDA網(wǎng)表 文件生成器、編輯數(shù)據(jù)接口等。可以通過選擇Start Compilation來運(yùn)行所有的編輯器模塊,也可以選擇單獨(dú)運(yùn)行各個(gè)模塊。

基于Quartus II的設(shè)計(jì)流程:

(1)建立工作庫文件夾和編輯設(shè)計(jì)文件(2)創(chuàng)建工程;(3)全程編譯工程;(4)時(shí)序仿真;(5)引腳鎖定;

(6)下載至硬件系統(tǒng)驗(yàn)證。

6.1 系統(tǒng)電路框圖

系統(tǒng)整體電路設(shè)計(jì)采用原理圖輸入法,將各個(gè)模塊包括子模塊進(jìn)行連接,得到系統(tǒng)的電路框圖如下圖所示。

圖三 系統(tǒng)整體電路圖

6.2設(shè)計(jì)結(jié)果仿真

利用Quartus II軟件對(duì)本設(shè)計(jì)的程序進(jìn)行編譯,得到系統(tǒng)的仿真圖。

交通燈運(yùn)行時(shí)時(shí)序仿真圖1

交通燈運(yùn)行時(shí)時(shí)序仿真圖1

7.心得體會(huì)

在這次課程設(shè)計(jì)中,我再一次的體驗(yàn)到了細(xì)心對(duì)一個(gè)編程者的重要性,和程序的規(guī)范性對(duì)于程序的重要性,這些平時(shí)我們忽略的問題,其實(shí)有時(shí)候關(guān)乎著我們編程的成功與否的。

在verilog語言中,我們必須注意其與C語言的異同,比如格式和變量定義,還有模塊的調(diào)用,和時(shí)鐘信號(hào)的應(yīng)用。我覺得需要在以后多加練習(xí),可以對(duì)以后的學(xué)習(xí)和工作帶來莫大的幫助。這次的

課程設(shè)計(jì)相對(duì)以前的較難,其實(shí)就是對(duì)我們的一次考核,也是一次考驗(yàn),它培養(yǎng)了學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)我們實(shí)際工作能力的具體訓(xùn)練和考察過程。然而從理論到實(shí)踐的轉(zhuǎn)化過程,我在做課程設(shè)計(jì)的近一個(gè)月時(shí)間里,有了更進(jìn)一步的認(rèn)識(shí)和了解,要想學(xué)知識(shí)要重在實(shí)踐,要通過不斷的實(shí)際操作才能更好地學(xué)習(xí)。

通過這次課程設(shè)計(jì),我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能

力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,遇到了各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知解得不夠深刻,掌握得不夠牢固。實(shí)踐出真知,通過親自動(dòng)手制作,使我們掌握的知識(shí)不再是紙上談兵。

8.參考文獻(xiàn)

(1)程云長.可編程邏輯器件與VHDL語言[M].北京:科學(xué)出版社,2005(2)黃智偉.全國大學(xué)生電子設(shè)計(jì)競(jìng)賽系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2006(3)黃智偉.全國大學(xué)生電子設(shè)計(jì)競(jìng)賽電路設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2006(4)黃智偉.全國大學(xué)生電子設(shè)計(jì)競(jìng)賽 常用電路模塊制作[M].北京:北京航空航天大學(xué)出版社,2010(5)黃智偉等.基于NI multisim的電子電路計(jì)算機(jī)仿真設(shè)計(jì)與分析[M].北京:電子工業(yè)出版社,2007(6)黃智偉.印制電路板(PCB)設(shè)計(jì)技術(shù)與實(shí)踐[M].北京:電子工業(yè)出版社,2009(7)高吉祥等.電子技術(shù)基礎(chǔ)實(shí)驗(yàn)與課程設(shè)計(jì)[M].北京:電子工業(yè)出版社,2002(8)潘松.EDA技術(shù)實(shí)用教程[M].科學(xué)出版社.2005

7.附件 原程序

`timescale 100ms / 1us //程序中的時(shí)間單位和仿真精度。module signal_led(clk, rst_n, traffic_signal_master_red, traffic_signal_master_green, traffic_signal_master_yellow, traffic_signal_slave_red, traffic_signal_slave_green, traffic_signal_slave_yellow);input clk;input rst_n;output reg

traffic_signal_master_red;// 交通信號(hào)燈主干道紅燈

output reg

traffic_signal_master_green;// 交通信號(hào)燈主干道綠燈

output reg

traffic_signal_master_yellow;// 交通信號(hào)燈主干道黃燈 output reg

traffic_signal_slave_red;// 交通信號(hào)燈次干道紅燈

output reg

traffic_signal_slave_green;// 交通信號(hào)燈次干道綠燈

output reg

traffic_signal_slave_yellow;// 交通信號(hào)燈次干道黃燈

reg signal_red_led;reg signal_green_led;reg signal_yellow_led;reg [31:0] traffic_signal_cnt;parameter

LED_ON

= 1'b0;// 1亮

parameter

LED_OFF

= 1'b1;// 0滅

parameter

TIME_CELL

= 32'd50000000;// 時(shí)間單元時(shí)間 = Time_cell * 20ns(50MHz主頻)parameter START = 32'd0;parameter MASTER_GREEN = TIME_CELL * 20;parameter MASTER_YELLOW_1 = TIME_CELL * 20 + TIME_CELL;parameter MASTER_YELLOW_2 = TIME_CELL * 20 + 2 * TIME_CELL;parameter MASTER_YELLOW_3 = TIME_CELL * 20 + 3 * TIME_CELL;parameter MASTER_YELLOW_4 = TIME_CELL * 20 + 4 * TIME_CELL;parameter MASTER_YELLOW_5 = TIME_CELL * 20 + 5 * TIME_CELL;parameter SLAVE_GREEN = TIME_CELL * 20 + 5 * TIME_CELL + TIME_CELL * 20;parameter SLAVE_YELLOW_1 = TIME_CELL * 20 + 5 * TIME_CELL + TIME_CELL * 20 + TIME_CELL;parameter SLAVE_YELLOW_2 = TIME_CELL * 20 + 5 * TIME_CELL + TIME_CELL * 20 + 2 * TIME_CELL;parameter SLAVE_YELLOW_3 = TIME_CELL * 20 + 5 * TIME_CELL + TIME_CELL * 20 + 3 * TIME_CELL;parameter SLAVE_YELLOW_4 = TIME_CELL * 20 + 5 * TIME_CELL + TIME_CELL * 20 + 4 * TIME_CELL;parameter TOTAL_TIME = TIME_CELL * 20 + 5 * TIME_CELL + TIME_CELL * 20 + 5 * TIME_CELL;

//******************************************************************* // 模塊名稱:時(shí)間計(jì)數(shù)種子 // 功能描述

//******************************************************************* always @(posedge clk or negedge rst_n)begin if(!rst_n)traffic_signal_cnt <= 32'h0;else if(traffic_signal_cnt == TOTAL_TIME)traffic_signal_cnt <= START;else traffic_signal_cnt <= traffic_signal_cnt+1;end //******************************************************************* // 模塊名稱:LED燈閃爍控制 // 功能描述

//******************************************************************* always @(posedge clk or negedge rst_n)begin if(!rst_n)

begin signal_red_led <= LED_OFF;signal_green_led <= LED_OFF;signal_yellow_led <= LED_OFF;end else begin case(traffic_signal_cnt)START

:

begin signal_red_led <= LED_OFF;signal_green_led <= LED_ON;signal_yellow_led <= LED_OFF;end MASTER_GREEN

:

begin signal_red_led <= LED_OFF;signal_green_led <= LED_ON;signal_yellow_led <= LED_ON;end MASTER_YELLOW_1 :

begin signal_red_led <= LED_OFF;signal_green_led <= LED_ON;signal_yellow_led <= LED_OFF;end MASTER_YELLOW_2 :

begin signal_red_led <= LED_OFF;signal_green_led <= LED_ON;signal_yellow_led <= LED_ON;end MASTER_YELLOW_3 :

begin signal_red_led <= LED_OFF;signal_green_led <= LED_ON;signal_yellow_led <= LED_OFF;end MASTER_YELLOW_4 :

begin signal_red_led <= LED_OFF;signal_green_led <= LED_ON;signal_yellow_led <= LED_ON;end MASTER_YELLOW_5 :

begin signal_red_led <= LED_ON;signal_green_led <= LED_OFF;signal_yellow_led <= LED_OFF;end SLAVE_GREEN

:

begin signal_red_led <= LED_ON;signal_green_led <= LED_OFF;signal_yellow_led <= LED_OFF;end SLAVE_YELLOW_1 :

begin signal_red_led <= LED_ON;signal_green_led <= LED_OFF;signal_yellow_led <= LED_ON;end SLAVE_YELLOW_2 :

begin signal_red_led <= LED_ON;signal_green_led <= LED_OFF;signal_yellow_led <= LED_OFF;end SLAVE_YELLOW_3 :

begin signal_red_led <= LED_ON;signal_green_led <= LED_OFF;signal_yellow_led <= LED_ON;end SLAVE_YELLOW_4 :

begin signal_red_led <= LED_ON;signal_green_led <= LED_OFF;signal_yellow_led <= LED_OFF;end endcase end end //******************************************************************* // 模塊名稱:主從LED輸出 // 功能描述:

//******************************************************************* always @(posedge clk or negedge rst_n)begin if(!rst_n)begin traffic_signal_master_red <= LED_OFF;traffic_signal_master_green <= LED_OFF;traffic_signal_master_yellow <= LED_OFF;traffic_signal_slave_red <= LED_OFF;traffic_signal_slave_green <= LED_OFF;traffic_signal_slave_yellow <= LED_OFF;end else begin traffic_signal_master_red <= signal_red_led;traffic_signal_master_green <= signal_green_led;traffic_signal_master_yellow <= signal_yellow_led;traffic_signal_slave_red <= ~signal_red_led;traffic_signal_slave_green <= ~signal_green_led;traffic_signal_slave_yellow <= signal_yellow_led;end end endmodule

第四篇:基于單片機(jī)的交通燈控制系統(tǒng)

單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報(bào)告

基于單片機(jī)的交通燈控制系統(tǒng) 引言

單片機(jī)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的微型計(jì)算機(jī)系統(tǒng),在工業(yè)控制領(lǐng)域具有廣泛的應(yīng)用。本文設(shè)計(jì)了基于單片機(jī)的交通燈控制系統(tǒng)以AT89C51單片機(jī)為核心芯片,通過控制三色LED燈的亮滅來控制各車道的通行。設(shè)計(jì)方案及原理

本系統(tǒng)由AT89C51單片機(jī)、紅、黃、綠LED交通信號(hào)燈、共陰極數(shù)碼管、緊急通車開關(guān)等模塊組成該電路具有設(shè)計(jì)簡(jiǎn)單,顯示亮度高,能耗小,可靠性高燈特點(diǎn)。其總體設(shè)計(jì)框圖如圖1所示。

復(fù)位電路七段數(shù)碼管倒計(jì)時(shí)顯示電路AT89C51晶振電路A、B車道LED顯示電路按鍵電路

圖1 系統(tǒng)總體設(shè)計(jì)方框圖

2.1 系統(tǒng)設(shè)計(jì)

交通燈控制系統(tǒng)主要控制A,B兩車道的交通,以AT89C51單片機(jī)為核心芯片,通過控制三色LED燈的亮滅來控制各車道的通行;另外通過3個(gè)按鍵來模擬各車道有無車輛的情況和有緊急車輛的情況。根據(jù)設(shè)計(jì)要求,制定總體設(shè)計(jì)思想如下:

(1)用AT89C51單片機(jī)控制交通燈電路,晶振采用12MHz。(2)用發(fā)光二極管模擬交通信號(hào)燈,用按鍵開關(guān)模擬車輛檢測(cè)信號(hào)。

(3)有緊急車輛通過時(shí),按下K3開關(guān)使A、B車道均為紅燈,禁行20s。此時(shí),

第五篇:智能交通燈控制系統(tǒng) 畢業(yè)設(shè)計(jì)總結(jié)

業(yè)

術(shù)

學(xué)

畢業(yè)設(shè)計(jì)總結(jié) 畢業(yè)設(shè)計(jì)總結(jié)

本次畢業(yè)設(shè)計(jì),我的指導(dǎo)老師是李麗老師,首先,我們進(jìn)行總體規(guī)劃,包括控制系統(tǒng)組成、控制系統(tǒng)工作過程、控制系統(tǒng)功能、控制系統(tǒng)技術(shù)指標(biāo);之后,進(jìn)行了硬件系統(tǒng)設(shè)計(jì),學(xué)習(xí)單片機(jī)原理與接口技術(shù),網(wǎng)上搜索下載AT89C51、數(shù)碼顯示管、點(diǎn)亮LED技術(shù)資料,并學(xué)習(xí)消化,設(shè)計(jì)硬件控制原理,用Protel繪圖軟件設(shè)計(jì)出控制器原理圖,并對(duì)控制器硬件進(jìn)行了調(diào)試;接著,研究設(shè)計(jì)六線四相步進(jìn)電機(jī)控制方式和方法;而后,規(guī)劃出了控制軟件結(jié)構(gòu)圖,設(shè)計(jì)出了主控模塊程序流程圖、各功能模塊程序流程圖,并逐功能模塊編輯、編譯、連接、測(cè)試控制程序,在編程過程中,我一邊學(xué)習(xí)C51程序設(shè)計(jì),一邊熟悉Keil C51開發(fā)平臺(tái),一邊編程設(shè)計(jì)控制程序;最后,對(duì)控制程序進(jìn)行了測(cè)試和修改完善。

本次畢業(yè)設(shè)計(jì)創(chuàng)新點(diǎn)一是提出了六線四相步進(jìn)電機(jī)啟動(dòng)加速控制技術(shù)方案,二是研究了六線四相步進(jìn)電機(jī)各種運(yùn)行控制方式。

本次畢業(yè)設(shè)計(jì)體會(huì)一是深刻認(rèn)識(shí)到專業(yè)理論對(duì)指導(dǎo)實(shí)踐工作的重要性,上學(xué)期間,專業(yè)理論學(xué)的不夠扎實(shí),不夠深入、不夠全面、不懂用途;二是現(xiàn)有的技能不能勝任實(shí)際工作,實(shí)際動(dòng)手能力欠缺;三是不知道如何進(jìn)行課題需求分析、課題總體規(guī)劃;四是不知道如何進(jìn)行軟件結(jié)構(gòu)設(shè)計(jì);五是實(shí)際編程經(jīng)驗(yàn)欠缺,缺少排除故障能力。所以,我們即將畢業(yè)的大學(xué)生需要與時(shí)俱進(jìn),克服不足,勤學(xué)苦練,迎接挑戰(zhàn),為國爭(zhēng)光。

在該課題后續(xù)研究設(shè)計(jì)時(shí),應(yīng)重視步進(jìn)電機(jī)特性研究,重視控制方法、控制方式研究;增加聯(lián)網(wǎng)控制功能;增加LCD數(shù)據(jù)顯示功能。

在這篇畢業(yè)設(shè)計(jì)論文即將完成的時(shí)候,我突然意識(shí)到自己的校園生活即將畫上一個(gè)句號(hào)。當(dāng)我踏上工作崗位的時(shí)候即將面對(duì)的是完全不同于之前十幾年校園生活的新的旅程。如果說之前的日子是學(xué)會(huì)如何做人、如何做事、如何認(rèn)識(shí)和理解世界、如何學(xué)會(huì)感恩,那么,今后的日子,我將真正成為一個(gè)有用的人,一個(gè)能與別人合作或者獨(dú)立完成任務(wù)的人,一個(gè)真正懂得世界、懂得感恩并真正付出的人。

我要感謝我存在的這個(gè)世界賦予我的認(rèn)知和理解,感謝父母給了我機(jī)會(huì)認(rèn)識(shí)并引導(dǎo)撫育我這個(gè)世界,感謝二十幾年來成百上千的老師與朋友讓我能夠在正確的道路上走得更遠(yuǎn)并且激勵(lì)我成為一個(gè)堅(jiān)定信念不做讓自己后悔事情的人。

“窮則獨(dú)善其身,達(dá)則兼濟(jì)天下”,古訓(xùn)教導(dǎo)我們不做自私人,懂得盡己所能,知恩圖報(bào)。一切來之不易,珍惜且能盡其用,算是在自己能力有限的時(shí)候?qū)ι鐣?huì),對(duì)生活最大的慰藉和回報(bào)。今年的二月份,在經(jīng)歷了將近一年的苦苦尋覓之后,我終于遇到了一個(gè)適合自己發(fā)展的崗位,也終于能夠?qū)⑷康木ν度氲竭@次畢業(yè)設(shè)計(jì)之中。首先我非常感謝我的導(dǎo)師李老師對(duì)我的支持和寬容,因?yàn)檫@次畢設(shè)的題目來源于我在生活的靈感,并且有著強(qiáng)烈的愿望,期望它能夠成為現(xiàn)實(shí),期望在離開校園之前見證自己所學(xué)是有用的學(xué)問。李老師在我的畢設(shè)過程中給予我鼎力的支持,因而有機(jī)會(huì)實(shí)現(xiàn)這個(gè)愿望。同時(shí),在漫長的設(shè)計(jì)和實(shí)踐過程中,身邊的同學(xué)和朋友都給了我很多支持和幫助,這也證明了即便是一個(gè)人的任務(wù)也需要集體的力量,慶幸自己在離開校園之前學(xué)到了很多今后可能及其重要的東西。

回顧自己的學(xué)習(xí)歷程,感覺今天的生活與狀態(tài)是由一系列的偶然與必然串聯(lián)成的結(jié)果。在這個(gè)過程中自己承受了比別人更多的挫折,但也學(xué)到了更多的感悟,獲得了比別人更大的成就。我體會(huì)了人生的正弦曲線,知道很多情況下結(jié)果是之前很長時(shí)間的累積,很有趣的是,我的這些感悟在大學(xué)的專業(yè)課學(xué)習(xí)的時(shí)候得到

/ 2

業(yè)

術(shù)

學(xué)

畢業(yè)設(shè)計(jì)總結(jié)

了理論上描述的一致。因?yàn)槲业拿恳淮纬晒Φ墨@得都比別人晚了許多,但也都是在最關(guān)鍵的時(shí)候比別人得到了更多的收獲,也比別人體會(huì)到更多的付出后的充實(shí)。很慶幸自己在過去歲月中每一次困難抉擇中做出的選擇,以及在不斷地激勵(lì)中為目標(biāo)而不斷奮斗的堅(jiān)持。

“來到社會(huì)做什么?畢業(yè)后做一個(gè)怎樣的人?”雖然即將畢業(yè),但是這兩個(gè)問題將常伴左右。第一個(gè)問題的答案已經(jīng)深深寫在自己三年大學(xué)生活的美好回憶之中,而第二個(gè)問題,將是我今后不斷反省自我并思考未來的信條。

學(xué)無止境,無論每天往返于公司和住所,還是奔走于實(shí)驗(yàn)室與宿舍之間,作為一個(gè)職員或者學(xué)生,無時(shí)無刻不在接受新的知識(shí)、觀點(diǎn)、理念。即便是創(chuàng)造社會(huì)價(jià)值,也仍需要不斷補(bǔ)給養(yǎng)分。于此,作為剛剛走出校園的人,我將牢記于心。

最后,真誠期望每一個(gè)已經(jīng)出現(xiàn)在或是即將出現(xiàn)在我不同人生階段卻是同一條生活軌跡的師長、親友、戰(zhàn)友們,能夠始終擁有美好幸福的生活狀態(tài)、以及一顆熱忱于探索未知和真理的心,同時(shí)也是對(duì)自己未來生活的期冀。

下載基于FPGA的交通燈控制系統(tǒng)word格式文檔
下載基于FPGA的交通燈控制系統(tǒng).doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    基于FPGA的交通燈控制電路的設(shè)計(jì)

    編號(hào):EDA技術(shù) 實(shí)訓(xùn) (論文)說明書 題 目: 交通燈控制電路的設(shè)計(jì) 院 (系): 信息與通信學(xué)院 專 業(yè): 電子信息工程 學(xué)生姓名: 學(xué) 號(hào): 指導(dǎo)教師: 2013年1 月10 日 桂林電子科技大學(xué)實(shí)訓(xùn)......

    基于FPGA的交通燈控制器設(shè)計(jì)

    數(shù)字系統(tǒng)課程設(shè)計(jì) 基于FPGA的交通控制燈設(shè)計(jì) 姓名:學(xué)號(hào):班級(jí): 摘要 隨著社會(huì)的發(fā)展,城市規(guī)模的不斷擴(kuò)大,城市交通成為制約城市發(fā)展的一大因素。人口和汽車日益增長,市區(qū)交......

    基于PLC交通燈控制系統(tǒng)畢業(yè)設(shè)計(jì)概要

    畢業(yè)設(shè)計(jì)題目: 交通燈畢業(yè)論文 系別:電氣與信息工程學(xué)院 專業(yè) : 電氣自動(dòng)化 班級(jí):電氣自動(dòng)化10-01 姓名: 指導(dǎo)教師: 【摘要】:交通信號(hào)燈的出現(xiàn),使交通得以有效管制,對(duì)于疏......

    基于單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)

    P10P11P12P13設(shè)置鍵加鍵減鍵模式鍵P00P01P02P03P04P05P06U18765P134P123P112P101P1.7P1.6P1.5P1.4P1.3P1.2P1.1/T2EXP1.0/T2P3.7/RDP3.6/WRP3.5/T1P3.4/T0P3.3/INT1P3.2/INT......

    基于C51單片機(jī)的交通燈控制系統(tǒng)

    基于C51單片機(jī)的交通燈控制系統(tǒng) 1、實(shí)驗(yàn)方案論證: 進(jìn)行十字路口的交通信號(hào)燈控制電路設(shè)計(jì),畫出電路原理圖及實(shí)驗(yàn)電路圖,進(jìn)行軟件編程、以及使用說明文檔的建立等一整套工作任務(wù)......

    基于機(jī)器視覺智能交通燈控制系統(tǒng)

    機(jī)器視覺的論述作業(yè) 題目 :基于機(jī)器視覺智能交通燈控制系統(tǒng)學(xué)院名稱 :電氣工程學(xué)院專業(yè)班級(jí) :姓名 : 學(xué)號(hào) :時(shí) 間 : 1 緒論.......................................................

    基于單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)

    基于單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì) 摘要:十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實(shí)現(xiàn)這井然秩序呢?靠的就是交通信號(hào)燈的自動(dòng)指揮系統(tǒng)。交通信號(hào)燈控......

    單片機(jī):交通燈控制系統(tǒng)設(shè)計(jì)范文大全

    交通燈控制系統(tǒng)設(shè)計(jì) 摘要:本系統(tǒng)由單片機(jī)系統(tǒng)、鍵盤、LED 顯示、交通燈演示系統(tǒng)組成。系統(tǒng)包括人行道、左轉(zhuǎn)、右轉(zhuǎn)、以及基本的交通燈的功能。系統(tǒng)除基本交通燈功能外,還具有......

主站蜘蛛池模板: 亚洲欧美洲成人一区二区三区| 日本无码欧美一区精品久久| 99这里有精品视频视频| 在线中文字幕乱码英文字幕正常| 国产成人愉拍免费视频| 欧洲美熟女乱又伦免费视频| 国产成人综合色视频精品| а√天堂www在线天堂小说| 亚洲色欲色欲www在线播放| av狠狠色超碰丁香婷婷综合久久| 色婷婷亚洲婷婷五月| 无翼乌口工全彩无遮挡h全彩| 久久伊99综合婷婷久久伊| 免费观看又色又爽又黄的韩国| 猫咪免费人成网站在线观看| 日本www网站色情乱码| 久久婷婷狠狠综合激情| 老师在办公室被躁在线观看| 精品亚洲成a人7777在线观看| 国产精品免费久久久久影院| 少妇性l交大片欧洲热妇乱xxx| 中文幕无线码中文字夫妻| 色偷偷尼玛图亚洲综合| 久久天堂综合亚洲伊人hd妓女| 中文日韩亚洲欧美制服| 成人电线在线播放无码| 成年男女免费视频网站| 人妻熟女一区二区三区app下载| 永久久久免费人妻精品| 久久免费99精品国产自在现线| 天天槽夜夜槽槽不停| 中文字幕在线观看亚洲视频| 亚洲熟伦熟女新五十路熟妇| 嫩草伊人久久精品少妇av| 亚洲中文字幕久久无码| 男人扒开女人双腿猛进视频| 久久久无码人妻精品一区| 人妻精品国产一区二区| 撕开奶罩揉吮奶头视频| 免费人成视频x8x8| 精品精品国产自在97香蕉|