HOME      PROJETOS      PROGRAMAÇÃO      MÓDULOS      EMAIL     


TECLADO MATRICIAL SIMPLES

A melhor opção para entrar com dados numéricos em projetos que usam microcontroladores é o teclado matricial, cujos tipos mais comuns são os de 12 (3x4) e 16 (4x4) teclas, sendo o de 12 teclas uma matriz de 3 linhas por 4 colunas e o de 16 teclas uma matriz de 4 linhas por 4 colunas. Vários tipos de teclados podem ser encontrados no mercado, como os teclados de botões e os de membrana mas, independente do tipo, todos funcionam da mesma maneira, ou seja, todos eles têm um cabo com 8 fios onde os fios de 1 a 4 são a linhas e os fios de 5 a 8 são as colunas.

Para conectarmos o teclado ao microcontrolador, devemos reservar uma porta completa como, por exemplo, o PORTB. As linhas L1, L2, L3 e L4 do teclado deverão ser conectadas aos pinos RB0, RB1, RB2 e RB3 do PORTB e configuradas como saídas. As colunas C1, C2, C3 e C4 do teclado deverão ser conectadas aos pinos RB7, RB6, RB5 e RB4 do PORTB e configuradas como entradas.

Para testar o que estamos falando, baixe o programa exemplo, descomprima o arquivo "keyboardmatrixleds.zip", entre na pasta "KEYBOARD_MATRIX_LEDS" e dê dois clics no arquivo "kbdmaleds.mcp" para abrir o projeto desenvolvido no MPLAB.

Se você possui o PROTEUS e desejar simular o projeto nele, entre na pasta "Simulacao_Proteus" e dê dois clics no arquivo "kbd4x4.DSN" para abrir a simulação.

Se você desejar montar o projeto em Protoboard ou construir um PCB, monte o circuito mostrado no esquema elétrico abaixo e grave o arquivo "kbdmaleds.hex" diretamente num microcontrolador PIC18F4520, inicialmente sem fazer alterações no código que funcionará sem problemas. Depois, se desejar, altere o programa para adaptá-lo às suas necessidades.

O esquema elétrico abaixo mostra o circuito completo para operação de um teclado matricial com 16 teclas que será usado neste projeto.

O funcionamento do programa é muito simples. Ao pressionar uma tecla, o valor ASCII do caracter será mostrado em em 8 LEDs conectados ao PORTC. Por exemplo, se a tecla "2" for pressionada, os LEDs mostrarão a sequência "0 0 1 1 0 0 1 0" cujo código ASCII é 0x32. Os zeros "0" representam LEDs apagados e os "1" representam LEDs acesos.

A estratégia de leitura do teclado é feita com o seguinte ciclo:

  1. Colocamos todos os pinos das linhas (PORTB<0:3>) em nível alto (1).
  2. Escolhemos uma linha e colocamos o pino correspondente em nível baixo (0).
  3. Lemos continuamente os pinos das colunas (PORTB<4:7>), até que uma tecla seja pressionada.
  4. Se alguma tecla estiver pressionada, o pino correspondente no PORTB<4:7> estará em nível baixo (0).
  5. Sabendo qual pino (PORTB<4:7>) esta em nível baixo, saberemos qual tecla esta pressionada.
  6. Exibimos o valor ASCII da tecla nos LEDs.
  7. Voltamos ao ítem 1.

Índice dos circuitos




H P S P I N

Desde 04 de Março de 2010

Atualização: 30 de Novembro de 2020