FPGA verilog实现键控数码管动态显示 急啊!!

我的板子是EMP240T100C5N段选是公用的 我要设计一个密码锁 需要按键控制4位LED数码管....原来搞静态显示,但是4位显示一样的数字.......最近写按键控制动态显示.......写了2天了 都没搞出来动态扫描的程序 已哭!求大神啊!!!

module Display(

  D0,

  D1,

  D2,

  D3,

  Q,

  COM,

  Enable,

  clk

 );


input [3:0] D0,D1,D2,D3;

input Enable,clk;

output [7:0] Q;

output [3:0] COM;

reg [3:0] COM;


reg [7:0] Q;

reg [3:0] Dn;

reg [1:0] state;


always@(posedge clk)

begin

state <= state + 2'b1;

end


always@(posedge clk)

begin

if(!Enable) begin COM <= 4'b1111; Dn <= 4'b1111; end

else

begin 

case(state)

2'b00: begin Dn <= D0; COM <= 4'b1110; end

2'b01: begin Dn <= D1; COM <= 4'b1101; end

2'b10: begin Dn <= D2; COM <= 4'b1011; end

2'b11: begin Dn <= D3; COM <= 4'b0111; end

endcase

end

end


always@(Dn)

begin

case(Dn)

4'd0: Q = 8'b0000_0000;

4'd1: Q = 8'b0000_0001;

4'd2: Q = 8'b0000_0010;

4'd3: Q = 8'b0000_0011;

4'd4: Q = 8'b0000_0100;

4'd5: Q = 8'b0000_0101;

4'd6: Q = 8'b0000_0110;

4'd7: Q = 8'b0000_0111;

4'd8: Q = 8'b0000_1000;

4'd9: Q = 8'b0000_1001;

default: Q = 8'b0;

endcase

end


endmodule


温馨提示:内容为网友见解,仅供参考
第1个回答  2014-05-05
做一个2位计数器,用来扫描4个数码管就行了,用case语句

FPGA verilog实现键控数码管动态显示 急啊!!
D1,D2,D3,Q,COM,Enable,clk );input [3:0] D0,D1,D2,D3;input Enable,clk;output [7:0] Q;output [3:0] COM;reg [3:0] COM;reg [7:0] Q;reg [3:0] Dn;reg [1:0] state;always@(posedge clk)begin state <= state + 2'b1;end always@(posedge clk)begin if(!En...

...书籍连载14第三篇FPGA至简设计项目 第五章数码管动态扫描_百度...
FPGA至简设计原理与应用 第五章数码管动态扫描 1. 简介<\/ 数码管,无论是共阳极还是共阴极类型,是电子显示中不可或缺的元件。共阳极数码管需要+5V供电,阴极低电平表示亮;共阴极则相反,阳极高电平亮。例如,输入1001111的abcdefg代码对应显示数字1。了解0-9的二进制或十六进制代码至关重要。2. ...

verilog 串口通信问题!紧急,救命! 谢谢! 我就是想用CPLD实现串口通信...
信同步.程序的基本工作过程是,按动一个按键SW0,控制器向PC的串口发送“welcome",PC机接收后显示验证数据是否正确(串口调试工具设成按ASCII码接受方式).PC可随时向CPLD发送0-F的十六进制数据,CPLD接受后显示在7段数码管上.\/ module serial(clk,rst,rxd,txd,en,seg_data,key_input,lowbit);input...

相似回答