Vous êtes sur la page 1sur 24

5.

Conjunto de Instrues do MCU PIC


Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP

Conjunto de Instrues

5.1 Arquitetura interna


Ciclo de Busca e Execuo da Instruo

O clock externo internamente dividido por 4, gerando Q1, Q2, Q3 e Q4, cada instruo dividida nesses 4 ciclos. A busca e execuo so feitas em linha, de tal forma que a busca leva 1 ciclo de mquina e a execuo outro ciclo. Usando o pipeline, cada instruo realizada em um ciclo, pois na srie 16 do PIC, cada instruo seria realizada em 2 ciclos sem o pipeline. Existem MCUs PIC de 32-bits com clock de at 80MHz e pipeline de 5 estgios.

Conjunto de Instrues

5.1 Arquitetura interna


Registradores internos
Registrador W / ou registrador principal (Work): utilizado na troca de dados entre registradores f. Tambm usado como destino nas operaes realizadas pela ULA. importante destacar que no possvel trocar informaes entre os registradores f. Pilha (Stack): A pilha um local onde so armazenados os endereos de retorno nas instrues de salto ou desvio. A pilha dos PICs est localizada em uma memria separada da RAM e sua estrutura s permite acesso tipo LIFO.

PIC16F87XA
Conjunto de Instrues

5.1 Arquitetura interna


Registradores internos
PC (Program Counter): o responsvel pela sequncia da execuo do programa. O registrador PC aponta para a prxima instruo a ser executada. Nas instrues de salto, por exemplo, o PC alterado. Os 13 bits do PC so divididos em: PCL 8 bits menos significativos PCH 5 bits mais significativos Somente o PCL diretamente acessvel , o PCH no pode ser alterado atravs do PCLATH.

PIC16F87XA
Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Formato das instrues
Essa categoria possui 35 instrues com um formato em 14-bits. As instrues podem ser encontradas na tabela do datasheet. Ser mostrado como utilizar a tabela para utilizar as instrues do microcontrolador.

Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Formato das instrues
Os itens mais importantes so mneumnico e parmetros, mais a tabela tambm fornece outras informaes: Mneumnico: a representao textual (opcode) Parmetro: So as informaes manipuladas
f so os registradores SFR ou GPR; f significa nome com registro. d identifica o destino, entre W e f. Se d=0 W e se d=1 f, o padro d=1. b expressa um bit de 0 a 7. k indica um parmetro constante na manipulao.

Ciclos: O nmero de ciclos gastos na instruo; Importante para a temporizao do programa. Flags: Indica as flags aritmticas do registrador STATUS (C,DZ,Z).
Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Algumas definies
0xNN: Representao de um nmero em hexadecimal; Padro da Microchip. Nibbles : Metade de um byte (4 bits). Z (Bit zero) : Resultado da ltima operao da ULA.
1 se o resultado foi 0 0 se o resultado foi diferente de 0

DC (Digit carry/borrow) : Resultado da operao ADD provocou um estouro dos 4 bits menos significativos.
1 houve estouro 0 no houve estouro

Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Algumas definies
C (Carry/borrow) : A ltima operao ADD provocou um estouro na palavra de 8 bits.
1 houve estouro 0 no houve estouro

Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Exemplo de Instrues
ADDWF f, d Operandos: Flags: C, DZ, Z 0 f 127 1 ciclo d = 0 ou 1

Adio do contedo do registrador W ao contedo do registrador especificado por f. Operao: (W) + (f) (d)

Ex.: ADDWF INTCON, F Antes Depois W = 0x20, W = 0x20, INTCON = 0x07, C = x DC = x Z=x

INTCON = 0x27, C = 0 DC = 0 Z = 0

Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Exemplo de Instrues
ANDLW k Operandos: Flags: Z 0 k 255 1 ciclo

Realiza o AND bit a bit entre o contedo de W e uma constante. Operao: (W) AND (k) (W) Ex.: ANDLW 0x0F Antes Depois W = 0x95, W = 0x05, k = B00001111 k = B00001111 Z=x Z=0

Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Exemplo de Instrues
MOVLW k Operandos: Flags: Nenhuma 0 k 255 1 ciclo

Copia o valor da constante no registrador W. Operao: (k) (W)

Ex.: MOVLW 0x10 Antes Depois W = 0xNN, W = 0x10, k = B00010000 Z = x k = B00010000 Z = x

Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Exemplo de Instrues
MOVWF f Operandos: Flags: Nenhuma 0 f 127 1 ciclo

Copia o contedo de W no registrador f. Operao: (W) (f)

Ex.: MOVWF PORTA Antes Depois W = 0x50, W = 0x50, PORTA = 0xNN PORTA = 0x50 Z=x Z=x

Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Exemplo de Instrues
MOVF f, d Operandos: Flags: Z 0 f 127 1 ciclo d = 0 ou 1

Copia o contedo do registrador f no destino especificado. Operao: (f) (d)

Ex1.: MOVF TRISA, W Antes Depois W = 0xNN, W = 0x20, TRISA = 0x20 TRISA = 0x20 Z=x Z=0

Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Exemplo de Instrues
Ex2.: MOVF VAR1, d = 1 (default) Antes Depois W = 0x31, W = 0x31, VAR1 = 0x00 VAR1 = 0x00 Z=x Z=1

Obs.: Foi possvel verificar se o contedo de VAR1 era zero.

Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Exemplo de Instrues
CLRF f Operandos: Flags: Z 0 f 127 1 ciclo

Apaga o contedo de f. Operao: 00h (f) Z=1

Ex1.: CLRF INTCON Antes Depois W = 0xNN, W = 0xNN, INTCON = 0x11 Z = x INTCON = 0x00 Z = 1

Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Exemplo de Instrues
Ex2.: CLRF STATUS Registrador STATUS
7 R/W 6 R/W 5 R/W 4R 3R 2 R/W 1 R/W 0 R/W

IRP

RP1

RP0

TO

PD

DC

Antes Depois

0 0

1 0

0 0

1 1

1 1

0 1

1 1

0 0

Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Exemplo de Instrues
CLRW Operandos: Apaga o contedo de W Operao: Ex.: CLRW Antes Depois W = 0xNN, W = 0x00, Z=x Z=1 00h (W) Z=1 Flags: Z 1 ciclo

Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Exemplo de Instrues
BCF f, b Operandos: Flags: Nenhuma 0 f 127 1 ciclo 0b7

Apaga o bit indicado por b do registrador f. Operao: 0 (f <b>)

Ex.: BCF TRISB, 1 Antes Depois TRISB = B11111111 TRISB = B11111101

Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Exemplo de Instrues
BSF f, b Operandos: Flags: Nenhuma 0 f 127 1 ciclo 0b7

Seta o bit indicado por b do registrador f. Operao: 1 (f <b>)

Ex.: BSF STATUS, 6 Antes Depois STATUS = B00111000 STATUS = B01111000

Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Exemplo de Instrues
GOTO k Operandos: Flags: Nenhuma 0 k 2047 2 ciclo

Desvia o programa para um ponto especificado por k (endereo). Operao: k PC <10:0> PCLATCH <4:3> PC <12:11>

Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Exemplo de Instrues
CALL k Operandos: Flags: Nenhuma 0 k 2047 2 ciclo

Chama uma subrotina no endereo especificado por k. Operao: (PC) +1 TOS k PC <10:0> PCLATCH <4:3> PC <12:11>

Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Exemplo de Instrues
RETURN Operandos: Retorna para o prximo endereo. Operao: TOS PC Flags: Nenhuma 2 ciclo

Conjunto de Instrues

5.2 Conjunto de Instrues do MCU PIC Mid-range (14-bits)


Exemplo de Instrues
RETLW k Operandos: Flags: Nenhuma 0 k 255 2 ciclo

Retorna de uma subrotina e move uma constante para W. Operao: k (W) TOS PC

Conjunto de Instrues

5.3 Tabela do Datasheet

Conjunto de Instrues

Vous aimerez peut-être aussi