зачем сложности с таймерами или аппаратными способами - классический способ подавления дребезга контактов:
читаем состояние кнопки многократно. Кнопка считается находящейся в каком-то состоянии (нажата или ненажата), если удалось прочитать подряд это состояние, некоторое количество раз, например 100, зависит от качества кнопки и скорости программы.