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

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

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

機(jī)械彈性按鍵的原理和編程方法介紹

冬至子 ? 來源:電子技術(shù)實(shí)驗(yàn)XJTU ? 作者:孫敏 ? 2023-09-17 16:35 ? 次閱讀

按鍵是數(shù)字系統(tǒng)最基本的輸入接口設(shè)備,本文主要介紹機(jī)械彈性按鍵的原理和編程方法。

0****1

按鍵原理

以EGO1開放板按鍵為例,用戶可用的板載按鍵主要包括S6(低有效按鍵),S0~S4(高有效按鍵)。

圖片

由原理圖可以看到,按鍵S6在未按下時(shí),FPGA引腳通過電阻連接3.3V高電平;當(dāng)按鍵按下,與地連通,引腳電平被拉低。S0~S4則相反,按鍵未按下時(shí),引腳為低電平;按鍵按下時(shí),接通3.3V電源,引腳電平由低變高。

因此,我們通過檢測高低電平的變化,就可以檢測按鍵是否被按下。

但是實(shí)際情況是,我們使用的是機(jī)械彈性按鍵,在按鍵按下和彈起過程中會存在抖動,如圖(a)。

圖片

一般抖動會在5~10ms左右,按鍵持續(xù)時(shí)間在幾百ms,而FPGA時(shí)鐘是ns級的,檢測頻率很高,如果僅僅通過高低電平的變化去判斷按鍵是否被按下,則在一次按鍵按下時(shí),就會被檢測為多次有效按鍵,如圖(b),從而造成誤觸發(fā)。

我們需要對按鍵信號進(jìn)行消抖處理,得出圖(c)的穩(wěn)定的按鍵信號。

0****2

按鍵消抖方法

由于抖動大約5-10ms,可以使用一個(gè)15ms的計(jì)數(shù)器。

圖片

每當(dāng)檢測到輸入有變化就復(fù)位計(jì)數(shù)器,然后進(jìn)行15ms的延時(shí),如果在15ms之內(nèi)有抖動,計(jì)數(shù)器就會復(fù)位重新計(jì)數(shù),直到能夠連續(xù)計(jì)數(shù)15ms,說明按鍵鍵值在15ms內(nèi)沒有發(fā)生改變,按鍵進(jìn)入穩(wěn)定狀態(tài),此時(shí),可以輸出穩(wěn)定的鍵值。

同樣,當(dāng)按鍵彈起時(shí)出現(xiàn)鍵值的改變,就復(fù)位計(jì)數(shù)器,只有當(dāng)按鍵穩(wěn)定,計(jì)數(shù)器能夠連續(xù)計(jì)數(shù)15ms時(shí),才輸出穩(wěn)定的鍵值。這樣我們就得到一個(gè)穩(wěn)定的沒有抖動的采樣鍵值。

03

按鍵消抖的Verilog描述

遵循一個(gè)always描述一個(gè)信號的原則,下面分別對各個(gè)信號進(jìn)行描述。

按鍵寄存器key_reg描述:

圖片

延時(shí)計(jì)數(shù)器delay_cnt描述:

圖片

鍵值key_value描述:

圖片

按鍵的標(biāo)志信號key_p_flag和key_n_flag描述:

圖片

圖片

按鍵標(biāo)志信號是一個(gè)指示按鍵有效的只持續(xù)1個(gè)時(shí)鐘周期的標(biāo)志信號,一般作為后級模塊的控制信號。

當(dāng)計(jì)數(shù)值為1并且鍵值為一是則為上升沿標(biāo)志,當(dāng)計(jì)數(shù)值為1,且鍵值為0,就輸出下降沿標(biāo)志信號。

仿真波形如下圖。

圖片

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

    關(guān)注

    112

    文章

    16361

    瀏覽量

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

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120348
  • 計(jì)數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2256

    瀏覽量

    94562
  • FPGA芯片
    +關(guān)注

    關(guān)注

    3

    文章

    246

    瀏覽量

    39797
  • 按鍵電路
    +關(guān)注

    關(guān)注

    1

    文章

    35

    瀏覽量

    21774
收藏 人收藏

    評論

    相關(guān)推薦

    按鍵的硬件消抖電路原理詳解

    按鍵消抖通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)
    的頭像 發(fā)表于 02-02 09:42 ?9559次閱讀
    <b class='flag-5'>按鍵</b>的硬件消抖電路原理詳解

    按鍵消抖電路的實(shí)現(xiàn)方式

    按鍵消抖通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)
    的頭像 發(fā)表于 08-29 11:25 ?4651次閱讀

    單片機(jī)按鍵消抖的原理和方法詳解

    通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)在
    的頭像 發(fā)表于 12-22 10:06 ?8873次閱讀
    單片機(jī)<b class='flag-5'>按鍵</b>消抖的原理和<b class='flag-5'>方法</b>詳解

    按鍵消抖及原理是什么

    淺談:在設(shè)計(jì)單片機(jī)按鍵輸入的時(shí)候,進(jìn)行按鍵消抖是防止按鍵輸入被CPU誤讀多次的必要手段。一、按鍵抖動通常的按鍵所用開關(guān)為
    發(fā)表于 07-21 06:02

    獨(dú)立按鍵的使用相關(guān)資料分享

    機(jī)械彈性開關(guān):當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)在閉合時(shí)不會馬上就穩(wěn)定的接通,在斷開時(shí)也不會一下子徹底斷開,而是在
    發(fā)表于 01-06 07:57

    學(xué)習(xí)獨(dú)立按鍵方法

    按鍵按鍵是一種電子開關(guān);按鍵消抖通常按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開,閉合時(shí)電壓信號如
    發(fā)表于 01-07 07:05

    介紹獨(dú)立按鍵的消抖方法

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

    單片機(jī)按鍵去抖動程序解析

    通常按鍵所用的開關(guān)都是機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)
    發(fā)表于 11-15 14:45 ?2.7w次閱讀
    單片機(jī)<b class='flag-5'>按鍵</b>去抖動程序解析

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

    按鍵消抖通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)
    發(fā)表于 01-29 16:04 ?5.7w次閱讀
    vhdl<b class='flag-5'>按鍵</b>消抖程序(七種方式實(shí)現(xiàn)<b class='flag-5'>按鍵</b>消抖)

    BJ-EPM240學(xué)習(xí)板:按鍵消抖實(shí)驗(yàn)

    按鍵消抖通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)
    的頭像 發(fā)表于 12-23 07:09 ?2970次閱讀
    BJ-EPM240學(xué)習(xí)板:<b class='flag-5'>按鍵</b>消抖實(shí)驗(yàn)

    基于尖峰脈沖的按鍵消抖

    按鍵消抖通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)
    的頭像 發(fā)表于 11-20 07:09 ?3072次閱讀

    為什么要進(jìn)行按鍵消抖

    按鍵消抖通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)
    的頭像 發(fā)表于 04-19 14:55 ?1w次閱讀

    單片機(jī)按鍵為什么要進(jìn)行按鍵消抖

    按鍵消抖通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)
    發(fā)表于 06-28 11:45 ?1644次閱讀
    單片機(jī)<b class='flag-5'>按鍵</b>為什么要進(jìn)行<b class='flag-5'>按鍵</b>消抖

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

    通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)在
    的頭像 發(fā)表于 09-05 10:43 ?1235次閱讀
    FPGA內(nèi)實(shí)現(xiàn)<b class='flag-5'>按鍵</b>消抖的<b class='flag-5'>方法</b>

    為什么要進(jìn)行按鍵消抖?按鍵抖動的原理 按鍵消抖的方法

    按鍵消抖通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)
    的頭像 發(fā)表于 02-17 17:07 ?1.8w次閱讀
    為什么要進(jìn)行<b class='flag-5'>按鍵</b>消抖?<b class='flag-5'>按鍵</b>抖動的原理 <b class='flag-5'>按鍵</b>消抖的<b class='flag-5'>方法</b>