两个独立按钮控制流水灯的左移右移,此程序下载以后,必须得用手一直按着按钮才能完成左移右移,改成肿么样才能使它维持按下去那个状态不变呢

2019-07-16 14:04发布

module LIUSHUIDENG
(  input CLK50M,
        output reg [7:0] LED,
        input [1:0] KEY
);
    integer cnt;
         reg CLK1HZ;
         reg [7:0]cnt_led;
         
         always@ (posedge CLK50M)
            begin
                    if(cnt==25000000)
                           begin
                                    CLK1HZ=~CLK1HZ;
                                         cnt<=0;
                                end
                        else
                           cnt<=cnt+1;
        end
               
        always@ (posedge CLK1HZ)
           begin
                   if(cnt_led==7)
                           cnt_led<=0;
                        else
                      cnt_led=cnt_led+1;
        end

   always@(posedge CLK1HZ)
   case(KEY)
         2'b10:
           begin
                   case(cnt_led)
                  0:LED=8'b00000001;
                  1:LED=8'b00000010;
                  2:LED=8'b00000100;       
             3:LED=8'b00001000;       
                  4:LED=8'b00010000;       
                  5:LED=8'b00100000;       
                  6:LED=8'b01000000;       
                  7:LED=8'b10000000;       
                        default:LED=8'b00000000;
                        endcase
                        end
     2'b01:
           begin
                   case(cnt_led)
                 0:LED=8'b10000000;
                 1:LED=8'b01000000;
                 2:LED=8'b00100000;
                 3:LED=8'b00010000;
                 4:LED=8'b00001000;
                 5:LED=8'b00000100;
                 6:LED=8'b00000010;
                 7:LED=8'b00000001;
                  default:LED=8'b00000000;
                  endcase
                  end
                 endcase
                  endmodule
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
superassent
1楼-- · 2019-07-16 18:12
你应该再设一个中间变量,用一个按键改变这个变量的值,再用case根据这个变量的值来实现这个功能即可,我大致看了一下你的代码,发现如果按键没有被按下,默认全为0,如果按键状态为10,则流水灯右移,如果状态为01,则灯左移,而且按键必须一直按着才行。
miss帆亲亲
2楼-- · 2019-07-16 22:29
 精彩回答 2  元偷偷看……
李春明
3楼-- · 2019-07-17 01:56
学习一下 经验  期待楼主搞好后能够分享一下
houjue
4楼-- · 2019-07-17 07:21
沙发说的对!我再补充那个一点:按钮检测里要加一行检测按钮释放后再执行亮灯。
miss帆亲亲
5楼-- · 2019-07-17 12:20
 精彩回答 2  元偷偷看……
miss帆亲亲
6楼-- · 2019-07-17 16:57
houjue 发表于 2016-12-6 10:09
沙发说的对!我再补充那个一点:按钮检测里要加一行检测按钮释放后再执行亮灯。

请问,该如何填改?我刚学,老师没有讲过开关这方面的处理,谢谢啦~我改了好几遍怎么改都不行

一周热门 更多>