6.10

按键按下去时短暂的,如何让这种短暂延续?只是单纯的用if-else 恐怕不够,今天借鉴别人的代码,写了一个让他延续的事例,具体就是另外再加上一个计数器,当按下后,计数器计数加一,在加一的状态下可以任意操作,直到再次按下键,计数器再加一,延续终止,具体代码如下:

always@(posedge clk_50,negedge rst_n)
    if(!rst_n)         
        key1_count<=0;
        else if(key1_en) begin
                if(key1_count==2'd1)
                    key1_count<=0;
                else key1_count<=key1_count+1'b1;
                    end
reg [3:0] led_mov;
always@(posedge clk_50,negedge rst_n)
    if(!rst_n) begin        
        led1<=0;
        led_mov<=4'b0001;
        end
    else if(key1_count==1'b1) begin
                if(cnt_500ms==26'd25000000)
                        led_mov[3:0]<={led_mov[0],led_mov[3:1]};
                else led1<=led_mov;
                            end
            else led1<=0;
    

 

posted on 2015-06-10 20:00  且歌且行吧  阅读(100)  评论(0编辑  收藏  举报

导航