Baixe Microcontroladores PIC - programa??o pic16f877a e outras Notas de estudo em PDF para Engenharia de Telecomunicações, somente na Docsity!
Coleção TUTPRO
Tutoriais sobre programação de microcontroladores
Solbet Ltda
Expandindo a percepção humana
Neste volume: O conjunto de instruções do PIC16F
versão 1.0 Campinas 11/11/
Sumário
- Recursos necessários para execução deste tutorial...............................................................................
- Descrição das instruções do PIC16F877 em ordem alfabética...........................................................
- ADDLW...........................................................................................................................................
- ADDWF...........................................................................................................................................
- ANDLW...........................................................................................................................................
- ANDWF...........................................................................................................................................
- BCF..................................................................................................................................................
- BSF..................................................................................................................................................
- BTFSC.............................................................................................................................................
- BTFSS..............................................................................................................................................
- CALL...............................................................................................................................................
- CLRF...............................................................................................................................................
- CLRW..............................................................................................................................................
- CLRWDT.........................................................................................................................................
- COMF..............................................................................................................................................
- DECF...............................................................................................................................................
- DECFSZ...........................................................................................................................................
- GOTO..............................................................................................................................................
- INCF................................................................................................................................................
- INCFSZ..........................................................................................................................................
- IORLW...........................................................................................................................................
- IORWF...........................................................................................................................................
- MOVLW........................................................................................................................................
- MOVF............................................................................................................................................
- MOVWF........................................................................................................................................
- NOP...............................................................................................................................................
- RETFIE..........................................................................................................................................
- RETLW..........................................................................................................................................
- RETURN.......................................................................................................................................
- RLF................................................................................................................................................
- RRF................................................................................................................................................
- SLEEP............................................................................................................................................
- SUBLW..........................................................................................................................................
- SUBWF..........................................................................................................................................
- SWAPF...........................................................................................................................................
- XORLW.........................................................................................................................................
- XORWF.........................................................................................................................................
ANDLW
Operação lógica 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 entre o conteúdo do registrador W e do registrador f.. Se é igual a zero o resultado é colocado no registro W. Se é igual a 1 o resultado é armazenado no registro f Ciclos 1 .
BCF
Limpa um bit do registro f Sintaxe [label] BCF f,b
Operação 0 -> (f) Status nenhum Codificação 0001 00bb bfff ffff Descrição Faz o bit do registro f igual a zero Ciclos 1
BSF
set bit f Sintaxe [label] BSF f,b Operação 1 -> (f) Status nenhum Codificação 0001 01bb bfff ffff Descrição Faz o bit do registro f um Ciclos 1
BTFSC
Teste bit f, pula se zero Sintaxe [label] BTFSC f,b Operação desvia se f for igual a zero Status nenhum Codificação 0001 10bb bfff ffff Descrição Se o bit no registro for igual a zero, pula a próxima instrução. Ciclos 1 se não tiver o desvio, 2 se ocorrer o desvio
Status Z Codificação 0000 0001 1fff ffff Descrição O conteúdo do registro é 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 é 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
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 é complementado. Se for igual a zero o resultado é colocado no registro W. Se for igual a 1 o resultado é colocado no registro . 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 . Se for igual a zero o resultado será colocado no registro W. Se <d. for igual a 1 o resultado será colocado no registro . Ciclos 1
Status Z Codificação 0000 1010 dfff ffff Descrição Incrementa o conteúdo do registro f. Se for igual a zero o resultado é colocado no registro W. Se for igual a 1 o resultado é colocado no registro f. Ciclos 1
INCFSZ
incrementa f, desvia se zero Sintaxe [label] INCFSZ f, d Operação (f) +1 -> (dest). Desvia se resultado for zero. Status nenhum Codificação 0000 1111 dfff ffff Descrição Incrementa o conteúdo do registrador f. Se for igual a zero, o resultado e colocado em W, se for igual a um o resultado e colocado em 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
IORLW
Ou inclusivo entre k e o registro W Sintaxe [label] IORLW k Operação (W) .OR. (k) -> (W). Status Z Codificação 0011 1000 kkkk kkkk Descrição Realiza a operação lógica OU entre o registrador k e o registro W. O resultado e colocado no registro W. Ciclos 1
IORWF
Ou inclusivo entre W e f Sintaxe [label] IORWF f,d Operação (W) .OR. (f) -> (destino). Status Z
verificarmos se o conteúdo de um registrador e zero, pois o flag Z é alterado. Ciclos 1
MOVWF
Move o registro W para f Sintaxe [label] MOVWF f Operação (W) -> (f) Status nenhum Codificação 0000 0000 1fff ffff Descrição Move dados do registrador W para o registro f Ciclos 1
NOP
nenhuma operação Sintaxe [label] NOP Operação nada Status nenhum Codificação 0000 0000 0000 0000 Descrição não executa nenhuma instrução. Útil como ajuste fino de laços de temporização. Ciclos 1
RETFIE
retorno de interrupção Sintaxe [label] RETFIE
Operação TOS -> (PC) 1 -> GIE Status nenhum Codificação 0000 0000 0000 1001 Descrição O topo do stack (TOS) e carregado no PC. Os interrupts são habilitados de uma forma global pelo flag GIOE. O apontador do stack e diminuído de um (pop). Ciclos 2
RETLW
retorna com um literal em W Sintaxe [label] RETLW k Operação k -> (W) TOS -> (PC) Status nenhum Codificação 11 01xx kkkk kkkk Descrição O registrador W e carregado com o valor k. O contador de programa assume o valor do topo do stack. Eqüivale a uma instrução de retorno de subrotina sendo que o registro W retorna com o valor desejado. Ciclos 2
RETURN
retorna da subrotina Sintaxe [label] RETURN
for igual a zero o resultado e colocado no registrador W, se for igual a 1 o resultado e colocado no registro Ciclos 1
SLEEP
Vai para o modo de repouso (stand by) Sintaxe [label] SLEEP Operação 00 -> WDT 0 -> pré-escalador do WDT 1 -> TO barra 0 -> PD barra Status TO, PD barra Codificação 0000 0000 0110 0011 Descrição O bit de power down, (PD) é feito igual a zero. O bit de estouro de tempo (time -out) e feito igual a 1. Os temporizadores do watch dog timer e seu pré-escalador são zerados. O processador assume o modo SLEEP , com o oscilador parado. Para sair deste modo somente com reset ou interrupt. Ciclos 1
SUBLW
Subtrai de um literal o valor do registrador W Sintaxe [label] SUBLW k Operação k - (W) -> (W) Status C, DC, Z Codificação 0011 110x kkkk kkkk Descrição Subtrai do valor do literal o conteúdo do registrador W. O resultado e colocado em W Ciclos 1
SUBWF Subtrai o registro do conteúdo do registro W. Sintaxe [label] SUBWF f,d Operação (f) - (W) -> (dest) Status (^) C, DC, Z Codificação 0000 0010 dfff ffff Descrição Subtrai do registrador f o conteúdo do registrador W. Se é igual a zero o resultado é colocado no registro W. Se é igual a 1 o resultado é armazenado no registro f Ciclos 1
SWAPF
Inverte bits em f Sintaxe [label] SWAPF f,d Operação (f<3^0) -> (dest(<7.4>) (f<7,4>) -> (dest(<3,0>) Status nenhum Codificação 0000 1110 dfff ffff Descrição Troca de posição os nibles do registrador f. Se é igual a zero o resultado é colocado no registro W. Se é igual a 1 o resultado é armazenado no registro f Ciclos 1
XORWF
Ou exclusivo entre W e f Sintaxe [label] XORWF f,d Operação (W) .XOR. (f) -> (destino). Status Z Codificação 0011 0100 dfff ffff Descrição Realiza a operação lógica OU EXCLUSICO entre o registro f e o registro W. Se ,d. for igual a 0 o resultado e colocado no registro W. Se for igual a 1 o resultado ~e colocado no registro f. Ciclos 1