Popis instrukční sady - procesory PIC Aritmetické a logické operace

Podobné dokumenty
MIKROKONTROLERY PIC16F84

Organizace pam ového prostoru 1

Mikrořadiče. Ing. Jaroslav Bernkopf

PIC krok za krokem. Komentované příklady programů pro PIC

Monolitické mikropoèítaèe II

Jihočeská univerzita v Českých Budějovicích

Programování PICAXE18M2 v Assembleru

INFORMAČNÍ LED DISPLEJ


JIHOČESKÁ UNIVERZITA V ČESKÝCH BUDĚJOVICÍCH PEDAGOGICKÁ FAKULTA

Popis instrukční sady procesoru ADOP

IMPLEMENTACE JÁDRA 8-BITOVÉHO MIKROKONTROLÉRU DO FPGA A ASIC

Struktura a architektura počítačů

Mikroadie. Ing. Jaroslav Bernkopf

Struktura a architektura počítačů

SAMOČINNÁ SOLÁRNÍ ELEKTRÁRNA

Instrukční sada pro používání ControlLogix a CompactLogix výňatek

Monolitické mikropočítače III

Digitální zvukový procesor

Struktura a architektura počítačů

STŘEDNÍ PRŮMYSLOVÁ ŠKOLA SDĚLOVACÍ TECHNIKY Praha 1, Panská 856/3, , ,

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051

Struktura a architektura počítačů

Obr. 1 - Hlavní okno prostředí MPLAB

Osmibitové mikrořadiče Microchip PIC16F887

a operačních systémů

Procesor z pohledu programátora

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.

Jednočipové mikropočítače

Microchip. PICmicro Microcontrollers

Mikrokontroléry PIC a vestavěné systémy. PIC18 použití assembleru a jazyka C

Architektura jednočipových mikropočítačů PIC 16F84 a PIC 16F877. Tato prezentace vznikla jako součást řešení projektu FRVŠ 2008/566.


Strojový kód. Instrukce počítače

8. Laboratoř: Aritmetika a řídicí struktury programu

Vysoká škola chemicko-technologická v Praze Fakulta chemicko-inženýrská Ústav počítačové a řídicí techniky. Aplikace mikroprocesorů.

Střední odborná škola a Střední odborné učiliště, Dubno Ing. Miroslav Krýdl Tematická oblast ELEKTRONIKA

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Čísla, reprezentace, zjednodušené výpočty

Osmibitové mikrořadiče Microchip PIC16F1937

IMTEE Přednáška č. 11

Algoritmizace a programování

Struktura a architektura počítačů (BI-SAP) 7

Základy digitální techniky

Pohled do nitra mikroprocesoru Josef Horálek

Registry 32 bitové pro všeobecné použití: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP.

Abstrakt. Klíčová slova: diplomová práce, alarm, mobilní telefon, detektor, počítač, program, mikrokontrolér

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Systém přerušení. České vysoké učení technické Fakulta elektrotechnická

Přednáška 2 A4B38NVS - Návrh vestavěných systémů 2014, kat. měření, ČVUT - FEL, Praha J. Fischer A4B38NVS, 2014, J.Fischer, kat. měření, ČVUT - FEL 1

RISC a CISC architektura

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Architektury CISC a RISC, uplatnění v personálních počítačích

Jednočipové mikropočítače (mikrokontroléry)

Procesor. Základní prvky procesoru Instrukční sada Metody zvýšení výkonu procesoru

Úvod do mobilní robotiky NAIL028

Architektura počítačů. Instrukce a návrh instrukční sady. Lubomír Bulej KDSS MFF UK

CH_SW_71 - V1.0. Program vytváří z obvodu PIC16C71 / PIC16C711 přepínač vstupů pro NF zesilovač.

Princip funkce počítače

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce

Assembler - 2.část. poslední změna této stránky: Zpět

Klimatizace. Třída: 4.C. Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT. Skupina: 3. Zpráva číslo: 3

LED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: :01:48

Testování jednotky ALU a aplikace metody FMEA

CONFIGURATION zapisuje se na začátek inicializační části programu použitím direktivy preprocesoru pragma

Opakování programování

DIODOVÉ HODINY. Dominik Roček. Středisko Vyšší odborná škola a Středisko technických a uměleckých oborů Mariánská ulice 1100, Varnsdorf

Kubatova Y36SAP 8. Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR Kubátová Y36SAP-strojový kód 1

Základní uspořádání pamětí MCU

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

Architektury VLIW M. Skrbek a I. Šimeček

Vnitřní blokové uspořádání ADSP 21xx Vnitřní blokové uspořádání ADSP BF 548 (blackfin) Periférie ADSP BF 548 (blackfin)

Pohled do nitra mikroprocesoru

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

Přerušení POT POT. Přerušovací systém. Přerušovací systém. skok do obslužného programu. vykonávaný program. asynchronní událost. obslužný.

Principy komunikace s adaptéry periferních zařízení (PZ)

Zabezpečovací zařízení Filla Jakub Vojtášek Jindřich

INTELIGENTNÍ PROGRAMÁTOR JEDNOČIPOVÝCH MIKROPOČÍTAČŮ

Error [= chyba], Warning [= varování]. Nad ní jsou věty ve tvaru:

Mikrořadiče řady 8051.

Lojza - návrh a realizace µprocesoru

1. MIKROPROCESOR ATMEGA A/D PŘEVODNÍK MÓDY PŘEVODNÍKU Single Conversion Mode Auto Triggering Start...


Nejčastěji pokládané dotazy

Čísla, reprezentace, zjednodušené výpočty

Program "Světla" pro mikropočítač PMI-80

Podprogram DELAY.INC. - konstanty časových prodlev. RB3 equ 11b DEL1MS: DEL800: DEL400: DEL200 DEL100 DELAY: ret DEL1MS

Systém přerušení. Algoritmizace a programování. Struktura počítače - pokračování. Systémová struktura počítače pokrač.

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

Struktura a architektura počítačů (BI-SAP) 9

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:

Architektura počítačů Logické obvody

Adresní mody procesoru

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Snížení příkonu MCU. Vybavení pro MCU. Snížení příkonu MCU. Možnosti snížení příkonu

Architektury počítačů a procesorů

Úvod. Instrukce musí obsahovat: typ operace adresu operandu (operandů) typ operandů modifikátory adresy modifikátory operace POT POT

Transkript:

Popis instrukční sady - procesory PIC Aritmetické a logické operace ADDLW - 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 ADDWF - ANDLW - 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. DECF - (je-li d=0) d=1). INCF - IORLW - 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 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 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. 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 - COMF - 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 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). čísla 0. V opačném případě jsou ve výsledku jedničky. IORWF - Inclusive OR W with F IORWF f, d (W.or. f) f, d 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). SUBLW - 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 SUBWF f, d (f-w) d Odečte obsah registru W od obsahu registru f, výsledek uloží do registru W (je-li Ovlivňuje: C, DC,Z CLRWDT - předděličku, se bity 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 XORLW - XORWF - 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. 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). Instrukce přesunu dat MOVF - 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). MOVLW - MOVe Literal to W MOVLW k k W Registr W je naplněn osmibitovou konstantou k Ovlivňuje: - MOVWF - MOVe W to F MOVWF f W f Obsah registru W přesuneme do registru f Ovlivňuje: - Instrukce nulování a nastavení BCF - Bit Clear F BCF f,b 0 f (b) Vynuluje bit b v registru f. Ovlivňuje: - BSF - Bit Set F BSF f,b 1 f (b) Nastaví do log. 1 bit b v registru f. Ovlivňuje: - CLRF - CLeaR F CLRF f 00h f Vynuluje obsah registru f. CLRW - CLeaR W CLRW 00h W Vynuluje obsah registru W a nastaví Z bit ve stavovém registru. RLF - RRF - 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 Ovlivňuje: C 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 Ovlivňuje: C SWAPF - 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 - subroutine CALL CALL k PC+1 TOS; k PC<10:0>; PCLATH<4:3> PC<12:11> 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. RETLW - 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 - RETURN from subroutine RETURN TOS PC Návrat z podprogramu. Naplní hodnotu PC ze zásobníku. RETFIE - 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. Instrukce skoků v programu BTFSC - 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. (2 při skoku) Ovlivňuje: - BTFSS - 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. (2 při skoku) Ovlivňuje: - DECFSZ - 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. (2 je-li skok) Ovlivňuje: - GOTO - GO TO address (unconditional jump) 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. INCFSZ - 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. (2 je-li skok) Ovlivňuje: - Zvláštní instrukce NOP - No OPeration NOP neprovede nic neprovede nic Ovlivňuje: - SLEEP - 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

Rozšířená instrukční sada pro PIC16(L)F 1937/8/9 ADDWFC - ASRF - LSLF - LSRF - SUBWFB - MOVLB - + MOVLP - Add with Carry W and f Arithmetic Right Shift Logical Left Shift Logical Right Shift Substract with Borrow W from f Move literal to BSR Move literal to PCLATH 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 OPTION W OPTION Obsah registru W přesuneme do registru OPTION Ovlivňuje: - TRIS - load TRIS register TRIS f W TRIS registr f Uloží do řídícího registru portů TRIS (f = 5, 6 nebo 7) obsah registru W. Ovlivňuje: - 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 Description Equ Operation BRA k Relative Branch BRW k Rel. Branch with W GOTO $+W CALLW k Call Subroutine with W CALL $+W ADDCF f,d Add Carry to File BTFSC 3,0 ADDDCF f,d Add Digit Carry to File BTFSC 3,1 BC k Branch on Carry BTFSC 3,0 BDC k Branch on Digit Carry BTFSC 3,1 BNC k Branch on No Carry BTFSS 3,0 BNDC k Branch on No DigCarry BTFSS 3,1 BNZ k Branch on No Zero BTFSS 3,2 BZ k Branch on Zero BTFSC 3,2 CLRC Clear Carry BCF 3,0 CLRDC Clear Digit Carry BCF 3,1 CLRZ Clear Zero BCF 3,2 LCALL k Long Call BCF/BSF 0x0A,3 BCF/BSF 0x0A,4 CALL k L Long GOTO BCF/BSF 0x0A,3 BCF/BSF 0x0A,4 MOVFW f Move File to W MOVF f,0 NEGF f,d Negate File COMF f,1 SETC Set Carry BSF 3,0 SETDC Set Digit Carry BSF 3,1 SETZ Set Zero BSF 3,2 SKPC Skip on Carry BTFSS 3,0 SKPDC Skip on Digit Carry BTFSS 3,1 SKPNC Skip on No Carry BTFSC 3,0 SKPNDC Skip on No Digit Carry BTFSC 3,1 SKPNZ Skip on Non Zero BTFSC 3,2 SKPZ Skip on Zero BTFSS 3,2 SUBCF f,d Subtract Carry from File BTFSC 3,0 DECF f,d SUBDCF f,d Subtract Digit Carry BTFSC 3,1 from File DECF f,d TSTF f Test File MOVF f,1

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