微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 独立按键驱动程序

独立按键驱动程序

时间: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;}}}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top