Ir ao conteúdo
  • Cadastre-se

Como Programar Teclado Matricial 3x4 no PIC16f628a


Posts recomendados

Bem eu gostaria de pedir a  ajuda se alguém pode me ajudar a programar um teclado matricial 3x4 no PIC 16f628a. Já fiz vários programas mas não consegui resolver o problema, pois eu não sei a rotina para fazer o teclado ser reconhecido no pic e nem como colocar isso (eu uso o programa PCW para programar). 

Caso alguém consiga me ajudar mais ainda eu só quero que quando eu aperte uma tecla do teclado um motor que estará conectado a um relê no PIC ligue e assim uma micro-chave conectada ao PIC começara a ser acionada e a contar até atingir o valor digitado no teclado e assim o motor para.

Já agradeço a quem me ajudar. Obrigado.

Link para o comentário
Compartilhar em outros sites

main()

 

int tecla = 0

 

while(1)

{

 

PORTB = 0b10000000;

 

if (PORTBbits.RB3)

         tecla = 1;

else if (PORTBbits.RB2)

          tecla = 2;

else if (PORTBbits.RB1)

          tecla = 3;

else if (PORTBbits.RB0)

          tecla = 4;

 

PORTB = 0b01000000;

 

if (PORTBbits.RB3)

         tecla = 5;

else if (PORTBbits.RB2)

          tecla = 6;

else if (PORTBbits.RB1)

          tecla = 7;

else if (PORTBbits.RB0)

          tecla = 8;

 

PORTB = 0b00100000;

 

if (PORTBbits.RB3)

         tecla = 9;

else if (PORTBbits.RB2)

          tecla = 10;

else if (PORTBbits.RB1)

          tecla = 11;

else if (PORTBbits.RB0)

          tecla = 12;

 

PORTB = 0b00010000;

 

if (PORTBbits.RB3)

         tecla = 13;

else if (PORTBbits.RB2)

          tecla = 14;

else if (PORTBbits.RB1)

          tecla = 15;

else if (PORTBbits.RB0)

          tecla = 16;

 

}

 

}

 

Isso é o tipo de código mais básico. Ele vai funcionar pressionando uma tecla de cada vez (Não simultâneo)

 

Fiz para você conseguir entender o funcionamento

 

Você usa 3 pinos como saída, coloca high um de cada vez e faz a leitura da coluna. 

 

Enfim, acho que é isso. Abraço

 

teclado_matricial_4x4_funcionamiento.jpg

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

vamos tentar 4x4 de outra forma. Que tal isso...

unsigned char tecla(){unsigned char tec=0b11111111; //0xff=nenhuma tecla pressionadaTRISB=0b00001111;PORTB=0b00001111;tec=PORTB;TRISB=0b11110000;PORTB=0b11110000;tec&=PORTB;return tec;}

Não vai retornar valores sequencias mas diferentes.

Digitei on line, portanto.. já sabe. Qualquer dia vou simular pra ver; Se achar que devo, corrijo o post. Poranto sugiro não "citar"

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...