音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

一個優(yōu)秀的按鍵掃描程序,怎樣的編程流程圖是最理想的?

作者:像見 欄目:單片機
一個優(yōu)秀的按鍵掃描程序,怎樣的編程流程圖是最理想的?
簡單的比喻一下:
    掃描3個按鍵  key1  key2 key3

   去抖動延時,時間定位多長好最好呢 10ms 還是 15ms 呢
   一般情況下 當按鍵按下,到松開的時間是多長呢
   怎樣的編程流程圖是最理想的?
   
   1.發(fā)現(xiàn)有鍵按下 低電平 否則推出
   2.調用延時 去抖動
   3.再去判斷是是否還是低電平  否則推出
   4.判斷那一個鍵是 出現(xiàn)高電平的 JB 有正確的則進入鍵盤處理程序
   
這樣的編程流程是最好的嗎?
大家有什么高見 請多多發(fā)表

2樓: >>參與討論
像見
用不用 在出現(xiàn)高電平 JB 時候 還要用一個高電平延時判斷呢
5.用不用 在出現(xiàn)高電平 JB 時候 還要用一個高電平延時判斷呢
ORG 0000H
LJMP START;轉入主程序
ORG 0010H
START:

MAIN:

    MOV    A,#00000011B
    ORL    A,P3
    CPL    A
    JZ        MAIN
    LCALL    DELAY10MS    ;去抖動
    MOV    A,#00000011B
    ORL    A,P3
    CPL    A
    JZ        MAIN

    JB        ACC.2,KEY_SW1
    JB        ACC.3,KEY_SW2
    JB        ACC.4,KEY_SW3
    JB        ACC.5,KEY_SW4
    JB        ACC.6,KEY_SW5
    JB        ACC.7,KEY_SW6
    LJMP    MAIN
KEY_SW1:
    CPL    P1.0
    AJMP    KEY_END
KEY_SW2:
    CPL    P1.1
    AJMP    KEY_END
KEY_SW3:
    CPL    P1.2
    AJMP    KEY_END
KEY_SW4:
    CPL    P1.3
    AJMP    KEY_END
KEY_SW5:
    CPL    P1.4
    AJMP    KEY_END
KEY_SW6:    
    CPL    P1.5
    AJMP    KEY_END


KEY_END:
    MOV    A,#00000011B
    ORL    A,P3
    CPL    A
    JNZ    KEY_END
    LJMP    MAIN



DELAY10MS:
    MOV R4,#20
DELAY10MSA:
    MOV R5,#247
    DJNZ R5,$
    DJNZ R4,DELAY10MSA
RET
END

3樓: >>參與討論
pythonlong
前面加一級硬件去抖,呵呵
前面加一級硬件去抖,呵呵

兩個d觸發(fā)器+RS觸發(fā)器。如果可以再加一級微分電路(兩個d觸發(fā)器),絕對可以了吧。

4樓: >>參與討論
像見
那成本就大大增加了,這不符合經(jīng)濟原則
 
5樓: >>參與討論
xymxym
如此

    N                   
  ----鍵盤是否被按下?
  |       |Y
  |       |
  |    去抖動
  |       |
  |  N    |
  |---是否還在按著?
  |      |Y
  |      |
  |   是否是上次按鍵還未松開(flag==0?)?----轉到NEXT處
  |      |N
  |      |
  |    將flag = 1;
  |      |
  |      |
  |   處理
  |      |
  |      |
  |   轉到NEXT處
  |      
  |      
  ----將flag = 0;


NEXT:    


6樓: >>參與討論
stering
我的去抖動方法
  設定一個延時時間1   延時時間2
1、監(jiān)測鍵盤,有鍵按下,開始計時
2、監(jiān)測鍵盤彈起。計時停止。判斷鍵盤按下到彈起時間
   1)如果小于小于延時時間1則判斷為抖動
   2)如果大于延時時間1小于延時時間2判斷為正常鍵碼
   3)如果大于延時時間2判斷為長按鍵盤連續(xù)獲取鍵碼

7樓: >>參與討論
夏蟲
不知道什么是最理想的,我覺得要具體項目具體設計
 
參與討論
昵稱:
討論內容:
 
 
相關帖子
請教液晶問題
急求高手!兩單片機用一個813L復位為什么不行?
求各位大俠幫認兩個電機驅動板上的芯片
抗干擾。‰y。!
請教汽車點煙器輸出的12V電壓,是經(jīng)過穩(wěn)壓的嗎?謝謝
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號