• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

通用交通燈帶倒計(jì)時(shí)quartus紅綠燈時(shí)間可調(diào)

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

1-230Z910512U57.doc

共1個(gè)文件

名稱:通用交通燈帶倒計(jì)時(shí)quartus紅綠燈時(shí)間可調(diào)(代碼在文末付費(fèi)下載)

軟件:Quartus

語(yǔ)言:Verilog

要求:

設(shè)計(jì)十字路口交通燈,具有倒計(jì)時(shí)功能,紅綠燈時(shí)間代碼可設(shè)置,本工程為交通燈通用代碼,其他交通燈控制器可通過(guò)本代碼簡(jiǎn)單修改得到。

演示視頻:

頂層模塊代碼:

module?Traffic_Light_Control(
input?clk,//500hz
input?car_detection,//car_detection==1時(shí),主路支路交替通通行,等于0時(shí)只主路通行
output?R1,//(主干道)高電平亮
output?G1,//(主干道)高電平亮
output?Y1,//(主干道)高電平亮
output?R2,//(支干道)高電平亮
output?G2,//(支干道)高電平亮
output?Y2,//(支干道)高電平亮
output?[7:0]?HEX0,//(主干道)數(shù)碼管0
output?[7:0]?HEX1,//(主干道)數(shù)碼管1
output?[7:0]?HEX2,//(支干道)數(shù)碼管2
output?[7:0]?HEX3//(支干道)數(shù)碼管3
);

?wire?clk_1;
?wire?[7:0]?G1_BCD;
?wire?[7:0]?Y1_BCD;
?wire?[7:0]?R1_BCD;
?wire?[7:0]?G2_BCD;
?wire?[7:0]?Y2_BCD;
?wire?[7:0]?R2_BCD;
?wire?[7:0]?SMG1;
?wire?[7:0]?SMG2;
?
wire?R1_led;
wire?G1_led;
wire?Y1_led;

wire?R2_led;
wire?G2_led;
wire?Y2_led;

wire?G1_flash;
wire?G2_flash;

assign?R1=R1_led;
assign?G1=G1_led?&?~G1_flash;
assign?Y1=Y1_led;

assign?R2=R2_led;
assign?G2=G2_led?&?~G2_flash;
assign?Y2=Y2_led;


//分頻到1hz(脈沖發(fā)生器)
div?U0
(
.?clk(clk),
.?clk_1(clk_1)//輸出1Hz
);


//紅綠燈時(shí)間,紅燈時(shí)間是綠燈加黃燈時(shí)間
wire[7:0]??G1_time;
wire[7:0]??Y1_time;
wire[7:0]??G2_time;
wire[7:0]??Y2_time;
//當(dāng)主干道、支干道均有車時(shí),兩者交替允許通行,
//主干道每次通行60秒,支干道每次通行15秒,
//在每次由綠燈向紅燈轉(zhuǎn)換的過(guò)程中,要亮3秒的黃燈作為過(guò)渡
//綠燈閃爍4s再變黃燈
assign??G1_time=8'd60;//主干道每次通行60秒
assign??Y1_time=8'd3;//亮3秒的黃燈作為過(guò)渡
assign??G2_time=8'd15;//支干道每次通行15秒
assign??Y2_time=8'd3;//亮3秒的黃燈作為過(guò)渡

//交通燈控制模塊(狀態(tài)控制器)
RGY?U1(
.?clk_1(clk_1),
.?no_car_detection(~car_detection),//車輛檢測(cè),主干道處于長(zhǎng)允許通行狀態(tài),而支干道有車來(lái)時(shí)才允許通行,car_detection==1表示支路有車

.?R1(R1_led),
.?G1(G1_led),
.?Y1(Y1_led),

.?R2(R2_led),
.?G2(G2_led),
.?Y2(Y2_led),

.?G1_time(G1_time),
.?Y1_time(Y1_time),
.?G2_time(G2_time),
.?Y2_time(Y2_time),

.?G1_BCD(G1_BCD),//綠燈時(shí)間
.?Y1_BCD(Y1_BCD),//黃燈時(shí)間
.?R1_BCD(R1_BCD),//紅燈時(shí)間
.?G2_BCD(G2_BCD),//綠燈時(shí)間
.?Y2_BCD(Y2_BCD),//黃燈時(shí)間
.?R2_BCD(R2_BCD)//紅燈時(shí)間
);

//顯示數(shù)據(jù)(計(jì)數(shù)器)
SMG?U2(
.?clk(clk),

.?R1(R1_led),
.?G1(G1_led),
.?Y1(Y1_led),

.?R2(R2_led),
.?G2(G2_led),
.?Y2(Y2_led),

.?G1_BCD(G1_BCD),
.?Y1_BCD(Y1_BCD),
.?R1_BCD(R1_BCD),
.?G2_BCD(G2_BCD),
.?Y2_BCD(Y2_BCD),
.?R2_BCD(R2_BCD),

.?G1_time(G1_time),
.?Y1_time(Y1_time),
.?G2_time(G2_time),
.?Y2_time(Y2_time),

.?SMG1(SMG1),//數(shù)碼管顯示
.?SMG2(SMG2)//數(shù)碼管顯示
);

//閃爍控制電路
FLASH_ctrl?i_FLASH_ctrl(
.?clk_1(clk_1),
.?G1_BCD(G1_BCD),//主路綠燈計(jì)時(shí)
.?G2_BCD(G2_BCD),//支路綠燈計(jì)時(shí)
.?G1_flash(G1_flash),
.?G2_flash(G2_flash)
);

//數(shù)碼管譯碼器	
HEX?U3
(
.?clk(clk),
.?SMG_1(SMG1),//數(shù)碼管數(shù)據(jù)顯示
.?SMG_2(SMG2),//數(shù)碼管數(shù)據(jù)顯示

.?HEX0(HEX0),//低電平亮
.?HEX1(HEX1),//低電平亮
.?HEX2(HEX2),//低電平亮
.?HEX3(HEX3)//低電平亮
);

endmodule

設(shè)計(jì)文檔(文檔點(diǎn)擊可下載):

點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=143

  • 1-230Z910512U57.doc
    下載

相關(guān)推薦