Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

UNIVERSIDADE PAULISTA – UNIP 
 
 NOTA DE AULA MICROPROCESSADOS – II Prof. Ms. Marco Antonio Baptista. Pg. 1 
 
SISTEMAS MICROPROCESSADOS - SOFTWARE 
NOTA DE AULA 
Instruções de Movimentação: 
O PIC possui apenas um registrador conhecido por “W” (Work). Todas as 
instruções podem ser executadas através de valores de W juntamente com o 
conteúdo de uma posição de memória RAM, que aqui é chamado de “f” (file). 
 
Quando se quer se referir a uma constante em uma instrução, este é 
representado por “L” (Literal) 
Quando se quer indicar que um número é hexadecimal, coloca-se “0x” a frente 
do numero. Exemplo o número 7A em hexa é representado por 0x7A 
Abaixo será apresentado as instruções básicas do PIC 
 
MOVLW K Mover literal K para registrador W 
 
onde: K= é um número de 0 a FF 
 
EXEMPLO: Se desejarmos carregar o numero 4F no registrador W: 
 
 
 
 
MOVF f,d Mover (copiar) valor de uma posição de memória “f” para um 
destino , conforme valor de “d”: 
• Caso “d” = 0, move “f” para W. 
• Caso “d” = 1, move “f” para si mesmo “f”.(???????) 
onde: “f”= Endereço de memória de 00 a 7Fh 
EXEMPLO: Se copiar o valor guardado no endereço 2C para o W, utilizaríamos 
a seguinte instrução: 
 
 
 
 
w 13 
MOVLW 0x4F 
MOVF 0x2C,0 
End. Valor 
2A 
2B 
2C 13 
2D 
 
End. Valor 
w 4F 
 
4F 
UNIVERSIDADE PAULISTA – UNIP 
 
 NOTA DE AULA MICROPROCESSADOS – II Prof. Ms. Marco Antonio Baptista. Pg. 2 
 
MOVWF f Mover (copiar) valor guardado em “W” para a posição de 
memória “f” 
EXEMPLO: Se copiar o valor guardado no endereço W para o endereço 18, 
utilizaríamos a seguinte instrução: 
 
 
 
 
CLRW : Move valor zero para registrador “W”, 
EXEMPLO: Caso se queira zerar o registrador W, utilizaríamos a seguinte 
instrução: 
 
 
 
 
CLRF f : Move valor zero para registrador “f”, 
EXEMPLO: Caso se queira zerar o endereço 32, utilizaríamos a seguinte 
instrução: 
 
 
 
 
 
 
 
 
 
 
 
 
MOVWF 0x18 
End. Valor 
16 
17 
18 85 
19 
 
End. Valor 
w 85 
 
CLRW 
 Valor 
00 
 
End. Valor 
w 00 
 
CLRF 0x32 
 Valor 
00 
 
End. Valor 
30 nn 
31 nn 
32 00 
33 nn 
 
UNIVERSIDADE PAULISTA – UNIP 
 
 NOTA DE AULA MICROPROCESSADOS – II Prof. Ms. Marco Antonio Baptista. Pg. 3 
 
Instruções de Bits 
 
 
 
Supondo que tenhamos a situação acima onde temos ligado em um PIC com 3 
botões na porta A, um motor no bit 1 da porta B e 1 led no bit 2 da porta B, que 
utilizaremos para exemplificar a aplicação das instruções abaixo. 
BSF f,b “Setar” (Forçar 1) no bit “b” do endereço “f” 
onde: f= Endereço de memória de 00 a 7Fh 
 b= Bit de 0 a 7 
Exemplo: Supondo queira ligar o motor conectado ao bit 1 da porta B do 
esquema acima, sabendo-se que o endereço de memória da porta B é 06, 
utilizaria no programa a seguinte instrução. 
 
 
 
BCF f,b “Clear” (limpa) o bit “b” do endereço “f” 
onde: f= Endereço de memória de 00 a 7Fh 
 b= Bit de 0 a 7 
 
BSF 0x06 , 1 
UNIVERSIDADE PAULISTA – UNIP 
 
 NOTA DE AULA MICROPROCESSADOS – II Prof. Ms. Marco Antonio Baptista. Pg. 4 
 
Exemplo: Supondo queira desligar o motor conectado ao bit 1 da porta B do 
esquema acima, sabendo-se que o endereço de memória da porta B é 06, 
utilizaria no programa a seguinte instrução: 
 
 
 
COMF “f”,”d” Faz o complemento (inverte os bits) do conteúdo de um 
endereço “f” colocando resultado em: 
• Caso “d” = 0, resultado vai para W. 
• Caso “d” = 1, resultado decrementado volta para “f”. 
onde: “f”= Endereço de memória de 00 a 7Fh 
 “d”= 0 ou 1: onde será armazenado o resultado. 
EXEMPLO: Supondo que queiramos inverter os bits do valor guardado 
no endereço 31, guardando o resultado em W utilizaríamos a seguinte 
instrução: 
 
 
 
 
 
SWAPF “f”,”d” Inverte os nibles do conteúdo de um endereço “f” 
colocando resultado em: 
• Caso “d” = 0, resultado vai para W. 
• Caso “d” = 1, resultado decrementado volta para “f”. 
onde: “f”= Endereço de memória de 00 a 7Fh 
 “d”= 0 ou 1: onde será armazenado o resultado. 
EXEMPLO: Supondo que queiramos inverter os nibles do valor 
guardado no endereço 41, guardando o resultado em W utilizaríamos a 
seguinte instrução: 
 
 
 
 
 
BCF 0x06 , 1 
SWAPF 0x41,0 
 End. Valor 
41 17 
 
End. Valor 
W 71 
 
COMF 0x31,0 
 End. Valor 
31 55 
 
End. Valor 
W AA 
 
UNIVERSIDADE PAULISTA – UNIP 
 
 NOTA DE AULA MICROPROCESSADOS – II Prof. Ms. Marco Antonio Baptista. Pg. 5 
 
Instruções de Desvios e Decisões 
BTFSC f,b Testa bit “b” do endereço “f” e salta a próxima instrução se o bit 
“b” estiver em ”ZERO”. 
onde: f= Endereço de memória de 00 a 7Fh 
 b= Bit de 0 a 7 
 
Exemplo: Usando o circuito-exemplo acima, imagine que se queira saber 
sobre o botão ligado ao bit 2 da porta A e, caso esteja ligado, o programa 
deverá ligar o motor ligado ao bit 1 da porta B, sabendo-se que o endereço de 
memória da porta A é 05 e da porta B é 06, utilizaria no programa a seguinte 
instrução. 
 
COMO É REPRESENTADO NO FLUXOGRAMA 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
BIT=1 
COMO É REPRESENTADO NO PROGRAMA: 
. 
 BTSFC 0x5,2 
 BSF 0x06 , 1 
CONTINUA: (Aqui o programa continua...) 
 MOVLW 0x15 
 
 
 
 
 etc. 
 
BIT=0 
BTFSC 0x05,2 
LIGAR 
MOTOR 
BSF 0x06 , 1 
CONTINUA O 
PROGRAMA 
NORMALMENTE 
CONTINUA 
UNIVERSIDADE PAULISTA – UNIP 
 
 NOTA DE AULA MICROPROCESSADOS – II Prof. Ms. Marco Antonio Baptista. Pg. 6 
 
BTFSS f,b Testa bit “b” do endereço “f” e salta a próxima instrução se o bit 
“b” estiver em ”UM”. 
onde: f= Endereço de memória de 00 a 7Fh 
 b= Bit de 0 a 7 
 
Exemplo: Usando o circuito-exemplo acima, imagine que queira-se saber o 
estado do botão ligado ao bit 2 da porta A e, caso esteja desligado, o 
programa deverá desligar um motor ligado ao bit 1 da porta B, sabendo-se que 
o endereço de memória da porta A é 05 e da porta B é 06, utilizaria no 
programa a seguinte instrução: 
 
COMO É REPRESENTADO NO FLUXOGRAMA 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
COMO É REPRESENTADO NO PROGRAMA: 
. 
 BTSFC 0x5,2 
 BCF 0x06 , 1 
CONTINUA:MOVLW 0x15 
 
 
 
 
 etc. 
 
BIT=1 
BTFSS 0x05,2 
 DESLIGA O MOTOR 
BCF 0x06 , 1 
CONTINUA O 
PROGRAMA 
NORMALMENTE 
BIT=0 
CONTINUA 
UNIVERSIDADE PAULISTA – UNIP 
 
 NOTA DE AULA MICROPROCESSADOS – II Prof. Ms. Marco Antonio Baptista. Pg. 7 
 
DECFSZ “f”,”d” Subtrai 1 do registro “f” saltando se o resultado for zero, 
colocando valor decrementado em: 
• Caso “d” = 0, resultado vai para W. 
• Caso “d” = 1, resultado decrementado volta para “f”. 
 
onde: “f”= Endereço de memória de 00 a 7Fh 
 “d”= 0 ou 1: onde será armazenado o resultado. 
 
Exemplo: Caso tenha um valor no endereço 0x30 de memória e este será 
decrementado até que chegue em zero. Caso seja zero, acenderá o led ligado 
ao bit 2 da porta B, sabendo-se que o endereço da porta B é 06, o programa 
ficaria: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ZERO 
DECFSZ 0x30 , 1 
NÃO ZERO 
CONTINUA 
CONTINUA O 
PROGRAMA 
NORMALMENTE 
GOTO REPETE 
REPETE 
LIGA O LED 
BCF 0x06 , 2 
COMO É REPRESENTADO NO PROGRAMA: 
. 
REPETE: DECFSZ 0X30 , 1 
 GOTO REPETE 
 BSF 0x6 , 2 
 
 
 
 
 etc. 
 
 
UNIVERSIDADE PAULISTA – UNIP 
 
 NOTA DE AULA MICROPROCESSADOS – II Prof. Ms. Marco Antonio Baptista. Pg. 8 
 
INCFSZ “f”,”d” Soma 1 ao registro “f” e salta se resultado for zero, 
colocando valor incrementado em: 
• Caso “d” = 0, resultado vai para W. 
• Caso“d” = 1, resultado decrementado volta para “f”. 
 
onde: “f”= Endereço de memória de 00 a 7Fh 
 “d”= 0 ou 1: onde será armazenado o resultado. 
 
Exemplo: Caso tenha um valor no endereço 0x30 de memória e este será 
incrementado (somado 1) até que este passe de FF e volte a zero. Caso seja 
zero, acenderá o led ligado ao bit 2 da porta B, sabendo-se que o endereço da 
porta B é 06, o programa ficaria: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ZERO INCFSZ 0x30 , 1 
NÃO ZERO 
CONTINUA 
CONTINUA O 
PROGRAMA 
NORMALMENTE 
GOTO REPETE 
REPETE 
LIGA O LED 
BCF 0x06 , 2 
COMO É REPRESENTADO NO PROGRAMA: 
. 
REPETE: INCFSZ 0X30 , 1 
 GOTO REPETE 
 BSF 0x6 , 2 
 
 
 
 
 etc. 
 
 
UNIVERSIDADE PAULISTA – UNIP 
 
 NOTA DE AULA MICROPROCESSADOS – II Prof. Ms. Marco Antonio Baptista. Pg. 9 
 
 
GOTO K Desvia o programa para um endereço até de 0 a 2047 (dentro da 
memória de programa): 
onde: “K”= Endereço de memória de 00 a 2047 
Exemplo: Caso queira-se desviar o programa para um endereço diferente de 
onde esteja, usa-se GOTO e o endereço de destino neste caso, o programa 
ficaria: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
COMO É REPRESENTADO NO PROGRAMA: 
. 
 
 GOTO 230 
 BSF 0x6 , 2 
 
 
 
 
.END 230: ADDLW 0x18 
 
 
S
A
L
T
A
 E
S
T
A
 P
A
R
T
E
 
SALTA GOTO 0x230 
END 230 
CONTINUA O 
PROGRAMA 
NORMALMENTE 
O PROGRAMA PARA 
AQUI 
END ATUAL: 120 
S
A
L
T
A
 E
S
T
A
 P
A
R
T
E
 
UNIVERSIDADE PAULISTA – UNIP 
 
 NOTA DE AULA MICROPROCESSADOS – II Prof. Ms. Marco Antonio Baptista. Pg. 10 
 
CALL K Chama subrotina do programa em endereço até de 0 a 2047 (dentro 
da memória de programa): 
onde: “K”= Endereço de memória de 00 a 2047 
 
Exemplo: Caso queira-se desviar o programa para um endereço diferente de 
onde esteja, usa-se CALL e o endereço de destino neste caso, o programa 
ficaria: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
COMO É REPRESENTADO NO PROGRAMA: 
. 
 
 CALL 350 
 BSF 0x6 , 2 
 
 
 
 
.END 350: ADDLW 0x18 
 RETURN 
 
SALTA 
CALL 0x350 
END 350 
EXECUTA A 
SUBROTINA 
O PROGRAMA 
CONTINUA AQUI APÓS 
EXECUTAR SUBROTINA 
END ATUAL: 120 
S
A
L
T
A
 E
S
T
A
 P
A
R
T
E
 
RETURN 
UNIVERSIDADE PAULISTA – UNIP 
 
 NOTA DE AULA MICROPROCESSADOS – II Prof. Ms. Marco Antonio Baptista. Pg. 11 
 
Instruções de Retorno 
 
RETURN Retorna de uma subrotina chamada por uma instrução CALL 
 
RETLW K Retorna de uma subrotina chamada por uma instrução CALL com 
um valor “k” no registrador W 
onde: “K”= Valor de 00 a FFh 
 
RETFIE Retorna de uma subrotina chamada por uma INTERRUPÇÃO 
 
Instruções de Controle 
 
NOP (No Operation) Instrução nula, não executa nada. 
SLEEP Coloca processador no modo de baixo consumo, até que receba um 
reset ou uma interrupçãp. 
CLRWDT Zera contador de Watch Dog. 
Instruções de Lógica 
ANDLW k Faz operação AND entre “W” e um valor constante “K” 
guardando resultado em “W” 
onde: “k”= Valor de 00 a FFh 
 
EXEMPLO: Supondo que W tenha 3F e deseja-se fazer operação AND 
com o valor 0x64, utilizaríamos a seguinte instrução: 
 
 
 
 
 
 
 
ANDWL 0x64 
End. Valor 
w 3F 
 
 Valor k 
64 
 
End. Valor 
w 24 
 
 AND 
UNIVERSIDADE PAULISTA – UNIP 
 
 NOTA DE AULA MICROPROCESSADOS – II Prof. Ms. Marco Antonio Baptista. Pg. 12 
 
ANDWF “f”,”d” Faz operação AND entre “W” e o conteúdo de um 
endereço “f” colocando resultado em: 
• Caso “d” = 0, resultado vai para W. 
• Caso “d” = 1, resultado decrementado volta para “f”. 
 
onde: “f”= Endereço de memória de 00 a 7Fh 
 “d”= 0 ou 1: onde será armazenado o resultado. 
 
EXEMPLO: Supondo que W tenha 3F e deseja-se fazer operação AND 
com o valor guardado no endereço 2F, guardando o resultado em W 
utilizaríamos a seguinte instrução: 
 
 
 
 
 
 
IORLW K Faz operação OR entre “W” e um valor K colocando resultado 
em W: 
onde: “K”= É um valor de 00 a FF 
 
EXEMPLO: Supondo que W tenha 3D e deseja-se fazer operação OR 
com o valor 44, guardando o resultado em W utilizaríamos a seguinte 
instrução: 
 
 
 
 
 
 
 
 
 
ANDWF 0x2F,0 
End. Valor 
W 3F 
 
 End. Valor 
2F D3 
 
End. Valor 
W 13 
 
 AND 
IORLW 0x44 
End. Valor 
W 3D 
 
 lor 
44 
 
End. Valor 
W 7D 
 
 OR 
UNIVERSIDADE PAULISTA – UNIP 
 
 NOTA DE AULA MICROPROCESSADOS – II Prof. Ms. Marco Antonio Baptista. Pg. 13 
 
IORWF “f”,”d” Faz operação OR entre “W” e o conteúdo de um endereço 
“f” colocando resultado em: 
• Caso “d” = 0, resultado vai para W. 
• Caso “d” = 1, resultado decrementado volta para “f”. 
onde: “f”= Endereço de memória de 00 a 7Fh 
 “d”= 0 ou 1: onde será armazenado o resultado. 
EXEMPLO: Supondo que W tenha 2E e deseja-se fazer operação OR 
com o valor guardado no endereço 42, guardando o resultado em W 
utilizaríamos a seguinte instrução: 
 
 
 
 
 
 
 
XORLW K Faz operação XOR (ou exclusivo) entre “W” e um valor K 
colocando resultado em W: 
onde: “K”= É um valor de 00 a FF 
 
EXEMPLO: Supondo que W tenha 3D e deseja-se fazer operação XOR 
com o valor 44, guardando o resultado em W utilizaríamos a seguinte 
instrução: 
 
 
 
 
 
 
 
 
 
 
IORWF 0x42,0 
End. Valor 
W 2E 
 
 End. Valor 
42 55 
 
End. Valor 
W 7F 
 
 OR 
XORLW 0x44 
End. Valor 
W 3D 
 
 lor 
44 
 
End. Valor 
W 79 
 
 XOR 
UNIVERSIDADE PAULISTA – UNIP 
 
 NOTA DE AULA MICROPROCESSADOS – II Prof. Ms. Marco Antonio Baptista. Pg. 14 
 
XORWF “f”,”d” Faz operação XOR entre “W” e o conteúdo de um 
endereço “f” colocando resultado em: 
• Caso “d” = 0, resultado vai para W. 
• Caso “d” = 1, resultado decrementado volta para “f”. 
onde: “f”= Endereço de memória de 00 a 7Fh 
 “d”= 0 ou 1: onde será armazenado o resultado. 
EXEMPLO: Supondo que W tenha 2E e deseja-se fazer operação XOR 
com o valor guardado no endereço 42, guardando o resultado em W 
utilizaríamos a seguinte instrução: 
 
 
 
 
 
Instruções de Rotação 
 
RLF “f”,”d” Rotaciona os bits para esquerda através do carry o conteúdo 
de um endereço “f” colocando resultado em: 
• Caso “d” = 0, resultado vai para W. 
• Caso “d” = 1, resultado decrementado volta para “f”. 
 
onde: “f”= Endereço de memória de 00 a 7Fh 
 “d”= 0 ou 1: onde será armazenado o resultado. 
 
EXEMPLO: Supondo que queiramos rotacionar o valor guardado no 
endereço 2A, guardando o resultado em W, supondo que carry tenha 
“1”, utilizaríamos a seguinte instrução: 
 
 
 
 
 
 
 
XORWF 0x42,0 
End. Valor 
W 2E 
 
 End. Valor 
42 55 
 
End. Valor 
W 7B 
 
 XOR 
 End. Valor 
2A 26 
 
0 0 1 0 0 1 1 0 
 
0 1 0 0 1 1 0 1 
RLF 0x2A,0 
End. Valor 
W 4D 
 
CY 
1 
 
0 
UNIVERSIDADE PAULISTA – UNIP 
 
 NOTA DE AULA MICROPROCESSADOS – II Prof. Ms. Marco Antonio Baptista. Pg. 15 
 
RRF “f”,”d” Rotaciona os bits para direita através do carry o conteúdo de 
um endereço “f” colocando resultado em: 
• Caso “d” = 0, resultado vai para W. 
• Caso “d” = 1, resultado decrementado volta para “f”. 
 
onde: “f”= Endereço de memória de 00 a 7Fh 
 “d”= 0 ou 1: onde será armazenado o resultado. 
 
EXEMPLO: Supondo que queiramos rotacionar o valor guardado no 
endereço 0C, guardando o resultado em W, supondo que carry tenha 
“0”, utilizaríamos a seguinte instrução: 
 
 
 
 
 
 
 
INSTRUÇÕES DE ARITMÉTICA 
ADDLW k Faz a soma entre “W” e um valor constante “K” guardando 
resultado em “W” 
onde: “k”= Valor de 00 a FFh 
EXEMPLO: Supondoque W tenha 3F e deseja-se fazer operação de 
SOMA com o valor 0x64, utilizaríamos a seguinte instrução: 
 
 
 
 
 
ADDWF “f”,”d” Faz a soma entre “W” e o conteúdo de um endereço “f” 
colocando resultado em: 
• Caso “d” = 0, resultado vai para W. 
• Caso “d” = 1, resultado decrementado volta para “f”. 
onde: “f”= Endereço de memória de 00 a 7Fh 
 End. Valor 
0C 4B 
 
0 1 0 0 1 0 1 1 
 
 
0 0 1 0 0 1 0 1 
 
RRF 0x0C,0 
End. Valor 
W 25 
 
CY 
0 
 
1 
ADDLW 0x64 
End. Valor 
w 3F 
 
 Valor k 
64 
 
End. Valor 
w A3 
 
 + 
UNIVERSIDADE PAULISTA – UNIP 
 
 NOTA DE AULA MICROPROCESSADOS – II Prof. Ms. Marco Antonio Baptista. Pg. 16 
 
 “d”= 0 ou 1: onde será armazenado o resultado. 
EXEMPLO: Supondo que W tenha 3F e deseja-se fazer operação AND 
com o valor guardado no endereço 2F, guardando o resultado em W 
utilizaríamos a seguinte instrução: 
 
 
 
 
 
SUBLW k Faz a subtração entre “W” e um valor constante “K” 
guardando resultado em “W” 
onde: “k”= Valor de 00 a FFh 
EXEMPLO: Supondo que W tenha 6F e deseja-se fazer operação de 
SUBTRAÇÃO com o valor 0x3A, utilizaríamos a seguinte instrução: 
 
 
 
 
 
SUBWF “f”,”d” Faz a soma entre “W” e o conteúdo de um endereço “f” 
colocando resultado em: 
• Caso “d” = 0, resultado vai para W. 
• Caso “d” = 1, resultado decrementado volta para “f”. 
onde: “f”= Endereço de memória de 00 a 7Fh 
 “d”= 0 ou 1: onde será armazenado o resultado. 
EXEMPLO: Supondo que W tenha 3F e deseja-se fazer operação SUBTRAÇÃO 
com o valor guardado no endereço 2F, guardando o resultado em W utilizaríamos a 
seguinte instrução: 
 
 
 
 
 
INCF “f”,”d” Incrementa (soma 1) o conteúdo de um endereço “f” 
colocando resultado em: 
ADDWF 0x2F,0 
End. Valor 
W 3F 
 
 End. Valor 
2F 1A 
 
End. Valor 
W 59 
 
 + 
SUBLW 0x3A 
End. Valor 
w 6F 
 
 Valor k 
3A 
 
End. Valor 
w 35 
 
 - 
SUBWF 0x2F,0 
End. Valor 
W 3F 
 
 End. Valor 
2F 1A 
 
End. Valor 
W 25 
 
 - 
UNIVERSIDADE PAULISTA – UNIP 
 
 NOTA DE AULA MICROPROCESSADOS – II Prof. Ms. Marco Antonio Baptista. Pg. 17 
 
• Caso “d” = 0, resultado vai para W. 
• Caso “d” = 1, resultado decrementado volta para “f”. 
onde: “f”= Endereço de memória de 00 a 7Fh 
 “d”= 0 ou 1: onde será armazenado o resultado. 
EXEMPLO: Supondo que queiramos incrementar o valor guardado no 
endereço 4D, guardando o resultado em W utilizaríamos a seguinte instrução: 
 
 
 
 
DECF “f”,”d” Decrementa (subtrai 1) o conteúdo de um endereço “f” 
colocando resultado em: 
• Caso “d” = 0, resultado vai para W. 
• Caso “d” = 1, resultado decrementado volta para “f”. 
onde: “f”= Endereço de memória de 00 a 7Fh 
 “d”= 0 ou 1: onde será armazenado o resultado. 
 
EXEMPLO: Supondo que queiramos decrementar o valor guardado no 
endereço 2A, guardando o resultado em W utilizaríamos a seguinte 
instrução: 
 
 
 
 
 
 
 
 
 
 
 
 
INCF 0x4D,0 
 End. Valor 
4D 39 
 
End. Valor 
W 3A 
 
DECF 0x2A,0 
 End. Valor 
2A 60 
 
End. Valor 
W 5F 
 
UNIVERSIDADE PAULISTA – UNIP 
 
 NOTA DE AULA MICROPROCESSADOS – II Prof. Ms. Marco Antonio Baptista. Pg. 18

Mais conteúdos dessa disciplina