注册 登录
电子技术论坛 返回首页

scatz的个人空间 //www.ws-dc.com/?1127515 [收藏] [复制] [分享] [RSS]

博客

WHY--数码管动态显示实验

已有 346 次阅读2014-4-2 14:41

module example_dt(input CLK,
output DS_G,DS_F,DS_E,DS_D,DS_C,DS_B,DS_A,
output DS_EN1,DS_EN2,DS_EN3,DS_EN4);

//数字 0,1,2,3,4,5,6,7,8,9
parameter num0 = 7'b011_1111;
parameter num1 = 7'b000_0110;
parameter num2 = 7'b101_1011;
parameter num3 = 7'b100_1111;
parameter num4 = 7'b110_0110;
parameter num5 = 7'b110_1101;
parameter num6 = 7'b111_1101;
parameter num7 = 7'b000_0111;
parameter num8 = 7'b111_1111;
parameter num9 = 7'b110_1111;
parameter numB = 7'b000_0000;
//数码管显示使能端
parameter EN1 = 4'b1110;
parameter EN2 = 4'b1011;//数码管PCB板连线错误
parameter EN3 = 4'b1101;
parameter EN4 = 4'b0111;
parameter ENA = 4'b0000;
reg [31:0] cnt1;
reg [6:0] ds_reg;
reg [3:0] ds_en;
assign {DS_G,DS_F,DS_E,DS_D,DS_C,DS_B,DS_A} = ds_reg;
assign {DS_EN1,DS_EN2,DS_EN3,DS_EN4} = ds_en;
//initial 
//begin cnt1 = 32'b0;ds_en = ENA;end //有这两行初始化进程时,数码管不能正常点亮
always @(posedge CLK)
begin
 cnt1 = cnt1+1'b1;
end
always @(posedge CLK)
begin
case (cnt1[27:24])
4'h0: begin ds_reg = num0;ds_en = EN1;end
4'h1: begin ds_reg = num1;ds_en = EN1;end
4'h2: begin ds_reg = num2;ds_en = EN1;end
4'h3: begin ds_reg = num3;ds_en = EN1;end
4'h4: begin ds_reg = num4;ds_en = EN1;end
4'h5: begin ds_reg = num5;ds_en = EN1;end
4'h6: begin ds_reg = num6;ds_en = EN1;end
4'h7: begin ds_reg = num7;ds_en = EN1;end
4'h8: begin ds_reg = num8;ds_en = EN1;end
4'h9: begin ds_reg = num9;ds_en = EN1;end
default: begin ds_reg = numB;ds_en = ENA;end
endcase
end  
endmodule

路过

雷人

握手

鲜花

鸡蛋
返回顶部