Intel 8051

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

Conceito de Microcontrolador[editar | editar código-fonte]

Os microcontroladores são microprocessadores direcionados para aplicações de controle, que já possuem em seu interior recursos como a memória de programa e dados, portas de comunicação, controladores de interrupção, timers, entre outros. A grande vantagem é que por já possuírem estes recursos incorporados, as aplicações desenvolvidas com eles são mais compactas e por consequência apresentam um custo menor, quando comparado com o desenvolvimento usando microprocessadores, pois estes recursos devem ser agregados no sistema.

Intel MCS-51[editar | editar código-fonte]

Intel P8051

O Intel MCS-51 (comumente chamado de Intel 8051) faz parte de uma popular família de microcontroladores de 8 bits lançada pela Intel em meados de 1980. É conhecido pela sua facilidade de programação, utilizando a linguagem Assembly ou até mesmo a linguagem C. É tido como o microcontrolador mais popular do mundo, pois existem milhares de aplicações para o mesmo, e existem pelo menos dois mil fabricantes produzindo variantes e clones do modelo. Atualmente possui diversos modelos clones sendo produzidos por empresas diversas à Intel. Por ser um microcontrolador CISC, oferece um conjunto de instruções muito vasto que permite executar desde um simples programa até um mais complexo com rede.

A família MCS-51 da Intel, foi desenvolvida utilizando a tecnologia NMOS, suas versões posteriores são identificadas por uma letra C em seu nome (por exemplo, 80C51), desenvolvidas com a tecnologia CMOS, garantindo a estes dispositivos um menor consumo de energia quando alimentados por bateria.

Em sua composição interna, também possui uma memória ROM, que é tida exclusivamente para armazenar o programa que a CPU executará. Sua utilização tornou-se inviável para alguns projetistas da época, pois como as aplicações precisavam ler e gravar dados em tempo de execução, era preciso que uma memória RAM externa fosse utilizada. Em alguns casos, o Intel 8052 foi usado como alternativa, é o mesmo que o Intel 8051, exceto com outro temporizador, RAM e ROM adicionais.

O Intel 8031 é um membro da família que não possui memória interna de programa, embora toda a arquitetura interna seja a mesma. As características de hardware e software da família 8051 permitem a manipulação de bits com extrema facilidade e possibilitam o desenvolvimento de sistema microprocessado de um único chip.

O microcontrolador Intel 8051, pode ser encontrado em diversos circuitos lógicos, tais como rádios, telefones, máquinas industriais, celulares, micro-ondas, entre outros. Sua programação é feita com a linguagem de programação Assembly, tida em dois modos de funcionamento:

  • Modo Mínimo: onde são usados somente os recursos internos.
  • Modo Expandido: Onde as memórias ROM e RAM são expandidas usando-se componentes externos.

Versões[editar | editar código-fonte]

Com ROM:

  • 8051, 80C51, 80CL51, 8052, 83C053, 83CL410, 83C451, 83C528, 83C550, 83C552, 83C562, 83C575, 83C592, 83C652, 83C654, 83C751, 83C752, 83C851, 83C852.

Sem ROM:

  • 8031, 80C31, 8032, 80C32, 80CL410, 80C451, 80C528,

80C550, 80C552, 80C562, 80C575, 80C592, 80C652, 80C851. EPROM:

  • 87C51, 87C52, 87C054, 87C451, 87C528, 87C550, 87C552, 87C575, 87C592, 87C652, 87C654, 87C751, 87C752.

Pinagem do Microcontrolador[editar | editar código-fonte]

Pinagem do microcontrolador

Principais características funcionais do microcontrolador 8051[editar | editar código-fonte]

  • CPU de 8 bits otimizada para aplicações de controle;
  • Memória Interna de Programa (4Kbytes);
  • Memória Interna de Dados (256 bytes);
  • 2 Contadores/Temporizadores programáveis de 16 bits;
  • 1 Porta Serial Full – Duplex;
  • 32 linhas de E/S;
  • Estrutura de Interrupão com dois níveis de prioridade 5 fontes (2 externas, 3 internas);
  • RAM interna endereçável bit-a-bit;
  • 64Kbytes para Memória Externa de Programas;
  • 64Kbytes para Memória Externa de Dados;

Organização da Memória[editar | editar código-fonte]

Todos os membros da família MCS-51 possuem espaços de endereçamento separados para Dados e Programas.

  • Memória de Programa

O espaço de endereçamento para a memória é de 64Kbytes. No 8051, os 4KB mais baixos estão na própria memória interna de programa. Após o reset, a CPU inicia a execução no endereço 0x00, onde deve residir uma instrução de salto para o endereço de inicio do programa.

Os 4KB mais baixos da memória de programa podem residir tanto internamente no chip como na memória externa. A seleção é feita pelo pino EA (External Access). Quando EA=1, a CPU busca as instruções de endereços 0x0000 a 0x0FFF na ROM interna e as instruções de endereços 0x1000 a 0xFFFF na memória externa.

  • Memória de Dados

O 8051 pode acessar dados tanto na Memória Interna como na Memória Externa de dados. A Memória Externa de Dados pode ter até 64 Kbytes e é acessada através da instrução MOVX. A Memória interna de Dados do 8051 é composta por 2 blocos de 128 bytes. O bloco inferior 0x00 até 0x7F é usado como RAM e pode ser endereçado direto ou indiretamente. O bloco superior 0x80 a 0xFF é um espaço reservado para mapear os registradores de funções especiais da CPU (SFR). Este bloco só pode ser acessado diretamente.

O bloco inferior da Memória Interna de Dados 0x00 a 0x7F é dividido em 3 partes:

  • Banco de Registradores (0x00 a 0x1F): 32 bytes
  • Área endereçável bit-a-bit (0x20 a 0x2F): 16

bytes

  • Área de Rascunho (0x30 a 0x7F): 80 bytes

Registradores de funções especiais[editar | editar código-fonte]

Os registradores de funções especiais da CPU, os SRF (Special Function Register), com exceção do PC (Program Counter), estão alocados na parte superior da Memória Interna de Dados. São eles:

ACC – Acumulador

B – Utilizado como fonte e destino para operações de multiplicação e divisão.

Stack Pointer (SP) – É o ponteiro da pilha da CPU.

DPTR (Data Pointer) – É um registrador de 16 bits usado para o endereçamento da memória externa de dados. Eles ocupa dois espaços de 8 bits que podem ser acessados com DPL e DPH.

P0, P1, P2, P3 – Usados para latch nas portas 0 à 3 de E/S.

SBUF (Serial Data Buffer) – Utilizado para transmissão e recepção de dados para a porta serial.

PSW (Program Status Word) – Contém as flags da CPU. (8-bit)

Registradores de Temporização – Sob os pares (TH0, TL1), (TH1, TL1), (TH2, TL2). Cada par corresponde a um registrador de 16 bits.

Registradores de Captura (apenas no 8052) – O par de registradores (RCAP2H, RCAP2L) são registradores de captura para o Timer 2 “Modo de Captura”.

Registradores de Controle – IP, IE, TMOD, TCON, SCON e PCON são registradores de controle e estado do sistema de interrupção, da seção de temporização e da porta serial.

Acesso à Memória Externa[editar | editar código-fonte]

Os acessos poder feitos tanto para a Memória de Programa quando para à Memória de Dados. O Sinal utilizado para “strobe” de leitura é o PSEN (Program Strobe Enable).

Em um acesso externo com endereço de 16 bits, o byte de mais alta ordem do endereço é armazenado em P2 e o menos significativo em P0.

Porta Serial[editar | editar código-fonte]

A transmissão/recepção serial é feita através dos pinos TXD e RXD. O pino RXD é amostrado periodicamente e quando a porta serial detecta um “start-bit” válido, o dado correspondente é carregado no registrador SBUF.

Na transmissão a CPU escreve o dado ser enviado em SBUF e a porta serial encarrega-se de transmiti-lo através do pino TXD. Na recepção, a porta serial encarrega-se de trazer o byte pelo pino RXD e colocar no SBUF.

Consumo[editar | editar código-fonte]

Para aplicações onde o consumo de potencia é critico, as versões NMOS e CMOS possuem um modo de operação para redução de consumo.

Nas versões NMOS, é feita através de uma fonte de alimentação externa conectada ao pino RST. Nas versões CMOS, há dois modos de operação para redução de consumo, o “Idle” e o “Power-Down”, os mesmos são ativados através do registrador PCON.

Processadores relacionados[editar | editar código-fonte]

O predecessor do 8051, o 8048, foi utilizado no teclado do primeiro IBM PC, onde convertia o sinal das teclas em um sinal serial que era enviado a unidade principal do computador. O 8048 e derivados ainda são utilizados hoje em dia (2007) para modelos básicos de teclados.

O 8031 foi uma versão de custo reduzido do original Intel 8051 que não possui nenhuma memoria interna para programação (ROM). Este fato o torna o microcontrolador mais barato para implementação de projetos. A grande maioria dos kits didáticos são baseados no 8031. A facilidade de encontrar memórias EPROM e RAM de baixo custo o tornaram o microcontrolador mais utilizado nas universidades e cursos técnicos.

O 8052 foi uma versão melhorada da versão original Intel 8051 que dispõe de 256 bytes de memória RAM interna ao invés dos 128 bytes, 8 kB de ROM ao invés dos 4 kB, e um terceiro timer de 16-bit. O 8032 possui as mesmas características exceto pela memória interna de programa .

Referências Bibliográficas[editar | editar código-fonte]

SICA, Carlos. Sistemas Automáticos com Microcontroladores 8031/8051. 1. ed. São Paulo - SP: Novatec, 2006. 192 pp. 1 vols. vol. 1. ISBN 85-7522-083-7.

PREDKO, Myke. Programming and Customizing the 8051 Microcontroller. 1. ed. New York - NY: McGraw-Hill, 1999. ISBN 0-07-134192-7.