亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? keyscan51.msa

?? 矩力MP4 GPIO及線控鍵盤應用源代碼
?? MSA
?? 第 1 頁 / 共 2 頁
字號:
/*****************************************************************
 ** key board interrupt                 **
 **     write by jfwoo & Gongee             **
 **     2002-6-12                   **
 ** (c) Copyright Actions Co,Ld.                **
 **                             **
 ** revision history    1.0 2002-6-12       **
 ** revision history    2.0 2002-7-15       **
 ** revision history    3.0 2002-8-12       **
 *****************************************************************/
/* 說明:
**A。   此鍵盤具有與PC 鍵盤相同的特性
**      1。重復的延時時間---- 按住某個鍵時,該鍵響應的重復速率
**      2。重復速度--------- 按住某個鍵時,該鍵響應重復前的延遲時間
**      一般,要保證重復的延時時間要比重復的速度要長,這樣既可以保證按一下鍵不會被重復響應,
**      也不至于降低重復按鍵的響應速度
**B。   此代碼是針對標準DEMO板的
**C。   用戶進程要區分長短按消息,必須對重復次數進行計數。
**
**  -+----------------------------------+------------+------------+-----……-------+------#
**   |___________重復的延時時間__________|       |__重復速度___|
**
**  其中 + 表示驅動產生的消息, #表示鍵盤抬起消息
**
*/
        #include "KY_Hard.h"

        #define FIRST_STICK_TIMES   8
        #define STICK_TIMES         8

#ifdef  Hard_2051_key
#define         HoldIO                0xf4
#define            SetHoldIOBit            0x04        //bit2
#define         ModeSwitchIO            0xf2
#define            SetModeSwitchIOBit      0x80        //bit7
#endif

        module  ISR_Keyboard


        public  sISR_Keyboard

        public  RTCTimer_Counter
        public  RTCHold_Counter
        public  TheLastHold
        public  TheLastMode         
        public  StickTimes

        public  sISR_RTCTimer
   
          
        public  TimeNo
        public  OldKeyIsr

        rseg    KY_RDATA
//************************************************************
RTCTimer_Counter    defb    0x00        //按鍵抬起的定時器
RTCHold_Counter     defb    0x00        //hold pin 檢測定時器
TheLastHold         defb    0x00        //0h:HOLD  01h:Unhold
TheLastMode        defb       0x00    //0 mp3 非0 dvr    
DebouncingTimes     defb    0x00        //按鍵次數記數
StickTimes          defb    0x08        //按鍵多少次保存的設置
TheLastKey          defb    0xff        //按鍵去抖動的標志
TheLastKeyUpFlag    defb    0x01        //最后一個按鍵是否抬起。用于應付復合鍵
test    defb 0
TimeNo                  defb    0
OldKeyIsr               defb    0,0
//************************************************************
/*
** FUNCTION:    KeyInt
** PURPOSE: Keyboard interrupt
** PARAMETERS:  none
** DESCRIPTION:
*/
//************************************************************
        rseg    KY_RCODE
#ifdef Hard_2051_key 
//**********************************************************************//
//*******************keyi0(b0) keyi1(b1) keyi2(b2) keyi4(f0) keyi5(f1)**//
//*********keyo0(b4) reg0.0    reg0.1    reg0.2    reg0.4    reg0.5   **//
//****************** (Next)    (Last)    (Play)       (vol+)    (vol-)   **//    
//*********keyo1(b5) reg1.4    reg1.5    reg1.6    reg2.0    reg2.1   **//
//******************  (eq)     (rec)     (Mode)       (Power)   (Repeat) **//     
//**********************************************************************//       
sISR_Keyboard:
        ld      a,40h                   //清中斷標志
        out     (REG26_MASTER_IRQ_STATUS),a
        ld      a,06h                   //重新啟動判斷鍵盤抬起的定時器
        ld      (RTCTimer_Counter),a    //即120毫秒沒有來鍵盤中斷,認為鍵盤抬起,不能設成80ms,因為Keyscan Debouncing time是40ms
                                        //當中斷竟爭時,有可能先響應RTCISR再響應KEYISR,會導致提早發KeyUp消息
        ld      a,(TheLastHold)
        cp      0
        jr      z,Key_UnHold            //高電平設為Hold
        ld      a,Msg_KeyHold           //hold有效時的處理
        ld      (TheLastKey),a
        jp      KEY_isr_storekey
Key_UnHold:
        out     (REGC0_KEY_SCAN_DATA),a //先將鍵盤指針指向0
//******************************************************
CheckREG0:
        in      a,(REGC0_KEY_SCAN_DATA) //Save  Function keys
//******************************************************
REG0Bit0:       
        rra
        jr        c,REG0Bit1            //k1,B4B0
        ld      a,Msg_KeyNext  
        jr      StartComareKEY
REG0Bit1:
    rra
        jr        c,REG0Bit2
        ld      a,Msg_KeyLast                  //k2,B4B1
        jr      StartComareKEY        
REG0Bit2:
        rra
        jr        c,REG0Bit4
        ld      a,Msg_KeyPlayPause            //k3,B4B2  
        jr      StartComareKEY      
REG0Bit4:
    rra
    rra
        jr        c,REG0Bit5
        ld      a,Msg_KeyVolAdd             //k4,B4f0
        jr      StartComareKEY        
REG0Bit5:
        rra
        jr        c,CheckREG1
        ld      a,Msg_KeyVolSub                //k5,B4f1  
        jr      StartComareKEY              
//******************************************************
CheckREG1:
        in      a,(REGC0_KEY_SCAN_DATA)
REG1Bit6:
    rla
        rla
        jr      c,REG1Bit5
        ld      a,Msg_KeyMenu                 //k6,B5B2 
        jr      StartComareKEY
REG1Bit5:
        rla
        jr      c,REG1Bit4
        ld      a,Msg_KeyREC                //k7,B5B1
        jr      StartComareKEY
REG1Bit4:
        rla
        jr      c,CheckREG2
        ld      a,Msg_KeyEQ                //k8,B5B0
        jr      StartComareKEY
//******************************************************
CheckREG2:
        in      a,(REGC0_KEY_SCAN_DATA)
        rra
REG2Bit0:
        jr      c,REG2Bit1
        ld      a,Msg_KeyPower                //k9,B5f0
        jr      StartComareKEY
REG2Bit1:
        rra
        ret     c    
        ld      a,Msg_KeyRepeat                //k10,B5f1
//********************************************************
//開始對掃描到的鍵盤進行處理
StartComareKEY:
        ld      hl,TheLastKey
        cp      (hl)
        jr      nz,KEY_isr_newkeydown   //如果是新按鍵,跳轉,實現去抖動

        ld      hl,DebouncingTimes
        inc     (hl)
        ld      a,(hl)
        cp      1                        //值到1就保存一次
        jr      z,KEY_isr_storekey
        ld      hl,StickTimes            //第一次保存之后,設置使按鍵中斷沒來8次再保存一次鍵值
        cp      (hl)
        ret     nz
        xor     a                        //8次到來之后,在把變量初始化
        ld      (DebouncingTimes),a
        ld      a,STICK_TIMES
        ld      (hl),a
        ret
KEY_isr_storekey:                           //鍵值保存
        ld      a,(TheLastKey)
        ld      e,a
        mMSG_PutSysMsg                        //調用系統函數實現鍵值保存
        ret
//-----------------------------------------          
KEY_isr_newkeydown:                         //update TheLastKey and DebouncingTimes
        ld      b,(hl)  
        ld      (hl),a                        //新鍵值保存
        ld      a,Msg_KeyShortUp
        cp      b
        jr      z,NeedNotStoreKeyUp            //保證抬鍵消息只發一次
        ld      e,Msg_KeyShortUp
        mMSG_PutSysMsg
NeedNotStoreKeyUp:                          //變量初始化
        xor     a
        ld      (DebouncingTimes),a
        ld      a,FIRST_STICK_TIMES
        ld      (StickTimes),a
        ret

/*
********************************************************************************
*             RTCTimer_Keyboard
*
* Description :enable keyboard interrupt again
*
* Arguments   :none
*
* Returns     :
*
* Notes       :系統會根據RTC設置來調用此程序
*
********************************************************************************
*/
sISR_RTCTimer:                      //計數時間單位為20ms
        ld      a,(RTCHold_Counter)     //計數為20ms*6=120ms
        or      a
        jr      z,lsBckLightCheckBegin
        dec     a
        ld      (RTCHold_Counter),a
        jr      nz,lsBckLightCheckBegin
        call    RTC_HoldKey                 //做HOLD鍵查詢任務
        call    RTC_ModeKey
lsBckLightCheckBegin:
        ld      a,(RTCTimer_Counter)
        or      a
        jr      z,lsRTCTimer_KeyboardRet
        dec     a
        ld      (RTCTimer_Counter),a
        jr      nz,lsRTCTimer_KeyboardRet
        ld      (DebouncingTimes),a            //120ms時間到,按鍵的硬件中斷還沒有來,就發抬鍵消息
        ld      a,FIRST_STICK_TIMES            //相關變量初始化    
        ld      (StickTimes),a
        ld      a,Msg_KeyShortUp
        ld      (TheLastKey),a
        ld        e,a
        mMSG_PutSysMsg
lsRTCTimer_KeyboardRet:
    ret
//------------------------------------------------------
RTC_HoldKey:
        in      a,(HoldIO)          //gpio_c2用作檢測HOLD
        and     SetHoldIOBit            //0x04 bit 2
        ld      hl,TheLastHold
        cp      (hl)
        jr      z,HoldKeyOut            //兩次檢測結果一樣就不發消息
        ld      (hl),a
        and     a
        jr      nz,SaveHoldKey           //高電平設為Hold
SaveUnHoldKey:
        ld      a,Msg_KeyUnHold            //發UNHOLD消息
        ld      e,a 
        mMSG_PutSysMsg
        jr      HoldKeyOut
SaveHoldKey:
        ld      a,Msg_KeyHold            //發HOLD消息
        ld      e,a 
        mMSG_PutSysMsg
HoldKeyOut:
        ld      a,06h

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区中文字幕| 琪琪一区二区三区| 国产欧美一区二区精品性色| 日韩视频在线永久播放| 欧美伊人久久久久久午夜久久久久| 成人激情免费视频| 99国产欧美另类久久久精品| av在线播放不卡| 色综合久久综合网97色综合 | 日本一区二区三区在线观看| 欧美大片拔萝卜| 蜜桃免费网站一区二区三区| 18欧美亚洲精品| 亚洲自拍偷拍欧美| 亚洲地区一二三色| 免费av成人在线| 国产高清无密码一区二区三区| 国产精品中文有码| 99re在线视频这里只有精品| 91女人视频在线观看| 欧美亚洲愉拍一区二区| 欧美日本精品一区二区三区| 日韩精品最新网址| 国产精品人成在线观看免费| 亚洲精品中文字幕在线观看| 日韩中文字幕麻豆| 极品瑜伽女神91| 91麻豆精东视频| 欧美一区二区免费视频| 欧美激情综合五月色丁香| 亚洲欧美色综合| 久久99热99| 99精品国产热久久91蜜凸| 欧美一区二区高清| 欧美激情艳妇裸体舞| 亚洲国产美国国产综合一区二区| 另类小说一区二区三区| av中文字幕不卡| 精品免费一区二区三区| 国产精品电影一区二区三区| 日韩国产精品久久久久久亚洲| 高清成人在线观看| 91精品久久久久久久99蜜桃 | 91久久精品一区二区三| 欧美岛国在线观看| 一区二区三区欧美亚洲| 国精产品一区一区三区mba桃花 | 午夜精品免费在线| 国产91清纯白嫩初高中在线观看| 在线观看网站黄不卡| 久久久91精品国产一区二区精品 | 欧美一区二区三区思思人| 国产精品三级av| 久久69国产一区二区蜜臀| 欧洲视频一区二区| 国产拍揄自揄精品视频麻豆| 蜜臀99久久精品久久久久久软件| 色综合久久中文字幕综合网| 亚洲国产成人午夜在线一区| 蜜桃久久久久久| 在线不卡一区二区| 亚洲一区成人在线| www.久久久久久久久| 国产欧美一区二区三区鸳鸯浴| 日韩国产精品久久久久久亚洲| 在线视频国产一区| 亚洲精品老司机| 91视视频在线直接观看在线看网页在线看| 欧美精品一区二区在线观看| 三级精品在线观看| 欧美日韩在线一区二区| 亚洲五码中文字幕| 欧美三级欧美一级| 午夜一区二区三区视频| 欧美在线你懂得| 亚洲高清免费观看| 欧美精品1区2区| 视频一区在线视频| 欧美老肥妇做.爰bbww视频| 五月天一区二区三区| 欧美绝品在线观看成人午夜影视| 亚洲色图制服诱惑| 色综合天天在线| 亚洲成人av在线电影| 欧美三级乱人伦电影| 日韩成人一级片| 日韩欧美激情四射| 高清国产一区二区| 亚洲免费毛片网站| 欧美丰满一区二区免费视频| 久久综合综合久久综合| www一区二区| 成人aa视频在线观看| 亚洲美女偷拍久久| 欧美一区二区三级| 国产一区二区0| 亚洲丝袜美腿综合| 这里是久久伊人| 国产剧情一区二区| 一区二区三区国产精华| 91精品婷婷国产综合久久性色 | 成人免费在线视频观看| 在线欧美一区二区| 久久成人免费网站| 国产精品久久久久一区二区三区共| 91美女片黄在线| 久久精品国产99国产精品| 国产欧美精品区一区二区三区| 99国产精品视频免费观看| 日本va欧美va精品发布| 国产蜜臀97一区二区三区| 欧美亚洲综合网| 国产成人精品免费一区二区| 亚洲综合色成人| 久久精品视频免费| 欧美日韩综合在线免费观看| 韩国中文字幕2020精品| 伊人色综合久久天天人手人婷| 日韩三级视频中文字幕| 成人av在线资源网站| 日韩avvvv在线播放| 国产精品久久久久久妇女6080| 欧美高清性hdvideosex| 99九九99九九九视频精品| 蜜桃久久精品一区二区| 亚洲最新视频在线播放| 国产日韩精品一区二区浪潮av| 欧美网站大全在线观看| 国产精品一二三区在线| 亚洲bdsm女犯bdsm网站| 亚洲欧洲无码一区二区三区| 精品国产电影一区二区| 欧美日韩免费一区二区三区| 成人午夜视频福利| 久久国产精品第一页| 亚洲福利视频一区| 亚洲欧美色综合| 国产色综合一区| 精品国产网站在线观看| 4438x亚洲最大成人网| 色婷婷亚洲综合| 国产毛片精品一区| 麻豆视频观看网址久久| 亚洲成在线观看| 亚洲精品日韩综合观看成人91| 欧美激情一区在线| 久久精品一区八戒影视| 久久人人超碰精品| 久久久噜噜噜久久中文字幕色伊伊 | 欧美日韩综合在线| 色综合久久久久综合| 91在线视频官网| 99国内精品久久| 日本久久一区二区三区| 欧美在线观看禁18| 精品视频一区三区九区| 欧美男同性恋视频网站| 欧美日韩色综合| 日韩你懂的电影在线观看| 日韩欧美国产电影| 久久影院视频免费| 久久精品亚洲一区二区三区浴池| 久久久精品免费免费| 中文字幕免费不卡| 日韩美女精品在线| 亚洲成av人片在线| 久久国产精品区| 成人午夜碰碰视频| 色久优优欧美色久优优| 欧美午夜不卡视频| 日韩精品一区二区三区视频播放| 久久久精品欧美丰满| 综合久久久久综合| 日韩1区2区日韩1区2区| 国产九九视频一区二区三区| 波多野结衣在线一区| 欧美性生活久久| 精品av久久707| 亚洲麻豆国产自偷在线| 五月天久久比比资源色| 国产一区二区三区日韩| 99re成人精品视频| 欧美一级黄色录像| 国产精品盗摄一区二区三区| 午夜精品aaa| 国产成人激情av| 欧美日韩一二三| 中文欧美字幕免费| 日韩电影一区二区三区| 不卡一区二区中文字幕| 678五月天丁香亚洲综合网| 日本一区二区三区久久久久久久久不| 自拍偷在线精品自拍偷无码专区| 日韩1区2区日韩1区2区| 国产成人亚洲综合色影视| 欧美日韩一级大片网址| 国产精品三级视频| 日本女优在线视频一区二区| 成人av资源下载| 久久婷婷国产综合精品青草|