led.v

来自「7段发光二极管vhdl程序」· Verilog 代码 · 共 54 行

V
54
字号
module led (seg,sl,clk);		 			//定义模块结构
    	output [7:0] seg;				   		//定义数码管段输出引脚
		output [3:0] sl;					   	//定义数码管选择输出引脚
    	input clk;						      //定义输入时钟引脚

	reg [7:0] seg_reg;					//定义数码管段输出寄存器
	reg [3:0] sl_reg;						//定义数码管选择输出寄存器
	reg [3:0] disp_dat;					//定义显示数据寄存器
	reg [36:0] count;						//定义计数器寄存器

always
begin
	sl_reg=4'b000;
end


always @(posedge clk)					//定义clock信号下降沿触发
begin
	count=count+1;					   	//计数器值加1
end

always @(posedge count[24])	          //定义显示数据触发事件
begin
	disp_dat = disp_dat+1;						//显示个位数值
     	
end

always @(disp_dat)						   //显示译码输出
begin
	case (disp_dat)						   //选择输出数据
		4'h0: seg_reg = 8'hc0;				//显示0
		4'h1: seg_reg = 8'hf9;				//显示1
		4'h2: seg_reg = 8'ha4;				//显示2
		4'h3: seg_reg = 8'hb0;				//显示3
		4'h4: seg_reg = 8'h99;				//显示4
		4'h5: seg_reg = 8'h92;				//显示5
		4'h6: seg_reg = 8'h82;				//显示6
		4'h7: seg_reg = 8'hf8;				//显示7
		4'h8: seg_reg = 8'h80;				//显示8
		4'h9: seg_reg = 8'h90;				//显示9
		4'ha: seg_reg = 8'h88;				//显示a
		4'hb: seg_reg = 8'h83;				//显示b
		4'hc: seg_reg = 8'hc6;				//显示c
		4'hd: seg_reg = 8'ha1;				//显示d
		4'he: seg_reg = 8'h86;				//显示e
		4'hf: seg_reg = 8'h8e;				//显示f
	endcase
end

assign seg = seg_reg;						//输出数码管译码结果
assign sl=sl_reg;							//输出数码管选择

endmodule

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?