名称:篮球记分计时器设计Verilog代码Quartus DE0-CV开发板(文末获取)
软件:Quartus
语言:Verilog
代码功能:
篮球记分计时器
一、基本功能
1.记分:两组数码管,显示0-99分;可+1、+2、+3分;可手动修改分数,以修正错误。
2.计时:共40分钟;倒计时;每10分钟暂停一次
3.分数和时间,用数据选择器(74157或LPM_MUX)控制数码管复用实现
4.24秒持球进攻倒计时,该计时与比赛时间同步进行,有按钮控制。
5.如需加时赛,则倒计时5分钟,并显示加时赛次数
6.所有计时精确到1/10秒,可以随时暂停和继续。每次计时结束,亮灯提示
二、扩展功能:
1.可以设置计时的初始值,便于应用到其它计时系统
2.分4节计时,显示当前节数
3.增加20S暂停计时,该模块运行时比赛时间停止:该模块结束时比赛时间继续。
4.如果要显示的数码位数超过开发板提供的数码管个数时,使数码管复用显示
5.优化电路(如按钮或开关少,操作简单;电路最简,结构清晰)便于系统使用,增强稳
6.其它符合实际生活需求的功能。
本代码已在DE0-CV开发板验证,DE0-CV开发板如下,其他开发板可以修改管脚适配:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
部分代码展示:
module basketball( input clk,//时钟 input reset,//复位 input start_n,//开始 input stop_n,//暂停 input ball_sw1,// input ball_sw2,// output stop_led, output over24sec_led, output [1:0]ball_led, output end_led, output [3:0] match, output [6:0] HEX0, output [6:0] HEX1, output [6:0] HEX2, output [6:0] HEX3, output [6:0] HEX4, output [6:0] HEX5 ); wire clk_10; wire [7:0] timedown_o; wire [7:0] time12_min_o; wire [7:0] time12_sec_o; clk_div i_clk_div( . clk(clk), . clk_10(clk_10) ); control i_control( . clk(clk), . clk_10(clk_10), . reset(reset), . start_n(start_n), . stop_n(stop_n), . ball_sw1(ball_sw1), . ball_sw2(ball_sw2), . stop_led(stop_led), . over24sec_led(over24sec_led), . ball_led(ball_led), . end_led(end_led), . match(match), . timedown_o(timedown_o), . time12_min_o(time12_min_o), . time12_sec_o(time12_sec_o) ); HEX i_HEX( .clk(clk), .timedown_o(timedown_o), .time12_min_o(time12_min_o), .time12_sec_o(time12_sec_o), .HEX0(HEX0), .HEX1(HEX1), .HEX2(HEX2), .HEX3(HEX3), .HEX4(HEX4), .HEX5(HEX5) ); endmodule
源代码
点击下方的公众号卡片获取