新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 獨立按鍵驅動程序

        獨立按鍵驅動程序

        作者: 時間:2012-08-25 來源:網絡 收藏

        下面是,特點是利用TIMER0中斷,CPU在不停的,60ms到,執行按鍵驅動,函數在48ms執行一次,60ms再次執行,避免了CPU資源的浪費

        bit  ltkey = 0;       //防止按鍵被長按bit  am_led = 0;uchar  unitTemp = 0xff;bit    amkey;bit    remsg = 0;bit    send = 0;bit    delay100 = 0;bit    mtoa = 0;void KeyScn(void)      //按鍵掃描模塊{uchar NowKeyValue;bit   NowAMKeyValue;//檢測按鍵if(pic == 10)      //首次按鍵檢測{amkey = AMKEY;unitTemp = P2;}if(pic == 13)      //12ms后,再次執行檢測{NowKeyValue = P2;NowAMKeyValue = AMKEY;if(NowKeyValue != unitTemp)   //如果兩次檢測到的結果不同,則認為是抖動,不做處理{unitTemp = 0xff;}if((NowAMKeyValue == amkey)  (amkey == 0))   //如果狀態鍵按鍵有效{if(ltkey == 0){           //AM狀態LED位,0為自動,1為手動am_led = !am_led;if(am_led == 0)       //如果是從手動切回自動,切回到CH1{unitTemp = 0xf7;mtoa = 1;        //由手動切到自動后的標志位}AMLED = am_led;       //狀態燈,變化時寫入ltkey = 1;}}else{ltkey = 0;}}}


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 河东区| 轮台县| 威信县| 怀柔区| 海南省| 长泰县| 洪雅县| 台中市| 凉城县| 贺州市| 楚雄市| 凤翔县| 犍为县| 柳江县| 禄劝| 乌鲁木齐县| 内江市| 胶南市| 江都市| 克山县| 札达县| 景德镇市| 绍兴市| 五家渠市| 邵东县| 密山市| 乐山市| 图们市| 台东县| 金寨县| 文化| 海林市| 广东省| 河北省| 郑州市| 宝兴县| 平山县| 濉溪县| 潜山县| 铁力市| 句容市|