Pesquisar este blog

segunda-feira, 13 de fevereiro de 2012

teclado matricial

hoje iremos falar sobre teclado matricial (aqueles que é usado em telefones) item muito usado em sistemas que se desejam um dispositivo de entrada de dados e interfaces com o usuario abaixo segue um descritivo de como é estes dispositivo internamente:



e seu aspecto fisico:






este dispositivo é composto de 3 colunas e 4 linhas
uma forma de se ler qual tecla foi precionada esta descrita no roteiro abaixo:


roteiro
para identificar que tecla foi utilizada usaremos
RA0-RA1-RA2 como saida para alterar o nivel logico
da coluna 1-2-3 e
RB0-RB1-RB2-RB3 como entrada para ler a tecla
primeiro colocamos todas as  colunas em nivel alto
(RA0-1-2-3)
lembrando que devemos colocar resistores de pull-down
no (RA0-1-2)
depois colocamos coluna 1 em nivel baixo (0)
e escaneamos RB0-RB1-RB2-RB3
lembrando que devemos colocar resistores de pull-up
nos portosRB0-RB1-RB2-RB3
quando o sistema estiver nesta condição a entrada que estiver em nivel baixo
sera considerado uma tecla precinada da coluna 1
temos 4 condições possiveis

PRIMEIRA
1=1
4=0
7=0
#=0
SEGUNDA
1=0
4=1
7=0
#=0
TERCEIRA
1=0
4=0
7=1
#=0
QUARTA
1=0
4=0
7=0
#=1


viram como é simples e isto se repete para as outras colunas
abaixo tem um trecho de um codigo em assembly

;**************************************VARREDURA C1******************************************
  BCF C1      ;COLUNA1 EM NIVEL BAIXO
  BSF C2       ;COLUNA2 EM NIVEL ALTO
  BSF C3       ;COLUNA3 EM NIVEL ALTO
  NOP
  BTFSS L1
  GOTO S1           
  NOP
  BTFSS L2
  GOTO S2           
  NOP
  BTFSS L3
  GOTO S3  
  NOP
  BTFSS L4
  GOTO S4  

;**************************************VARREDURA C2******************************************
  BSF C1       ;COLUNA1 EM NIVEL ALTO
  BCF C2      ;COLUNA2 EM NIVEL BAIXO
  BSF C3       ;COLUNA3 EM NIVEL ALTO
  NOP
  BTFSS L1
  GOTO S5  
  NOP
  BTFSS L2
  GOTO S6  
  NOP
  BTFSS L3
  GOTO S7  
  NOP  
  BTFSS L4
  GOTO S8  
  NOP
;**************************************VARREDURA C3******************************************
  BSF C1         ;COLUNA1 EM NIVEL ALTO
  BSF C2         ;COLUNA2 EM NIVEL ALTO
  BCF C3         ;COLUNA3 EM NIVEL BAIXO
  NOP
  BTFSS L1
  GOTO S9 
  NOP
  BTFSS L2
  GOTO S10  
  NOP
  BTFSS L3
  GOTO S11  
  NOP
  BTFSS L4
  GOTO S12  
  NOP
  GOTO S13  


AGORA VAMOS FAZER UMA PERGUNTA NÃO SERIA MAIS FACIL COLOCARMOS UMA ENTRADA PARA CADA TECLA?
vamos analisar :
temos 12 tecla
seria nescessario 12 entradas  usando o sistema de matricial usamos 
apenas 4 bits do portb e nos resta mais 4 bits do portb para usarmos
como entrada de sensores ou saida para acionamentos
de cargas via rele
bom pessoal é isso ai qualquer duvida é só comentar












Um comentário: