Você está na página 1de 25

Curso de

Microcontroladores
PIC 16F84A
João Neto Caetano
Jnetcaetano@hotmail.com
Marciel Gonçalves Azevedo
Marcielgazevedo@hotmail.com
Célio Rodrigues Pinto
Treinamentos em geral, suporte a alunos
universitários e técnicos e projetos
personalizados em eletrônica.
Principais parâmetros
• Apenas 35 palavras de instruções;
• Todas as instruções usam ciclos de
programa simples
• Opera em clock de 4 MHz ou de 20 MHz;
• Possui 1024 palavras em memória de
programa;
• Possui 68 bytes em memória RAM;
• Possui 64 bytes memória EEPROM;
Principais parâmetros
• As instruções são de 14-bits
• 5 bits para comandos-instruções;
• 8 bits para dados.
• Possui 15 registradores para funções
especiais;
• Possui quatro fontes de interrupção;
• - Externa RB0/INT
• - TMR0 timer por estouro de contagem
• - PORTB<7:4> interrupt-on-change
• - Data EEPROM escrita completa
Principais parâmetros
• Periféricos:
• Possui 13 pinos de I/O (entrada ou saída)
que podem ser configurados
independentemente;
• Alta corrente capaz de ligar um LED;
• - 25 mA por pino de I / O;
• Contador de tempo TMR0: com 8-bits;
• Programador / divisor de tempo prescaler.
Pinagem do CI
RA2-1 18-RA1
RA3-2 17-RA0
RA4-TOCK1-3 16-OSC1/CLKIN
MCLR-4 15-OSC2/CLKOUT
VSS-5 PIC 16F84A 14-VDD
RB0-INT-6 13RB7
RB1-7 12-RB6
RB2-8 11-RB5
RB3-9 10-RB4
Organização das memórias.
00 80
000 Registros Registros
0B CB
Memória
de programa 0C – 8C
Flash
EEprom 00
Memória
14 Bits RAM Memória
8bits EEprom
8bits
1023 4F - CF 63
Organização das memórias.
00 - End indireto 80 - End indireto
01 - Tmer 0 81 – Option_reg
02 - PCL 82 - PCL
03 - Status 83 - Status
04 - FSR 44 - FSR
05 - Port_A 85 - Tris_A
06 - Port_B 86 - Tris_B
07 - ----- 87 - -----
08 - EEdata 88 – EEcon1
09 - EEADR 89 – EEcon2
0A - PCLATH 8A - PCLATH
0B – Intcon 8B – Intcon
Banco 0 Banco 1
0C Memória 8C Memória

RAM uso Geral RAM uso Geral


Banco 0 acesso junto ao
Banco 0

4F Total 68 Bytes CF Total 68 Bytes


Registros de funções
Especiais.
• TMR0
• O Timer0 é um módulo contador de 8 bits
conta de 0 a 255, que pode iniciar a
contagem em qualquer nº desde que este
seja inserido via programa na posição de
memória 01 do banco 0.
• Ele pode ser configurado para trabalhar
com clock interno ou externo.
• E o seu clock pode ser subdividido em até
1-256 através do prescaler.
Registros de funções
Especiais.
• OPTION_REG
• É usado para configurar os registradores
internos associados ao Tmr0, definindo o
tipo de clock, o nº de divisões do clock,
etc.
PCL
• É o contador do programa, a cada
instrução ele é incrementado a cada
instrução ou é carregado com o novo
endereço quando a instrução envolve
algum salto.
Registros de funções
Especiais.
• STATUS
• Este registrador permite selecionar
diretamente os bancos de memória, indica
se houve estouro do contador de proteção
Walt dog e as condições associadas ao
resultado das operações lógicas e
aritméticas.
FSR
• FSR é um registrador para auxiliar o
endereçamento indireto pelo registrador
INDF (que não é um endereço físico)
Registros de funções
Especiais.
• PORTA e TRISA.
• PORT_A é um registrador com 5-bits que
podem ser acessados pelos pinos
externos em modo bidirecional,
dependendo dos bits escritos no
registrador interno Tris_A.
• Quando um bit de Tris_A (= 1) o bit
corespondente no port_A será
configurado como entrada.
• Quando um bit de Tris_A (= 0) o bit
corespondente no port_A será
configurado como saída.
Registros de funções
Especiais.
• PORTA e TRISA.
• No port_A o pino RA4 é multiplxado com o
registrador de módulo do clock do Timer0
clock RA4/T0CKI.
• PORT_B- TRIS_B
• O funcionamento do Port_B e o Tris_B é
idêntico ao Port_A e ao Tris_Ais porém p
port_B possui 8-bits bi-direcionais.
Registros de funções
Especiais.
• PORT_B- TRIS_B
• Um bit de controle RBPU# (OPTION
<7>) pode ligar os pull-ups que são
automaticamente desligados
quando os pinos são configurados
como saídas.
• Os pull-ups também são
desabilitados no Power-on Reset.
Registros de funções
Especiais.
• PORT_B- TRIS_B
• Quatro pinos do PORTB, RB7:RB4
tem uma característica de
interrupção na mudança de estado.
Apenas os pinos configurados com
entrada podem causar esta
interrupçaõ.
• Os pinos de entrada (RB7:RB4) são
comparados com o valor antigo
armazenado no latch, na última
leitura do PORTB.
Registros de funções
Especiais.
Registradores da EEprom
EEdata – registro de dados para
escrita ou para leitura na EEprom.
EEcon1 – registro controle de
escrita e leitura.
• Unimplemented: Bits 7-6-5 Read as '0'
• EEIF: bit 4 EEPROM Bit de flag operação de escrita
• 1 = A operação de escrita está completa
• 0 = A operação de escrita não está completa
Registros de funções
Especiais.
Registradores da EEprom
EEcon1 – registro controle de
escrita e leitura.
• WRERR: Bit 3 flag de erro da EEprom
• 1 = quando a operação de escrita é terminada de
forma prematura pelo MCLR ou pelo reset do WDT
• 0 = a operação de escrita completou normalmente.
• WREN: bit 2 EEPROM habilita a escrita
• 1 = abilita o ciclo de escrita.
• 0 = inibe a ecriuta na Eeprom.
Registros de funções
Especiais.
Registradores da EEprom
EEcon1 – registro controle de
escrita e leitura.
• WR: Bit 1 Bit de contrle da escrita.
• 1 = inicia um ciclo de escrita. Este bit será zerado
pelo hardware somente quando a escrita for
completada ele apenas pode ser setado pelo
software.
• 0 = quando o ciclo de escrita da EEprom esta
completo
• RD: bit 0 controle de leitura
• 1 = inicia a leitura da EEprom este pino é zerado
pelo hardware quando a leitura da EEprom esta
completa.
• 0 = não inicia a leitura da EEprom
Registros de funções
Especiais.
Registradores da EEprom
EEcon2 – registro de controle2
• Para iniciar a operação de escrita é necessário
escrever neste registrador a seguinte sequencia de
dados 55H e deposis AAH
EEADR – registro localização de
endereço na memória Eeprom 00 –
3F.
Registros de funções
Especiais.
Leitura da EEprom
Para ler um dado na memória EEprom é
necessário escrever a posição da
memória no registrador EEADR (end-09H)
• Passar para o banco 1 de memória, setar o
bit 0 do registro EEcon1 (end-89H)
habilitando a leitura
• Retornar ao banco 0 da memória e mover
o dado do registro EEdata (end-08H) para
a Work.
Registros De Funções
Especiais.
Escrita Na EEprom
• Para escrever um dado na memória
EEprom é necessário escrever a
localização da memória no registrador
EEADR (end-09H)
• Escrever o dado a ser gravado na
memória no registro EEdata (end-08H)
• Ativar o bit2 do registrador EEcon1
• .
Registros De Funções
Especiais.
Escrita Na EEprom
• Setar o bit 1 do EEcon1 (controle de
escrita)
• Habilitar as interrupções no intcon
GIE.
• Chamar a rotina de tempo para
escrita
Registros De Funções
Especiais.
• PCLATH
• O contador de programa do PIC
16F84A possui 13 pinos, porém o PC
(contador de programa é apenas de
8bits então para acessar os
endereços acima de 255 utiliza-se
outro registrador que formará dos
bits 8 ao 12.
Registros De Funções
Especiais.
• INTCON
• O INTCON é um registrador que pode
serescrito ou lido, e serve para habilitar e
desabilitar vários tipos de interrupção bit
7.
• GIE : BIT7 desabilita todas as interrupções
• 1 = Permite habilitar todas as interrupções
• 0 = Desabilita todas interrupçõs
• EEIE: BIT6 habilita ou desabilita a escrita na EEprom
• 1 = habilita a interrupção de escrita na EEprom
• 0 = Desabilita a interrupção de escrita na EEprom
Registros De Funções
Especiais.
• INTCON
• T0IE: BIT5 Habilita ou desabilita interrupção de estrouro
de contagem do TMR0.
• 1 = Habilita a interrupção do TMR0.
• 0 = Habilita a interrupção do TMR0.
• INTE:BIT4 habilita ou desabilita a interrupção externa
RB0/INT.
• 1 = Habilita a interrupção externa RB0/INT.
• 0 = Desabilita a interrupção externa RB0/INT.
• RBIE:BIT3 RB Port Change Interrupt Enable bit
• 1 = Enables the RB port change interrupt
• 0 = Disables the RB port change interrupt
Registros De Funções
Especiais.
• INTCON
• bit 2 T0IF: Flag de estouro de contagem do TMR0.
• 1 = Houve um estouro de contagem do TMR0
– Deve ser zerado pelo software.
• 0 = Não houve estouro de contagem do TMR0
• INTF:BIT1 Flag de interrupção externa RB0/INT.
• 1 = Ocorreu uma interrupção externa em RB0/INT
– Deve ser zerado pelo software.
• 0 = Não ocorreu interrupção externa em RB0/INT
• RBIF:BIT0 RB Port Change Interrupt Flag bit
• 1 = At least one of the RB7:RB4 pins changed state
(must be cleared in software)
• 0 = None of the RB7:RB4 pins have changed state

Você também pode gostar