Apostila Microcontrolador 8051

 

 

microcontrolador 8051 01Principais Características

 

  • Permite comunicação automática com o PC;
  • Software para programação, simulação e transmissão do programa desenvolvido;
  • O programa desenvolvido é executado na RAM do kit. Portanto não há necessidade de se gravar EPROM cada vez que se altera o programa.

 

 

Advertência

 

As informações e o material contidos neste manual são fornecidos sem nenhuma garantia, quer explicita, ou implícita, de que o uso de tal informação conduzirá sempre ao resultado desejado. Todos os envolvidos na confecção deste material não podem ser responsabilizados por qualquer tipo de reivindicação atribuída a erros, omissões ou quaisquer outras imprecisões na informação ou material fornecidos neste manual, e em nenhuma hipótese podem ser incriminados direta ou indiretamente por qualquer dano, perda, lucro cessante, etc, devido ao uso destas informações.

Para utilização do material com finalidades de montagem, teste e/ou programação, o usuário deve ter mínimos conhecimentos técnicos sobre eletrônica, bem como conhecer os princípios de microprocessadores, microcontroladores, compiladores e simuladores, além de ter algum tipo de experiência com montagem de placas de circuito impresso, reconhecimento de componentes eletrônicos, lógica digital, soldagem e familiaridade com computadores do tipo PC e sistema operacional DOS/Windows. Sem estes pré-requisitos é muito provável que o usuário tenha diversas dificuldades durante as montagens e durante os testes de funcionamento do Kit.

 

 

Apresentação

 

Este sistema tem o objetivo de facilitar o aprendizado dos Microcontroladores da família 8051, e agilizar o desenvolvimento de experiências e projetos a nível didático e profissional.

 

 

Introdução

 

O crescente interesse por essa família de microcontroladores deve-se ao fato de serem baratos, poderosos, facilmente encontrados e com uma grande variedade de microcontroladores que contém características especiais como conversores A/D, saídas PWM, etc.; e também por um mercado potencialmente crescente.

Apesar de ser um microcontrolador de 8 bits, podem-se desenvolver sistemas dedicados poderosos a um custo muito reduzido.

O sistema apresentado é extremamente flexível, pois todos os ports estão disponíveis ao usuário o que facilita estender as características da placa de acordo com a necessidade.

Permite também executar o programa desenvolvido em uma memória RAM evitando a necessidade de se gravar uma EPROM para testar o programa desenvolvido.

O diagrama a seguir demonstra os principais componentes e fluxo de dados:

 

 

Diagrama de Blocos

 

microcontrolador 8051 02

 

A figura a seguir representa a disposição dos componentes na placa:

microcontrolador 8051 03

 

 

Esquema da Placa

 

Clique aqui para obter o esquema elétrico

 

 

Descrição da CPU

 

Esta placa contém um microcontrolador de 8 bits (80C31) que possui internamente 5 interrupções mascaráveis, 2 timers de 16 bits programáveis e um canal serial.

Uma EPROM de 32 Kbytes (com programa MONITOR), uma memória RAM de 32 Kbytes para armazenamento de dados e instruções.

Possui também oito endereços reservados para operações de I/O, mais quatro endereços reservados para I/O externa.

Além disso, pode ser configurado através de três jumpers nomeados STP1, STP2 e STP3.

 

 

Jumpers de configuração

 

STP1: sua finalidade é a de fazer com que o microcontrolador busque instruções em sua memória interna (80C51) ou em uma memória externa – EPROM (80C31).

  • STP1: jumper ligado em 1 e 2 – busca de instrução na memória interna;
  • STP1: jumper ligado em 2 e 3 – busca de instrução na memória externa.

Obs.: Para o 80C31, portanto, deixe STP1 ligado em 2 e 3.

STP2: se estiver conectado nos pinos 1 e 2 habilita a RAM a receber o sinal RD\; se estiver conectado nos pinos 2 e 3, a RAM deixa de receber o sinal do pino 7 PORT3 (P3.7) ficando assim disponível para uso;

STP3: se estiver conectado nos pinos 1 e 2 habilita a RAM a receber o sinal WR\ (P3.6); se estiver conectado nos pinos 2 e 3, a RAM deixa de receber o sinal do pino 6 PORT3 (P3.6) ficando assim disponível para uso;

Portanto para transmitir o programa do PC para a RAM é necessário que STP3 esteja ligado nos pinos 1 e 2 (pois é necessário utilizar o sinal WR\ para escrever na RAM). Se após isso, o programa a ser executado na RAM utilizar o pino P3.6 para algum propósito, tirar o jumper STP3 antes de posicionar a chave HH1 para RUN (para que P3.6 fique desconectado da RAM antes do programa ser executado).Neste caso toda vez que carregar o programa específico deve-se alterar STP3 conforme aqui explicado.

 

 

Mapeamento de endereços

 

microcontrolador 8051 04

 

ATENÇÃO: Toda experiência que utilizar o port P3, após transmitir o programa do PC para o kit, e antes de mudar a chave de LOAD para RUN, deve-se alterar o kit 8051 nos seguintes pontos:

  • Mudar a chave HH2 para a posição contrária (para “dentro” da placa).
  • Retirar os straps STP2 e STP3.

O motivo disto é que a placa utiliza parte do port P3 para se comunicar com o PC e com a RAM do kit nos instantes em que se transfere um arquivo (LOAD).

Cada vez que se carrega um novo arquivo, deve-se antes voltar à condição inicial (chave HH2 para “fora” da placa e STP2 e STP3 nas posições “1 e 2”).

É saudável também que, na transmissão do arquivo, o conector do kit que corresponde ao port P3 esteja livre (sem estar ligado a qualquer circuito externo). O motivo disto é que, como já citado, o kit utiliza parte do port P3 para transferência do arquivo do PC e também para carregar este mesmo arquivo na RAM do kit. Se existir algum circuito externo ligado no momento de transferência ao port P3, este circuito externo pode alterar a transmissão resultando em arquivo errado, que não funcionará a contento.

OBSERVAÇÃO: Nas placas do kit 8051 até a versão 3.3/98, para utilização dos periféricos no port P3 é necessário modificar a placa acrescentando um jumper entre os pinos 13 do port 1 e o pino 13 do port 3 dos conectores da placa.

 

 

Rotina para compilar e linkar o programa

 

Primeiramente, verificar qual porta serial será utilizada para comunicação PC <–> KIT.

Se utilizar a porta COM1, deve-se acrescentar a seguinte linha de comando no arquivo AUTOEXEC.BAT:

C:\DOS\MODE COM1:12,N,8,1,N (para computadores com DOS/Win3.11) ou C:\WINDOWS\COMMAND\MODE COM1:12,N,8,1,N (para computadores com Win95/Win98/WinME/Win2000)

Se utilizar a porta COM2, deve-se acrescentar a seguinte linha de comando no arquivo AUTOEXEC.BAT:

C:\DOS\MODE COM2:12,N,8,1,N (para computadores com DOS/Win3.11) ou C:\WINDOWS\COMMAND\MODE COM2:12,N,8,1,N (para computadores com Win95/Win98/WinME/Win2000)

Após essa alteração deve-se reinicializar o computador para que as alterações tenham efeito.

Obs.: Muitos PCs tem a porta serial COM2 comprometida com outros periféricos (por exemplo, um modem ou um scanner).

Se quiser utilizar a COM2 para transmissão deve-se redirecionar o periférico para outra “COM”, ou simplesmente evite utilizar a COM2.

Existe no mercado um adaptador de 25 pinos macho para 9 pinos fêmea (DB25M – DB9F) que lhe permite conectar um cabo com conector de 25 pinos (que seria usado na COM2) para um conector de 9 pinos que se adapta na COM1.

Apresenta-se neste documento o esquema de ligação da placa para os dois conectores de 25 pinos (COM2) e 9 pinos (COM1).

Com a placa ligada e conectada no PC, você deve informar ao programa ENVIA.EXE qual porta serial deseja utilizar. Para fazer isso digite envia /C <porta>, onde <porta> deve ser COM1: ou COM2:, dependendo de sua escolha anterior. Pode-se também alterar o conteúdo do arquivo ENVIA.CFG que deve conter COM1: ou COM2: dependendo de sua escolha anterior. A vantagem de se alterar tal arquivo está no fato de que o mesmo contém o “default” do comando ENVIA, não sendo necessária a digitação de parâmetros sempre que se deseja utilizar tal comando.

Deve-se digitar o programa em qualquer editor de texto que grave o arquivo em formato ASCII, por exemplo, o EDIT.COM do DOS ou o Bloco de Notas do Windows.

Em seguida deve-se compilar e linkar o programa utilizando o comando RODA51 que é um arquivo de lote criado para realizar a compilação, linkagem e transformar seu programa em um arquivo compilado com extensão .BIN.

Esse arquivo será transmitido do PC para a placa utilizando-se o programa ENVIA.EXE.

Para executar estas operações devem-se seguir os seguintes passos:

1 – Editar seu programa, por exemplo, criando e salvando o arquivo PISCA.ASM

2 – Digitar na linha de comando: RODA51 PISCA (NÃO UTILIZAR EXTENSÃO)

3 – Se houver erros, procurá-los no arquivo correspondente com extensão .LST (em nosso exemplo seria o arquivo PISCA.LST)

4 – Se não houver erros, enviar o programa para a placa através do seguinte comando: ENVIA PISCA

 

 

Cabo Serial

 

Para conexão na COM2

 

  • Pino 2 da COM2 deve ser ligado no pino 2 da placa;
  • Pino 3 da COM2 deve ser ligado no pino 1 da placa;
  • Os terras devem ser ligados para que não exista uma diferença entre terras, o que poderia danificar os equipamentos. (pino 7 da COM2 deve ser ligado ao pino 3 da placa)
  • Observe também os curto-circuitos que devem ser feitos entre os pinos 6-20 e 4-5 no conector COM2 para permitir o correto funcionamento da comunicação KIT <–>PC.

 

Esquema da conexão serial para conector de 25 pinos (COM2):

microcontrolador 8051 05

 

  • Onde pino 2 é TX , pino 3 é RX e pino 7 é GND. (No PC)
  • Onde pino 1 é TX, pino 2 é RX e pino 3 é GND. (Na placa)

microcontrolador 8051 06

 

Para conexão na COM1

 

  • Pino 3 da COM1 deve ser ligado no pino 2 da placa;
  • Pino 2 da COM1 deve ser ligado no pino 1 da placa;
  • Os terras devem ser ligados para que não exista uma diferença entre terras, o que poderia danificar os equipamentos. (pino 5 da COM1 deve ser ligado ao pino 3 da placa)
  • Observe também os curto-circuitos que devem ser feitos entre os pinos 7-8 e 4-6 no conector COM1 para permitir o correto funcionamento da comunicação KIT <–>PC.

 

Esquema da conexão serial para conector de 9 pinos (COM1):

microcontrolador 8051 07

 

  • Onde pino 3 é TX, pino 2 é RX e pino 5 é GND. (No PC)
  • Onde pino 1 é TX, pino 2 é RX e pino 3 é GND. (Na placa)

microcontrolador 8051 08

 

Conecte o cabo serial na placa do 8031 e na porta serial do PC.

Para enviar seu programa para a placa, desloque a chave HH1 para a posição “LOAD” escrita na PCI e HH2 para a posição “HH2” escrita na PCI. Em seguida digite ENVIA <nome do arquivo>, onde <nome do arquivo> é o nome de seu arquivo compilado, linkado e convertido para .BIN e que será enviado do PC para a placa.

Após isso desloque a chave HH1 para a posição “RUN” (contrário da posição “LOAD”) para que o microcontrolador comece a executar seu programa. Não esqueça de alterar os jumpers STP2 e STP3 caso seja necessário.

Para carregar um novo programa desloque novamente a chave HH1 para a posição LOAD e transmita seu novo programa para a placa utilizando o programa ENVIA.EXE. A chave HH2 não precisa mudar mais de posição, a não ser que o programa que será executado na RAM venha a utilizar os pinos de comunicação serial (P3.0 e P3.1). Neste caso, cada vez que se muda a chave HH1 também se deve mudar a chave HH2, respectivamente, pois assim ela liberará os pinos P3.0 e P3.1 que estão ligados à comunicação serial do PC.

Obs.: Se as regiões de memória não utilizadas na placa forem usadas deve-se tomar cuidado para que não exista conflito de periféricos, pois a placa utiliza poucas linhas de endereços para fazer mapeamento de I/O interna e externa.

Para se utilizar a RAM como memória de dados deve-se colocar os jumpers STP2 e STP3 ligados nos pinos 1 e 2; Deve-se tomar cuidado para não escrever em posições da RAM que contenham instruções.

 

 

Alimentação

 

Recomenda-se a utilização de uma fonte de 9V > 500mA (ou equivalente confiável, sendo pino interno positivo). A figura a seguir demonstra como deve ser o conector: Observe que em algumas fontes o conector de saída tem escrito os sinais de “+“ e “-“. A polaridade do mesmo pode ser mudada desconectando o plug do próprio cabo e invertendo-o.

microcontrolador 8051 09SE UTILIZA PINO INTERNO “FINO” (2,1mm) NO CONECTOR DE ALIMENTAÇÃO. PORTANTO, VOCE DEVE TER FONTE COM CONECTOR J4 COM PINO FINO. A OUTRA DIMENSÃO EXISTENTE NO MERCADO É DE 2,5mm, QUE É FACILMENTE PASSADO COMO PINO FINO E NÃO ENTRA NO CONECTOR.

 

 

 

Solução de Problemas

 

Situação 1: o micro não executa nada

 

1 – Verificar com voltímetro DC se a fonte de alimentação externa está funcionando, e com a polaridade correta;

2 – Verificar com voltímetro DC se existe tensão nos terminais de alimentação do micro;

3 – O programa MONITOR pulsa constantemente o pino P3.3 (pino 13 do microcontrolador) em 1 MHz, aproximadamente, quando a chave HH2 está na posição LOAD. Verificar de esse pino apresenta sinal de pulso; Se este pino não estiver pulsando, verificar as seguintes possibilidades:

  • Chip invertido;
  • Solda fria, algum dos pinos sem solda ou curto-circuito;
  • Verificar o MICROCONTROLADOR observando se o PSEN\ (pino 29) pulsa em 1 MHz. Caso negativo, verificar se os pinos 18 ou 19 mostram algum tipo de oscilação quase senoidal de 12 MHz. Caso negativo verificar se o STP1 está na posição correta (ligado em 2 e 3) e se o problema persistir trocar o microcontrolador e/ou o cristal. Se ainda persistir o problema, insistir na verificação de soldas frias, trilhas em curto, qualidade dos soquetes (use multímetro), etc;

4 – Satisfeito o item c monitorar o pino RXD (pino 10 do microcontrolador entre 0 e 5 V) e preparar a linha de comando ENVIA PISCA. Tecle ENTER e ao mesmo tempo olhe no osciloscópio para verificar se os dados enviados pelo PC passaram pelo pino RXD. Caso não se verifique atividade no pino RXD, faça o mesmo procedimento citado neste item com relação ao pino 13 do U1 (MAX232) que deve alternar entre os valores máximos de +12 e -12 V. Caso negativo, verificar se as ligações e continuidade (use multímetro) do cabo serial estão corretas.

  • Se o cabo estiver montado de forma correta, e o problema persistir verifique a sistemática da COM1 / COM2 já comentada anteriormente neste manual.
  • Se o cabo estiver correto, o sinal chega ao pino 13 do U1, mas não sai pelo pino 12 do mesmo, troque U1 (Conversor RS232).
  • Se o sinal sai pelo pino 12 do U1, mas não chega no pino 10 do Microcontrolador, desconfie da posição de HH2 e/ou mau contato da chave e/ou problemas com a placa de circuito impresso.

5 – Se todos os itens anteriores estiverem de acordo, é possível que a chave HH1 (LOAD – RUN) esteja com defeito, principalmente apresentando algum tipo de mal contato. Uma maneira de desconfiar desse problema é olhar para os LEDs da placa, que monitoram as posições LOAD e RUN e ciclicamente mudar a posição da chave HH1. Verifique se os LEDs, que devem acompanhar precisamente a mudança de estado da chave HH1, piscam com alguma intermitência, que indicaria chave HH1 com defeito. Se a chave HH1 está em ordem, mude a chave para LOAD, transmita de novo o programa (ENVIA PISCA + ENTER), mude a chave para RUN e aperte a chave de RESET. Se o programa rodar como o previsto, é possível que o transístor Q1 e os resistores R12 e R13 apresentem algum problema de valor, montagem, contato ou funcionamento.

6 – Verificar se jumper STP3 está ligado na posição “1 – 2”.

7 – Verificar se os resistores de PULL-UP estão devidamente soldados.

 

Situação 2: micro funciona parcialmente

 

1 – O pino 29 no microcontrolador (PSEN\) oscila em aproximadamente 1 MHz, mas o pino 13 do mesmo oscila de forma irregular ou não oscila (deve oscilar com frequência de aproximadamente 1 MHz). Provavelmente U2 (74LS373) está com defeito.

 

 

Monitor

 

Clique aqui para acessar o monitor, que nada mais é do que o programa usado para permitir a comunicação serial entre KIT <–> PC, ele dever ser gravado na EPROM.

 

 

Códigos Fonte

 

 

Clique aqui para obter o código fonte do programa exemplo do texto (pisca.asm)

 

 

 

 

 

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Artigos Recomendados