A entrada de um timer pode ser usada para testar qual chave(s) está fechada. A entrada do Timer 1 é mantida no nível alto com um resistor pull up. Seqüencialmente, cada chave I-O é ajustada como entrada e o Timer 1 é verificado para um incremento indicando assim se a chave está fechada.

Cada bit no registro DP representa a posição de sua chave correspondente. Ajustando o Timer 1 para FFFFh e habilitando sua interrupção, um incremento vai fazer um deslocamento e gerar uma interrupção. Isso vai simplificar o software eliminando o bit de teste no registro TMR1L. Seqüencialmente, ajuste GPIO para uma entrada e e teste o incremento de TMR1 (ou se o pino padrão I/O for usado).


Na figura 1 o circuito para esta aplicação.