Académique Documents
Professionnel Documents
Culture Documents
Universidade
Catlica
do
Rio
Grande
do
Sul
Curso
de
Engenharia
de
Computao
Organizao
de
Computadores
PIC16F84
PIC16F84
1.
Caracterizao
da
Arquitetura
Possui
arquitetura
RISC
baseada
em
arquitetura
Harvard,
tal
define
o
uso
de
duas
memrias
separadas:
uma
memria
de
dados
e
outra
memria
de
programa
(instrues).
Os
registradores
possuem
palavra
de
8
bits
e
as
instrues
14
bits.
Isso
s
possvel
pois
as
duas
memrias
so
conectadas
por
barramentos
separados
com
largura
de
acordo
com
a
respectiva
palavra
(figura
1).
Outra
caracterstica
notada
na
figura
2:
a
ULA
recebe,
obrigatoriamente,
um
operando
do
registrador
W
(Work,
ver
Cap.
3.1.)
e
outro
do
banco
de
registradores
de
uso
comum.
Aps
o
processamento,
o
destino
do
resultado
deve
ser
definido
na
instruo
de
resgate
dele.
Por
pertencerem
arquitetura
RISC,
os
micro-controladores
PIC
apresentam
instrues
simples
e
de
baixo
nvel
de
abstrao.
O
PIC16FXX
dispe
de
35
instrues
bsicas.
As reas alocadas do SFR so para os registradores que controlam as funes perifricas. Alocaes requerem o uso do bit de controle de banco no registrador STATUS (ver Cap. 3). A memria de dados pode ser acessada diretamente usando o endereo absoluto de cada registrador em ambos os bancos ou indiretamente atravs do endereamento por registrador de seleo de arquivo (FSR).
Fig. 1: Modelo Harvard com larguras de barramento diferentes Fig. 2: Interior do CPU (Diagrama de blocos completo: ver Cap. 6)
3.
Registradores
Os
registradores
de
uso
geral
esto
entre
a
posio
0x0C
e
0x4F,
totalizando
67
GPRs
de
8
bits.
Para
acessar
endereos
acima
de
128,
como
o
endereo
na
instruo
de
7
bits
e
apenas
enderea
128
posies
(27
=
128),
se
usa
o
bit
5
do
registrador
STATUS.
O
referido
em
0
usa
o
banco
0
e
em
1
o
banco
1
(Ilustrado
na
Fig.3).
As
reas
de
0x50
a
0x7F
e
de
0xD0
a
0xFF
no
so
usveis
por
no
terem
sido
implementadas
ainda.
3.1.
Registrador
Work
(W):
No
se
encontra
na
memria
de
dados,
sempre
utilizado
como
um
dos
operandos
da
ULA.
3.2.
Registrador
PCL:
Contm
o
endereo
da
instruo
a
executar.
incrementado
automaticamente.
3.2.
Registradores
de
STACK:
So
oito
ao
total,
contm
os
endereos
de
retorno
para
as
sub-rotinas
que
utilizam
a
instruo
CALL
ou
de
retorno
aps
a
execuo
de
uma
interrupo.
Se
encontra
fora
da
memria
de
dados.
3.3.
Registrador
STATUS:
Possui
o
estado
atual
da
ULA,
do
Reset
e
do
banco
de
registradores
selecionado.
4.
Instrues
As
instrues
so
formadas
por
palavras
de
14
bits
divididas
em
um
OPCODE,
que
identifica
a
instruo,
e
os
operandos.
O
formato
das
instrues
pode
variar
de
acordo
com
o
tipo:
4.1.
Orientadas
a
Byte
6
bits
OPCODE
1
bit
d
7
bits
registrador
0:
resultado
da
operao
armazenado
de
volta
no
W
ao
sair
da
ULA;
1:
resultado
da
operao
vai
pra
um
registrador
de
uso
comum
(especific-lo).
Exemplo:
CRLF 05h
OPCODE
d
REGISTRADOR
0
0
0
0
0
1
1
0
0
0
0
1
0
1
CRLW
OPCODE d REGISTRADOR 0 0 0 0 0 1 0 X X X X X X X
X:
dont
care
(indiferente),
o
montador
sempre
gerar
cdigo
com
X
sendo
0.
Instrues:
Nome
ADDWF
f,d
ANDWF
f,d
CLRF
f
CLRWDT
COMF
f,d
CRLW
DECF
f,d
DECFSZ
f,d
INCF
f,d
INCFSZ
f,d
IORWF
f,d
MOVF
f,d
MOVWF
f
NOP
RLF
f,d RRF
f,d SUBWF
f,d
SWAPF
f,d
XORWF
f,d
Descrio Adiciona W com F (d <= f + W) E entre W e F (d <= f AND W) Zera o conteudo de f Zera o timer watch dog Complemento de f (d <= NOT f) Zera o conteudo do resgistrador W decrementa f e armazena em d(d <= f 1) Decrementa f (d <= f 1) e salta se zero incrementa f e armazena em d(d <= f 1) incrementa f (d <= f 1) e salta se zero OU normal (Inclusivo) de W com F (d <= f OR W) Move F (d <= f) Copia o conteudo de w em f Gasta um ciclo Rotaciona F para esquerda com carry out Rotaciona F para direita com carry out subtrai W de f e armazena em d(d <= f W) Troca os nibbles mais e menos significativos de f OU exclusivo entre W e F (d <= f XOR W)
OPCODE:
cdigo
da
instruo;
b:
bit
dentro
do
registrador
em
questo;
registrador:
endereo
do
registrador.
Exemplo:
OPCODE
BIT
REGISTRADOR
BCF 85h,7
0
1
0
0
1
1
1
1
0
1
0
1
0
1
Instrues:
Nome
BCF
f,b BSF
f,b BTFSC
f,b BTFSS
f,b
Descrio Limpa (zera) o bit b do registrador f Seta (iguala a 1) o bit b do registrador f Testa o Bit b de f, pula se zero(clear) Testa o Bit b de f, pula se um(set)
4.3.
Instrues
de
Controle
6
bits
OPCODE
k:
bit
de
valor
imediato
(constante)
Excees:
CALL
e
GOTO
3
bits
OPCODE
k:
bit
de
valor
imediato
(constante)
Exemplo:
8 bits k
11 bits k
CALL label
Instrues:
Nome
ADDLW
k
ANDLW
k
CALL
k GOTO
k IORLW
k
MOVLW
k
RETFIE RETLW
k
RETURN SLEEP
SUBLW
k
XORLW
k
Descrio Adiciona W ao k, armazena em W Funo lgica AND de W com k, armazena em W Salva PC+1 na pilha e faz PC=k (salta a execuo para o endereo k) Pula para o endereo k (11 bits) usa 2 ciclos Funo lgica OR de W com k, armazena em W Armazena k em W Retorna de uma interrupo Retorna da sub-rotina e armazena k em W Retorna de uma sub-rotina chamada por CALL Pe o controlador em stand-by Subtrai W de k, armazena em W Funo lgica XOR de W com k, armazena em W
5.
Bibliografia
Datasheet
oficial
do
microprocessador
-
http://www.inf.pucrs.br/~calazans/undergrad/orgcomp_EC
/mat_microproc/PIC16F628A_datasheet.pdf
The
PIC
Tutorial
PIC
Basics
-
http://www.pictutorials.com/PICmicro16f84_basics.htm
Introduction:
World
of
microcontrollers
-
Book:
PIC
Microcontrollers
-
http://www.mikroe.com/eng
/chapters/view/1/introduction-world-of-microcontrollers/
The
PIC
Chip
Uncovered
-
http://www.seattlerobotics.org/encoder/may97/picchip.html
Seminrio
Assembly:
Arquitetura
PIC
-
http://www.lisha.ufsc.br/teaching/sys/ine5309-2006-2/work
/g2/monografia.pdf
PIC
Microcontroller
-
http://en.wikipedia.org/wiki/PIC_microcontroller/
Design
of
the
PIC16x8x
-
http://www.pictutorials.com/Design_of_the_PIC16x8x.htm
BATES,
Martin.
Elsevier,
2004.
PIC
Microcontrollers:
An
Introduction
to
Microelectronics
6. Anexo
Fig. 4: Diagrama de blocos completo do PIC Destaque aos dois modelos de acesso memria, direto e indireto, especificados no diagrama e no Cap. 2.