LED 和按鍵復用有好幾種方式, 具體要給出你的電路才好判斷.
我看你程序(我沒有細看)里面LED顯示有用到595, 不知道你是 LED的COM端和SEG端都通過595控制, 還是SEG通過595控制, COM通過IO控制的三極管來控制.
無論哪種, 都是象樓上說 的, 先把LED 關斷, 然后再進行按鍵掃描.
例如: LED 更新內容后(顯示了) 持續保持50ms(假設而已), 50ms 后, 關閉所有的LED. 然后開始掃描按鍵, 按鍵掃描后, 再進行LED 刷新, 如此重復.
要注意按鍵 一直 按住的時候, 硬件本身會干擾 LED顯示, 因此需要加二極管保護.
總之, 樓上說的沒錯, 具體要看你的電路是怎么設計的.
|