一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一個按鍵的多次擊鍵組合應(yīng)該如何判別詳細技巧程序概述

Wildesbeast ? 來源:未知 ? 作者:佚名 ? 2019-11-09 10:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

有時在設(shè)計中,往往要用一個按鍵來輸入多種信息。如:單擊/雙擊/三擊、短擊/長擊、還有各種組合擊鍵方式??梢杂靡韵鲁绦騺碜觥?/p>

如果按鍵閉合時間《500MS,判斷為一次短擊(0);

如果按鍵閉合時間》500MS,判斷為一次長擊(1);

兩次擊鍵時間間隔應(yīng)《700MS,如果按鍵釋放后700MS內(nèi)無鍵按下,則結(jié)束讀鍵。

讀鍵完畢返回一個鍵號值KEY_NUM。其意義如下:

KEY_NUM 意義

00000000 無鍵按下過

00000001 無意義

00000010 單次短擊

00000011 單次長擊

00000100 短擊 + 短擊

00000101 短擊 + 長擊

00000110 長擊 + 短擊

00000111 長擊 + 長擊

…… ……

10000000 7次短擊

11111111 7次長擊

上表中的KEY_NUM值的規(guī)律是,從左向右看,第一個“1”后面的每一位代表一次擊鍵;“0”代表短擊,“1”代表長擊。掌握該規(guī)律后,我們可將任何一個8位的二進制數(shù)“翻譯”成一種擊鍵組合。例如:01010101,代表的是:短+長+短+長+短+長。

該程序最多可識別7次連續(xù)擊鍵,共254種組合。但并非每個程序中用得上。在大多數(shù)程序中,能判斷雙擊即可以了,這時可將程序中的ZHBIT定義為2。同理,如果要判斷3次按鍵,將ZHBIT定義為3即可。

當(dāng)ZHBIT=“1”時,程序僅能判斷一次擊鍵,包括2種組合(短擊/長擊);當(dāng)ZHBIT=“2”時,程序還能判斷兩次擊鍵,包括6(2+4)種組合(短擊/長擊/(短+短)/(短+長)/(長+短)/(長+長));以次類推,當(dāng)ZHBIT=“3”時,程序能判斷三次擊鍵,包括14(2+4+8)種組合。

ZHBIT 組合種類

1 2

2 2+4=6

3 2+4+8=14

4 2+4+8+16=30

5 2+4+8+16+32=62

6 2+4+8+16+32+64=126

7 2+4+8+16+32+64+128=254

下面這段程序摘自小匠的一個智能充電器程序(MCU是EM78P458),如下:

;********************************

;讀鍵子程序

;出口: KEY_NUM =鍵號值

;中間: KEY_DL =計數(shù)器

;說明:

/*

短擊:鍵按下時間《500MS

長擊:鍵按下時間》500MS

兩次按鍵間隔時間《700MS

鍵號定義:

KEY_NUM=“00000000”: 無鍵按下

KEY_NUM=“00000001”: 無意義

KEY_NUM=“00000010”: 單次短擊

KEY_NUM=“00000011”: 單次長擊

KEY_NUM=“00000100”: 短擊 + 短擊

KEY_NUM=“00000101”: 短擊 + 長擊

KEY_NUM=“00000110”: 長擊 + 短擊

KEY_NUM=“00000111”: 長擊 + 長擊

。..

。..

KEY_NUM=“11111110”: 長擊 + 長擊 + 長擊 + 長擊 + 長擊 + 長擊 + 短擊

KEY_NUM=“11111111”: 長擊 + 長擊 + 長擊 + 長擊 + 長擊 + 長擊 + 長擊

*/

ZHBIT EQU 2 ;按鍵組合位(選擇范圍1~7)

;********************************

READKEY:

CLR KEY_NUM ;清鍵號

JKOFF READKEYF ;鍵未按下跳

BS KEY_NUM,0 ;“1” -》 鍵號低位

;=================

READKEYA:

CLR KEY_DL ;清計數(shù)器

READKEYB:

CALL DL10MS

INC KEY_DL

MOV A,@50

SUB A,KEY_DL

JBC R3,C

JMP READKEYC ;計數(shù)器溢出跳

JKON READKEYB ;鍵未釋放跳

BC R3,C ;C=“0”

JMP READKEYD

;=================

READKEYC:

WDTC ;喂狗

JKON READKEYC ;鍵未釋放跳

BS R3,C ;C=“1”

READKEYD:

RLLC KEY_NUM ;鍵號左移一位,C -》 鍵號低位

JBC KEY_NUM,ZHBIT ;按鍵檢測未完成繼續(xù)

RET

;=================

CLR KEY_DL ;清計數(shù)器

READKEYE:

CALL DL10MS

INC KEY_DL

MOV A,@70

SUB A,KEY_DL

JBC R3,C

READKEYF:

RET ;計數(shù)器溢出返回

JKOFF READKEYE ;鍵未按下跳

JMP READKEYA ;再次檢測

;=================

;鍵閉合跳(宏)

;=================

JKON MACRO ADDRESS

JBS R5,KEY ;鍵斷開跳

FJMP ADDRESS ;鍵閉合跳

CALL DL10MS ;延時去抖動

JBS R5,KEY ;鍵斷開跳

FJMP ADDRESS ;鍵閉合跳

ENDM

;=================

;鍵斷開跳(宏)

;=================

JKOFF MACRO ADDRESS

JBC R5,KEY ;鍵閉合跳

FJMP ADDRESS ;鍵斷開跳

CALL DL10MS ;延時去抖動

JBC R5,KEY ;鍵閉合跳

FJMP ADDRESS ;鍵斷開跳

ENDM
責(zé)任編輯 LK

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3826

    瀏覽量

    82977
  • 按鍵
    +關(guān)注

    關(guān)注

    4

    文章

    227

    瀏覽量

    58072
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    開發(fā)第1LVGL程序與實現(xiàn)按鍵操作

    開發(fā)第1LVGL程序與實現(xiàn)按鍵操作
    的頭像 發(fā)表于 01-07 13:49 ?2932次閱讀
    開發(fā)第1<b class='flag-5'>個</b>LVGL<b class='flag-5'>程序</b>與實現(xiàn)<b class='flag-5'>按鍵</b>操作

    按鍵學(xué)習(xí) 按鍵漫談+單個按鍵多次擊鍵的檢測方法

    非常好的按鍵學(xué)習(xí)資料,在此共享,為了照顧沒E幣的人,不浪費你們的E幣,我打包起來了。三文件:按鍵漫談.pdf+單個按鍵多次
    發(fā)表于 06-24 22:47

    單個按鍵多次擊鍵的檢測方法

    單個按鍵多次擊鍵的檢測方法
    發(fā)表于 08-19 23:33

    按鍵高級使用:短按、長按、連續(xù)、雙擊、組合鍵實現(xiàn)

    /zhang_en/beauty_key.git視頻地址:【開源的按鍵處理程序-可以實現(xiàn)短按、長按、雙擊、組合】 https://www
    發(fā)表于 10-24 21:35

    如何為單片機的按鍵鎖防止多次觸發(fā)?

    如何為單片機的按鍵鎖防止多次觸發(fā)
    發(fā)表于 10-30 08:21

    按鍵多次擊鍵組合判別技巧匯編程序

    由于在學(xué)習(xí)用DS1302來做LED時鐘時,發(fā)現(xiàn)開發(fā)板附的程序按鍵操作,很不靈活,后來在網(wǎng)上找到篇《
    發(fā)表于 06-08 15:00 ?2867次閱讀

    基于狀態(tài)機的單片機按鍵短按長按功能的實現(xiàn)

    本文主要介紹了基于狀態(tài)機的單片機按鍵短按長按功能的實現(xiàn),按鍵擊鍵過程也是種狀態(tài)的切換,也可以看著是
    發(fā)表于 12-28 08:43 ?2w次閱讀
    基于狀態(tài)機的單片機<b class='flag-5'>按鍵</b>短按長按功能的實現(xiàn)

    PID程序算法的詳細資料概述免費下載

    本文檔的主要內(nèi)容詳細介紹的是PID程序算法的詳細資料概述免費下載
    發(fā)表于 07-24 08:00 ?36次下載

    用兩IO口檢測5按鍵程序詳細資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是用兩IO口檢測5按鍵程序詳細資料免費下載。
    發(fā)表于 03-29 15:16 ?27次下載
    用兩<b class='flag-5'>個</b>IO口檢測5<b class='flag-5'>個</b><b class='flag-5'>按鍵</b>的<b class='flag-5'>程序</b><b class='flag-5'>詳細</b>資料免費下載

    如何為單片機的按鍵鎖防止多次觸發(fā)實例資料和程序免費下載

    儲存著兩樣信息,力度和鍵值。那么在我寫的程序的項目要求是這樣的,要求每個按鍵次只能觸發(fā)次,并且觸發(fā)的時候要發(fā)出不同的鍵碼,通過音頻解碼盒將該鍵碼值讀出來,比如第
    發(fā)表于 08-14 17:32 ?0次下載
    如何為單片機的<b class='flag-5'>按鍵</b>加<b class='flag-5'>一</b><b class='flag-5'>個</b>鎖防止<b class='flag-5'>多次</b>觸發(fā)實例資料和<b class='flag-5'>程序</b>免費下載

    應(yīng)該如何學(xué)習(xí)STM32資料概述

    本文檔的主要內(nèi)容詳細介紹的是教你應(yīng)該如何學(xué)習(xí)STM32資料概述
    發(fā)表于 11-08 14:45 ?27次下載
    <b class='flag-5'>應(yīng)該</b>如何學(xué)習(xí)STM32資料<b class='flag-5'>概述</b>

    STM32 獨立按鍵掃描功能大全-支持連擊、組合連擊、任意連擊

    STM32 獨立按鍵掃描功能大全-支持連擊、組合連擊、任意連擊本人剛學(xué)習(xí)STM32開發(fā),最近看了硬漢的按鍵檢測程序,進行了架構(gòu)的深度優(yōu)化,所以跟大家分享
    發(fā)表于 12-04 20:36 ?58次下載
    STM32 獨立<b class='flag-5'>按鍵</b>掃描功能大全-支持連擊、<b class='flag-5'>組合</b>連擊、任意連擊

    RT-Thread大會:如何實現(xiàn)4按鍵的手勢組合

    我有基于電極的非觸摸程序,如何實現(xiàn)4按鍵的手勢組合?   通過4路波形判斷手勢   即
    的頭像 發(fā)表于 05-27 11:01 ?1432次閱讀
    RT-Thread大會:如何實現(xiàn)4<b class='flag-5'>個</b><b class='flag-5'>按鍵</b>的手勢<b class='flag-5'>組合</b>?

    stm32單片機如何實現(xiàn)按鍵切換兩程序?

    ,非常實用。下面,我們將詳細介紹如何在STM32單片機上實現(xiàn)按鍵切換兩程序。
    的頭像 發(fā)表于 09-14 14:22 ?7070次閱讀

    idea如何多次運行程序

    些實際的示例。 內(nèi)容: 、使用循環(huán)結(jié)構(gòu) 1.1 for循環(huán) 最常用的多次運行程序的方法之是使用循環(huán)結(jié)構(gòu)。其中最常用的循環(huán)結(jié)構(gòu)是for
    的頭像 發(fā)表于 12-06 14:59 ?1995次閱讀