Você está na página 1de 65

ARQUITETURA DE

MICROCONTROLADORES
Lus Veloso 2013
Grupo 540
objetivos
Atualizar conhecimentos na rea dos microcontroladores;
Identificar a estrutura tpica de um sistema microcontrolado;
Identificar principais caractersticas de um microcontrolador;
Conhecer e aplicar instrues de um microcontrolador;
Identificar as principais funcionalidades do software de
simulao e programao;
Programar e simular;
Interligar o microcontrolador com perifricos externos;
Projetar o trabalho a desenvolver;
Promover a reflexo sobre a utilizao dos sistemas
microcontrolados como soluo para a resoluo de
problemas/projetos de eletrotecnia, eletrnica e robtica .
contedos
Apresentao da ao. (1h)
Arquitetura dos microcontroladores. (2h)
Software de simulao e programao. (2h)
Programao em linguagem assembler. (2h)
Exerccios prticos de simulao. (3h)
Sistema microcontrolado PICAXE. (2h)
Exerccios prticos. (5h)
Sistema microcontrolado ARDUINO. (2h)
Exerccios prticos. (5h)
Avaliao. (1h)
metodologia
Exposio de conceitos (Sesses tericas);


Demonstrao (Sesses Terico/Prticas);


Aplicao Prtica de conceitos (Sesses Prticas).
avaliao
Assiduidade;
Participao nas sesses (qualidade das intervenes e do
trabalho desenvolvido no decorrer da ao);
Trabalho individual* de aplicao de
conhecimentos e Reflexo crtica.
A avaliao dos Formandos decorre em conformidade com o Regime Jurdico da Formao
Contnua, n2 do art do ECD, aprovado pelo Decreto-Lei n 15/2007, de 19 de Janeiro e a carta
circular CCPFC-3-2007-Setembro.
* Os trabalhos prticos e reflexes produzidos pelos formandos a partir das e nas sesses
presenciais de acordo com os critrios previamente estabelecidos - classificados nas escalas de
1 a 10, com a meno qualitativa de:
1 a 4,9 valores Insuficiente;
5 a 6,4 valores Regular
6,5 a 7,9 valores Bom
8 a 8,9 valores Muito Bom
9 a 10 valores - Excelente
Um pouco de
histria
Um pouco de histria
Em 1969, uma empresa japonesa BUSICOM
iniciou um projeto para uma calculadora eletrnica.
A histria do microprocessador data a partir desse
projeto. Esta empresa, enviou para os Estados
Unidos uma equipa de engenheiros responsveis
pelo projeto procura de Marcian Hoff, da Intel
Corporation.
Aps a compra da licena da empresa japonesa,
em 1971, a Intel lana o seu primeiro processador
de 4 bits, denominado 4004, que conseguia
processar 6000 instrues por segundo (6kHz).
Um pouco de histria
Em Abril de 1972, a Intel anuncia o seu primeiro
processador de 8 bits, o 8008.
Este processador, alm de ter um barramento de
dados maior, conseguia processar at 300 000
operaes por segundo. Nesta mesma poca, j
comeavam a aparecer os primeiros concorrentes
da Intel, sendo a primeira a Motorola Corporation
que lana o 6800. Um engenheiro da Motorola sai
da empresa e entra para a MOS Technology que
em 1975, lana o 6501 e o 6502 por um preo
muito mais baixo do que os processadores da
Intel e Motorola.
Um pouco mais de histria
Devido ao baixo custo do 6502, torna-se rapidamente
utilizado pelo mercado dos computadores, na Apple,
Comodore e at no Atari! A MOS chegou a vender at 15
milhes de processadores por ano, porm foi comprada por
um grupo de empresas como a Rockwell, Ricoh e
Comodore.
Outro engenheiro, porm da Intel, sai da corporao e
funda a Zilog. Em 1976, a Zilog lana o Z80, que era
compatvel com 8080 da Intel e apresentava inmeras
vantagens. Neste mesmo ano, a Intel lana uma verso
melhorada do 8080, chamada 8085, porm o Z80 ainda
seria superior a este e tornou-se praticamente padro de
mercado em processadores.
E quando surgiu o
MICROCONTROLADOR?
O primeiro microcontrolador foi lanado pela Intel
em 1978 e recebeu a sigla 8048, evoluiu e deu
origem famlia 8051, em 1983.
A Intel ainda oferece a famlia 8096, que trabalha
em 16 bits, possibilitando maior capacidade de
processamento.
Hoje em dia, uma grande quantidade de fbricas
de semicondutores fabrica microcontroladores.
Microcontrolador
Circuito integrado em alta escala (VLSI) que
incorpora a maior parte dos elementos que
constituem um controlador e se destina a
uma determinada tarefa.

Costuma estar incorporado no dispositivo
que controla (controlador embebido -
embedded controller).
indstria informtica
(perifricos: rato, teclado,...)
electrodomsticos (fornos,
mq. lavar, vdeos, etc)
sistemas AVACs
telecomunicaes
indstria automvel

Aplicaes
Um microcontrolador dispe normalmente
dos seguintes elementos:

processador ou CPU
memria de dados (RAM)
memria de programa
(ROM/PROM/EPROM/EEPROM)
linhas de entrada/sada (E/S) programveis
Constituio
mdulos de controlo de perifricos (portos
srie, paralelo,USB,I2C,etc.)
gerador de impulsos de relgio
temporizadores
co-de-guarda (watchdog)
conversores A/D e D/A
comparadores analgicos

Constituio
microprocessador vs.
microcontrolador
o microprocessador um sistema aberto
constri-se um computador com as
caractersticas desejadas juntando os
mdulos necessrios
o microcontrolador um sistema fechado
contem um computador completo e as
suas prestaes limitadas no se podem
modificar
Estrutura de um
microprocessador
bus de controle
P
Memria
controlador 2
controlador 1
bus de endereos
bus de dados
perifricos perifricos
Estrutura de um
microcontrolador
C
perifricos
perifricos
Arquitectura interna de
um microprocessador
UCP
Memria
Instrues
+
dados
bus de dados
e instrues
bus comum
de endereos
8
Arquitectura von Neumann ou Princeton
Arquitectura interna de
um microcontrolador
Arquitectura Harvard
UCP
Memria
de
dados

bus de dados
bus de
endereos de
dados
8
Memria
de
Instrues

9
bus de
endereos de
instrues
10
14
bus de
instrues
Arquitectura interna de
um microcontrolador
RISC - Reduced Instruction Set Computer
(35 no 16F84)

versus

CISC - Complex Instruction Set Computer
(+150 no 8086)
Arquitectura interna de
um microcontrolador
Memria de Programa
Tipologia

PROM (Programmable Read Only Memory)
EPROM (Electrically PROM)
OTP (One Time Programmable)
EEPROM (Electrically Erasable PROM)
FLASH
Arquitectura interna de
um microcontrolador
Memria de Dados

SRAM (Static RAM)
EEPROM
Arquitectura interna de
um microcontrolador
Programao

linguagem assembly
linguagens HLL (High Level Language):
Pascal, Basic, JAL, C

Compiladores vs. Interpretadores

Como a estrutura interna dos PICs usa filosofia
RISC, no podemos esperar que execute
diretamente operaes complexas.
Alm disso, s realiza operaes com inteiros.

Para executar operaes mais complexas, de
vrgula flutuante, por exemplo, necessrio usar
um compilador de alto nvel, como C, que possui
rotinas em assembly j prontas, ou usar rotinas
fornecidas pelo fabricante ou desenvolver as suas
prprias rotinas.
Que tipos de operaes matemticas
podem realizar?
Alguns modelos de PIC possuem uma rea de
memria EEPROM (electrically erasable
programmable read only memory) que
serve como memria no voltil, til para
guardarmos dados. Essas memrias podem
suportar um ciclo de 1000000 de gravaes.
O que a EEPROM?
Alguns modelos podem receber dados e
reprogramarem-se automaticamente sem o
uso de um gravador.

um programa especial, gravado na
memria que permite interpretar um conjunto
de comandos.

Normalmente os PICs que usem o recurso de
bootloader, recebem os dados a serem
gravados atravs de uma porta srie.
O que bootloader?
O que um microcontrolador PIC?
Famlia dos microcontroladores Microchip PIC
Fonte: Microchip Technology Inc. (www.microchip.com)
A empresa General Instruments produziu um
chip chamado PIC1650, descrito como um
Computador Inteligente Programvel
(Programmable Intelligent Computer).
Este chip o pai de todos os PICs, e
funcionalmente semelhante ao 16C54. Foi
projetado para ser um perifrico para os
microprocessadores CP1600. Talvez por isso, a
sigla PIC, tambm se designe por Peripheral
Interface Controller.
O que significa PIC?
O set de instrues depende da
famlia do PIC. Os mais comuns da
famlia de ncleo de 14 bits (12F e
16F), possuem 35 instrues
assembly.

Os PICs com ncleo de 16 bits
possuem 76 instrues.
Quantas instrues possuem os PICs?
Os PICs so uma linha de
microcontroladores de arquitetura
Harvard com filosofia RISC com uma
diversidade de perifricos internos.
Famlia dos microcontroladores Microchip PIC
Fonte: Microchip Technology Inc. (www.microchip.com)
Os microcontroladores da famlia PIC
so dispositivos RISC com arquitectura
HARVARD e fluxo de instrues
PIPELINE.
O seu uso praticamente ilimitado e o
preo baixo, tendo em conta as suas
excelentes caractersticas.
Os PICs so muito versteis, podem
possuir de 6 at 100 pinos e trabalhar
em frequncias at 80MHz.
Existem algumas famlias de PIC que podem ser
classificadas segundo:

O tamanho da instruo: com ncleo de 12 bits,
ncleo de 14 bits, ncleo de 16 bits;
O tipo da memria: PROM (OTP = programvel
uma vez), EEPROM, FLASH (que podem ser
gravadas vrias vezes);
O prefixo do modelo: 12, 14, 16, 18, rfPIC, dsPIC;

A Microchip lanou ainda diversas outras famlias:
24F, 30F, 33F e PIC32 (com ncleo MIPS).
Quais so as famlias PIC?
16F628(A) de 18 pinos e at 16 portas de I/O, com velocidade de at
20MHz de clock, memria de programa Flash, e memria de dados
EEPROM e RAM, USART, PWM, Comparadores analgicos, Timers,
Watchdog Timer (WDT), oscilador interno.

12F629 de 8 pinos e at 6 portas de I/O, Flash, EEPROM,
Comparadores, Timers, WDT 16F877(A) de 40 pinos e at 33 portas de I/O,
Flash, EEPROM, Conversores A/D, USART, Timers, SSP, WDT, PSP.

16F84A de 18 pinos e 13 portas de I/O, Flash, EEPROM, Timers, WDT.
Obs: obsoleto

18F4520 de 40 pinos 18F2550

18F4550 de 40 pinos e hardware para implementar dispositivos USB 2.0
Quais so os modelos Flash mais comuns?
A letra aps o prefixo de dois dgitos significa a tecnologia
da memria utilizada pelo microcontrolador.

Assim as mais comuns so:
C quer dizer memria OTP (once time programmable),
F quer dizer Flash (programvel diversas vezes),
LF quer dizer Flash de baixa tenso,

As letras no final do cdigo, definem o tipo de
encapsulamento e a faixa de temperatura de trabalho.
O que significam as letras
nos cdigos dos PICs?
Pin-out do PIC16F84
Considerado um marco de divulgao.
Foi um dos primeiros a usar o tipo de memria ROM do tipo
FLASH e juntamente com a gravao srie (ICSP In-Circuit
Serial Programing)
A sua flexibilidade, baixo custo e recursos renderam fama ao
seu fabricante. Hoje um microcontrolador descontinuado.
Programao
Programao
O recurso ICSP In-Circuit Serial Programing,
i.., Programao Srie no Circuito facilita a sua
programao. Este recurso permite que a
memria ROM do microcontrolador seja gravada,
atravs de dois pinos, facilitando a gravao do
PIC na prpria placa de aplicao.
Os PICs podem ser programados em
linguagem assembly ou em linguagem de
alto nvel como C, Pascal ou Basic. Para
tal, necessrio um programa compilador para
gerar os cdigos hexadecimais para serem
gravados no microcontrolador.
Um software/ambiente de desenvolvimento de
programas para PICs encontra-se disponvel
gratuitamente no site da Microchip (MPLAB).
Programao
Em que linguagem posso
programar os PICs?
Programa de gravao de microcontroladores
IC-PROG
www.ic-prog.com
Ambiente de programao MPLAB
A Microchip disponibiliza gratuitamente no seu site uma
importante ferramenta de programao, conhecida como
MPLAB IDE.
um completo ambiente de programao para microcontroladores
Microchip, que na sua verso gratuita tambm integra um
montador assembly chamado de MPASM.
Segundo a Microchip O que o MPLAB IDE? MPLAB
Integrated Development Environment (IDE) um pacote de
ferramentas integradas e gratuitas para o desenvolvimento de
aplicaes dedicadas aos microcontroladores Microchip
PICmicro e dsPIC. O MPLAB IDE executado como uma
aplicao para o ambiente Windows. fcil de se utilizar e agrega
componentes de software gratuitos para um rpido
desenvolvimento de aplicaes e um poderoso compilador.
MPLAB IDE tambm disponibiliza uma simples e unificada
interface grfica ao utilizador para desenvolvimento de aplicaes
de hardware e software Microchip.
Linguagem C
Linguagem C
Considerada uma linguagem de alto nvel, a linguagem C bastante
verstil. Criada por Dennis Ritchie da Bells Labs em 1972, conhecida
pelo seu equilbrio entre estrutura e eficincia, eliminando as deficincias
da linguagem Assembly ainda com baixo consumo de Memria. A
linguagem C (assim como as demais linguagens) compilada e desta
forma, o programa fonte gerado pelo programador processado por um
outro programa, conhecido por COMPILADOR, que ir gerar o programa
em linguagem binria.
Na maioria dos compiladores, o processo realizado em duas fases,
sendo isso transparente ao utilizador. Na primeira fase, existe a leitura do
programa fonte, a verificao dos smbolos (nomes usados no programa),
e da sintaxe dos comandos, verificando se h algum erro sinttico. Em
paralelo a isso, atravs da anlise do significado de cada estrutura da
linguagem, produzido um programa em linguagem intermediria (em
alguns casos o cdigo intermedirio em assembly). Na segunda fase, o
compilador executa a traduo do cdigo intermedirio para a linguagem
de destino, neste caso, num arquivo HEX com as instrues de mquina
do microcontrolador.
Linguagem C
A vantagem das linguagens de programao de alto-nvel sobre o
Assembly est no fato de, na gerao de cdigo envolver
situaes mais complexas do que as suportadas por uma nica
instruo da linguagem de mquina do hardware alvo. Por
exemplo, se um microcontrolador no possuir a instruo de
multiplicao, o programador assembly deve criar um pedao de
cdigo que realize somas sucessivas. Em linguagem C, o
programador pode utilizar a operao de multiplicao, pois fica
transparente a traduo que o compilador far, resolvendo esta
operao da maneira mais adequada possvel. Isso tambm
garante s linguagens de programao uma maior portabilidade
em relao ao assembly, permitindo que um programa fonte
possa ser recompilado para outro modelo de microcontrolador
com poucas ou nenhumas modificaes.
Linguagem C
A desvantagem da linguagem C sobre a linguagem
assembly reside no consumo de memria. Como o
compilador nem sempre consegue cobrir todas as
otimizaes de cdigo possveis, em muitos casos temos
um acrscimo de instrues no cdigo binrio (arquivo
HEX) gerado, consumindo um pouco mais de memria de
programa.
A linguagem C permite tambm que os programas possam
ser escritos de forma estruturada, facilitando a sua
interpretao e aumentando o reaproveitamento de
pedaos de cdigo j escritos do programa. Desta forma,
um programador pode escrever parte do problema,
reutilizando tambm partes de programas ou subrotinas j
criadas, facilitando a implementao.
Compiladores C para
microcontroladores Microchip PIC.
CCS ou PIC C COMPILER ou PCW
(www.ccsinfo.com)
Hi-tech PIC C Compiler
(http://www.htsoft.com/products/picccompiler.php.)
BoostC Compiler
MikroC Compiler
(http://www.mikroe.com/en/compilers/mikroc/pic)
CC5X e CC8E (http://www.bknd.com)
Microchip MPLAB C18
(http://www.microchip.com)

Linguagem PASCAL
uma linguagem que foi criada em 1970 pelo suo
Niklaus Wirth, e recebeu este nome em homenagem
ao famoso matemtico Blaise Pascal. Trata-se de
uma linguagem muito estruturada, com comandos
simples e de alto nvel, e foi muito utilizada no ensino
de programao pela sua sintaxe amigvel e
comandos fceis de memorizar.
Compiladores PASCAL para
microcontroladores PIC.
MikroPascal (www.mikroe.com)
P2C (www.sourceboost.com)

Linguagem BASIC
Criada em 1963 por Kemeny e Kurtz com o objetivo de
facilitar o ensino de programao, foi uma linguagem muito
difundida nos anos 80, ressurgindo recentemente como
uma poderosa linguagem de programao de alto nvel.
BASIC um anacrnimo, que significa Beginners All-
Purpose Symbolic Instruction Code, ou seja, cdigo de
instrues simblicas para programadores principiantes.
No mundo dos microcontroladores, a linguagem BASIC
continua fazendo o seu papel, juntamente com a linguagem
Pascal, para facilitar o acesso dos principiantes ao mundo
da programao. O seu ponto fraco a baixa eficincia,
natureza que faz com que o BASIC seja pouco considerado
como uma ferramenta de desenvolvimento comercial.
Compiladores BASIC
Paralax Basic Stamp
PIC Basic
Mbasic
MikroBasic for PIC
(HTTP://www.mikroe.com)
BoostBASIC
(http://www.sourceboost.com)
Great Cow BASIC
(http://gcbasic.sourceforge.net)
Linguagens alternativas
Linguagem Ladder
De entre os principais editores e compiladores LADDER para
microcontrolador Microchip PIC, podemos citar o
LDMICRO: este ambiente gera cdigo executvel, em
formato HEX, para microcontroladores PIC16F877,
PIC16F876 e PIC16F628.
A sua vantagem encontra-se na facilidade de realizar a
programao para construo de controlos digitais simples,
atravs da linguagem ladder.
O LDMICRO disponibilizado gratuitamente na pgina do seu
criador, Jonathan Westhues, atravs do link
<http://cq.cx/ladder.pl>.
LDMICRO
Flowcode
Um compilador revolucionrio, que gera um programa
executvel a partir de um fluxograma escrito num editor
grfico.
Para principiantes, sem experincia de programao em
nenhuma linguagem, e que desejam dar os seus
primeiros passos numa interface fcil e de alto nvel.
Como ponto fraco, tem o fato de no possuir verso de
demonstrao com funcionalidades, e de no permitir
que implementaes mais simples sejam executadas
com a velocidade apropriada.
(www.matrixmultimedia.com)

Onde posso obter informaes e
documentao sobre os
microcontroladores?
www.microchip.com
www.atmel.com
www.picaxe.com
www.arduino.cc