打印
[CPLD]

按键按下与弹起的测试

[复制链接]
1323|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nfnf|  楼主 | 2015-10-28 15:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在网上买了块EPM1270T144C5N的CPLD板,其中有个按键测试程序,我想把它改一下实现按键的按下与弹起的测试,可是就是报错,不能通过,请各位指教。下面是代码。
module joystick(
                                        clk,
                                        reset,
                                        key_up,
                                        key_down,
                                        key_left,
                                        key_right,
                                        key_upr,
                                        key_downr,
                                        key_leftr,
                                        key_rightr,
                                        led
               );
input clk,reset;
input key_up,key_down,key_left,key_right,key_upr,key_downr,key_leftr,key_rightr;
output[3:0] led;

reg[3:0] led_reg;
reg[10:0] Count1;
reg  Count;
reg up_down;
always@(posedge clk or negedge reset)
if(!reset)
Count1<=11'd0;
else if(Count1==11'd1999)
Count=~Count;
else
Count1<=Count1+1'b1;

assign led=led_reg;
always@(posedge Count or negedge reset)
if(!reset)
begin
led_reg<=4'b1111;
up_down<=1'b1;//up
end
/*
else if(!key_up)
led_reg<=4'b1110;
else if(!key_down)
led_reg<=4'b0111;
else if(!key_left)
led_reg<=4'b1101;
else if(!key_right)
led_reg<=4'b1011;
else if(!key_upr)
led_reg<=4'b1100;
else if(!key_downr)
led_reg<=4'b0011;
else if(!key_leftr)
led_reg<=4'b1001;
*/
else if(!key_rightr)
//led_reg<=4'b1010;
up_down<=1'b0;//down
else
led_reg<=led_reg;

//assign led=led_reg;
always@(posedge Count or negedge reset)
if(key_rightr)
begin
if(up_down==0)
        begin
        led_reg<=led_reg+1'b1;
        up_down<=1'b1;
        end
end




endmodule

相关帖子

沙发
xxyyzz123| | 2015-10-28 16:59 | 只看该作者
要做防抖动滤波

使用特权

评论回复
板凳
nfnf|  楼主 | 2015-10-29 08:37 | 只看该作者
能说的明白点吗?

使用特权

评论回复
地板
nfnf|  楼主 | 2015-10-30 08:54 | 只看该作者
怎么没人回答呢?人气太少?

使用特权

评论回复
5
titanyehua| | 2015-10-30 11:42 | 只看该作者
一般按键要进行防抖动设计,将按下去瞬间不稳定的状态滤掉,不然容易出现问题

使用特权

评论回复
6
feihufuture| | 2015-10-30 16:15 | 只看该作者
titanyehua 发表于 2015-10-30 11:42
一般按键要进行防抖动设计,将按下去瞬间不稳定的状态滤掉,不然容易出现问题 ...

使用特权

评论回复
7
reaperzero| | 2015-10-30 21:55 | 只看该作者
本帖最后由 reaperzero 于 2015-10-30 22:09 编辑

这,没注释,,,所以功能上能不能实现没了解
编译了下,出错的地方说你LED_REG有多个赋值,就是说寄存器不要同时在多个always里赋值



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝