線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2402
推到 Plurk!
推到 Facebook!

[組合語言]如何使用TIMER來做按鍵除彈跳

缺席
cyw1984
一般會員


發表:45
回覆:67
積分:22
註冊:2005-06-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-22 23:32:46 IP:210.6.xxx.xxx 未訂閱
[組合語言]如何使用TIMER來做按鍵除彈跳 這個是用偵測相同鍵值的除彈跳方法     
KEYSCAN:PUSH        ACC
        MOV     A,SCANLINE
        MOV     KEYPAD_PORT,A
        MOV     A,KEYPAD_PORT
        ANL     A,#11110000B
        MOV     NUMBER_OF_ROW,#4     ROW:    SETB    C                
        RLC     A                
      JNC           KEYIN                
        DJNZ    NUMBER_OF_ROW,ROW                
        SJMP        KEY_3     
阿信
版主


發表:111
回覆:983
積分:813
註冊:2005-03-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-23 17:48:00 IP:211.21.xxx.xxx 未訂閱
你的程式不完整喔! 要用Timer做按鍵除彈跳 固定20mS觸發一次Timer 用兩個旗標 一個按鍵觸發旗標 一個按鍵按下旗標 兩次進Timer都有按下 才設定按鍵按下旗標
skype_chen1
一般會員


發表:4
回覆:11
積分:8
註冊:2004-12-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-11-26 23:54:14 IP:219.84.xxx.xxx 未訂閱
用兩個旗標 一個按鍵觸發旗標 一個按鍵按下旗標 版主我不太懂你的意思8051不是開機後就設定timer中斷,timer間隔時間為:20ms中斷一次,然後是每20ms去檢查輸入是有按鍵 被按,如果有按然後設定按鍵按下旗標,你說的按鍵觸發旗標是指用來啟動 timer是ㄇ 可否有個範例程式看看
阿信
版主


發表:111
回覆:983
積分:813
註冊:2005-03-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-11-28 09:52:56 IP:211.21.xxx.xxx 未訂閱
Timer是持續執行的    以下只是示意 不是可執行的程式碼
KeyIn=P0.0
Down=0
Up=1
bit fg_KeyDown
bit fg_KeyPress    Init:
        fg_KeyDown=Up;
        fg_KeyPress=Down;    ------------------------------
T20mS:
        if (fg_KeyPress!=Down) {
                if (fg_KeyDown==Down && KeyIn==Down) {
                        fg_KeyPress=Down;
                }                    if (KeyIn==Down) {
                        fg_KeyDown=Down;
                }
                else {
                        fg_KeyDown=Up;
                }
        }        
T20mS_Exit:
系統時間:2024-07-06 11:08:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!