发布网友
共1个回答
热心网友
这样不是很好吗,按下只要没放就在那等待,如果不等待,又会进入下一次按键的判断,这样可能不是我们想要要的结果,如果你不想在那等,就不用while(!KEY),程序执行完这个Key的过程后,可能会立马又进入了Key函数,那么,你本来想要加1的,可能在你按的那一下,就加到5、6了。 但是,如果你一定要像你说的那样的程序,也并不是不行,简单可行的办法就是中断加查寻的方法,中断的目的是在下降沿时触发,由于单片机的外中断很少,不可能做n多个按键,那么,按键还要通过与门连到其他I/O口,有了中断做为触发前提,再通过其他I/O口查寻,就可以获得当前是哪个键了。由于中断是下降沿触发,所以,每一次按键只会出现一个下降沿,反以不管你按下多久,程序执行完了都会立马退出,而且不会有下一次的误判。不过这样做的缺点就是,按键越多,硬件(与门)就会用的越多,电路会复杂一些,当然,成本也会相应增加。追问不知道你回答个什么劲啊。。。。。。!!!!