Buscar

Curso PIC

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 83 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 83 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 83 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 Saulo O. D. Luiz
Sistemas Microcontrolados
Período 2009.2
Aula 4
2 Saulo O. D. Luiz
Roteiro
Introdução ao microcontrolador PIC 
16F877
Arquitetura do PIC 16F877
Conjunto de instruções
Registradores de configuração
3 Saulo O. D. Luiz
Arquitetura do PIC 16F877
Palavra de instrução de 14 bits
35 instruções
Todas as instruções ocupam uma só 
palavra de instrução
Todas as instruções são executadas num 
único ciclo de máquina, exceto no caso de 
instruções de salto e de ramificação
4 Saulo O. D. Luiz
Arquitetura do PIC 16F877
8K x 14 bits de memória de programa 
flash;
368 x 8 bits de memória de dados RAM;
256 x 8 bits de memória de dados 
EEPROM;
Pilha implementada por hardware com 8 
níveis (até 8 chamadas de rotinas 
aninhadas) 
5 Portas de E/S;
5 Saulo O. D. Luiz
Arquitetura do PIC 16F877
14 fontes de interrupção (internas e 
externas);
Dois módulos de 
Captura/Comparação/PWM;
Conversor A/D de 10 bits com entradas 
multiplexadas;
Porta serial síncrona com SPI (master 
mode) e I2C (master/slave);
USART/SCI;
6 Saulo O. D. Luiz
Arquitetura do PIC 16F877
Porta paralela com 8 bits de
 Timer/Counter programável e um 
Watchdog Timer embutidos
Recursos de hardware para proteção de 
código, modo de operação com baixo 
consumo de energia (sleep), programação 
"in-circuit", alta corrente de saída para 
LEDs (25 mA), power-on-reset, power-up 
timer, etc
7 Saulo O. D. Luiz
Relógio / Ciclo de instrução
Dividido internamente em quatro fases, 
Q1, Q2, Q3 e Q4
8 Saulo O. D. Luiz
Relógio / Ciclo de instrução
Se a instrução provocar uma mudança no 
conteúdo do contador de programa (PC)...
9 Saulo O. D. Luiz
Organização da memória
Dois blocos de memória
Dados
EEPROM
RAM
Programa
Flash
10 Saulo O. D. Luiz
Memória de programa
Flash
8192 palavras de 14 bits
É possível reprogramar o 
microcontrolador várias vezes antes de 
obter a versão definitiva
11 Saulo O. D. Luiz
Memória de dados
EEPROM
256 palavras de 8 bits
É acessada indiretamente através dos 
registradores EEADR e EEDATA
É usada para armazenar dados que 
precisam ser mantidos após o 
desligamento do sistema
12 Saulo O. D. Luiz
Configuração básica para o PIC
13 Saulo O. D. Luiz
Operação com cristal
• Para cristal de 
20MHz, o tipo de osc 
é HS
• C1 e C2 podem ter 
valores na faixa
– 15-33pF
14 Saulo O. D. Luiz
Reset
15 Saulo O. D. Luiz
16 Saulo O. D. Luiz
Arquitetura
17 Saulo O. D. Luiz
Diagrama
de blocos
18 Saulo O. D. Luiz
Registrador CONFIG
• Está na posição 2007h da memória de 
programa
• A posição 2007h está além do espaço do 
programa do usuário, e só pode ser 
acessada durante a programação
• A palavra de configuração (quando 
apagada ou não programada) é 3FFFh
19 Saulo O. D. Luiz
Registrador CONFIG
• CP1:CP0: bits de proteção do programa 
na memória FLASH
– 11 = proteção desligada
– 10 = proteção em 1F00h a 1FFFh
– 01 = proteção em 1000h a 1FFFh
– 00 = proteção em 0000h a 1FFFh
20 Saulo O. D. Luiz
Registrador CONFIG
• DEBUG: modo de depuração in-circuit
– 1 = desabilitado. RB6 e RB7 são pinos 
de I/O de propósito geral
– 0 = habilitado. RB6 e RB7 são dedicados 
à depuração
21 Saulo O. D. Luiz
Registrador CONFIG
• WRT: habilitação de escrita na memória 
de programa FLASH
– 1 = a memória de programa desprotegida 
pode ser escrita pelo controle EECON
– 0 = a memória de programa desprotegida 
não pode ser escrita pelo controle 
EECON
22 Saulo O. D. Luiz
Registrador CONFIG
• CPD: proteção da memória de dados 
EE
– 1 = proteção desligada
– 0 = proteção do código na memória de 
dados EEPROM
23 Saulo O. D. Luiz
Registrador CONFIG
• LVP: habilitação de programação serial 
in-circuit em baixa tensão
– 1 = programação em baixa tensão está 
habilitada, e RB3/PGM tem a função 
PGM
– 0 = RB3 é uma I/O digital
24 Saulo O. D. Luiz
Registrador CONFIG
• BODEN: habilitação de reset brown-out
– 1 = BOR habilitado
– 0 = BOR desabilitado
25 Saulo O. D. Luiz
Registrador CONFIG
• PWRTE': habilitação do temporizador de 
power-up
– 1 = PWRT desabilitado
– 0 = PWRT habilitado
26 Saulo O. D. Luiz
Registrador CONFIG
• WDTE: habilitação do temporizador do 
watchdog
– 1 = WDT habilitado
– 0 = WDT desabilitado
27 Saulo O. D. Luiz
Registrador CONFIG
• FOSC1:FOSC0: bits de seleção do 
oscilador
– 11 = RC (resistor e capacitor)
– 10 = HS (cristal/ressonador de alta 
velocidade
– 01 = XT (cristal/ressonador)
– 00 = LP (cristal de baixa potência)
28 Saulo O. D. Luiz
Registrador CONFIG
• Exemplo em Assembly
__CONFIG _CP_OFF & _WDT_ON & 
_BODEN_ON & _PWRTE_ON & 
_RC_OSC & _WRT_ENABLE_ON & 
_LVP_ON & _DEBUG_OFF & 
_CPD_OFF 
29 Saulo O. D. Luiz
Registrador STATUS (estado)
 IRP: bit de seleção do banco (endereçamento 
indireto)
 1 = banco 2, 3 (100h-1FFh)
 0 = banco 0, 1 (00h-FFh)
RP1:RP0: bits de seleção do banco (endereçamento 
direto)
 00 = banco 0 (00h - 7Fh)
 01 = banco 1 (80h - FFh)
 10 = banco 2 (100h - 17Fh)
 11 = banco 3 (180h - 1FFh)
30 Saulo O. D. Luiz
Registrador STATUS (estado)
TO: bit de Time-out
 1 = Após power-up, a instrução CLRWDT, ou a instrução 
SLEEP
 0 = Um time-out do WDT ocorreu
PD: bit de Power-down
 1 = Após power-up ou por uma instrução CLRWDT
 0 = Pela execução da instrução SLEEP
31 Saulo O. D. Luiz
Registrador STATUS (estado)
Z: bit Zero
 1 = O resultado de uma operação foi zero
 0 = O resultado de uma operação foi diferente de zero
DC: bit de Digit carry/borrow (instruções ADDWF, 
ADDLW,SUBLW,SUBWF)
 1 = Um vai-um do quarto bit menos significativo
 0 = Nenhum vai-um do quarto bit menos significativo
C: bit de Carry/borrow (instruções ADDWF, 
ADDLW,SUBLW,SUBWF)
 1 = Um vai-um do bit mais significativo ocorreu
 0 = Nenhum vai-um do bit mais significativo ocorreu
32 Saulo O. D. Luiz
Memória RAM
Registradores de 
funções especiais 
(SFR)
Registradores de 
uso geral (GPR)
33 Saulo O. D. Luiz
Modos de endereçamento
Endereçamento
Direto
Indireto
34 Saulo O. D. Luiz
Endereçamento Direto
 
Seleção de Banco
Seleção de Registro
Registro
35 Saulo O. D. Luiz
Endereçamento Indireto
 
Registro FSR
Registro
Seleção de Banco
Seleção de Registro
36 Saulo O. D. Luiz
Endereçamento Indireto
Ex.1: copiar o conteúdo de W para posição de 
memória 120h
MOVLW 0x20 ;Inicializar apontador
BSF STATUS, IRP;
MOVWF FSR ;para posição de memória 0x120 na RAM
MOVLW 0x34 ;Novo conteúdo de W
MOVWF INDF ;que será movido para o endereço 0x120 apontado indiretamente
37 Saulo O. D. Luiz
MOVLW 0x20 ;Inicializar apontador
BCF STATUS, IRP;
MOVWF FSR ;para posição de memória 0x20 na RAM
MOVLW 0xFF ;Novo valor para W
VOLTA ADDLW 0x1 ;Incrementar W
MOVWF INDF ;que será movido para o endereço apontado indiretamente
INCF FSR,F ;Incrementar ponteiro
BTFSS FSR, 4;Se FSR passou de 2Fh, então pula o goto seguinte
GOTO VOLTA
Endereçamento Indireto
Ex.2: preencher posições de memória 20h-2Fh
38 Saulo O. D. Luiz
Endereçamento Indireto
Ex.3: limpar posições de memória 20h-2Fh
MOVLW 0x20 ;Inicializar apontador
BCF STATUS, IRP;
MOVWF FSR ;para posição de memória 0x20 na RAM
NEXT CLRF INDF ;Limpar registrador INDF
INCF FSR,F ;Incrementar ponteiro
BTFSS FSR, 4;Se FSR passou de 2Fh, então pula o goto seguinte
GOTO NEXT
39 Saulo O. D. Luiz
Comparação de endereçamentos direto 
e indireto
40 Saulo O. D. Luiz
Unidade Lógica e Aritmética (ULA)
8 bits de largura
Acumulador w (working register)41 Saulo O. D. Luiz
Unidade Lógica e Aritmética (ULA)
Operações aritméticas
Soma
Subtração (complemento de 2)
Operações lógicas
Rotate
And
Or
Xor
...
42 Saulo O. D. Luiz
Unidade Lógica e Aritmética (ULA)
As instruções com dois operandos envolvem
O acumulador w
Um registrador f, ou uma constante 
codificada na instrução
As operações aritméticas e lógicas atualizam os 
bits do registrador STATUS
Z (zero)
C (carry)
DC (digit carry)
43 Saulo O. D. Luiz
Unidade Lógica e Aritmética (ULA)
Um bit na instrução permite escolher se o 
resultado vai para
Acumulador w (bit d = 0)
Registrador f (bit d = 1)
44 Saulo O. D. Luiz
Instruções com o acumulador
MOVLW k ;Move uma constante k para W
Ex: MOVLW 0x06
45 Saulo O. D. Luiz
Instruções com o acumulador
Ex.1: MOVF f,W ;Move o conteúdo de f para W
Ex.2: BSF STATUS, RP0 ;
BCF STATUS, RP1 ;Seleciona banco 1
MOVF TRISA, W ;Move o conteúdo de TRISA para W
;Exemplo de endereçamento direto
46 Saulo O. D. Luiz
Instruções com o acumulador
MOVWF f ;Move o conteúdo de W para f
Ex.: BSF STATUS, RP0;
BCF STATUS, RP1; Seleciona banco 1
MOVLW 0x06 ;Move uma constante para W
MOVWF ADCON1 ;Move o conteúdo de W para ADCON1
47 Saulo O. D. Luiz
Instruções com o acumulador
CLRW ;Limpa o conteúdo de W
Ex.: MOVLW 0x06 ;Move uma constante para W
CLRW ;Limpa o acumulador
;Observar o bit Z de STATUS
48 Saulo O. D. Luiz
Operações aritméticas
ADDLW k ;Adiciona literal k a W
Ex.: MOVLW 0xFF ;Move uma constante para W
ADDLW 0x01 ;Adiciona literal a W
;Observar bits C, DC e Z do registrador STATUS
49 Saulo O. D. Luiz
Operações aritméticas
ADDWF f,d ;Adiciona W e f
Ex.: MOVLW 0xFF ;Move uma constante para W
BCF STATUS, RP0 ;
BSF STATUS, RP1 ;Seleciona banco 2
MOVWF 0x120 ;Move o conteúdo de W para 0x120
MOVLW 0x1 ;Move uma constante para W
ADDWF 0x120,F ;Adiciona W e f, colocando o resultado em f
;Observar bits C, DC e Z do registrador STATUS
50 Saulo O. D. Luiz
Operações aritméticas
SUBLW k ;Subtração k-W -> W
Ex.: MOVLW 0x02 ;Move uma constante para W
SUBLW 0x15 ;Subtrai W de literal
;Observar bits C, DC e Z do registrador STATUS
51 Saulo O. D. Luiz
Operações aritméticas
SUBWF f,d ;Subtração f-W -> d
Ex.: MOVLW 0x15 ;Move uma constante para W
BCF STATUS, RP0 ;
BSF STATUS, RP1 ;Seleciona banco 2
MOVWF 0x120 ;Move o conteúdo de W para 0x120
MOVLW 0x02 ;Move uma constante para W
SUBWF 0x120,F ;Subtrai W de f, colocando o resultado em f
;Observar bit C, DC e Z do registrador STATUS
52 Saulo O. D. Luiz
Operações lógicas
ANDLW k ;’E’ lógico entre k e W
Ex.: MOVLW 0xA3 ;Move uma constante para W
ANDLW 0xA3 ;And entre literal e W
;Observar bit Z do registrador STATUS
53 Saulo O. D. Luiz
Operações lógicas
ANDWF f,d ;’E’ lógico entre W e f
Ex.: MOVLW 0x0F ;Move uma constante para W
BCF STATUS, RP0 ;
BSF STATUS, RP1 ;Seleciona banco 2
MOVWF 0x120 ;Move o conteúdo de W para 0x120
MOVLW 0x34 ;Move uma constante para W
ANDWF 0x120,F ;W AND f, colocando o resultado em f
;Observar bit Z do registrador STATUS
54 Saulo O. D. Luiz
Operações lógicas
IORLW k ;’OU’ inclusivo entre k e W
Ex.: MOVLW 0x3F ;Move uma constante para W
IORLW 0x50 ;Ou inclusivo entre literal e W
;Observar bit Z do registrador STATUS
;0011 1111 = 0x3F= k
;0101 0000 = 0x50 = W
;0111 1111 = 0x7F = k ‘ou’ W
55 Saulo O. D. Luiz
IORWF f,d ; ;’OU’ inclusivo entre W e f
Ex.: MOVLW 0x3F ;Move uma constante para W
BCF STATUS, RP0 ;
BSF STATUS, RP1 ;Seleciona banco 2
MOVWF 0x120 ;Move o conteúdo de W para 0x120
MOVLW 0x50 ;Move uma constante para W
IORWF 0x120,F ;Adiciona W e f, colocando o resultado em f
;Observar bit Z do registrador STATUS
56 Saulo O. D. Luiz
Operações lógicas
XORLW k ;’OU’ exclusivo entre k e W
Ex.: MOVLW 0x3F ;Move uma constante para W
XORLW 0x50 ;Ou exclusivo entre literal e W
;Observar bit Z do registrador STATUS
;0011 1111 = 0x3F= k
;0101 0000 = 0x50 = W
;0110 1111 = 0x6F = k ‘xou’ W
57 Saulo O. D. Luiz
XORWF f,d ; ;’OU’ exclusivo entre W e f
Ex.: MOVLW 0x3F ;Move uma constante para W
BCF STATUS, RP0 ;
BSF STATUS, RP1 ;Seleciona banco 2
MOVWF 0x120 ;Move o conteúdo de W para 0x120
MOVLW 0x50 ;Move uma constante para W
XORWF 0x120,F ;Ou exclusivo de W e f, colocando o resultado em f
;Observar bit Z do registrador STATUS
58 Saulo O. D. Luiz
RLF f,d ;Rotacionar à esquerda através do carry
Ex.:
MOVLW 0x15 ;Move uma constante para W
BCF STATUS, RP0 ;
BSF STATUS, RP1 ;Seleciona banco 2
MOVWF 0x120 ;Move o conteúdo de W para 0x120
RLF 0x120,F ;Rotaciona F com o carry, colocando o resultado em f
;Observar bit C do registrador STATUS
Operações de 
deslocamento
59 Saulo O. D. Luiz
RRF f,d ;Rotacionar à direita através do carry
Ex.:
MOVLW 0x15 ;Move uma constante para W
BCF STATUS, RP0 ;
BSF STATUS, RP1 ;Seleciona banco 2
MOVWF 0x120 ;Move o conteúdo de W para 0x120
RRF 0x120,F ;Rotaciona F com o carry, colocando o resultado em f
;Observar bit C do registrador STATUS
Operações de 
deslocamento
60 Saulo O. D. Luiz
CLRF f ; Limpar o conteúdo do registrador f
Ex.:
MOVLW 0x15 ;Move uma constante para W
BCF STATUS,RP0 ;
BSF STATUS,RP1 ;Seleciona banco 2
MOVWF 0x120 ;Move o conteúdo de W para 0x120
CLRF 0x120 ;Limpa o registrador 0x120
Operações com registradores f e orientadas a byte
61 Saulo O. D. Luiz
COMF f,d ; Complementar o registrador f
Ex.: MOVLW 0x15 ;Move uma constante para W
BCF STATUS, RP0 ;
BSF STATUS, RP1 ;Seleciona banco 2
MOVWF 0x120 ;Move o conteúdo de W para 0x120
COMF 0x120,F ;Aplica o complemento de 2 ao registrador 0x120
;0001 0101 = 0x15
;1110 1010 = C1(0x15) = 0xEA
Operações com registradores f e orientadas a byte
62 Saulo O. D. Luiz
DECF f,d ; Decrementar o registrador f
Ex.:
MOVLW 0x15 ;Move uma constante para W
BCF STATUS, RP0 ;
BSF STATUS, RP1 ;Seleciona banco 2
MOVWF 0x120 ;Move o conteúdo de W para 0x120
DECF 0x120,F ;Decrementa o conteúdo do registrador 0x120
Operações com registradores f e orientadas a byte
63 Saulo O. D. Luiz
DECFSZ f,d ; Decrementar o registrador f, e 
saltar a próxima instrução se o resultado for 
zero
Operações com registradores f e orientadas a byte
64 Saulo O. D. Luiz
Ex.:
MOVLW 0x03 ;Move uma constante para W
BCF STATUS, RP0 ;
BSF STATUS, RP1 ;Seleciona banco 2
MOVWF 0x120 ;Move o conteúdo de W para 0x120
VOLTA DECFSZ 0x120,F ; Decrementa o conteúdo de 0x120 e salta a
 ;próxima instrução se o resultado for zero
GOTO VOLTA
Operações com registradores f e orientadas a byte
65 Saulo O. D. Luiz
INCF f ; Incrementar o registrador f
Ex.:
MOVLW 0x15 ;Move uma constante para W
BCF STATUS, RP0 ;
BSF STATUS, RP1 ;Seleciona banco 2
MOVWF 0x120 ;Move o conteúdo de W para 0x120
INCF 0x120,F ;Incrementa o conteúdo de 0x120
Operações com registradores f e orientadas a byte
66 Saulo O. D. Luiz
INCFSZ f ; Incrementar o registrador f, e saltar 
se o resultado for zero
Operações com registradores f e orientadas a byte
67 Saulo O. D. Luiz
Ex.:
MOVLW 0xFA ;Move uma constante para W
BCF STATUS, RP0 ;
BSF STATUS, RP1 ;Seleciona banco 2
MOVWF 0x120 ;Move o conteúdo de W para 0x120
VOLTA2 INCFSZ 0x120 ;Incrementa o conteúdo de 0x120 e salta a
;próxima instrução se o resultado for zero
GOTO VOLTA2
Operações com registradores f e orientadas a byte
68 Saulo O. D. Luiz
MOVF f,d ; Copiar o conteúdo de f para d
Ex.:
MOVLW 0x15 ;Move uma constante para W
BSF STATUS, RP0 ;
BSF STATUS, RP1 ;Seleciona banco 3
MOVWF 0x19D ;Move o conteúdo de W para 0x19D
INCF 0x19D ;Incrementa o conteúdo de 0x19D 
MOVF 0x19D,W ;Copia o conteúdo de 0x19D para W
Operações comregistradores f e orientadas a byte
69 Saulo O. D. Luiz
SWAPF f ; Troca os nibbles de f
Ex.:
MOVLW 0x15 ;Move uma constante para W
BCF STATUS, RP0 ;
BSF STATUS, RP1 ;Seleciona banco 2
MOVWF 0x120 ;Move o conteúdo de W para 0x120
SWAPF 0x120 ;Troca os nibbles de 0x120
Operações com registradores f e orientadas a byte
70 Saulo O. D. Luiz
BCF f,b ; torna ‘0’ o bit ‘b’ do registrador ‘f’
Ex.:
BCF 0x120, 0 ; torna ‘0’ o bit ‘0’ do registrador ‘0x120’
Operações com registradores f e orientadas a bit
71 Saulo O. D. Luiz
BSF f,b ; torna ‘1’ o bit ‘b’ do registrador ‘f’
Ex.:
BSF 0x120, 1 ; torna ‘1’ o bit ‘0’ do registrador ‘0x120’
Operações com registradores f e orientadas a bit
72 Saulo O. D. Luiz
BTFSS f,b ; testa o bit ‘b’ do registrador ‘f’, e 
salta se estiver setado i.e. igual a ‘1’
Operações com registradores f e orientadas a bit
73 Saulo O. D. Luiz
Ex.:
MOVLW 0x15 ;Move uma constante para W
BCF STATUS, RP0 ;
BSF STATUS, RP1 ;Seleciona banco 2
MOVWF 0x120 ;Move o conteúdo de W para 0x120
BCF STATUS, C ;Limpa o carry
VOLTA3 RLF 0x120,F ;duplica o conteúdo de 0x120 
BTFSS STATUS,C ;Se houve overflow...
;então salta o GOTO
GOTO VOLTA3
Operações com registradores f e orientadas a bit
74 Saulo O. D. Luiz
BTFSC f,b ; testa o bit ‘b’ do registrador ‘f’, e 
salta se estiver limpo i.e. igual a ‘0’
Operações com registradores f e orientadas a bit
75 Saulo O. D. Luiz
Ex.:
MOVLW 0x15 ;Move uma constante para W
BCF STATUS, RP0 ;
BSF STATUS, RP1 ;Seleciona banco 2
MOVWF 0x120 ;Move o conteúdo de W para 0x120
BCF STATUS, C ;Limpa o carry
VOLTA4 RRF 0x120,F ;divide o conteúdo de 0x120 
BCF STATUS, C ;Limpa o carry
BTFSC STATUS,Z ;Se o resultado da divisão é diferente de ‘0’,
;então salta o GOTO
GOTO VOLTA4
Operações com registradores f e orientadas a bit
76 Saulo O. D. Luiz
GOTO k; vai para o endereço k
Ex.:
Operações de controle
Esperar: GOTO Esperar
77 Saulo O. D. Luiz
NOP; nenhuma operação
Demais Operações
78 Saulo O. D. Luiz
SLEEP; modo de sono
Demais Operações
79 Saulo O. D. Luiz
Exercícios
1. Explique, através do ciclo de instrução do 
PIC, como o pipeline permite acelerar a 
execução de um programa.
2. Explique os modos de endereçamento 
direto e indireto.
3. Explique o papel de cada bit dos 
registradores de STATUS e OPTION
80 Saulo O. D. Luiz
Exercícios
4. Quais são os registradores que 
configuram a I/O do PIC?
1. Onde estão localizados os registradores 
de funções especiais na memória do 
PIC?
2. Qual a finalidade do registrador de 
trabalho e onde está localizado na 
arquitetura do PIC?
81 Saulo O. D. Luiz
Exercícios
1. Qual parte da memória do PIC é 
normalmente denominada ‘register file’?
2. Qual a finalidade do bit IRP do 
registrador STATUS?
3. Em que registrador está localizado o bit 
de carry?
4. O que são os registradores TRIS?
82 Saulo O. D. Luiz
Exercícios
1. Implementar uma progressão aritmética
2. Implementar duas progressões 
geométricas: uma com razão 2 e outra de 
razão 1/2
3. Implementar a transposta de uma matriz 
de um banco de memória para outro
83 Saulo O. D. Luiz
Bibliografia
Guia do Laboratório de Arquitetura de 
Sistemas Digitais do DEE/CEEI/UFCG. 
Disponível em: 
http://www.dee.ufcg.edu.br/~aco/Lab_Arq
uitetura/MODULO%207.doc
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40
	Slide 41
	Slide 42
	Slide 43
	Slide 44
	Slide 45
	Slide 46
	Slide 47
	Slide 48
	Slide 49
	Slide 50
	Slide 51
	Slide 52
	Slide 53
	Slide 54
	Slide 55
	Slide 56
	Slide 57
	Slide 58
	Slide 59
	Slide 60
	Slide 61
	Slide 62
	Slide 63
	Slide 64
	Slide 65
	Slide 66
	Slide 67
	Slide 68
	Slide 69
	Slide 70
	Slide 71
	Slide 72
	Slide 73
	Slide 74
	Slide 75
	Slide 76
	Slide 77
	Slide 78
	Slide 79
	Slide 80
	Slide 81
	Slide 82
	Slide 83

Continue navegando