📄 six_smg2.v
字号:
//六位数码管动态显示
module six_smg2(clk,
led1,led2,led3,led4,led5,led6,
seg_a,seg_b,seg_c,seg_d,seg_e,
seg_f,seg_g,seg_h);
input clk;
//声明输入管脚为wire型
output reg led1,led2,led3,led4,led5,led6,
seg_a,seg_b,seg_c,seg_d,seg_e,
seg_f,seg_g,seg_h;
reg[3:0] led1q,led2q,led3q,led4q,led5q,led6q;
reg [3:0] led_xx;
reg [7:0] seg_out;
reg [1:6] led_out;
reg [7:0] delay;
always @(led_out or led1q or led2q or led3q or
led4q or led5q or led6q)
begin
led1=led_out[1];
led2=led_out[2];
led3=led_out[3];
led4=led_out[4];
led5=led_out[5];
led6=led_out[6];
case(led_out)
6'b111110:led_xx=led6q;
6'b111101:led_xx=led5q;
6'b111011:led_xx=led4q;
6'b110111:led_xx=led3q;
6'b101111:led_xx=led2q;
6'b011111:led_xx=led1q;
default: led_xx=4'hf;
endcase
case(led_xx)
4'd0:seg_out=8'b00111111;//0,0x3f
4'd1:seg_out=8'b00000110;//1,0x06
4'd2:seg_out=8'b01011011;//2,0x5b
4'd3:seg_out=8'b01001111;//3,0x4f
4'd4:seg_out=8'b01100110;//4,0x66
4'd5:seg_out=8'b01101101;//5,0x6d
4'd6:seg_out=8'b01111101;//6,0x7d
4'd7:seg_out=8'b00000111;//7,0x07
4'd8:seg_out=8'b01111111;//8,0x7f
4'd9:seg_out=8'b01101111;//9,0x6f
4'd10:seg_out=8'b01110111;//a,0x77;
4'd11:seg_out=8'b01111100;//b,0x7c
4'd12:seg_out=8'b00111001;//c,0x39
4'd13:seg_out=8'b01011110;//d,0x5e
4'd14:seg_out=8'b01111001;//e,0x79
4'd15:seg_out=8'b01110001;//f,0x71
endcase
seg_h=seg_out[7];seg_g=seg_out[6];
seg_f=seg_out[5];seg_e=seg_out[4];
seg_d=seg_out[3];seg_c=seg_out[2];
seg_b=seg_out[1];seg_a=seg_out[0];
end
always @(posedge clk)
begin
led1q=4'd10;led2q=4'd11;led3q=4'd12;
led4q=4'd13;led5q=4'd14;led6q=4'd15;
delay<=delay+1;
if(delay>200)
begin
delay<=8'd0;
if(led_out==6'b111111) led_out<=6'b111110;
else
led_out<=(led_out<<1)|1;
end
end
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -