Escolar Documentos
Profissional Documentos
Cultura Documentos
MICROCONTROLADORES
Campina Grande
Fevereiro de 2014
UNIVERSIDADE FEDERAL DE CAMPINA GRANDE
CENTRO DE CIÊNCIAS E TECNOLOGIA
UNIDADE ACADÊMICA DE ENGENHARIA MECÂNICA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA
MICROCONTROLADORES
Trabalho acadêmico
apresentada à disciplina Introdução a
Engenharia Elétrica da graduação em
Engenharia Elétrica da Universidade
Federal de Campina Grande como
parte dos requisitos para a obtenção de
de nota em Introdução a Engenharia
Elétrica.
Campina Grande
RESUMO
1 CAPÍTULO .................................................................................................................. 5
2.4.3 Interrupção.................................................................................................... 14
3. CONCLUSÃO .......................................................................................................... 22
1.1 Introdução
5
1.2 Objetivo do trabalho
Trazer de forma clara e precisa uma explicação de como funciona e o que é o sistema
computacional chamado microcontrolador, especificando suas características, seus
componentes, seus princípios de funcionamento e a principais aplicações, agregando
desenvolver nosso conhecimento. Elaboramos através de revisões bibliográficas um texto de
corpo denso de informações de nível intermediário, observando mostrar a importância que os
microcontroladores tem no nosso cotidiano e como são cada vez mais presentes no mundo
que nos rodeia.
6
1.3 Metodologia
7
2. REVISÃO BIBLIOGRÁFICA
8
interfaces, etc). Em resumo, isso significa que o microprocessador é o verdadeiro coração do
computador.
Então, pode-se concluir, que o microcontrolador é um microprocessador, com
memória RAM, memória ROM, temporizadores, contadores, portas de entrada/saída e
conversores, tudo em um só circuito integrado, ou seja, um microcomputador de um só chip.
2.2.1 Processador
Determina as ordens das instruções que deverão ser realizadas ao processador, por
intermédios de sinais de controle. No caso de entrada, há Registrador de Instrução (IR), o flag,
um bit sinalizador, e o clock que é o circuito que gera um sinal cíclico em uma determinada
freqüência de tempo. (OKI; MANTOVANI, 2013). Sua unidade de medida é Hertz, pois é o
número de ciclos em um segundo. Portanto, quanto maior o clock, a frequência, mais rápida
9
será enviada a instrução mas, para cada instrução se faz necessário uma certa demanda de
ciclos.
2.2.4 Registradores
Os registradores são endereços na memória, que são formados por 8 números (bits),
podendo cada bit assumir o valor de 1 (um) ou 0 (zero). São considerados memórias
auxiliares internas à CPU e, portanto, tendem a guardar informação (dados ou instruções) o
mais temporariamente possível
Os microcontroladores possuem dois tipos de registradores básicos: Os registradores
visíveis ao usuário e os registradores de controle e de estado. Os registradores visíveis ao
usuário permitem ao programador em linguagem de máquina ou assembly minimizar as
referências à memória principal otimizando o uso dos registradores. Já os registradores de
controle e estado são usados pela unidade de controle para controlar a operação da CPU e os
programas do sistema operacional.
A sigla RISC vem do inglês (Reduced Instruction Set Computing) que significa
computador com conjunto de informações reduzidas. Esse tipo de arquitetura faz diversas
funções usando poucos comandos, tornando o microcontrolador muito rápido nas ações, pois
10
utiliza apenas um ciclo de clock, ou seja as instruções são executadas apenas com uma micro
instrução.
2.3.1.1 Características:
a) conjunto menor de instruções;
b) programa variáveis em unidades separadas;
c) barramentos diferentes para memória de programa e de dados;
d) grande número de registradores de propósito geral;
e) instruções mais complexas são construídas a partir das mais simples;
f) acessa informações separadamente dos dados do programa usando também a técnica
pipeline.
A arquitetura Harvard é de certa forma oposta à Princeton, pois, possui dois
barramentos separados, um para dados, e o outro para instruções. Por isso, possui
desempenho melhor e mais rápido, pois pode também estar buscando uma nova instrução
enquanto está executando outra.
11
Esse tipo de arquitetura é mais poderosa, porém mais lenta, pois necessita de muitos
recursos para funcionamento pleno, nesse tipo de arquitetura, quando o programa está
acessando a memória do programa, não pode acessar a memória de dados, pois usa os
mesmos barramentos.
As várias instruções trafegam em um mesmo barramento, o que compromete a
velocidade de operação, pois só processam uma informação por vez. O processador busca em
um ciclo a instrução na memória e a executa no outro ciclo. (REBOUÇAS, 2014)
2.3.2.1 Características
a) programa e variáveis na mesma memória;
b) barramentos único para memória de programa e de dados;
c) conjunto de instruções complexas;
d) compiladores mais complexos.
12
hertz, mais rápida será enviada a instrução mas, para cada instrução se faz necessário uma
certa demanda de ciclos.
Já o ciclo da máquina (CM) ou Ciclo de Instrução (Tcy) é um conjunto de clocks que
depende do microcontrolador, no caso do PIC, se faz o uso de 4 ciclos. Na figura 2 representa
o funcionamento básico, onde:
Figura 6:Ciclo. Onde, Q1: Decodificação da Instrução, Q2: Ciclo de Leitura de Instrução, Q3: Processamento do
Dado, Q4: Ciclo de Escrita da Instrução. (Fonte: CESAR, 2007).
Ainda referente ao mesmo autor, Cesar(2007) faz uma analogia sobre os ciclos com ou
sem pipelining. O qual, utiliza de um roteiro de atividades com grupos de roupas sujas tendo
as seguintes etapas: lavar, secar, passar e dobrar. No caso do primeiro ciclo, um grupo de
roupa realizaria todas as etapas, quando finalizado, outro grupo passaria por essas atividades.
Já a pipelining, enquanto o segundo grupo estivesse lavando (etapa 1), o anterior estaria
secando (etapa 2). Ou seja, gastaria um tempo bem menor em relação ao ciclo máquina.
2.4.2 Reset
13
No microcontrolador, deverá ser feito um circuito para a reinicialização do sistema,
chamado de reset, que pode ser feito pelo uso do pino RST ou MCLR (Master Clean Reset).
É importante o uso desse circuito em algumas situações como na alimentação inicial do chip e
o Brown-Out — Situação em que o dispositivo está se desligando ou quando a energia
fornecida cai no limite.
2.4.3 Interrupção
A memória RAM serve para armazenar temporariamente os dados que estão sendo
manipulados pelo processador. É responsável pela leitura dos conteúdos quando requeridos e
não armazena arquivos de forma permanente, podendo ser entendida como um espaço
14
temporário de trabalho, pois, após a tarefa ser realizada, os arquivos são retirados da memória
e mantidos no HD.
2.5.3 OTP
É um tipo de memória ROM programável apenas uma única vez. Nela é o usuário
pode escrever o programa no chip, mediante uma simples gravação, controlada por um
programa de um computador. Ela possui conexões formadas por fusíveis, e é programada
através do ROM programer, o qual queima os fusíveis da memória para não haver uma
determinada conexão
2.5.4 FLASH
Na memória flash, os dados podem ser armazenados por longos períodos, sem precisar
de uma fonte de alimentação elétrica. Ela armazena os bits de dados em células de memória,
onde são extremamente duráveis, sendo capazes de resistir a pressão intensa, variações
extremas de temperatura, e até mesmo imersão em água.
2.5.5 EPROM
2.5.6 EEPROM
Assim como o EPROM, este tipo de memória ROM também permite a regravação de
dados, mas os dados são apagados eletronicamente e não por meio de luz ultravioleta. É uma
memória somente de leitura. Os Chips EEPROM podem ser acessado em altas velocidades.
15
e hoje podemos até encontrar microcontroladores que são programados em JAVA. Com um
número elevado de opções de programar um microcontrolador, muitos ficam em dúvida sobre
qual seria a melhor opção para colocar em prática a tarefa que o usuário deseja executar. Uma
questão intrigante e ao mesmo tempo simples.
Antes de tudo, a linguagem de programação é o meio de interação entre o usuário e o
microcontrolador (neste caso), sendo a via que planeja a blocagem de tarefas que um
microcontrolador deve cumprir, como uma espécie de “porta-voz” da interação homem-
máquina. Cada linguagem de programação é dotada de uma sintaxe, regras de execução dos
códigos escritos, e uma lógica que deve ser seguida e compreendida pelo próprio
programador.
Com o grande número de opções a serem usadas para a programação de um
microcontrolador, a linguagem mais efetiva sempre será a que o programador domina, ou pelo
menos conhece bem, para que assim seja mais eficiente e mais rápida a solução do seu
problema. Jamais pode-se afirmar que uma linguagem é melhor que a outra, porém muitas
pessoas experientes nessa área costumam classificar as linguagens em níveis, sendo eles: alto,
médio e baixo. Dentre as linguagens de alto nível, estão linguagens como BASIC e PASCAL,
pois são consideradas mais interativas e de execução menos complexa. Dentre as linguagens
de baixo/médio nível, estão as linguagens C e assembly, onde a estrutura do código é
complexa e em determinadas tarefas é preciso que o programador tenha certo conhecimento
do hardware que está operando.
Escolhida a linguagem a ser usada na programação do microcontrolador, é preciso
somente que seja escolhido também um compilador, ou um software que faça com que toda a
linguagem escrita pelo programador surta efeito no microcontrolador. Na internet é possível
encontrar vários compiladores, muitos deles de graça e de interface fácil a ser trabalhada.
16
microcontrolador, sendo preciso reprogramar do zero o novo programa caso queira trabalhar
com um novo modelo de microcontrolador. Foi uma linguagem muito utilizada antigamente,
quando os microcontroladores tinham muito menos espaço para o armazenamento de
programas, então era de extrema importância que o seu compilador assembly gerasse um
código pequeno.
Com a inovação tecnológica dos microcontroladores, hoje em dia eles dispõem de uma
quantidade bem maior de memória para programas. Entre esse espaço de evolução, surgiu a
linguagem de programação C, uma linguagem de alto/médio nível muito mais produtiva e
segura do que o assembly, sendo uma linguagem portável, rápida, compacta e extremamente
eficiente, proporcionando uma maior facilidade caso seja preciso de uma manutenção do
código no futuro. Porém, a linguagem C ainda não é suficiente para que o assembly seja
desprezado totalmente, pois ainda pode ser necessário uma rotina que precise de toda a
velocidade que o hardware dispõe, para isso a rotina pode ser criada em assembly e logo
depois ser chamada a partir da linguagem C.
17
O ATmega328P é utilizado pelos dispositivos Arduino Uno, Arduino 2009 e possui
um processamento de 8 bits. O chip é fabricado pela ATMEL. A arquitetura RISC (Reduced
Instruction Set Computer ou Computador com um Conjunto Reduzido de Instruções, e
representa uma linha de processadores que apresentam um conjunto simples e pequeno de
instruções e que utilizam a mesma quantidade de tempo para executar as mesmas) com
frequência de operação em 16 MHz. O referido dispositivo ainda possui memórias do tipo
Flash, EEPROM e RAM, sendo que cada uma delas possui 32KB, 1KB e 2KB,
respectivamente. Na sua composição ainda estão vinte e três entradas e saídas digitais, com
tensão de operação de varia de 1.8 a 5.5V e baixo consumo de energia [ATMEL]. (SILVA,
2012)
Características do microcontrolador:
Alta Performance, Low Power Atmel®AVR® 8-Bit microcontrolador;
RISC Arquitetura Avançada;
131 Instruções poderosas - Execução maioria Relógio Ciclo Único;
32 x 8 de Uso Geral Registros de Trabalho;
Operação totalmente estático;
Os segmentos de memória de alta resistência não-voláteis;
08/04 / 16 / 32Kbytes de memória de programa no sistema de auto programável flash
256/512/512 / 1KBytes EEPROM 512 / 1K / SRAM 1K / 2KBytes Interno;
Escrita / apagamento Ciclos: 10.000 Flash / 100.000 EEPROM;
Bloqueio de Programação para a Segurança Software;
Apoio à biblioteca • Atmel® QTouch®;
Qtouch e aquisição QMatrix®;
Até 64 canais sensoriais.
18
Características dos periféricos:
Dois de 8 bits Timer / Contadores com Prescaler e comparar o modo separado;
Um 16-bit Timer / Contador com Prescaler separado, Compare Mode, e modo de
captura;
Tempo real Contador com oscilador separado;
Seis Canais PWM;
8 canais ADC de 10 bits em TQFP e pacote QFN / MLF;
Medição de Temperatura;
6 canais ADC de 10 bits no pacote PDIP;
Master / Slave SPI Interface Serial;
Programável Watchdog Timer com oscilador separado On-chip;
On-chip comparador analógico;
Interrupção e Wake-up.
19
Figura 9: CI do microcontrolador ATMEGA328P-PU. (Fonte: labdegaragem)
Áreas de aplicação:
Medição de distância;
Barreira Robótica;
Detecção de Níveis;
Segurança;
Detecção de veículos em estacionamento;
Aplicação para deficientes visuais;
Entre muitas outras áreas.
Figura 10: Arduino com Microcontrolador destacado em vermelho. Com alterações (Fonte: Autoria
própria)
Características gerais:
• 6 Pinos de entrada Analógica (pinos 0-5);
• 14 Pinos Digitais de Entrada/Saída (pinos 0-13);
20
• 6 Pinos de saída Analógica (pinos 3,5,6,9,10 e 11);
• Microcontrolador ATmega328;
• Voltagem de Operação 5 volts;
• Voltagem de Entrada (recomendada) entre 7 a 12 volts;
• Voltagem de Entrada (limites) entre 6 a 20 volts;
• Corrente D/C por pino E/S: 40 mA;
• Corrente D/C por pino 3.3V: 50 mA;
• Memória Flash: 32 KB (Atmega328);
• SRAM: 2 KB (Atmega328);
• EEPROM: 1 KB (Atmega328);
• Clock Speed: 16 MHz.
21
3. CONCLUSÃO
Por meio dessa revisão bibliográfica, pode-se concluir a tamanha importância dos
microcontroladores para o avanço da eletrônica, tendo em vista a sua presença nos
dispositivos programados, desde os mais simples, como um carro de controle remoto, até os
mais complexos, como os telefones celulares. Portanto são indispensáveis para interação entre
o homem e a tecnologia.
Foi exposto que o microcontrolador é um circuito integrado, com características e
funcionamento semelhantes ao de um computador ,porém de pequeno porte. Para melhor fixar
o seu conhecimento ,foi apresentado de forma prática e precisa, uma demonstração abordando
o auxílio desta tecnologia a um deficiente visual.
Por fim, as expectativas foram atingidas, pois a metodologia empregada foi completa
e consistente, fazendo com que essa revisão bibliográfica seja útil para ser um complemento
de trabalhos futuros.
22
REFERÊNCIA BIBLIOGRÁFICA
MELO, João Luiz Glovacki Graneman de; LEANDRO, Gideon Villar. Microcontrolador
pic 18f452 / proteus. 2011. 39 f. Curso de Engenharia Elétrica, Universidade Federal do
Paraná, Curitiba, 2011.
MICHAEL MCROBERTS. Arduino básico. Rua Luís Antônio Dos Santos 110 02460-000 -
São Paulo, Sp - Brasil, 2011.
Microcontroladores - O que são, Para Que Servem e Onde São Usados. Disponível em :<
http://www.eletronicaprogressiva.net/2014/08/Microcontroladores-O-que-sao-Para-que-
servem-Onde-sao-usados.html> Acesso: 07/01/2015.
23
Microncontroladores: Noções gerais . Disponível em:
<http://paginapessoal.utfpr.edu.br/gustavobborba/material/files/mc_nocoesGerais.pdf>
Acesso em: 10/01/2015.
Microprocessadores e microcontroladores: Goiânia, s.d. Disponível em:
<http://www.emc.ufg.br/~jwilson/aulasmicro/Teoria de Micro - Parte 1.pdf>. Acesso em: 05
jan. 2015.
NICOLOSI, Denys Emilio Campion. Microncontrolador 8051 detalhado. 6ª ed. São Paulo:
ÉRICA.
OKI, NOBUO; MANTOVANI, SUELY CUNHA AMARO. Projeto de robos móveis.
Faculdade de Engenharia de Ilha Solteira- Departamento de Engenharia Elétrica, 2013.
24