0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA內(nèi)實現(xiàn)按鍵消抖的方法

FPGA之家 ? 來源:FPGA之家 ? 2023-09-05 10:43 ? 次閱讀

通常的按鍵所用開關(guān)為機械彈性開關(guān),當(dāng)機械觸點斷開、閉合時,由于機械觸點的彈性作用,一個按鍵開關(guān)在閉合時不會馬上穩(wěn)定地接通,在斷開時也不會一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動,為了不產(chǎn)生這種現(xiàn)象而作的措施就是按鍵消抖。

抖動時間

抖動時間的長短由按鍵的機械特性決定,一般為5ms~10ms。這是一個很重要的時間參數(shù),在很多場合都要用到按鍵穩(wěn)定閉合時間的長短則是由操作人員的按鍵動作決定的,一般為零點幾秒至數(shù)秒。鍵抖動會引起一次按鍵被誤讀多次。為確保FPGA對鍵的一次閉合僅作一次處理,必須去除鍵抖動。在鍵閉合穩(wěn)定時讀取鍵的狀態(tài),并且必須判別到鍵釋放穩(wěn)定后再作處理。

57d76464-4b90-11ee-a25d-92fbcf53809c.jpg

圖1 按鍵抖動

FPGA內(nèi)實現(xiàn)消抖的方法

在FPGA內(nèi)實現(xiàn)按鍵消抖的方法多種多樣,但是最簡單的是采用移位寄存器的方法進行消抖。因為移位寄存器的方法不需要對時鐘進行分頻,也不需要進行延時等復(fù)雜操作,即可實現(xiàn)對按鍵邊沿的檢測。假設(shè)未按下時鍵值=1.

1、在無鍵按下時,移位寄存器samp[7:0]始終采集到高電平,即samp[7:0]=8'b1111_1111;

2、 當(dāng)鍵按下時,samp[7:0]將采集到低電平,數(shù)據(jù)的變化方式為samp[7:0]=8'b1111_1110--> 8'b1111_1100-->8'b1111_1000--> ........——>8'b0000_0000;samp[7:0]=8'b1111_1110即為按鍵下降沿。

3、 當(dāng)松開按鍵時,samp[7:0]將重新采集到高電平,數(shù)據(jù)變化方式為samp[7:0]=8'b0000_0001--> 8'b0000_0011--> ........-->8'b1111_1111;當(dāng)samp[7:0]=8'b0111_1111時,即為按鍵上升沿。

57e6b04a-4b90-11ee-a25d-92fbcf53809c.jpg

圖2 移位寄存器消抖原理圖

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598884
  • 原理圖
    +關(guān)注

    關(guān)注

    1285

    文章

    6207

    瀏覽量

    230924
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5250

    瀏覽量

    119195
  • 按鍵消抖
    +關(guān)注

    關(guān)注

    2

    文章

    24

    瀏覽量

    10422

原文標(biāo)題:在FPGA內(nèi)實現(xiàn)按鍵消抖的方法(附參考Verilog代碼)

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    fpga教程之——按鍵

    電平,這次對按鍵進行操作則是對FPGA進行輸入了?! ?. 按鍵  2.1 按鍵輸入原理  
    發(fā)表于 02-27 11:49

    按鍵

    請問大家的按鍵是用什么方法解決的,如普通的按鍵如何
    發(fā)表于 09-26 22:17

    FPGA按鍵方法

    FPGA按鍵方法
    發(fā)表于 05-01 16:12

    技術(shù)分享:明德?lián)P按鍵的原理和基于fpga設(shè)計

    高頻抖動略去。需要注意的是,軟件需要占據(jù)一定的系統(tǒng)資源。盡管硬件和軟件
    發(fā)表于 08-02 10:38

    【Runber FPGA開發(fā)板】配套視頻教程——按鍵實驗

    本視頻是Runber FPGA開發(fā)板的配套視頻課程,主要介紹按鍵方法FPGA如何
    發(fā)表于 04-13 10:35

    有什么方法實現(xiàn)按鍵

    怎樣用軟件即程序來實現(xiàn)按鍵呢?有什么方法實現(xiàn)按鍵
    發(fā)表于 12-15 07:25

    介紹獨立按鍵方法

    目錄按鍵介紹按鍵方法按鍵檢測原理C51例程歡迎加QQ及郵件交流
    發(fā)表于 01-14 07:49

    按鍵延時方法和目的分別是什么

    的地方,開發(fā)成本高,操作難度大,可移植性差。軟件就相對較好些,新手即可操作,延時,并非
    發(fā)表于 01-17 06:26

    STM32單片機按鍵FPGA按鍵的相關(guān)資料分享

    寫在前面:STM32單片機按鍵FPGA按鍵
    發(fā)表于 01-18 06:39

    基于FPGA按鍵電路設(shè)計

    采用了VHDL語言編程的設(shè)計方法,通過FPGA實現(xiàn)按鍵的硬件電路。論述了基于計數(shù)器、RS觸
    發(fā)表于 12-05 14:13 ?224次下載

    VHDL—按鍵

    按鍵檢測需要,一般有硬件和軟件兩種方式。硬件就是加去抖動電路,這樣從根本上解決按鍵抖動問題。除了用專用電路以外,用可編程FPGA或者CP
    發(fā)表于 11-11 17:17 ?2次下載

    vhdl按鍵程序(七種方式實現(xiàn)按鍵

    按鍵通常的按鍵所用開關(guān)為機械彈性開關(guān),當(dāng)機械觸點斷開、閉合時,由于機械觸點的彈性作用,一個按鍵開關(guān)在閉合時不會馬上穩(wěn)定地接通,在斷開時也
    發(fā)表于 01-29 16:04 ?5.6w次閱讀
    vhdl<b class='flag-5'>按鍵</b><b class='flag-5'>消</b><b class='flag-5'>抖</b>程序(七種方式<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>按鍵</b><b class='flag-5'>消</b><b class='flag-5'>抖</b>)

    FPGA入門系列實驗教程之如何進行按鍵控制LED亮滅

    實現(xiàn)按鍵控制 LED 亮滅。通過這個實驗,掌握采用 Verilog HDL 語言編程實現(xiàn)按鍵控制 LED 亮滅及按鍵
    發(fā)表于 06-11 16:50 ?13次下載
    <b class='flag-5'>FPGA</b>入門系列實驗教程之如何進行<b class='flag-5'>按鍵</b><b class='flag-5'>消</b><b class='flag-5'>抖</b>控制LED亮滅

    按鍵的軟件和硬件方法

    采用鍋仔片式按鍵測量波形。按鍵按下與抬起的部分都出現(xiàn)抖動,大致時間10ms左右。為了防止按鍵誤按或者重復(fù)識別,必須要按鍵
    的頭像 發(fā)表于 03-01 10:53 ?1.3w次閱讀
    <b class='flag-5'>按鍵</b><b class='flag-5'>消</b><b class='flag-5'>抖</b>的軟件和硬件<b class='flag-5'>方法</b>

    如何在FPGA實現(xiàn)按鍵

    按鍵操作。因此,實現(xiàn)有效的按鍵機制對于提高系統(tǒng)的穩(wěn)定性和可靠性至關(guān)重要。以下是在FPGA
    的頭像 發(fā)表于 08-19 18:15 ?635次閱讀