您现在的位置:首页 > 科技成果科技成果

非同于MCU的独立按键消抖动

发布时间:2017-11-27 08:46:13  来源:大电流电感厂家   查看:

end

1:

begin

if(key_data != {KEY_WIDTH{1'b1}})

state <= 2;

else

state <= 0;

end

2:

begin

key_flag_r <= 1'b1;

key_value <= key_data; //lock the key_value

state <= 3;

end

3:

begin

key_flag_r <= 1'b0; //read the key_value

if(key_data == {KEY_WIDTH{1'b1}})

state <= 4;

else

state <= 3;

end

4:

begin

if(key_data == {KEY_WIDTH{1'b1}})

state &模压电感器lt;= 0;

else

state <= 4;

end

endcase

end

end

//---------------------------------------

//Capture the falling endge of the key_flag

reg key_flag_r0,key_flag_r1;

always@(posedge clk or negedge rst_n)

begin

if(!rst_n)

begin

key_flag_r0 <= 0;

key_flag_r1 <= 0;

end

else

begin

key_flag_r0 <= key_flag_r;

key_flag_r1 <= key_flag_r0;

end

end

assign key_flag = key_flag_r1 & ~key_flag_r0;

endmodule

信号线说明如下:

clk

系统最高时钟

rst_n

系统复位信号

Key_data

按键信号(可根据需要配置为n位)

Key_flag

按键确认信号

Key_vaule

按键返回值

雷同上述MCU按键消抖动的状态,此模块可以模拟成一下5个状态,见state machine:

(2)循环n次计数消抖动

同样,此模块也是Bingo无数次修改测试最后成型的代码,利用了更少的资源,更适用于并行高速FPGA的性能要求。具体代码实现过程请有需要的自行分析,本模块通过相关时钟的适配,n次计数来确认按键信号,Verilog代码如下所示:

/*************************************************

* Module Name : key_scan.v

* Engineer : Crazy Bingo

* Target Device : EP2C8Q208C8

* Tool versions : Quartus II 11.0

* Create Date : 2011-6-25

* Revision : v1.0

* Description :

**************************************************/

module key_scan

#(

parameter KEY_WIDTH = 2

)

(

input clk, //50MHz

input rst_n,

input [KEY_WIDTH-1:0] key_data,

output key_flag,

output reg [KEY_WIDTH-1:0] key_value

);

//---------------------------------

//escape电感器生产 the jitters

reg [19:0] key_cnt; //scan counter

reg [KEY_WIDTH-1:0] key_data_r;

always @(posedge clk or negedge rst_n)

begin

if(!rst_n)

begin

key_data_r <= {KEY_WIDTH{1'b1}};

key_cnt <= 0;

end

else

begin

key_data_r <= key_data; //lock the key value

if((key_data == key_data_r) && (key_data != {KEY_WIDTH{1'b1}})) //20ms escape jitter

begin

if(key_cnt < 20'hfffff)

key_cn电感器生产厂家t <= key_cnt + 1'b1;

end

else key_cnt <= 0;

end

end

wire cnt_flag = (key_cnt == 20'hffffe) ? 1'b1 : 1'b0;//!!

//-----------------------------------

//sure the key is pressed

reg key_flag_r;

always@(posedge clk or negedge rst_n)

begin

if(!rst_n)

begin

key_flag_r <= 0;

key_value <= 0;

end

else if(cnt_flag)

begin

key_flag_r <= 1;

key_value <= key_data; //locked the data

end

else //let go your hand

key_flag_r <= 0; //lock the key_value

end

//---------------------------------------

//Capture the rising endge of the key_flag

reg key_flag_r0,key_flag_r1;

always@(posedge clk or negedge rst_n)

begin

if(!rst_n)

begin

key_flag_r0 <= 0;

key_flag_r电感器 设计1 <= 0;

end

else

begin

key_flag_r0 <= key_flag_r;

key_flag_r1 <= key_flag_r0;

end

扁平型电感

end

assign key_flag = ~key_flag_r1 & key_flag_r0;

endmodule

平面变压器厂家 | 平面电感厂家

比较难的练习题,哪位大神可以帮忙做出啊?1.下拉栏中有产品1~8

2.每个产品有9个参数,可以手动改写参数



有“修改”与“保存”两个按键



现要求:1.当我下拉栏拉到产品1时,我手动设置9个参数,按保存,可以保存数据至记

反激变压器原边电压采样反激变压器使用其中一组绕组做原边输入电压采样,在输入电压较高时为什么会有一些机型采样电压不正确,正常输入时是正确的而且只有一部分会出现这种状况












占空

基于DSP数字摄像机技术发展作为DSP领先者的美国德州仪器公司(TI)在数字照相机应用方面同样独占鳌头。首先基于TMS320C54x通用平台上实现影像压缩,然后将影像前端处理的分立器件集成为一个专用芯片,进而把两者合二为一并集成

CopyRight2014
大电流电感 | 大功率电感 | 扁平线圈电感 注塑加工厂