Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Comunicação Serial com o AVr, Manuais, Projetos, Pesquisas de Engenharia Elétrica

Neste artigo é apresentada a comunicação serial com o microcontrolador AVR da ATMEL.

Tipologia: Manuais, Projetos, Pesquisas

Antes de 2010

Compartilhado em 27/06/2009

vitor-amadeu-souza-7
vitor-amadeu-souza-7 🇧🇷

4.3

(4)

57 documentos

1 / 9

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Comunicação Serial com o AVR ATMEGA8
Vitor Amadeu Souza
Introdução
Os microcontroladores AVR vem a cada dia tomando cada vez mais espaço nos novos
projetos eletrônicos microcontrolados. Isso de fato é em virtude do baixo custo do mesmo e
da alta capacidade de processamento que este apresenta aliada de uma vasta documentação
achada facilmente na internet. Neste artigo, irei apresentar ao leitor juntamente com o
compilador BASCOM a facilidade e simplicidade em escrever um programa que possa
transmitir e receber dados da porta serial, usando a placa AVR ATMEGA8 da Cerne Tecnologia
e Treinamento (WWW.cerne-tec.com.br).
Características
Vejamos de início os recursos disponíveis no microcontrolador AVR ATMEGA8:
130 Instruções de Programação Assembler;
Processamento de até 16 MIPS (Milhões de Instruções por Segundo).
8Kbyte de memória de programa Flash que pode ser escrita até 10000 vezes;
1kB de memória de dados SRAM;
512 Bytes de memória EEPROM;
6 Entradas analógicas no modelo DIP;
23 Linhas de I/O Programáveis
Podemos ver pela lista acima que de fato este microcontrolador apresenta
características bem atraentes que de fato poderão ser de grande ajuda em um projeto
microcontrolado como por exemplo a memória de dados do mesmo que é de 1kByte.
Estes microcontroladores também são facilmente achados no mercado, custando em
média R$ 10,00 na época em que este artigo foi escrito.
Podemos apreciar a pinagem do ATMEGA8 na figura abaixo:
pf3
pf4
pf5
pf8
pf9

Pré-visualização parcial do texto

Baixe Comunicação Serial com o AVr e outras Manuais, Projetos, Pesquisas em PDF para Engenharia Elétrica, somente na Docsity!

Comunicação Serial com o AVR ATMEGA

Vitor Amadeu Souza

[email protected]

Introdução

Os microcontroladores AVR vem a cada dia tomando cada vez mais espaço nos novos projetos eletrônicos microcontrolados. Isso de fato é em virtude do baixo custo do mesmo e da alta capacidade de processamento que este apresenta aliada de uma vasta documentação achada facilmente na internet. Neste artigo, irei apresentar ao leitor juntamente com o compilador BASCOM a facilidade e simplicidade em escrever um programa que possa transmitir e receber dados da porta serial, usando a placa AVR ATMEGA8 da Cerne Tecnologia e Treinamento (WWW.cerne-tec.com.br).

Características

Vejamos de início os recursos disponíveis no microcontrolador AVR ATMEGA8:

  • 130 Instruções de Programação Assembler;
  • Processamento de até 16 MIPS (Milhões de Instruções por Segundo).
  • 8Kbyte de memória de programa Flash que pode ser escrita até 10000 vezes;
  • 1kB de memória de dados SRAM;
  • 512 Bytes de memória EEPROM;
  • 6 Entradas analógicas no modelo DIP;
  • 23 Linhas de I/O Programáveis

Podemos ver pela lista acima que de fato este microcontrolador apresenta características bem atraentes que de fato poderão ser de grande ajuda em um projeto microcontrolado como por exemplo a memória de dados do mesmo que é de 1kByte. Estes microcontroladores também são facilmente achados no mercado, custando em média R$ 10,00 na época em que este artigo foi escrito.

Podemos apreciar a pinagem do ATMEGA8 na figura abaixo:

Observe pela pinagem apresentada, que o mesmo possui três PORTS (portas) de I/O identificadas por PORTB (Pinos 14, 15, 16, 17, 18, 19, 9 e 10), PORTC (Pinos 23, 24, 25, 26, 27, 28 e 1), PORTD (Pinos 2, 3, 4, 5, 6, 11, 12 e 13). Nestes PORTS podemos conectar elementos digitais como leds, displays, botões e etc assim como entradas analógicas que estão disponíveis no PORTC.

Este microcontrolador funciona com uma tensão de 5V porém a sua faixa de funcionamento é extensa, podendo variar de 2,7 a 5,5 V para o microcontrolador ATMEGA8L. No nosso experimento, iremos usar dois pinos em especial para a comunicação serial, que são os pinos 3 (TXD) e 2 (RXD).

Esquema Elétrico

Vejamos abaixo o esquema elétrico que permitirá montar e testar o nosso projeto:

O Compilador BASCOM

O compilador AVR BASCOM é de fato uma excelente ferramenta para o primeiro contato com o AVR, já que em função de ser uma linguagem de alto-nível diversas funções já estão prontas, como a de comunicação serial, display LCD, display gráfico dentre outras o que de fato irá estimular o leitor a conhecer cada vez mais ambas as ferramentas. Para baixar a versão DEMO deste software, que compila até 4kB de código você pode acessar o site WWW.mcselec.com e baixar o mesmo gratuitamente na seção Download do site.

Após o download e instalação do BASCOM, inicialize o mesmo, teremos a seguinte tela:

Para criar um novo programa, vá no menu File e em seguida New. Agora a seguinte tela será apresentada:

É nesta janela branca que foi aberta (área de edição) que iremos escrever nossos projetos em BASIC. A forma básica para escrever um programa em BASIC é a seguinte:

$regfile = "m8def.dat"

$crystal = 1000000

$baud = 1200

Vejamos o significado de cada uma destas linhas:

$regfile=”m8def.dat”

Como o BASCOM trabalha com diversos microcontroladores da linha AVR, devemos informar nesta linha com qual modelo iremos compilar o nosso projeto. Neste caso é o “m8def.dat” que é referente ao ATMEGA8.

$crystal=

Funções de Comunicação Serial

Para comunicarmos serialmente do microcontrolador com o PC e vice-versa, iremos utilizar uma função do compilador BASCOM chamada Input. Veja a sintaxe desta função abaixo:

Input “Texto a ser impresso no PC”, variável que receberá conteúdo do PC

Observe que em “Texto a ser impresso no PC” informamos o texto que será enviado para o PC e apresentado para o usuário do mesmo. Em “variável que receberá conteúdo do PC” está a informada a variável que receberá o conteúdo no qual será enviado para a placa, neste caso os dois valores a serem somados e enviados novamente para o PC.

Além da função input faremos uso de mais uma função, chamada print. Esta função permite que seja enviado para o PC o conteúdo de uma variável ou algum texto, no nosso caso será fundamental para enviar a soma dos dois valores previamente informandos.

Código

Abaixo está apresentado o código do nosso exemplo:

$regfile = "m8def.dat"

$crystal = 1000000

$baud = 1200

Dim A As Integer

Dim B As Integer

Dim C As Integer

Repete:

Input "Informe um valor: " , A Input "Informe um segundo valor: " , B C = A + B Print C

Goto Repete

Vamos entender melhor este código a partir da declação das variáveis (dim a as integer) já que a parte anterior foi explicada anteriormente. Neste ponto, estamos declarando três variáveis do tipo inteiro (integer) que podem armazenar valores de -32768 a 32767. Elas serão usadas para armazenar o valor enviado do PC para a placa assim como para se achar a soma das duas variáveis. Em seguida, encontramos a função input que envia para o PC um texto (” Informe um valor: ") solicitando que seja enviado um valor numérico para a placa onde neste caso este valor será armazenado na variável A. Em seguida mesma operação, porém armazenando o valor na variável B. Finalmente, ambos os valores são somados e armazenados na variável C (C=A+B). Agora este valor é enviado para o PC através da função print (print c) em que o valor da soma é enviado para o PC com a soma de A e B. Em seguida o software volta a solicitar as mesmas informações, já que há o comando goto repete que faz com que o mesmo volte para a primeira função input e repete todo o processo.

Testando o Programa

Para testarmos o programa, podemos usar o terminal presente no prório BASCOM. Para isso vá no menu Tools -> Terminal Emulator. Teremos a seguinte tela:

Devemos primeiramente ajustar a velocidade de comunicação do terminal emulator, já que a velocidade de comunicação configurada na placa foi de 1200 bps. Para isso, vá ao menu Terminal -> Settings. Teremos acesso a seguinte tela: