




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 數(shù)字系統(tǒng)課程設(shè)計(jì) 基于FPGA的交通控制燈設(shè)計(jì)姓名:學(xué)號(hào):班級(jí): 摘要 隨著社會(huì)的發(fā)展,城市規(guī)模的不斷擴(kuò)大,城市交通成為制約城市發(fā)展的一大因素。人口和汽車日益增長(zhǎng),市區(qū)交通也日益擁擠,人們的安全問(wèn)題當(dāng)然也日益重要。因此,紅綠交通信號(hào)燈成為交管部門管理交通的重要工具之一。有了交通燈,人們的安全出行也有了很大的保障。自從交通燈誕生以來(lái),其內(nèi)部的電路控制系統(tǒng)就不斷的被改進(jìn),設(shè)計(jì)方法也開始多種多樣,從而使交通燈顯得更加智能化。尤其是近幾年來(lái),隨著電子與計(jì)算機(jī)技術(shù)的飛速發(fā)展,電子電路分析和設(shè)計(jì)方法有了很大的改進(jìn),電子設(shè)計(jì)自動(dòng)化也已經(jīng)成為現(xiàn)代電子系統(tǒng)中不可或缺的工具和手段,這些都為交通燈控制系統(tǒng)的設(shè)計(jì)提
2、供了一定的技術(shù)基礎(chǔ)。本課程設(shè)計(jì)運(yùn)用erilog HDL語(yǔ)言描述交通控制器,通過(guò)狀態(tài)機(jī)計(jì)數(shù)法,實(shí)現(xiàn)設(shè)計(jì)所要求的交通燈控制及時(shí)間顯示,并最后進(jìn)行了軟件實(shí)現(xiàn),達(dá)到了系統(tǒng)要求的功能。 設(shè)計(jì)原理1.1設(shè)計(jì)要求設(shè)計(jì)一個(gè)交通控制器,用LED顯示燈表示交通狀態(tài),并以7段數(shù)碼顯示器顯示當(dāng)前狀態(tài)剩余秒數(shù) 主干道綠燈亮?xí)r,支干道紅燈亮;反之亦然,二者交替允許通行,主干道每次放行35s,支干道每次放行25s。每次由綠燈變?yōu)榧t燈的過(guò)程中,亮光的黃燈作為過(guò)渡,黃燈的時(shí)間為5s。能進(jìn)行特殊狀態(tài)顯示,特殊狀態(tài)時(shí)東西、南北路口均顯示紅燈狀態(tài)。用LED燈顯示倒計(jì)時(shí),并且能實(shí)現(xiàn)總體清零功能,計(jì)數(shù)器由初始狀態(tài)開始計(jì)數(shù),對(duì)應(yīng)狀態(tài)的顯示
3、燈亮。能實(shí)現(xiàn)特殊狀態(tài)的功能顯示,1.2設(shè)計(jì)思路和原理本次設(shè)計(jì)是針對(duì)十字路口,進(jìn)行南北和東西直行情況下交通燈控制。設(shè)定東西方向?yàn)橹鞲傻婪较?,根?jù)交通燈的亮的規(guī)則,在初始狀態(tài)下四個(gè)方向的都為紅燈亮啟,進(jìn)入正常工作狀態(tài)后,當(dāng)主干道上綠燈亮?xí)r,支干道上紅燈亮,持續(xù)35S后,主干道和支干道上的黃燈都亮啟,持續(xù)5S后,主干道上紅燈亮啟,支干道上綠燈亮啟持續(xù)25S,之后主干道和支干道上的黃燈都亮啟5s,一個(gè)循環(huán)完成。循環(huán)往復(fù)的直行這個(gè)過(guò)程。其過(guò)程如下圖所示:圖1.交通燈點(diǎn)亮?xí)r間控制說(shuō)明1.3實(shí)現(xiàn)方法本次采用文本編輯法,即利用Verilog HDL語(yǔ)言描述交通控制器,通過(guò)狀態(tài)機(jī)計(jì)數(shù)法,實(shí)現(xiàn)設(shè)計(jì)所要求的交通燈控
4、制及時(shí)間顯示。設(shè)計(jì)中用兩組紅黃綠LED模擬兩個(gè)方向上的交通燈,用4個(gè)7段數(shù)碼管分別顯示兩個(gè)方向上的交通燈剩余時(shí)間,控制時(shí)鐘由試驗(yàn)箱上頻率信號(hào)提供。 Verilog HDL程序設(shè)計(jì)2.1整體設(shè)計(jì)根據(jù)上章設(shè)計(jì)原理,交通燈控制的關(guān)鍵是各個(gè)狀態(tài)之間的轉(zhuǎn)換和進(jìn)行適當(dāng)?shù)臅r(shí)間延時(shí),根據(jù)狀態(tài)機(jī)的設(shè)計(jì)規(guī)范,本次設(shè)計(jì)了三個(gè)狀態(tài)之間的循環(huán)轉(zhuǎn)化,其真值表及狀態(tài)轉(zhuǎn)化圖如下所示:圖2.交通燈控制狀態(tài)轉(zhuǎn)化說(shuō)明:該狀態(tài)圖為交通燈在正常情況下的狀態(tài)轉(zhuǎn)化圖,進(jìn)入控制后,狀態(tài)00時(shí)主干道綠燈及支干道紅燈亮起,進(jìn)入狀態(tài)01后兩路黃燈亮起,狀態(tài)11時(shí)主干道紅燈及支干道綠燈亮起。進(jìn)入10狀態(tài)兩路黃燈亮起。結(jié)束一個(gè)循環(huán),從00狀態(tài)重新開始
5、循環(huán)。為實(shí)現(xiàn)控制與顯示的功能,需要設(shè)計(jì)交通燈點(diǎn)亮順序控制程序,倒數(shù)計(jì)時(shí)程序,七段數(shù)碼管顯示程序,數(shù)碼管顯示掃描程序,其系統(tǒng)結(jié)構(gòu)圖如下所示:圖3.交通燈控制系統(tǒng)結(jié)構(gòu)圖其中rst為復(fù)位信號(hào),clk為時(shí)鐘信號(hào),hold為特殊情況控制信號(hào),輸入hold時(shí)兩個(gè)方向紅燈無(wú)條件亮起。2.2 具體設(shè)計(jì)根據(jù)整體設(shè)計(jì)要求,編寫各個(gè)功能部分Verilog HDL程序,設(shè)置各輸入輸出變量說(shuō)明如下clk: 為計(jì)數(shù)時(shí)鐘;qclk:為掃描顯示時(shí)鐘;en: 使能信號(hào),為1 的話,則控制器開始工作;rst: 復(fù)位信號(hào),為1的話,控制及技術(shù)回到初始狀態(tài);hoid:特殊情況控制信號(hào),為1的話,則兩個(gè)方向無(wú)條件顯示為紅燈;light
6、1: 控制主干道方向四盞燈的亮滅;其中,light10light2,分別控制主干道方向的綠燈、黃燈和紅燈;light2: 控制支干道方向四盞燈的亮滅;其中,light20 light22,分別控制支干道方向的綠燈、黃燈和紅燈;num1: 用于主干道方向燈的時(shí)間顯示,8 位,可驅(qū)動(dòng)兩個(gè)數(shù)碼管;num2: 用于支干道方向燈的時(shí)間顯示,8 位,可驅(qū)動(dòng)兩個(gè)數(shù)碼管;counter:用于數(shù)碼管的譯碼輸出;st1,st2:數(shù)碼管掃描信號(hào) 。輸入輸出及中間變量設(shè)置如下:module traffic(en,clk,qclk,rst,rst1,hold,num1,num2,light1,light2,counte
7、r,st1,st2);input en,clk,qclk,rst,hold,rst1;output st1,st2;output7:0 num1,num2;output6:0counter;output2:0 light1,light2;reg tim1,tim2,st1,st2;reg1:0state1,state2,ste;reg2:0light1,light2;reg3:0num;reg6:0counter;reg7:0 num1,num2;reg7:0 red1,red2,green1,green2,yellow1,yellow2;1. 二極管點(diǎn)亮控制該部分程序的作用是根據(jù)計(jì)數(shù)器的計(jì)數(shù)
8、值控制發(fā)光二極管的亮、滅,以及輸出倒計(jì)時(shí)數(shù)值給七段數(shù)碼管的譯碼電路。此外,當(dāng)檢測(cè)到特殊情況(hold=1)發(fā)生時(shí),無(wú)條件點(diǎn)亮紅燈的二極管,當(dāng)檢測(cè)到復(fù)位信號(hào),兩個(gè)方向計(jì)數(shù)與控制回復(fù)到00狀態(tài)。因?yàn)橹?、支干道兩個(gè)方向二極管點(diǎn)亮的順序與延遲時(shí)間不同,顧編寫兩個(gè)獨(dú)立的部分來(lái)控制,具體程序如下:1)主干道方向always (posedge clk )begin if(rst) /復(fù)位與特殊情況控制 begin light1=3b001;num1=green1; end else if(hold) begin light1=3b100; num1=green1; end else if(en) begin
9、 /使能有效開始控制計(jì)數(shù) if(!tim1) / begin /主干道交通燈點(diǎn)亮控制 tim1=1; case(state1) 2b00:begin num1=green1;light1=3b001;state1=2b01;end 2b01:begin num1=yellow1;light1=3b010;state1=2b11;end 2b11:begin num1=red1;light1=3b100;state1=2b10;end 2b10:begin num1=yellow1;light1=3b010;state1=2b00;end default:light1=3b100; endcas
10、e end2)支干道方向 always (posedge clk )begin if(rst) /復(fù)位與特殊情況控制 begin light2=3b100; num2=red2; end else if(hold) begin light2=3b100; num2=red2; end else if(en) begin if(!tim2) begin tim2=1; case(state1) 2b00:begin num2=red2;light2=3b100;state2=2b01;end 2b01:begin num2=yellow1;light2=3b010;state2=2b11;end
11、 2b11:begin num2=green2;light2=3b001;state2=2b10;end 2b10:begin num2=yellow2;light2=3b010;state2=2b00;end default:light20) if(num13:0=0) begin num13:0=4b1001; num17:4=num17:4-1; end else num13:0=num13:0-1; if(num1=1) tim1=0; end end else begin light1=3b010; num1=2b00; tim1=0; endend3. 數(shù)碼管的譯碼及掃描顯示該段程
12、序主要完成4個(gè)7段數(shù)碼管的譯碼顯示及掃描,使系統(tǒng)能正常顯示主、支干道兩個(gè)方向上的剩余時(shí)間。譯碼的時(shí)鐘頻率要低,為Hz級(jí)。掃描的時(shí)鐘頻率要高,最低不得小于人眼分辨頻率50Hz,具體程序如下所示:always (posedge qclk)begin /數(shù)碼管掃描 if(rst1) begin st1=0; st2=0; end else begin case(st2,st1) 2b00:begin num=num13:0;st2,st1=2b01; end 2b01:begin num=num17:4;st2,st1=2b10; end 2b10:begin num=num23:0;st2,st1
13、=2b11; end 2b11:begin num=num27:4;st2,st1=2b00; end endcase endendalways (posedge qclk)begin /數(shù)碼管譯碼顯示case(num)4b0000: counter=7b0111111; /04b0001: counter=7b0000110; /14b0010: counter=7b1011011; /24b0011: counter=7b1001111; /34b0100: counter=7b1100110; /44b0101: counter=7b1101101; /54b0110: counter=
14、7b1111101; /64b0111: counter=7b0000111; /74b1000: counter=7b1111111; /84b1001: counter=7b1101111; /9default: counter=7b0111111; /0endcaseendendmodule總體程序見程序清單所示 仿真與硬件調(diào)試3.1 波形仿真在Quarturs軟件下創(chuàng)建工程,新建編輯設(shè)計(jì)文件,將程序輸入,整體編譯后,新建波形仿真文件。設(shè)置仿真時(shí)間,時(shí)鐘周期,輸入輸出端口,進(jìn)行波形仿真。具體仿真波形圖及說(shuō)明如下所示:仿真截止時(shí)間:100us;時(shí)鐘:clk 1us,qclk 0.1us1.
15、 正常工作時(shí)波形仿真圖圖4. 正常工作時(shí)波形仿真圖圖形說(shuō)明波形仿真主要完成了控制與計(jì)數(shù)以及數(shù)碼管顯示的波形圖。en為低電品時(shí),計(jì)數(shù)器置初值,高電平時(shí)開始正??刂婆c計(jì)數(shù)??刂瓢l(fā)光二極管首次輸出為“l(fā)ight1=001,light2=100”,表示主干道路綠燈亮,支桿道路紅燈亮,計(jì)數(shù)器num1和num2從“00110101”開始遞減計(jì)數(shù),計(jì)數(shù)至“00000000”時(shí),進(jìn)入下一個(gè)狀態(tài),控制輸出量為light=010,light2=010,表示主、支干道黃燈均亮起,計(jì)數(shù)器num1和num2從“00000101”開始計(jì)數(shù)遞減,計(jì)數(shù)至”00000000”時(shí)進(jìn)入下一個(gè)狀態(tài),light=100,light2=
16、001,表示主干道路紅燈亮,支桿道路綠燈亮。Counter根據(jù)num1,num2變化隨時(shí)鐘上升沿輸出譯碼后的數(shù)據(jù)。由于屏幕顯示大小有限,未仿真出一個(gè)完整周期。2. 特殊情況仿真波形圖5. 特殊情況仿真波形圖形說(shuō)明當(dāng)hold輸入高電平時(shí),在時(shí)鐘上升沿的控制下,light 1與light2被強(qiáng)制置位為”100”,表示兩路紅燈均亮起3. 復(fù)位情況仿真波形圖6. 復(fù)位情況仿真波形圖形說(shuō)明當(dāng)rst輸入高電平時(shí),在時(shí)鐘上升沿控制下,計(jì)數(shù)與控制都回到00狀態(tài),即light1=001,light2=100,計(jì)數(shù)器num1和num2從“00110101”開始遞減計(jì)數(shù)。3.2 硬件調(diào)試 完成時(shí)序仿真確認(rèn)無(wú)誤后,進(jìn)
17、行實(shí)驗(yàn)箱管腳設(shè)置,注意設(shè)置完成后一定要再進(jìn)行一次全局仿真,使程序真正對(duì)應(yīng)于硬件輸出輸出。具體連接說(shuō)明如下所示輸入變量:rst、clk、qclk、hold、en其中en,hold,rst接”0-1”撥碼開關(guān),以穩(wěn)定的輸出可變化的電平。計(jì)數(shù)時(shí)鐘clk接實(shí)驗(yàn)箱上1Hz時(shí)鐘,掃描顯示時(shí)鐘qclk接125Khz時(shí)鐘。輸出變量:light12:0、light22:0、counter6:0、st1、st2其中l(wèi)ight10 、light20分別接綠色的發(fā)光二極管;light11、light21 分別接黃色的發(fā)光二極管;light12、light22分別接紅色的發(fā)光二極管。counter0counter6,分
18、別接七段數(shù)碼管的af,st1、st2分別接試驗(yàn)箱上”4-16”譯碼器的低兩位。完成接線后將程序燒寫到芯片上,開始功能調(diào)試。分辨改變使能信號(hào),復(fù)位信號(hào)以及特殊情況信號(hào),觀察數(shù)碼管以及發(fā)光二級(jí)管情況。程序清單module traffic(en,clk,qclk,rst,rst1,hold,num1,num2,light1,light2,counter,st1,st2);input en,clk,qclk,rst,hold,rst1;output st1,st2;output7:0 num1,num2;output6:0counter;output2:0 light1,light2;reg tim1
19、,tim2,st1,st2;reg1:0state1,state2,ste;reg2:0light1,light2;reg3:0num;reg6:0counter;reg7:0 num1,num2;reg7:0 red1,red2,green1,green2,yellow1,yellow2;always (en )if(!en)begin /設(shè)置計(jì)數(shù)初值green1=8b00110101;red1=8b00100101;yellow1=8b00000101;green2=8b00100101;red2=8b00110101;yellow2=8b00000101;endalways (posed
20、ge clk )begin if(rst) /復(fù)位與特殊情況控制 begin light1=3b001; num1=green1; end else if(hold) begin light1=3b100; num1=green1; end else if(en) begin /使能有效開始控制計(jì)數(shù) if(!tim1) /開始控制 begin /主干道交通燈點(diǎn)亮控制 tim1=1; case(state1) 2b00:begin num1=green1;light1=3b001;state1=2b01;end 2b01:begin num1=yellow1;light1=3b010;state
21、1=2b11;end 2b11:begin num1=red1;light1=3b100;state1=2b10;end 2b10:begin num1=yellow1;light1=3b010;state1=2b00;end default:light10) if(num13:0=0) begin num13:0=4b1001; num17:4=num17:4-1; end else num13:0=num13:0-1; if(num1=1) tim1=0; end end else begin light1=3b010; num1=2b00; tim1=0; end endalways (
22、posedge clk )begin if(rst) /復(fù)位與特殊情況控制 begin light2=3b100; num2=red2; end else if(hold) begin light2=3b100; num2=red2; end else if(en) begin if(!tim2) begin tim2=1; case(state1) 2b00:begin num2=red2;light2=3b100;state2=2b01;end 2b01:begin num2=yellow1;light2=3b010;state2=2b11;end 2b11:begin num2=gree
23、n2;light2=3b001;state2=2b10;end 2b10:begin num2=yellow2;light2=3b010;state2=2b00;end default:light20) if(num23:0=0) begin num23:0=4b1001; num27:4=num27:4-1; end else num23:0=num23:0-1; if(num2=1) tim2=0; end end else begin tim2=0; state2=2b00; light2=3b010; end end always (posedge qclk)begin /數(shù)碼管掃描
24、if(rst1) begin st1=0; st2=0; end else begin case(st2,st1) 2b00:begin num=num13:0;st2,st1=2b01; end 2b01:begin num=num17:4;st2,st1=2b10; end 2b10:begin num=num23:0;st2,st1=2b11; end 2b11:begin num=num27:4;st2,st1=2b00; end endcase endendalways (posedge qclk)begin /數(shù)碼管譯碼顯示case(num)4b0000: counter=7b01
25、11111; /04b0001: counter=7b0000110; /14b0010: counter=7b1011011; /24b0011: counter=7b1001111; /34b0100: counter=7b1100110; /44b0101: counter=7b1101101; /54b0110: counter=7b1111101; /64b0111: counter=7b0000111; /74b1000: counter=7b1111111; /84b1001: counter=7b1101111; /9default: counter=7b0111111; /0
26、endcaseendendmodule總結(jié)在設(shè)計(jì)中采用V erilog HDL語(yǔ)言設(shè)計(jì)交通燈控制系統(tǒng), 借助其功能強(qiáng)大的語(yǔ)言結(jié)構(gòu), 簡(jiǎn)明的代碼描述復(fù)雜控制邏輯設(shè)計(jì), 與工藝無(wú)關(guān)特性, 在提高工作效率的同時(shí)達(dá)到求解目的, 并可以通過(guò)V erilog HDL 語(yǔ)言的綜合工具進(jìn)行相應(yīng)硬件電路生成, 具有傳統(tǒng)邏輯設(shè)計(jì)方法所無(wú)法比擬的優(yōu)越性。在設(shè)計(jì)過(guò)程中,覺得最難的部分是波形仿真部分,雖然程序編譯通過(guò)但仿真出不了正確的波形,不是計(jì)數(shù)器無(wú)法正常計(jì)數(shù),就是控制輸出無(wú)法進(jìn)入到下一個(gè)狀態(tài),每次出現(xiàn)問(wèn)題就必須返回重新修改程序。實(shí)踐證明,在編寫一個(gè)較復(fù)雜的程序時(shí),一開始一定要畫流程圖,弄清楚各個(gè)功能及實(shí)現(xiàn)它們的邏輯算法,做到心中有數(shù)后在開始下筆寫編寫程序。在編寫的時(shí)候要尤其要注意語(yǔ)言的規(guī)范,如本次設(shè)計(jì)中編寫的V erilog在Quartus8.1中可以正常生成時(shí)序圖,而在低版本的軟件中卻無(wú)法生成,原因就是語(yǔ)言使用不規(guī)范,在解決這個(gè)問(wèn)題時(shí)我總結(jié)了一些經(jīng)驗(yàn),首先程序要邏輯清晰,簡(jiǎn)潔明了,避免不必要的嵌套與條用,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家用紡織品的產(chǎn)品差異化與競(jìng)爭(zhēng)優(yōu)勢(shì)考核試卷
- 智能車載設(shè)備的故障預(yù)測(cè)考核試卷
- 工藝美術(shù)品的商業(yè)模式創(chuàng)新考核試卷
- 專業(yè)技術(shù)培訓(xùn)引領(lǐng)行業(yè)變革考核試卷
- 家居裝飾裝修中的施工質(zhì)量控制考核試卷
- 城市軌道交通的旅客負(fù)擔(dān)與收入分析考核試卷
- 技術(shù)標(biāo)準(zhǔn)制定考核試卷
- 工業(yè)控制計(jì)算機(jī)在電力系統(tǒng)的應(yīng)用考核試卷
- 學(xué)校租賃土地合同范本
- 公司并購(gòu)簽約合同范本
- 2025年全國(guó)幼兒園教師資格證考試教育理論知識(shí)押題試題庫(kù)及答案(共九套)
- 2024年鄭州電力高等??茖W(xué)校高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- 產(chǎn)品試產(chǎn)流程
- 舞臺(tái)機(jī)械基礎(chǔ)知識(shí)培訓(xùn)
- 人教版數(shù)學(xué)八年級(jí)下冊(cè) 第16章 二次根式 單元測(cè)試(含答案)
- 中學(xué)班主任培訓(xùn)內(nèi)容
- DB2301-T 108-2022 地下管線探測(cè)技術(shù)規(guī)程
- DB51T 1511-2022建設(shè)項(xiàng)目對(duì)自然保護(hù)區(qū)自然資源、自然生態(tài)
- DCMM練習(xí)題練習(xí)試題
- 2024年湘教版初中地理一輪復(fù)習(xí)專題三 天氣與氣候
- 四級(jí)人工智能訓(xùn)練師(中級(jí))職業(yè)技能等級(jí)認(rèn)定考試題及答案
評(píng)論
0/150
提交評(píng)論