零 該程序產(chǎn)生的背景 話說2012年,小白菜要做一個三相電壓電流組合表,這個儀表需要進行數(shù)據(jù)輸入(小白菜以前的項目也有輸入,但是小白菜沒有仔細的研究過),并且給出的時間很長,小白菜有時間來做一些“研究處理”。拿著以前寫的按鍵檢測程序,感覺漏洞百出,于是想著趁著有時間把這部分做出來,于是便用了一個星期(實際是5天,雙休思密達)專門寫了這部分程序。 一 小白菜的應用需求 小白菜的儀表僅需要單短擊(簡稱單擊)和單長擊(簡稱長擊),單短擊要在按鍵松開后才進行識別,單長擊要在達到設定的時間閥值時進行識別(這時按鍵未松開)。 不需要考慮的情況如下,不需要連擊(可以做為多次短擊)、不需要多鍵同時擊、暫時不需要考慮輸入數(shù)字時長按某鍵,數(shù)字快速自加或自減。 該檢測程序要滿目不依賴于任何一種單片機,也不依賴按鍵連接方式,如獨立式,矩陣式(當然你要用按鍵掃描芯片那就……你要用AD式鍵盤,我……好吧,你贏了~),能夠獨立存在。
二 按鍵過程分析 1 按鍵小思考 正常的按鍵過程(不考慮非法的按鍵狀態(tài))如圖2.1.1。 圖2.1.1 正常按鍵狀態(tài)示意圖 單擊和長擊只是時間上的區(qū)分而已,但是其識別時稍有區(qū)別,單擊是在按鍵松開時進行識別的,長擊是在按鍵閉合時進行識別的。見圖2.1.2。 圖2.1.2 長短擊按鍵狀態(tài)示意圖
2 各種可能出現(xiàn)的按鍵情況 合法情況不再贅述。下面把非法(僅在本應用中非法)的情況列一下。 (1) 人為或干擾引起的單擊時間過短(主要為防干擾)。 (2) 單擊時間過長(與(1)對應,凡事有短就有長,要有度嘛~)。 (3) 按下了多個鍵(與我的應用需要相悖,所以非法)。這里有可能是同時按的,也有可能是異步按下的。 (4) 快速多次按同一個鍵。這種情況可以歸結到(1)。 (5) 我覺得沒有了,元芳,你怎么看??
一種基于定時器按鍵檢測程序(已測試).rar
(527.02 KB, 下載次數(shù): 260)
2014-12-20 18:30 上傳
點擊文件名下載附件
|