key.v

来自「dds编程代码 希望对别人有帮助 其功能是根据dds的原理编写」· Verilog 代码 · 共 40 行

V
40
字号
//按键去抖模块:key.v  module key(clk,keyin,keyout,keyoutdir,en);   input clk;   input [3:0]keyin;   output [3:0]keyout;   output keyoutdir,en;   reg  en;   reg [3:0]keyout;   reg [16:0]scan;   reg [3:0]key;   reg keyen;   integer  i=0;   parameter   FLKxM=10;  //时钟频率MHz   parameter   LEN=10;    //去抖时间10ms     assign  keyoutdir=1'b0;       always@(posedge clk)         if(keyin!=4'hf)            if(scan==FLKxM*LEN)//在有键按下10ms以后准备读取键值                 begin keyen<=1'b0;                       scan<=scan+1'b0;end              else begin keyen<=1'b0;                       scan<=scan+1'b1;end           else  begin               if(scan!=0) scan<=scan-1'b1;                  else scan<=scan;                     keyen<=1'b0;                end        always@(posedge clk)          if(keyen)    //去除抖动后开始读数                keyout<=~keyin;              else     keyout<=4'b0;           always@(posedge clk)          if(keyin!=4'hf)    en=1'b0;           else    en=1'b1;  endmodule                                                                                                                                           

⌨️ 快捷键说明

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