Vous êtes sur la page 1sur 8

Sistemas Microcontrolados

Uma Abordagem com o


Microcontrolador PIC 16F84

Nardnio Almeida Martins

Novatec Editora
Captulo 1
Introduo

Os microcontroladores esto presentes em quase tudo o que envolve a Eletr-


nica, diminuindo o tamanho, facilitando a manuteno e gerenciando tarefas
internas de aparelhos eletroeletrnicos.

Um microcontrolador pode efetuar vrias funes que necessitariam de


um grande nmero de outros componentes. Assim, aprender a programar
microcontroladores significa aprender a resumir circuitos em um nico
componente. Para suprir exigncias de projetos, existe uma ampla gama de
microcontroladores da srie PIC disponveis no mercado, diferenciando-se
pelo nmero de linhas de entradas/sadas (I/O Input/Output) e pelos re-
cursos de perifricos do dispositivo.

Por meio da abordagem dos aspectos tericos e prticos de microcon-


troladores, possvel desenvolver projetos e implementaes de sistemas
microcontrolados de pequeno e mdio portes. Alm disso, possibilita ao de-
senvolvedor usar criatividade e imaginao para desenvolver novos projetos
de hardware e software.

1.1 Breve Histrico


Para uma melhor eficincia no processamento de dados, na dcada de 70
comearam a ser utilizados microprocessadores em computadores.

O microprocessador Intel foi um dos precursores, e, a partir da, houve


uma preocupao em melhorar cada vez mais o sistema de processamento
de dados por meio desses componentes. Com base na arquitetura de um

14
Captulo 1 Introduo 15

microprocessador e seus perifricos, foi criado um componente que (fisi-


camente integrados em uma nica unidade) comportava todo um sistema
entre equivalente a um microprocessador e seus perifricos. Assim surgiu o
microcontrolador.

Com o passar dos anos e com os avanos da tecnologia, os microcontro-


ladores tornaram-se uma das melhores relaes custo/benefcio em se tra-
tando de solues que demandam processamento, baixo custo de hardware
e pequena necessidade de espao fsico.

Existem no mercado muitos tipos de microcontroladores, sendo o 8051


o mais popular. A ATMEL possui uma enorme famlia de componentes com
as mesmas caractersticas do 8051, alguns at com as mesmas pinagens dos
registradores; outros com pinagens diferentes, mas com o mesmo conjunto
de instrues, com clock de 4 MHz at aproximadamente 10 MHz. A DALLAS
Semiconductors tem um microcontrolador de alta performance, de at 90MHz,
compatvel com 8051.

Por fim, vem a Microchip Technology Inc. com os microcontroladores


da srie PIC que se tornaram muito populares, graas a um bom plano de
marketing, baseado na disseminao de uma ferramenta de auxlio cons-
truo de programas o MPLAB IDE. Os microcontroladores da srie PIC
possuem ainda uma linguagem Assembly menos complexa em relao quelas
disponibilizadas por outros fabricantes.

1.2 Introduo aos Microcontroladores da Srie PIC


Os microcontroladores so pastilhas inteligentes, que tm um processador,
pinos de entradas/sadas e memria. Por meio da programao dos microcon-
troladores pode-se controlar suas sadas, tendo como referncia as entradas
ou um programa interno.

O que diferencia os diversos tipos de microcontroladores so: a quantidade


de memria interna para armazenar dados e as instrues de programas (me-
mria de programa e memria de dados), a velocidade de processamento, a
quantidade de pinos de I/O, a forma de alimentao, os tipos e as quantidades
de perifricos, a arquitetura e o conjunto de instrues disponibilizado nos
circuitos internos.
16 Sistemas Microcontrolados

Tipicamente, um microcontrolador caracteriza-se por incorporar no mes-


mo encapsulamento um microprocessador (com a finalidade de interpretar
as instrues de programa e processar dados), memria de programa (com a
finalidade de armazenar de maneira permanente as instrues do programa),
memria de dados (com a finalidade de memorizar os valores associados
com as variveis definidas no programa), uma srie de pinos de entrada/sada
(com a finalidade de realizar a comunicao do microcontrolador com o
meio externo) e vrios perifricos (tais como temporizadores, controladores
de interrupo, temporizadores co de guarda (WatchDog Timers WDTs),
comunicao serial, geradores de modulao por largura de pulso ou de PWM
(Pulse Width Modulation), conversores analgico/digital etc.), fazendo com
que o hardware final fique extremamente complexo. Isto uma das carac-
tersticas fundamentais que o diferencia dos microprocessadores, pois estes
no possuem todos esses recursos em uma nica pastilha.

A Microchip uma empresa precursora no uso de tecnologia RISC (Redu-


ced Instruction Set Computer) em microcontroladores. Diferente da arquite-
tura Von Neumann (CISC Complex Instruction Set Computer), a estrutura
RISC baseada em barramentos independentes para dados e para programa
com tamanhos diferenciados. Por exemplo, no PIC16C55X o barramento de
dados de 8 bits, enquanto o de programa de 14 bits, o que significa que
uma instruo est empacotada em uma nica palavra de programa (no
caso do PIC16C55X de 14 bits) e, alm de conter o opcode (instruo), contm
tambm os operandos (dados para execuo da instruo).

A Microchip oferece famlias de microcontroladores de 8 bits no barra-


mento de dados que podem ser adaptados a uma gama de projetos. Dentre
elas pode-se destacar:

PIC12CXXX: linha compacta;

PIC16C5X/PIC16C55X: linha-base;

PIC16CXX: linha intermediria;

PIC17CXX/PIC18CXX: topo de linha.

Todas as famlias oferecem diversas opes de memria de programa:


OTP (One Time Programable) e EPROM (Erasable and Programmable Read
Only Memory utilizada para desenvolvimento). Alm disso, apresentam
Captulo 1 Introduo 17

opes de baixa tenso e inmeros tipos de circuito osciladores, assim como


vrias opes de encapsulamento. Alguns componentes esto disponveis em
memria somente de leitura (ROM mascaradas) e memria apenas de leitura
programvel e eletricamente apagvel (EPROM/FLASH reprogramveis).

Deve-se ressaltar que os microcontroladores da srie PIC esto disponveis


em uma ampla gama de modelos para melhor se adaptarem s exigncias de
projetos especficos, diferenciando-se pelo nmero de linhas de I/O e pelo
contedo do dispositivo.

1.3 Arquitetura dos Microcontroladores da Srie PIC


O alto desempenho da famlia de microcontroladores PIC pode ser atribudo
s seguintes caractersticas de arquitetura RISC:

mapa de registradores verstil;

todas as instrues com palavras simples;

palavra de instruo longa;

arquitetura de instrues em pipeline;

instrues de apenas um ciclo de mquina;

conjunto de instrues reduzido;

conjunto de instrues ortogonal (simtrico).

A arquitetura Von-Neumman tradicional utiliza o mesmo barramento,


tanto para fazer a busca de instrues na memria de programa quanto para
acessar (escrever ou ler) a memria de dados (Figura 1.1).

Memria de
UCP Programa e
8 de Dados

Figura 1.1 Arquitetura Von-Neumman.

A arquitetura de um microcontrolador da srie PIC utiliza dois barramentos


de endereos distintos para acessar instrues e dados (Figura 1.2).
18 Sistemas Microcontrolados

Memria de Memria de
UCP
Dados Programa
8 12
14
16

Figura 1.2 Arquitetura dos microcontroladores da srie PIC.

1.4 Formato das Instrues nos Microcontroladores da Srie PIC


A entrada de clock (pino OSC1/CLKIN) internamente dividida por quatro
para gerar quatro clocks em quadratura sem sobreposio, nomeados Q1,
Q2, Q3 e Q4. Internamente, o contador de programa (PC Program Counter)
incrementado em Q1 e a instruo apontada pelo endereo associado ao
contador de programa buscada da memria de programa e armazenada
no registrador de instrues em Q4. Ela ento decodificada e executada no
ciclo seguinte de Q1 at Q4 (Figura 1.3).

1 ciclo de mquina = 4 perodos de clock


Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
CLK

Q1

Q2

Q3

Q4

Ciclo de mquina

Figura 1.3 Ciclo de instrues dos microcontroladores da srie PIC.

Um ciclo de instrues consiste de quatro ciclos Q (Q1, Q2, Q3, Q4). A


busca e a execuo da instruo so feitas em linha, de tal forma que a busca
leva um ciclo de instruo e a execuo, outro. Contudo, devido caracte-
rstica de pipeline, cada instruo executada efetivamente em um ciclo,
pois simultaneamente ocorrem a execuo de uma instruo e a busca da
prxima instruo (Figura 1.4). Se uma instruo alterar o valor associado com
o contador de programa, ento dois ciclos sero necessrios para completar
a instruo.

A arquitetura em pipeline sobrepe busca (fetch) e execuo (execute),


tornando possvel a execuo de instrues em um nico ciclo de mquina.
Captulo 1 Introduo 19

Qualquer instruo de desvio (tais como GOTO, CALL, ou que altere o valor as-
sociado com o contador de programa) necessita de dois ciclos de mquina.

A arquitetura com barramentos separados para instrues e dados per-


mite a adoo de larguras diferentes. Com isso, o barramento de instrues
otimizado para uma palavra de comprimento nico. O nmero de bits do
barramento de instrues depende de quantas instrues so implementadas
e do nmero de registradores disponveis em cada famlia de microcontro-
ladores PIC.

1. MOVLW 55H Busca 1 Execute 1


2. MOVWF PORTB Busca 2 Execute 2
3. CALL SUB_1 Busca 3 Execute 3
Busca 4 Fluxo
4. BSF PORTA, BIT3
Busca SUB_1 Execute SUB_1

Figura 1.4 Pipeline nos microcontroladores da srie PIC.

Em resumo, todas as instrues so de um nico ciclo, exceto aquelas de


desvios no programa. Essas necessitam de dois ciclos, visto que a instruo
de busca fluida do pipeline, enquanto novas instrues esto sendo bus-
cadas e executadas.

1.5 Mapa de Registradores


Todas as instrues aritmticas e booleanas so feitas por meio do registrador
de trabalho W (Figura 1.5). O destino da operao pode ser o prprio registra-
dor W ou um dos registradores disponveis nos microcontroladores da srie
PIC, dependendo unicamente da instruo executada.

INDF
TMR0
PCL
ULA STATUS
FSR
PORTA
Outros SFRs
W Registradores de
uso geral (RAM)

Figura 1.5 Mapa de registradores nos microcontroladores da srie PIC.


20 Sistemas Microcontrolados

1.6 Interrupes
Um programa que est sendo executado pode fazer uso direto ou indireto de
funes e sub-rotinas disponibilizadas no hardware ou no sistema operacional
do sistema como um todo. Este uso feito com a execuo de uma instruo
especfica que interrompe, momentaneamente, a execuo normal do pro-
grama, passando a executar a rotina que foi especificada pela instruo que
realizou a interrupo. Aps o trmino dessa rotina, a execuo do programa
retomada, passando a ser executada a primeira instruo aps aquela que
procedeu interrupo. possvel realizar a comunicao de dados entre
o programa e a rotina de interrupo por meio de registradores especficos.
Nos microcontroladores da srie PIC, existem modelos que no possuem
interrupes (por exemplo, PIC 12C50X, PIC 16C54, PIC 16C55 e outros de
geraes mais antigas), porm, nos modelos mais novos, existe um grande
nmero de interrupes com finalidades diferentes. Por exemplo, no caso
do PIC 16F84, tipicamente, h a ocorrncia de quatro tipos de interrupes
bsicas: aquela de TIMER 0 (TMR0), a externa, a por mudana de estado e a
interrupo de final de escrita na EEPROM.