Вы находитесь на странице: 1из 17

Microcontrolador 8051

Microcontrolador 8051 1 - Introduo.


Os microprocessadores so circuitos integrados extremamente flexveis devido s suas caractersticas de programabilidade. A programao do componente torna-o verstil para implementao de vrios tipos de aplicaes ou tarefas. No desenvolvimento desses tipos de componentes, foi construdo o microcomputador em uma nica pastilha. Tal componente, contm o microprocessador, memrias somente de leitura (ROM), memrias de acesso aleatrio (RAM) e circuitos de entrada e sada, para comunicao com o mundo exterior. Os microcontroladores so os componentes que, alm do microcomputador, incorporam circuitos perifricos necessrios em aplicaes industriais, ou de controle, por exemplo, contendo circuitos de entrada/sada serial, temporizadores, perifricos paralelos, conversores AD, conversores DA, etc. Tais componentes so indicados para aplicaes que requerem uma configurao minimizada, de baixo custo e de espao fsico reduzido. Obviamente que a soluo de nica pastilha ("single chip") preferida pelo custo, bem como por razes de confiabilidade. Assim vrios tipos de microcontroladores foram desenvolvidos para aplicaes especficas tais como: aplicaes militares, controle automobilstico, instrumentaes mdicas, aplicaes de controle em tempo real, controle de eletrodomsticos, etc. Microcontroladores de uso geral foram construdos tendo a possibilidade de operar no modo microcomputador, onde todo recurso de hardware utilizado estar dentro do prprio componente, ou no modo microprocessador, onde perifricos externos so incorporados ao sistema.

2 - A Famlia 8051.
A famlia de microcontroladores 8051 baseada em padres industriais de microcontroladores de 8 bits. Sendo o CI 8051 o componente inicial desta famlia. Todos os membros desta famlia possuem verses tendo ROM interna, EPROM interna ou verso sem ROM interna. A tabela l apresenta os principais membros desta famlia:
Sem ROM Com Rom Com EInterna PROM 8051 8031 8751 80C51 80C31 87C51 8052 8032 8752 80C52 80C32 87C52 80C53 87C54 83CL410 80CL410 83C451 80C451 83C451 83C528 80C528 87C528 83C528 80C550 87C550 83C550 80C552 87C552 83C552 87C592 83C592 Obs: WD = WATCHDOG TIMER

Bytes de ROM 4K 4K 8K 8K 8K 4K 4K 32K 4K 8K 16K 6K

Bytes de RAM 128 128 256 256 192 128 128 512 128 256 512 256

Temporizadores de 16 bits 2 2 3 3 2 2 2 3 + WD 2 + WD 3 + WD 3 + WD 2

Tabela 1 Microcontroladores da famlia 8051

Existem outros membros desta famlia que incorporam padro de comunicao serial IC, maior nmero de portas paralelas e sadas com modulao por largura de pulso (PWM). Maiores detalhes so fornecidos nos manuais dos fabricantes.

E.B.

Pgina - 1

Microcontrolador 8051

As principais caractersticas do 8051 so: CPU otimizada de 8 bits: Processamento Booleano extensivo (operaes de 1 bit); 32 linhas de entrada/sada bidirecionais e individualmente endereadas; 128 bytes de RAM no chip; 02 contadores/temporizadores de 16 bits; Transmissor/receptor universal assncrono "FVLL DUPLEX"; Os sinais de interrupo com dois nveis de prioridade; Oscilador de temporizao no chip; 4K bytes de memria de programa no chip; Espao de endereamento de 64K bytes de memria de programa; Espao de endereamento de 64K bytes de memria de dados; Encapsulamento nas verses DIP - 40 pinos e PLCC - 44 pinos; O 8031 a verso sem ROM, portanto com todas as buscas de instrues externas e o 8751 a verso com EPROM interna; O 80C51 e seus derivados so verses CMOS do 8051. uma verso fortalecida do 8051, contendo: 8052 256 bytes de RAM no chip; 03 temporizadores/contadores; 06 sinais de interrupo; 8K bytes de memria de programa no chip. 80C053 a verso do 8051 para aplicaes em controle central de televiso. Contm: Controlador de tela; 03 sadas de vdeo 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 sada de vdeo programvel; 12 sadas para +12 volts , dreno aberto; 04 sadas para alta corrente, dreno aberto. 83CL41O a verso do 8051 para tenses de alimentao de 1,5 a 6 volts. Operando em baixa freqncia (de 32KHz a 20MHz). 83C451 a verso do 8051 com entrada/sada extendida, tendo 07 portas de entrada/sada com recursos de interface direta e interface de impressora paralela. 83C528 uma verso extendida do 8051 com 32K bytes de memria de programa, 512 bytes de RAM, 03 temporizadores internos e temporizador watchdog. 83C55O uma verso de 8051 contendo 08 canais de conversor AID de 08 bits. 83C552 uma verso extendida do 8051 contendo 08 canais de conversor A/D de 10 bits, 04 temporizadores/contadores, sadas PWM e 06 portas de entrada/sada. 83C592 a verso do 8051 contendo barramento de interface para rede (CAN-Control area network) e transferncia de DMA entre RAM no chip e interface CAN. 83C862 a verso do 8051 desenvolvida para aplicaes de pequenos cartes com segurana, contendo memria EEPROM e caractersticas de segurana do sistema.

8051

E.B.

Pgina - 2

Microcontrolador 8051

3 - A estrutura de Memria do 8051.


Todo microcontrolador da famlia 8051 possui espao de endereamento de memria de programa separado da memria de dados. A figura 1 apresenta o diagrama de bloco do 8051. O mesmo est dividido em unidade central de processamento, Oscilador interno, memria ROM interna, memria RAM interna, dois temporizadores, porta serial, quatro portas paralelas, circuito de controle de interrupo e circuito de controle de barramento.

Interrupes Externas

Controle De Interrupo

4K ROM

128 RAM

Temporizador 1 Temporizador 2

Entradas Dos Contadores

CPU

Oscilador

Controle De Barramento

4 Portas De E/S

Porta Serial

TxD P0 P2 P1 P3

RxD

Endereos/Dados
Figura 1 - Diagrama de bloco do 8051

3.1 Organizao da memria. A separao lgica das memrias de programa e de dado permite que a memria de dados possa ser acessada por um endereamento de oito bits. Todavia, um endereamento de 16 bits poder tambm ser gerado atravs de um registro apontador de dados (DPTR). A memria de programa ter o tamanho mximo de 64K bytes onde, nas verses ROM ou EPROM, os 4K bytes menos significativos estaro no chip. Nas verses sem ROM, toda a rea de memria de programa ser externa. O acesso a esta rea de memria ser habilitado pelo sinal PSEN (program strobe enable). A memria de dados ocupa um endereamento separado de 64K bytes. No 8051 os 128 bytes de menos significativos de memria de dados esto no chip. Sinais de leitura (RD) e escrita (WR) so gerados durante um acesso externo de memria de dados. Pode-se fazer um lgica E entre os sinais PSEN e RD combinando as reas de memria de programa externa e memria de dados em uma nica regio de memria. A figura 2 apresenta a estrutura da memria do 8051.

E.B.

Pgina - 3

Microcontrolador 8051

Memria de Programa (Somente leitura)

Memria de Dados

(Leitura / Escrita)
FFH FFFFH

FFFFH ROM Externa

RAM Externa Registros de Funes Especiais RAM

RAM
Externa

80H

1000H 0FFFH __ EA = 0 ROM Externa 0000H ____


PSEN

7FH Interna Uso Geral

__ EA = 1 ROM
Interna

Uso Geral

e Stack

00H

0000H

__
RD

_
WR

Figura 2 - Estrutura da memria do 8051

3.2 Memria de Programa. A figura 3 apresenta o mapa de localizao da parte menos significativa da memria de programa.

0023H 001BH Localizao Das Interrupes 8 bytes 0013H 000BH 0003H

RESET

0000H

Figura 3 - Memria de programa do 8051

Aps o reset. a CPU inicia a execuo a partir da localizao 0000H. Assim nesta localizao dever existir um salto para a rotina de servio de reset, ou programa operacional do sistema. Para o atendimento das rotinas de servio de interrupo so reservados oito bytes de espaamento para cada tipo de
E.B.

Pgina - 4

Microcontrolador 8051

interrupo. Assim, se o servio de interrupo for de pequeno tamanho, como em algumas aplicaes de controle, o mesmo poder residir neste intervalo de oito bytes. Se for mais longo dever saltar para outra regio e continuar a execuo da correspondente rotina. Portanto, para a interrupo externa 0 (zero) ser usado o endereo 0003H, para a interrupo do temporizador 1, o endereo 000BH, etc. Pode-se usar os 4K bytes menos significativos de ROM de programa internos ou, ento, usar estes endereos externamente. A seleo feita atravs do pino EA. Se o mesmo estiver conectado ao nvel alto (Vcc), o processador busca o programa dos endereos 0000H at 0FFFH diretamente na ROM interna e o programa dos endereos I OOOH at FFFFH na ROM externa. Se o pino EA estiver conectado ao nvel baixo, todo o endereamento de programa, de 0000H at FFFFH, ser buscado na memria ROM externa. As verses sem ROM devem tambm ter este pino externamente conectado ao nvel 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 configurao necessria para execuo externa de programa. Note que as linhas da porta 0 e da porta 2 sero usadas com funo de endereamento, durante o ciclo de busca de memria externa de programa. A porta 0 opera como multiplexador de endereos e dados. Ela emite o byte menos significativo do endereo, vai para um estado de alta impedncia e recebe o byte endereado da memria de programa. Durante o tempo em que o byte menos significativo do endereo for vlido, o sinal ALE (habilitador de Latch de endereamento) atua para memorizao deste valor nos latches.

80C51

EPROM

P1

P0 __ EA
LATCH

Dados

ALE P2 ____ PSEN

Endereo

P3

__ OE

Figura 4 - Execuo externa de memria de programa

O endereamento da memria de programa realizado com tamanho de 16 bits. Assim o uso de memria de programa externa sacrifica as portas P0 e P, para funcionar como barramento de endereo.

3.3 Memria de dados. O endereamento externo da memria de dados pode ser feito com largura de 1 ou 2 bytes. Endereamentos de um byte so feitos usando uma ou mais linhas de paginao de RAM. A figura 5 mostra urna configurao para acessar at 2K bytes de RAM externa. A porta 0 (zero) opera como multiplexador de barramento de endereo e de dado para a memria e trs linhas da porta 2 sero usadas para paginar a RAM. A CPU gera os sinais RD e WR necessrios para acessar a RAM externa.

E.B.

Pgina - 5

Microcontrolador 8051

80C51 c/ ROM interna

RAM

P1

P0 __ EA ALE

Dados

Vcc LATCH Endereo

__ P3 P2
RD WR

E/S

Bits de paginao

___
WE

__
OE

Figura 5 - Acesso a memria de dados externa

Neste caso, se a memria de programa do sistema for interna, os outros bits da porta 2 ficaro disponveis para entrada e sada. Endereamento de dois bytes tambm poder ser usado. Neste caso o byte de endereamento superior ser enviado pela porta 2. A figura 6 apresenta o mapeamento da memria de dados interna.
FFH 128 MSB 80H 7FH 128 LSB 00H

Acesso Somente por Endereamento Indireto Acesso por Endereamento Direto ou Indireto

Acesso por Endereamento Direto Portas Status Bits de Controle Temporizadores Apontadorde Stack Acumulador, etc.

Registros De funo Especial

Figura 6 - Memria de dados interna

Este espao de endereamento est dividido em trs blocos, denominados por 128 bytes inferiores, 128 bytes superiores e espao de registros de funo especial (SFR). O endereamento de dados interno sempre de tamanho de um byte, o que implica num espao de 256 bytes somente. Entretanto, o modo de endereamento para RAM interna de fato acessa 384 bytes, usando um simples truque. Endereamento direto maior que 7FH acessa o endereamento dos registros de funo especial, correspondendo ao apontador de pilha, acumulador, temporizadores, portas, controle de bits, status, etc. Endereamento indireto maior que 7FH acessam os 128 bytes superiores. Apesar de ocuparem o mesmo bloco de endereamento (80H at FFH) so entidades fisicamente separadas. No 8051 e suas verses sem ROM, ou com EPROM, no so implementados os 128 bytes superiores de RAM interna. A figura 7 apresenta os 128 bytes superiores de RAM interna. Os 128 bytes menos significativos da RAM de todos os 8051 so mapeados conforme a figura 8. Os primeiros 32 bytes so agrupados em quatro bancos de oito registros. Instrues referem-se a estes registros como R0 at R7. Dois bits para palavra de status de programa (PSW) selecionam qual dos bancos de registros ser usado. Isto possibilita maior eficincia no uso de espao de cdigo, visto que instrues de registros so menores que instrues que usam endereamento direto.
E.B.

Pgina - 6

Microcontrolador 8051

Os prximos 16 bytes acima dos bancos de registros formam um espao de memria de bloco de bits endereveis. O conjunto de instrues do 8051 inclui uma larga seleo de instrues de nico bit. Os 128 bits desta rea podem ser diretamente endereado por estas instrues. Os endereos dos bits vo de 00H at 7FH. Todos os 128 bytes inferiores desta regio de memria podero ser acessados por endereamento direto, ou indireto. Entretanto, os 128 bytes superiores somente sero acessados por endereamento indireto. A figura 9 apresenta um resumo da rea correspondente aos registros de funo especial (SRF). Estes registros incluem latches das portas, temporizadores, controle de perifricos, etc. Estes registros podem somente ser acessado por endereamento direto. Dezesseis endereos deste espao de registros so endereados por bytes ou por bits. Os endereos de bits so aqueles terminados por 0H (80H, 90H , ..., FOH) ou por 8H (88H, 98H, ..., F8H).
FFH Espao sem Endereamento De BIT 80H

Figura 7 - 128 bytes superiores da RAM interna


MSB MSB LSB LSB

FFH

7FH 30H 2FH 2EH 2DH 2CH 2BH 2AH 29H 28H 27H 26H 25H 24H 23H 22H 21H 20H 1FH 18H 17H 10H 0FH 08H 07H 00H F0H F7

Registradores De Hardware

F6 F5 F4 F3 F2 F1 F0 B

7F 77 6F 67 5F 57 4F 47 3F 37 2F 27 1F 17 0F 07

7E 76 6E 66 5E 56 4E 46 3E 36 2E 26 1E 16 0E 06

7D 75 6D 65 5D 55 4D 45 3D 35 2D 25 1D 15 0D 05

7C 7B 74 73 6C 6B 64 63 5C 5B 54 53 4C 4B 44 43 3C 3B 34 33 2C 2B 24 23 1C 1B 14 13 0C 0B 04 03 Banco 3 Banco 2

7A 72 6A 62 5A 52 4A 42 3A 32 2A 22 1A 12 0A 02

79 71 69 61 59 51 49 41 39 31 29 21 19 11 09 01

78 70 68 60 58 50 48 40 38 30 28 20 18 10 08 00

E8H E0H E7 E6 E5 E4 E3 E2 E1 E0 ACC D8H D0H D7 D6 D5 D4 D3 D2 D1 D0 PSW B8H --

--

-- BC BB BA B9 B8 IP

B0H B7 B6 B5 B4 B3 B2 B1 B0 P3 A8H AF

--

-- AC AB AA A9 A8 IE

A0H A7 A6 A5 A4 A3 A2 A1 A0 P2 98H 9F 9E 9D 9C 9B 9A 99 90H 97

98 SCON

96 95 94 93 92 91 90 P1 88 TCON

Banco 1
88H 8F 8E 8D 8C 8B 8A 89

Banco 0
80H 87

86 85 84 83 82 81 80 P0

Figura 8 128 bytes inferiores da RAM interna

Figura 9 Espao de registros de funo especial

4 - A Arquitetura do 8051
E.B.

Pgina - 7

Microcontrolador 8051

O 8051 e seus derivados so fabricados nas verses MOS e CMOS. Sua caracterstica de arquitetura fortalecida e seu conjunto de instrues resultam em um controlador de baixo custo, usado em aplicaes que requerem at 64K bytes de memria de programa e at 64K bytes de memria de dados. As figuras 10 e 11 apresentam a configurao de pinagem para os modelos 8031/8051/8751, nas verses de encapsulamentos DIP e QFP.
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST / VPD RxD / P3.0 TxD / P3.1 INT0 / P3.2 INT1 / P3.3 T0 / P3.4 T1 / P3.5 WR / P3.6 RD / P3.7 XTAL2 XTAL1 Vss 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 Vcc P0.0 / AD0 P0.1 / AD1 P0.2 / AD2 P0.3 / AD3 P0.4 / AD4 P0.5 / AD5 P0.6 / AD6 P0.7 / AD7 EA / Vpp ALE/ PROG PSEN P2.7 / A15 P2.6 / A14 P2.5 / A13 P2.4 / A12 P2.3 / A11 P2.2 / A10 P2.1 / A9 P2.0 / A8

DIP

Figura 10 Pinagem do 8031/8051 /8751 na verso DIP

6 5 4 3 2 1 44 43 42 41 40 P1.5 P1.6 P1.7 RST / VPD RxD / P3.0 n.c. TxD / P3.1 INT0 / P3.2 INT1 / P3.3 T0 / P3.4 T1 / P3.5 7 8 9 10 11 12 13 14 15 16 17 39 38 37 36 35 34 33 32 31 30 29 P0.4 / AD4 P0.5 / AD5 P0.6 / AD6 P0.7 / AD7 EA / Vpp n.c. ALE/ PROG PSEN P2.7 / A15 P2.6 / A14 P2.5 / A13

18 19 20 21 22 23 24 25 26 27 28
WR / P3.6 WR / P3.7 XTAL 2 XTAL 1 Vss n.c. P2.0 / A8 P2.1 / A9 P2.2 / A10 P2.3 / A11 P2.4 / A12 Figura 11 Pinagem do 8031/8051/ 8751 na verso Quad Pack

E.B.

P1.4 P1.3 P1.2 P1.1 P1.0 n.c. Vcc P0.0/ AD0 P0.1/ AD1 P0.2/ AD2 P0.3/ AD3 8 0 5 1

Pgina - 8

Microcontrolador 8051

4.1 Funo dos Pinos do 8051.


COMUM: (VSS) FONTE: (VCC) PORTA 0: Pino de entrada de referncia zero volts. Pino de entrada de tenso de alimentao de +5 volts.

A porta 0 uma porta bidirecional de 8 bits, com sada dreno aberto, ou entrada de alta (P0.0 - P0.7) impedncia. usada para multiplexar o barramento de dados e o barramento de endereo menos significativo, durante o acesso de memria de dados externa, ou de memria de programa externa. No 8751 esta porta tambm usada para verificao do cdigo do byte e, neste caso, so necessrios o uso de resistores "pull-up" externos. A porta 1 uma porta bidirecional de 8 bits com resistores "pull-up" internos. Assim estes PORTA 1: (P1.0 P1.7) pinos podero funcionar como entradas, ou sadas Se uma entrada estiver conectada ao nvel baixo, ela fornecer corrente, devido aos resistores "pull-up" internos. Assim, deve-se consultar as caractersticas eltricas deste circuito. Os pinos da porta 1 tambm recebem o endereo menos significativo, durante a verificao de memria de programa para o 8751. A porta 2 uma porta bidirecional de 8 bits com resistores "pull-up" internos. Esta porta PORTA 2: (P2.0 - P2.7) usada para colocar o byte de endereo mais significativo, quando um ciclo de busca externo de memria de programa, ou de dado, com endereo de 16 bits, est sendo realizado (MOVX @ DPTR). Durante o acesso externo de memria de dados que usa endereo de 8 bits (MOV @ Ri), a porta 2 emite os contedos do registro de funo especial P2. A porta 3 uma porta bidirecional de 8 bits com resistores "pull-up" internos. A porta 3 PORTA 3: (P3.0 - P3.7) tem funes especiais para o 8051 que inclui as operaes de comunicao serial, interrupes externas, temporizaes e sinais de leitura escrita como se segue: RxD (P3.0) - entrada da porta serial. TxD (P3.1) - sada da porta serial. INT0 (P3.2) - entrada de interrupo externa nvel 0. INT1 (P3.3) - entrada de interrupo externa nvel 1. TO (P3.4) - entrada externa para temporizador 0. T1 (P3.5) - entrada externa para temporizador 1. WR (P3.6) - sada habilitadora de escrita para memria de dados externa RD (P3.7) - sada habilitadora de leitura para memria de dados externa. RESET: (RST) Um nvel alto neste pino com durao de dois ciclos de mquina. enquanto o oscilador estiver operando, realiza uma inicializao (reset) do circuito. Um resistor interno ligado a Vss permite um reset na energizao do sistema, somente usando um capacitor externo ligado a VCC. ALE/PROG: Este pino opera como sada habilitadora de latches de endereamento, durante um acesso a memria externa. Em operao normal, ALE emitido em uma taxa de 1/6 da freqncia de oscilao e pode ser usado para temporizao externa. Nas verses com EPROM interna (8751) este pino opera como entrada recebendo o pulso de programao (PROG), durante a programao da EPROM Este pino uma sada que habilita a leitura de uma memria de programa externa. PSEN PSEN: no ser ativado durante uma busca na regio de memria de programa interna. Este pino uma entrada que dever ser ligado ao nvel alto, para que o processador tenha EA/VPP: acesso a memria interna de programa, nos endereos de 0000H at 0FFFH e acesso a memria externa de programa, para endereos acima de OFFFH. Se estiver ligado ao nvel baixo, toda a rea de memria de programa, de (3000H a FFFFH, ser externa. Nas verses com EPROM interna (8751), este pino tambm recebe a tenso de programao de 12,75V, durante a programao da EPROM. Nas verses sem ROM interna, EA deve ser conectado ao nvel baixo. Entrada para o Oscilador inversor interno e para o circuito gerador de temporizao interXTAL 1: no. a sada do oscilador amplificador e inversor interno. XTAL 2:

E.B.

Pgina - 9

Microcontrolador 8051

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 endereamento de RAM

RAM

Latch da Porta 0

Latch da Porta 2

ROM/EPROM

Registro de Endereo de Programa Registro B ACUMULADOR Apontador de Stack Buffer

TMP2

TMP1

ALU Tempori- Registro zador de e InstruControle es

PCON SCON TMOD TCON TH0 TL0 TH1 TL1 SBUF IE IP Blocos de Temporizador Porta Serial e Interrupo

Incrementador de PC Contador de Programa DPTR

PSW

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 contm uma memria ROM interna de 4K x 8 bits usada como memria de programa. O 8031 a verso sem esta memria. O 8751 a verso com EPROM interna. Alm da memria ROM o mesmo contm 128 x 8 bits de RAM, 32 linhas de entrada e sada distribudas em quatro portas paralelas, dois contadores/temporizadores de 16 bits, uma estrutura de interrupo de dois nveis, uma porta serial para comunicao de multiprocessador, oscilador interno e circuito de temporizao circuito de expanso de perifricos ou UART "full duplex". Em adio o circuito opera com dois modos de consumo de potncia selecionveis por software, somente implementado nas verses 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 interrupo continuam operando normalmente. O modo baixo consumo mantm o contedo da RAM mas "congela" o oscilador, fazendo com que todas as outras funes estejam inoperantes. Existem cinco verses de velocidade para a famlia 8031/8051/8751 19 MHz, 16 MHz, 24 MHz, 30 MHz e 33 MHz. 4.2 TEMPORIZAO DA CPU.

E.B.

Pgina - 10

Microcontrolador 8051

Todo microcontrolador da famlia 8051 possui um oscilador interno que poder ser usado para temporizao da CPU. Para tal, um cristal dever ser conectado entre os pinos XTAL1 e XTAL2 do microcontrolador, com capacitores conectados entre estes pinos e a tenso de referncia Vss. Assim, o gerador de temporizao interna definir a seqncia de estados para o ciclo de mquina do 8051. 4.3 CICLO DE MQUINA. Um ciclo de mquina consistir de uma seqncia de seis estados, numerados de S1 a S6. Cada estado dura dois perodos do oscilador. Ento, um ciclo de mquina tem 12 perodos do oscilador. Por exemplo 1 s para uma freqncia de 12 MHz. Cada estado dividido em duas fases: fase 1 e fase 2, com durao de um perodo de oscilador. A figura 13 mostra uma seqncia de busca/execuo para alguns tipos de instruo. S1
OSC. Xtal2

S2

S3

S4

S5

S6

S1

S2

S3

S4

S5

S6

S1

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

ALE Leitura de OpCode Leitura do Prximo Leitura do Prximo OpCode (Descartado) OpCode (Novamente) S4 S5 S6

S1

S2

S3

A) Instrues de 1 byte, 1ciclo. Leitura de OpCode Leitura do Segundo Byte S1 S2 S3 S4 S5 S6

Leitura do Prximo OpCode

B) Instrues de 2 bytes, 1 ciclo. Leitura de OpCode Leitura do Prximo OpCode (Descartado) S1 S2 S3 S4 S5 S6 S1 S2 S3

Leitura do Prximo OpCode (Novamente) S4 S5 S6

nenhum ALE C) Instrues de 1 byte, 2 ciclos Leitura de OpCode Leitura do Prximo Nenhuma Busca Leitura do Prximo OpCode (Descartado) OpCode (Novamente) S1 S2 S3 S4 S5 S6 Endereo S1 S2 Dado S3 S4 S5 S6

Acesso memria externa


Figura 13: Sequncia de estados para a famlia 8051

Normalmente em um ciclo de mquina so gerados duas buscas de programa, mesmo que a instruo, sendo executada, no requeira. Neste caso, a CPU simplesmente ignora a busca extra e o contador de
E.B.

Pgina - 11

Microcontrolador 8051

programa no ser incrementado. A execuo de uma instruo de um ciclo inicia-se no estado S1 do ciclo de mquina, quando o opcode ser armazenado no registro de instruo. Uma segunda busca ocorrer durante o estado S4 do mesmo ciclo de mquina. A execuo estar completa no final do estado S6. A instruo MOVX ser executada em dois ciclos de mquina. Nenhuma busca de programa ser gerada no segundo ciclo desta instruo. As sequncias de busca/execuo sero as mesmas tanto para a memria de programa interna, quanto para a memria de programa externa. O tempo de execuo no depende de onde ser buscado a instruo. 4.4 Reset. A entrada de reset feita atravs do pino RST, conectado a um circuito do tipo Schmitt trigger. Um reset realizado mantendo-se a entrada RST em nvel alto pelo menos por dois ciclos de mquina (24 perodos do oscilador) com o oscilador operando. O reset ir zerar todos os registros de funes especiais, exceto os latches das portas o apontador de stack e o registro SBUF. Os registros das portas sero inicializados com FFH7 o apontador de stack; com OFH e o SBUF ser indeterminado. A tabela 2 resume estes valores.
REGISTRO
PC

VALOR 0000H 00H 00H 00H 07H 0000H FFH XXX00000 B 0XX00000 B 00H

REGISTRO TCON

VALOR 00H

ACC B PSW SP DPTR P0-P3 IP IE TMOD

TH0 00 H TL0 00 H TH1 00 H TL1 00 H SCON 00 H SBUF Indeterm. PCON (NMOS) 0XXXXXXX B PCON (CMOS) 0XXX0000 B

Tabela 2 - Valores de SFR aps reset

A RAM interna no ser afetada pelo reset. Na energizao do sistema, o seu contedo ser aleatrio e, portanto, indeterminado. 4.5 Reset na energizao do sistemas. Um reset automtico pode ser obtido quando o pino RST for conectado a fonte VCC atravs de um capacitor de 10 F, e a referencia Vss, atravs de um resistor de 872 Kohms. Os componentes desta famlia, construdos na verso CMOS, no necessitam do resistor. Porm, sua presena no ser prejudicial. Quando o sistema for energizado, o circuito manter um nvel alto no pino RST, por um tempo dependente dos valores do capacitor e do resistor, que definem o tempo de carga do capacitor. Para garantir urna boa inicializao, o sinal de reset deve ter uma durao acima de dois ciclos de mquina de sistema (normalmente alguns mseg.).

E.B.

Pgina - 12

Microcontrolador 8051

4.6 Modos De Operao com Economia de Energia. Para aplicaes onde o consumo de potncia ser crtico, as verses CMOS permitem a reduo do mesmo. Para tal, atravs de programao poder ser acionado a economia de energia. Esta caracterstica s possvel nas verses CMOS. As verses CMOS possuem dois tipos de reduo de potncias, denominados de operao no modo "ocioso" (idle) e no modo "baixo consumo" (power-down). Este controle realizado por dois bits (PD e IDL) do registro de funo especial de controle de potncia, PCON "power control". No modo ocioso, com IDL = 1, o oscilador continua operando, mas a sua sada de temporizao no ser levada para a CPU Somente as interrupes, porta serial e temporizadores continuaram operando. Este modo ser encerrado por um sinal de interrupo, ou atravs do sinal de reset. No modo baixo consumo, com PD = 1, o oscilador estar bloqueado Assim, todas as funes estaro paradas, mantendo-se todos os contedos da RAM interna e dos registros de funo especial. Os sinais ALE e PSEN ficaro em nvel baixo. Neste modo de operao, a tenso de alimentao poder ser reduzida para at 2 Volts. Entretanto, deve-se ter a certeza de que a tenso no ser reduzida antes da ativao 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 funo especial, acessado pelo endereo 87H, que ser analisado no captulo registros de funo especial. Se forem escritos valores 1 simultneos em PD e IDI, o modo baixo consumo ser assumido. 4.7 REGISTROS DE FUNO ESPECIAL . A figura 14 apresenta a rea de memria interna denominada rea de registros de funo especial (SFR). Estes registros sero acessados por endereamento direto.
8 bytes
FF F7 EF E7 DF D7 CF C7 BF B7 AF A7 9F 97 8F 87 PCON F8

F0 E8

Podem sem Bit Endereados So Bit Endereados Endereados por Byte No Implementados

ACC E0
D8

PSW D0
C8 C0

TH1

TH0

TL1 DPH

TL0 DPL

IP P3 IE P2 SBUF SCON P1 TMOD TCON SP P0

B8 B0 A8 A0 98 90 88 80

Figura 14 - Mapa de memria dos Registros de Funo Especial do 8051

Note que nesta regio nem todos os endereos foram ocupados. As posies no ocupadas no foram implementados no componente. Assim, acessos de leituras nestes endereos geralmente retornam valores aleatrios, enquanto que acessos de escrita no tero efeitos. Usurios de programao devem evitar a escrita nestas localizaes, visto que outros produtos desta famlia podero estar usando tais endereos para novas implementaes. Os registros com endereamento terminado por OH ou 8H so tambm bits endereveis. A figura 15 apresenta os endereos, ou smbolos, ou funes dos bits dos registros de funo especial do 8031/8051.

E.B.

Pgina - 13

Microcontrolador 8051

Smbolo B* ACC* PSW*

Descrio

Endereo Endereo do Bit, Smbolo ou Funo Alternativa da Porta MSB LSB Direto
F6H E6H D6H AC BEH -B6H WR AEH -A6H A14 F5H E5H D5H F0 BDH -B5H T1 ADH -A5H A13 F4H E4H D4H RS1 BCH PS B4H T0 ACH ES A4H A12 F3H E3H D3H RS0 BBH PT1 B3H INT1 ABH ET1 A3H A11 F2H E2H D2H OV BAH PX1 B2H INT0 AAH EX1 A2H A10 F1 H E1H D1H -B9H PT0 B1H TxD A9H ET0 A1H A9 F0H E0H D0H P B8H PX0 B0H RxD A8H EX0 A0H A8

FFH-F1H F7H F0H EFH-E1H Acumulador E7H E0H DFH-D1H Palavra Status de Programa D7H D0H
Registrador B CY

IP*

Habilitador de Interrupo

BFH-C9H B8H B7H-B1H B0H

BFH -B7H RD

P3*

Porta 3

IE*

Habilitador de Interrupo

AFH-A9H AFH A8H


EA

P2*

Porta 2

A7H-A1H A7H A0H


A15

SBUF Buffer de Dados Serial SCON* Controlador Serial

9FH-9AH 99H 98H 97H-91H 90H

9FH SM0 97H --

9EH SM1 96H --

9DH SM2 95H --

9CH REN 94H --

9BH TB8 93H --

9AH RB8 92H --

99H TI 91H T2EX

98H RI 90H T2

P1*

Porta 1

TH1 TH0 TL1 TL0 TMOD TCON* Controle de Temporizador PCON DPH DPL SP P0*
Controle de Potncia Data Pointer High Data Pointer Low Stack Pointer Porta 0

8FH-8EH 8DH 8CH 8BH 8AH GATE 89H 8FH 88H 87H 86H-84H 83H 82H 81H 80H
TF1 SMOD

C/T 8EH TR1 --

M1 8DH TF0 --

M0 8CH TR0 --

GATE 8BH IE1 GF1

C/T 8AH IT1 GF0

M1 89H IE0 PD

M0 88H IT0 IDL

87H AD7

86H AD6

85H AD5

84H AD4

83H AD3

82H AD2

81H AD1

80H AD0

Figura 15: Bits dos Registradores de Funo Especial do 8051

4.8 Descrio detalhada dos Registradores do 8051.


E.B.

Pgina - 14

Microcontrolador 8051

4.8.1 Acumulador (ACC). O registro acumulador (ACC) referido simplesmente pela letra "A" nos mnemnicos das instrues. acessado pelo endereo E0H e um registro de bit enderevel, onde os seus bits sero acessados pelos endereos E0H at E7H, respectivamente do menos significativo at o mais significativo. Note que existem instrues que sero executadas sem o uso do acumulador. Por exemplo, em operaes Booleanas o valor do acumulador ser preservado. Nestas operaes o bit de carry ser usado como acumulador. 4.8.2 Registro B (B). O registro B usado durante operao de multiplicao e de diviso. Para outras instrues este registro poder ser tratado como um registro de armazenagem temporria. um registro bit enderevel. cujo endereo de acesso F0H. Os seus bits so acessados pelos endereos F0H at F7H. 4.8.3 Registro de palavra de status de programa (PSW). O registro PSW contm as informaes de status de programa que refletem o estado corrente da CPU. Este um registro acessado pelo endereo D0H e tambm bit enderevel. A tabela 3 abaixo, apresenta um resumo dos bits do registro PSW.
Smbolo EndereaFuno mento de bit PSW.7 CY D7H Flag de carry nas operaes aritmticas e acumulador nas operaes Booleanas. PSW.6 AC D6H Flag de carry auxiliar para as operaes BCD PSW.5 F0 D5H Flag disponvel para propsito geral PSW.4 RS1 D4H Bit 1 de seleo do Banco de Registros PSW.3 RS0 D3H Bit 0 de seleo do Banco de Registros PSW.2 OV D2H Flag de Overflow PSW.1 -D1H Flag definvel pelo usurio, disponvel para propsito 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

Bit

A seleo do banco de registros, realizada pelos bits RS1 e RS0, seleciona os seguintes endereos:
RS1 RS0 0 0 0 1 1 0 1 1 Seleo Banco 0 Banco 1 Banco 2 Banco 3 Endereos de cada banco 00H 07H 08H 0FH 10H 17H 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 armazenado na pilha, durante a execuo de uma instruo PUSH, ou CALL. Assim, a regio de pilha (stack) ir residir no espao de RAM interna do 8051. O SP inicializado com o valor 07H aps ocorrer um reset. Isto faz com que a pilha inicie na localizao 08H. Este acessado pelo endereo 81H e, portanto, no bit enderevel. 4.8.5 Registro apontador de dados (DPTR).
E.B.

Pgina - 15

Microcontrolador 8051

O registro apontador de dados formado por um byte alto (DPH) acessado pelo endereo 83H e por um byte baixo (DPL), acessado pelo endereo 82H. A sua funo a de manter um endereo de 16 bits, usado para acessar memrias externas. Portanto, este registro pode ser manipulador como um registro 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 so latches das portas 0, l, 2 e 3, respectivamente. O registro P0 acessado pelo endereo 80H. O registro P1, pelo endereo 90H. O P2, pelo endereo A0H e o P3 por B0H. Todos estes registros so bit enderevel. Escrever 1 no bit de uma porta causar uma sada de nvel 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 registro buffer transmissor e um registro buffer receptor. Estes registros so denominados por SBUF e so diferenciados pelas operaes de leitura ou escrita. Quando o dado for movido para SBUF, ele ir para o buffer transmissor que executar a operao de transmisso serial, iniciada pelo prprio movimento do dado. Quando o dado for movido de SBUF, ele ser lido do buffer de recepo. Este registro acessado pela escrita, ou pela leitura do endereo 99H. 4.8.8 REGISTRO DOS TEMPORIZADORES. O par de registros (TH0, TL0) e (TH1, TL1) formam o registro contador para o temporizador/contador 0 e 1, respectivamente. So acessados respectivamente pelos endereos 8CH, 8AH, 8DH e 8BH. 4.8.9 REGISTROS DE CONTROLE. Os registros de funo especial denominados IP, IE, TMOD, TCON, SCON e PCON contm bits de controle e de status para o sistema de interrupo, os temporizadores/contadores e a porta serial.

E.B.

Pgina - 16

Microcontrolador 8051

5. BIBLIOGRAFIA - The 8051 Microcontroler. Hardware, Software and Interfacing Stewart, James W. Regents / Prentice Hall - Aplicaes Prticas do Microcontrolador 8051. Silva Jr., Vidal Pereira da rica

E.B.

Pgina - 17

Вам также может понравиться