Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Introdução
O microcontrolador também é chamado de “microcomputador de um só chip” porque
reúne vários elementos que no caso dos microprocessadores são desempenhados por
outros circuitos separados(externos) por ex. Memórias(RAM, ROM), temporizadores,
comunicação serial,timers, conversores A/D e D/A etc.
Um microcontrolador inclui todos esses periféricos, mas na maioria dos casos
são mais restritos, ou seja, endereçam menos memória. O microcontrolador é usado para
compor dispositivos eletrônicos dedicados de baixo custo e com aplicações objetivas.
Podemos citar algumas aplicações: 1) Injeção Eletrônica nos automóveis; 2) Controle
interno de temperatura nos automóveis; 3) Máquinas de lavar roupa; 4)Forno de
Microondas; 5) Controle de temperatura e alimentação de frangos em um aviário; 6)
Robótica; entre muitas outras.
É inegável a propagação comercial dos microcontroladores nos últimos anos e
nas diversas áreas: Automotiva, Residencial, Comercial, Industrial e Rural(Agricultura).
Processamento
Os microcontroladores são máquinas capazes de processar informações, como se
fossem “pequenos computadores”. O processo consiste em ler as entradas, executar uma
lógica e atualizar as saídas. Isso é feito através das instruções colocadas em ordem pelo
programador.
4. Arquiteturas
Todos os microcontroladores usam um dos dois modelos de projeto básicos
chamadosarquitetura Harvard e arquitetura von-Neumann.
Na arquitetura Von Neumann, a unidade central de processamento busca os
dados e as instruções na mesma unidade de memória.
Desvantagens: diminuição da largura de banda (não é possível carregar dados e
instruções no mesmo ciclo de máquina).
5. Microcontroladores x Microprocessadores
Um microcontrolador difere de um microprocessador em vários aspectos.
Primeiro e o mais importante, é a sua funcionalidade. Para que um microprocessador
possa ser usado, outros componentes devem-lhe ser adicionados, tais como memória e
componentes para receber e enviar dados. Em resumo, isso significa que o
microprocessador é o verdadeiro coração do computador. Por outro lado, o
microcontrolador foi projetado para ter tudo num só chip. Nenhum outro componente
externo é necessário nas aplicações, uma vez que todos os periféricos necessários já
estão contidos nele. Assim, nós poupamos tempo e espaço na construção dos
dispositivos.
6. Eletrônica Digital
Algumas instruções encontradas nos programas de microcontroladores dão o mesmo
resultado que portas lógicas. Sua operação será discutida em seguida.
Um sistema digital é um sistema no qual os sinais são compostos por um
conjunto finito de valores discretos. Isso se contrapõe aos sistemas analógicos, nos
quais os sinais possuem valores pertencentes a um conjunto infinito, ou seja, contínuo.
Como exemplo elementar, uma balança digital mede o peso através de sinais discretos
que indicam quilogramas e/ou gramas; por outro lado, uma balança analógica mede o
peso através de um sinal correspondente à posição de um ponteiro sobre uma escala.
Os sinais digitais são usados no processamento da informação, também chamado
de processamento de dados ou processamento de sinais, em que substituíram os
sistemas analógicos anteriores.
• A representação digital é bem adequada tanto para o processamento
numérico como para o não numérico de informação. Um exemplo de
informação digital não-numérica é a linguagem escrita, na qual as letras têm
valores do alfabeto finito A, B, C,... etc.
• O processamento da informação pode ser realizado através de um sistema
para propósitos gerais, por exemplo, um computador, que seja programado
para uma tarefa de processamento particular, eliminando a necessidade de
haver um sistema diferente para cada tarefa;
• O número finito de valores num sinal digital pode ser representado por um
vetor de sinais com apenas dois valores, sinais binários. Por exemplo, os dez
algarismos do sistema decimal podem ser representados pelos seguintes
valores em binário:
Exemplo 2 – Decimal para base 16: Transformar (2798)10 para a base 16.
Para a base 16 é importante ressaltar que 10 equivale a ‘A’, 11 a ‘B’, 12 a ‘C’, 13 a ‘D’,
14 a ‘E’, 15 a ‘F’. Portanto, (2798)10 = (AEE)16.
Exemplo 1 – Binário para decimal: Transformar (1101)2 para a base 10. (1101)2 =
1x23 + 1x22+0x21+1x20 = 8 + 4 + 1 = 13!(1101)2 = (13)10
Exemplo 2 - Octal para decimal: Transformar (23)8 para a base 10. (23)8 = 2x81 +
3x80 = 16 + 3 = 19!(23)8 = (19)10
Exemplo 3 - Hexadecimal para decimal: Transformar (10B5)16 para a base 10.
(10B5)16 = 1x163 + 0x162 + 11x161 + 5x160 = 4277!(10B5)16 = (4277)10
a) Função de igualdade
b) Função OU (OR)
c) Função E (AND)
Conceito de BIT
Um bit nada mais é que um dígito binário. Semelhante ao sistema de numeração
decimal em que os dígitos de um número não têm o mesmo valor (por exemplo, os
dígitos do número decimal 444 são os mesmos, mas têm valores diferentes), a
significância de um bit depende de sua posição no número binário . Como não há
sentido falar de unidades, dezenas etc, em números binários, seus dígitos são referidos
como o bit zero (bit mais à direita), primeiro bit (o segundo da direita), segundo bit,
terceiro bit, etc. Além disso, uma vez que o sistema binário utiliza dois dígitos apenas (0
e 1), o valor de um bit pode ser 0 ou 1.
Conceito de BYTE
Um byte é composto por oito bits agrupados. Se um bit é um dígito, é lógico dizer que
bytes representam números. Todas as operações matemáticas podem ser realizadas
sobre eles, os bytes, igualmente aos números decimais. Semelhante a dígitos de um
número qualquer, os dígitos de um bytes não tem o mesmo significado. O bit mais à
esquerda tem o maior valor, e é chamado o bit mais significativo (MSB – Most
Significant Bit). O bit mais à direita tem o menor valor e por isso é chamado o bit
menos significativo (LSB – Least Significant bit).
Os 8 bits de um byte podem assumir valores 0 ou 1, independentemente. Assim,
esses 8 bits podem ser combinados em 256 formas diferentes, o maior número decimal
que pode ser representado por um byte é 255.
Um nibble é referido como metade de um byte. Dependendo de que metade do
byte estivermos falando (esquerdo ou direito), dizemos que há 'alto' e 'baixo' nibble,
respectivamente. Os conceitos de bit, byte e nibble podem ser entendidos observando a
figura a seguir.
7. Memórias
A memória é a parte do microcontrolador utilizado para armazenamento de dados.
A maneira mais fácil de explicar é compará-la com um armário de arquivo com muitas
gavetas. Suponha-se, as gavetas estão claramente identificadas para que seu
conteúdo possa ser encontrada com facilidade através da leitura da etiqueta na
parte frontal da gaveta.
Da mesma forma, cada endereço de memória corresponde a um local de
memória. O conteúdo de qualquer lugar pode ser acessado e lido pelo seu
endereçamento. Memória pode ser escrita ou lida. Na figura 4 temos um representação
de uma memória que pode ser escrita ou lida. Do lado esquerdo, temos o endereço de
cada posição de memória, do lado direito, temos os dados. Ao endereçar uma posição
específica, a linha de dados apresenta o conteúdo presente naquela posição endereçada.
Esse conteúdo pode ser lido para ser usado em algum processamento, ou ainda,
esse conteúdo pode ser alterado mediante a escrita de um novo dado naquele endereço.
Figura 4
8. Registradores
Um registrador é responsável por memorizar o estado de um byte. Em um
microcontrolador há vários registradores usados para armazenar as informações do
programa. Ele verifica o estado das entradas ou saídas, e o resultado é de uma operação
matemática. São registradores de Função especial (SFR), cujas funções são pré-
determinadas pelo fabricante: temporizadores, conversores A/D e osciladores (descritos
nas próximas seções).
10. Interrupções
A maioria dos programas usam interrupções em sua execução normal. O objetivo
do microcontrolador é principalmente responder às mudanças no seu entorno. Em outras
palavras, quando um evento ocorre, o microcontrolador faz alguma coisa. Por exemplo,
quando você aperta um botão em um controleremoto, o microcontrolador irá registrá-lo
e responder pela alteração de um canal, aumentar o volume para cima ou para
baixo, etc. Se o microcontrolador passasse a maior parte de seu tempo
infinitamente verificando alguns botões por horas ou dias, isso não seria prático. É por
isso que o microcontrolador possui uma técnica de resposta a certos estímulos.
Em vez de verificar cada pino ou bit constantemente, o microcontrolador delega
essa função a circuitos específicos que só responderão quando algo específico
acontece, por exemplo, o pressionamento de um botão.
O sinal que informa a unidade de processamento central quando um evento como
esse ocorre é chamado de uma interrupção. Quando a interrupção ocorre, o
microcontrolador para de executar o programa e atende aquele evento em especial. As
interrupções são recursos extremamente poderosos e práticos para o
desenvolvimento de sistemas microcontrolados.
Figura 5.
12. Oscilador
• Brown out é uma condição potencialmente perigosa que ocorre no momento em que
o microcontrolador é desligado ou quando a tensão cai para um valor mínimo
devido a ruído elétrico. Como o microcontrolador é composto por vários circuitos, com
diferentes níveis de tensão de funcionamento, este estado pode provocar um
funcionamento fora de controle. Para evitar isso, normalmente o microcontrolador
possui um circuito de reset que reinicia todos os circuitos assim que o
microcontrolador incorre em um estado de emergência.
• Pino de reset é normalmente marcado como MCLR (Master Clear Reset). É
utilizado para reiniciar o microcontrolador atravésda aplicação de uma lógica de zero
(0) ou um (1) nesse pino, o que depende do tipo do microcontrolador.
14. Temporizadores/Contadores
Modulação por largura de pulso. Permite simular uma saída analógica através de pulsos
digitais rápidos e de tamanho regulável.
PINO 1:Suporta 3 níveis de tensão. Quando este pino estiver recebendo 5V, o
microcontrolador estará em condições de executar o programa. Quando este pino
receber 0V (GND), o PIC será “resetado”. Quando este pino receber tensão de 13,4V, o
PIC irá entrar em modo gravação.
Os demais pinos são conhecidos por I/Os (lê-se Aiôus, e vem do inglês Inputs/Outputs,
que significa entradas/saídas). Estas I/Os são agrupadas em PORTs(portos), de no
máximo 8 pinos cada (limitação pois o componente possui um núcleo de 8 bits).
Há um total de 33 I/Os disponíveis, que podem ser configuradas como entradas
ou saídas em tempo de execução.
Quando um pino é configurado como ENTRADA, ele pode ser conectado
a algum sensor para detectar sinais digitais através de variação da tensão de 0 e 5V.
Quando um pino é configurado como saída, o programa poderá acioná-lo, e com
isso gerar uma corrente baixa (max. 20 mA) com os níveis de tensão de 0V ou 5V.
Alguns pinos, porém, possuem outras funções além de serem entradas ou saídas digitais.
Por exemplo, no diagrama ao lado podemos observar que os pinos 2 a 10 (exceto
o pino 6) são entradas analógicas, e podem ser usados para detectar uma variação de
tensão entre 0V e 5V, transformando esta
variação em uma informação binária de 10bits.
Os pinos 39 e 40 também são pinos usados
na gravação do microcontrolador, e os pinos 25
e 26 são usados para comunicação SERIAL
padrão RS232. Os pinos 16 e 17 são pinos
geradores de pulso (PWM), que é similar a uma
saída analógica. Muito útil para controle de
velocidade de motores, por exemplo. O pino 6 é
um pino usado para contagem rápida.
Observações importantes:
Para programarmos o Pic temos que seguir os passos descritos conforme a figura
acima:
• 1o Passo deve-se gerar um arquivo fonte com as instruções do PIC, estas instruções
podem ser escritas em qualquer editor de texto, mas quando for salvá-lo deve ter a
extensão <arquivo>.ASM, isto significa que o programa foi editado em assembler.
• 2o Passo, abre-se o programa chamado MPASM, fornecido gratuitamente pela
Microchip, este programa irá converter o programa editado em assembler em:
<arquivo>.OBJ → É arquivo compilado.
<arquivo>.LST→ É a listagem do arquivo compilado.
<arquivo>.ERR→ Erros de compilação.
<arquivo>.HEX→ Gera o arquivo executável no formato Intel Hex.
Quando solicitamos ao MPASM ele gera todos os arquivos acima
automaticamente e grava, isto ocorre caso não haja nenhum erro de programação. Se
houver erro deve-se voltar ao programa <arquivo>.ASM e arrumar o mesmo.
• 3o Passo, gravação no PIC, para gravar o <arquivo>.HEX é necessário ter
programador/Hardware tipo(PICStart, PICLab, PICFly, etc) e um programa que
faça a interface com este programador.
17.1 Linguagem C
Quatro elementos estão presentes em um programa C:
• Comentários
• Diretivas de compilação
• Definições de dados
• Blocos com instruções e funções
Modelo básico
#include<....> Diretivas de compilação
#fuses......
// comentário ocupando uma linha Comentários
char i , j ; Variáveis
floatTempo;
void main()
{
instruções do programa principal
}
void delay()
{
instruções da função (rotina) delay
}
AS INSTRUÇÕES
Por se tratar de um microcontrolador RISC, o PIC oferece um número reduzido de
instruções. No entanto, ainda podemos dividir as instruções utilizadas pela família 16
dos microcontroladores PIC em 6 grupos :
• Instruções para manipulação de bytes de memória (B)
• Instruções para manipulação de bits de memória (b)
• Desvios incondicionais (Di)
• Desvios condicionais (D)
• Instruções com valores constantes (K)
• Instruções de controle (G)
Instrução e
Parâmetros Tipo Bits de status
Descrição Ciclos
Mneumônicos afetados
ADDWF f, d Adição : W + F. B 1
C, DC, Z
DECF f, d Decrementa F B 1
Z
INCF f, d Incrementa F B 1
Z
REFERÊNCIAS
PEREIRA, Fábio. Microcontroladores PIC: técnicas avançadas. São Paulo. São Paulo:
Érica. 2002.
PEREIRA, FÁBIO. Microcontroladores PIC.5.ed., SAO PAULO:Érica.2007.
SOUZA, DAVID JOSÉ DE. Desbravando o PIC.11.ed., SAO PAULO:Érica.2007.
CORTELETTI, D. Linguagem de Programação Assembly – Parte I. Disponível em:
http://goo.gl/UcC6ZA
SILVA JUNIOR, V. P. Linguagem C para microcontroladores PIC. Disponível em:
http://usuarios.upf.br/~fpassold/PIC/C_PIC.PDF
Bibliografia Complementar
ZELENOVSKY, Ricardo; MENDONÇA, Alexandre. PC: um guia prático de hardware
e interfaceamento. 2. ed. rev. e ampl. São Paulo, MZ, 1999.