Académique Documents
Professionnel Documents
Culture Documents
MICROCONTROLADORES PIC
GRA-Ba :: Grupo de Robotica Aplicada da Bahia
www.roboticaaplicada.zip.net
Professores
Victory Fernandes
Antonio Miranda Neto
1
10/30/2007
M ICRONTROLADORES X
M ICROPROCESSADORES RISC X CISC
¢ Microcontroladores são “computadores” em um ¢ CISC – Complex Instruction Set Computer
único chip! ¢ RISC – Reduced Instruction Set Computer
— Possuem internamente unidade lógica e aritmética, — Número reduzido de instruções (35 por exemplo)
memória de programa, memória de dados, portas de — Instruções executadas em 1 ciclo de máquina
entrada e saída serial e paralela, timers, contadores,
PWM, conversores analógicos e digitais etc.
¢O PIC é RISC!
PIC16F628A
¢ Foco do curso é para o PIC16F628A
2
10/30/2007
PIC16F628A
3
10/30/2007
MEMÓRIA DE PROGRAMA -
PILHAS (S TACK) - CONTINUAÇÃO CONTINUAÇÃO
¢O tamanho da pilha determina a quantidade de ¢A memória de programa do PIC16F628A:
rotinas que podem ser chamadas ao mesmo — Tipo: 14 bits
tempo; — Tamanho: 2048 palavras
4
10/30/2007
MEMÓRIA DE DADOS -
CONTINUAÇÃO
¢O PIC16F628A possui 4 bancos de memória para
os registradores SFRs (Special Function
Registers) e para a memória de variáveis do
sistema;
REGISTRADORES ESPECIAIS -
REGISTRADORES ESPECIAIS CONTINUAÇÃO
¢ Encontram-setodos os registradores especiais, ¢ Osregistradores podem ser escritos/lidos tanto
denominados de SFRs; pelo usuário quanto pelo hardware;
¢ Sãoutilizados pelo PIC para execução do ¢ Sempre são armazenados na parte baixa da
programa e processamento da ULA (Unidade memória (início dos endereços) e às vezes podem
Lógica Aritmética); estar espalhados em mais de um banco de
memória.
¢ Registradores ocupam espaço na RAM e podem
ser acessados da mesma maneira que as
variáveis do sistema, mudando somente o
endereço de acesso;
¢ Seutamanho varia de acordo com o PIC e pode ¢ EEPROM é uma memória não volátil que
ocupar mais de um banco. consegue manter as informações mesmo sem
alimentação;
5
10/30/2007
6
10/30/2007
¢ Interrupções
— Timers
— Externa
— Mudança de Estado
— Fim de Escrita na EEPROM
— Comparador
— USART
— CCP
¢ Tipos de clock
— Interno
¢ 4MHz e 37kHz
— Externo
¢ Pode variar de 4Mhz a 20MHz
7
10/30/2007
OSCILADORES EXTERNOS RC
¢ RC
¢ Ressoador ou Ressonador
¢ Cristal
RESSONADOR CRISTAL
8
10/30/2007
GERAIS 8051
¢ Status
— Relacionado a operações aritméticas, indica estouros
(C-Carry e DC-Digit Carry)
¢ PCON
— Configuração da frequência do oscilador interno
37KHz ou 4MHz
GERAIS GERAIS
¢ OPTION ¢ Configuram e identificam todas as interrupções
— Habilitação de Pull-ups do PORTB do PIC
— Configuração de Pre-scaler ¢ INTCON
— Configuração do TMR0 — Interrupções principais: Timer0, Interrupção
— Seleção de borda para interrupção externa Externa, Interrupção por mudança de estado, Chave
geral de interrupções (GIE) e Chave geral para
Interrupção de periféricos
¢ Programas se referenciam a este registrador
¢ PIR1, PIE1
como OPTION_REG pois PICs antigos tem
— Interrupção de periféricos: EEPROM, Comparadores,
instrução chamada OPTION USART, CCP, Timer1 e Timer2
9
10/30/2007
GERAIS PORTAS
¢ PCL, PCLATH ¢ Bitsdestes registradores configuram pinos da
— 8 bits menos significativos do PC (Program Counter) porta como entrada ou saída
que indica próxima instrução do programa a ser — 1 = Entrada e 0 = Saída
executada
¢ TRISA
— Configura PORTA
¢ TRISB
— Configura PORTB
PORTAS CONTADORES/TIMERS
¢ Dependendo da configuração do TRIS podemos ¢ TMR0
ler e escrever nas portas usando estes — Timer0: Contador de 8 Bits com possibilidade
incremento automático pelo clock da máquina ou por
registradores
sinal externo. Estouro gera interrupção
¢ TMR1
¢ PORTA — Timer1: Contador de 16 Bits
¢ TMR1H, TMR1L
— Leitura/Escrita na porta A
— T1CON: Configuração do Timer1
¢ PORTB
¢ TMR2
— Leitura/Escrita na porta B
— Timer1: Contador de 8 Bits. Estouro gerado por
comparação com PR2
— T2CON: Configuração do Timer2
EEPROM EEPROM
¢ EEADR ¢ EECON1
— Especifica endereço para escrita/leitura da EEPROM — Responsável por operações de escrita e leitura da
¢ EEDATA EEPROM e detecção de erro
— Nas operações de gravação armazena dado a ser ¢ EECON2
gravado na EEPROM no endereço indicado por — Registrador “virtual” (não está implementado na
EEADR memória) usado por segurança somente durante
— Nas operações de leitura armazena dado lido da inicialização do ciclo de escrita da EEPROM
EEPROM no endereço indicado por EEADR
10
10/30/2007
¢ TXREG, RCREG
— Buffers de transmissão e recepção
11
10/30/2007
DECISÕES DECISÕES
¢O PIC disponibiliza algumas instruções capazes ¢ BTFSC PORTA,1
de executar testes e tomar decisões. Essas ¢ LINHA1
instruções testam se determinado bit de um
registrador está setado(1) ou não(0). ¢ LINHA2
— btfss f,b ;Testa o bit (b) do registrador (f) e pula a ¢ BTFSS PORTA,1
próxima linha se a resposta for 1 ¢ LINHA1
— btfsc f,b ;Testa o bit (b) do registrador (f) e pula a
próxima linha se a resposta for 0 ¢ LINHA2
DECISÕES DECISÕES
¢ BTFSC PORTA,1 ¢ #DEFINE CHAVE, PORTA,1
¢ LINHA1 ;Passa por esta linha se f,b=1
¢ LINHA2 ;Passa por esta linha se f,b=0 ¢ BTFSC CHAVE
¢ LINHA1 ;Passa por esta linha se f,b=1
¢ BTFSS PORTA,1 ¢ LINHA2 ;Passa por esta linha se f,b=0
¢ LINHA1 ;Passa por esta linha se f,b=0
¢ LINHA2 ;Passa por esta linha se f,b=1 ¢ BTFSS CHAVE
¢ LINHA1 ;Passa por esta linha se f,b=0
¢ LINHA2 ;Passa por esta linha se f,b=1
12
10/30/2007
ROTINA DE DESVIO
#DEFINE CHAVE PORTA,1 MAIN
#DEFINE LED PORTA,0 BTFSS CHAVE ;Se Chave em estado lógico 1 (Não Acionada), pule 1 linha
BSF LED ;Chave em estado lógico 0 (Acionada), Seta o estado lógico do LED para 1 (Ligado)
MAIN BTFSC CHAVE ;Chave em estado lógico 1 (Não Acionada), Se Chave em estado lógico 0
(Acionada), pule 1 linha
BTFSS CHAVE
BCF LED ;Chave em estado lógico 1 (Não Acionada), Seta o estado lógico do LED para 0
BSF LED (Desligado)
¢ Bit a Bit
¢ Byte Completo
13
10/30/2007
INICIO
BANK1 ; Seta Banco 1 Ativo
(...)
BANK0 ; Seta Banco 0 Ativo
(...)
#INCLUDE<P16F628A.INC>
__CONFIG _WDT_OFF & _INTRC_OSC_NOCLKOUT &
TRABALHANDO COM PORTAS _MCLRE_OFF
14
10/30/2007
INICIO
CLRF PORTA
ADIÇÃO - ADDLW K
BANK1
MOVLW B'11111110'
MOVWF TRISA ¢ Flags Afetados: Z, DC e C
BANK0
¢ Exemplo:
MOVLW B'00000111'
MOVWF CMCON ADDLW 0x20
Soma 20h em W
MAIN
BTFSS CHAVE Guarda o valor em W
BSF LED
BTFSC CHAVE
BCF LED
GOTO MAIN
end
¢ Flags Afetados: Z, DC e C
¢ Exemplo 2:
Considere: INTCON = 7h e W=20h;
¢ Exemplo:
ADDWF INTCON, W
Considere: W = 01h;
W = 27h e INTCON=7h
SUBLW 0x20 (20h-01h)
Subtrai W de 20h
¢ OBS .:
Guarda 19h em W
Em ambos exemplos os flags foram zerados.
15
10/30/2007
16
10/30/2007
¢ Exemplo: ¢ Exemplo:
¢ Flags Afetados: Z
¢ Exemplo:
PORTA 01111111
W 10000000
Z será zerado indicando resultado não nulo
17