Académique Documents
Professionnel Documents
Culture Documents
Ricardo de Oliveira Duarte
DECOM – UFOP
1
Sumário
Introdução a Família PIC e fabricantes.
Características Básicas
Arquitetura do PIC
Organização da Memória no PIC
Registradores do PIC
Assembly e Conjunto de Instruções do PIC.
Endereçamento de Memória no PIC.
customer base)
In 1997, 2nd only to Motorola (which has a huge
Assembly e Conjunto de Instruções do PIC.
Endereçamento de Memória no PIC.
Interfaces serial de mais de um
tipo. Poucas formas de
‘Enhanced’ 16bit cores with 77
instructions: 18Cxxx
The PIC Family: Packages
PICs come in a huge variety of packages:
16C71C 1024 (1k) 14bit instructions
16F877 8192 (8k) 14bit instructions
17C766 16384 (16k) 16bit instructions
The PIC Family: Program Memory
•
but with no window!
Needs windowed chips and UV light to erase.
Note: One Time Programmable (OTP) chips are EPROM chips,
5 GPIO pins, 1 input only (25mA
source/sink)
registers
8 level hardware stack (interrupts
enabled)
12C50x
12C67x
4MHz
10MHz
16Cxxx 20MHz
17C4x / 17C7xxx 33MHz
18Cxxx 40MHz
PICs - Características Gerais
14
Sumário
Introdução a Família PIC e fabricantes.
Características Gerais
Arquitetura do PIC
Organização da Memória no PIC
Registradores do PIC
Assembly e Conjunto de Instruções do PIC.
Endereçamento de Memória no PIC.
16
Arquitetura do PIC 1684
17
Arquitetura do PIC – 16F877A
18
Arquitetura do PIC
Ponto de Vista do Programador
• Mapeamento da Memória
• Registradores
• Conjunto de Instruções
• Modos de Endereçamento
• Funções de I/O
• Interrupções
19
Sumário
Introdução a Família PIC e fabricantes.
Características Gerais
Arquitetura do PIC
Organização da Memória no PIC
Registradores do PIC
Assembly e Conjunto de Instruções do PIC.
Endereçamento de Memória no PIC.
Gerenciamento de memória
complicado.
Região da Pilha (Stack) fisicamente
separada da Região de Programa.
Interrupção vetorada (endereço de
desvio fixo 0004h para todas as
interrupções).
Maioria dos PICs usa o mesmo
endereço para tratar interrupção.
8 endereços de retorno. Pilha com
profundidade limitada a 8 níveis).
15 tipos de interrupções diferentes.
(depende do tipo da instrução).
Instrução é carregada no PC.
PC é formado por 2 registradores
SFR: o PCL e o PCLATCH.
Conceito de paginação de memória.
22
PCLATCH <4:3> - seleciona a página !
Memória de Dados do PIC 16F877A
Memória RAM de 512 bytes.
Armazena as Variáveis e os Registradores
usados pelo programa.
Tamanho do dado: 8 bits.
Organizada em 4 bancos de registradores.
Cada banco possuí 128 bytes.
Registradores de uso geral (GPRs) e
registradores de uso específico (SFRs).
GPRs destinados às variáveis. 368 bytes.
Os endereços mais baixos de cada banco
são sempre reservado para SFRs.
23
Memória de Dados do PIC 16F877A
Organizada em 4 bancos de registradores.
Cada banco possuí 128 bytes.
Registradores (GPRs) e registradores de uso específico (SFRs).
GPRs destinados às variáveis. 368 bytes.
24
Memória de Dados do PIC 16F877A
RAM de 512 bytes: Gerenciamento de dados
• 368 bytes para GPRs; também complicado.
• 77 bytes para SFRs; • Instruções dispõem de 7 bits
• 19 bytes indisponíveis (não para endereçamento dos
implementadas pelo registradores. (Ex.: MOVF)
fabricante) – retornam ZERO • Daí a necessidade dos 4
quando lidos; bancos de memória.
• 48 bytes restantes
(espelhamento de alguns
SFRs do banco 0) – para
• STATUS<RP1:RP0>
selecionam o banco desejado.
facilitar a programação.
• Algumas instruções usam 8
bits para o endereçamento:
Instruções de acesso indireto.
• STATUS <IRP> seleciona
grande banco 0 ou 1.
25
Sumário
Introdução a Família PIC e fabricantes.
Características Gerais
Arquitetura do PIC
Organização da Memória no PIC
Registradores do PIC
Assembly e Conjunto de Instruções do PIC.
Endereçamento de Memória no PIC.
• Portas, Temporizadores, Interrupções (Habilita, Prioridade), Porta Serial.
W – registrador de 8 bits (acumulador da ALU).
28
Registrador PC
Program Counter (PC) – contador de programa.
Aponta para a próxima instrução a ser buscada
na memória de programa.
Após executar uma instrução, PC é
automaticamente incrementado para apontar
para a próxima instrução.
29
Registrador W (Work = Acumulador)
Usado para operações aritméticas e MOV.
Usado de forma implícita no opcode.
• Depende da instrução.
Exemplo de referência implícita:
• Instrução: CLRW
•
•
•
Limpa o conteúdo do W.
O Acumulador está codificado
Instrução: RETLW k
no opcode.
30
Registrador de Status
(mesma função: PSW do 8051)
Contém o status da ALU, o RESET status e o banco de memória
selecionado.
31
Registrador de Instruções (Instruction Register)
Registrador de 14 bits.
Guarda a instrução da vez que será
decodificada e executada.
Instruction Register
32
E o Registrador de End. da Pilha?
Quando o programa é desviado para o começo
de uma rotina (CALL ou interrupção), PC´ + 1 é
armazenado na pilha (stack).
ser executado do ponto de onde parou,
recuperando o endereço na pilha (PC´ + 1).
FSR
34
INDF - Indirect Data Memory Address Pointer
Localizado no endereço 00h (banco 0).
Não é um registrador “físico”.
Endereçar o INDF significa endereçar
indiretamente outro endereço.
Qualquer instrução que usa o INDF,
acessa na verdade o FSR (File
Selection Register – Endereço 04h).
35
Resumo da Tabela de Registradores – PIC
16F877A
Consulte o datasheet do dispositivo.
Site do fabricante, em formato PDF.
Para o 16F877 siga o link abaixo:
http://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf
36