36
Microcontrolador 8051 Microcontrolador 8051 Microcontrolador Microcontrolador 8051 8051 UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

Microcontrolador 8051 - UTFPR

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

MicrocontroladorMicrocontrolador80518051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

Page 2: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Inicialmente fabricado pela INTEL, atualmente fabricado por várias empresas;

● Possui uma grande variedade de dispositivos, com diversas características, porém compatíveis em software;

● São a base para diversos dispositivos, como tocadores MP3, interfaces USB, Ethernet, etc.

● Possui uma arquitetura simples, sendo de fácil aprendizado;

Page 3: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

Figura 1. Diagrama em blocos do microcontrolador 89S52. Fonte ATMEL2008.

Page 4: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

Figura 2. Diagrama em blocos do microcontrolador 8051 genárico. Fonte VIEIRA2002.

Page 5: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

Figura 3. Pinagem do microcontrolador 89S52. Fonte ATMEL2008.

Page 6: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Descrição dos pinos:Pino Nome E/S Função

32 a 39 P0.0 a P0.7 E/S O Port 0 é uma interface de E/S bidirecional com 8 bits individualmente endereçáveis em dreno aberto. Terminais que estejam no estado lógico 1 podem ser utilizados como entradas de alta impedância. O Port 0 também atua como barramento de dados e gera de maneira multiplexada a parte menos significativa dos endereços durante acessos às memórias externas de programa ou dados.

1 a 8 P1.0 a P1.7 E/S O Port 1 é uma interface de E/S bidirecional com 8 bits individualmente endereçáveis e resistores de pull-up internos. Terminais que estejam no estado lógico 1 podem ser utilizados como entradas. No 89S52, alguns pinos deste port possuem funções alternativas.

Page 7: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Descrição dos pinos:Pino Nome E/S Função

21 a 28 P2.0 a P2.7 E/S O Port 2 é uma interface de E/S bidirecional com 8 bits individualmente endereçáveis e resistores de pull-up internos. Terminais que estejam no estado lógico 1 podem ser utilizados como entradas. O Port 2 também gera a parte mais significativa dos endereços durante acessos às memórias externas de programa ou dados.

10 a 17 P3.0 a P3.7 E/S O Port 3 é uma interface de E/S bidirecional com 8 bits individualmente endereçáveis e resistores de pull-up internos. Terminais que estejam no estado lógico 1 podem ser utilizados como entradas. O Port 3 também funções alternativas em todos os pinos.

Page 8: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Descrição dos pinos:Pino Nome E/S Função

40 VCC Potencial de alimentação (+5v)

20 VSS Potencial de referência (terra).

9 RST E Quando aplicado nível lógico 1 a este terminal durante 2 ciclos de máquina (com o oscilador operando) ocorre o reset do microcontrolador. Um resistor interno conectado a VSS permite o power-on-reset com apenas um capacitor externo conectado a VCC.

19 XTAL1 Entrada do amplificador inversor do oscilador e entrada do gerador de clock interno.

18 XTAL2 Saída do amplificador inversor do oscilador.

Page 9: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Descrição dos pinos:Pino Nome E/S Função

29 PSEN S PROGRAM STORE ENABLE: Habilita o acesso à memória de programa externa durante a busca de instruções. Permanece em nível lógico 1 durante o acesso da memória de programa interna.

30 ALE S ADDRESS LATCH ENABLE: Fornece o sinal para armazenamento da parte menos significativa do endereço durante acessos às memórias externas de programa ou dados.

31 EA E EXTERNAL ACCESS: Quando em nível lógico 1, as instruções da memória de programa interna são executadas. Quando em nível lógico 0, todas as instruções são buscadas na memória de programa externa. No caso do 8031 este terminal deve sempre estar em nível lógico 0.

Page 10: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Funções alternativas do Port 3:Pino Nome Função

P3.0 RXD/data

Receptor da interface serial assíncrona ou entrada e saída de dados da interface serial síncrona.

P3.1 TXD/clock

Transmissor da interface serial assíncrona ou saída de clock da interface serial síncrona.

P3.2 INT0 Entrada de interrupção externa 0 ou sinal de controle para o contador 0.

P3.3 INT1 Entrada de interrupção externa 1 ou sinal de controle para o contador 1.

P3.4 T0 Entrada externa para o contador 0.

P3.5 T1 Entrada externa para o contador 1.

P3.6 WR Sinal de escrita na memória externa de dados.

P3.7 RD Sinal de leitura na memória externa de dados.

Page 11: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Funções alternativas do Port 1:Pino Nome Função

P1.0 T2 Entrada externa para o contador 2.

P1.1 T2EX Sinal de trigger para captura/recarga do contador 2, controle de direção.

P1.5 MISO Interface SPI (usada para programação)

P1.6 MOSI Interface SPI (usada para programação)

P1.7 SCK Interface SPI (usada para programação)

Page 12: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Organização da Memória:

– O 8051 possui 128 bytes de memória RAM interna, mais 128 bytes de registradores mapeados em memória (RAM);

– Possui 0, 4, 8, … kbytes de memória ROM interna. Esta memória pode ser ROM, EPROM, FLASH;

– Pode endereçar até 64 kbytes de memória de programa externa (normalmente algum tipo de ROM);

– Pode endereçar até 64 kbytes de memória de dados externa (normalmente algum tipo de RAM);

Page 13: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Memória de Programa:

– Após o reset, o 8051 busca a primeira instrução no endereço 0000h;

– Este endereço poderá ser da memória de programa interna ou da memória de programa externa;

● Se EA for igual a 1, o 8051 busca a instrução na memória interna;

● Se EA for igual a 0, o 8051 busca a instrução na memória externa;

Page 14: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Mapa de Memória (exemplo para dispositivo com 4 kbytes de memória ROM interna):

ROMINTERNA

0000h

0FFFh1000h

ROMEXTERNA

FFFFh

0000h

ROMEXTERNA

FFFFh

PSEN = 0

PSEN = 0

PSEN = 1

EA = 1 EA =0

Page 15: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Memória de Dados:

– O 8051 possui 256 bytes de memória interna:● Os primeiros 128 bytes (endereços de 0 a 127)são

memória de uso geral, sendo usados inclusive para a pilha;

● Os 128 bytes superiores (endereços de 128 a 255) são os registradores internos do 8051;

– O 8051 pode acessar até 64 kbytes de memória de dados externa, mas esta memória não pode ser usada como pilha;

Page 16: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Memória de Dados:

– Os 128 bytes de uso geral são divididos em três regiões:

● Os endereços de 0 a 31 (1Fh) formam 4 bancos de oito registradores;

● Os endereços de 32 (20h) a 47 (2Fh) formam uma área de bits que podem ser acessados individualmente, através de instruções específicas;

● Os endereços de 48 (30h) a 127 (7Fh) formam a memória de dados propriamente dita. Esta região deverá incluir a pilha de dados;

Page 17: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Bancos de Registradores:

– O banco de registradores ativo é selecionado pelos bits RS1 e RS0 do registrador PSW;

– Estes registradores podem ser usados para dados (variáveis), ponteiros (indicam um endereço de memória) ou índice;

– Possem instruções específicas, reduzindo o tamanho do código:

● Ex: mov @R0, A; copia o conteúdo do registrador ;no endereço de memória interna indicado

; pelo registrador R0

Page 18: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Bancos de Registradores:

R0

R1

R2

R3

R4

R5

R6

R7

Banco 0

Banco 1

Banco 3

Banco 2 MemóriaRAM

Intrerna

RS1=0RS0=0

RS1=0RS0=1

RS1=1RS0=0

RS1=1RS0=1

Page 19: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Bancos de Registradores - Banco 0 (RS1=0 e RS0=0):

– Estão localizados fisicamente nos endereços de 0h a 7h;

R0

R1

R2

R3

R4

R5

R6

R7

Banco 0

Banco 1

Banco 3

Banco 2

00h

01h

02h

03h

04h

05h

06h

07h

Page 20: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Bancos de Registradores - Banco 1 (RS1=0 e RS0=1):

– Estão localizados fisicamente nos endereços de 8h a Fh;

R0

R1

R2

R3

R4

R5

R6

R7

Banco 0

Banco 1

Banco 3

Banco 2

08h

09h

0Ah

0Bh

0Ch

0Dh

0Eh

0Fh

Page 21: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Bancos de Registradores - Banco 2 (RS1=1 e RS0=0):

– Estão localizados fisicamente nos endereços de 10h a 17h;

R0

R1

R2

R3

R4

R5

R6

R7

Banco 0

Banco 1

Banco 3

Banco 2

10h

11h

12h

13h

14h

15h

16h

17h

Page 22: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Bancos de Registradores - Banco 3 (RS1=1 e RS0=1):

– Estão localizados fisicamente nos endereços de 18h a 1Fh;

R0

R1

R2

R3

R4

R5

R6

R7

Banco 0

Banco 1

Banco 3

Banco 2

18h

19h

1Ah

1Bh

1Ch

1Dh

1Eh

1Fh

Page 23: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Registradores de Função Especial:

– São responsáveis pelo controle e execução das instruções de programa;

– Também são responsáveis pela configuração dos periféricos internos do 8051;

– Estão situados na parte alta da memória RAM interna, nos endereços de 128 (80h) a 255 (FFh);

Page 24: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Registradores de Função Especial:

– Program Counter (PC): Registrador de 16 bits, possui o endereço da memória de programa que possui a próxima instrução a ser executada pelo 8051;

– Program Status Word (PSW): Registrador de 8 bits, contém os flags indicando alguma ocorrência na última instrução aritmética executada e os bits de seleção do banco de registradores ativo;

– Stack Pointer (SP): Registrador de 8 bits, contém o endereço do topo da pilha;

Page 25: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Registradores de Função Especial:

– Stack Pointer (SP): Registrador de 8 bits, contém o endereço do topo da pilha;

– Acumulador (A ou ACC): Registrador de 8 bits, é o registrador usado nas operações lógicas e aritméticas;

– Registrador B (B): Registrador de 8 bits, usado nas operações de multiplicação e divisão. Pode ser usado como um registrador de uso geral;

– Data Pointer (DPTR): Registrador de 16 bits formado pela junção de dois registradores de 8 bits, DPH e DPL. Este registrador é usado para acessar a memória externa;

Page 26: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Registradores de Função Especial:

– Ports (P0, P1, P2 e P3): Registradores de 8 bits que contém o valor presente nos pinos de entrada e saída do 8051 quando estes pinos estão sendo usados como pinos de entrada e saída;

– Interrupt Enable(IE): Registrador de 8 bits, usado para habilitar ou desabilitar as interrupções do 8051;

– Interrupt Priority (IP): Registrador de 8 bits que determina o nível de prioridade (alto ou baixo) das interrupções do 8051;

Page 27: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Registradores de Função Especial:

– Power Control (PCON): Registradores de 8 bits, controla os modos de economia de energia do 8051;

– Timer Control (TCON): Registrador de 8 bits, usado para configurar e controlar os temporizadores/ contadores TC0 e TC1;

– Timer Mode (TMODE): Registrador de 8 bits, define o modo de operação dos temporizadores/ contadores TC0 e TC1;

– Timers (TH0, TL0, TH1 e TL1): Registradores de 8 bits que contém o valor da contagem dos temporizadores/ contadores 0 e 1;

Page 28: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Registradores de Função Especial:

– Serial Control (SCON): Registradores de 8 bits, controla o modo de operação da interface serial;

– Serial Buffer (SBUF): Registrador duplo de 8 bits, contém o valor sendo transmitido e recebido pela interface serial. São dois registradores acessados pelo mesmo endereço;

Page 29: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Acesso a memória externa:

– O 8051 pode acessar até 64k bytes de memória ROM e até 64k bytes de memória RAM externa;

– Para isso utiliza os ports 0, 2 e 3;

– Neste caso, estes ports não podem ser usados como interface de entrada e saída;

– Pode-se implementar interfaces de entrada e saída mapeadas em memória;

– O port 0 atua como barramento de dados e barramento de endereços (parte baixa) multiplexado.

Page 30: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Acesso a memória externa:

Figura 4. Pinagem do microcontrolador 89S52. (Fonte própria).

Page 31: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Ciclo de Leitura da Memória de Programa Externa:

ALE

PSEN

PORT 0

PORT 2

A0:A7

A8:A15

Instrução

A8:A15

A0:A7 Instrução

ArmazenaA0:A7 no latch

ArmazenaA0:A7 no latch

Page 32: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Ciclo de Leitura da Memória de Dados Externa:

ALE

PSEN

PORT 0

PORT 2

A0:A7 (DPL)

A8:A15 (DPH)

DADO

A8:A15 (DPH)

A0:A7 (PCL)

RD

ArmazenaA0:A7 no latch

Lê o DadoDa memória

Page 33: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● Ciclo de Leitura da Memória de Dados Externa:

ALE

PSEN

PORT 0

PORT 2

A0:A7 (DPL)

A8:A15 (DPH)

DADO

A8:A15 (DPH)

A0:A7 (PCL)

WR

ArmazenaA0:A7 no latch

Escreve o Dado

na memória

Page 34: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● CLOCK

– O 8051 possui um gerador de clock interno;

– Basta ligar um cristal nos pinos XTAL1 e XTAL2 e dois capacitores entre estes terminais e o GND;

– Pode-se usar uma fonte de clock externa. Neste caso, o pino XTAL1 é ligado ao GND e o pino XTAL2 ao gerador de clock;

– A frequência de clock é dividida internamente por 12, assim, um ciclo de máquina equivale a 12 ciclos de clock;

Page 35: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● RESET

– O reset é ativado quando o pino de reset (pino 9) fica em nível alto por mais de dois ciclos de máquina (24 ciclos de clock);

– O reset zera os registradores A, B, PSW, DPTR, PC e os registradores dos temporizadores/contadores;

– O registrador SP (stack pointer) é carregado com o valor 07h;

– Os ports são inicializados com o valor FFh, para ficarem configurados como entrada;

– O registrador SCON é zerado e o registrador SBUF possui valor indeterminado;

Page 36: Microcontrolador 8051 - UTFPR

Microcontrolador 8051Microcontrolador 8051

UTFPR / DAELN Microcontroladores 1 Prof. Gabriel KovalhukUTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

● RESET

– Os registradores são carregados com o valor XXX00000b;

– A memória RAM interna não é alterada;

– Um resistor interno ligado a GND permite que se faça um sistema POR (reset ao ligar) com apenas um capacitor de 10uF ligado entre o pino 9 (pino de reset) e o Vcc;