一、Code
module seg7(// inputinput clk_50,input rst_n, //outputoutput[6:0] HEX7,HEX6,HEX5,HEX4,HEX3,HEX2,HEX1,HEX0);reg[24:0] cnt; //2的25次方,约640msalways@(posedge clk_50 or negedge rst_n) if(!rst_n) cnt <= 25'd0; else cnt <= cnt+1'b1; reg[3:0] num;always@(posedge clk_50 or negedge rst_n) if(!rst_n) num <= 4'd0; else if(cnt == 25'h1ffffff) num <= num+1'b1;/* 共阴极 :不带小数点parameter seg0 = 7'h3f, seg1 = 7'h06, seg2 = 7'h5b, seg3 = 7'h4f, seg4 = 7'h66, seg5 = 7'h6d, seg6 = 7'h7d, seg7 = 7'h07, seg8 = 7'h7f, seg9 = 7'h6f, sega = 7'h77, segb = 7'h7c, segc = 7'h39, segd = 7'h5e, sege = 7'h79, segf = 7'h71; */// 共阳极 :不带小数点 parameter seg0 = 7'h40, seg1 = 7'h79, seg2 = 7'h24, seg3 = 7'h30, seg4 = 7'h19, seg5 = 7'h12, seg6 = 7'h02, seg7 = 7'h78, seg8 = 7'h00, seg9 = 7'h18, sega = 7'h08, segb = 7'h03, segc = 7'h46, segd = 7'h21, sege = 7'h06, segf = 7'h0e;reg[6:0] HEX_r; //7段数码管(不包括小数点) always @ (num) case (num) //NUM值显示在两个数码管上 4'h0: HEX_r <= seg0; 4'h1: HEX_r <= seg1; 4'h2: HEX_r <= seg2; 4'h3: HEX_r <= seg3; 4'h4: HEX_r <= seg4; 4'h5: HEX_r <= seg5; 4'h6: HEX_r <= seg6; 4'h7: HEX_r <= seg7; 4'h8: HEX_r <= seg8; 4'h9: HEX_r <= seg9; 4'ha: HEX_r <= sega; 4'hb: HEX_r <= segb; 4'hc: HEX_r <= segc; 4'hd: HEX_r <= segd; 4'he: HEX_r <= sege; 4'hf: HEX_r <= segf; default: ; endcaseassign HEX0 = HEX_r;assign HEX1 = HEX_r;assign HEX2 = HEX_r;assign HEX3 = HEX_r;assign HEX4 = HEX_r;assign HEX5 = HEX_r;assign HEX6 = HEX_r;assign HEX7 = HEX_r; endmodule