Escolar Documentos
Profissional Documentos
Cultura Documentos
PIC
1
Bibliografia Básica
2
Estrutura da Apresentação
! Introdução
! PIC16F628
! Hardware
! Registradores
Especiais
! Set de Instruções
3
A Arquitetura Havard e a
Filosofia RISC
! Os microcontroladores PIC apresentam
arquitetura Havard.
" Um 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.
" Barramento único para dados e instruções (8 bits)
" CISC
4
Alguns Exemplos de Cada
Família da Microchip
5
Ciclos de Máquina
6
Estrutura Interna – 16F628
7
Principais Características do PIC 16F628
! 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 programa. FLASH (2K “words” – 14 bits)
! EEPROM interna de 128 bytes
! RAM interna de 224 bytes
! Hardwares especiais: CCP, Comparador Interno e
USART
! Programação com 14 bits e 35 instruções
8
Pinagem
9
Nomenclatura
10
Descrição dos Pinos (1)
11
Descrição
dos
Pinos(2)
12
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 (PORTA + PORTB): 200mA
13
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
14
Memória de Programa
15
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)
16
Memória de Programa série 16
17
Memória de programa do PIC16F628
18
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 é controlado pelo registrador de STATUS:
RP0 e RP1
! Alguns registradores são espelhados 19
Memória
de Dados
20
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)
21
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: São os Timers 0 e 2 respectivamente
" Contadores de 8 bits
" Seu incremento pode ser automático (CLK) ou por um sinal
externo (Timer 0)
! TMR1L e TMR1H: São os registradores do Timer 1
" Contador de 16 bits
22
Os Registradores Especiais(3)
! EEPROM
" Utilizaos 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)
23
" INDF (espelho do apontador)
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 ”
24
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
25
Relacionamento entre PC, PCL
e PCLATH (1)
Modo 1 – Execução de uma
instrução que tem como destino
o registrador PCL
26
Relacionamento entre PC, PCL
e PCLATH(2)
Modo 3 – Execução de
CALL
Modo 4 – RETURN,
RETLW, RETFIE
27
Pilha (Stack)
30
Operações com Literais
31
Operações com Bits e Controles
32
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:
33
Ressoador (Ressonador Cerâmico)
34
Oscilador Externo - Cristal
35