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
Memórias
Interrupções
PIC16F628
Registradores Especiais
Set de Instruções
Hardware
Gravando o PIC
Programação
Recursos Avançados
 Timer, CCP, PWM,
Comparadores, Tensão
Ajustável, USART
Hardware Avançado
Projetos e Muita Prática !
4
AArquitetura Havard e a
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
5
Alguns Exemplos de Cada
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
8
Principais Características do PIC
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: 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
 VDD (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)
17
Memória de Programa
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
20
Memória
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
26
Relacionamento entre PC, PCL e
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
27
Relacionamento entre PC, PCL e
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:
36
Ressoador (ou Ressonador
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

Pic aula1

  • 1.
    Microcontroladores PIC André LuísMarques Marcato andre.marcato@ufjf.edu.br Leandro Mattos Braga cebolinhajf@globo.com
  • 2.
    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.
    3 Estrutura da Apresentação Introdução Memórias Interrupções PIC16F628 RegistradoresEspeciais Set de Instruções Hardware Gravando o PIC Programação Recursos Avançados  Timer, CCP, PWM, Comparadores, Tensão Ajustável, USART Hardware Avançado Projetos e Muita Prática !
  • 4.
    4 AArquitetura Havard ea 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
  • 5.
    5 Alguns Exemplos deCada Família da Microchip
  • 6.
  • 7.
    7 Ciclos de Máquina Divideclock 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
  • 8.
    8 Principais Características doPIC 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: CCP, Comparador Interno e USART Programação com 14 bits e 35 instruções
  • 9.
  • 10.
    10 Nomenclatura 16 I/Os separadosem 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  VDD (5V) e VSS (GND)
  • 11.
  • 12.
  • 13.
    13 Características Elétricas Temperatura detrabalho: -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.
    14 Introdução às Memórias Memóriade Programa  Vetor de Reset  Vetor de Interrupção  Pilha (Stack) Memória de Dados  Registradores Especiais  Registradores de Uso Geral EEPROM
  • 15.
    15 Memória de Programa ROMdo Tipo Máscara (CR) OTP: PROM (C) EPROM: Janelados (JW para DIP e CL para PLCC) Flash (F)
  • 16.
    16 Memória de Programa Acapacidade 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)
  • 17.
  • 18.
  • 19.
    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
  • 20.
  • 21.
    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.
    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.
    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.
    24 Registrador W Pode serutilizado 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.
    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
  • 26.
    26 Relacionamento entre PC,PCL e 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
  • 27.
    27 Relacionamento entre PC,PCL e PCLATH(2) Modo 3 – Execução de CALL Modo 4 – RETURN, RETLW, RETFIE
  • 28.
    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.
    29 Introdução às Interrupções Servepara 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.
    30 Funcionamento das Interrupções TrêsSinais Importantes:  GIE – Global Interrupt Enable  Controle Específico de Cada Interrupção  Flag de Interrupção
  • 31.
    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.
  • 33.
  • 34.
  • 35.
    35 Osciladores O PIC16F628 temdois 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:
  • 36.
  • 37.
  • 38.
    38 Power-On Reset (POR) Quandoo Master Clear Reset Externo não está habilitado. POR interno. Caso o Master Clear Reset Externo está habilitado será necessário hardware complementar