Teclado Matricial 1

download Teclado Matricial 1

of 23

Transcript of Teclado Matricial 1

8051Aula 7

Tcnicas de Interface com Microprocessadores (8051)Estrutura das Portas do 8051:

Todas as quatro Portas (P0,P1,P2,P3) da famlia deMicrocontroladores MCS-51 so bi-direcionais.

Cada uma delas consiste de um Latch, um Driver de sada e um Buffer de entrada

Os Drivers de sada dos Buffers de entrada da Porta P3 somultifuncionais, podem tambm assumir funes alternativas

Arquitetura interna da Porta P0Driver

O FET do Drivers est ativo quando a porta est fornecendo 1 lgico durante o acesso memria externa

Latch Buffer de entrada

As linhas de P0 que esto sendo usadas como sada so dreno aberto. Escrever nvel lgico 1 em qualquer pino da P0 desativa os FETs de sada e assim o pino flutua.

Porta Bi-direcional verdadeira

Arquitetura interna da Porta P1 Porta Quase Bi-direcional

O Resistor de Pull-up fixo, fornece corrente (IIL = Corrente de Input Low) quando externamente aplicado um nvel lgico 0. Para o 89S52 o valor mximo de IIL = - 50 uA

Quando o Microcontrolador escreve nvel lgico zero na sada, os Mximos Valores de IOL (Corrente de Output Low) para o 89S52 so: Mxima IOL por pino: 10 mA Mxima IOL para 8-bits da porta P1: 15 mA Mxima IOL para todos os pinos (P0, P1,P2,P3): 71 mA

O valor de IIH (Corrente de Input High) mximo de 300 uA

A mxima corrente de sada em nvel alto (IOH = Corrente de Output High) para o 89S52 = - 60 A

Arquitetura interna da Porta P2 Porta Quase Bi-direcional Os valores de IOL, IOH, IIL e IIH so os mesmos da Porta P1

Aps um Reset, todas as sadas dos Latches vo para nvel lgico 1, programando todas as Portas (P0, P1, P2, P3) como entradas.

A Porta P2, como a P0, no pode ser usada como entrada/sada se estiver sendo usada como Barramento de Endereos.

Arquitetura interna da Porta P3 Porta Quase Bi-direcional

Os valores de IOL, IOH, IIL e IIH so os mesmos da Porta P1 Se o Latch da Porta P3 est em nvel lgico 1, a sada controlada pelo sinal de Funo de Sada Alternativa

Pino P3.0

Sentido Entrada Sada Entrada Entrada Entrada Entrada Sada Sada

Funo Alternativa RxD (Entrada Serial) TxD (Sada Serial) INT0 (Interrupo 0) INT1 (Interrupo 1) T0 (Contador 0) T1 (Contador 1) WR (sinal de escrita) RD (Sinal de Escrita)

Os Pinos da Porta P3 esto sempre disponveis como Entrada das Funes Alternativas

P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

Read-Modify-Write Instructions Algumas instrues que leem as Portas do 8051 leem os Latches e outras leem os Pinos. As instrues que leem os Latches ao invs dos Pinos so as que leem um valor, possivelmente alteram e ento reescrevem no Latch.

Instrues que leem o Latch ANL ORL XRL JBC CPL INC DEC DJNZ P1,A P2,A P3,A P1.1,LOOP P3.0 P2 P1 P3,LOOP2 MOV CLR SEB P1.0,C P2.3 P3.0

Latches e Pinos das Portas

Por exemplo: Se no Bit 0 da Porta P2 tiver um transistor. A instruo SETB P2.0 faz o Pino 21 do 8051 ir para nvel lgico 1, conduzindo o transistor. Se for executada posteriormente a instruo JBC P2.0,LABEL O valor que a instruo veria se fosse lido o Pino 21 seria nvel lgico Zero, devido conduo do transistor (VBE).39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8 19 18 9 31 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0/T2 P1.1/T2-EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 XTAL1 XTAL2 RST EA/VPP AT89S52 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD PSEN ALE/PROG 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 29 30 1 2 3

VCC

LED

R

No utilizar as Portas como memrias, flags e testes de verificao de escrita nas Portas para evitar conflitos com o Hardware .!!! No escrever em uma Porta e depois ler a informao da mesma para verificar.MOV P2, #0FFH

Neste caso, escrevo 1 no Latch do Bit x da Porta P2 e leio 0 diretamente do Pino (VBE do transistor em conduo). MOV A,P2

Conectando Chaves mecnicas s entradas do Microcontrolador Um resistor deve ser utilizado conectado ao Vcc para garantir nvel lgico 1 na entrada da porta quando a chave no estiver acionada. O valor deste Resistor deve ser dimensionado levando-se em conta a corrente na chave quando a mesma for acionada para o terra pois a entrada do Pino da Porta pode, teoricamente ser conectada diretamente ao Vcc. Um valor padro para o Resistor pode ser 10K ohms que consumir uma corrente da fonte de aproximadamente 500 uA quando a chave for acionada.VCC 39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8 19 18 9 31 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0/T2 P1.1/T2-EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 XTAL1 XTAL2 RST EA/VPP AT89S52 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD PSEN ALE/PROG 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 29 30

importante ressaltar que quando a chave for acionada, o resistor de Pull-up da porta fornece tambm no mximo IIL = 50 uA.

Exemplo de AplicaoVCC

Considerando o esquema, implementar um contador binrio de 8 Bits cujo valor deve ser incrementado de uma unidade a cada toque na chave e enviado Porta P2

39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8 19 18 9 31

P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0/T2 P1.1/T2-EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 XTAL1 XTAL2 RST EA/VPP AT89S52

P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD PSEN ALE/PROG

21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 29 30

Primeira Soluo

Testando-se a chave duas vezes verifica-se se o usurio j completou a operao de um toque, ou seja, um pulso completo.

Esta soluo funcionaria na Prtica? NO

As chaves mecnicas possuem inrcia ao fechar que geram rudos que podero ser detectados pelo software ao se proceder a leitura da mesma.

Este rudo, chamado de Bounce da chave deve ser eliminado, ou por hardware (capacitor, FF tipo D) ou por software inserindo um atraso antes da leitura da chave fechada.

VCC

Bounce da Chave

Entrada de um Circuito Digital

VCC

39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8 19 18 9 31

P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0/T2 P1.1/T2-EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 XTAL1 XTAL2 RST EA/VPP AT89S52

P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD PSEN ALE/PROG

21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 29 30

Conectando Leds s sadas do Microcontrolador Qual o valor do Resistor e da corrente necessria para acender o Led no esquema abaixo?39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8 19 18 9 31 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0/T2 P1.1/T2-EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 XTAL1 XTAL2 RST EA/VPP AT89S52 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD PSEN ALE/PROG 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 29 30 LED

O nvel da porta para acionar o Led deve ser nvel lgico 1, ou seja = 5v Um Led tem uma queda de tenso de 1,4 v Logo, V = RI + Vled

R = (5 1,4 )/I

Como um Led necessita de aproximadamente 10 mA para uma boa luminosidade R = 3,6/10mA = 360 ohms Como a corrente de sada em nvel alto IOH no mximo 60 uA, esta ligao invivel

E se alterarmos o esquema de conexo, qual o valor do Resistor e da corrente necessria para acender o Led ?VCC

39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8 19 18 9 31

P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0/T2 P1.1/T2-EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 XTAL1 XTAL2 RST EA/VPP AT89S52

P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD PSEN ALE/PROG

21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 29 30

LED

O nvel da porta para acionar o Led deve ser nvel lgico 0, ou seja = 0v

O clculo do Resistor o mesmo realizado anteriormente, ou seja, R = 360 ohms A corrente a ser avaliada agora a de nvel de sada baixo, ou seja, IOL no mximo 10 mA por bit da Porta P2.

O valor mximo de IOL para os 8 Bits da Porta P2 15 mA, ou seja, a soluo vivel para um Bit mas no deve ser adotada para a porta toda, pois o nvel de corrente ultrapassa o mximo recomendado.

Bufferizando as sadas do MicrocontroladorVCC

LED

R 2

39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8 19 18 9 31

P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0/T2 P1.1/T2-EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 XTAL1 XTAL2 RST EA/VPP AT89S52

P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD PSEN ALE/PROG

21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 29 30

1

Utilizando-se um Buffer/driver com transistores, um para cada bit da porta, fornece-se a corrente necessria operao do Led sem afetar os valores mximos permitidos para o Microcontrolador.

Nvel lgico 1 em P2.0 conduz o transistor acendendo o Led R = 360 Ohms fornece corrente de aproximadamente 10 mA ao Led.

O resistor de base deve ser calculado conforme especificaes do transistor com IOH mxima de 60 uA

3

Bufferizando as sadas do Microcontrolador A soluo mais indicada utilizar um Circuito Led Driver que fornecer a corrente necessria aos Leds em cada um dos Bits da Porta no permitindo ultrapassar os valores mximos recomendados.VCC

R 39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8 19 18 9 31 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0/T2 P1.1/T2-EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 XTAL1 XTAL2 RST EA/VPP AT89S52 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD PSEN ALE/PROG 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 29 30 1 Driver 2

Alguns CIs de Led Driver 7407 (4 por chip)

LED

74244 (8 por chip) ULN2803 (8 por chip) outros

Interface do Microcontrolador com Teclado Matricial Um Teclado Matricial de 4 linhas por 4 colunas permite a gerao de 16 cdigos independentes utilizando-se apenas 8 linhas de uma Porta do Microcontrolador. Dessa maneira possvel interfacear um Teclado Hexadecimal Matricial ao Microcontrolador para entrada de dados binrios

Interface do Microcontrolador com Teclado Matricial

Linhas Colunas

P2.0 a P2.3 P2.4 a P2.7

Entrada Sada

Valores aplicados s colunas(P2.4 a P2.7) e lidos nas linhas (P2.0 a P2.3) se for acionada uma tecla presente na coluna que contm zero.

Caso nenhuma tecla seja acionada, o valor das linhas = F