IFCE – Campus Cedro
Mecatrônica Microcontroladores
Prof. Eng. Derig Almeida Vidal
Mestrando em Computação Aplicada, Engenheiro de Produção e Tecnólogo em Automática
Aula 05
Registradores Especiais do PIC
Prof. Derig Almeida Vidal IFCE - Cedro
Sumário
• Introdução
• Tipos
• Descrição
Registradores Especiais - Introdução
• O PIC possui uma série de registradores especiais
que são denominados SFR (Special Function
Registers) que tem como função armazenar a
configuração e o estado de funcionamento atual da
máquina.
• Por exemplo, através deles é possível:
– Definir as portas como entradas ou saídas; – Ativar interrupções;
– Ativar a contagem do TMR0 por sinal externo, etc.
Registradores Especiais - Introdução
• Tipos de registradores especiais:
– Gerais
• STATUS e PCON • OPTION
• INTCON, PIR1 e PIE1 • PCL e PCLATH – Portas
• TRIS • PORTS – Contadores
• TIMER 0, TIMER 1 e TIMER 2 – EEPROM • EEADR e EEDATA • EECON1 e EECON2 – Módulo CCP • CCP1CON, CCPR1H e CCPR1L – Módulo Comparador • CMCON – Módulo voltagem de referência • VRCON – Módulo USART • TXSTA e RCSTA • SPBRG • TXREG e RCREG – Endereçamento Indireto
Prof. Derig Almeida Vidal IFCE - Cedro
STATUS e PCON
• STATUS
– Está relacionado às operações matemáticas.
– Indica estouro dos registradores (C-Carry e
DC-Digit Carry) e resultados iguais a zero (Z).
• PCON
– Sua função mais utilizada é que configura
freqüência do oscilador interno (OSCF): 37KHz
ou 4MHz
Prof. Derig Almeida Vidal IFCE - Cedro
• bit 0 C (Carry) Transporte
Este bit é afetado pelas operações de adição, subtração e deslocamento. Toma o valor ‘1’ (set), quando um valor mais pequeno é subtraído de um valor maior e toma o valor ‘0’ (reset) quando um valor maior é subtraído de um menor. 1= Ocorreu um transporte no bit mais significativo 0= Não ocorreu transporte no bit mais significativo
Prof. Derig Almeida Vidal IFCE - Cedro
• bit 1 DC (Digit Carry) Transporte de dígito
Este bit é afetado pelas operações de adição, subtração. Ao contrário do anterior, DC assinala um transporte do bit 3 para o bit 4 do resultado. Este bit toma o valor ‘1’, quando um valor mais pequeno é subtraído de um valor maior e toma o valor ‘0’ quando um valor maior é subtraído de um menor.
1= Ocorreu um transporte no quarto bit mais significativo 0= Não ocorreu transporte nesse bit
Prof. Derig Almeida Vidal IFCE - Cedro
• bit 2 Z (bit Zero) Indicação de resultado igual a zero. Este bit toma o valor ‘1’ quando o resultado da operação lógica ou aritmética executada é igual a 0.
1= resultado igual a zero 0= resultado diferente de zero
Prof. Derig Almeida Vidal IFCE - Cedro
• bit 3 PD (Bit de baixa de tensão – Power Down) Este bit é posto a ‘1’ quando o microcontrolador é alimentado e começa a trabalhar, depois de um reset normal e depois da execução da instrução CLRWDT. A instrução SLEEP põe este bit a ‘0’ ou seja, quando o microcontrolador entra no regime de baixo consumo / pouco trabalho. Este bit pode também ser posto a ‘1’, no caso de ocorrer um impulso no pino RB0/INT, uma variação nos quatro bits mais significativos do porto B, ou quando é completada uma operação de escrita na DATA EEPROM ou ainda pelo watchdog.
1 = depois de ter sido ligada a alimentação
0 = depois da execução de uma instrução SLEEP Prof. Derig Almeida Vidal
IFCE - Cedro
• bit 4 TO Time-out ; transbordo do Watchdog
Este bit é posto a ‘1’, depois de a alimentação ser ligada e depois da execução das instruções CLRWDT e SLEEP. O bit é posto a ‘0’ quando o watchdog consegue chegar ao fim da sua contagem (overflow = transbordar), o que indica que qualquer coisa não esteve bem.
1 = não ocorreu transbordo 0 = ocorreu transbordo
• bits 5 e 6 RP1:RP0 (bits de seleção de banco de registros) Estes dois bits são a parte mais significativa do endereço utilizado para endereçamento direto.
• 00 = banco de registros 0 • 01 = banco de registros 1 • 10 = banco de registros 2 • 11 = banco de registros 3
• bit 7 IRP (Bit de seleção de banco de registros) Este bit é utilizado no endereçamento indireto da RAM interna, como oitavo bit
1 = bancos 2 e 3
0 = bancos 0 e 1 (endereços de 00h a FFh)
• O registro de estado (STATUS), contém o estado da ALU (C, DC, Z), estado de RESET (TO, PD) e os bits para seleção do banco de memória (IRP, RP1, RP0). Considerando que a seleção do banco de memória é controlada através deste registro, ele tem que estar presente em todos os bancos.
Prof. Derig Almeida Vidal IFCE - Cedro
OPTION (OPTION_REG)
• Serve para configurar uma série de opções para a
operação do microcontrolador, tais como:
– Habilitação de pull-ups (força o nível lógico alto)
do PORTB;
– Configuração do prescaler (parte do
microcontrolador que divide a freqüência de
oscilação do clock antes que os respectivos
impulsos possam incrementar o temporizador);
– Configuração do TMR0; e,
– Seleção da borda para a interrupção externa.
Prof. Derig Almeida Vidal IFCE - Cedro
• bits 0 a 2 PS0, PS1, PS2 (bits de selecção do divisor Prescaler) Estes três bits definem o factor de divisão do prescaler. Aquilo que é o prescaler e o modo como o valor destes três bits afetam o funcionamento do microcontrolador será estudado na secção referente a TMR0.
• bit 3 PSA (Bit de Atribuição do Prescaler)
Bit que atribui o prescaler ao TMR0 ou ao watchdog. 1 = prescaler atribuído ao watchdog
0 = prescaler atribuído ao temporizador TMR0
Prof. Derig Almeida Vidal IFCE - Cedro
• bit 4 T0SE (bit de seleção de bordo ativo em TMR0)
Se for permitido aplicar impulsos em TMR0, a partir do pino RA4/TOCK1, este bit determina se os impulsos ativos são os impulsos ascendentes ou os impulsos descendentes. 1 = bordo descendente
0 = bordo ascendente
• bit 5 TOCS (bit de seleção de fonte de clock em TMR0) Este pino escolhe a fonte de impulsos que vai ligar ao temporizador. Esta fonte pode ser o clock do
microcontrolador (freqüência de clock a dividir por 4) ou impulsos externos no pino RA4/TOCKI.
1 = impulsos externos
0 = ¼ do clock interno Prof. Derig Almeida Vidal
IFCE - Cedro
• bit 6 INDEDG (bit de seleção de bordo de interrupção) Se esta interrupção estiver habilitada, é possível definir o bordo que vai activar a interrupção no pino RB0/INT. 1 = bordo ascendente
0 = bordo descendente
• bit 7 RBPU (Habilitação dos pull-up nos bits do porto B) Este bit introduz ou retira as resistências internas de pull-up do porto B.
1 = resistências de “pull-up” desligadas 0 = resistências de “pull-up” ligadas
Prof. Derig Almeida Vidal IFCE - Cedro
INTCON, PIR1 e PIE
• Servem para configurar e identificar as interrupções
existentes.
– INTCON:
• Opera com as interrupções principais, que são:
Timer 0, interrupção externa e mudança de
estado;
• Possui a chave geral de todas as interrupções
(GIE) e a chave geral para interrupções de
periféricos.
– PIR1 e PIE:
• Gerencia interrupções dos periféricos.
• EEPROM, Comparadores, USART, CCP, Timer 1
e 2.
Prof. Derig Almeida Vidal IFCE - Cedro
PCL e PCLATH
• PCL armazena os 8 bits menos significativos do
PC (Program Counter) e o PCLATH os outros 5
bits mais significativos do PC.
• É alterado automaticamente mas pode ser
modificado pelo programa.
PORTA e PORTB
• Lê e escreve informações nos pinos externos do
PIC;
• O estado das portas é acessado diretamente
nestas duas posições distintas da memória;
• Quando um pino dessas portas é configurado como
entrada, ao lermos o seu bit relacionado,
encontraremos diretamente o nível lógico aplicado
a esse pino;
• Da mesma maneira, ao ser configurada como
saída, podemos alterar o seu estado escrevendo
diretamente no bit relacionado.
TRISA e TRISB
• Define direção de funcionamento de cada pino da
porta (se entrada ou saída);
• Quando é colocado “1” (lembre-se do Input) em um
bit do TRIS, o pino relacionado a ele é configurado
como entrada.
• Para configurar como saída, deve-se escrever “0”
(lembre-se do Output) no bit relacionado.
Prof. Derig Almeida Vidal IFCE - Cedro
Contadores - TIMER 0 (TMR0)
– Contador de 8 bits;
– Pode ser acessado diretamente na memória,
tanto para leitura como para escrita;
– Seu incremento é automático, o que pode ser
feito pelo clock da máquina ou por sinal externo;
– O estouro desse contador pode gerar uma
interrupção.
Prof. Derig Almeida Vidal IFCE - Cedro
Contadores - TIMER 1 (TMR1)
– Contador de 16 bits;
– Pode ser acessado diretamente na memória, tanto
para leitura como para escrita;
– Devido ao seu tamanho o mesmo é dividido em dois
endereços: TMR1H (
parte alta) e TMR1L (
parte baixa);
– Suas configurações são realizadas pelo T1CON,
como:
habilitação, prescaler, oscilador externo próprio, origem do incremento (interno ou externo) e sincronismo de incremento;– O estouro desse contador pode gerar uma
interrupção;Também pode ser utilizado pelo CCP.
Prof. Derig Almeida Vidal IFCE - Cedro
Contadores - TIMER 2 (TMR2)
– Contador de 8 bits;
– Pode ser acessado diretamente na memória, tanto
para leitura como para escrita;
– Suas configurações são realizadas pelo T2CON,
como:
habilitação, prescaler e protscaler;– Para gerar uma interrupção, o valor desse contador é
comparado ao valor especificado em outro
registrador, o PR2, em vez de esperar o estouro do
mesmo.
Prof. Derig Almeida Vidal IFCE - Cedro
EEPROM
• EEADR: É onde se especifica o endereço para
escrita ou leitura da EEPROM interna.
• EEDATA: Possui duas funções distintas:
– Nas operações de escrita, ele deve ser
preenchido com o dado a ser armazenado; e,
– Nas operações de leitura, ele armazena o dado
Prof. Derig Almeida Vidal IFCE - Cedro
EEPROM
Registradores de operação da EEPROM:
• EECON1
– É responsável pelas operações de escrita e
leitura na EEPROM e detecção de erro.
• EECON2
– Não é um registrador verdadeiramente
implementado em memória;
– Só é utilizado durante a inicialização do ciclo de
escrita na EEPROM por questão de segurança,
evitando que a memória seja alterada
acidentalmente.
Prof. Derig Almeida Vidal IFCE - Cedro
Módulo CCP
• Através do módulo CCP é possível acessar três
modos diferentes de operação: Capture, Compare
e PWM;
• CCP1COM: é o responsável pela configuração;
• Utiliza o TMR1 como base de tempo e os
registradores complementares CCPR1H (parte
alta) e CCPR1L (parte baixa).
Módulo Voltagem de Referência
(VRCON)
• É utilizado para configurar o módulo de voltagem
de referência (saída analógica com 16 valores
configuráveis por software);
• É possível habilitar/desabilitar este sistema e
selecionar o valor da saída (malha R2R interna).
USART
• TXSTA e RCSTA configuram e monitoram todas as
possibilidades para a comunicação via módulo
USART, um para transmissão e outro para
recepção, respectivamente.
• SPBRG é responsável pela configuração do Baund
Rate (
medida de velocidade de sinalização e representa o número de mudanças na linha de transmissão (seja em frequência, amplitude, fase etc.) ou eventos por segundo).
• TXREG e RCREG são os buffers (acumuladores)
para os dados a serem enviados e os dados
recebidos, respectivamente.
Prof. Derig Almeida Vidal IFCE - Cedro
Endereçamento Indireto
• FSR é um registrador que pode ser escrito um
outro endereço de memória que será acessado
indiretamente, como se ele fosse apenas um
ponteiro;
• INDF não é um registrador verdadeiro sendo
somente um espelho do endereço apontado por
FSR.
Prof. Derig Almeida Vidal IFCE - Cedro