Utiliser les PIC 16F et 18F/Annexe/Les instructions du 16FXXX

Leçons de niveau 15
Une page de Wikiversité, la communauté pédagogique libre.
Les instructions du 16FXXX
Image logo représentative de la faculté
Annexe 1
Leçon : Utiliser les PIC 16F et 18F

Annexe de niveau 15.

Précédent :Sommaire
Suivant :Les instructions du 18FXXX
En raison de limitations techniques, la typographie souhaitable du titre, « Annexe : Les instructions du 16FXXX
Utiliser les PIC 16F et 18F/Annexe/Les instructions du 16FXXX
 », n'a pu être restituée correctement ci-dessus.




Les opérandes peuvent être de plusieurs types:

  • f : adresse mémoire de registres (register file address) de 00 à 7F
  • W : registre de travail
  • d : sélection de destination : d=0 vers W, d=1 vers f
  • pp : numéro de PORT entre 1 et 3 sur deux bits
  • bbb : adresse de bit dans un registre 8 bits (sur 3 bits)
  • k : champ littéral (8, ou 11 bits)
  • PC compteur programme

Opérations orientées octets entre registre et mémoire[modifier | modifier le wikicode]

Opérations orientées octets entre registre et mémoire (File en anglais)
Mnémonique

Opérande

Description Cycles 14 bits Opcode status affected notes
ADDWF f,d Additionne W et f 1 00 0111 dfff ffff C,DC,Z 1,2
ANDWF f,d ET bit à bit W et f 1 00 0101 dfff ffff Z 1,2
CLRF f mise à 0 de f 1 00 0001 1fff ffff Z 2
CLRW - mise à 0 de W 1 00 0001 0xxx xxxx Z
COMF f,d Complément de f 1 00 1001 dfff ffff Z 1,2
DECF f,d Décrémente f 1 00 0011 dfff ffff Z 1,2
DECFSZ f,d Décrémente f (saute si 0) 1,(2) 00 1011 dfff ffff Z 1,2,3
INCF f,d Incrémente f 1 00 1010 dfff ffff Z 1,2
INCFSZ f,d Incrémente f (saute si 0) 1,(2) 00 1111 dfff ffff Z 1,2,3
IORWF f,d Ou inclusif de f 1 00 0100 dfff ffff Z 1,2
MOVF f,d déplacement de f (adressage direct) 1 00 1000 dfff ffff Z 1,2
MOVWF déplacement de W vers f 1 00 0000 1fff ffff
NOP - pas d'opération 1 00 0000 0xx0 0000
RLF f,d Rotation gauche avec la retenue 1 00 1101 dfff ffff C 1,2
RRF f,d Rotation droite avec la retenue 1 00 1100 dfff ffff C 1,2
SUBWF f,d soustrait W de f 1 00 0010 dfff ffff C,DC,Z 1,2
SWAPW f,d inverser les quartets dans f 1 00 1110 dfff ffff 1,2
XORWF f,d Ou exclusif de f 1 00 0110 dfff ffff Z 1,2

Opérations orientées bits sur les registres[modifier | modifier le wikicode]

Opérations orientées bits sur les registres
Mnémonique

Opérande

Description Cycles 14 bits Opcode status affected notes
BCF f,b mise à 0 du bit b dans f 1 01 00bb bfff ffff 1,2
BSF f,b mise à 1 du bit b dans f 1 01 01bb bfff ffff 1,2
BTFSC f,b test du bit b 0 de f saute si 0 1,(2) 01 10bb bfff ffff 1,2
BTFSS f,b test du bit b 0 de f saute si 1 1,(2) 01 11bb bfff ffff 1,2

Opérations littérales (adressage immédiat) et de contrôles[modifier | modifier le wikicode]

Opérations littérales (adressage immédiat) et de contrôles
Mnémonique

Opérande

Description Cycles 14 bits Opcode status affected notes
ADDLW k Addition de W et k 1 11 111x kkkk kkkk C,DC,Z
ANDLW k Et logique de W et k 1 11 1001 kkkk kkkk Z
CALL k appel du sous programme k 2 10 0kkk kkkk kkkk
CLRWDT - mise à 0 du timer watchdog 1 00 0000 0110 0100 /TO,/PD
GOTO k aller à l'adresse 2 10 1kkk kkkk kkkk
IORLW Ou inclusif littéral 1 11 1000 kkkk kkkk Z
MOVLW chargement de W en littéral 1 11 00xx kkkk kkkk
RETFIE Retour d'interruption 2 00 0000 0000 1001
RETLW k retour avec le littéral dans W 2 11 01xx kkkk kkkk
RETURN retour de sous-programme 2 00 0000 0000 1000
SLEEP aller au mode standby 1 00 0000 0110 0011 /TO,/PD
SUBLW k retire W du littéral 1 11 110x kkkk kkkk C,DC,Z
XORLW Ou exclusif avec littéral 1 11 1010 kkkk kkkk Z