一个51单片机如何同时响应两个以上按键输入信号

也就是当key1(带自锁)作为51单片机输入信号被按下时,再按key2(不带自锁)时,响应就有问题了。请问这个问题要如何解决?工业上会遇到这种情况的。请问如何用程序将key1的电平信号在程序里面变为脉冲形式?也就是说不论你按下多久,单片机只扫描一次!我是用C语言编程。
2026年09月19日 18:04
有3个网友回答
网友(1):

所谓的同时响应是不可能的,无论是扫描还是中断都有分先后。

你的问题可以参考以下解决方法:
扫描时先记录KEY1的状态,如果为按下则无论下次扫描到什么状态都不执行动作,如果是放开的记录为放开,再次扫描到如果为按下则执行动作。这个扫描可以同时应用于KEY2两个不相冲突。

网友(2):

如果是轮询按键的话,可以按下key1以后将一个变量i置一,直到松开变量i清零,这样再按key2的时候进去先检测i是否为0,为0才能进行下一步

网友(3):

不明白你说的