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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8834|回復: 12
收起左側

請問:怎么才能實現只用一個按鍵,實現單擊,雙擊,三擊,長按功能

  [復制鏈接]
ID:91521 發表于 2018-10-27 11:30 | 顯示全部樓層 |閱讀模式
項目中要用到只用一個按鈕,實現單擊、雙擊、三擊及長按功能,沒有思路,百思不得其解。各位高手可不可以提供方法,能有代碼參考更好不過了。
回復

使用道具 舉報

ID:416822 發表于 2018-10-28 19:26 | 顯示全部樓層
需要  2字節數據空間 【  1、相同結果掃描次數(字節1)    2、有效按入次數 (字節2) 】1個位空間   【 1、上次掃描結果(位1) 】 1個定時器及中斷;也可根據自己的程序另行安排,就是定期檢查按鈕按入情況。
使用計數器配合使用   定時掃描按鈕改變情況   設 按入為0    彈開為1   接下來需要完成如下工作:
1、去抖動, 通過(位1)記錄上次掃描結果,本次掃描結束存本次結果 。 當本次結果與上次結果相同 (字節1)記錄結果持續次數加1。次掃描與上次不相同則清零。
2,當(字節1)記錄結果持續次數到“定值一”(定值一為立即數,自己定數值越大去抖動效果越好,但按鍵響應時間越長,與雙擊沖突,建議調試看效果定)表示去抖動有效。(字節1)記錄結果持續次數到定值二(相比定值一,數字更大)表示到長有效時間。在這里就會有兩個出口,一個是到定值一,一個是到定值二。每個在加上檢查掃描結果(按鍵是按入,還是彈出)一共出來4個出口。
按重要程度一一列出:  A、 按鍵掃描為彈開,(字節1)記錄結果持續次數到定值二讀取結果輸出(結束,正常情況永遠會出現) 讀取有效按入次數 (字節2),并判斷其值。(1、單擊;2、雙擊;3、三擊;4、。。。。。。。當大于16表示長安鍵)注意:在這里需要給下次工作初始化(清零有效按入次數 (字節2)) B、按鍵彈開,到定值一,等待和觀望。(沒有再按入就會到前一種情況) C、按鍵按入,到定值一,有效按入次數 (字節2)加1  D、按鍵按入,到定值二。直接設置有效按入次數 (字節2)為17以上;(并可以長按預先出口;提示在長安了,或者發音告訴操作者,現在是長按了。)。

評分

參與人數 1黑幣 +80 收起 理由
admin + 80 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:123289 發表于 2018-10-29 09:34 | 顯示全部樓層
先定義一下什么是“單擊、雙擊、三擊及長按”,而后依定義寫程序就OK了,無非是加幾個計時、計次寄存器而矣,最后用4個標志分別表示:單擊、雙擊、三擊、長按,則大功告成。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:310519 發表于 2018-10-28 12:33 | 顯示全部樓層
檢測到按鍵時,延時一段時間,期間如果沒有再檢測到按鍵,就是按了一下;

如果延時期間內再檢測到按鍵,重新延時,期間如果沒有再檢測到按鍵,就是按了兩下;

以此類推,長按就不用說了吧?

評分

參與人數 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:393131 發表于 2018-10-28 13:38 | 顯示全部樓層
最好用脈寬捕捉的方式

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:416683 發表于 2018-10-28 15:09 | 顯示全部樓層
設置2個時間檢測,按下時啟動T0,松開后啟動T1并復位T0。T1啟動后預設時間內再次檢測到按下的信號判定為雙擊,松開后復位重新計時,再次檢測到按下信號判斷為三擊,以此類推,松開后超出T1預設則輸出對應的按下次數,同時復位。TO到達預設值后,則輸出長按,并復位。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:111634 發表于 2018-10-28 16:02 | 顯示全部樓層
本帖最后由 zl2168 于 2018-10-28 20:16 編輯

給你介紹2個案例,能實現單擊、雙擊、三擊及長按功能。
Proteus仿真一下,確認有效。
實例93  99.9秒秒表
實例95 99.9秒秒表.rar (38.86 KB, 下載次數: 50)
99.9秒秒表.jpg

實例96  能預置初值的倒計時秒表 實例96 能設置初值的倒計時秒表.rar (40 KB, 下載次數: 28) 能預置初值的倒計時秒表.jpg
以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1內有常用的單片機應用100案例,用于仿真實驗操作,書中電路和程序設計有詳細說明,電路與程序真實可靠可信可行,程序語句條條有注解。若需99.99秒,硬件電路增加一位595。軟件程序增加0.01s10ms計數器,并修改相應計數顯示程序。
回復

使用道具 舉報

6#
無效樓層,該帖已經被刪除
7#
無效樓層,該帖已經被刪除
ID:480256 發表于 2019-5-8 10:56 | 顯示全部樓層
現在實現了嗎?
回復

使用道具 舉報

11#
無效樓層,該帖已經被刪除
ID:512205 發表于 2019-5-8 12:53 | 顯示全部樓層
三樓說的有道理,首先你是怎么定義“單擊、雙擊、三擊及長按”的.
1.如果是定義在一定時間內來判斷,那么就用延時的方法來判斷. 比如按鍵按下超過2秒后松開后只記到一次的話,那么就是長按. 記到3次的話就為3擊,記到2次為松緊.  如果按鍵按下時間小于2秒只記到一次的話,那么就叫短按.
2.如果是不考慮時間周期,只是記第幾次的話,那么用7樓的第一種方案即可.
回復

使用道具 舉報

ID:91521 發表于 2020-5-30 16:48 | 顯示全部樓層

沒呢,還沒有實現!
回復

使用道具 舉報

ID:401564 發表于 2020-5-30 17:02 | 顯示全部樓層
這玩意都快兩年了,還沒有實現
兩年時間足夠學一門編程語言了,更不用說某個功能而已,難不成你一直在等別人的代碼?
回復

使用道具 舉報

ID:732506 發表于 2020-5-30 22:16 | 顯示全部樓層
控制邏輯不合理,即便能實現,也會有較多誤動作,可靠性無法保證。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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