Escolar Documentos
Profissional Documentos
Cultura Documentos
As instruções são compostas de dois campos: código de operação (OP. CODE) e operando. Os
primeiros bits de uma instrução representam o “OP. CODE” e os demais formam o operando, podendo
conter dados, endereço ou o “nome” de um registrador.
• Operando
Representa quais elementos serão “envolvidos” na instrução definida. Por exemplo, numa operação
de armazenamento de dados na memória, o operando é composto pelo dado que será armazenado e o
endereço da localidade de memória onde ele deve ser armazenado. No caso do PIC 16F628A, os
operandos de uma instrução podem ser do tipo REGISTRADOR, BIT DE UM REGISTRADOR ou DADO.
Existem algumas instruções que não possuem operandos, como veremos adiante.
1
Eletrônica Digital/Microcontroladores
S : Aparecendo como última letra do mnemônico, S significa que um determinado bit, dentro de um byte,
será “SETADO”, ou seja, levado a nível lógico “1”.
C : (Clear) Indica que um determinado bit, dentro de um byte, será “LIMPO”, ou seja, levado a nível lógico “0”.
Nas instruções de desvio, o “S” e “C” também são usados para indicar se um bit está em “1” ou “0”, respectivamente.
q Termos utilizados para indicar a tarefa que será realizada por uma instrução:
ADD (soma de 2 números); AND (operação lógica “E” entre 2 números); IOR (operação lógica “OU” entre 2
números); CLR (limpar); COM (complemento – “inversão bit a bit”); DEC (decremento de um número);
INC (incremento de um número); MOV (mover uma informação para algum lugar); RL (rotacionar um bit para
a esquerda); RR (rotacionar um bit para a direita); SUB (subtração entre 2 números); SWAP (inverte os
nibbles alto e baixo de um byte à 1 nibble = 4 bits); XOR (operação lógica “OU EXCLUSIVO” entre 2 números).
2
Eletrônica Digital/Microcontroladores
Legenda
7.2. Instruções do PIC 16F628A f : registrador b: bit
d : destino k: constante
(“0”ðW; “1” ð registrador f)
Instruções (continuação)
OP. CODE Status
Instrução Descrição Exemplo
(14 bits) afetado
Operações com bits
BCF f,b Reseta (clear) o bit b do registrador f 01 00bb bfff ffff BCF REG1,7
BSF f,b Seta o bit b do registrador f 01 01bb bfff ffff BSF REG1,5
BTFSC f,b Testa o bit b do registrador f e salta a próxima linha se ele for "0" 01 10bb bfff ffff BTFSC REG1,4
BTFSS f,b Testa o bit b do registrador f e salta a próxima linha se ele for "1" 01 11bb bfff ffff BTFSS REG1,3
Operações com literais (valores numéricos)
ADDLW k W ß (W+k) 11 111x kkkk kkkk C, CD, Z ADDLW 0x15
ANDLW k W ß (W AND k) 11 1001 kkkk kkkk Z ANDLW 0x5F
IORLW k W ß (W OR k) 11 1000 kkkk kkkk Z IORLW 0X3D
MOVLW k Wßk 11 00xx kkkk kkkk MOVLW 0X5A
SUBLW k W ß (k-W) 11 110x kkkk kkkk C, CD, Z SUBLW 0X02
XORLW k W ß (W XOR k) 11 1010 kkkk kkkk Z XORLW 0XAF
Operações de Controle
NOP "No operation" (não faz nada) 00 0000 0xx0 0000 NOP
CALL k Chamada à sub-rotina 10 0kkk kkkk kkkk CALL ROTINA1
CLRWDT Limpa WDT (watch-dog) 00 0000 0110 0100 TO, PD CLRWDT
GOTO k Desvio para endereço 10 1kkk kkkk kkkk GOTO INICIO
RETFIE Retorno de interrupção 00 0000 0000 1001 RETFIE
RETLW k Retorno de sub-rotina com k armazenado em W 11 01kk kkkk kkkk RETLW 0X25
RETURN Retorno de sub-rotina 00 0000 0000 1000 RETURN
SLEEP Coloca o PIC em modo de economia de energia (sleep) 00 0000 0110 0011 TO, PD SLEEP 4