找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2515|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

用狀態(tài)機來做鍵盤

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:105323 發(fā)表于 2016-2-12 19:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  以前的軟件消抖常用的方法是讀相應(yīng)管腳是否有按鍵按下,然后延時10ms再讀,最后用個while(不松手)等待抬手,這樣做方便時方便,一般隨便用用也可以,但是死等的時間太多,不利于系統(tǒng)的實時響應(yīng)。  狀態(tài)機就是把掃描鍵盤的過程分為3個狀態(tài),然后用定時器做個10ms定時,時間一到掃描相應(yīng)端口。假設(shè)開始狀態(tài)為沒有按鍵按下,相應(yīng)端口電平為高,設(shè)為state_0。然后,隔10ms再掃描一次,如果此時仍然為高,則還是處于state_0,如果此時電平為低,則進入state_1,下一個10ms定時如果仍然為低,則說明有按鍵按下,進入state_2等待松手,如果為高,則說明剛才是抖動,回到state_0,進入state_2后只要讀到電平變高了說明松手了,這樣一次按鍵就完成了,就可以執(zhí)行相應(yīng)的按鍵操作了。state_1到state_2之間的10ms相當(dāng)于軟件消抖。這種方法的好處是在掃描按鍵時還可以做別的事,提高了CPU利用率。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表