LED 和按键复用有好几种方式, 具体要给出你的电路才好判断.
我看你程序(我没有细看)里面LED显示有用到595, 不知道你是 LED的COM端和SEG端都通过595控制, 还是SEG通过595控制, COM通过IO控制的三极管来控制.
无论哪种, 都是象楼上说 的, 先把LED 关断, 然后再进行按键扫描.
例如: LED 更新内容后(显示了) 持续保持50ms(假设而已), 50ms 后, 关闭所有的LED. 然后开始扫描按键, 按键扫描后, 再进行LED 刷新, 如此重复.
要注意按键 一直 按住的时候, 硬件本身会干扰 LED显示, 因此需要加二极管保护.
总之, 楼上说的没错, 具体要看你的电路是怎么设计的.
|