47
Exemplo de Projeto com Exemplo de Projeto com Microcontrolador Microcontrolador MCS MCS-51 51 Prof. Adilson Gonzaga

Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

  • Upload
    doque

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Exemplo de Projeto com Exemplo de Projeto com

MicrocontroladorMicrocontrolador MCSMCS--5151

Prof. Adilson Gonzaga

Page 2: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Definições Iniciais:Definições Iniciais:

� Microcontrolador

◦ Tamanho da Memória de Programa

Interna � define o tamanho da Memória

de Programa Externa a ser utilizada.

� Periféricos

◦ Definição das Interfaces necessárias ao

projeto (Serial,Teclado, Display,

conversores A/D e D/A, sensores,

atuadores, etc...)

Prof. Adilson Gonzaga 2

Page 3: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

MicrocontroladorMicrocontrolador AT89S52AT89S52

Prof. Adilson Gonzaga 3

Page 4: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

MicrocontroladorMicrocontrolador AT89S52AT89S52

Prof. Adilson Gonzaga 4

Page 5: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Características de AlimentaçãoCaracterísticas de Alimentação

Valores Máximos suportados pelo componente:

Prof. Adilson Gonzaga 5

Para que se possa utilizar circuitos integrados

no padrão TTL, a alimentação recomendada é

Vcc = 5v

Page 6: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Características Elétricas do AT89S52Características Elétricas do AT89S52

Prof. Adilson Gonzaga 6

Page 7: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Freqüência de OperaçãoFreqüência de Operação

Para poder projetar uma

interface serial operando

em Baud Rate padrão,

será utilizado um Cristal

Prof. Adilson Gonzaga 7

será utilizado um Cristal

de 11,0592 MHz

Page 8: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Logo :

1 ciclo de máquina (M) = 12 períodos de clock (P)

• Um ciclo de máquina (M) consiste de uma seqüência de 6

estados (S1 a S6).

• Cada estado é formado por 2 períodos de clock (P1 e P2).

Ciclos de Máquina

1 ciclo de máquina (M) = 12 períodos de clock (P)

Page 9: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Se o cristal é de

11.0592 Mhz:

Ciclo de Máquina (M):

Ciclos de Máquina

Page 10: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Reset de Reset de PowerPower--OnOn e Manuale Manual

Δt ≥ 2*1,085 μs ≥ 2,17 μs

Δt = R*C = 10k*C

1017,26

=−

Prof. Adilson Gonzaga 10

pFC 2171010

1017,23

×=

Não há precisão na escolha do capacitor.

Logo, escolhendo C =1μF >> 217pF smsxt µ17,210101101063

>>=××=∆−

Page 11: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Reset e CristalReset e Cristal

Prof. Adilson Gonzaga 11

Page 12: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Recursos Internos do Recursos Internos do

MicrocontroladorMicrocontrolador� Caso as necessidades do projeto exijam apenas os Recursos

internos de memória, as Interfaces podem utilizar as Portas

P0, P1, P2 e P3.

Prof. Adilson Gonzaga 12

Page 13: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Acesso a Recursos Externos ao Acesso a Recursos Externos ao

MicrocontroladorMicrocontrolador� Os microcontroladores da

família MCS-51 possuem

o duto de Dados (D0 a

D7) multiplexado ao Duto

de Endereços (A0 a A7)

na Porta P0 (AD0 a AD7).na Porta P0 (AD0 a AD7).

� Torna-se necessário,

portanto, demultiplexar os

dois dutos para gerar o

duto de Dados (D0 a D7)

e o duto de Endereços

(A0 a A15)

separadamente.

Prof. Adilson Gonzaga 13

Page 14: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

TimmingTimming dos Dutos de Dados e dos Dutos de Dados e

de Endereços Externosde Endereços Externos

Prof. Adilson Gonzaga 14

O 8051 mantém os endereços de

A0 a A7 na Porta P0 enquanto

pulsa o ALE (Adress Latch Enable)

Depois desse tempo, o 8051

transforma os pinos da P0

em Duto de Dados (D0 a D7)

Os pinos da Porta P2 (A8 a A15) são mantidos constantes durante todo o ciclo

de máquina

Page 15: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Circuito de Circuito de LatchLatch (74373)(74373)

� Deve-se armazenar (latch) o Duto de Endereços

(A0 a A7) durante o pulso de ALE.

Um circuito de latch apropriado é o 74373 que possui 8 Flip-Flops tipo D

e controle de tri-state das saídas.

Prof. Adilson Gonzaga 15

Page 16: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Duto de

Dados

Duto de

Endereços

Prof. Adilson Gonzaga 16

As Memórias Externas

poderão ser acessadas

em toda a extensão de

64k x 8 Bytes

Page 17: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Mapa de Memória de Programa Mapa de Memória de Programa

ExternaExternaO AT89S52 possui 8 Kbytes de Memória de Programa Interna

Memória

1FFFhPara utilizar toda a

Memória de Programa

Interna e também a

Memória de Programa

Prof. Adilson Gonzaga 17

Memória

de

Programa

Interna

0000h

8 KBytes

Memória de Programa

Externa, o endereço de

início desta deverá ser:

2000h

Se for utilizada apenas a Memória de Programa Externa, esta

começará no endereço: 0000h

Page 18: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Mapa de Memória de Programa Mapa de Memória de Programa

ExternaExterna

Memória

de

Programa

FFFFh

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

Duto (Bus) de Endereços

Prof. Adilson Gonzaga 18

Memória

de

Programa

Interna (8k)

Programa

Externa

(56k)

0000h

1FFFh

2000h

0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0

Decodificação de Endereços (2000h a FFFFh)

Qualquer endereço igual ou maior que

2000h pode ser decodificado pelas

linhas A13, A14 e A15.

Se o número binário formado por A15 A14 A13

for maior ou igual a 1, o endereço equivalente

será maior ou igual a 2000h

Page 19: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Mapa de Memória de Programa Mapa de Memória de Programa

ExternaExternaDecodificação das linhas de Endereço

da Memória de Programa Externa

S = A15 + A14 + A13

Prof. Adilson Gonzaga 19

S = 1 se o endereço estiver no intervalo de 2000h a FFFFh

S = 0 se o endereço estiver no intervalo de 0000 a 1FFFh

Page 20: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Mapa de Memória de Programa Mapa de Memória de Programa

ExternaExterna

Memória

de

Programa

Externa

FFFFh

S = 1

Prof. Adilson Gonzaga 20

Memória

de

Programa

Interna (8k)

Externa

(56k)

0000h

1FFFh

2000h

S = 0

Page 21: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Mapa de Memória de Programa Mapa de Memória de Programa

ExternaExternaSe o componente de memória utilizado tiver capacidade inferior a 56 K,

deverá ser realizada uma Associação de componentes. Neste caso, o

mapa de memória definido por S deverá ser particionado considerando-se

os blocos existentes.

A15 A14 A13 Saída

0 0 0 Y0

0 0 1 Y1

0 1 0 Y2

0 1 1 Y3

Prof. Adilson Gonzaga 21

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0

0 1 1 Y3

1 0 0 Y4

1 0 1 Y5

1 1 0 Y6

1 1 1 Y7

Neste caso toda a Memória de Programa está particionada em 8 Blocos

de 8k. O Y0 refere-se aos endereços de 0000 a 1FFFh, e não deve ser

usado pois acessa a Memória Interna (A15=A14=A13=0)

Page 22: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Mapa de Memória de Programa Mapa de Memória de Programa

ExternaExterna

FFFFh

S = 1

Y4(8k)

Y5(8k)

Y6(8k)

Y7(8k)

56k

Memória de Programa (64k) particionada em 8 blocos de 8 Kbytes

Prof. Adilson Gonzaga 22

Memória

de

Programa

Interna (8k)

Y0

0000h

1FFFh

2000h

S = 0

Y1(8k)

Y2(8k)

Y3(8k)

Y4(8k) 56k

A15 A14 A13 Saída End.

Inicial

End.

Final

0 0 0 Y0 0000h 1FFFh

0 0 1 Y1 2000h 3FFFh

0 1 0 Y2 4000h 5FFFh

0 1 1 Y3 6000h 7FFFh

1 0 0 Y4 8000h 9FFFh

1 0 1 Y5 A000h BFFFh

1 1 0 Y6 C000h DFFFh

1 1 1 Y7 E000h FFFFh

Page 23: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Ciclo de Leitura na Memória de Ciclo de Leitura na Memória de

Programa ExternaPrograma Externa

Prof. Adilson Gonzaga 23

No início do Ciclo de Máquina o

8051 pulsa o ALE para que se

possa armazenar externamente o

Duto de Endereços (A0 a A7)

Após esse tempo, o 8051 coloca

em zero o pino PSEN, para que

se possa ler a instrução no

endereço acessado (A0 a A15)

Page 24: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Exemplo_1: Mapeamento completo Exemplo_1: Mapeamento completo ––

64k bytes de Memória de Programa64k bytes de Memória de Programa

D0 a D7

Prof. Adilson Gonzaga 24

A0 a A7

A8 a A15

Page 25: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Prof. Adilson Gonzaga 25

Memória ROM de

64k Bytes

A chave em EA seleciona se a Memória

de Programa é Externa de 64k (EA=0)

ou Interna de 8k (EA=1) mais 56k de

memória externa.

Page 26: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Espaço de Endereçamento da Espaço de Endereçamento da

Memória de Programa Memória de Programa

As 64 K posições da Memória de Programa podem ser também

utilizadas tanto por componentes de memória (ROM) como por

dispositivos de Entrada de Dados.

Dispositivo nFFFFh

Os dispositivos de Interface podem ocupar

Prof. Adilson Gonzaga 26

Memória de

Programa

Dispositivo 1

Dispositivo 2

0000

Os dispositivos de Interface podem ocupar

uma ou várias posições de memória e somente

poderão ser Interfaces de Entrada, ou seja, o

programa somente conseguirá ler cada

dispositivo e NUNCA escrever.

Exemplos de Dispositivos de entrada de Dados:

Chaves, Conversor A/D, sensores, Portas de

Entrada.

Page 27: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Exemplo_2: Espaço da Memória de Exemplo_2: Espaço da Memória de

Programa Externa com 16Kbytes de ROM Programa Externa com 16Kbytes de ROM

e um conjunto de 8 chaves mecânicas.e um conjunto de 8 chaves mecânicas.A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1

0000

3FFFh

Espaço de 16 K da Memória de Programa Externa

Prof. Adilson Gonzaga 27

Enquanto A14 e A15 forem zero, o espaço acessado pelo microcontrolador

refere-se aos primeiros 16 Kbytes .

Se A15 =1 Faixa de endereços de 8000h a FFFFh (32 Kbytes)

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

8000h

FFFFh

Este espaço pode ser usado para dispositivos de entrada de dados

Page 28: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Seleção dos Endereços das Seleção dos Endereços das

ChavesChaves

Se A15 =1 Faixa de endereços de 8000h a FFFFh (32 Kbytes)

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

8000h

FFFFh

Este espaço pode ser usado para dispositivos de entrada de dados

Prof. Adilson Gonzaga 28

Lógica de seleção dos endereços das chaves:

PSENAS +=_____

15

S somente será igual a

zero no intervalo de

endereços de 8000h a

FFFFh, pois A15 =1 e

durante o pulso de

leitura, PSEN = 0

Page 29: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Chaves conectadas diretamente no Duto Chaves conectadas diretamente no Duto

de Dados (Espaço da Memória de de Dados (Espaço da Memória de

Programa)Programa)� E necessário utilizar um circuito Octal

Buffer/Line Driver – Tri-state

Ex: 74244

Prof. Adilson Gonzaga 29

As Saídas “Y” copiam as entradas “A” quando os pinos

“OE” estão em nível baixo. Caso contrário, as saídas

ficam em “tri-state” (Alta impedância).

Page 30: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Memória de Programa:

0000 a 3FFFh

(16 Kbytes)

Prof. Adilson Gonzaga 30

Chaves:

Qualquer endereço no intervalo:

8000h a FFFFh

Acessa o conjunto de 8 chavesQual instrução pode ser usada para

ler o valor das 8 chaves?

Res: MOVC A,@A+DPTR tendo carregado antes o DPTR

MOV DPTR,#8000h ou com qualquer outro valor até FFFFh

Page 31: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Ex: Programa que lê as chaves e Ex: Programa que lê as chaves e

mostra seu valor na P1 continuamentemostra seu valor na P1 continuamente

Prof. Adilson Gonzaga 31

Observe que qualquer valor no DPTR entre 8000h e FFFFh gera

sinal de leitura no circuito de “Line-Driver” das chaves.

Page 32: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Espaço de Endereçamento da Espaço de Endereçamento da

Memória de Dados ExternaMemória de Dados ExternaA Demultiplexação dos dutos realizada para a Memória de Programa

Externa é também utilizada para endereçar a Memória de Dados Externa.

Prof. Adilson Gonzaga 32

O que diferencia o espaço de endereçamento da Memória de Programa

Externa do espaço de endereçamento da Memória de Dados Externa

são as linhas de leitura (RD) e escrita (WR).

Page 33: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Mapeamento Completo da Memória Mapeamento Completo da Memória

de Dados Externa de Dados Externa -- RAM (64K)RAM (64K)

O pino EA não tem

Prof. Adilson Gonzaga 33

O pino EA não tem

nenhum efeito sobre a

Memória Externa de

Dados

E possível escrever ou ler

em qualquer posição, de

0000 a FFFFh, usando as

instruções MOVX

Page 34: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Ciclo de Leitura na Memória de Ciclo de Leitura na Memória de

Dados Externa ( MOVX A,@DPTR )Dados Externa ( MOVX A,@DPTR )

Prof. Adilson Gonzaga 34

No início do Ciclo de Máquina de

uma instrução MOVX A,@DPTR

o 8051 pulsa o ALE para que se

possa armazenar externamente o

Duto de Endereços (A0 a A7)

O DPL é enviado

para a Porta P0 e o

DPH para a Porta

P2. O pino RD ativa

a leitura

O dado acessado no

endereço (DPH DPL)

é colocado no Duto

de Dados (Porta P0).

Page 35: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Ciclo de Leitura na Memória de Ciclo de Leitura na Memória de

Dados Externa ( MOVX A,@Ri)Dados Externa ( MOVX A,@Ri)

Prof. Adilson Gonzaga 35

No início do Ciclo de Máquina de

uma instrução MOVX A,@Ri

o 8051 pulsa o ALE para que se

possa armazenar externamente o

Duto de Endereços (A0 a A7)

O Ri é enviado para

a Porta P0. O pino

RD ativa a leitura

O dado acessado no

endereço ( Ri) é

colocado no Duto de

Dados (Porta P0).

Page 36: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Ciclo de Escrita na Memória de Ciclo de Escrita na Memória de

Dados Externa (MOVX @DPTR,A)Dados Externa (MOVX @DPTR,A)

Prof. Adilson Gonzaga 36

No início do Ciclo de Máquina de

uma instrução MOVX @DPTR,A

o 8051 pulsa o ALE para que se

possa armazenar externamente o

Duto de Endereços (A0 a A7)

O DPL é enviado

para a Porta P0 e o

DPH para a Porta

P2. O pino WR

ativa a escrita

O dado a ser

armazenado no

endereço (DPH DPL)

é colocado no Duto

de Dados (Porta P0).

Page 37: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Ciclo de Escrita na Memória de Ciclo de Escrita na Memória de

Dados Externa (MOVX @Ri,A)Dados Externa (MOVX @Ri,A)

Prof. Adilson Gonzaga 37

No início do Ciclo de Máquina de

uma instrução MOVX @Ri,A

o 8051 pulsa o ALE para que se

possa armazenar externamente o

Duto de Endereços (A0 a A7)

O Ri é enviado para

a Porta P0. O pino

WR ativa a escrita

O dado a ser

armazenado no

endereço ( Ri) é

colocado no Duto de

Dados (Porta P0).

Page 38: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Observações:Observações:

� Tanto na Leitura como na Escrita usando as

instruções:

MOVX A,@Ri

MOVX @Ri,A

a Porta P2 não é utilizada como duto, logo, pode ser

utilizada como porta comum.utilizada como porta comum.

Prof. Adilson Gonzaga 38

O acesso à Memória de Dados Externa Usando estas

instruções, atinge apenas do endereço 0000 a 00FFh ( as

primeiras 256 posições).

Page 39: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Mapa de Memória de Dados Mapa de Memória de Dados

ExternaExterna

FFFFh

Y4(8k)

Y5(8k)

Y6(8k)

Y7(8k)

64k

Memória de Dados (64k) particionada em 8 blocos de 8 Kbytes

Prof. Adilson Gonzaga 39

0000h

Y1(8k)

Y2(8k)

Y3(8k)

Y4(8k) 64k

A15 A14 A13 Saída End.

Inicial

End.

Final

0 0 0 Y0 0000h 1FFFh

0 0 1 Y1 2000h 3FFFh

0 1 0 Y2 4000h 5FFFh

0 1 1 Y3 6000h 7FFFh

1 0 0 Y4 8000h 9FFFh

1 0 1 Y5 A000h BFFFh

1 1 0 Y6 C000h DFFFh

1 1 1 Y7 E000h FFFFh

Y0(8k)

As linhas RD e WR garantem que as

saídas (Y0 a Y7) fiquem ativas

somente durante uma leitura ou

escrita no endereço selecionado.

Page 40: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Espaço de Endereçamento da Memória de Espaço de Endereçamento da Memória de

Dados Externa Dados Externa As 64 K posições da Memória de Dados Externa podem ser

também utilizadas tanto por componentes de memória (RAM) como

por dispositivos de Entrada/Saída de Dados.

Dispositivo nFFFFh

Os dispositivos de Interface podem ocupar

uma ou várias posições de memória e poderão

ser Interfaces de Entrada ou Saída.

Prof. Adilson Gonzaga 40

Memória de

Dados

Dispositivo 1

Dispositivo 2

0000

Se o dispositivo for uma Entrada, o pino de RD será

ativado e a instrução a ser usada é do tipo

MOVX A,@DPTR

Se o dispositivo for uma Saída, o pino de WR será

ativado e a instrução a ser usada é do tipo

MOVX @DPTR,A

Page 41: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Entrada e Saída mapeada em Memória Entrada e Saída mapeada em Memória

(Espaço da Memória de Dados Externa)(Espaço da Memória de Dados Externa)

� Exemplos de Dispositivos de Entrada:

◦ Conversor A/D

◦ Chaves

◦ Sensores◦ Sensores

� Exemplos de Dispositivos de Saída:

◦ Conversor D/A

◦ Displays

◦ Leds

◦ Atuadores (Relês, motores, etc...)

Prof. Adilson Gonzaga 41

Page 42: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Exemplo_3: Espaço da RAM Externa com Exemplo_3: Espaço da RAM Externa com

32 Kbytes de RAM + 8 Chaves e 8 32 Kbytes de RAM + 8 Chaves e 8 LedsLeds..

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Mapeamento:

0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

0000

7FFFh

Espaço de 32 Kbytes de RAMA15=0

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8000h

Prof. Adilson Gonzaga 42

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 FFFFh

Espaço de 32 Kbytes (Mapeados como I/O)A15=1

A15 RD WR RAM Entrada Saída

0 x x Ativa Desativada Desativada

1 0 1 Desativada Ativa Desativada

1 1 0 Desativada Desativada Ativa

Page 43: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Circuitos de interface para a Circuitos de interface para a

Entrada e para a SaídaEntrada e para a Saída

Prof. Adilson Gonzaga 43

Line-driver para a

Entrada: (74244)

O circuito é

ativado com nível

lógico zero

Latch para a

Saída: (74373)

O circuito é

ativado com

nível nível

lógico um.

Page 44: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Exemplo_3: Espaço da RAM Externa com Exemplo_3: Espaço da RAM Externa com

32 Kbytes de RAM + 8 Chaves e 8 32 Kbytes de RAM + 8 Chaves e 8 LedsLeds..

_________

15ARDSi +=

A15 Si

0 0 1

0 1 0

1 0 1

1 1 1

_____

RD

Prof. Adilson Gonzaga 44

15ARWSo ⋅=

A15 So

0 0 0

0 1 1

1 0 0

1 1 0

____

WR

Page 45: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Programa que lê as chaves, armazena o byte Programa que lê as chaves, armazena o byte

equivalente na RAM Externa e acende ou apaga os equivalente na RAM Externa e acende ou apaga os

LedsLeds correspondentescorrespondentes

Prof. Adilson Gonzaga 45

LED é aceso com nível lógico UM

Chave Fechada = Nível lógico ZERO

Page 46: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Projeto: Projeto: (Entregar até o dia da P2)(Entregar até o dia da P2)

Projetar um Circuito Microcontrolado baseado no AT89S52 e com os

seguintes requisitos mínimos:

a) Memória de Programa externa = mínimo de 8K Bytes

b) Memória de Dados externa = mínimo de 8k Bytes

c) Teclado Matricial (hexadecimal) de 16 teclas. Cada tecla apertada gera

sinal na INT1

Prof. Adilson Gonzaga 46

sinal na INT1

d) Display LCD de 16 caracteres x 2 linhas

e) Quatro Motores de Passo com acionamentos independentes

f) Um sensor óptico conectado na Interrupção externa INT0

g) Um “encoder óptico” conectado na entrada T0

h) Um Conversor A/D de 8 Bits

i) Um Conversor D/A de 8 Bits

j) Interface Serial RS232

k) 8 Leds de sinalização

Fornecer o Esquema eletrônico (Hardware), o Mapeamento de

memória e Periféricos e o “data sheet” (pinagem e Tabela Verdade)

de cada circuito integrado utilizado.

Page 47: Exemplo de Projeto com MicrocontroladorMicrocontrolador ...iris.sel.eesc.usp.br/sel614/Aula7.pdf · dispositivosde Entrada de Dados. Dispositivo n FFFFh Osdispositivosde Interface

Escrever um programa em Assembly, para o projeto desenvolvido que:

a) Rode na memória de programa externa.

b) Leia continuamente o conversor A/D, envie o valor lido para o conversor D/A e

armazene na RAM externa cada valor lido em intervalos de 1 segundo. Quando

a RAM externa estiver cheia, o programa deve continuar a armazenando a partir

da primeira posição.

c) Na primeira linha do display de LCD deve aparecer o valor em hexadecimal de

cada byte lido do A/D sempre na mesma posição. A mesma informação deve ser

enviada para um monitor RS232 a uma taxa de 9600,N,8,1.

d) Se o valor do conversor A/D estiver entre 00 e 1Fh, acender somente o led

menos significativo, entre 20h e 3Fh acender somente o segundo led, entre 40h

Prof. Adilson Gonzaga 47

menos significativo, entre 20h e 3Fh acender somente o segundo led, entre 40h

e 5Fh acender o próximo e assim por diante até entre E0h e FFh que deve

acender apenas o led mais significativo.

e) Se uma descida de borda for detectada pelo sensor óptico, acionar os quatro

motores de passo na velocidade de 100 Hz, sentido horário, contar o número de

pulsos do encoder óptico durante 10 segundos e enviar o valor hexadecimal

para a segunda linha do display de LCD.

f) O código 3F4Dh digitado no teclado dispara todo o processo e o código E123h

termina o programa e envia a mensagem “Programa suspenso” para o display

de LCD e para o monitor de vídeo na mesma taxa do item c.