





Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Neste artigo é apresentada a comunicação serial com o microcontrolador AVR da ATMEL.
Tipologia: Manuais, Projetos, Pesquisas
1 / 9
Esta página não é visível na pré-visualização
Não perca as partes importantes!






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:
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: