名称:交通灯控制器设计Verilog代码Quartus 实验箱
软件:Quartus
语言:Verilog
代码功能:
交通灯控制器
任务与要求
1.用LED灯表示交通状态,并以七段数码显示器显示当前状态剩余秒数。能实现特殊状态的功能显示,进入特殊状态时,东西南北路口均显示红灯状态。
2.主干道绿灯亮时,支干道红灯亮,反之亦然,二者交替允许通行,主干道每次放行35秒,支干道每次放行25秒。每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,亮黄灯的时间为5秒。该交通灯的亮灭顺序是如下:
3.能实现正常的倒计时显示功能
4.能实现总体清零功能,计数器由初始状态开始计数,对应状态的指示灯亮。
扩展功能
主干道增加左转灯,包括左转的绿灯、黄灯和红灯,即,主干道直行绿灯35s+黄灯5s时,左转红灯亮,完成后,直行红灯亮,左转绿灯亮15s,黄灯亮5s,然后支干道绿灯亮,左转红队亮。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在实验箱验证,实验箱如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件
//IO10连K1;--IO1,2,3连LED1,2,3;--IO7,8,9连LED 4,5,6。
//IO21~IO31连数码管A,B,C,D,E,F,G, DP;IO14~16连数码管C1,C2,C3,C4
//数码管是LED DISP
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. Testbench
7. 仿真图
分频模块
控制模块
倒计时模块
显示模块
部分代码展示:
/* 红->绿 绿->黄 黄->红 1、红--计时main_red_times------------------------绿--计时main_green_times---main_yellow_times黄灯---------------红 2、绿--计时branch_green_times---branch_yellow_times黄灯--------------------红--计时branch_reg_times-------------------绿 */ //IO10连K1;--IO1,2,3连LED1,2,3;--IO7,8,9连LED 4,5,6。 //IO21~IO31连数码管A,B,C,D,E,F,G, DP;IO14~16连数码管C1,C2,C3,C4 //数码管是LED DISP module traffic_light( input clk,//50MMhz input reset,//复位---- //led 0亮1灭 output main_red,//主路灯 output main_green,//主路灯-- output main_yellow,//主路灯-- output branch_red,//支路灯-- output branch_green,//支路灯-- output branch_yellow,//支路灯-- output [3:0] weixuan,//数码管位选 output [7:0] duanxian//数码管段选 ); wire clk_1Hz; wire [7:0] main_green_BCD; wire [7:0] main_yellow_BCD; wire [7:0] main_red_BCD; wire [7:0] branch_green_BCD; wire [7:0] branch_yellow_BCD; wire [7:0] branch_red_BCD; wire [7:0] main_data_out; wire [7:0] branch_data_out; wire main_red_led;//主路灯 wire main_green_led;//主路灯 wire main_yellow_led;//主路灯 wire branch_red_led;//支路灯 wire branch_green_led;//支路灯 wire branch_yellow_led;//支路灯 //led 0亮1灭 assign main_red=~main_red_led;//主路灯 assign main_green=~main_green_led;//主路灯 assign main_yellow=~main_yellow_led ;//主路灯 assign branch_red=~branch_red_led;//支路灯 assign branch_green=~branch_green_led;//支路灯 assign branch_yellow=~branch_yellow_led ;//支路灯
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1284
399