Popis instrukční sady procesorů PIC

Transkript

Popis instrukční sady procesorů PIC
Popis instrukční sady - procesory PIC
Aritmetické a logické operace
ADDLW Zápis:
Operace:
Popis:
Cyklů: 1
ADDWF Zápis:
Operace:
Popis:
Cyklů: 1
ANDLW Zápis:
Operace:
Popis:
Cyklů: 1
ADD Literal and W
ADDLW k
(W+k) → W
Sečte obsah registru W s konstantou k,
výsledek uloží do registru
Ovlivňuje: C, DC, Z
ADD W and F
ADDWF f, d
(W+f) → d
Sečte obsah registrů W a f, výsledek
uloží do registru W (je-li d=0) nebo
do registru f (je-li d=1).
Ovlivňuje: C, DC, Z
AND Literal and W
ANDLW k
(k&W) → W
Provede logický součin registru W s
konstantou k, výsledek uloží do W.
Ovlivňuje: Z
DECF Zápis:
Operace:
Popis:
(je-li d=0)
d=1).
Cyklů: 1
INCF Zápis:
Operace:
Popis:
Cyklů: 1
IORLW Zápis:
Operace:
Popis:
Cyklů: 1
DECrement F
DECF f, d
(f-1) → d
Odečte jedničku od obsahu registru f a
výsledek uloží do registru W
nebo do registru f (je-li
Ovlivňuje: Z
INCrement F
INCF f, d
(f+1) → d
Přičte jedničku k obsahu registru f a
výsledek uloží do registru W (je-li
d=0) nebo do registru f (je-li d=1).
Ovlivňuje: Z
Inclusive OR Literal with W
IORLW k
(W .or. k) → W
Provede logický součet (OR)
obsahu registru W s konstantou k,
výsledek uloží do registru W.
Ovlivňuje: Z
Poznámka: Operace OR nebo-li logický součet je
operace, při níž se ve výsledku v odpovídajících bitech
nastaví nula pouze v bitech, kde mají obě
Poznámka: Operace AND je operací logického součinu.
Výsledek je 1 v případě, že je 1 v obou odpovídajících
bitech. V ostatních případech je 0.
ANDWF Zápis:
Operace:
Popis:
Cyklů: 1
COMF Zápis:
Operace:
Popis:
Cyklů: 1
AND W with F
ANDWF f, d
(W & f) → f, d
Provede logický součin obsahu registru f
a W, výsledek uloží do registru W (je-li
d=0) nebo do registru f (je-li d=1).
Ovlivňuje: Z
COMplement F
COMF f, d
(f) → d
Zamění jedničky a nuly v obsahu registru
f (jedničkový doplněk čísla) a výsledek
uloží do registru W (je-li d=0) nebo do
registru f (je-li d=1).
Ovlivňuje: Z
čísla 0. V opačném případě jsou ve výsledku jedničky.
IORWF Inclusive OR W with F
Zápis:
IORWF f, d
Operace:
(W .or. f) → f, d
Popis:
Provede logický součet (OR)
obsahu registrů f a W, výsledek
uloží do registru W (je-li d=0) nebo
do registru f (je-li d=1).
Cyklů: 1
Ovlivňuje: Z
SUBLW Zápis:
Operace:
Popis:
Cyklů: 1
SUB Literal and W
SUBLW k
(k-W) → W
Odečte obsah registru W od
konstanty k, výsledek uloží do
registru W.
Ovlivňuje: C, DC, Z
Poznámka: Pokud je výsledek operace odečítání kladný
a větší než 0, pak je → bit Z=0, bit C=1. Je-li výsledek
roven 0 → bit Z=1, bit C=1. Je-li výsledek záporný →
bit Z=0, bit C=0
SUBWF SUBtract W from F
Zápis:
SUBWF f, d
Operace:
(f-W) → d
Popis:
Odečte obsah registru W od obsahu
registru f, výsledek uloží do registru W
(je-li d=0) nebo do registru f (je-li d=1).
Cyklů: 1
Ovlivňuje: C, DC,Z
CLRWDT Zápis:
Operace:
Popis:
předděličku,
se bity
Cyklů: 1
XORLW Zápis:
Operace:
Popis:
Instrukce přesunu dat
Cyklů: 1
eXclusive OR Literal with W
XORLW k
(W .xor. k) → W
Provede nonekvivalneci (XOR) obsah
registru W s konstantou k, výsledek
uloží do registru W.
Ovlivňuje: Z
MOVF Zápis:
Operace:
Popis:
Cyklů: 1
XORWF Zápis:
Operace:
Popis:
Cyklů: 1
eXclusive OR W with F
XORWF f, d
(W .xor. f) → d
Provede nonekvivalneci (XOR) obsah
registrů f a W, výsledek uloží do
registru W (je-li d=0) nebo do registru f
(je-li d=1).
Ovlivňuje: Z
MOVLW Zápis:
Operace:
Popis:
Cyklů: 1
RLF Zápis:
Operace:
Rotate Left F through carry
RLF f, d
f<n> → d<n+1>, f<7> → C, C →
d<0>
Rotuje obsah registru f doleva přes bit C
(carry), výsledek uloží do registru W (jeli d=0) nebo do registru f (je-li d=1).
Ovlivňuje: C
BCF Zápis:
Operace:
Popis:
Cyklů: 1
Bit Clear F
BCF f,b
0 → f (b)
Vynuluje bit b v registru f.
Ovlivňuje: -
Cyklů: 1
BSF Zápis:
Operace:
Popis:
Cyklů: 1
Bit Set F
BSF f,b
1 → f (b)
Nastaví do log. 1 bit b v registru f.
Ovlivňuje: -
Popis:
RRF Zápis:
Operace:
Cyklů: 1
CLRW Zápis:
Operace:
Popis:
CLeaR W
CLRW
00h → W
Vynuluje obsah registru W a nastaví Z bit
ve stavovém registru.
Ovlivňuje: Z
Cyklů: 1
MOVe Literal to W
MOVLW k
k → W
Registr W je naplněn osmibitovou
konstantou k
Ovlivňuje: MOVe W to F
MOVWF f
W → f
Obsah registru W přesuneme do registru
Popis:
CLeaR F
CLRF f
00h → f
Vynuluje obsah registru f.
Ovlivňuje: Z
MOVe F
MOVF f,d
(f) → d
Obsah registru f přesuneme do reg.W
(je-li d=0) nebo zpět do registru f (d=1).
Ovlivňuje: Z
MOVWF Zápis:
Operace:
Popis:
f
Cyklů: 1
Instrukce nulování a nastavení
CLRF Zápis:
Operace:
Popis:
Cyklů: 1
CLeaR WatchDog Timer
CLRWDT
00h → WDT, 0 → WDT předdělič
Nuluje čítač WDT a jeho
je-li k WDT připojená. Nastaví
TO a PD.
Ovlivňuje: 1 → TO, 1 → PD
SWAPF Zápis:
Operace:
Popis:
Cyklů: 1
Ovlivňuje: -
Rotate Right F through carry
RRF f, d
f<n> → d<n-1>, f<0> → C, C →
d<7>
Rotuje obsah registru f doprava přes bit
C (carry), výsledek uloží do registru W
(je-li d=0) nebo do registru f (je-li d=1).
Ovlivňuje: C
SWAP F
SWAPF f, d
f<0:3> → d<4:7>, f<4:7> → d<0:3>
Zamění spodní a horní 4 bity (nibble)
obsah registru f, výsledek uloží do
registru W (je-li d=0) nebo do registru f
(je-li d=1).
Ovlivňuje: -
Instrukce podprogramů a přerušení
CALL Zápis:
Operace:
subroutine CALL
CALL k
PC+1 → TOS; k → PC<10:0>;
PCLATH<4:3> → PC<12:11>
Popis: Návratovou adresu (PC+1) uloží do
zásobníku, konstanta k (vezme se z ní
11 bitů !!!) se uloží na spodních 11
bitů PC, zbývající bity PC se doplní
z registru PCLATH (f3). Program
pokračuje podprogramem na adrese PC.
Cyklů: 2
Ovlivňuje: RETLW Zápis:
Operace:
Popis:
Cyklů: 1
RETURN Zápis:
Operace:
Popis:
Cyklů: 2
RETFIE Zápis:
Operace:
Popis:
Cyklů: 2
RETurn Literal to W
RETLW k
k → W, TOS → PC
Návrat z podprogramu. Naplní PC ze
zásobníku a registr W naplní
konstantou k.
Ovlivňuje: RETURN from subroutine
RETURN
TOS → PC
Návrat z podprogramu. Naplní hodnotu
PC ze zásobníku.
Ovlivňuje: -
RETurn From IntErrupt
RETFIE
TOS → PC, 1 → GIE
Návrat z přerušení. Naplní hodnotu PC
ze zásobníku a povolí přerušení
nastavením bitu GIE (Global Interrupt
Enable) do log. 1.
Ovlivňuje: -
Instrukce skoků v programu
BTFSC Zápis:
Operace:
Popis:
Bit Test F, Skip if Clear
BTFSC f, b
skok, je-li f (b)=0
Je-li bit b v registru f v log. 0, následující
instrukce se neprovede. Jinak program
pokračuje na následující instrukci.
Cyklů: 1 (2 – při skoku)
Ovlivňuje: BTFSS Zápis:
Operace:
Popis:
Bit Test F, Skip if Set
BTFSS f,b
skok, je-li f (b)=1
Je-li bit b v registru f nastaven na log. 1,
následující instrukce se neprovede. Jinak
program pokračuje na následující
instrukci.
Cyklů: 1 (2 – při skoku)
Ovlivňuje: -
DECFSZ Zápis:
Operace:
Popis:
DECrement F and Skip if Zero
DECFSZ f, d
(f-1) → d, skok, je-li výsledek 0
Odečte jedničku od obsahu registru f a
výsledek uloží do registru W (je-li d=0)
nebo do registru f (je-li d=1). Je-li
výsledek 0, následující instrukce se
neprovede. Jinak program pokračuje
na následující instrukci.
Cyklů: 1 (2 – je-li skok)
Ovlivňuje: GOTO Zápis:
Operace:
Popis:
Cyklů: 2
GO TO address (unconditional jump)
GOTO k
k → PC<8:0>, PA2, PA1, PA0 →
PC<11:9>
Konstanta k (bere se z ní 9 bitů !!!) se
uloží na spodních 9 bitů PC, zbývající
3bity PC se doplní z bitů PA2, PA1
a PA0 v registru STATUS procesoru.
Program pokračuje kódem na adrese
PC.
Ovlivňuje: -
INCFSZ Zápis:
Operace:
Popis:
INCrement F and Skip if Zero
INCFSZ f, d
(f+1) → d, skok, je-li výsledek 0
Přičte jedničku k obsahu registru f a
výsledek uloží do registru W (je-li d=0)
nebo do registru f (je-li d=1). Je-li
výsledek 0, následující instrukce se
neprovede. Jinak program pokračuje
na následující instrukci.
Cyklů: 1(2 – je-li skok) Ovlivňuje: -
Zvláštní instrukce
NOP Zápis:
Operace:
Popis:
Cyklů: 1
No OPeration
NOP
neprovede nic
neprovede nic
Ovlivňuje: -
SLEEP Zápis:
Operace:
SLEEP
SLEEP
00h → WDT, 0 → prescaler, 1 →
TO, 0 → PD
Vynuluje power-down bit PD, nastaví
time-out bit TO, vynuluje čítač
Watchdog a jeho předděličku.
Procesor přejde do stavu SLEEP,
oscilátor je vypnut.
Ovlivňuje: TO, PD
Popis:
Cyklů: 1
Rozšířená instrukční sada pro PIC16(L)F 1937/8/9
ADDWFC -
Add with Carry W and f
ASRF -
Arithmetic Right Shift
LSLF -
Logical Left Shift
LSRF -
Logical Right Shift
SUBWFB -
Substract with Borrow W from f
MOVLB +
MOVLP -
Move literal to BSR
Move literal to PCLATH
14-BIT INSTRUKCE
S PSEUDO-INSTRUKCEMI
Následující pseudo-instrukce jsou aplikovatelné u
zařízení s 12-bit a 14-bit délkou instrukčního slova.
Mnemonic
Operation
Description
Equ
BRA k
Relative Branch
GOTO k
BRW k
Rel. Branch with W
GOTO $+W
CALLW k
Call Subroutine with W CALL $+W
ADDCF f,d
Add Carry to File
ADDDCF f,d
BC k
BDC k
BNC k
BNDC k
BNZ k
BZ k
Následující dvě instrukce nepoužívejte do nových
programů. Jsou určeny pro zpětnou kompatibilitu s
procesory PIC16C54, 55, 56 a 57.
OPTION load OPTION register
Zápis:
OPTION
Operace:
W → OPTION
Popis:
Obsah registru W přesuneme do registru
OPTION
Cyklů: 1
Ovlivňuje: TRIS load TRIS register
Zápis:
TRIS f
Operace:
W TRIS registr f
Popis:
Uloží do řídícího registru portů TRIS (f
= 5, 6 nebo 7) obsah registru W.
Cyklů: 1
Ovlivňuje: -
CLRC
CLRDC
CLRZ
LCALL k
BTFSC 3,0
INCF f,d
Add Digit Carry to File BTFSC 3,1
INCF f,d
Branch on Carry
BTFSC 3,0
GOTO k
Branch on Digit Carry BTFSC 3,1
GOTO k
Branch on No Carry
BTFSS 3,0
GOTO k
Branch on No DigCarry BTFSS 3,1
GOTO k
Branch on No Zero
BTFSS 3,2
GOTO k
Branch on Zero
BTFSC 3,2
GOTO k
Clear Carry
BCF 3,0
Clear Digit Carry
BCF 3,1
Clear Zero
BCF 3,2
Long Call
BCF/BSF 0x0A,3
BCF/BSF
0x0A,4
LGOTO k
0x0A,3
Long GOTO
CALL k
BCF/BSF
BCF/BSF
0x0A,4
MOVFW f
NEGF f,d
SETC
SETDC
SETZ
SKPC
SKPDC
SKPNC
SKPNDC
SKPNZ
SKPZ
SUBCF f,d
SUBDCF f,d
TSTF f ¨
GOTO k
MOVF f,0
COMF f,1
INCF f,d
Set Carry
BSF
3,0
Set Digit Carry
BSF
3,1
Set Zero
BSF
3,2
Skip on Carry
BTFSS 3,0
Skip on Digit Carry
BTFSS 3,1
Skip on No Carry
BTFSC 3,0
Skip on No Digit Carry BTFSC 3,1
Skip on Non Zero
BTFSC 3,2
Skip on Zero
BTFSS 3,2
Subtract Carry from File BTFSC 3,0
DECF f,d
Subtract Digit Carry
BTFSC 3,1
from File
DECF f,d
Test File
MOVF f,1
Move File to W
Negate File
Mikroprocesor MCU PIC16F1937
PIC16F887
Hlavní rozdíly mezi PIC16F1937 a PIC16F887 :
-
oscilátor až 32MHz
paměť SRAM 512(bytes)
časovače (Timers) 5
CCP (PWM) 5

Podobné dokumenty

Radiová meteorická detekcn´ı stanice RMDS02C

Radiová meteorická detekcn´ı stanice RMDS02C jeho rozměr je velmi malý (0.05 - 200mm) a je tedy zlomkem vlnové délky rádiových vln. Tato malá zrnı́čka prachu ale vstupujı́ do hornı́ch vrstev atmosféry supersonickými rychlostmi. Což...

Více

Osmibitové mikrořadiče Microchip

Osmibitové mikrořadiče Microchip Signál RESET vždy nastaví obsah PC na hodnotu 0000h, kde je uložen Reset Vector. Potvrzené přerušení nastavuje obsah PC na adresu 0004h, na této adrese je uložen Interrupt Vector. O požadavcích na ...

Více

Osmibitové mikrořadiče Microchip

Osmibitové mikrořadiče Microchip USART,I2C,SPI 14~28 12x 10b

Více

3.2. Oživení

3.2. Oživení Robotické aplikace se stále více vyskytují v průmyslu, což je důvodem, proč se rozvíjí na středních odborných školách výuka automatizace, robotiky a mikroprocesorové techniky, a tak lze na středníc...

Více

10 Aritmetické operace

10 Aritmetické operace • Důležité: Význam příznakových bitů (Flags, PSW, Status) pro aritmetické operace: • Po aritmetických operacích (a některých dalších) se nastaví příznakové bity C, OV, AC, N, Z ve stavovém slově (F...

Více

Úbytkový seznam - Knihy - Šmidingerova knihovna Strakonice

Úbytkový seznam - Knihy - Šmidingerova knihovna Strakonice 51801 M 908.9 Al'banov, Valerian Zajatci bílé smrti na plovoucích

Více

Elektronické hodiny - SPŠ sdělovací techniky

Elektronické hodiny - SPŠ sdělovací techniky II.I Mechanická část Hodiny jsme se rozhodli zabudovat do plastové krabičky. Do středu krabičky jsem umístili plech, nad plechem jsme umístili ciferník, pod plechem motory a elektronika. Motory jsm...

Více

Monolitické mikropočítače IV

Monolitické mikropočítače IV ; počítadlo stisků ; příznakové bity

Více

PIC krok za krokem

PIC krok za krokem ADDLW k ADD Literal to W Sečte obsah registru W s konstantou, výsledek se uloží do W. Ovlivňuje stavové bity: C, DC, Z Počet cyklů: 1 ADDWF f,d ADD W to F Sečte obsah W s registrem f. Je-li d = 0, ...

Více