籃球30s倒計時

2021-10-25 11:30:19 字數 3147 閱讀 7133

實現30s倒計時,並且在數碼管實時顯示計數時間,每一秒led綠色燈閃爍一次,計時結束時數碼管停止,同時紅色led燈常亮。
**主要有三個部分,時鐘分頻模組,數碼管顯示模組以及頂層模組(這裡我沒有去呼叫內部pll)

時鐘分頻模組如下:

module div_25mhz( 

input i_clk,

input i_rst,

output reg clk_1hz

);parameter clk_cnt = 24_999_999;

reg [31:0] cnt;

always @(posedge i_clk or negedge i_rst) begin

if(!i_rst) begin

cnt <= 32'd0;

clk_1hz <= 0;

endelse if(cnt == clk_cnt) begin

cnt <= 32'd0;

clk_1hz <= ~clk_1hz;

endelse begin

cnt <= cnt +1'b1;

clk_1hz <= clk_1hz;

endendendmodule

數碼管顯示模組**如下:

module basketball_timing(

input i_clk,

input i_rst,

input cnt_en,

output reg led_zt,

output reg led_0,

output reg [6:0] smg_shi,

output reg [6:0] smg_ge

);parameter num_0 = 7'b100_0000,

num_1 = 7'b111_1001,

num_2 = 7'b010_0100,

num_3 = 7'b011_0000,

num_4 = 7'b001_1001,

num_5 = 7'b001_0010,

num_6 = 7'b000_0010,

num_7 = 7'b111_1000,

num_8 = 7'b000_0000,

num_9 = 7'b001_0000;

reg [3:0] cnt_shi;

reg [3:0] cnt_ge;

always @(posedge i_clk or negedge i_rst) begin

if(!i_rst) begin

cnt_shi <= 4'd3;

cnt_ge <= 4'd0;

led_0 <= 0;

led_zt <= 0;

endelse if((cnt_shi == 4'd0)&&(cnt_ge == 4'd0)) begin

cnt_shi <= cnt_shi;

cnt_ge <= cnt_ge;

led_0 <= 1;

endelse if(!cnt_en) begin

cnt_shi <= cnt_shi;

cnt_ge <= cnt_ge;

led_zt <= 0;

endelse if(cnt_ge == 4'd0) begin

cnt_shi <= cnt_shi - 1'b1;

cnt_ge <= 4'd9;

endelse begin

cnt_shi <= cnt_shi;

cnt_ge <= cnt_ge - 1'b1;

led_zt <= 1;

endendalways @( * ) begin

case(cnt_shi)

4'd0: smg_shi <= num_0;

4'd1: smg_shi <= num_1;

4'd2: smg_shi <= num_2;

4'd3: smg_shi <= num_3;

default: ;

endcase

endalways @( * ) begin

case(cnt_ge)

4'd0: smg_ge <= num_0;

4'd1: smg_ge <= num_1;

4'd2: smg_ge <= num_2;

4'd3: smg_ge <= num_3;

4'd4: smg_ge <= num_4;

4'd5: smg_ge <= num_5;

4'd6: smg_ge <= num_6;

4'd7: smg_ge <= num_7;

4'd8: smg_ge <= num_8;

4'd9: smg_ge <= num_9;

default: ;

endcase

endendmodule

頂層模組**如下:

module basketball_timing_top(

input i_clk,

input i_rst,

input cnt_en,

output led_zt,

output led_0,

output [6:0] smg_shi,

output [6:0] smg_ge

);wire clk_1hz;

div_25mhz u1(

.i_clk(i_clk),

.i_rst(i_rst),

.clk_1hz(clk_1hz)

);basketball_timing u2(

.i_clk(clk_1hz),

.i_rst(i_rst),

.cnt_en(cnt_en),

.led_zt(led_zt),

.led_0(led_0),

.smg_shi(smg_shi),

.smg_ge(smg_ge)

);endmodule

總的來說這些**是最基本的,入門就需要掌握,小白可以看看試著謝謝,加油,趕路人!

倒計時 心跳倒計時

我從悶熱的午後醒來,可還是頭痛得厲害,睡意再次湧上心頭,我告訴自己不能再昏睡下去,於是決定出門去清醒一下。現在的天氣雖說有些燥熱,但是陰涼處還是比較涼爽,我慢慢地走,接著慢跑了起來,夕陽散發著最後一縷餘暉。我邊看著眼前的城市邊際的美景邊深呼吸著,隨著耳機裡傳來的 律動著。突然有個聲音從我腦海裡響起,...

js倒計時,秒倒計時,天倒計時

html 1 html 2 距某某開幕式還有 天 html html html id timer style color red 這次利用系統時間自校驗倒計時,無需手工調校使得倒計時更為精確,及詳細注釋如下 id clock 00 01 11 00 id startb type button val...

php mysql倒計時 php 倒計時程式

測試頁面 獲取系統時間,將時間以指定格式顯示到頁面。function systemtime 獲取系統時間。var datetime new date var yy datetime.getfullyear var mm datetime.getmonth var dd datetime.getdat...