独立按键驱动程序
时间: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;}}}
- 一种单片机独立按键检测思路(12-02)
- 51单片机学习之5-独立按键和矩阵键盘(11-30)
- 独立按键的长按与短按(11-26)
- 第24节:独立按键控制跑马灯的启动和暂停(11-22)
- 第十节:两个独立按键的组合按键触发(11-22)
- 第九节:独立按键的双击按键触发(11-22)