• Nenhum resultado encontrado

Neste volume: O conjunto de instruções do PIC16F877

N/A
N/A
Protected

Academic year: 2021

Share "Neste volume: O conjunto de instruções do PIC16F877"

Copied!
10
0
0

Texto

(1)

Coleção TUTPRO

Tutoriais sobre programação de microcontroladores

Solbet Ltda

Expandindo a percepção humana

Neste volume: O conjunto de instruções do PIC16F877

versão 1.0 Campinas 11/11/2007

(2)

Sumário

Recursos necessários para execução deste tutorial...3

Descrição das instruções do PIC16F877 em ordem alfabética...3

ADDLW...3

ADDWF...3

ANDLW...4

ANDWF...4

BCF...4

BSF...5

BTFSC...5

BTFSS...6

CALL...6

CLRF...6

CLRW...7

CLRWDT...7

COMF...8

DECF...8

DECFSZ...9

GOTO...9

INCF...9

INCFSZ...11

IORLW...11

IORWF...11

MOVLW...12

MOVF...12

MOVWF...13

NOP...13

RETFIE...13

RETLW...14

RETURN...14

RLF...15

RRF...15

SLEEP...16

SUBLW...16

SUBWF...17

SWAPF...17

XORLW...18

XORWF...19

(3)

Recursos necessários para execução deste tutorial

Este tutorial cobre somente partes teóricas. Você só precisará de um computador com leitor PDF.

Você pode copiar este material a vontade, desde que mantida a informação da fonte.

Descrição das instruções do PIC16F877 em ordem alfabética

As trinta e cinco instruções do PIC16F877A são todas de um mesmo comprimento, 14 bits.

Se a instrução não provocar um desvio do fluxo normal do programa, ela é executada em um ciclo.

Aquelas que provocam a alteração do contador de programas diferente do simples incremento de uma unidade são executadas em dois ciclos.

A compreensão da funcionalidade de cada instrução é indispensável para o programador assembler.

ADDLW

Soma um literal no registrador W

Sintaxe [label] ADDLW k

Operação (W) + k -> (W)

Status C, DC, Z

Codificação 0011 111x kkkk kkkk

Descrição O conteúdo do registrador W é somado

com o literal k e o resultado colocado no registrador W

Ciclos 1

ADDWF

Soma o registrador W ao registro f

Sintaxe [label] ADDWF f,d

Operação (W) + (f) -> (dest)

Status C, DC, Z

Codificação 0011 0111 dfff ffff

Descrição Soma o conteúdo do registro W ao

registro f. Se <d> é igual a zero o resultado é colocado no registro W. Se

<d> é igual a 1 o resultado é armazenado no registro f

Ciclos 1

(4)

ANDLW

Operação lógica <E> entre o literal k e o registro W

Sintaxe [label] ANDLW k

Operação (W) .AND. (k) -> (W)

Status Z

Codificação 0011 1001 kkkk kkkk

Descrição Realiza a operação lógica E (AND) entre

o conteúdo do registrador W com o literal k. O resultado e colocado no registrador W.

Ciclos 1

ANDWF

Soma o registrador W ao registro f

Sintaxe [label] ANDWF f,d

Operação (W) .AND. (f) -> (dest)

Status Z

Codificação 0000 0101 dfff ffff

Descrição Realiza a operação lógica <E> entre o conteúdo do registrador W e do registrador f. . Se <d> é igual a zero o resultado é colocado no registro W. Se

<d> é igual a 1 o resultado é armazenado no registro f

Ciclos 1

.

BCF

Limpa um bit do registro f

Sintaxe [label] BCF f,b

(5)

Operação 0 -> (f<b>)

Status nenhum

Codificação 0001 00bb bfff ffff

Descrição Faz o bit <b> do registro f igual a zero

Ciclos 1

BSF

set bit f

Sintaxe [label] BSF f,b

Operação 1 -> (f<b>)

Status nenhum

Codificação 0001 01bb bfff ffff

Descrição Faz o bit <b> do registro f um

Ciclos 1

BTFSC

Teste bit f, pula se zero

Sintaxe [label] BTFSC f,b

Operação desvia se f<b> for igual a zero

Status nenhum

Codificação 0001 10bb bfff ffff

Descrição Se o bit <b> no registro <f> for igual a zero, pula a próxima instrução.

Ciclos 1 se não tiver o desvio, 2 se ocorrer o

desvio

(6)

BTFSS

Teste bit f, pula se um

Sintaxe [label] BTFSS f,b

Operação desvia se f<b> for igual a um

Status nenhum

Codificação 0001 11bb bfff ffff

Descrição Se o bit <b> no registro <f> for igual a um, pula a próxima instrução.

Ciclos 1 se não tiver o desvio, 2 se ocorrer o

desvio

CALL

chama subrotina

Sintaxe [label] call k

Operação (PC) +1 ->TOS

k -> (PC <10Ç0>),

(PCLATH <4-3>) -> (PC<12 -11>)

Status nenhum

Codificação 0010 0kkk kkkk kkkk

Descrição Chama uma subrotina. Primeiro, o

endereço de retorno (PC + 1) é colocado no stack. O endereço de 11 bits é

armazenado nos bits <10 0> do PC. Os bits superiores do PC são carregados do registro PCLATH.

Ciclos 2

CLRF

Limpa o registro f

Sintaxe [label] CLRF f

Operação 0 -> (f)

(7)

Status Z

Codificação 0000 0001 1fff ffff

Descrição O conteúdo do registro <f> é feito igual a zero e o bit Z é feito igual a um.

Ciclos 1

CLRW

Limpa o registro W

Sintaxe [label] CLRW

Operação 0 -> (W)

1 -> Z

Status Z

Codificação 0000 0001 0000 0011

Descrição O conteúdo do registro <W> é feito igual a zero e o bit Z é feito igual a um.

Ciclos 1

CLRWDT

Limpa o registro do watch dog

Sintaxe [label] CLRWDT

Operação 0 -> (WDT)

0 -> WDT preescalador 1 -> TO (invertido) 1 -> PD (invertido)

Status TO, PD

Codificação 0000 0000 0110 0100

Descrição Faz o temporizador watch dog timer

(8)

igual a zero. Também zera o

preescalador do watch dog. Os bits de estado TO e PD são feitos igual a 1.

Ciclos 1

COMF

Complementa a registro f

Sintaxe [label] COMF f,d

Operação (naof) ->destino

Status Z

Codificação 0000 1001 dfff ffff

Descrição O conteúdo do registrador <f> é

complementado. Se <d> for igual a zero o resultado é colocado no registro W. Se

<d> for igual a 1 o resultado é colocado no registro <f>.

Ciclos 1

DECF

Decrementa f

Sintaxe [label] DECF f,d

Operação (f) - 1 -> (dest)

Status Z

Codificação 0000 0011 dfff ffff

Descrição Decrementa o registro <f>. Se <d> for igual a zero o resultado será colocado no registro W. Se <d. for igual a 1 o

resultado será colocado no registro <f>.

Ciclos 1

(9)

DECFSZ

Decrementa f , pula se zero

Sintaxe [label] DECFSZ f,d

Operação (f) - 1 -> (dest), desvia se resultado igual a zero

Status nenhum

Codificação 0000 1011 dfff ffff

Descrição Decrementa o registro <f>. Se <d> for igual a 0 o resultado será colocado no registro W. Se <d> for igual a 1 o resultado será colocado no registro <f>.

Se o resultado for zero a próxima instrução é descartada.

Ciclos 1 se não ocorrer o desvio.

2 se ocorrer o desvio.

GOTO

desvia para o endereço especificado

Sintaxe [label] GOTO k

Operação k -> (PC <10 0>

PCLATH <4 3> -> (PC <12 11> )

Status nenhum

Codificação 0010 1kkk kkkk kkkk

Descrição Desvia o programa para o endereço K. O

onze bits k são carregados para o registro do PC <10 0>. Os bits

superiores do PC são carregados a partir do registro PCLATH.

Ciclos 2

INCF

incrementa f

Sintaxe [label] INCF f,d

Operação (f) +1 -> (dest)

(10)

Status Z

Codificação 0000 1010 dfff ffff

Descrição Incrementa o conteúdo do registro f. Se

<d> for igual a zero o resultado é

colocado no registro W. Se <d> for igual a 1 o resultado é colocado no registro f.

Ciclos 1

Referências

Documentos relacionados

Modeladora  –   Equipamento profissional para indústria alimentícia destinado à. modelar massas pela sua passagem entre

Principais fontes de financiamento disponíveis: Autofinanciamento: (corresponde aos fundos Principais fontes de financiamento disponíveis: Autofinanciamento: (corresponde aos

Entre as atividades, parte dos alunos é também conduzida a concertos entoados pela Orquestra Sinfônica de Santo André e OSESP (Orquestra Sinfônica do Estado de São

ambiente e na repressão de atitudes conturbadas e turbulentas (normalmente classificadas pela escola de indisciplina). No entanto, as atitudes impositivas da escola

E, para isso, torna-se indispensável, neste início, refletir sobre a importância das avaliações externas como forma de melhorar o desempenho dos alunos, as mudanças ocorridas na

Além desta verificação, via SIAPE, o servidor assina Termo de Responsabilidade e Compromisso (anexo do formulário de requerimento) constando que não é custeado

Pensar a formação continuada como uma das possibilidades de desenvolvimento profissional e pessoal é refletir também sobre a diversidade encontrada diante

4.12 Upper panel: The symbols represent the absolute derivative of the quantity 6∆ν dr 0213 computed at maximum slope for the models with different masses and input physics considered