15
Microcontroladores 8051 Microcontroladores 8051 com linguagem BASIC com linguagem BASIC Guia Prático para Iniciantes 1ª Edição Marcio Andrade Silva 2012

Microcontroladores 8051 com linguagem BASIC · Vamos primeiro explicar como operar com o 8051 e depois detalhar cada item dele, ok? ... Alto - Positivo 5 Volts Nível 0 0 – L –

  • Upload
    others

  • View
    14

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Microcontroladores 8051 com linguagem BASIC · Vamos primeiro explicar como operar com o 8051 e depois detalhar cada item dele, ok? ... Alto - Positivo 5 Volts Nível 0 0 – L –

Microcontroladores 8051Microcontroladores 8051 com linguagem BASICcom linguagem BASIC

Guia Prático para Iniciantes1ª Edição

Marcio Andrade Silva

2012

Page 2: Microcontroladores 8051 com linguagem BASIC · Vamos primeiro explicar como operar com o 8051 e depois detalhar cada item dele, ok? ... Alto - Positivo 5 Volts Nível 0 0 – L –
Page 3: Microcontroladores 8051 com linguagem BASIC · Vamos primeiro explicar como operar com o 8051 e depois detalhar cada item dele, ok? ... Alto - Positivo 5 Volts Nível 0 0 – L –

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

Page 4: Microcontroladores 8051 com linguagem BASIC · Vamos primeiro explicar como operar com o 8051 e depois detalhar cada item dele, ok? ... Alto - Positivo 5 Volts Nível 0 0 – L –

8051 para Iniciantes, por Marcio Andrade Silva

[ 4 ]

Page 5: Microcontroladores 8051 com linguagem BASIC · Vamos primeiro explicar como operar com o 8051 e depois detalhar cada item dele, ok? ... Alto - Positivo 5 Volts Nível 0 0 – L –

8051 para Iniciantes, por Marcio Andrade Silva

Índice

Primeiros passos.......................................................................11Como a coisa funciona?.................................................................11Material necessário.........................................................................12Pinagem.........................................................................................17Alimentação...................................................................................17Reset..............................................................................................18Clock..............................................................................................21EA..................................................................................................22ALE................................................................................................22PSEN..............................................................................................23Porta paralela P0............................................................................23Porta paralela P1............................................................................23Porta paralela P2............................................................................24Porta paralela P3............................................................................24Memória de dados (RAM).............................................................25Memória de programa (Flash)........................................................25Memória de armazenamento (EEPROM).......................................26Montagem Padrão..........................................................................26

O BASCOM-8051....................................................................28Como obter uma cópia...................................................................28Interface do BASCOM...................................................................29Área de programação (editor).........................................................32Simulador.......................................................................................32Compilando um programa..............................................................32O Software de gravação.................................................................33A Placa de gravação.......................................................................35O cabo de gravação........................................................................44Gravando um programa..................................................................45Erros durante a gravação. Como resolver.......................................45

Princípios da linguagem.........................................................47

[ 5 ]

Page 6: Microcontroladores 8051 com linguagem BASIC · Vamos primeiro explicar como operar com o 8051 e depois detalhar cada item dele, ok? ... Alto - Positivo 5 Volts Nível 0 0 – L –

8051 para Iniciantes, por Marcio Andrade Silva

Sintaxe...........................................................................................48Sub Rotinas....................................................................................49Como criar uma sub rotina.............................................................51Marcadores ou Labels....................................................................53

Variáveis, Strings e Arrays.....................................................55Variáveis Numéricas.......................................................................56Strings............................................................................................57Constantes......................................................................................57Arrays.............................................................................................58Dimensionando as variáveis...........................................................60

Operadores..............................................................................62Operadores aritméticos...................................................................62Operadores relacionais...................................................................63Operadores Lógicos.......................................................................64

Condicionais e Controle.........................................................65If-then.............................................................................................65Select Case.....................................................................................69Ciclos ou Laços..............................................................................70Do-Loop.........................................................................................71For-Next.........................................................................................72While-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 ]

Page 7: Microcontroladores 8051 com linguagem BASIC · Vamos primeiro explicar como operar com o 8051 e depois detalhar cada item dele, ok? ... Alto - Positivo 5 Volts Nível 0 0 – L –

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 ]

Page 8: Microcontroladores 8051 com linguagem BASIC · Vamos primeiro explicar como operar com o 8051 e depois detalhar cada item dele, ok? ... Alto - Positivo 5 Volts Nível 0 0 – L –

8051 para Iniciantes, por Marcio Andrade Silva

[ 8 ]

Page 9: Microcontroladores 8051 com linguagem BASIC · Vamos primeiro explicar como operar com o 8051 e depois detalhar cada item dele, ok? ... Alto - Positivo 5 Volts Nível 0 0 – L –

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 ]

Page 10: Microcontroladores 8051 com linguagem BASIC · Vamos primeiro explicar como operar com o 8051 e depois detalhar cada item dele, ok? ... Alto - Positivo 5 Volts Nível 0 0 – L –

8051 para Iniciantes, por Marcio Andrade Silva

[ 10 ]

Page 11: Microcontroladores 8051 com linguagem BASIC · Vamos primeiro explicar como operar com o 8051 e depois detalhar cada item dele, ok? ... Alto - Positivo 5 Volts Nível 0 0 – L –

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 ]

Page 12: Microcontroladores 8051 com linguagem BASIC · Vamos primeiro explicar como operar com o 8051 e depois detalhar cada item dele, ok? ... Alto - Positivo 5 Volts Nível 0 0 – L –

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 ]

Page 13: Microcontroladores 8051 com linguagem BASIC · Vamos primeiro explicar como operar com o 8051 e depois detalhar cada item dele, ok? ... Alto - Positivo 5 Volts Nível 0 0 – L –

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 ]

Page 14: Microcontroladores 8051 com linguagem BASIC · Vamos primeiro explicar como operar com o 8051 e depois detalhar cada item dele, ok? ... Alto - Positivo 5 Volts Nível 0 0 – L –

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 ]

Page 15: Microcontroladores 8051 com linguagem BASIC · Vamos primeiro explicar como operar com o 8051 e depois detalhar cada item dele, ok? ... Alto - Positivo 5 Volts Nível 0 0 – L –

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 ]