国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99

  • 方案介紹
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

交通燈控制器Basys3開發(fā)板紅綠燈數(shù)碼管倒計時verilog

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

名稱:交通燈控制器Basys3開發(fā)板紅綠燈數(shù)碼管倒計時verilog(代碼在文末下載)

軟件:VIVADO

語言:Verilog

代碼功能:

交通燈控制器

1、實現(xiàn)一個十字路口交通燈,每條路有紅綠黃三色信號燈。

2、使用數(shù)碼管顯示倒計時。

3、可通過代碼修改通行時間。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

本代碼已在Basys3開發(fā)板驗證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:

basys3開發(fā)板.png

設(shè)計文檔:

工程文件

db0e6be1-a6d9-4cb1-b78e-81e7a8d52d8c.png

程序文件

ab2fc90e-97a9-41df-894d-a78ac3f7a6a3.png

RTL圖

3e349725-8b62-4d08-8130-c76367010d91.png

管腳分配

9b31f06e-3da8-4620-bbcb-39e0d1b2a1aa.png

testbench

565be07f-7882-4757-9cbe-e59a24944c11.png

仿真圖

fbd09bc4-63e6-4ed5-9f1f-7e6faef6074a.png

30de19bf-d844-48d0-9a4e-f25a34a787ba.png

部分代碼展示:

/*
紅->綠?綠->黃?黃->紅
1、紅--計時main_red_times------------------------綠--計時main_green_times---main_yellow_times黃燈---------------紅
2、綠--計時branch_green_times---branch_yellow_times黃燈--------------------紅--計時branch_reg_times-------------------綠
*/
//控制模塊
module?led(
input?clk_1Hz,
input?[7:0]?main_green_time,
input?[7:0]?main_yellow_time,
input?[7:0]?branch_green_time,
input?[7:0]?branch_yellow_time,
output?reg?main_red,//主路燈
output?reg?main_green,//
output?reg?main_yellow,//
output?reg?branch_red,//支路燈
output?reg?branch_green,//
output?reg?branch_yellow,
output?reg?[7:0]?main_green_BCD,
output?reg?[7:0]?main_yellow_BCD,
output?reg?[7:0]?main_red_BCD,
output?reg?[7:0]?branch_green_BCD,
output?reg?[7:0]?branch_yellow_BCD,
output?reg?[7:0]?branch_red_BCD
);
//
parameter?main_green_state=3'd0;//紅綠
parameter?main_yellow_state=3'd1;//紅黃
parameter?main_red_state=3'd2;//紅紅
parameter?branch_green_state=3'd3;//綠紅
parameter?branch_yellow_state=3'd4;//黃紅
parameter?branch_red_state=3'd5;//紅紅
//定義路口個燈持續(xù)時間,修改此處時間
//主路綠燈+主路黃燈=支路紅燈時間
//支路綠燈+支路黃燈=主路紅燈時間
reg?[2:0]?state=3'd0;
reg?[7:0]?main_green_cnt=8'd1;
reg?[7:0]?main_yellow_cnt=8'd1;
reg?[7:0]?branch_green_cnt=8'd1;
reg?[7:0]?branch_yellow_cnt=8'd1;
//主路綠燈+主路黃燈=支路紅燈時間
//支路綠燈+支路黃燈=主路紅燈時間
always@(posedge?clk_1Hz)
case(state)
main_green_state://紅綠
if(main_green_cnt<main_green_time)?begin//主路綠燈
state<=main_green_state;
main_green_cnt<=main_green_cnt+'d1;
end
else?begin
state<=main_yellow_state;//計數(shù)到后到下一狀態(tài)
main_green_cnt<='d1;
end
main_yellow_state://紅黃???
???if(main_yellow_cnt<main_yellow_time)?begin//主路黃燈
state<=main_yellow_state;
????????main_yellow_cnt<=main_yellow_cnt+'d1;
end
else?begin
state<=branch_green_state;//計數(shù)到后到下一狀態(tài)
????????main_yellow_cnt<='d1;
end
main_red_state://紅紅
????state<=branch_green_state;
???branch_green_state://綠紅
if(branch_green_cnt<branch_green_time)?begin//支路綠燈
state<=branch_green_state;
branch_green_cnt<=branch_green_cnt+'d1;
end
else?begin
state<=branch_yellow_state;//計數(shù)到后到下一狀態(tài)
branch_green_cnt<='d1;
end????
???branch_yellow_state://黃紅
???if(branch_yellow_cnt<branch_yellow_time)?begin//支路3s黃燈
state<=branch_yellow_state;
??????branch_yellow_cnt<=branch_yellow_cnt+'d1;
end
else?begin
state<=main_green_state;//計數(shù)到后到下一狀態(tài)
??????branch_yellow_cnt<='d1;
end
???branch_red_state://紅紅
?????????state<=main_green_state?;
default:state<=main_green_state;
endcase
//交通燈狀態(tài)控制,state為相應(yīng)狀態(tài)時亮相應(yīng)燈
always@(posedge?clk_1Hz?)
begin
if(state==main_green_state)
main_green<=1;
else
main_green<=0;
if(state==main_yellow_state?)
main_yellow<=1;
else
main_yellow<=0;
if(state==branch_green_state?|?state==branch_yellow_state)
main_red<=1;
else
main_red<=0;
end
//交通燈狀態(tài)控制,state為相應(yīng)狀態(tài)時亮相應(yīng)燈
always@(posedge?clk_1Hz?)
begin
if(state==branch_green_state)
branch_green<=1;
else
branch_green<=0;
if(state==branch_yellow_state?)
branch_yellow<=1;
else
branch_yellow<=0;
if(state==main_green_state?|?state==main_yellow_state)
branch_red<=1;
else
branch_red<=0;
end
//計數(shù)
//主路綠燈+主路黃燈=支路紅燈時間
//支路綠燈+支路黃燈=主路紅燈時間
//采用BCD碼計數(shù)
always@(posedge?clk_1Hz?)//
begin
if(state==branch_green_state)
main_red_BCD<=branch_green_cnt;
else?if(state==branch_yellow_state)
main_red_BCD<=branch_yellow_cnt+branch_green_time;//支路綠燈+支路黃燈=主路紅燈時間
else
???main_red_BCD<='d0;
if(state==main_green_state)
branch_red_BCD<=main_green_cnt;
else?if(state==main_yellow_state)
branch_red_BCD<=main_yellow_cnt+main_green_time;//主路綠燈+主路黃燈=支路紅燈時間
else
???branch_red_BCD<='d0;
?main_green_BCD<=main_green_cnt;
?main_yellow_BCD<=main_yellow_cnt;
?branch_green_BCD<=branch_green_cnt;
?branch_yellow_BCD<=branch_yellow_cnt;
end
endmodule

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

相關(guān)推薦

老河口市| 建瓯市| 洛隆县| 巴南区| 临朐县| 唐山市| 宁明县| 湘潭市| 乐业县| 华亭县| 松江区| 东宁县| 砚山县| 温宿县| 司法| 西城区| 虞城县| 阳新县| 株洲市| 会理县| 长宁区| 盖州市| 望都县| 卓资县| 漳浦县| 会理县| 高尔夫| 彭泽县| 邳州市| 拉孜县| 额济纳旗| 合江县| 贵溪市| 鄂温| 隆安县| 江源县| 方山县| 鄂尔多斯市| 沈丘县| 中牟县| 镇康县|