Как уже стало понятно, решений может быть много

Особенно, разнообразия вносит реализация антидребезга (тут у каждого свой рояль в кустах

)
Вы хоть уточните, на чем программка должна быть (C, ASM) и какой алгоритм Вы хотите - простой цикл, с использованием таймера+прерываний итп.