名称:具有四种信号灯的交通灯控制器设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
设计具有四种信号灯的交通灯控制器
设计任务
由一条主干道和一条支干道汇合成十字路口,在每个人口处设置红,绿、黄,左拐允许四盏信号灯,红灯亮禁止通行,绿灯亮允许迪行,黄灯亮则给行驶中的车辆有时间停在禁行线外,左拐灯亮允许车转向左拐弯。信号订丁变换次字为:主支干道交替通行,主干行亮5s黄灯让行驶中的车辆有时间停到共行线外,左拐应行15,亮5s黄灯,支30s,亮5s黄灯,左拐放行15s,亮5黄订、各计时电路为倒计时显示
任务分析
将红、绿、黃、左拐允许四盏信号灯出到指示灯上显示,将停放时间结果输出到改码管上显示
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. 管脚分配
5. 仿真图
分频模块
控制模块
显示模块
部分代码展示:
//数码管显示模块 module?display ( input?clk_1K,//1K input?[7:0]?main_data,//主路,两个数码管 input?[7:0]?branch_data,//支路,两个数码管 output?reg?[7:0]?SEG1,//数码管段选显示 output?reg?[3:0]?SEL1?//数码管位选显示 ); //数码管位选 reg?[1:0]sel_cnt?=2'd0; reg?[7:0]data_num_1?=8'd0; reg?[7:0]data_num_2?=8'd0; always?@(posedge?clk_1K?)??//4个数码管 begin sel_cnt<=sel_cnt+2'd1; end always?@(*)??//位选切换 begin case?(sel_cnt) 2'd0: begin SEL1<=~4'b0111; data_num_1<=?branch_data%10;//?支路个位 end
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1294