. : New eShop! - Mobilní verze - Pandatron.cz - Pandatron.sk - Diskuzní fórum - Zakázkový vývoj : .
 
Škola programování PIC-4 díl
Škola programování PIC 4

Škola programování PIC 4

Seznam a popis dostupných příkazů.

Před začátkem programování je nutné ještě znát dostupné příkazy. Není nutné je znát nazpaměť (při používání se je naučíte sami), ale je dobré alespoň vědět co máme k dispozici.
Dostupné příkazy spolu s podrobným popisem jsou v následující tabulce. V úvodu jsem sice zmínil že jich je 35, ale příkaz CLRW (maže registr W) se nepoužívá a v simulátoru nefunguje, tak jsem ho ani do této tabulky nezařazoval.

BYTOVÉ INSTRUKCE

kód

popis

cykly

ovlivňuje

ADDWF f,d algebraitský součet W a f uložit podle d

1

C,DC,Z

136 + 152 = 288

ANDWF f,d logický součin W a f podle d

1

Z

11010

1100

1000

CLRF f nulování f

1

Z

COMF f,d komplement f podle d

1

Z

   vytvoří opačné bity z f a uloží podle d

11010 -- 00101

DECF f,d dekrement f [-1]

1

Z

   odečte jedničku
DECFSZ f,d dekrement f [-1], když je výsledek nula,

1 (2)

-

následující instrukce se přeskočí
INCF f,d inkrement f [+1]

1

Z

   přičte jedničku
INCFSZ f,d inkrement f [+1], když je výsledek nula,

1 (2)

-

následující instrukce se přeskočí
IORWF f logický součet W a f

1

Z

W - 11010

f - 01100

100110 - W

MOVF f,d přesun registru f podle d

1

Z

MOVWF f přesun W do f

1

-

MOVLW k přesun čísla k do W

1

-

NOP

bezvýznamná instrukce (čeká 1 cyklus)

1

 

používá se na zpoždění procesoru
RLF f,d rotace f vlevo přes C

1

C

C -- D7,D6,D5,D4,D3,D2,D1,D0 -- C

RRF f,d rotace f vpravo přes C

1

C

C -- D7,D6,D5,D4,D3,D2,D1,D0 -- C

SUBWF f,d rozdíl f a W

1

C,DC,Z

f - W = d

C = 1 - výsledek byl kladný
C = 0 - výsledek byl záporný
SWAPF f,d výměna čtveřice bitů v f

1

-

11110000 -- 00001111

XORWF f,d exklusivní součet W a f podle d

1

Z

1010

1100

1001

BITOVÉ INSTRUKCE

kód

popis

cykly

ovlivňuje

BCF f,b nulování bitu b registru f - 0

1

-

BSF f,b nastavení bitu b registru f - 1

1

-

BTFSC f,b test bitu b v f, skok když je 0

1 (2)

-

BTFSS f,b test bitu b v f, skok když je 1

1 (2)

-

OSTATNÍ INSTRUKCE

kód

popis

cykly

ovlivňuje

ADDLW k algebraitský součet  k a W, výsledek do W

1

C,DC,Z

136 + 152 = 288 -- W

ANDLW k logický součin k a W, výsledek do W

1

Z

11010

1100

1000

CALL k volání podprogramu

2

-

CLRWDT nulování WDT

1

TO,PD

GOTO k skok na návěstí k

2

-

IORLW k logický součet k a W, výsledek do W

1

Z

11010

1100

100110

RETFIE návrat z přerušení

2

-

RETLW k návrat z podprogramu, k se uloží do W

2

-

RETURN návrat z podprogramu

2

-

SLEEP uspí procesor

1

TO,PD

   návrat přerušením nebo resetem
SUBLW k rozdíl k a W, výsledek do W

1

C,DC,Z

k - W = W

C = 1 - výsledek byl kladný
C = 0 - výsledek byl záporný
XORLW k exklusivní součet k a W, výsledek do W

1

Z

11010

1100

1001

       
Vysvětlivky:    
  f - název (adresa) registru    
  k - číslo, název návěstí    
  d - kam uložit výsledek    
 

1 - výsledek do f

   
 

0 - výsledek do W

   
  C , DC , Z , TO , PD - bity v registru STATUS    
  b - pozice bitu v registru (počítáno zprava)    
  7 , 6 , 5 , 4 , 3 , 2 , 1 , 0    

Jak je také vidět, většina příkazů potřebuje jen jeden strojový cyklus (OSC / 4). 2 strojové cykly potřebují ty příkazy, které způsobí skok v programu. Je to logické, procesor má již připraven následující příkaz, ale pokud má skočit někam jinam, musí načíst nový. Stejně tak je to u příkazů, které mají uvedeno 1(2), například BTFSC. Pokud po něm program pokračuje dál, stačí mu jeden, pokud ale má někam skočit, potřebuje dva.







GooglePlus1 FaceBook Twitter del.icio.us DiGG Google StumbleUpon Google Buzz Email RSS PDF Tisk

Komentáře (5):

Zobrazit starší 30 dnů (5)...



Název příspěvku: Vaše jméno: host
                 
  Zakázat formátování [Zakáže kódování a nahrazování smajlíky.]
Připojit soubory
reklama:
Anténa 2J020 - 900/1800/2400MHz
Anténa 900/1800/2400MHz, přímá s konektorem SMA.
Skladem od 83 Kč

Informace uvedené v článcích jsou platné v době jejich vydání a samotné články jsou určeny pouze jako zdroj informací. Autor článku ani správce webu nenesou žádnou zodpovědnost za případné újmy na majetku a zdraví. Názvy společností a výrobků, loga a další multimediální materiál mohou být ochrannými známkami příslušných společností.
RSS kanály: | |
+420 723 846 377
info@pandatron.cz
Všechna práva vyhrazena | mobilní verze | © Copyright 2000 - 2016 ISSN 1803-6007