微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > 硬件电路设计讨论 > 两个独立按钮控制流水灯的左移右移,此程序下载以后,必须得用手一直按着按钮才能完成左移右移,改成肿么样才能使它维持按下去那个状态不变呢

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

时间:10-02 整理:3721RD 点击:
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

你应该再设一个中间变量,用一个按键改变这个变量的值,再用case根据这个变量的值来实现这个功能即可,我大致看了一下你的代码,发现如果按键没有被按下,默认全为0,如果按键状态为10,则流水灯右移,如果状态为01,则灯左移,而且按键必须一直按着才行。

已经改了好几天了,一点头绪都没有,最主要的事,老师教的时候根本没有提过开关~

学习一下 经验  期待小编搞好后能够分享一下

沙发说的对!我再补充那个一点:按钮检测里要加一行检测按钮释放后再执行亮灯。

老师上课没有讲过开关这方面如何写,能告诉我格式吗?

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

怎么说呢,是你的程序架构的问题。你在这个架构上改是不可能的。需要你另外写程序架构的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top