Всё просто
![Улыбка](images/smilies/icon_smile.gif)
Делаешь прерывание от вывода контроллера и считаешь сколько раз вошло в прерывание (сколько раз нажал). А для подавления дребезга небольшую задержку из выхода прерывания. Из выхода прерывания необходимо обязательно сбросить бит разрешения прерывания.
Код зависит от контроллера, у каждого порт обзывается по разному.
Алгоритм могу предоставить.