Você está na página 1de 35

Microcontroladores

PIC

André Luís Marques Marcato Luis Claudio Gambôa Lopes


andre.marcato@ufjf.edu.br gamboa@labsel.ufjf.br
Leandro Mattos Braga Rogério Marques Trindade
cebolinhajf@globo.com rogeriomt@labsel.ufjf.br

1
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

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

PIPELINE: Busca a informação em um ciclo e a


executa no próximo
O PIC em estudo divide o clock de entrada por 4.
Para um clock de 4MHz, cada instrução é executada
1µs, desde que não afete o Program Counter

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

! 16 I/Os separados em dois grupos


denominados PORTAS (port A e port B)
"port A: RA0; RA1 ... RA7
"Idem para port B
"Pinos de múltiplas funções
"VDD (5V) e VSS (GND)

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

! ROM do Tipo Máscara (CR)


! OTP: PROM (C)
! EPROM: Janelados (JW para DIP e CL
para PLCC)
! Flash (F)

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

Modo 2 – Execução de uma


instrução GOTO

26
Relacionamento entre PC, PCL
e PCLATH(2)
Modo 3 – Execução de
CALL

Modo 4 – RETURN,
RETLW, RETFIE

27
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
28
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 quando o resultado da
operação é zero. Letra Z.
29
Operações com Registradores

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

Você também pode gostar