Você está na página 1de 38

Microcontroladores PIC

André Luís Marques Marcato


andre.marcato@ufjf.edu.br

Leandro Mattos Braga


cebolinhajf@globo.com
2

Bibliografia Básica
David José de Souza, “Desbravando o PIC”, 6a
Edição, Editora Érica
Fábio Pereira, “Microcontroladores PIC –
Técnicas Avançadas”, Editora Érica
3

Estrutura da Apresentação
Introdução Gravando o PIC
Memórias Programação
Interrupções Recursos Avançados
PIC16F628  Timer, CCP, PWM,
Comparadores, Tensão
Registradores Especiais Ajustável, USART
Set de Instruções Hardware Avançado
Hardware Projetos e Muita Prática !
A Arquitetura Havard e a
4

Filosofia RISC
Os microcontroladores PIC apresentam arquitetura
Havard.
 1 barramento para dados (8 bits) e outro para instruções (12, 14
ou 16 bits)
 RISC
Maior parte dos microcontroladores tradicionais
apresentam arquitetura tipo Von-Neumann.
 1 único barramento para dados e instruções (8 bits)
 CISC
Alguns Exemplos de Cada
5

Família da Microchip
6

Estruturação Interna – 16F628


7

Ciclos de Máquina

• Divide clock por quatro, formando as fases Q1, Q2, Q3 e Q4


• PIPELINE: Busca a informação em um ciclo e a executa no
próximo
• Para um clock de 4MHz, cada instrução é executada 1µs, desde
que não afete o Program Counter
Principais Características do PIC
8

16F628A
Microcontrolador de 18 pinos
Até 16 portas configuráveis como entrada ou saída
2 Osciladores internos (4MHz ou 37kHz)
10 Interrupções Disponíveis
 Timers, Externa, Mudança de Estado, EEPROM, USART e
Comparador
Memória de prog. FLASH (2048 “words” – 14 bits)
EEPROM interna de 128 bytes
RAM interna de 224 bytes
Special Features:
Features CCP, Comparador Interno e USART
Programação com 14 bits e 35 instruções
9

Pinagem
10

Nomenclatura
16 I/Os separados em dois grupos denominados
PORTAS (Porta A e Porta B, ou melhor, port A e
port B)
 port A: RA0; RA1 ... RA7
 Idem para port B

 Prestar atenção nos pinos de múltiplas funções

V
DD (5V) e VSS (GND)
11

Função dos Pinos (1)


12

Função
dos
Pinos(2)
13

Características Elétricas
Temperatura de trabalho: -40oC até +125oC
Tensão de Trabalho (em relação a Vss): 3.0V a 5.5V
Voltagem máxima no pino VDD (em relação ao VSS): -0.3V até +6.5V
Voltagem máxima no pino MCLR (em relação ao VSS): -0.3V até +14V
Voltagem máxima nos demais pinos (em relação ao VSS): -0.3V até (VDD+0.3V)
Dissipação máxima de potência: 800mW
Corrente máxima de saída do pino VSS: 300mA
Corrente máxima de entrada no pino VDD: 250mA
Corrente máxima de a saída de um pino (qdo em VSS) : 25mA
Corrente máxima de saída de um pino (qdo em VDD): 25mA
Correntes máximas de entrada e saída (PORTB + PORTB): 200mA
14

Introdução às Memórias
Memória de Programa
 Vetor de Reset
 Vetor de Interrupção
 Pilha (Stack)

Memória de Dados
 Registradores Especiais
 Registradores de Uso Geral

EEPROM
15

Memória de Programa
ROM do Tipo Máscara (CR)
OTP: PROM (C)
EPROM: Janelados (JW para DIP e CL para
PLCC)
Flash (F)
16

Memória de Programa
A capacidade máxima da série 16 é de 8kword (8192)
divididos em blocos de 2kword (2048)
16F628 tem 2kword, portanto somente 1 página de
memória
Endereço Final da primeira página
 1FFh para dispositivos com 512 words
 3FFh para dispositivos com 1kword
 7FFh para dispositivos com 2kword
Mecanismo de paginação é transparente ao usuário.
Atenção somente para comandos de desvio (CALL,
GOTO)
Memória de Programa
17

Série 16
18

Memória de Programa da 16F628


19

Memória de Dados (ou RAM)


SFR (Special Function Register): Registradores de
Funções Especiais. Muitas vezes referenciados pela letra
“f”
GPR (General Purpose Registers): Registradores de
Propósito Geral
Devido a forma de implementação das funções o
endereçamento é limitado a 7 bits (128 registradores).
A filosofia de paginação é utilizada. Existem diversos
bancos de 128 posições. O acesso ao banco é feito pelo
registrador de STATUS: RP0 e RP1
Alguns registradores são espelhados
Memória
20

de Dados
21

Os Registradores Especiais (1)

STATUS: Está relacionado às operações matemáticas.


Indica estouro dos registradores (C-Carry e DC-Digit
Carry) e resultados iguais a zero
PCON: Função mais utilizada é que configura freqüência
do oscilador interno 37KHz ou 4MHz
OPTION_REG: Configura o funcionamento dos
registradores internos
PORTx: Lê e escreve informações nos pinos externos do
PIC
TRISx: Define direção de funcionamento de cada pino
da porta (se entrada ou saída)
22

Os Registradores Especiais (2)

INTCON: Interrupções Especiais e chave geral


 Chave Geral: GIE
 Timer 0, Interrupção Externa e Mudança de Estado
PIR1 e PIE: Gerencia interrupções dos periféricos
 EEPROM, Comparadores, USART, CCP, Timer 1 e 2
TMR0 e TMR2: É o Timer 0 e 2 respectivamente
 Contador de 8 bits
 Seu incremento pode ser automático (CLK) ou por um sinal
externo (Timer 0)
TMR1L e TMR1H: É o Timer 1
 Contador de 16 bits
23

Os Registradores Especiais (3)

EEPROM
 Utiliza os registradores EEADR e EEDATA que controlam
leitura e escrita da EEPROM interna
 O controle é feito pelos registradores EECON1 e EECON2
Módulo CCP
 3 registradores (CCP1COM, CCPR1H e CCPR1L)
Módulo Voltagem de Referência
 VRCON
 Gera voltagem de referência através de malha R2R interna
Endereçamento Indireto
 FSR (apontador)
 INDF (espelho do apontador)
24

Registrador W
Pode ser utilizado como destino de diversas operações aritméticas
e lógicas
Não está mapeado na memória RAM
É utilizado principalmente como ponte entre os registradores “ f ”,
pois não é possível trocar dados diretamente entre eles
A instrução MOVF copia a informação do registrador “ f ” para W
A instrução MOVWF copia a informação do registrador W para “
f”
25

Contador de Programa - PC
PC – Program Counter
 Aponta sempre para a próxima instrução a ser
executada pela CPU
 Série 16 – PC tem largura de 13 bits

 É dividido em dois registradores básicos: PCL e PCH

 PCL é acessado diretamente

 PCH é acessado indiretamente por PCLATH


Relacionamento entre PC, PCL e
26

PCLATH (1)

Modo 1 – Execução de uma


instrução que tem como destino
o registrador PCL

Modo 2 – Execução de uma


instrução GOTO
Relacionamento entre PC, PCL e
27

PCLATH (2)

Modo 3 – Execução de
CALL

Modo 4 – RETURN,
RETLW, RETFIE
28

Pilha (Stack)

Não está localizada na área de memória RAM


Tamanho: 8 posições de 13 bits
LIFO (Last In First Out) Circular
Não há instruções para manipular diretamente a pilha
Não permite armazenamento de dados, apenas endereços
29

Introdução às Interrupções
Serve para interromper o programa imediatamente
Em função da interrupção solicitada uma atitude pode ser tomada
instantaneamente
Após uma interrupção, o programa é interrompido, e uma função
específica (definida pelo programador é executada)
Tipos: Timer(3); Externa; Mudança de Estado; Fim de Escrita na
EEPROM; Comparador; USAR; Módulo CCP
Nos PICs todas as interrupções são mascaráveis
Latência: Atraso entre o instante de ocorrência de um evento de
interrupção e o efetivo desvio para o vetor de interrupções (nos
PICs o endereço 0x0004)
 Síncronas: Três ciclos de instruções
 Assíncronas: De 3 a 3,75 ciclos de instruções
30

Funcionamento das Interrupções


Três Sinais
Importantes:
 GIE – Global
Interrupt
Enable
 Controle
Específico de
Cada
Interrupção
 Flag de
Interrupção
31

Set de Instruções
Work: Registrador W (temporário)
File: Registrador (posição de memória). “ F ” nos nomes das instruções e “ f ”
nos seus argumentos
Literal: Um número qualquer. “ L ” nos nomes das instruções e “ k ” nos seus
argumentos
Destino: Local onde deve ser armazenado o destino das operações. Dois
possíveis F ou W
Bit: Um bit específico dentro de um byte. “ B ” nos nomes das instruções e “ b
” nos seus argumentos
Teste: Funções que são utilizadas para testar um bit apresentam a letra “ T ”
Skip: Pulo. Letra “ S ”
Set: Setar um bit, colocá-lo em 1. Letra “ S ”
Clear: Refere-se ao clear de um bit, colocá-lo em zero. Letra “ C ”
Zero: Algumas instruções geram desvios qdo o resultado da operação é zero.
Letra Z.
32

Operações com Registradores


33

Operações com Literais


34

Operações com Bits e Controles


35

Osciladores
O PIC16F628 tem dois osciladores internos
 Típico: 4MHz, tipo RC, precisão entre 1 e 5% dependendo das condições de tensão
e temperatura
Quando for utilizado oscilador externo 1 ou 2 I/Os serão perdidos
Oscilador Externo Híbrido ou Circuitos de Oscilação
Oscilador Externo Tipo RC:
Ressoador (ou Ressonador
36

Cerâmico)
37

Oscilador Externo - Cristal


38

Power-On Reset (POR)


Quando o Master Clear Reset Externo não está habilitado. POR
interno.
Caso o Master Clear Reset Externo está habilitado será necessário
hardware complementar

Você também pode gostar