Instruction Set of PIC microcontroller

Updated on 2017/10/08 19:38

Syllabus

Instruction Set of PIC microcontroller

Instruction Set of PIC microcontroller

Has 77 instructions
 Earlier PIC family of microcontrollers have  either 33 or 35 instructions
 In PIC18F instruction set, all instructions are 16-bit word length except four instructions that are 32-bit length

PIC18 Instruction Set

  • Includes 77 instructions
  • 73 one word (16-bit) long
  • long 4 two words (32-bit)

Divided into seven groups  

  • Move (Data Copy) and Load
  • Arithmetic
  • Logic
  • Program Redirection (Branch/Jump)
  • Bit Manipulation
  • Table Read/Write
  • Machine Control

Arithmetic Instructions

 ADDWFC F,d,a ;Add W to F with carry and save result in W or F
 SUBLW 8-bit ;Subtract W from literal
 SUBWF F,d,a ;Subtract W from F
 SUBWFB F,d,a ;Subtract W from F with borrow
 INCF F,d,a ;Increment F
 DECF F,d,a ;Decrement F
 NEGF F,a ;Take 2’s Complement of F
 MULLW 8-bit ;Multiply 8-bit  Literal and W  Save result in PRODH:PRODL
 MULWF F,a ;Multiply W and F ;Save result in PRODH:PRODL
 DAW ;Decimal adjust W for BCD ;Addition

Points to Remember

 Arithmetic instructions can perform operations on W and 8-bit literals and save the result in W
 Arithmetic instructions can perform operations an W and F and save the result in W or F
 In general, arithmetic instructions affect all flags

Logic Instructions

 COMF F,d,a ;Complement (NOT) F ;and save result in W or F
 ANDLW 8-bit ;AND Literal with W
 ANDWF F,d,a ;AND W with F and ;save result in W or F
 IORLW 8-bit ;Inclusive OR Literal with W
 IORWF F,d,a ;Inclusive OR W with F ;and save result in W or F IORWF 0x12,F;OR W with REG12H and ;save result in REG12H
 XORLW 8-bit ;Exclusive OR Literal with W
 XORWF F,d,a ;Exclusive OR W w/ F ;and save result in W or F

Points to Remember

 Logic instructions can perform operations on W and 8-bit literals and save the result in W
 Logic instructions can perform operations an W and F and save the result in W or F
 In general, logic instructions affect only two flags:  N and Z.

Branch Instructions

BC n ;Branch if C flag = 1, + or – 64 Words ;to PC+2+2n BC 5 ;Branch on Carry to PC+2+10 BC Label ;Alternate:  Branch to Label
BNC   n ;Branch if C flag = 0
BZ     n ;Branch if Z flag = 1
BNZ   n ;Branch if Z flag = 0
BN     n ;Branch if N flag = 1
BNN   n ;Branch if N flag = 0
BOV    n ;Branch if OV flag = 1
BNOV  n ;Branch if OV flag = 0
BRA nn ;Branch always, + or – 512 Words

Call and Return Instructions

RCALL nn ;Relative Call subroutine ;within + or – 512 words
CALL  20-bit,s ;Call subroutine ;If s = 1, save W, STATUS, BSR
RETURN s ;Return subroutine ;If s = 1, retrieve W, STATUS, BSR
RETFIE s ;Return from interrupt ;If s = 1, retrieve W, STATUS, BSR

Points to Remember

 The instruction set includes eight conditional relative branch instructions based on four flags.  The range is limited to 64 words.
 The range of the unconditional relative branch is 512 words
 If the operand is positive, the jump is forward and if negative, the jump is backward

Bit Manipulation Instructions

BCF   F,b,a ;Clear bit b of F, b = 0 to 7 BCF 0x2,7 ;Clear bit 7 of Reg2
 BSF   F,b,a ;Set bit b of F, b = 0 to 7
 BTG   F,b,a ;Toggle bit b of F, b = 0 to 7
 RLCF  F,d,a ;Rotate bits left in F through ;carry and save in W or F
 RLNCF  F,d,a ;Rotate bits left in F ;and save in W or F
 RRCF  F,d,a ;Rotate bits right in F through carry and save in W or F
 RRNCF  F,d,a ;Rotate bits right in F ;and save in W or F

Points to Remember

 Any bit in a File (data) register can be set, reset, or complemented
 There are two types of rotate instructions
 8-bit and 9-bit (include C)
 Bits of any File (data) register can be rotated to the right or left and saved in W or F

Test and Skip Instructions

 BTFSC  F,b,a ;Test bit b in F and skip the ;next instruction if bit is cleared (bit=0) BTFSC 0x2,7 ;Test bit B7 in REG2 ;if B7=0 then skip next instruction
 BTFSS   F,b,a ;Test bit b in F and skip the ;next instruction if bit is set (bit=1)
 CPFSEQ  F,a ;Compare F with W, skip if F = W
 CPFSGT  F,a ;Compare F with W, skip if F > W
 CPFSLT  F,a ;Compare F with W, skip if F < W
 TSTFSZ  F,a ;Test F,  skip if F = 0

Increment/Decrement and Skip Next Instruction

 DECFSZ   F,d,a ;Decrement F and skip the ;next instruction if F = 0
 DECFSNZ F,d,a ;Decrement F and skip the ;next instruction if F ≠ 0
 INCFSZ   F,d,a ;Increment F and skip the ;next instruction if F = 0
 INCFSNZ F,d,a ;Increment F and skip the ;next instruction if F ≠ 0
 

References

  • WikiNote Foundation
Tags:
Created by Sujit Wagh on 2017/09/13 19:21