Você está na página 1de 16

Microncontrolador 8051 1 - Introdução.

Os microprocessadores são circuitos integrados extremamente flexíveis devido às suas características 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 microcomputador 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 entrada/saída serial, temporizadores, periféricos paralelos, conversores AD, conversores DA, etc. Tais componentes 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 microcomputador, onde todo recurso de hardware utilizado estará dentro do próprio componente, ou no modo 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 versões tendo ROM interna, EPROM interna ou versão sem ROM interna. A tabela l apresenta os principais membros desta família: Com Rom Sem ROM Com Interna EPROM 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 Temporizadore s de 16 bits 2 2 3 3 2 2 2 3 + WD 2 + WD 3 + WD 3 + WD 2

Tabela 1 – Microcontroladores da família 8051

8051 . contendo memória EEPROM e características de segurança do sistema. • ROM gerador de caracteres de 60 x 18 x 14. • 4K bytes de memória de programa no chip. • Polaridade de entrada e saída de vídeo programável. 512 bytes de RAM. O 80C51 e seus derivados são versões CMOS do 8051. 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. • Espaço de endereçamento de 64K bytes de memória de dados. Maiores detalhes são fornecidos nos manuais dos fabricantes. • 32 linhas de entrada/saída bidirecionais e individualmente endereçadas. • 03 saídas de vídeo digital. 83C552 É uma versão extendida do 8051 contendo 08 canais de conversor A/D de 10 bits. 04 temporizadores/contadores. 8K bytes de memória de programa no chip. • Encapsulamento nas versões DIP .44 pinos. • RAM de display de 128 x 10. As principais características do 8051 são: • CPU otimizada de 8 bits: • Processamento Booleano extensivo (operações de 1 bit). • 03 temporizadores/contadores. Contém: • Controlador de tela. • Transmissor/receptor universal assíncrono "FVLL DUPLEX". contendo: 8052 • 256 bytes de RAM no chip. 04 saídas para alta corrente. 83C451 É a versão do 8051 com entrada/saída extendida. dreno aberto. Operando em baixa freqüência (de 32KHz a 20MHz). • O 8031 é a versão sem ROM. 03 temporizadores internos e temporizador watchdog. 83C55O É uma versão de 8051 contendo 08 canais de conversor AID de 08 bits. dreno aberto. tendo 07 portas de entrada/saída com recursos de interface direta e interface de impressora paralela. • 128 bytes de RAM no chip. • 01 PWM de 14 bits. saídas PWM e 06 portas de entrada/saída. • 08 PWM de seis bits. • Controle de multiplexador/mixador e intensidade de fundo de tela. 83CL41O É a versão do 8051 para tensões de alimentação de 1. 80C053 É a versão do 8051 para aplicações em controle central de televisão. • Oscilador de temporização no chip.Existem outros membros desta família que incorporam padrão de comunicação serial I²C. 83C528 É uma versão extendida do 8051 com 32K bytes de memória de programa. • 06 sinais de interrupção. É uma versão fortalecida do 8051.5 a 6 volts. • Os sinais de interrupção com dois níveis de prioridade. maior número de portas paralelas e saídas com modulação por largura de pulso (PWM). portanto com todas as buscas de instruções externas e o 8751 é a versão com EPROM interna. 83C862 É a versão do 8051 desenvolvida para aplicações de pequenos cartões com segurança. • Espaço de endereçamento de 64K bytes de memória de programa.40 pinos e PLCC . • 12 saídas para +12 volts . • 02 contadores/temporizadores de 16 bits.

No 8051 os 128 bytes de menos significativos de memória de dados estão no chip. dois temporizadores. Sinais de leitura (RD) e escrita (WR) são gerados durante um acesso externo de memória de dados. Nas versões sem ROM. O acesso a esta área de memória será habilitado pelo sinal PSEN (program strobe enable). toda a área de memória de programa será externa. quatro portas paralelas. A figura 1 apresenta o diagrama de bloco do 8051. circuito de controle de interrupção e circuito de controle de barramento. porta serial. A memória de programa terá o tamanho máximo de 64K bytes onde. Todo microcontrolador da família 8051 possui espaço de endereçamento de memória de programa separado da memória de dados. A memória de dados ocupa um endereçamento separado de 64K bytes.1 Organização da memória. Pode-se fazer um lógica E entre os sinais PSEN e RD combinando as áreas de memória de . Todavia. memória ROM interna.3 . os 4K bytes menos significativos estarão no chip. Interrupções Externas Controle De Interrupção 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 Endereços/Dados Figura 1 . um endereçamento de 16 bits poderá também ser gerado através de um registro apontador de dados (DPTR).A estrutura de Memória do 8051. Oscilador interno. O mesmo está dividido em unidade central de processamento. memória RAM interna.Diagrama de bloco do 8051 3. nas versões ROM ou EPROM. 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.

A figura 3 apresenta o mapa de localização da parte menos significativa da memória de programa.Estrutura da memória do 8051 3. Assim nesta localização deverá existir um salto para a rotina de serviço de reset. o mesmo poderá residir neste intervalo de oito bytes.Memória de programa do 8051 Após o reset.programa externa e memória de dados em uma única região de memória. Para o atendimento das rotinas de serviço de interrupção são reservados oito bytes de espaçamento para cada tipo de interrupção. Assim. como em algumas aplicações de controle. Portanto. ou programa operacional do sistema. Se for mais longo deverá saltar para outra região e continuar a execução da correspondente rotina.2 Memória de Programa. Memória de Programa (Somente leitura) FFFFH Memória de Dados (Leitura / Escrita) FFH ROM Externa RAM Externa Registros de Funções Especiais RAM 0FFFH FFFFH RAM 1000H 80H 7FH Interna __ EA = 1 ROM Interna 0000H Uso Geral Externa Uso Geral __ EA = 0 ROM e Stack 00H 0000H __ RD Externa ____ PSEN __ WR Figura 2 . para a interrupção . a CPU inicia a execução a partir da localização 0000H. A figura 2 apresenta a estrutura da memória do 8051. 0023H 001BH Localização Das Interrupções 8 bytes 0013H 000BH 0003H RESET 0000H Figura 3 . se o serviço de interrupção for de pequeno tamanho.

A figura 4 apresenta a configuração necessária para execução externa de programa. então. Pode-se usar os 4K bytes menos significativos de ROM de programa internos ou. A figura 5 mostra urna configuração para acessar até 2K bytes de RAM externa. A CPU gera os sinais RD e WR necessários para acessar a RAM externa. de 0000H até FFFFH. Endereçamentos de um byte são feitos usando uma ou mais linhas de paginação de RAM. Note que as linhas da porta 0 e da porta 2 serão usadas com função de endereçamento. vai para um estado de alta impedância e recebe o byte endereçado da memória de programa. etc. Se o mesmo estiver conectado ao nível alto (Vcc). O endereçamento externo da memória de dados pode ser feito com largura de 1 ou 2 bytes. A seleção é feita através do pino EA. 3. para a interrupção do temporizador 1. 80C51 c/ ROM interna RAM P1 P0 __ EA ALE Vcc LATCH Dados Endereço __ RD WR P3 P2 E/S Bits de paginação ___ WE __ OE . usar estes endereços externamente. 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.3 Memória de dados. durante uma busca a ROM interna ele estará desabilitado.Execução externa de memória de programa O endereçamento da memória de programa é realizado com tamanho de 16 bits. 80C51 P1 P0 __ EA LATCH ALE P2 ____ PSEN Endereço EPROM Dados P3 __ OE Figura 4 . As versões sem ROM devem também ter este pino externamente conectado ao nível baixo (Vss). O sinal PSEN é o habilitador de leitura para a ROM externa. A porta 0 opera como multiplexador de endereços e dados. 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. durante o ciclo de busca de memória externa de programa. será buscado na memória ROM externa. todo o endereçamento de programa. o endereço 000BH.externa 0 (zero) será usado o endereço 0003H. Durante o tempo em que o byte menos significativo do endereço for válido. Assim o uso de memória de programa externa sacrifica as portas P0 e P². Se o pino EA estiver conectado ao nível baixo. Ela emite o byte menos significativo do endereço. para funcionar como barramento de endereço. o sinal ALE (habilitador de Latch de endereçamento) atua para memorização deste valor nos latches.

Dezesseis endereços deste espaço de registros são endereçados por bytes ou por bits. Todos os 128 bytes inferiores desta região de memória poderão ser acessados por endereçamento direto. os outros bits da porta 2 ficarão disponíveis para entrada e saída. controle de periféricos. controle de bits. A figura 9 apresenta um resumo da área correspondente aos registros de função especial (SRF). Os 128 bits desta área podem ser diretamente endereçado por estas instruções. Endereçamento de dois bytes também poderá ser usado. Endereçamento indireto maior que 7FH acessam os 128 bytes superiores. temporizadores. Endereçamento direto maior que 7FH acessa o endereçamento dos registros de função especial. F8H). Estes registros podem somente ser acessado por endereçamento direto. acumulador.. Entretanto.. FFH 128 MSB 80H 7FH 128 LSB 00H Acesso Somente por Endereçamento Indireto Acesso por Endereçamento Direto ou Indireto Acesso por Endereçamento Direto Registros De função Especial Portas Status Bits de Controle Temporizadores Apontadorde Stack Acumulador. 128 bytes superiores e espaço de registros de função especial (SFR). A figura 7 apresenta os 128 bytes superiores de RAM interna. visto que instruções de registros são menores que instruções que usam endereçamento direto. 98H. O conjunto de instruções do 8051 inclui uma larga seleção de instruções de único bit. etc.Memória de dados interna Este espaço de endereçamento está dividido em três blocos. FFH Espaço sem Endereçamento De BIT .. Figura 6 . portas. o que implica num espaço de 256 bytes somente. Os endereços dos bits vão de 00H até 7FH. O endereçamento de dados interno é sempre de tamanho de um byte. não são implementados os 128 bytes superiores de RAM interna. FOH) ou por 8H (88H. Entretanto. Neste caso o byte de endereçamento superior será enviado pela porta 2. Isto possibilita maior eficiência no uso de espaço de código.Figura 5 . ou com EPROM. denominados por 128 bytes inferiores. etc. 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. 90H . usando um simples truque. o modo de endereçamento para RAM interna de fato acessa 384 bytes. Instruções 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. os 128 bytes superiores somente serão acessados por endereçamento indireto. se a memória de programa do sistema for interna. Os endereços de bits são aqueles terminados por 0H (80H. ou indireto.. . A figura 6 apresenta o mapeamento da memória de dados interna.. status. temporizadores..Acesso a memória de dados externa Neste caso. No 8051 e suas versões sem ROM. . correspondendo ao apontador de pilha. Estes registros incluem latches das portas. Apesar de ocuparem o mesmo bloco de endereçamento (80H até FFH) são entidades fisicamente separadas. Os próximos 16 bytes acima dos bancos de registros formam um espaço de memória de bloco de bits endereçáveis. etc.

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 -- -- -.AC AB AA A9 A8 IE A0H A7 A6 A5 A4 A3 A2 A1 A0 P2 98H 9F 90H 97 9E 9D 9C 9B 9A 99 98 SCON 96 95 94 93 92 91 90 P1 8E 8D 8C 8B 8A 89 88 TCON 86 85 84 83 82 81 80 P0 Banco 1 88H 8F Banco 0 80H 87 Figura 8 128 bytes inferiores da RAM interna Figura 9 Espaço de registros de função especial .BC BB BA B9 B8 IP B0H B7 B6 B5 B4 B3 B2 B1 B0 P3 A8H AF -- -.

As figuras 10 e 11 apresentam a configuração de pinagem para os modelos 8031/8051/8751.5 / AD5 P0.6 P1.7 / A15 P2. P2.1 / A9 P2.6 / AD6 P0.7 / AD7 EA / Vpp ALE/ PROG PSEN P2.4 / A12 Figura 11 .A Arquitetura do 8051 O 8051 e seus derivados são fabricados nas versões MOS e CMOS.4 / A12 P2.2 P1.3 P1.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.6 / A14 P2.0 / A8 P2.4 P1.1 / A9 P2. usado em aplicações que requerem até 64K bytes de memória de programa e até 64K bytes de memória de dados.3 T0 / P3.5 P1.c. nas versões de encapsulamentos DIP e QFP. Vcc P0.c.1 P1.c.0 P1.2 INT1 / P3.4 P1.0 TxD / P3.3 T0 / P3.6 / AD6 P0.1 INT0 / P3.5 WR / P3.7 XTAL 2 XTAL 1 Vss n.c. ALE/ PROG PSEN P2.6 WR / P3.2 / AD2 P0.2 / A10 P2.4 T1 / P3.1/ AD1 P0.4 T1 / P3.6 P1.0/ AD0 P0.7 RST / VPD RxD / P3.7 / AD7 EA / Vpp n.5 / A13 P2.5 P1.0 n.Pinagem do 8031/8051/8751 na versão DIP 6 5 4 3 2 1 44 43 42 41 40 P1.3 P1.2 P1. P1.3 / A11 P2.2/ AD2 P0. TxD / P3.0 / A8 DIP Figura 10.3 / A11 P2.7 RST / VPD RxD / P3.1 P1.5 / A13 18 19 20 21 22 23 24 25 26 27 28 WR / P3.6 / A14 P2. Sua característica de arquitetura fortalecida e seu conjunto de instruções resultam em um controlador de baixo custo.2 INT1 / P3.5 / AD5 P0.1 / AD1 P0.3 / AD3 P0.0 n.6 RD / P3.4 / AD4 P0.0 / AD0 P0.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.Pinagem do 8031/8051/8751 na versão Quad Pack P1.3/ AD3 8 0 5 1 .4 .1 INT0 / P3.2 / A10 P2.7 / A15 P2.

entrada de interrupção externa nível 0.7) PORTA 3: (P3. A porta 1 é uma porta bidirecional de 8 bits com resistores "pull-up" internos.entrada da porta serial. Nas versões com EPROM interna (8751) este pino opera como entrada recebendo o pulso de programação (PROG). EA deve ser conectado ao nível baixo. durante a programação da EPROM. ou de memória de programa externa. Este pino é uma entrada que deverá ser ligado ao nível alto.7) PORTA 1: (P1. neste caso.1 Função dos Pinos do 8051.4) . deve-se consultar as características elétricas deste circuito. enquanto o oscilador estiver operando.0 . toda a área de memória de programa.3) . TxD (P3. COMUM: (VSS) FONTE: (VCC) PORTA 0: (P0. Assim. No 8751 esta porta também é usada para verificação do código do byte e. T1 (P3. nos endereços de 0000H até 0FFFH e acesso a memória externa de programa. durante um acesso a memória externa.2) . ela fornecerá corrente. INT0 (P3. Este pino opera como saída habilitadora de latches de endereçamento. durante a verificação de memória de programa para o 8751.0 .6) . A porta 3 tem funções especiais para o 8051 que inclui as operações de comunicação serial. quando um ciclo de busca externo de memória de programa. É usada para multiplexar o barramento de dados e o barramento de endereço menos significativo. ou de dado.7) . Nas versões sem ROM interna.saída habilitadora de leitura para memória de dados externa.7) RESET: (RST) ALE/PROG: PSEN: EA/VPP: XTAL 1: XTAL 2: Pino de entrada de referência zero volts. A figura 12 apresenta o diagrama de blocos detalhado do 8031/8051/8751.P2. temporizações e sinais de leitura escrita como se segue: RxD (P3. de (3000 H a FFFFH. durante o acesso de memória de dados externa. É a saída do oscilador amplificador e inversor interno. será externa. ou entrada de alta impedância. Assim estes pinos poderão funcionar como entradas. Durante o acesso externo de memória de dados que usa endereço de 8 bits (MOV @ Ri).4. realiza uma inicialização (reset) do circuito.entrada externa para temporizador 0.5) . ou saídas Se uma entrada estiver conectada ao nível baixo. INT1 (P3. somente usando um capacitor externo ligado a VCC. para endereços acima de OFFFH. Entrada para o Oscilador inversor interno e para o circuito gerador de temporização interno. Se estiver ligado ao nível baixo. Um nível alto neste pino com duração de dois ciclos de máquina. são necessários o uso de resistores "pull-up" externos. TO (P3. devido aos resistores "pull-up" internos. A porta 2 é uma porta bidirecional de 8 bits com resistores "pull-up" internos.P3. a porta 2 emite os conteúdos do registro de função especial P2. Pino de entrada de tensão de alimentação de +5 volts. .saída da porta serial. durante a programação da EPROM Este pino é uma saída que habilita a leitura de uma memória de programa externa. Os pinos da porta 1 também recebem o endereço menos significativo.1) . interrupções externas.0) . Esta porta é usada para colocar o byte de endereço mais significativo. com endereço de 16 bits. Um resistor interno ligado a Vss permite um reset na energização do sistema. ALE é emitido em uma taxa de 1/6 da freqüência de oscilação e pode ser usado para temporização externa. A porta 3 é uma porta bidirecional de 8 bits com resistores "pull-up" internos. PSEN não será ativado durante uma busca na região de memória de programa interna. com saída dreno aberto.7) PORTA 2: (P2.0 – P1.saída habilitadora de escrita para memória de dados externa RD (P3. está sendo realizado (MOVX @ DPTR). Em operação normal. Nas versões com EPROM interna (8751).75V.P0.entrada externa para temporizador 1. WR (P3. A porta 0 é uma porta bidirecional de 8 bits.0 . para que o processador tenha acesso a memória interna de programa.entrada de interrupção externa nível 1. este pino também recebe a tensão de programação de 12.

Existem cinco versões de velocidade para a família 8031/8051/8751 19 MHz. uma porta serial para comunicação de multiprocessador. fazendo com que todas as outras funções estejam inoperantes.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.0 ---.0 ---. uma estrutura de interrupção de dois níveis.P2. temporizadores. O 8031 é a versão sem esta memória.0 ----. 16 MHz. 32 linhas de entrada e saída distribuídas em quatro portas paralelas.P0. somente implementado nas versões CMOS. oscilador interno e circuito de temporização circuito de expansão de periféricos ou UART "full duplex". dois contadores/temporizadores de 16 bits. enquanto que a RAM.7 Drivers da Porta 0 Registro de endereçamento de RAM Drivers da Porta 2 RAM Latch da Porta 0 Latch da Porta 2 ROM/EPROM Registro de Endereço de Programa Registro B ACUMULAD OR TMP2 TMP1 Apontador de Stack PCON SCON TMOD TCON TH0 TL0 TH1 TL1 SBUF IE IP Blocos de Temporizador Porta Serial e Interrupção Buffer Incrementador de PC Contador de Programa DPTR ALU Tempori.7 P2. porta serial e sistema de interrupção continuam operando normalmente.P0. O modo denominado "ocioso" (idle) e o modo "baixo consumo" (power-down). O 8751 é a versão com EPROM interna.P3. Além da memória ROM o mesmo contém 128 x 8 bits de RAM.0 ----. O modo ocioso "congela" a CPU. 4.Registro zador de e InstruControle ções PSW Latch da Porta 1 Latch da Porta 3 Oscilador Drivers da Porta 1 P1. Em adição o circuito opera com dois modos de consumo de potência selecionáveis por software. O modo baixo consumo mantém o conteúdo da RAM mas "congela" o oscilador.7 Drivers da Porta 3 P3. 30 MHz e 33 MHz.2 TEMPORIZAÇÃO DA CPU. 24 MHz.P1. .

Uma segunda busca ocorrerá durante o estado S4 do mesmo ciclo de máquina. 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 S1 S2 S3 Leitura do Próximo OpCode (Descartado) S4 S5 S6 Leitura do Próximo OpCode (Novamente) A) Instruções de 1 byte. com capacitores conectados entre estes pinos e a tensão de referência Vss. 1 ciclo. Cada estado é dividido em duas fases: fase 1 e fase 2. Então. um cristal deverá ser conectado entre os pinos XTAL1 e XTAL2 do microcontrolador.3 CICLO DE MÁQUINA.Todo microcontrolador da família 8051 possui um oscilador interno que poderá ser usado para temporização da CPU. numerados de S1 a S6. Para tal. com duração de um período de oscilador. Assim. 4. S1 OSC. mesmo que a instrução. um ciclo de máquina tem 12 períodos do oscilador. Um ciclo de máquina consistirá de uma seqüência de seis estados. Leitura de OpCode S1 S2 S3 Leitura do Segundo Byte S4 S5 S6 Leitura do Próximo OpCode B) Instruções de 2 bytes. a CPU simplesmente ignora a busca extra e o contador de programa não será incrementado. quando o opcode será armazenado no registro de instrução. 1ciclo. Cada estado dura dois períodos do oscilador. 2 ciclos Leitura de OpCode Leitura do Próximo OpCode (Descartado) S3 S4 S5 S6 Endereço Nenhuma Busca nenhum ALE Leitura do Próximo OpCode (Novamente) S3 S4 S5 S6 S1 S2 S1 S2 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. o gerador de temporização interna definirá a seqüência de estados para o ciclo de máquina do 8051. A execução estará completa no final do estado S6. Por exemplo 1 µs para uma freqüência de 12 MHz. A execução de uma instrução de um ciclo inicia-se no estado S1 do ciclo de máquina. . sendo executada. Neste caso. A figura 13 mostra uma seqüência de busca/execução para alguns tipos de instrução. Leitura de OpCode S1 S2 S3 Leitura do Próximo OpCode (Descartado) S4 S5 S6 S1 S2 S3 Leitura do Próximo OpCode (Novamente) S4 S5 S6 C) Instruções de 1 byte. não requeira.

que definem o tempo de carga do capacitor. 4. Para garantir urna boa inicialização.Valores de SFR após reset A RAM interna não será afetada pelo reset. Quando o sistema for energizado. 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. sua presença não será prejudicial. o circuito manterá um nível alto no pino RST. portanto. o sinal de reset deve ter uma duração acima de dois ciclos de máquina de sistema (normalmente alguns mseg. quanto para a memória de programa externa.A instrução MOVX será executada em dois ciclos de máquina. Na energização do sistema. exceto os latches das portas o apontador de stack e o registro SBUF. REGISTRO PC ACC B PSW SP DPTR P0-P3 IP IE TMOD VALOR 0000H 00H 00H 00H 07H 0000H FFH XXX00000 B 0XX00000 B 00H REGISTRO TCON TH0 TL0 TH1 TL1 SCON SBUF PCON (NMOS) PCON (CMOS) VALOR 00H 00 H 00 H 00 H 00 H 00 H indeterm.4 Reset. Os registros das portas serão inicializados com FFH7 o apontador de stack. O reset irá zerar todos os registros de funções especiais. por um tempo dependente dos valores do capacitor e do resistor. O tempo de execução não depende de onde será buscado a instrução. A entrada de reset é feita através do pino RST.). A tabela 2 resume estes valores. Um reset automático pode ser obtido quando o pino RST for conectado a fonte VCC através de um capacitor de 10 µF. não necessitam do resistor. indeterminado. Nenhuma busca de programa será gerada no segundo ciclo desta instrução. conectado a um circuito do tipo Schmitt trigger. com OFH e o SBUF será indeterminado. o seu conteúdo será aleatório e. As sequências de busca/execução serão as mesmas tanto para a memória de programa interna. 4. 0XXXXXXX B 0XXX0000 B Tabela 2 . . construídos na versão CMOS. Porém. e a referencia Vss.5 Reset na energização do sistemas. através de um resistor de 872 Kohms. Os componentes desta família.

Os sinais ALE e PSEN ficarão em nível baixo. Para tal. o modo baixo consumo será assumido. As versões CMOS possuem dois tipos de redução de potências. ou através do sinal de reset.4. denominados de operação no modo "ocioso" (idle) e no modo "baixo consumo" (powerdown). ou funções dos bits dos registros de função especial do 8031/8051. No modo ocioso. Entretanto. a tensão de alimentação poderá ser reduzida para até 2 Volts. 8 bytes FF F7 EF E7 DF D7 CF C7 BF B7 AF A7 9F 97 8F 87 PCON F8 B F0 E8 D8 Podem sem Bit Endereçados São Bit Endereçados Endereçados por Byte Não Implementados ACC E0 PSW D0 C8 C0 B8 B0 A8 A0 98 90 88 80 TH1 TH0 TL1 DPH TL0 DPL IP P3 IE P2 SBUF SCON P1 TMOD TCON SP P0 Figura 14 . 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. através de programação poderá ser acionado a economia de energia. as versões CMOS permitem a redução do mesmo. porta serial e temporizadores continuaram operando. Estes registros serão acessados por endereçamento direto. com IDL = 1. Este modo será encerrado por um sinal de interrupção. .7 Registros de função Especial . Assim. 4. o oscilador estará bloqueado Assim. Este controle é realizado por dois bits (PD e IDL) do registro de função especial de controle de potência. o oscilador continua operando. Se forem escritos valores 1 simultâneos em PD e IDI. As posições não ocupadas não foram implementados no componente. todas as funções estarão paradas. enquanto que acessos de escrita não terão efeitos. mas a sua saída de temporização não será levada para a CPU Somente as interrupções. PCON "power control". visto que outros produtos desta família poderão estar usando tais endereços para novas implementações. acessos de leituras nestes endereços geralmente retornam valores aleatórios. Usuários de programação devem evitar a escrita nestas localizações. Esta característica só é possível nas versões CMOS. Os registros com endereçamento terminado por OH ou 8H são também bits endereçáveis. Este modo será encerrado somente com um sinal de reset. acessado pelo endereço 87H.Mapa de memória dos Registros de Função Especial do 8051 Note que nesta região nem todos os endereços foram ocupados.6 Modos De Operação com Economia de Energia. O registro PCON é um registro de função especial. A figura 15 apresenta os endereços. No modo baixo consumo. Neste modo de operação. com PD = 1. A figura 14 apresenta a área de memória interna denominada área de registros de função especial (SFR). mantendo-se todos os conteúdos da RAM interna e dos registros de função especial. que será analisado no capítulo registros de função especial. Para aplicações onde o consumo de potência será crítico. ou símbolos.

1 Acumulador (ACC). onde os seus bits serão acessados pelos endereços E0H até E7H. É acessado pelo endereço E0H e é um registro de bit endereçável. respectivamente do menos significativo até o mais .8.8 Descrição detalhada dos Registradores do 8051. 4. O registro acumulador (ACC) é referido simplesmente pela letra "A" nos mnemônicos das instruções.Símbolo Descrição Registrador B Acumulador Palavra Status de Programa Endereço Direto FFH-F1H F0H EFH-E1H E0H DFH-D1H D0H BFH-C9H Endereço do Bit. Símbolo ou Função Alternativa da Porta MSB LSB F7H E7H D7H CY BFH -B7H RD AFH EA A7H A15 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 B* ACC* PSW* IP* Habilitador de Interrupção B8H B7H-B1H P3* Porta 3 B0H AFH-A9H IE* Habilitador de Interrupção A8H A7H-A1H P2* Porta 2 A0H 9FH-9AH SBUF Buffer de Dados Serial SCON* Controlador Serial 99H 98H 97H-91H 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 90H 8FH-8EH TH1 TH0 TL1 TL0 TMOD TCON* Controle de Temporizador PCON DPH DPL SP P0* Controle de Potência Data Pointer High Data Pointer Low Stack Pointer Porta 0 8DH 8CH 8BH 8AH 89H 88H 87H 86H-84H 83H 82H 81H 80H GATE 8FH 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 Função Especial do 8051 4.

Os registros P0.8. disponível para propósito geral PSW. seleciona os seguintes endereços: RS1 RS0 0 0 0 1 1 0 1 1 Seleção Banco 0 Banco 1 Banco 2 Banco 3 Endereços de cada banco 00H – 07H 08H – 0FH 10H – 17H 18H – 1FH 4. O registro P1. não é bit endereçável. O SP é inicializado com o valor 07H após ocorrer um reset. Tabela 3 .4 Registro Apontador de pilha (SP). l. Para outras instruções este registro poderá ser tratado como um registro de armazenagem temporária. O registro apontador de dados é formado por um byte alto (DPH) acessado pelo endereço 83H e por um byte baixo (DPL). Este é um registro acessado pelo endereço D0H e também é bit endereçável. onde P=1 é par e P=0 é ímpar. Este será incrementado antes que um dado seja armazenado na pilha.6 REGISTROS DAS PORTAS 0 À 3 (P0-P3). 4. P1.0 P D0H Flag de paridade correspondente à quantidade de bits em 1 no aumulador.8. portanto. O P2. realizada pelos bits RS1 e RS0. Este é acessado pelo endereço 81H e. pelo endereço A0H e o P3 por B0H. Note que existem instruções que serão executadas sem o uso do acumulador. O registro PSW contém as informações de status de programa que refletem o estado corrente da CPU.6 AC D6H Flag de carry auxiliar para as operações BCD PSW. PSW. Símbolo Endereçame Função nto de bit PSW. 4. Portanto. respectivamente. O registro SP é um registro de tamanho 8 bits.3 RS0 D3H Bit 0 de seleção do Banco de Registros PSW. ou como dois registros independentes de 8 bits. 4.8.7 CY D7H Flag de carry nas operações aritméticas e acumulador nas operações Booleanas. A sua função é a de manter um endereço de 16 bits. O registro B é usado durante operação de multiplicação e de divisão. durante a execução de uma instrução PUSH. em operações Booleanas o valor do acumulador será preservado.8.2 Registro B (B). 2 e 3.significativo. este registro pode ser manipulador como um registro de 16 bits. . É um registro bit endereçável. Por exemplo.Bits do PSW Bit A seleção do banco de registros. Nestas operações o bit de carry será usado como acumulador.2 OV D2H Flag de Overflow PSW.8. O registro P0 é acessado pelo endereço 80H. ou CALL. Assim.5 Registro apontador de dados (DPTR). cujo endereço de acesso é F0H. Isto faz com que a pilha inicie na localização 08H. usado para acessar memórias externas.4 RS1 D4H Bit 1 de seleção do Banco de Registros PSW. acessado pelo endereço 82H.5 F0 D5H Flag disponível para propósito geral PSW. Os seus bits são acessados pelos endereços F0H até F7H.3 Registro de palavra de status de programa (PSW). pelo endereço 90H. A tabela 3 abaixo. P2 e P3 são latches das portas 0.1 -D1H Flag definível pelo usuário. apresenta um resumo dos bits do registro PSW. a região de pilha (stack) irá residir no espaço de RAM interna do 8051. 4.

SCON e PCON contém bits de controle e de status para o sistema de interrupção. . respectivamente. O par de registros (TH0. 8DH e 8BH. Quando usado como entrada. 8AH. 4. Este registro é acessado pela escrita.8.8 REGISTRO DOS TEMPORIZADORES. TMOD. IE. Os registros de função especial denominados IP. na realidade.Todos estes registros são bit endereçável.8. Quando o dado for movido de SBUF.7 REGISTRO DE BUFFER DE DADO SERIAL (SBUF). São acessados respectivamente pelos endereços 8CH. 4. Quando o dado for movido para SBUF. 4. ou pela leitura do endereço 99H. TL1) formam o registro contador para o temporizador/contador 0 e 1.8. ele será lido do buffer de recepção. é composto de dois registros separados. o estado externo aplicado ao pino será armazenado no correspondente bit do registro da porta. O registro de buffer de dado serial. iniciada pelo próprio movimento do dado. TCON. ele irá para o buffer transmissor que executará a operação de transmissão serial.9 REGISTROS DE CONTROLE. TL0) e (TH1. Escrever 1 no bit de uma porta causará uma saída de nível alto no correspondente pino da porta. Estes registros são denominados por SBUF e são diferenciados pelas operações de leitura ou escrita. Um registro buffer transmissor e um registro buffer receptor. os temporizadores/contadores e a porta serial.