You are on page 1of 19

8051

Aula 8

Tcnicas de Interface com Microprocessadores (8051)

Estrutura das Portas do 8051:

Todas as quatro Portas (P0,P1,P2,P3) da famlia de


Microcontroladores 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 so


multifuncionais, podem tambm assumir funes alternativas

Arquitetura interna da Porta P0

Driver

O FET do Driver
s 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

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.
39 38 37 36 35 34 33 32
1 2 3 4 5 6 7 8
19 18 9

VCC

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

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

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

ALE/PROG

31

EA/VPP
AT89S52

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

Exemplo de Aplicao
VCC

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

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

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

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

ALE/PROG

31

EA/VPP
AT89S52

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

P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7

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

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

1 2 3 4 5 6 7 8

P1.0/T2 P1.1/T2-EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

19 18 9
31

XTAL1 XTAL2 RST


EA/VPP

PSEN
ALE/PROG

29 30

AT89S52

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

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

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

21 22 23 24 25 26 27 28

LED

10 11 12 13 14 15 16 17
29

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

ALE/PROG

30

31

EA/VPP
AT89S52

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

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

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

21 22 23 24 25 26 27 28

LED

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

10 11 12 13 14 15 16 17
29

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.

ALE/PROG

30

31

EA/VPP
AT89S52

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 Microcontrolador


VCC

LED

R
2

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

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

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

21 22 23 24 25 26 27 28

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.

10 11 12 13 14 15 16 17
29

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

ALE/PROG

30

31

EA/VPP
AT89S52

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

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

Alguns CIs de Led Driver 7407 (4 por chip)

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

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

21 22 23 24 25 26 27 28

1
Driver

2
LED

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

10 11 12 13 14 15 16 17
29

ALE/PROG

30

31

EA/VPP
AT89S52

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

Exerccio
Fazer um programa em Assembly do 8051 que interfaceado a um Teclado Matricial conforme esquema mostrado, comande um Motor de Passo conectado Porta P1 (P1.0 = Clock, P1.1 = Direo). O Nmero de passos (de 01 a 99) deve entrar pelo Teclado Matricial seguido da direo ( A = Anti-horria e B = Horria). Aps os dados de nmero de passos e direo terem sido inseridos, o programa aguarda uma tecla de incio, ou Enter (usar a letra F). Quando o Motor terminar de dar os passos solicitados no item 1, deve parar e aguardar novos comandos de Nmero de Passos e Direo. Simular no Pinnacle colocando um contador em paralelo com o clock do motor para verificar a contagem dos pulsos.

1.

2.

3.

You might also like