Kategória: Elektro návody

Zmenené: 1. november 2009

Inštrukcie PIC 16F84/62x

Pri simulácii PIC v programe KTechLab je možné napísať program aj v jazyku Assembler, preto som sa rozhodol spísať a popísať všetkých 35 inštrukcií, ktoré tieto (tento) mikroradiče poznajú. Mikroradiče 16F84, 16F627 aj 16F628 (vrátane ich novších verzií s A na konci) majú rovnakú sadu inštrukcií…

Aritmetické

ADDLW

ADDLW konštanta

Súčet konštanty a obsahu registra W a výsledok uloží do W.

Cyklov:1
Ovplyvňuje:C, DC, Z

ADDWF

ADDWF f,d

Súčet obsahu registra W a obsahu registra f a výsledok uloží do:

  • f, ak d=1
  • W, ak d=0
Cyklov:1
Ovplyvňuje:C, DC, Z

DECF

DECF f,d

Odpočíta jedna od obsahu registra f a výsledok uloží do:

  • f, ak d=1
  • W, ak d=0
Cyklov:1
Ovplyvňuje:Z

INCF

INCF f,d

Pripočíta jedna k obsahu registra f a výsledok uloží do:

  • f, ak d=1
  • W, ak d=0
Cyklov:1
Ovplyvňuje:Z

SUBLW

SUBLW konštanta

Odpočíta konštantu od obsahu registra W a výsledok uloží do W.

Cyklov:1
Ovplyvňuje:C, DC, Z

SUBWF

SUBWF f,d

Odpočíta od obsahu registra W obsah registra f a výsledok uloží do:

  • f, ak d=1
  • W, ak d=0
Cyklov:1
Ovplyvňuje:C, DC, Z

Logické

ANDLW

ANDLW konštanta

Logické AND obsahu registra W a konštanty a výsledok uloží do W.

Cyklov:1
Ovplyvňuje:Z

ANDWF

ANDWF f,d

Logické AND obsahu registra W a obsahu registra f a výsledok uloží do:

  • f, ak d=1
  • W, ak d=0
Cyklov:1
Ovplyvňuje:Z

COMF

COMF f,d

Negácia obsahu registra f a výsledok uloží do:

  • f, ak d=1
  • W, ak d=0
Cyklov:1
Ovplyvňuje:Z

IORLW

IORLW konštanta

Logické OR obsahu registra W a konštanty a výsledok uloží do W.

Cyklov:1
Ovplyvňuje:Z

IORWF

IORWF f,d

Logické OR obsahu registra W a obsahu registra f a výsledok uloží do:

  • f, ak d=1
  • W, ak d=0
Cyklov:1
Ovplyvňuje:Z

XORLW

XORLW konštanta

Logické XOR obsahu registra W a konštanty a výsledok uloží do W.

Cyklov:1
Ovplyvňuje:Z

XORWF

XORWF f,d

Logické XOR obsahu registra W a obsahu registra f a výsledok uloží do:

  • f, ak d=1
  • W, ak d=0
Cyklov:1
Ovplyvňuje:Z

Nulovanie

CLRF

CLRF f

Vynuluje register f .

Cyklov:1
Ovplyvňuje:Z

CLRW

CLRW

Vynuluje register W.

Cyklov:1
Ovplyvňuje:Z

CLRWDT

CLRWDT

Vynuluje WDT (WatchDog časovač).

Cyklov:1
Ovplyvňuje:TO, PD

Presun dát

BCF

BCF f,b

Nastaví bit b registra f na hodnotu 0.

Cyklov:1
Ovplyvňuje:-

BSF

BSF f,b

Nastaví bit b registra f na hodnotu 1.

Cyklov:1
Ovplyvňuje:-

MOVF

MOVF f,d

Uloží obsah registra f do:

  • f, ak d=1
  • W, ak d=0
Cyklov:1
Ovplyvňuje:Z

MOVLW

MOVLW konštanta

Uloží konštantu do registra W.

Cyklov:1
Ovplyvňuje:-

MOVWF

MOVWF f

Presunie obsah registra W do registra f .

Cyklov:1
Ovplyvňuje:-

RLF

RLF f,d

Rotácia doľava cez bit C a výsledok uloží do:

  • f, ak d=1
  • W, ak d=0
Cyklov:1
Ovplyvňuje:C

RRF

RRF f,d

Rotácia doprava cez bit C a výsledok uloží do:

  • f, ak d=1
  • W, ak d=0
Cyklov:1
Ovplyvňuje:C

SWAPF

SWAPF f,d

Výmena dolného a horného polbajtu registra f a výsledok uloží do:

  • f, ak d=1
  • W, ak d=0
Cyklov:1
Ovplyvňuje:-

Podporgramy a prerušenia

CALL

CALL adresa

Skok do podprogramu.

Cyklov:2
Ovplyvňuje:-

RETLW

RETLW konštanta

Návrat z podprogramu a naplnenie registra W konštantou.

Cyklov:1
Ovplyvňuje:-

RETURN

RETURN

Návrat z podprogramu.

Cyklov:1
Ovplyvňuje:-

RETFIE

RETFIE

Návrat z prerušenia.

Cyklov:1
Ovplyvňuje:-

Skoky

BTFSC

BTFSC f, b

Ak je bit b registra f nulový, tak preskočí nasledujúcu inštrukciu. Cyklov 1 (2 pri skoku) Ovplyvňuje -

BTFSS

BTFSS f,b

Ak je bit b registra f nenulový, preskočí nasledujúcu inštrukciu. Cyklov 1 (2 pri skoku) Ovplyvňuje -

DECFSZ

DECFSZ f,d

Odpočíta od registra f jedna, ak je výsledok nulový, preskočí nasledujúcu inštrukciu, výsledok uloží do:

  • f, ak d=1
  • W, ak d=0

Cyklov 1 (2 pri skoku) Ovplyvňuje -

GOTO

GOTO adresa

Skočí na adresu.

Cyklov:2
Ovplyvňuje:-

INCFSZ

INCFSZ f,d

K registru f pripočíta jedna, ak je výsledok nulový (pretečenie), preskočí nasledujpcu inštrukciu, výsledok uloží do:

  • f, ak d=1
  • W, ak d=0

Cyklov 1 (2 pri skoku) Ovplyvňuje -

Ostatné

NOP

NOP

Prázdna inštrukcia, nerobí nič, len zaberie jeden procesorový cyklus.

Cyklov:1
Ovplyvňuje:-

SLEEP

SLEEP

Uvedie procesor do režimu SLEEP.

Cyklov:1
Ovplyvňuje:TO, PD

Zvláštne

Inštrukcie pre spätnú kompatibilitu, nepoužívať do nových programov!!!

OPTION

OPTION

Obsah registra W je prenesený do registra OPTION .

Cyklov:1
Ovplyvňuje:-

TRIS

TRIS f

Obsah registra W je prenesený do registra TRIS, patriacemu k registru f.

Cyklov:1
Ovplyvňuje:-