[PIC] Leitura de Teclado Matricial 3×4

Código para utilização de teclado matricial.

Código Fonte

PORTB = 0xFF; // PORTB em FF
PORTD = 0xFF; // PORTD em FF
TRISD = 0xFF; // Configura PORTD como entrada
TRISB = 0x00; // Configura PORTB como saída
//-------------------------------------------------------------------------
// Função para varredura do teclado matricial
//--------------------------------------------------------------------------
unsigned char LeTeclado()
{
   unsigned char var=0,Tecla=0;

   PORTB=0x0f; // Liga todos os pinos das colunas
   PORTB.B0 = 0; // Habilita primeira coluna do teclado
   var = PORTD; // Le as linhas
   if (var.B0 == 0) // Se Linha 1 Coluna 1
   {
      Tecla="<";
   }
   else if (var.B1 == 0) // Se Linha 2 Coluna 1
   {
      Tecla="7";
   }
   else if (var.B2 == 0) // Se Linha 3 Coluna 1
   {
      Tecla="4";
   }
   else if (var.B3 == 0) // Se Linha 4 Coluna 1
   {
      Tecla="1";
   }
   PORTB.B0 = 1; // Desabilita primeira coluna do teclado
   //--------------------------------------------------------------------------
   PORTB.B1 = 0; // Habilita segunda coluna do teclado
   var = PORTD;
   if (var.B0 == 0) // Se Linha 1 Coluna 2
   {
      Tecla="0";
   }
   else if (var.B1 == 0) // Se Linha 2 Coluna 2
   {
      Tecla="8";
   }
   else if (var.B2 == 0) // Se Linha 3 Coluna 2
   {
      Tecla="5";
   }
   else if (var.B3 == 0) // Se Linha 4 Coluna 2
   {
      Tecla="2";
   }
   PORTB.B1 = 1; // Desabilita segunda coluna do teclado
   //------------------------------------------------------------------------
   PORTB.B2 = 0; // Habilita terceira coluna do teclado
   var = PORTD;
   if (var.B0 == 0) // Se Linha 1 Coluna 3
   {
      Tecla=">";
   }
   else if (var.B1 == 0) // Se Linha 2 Coluna 3
   {
      Tecla="9";
   }
   else if (var.B2 == 0) // Se Linha 3 Coluna 3
   {
      Tecla="6";
   }
   else if (var.B3 == 0) // Se Linha 4 Coluna 3
   {
      Tecla="3";
   }
   PORTB.B2 = 1; // Desabilita terceira coluna do teclado
   return(Tecla);
}

Esquema Elétrico

esquema eletrico
Esquema Elétrico

Obrigado e até o próximo post.

DATEK Tecnologia Eletrônica
[PIC] Leitura de Teclado Matricial 3×4
Tags:                         

Deixe uma resposta

%d blogueiros gostam disto: