Popis instrukční sady procesorů PIC
Transkript
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
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ž...
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 ...
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...
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...
Úbytkový seznam - Knihy - Šmidingerova knihovna Strakonice
51801 M 908.9 Al'banov, Valerian Zajatci bílé smrti na plovoucích
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...
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, ...