日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

篮球30s倒计时

發布時間:2024/1/18 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 篮球30s倒计时 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

**

一、目的:

實現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) beginif(!i_rst) begincnt <= 32'd0;clk_1hz <= 0;endelse if(cnt == clk_cnt) begincnt <= 32'd0;clk_1hz <= ~clk_1hz;endelse begincnt <= cnt +1'b1;clk_1hz <= clk_1hz;end end endmodule

數碼管顯示模塊代碼如下:

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) beginif(!i_rst) begincnt_shi <= 4'd3;cnt_ge <= 4'd0;led_0 <= 0;led_zt <= 0;endelse if((cnt_shi == 4'd0)&&(cnt_ge == 4'd0)) begincnt_shi <= cnt_shi;cnt_ge <= cnt_ge;led_0 <= 1;endelse if(!cnt_en) begincnt_shi <= cnt_shi;cnt_ge <= cnt_ge;led_zt <= 0;endelse if(cnt_ge == 4'd0) begincnt_shi <= cnt_shi - 1'b1;cnt_ge <= 4'd9;endelse begincnt_shi <= cnt_shi;cnt_ge <= cnt_ge - 1'b1;led_zt <= 1;end end always @( * ) begincase(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 end always @( * ) begincase(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

三、總結

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

總結

以上是生活随笔為你收集整理的篮球30s倒计时的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。