Microcontroladores 8051
com linguagem BASIC
Guia Prático para Iniciantes
1ª Edição
Marcio Andrade Silva
2012
Sobre o método
O método adotado nesta publicação foi pensado em extrair o máximo
possível sem a necessidade de absorver informações muito complexas.
Por isso ele pode atender desde engenheiros, técnicos ou hobbysta que
queiram ingressar no mundo dos microcontroladores com aprendizado
voltado à experimentação.
Não falaremos sobre registradores, endereçamentos de memória, Bits
endereçáveis ou qualquer outro aspecto de modo que complique o
aprendizado. O foco será experimentar e analisar o que foi feito.
Naturalmente, os detalhes omitidos são de grande importância, mas a ideia
deste livro é permitir o ingresso no mundo dos microcontroladores de modo
rápido e fácil, e tratar destes assuntos seria na verdade um grande
complicador.
Aqui o leitor aprenderá a criar um programa, compilar, gravar e testar em
seus dispositivos de modo realmente simples, mas altamente funcional.
Ao fim da leitura, e quando já estiver apto a programar e desenvolver seus
próprios dispositivos, o leitor pode se deparar com necessidades de
conhecimentos mais profundos sobre cada elemento do microcontrolador ou
seu compilador. Temas estes que fogem do escopo desta publicação, que é
na verdade um Guia Prático.
NB: Vários conteúdos de suporte a este livro estarão permanentemente
disponíveis em http://www.todavia.com.br/destro
8051 para Iniciantes, por Marcio Andrade Silva
[4]
8051 para Iniciantes, por Marcio Andrade Silva
Índice
Primeiros passos.......................................................................11
Como a coisa funciona?.................................................................11
Material necessário.........................................................................12
Pinagem.........................................................................................17
Alimentação...................................................................................17
Reset..............................................................................................18
Clock..............................................................................................21
EA..................................................................................................22
ALE................................................................................................22
PSEN..............................................................................................23
Porta paralela P0............................................................................23
Porta paralela P1............................................................................23
Porta paralela P2............................................................................24
Porta paralela P3............................................................................24
Memória de dados (RAM).............................................................25
Memória de programa (Flash)........................................................25
Memória de armazenamento (EEPROM).......................................26
Montagem Padrão..........................................................................26
O BASCOM-8051....................................................................28
Como obter uma cópia...................................................................28
Interface do BASCOM...................................................................29
Área de programação (editor).........................................................32
Simulador.......................................................................................32
Compilando um programa..............................................................32
O Software de gravação.................................................................33
A Placa de gravação.......................................................................35
O cabo de gravação........................................................................44
Gravando um programa..................................................................45
Erros durante a gravação. Como resolver.......................................45
Princípios da linguagem.........................................................47
[5]
8051 para Iniciantes, por Marcio Andrade Silva
Sintaxe...........................................................................................48
Sub Rotinas....................................................................................49
Como criar uma sub rotina.............................................................51
Marcadores ou Labels....................................................................53
Variáveis, Strings e Arrays.....................................................55
Variáveis Numéricas.......................................................................56
Strings............................................................................................57
Constantes......................................................................................57
Arrays.............................................................................................58
Dimensionando as variáveis...........................................................60
Operadores..............................................................................62
Operadores aritméticos...................................................................62
Operadores relacionais...................................................................63
Operadores Lógicos.......................................................................64
Condicionais e Controle.........................................................65
If-then.............................................................................................65
Select Case.....................................................................................69
Ciclos ou Laços..............................................................................70
Do-Loop.........................................................................................71
For-Next.........................................................................................72
While-Wend...................................................................................75
Prática 1 – Led pisca-pisca.....................................................77
Prática 2 - Teclas......................................................................84
Prática 3 – Sequencial.............................................................96
Prática 4 – Relógio com display LCD..................................109
Prática 5 – Display 7 segmentos...........................................125
[6]
8051 para Iniciantes, por Marcio Andrade Silva
Prática 6 – Comunicação Serial...........................................137
Prática 7 – Comunicação USB..............................................146
Prática 8 - Interrupções........................................................150
Prática 9 – Memória EEPROM...........................................157
Prática 10 – Teclado Matricial..............................................167
Prática 11 – Voltímetro Digital.............................................181
Apêndice: Comandos e Funções...........................................189
Apêndice: Diretivas de Compilação.....................................219
Apêndice: Soluções................................................................221
Apêndice: Mensagens de erro/Bascom................................228
E agora? Como prosseguir?..................................................233
Referências Bibliográficas....................................................235
[7]
8051 para Iniciantes, por Marcio Andrade Silva
[8]
8051 para Iniciantes, por Marcio Andrade Silva
A Deus,
e à cada pessoa da minha família.
Aos que estão e também aos que se foram.
Há muito de cada um deles em tudo que sou hoje .
[9]
8051 para Iniciantes, por Marcio Andrade Silva
[ 10 ]
8051 para Iniciantes, por Marcio Andrade Silva
Primeiros passos
Como a coisa funciona?
Um microcontrolador possui internamente um programa produzido por você,
e este programa é que vai determinar o que o microcontrolador fará.
Imagine que você quer irrigar seu jardim automaticamente. Você distribui
sensores de umidade pelo solo, um sensor de iluminação voltado para céu,
válvulas elétricas para abertura e fechamento da água e liga tudo isso no
microcontrolador.
Em seguida, você cria um programa que manda o microcontrolador fazer o
seguinte: Aguardar os sinais do sensor de umidade, e se o solo estiver seco
abrir a válvula. Mas se o céu estiver escuro (noite) manter a válvula fechada.
Depois de pronto, você compila o programa (torna ele apropriado para ser
executado pelo microcontrolador) e grava ele no interior do chip.
Seu irrigador está pronto para ser colocado em funcionamento.
Sempre que formos produzir algo microcontrolado, devemos seguir este
roteiro.

Escreva seu programa .

Salve seu programa.

Compile seu programa.

Grave seu programa no microcontrolador.

Execute-o no dispositivo.
Tudo isso será explicado mais adiante e fique certo de que é muito simples.
[ 11 ]
8051 para Iniciantes, por Marcio Andrade Silva
Material necessário
Componentes
Cada tema ou prática inclui a lista de materiais necessários para o
experimento, no entanto você vai notar que alguns itens se repetem em todas
as experiências.
A base de todos os trabalhos pode ser uma Matriz de Contatos (protoboard).
Tenha em mãos alguns Leds, chaves tácteis, resistores de valores usuais
como 470Ω e 1KΩ, transistores BC558 (PNP) e BC548 (NPN), 1N4148
(diodos de uso geral).
Algumas experiências incluem componentes poucos comuns nos laboratórios
domésticos, mas que são fartos e baratos no comércio especializado.
Dica: Dê uma folheada nas listas de cada capítulo e antecipe a
aquisição destes componentes. Assim você executa suas experiencias
mais rapidamente.
Computador
Você vai precisar também de um computador com sistema operacional
Windows e que possua uma porta serial no padrão DB-9.
Atualmente são raros os laptops que possuem esta porta. Se este é seu
caso, será preciso adquirir um cabo adaptador USB-Serial.
Seu computador pode ter as versões do Windows 98SE, XP, Vista, 7 ou 8.
Softwares
Você precisará de 2 softwares que deverão ser instalados em seu
computador.

BASCOM-8051

GRAVA ATMEL.
[ 12 ]
8051 para Iniciantes, por Marcio Andrade Silva
Ambos podem ser obtidos gratuitamente e explicamos em detalhes nas
páginas seguintes.
Placa de gravação.
Esta placa será construída por você e será com ela que gravaremos nossos
programas no microcontrolador. É uma placa simples de ser produzida e há
explicações detalhadas sobre como construil-a em um capitulo mais adiante.
Há ainda material adicional no website www.todavia.com.br/destro
[ 13 ]
8051 para Iniciantes, por Marcio Andrade Silva
O 8051
Vamos primeiro explicar como operar com o 8051 e depois detalhar cada
item dele, ok?
Essencialmente, o 8051 é composto por 4 portas, de 8 bits cada.
Essas portas na verdade são um conjunto de 8 pinos (terminais), e cada um
destes conjuntos se chama Porta Paralela.
São estes pinos (ou terminais) que usamos para enviar ou receber sinais.
Podemos ligar um botão em um pino, e um relé em outro. E quando
pressionarmos o botão, atracar o relé. Ou seja, os pinos podem ser usados
para entrada (o sinal que vem do botão) ou saída (o sinal que aciona o relé).
Podemos usar estes pinos isoladamente, como no exemplo acima, ou em
conjunto. Por exemplo: Ligamos nos 8 pinos de uma porta, os 8 pinos de
uma conversor analógico/digital, que transmite números binários. Assim
podemos ler na porta qualquer valor entre 00000000 (0) ou 11111111 (255).
Podemos usar todos os pinos individualmente como entrada ou saída, e
podemos usar os conjuntos de pinos – as portas – do mesmo modo.
Estas 4 portas tem nomes e características próprias.
Elas se chamam P0, P1, P2 e P3.
Cada um dos 8 pinos destas portas recebe um número específico. Por
exemplo: P1.4 ; P3.0; P2.7, etc.
Você deve saber que os microcontroladores trabalham com eletrônica digital.
Ou seja, quando falamos em sinais, estamos nos referindo aos níveis 0 e 1,
que são na verdade 0V e 5V (esta é a tensão de trabalho do 8051).
Estes níveis são tratados como:
Nome
Outros nomes
Valor
Nível 1
1 – H – High - Alto - Positivo
5 Volts
Nível 0
0 – L – Load - Baixo - Negativo
0 Volts
[ 14 ]
8051 para Iniciantes, por Marcio Andrade Silva
Por que o 8051?
Existe no mercado uma infinidade de tipos e modelos de microcontroladores
e discutir qual deles é o melhor é um imenso desperdício de tempo.
Cada um possui suas características, arquitetura, velocidade e são
destinados para os mais diversos fins.
Nossa escolha é o 8051 por diversos motivos, e aqui estão alguns deles:

É a arquitetura usada como base acadêmica nos países orientais
como China, Índia, etc.

Altamente robusto e seguro.

O mesmo chip realiza as mais diversas funções.

Facilmente encontrado no comércio especializado no Brasil.

Desenvolvido originariamente por uma gigante do setor: a Intel.
Atualmente há diversos fabricantes que oferecem no mercado seus
microcontroladores da família 8051, e nossos estudos são baseados nos que
são fabricados pela americana ATMEL, que desde 1984 fabrica dispositivos
desta ordem.
A Família AT89S
Trabalharemos aqui com os modelos da
ATMEL mais comuns no mercado brasileiro. Os
da família AT89S.
Os modelos disponíveis são:
AT89S51
AT89S52
AT89S8253
Eles tem o aspecto da imagem ao lado, com encapsulamento DIP-40, e
diferem entre si apenas em suas capacidades internas, mas mantendo
sempre os atributos que discutimos a partir de agora.
Há também as versões SMD da famila AT89S, mas em nossos estudos
falaremos apenas da versão DIP, que vemos acima.
Baixe os datasheets de cada um deles em www.atmel.com
[ 15 ]
Download

Microcontroladores 8051 com linguagem BASIC