欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6810|回復: 23
收起左側

單片機按鍵按下判斷為什么識別兩次?

  [復制鏈接]
ID:636538 發表于 2019-11-28 14:18 | 顯示全部樓層 |閱讀模式
if((P1&0x0f)!=0x0f)      //列線中有一位為低電平“0”,說明有鍵按下
         delay20ms();           //延時一段時間、軟件消抖
      if((P1&0x0f)!=0x0f)      //確實有鍵按下
為什么按鍵的判斷要兩次


回復

使用道具 舉報

ID:584771 發表于 2019-11-28 17:40 | 顯示全部樓層
加延時是為了消除機械按鍵的抖動
回復

使用道具 舉報

ID:275826 發表于 2019-11-28 17:46 | 顯示全部樓層
通常按鍵所用的開關都是機械彈性開關,當機械觸點斷開、閉合時,由于機械觸點的彈性作用,一個按鍵開關在閉合時不會馬上就穩定的接通,在斷開時也不會一下子徹底斷開,而是在閉合和斷開的瞬間伴隨了一連串的抖動.



按鍵穩定閉合時間長短是由操作人員決定的,通常都會在100ms以上,刻意快速按的話能達到40-50ms左右,很難再低了。

抖動時間是由按鍵的機械特性決定的,一般都會在10ms以內,為了確保程序對按鍵的一次閉合或者一次斷開只響應一次,必須進行按鍵的消抖處理。當檢測到按鍵狀態變化時,不是立即去響應動作,而是先等待閉合或斷開穩定后再進行處理。

 
回復

使用道具 舉報

ID:648521 發表于 2019-11-28 18:44 | 顯示全部樓層
防抖的,判斷是不是真的按下了。
回復

使用道具 舉報

ID:150776 發表于 2019-11-28 18:51 來自觸屏版 | 顯示全部樓層
如樓上所說,為了消抖
回復

使用道具 舉報

ID:25310 發表于 2019-11-28 20:01 | 顯示全部樓層
軟件消抖
回復

使用道具 舉報

ID:651885 發表于 2019-11-28 20:02 | 顯示全部樓層
因為這是是個消抖的原理:第一句按下判斷之后執行的延遲函數時間內有無數次抖動按下而時間過去后穩定按下了再執行第二次判斷確定是否真的按下
回復

使用道具 舉報

ID:647528 發表于 2019-11-28 21:11 | 顯示全部樓層
所謂消抖為波形在按下或彈開瞬間為不穩定狀態,20ms左右后為穩定狀態高電平或低電平。沒有延時的話那么無法判定是按下或還是彈開。
回復

使用道具 舉報

ID:382297 發表于 2019-11-29 07:34 | 顯示全部樓層
file:///C:/Users/XXX.Charlotte/Desktop/%E5%9B%BE%E7%89%872.png

軟件延時消抖
在檢測到有鍵按下時,該鍵所對應的行線為低電平,執行一段延時10ms的子程序后,確認該行線電平是否仍為低電平,如果仍為低電平,則確認該行確實有鍵按下。當按鍵松開時,行線的低電平變為高電平,執行一段延時10ms的子程序后,檢測該行線為高電平,說明按鍵確實已經松開。采取本措施,可消除兩個抖動期t1和t3的影響。
回復

使用道具 舉報

ID:641629 發表于 2019-11-29 11:31 | 顯示全部樓層
按兩次消抖不怎么樣,我以前運算塊的 直接檢測5次
回復

使用道具 舉報

ID:652296 發表于 2019-11-29 12:36 來自觸屏版 | 顯示全部樓層
延時去抖
回復

使用道具 舉報

ID:525068 發表于 2019-11-29 12:50 | 顯示全部樓層
延時銷抖,避免因抖動或接觸不良導致程序執行
回復

使用道具 舉報

ID:629448 發表于 2019-11-29 15:07 | 顯示全部樓層
軟件消抖,delay20ms是延時函數
回復

使用道具 舉報

ID:344335 發表于 2019-11-29 16:55 | 顯示全部樓層
由于開關是機械式開關,會存在誤觸和接觸不良的情況,延時識別兩次是為了消除抖動,增加開關識別的可靠性。
回復

使用道具 舉報

ID:636538 發表于 2019-12-3 10:04 | 顯示全部樓層
tyrl800 發表于 2019-11-28 17:46
通常按鍵所用的開關都是機械彈性開關,當機械觸點斷開、閉合時,由于機械觸點的彈性作用,一個按鍵開關在閉 ...

懂了,謝謝
回復

使用道具 舉報

ID:437615 發表于 2019-12-3 10:32 來自觸屏版 | 顯示全部樓層
不判斷兩次也是可以的,但是我在某些特殊硬件的時候會不可以,比如說在旋轉編碼器的時候就容易出現問題
回復

使用道具 舉報

ID:476030 發表于 2019-12-3 13:34 | 顯示全部樓層
為了消除抖動
回復

使用道具 舉報

ID:591676 發表于 2019-12-3 13:57 | 顯示全部樓層
確認按鍵是否按下,防止誤操作
回復

使用道具 舉報

ID:485327 發表于 2019-12-3 14:32 | 顯示全部樓層
這是按鍵軟件濾波,加延時防抖,避免誤觸發
回復

使用道具 舉報

ID:485327 發表于 2019-12-3 14:34 | 顯示全部樓層
這是軟件濾波,按鍵防抖避免誤觸發
回復

使用道具 舉報

ID:118110 發表于 2019-12-3 15:04 | 顯示全部樓層
開關兩邊并聯一個電容可以解決
回復

使用道具 舉報

ID:601478 發表于 2019-12-3 15:24 | 顯示全部樓層
軟件消抖
回復

使用道具 舉報

ID:636538 發表于 2019-12-4 15:26 | 顯示全部樓層
zxb486 發表于 2019-12-3 15:04
開關兩邊并聯一個電容可以解決

這是一個解決辦法,沒有用過,可以試試
回復

使用道具 舉報

ID:656073 發表于 2019-12-4 20:24 | 顯示全部樓層
延時銷抖處理,用于判斷機械按鍵是否真實按下...   看了下大神說的都是正確定的,都給100分  哈哈
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表