<noscript id="jftie"></noscript>
    <style id="jftie"><mark id="jftie"><dfn id="jftie"></dfn></mark></style>
  1. <span id="jftie"></span>
    • 国产成人精品久久一区二区,韩国精品久久久久久无码,国产精品国产高清国产av,欧美99久久无码一区人妻a片,亚洲高清码在线精品av,午夜人妻久久久久久久久,伊人热热久久原色播放www ,亚洲女教师丝祙在线播放
      你的位置:首頁 > 互連技術 > 正文

      技巧分享:如何在FPGA內實現按鍵消抖?

      發布時間:2015-01-08 責任編輯:sherryyu

      【導讀】在FPGA內實現按鍵消抖的方法多種多樣,但是最簡單的是采用移位寄存器的方法進行消抖。因為移位寄存器的方法不需要對時鐘進行分頻,也不需要進行延時等復雜操作。本文就為大家講解這種在FPGA內實現按鍵消抖的方法。
       
      抖動的產生
       
      通常的按鍵所用開關為機械彈性開關,當機械觸點斷開、閉合時,由于機械觸點的彈性作用,一個按鍵開關在閉合時不會馬上穩定地接通,在斷開時也不會一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動,為了不產生這種現象而作的措施就是按鍵消抖。
       
      抖動時間
       
      抖動時間的長短由按鍵的機械特性決定,一般為5ms~10ms。這是一個很重要的時間參數,在很多場合都要用到按鍵穩定閉合時間的長短則是由操作人員的按鍵動作決定的,一般為零點幾秒至數秒。鍵抖動會引起一次按鍵被誤讀多次。為確保FPGA對鍵的一次閉合僅作一次處理,必須去除鍵抖動。在鍵閉合穩定時讀取鍵的狀態,并且必須判別到鍵釋放穩定后再作處理。
      按鍵抖動
      圖1 按鍵抖動
       
      FPGA內實現消抖的方法
       
      在FPGA內實現按鍵消抖的方法多種多樣,但是最簡單的是采用移位寄存器的方法進行消抖。因為移位寄存器的方法不需要對時鐘進行分頻,也不需要進行延時等復雜操作,即可實現對按鍵邊沿的檢測。假設未按下時鍵值=1.
       
      1、在無鍵按下時,移位寄存器samp[7:0]始終采集到高電平,即samp[7:0]=8''b1111_1111;
       
      2、當鍵按下時,samp[7:0]將采集到低電平,數據的變化方式為samp[7:0]=8''b1111_1110-->8''b1111_1100-->8''b1111_1000--> ........——>8''b0000_0000;samp[7:0]=8''b1111_1110即為按鍵下降沿。
       
      3、當松開按鍵時,samp[7:0]將重新采集到高電平,數據變化方式為samp[7:0]=8''b0000_0001-->8''b0000_0011--> ........-->8''b1111_1111;當samp[7:0]=8''b0111_1111時,即為按鍵上升沿。
      移位寄存器消抖原理圖
      圖2 移位寄存器消抖原理圖
      [page]

      參考Verilog代碼
       
      //模塊名:EdgeDetect,邊沿檢測
       
      //button:按鍵,無鍵按下時為高電平//clk:10M時鐘
       
      //rst:復位按鈕,低電平有效
       
      //rise:檢測到上升沿,高電平有效,寬度為1個clk
       
      //fall:檢測到下降沿,高電平有效,寬度為1個clk
       
      module EdgeDetect(
       
      input clk,
       
      input rst,
       
      input button,
       
      output reg rise,
       
      output reg fall
       
      );
       
      reg[7:0] samp;//移位寄存器采集button鍵值
       
      //移位寄存器采集button信息
       
      always@(posedge clk or negedge rst)
       
      begin
       
      if(!rst)
       
      samp<=8''b1111_1111;
       
      else
       
      samp<={samp[7:1],button};
       
      end
       
      //產生上升沿信息
       
      always@(posedge clk or negedge rst)
       
      begin
       
      if(!rst)
       
      rise<=1''b0;
       
      else if(samp==8''b1111_1110)
       
      rise<=1''b1;
       
      else
       
      rise<=1''b0;
       
      end
       
      //產生下降沿信息
       
      always@(posedge clk or negedge rst)
       
      begin
       
      if(!rst)
       
      fall<=1''b0;
       
      else if(samp==8''b0111_1111)
       
      fall<=1''b1;
       
      else
       
      fall<=1''b0;
       
      end
       
      endmodule
       
      要采購移位寄存器么,點這里了解一下價格!
      特別推薦
      技術文章更多>>
      技術白皮書下載更多>>
      熱門搜索
      ?

      關閉

      ?

      關閉

      主站蜘蛛池模板: 伊人久久大香线蕉av仙人| 亚洲国产熟妇在线视频| 国产激情久久久久久熟女老人| 亚洲精品一区二区| 亚洲中文字幕日产乱码高清app| 丰满大爆乳波霸奶| 国产精品拍国产拍拍偷| 亚洲成年看片在线观看| 动漫精品视频一区二区三区 | 精品日产卡一卡二卡麻豆| 神马影院午夜dy888| 男男车车的车车网站w98免费| 免费午夜无码片在线观看影院 | 丰满大爆乳波霸奶| 亚洲色偷偷色噜噜狠狠99网| 色五月丁香五月综合五月4438| 夜鲁鲁鲁夜夜综合视频欧美| 国产人妻丰满熟妇嗷嗷叫| 亚洲最大av网站在线观看| 久久久综合亚洲色一区二区三区| 亚洲精品国产一区黑色丝袜| 国产日产欧产精品精品首页| 国产第一页屁屁影院| 使劲快高潮了国语对白在线| 国产超碰人人爽人人做av| 国产欠欠欠18一区二区| 亚洲成a v人片在线观看| 人人妻人人澡人人爽超污| 国产精品久久久久久熟妇吹潮软件| 92电影网午夜福利| 丰满人妻熟妇乱又仑精品| 国产精品制服| 亚洲最大av网站在线观看| 免费看欧美成人a片无码| 久久精品国产曰本波多野结衣| 国产精品a国产精品a手机版 | 婷婷亚洲久悠悠色悠在线播放| 亚洲欧美vr色区| 2020久久香蕉国产线看观看| 国产日产欧产精品精品首页| 中文字幕日韩精品一区二区三区|