8051 - v2014.ppt [Modo de Compatibilidade] -...

Post on 08-Nov-2018

220 views 0 download

Transcript of 8051 - v2014.ppt [Modo de Compatibilidade] -...

MICROCONTROLADOR8051

Notas de Aula (v.2014)

Prof. André R. Hirakawa

Prof. Paulo S. Cugnasca

Prof. Carlos E. Cugnasca

ARQUITETURA 8051

APLICAÇÕES MAIS FREQUENTES

SISTEMAS COMPACTOS: � MEMÓRIAS ROM / RAM INTERNAS� E/S INTERNAS:

� 1 CANAL SERIAL (CONSOME P3.0 E P3.1)� 2 INTERRUPÇÕES EXTERNAS (CONSOMEM P3.2 E P3.3)� 2 TIMERS/CONTADORES (PODEM CONSUMIR P3.4 E P3.5)� 26 LINHAS E/S (4x8 – 2 – 2 – 2):

� P0 (2 CARGAS TTL), � P1, P2, P3 (1 CARGA TTL)

� MODOS DE BAIXO CONSUMO

APLICAÇÕES DE MÉDIO PORTE

EXPANSÃO DE MEMÓRIA:� ROM: 0000h a FFFFh →→→→ até 64k bytes

� 80C31: só ROM EXTERNA� 80C51:� Caso EA/ = 1: 4kbytes INT. e até 60k bytes EXT.� Caso EA/ = 0: só ROM EXTERNA

� RAM: 0000h a FFFFh →→→→ até 64k bytes, além da RAM INTERNA

� E/S INTERNAS: parte consumida pelas expansões (sobra P1)

� EXPANSÃO DE MEMÓRIA: � P0 →→→→ AD0-7 � P2 →→→→ A8-15 � P3.6 →→→→ WR/ , P3.7 →→→→ RD/

� Expansão de E/S: mapeada no espaço de memória RAM.

� EX.: Display, Portas Paralelas, Conversor A/D

APLICAÇÕES DE MÉDIO PORTE

RAM INTERNA

� 128 bytes� Registros Especiais

FFh

80h

255

128SFR

Registros de Funções Especiais

128 bytes

7Fh

00h

127

0

RAM Interna de Uso Geral &

Pilha

128 bytes

RAM INTERNA E PILHA7Fh

30hBytes Endereçáveis

2Fh

20hBits e Bytes Endereçáveis

1Fh

18h

R7...R0

Banco 3 Seleção do Banco de Registradores: por meio de 2 bits do PSW

Ex.: Programa usa Banco 0Interrupções Usam o Banco 1

Observação: R0, R1 podem ser usados com Registradores de Índice

17h

10h

R7...R0

Banco 2

0Fh

08h

R7...R0

Banco 1

07h

00h

R7...R0

Banco 0

REGISTROS ESPECIAIS - SFRF8 FFF0 B F7E8 EFE0 ACC E7D8 PSW DFD0 D7C8 CFC0 C7B8 IP BFB0 P3 B7A8 IE AFA0 P2 A798 SCON SBUF 9F90 P1 9788 TCON TMOD TL0 TL1 TH0 TH1 8F80 P0 SP DPL DPH PCON 87

↓ ↓ ↓ ↓ bit e byte endereçáveis

REGISTRADOR PSW

PSW: 7 6 5 4 3 2 1 0

CY AC F0 RS1 RS0 OV P

CarryCarry

Auxiliar

UserDefini-

tion

00: Banco 001: Banco 110: Banco 211: Banco 3

OverflowExpan-

sãoFutura

Pari-dade

FORMAS DE ACESSO À MEMÓRIA

� ROM: só parar programas e leitura de constantes

� Acesso à ROM Externa: gera sinal PSEN/ (~RD/ para ROM)

� Forma de se ler constantes da ROM: usar o Registrador DPTR

� EX.: única maneira de se ler constantes da ROM Externa

MOV DPTR, #dado16 (DPTR) ←←←← dado16

MOVC A, @A + DPTR (A) ←←←← conteúdo end. x

end. x

# - Endereçamento Imediato @ - Endereçamento Indireto

FORMAS DE ACESSO À MEMÓRIA

� RAM Interna e RAM Externa (gera RD/ e WR/):� Endereços iguais, mas acessadas com instruções diferentes

� EX.: Endereço 20h Interno – modo de Endereçamento Direto

MOV 20h, A (20h) ←←←← (A)

� EX.: Endereço 20h Externo – modo de Endereçamento Indexadoo Usando Ri (de 8 bits, mais rápido, para i=0,1)

MOV R0, #20h (R0) ←←←← 20h

Escrita MOVX @R0, A (20h) ←←←← (A) ... ... ... ...

Leitura MOVX A, @R0 (A) ←←←← (20h)

FORMAS DE ACESSO À MEMÓRIA

� Qualquer posição de memória: Usar DPTR (16 bits)

MOV DPTR, #dado16 (DPTR) ←←←← dado16

Escrita MOVX @DPTR, A ((DPTR)) ←←←← (A)

... ... ... ...

Leitura MOVX A, @DPTR (A) ←←←← ((DPTR))

... ... ... ...

PILHA

� Sempre na memória RAM Interna� Ponteiro da Pilha: SP (81h)� PUSH / POP: 1 byte ; Endereço de Retorno: 2 bytes

20H2FH

30H31H5FH

Base da Pilhap.ex.: 5FH

Inserção: SP + 1Remoção: SP – 1

60H

. . .

7FH

MODOS ESPECIAIS DE FUNCIONAMENTO

� Apenas para as versões CHMOS � Ex.: 80C51BH, 80C31BH, 87C51, 80C52BH, ...

MODO “IDLE”

� A UCP PÁRA� RAM E DEMAIS COMPONENTES CONTINUAM ATIVOS →→→→

CONSUMO CAI PARA 15% DO ORIGINAL� PORTAS E/S MANTÊM O ÚLTIMO ESTADO� ALE E PSEN/ = 1

� FORMA DE ENTRADA DESSE MODO:� BIT 0 PCON ←←←← 1� FORMAS DE SAÍDA DESSE MODO:

� a. POR INTERRUPÇÃO HABILITADA� 1. COLOCAR 0 NO BIT 0 DE PCON (TIRA DE IDLE)� 2. DESVIA P/ TRATAMENTO INTERRUPÇÃO� 3. RETI LEVA PARA A INSTRUÇÃO SEGUINTE À QUE COLOCOU A UCP EM

IDLE� b. RESET:

� IDEM 1 E 3: NÃO VAI PARA A POSIÇÃO 0000h !

MODO “POWER DOWN”

� TODAS AS ATIVIDADES DA UCP SÃO SUSPENSAS� A RAM INTERNA MANTÉM OS DADOS� ALE, PSEN/ VÃO PARA “0”� PORTAS E/S: MANTÉM ÚLTIMO ESTADO (COLOCAR “0” ,

SE POSSÍVEL, POIS REDUZ O CONSUMO)

� CONSUMO:� 10mA, E Vcc PODE SER REDUZIDO A ~ 2.0 V

� FORMA DE ENTRADA DESSE MODO:� BIT 1 PCON ←←←← 1

� FORMA DE SAÍDA DESSE MODO:� RESET:� RECOMEÇO DO PROGRAMA EM 0000h

80C51 – ENTRADAS E SAÍDAS

� 4 PORTAS DE ENTRADA E SAÍDA, ENDEREÇADAS POR BYTE OU POR BIT, BIDIRECIONAIS.

� ÚTEIS PARA CONTROLAR PERIFÉRICOS, IMPLEMENTAÇÃO DE “HANDSHAKING”, FUNÇÕES LÓGICAS, PORTAS PARALELAS, ETC.

P0 - END. 80h (P0.0 – 80h, P0.1 – 81h, ... , P0.7 – 87h):

• NÃO DISPONÍVEL EM CASO DE EXPANSÃO EXTERNA DE MEMÓRIA (AD0-AD7)

• SUPORTA 8 CARGAS TTL LS. • NÃO POSSUI RESISTORES DE “PULL-UP” INTERNOS.

CONFIGURAÇÃO DAS PORTAS

P1 - END. 90h (P1.0 – 90h, P1.1 – 91h, ... , P1.7 – 97h):

� SUPORTA 4 CARGAS TTL LS. � POSSUI RESISTORES DE “PULL-UP” INTERNOS.

80C51 – ENTRADAS E SAÍDAS

P2 - END. A0h (P2.0 - A0h, P2.1 - A1h, ... , P2.7 - A7h):

• NÃO DISPONÍVEL EM CASO DE EXPANSÃO EXTERNA DE MEMÓRIA (A8-A15).

• SUPORTA 4 CARGAS TTL LS. • POSSUI RESISTORES DE “PULL-UP” INTERNOS.

80C51 – ENTRADAS E SAÍDAS

P3 - END. B0h (P3.0 - B0h, P3.1 – B1h ... , P3.7 – B7h):

� ALGUNS BITS NÃO DISPONÍVEIS NO CASO DE USO DOS RECURSOS PORTA SERIAL E TIMERS.

� SUPORTA 4 CARGAS TTL LS. � POSSUI RESISTORES DE “PULL-UP” INTERNOS.

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

SINAL RD/ WR/ T1 T0 INT1/ INT0/ TXD RXD

END. B7H B6H B5H B4H B3H B2H B1H B0H

� ALGUMAS INSTRUÇÕES LEEM O PINO DA PORTA:MOV C,P1.5 ; Flag Carry ←←←← P1.5

� O NÍVEL LÓGICO PODE ESTAR DEGENERADO (CARGAS MAIS ALTAS, P.EX., TRANSISTORES). NESSE CASO, PODE-SE LER A SAÍDA DO LATCH:

� INSTRUÇÕES QUE LEEM E MODIFICAM (POR EX., COMPLEMENTO) LEEM A SAÍDA DO LATCH:

CPL P1.5 ; Complementa P1.5

� 1 CANAL SERIAL� 2 TIMERS/CONTADORES� EXPANSÕES: MAPEADAS NA MEMÓRIA RAM.

� EXEMPLOS: DISPLAYS, PORTAS DE 8 BITS ADICIONAIS, CONVERSORES AD E DA.

80C51 – ENTRADAS E SAÍDAS

8051 – INTERRUPÇÕES

� INT0/ (MAIS PRIORITÁRIA) E INT1/: BITS DA PORTA P3� INTERRUPÇÕES VETORADAS, COM VETOR FIXO NA

MEMÓRIA DE PROGRAMA� HABILITAÇÃO E DESABILITAÇÃO INDIVIDUAL: BITS DO IE� INTERRUPÇÕES POR SOFTWARE: NÃO POSSUI (TRAP OU

RST), MAS PODEM SER SIMULADAS (ESCRITA NO REGISTRADOR DE INSTRUÇÕES). USO: POR EXEMPLO, CHAMADAS AO SISTEMA OPERACIONAL.

� PRIORIDADES – A INTERRUPÇÃO DE PRIORIDADE MAIOR INTERROMPE A INTERRUPÇÃO DE PRIORIDADE MENOR:

� INT0/, TIMER 0, INT1/, TIMER 1, CANAL SERIAL� MASCARAMENTO PERMITIDO – REGISTRADOR IE� PERMITE A CRIAÇÃO DE DOIS GRUPOS DE PRIORIDADE

(“NESTING”):� INTRi: SENSÍVEL À BORDA DE DESCIDA OU A NÍVEL ("0"),

CONFIGURÁVEL

VETOR DE INTERRUPÇÕES

0000h RESET

...

0003h INT0/

...

000Bh TIMER 0

...

0013h INT1/

...

001Bh TIMER 1

...

0023h CANAL SERIAL

...

ESTRUTURA DAS INTERRUPÇÕES

REGISTRADOR TCON (88h)BIT TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0

SINAL TIMERS 0 E 1 IE1 IT1 IE0 IT0

END. 8Fh 8Eh 8Dh 8Ch 8Bh 8Ah 89h 88h

ITi = “1”: INTi\ ACEITA NA TRANSIÇÃO DE “1” PARA “0”, DEVENDO PERMANECER EM 0 POR PELO MENOS 12 PERÍODOS DE CLOCK

ITi = “0”: INTi\ ACEITA SE NA AMOSTRAGEM ESTIVER EM “0” (DEVE VOLTAR PARA “1” ANTES DO RETORNO DA ROTINA DE TRATAMENTO

IEi: O HARDWARE INTERNO O FAZ = “1” QUANDO DETECTADA UMA TRANSIÇÃO DE “1” PARA “0” EM INTi\, E = “0” QUANDO TRATA INTi\

REGISTRADOR IE (A8h)

BIT IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0

SINAL EA ES ET1 EX1 ET0 EX0

END. AFh AEh ADh ACh ABh AAh A9h A8h

REGISTRADOR IP (B8h)

BIT IP.7 IP.6 IP.5 IP.4 IP.3 IP.2 IP.1 IP.0

SINAL PS PT1 PX1 PT0 PX0

END. BFh BEh BDh BCh BBh BAh B9h B8h

TIMER/COUNTER� 2 Timer/Counter de 16 bits

� Várias formas de entrada

� Geração interrupção

� Timer 1 utilizado para gerar o Baud rate da UART