• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 獨(dú)立按鍵驅(qū)動(dòng)程序

    獨(dú)立按鍵驅(qū)動(dòng)程序

    作者: 時(shí)間:2012-08-25 來(lái)源:網(wǎng)絡(luò) 收藏

    下面是,特點(diǎn)是利用TIMER0中斷,CPU在不停的,60ms到,執(zhí)行按鍵驅(qū)動(dòng),函數(shù)在48ms執(zhí)行一次,60ms再次執(zhí)行,避免了CPU資源的浪費(fèi)

    bit  ltkey = 0;       //防止按鍵被長(zhǎng)按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;//檢測(cè)按鍵if(pic == 10)      //首次按鍵檢測(cè){amkey = AMKEY;unitTemp = P2;}if(pic == 13)      //12ms后,再次執(zhí)行檢測(cè){NowKeyValue = P2;NowAMKeyValue = AMKEY;if(NowKeyValue != unitTemp)   //如果兩次檢測(cè)到的結(jié)果不同,則認(rèn)為是抖動(dòng),不做處理{unitTemp = 0xff;}if((NowAMKeyValue == amkey)  (amkey == 0))   //如果狀態(tài)鍵按鍵有效{if(ltkey == 0){           //AM狀態(tài)LED位,0為自動(dòng),1為手動(dòng)am_led = !am_led;if(am_led == 0)       //如果是從手動(dòng)切回自動(dòng),切回到CH1{unitTemp = 0xf7;mtoa = 1;        //由手動(dòng)切到自動(dòng)后的標(biāo)志位}AMLED = am_led;       //狀態(tài)燈,變化時(shí)寫入ltkey = 1;}}else{ltkey = 0;}}}


    評(píng)論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 中方县| 普兰店市| 呼图壁县| 大厂| 綦江县| 资溪县| 长兴县| 临沧市| 横峰县| 拉孜县| 页游| 岳普湖县| 沈丘县| 宜昌市| 青阳县| 海城市| 西宁市| 镇远县| 富裕县| 江安县| 金湖县| 崇文区| 黄冈市| 绥棱县| 桂平市| 绿春县| 富顺县| 南充市| 平定县| 岢岚县| 襄垣县| 理塘县| 桂平市| 锦屏县| 合阳县| 礼泉县| 嘉鱼县| 兴海县| 介休市| 敦化市| 漯河市|