docslide.com.br arquitetura do microcontrolador 8051

17
Microcontrolador 8051 E.B. Página - 1 Microcontrolador 8051 1 - Introdução. Os microprocessadores são circuitos integrados extremamente flexíveis devido às suas caracterís- ticas de programabilidade. A programação do componente torna-o versátil para implementação de vários tipos de aplicações ou tarefas. No desenvolvimento desses tipos de componentes, foi construído o micro- computador em uma única pastilha. Tal componente, contém o microprocessador, memórias somente de leitura (ROM), memórias de acesso aleatório (RAM) e circuitos de entrada e saída, para comunicação com o mundo exterior. Os microcontroladores são os componentes que, além do microcomputador, incorporam circuitos periféricos necessários em aplicações industriais, ou de controle, por exemplo, contendo circuitos de en- trada/saída serial, temporizadores, periféricos paralelos, conversores AD, conversores DA, etc. Tais com- ponentes são indicados para aplicações que requerem uma configuração minimizada, de baixo custo e de espaço físico reduzido. Obviamente que a solução de única pastilha ("single chip") é preferida pelo custo, bem como por razões de confiabilidade. Assim vários tipos de microcontroladores foram desenvolvidos para aplicações específicas tais como: aplicações militares, controle automobilístico, instrumentações médicas, aplicações de controle em tempo real, controle de eletrodomésticos, etc. Microcontroladores de uso geral foram construídos tendo a possibilidade de operar no modo mi- crocomputador, onde todo recurso de hardware utilizado estará dentro do próprio componente, ou no mo- do microprocessador, onde periféricos externos são incorporados ao sistema. 2 - A Família 8051. A família de microcontroladores 8051 é baseada em padrões industriais de microcontroladores de 8 bits. Sendo o CI 8051 o componente inicial desta família. Todos os membros desta família possuem ver- sões tendo ROM interna, EPROM interna ou versão sem ROM interna. A tabela l apresenta os principais membros desta família: Com Rom Interna Sem ROM Com E- PROM Bytes de ROM Bytes de RAM Temporizado- res de 16 bits 8051 8031 8751 4K 128 2 80C51 80C31 87C51 4K 128 2 8052 8032 8752 8K 256 3 80C52 80C32 87C52 8K 256 3 80C53 - 87C54 8K 192 2 83CL410 80CL410 - 4K 128 2 83C451 80C451 83C451 4K 128 2 83C528 80C528 87C528 32K 512 3 + WD 83C528 80C550 87C550 4K 128 2 + WD 83C550 80C552 87C552 8K 256 3 + WD 83C552 - 87C592 16K 512 3 + WD 83C592 - - 6K 256 2 Obs: WD = WATCHDOG TIMER Tabela 1 – Microcontroladores da família 8051 Existem outros membros desta família que incorporam padrão de comunicação serial I²C, maior número de portas paralelas e saídas com modulação por largura de pulso (PWM). Maiores detalhes são fornecidos nos manuais dos fabricantes.

Upload: giovani-franco

Post on 12-Jul-2016

38 views

Category:

Documents


4 download

DESCRIPTION

Docslide.com.Br Arquitetura Do Microcontrolador 8051

TRANSCRIPT

Page 1: Docslide.com.Br Arquitetura Do Microcontrolador 8051

Microcontrolador 8051

E.B. Página - 1

Microcontrolador 8051 1 - Introdução. Os microprocessadores são circuitos integrados extremamente flexíveis devido às suas caracterís-ticas de programabilidade. A programação do componente torna-o versátil para implementação de vários tipos de aplicações ou tarefas. No desenvolvimento desses tipos de componentes, foi construído o micro-computador em uma única pastilha. Tal componente, contém o microprocessador, memórias somente de leitura (ROM), memórias de acesso aleatório (RAM) e circuitos de entrada e saída, para comunicação com o mundo exterior.

Os microcontroladores são os componentes que, além do microcomputador, incorporam circuitos periféricos necessários em aplicações industriais, ou de controle, por exemplo, contendo circuitos de en-trada/saída serial, temporizadores, periféricos paralelos, conversores AD, conversores DA, etc. Tais com-ponentes são indicados para aplicações que requerem uma configuração minimizada, de baixo custo e de espaço físico reduzido. Obviamente que a solução de única pastilha ("single chip") é preferida pelo custo, bem como por razões de confiabilidade.

Assim vários tipos de microcontroladores foram desenvolvidos para aplicações específicas tais como: aplicações militares, controle automobilístico, instrumentações médicas, aplicações de controle em tempo real, controle de eletrodomésticos, etc.

Microcontroladores de uso geral foram construídos tendo a possibilidade de operar no modo mi-crocomputador, onde todo recurso de hardware utilizado estará dentro do próprio componente, ou no mo-do microprocessador, onde periféricos externos são incorporados ao sistema.

2 - A Família 8051. A família de microcontroladores 8051 é baseada em padrões industriais de microcontroladores de 8 bits. Sendo o CI 8051 o componente inicial desta família. Todos os membros desta família possuem ver-sões tendo ROM interna, EPROM interna ou versão sem ROM interna. A tabela l apresenta os principais membros desta família:

Com Rom Interna

Sem ROM Com E-PROM

Bytes de ROM

Bytes de RAM

Temporizado-res de 16 bits

8051 8031 8751 4K 128 2 80C51 80C31 87C51 4K 128 2 8052 8032 8752 8K 256 3

80C52 80C32 87C52 8K 256 3 80C53 - 87C54 8K 192 2

83CL410 80CL410 - 4K 128 2 83C451 80C451 83C451 4K 128 2 83C528 80C528 87C528 32K 512 3 + WD 83C528 80C550 87C550 4K 128 2 + WD 83C550 80C552 87C552 8K 256 3 + WD 83C552 - 87C592 16K 512 3 + WD 83C592 - - 6K 256 2

Obs: WD = WATCHDOG TIMER Tabela 1 – Microcontroladores da família 8051 Existem outros membros desta família que incorporam padrão de comunicação serial I²C, maior

número de portas paralelas e saídas com modulação por largura de pulso (PWM). Maiores detalhes são fornecidos nos manuais dos fabricantes.

Page 2: Docslide.com.Br Arquitetura Do Microcontrolador 8051

Microcontrolador 8051

E.B. Página - 2

8051 As principais características do 8051 são: • CPU otimizada de 8 bits: • Processamento Booleano extensivo (operações de 1 bit); • 32 linhas de entrada/saída bidirecionais e individualmente endereçadas; • 128 bytes de RAM no chip; • 02 contadores/temporizadores de 16 bits; • Transmissor/receptor universal assíncrono "FVLL DUPLEX"; • Os sinais de interrupção com dois níveis de prioridade; • Oscilador de temporização no chip; • 4K bytes de memória de programa no chip; • Espaço de endereçamento de 64K bytes de memória de programa; • Espaço de endereçamento de 64K bytes de memória de dados; • Encapsulamento nas versões DIP - 40 pinos e PLCC - 44 pinos; • O 8031 é a versão sem ROM, portanto com todas as buscas de instruções externas

e o 8751 é a versão com EPROM interna; O 80C51 e seus derivados são versões CMOS do 8051.

8052 É uma versão fortalecida do 8051, contendo: • 256 bytes de RAM no chip; • 03 temporizadores/contadores; • 06 sinais de interrupção; 8K bytes de memória de programa no chip.

80C053 É a versão do 8051 para aplicações em controle central de televisão. Contém: • Controlador de tela; • 03 saídas de vídeo digital; • Controle de multiplexador/mixador e intensidade de fundo de

tela; • RAM de display de 128 x 10; • ROM gerador de caracteres de 60 x 18 x 14; • 08 PWM de seis bits; • 01 PWM de 14 bits; • Polaridade de entrada e saída de vídeo programável; • 12 saídas para +12 volts , dreno aberto; 04 saídas para alta corrente, dreno aberto.

83CL41O É a versão do 8051 para tensões de alimentação de 1,5 a 6 volts. Operando em baixa freqüência (de 32KHz a 20MHz).

83C451 É a versão do 8051 com entrada/saída extendida, tendo 07 portas de entrada/saída com recursos de interface direta e interface de impressora paralela.

83C528 É uma versão extendida do 8051 com 32K bytes de memória de programa, 512 bytes de RAM, 03 temporizadores internos e temporizador watchdog.

83C55O É uma versão de 8051 contendo 08 canais de conversor AID de 08 bits.

83C552 É uma versão extendida do 8051 contendo 08 canais de conversor A/D de 10 bits, 04 temporizadores/contadores, saídas PWM e 06 portas de entrada/saída.

83C592 É a versão do 8051 contendo barramento de interface para rede (CAN-Control area network) e transferência de DMA entre RAM no chip e interface CAN.

83C862� É a versão do 8051 desenvolvida para aplicações de pequenos cartões com segurança, contendo memória EEPROM e características de segurança do sistema.

Page 3: Docslide.com.Br Arquitetura Do Microcontrolador 8051

Microcontrolador 8051

E.B. Página - 3

3 - A estrutura de Memória do 8051. Todo microcontrolador da família 8051 possui espaço de endereçamento de memória de programa separado da memória de dados. A figura 1 apresenta o diagrama de bloco do 8051. O mesmo está dividido em unidade central de processamento, Oscilador interno, memória ROM interna, memória RAM interna, dois temporizadores, porta serial, quatro portas paralelas, circuito de controle de interrupção e circuito de controle de barramen-to.

Interrup-ções Exter-

nas

Controle 4K 128 Temporizador 1 Entradas Dos De ROM RAM Temporizador 2 Contadores

Interrupção

CPU Controle 4 Portas

Oscilador De Barra- De Porta mento E/S Serial TxD RxD P0 P2 P1 P3

Figura 1 - Diagrama de bloco do 8051

3.1 Organização da memória.

A separação lógica das memórias de programa e de dado permite que a memória de dados possa ser acessada por um endereçamento de oito bits. Todavia, um endereçamento de 16 bits poderá também ser gerado através de um registro apontador de dados (DPTR). A memória de programa terá o tamanho máximo de 64K bytes onde, nas versões ROM ou EPROM, os 4K bytes menos significativos estarão no chip. Nas versões sem ROM, toda a área de memória de programa será externa. O acesso a esta área de memória será habilitado pelo sinal PSEN (program strobe enable).

A memória de dados ocupa um endereçamento separado de 64K bytes. No 8051 os 128 bytes de menos significativos de memória de dados estão no chip. Sinais de leitura (RD) e escrita (WR) são gera-dos durante um acesso externo de memória de dados.

Pode-se fazer um lógica E entre os sinais PSEN e RD combinando as áreas de memória de pro-grama externa e memória de dados em uma única região de memória. A figura 2 apresenta a estrutura da memória do 8051.

Endereços/Dados

Page 4: Docslide.com.Br Arquitetura Do Microcontrolador 8051

Microcontrolador 8051

E.B. Página - 4

Memória de Programa (Somente leitura)

Memória de Dados (Leitura / Escrita)

FFFFH FFH FFFFH ROM RAM Exter-

na Exter-

na

Regis-

tros

de Fun-

ções RAM

80H Especi-ais

Externa

1000H 7FH RAM Uso 0FFFH Interna Geral __ __ EA = 0 EA = 1 Uso Geral ROM ROM e Stack Exter-

na Interna

0000H 00H 0000H ____ __ _ PSEN RD WR

Figura 2 - Estrutura da memória do 8051

3.2 Memória de Programa.

A figura 3 apresenta o mapa de localização da parte menos significativa da memória de programa.

0023H 001BH Localização 8 bytes

Das 0013H Interrupções 000BH 0003H

RESET 0000H

Figura 3 - Memória de programa do 8051

Após o reset. a CPU inicia a execução a partir da localização 0000H. Assim nesta localização de-

verá existir um salto para a rotina de serviço de reset, ou programa operacional do sistema. Para o atendi-mento das rotinas de serviço de interrupção são reservados oito bytes de espaçamento para cada tipo de

Page 5: Docslide.com.Br Arquitetura Do Microcontrolador 8051

Microcontrolador 8051

E.B. Página - 5

interrupção. Assim, se o serviço de interrupção for de pequeno tamanho, como em algumas aplicações de controle, o mesmo poderá residir neste intervalo de oito bytes. Se for mais longo deverá saltar para outra região e continuar a execução da correspondente rotina. Portanto, para a interrupção externa 0 (zero) será usado o endereço 0003H, para a interrupção do temporizador 1, o endereço 000BH, etc.

Pode-se usar os 4K bytes menos significativos de ROM de programa internos ou, então, usar estes endereços externamente. A seleção é feita através do pino EA. Se o mesmo estiver conectado ao nível alto (Vcc), o processador busca o programa dos endereços 0000H até 0FFFH diretamente na ROM interna e o programa dos endereços I OOOH até FFFFH na ROM externa.

Se o pino EA estiver conectado ao nível baixo, todo o endereçamento de programa, de 0000H até FFFFH, será buscado na memória ROM externa. As versões sem ROM devem também ter este pino ex-ternamente conectado ao nível baixo (Vss). O sinal PSEN é o habilitador de leitura para a ROM externa, durante uma busca a ROM interna ele estará desabilitado.

A figura 4 apresenta a configuração necessária para execução externa de programa. Note que as li-nhas da porta 0 e da porta 2 serão usadas com função de endereçamento, durante o ciclo de busca de me-mória externa de programa. A porta 0 opera como multiplexador de endereços e dados. Ela emite o byte menos significativo do endereço, vai para um estado de alta impedância e recebe o byte endereçado da memória de programa.

Durante o tempo em que o byte menos significativo do endereço for válido, o sinal ALE (habilita-dor de Latch de endereçamento) atua para memorização deste valor nos latches.

80C51 EPROM

P1 P0 Dados __ EA LATCH ALE Endereço P2 P3 ____ __ PSEN OE

Figura 4 - Execução externa de memória de programa

O endereçamento da memória de programa é realizado com tamanho de 16 bits. Assim o uso de memória de programa externa sacrifica as portas P0 e P², para funcionar como barramento de endereço.

3.3 Memória de dados.

O endereçamento externo da memória de dados pode ser feito com largura de 1 ou 2 bytes. Ende-reçamentos de um byte são feitos usando uma ou mais linhas de paginação de RAM. A figura 5 mostra urna configuração para acessar até 2K bytes de RAM externa.

A porta 0 (zero) opera como multiplexador de barramento de endereço e de dado para a memória e três linhas da porta 2 serão usadas para paginar a RAM. A CPU gera os sinais RD e WR necessários para acessar a RAM externa.

Page 6: Docslide.com.Br Arquitetura Do Microcontrolador 8051

Microcontrolador 8051

E.B. Página - 6

80C51 c/ RAM

ROM inter na P1 P0 Dados __ EA Vcc LATCH ALE Endereço __ P3 P2 RD E/S ___ __ WR WE OE

Figura 5 - Acesso a memória de dados externa Neste caso, se a memória de programa do sistema for interna, os outros bits da porta 2 ficarão dis-

poníveis para entrada e saída. Endereçamento de dois bytes também poderá ser usado. Neste caso o byte de endereçamento superior será enviado pela porta 2. A figura 6 apresenta o mapeamento da memória de dados interna.

FFH Acesso Somente por Acesso por

128 MSB Endereçamento Endereçamento Indireto Direto 80H Portas 7FH Acesso por Status Endereçamento Registros Bits de Controle

128 LSB Direto ou De função Temporizadores Indireto Especial Apontadorde Stack 00H Acumulador, etc.

Figura 6 - Memória de dados interna

Este espaço de endereçamento está dividido em três blocos, denominados por 128 bytes inferiores,

128 bytes superiores e espaço de registros de função especial (SFR). O endereçamento de dados interno é sempre de tamanho de um byte, o que implica num espaço de 256 bytes somente. Entretanto, o modo de endereçamento para RAM interna de fato acessa 384 bytes, usando um simples truque. Endereçamento direto maior que 7FH acessa o endereçamento dos registros de função especial, correspondendo ao apontador de pilha, acumulador, temporizadores, portas, controle de bits, sta-tus, etc. Endereçamento indireto maior que 7FH acessam os 128 bytes superiores. Apesar de ocuparem o mesmo bloco de endereçamento (80H até FFH) são entidades fisicamente separadas. No 8051 e suas ver-sões sem ROM, ou com EPROM, não são implementados os 128 bytes superiores de RAM interna. A fi-gura 7 apresenta os 128 bytes superiores de RAM interna.

Os 128 bytes menos significativos da RAM de todos os 8051 são mapeados conforme a figura 8. Os primeiros 32 bytes são agrupados em quatro bancos de oito registros. Instruções referem-se a estes re-gistros como R0 até R7. Dois bits para palavra de status de programa (PSW) selecionam qual dos bancos de registros será usado. Isto possibilita maior eficiência no uso de espaço de código, visto que instruções de registros são menores que instruções que usam endereçamento direto.

Bits de paginação

Page 7: Docslide.com.Br Arquitetura Do Microcontrolador 8051

Microcontrolador 8051

E.B. Página - 7

Os próximos 16 bytes acima dos bancos de registros formam um espaço de memória de bloco de bits endereçáveis. O conjunto de instruções do 8051 inclui uma larga seleção de instruções de único bit. Os 128 bits desta área podem ser diretamente endereçado por estas instruções. Os endereços dos bits vão de 00H até 7FH. Todos os 128 bytes inferiores desta região de memória poderão ser acessados por ende-reçamento direto, ou indireto. Entretanto, os 128 bytes superiores somente serão acessados por endereça-mento indireto. A figura 9 apresenta um resumo da área correspondente aos registros de função especial (SRF). Estes registros incluem latches das portas, temporizadores, controle de periféricos, etc. Estes regis-tros podem somente ser acessado por endereçamento direto. Dezesseis endereços deste espaço de registros são endereçados por bytes ou por bits. Os endereços de bits são aqueles terminados por 0H (80H, 90H , ..., FOH) ou por 8H (88H, 98H, ..., F8H).

FFH

Espaço sem Endereçamento De BIT

80H Figura 7 - 128 bytes superiores da RAM interna

MSB LSB Registradores MSB LSB FFH De

7FH Hardware

30H F0H F7 F6 F5 F4 F3 F2 F1 F0 B 2FH 7F 7E 7D 7C 7B 7A 79 78 2EH 77 76 75 74 73 72 71 70 E8H 2DH 6F 6E 6D 6C 6B 6A 69 68 2CH 67 66 65 64 63 62 61 60 E0H E7 E6 E5 E4 E3 E2 E1 E0 ACC 2BH 5F 5E 5D 5C 5B 5A 59 58 2AH 57 56 55 54 53 52 51 50 D8H 29H 4F 4E 4D 4C 4B 4A 49 48 28H 47 46 45 44 43 42 41 40 D0H D7 D6 D5 D4 D3 D2 D1 D0 PSW 27H 3F 3E 3D 3C 3B 3A 39 38 26H 37 36 35 34 33 32 31 30 B8H -- -- -- BC BB BA B9 B8 IP 25H 2F 2E 2D 2C 2B 2A 29 28 24H 27 26 25 24 23 22 21 20 B0H B7 B6 B5 B4 B3 B2 B1 B0 P3 23H 1F 1E 1D 1C 1B 1A 19 18 22H 17 16 15 14 13 12 11 10 A8H AF -- -- AC AB AA A9 A8 IE 21H 0F 0E 0D 0C 0B 0A 09 08 20H 07 06 05 04 03 02 01 00 A0H A7 A6 A5 A4 A3 A2 A1 A0 P2 1FH Banco 3 18H 98H 9F 9E 9D 9C 9B 9A 99 98 SCON 17H Banco 2 10H 90H 97 96 95 94 93 92 91 90 P1 0FH Banco 1 08H 88H 8F 8E 8D 8C 8B 8A 89 88 TCON 07H Banco 0 00H 80H 87 86 85 84 83 82 81 80 P0

Figura 8 Figura 9 128 bytes inferiores da RAM interna Espaço de registros de função especial

4 - A Arquitetura do 8051

Page 8: Docslide.com.Br Arquitetura Do Microcontrolador 8051

Microcontrolador 8051

E.B. Página - 8

O 8051 e seus derivados são fabricados nas versões MOS e CMOS. Sua característica de arquitetura fortalecida e seu conjunto de instruções resultam em um controlador de baixo custo, usado em aplicações que requerem até 64K bytes de memória de programa e até 64K bytes de memória de dados. As figuras 10 e 11 apresentam a configuração de pinagem para os modelos 8031/8051/8751, nas versões de encapsula-mentos DIP e QFP.

P1.0 1 40 Vcc P1.1 2 39 P0.0 / AD0 P1.2 3 38 P0.1 / AD1 P1.3 4 37 P0.2 / AD2 P1.4 5 36 P0.3 / AD3 P1.5 6 35 P0.4 / AD4 P1.6 7 34 P0.5 / AD5 P1.7 8 33 P0.6 / AD6

RST / VPD 9 32 P0.7 / AD7 RxD / P3.0 10 31 EA / Vpp TxD / P3.1 11 DIP 30 ALE/ PROG

INT0 / P3.2 12 29 PSEN INT1 / P3.3 13 28 P2.7 / A15

T0 / P3.4 14 27 P2.6 / A14 T1 / P3.5 15 26 P2.5 / A13

WR / P3.6 16 25 P2.4 / A12 RD / P3.7 17 24 P2.3 / A11

XTAL2 18 23 P2.2 / A10 XTAL1 19 22 P2.1 / A9

Vss 20 21 P2.0 / A8

P1.

4 P

1.3

P1.

2 P

1.1

P1.

0 n.

c.

Vcc

P

0.0/

AD

0

P0.

1/ A

D1

P

0.2/

AD

2

P0.

3/ A

D3

6 5 4 3 2 1 44 43 42 41 40

P1.5 7 39 P0.4 / AD4 P1.6 8 38 P0.5 / AD5 P1.7 9 37 P0.6 / AD6

RST / VPD 10 36 P0.7 / AD7 RxD / P3.0 11 8 0 5 1 35 EA / Vpp

n.c. 12 34 n.c. TxD / P3.1 13 33 ALE/ PROG

INT0 / P3.2 14 32 PSEN INT1 / P3.3 15 31 P2.7 / A15

T0 / P3.4 16 30 P2.6 / A14 T1 / P3.5 17 29 P2.5 / A13

18 19 20 21 22 23 24 25 26 27 28

WR

/ P

3.6

WR

/ P

3.7

XT

AL

2 X

TA

L 1

Vss

n.

c.

P2.

0 / A

8 P

2.1

/ A9

P2.

2 / A

10

P2.

3 / A

11

P2.

4 / A

12

Figura 10 Pinagem do 8031/8051 /8751 na versão DIP

Figura 11 Pinagem do 8031/8051/

8751 na versão Quad Pack

Page 9: Docslide.com.Br Arquitetura Do Microcontrolador 8051

Microcontrolador 8051

E.B. Página - 9

4.1 Função dos Pinos do 8051.

COMUM: (VSS)

Pino de entrada de referência zero volts.

FONTE: (VCC)

Pino de entrada de tensão de alimentação de +5 volts.

PORTA 0: (P0.0 - P0.7)

A porta 0 é uma porta bidirecional de 8 bits, com saída dreno aberto, ou entrada de alta impedância. É usada para multiplexar o barramento de dados e o barramento de endereço menos significativo, durante o acesso de memória de dados externa, ou de memória de programa externa. No 8751 esta porta também é usada para verificação do código do byte e, neste caso, são necessários o uso de resistores "pull-up" externos.

PORTA 1: (P1.0 – P1.7)

A porta 1 é uma porta bidirecional de 8 bits com resistores "pull-up" internos. Assim estes pinos poderão funcionar como entradas, ou saídas Se uma entrada estiver conectada ao ní-vel baixo, ela fornecerá corrente, devido aos resistores "pull-up" internos. Assim, deve-se consultar as características elétricas deste circuito. Os pinos da porta 1 também recebem o endereço menos significativo, durante a verificação de memória de programa para o 8751.

PORTA 2: (P2.0 - P2.7)

A porta 2 é uma porta bidirecional de 8 bits com resistores "pull-up" internos. Esta porta é usada para colocar o byte de endereço mais significativo, quando um ciclo de busca exter-no de memória de programa, ou de dado, com endereço de 16 bits, está sendo realizado (MOVX @ DPTR). Durante o acesso externo de memória de dados que usa endereço de 8 bits (MOV @ Ri), a porta 2 emite os conteúdos do registro de função especial P2.

PORTA 3: (P3.0 - P3.7)

A porta 3 é uma porta bidirecional de 8 bits com resistores "pull-up" internos. A porta 3 tem funções especiais para o 8051 que inclui as operações de comunicação serial, inter-rupções externas, temporizações e sinais de leitura escrita como se segue: RxD (P3.0) - entrada da porta serial. TxD (P3.1) - saída da porta serial. INT0 (P3.2) - entrada de interrupção externa nível 0. INT1 (P3.3) - entrada de interrupção externa nível 1.�TO (P3.4) - entrada externa para temporizador 0.�T1 (P3.5) - entrada externa para temporizador 1.�WR (P3.6) - saída habilitadora de escrita para memória de dados externa�RD (P3.7) - saída habilitadora de leitura para memória de dados externa.

RESET: (RST) Um nível alto neste pino com duração de dois ciclos de máquina. enquanto o oscilador es-tiver operando, realiza uma inicialização (reset) do circuito. Um resistor interno ligado a Vss permite um reset na energização do sistema, somente usando um capacitor externo ligado a VCC.

ALE/PROG: Este pino opera como saída habilitadora de latches de endereçamento, durante um acesso a memória externa. Em operação normal, ALE é emitido em uma taxa de 1/6 da freqüên-cia de oscilação e pode ser usado para temporização externa. Nas versões com EPROM interna (8751) este pino opera como entrada recebendo o pulso de programação (PROG), durante a programação da EPROM

PSEN: Este pino é uma saída que habilita a leitura de uma memória de programa externa. PSEN não será ativado durante uma busca na região de memória de programa interna.

EA/VPP: Este pino é uma entrada que deverá ser ligado ao nível alto, para que o processador tenha acesso a memória interna de programa, nos endereços de 0000H até 0FFFH e acesso a me-mória externa de programa, para endereços acima de OFFFH. Se estiver ligado ao nível baixo, toda a área de memória de programa, de (3000H a FFFFH, será externa. Nas versões com EPROM interna (8751), este pino também recebe a tensão de programação de 12,75V, durante a programação da EPROM. Nas versões sem ROM interna, EA deve ser conectado ao nível baixo.

XTAL 1: Entrada para o Oscilador inversor interno e para o circuito gerador de temporização inter-no.

XTAL 2: É a saída do oscilador amplificador e inversor interno.

Page 10: Docslide.com.Br Arquitetura Do Microcontrolador 8051

Microcontrolador 8051

E.B. Página - 10

A figura 12 apresenta o diagrama de blocos detalhado do 8031/8051/8751.

P0.0 ---- P0.7 P2.0 ---- P2.7

Drivers da Porta 0

Drivers da Porta 2

Registro de endereçamento

de RAM RAM Latch da

Porta 0 Latch da

Porta 2 ROM/EPROM

Registro de

Endereço de Programa

Registro

B ACUMULA-

DOR Apontador

de Stack Buffer

TMP2 TMP1 PCON SCON TMOD TCON Incrementador TH0 TL0 TH1 de PC TL1 ALU SBUF IE IP Contador de

Tempori- Registro Blocos de Temporizador Programa zador de Porta Serial e Interrupção

e Instru- PSW DPTR Controle ções

Latch da

Porta 1 Latch da

Porta 3

Oscilador

Drivers da

Porta 1 Drivers da

Porta 3

P1.0 ----- P1.7 P3.0 ----- P3.7

Figura 12: Diagrama de blocos do 8031/8051/8751

O 8051 contém uma memória ROM interna de 4K x 8 bits usada como memória de programa. O 8031 é a versão sem esta memória. O 8751 é a versão com EPROM interna. Além da memória ROM o mesmo contém 128 x 8 bits de RAM, 32 linhas de entrada e saída distribuídas em quatro portas paralelas, dois contadores/temporizadores de 16 bits, uma estrutura de interrupção de dois níveis, uma porta serial para comunicação de multiprocessador, oscilador interno e circuito de temporização circuito de expansão de periféricos ou UART "full duplex". Em adição o circuito opera com dois modos de consumo de potên-cia selecionáveis por software, somente implementado nas versões CMOS. O modo denominado "ocioso" (idle) e o modo "baixo consumo" (power-down). O modo ocioso "congela" a CPU, enquanto que a RAM, temporizadores, porta serial e sistema de interrupção continuam operando normalmente. O modo baixo consumo mantém o conteúdo da RAM mas "congela" o oscilador, fazendo com que todas as outras fun-ções estejam inoperantes. Existem cinco versões de velocidade para a família 8031/8051/8751 19 MHz, 16 MHz, 24 MHz, 30 MHz e 33 MHz. 4.2 TEMPORIZAÇÃO DA CPU.

Page 11: Docslide.com.Br Arquitetura Do Microcontrolador 8051

Microcontrolador 8051

E.B. Página - 11

Todo microcontrolador da família 8051 possui um oscilador interno que poderá ser usado para temporização da CPU. Para tal, um cristal deverá ser conectado entre os pinos XTAL1 e XTAL2 do mi-crocontrolador, com capacitores conectados entre estes pinos e a tensão de referência Vss. Assim, o gera-dor de temporização interna definirá a seqüência de estados para o ciclo de máquina do 8051. 4.3 CICLO DE MÁQUINA. Um ciclo de máquina consistirá de uma seqüência de seis estados, numerados de S1 a S6. Cada es-tado dura dois períodos do oscilador. Então, um ciclo de máquina tem 12 períodos do oscilador. Por e-xemplo 1 µs para uma freqüência de 12 MHz.

Cada estado é dividido em duas fases: fase 1 e fase 2, com duração de um período de oscilador. A figura 13 mostra uma seqüência de busca/execução para alguns tipos de instrução.

S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1 OSC. P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2

Xtal2 ALE Leitura de OpCode Leitura do Próximo

OpCode (Descartado) Leitura do Próximo OpCode (Novamente)

S1 S2 S3 S4 S5 S6 A) Instruções de 1 byte, 1ciclo. Leitura de OpCode Leitura do Segundo

Byte Leitura do Próximo OpCode

S1 S2 S3 S4 S5 S6 B) Instruções de 2 bytes, 1 ciclo. Leitura de OpCode Leitura do Próximo

OpCode (Descartado) Leitura do Próximo

OpCode (Novamente)

S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 C) Instruções de 1 byte, 2 ciclos nenhum ALE Leitura de OpCode Leitura do Próximo

OpCode (Descartado) Nenhuma Busca Leitura do Próximo

OpCode (Novamente)

S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 Endereço Dado Acesso à memória externa

Figura 13: Sequência de estados para a família 8051

Normalmente em um ciclo de máquina são gerados duas buscas de programa, mesmo que a instru-

ção, sendo executada, não requeira. Neste caso, a CPU simplesmente ignora a busca extra e o contador de

Page 12: Docslide.com.Br Arquitetura Do Microcontrolador 8051

Microcontrolador 8051

E.B. Página - 12

programa não será incrementado. A execução de uma instrução de um ciclo inicia-se no estado S1 do ci-clo de máquina, quando o opcode será armazenado no registro de instrução. Uma segunda busca ocorrerá durante o estado S4 do mesmo ciclo de máquina. A execução estará completa no final do estado S6.

A instrução MOVX será executada em dois ciclos de máquina. Nenhuma busca de programa será gerada no segundo ciclo desta instrução. As sequências de busca/execução serão as mesmas tanto para a memória de programa interna, quanto para a memória de programa externa. O tempo de execução não de-pende de onde será buscado a instrução.

4.4 Reset. A entrada de reset é feita através do pino RST, conectado a um circuito do tipo Schmitt trigger. Um reset é realizado mantendo-se a entrada RST em nível alto pelo menos por dois ciclos de máquina (24 períodos do oscilador) com o oscilador operando. O reset irá zerar todos os registros de funções especiais, exceto os latches das portas o apontador de stack e o registro SBUF. Os registros das portas serão iniciali-zados com FFH7 o apontador de stack; com OFH e o SBUF será indeterminado. A tabela 2 resume estes valores.

REGISTRO VALOR REGISTRO VALOR

PC 0000H TCON 00H

ACC 00H TH0 00 H B 00H TL0 00 H

PSW 00H TH1 00 H SP 07H TL1 00 H

DPTR 0000H SCON 00 H P0-P3 FFH SBUF Indeterm.

IP XXX00000 B PCON (NMOS) 0XXXXXXX B IE 0XX00000 B PCON (CMOS) 0XXX0000 B

TMOD 00H

Tabela 2 - Valores de SFR após reset

A RAM interna não será afetada pelo reset. Na energização do sistema, o seu conteúdo será aleató-

rio e, portanto, indeterminado. 4.5 Reset na energização do sistemas.

Um reset automático pode ser obtido quando o pino RST for conectado a fonte VCC através de um capacitor de 10 µF, e a referencia Vss, através de um resistor de 872 Kohms. Os componentes desta famí-lia, construídos na versão CMOS, não necessitam do resistor. Porém, sua presença não será prejudicial. Quando o sistema for energizado, o circuito manterá um nível alto no pino RST, por um tempo dependen-te dos valores do capacitor e do resistor, que definem o tempo de carga do capacitor. Para garantir urna boa inicialização, o sinal de reset deve ter uma duração acima de dois ciclos de máquina de sistema (nor-malmente alguns mseg.).

Page 13: Docslide.com.Br Arquitetura Do Microcontrolador 8051

Microcontrolador 8051

E.B. Página - 13

4.6 Modos De Operação com Economia de Energia. Para aplicações onde o consumo de potência será crítico, as versões CMOS permitem a redução do mesmo. Para tal, através de programação poderá ser acionado a economia de energia. Esta característica só é possível nas versões CMOS. As versões CMOS possuem dois tipos de redução de potências, deno-minados de operação no modo "ocioso" (idle) e no modo "baixo consumo" (power-down). Este controle é realizado por dois bits (PD e IDL) do registro de função especial de controle de potência, PCON "power control". No modo ocioso, com IDL = 1, o oscilador continua operando, mas a sua saída de temporização não será levada para a CPU Somente as interrupções, porta serial e temporizadores continuaram operando. Este modo será encerrado por um sinal de interrupção, ou através do sinal de reset. No modo baixo con-sumo, com PD = 1, o oscilador estará bloqueado Assim, todas as funções estarão paradas, mantendo-se todos os conteúdos da RAM interna e dos registros de função especial. Os sinais ALE e PSEN ficarão em nível baixo. Neste modo de operação, a tensão de alimentação poderá ser reduzida para até 2 Volts. Entre-tanto, deve-se ter a certeza de que a tensão não será reduzida antes da ativação do modo baixo consumo e de que ela será restaurada antes deste modo terminar. Este modo será encerrado somente com um sinal de reset. O registro PCON é um registro de função especial, acessado pelo endereço 87H, que será analisado no capítulo registros de função especial. Se forem escritos valores 1 simultâneos em PD e IDI, o modo baixo consumo será assumido.

4.7 REGISTROS DE FUNÇÃO ESPECIAL .

A figura 14 apresenta a área de memória interna denominada área de registros de função especial (SFR). Estes registros serão acessados por endereçamento direto.

8 bytes FF F8 F7 B F0 Podem sem Bit Endereçados EF E8 E7 ACC E0 São Bit Endereçados DF D8 D7 PSW D0 Endereçados por Byte CF C8 C7 C0 Não Implementados BF IP B8 B7 P3 B0 AF IE A8 A7 P2 A0 9F SBUF SCON 98 97 P1 90 8F TH1 TH0 TL1 TL0 TMOD TCON 88 87 PCON DPH DPL SP P0 80

Figura 14 - Mapa de memória dos Registros de Função Especial do 8051

Note que nesta região nem todos os endereços foram ocupados. As posições não ocupadas não foram im-plementados no componente. Assim, acessos de leituras nestes endereços geralmente retornam valores aleatórios, enquanto que acessos de escrita não terão efeitos. Usuários de programação devem evitar a escrita nestas localiza-ções, visto que outros produtos desta família poderão estar usando tais endereços para novas implementações. Os registros com endereçamento terminado por OH ou 8H são também bits endereçáveis. A figura 15 apresenta os en-dereços, ou símbolos, ou funções dos bits dos registros de função especial do 8031/8051.

Page 14: Docslide.com.Br Arquitetura Do Microcontrolador 8051

Microcontrolador 8051

E.B. Página - 14

Símbo-

lo Descrição Endereço

Direto Endereço do Bit, Símbolo ou Função Alternativa da Porta

MSB LSB

FFH-F1H

B* Registrador B F0H F7H F6H F5H F4H F3H F2H F1 H F0H

EFH-E1H

ACC* Acumulador E0H E7H E6H E5H E4H E3H E2H E1H E0H

DFH-D1H

PSW* Palavra Status de Programa D0H D7H D6H D5H D4H D3H D2H D1H D0H

CY AC F0 RS1 RS0 OV -- P

BFH-C9H

IP* Habilitador de Interrupção B8H BFH BEH BDH BCH BBH BAH B9H B8H

-- -- -- PS PT1 PX1 PT0 PX0

B7H-B1H

P3* Porta 3 B0H B7H B6H B5H B4H B3H B2H B1H B0H

RD WR T1 T0 INT1 INT0 TxD RxD

AFH-A9H

IE* Habilitador de Interrupção A8H AFH AEH ADH ACH ABH AAH A9H A8H

EA -- -- ES ET1 EX1 ET0 EX0

A7H-A1H

P2* Porta 2 A0H A7H A6H A5H A4H A3H A2H A1H A0H

A15 A14 A13 A12 A11 A10 A9 A8

9FH-9AH

SBUF Buffer de Dados Serial 99H

SCON* Controlador Serial 98H 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H

SM0 SM1 SM2 REN TB8 RB8 TI RI

97H-91H

P1* Porta 1 90H 97H 96H 95H 94H 93H 92H 91H 90H

-- -- -- -- -- -- T2EX T2

8FH-8EH

TH1 8DH

TH0 8CH

TL1 8BH

TL0 8AH

TMOD 89H GATE C/T M1 M0 GATE C/T M1 M0

TCON* Controle de Temporizador 88H 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

PCON Controle de Potência 87H SMOD -- -- -- GF1 GF0 PD IDL

86H-84H

DPH Data Pointer High 83H

DPL Data Pointer Low 82H

SP Stack Pointer 81H

P0* Porta 0 80H 87H 86H 85H 84H 83H 82H 81H 80H

AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0

Figura 15: Bits dos Registradores de Função Especial do 8051

4.8 Descrição detalhada dos Registradores do 8051.

Page 15: Docslide.com.Br Arquitetura Do Microcontrolador 8051

Microcontrolador 8051

E.B. Página - 15

4.8.1 Acumulador (ACC). O registro acumulador (ACC) é referido simplesmente pela letra "A" nos mnemônicos das instru-ções. É acessado pelo endereço E0H e é um registro de bit endereçável, onde os seus bits serão acessados pelos endereços E0H até E7H, respectivamente do menos significativo até o mais significativo. Note que existem instruções que serão executadas sem o uso do acumulador. Por exemplo, em operações Booleanas o valor do acumulador será preservado. Nestas operações o bit de carry será usado como acumulador. 4.8.2 Registro B (B). O registro B é usado durante operação de multiplicação e de divisão. Para outras instruções este registro poderá ser tratado como um registro de armazenagem temporária. É um registro bit endereçável. cujo endereço de acesso é F0H. Os seus bits são acessados pelos endereços F0H até F7H. 4.8.3 Registro de palavra de status de programa (PSW). O registro PSW contém as informações de status de programa que refletem o estado corrente da CPU. Este é um registro acessado pelo endereço D0H e também é bit endereçável. A tabela 3 abaixo, a-presenta um resumo dos bits do registro PSW.

Bit Símbolo Endereça-mento de bit

Função

PSW.7 CY D7H Flag de carry nas operações aritméticas e acumulador nas operações Boole-anas.

PSW.6 AC D6H Flag de carry auxiliar para as operações BCD PSW.5 F0 D5H Flag disponível para propósito geral PSW.4 RS1 D4H Bit 1 de seleção do Banco de Registros PSW.3 RS0 D3H Bit 0 de seleção do Banco de Registros PSW.2 OV D2H Flag de Overflow PSW.1 -- D1H Flag definível pelo usuário, disponível para propósito geral PSW.0 P D0H Flag de paridade correspondente à quantidade de bits em 1 no aumulador,

onde P=1 é par e P=0 é ímpar.

Tabela 3 - Bits do PSW

A seleção do banco de registros, realizada pelos bits RS1 e RS0, seleciona os seguintes endereços:

RS1 RS0 Seleção Endereços de cada banco

0 0 Banco 0 00H – 07H 0 1 Banco 1 08H – 0FH 1 0 Banco 2 10H – 17H 1 1 Banco 3 18H – 1FH

4.8.4 Registro Apontador de pilha (SP). O registro SP é um registro de tamanho 8 bits. Este será incrementado antes que um dado seja ar-mazenado na pilha, durante a execução de uma instrução PUSH, ou CALL. Assim, a região de pilha (stack) irá residir no espaço de RAM interna do 8051. O SP é inicializado com o valor 07H após ocorrer um reset. Isto faz com que a pilha inicie na localização 08H. Este é acessado pelo endereço 81H e, portan-to, não é bit endereçável. 4.8.5 Registro apontador de dados (DPTR).

Page 16: Docslide.com.Br Arquitetura Do Microcontrolador 8051

Microcontrolador 8051

E.B. Página - 16

O registro apontador de dados é formado por um byte alto (DPH) acessado pelo endereço 83H e por um byte baixo (DPL), acessado pelo endereço 82H. A sua função é a de manter um endereço de 16 bits, usado para acessar memórias externas. Portanto, este registro pode ser manipulador como um regis-tro de 16 bits, ou como dois registros independentes de 8 bits. 4.8.6 REGISTROS DAS PORTAS 0 À 3 (P0-P3). Os registros P0, P1, P2 e P3 são latches das portas 0, l, 2 e 3, respectivamente. O registro P0 é a-cessado pelo endereço 80H. O registro P1, pelo endereço 90H. O P2, pelo endereço A0H e o P3 por B0H. Todos estes registros são bit endereçável. Escrever 1 no bit de uma porta causará uma saída de nível alto no correspondente pino da porta. Quando usado como entrada, o estado externo aplicado ao pino será armazenado no correspondente bit do registro da porta. 4.8.7 REGISTRO DE BUFFER DE DADO SERIAL (SBUF). O registro de buffer de dado serial, na realidade, é composto de dois registros separados. Um regis-tro buffer transmissor e um registro buffer receptor. Estes registros são denominados por SBUF e são dife-renciados pelas operações de leitura ou escrita. Quando o dado for movido para SBUF, ele irá para o buf-fer transmissor que executará a operação de transmissão serial, iniciada pelo próprio movimento do dado. Quando o dado for movido de SBUF, ele será lido do buffer de recepção. Este registro é acessado pela es-crita, ou pela leitura do endereço 99H. 4.8.8 REGISTRO DOS TEMPORIZADORES. O par de registros (TH0, TL0) e (TH1, TL1) formam o registro contador para o temporiza-dor/contador 0 e 1, respectivamente. São acessados respectivamente pelos endereços 8CH, 8AH, 8DH e 8BH. 4.8.9 REGISTROS DE CONTROLE. Os registros de função especial denominados IP, IE, TMOD, TCON, SCON e PCON contém bits de controle e de status para o sistema de interrupção, os temporizadores/contadores e a porta serial.

Page 17: Docslide.com.Br Arquitetura Do Microcontrolador 8051

Microcontrolador 8051

E.B. Página - 17

5. BIBLIOGRAFIA - The 8051 Microcontroler. Hardware, Software and Interfacing

Stewart, James W. Regents / Prentice Hall

- Aplicações Práticas do Microcontrolador 8051. Silva Jr., Vidal Pereira da Érica