if(!key) while(1) { //如果有显示程序写一遍在这里 if(key) { //按键要实现的功能 break; } } 这样写只能按一次实现一次 |
主意不错,站位留存一下! |
这样很难吗? if(K5 == 0) { DelayM(20); q = ~q; //标志位取反 if(q){kai_numl = kai_numl | 1;} else { kai_numl = kai_numl&0;} if(q){BLK = BLK | 1;} else {BLK= BLK & 0;} while(K5 == 0); } |
挺好的啊,我自己也是这样使用的 |
其实这个就是状态机 |
原理分析到位!多谢分享 |
一般来说都是延时5MS,小程序上用不了多少 |
我记的网上有人利用标志位进行消抖,用延时的话有点困难 |
还可以搞两个for嵌套循环! 最外层记录按了多少次,用来处理多次连续按键。内层在规定时间内有按键动作记为真,超过规定时间记为假,这样可以高效消抖![]() |