Os teclados são dispositivos de entrada amplamente usados em vários projetos eletrônicos e incorporados. Eles são usados para obter entradas na forma de números e álbhabets e alimentá-los no sistema para processamento posterior. Neste tutorial, vamos fazer a interface de um teclado de matriz 4x4 com o microcontrolador 8051.
Teclado de matriz 4X4
Antes de fazer a interface do teclado com o microcontrolador, primeiro precisamos entender como ele funciona. O teclado matricial consiste em um conjunto de botões de pressão, que estão interconectados. Como em nosso caso, estamos usando um teclado de matriz 4X4, no qual existem 4 botões em cada uma das quatro linhas. E os terminais dos botões são conectados de acordo com o diagrama. Na primeira linha, um terminal de todos os 4 botões de pressão são conectados juntos e outro terminal de 4 botões de pressão estão representando cada uma das 4 colunas, o mesmo vale para cada linha. Portanto, estamos obtendo 8 terminais para conectar a um microcontrolador.
Interface de teclado com microcontrolador 8051 (AT89S52)
Primeiro, precisamos fazer a interface com um módulo LCD para exibir os dados que serão alimentados por meio do TECLADO, portanto, leia o artigo “Interface do LCD com o microcontrolador 8051” antes de fazer a interface do TECLADO.
Conforme mostrado no diagrama de circuito acima, para fazer a interface do teclado, precisamos conectar 8 terminais do teclado a qualquer porta (8 pinos) do microcontrolador. Assim como conectamos os terminais do teclado à Porta 1 do 8051. Sempre que qualquer botão for pressionado, precisamos obter a localização do botão, significa a LINHA correspondente e o nº da COLUNA. Assim que obtivermos a localização do botão, podemos imprimir o caractere de acordo.
Agora a questão é como obter a localização do botão pressionado? Vou explicar isso nas etapas abaixo e também quero que você olhe o código:
1. Primeiro, colocamos todas as linhas no nível lógico 0 e todas as colunas no nível lógico 1.
2. Sempre que pressionamos um botão, a coluna e a linha correspondente a esse botão entram em curto e tornam a coluna correspondente no nível lógico 0. Porque essa coluna fica conectada (em curto) à linha, que está no nível lógico 0. Então, obtemos o coluna nº Veja a função main ().
3. Agora precisamos encontrar o número da linha, então criamos quatro funções correspondentes a cada coluna. Como se qualquer botão da coluna um for pressionado, chamamos a função row_finder1 (), para encontrar a linha no.
4. Na função row_finder1 (), invertemos os níveis lógicos, significa que agora todas as linhas são 1 e as colunas são 0. Agora, a linha do botão pressionado deve ser 0 porque ela foi conectada (em curto) à coluna cujo botão foi pressionado, e todas as colunas estão em 0 lógico. Portanto, verificamos todas as linhas em busca de 0.
5. Portanto, sempre que encontrarmos a linha na lógica 0, significa que essa é a linha do botão pressionado. Portanto, agora temos a coluna nº (obtida na etapa 2) e a linha nº., E podemos imprimir o nº. desse botão usando a função lcd_data.
O mesmo procedimento segue para cada botão pressionado, e estamos usando enquanto (1), para verificar continuamente se o botão é pressionado ou não.