數(shù)電課程設計帶左轉(zhuǎn)功能的紅綠燈控制系統(tǒng)_第1頁
數(shù)電課程設計帶左轉(zhuǎn)功能的紅綠燈控制系統(tǒng)_第2頁
數(shù)電課程設計帶左轉(zhuǎn)功能的紅綠燈控制系統(tǒng)_第3頁
數(shù)電課程設計帶左轉(zhuǎn)功能的紅綠燈控制系統(tǒng)_第4頁
數(shù)電課程設計帶左轉(zhuǎn)功能的紅綠燈控制系統(tǒng)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)電課程設計 帶左轉(zhuǎn)功能的紅綠燈控制系統(tǒng) 姓名: 學號:同組實驗者:孫 實驗指導老師: 一設計任務與要求:設計一個帶左轉(zhuǎn)功能的紅綠燈控制電路。 (1)設東、西方向為主路、南、北方向為輔路;(2)當東、西方向綠燈亮時(表示允許東西方向車輛直行或左拐能過十字路口),南、北方向亮紅燈;反之,當南、北方向綠燈時,東、西方向應亮紅燈;(3)在信號燈交替亮滅之前,應有黃燈信號作為緩沖提示(4)綠燈紅燈黃燈及左拐信號燈各有一定的作用維持時間,東西方向紅燈維持時間65秒,南北方向維持55秒,并且利用數(shù)碼管倒計時顯示。二系統(tǒng)整體設計1.系統(tǒng)設計分析將交通道路抽象模型如下:交通燈的顯示有很多方式,如十字路口、丁字

2、路口等,而對于同一個路口又有很多不同的顯示要求,比如十字路口,車子如果只要東西和南北方向通行就很簡單,但本實驗要求車輛要帶左轉(zhuǎn)功能,則較為復雜要完成本實驗,首先必須了解交通路燈的亮滅規(guī)律。本實驗需要用到實驗箱上交通燈模塊中的發(fā)光二極管,即紅、黃、綠各三個。依人們的交通常規(guī),“紅燈停,綠燈行,黃燈提醒”。其交通燈的亮滅規(guī)律為:初始態(tài)是兩個路口的紅燈全亮,之后東西路口的綠燈亮,南北路口的紅燈亮,東西方向通車,延時一段時間后,通過黃燈提示要進行左拐動作,左拐時間設定由數(shù)碼管顯示。當東西路口紅燈來臨,同樣要由黃燈進行緩沖提示,之后東西路口紅燈亮,而同時南北路口的綠燈亮,南北方向開始通車,重復上述過程。

3、為簡易表示起見,本設計抽象模型如上,東西為a方向,南北為b方向。由題可知,a方向和b方向的交通燈應有四種狀態(tài),分別表示可信號燈的亮滅情況,狀態(tài)轉(zhuǎn)換圖如下:圖中中1表示燈亮,0 表示燈滅,a方向和b方向的紅、黃、綠和左拐燈分別用r1、y1、g1、l1和r2、y2、g2、l2來表示。這樣,就每個方向的等就按要求的順序依次點亮了,并且我們就可以由狀態(tài)設置變量來分別為每個信號進行有效控制。2.系統(tǒng)設計思路 因為每個方向相對的信號燈狀態(tài)及倒計時的現(xiàn)實完全一致,根據(jù)設計要求和系統(tǒng)所具有的功能,紅綠燈控制系統(tǒng)設計框圖如下: 首先要通過以使能信號選通a方向或b方向,并且有時鐘控制信號來觸發(fā)控制電路。通過讀取狀

4、態(tài)變量的狀態(tài)來點亮對應信號燈,并且通過掃描顯示電路來控制數(shù)碼管的顯示及倒計時。應注意兩個方向各種燈亮的時間應該能夠非常方便地進行設置和修改,此外假設a方向是主干道,車流量大,因此a方向通行的時間應比b方向長一些,并且每個方向紅燈亮的時間應該與另一方向綠、黃、左拐、黃燈亮的時間相等。三單元模塊設計:1.硬件電路實現(xiàn) 根據(jù)交通燈系統(tǒng)的控制要求,該電路包含了一個cpld芯片,兩個led數(shù)碼顯示器,二十個分別表示各個方向的紅黃綠燈,以及相應的限流電路。實驗板仿真芯片用altera flex6000系列的epf10k10lc84型可編程邏輯芯片。按照如下的管腳定義,分配好管腳,編譯成可下載的文件,下載到

5、實驗板上。經(jīng)驗證,符合要求。實驗板的引腳定義:變量i/o引腳eninputpin_28clkinputpin_14lampa0outputpin_170lampa1outputpin_131lampa2outputpin_108lampa3outputpin_73lampb0outputpin_50lampb1outputpin_11lampb2outputpin_228lampb3outputpin_193acount0outputpin_198acount1outputpin_197acount2outputpin_196acount3outputpin_195acount4outputp

6、in_188acount5outputpin_187acount6outputpin_186acount7outputpin_185comoutputpin_132主控程序如下:module traffic(clk,en,lampa,lampb,acount,bcount);output7:0 acount,bcount;output3:0 lampa,lampb;input clk,en;reg7:0 numa,numb;reg tempa,tempb;reg2:0 counta,countb;reg7:0 ared,ayellow,agreen,aleft,bred,byellow,bgr

7、een,bleft;reg3:0 lampa,lampb;always (en)if(!en)begin ared =8d55; ayellow =8d5;agreen =8d40; aleft =8d15; bred =8d65; byellow =8d5; bleft =8d15; bgreen =8d30; endassign acount=numa;assign bcount=numb;always (posedge clk)beginif(en)beginif(!tempa)begintempa=1;case(counta) 0: begin numa=agreen; lampa=2

8、; counta=1; end1: begin numa=ayellow; lampa=4; counta=2; end2: begin numa=aleft; lampa=1; counta=3; end3: begin numa=ayellow; lampa=4; counta=4; end4: begin numa=ared; lampa=8; counta=0; enddefault: lampa1)if(numa3:0=0) beginnuma3:0=4b1001;numa7:4=numa7:4-1;endelse numa3:0=numa3:0-1;if (numa=2) temp

9、a=0;endendelse beginlampa=4b1000;counta=0; tempa=0;endendalways (posedge clk) beginif (en)beginif(!tempb)begintempb=1;case (countb) 0: begin numb=bred; lampb=8; countb=1; end1: begin numb=bgreen; lampb=2; countb=2; end2: begin numb=byellow; lampb=4; countb=3; end3: begin numb=bleft; lampb=1; countb=

10、4; end4: begin numb=byellow; lampb=4; countb=0; enddefault: lampb1)if(!numb3:0) beginnumb3:0=9;numb7:4=numb7:4-1;endelse numb3:0=numb3:0-1;if(numb=2) tempb=0;endendelse beginlampb=4b1000;tempb=0; countb=0;endendendmodule。3 對象控制模塊: 根據(jù)交通燈系統(tǒng)的要實現(xiàn)的功能,考慮用兩個并行的always模塊來控制a和b兩個方向的四盞燈,這兩個always 模塊用一個時鐘信號已進行同

11、步。如對a方向的程序控制模塊描述如下:always(posedge clk)/該always模塊控制a方向的4種燈beginif(en)beginif(!tempa)begintempa= 1;4循環(huán)控制切換模塊: 每個always模塊控制1個方向的4種燈按如下順序點亮,并往復循環(huán):綠燈黃燈左拐燈黃燈紅燈。程序描述如下:case(counta) 0:begin numa=agreen;lampa=2;counta=1;end1:begin numa=ayellow;lampa=4;counta=2;end2:begin numa=alert;lampa=1;counta=3;end3:begi

12、n numa=ayellow;lampa=4;counta=4;end4:begin numa=ared;lampa=8;counta=0;enddefault:lampa1) if(numa3:0=0)begin numa-3:0=4b1001; numa7:4=numa7:4-1; end else numa3:0=numa3:0-1; if(numa=2) tempa=0; end6.信號的有效維持時間模塊設定a方向紅、綠、黃、左拐燈亮的時間分別為65秒、40秒、5秒和15秒,b方向紅、綠、黃、左拐燈亮的時間分別為:55秒、30秒、5秒和15秒。假如要改變這些時間只須改變計數(shù)器的預置數(shù)即

13、可。程序描述如下:begin/設置各種燈的計數(shù)器的預置數(shù)ared=8b01010101;/65sayellow =8b00000101;/5sagreen =8b01000000; /40saleft =8b00010101; /15sbred =8b01100101; /55sbyellow =8b00000101; /5sbleft =8b00010101; /15sbgreen =8b00110000; /30send四eda系統(tǒng)原理仿真設計1、仿真環(huán)境eda軟件quartus ii 9.1軟件環(huán)境下。2、eda設計仿真(1)rtl門級模塊實現(xiàn):(2)程序綜合成功:(3)生成網(wǎng)表文件:(

14、4)仿真波形:(5)電路輸入輸出實例化模塊3.輸出驗證仿真:由狀態(tài)轉(zhuǎn)換表可知,對a方向通道,當在當前時刻定義變量lamp=1000時,紅燈會被點亮,此時在波形中對其輸入控制如下:經(jīng)仿真驗證,在當前時刻,顯示a方向上紅燈的數(shù)碼管會輸出時間顯示。而有題目要求,當a方向亮紅燈時,b方向會按綠燈黃燈左拐黃燈順序依次點亮,且顯示時間如下圖示,可知滿足要求。4.對仿真結果的分析: (1)、在波形仿真中,由于分頻模塊的數(shù)目太大,且電路的時間延時,未能去抖,在時間顯示模塊會遇到某個計數(shù)值不太準確,但其前后值都準確。(2)當a或b方向當紅燈亮時,在另一方向會各信號燈循環(huán)點亮,這是在波形仿真中具體什么燈點亮以及顯

15、示時間不能直觀的表現(xiàn)出來。五、設計心得與總結經(jīng)過幾周的努力,帶左轉(zhuǎn)功能的紅綠燈控制系統(tǒng)終于有了較滿意的結果。從最初的選題到確定思路,從模型抽象到實例設計,從源代碼的編寫到仿真分析,我們參閱了數(shù)本教材,查閱了很多網(wǎng)上資料,也請教了指導老師與學長,在此對他們表示深深的感謝。書到用時方恨少。在這個過程中,我們真切的感受到自己的知識的缺乏,甚者學過的東西我們都不能融會貫通,靈活運用。悔不當初!但一路走下來,雖然艱辛,卻收獲頗豐。我們不僅回顧了數(shù)電模電知識,更深層次的運用了quarts仿真工具,也鍛煉了自己的抽象理解,建造模型模,動手實踐的能力。在這個過程中,我也深刻體會到團隊合作的重要性,一個人的力量

16、總是有限的,但通過互幫互助,我們會將自己的作用最大化。由于自己的能力實在有限,有做的不完善的地方希望老師理解,指教,謝謝!六、參考文獻:數(shù)字電子技術基礎 閻石 主編 高等教育出版社模擬電子技術基礎 童詩白 華成英主編 高等教育出版社verilog數(shù)字設計與綜合 夏宇文 主編 科學出版社可編程邏輯器件開發(fā)軟件 鄭亞民 董曉丹 國防工業(yè)出版社附件:1.程序變量說明clk: 為同步時鐘;en: 使能信號,為 1 的話,則控制器開始工作;lampa: 控制 a 方向四盞燈的亮滅;其中,lampa0lampa3,分別控制a 方向的左拐燈、綠燈、黃燈和紅燈;lampb: 控制 b 方向四盞燈的亮滅;其中,

17、lampb0 lampb3,分別控制b 方向的左拐燈、綠燈、黃燈和紅燈;acount: 用于 a 方向燈的時間顯示,8 位,可驅(qū)動兩個數(shù)碼管;bcount: 用于 b 方向燈的時間顯示,8 位,可驅(qū)動兩個數(shù)碼管2.led 數(shù)碼管顯示掃描模塊module led(clk , segout , bitout , d1 , d2 , d3 , d4);input clk ; input 6 : 0 d1 , d2 , d3 , d4 ; output 3 : 0 segout ; output 6 : 0 bitout ; reg 3 : 0 segout ;reg 6 : 0 bitout ;re

18、g 14 : 0 count_for_clk ; always (posedge clk) begin count_for_clk = count_for_clk + 14d1 ; endalways (posedge clk) begincase( count_for_clk14 : 13 ) 2b00 :begin segout = 4b0001; bitout = d1; end 2b01 :begin segout = 4b0010; bitout = d2; end 2b10 :begin segout = 4b0100; bitout = d3; end 2b11 :begin s

19、egout = 4b1000; bitout = d4; end endcaseendendmodule3.cpld硬件調(diào)試數(shù)碼管輸出模塊module control(en, clk, lampa, lampb, acount, bcount,segout,bitout);input en , bcount , acount ; input clk; output2 :0 lampa , lampb ; output3 :0 segout ; output6 :0 bitout ; reg 2 : 0 lampa ,lampb ;reg 31: 0 clk_for_1hz ; reg clk_

20、1hz ; reg 6 : 0 moutg , mouts , noutg , nouts ;reg 7 : 0 numm , numn ;reg tempm = 0 , tempn = 0 ;reg 1 : 0 countm = 2b00 , countn = 2b00 ; reg 7 : 0 mred , mgreen , myellow, nred, ngreen, nyellow; task shown;input3:0 in;output6:0 out;begin case(in) 0 : out = 7b0000001 ; 1 : out = 7b1001111 ;2 : out

21、= 7b0010010 ;3 : out = 7b0000110 ;4 : out = 7b1001100 ;5 : out = 7b0100100 ; 6 : out = 7b0100000 ;7 : out = 7b0001111 ;8 : out = 7b0000000 ;9 : out = 7b0000100 ; default : out = 7bzzzzzzz ; endcaseendendtask always (numm or numn) begin shown(numm3:0,moutg); shown(numm7:4,mouts); shown(numn3:0,noutg)

22、; shown(numn7:4,nouts); endalways (posedge clk) begin if (clk_for_1hz = 32d25_000_000) begin clk_for_1hz = 32d0 ; clk_1hz = clk_1hz ; end else clk_for_1hz = clk_for_1hz + 1 ; endalways (posedge clk_1hz) begin if(!en) begin if(!tempm) begin tempm = 1; if(countn = 2b00 & countm = 2b00) begin if(bcount

23、 = 0) mgreen = 8b0101_0000 ; else mgreen = 8b0011_0000 ; if(acount = 0) mred = 8b0011_0000 ; else mred = 8b0010_0000 ; myellow= 8b0000_0101 ; end case(countm) 2b00: begin numm = mgreen; lampa = 3b101; countm = 2b01; end 2b01: begin numm = myellow; lampa = 3b110;countm = 2b10; end 2b10: begin numm = mred; lampa = 3b011; countm = 2b00; enddefault: begin numm = mgreen; lampa = 3b101; countm 1) if(numm3:0=0) begin numm3:0=4b1001; numm7:4 = numm7:4-4d1; end else numm3:0 = n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論