teclado matricial
Autor: casa do fusca | Publicado: 2012-02-13T15:23:00-08:00

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 &nbsp;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&nbsp;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******************************************

&nbsp; BCF C1 &nbsp; &nbsp; &nbsp;;COLUNA1 EM NIVEL BAIXO

&nbsp; BSF C2 &nbsp; &nbsp; &nbsp; ;COLUNA2 EM NIVEL ALTO

&nbsp; BSF C3 &nbsp; &nbsp; &nbsp; ;COLUNA3 EM NIVEL ALTO

&nbsp; NOP

&nbsp; BTFSS L1

&nbsp; GOTO S1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;

&nbsp; NOP

&nbsp; BTFSS L2

&nbsp; GOTO S2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;

&nbsp; NOP

&nbsp; BTFSS L3

&nbsp; GOTO S3 &nbsp;

&nbsp; NOP

&nbsp; BTFSS L4

&nbsp; GOTO S4 &nbsp;



;**************************************VARREDURA C2******************************************

&nbsp; BSF C1 &nbsp; &nbsp; &nbsp; ;COLUNA1 EM NIVEL ALTO

&nbsp; BCF C2 &nbsp; &nbsp; &nbsp;;COLUNA2 EM NIVEL BAIXO

&nbsp; BSF C3 &nbsp; &nbsp; &nbsp; ;COLUNA3 EM NIVEL ALTO

&nbsp; NOP

&nbsp; BTFSS L1

&nbsp; GOTO S5 &nbsp;

&nbsp; NOP

&nbsp; BTFSS L2

&nbsp; GOTO S6 &nbsp;

&nbsp; NOP

&nbsp; BTFSS L3

&nbsp; GOTO S7 &nbsp;

&nbsp; NOP &nbsp;

&nbsp; BTFSS L4

&nbsp; GOTO S8 &nbsp;

&nbsp; NOP

;**************************************VARREDURA C3******************************************

&nbsp; BSF C1 &nbsp; &nbsp; &nbsp; &nbsp; ;COLUNA1 EM NIVEL ALTO

&nbsp; BSF C2 &nbsp; &nbsp; &nbsp; &nbsp; ;COLUNA2 EM NIVEL ALTO

&nbsp; BCF C3 &nbsp; &nbsp; &nbsp; &nbsp; ;COLUNA3 EM NIVEL BAIXO

&nbsp; NOP

&nbsp; BTFSS L1

&nbsp; GOTO S9&nbsp;

&nbsp; NOP

&nbsp; BTFSS L2

&nbsp; GOTO S10 &nbsp;

&nbsp; NOP

&nbsp; BTFSS L3

&nbsp; GOTO S11 &nbsp;

&nbsp; NOP

&nbsp; BTFSS L4

&nbsp; GOTO S12 &nbsp;

&nbsp; NOP

&nbsp; GOTO S13 &nbsp;




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 &nbsp;usando o sistema de matricial usamos&nbsp;

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