Vous êtes sur la page 1sur 47

Microcontrolador PIC

PIC16F84

PIC16F84, fabricado com a tecnologia


CMOS

Capaz de trabalhar at 10 Mhz.


PIC16F84A Capaz de trabalhar at 20 Mhz
Memria de programa de 1K palavras de 14
bits FLASH, em que em cada uma cabe uma
instruo. Pode ser regravada cerca de 10.000
vezes com toda a segurana
Memria de dados RAM de 68 Bytes
Memria de dados EEPROM de 64 Bytes, no
voltil
8 nveis de stack (pilha)
35 instrues de 14 bits

PIC16F84
Tempo de execuo das instrues normais:
4xTosc
Tempo de execuo das instrues de salto:
8xTosc
4 tipos de interrupes (External RB0/INT
pin, TMR0 timer overflow, PORTB<7:4>
interrupt-on-change, Data EEPROM write
complete)
13 linhas de entradas/sada digitais
1 timer
1 watch-dog
Alimentao de 2V a 6 V
Gravao de 12V a 14V
Encapsulamento DIP de 18 pernas (SOIC)

Diagrama de blocos do PIC16F84A

CPU

O PIC tem um processador tipo RISC com a


arquitectura de Harvard,
O processador do PIC pode ser visto como
sendo uma ALU, recebendo, processando e
armazenando dados de e para os vrios
registos,
Tipos de enderear os dados:

Endereamento direto Endereo de registo dentro


do banco de registos de 128 bytes especificado
na instruo,
Endereamento imediato Se para ser
especificada uma constante a seguir instruo,
Endereamento indexado Porque o endereo a
ser acedido pode ser modificado aritmeticamente.
5

CPU

CPU

A ALU responsvel por todas as operaes


aritmticas e com bits, bem como o incio dos
pedidos de execuo condicional
Todas as operaes aritmticas usam o registo w
O resultado das operaes pode ser armazenado
no registo w ou no file register
O Program Counter contm o endereo da
instruo seguinte que ir ser executada. Se uma
instruo tem um endereo direto os ltimos 7
bits so usados como os endereos
O registo FSR armazena o endereo da memria,
no endereamento indireto
O registo INDF (que na realidade no existe) o
registo que apontado pelo FSR
7

ALU

A ALU (Arithmetic
Logic Unit) o
componente mais
complexo do PIC por
conter todos os
circuitos destinados a
desenvolver as funes
de clculo e
manipulao de dados
durante a execuo de
um programa
Executa as operaes
aritmticas, de bits e
de deslocamento de
um ou dois bytes
8

ALU

A ALU pode ser vista


como um conjunto de
operaes que so
executadas em
paralelo com um nico
multiplexador
O registo STATUS
armazena os
resultados das
operaes
As operaes com bits
so executadas com
operandos ANDs para
colocar a 0 ou ORs
para colocar a 1
9

ALU
Operao

Operao equivalente

Mover

AND com 0x0FF

Adio
Subtraco

Adio com um Negativo

Negao

XOR com 0x0FF (inverso bit a bit) e Incremento

Incremento

Adio a 1

Decremento

Subtrao por um/Adio com 0x0FF

AND
OR
XOR
Complemento

XOR com 0x0FF

Shift Left

Adicionar o valor a si prprio com Carry

Shift Right

10

Registo Status

Flags:
Zero

(Z) Fica a 1 quando o resultado

0
Carry (C) Fica a 1 quando o resultado
da operao maior do que 255
Digit Carry (DC) Fica a 1 quando o
nibble menos significativo maior do
que 15 aps uma operao aritmtica
(adio ou subtraco)

11

Organizao da memria

A memria de dados (register


file) est dividida em dois
grupos.

Registos especiais (Special


Function Registers) Ocupam
as 11 primeiras posies, desde
00 at 0B. So os registos que
controlam o funcionamento do
PIC
Registos de utilizao geral
(General Purpose Registers)
Ocupam as posies seguintes,
desde 08 at 4F

Partes da memria est


dividida em Bancos, incluindo
registos especiais e registos de
utilizao geral. Para a
utilizao dos bancos
necessrio configurar os bits
RP0 e RP1 do registo STATUS

12

Endereamento de Bancos

Cada um dos 2 bancos


tem 128 registos para
acesso direto
No Banco 0 pode-se
enderear aos portos A
e B (PORTA de 5 bits e
PORTB de 8 bits)
No Banco 1 podem-se
configurar as portas
(TRISA e TRISB)

File address

BANCO 0

BANCO 1

File address

INDF

INDF

80

TMR0

OPTION

81

PCL

PCL

82

STATUS

STATUS

83

FSR

FSR

84

PORT A

TRIS A

85

PORT B

TRIS B

86

87

EEDATA

EECON1

88

EEADR

EECON2

89

0A

PCLATH

PCLATH

8A

0B

INTCON

INTCON

8B

0C

68 registos

Mapeado

8C

de utilizao

(acesso)

geral

Banco 0

(SRAM)

4F

CF

50

D0

7F

FF

13

Program Counter

O Program Counter
(PC) um registo
especial que serve
para armazenar o
endereo da prxima
instruo a ser
executada

Tem a dimenso de 13
bits. PCL, para os bits
menos significativos e
PCH (no acessvel)
para os mais
significativos
14

Program Counter

Os 8 bits menos
significativos so
escritos no registo PCL
e os restantes no
registo PCLATH

Nas instrues de
salto (GOTO e CALL)
11 bits so usados
para armazenar o
endereo (at 2048
instrues)

15

Stack

O Stack uma estrutura


(Last In First Out) e serve
para armazenar o valor do
Program Counter quando
chamada uma subrotina de
forma a saber o local de
retorno da mesma
O PIC16F84 possui 8 nveis
de Stack, pelo que consegue
armazenar no mximo 8
chamadas sucessivas a
subrotinas
O Stack s armazena o
Program Counter
16

Memria de programa

Memria de programa

ROM com mscara A aplicao


gravada na ROM logo aps a
fabricao e antes de ser entregue
ao cliente. A criao da mscara
muito dispendiosa, pelo que s
compensa para grandes
quantidades
OTP (One-Time Programable) A
aplicao s pode ser gravada uma
vez pelo utilizador
EPROM Pode gravar-se vrias
vezes, apagando com raios
ultravioletas
EEPROM Pode gravar-se vrias
vezes, apagando eletricamente
FLASH similares s EEPROM, mas
mais rpidas e toleram mais ciclos
de escrita
17

Memria de dados

Memria de dados
RAM

memria de leitura e escrita


muito rpida e voltil
EEPROM memria de leitura e escrita
lenta, mas no voltil

18

Recursos auxiliares

Recursos auxiliares

Temporizadores
Watch-dog
Proteo de falha de alimentao (Brown out)
Estado de repouso e baixo consumo (Sleep
mode)
Conversor A/D
Conversor D/A
Comparador analgico
Modulador por largura de impulsos (PWM)
Portas de entradas e sadas digitais
Portas de comunicao
Interrupes
In-circuit serial programming
19

Recursos auxiliares Temporizadores

So usados para controlar perodos de tempo


(temporizadores) e para ter em conta os
acontecimentos exteriores (contadores)
Para medir o tempo guardado num registo o
valor adequado que ir ser incrementado ou
decrementado ao ritmo dos impulsos de relgio
at que haja carry ou chegue a 0 para ser
produzido um aviso

20

O Timer

O registo TMR0 um
contador, ou seja
um registo particular,
no qual o seu
contedo
incrementado com
uma cadncia regular
e programada
diretamente pelo
hardware do PIC. Na
prtica, a diferena
de outro registro,
que o TMR0 no
mantm inalterado o
seu valor,
incrementando-o
continuamente

21

Recursos auxiliares Watch-dog

Permite fazer reset automtico ao


PIC quando este bloqueia
Quando se pretende usar esta
facilidade o programa tem de iniciar
o Watch-dog antes deste provocar o
reset

22

Recursos auxiliares Brown-out

um circuito que coloca o PIC em


reset quando a tenso de
alimentao desce de um
determinado nvel
Coloca novamente o PIC em
funcionamento assim que a tenso
de alimentao seja aceitvel

23

Recursos auxiliares Sleep mode

Para poupar energia enquanto


espera por algum acontecimento
exterior o PIC pode ficar
adormecido (usando a instruo
SLEEP)
Aps o acontecimento o PIC acorda
e continua a sua execuo a partir
do ponto em que tinha ficado

24

Recursos auxiliares Conversores


A/D e D/A

Nos
microcontroladores
que tm estas
possibilidades podem
converter sinais
analgicos em
digitais e vice-versa

25

Recursos auxiliares Comparador


analgico

Nos microcontroladores que tm


esta possibilidade possuem um OPAMP (Amplificador Operacional)
interno que permite comparar uma
tenso externa com uma tenso de
referncia indicando se superior
ou inferior

26

Recursos auxiliares PWM

Nos microcontroladores que tm


esta possibilidade permitem a sada
de impulsos de largura varivel que
permitem, por exemplo controlar
motores

27

Recursos auxiliares Portas de I/O

Todos os microcontroladores
possuem alguns pinos como
linhas de entrada e sada
digitais de dados
Normalmente estas linhas
esto agrupadas de oito em
oito formando portas
Estas linhas digitais podem
ser configuradas como sendo
de entrada ou como sendo
de sada colocando 1 ou 0 no
bit correspondente ao registo
destinado sua configurao
28

Recursos auxiliares Portas de I/O

O PIC16F84 dispe de um
total de 13 linhas de I/O
organizadas em duas portas
denominadas de PORTA A
e PORTA B. A PORTA A
dispe de 5 linhas
configurveis tanto em
entrada como em sada
identificadas pelas siglas
RA0, RA1, RA2, RA3 e RA4.
A PORTA B dispe de 8
linhas tambm
configurveis seja em
entrada ou em sada
identificadas pelas siglas
RB0, RB1, RB2, RB3, RB4,
RB5, RB6 e RB7.
29

Recursos auxiliares Portas de I/O

Para o controle da linha


de I/O do programa, o
PIC dispe de dois
registros internos que
controlam as portas e
so chamadas de
TRISA e PORTA para
a porta A e TRISB e
PORTB para a porta B.

30

Recursos auxiliares Portas de I/O

Todos os bits contidos nos


registros mencionados
correspondem unicamente a
uma linha de I/O. Por
exemplo o bit 0 do registro
PORTA e do registo TRIS A
correspondem linha RA0 ,
o bit 1 a linha RA1 e assim
por diante.
Se o bit 0 do registro TRISA
for colocado em zero, a linha
RA0 estar configurada
como linha de sada, por
isso o valor a que ira o bit 0
do registro PORTA
determinar o estado lgico
de tal linha (0 = 0 volts, 1 =
5 volts).
31

Recursos auxiliares Portas de


comunicao

De forma a dotar os microcontroladores com


a possibilidade de comunicarem com outros
dispositivos externos, barramentos de
microprocessadores, redes, etc. alguns
modelos tm recursos que se permitem
executar diretamente esta tarefa:

UART, adaptador de comunicao srie


assncrona

USART, adaptador de comunicao srie


sncrona e assncrona
32

Recursos auxiliares Portas de


comunicao

Porta paralela escrava, para poder ligar aos


barramentos de outros microprocessadores

USB (Universal Serial Bus), que o


moderno barramento srie dos PC

IC, que uma interface srie de dois fios


desenvolvido pela Philips

CAN (Controller Area Network), para


permitir a adaptao a redes CAN
desenvolvidas pela Bosch e Intel para a
cablagem de dispositivos em automveis
33

Recursos auxiliares - Interrupes

O PIC16F84 tem a possibilidade de contar com


um sistema de interrupes. Este sistema
consiste num mecanismo atravs do qual um
acontecimento interno ou externo, assncrono
relativamente ao programa, pode interromper
a sua execuo produzindo automaticamente
um salto para a rotina de atendimento
interrupo de maneira a poder atender de
imediato o acontecimento e retomar em
seguida a execuo do programa interrompido.
Existem 4 fontes de interrupes:
External RB0/INT pin
TMR0 timer overflow
PORTB<7:4> interrupt-on-change
Data EEPROM write complete
34

Recursos auxiliares - Interrupes

O INTCON REGISTER (ADDRESS 0Bh, 8Bh) o registro


que contm os vrios bits que inibem e desinibem as
respectivas fontes de interrupo:
bit 7 GIE: Global Interrupt Enable bit
bit 6 EEIE: EE Write Complete Interrupt Enable bit
bit 5 T0IE: TMR0 Overflow Interrupt Enable bit
bit 4 INTE: RB0/INT External Interrupt Enable bit
bit 3 RBIE: RB Port Change Interrupt Enable bit
bit 2 T0IF: TMR0 Overflow Interrupt Flag bit
bit 1 INTF: RB0/INT External Interrupt Flag bit
bit 0 RBIF: RB Port Change Interrupt Flag bit

35

Recursos auxiliares - Interrupes

36

Recursos auxiliares - ICSP

O PIC16F84 pode ser programado


via comunicao serial, mesmo
aps ter sido colocado no circuito
final. Para tal bastam dois sinais
para o relgio e para os dados e
mais trs sinais para a alimentao,
a terra e a tenso de programao

37

Pinagem
PIC16F84 (PDIP, SOIC)

Azul (linhas de I/O)


Vermelho e Preto (alimentao)
Verde (funcionamento do PIC)
38

Pinagem
1

RA2
uma linha de I/O programvel em entrada ou sada da unidade.
Corresponde ao BIT 2 da PORTA A.

RA3
uma linha de I/O programvel em entrada ou sada da unidade.
Corresponde ao BIT 3 da PORTA A.

RA4 / RTCC
um pino multi funo que pode ser programado como uma linha
normal de I/O ou como linha de clock para entrada em sentido ao
contador RTCC.
Se programada como linha de I/O corresponde ao BIT 4 da PORTA A
ao contrrio de outra linha de I/O, quando esta linha funciona como
sada, trabalha em colector aberto.
39

Pinagem
4

MCLR / VPP
Em condio normal de funcionamento desenvolve a funo de Master
CLeaR ou seja Reset estar activo a nvel 0. Pode ser conectado a um
circuito de reset externo ou simplesmente conectando-o ao positivo da
alimentao.
Quando o PIC for colocado em Program Mode ser utilizado como
entrada para a tenso de programao Vpp.

VSS
o pino que vai conectado ao negativo da tenso de alimentao.

40

Pinagem
6

RB0
uma linha de I/O programvel em entrada ou em sada.
Corresponde ao BIT 0 da PORTA B e pode ser programada para gerar
interrupo.

RB1
uma linha de I/O programvel em entrada ou em sada.
Corresponde ao BIT 1 da PORTA B.

RB2
uma linha de I/O programvel em entrada ou em sada.
Corresponde ao BIT 2 da PORTA B.

RB3 uma linha de I/O programvel em entrada ou em sada.


Corresponde ao BIT 3 da PORTA B.

41

Pinagem
10

RB4 uma linha de I/O programvel em entrada ou em sada.

11

RB5 uma linha de I/O programvel em entrada ou em sada.

12

RB6 uma linha de I/O programvel em entrada ou sada.

13

RB7 uma linha de I/O programvel em entrada ou sada.

Corresponde ao BIT 4 da PORTA B e pode ser programada para gerar


interrupo na alterao do valor.
Corresponde ao BIT 5 da PORTA B e pode ser programada para gerar
interrupo na alterao do valor.
Corresponde ao BIT 6 da PORTA B e pode ser programada para gerar
interrupo na alterao do valor. Clock da porta srie.
Corresponde ao BIT 7 da PORTA B e pode ser programada para gerar
interrupo na alterao do valor. Dados da porta srie.

42

Pinagem
14

VDD
o terminal positivo de alimentao do PIC.
em todas as trs verses disponveis do PIC16F84 (comercial, industrial
e automotiva) a tenso pode assumir um valor que vai de um mnimo
de 2.0 volts a um mximo de 6.0 volts.

15

OSC2 / CLKOUT
um pino de ligao no caso de se utilizar um cristal de quartzo para
gerar o clock. E como sada de clock caso for aplicado um oscilador RC
externo.

16

OSC1 / CLKIN
um pino de ligao para o caso de se utilizar um cristal de quartzo ou
um circuito RC para gerar o clock. E tambm como entrada caso
utilizemos um oscilador externo.

43

Pinagem
17

RA0
uma linha de I/O programvel em entrada ou sada.
Corresponde ao BIT 0 da PORTA A.

18

RA1
uma linha de I/O programvel em entrada ou sada.
Corresponde ao BIT 1 da PORTA A

44

Oscilador
Oscilador

Frequncia

RC (Resistor/Capacitor)
HS (High Speed Crystal/Resonator)

4 MHz 20 MHz

XT (Crystal/Resonator)

200 KHz 4 MHz

LP (Low Power Crystal)

0 200 KHz

45

Oscilador
Modo

XT

HS

LP

XT

HS
RC

Freq.

Osc1/C1

Osc2/C2

455 kHz

47 - 100 pF

47 - 100 pF

2.0 MHz

15 - 33 pF

15 - 33 pF

4.0 MHz

15 - 33 pF

15 - 33 pF

8.0 MHz

15 - 33 pF

15 - 33 pF

10.0 MHz

15 - 33 pF

15 - 33 pF

32 kHz

68 - 100 pF

68 - 100 pF

200 kHz

15 - 33 pF

15 - 33 pF

100 kHz

100 - 150 pF

100 - 150 pF

2 MHz

15 - 33 pF

15 - 33 pF

4 MHz

15 - 33 pF

15 - 33 pF

4 MHz

15 - 33 pF

15 - 33 pF

20 MHz

15 - 33 pF

15 - 33 pF

5 k Rext 100 k

Cext > 20pF

46

Vous aimerez peut-être aussi