Professional Documents
Culture Documents
Aula 8
Driver
O FET do Driver
s est ativo quando a porta est fornecendo 1 lgico durante o acesso memria externa
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.
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
A mxima corrente de sada em nvel alto (IOH = Corrente de Output High) para o 89S52 = - 60 A
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.
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
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
VCC
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
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.
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
VCC
39 38 37 36 35 34 33 32
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
19 18 9
31
PSEN
ALE/PROG
29 30
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
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
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.
LED
R
2
39 38 37 36 35 34 33 32
1 2 3 4 5 6 7 8
19 18 9
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
R
39 38 37 36 35 34 33 32
1 2 3 4 5 6 7 8
19 18 9
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
10 11 12 13 14 15 16 17
29
ALE/PROG
30
31
EA/VPP
AT89S52
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
Linhas Colunas
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.
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.