欢迎来到天天文库
浏览记录
ID:44999465
大小:145.50 KB
页数:8页
时间:2019-11-07
《键盘消抖电路》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、键盘消抖电路对于机械按键,虽然只是按下一次然后放掉,结果在按键信号稳定前后会出现一些不该存在的噪声,如图所示。如果将这样的信号直接输入给计数器,结果将可能发生计数超过一次以上的错误。设计原理:(1)一般人的按键速度至多是10次/秒,即一次按键时间是100ms,所以按下的时间可估算为50ms。假如采样信号(Sample)周期为8ms,则可采样到6次。(2)对于不稳定的噪声在4ms以下,则至多可采样到一次。(3)对于如图电路,RS的组态仅有三种。DQCPKeySamDQCPQ1Q2OPSQR键盘消抖电路Q1Q2SROP000100100不变1000不
2、变11101DQCPKeySamDQCPQ1Q2OPSQR结论:对按键信号只有采样到两次1才会输出1,两次0才会输出0。否则保持原状态不变。(4)如果按键信号用于计数器计数,那么消抖以后可能宽度过长,而导致超过计数1次以上的错误发生,所以最好后面再接一个微分电路。DQCPKeySamDQCPQ1Q2DlyoutSQRDQCPDinclkDQCPD1D2DiffoutECQCP计数器LIBRARYieee;USEieee.std_logic_1164.ALL;USEieee.std_logic_unsigned.ALL;ENTITYDebunceisPO
3、RT(Clk:INSTD_LOGIC;Key:INSTD_LOGIC;DLY_OUT:OUTSTD_LOGIC;DIF_OUT:OUTSTD_LOGIC);ENDDebunce;ARCHITECTUREaOFDebunceISSIGNALSAMPLE,DLY,NDLY,DIFF:STD_LOGIC;BEGINDQCPKeyClkDQCPQ1Q2DlyoutSQRDQCPDinclkDQCPD1D2Diffout分频器Free_Counter:BlockSignalQ:STD_LOGIC_VECTOR(3Downto0);Signaltmp:STD_LO
4、GIC;BeginPROCESS(Clk)BeginIFClk'EventANDClk='1'thentmp<=Q(2);Q<=Q+1;ENDIF;ENDPROCESS;SAMPLE<=Q(2)ANDNOTtmp;--about8msENDBlock;DQCPKeyClkDQCPQ1分频器Q2Debunce:BlockSIGNALQ0,Q1,S,R:STD_LOGIC;BeginProcess(Clk)BeginIFClk'EVENTANDClk='1'THENIFSAMPLE='1'THENQ1<=Q0;Q0<=KEY;S<=Q0ANDQ1;R<=N
5、OTQ0ANDNOTQ1;ENDIF;ENDIF;EndProcess;DLY<=RNORNDLY;NDLY<=SNORDLY;DLY_OUT<=DLY;EndBlockDebunce;Differential:BlockSignalD1,D2:STD_LOGIC;BEGINProcess(Clk)BeginIFClk'EVENTANDClk='1'THEND2<=D1;D1<=DLY;ENDIF;EndProcess;DIFF<=D1ANDNOTD2;ENDBlockDifferential;DIF_OUT<=DIFF;ENDa;
此文档下载收益归作者所有