集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1638|回复: 3

按键消抖实验

[复制链接]
pengdan0905 发表于 2011-9-23 16:56:07 | 显示全部楼层 |阅读模式
module lcd_button2(
                    clk,
                    rst,
                    led_d1,
                   led_d2,
                   led_d3,
                    sw1,
                    sw2,
                    sw3
              );//按键按下,数码管依次显示0-9
input clk;
input rst;
input sw1,sw2,sw3;
output led_d1,led_d2, led_d3;
                  

reg [2:0] key_rst;
always @(posedge clk or negedge rst)
  if(!rst)
   key_rst <= 3'b111;
  else
   key_rst <= {sw3,sw2,sw1};
  
reg[2:0] key_rst_r;
always @(posedge clk or negedge rst)
  if(!rst)
   key_rst_r <= 3'b111;
  else
   key_rst_r <= key_rst;
wire[3:0] key_an = key_rst_r & (~key_rst);

reg[19:0] cnt;

always @(posedge clk or negedge rst)
  if(!rst)
   cnt <= 0;
  else if(key_an) cnt <= 0;
  else cnt <= cnt+1'b1;
  
reg [2:0] low_sw;
always @(posedge clk or negedge rst)
  if(!rst)
   low_sw <= 3'b111;
  else if(cnt==20'hfffff)
   low_sw <= {sw3,sw2,sw1};
   
reg[2:0] low_sw_r;

always @(posedge clk or negedge rst)
  if(!rst)
   low_sw_r <= 3'b111;
  else
   low_sw_r <= low_sw;
   
wire [2:0]  led_ctr =low_sw_r[2:0]&(~low_sw[2:0]);

reg d1;
reg d2;
reg d3;
always @(posedge clk or negedge rst)
  if(!rst) begin
   d1 <= 1'b0;
   d2 <= 1'b0;
   d3 <= 1'b0;
   
  end
  
else begin
     if(led_ctr[0]) d1<=~d1;
     if(led_ctr[1]) d2<=~d2;
     if(led_ctr[2]) d3<=~d3;
  end
   assign led_d3=d3?1'b1:1'b0;
   assign led_d2=d2?1'b1:1'b0;
   assign led_d1=d1?1'b1:1'b0;
   
endmodule
 楼主| pengdan0905 发表于 2011-9-23 16:57:34 | 显示全部楼层
具体说明还未上,先贴程序
ok1246 发表于 2011-10-24 16:58:03 | 显示全部楼层
............................
至芯兴洪 发表于 2011-10-28 13:51:26 | 显示全部楼层
你写程序always 不加上begin--end吗,加上吧,风格问题 你要不加,有的时候很难知道哪是一块了
wire[3:0] key_an = key_rst_r & (~key_rst);这种写发行吗,程序中不少啊
注意代码风格
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-10 07:37 , Processed in 0.066788 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表