Você está na página 1de 28

Célula de memória responsável por armazenar o

estado de um ou mais bytes;


Guardam informações do programa, estado de
entradas ou saídas, resultados de operações
matemáticas, entre outros;
Em um microcontrolador de 8 bits, apresenta valor
de 0 (0b00000000) a 255 (0b11111111);
Usualmente representado em
binário.
Podem ser classificados em dois tipos:
 Registradores de propósito geral (General Purpose
Register – GPR) e;
 Registradores de funções especiais (Special
Function Register - SFR).
São utilizados para armazenamento de dados sobre
os quais serão realizados algum tipo de operação;
Não agem diretamente sobre circuitos eletrônicos;
São utilizados constantemente pela própria CPU
para um novo cálculo ou processamento.

Fonte: Sena (2017).


Possuem funções pré-estabelecidas pelo fabricante;
Seus bits são conectados diretamente à circuitos
internos do microcontrolador;

Fonte: Sena (2017).


Cada microcontrolador apresenta um número
fixo de SFR de acordo com suas características;
Atuam no comando das operações de circuitos
eletrônicos, como por exemplo, temporizadores,
conversores A/D, dispositivos de entrada e saída
e outros;
Os registradores possuem endereços
específicos na memória.
Permite localizar os
registradores GPR e SFR;
SFR  apresentam
nomenclaturas
específicas.
Subclassificação:
 SFR do CPU  são responsáveis pelo controle e
monitoramento dos processos da CPU;
 SFR de periféricos  controlam a operação dos
periféricos (temporizadores, conversores A/D,
comunicação serial, etc.). Cada periférico possui
ao menos um registrador de controle.
Apresenta uma série de bibliotecas que evitam o
controle direto dos registradores;
Facilidade de programação;
Maior uso de memória e maior tempo despendido
para a execução de uma ação;
Possibilidade de programação direta de
registradores na interface arduino.
Letras no interior dos retângulos representam os
nomes de cada bit;
As inscrições bit 7 e bit 0 indicam o MSB e LSB,
respectivamente.
Parte superior identifica as opções de leitura, escrita e o
valor assumido após o reset:
 R/W – permite operações de escrita e leitura;
 R – permite somente operação de leitura;
 0 – assume valor zero
após o reset;
 1 – assume valor 1 após o reset;
 x – o valor assumido pelo bit
após o reset é desconhecido.
Realiza configurações relacionadas a operação
da CPU;
Mínimo a ser configurado para a utilização de
um microcontrolador;
Usualmente feita no início do programa;
Estudo dos registradores de CPU
do PIC16F628A;
Tem a função de indicar o estado da unidade lógico-
aritmética e configurar a página de programação,
alterando entre os quatro bancos de memória
existentes no microcontrolador.
IRP: Usado para selecionar o banco de memória no modo de
endereçamento indireto.
1 – Banco 2, 3 são ativados (endereço de memória 0x00 a
bit 7
0xFF).
0 – Banco 0, 1 são ativados (endereço de memória 0x100 a
0x1FF).

RP<1:0>: Usado para selecionar o banco de memória no modo


de endereçamento direto.
bit 00 – Banco 0 (0x00 – 0x7F);
6-5 01 – Banco 1 (0x80 – 0xFF);
10 – Banco 2 (0x100 – 0x17F);
11 – Banco 3 (0x180 – 0x1FF).

TO: bit de Timer-out. Indica o estouro do temporizador do


watchdog (watchdog timer - WDT).
1 – Indica que ocorreu um Power-on (inicialização), ou
bit 4 execução da instrução SLEEP, ou a execução da instrução que
zera o temporizador do watchdog (CLRWDT).
0 – Indica que ocorreu um time-out (estouro) do temporizador
do watchdog.
PD : bit de Power-down. Sinaliza se o sistema entrou no modo
adormecido (stand-by).
bit 3 1 – Indica que ocorreu uma inicialização ou foi executada a instrução
CLRWDT.
0 – Indica que a instrução SLEEP foi executada.

Z: bit Zero. Sinaliza se o resultado da instrução gerou um zero.


bit 2 1 – O resultado da operação é zero.
0 – O resultado da operação é diferente de zero.

DC: bit de transporte de digito. Sinaliza se o resultado gerou um “vai-


um” (overflow) ou um “pedir emprestado” (borrow) dos 4 bits LSB.
bit 1 Utilizado quando são feitas operações com números de 4 bits.
1 – Houve transporte do 4º bit do resultado.
0 – Não houve transporte do 4º bit do resultado.

C: bit de transporte. Sinaliza se o resultado gerou um “vai-um” ou um


“pedir emprestado” do bit mais significativo, ou seja, se o resultado é
bit 0 maior que 255 ou menor que zero.
1 – Houve transporte do bit mais significativo do resultado.
0 – Não houve transporte do bit mais significativo do resultado.
Utilizado para selecionar a frequência do oscilador
interno, além de identificar a forma do último reset.
bit 7-4 Não implementado: Lê-se zero.
OSCF: Define a frequência do oscilador interno.
bit 3 1 – 4 MHz.
0 – 48 kHz.
bit 2 Não implementado: Lê-se zero.
POR: Sinalização de Power-on Reset (energização).
bit 1 1 – Não ocorreu um Power-on Reset.
0 – Ocorreu um Power-on Reset.
BOR: Sinalização de Brown-out Reset (queda de energia).
bit 0 1 – Não ocorreu um Brown-out Reset.
0 – Ocorreu um Brown-out Reset.
Apesar do PIC16F628 apresentar uma memória de
programa (flash) de 2 kB, a capacidade de
endereçamento é de 8 kB (PC possui 13 bits);
Como apenas um registrador
não consegue armazenar todos
os 13 bits, são utilizados 2
registradores, PCLATH e PCL.
Permite que se escolha uma série de opções de
funcionamento do microcontrolador;
Usado para configurar o prescaler do temporizador
TMR0/WDT, interrupções externas e pull-ups dos
dispositivos I/O da porta B.
RBPU: Usado para habilitar os resistores de pull-up dos
dispositivos I/O da porta B.
bit 7
1 – Pull-ups desabilitados.
0 – Pull-ups habilitados.

INTEDG: Esta flag define se uma interrupção externa é acionada


em um borda de subida ou de descida.
bit 6
1 – Interrupção na borda de subida do pino RB0/INT.
0 – Interrupção na borda de descida do pino RB0/INT.

T0CS: Define a fonte de clock do timer0.


1 – O timer0 conta através das mudanças de níveis ou clock no
bit 5
pino Ra4/T0CKI.
0 – O timer0 conta através do clock interno (opção mais usual).

T0SE: Define se o timer será incrementado na borda de subida


ou na borda de descida do sinal aplicado em Ra4/T0CKI.
bit 4
1 – Incrementa o contador na borda de descida.
0 – Incrementa o contador na borda de subida.
PSA: Define se o prescaler estará ligado ao WDT ou ao TMR0.
bit 3 1 – Prescaler é designado ao WDT.
0 – Prescaler é designado ao TMR0.

PS<2:0>: São os bits responsáveis pela configuração do


prescaler, cujo valor depende de qual foi o temporizador
designado.

Fonte: Sena (2017).

bit 2-0
Controlam as interrupções do microcontrolador;
Registrador PIE  controla as interrupções dos
demais periféricos;
Registrador PIR  flags de
interrupção dos periféricos
controlados pelo registrador PIR.
GIE: Habilitação global e simultânea das interrupções.
Bit 7 1 – Ativa todas as interrupções.
0 – Desativa todas as interrupções.

PEIE: Habilita as interrupções dos periféricos.


Bit 6 1 – Ativa todas as interrupções dos periféricos.
0 – Desativa todas as interrupções dos periféricos.

T0IE: Habilita a interrupção de overflow do timer0.


Bit 5 1 – Ativa a interrupção do TMR0.
0 – Desativa a interrupção do TMR0.

INTE: Habilita a interrupção externa em RB0/INT, causada pela


mudança do estado do pino.
Bit 4
1 – Ativa a interrupção do RB0/INT.
0 – Desativa a interrupção do RB0/INT.

RBIE: Habilita a interrupção da porta B, na mudança de estado


dos pinos RB4 a RB7.
Bit 3
1 – Ativa a interrupção da porta B.
0 – Desativa a interrupção da porta B.
T0IF: Essa flag indica que houve uma interrupção no timer0 por
estouro (overflow).
1 – Ocorreu estouro do timer e por isso foi gerado um sinal de
Bit 2
interrupção, mas, ele só será reconhecido se o bit 5 deixar.
0 – Não ocorreu estouro, consequentemente, não houve
interrupção.

INTF: Indica que ocorreu uma interrupção externa através do


pino RB0/INT.
Bit 1
1 – Ocorreu interrupção externa no pino RB0/INT.
0 – Não existe pedido de interrupção.

RBIF: Indica interrupção da porta B.


1 – Houve mudança de estado em algum pino da porta B do
Bit 0 RB4 ao RB7.
0 – Não houve mudança de estado em nenhum pino da porta B
do pino RB4 ao RB7.
Utilizados para configurar os dispositivos de I/O;
PIC16F628  TRISA e PORTA para porta A e TRISB e
PORTB para porta B;
TRIS  determina se o pino de I/O será entrada ou
saída;
 Nível 1 para entrada e nível 0 para saída;
PORT
 Entrada  indica o estado;
 Saída  determina o sinal
de saída.

Você também pode gostar