mini
Transkript
Organizace pamČĢového prostoru 1.0. 1 Celkový popis Tento popis obsahuje návod pro použití jednoþipového mikropoþítaþe PIC 16F84A. Další informace mĤžete nalézt v PICmicro™ Mid-Range Reference Manual, (DS33023), který lze získat na webové stránce výrobce. Uvedený materiál by mČl obsahovat veškeré doplĖující informace, nezbytné pro pochopení principu a þinnosti popisovaného zaĜízení. Pro detailní zvládnutí problematiky, zejména periferních modulĤ, je doporuþeno uvedené zdroje prostudovat. PIC16F84A patĜí do kategorie stĜednČ složitých mikropoþítaþĤ rodiny PIC. Blokové schéma souþástky je zobrazeno v obrázku 1-1. PamČĢ programu má velikost 1K slov a mĤže obsahovat až 1024 instrukcí. Každá instrukce má šíĜku operaþního kódu právČ 14 bitĤ. PamČĢ dat RWM (RAM), urþená pro použití jako zápisníková pamČĢ, má 68 bajtĤ. PamČĢ pro dlouhodobé uložení dat typu EEPROM má 64 bajtĤ. Mikropoþítaþ má celkem 13 univerzálních, uživatelsky konfigurovatelných V/V vývodĤ. NČkteré z nich jsou využity navíc pro následující funkce: x VnČjší pĜerušení x PĜerušení zmČnou na bránČ B x Vstup þítaþe/þasovaþe TMR0 Obrázek 1 - 1: Blokové schéma PIC 16F84A © 1998 Microchip Technology Inc. PIC16F84A Organizace pamČĢového prostoru 2.0. 3 Organizace pamČĢového prostoru PamČĢový prostor je rozdČlen na dvČ oddČlené þásti, pamČĢ programu a pamČĢ dat. Každá z tČchto pamČtí používá vlastní sbČrnice a pĜístup do nich je tedy možný bČhem jednoho instrukþního cyklu souþasnČ. PamČĢ dat je dále rozdČlena na oblast speciálních funkþních registrĤ (SFR) a pamČĢ RWM (RAM) pro všeobecné použití o velikosti 68 B. NejdĤležitČjší registry jsou popsány v této kapitole. SFR používané pro práci s periferiemi jsou popsány v samostatných popisech tČchto periferií. Do pamČti dat lze rovnČž zahrnout pamČĢ pro dlouhodobé uložení dat typu EEPROM o velikosti 64B. Tato pamČĢ není pĜímo adresovatelná. PĜístup do ní je možný prostĜednictvím nČkolika SFR pomocí nepĜímého adresování v rozsahu adres 0h-3Fh. Bližší popis je uveden v kapitole 3. Další informace o použití pamČtí lze nalézt v dokumentaci s oznaþením PICmicro™ Mid-Range Reference Manual (DS 33023). 2.1. Organizace pamČti programu Mikropoþítaþe Ĝady PIC16FXX mají programový þítaþ (PC) o velikosti 13 bitĤ. To umožĖuje adresovat celkovČ 8192 x 14 bitĤ pamČĢového prostoru v pamČti programu. PIC16F84A má fyzicky implementovanou pamČĢ programu pouze o velikosti 1024 x 14 bitĤ, viz obrázek 2-1. Pro adresování tohoto prostoru postaþuje pouze 10 bitĤ. Pokud by byl pomocí PC adresován pamČĢový prostor s vyšší adresou než 3FFh, budou nejvyšší tĜi bity ignorovány. Prakticky bude realizován pĜístup do fyzicky implementovaného adresového prostoru na adresu danou dolními deseti bity. NapĜíklad adresovou buĖku 20h lze adresovat rovnČž jako 420h, 820h, C20h, 1020h, 1420h, 1820h, nebo1C20h. Ve všech pĜípadech bude vykonána instrukce umístČná na adrese 20h. Po resetu program zahájí þinnost na adrese 0000h (vektor resetu). V pĜípadČ obsluhy pĜerušení bude proveden skok na adresu 0004h (vektor pĜerušení). Obrázek 2 - 1: Mapa pamČti programu a zásobníku – PIC 16F84A © 1998 Microchip Technology Inc. PIC16F84A Organizace pamČĢového prostoru 4 2.2. Organizace pamČti dat PamČĢ dat je rozdČlena do dvou þástí. První tvoĜí speciální funkþní registry (SFR), druhou pamČĢ pro všeobecné použití. Pomocí SFR lze Ĝídit veškerou þinnost zaĜízení. PamČĢ je rozdČlena do dvou bank, z nichž v každé je celkem 128 adresovatelných bunČk. Všechny buĖky nejsou fyzicky implementovány. Na nižších 12 adresách je umístČno celkem 15 SFR, pĜiþemž nČkteré SFR jsou pĜístupné v obou bankách. Na následujících 68 adresách zbývajících 116 pamČĢových bunČk jsou registry pamČti pro všeobecné použití RWM (RAM). Pro pĜepínání mezi bankami je nutné použít Ĝídící bity, které jsou obsaženy v registru STATUS. Mikropoþítaþ PIC16F84A používá jediný bit tohoto registru, RP0. Tento registr je pĜístupný v obou bankách. Organizace pamČti je znázornČna na obrázku 2-1. Instrukce MOVWF a MOVF mohou vzájemnČ pĜesouvat obsah stĜadaþe (W) a libovolného registru. Do pamČti dat lze pĜistupovat buć pĜímo, zadáním pĜímé adresy v rozsahu 0h - 7Fh pĜi respektování zvolené banky, nebo pomocí nepĜímého adresování. PĜi nepĜímém adresování se používá ukazatel nepĜímé adresy v registru FSR, do kterého je nutné umístit adresu v rozsahu 0h – FFh. V takovém pĜípadČ je volba banky pomocí bitu RP0 ignorována. Pomocí nepĜímého adresování tedy lze pĜistupovat do celé pamČti dat bez pĜepínání bank. PĜepínání mezi bankami se provádí nastavením bitu RP0, což je pátý bit STATUS registru (STATUS<5>). Nastavením tohoto bitu do log1 zvolíme banku 1. Vynulováním bitu volíme banku 0. Registry pro všeobecné použití jsou pĜístupné v obou bankách, tedy na stejné adrese jsou v obou bankách umístČny identické pamČĢové buĖky. 2.2.1. Registry pro všeobecné použití (pamČĢ RWM) Každý z 68 registrĤ pro obecné použití má 8 bitĤ a lze jej adresovat buć pĜímo nebo nepĜímo pomocí FSR (podrobnosti v kapitole 2.4.). Registry, které budou adresovány v bance 1, jsou mapovány do banky 0. PĜi adresování buĖky 8Ch je ve skuteþnosti adresována buĖka na adrese 0Ch. Obrázek 2 – 2: PIC16F84A- Mapa pamČti dat x- Neimplementované pamČĢové buĖky; pĜi þtení ‚0‘ Poznámka 1: – Nejedná se o fyzický registr © 1998 Microchip Technology Inc. PIC16F84A Organizace pamČĢového prostoru 5 2.3. Speciální funkþní registry Speciální funkþní registry se používají pro Ĝízení mikropoþítaþe a pro ovládání periferií PIC. Jedná se o statickou pamČĢ RWM (RAM). Organizace registrĤ a využití jednotlivých bitĤ je zĜejmé z obrázku 2 – 2 a tabulky 2 – 1. Z pohledu funkþního významu lze SFR rozdČlit na dvČ þásti. Registry, které ovládají základní funkce procesorové jednotky jsou popsány v této kapitole. ýinnost registrĤ, které ovládají periferie PIC, je rozebrána v popisu jednotlivých periferií. Tabulka 2 – 1: Celkový pĜehled speciálních funkþních registrĤ (SFR) Adresa Název bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 Hodnota po resetu (POR) Banka 0 00h INDF Adresováním tohoto registru je pĜistupováno do RWM na adresu FSR (nepĜímá adresa) 01h TMR0 8-bitový þítaþ/þasovaþ 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 80h 81h 82h 83h 84h 85h PCL Nižších osm bitĤ programového þítaþe (PC) STATUS (2) IRP RP1 RP0 Z DC C PD TO Ukazatel pro nepĜímé adresování pro pĜístup do RWM prostĜednictvím INDF FSR PORTA (4) ------RA4/TOCKI RA3 RA2 RA1 RA0 PORTB (5) RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0/INT Nepoužito, pĜi þtení "0" --EEDATA Pracovní registr pro uložení dat pĜi zápisu/þtení do pamČti EEPROM EEADR Ukazatel pro nepĜímé adresování buĖky pĜi zápisu/þtení do pamČti EEPROM Záchytný registr pro horních 5 bitĤ prog. þítaþe (PC)(1) PCLATH ------INTCON GIE EEIE T0IE INTE RBIE T0IF INTF RBIF Banka 1 INDF Adresováním tohoto registru je pĜistupováno do RWM na adresu v FSR (nepĜímá adresa) INTEDG T0CS T0SE PSA PS2 PS1 PS0 OPTION_REG RBPU PCL Nižších osm bitĤ programového þítaþe (PC) STATUS (2) IRP RP1 RP0 Z DC C PD TO FSR Ukazatel pro nepĜímé adresování pro pĜístup do RWM prostĜednictvím INDF Konfigurace jednotlivých bitĤ PORTA (vstup/výstup) TRISA ------- 86h TRISB Konfigurace jednotlivých portĤ PORTB (vstup/výstup) 87h --- Nepoužito, pĜi þtení "0" 88h EECON1 89h EECON2 8Ah PCLATH --- --- --- 8Bh INTCON GIE EEIE T0IE Význam: x = náhodný; Poznámky: --- --- ---- ---xxxx xxxx --- EEIF u = beze zmČny; xxxx xxxx xxxx xxxx ---0 0000 0000 000x ---- ---1111 1111 0000 0000 0001 1xxx xxxx xxxx ---1 1111 1111 1111 WRERR WREN WR RD Záchytný registr pro horních 5 bitĤ prog. þítaþe (PC)(1) RBIE T0IF ---0 x000 ---- ---- Registr pro zápis bezpeþnostní sekvence dat pro umožnČní zápisu do EEPROM INTE 0000 0000 0001 1xxx xxxx xxxx ---x xxxx xxxx xxxx INTF ---0 0000 RBIF 0000 000x - = nepoužito, pĜi þtení ‚0‘ 1: Horních pČt bitĤ programového þítaþe (PC) není pĜímo pĜístupných. PCLATH je záchytný registr pro zápis do PC. Obsah PCLATH mĤže být za urþitých podmínek zapsán do PC. Obsah horních 5 bitĤ PC nelze žádným zpĤsobem pĜesunout zpČt do PCLATH. 2: Bity registru STATUS TO a PD nejsou ovlivnČny resetem ( MCLR Reset) 3: Jiný reset (mimo spuštČní) obsahuje: vnČjší reset vyvolaný MCLR a reset vyvolaný þasovaþem Watchdog 4: Po všech druzích resetu jsou tyto vývody nastaveny jako vstupní 5: Hodnoty nastavené ve výstupním záchytném registru portu © 1998 Microchip Technology Inc. PIC16F84A Instrukþní sada 34 Tabulka 7 – 2: Instrukþní soubor mikropoþítaþe PIC16FXX Instrukce, operandy Instruk þní cykly Popis Instrukþní kód MSb LSb OvlivĖovan é pĜíznaky Pozn. BAJTOVċ ORIENTOVANÉ INSTRUKCE ADDWF f, d ADD W and F PĜiþtení registru ke stĜadaþi 1 00 0111 dfff ffff C. DC, Z 1, 2 ANDWF f, d AND W with F Logický souþin stĜadaþe a registru 1 00 0101 dfff ffff Z 1,2 2 CLRF f CLeaR F Nulování registru 1 00 0001 1fff ffff z CLRW - CLeaR W Nulování stĜadaþe 1 00 0001 0xxx xxxx Z COMF f, d COMplement F Negace registru 1 00 1001 dfff ffff Z 1, 2 DECF f, d DECrement F Snížení obsahu registru o jedniþku 1 00 0011 dfff ffff Z 1, 2 DECFSZ f, d DECrement F Skip if Zero Dekrementace registru, skok pĜi 0 1 (2) 00 1011 dfff ffff INCF f, d INCrement F Zvýšení obsahu registru o jedniþku 1 00 1010 dfff ffff INCFSZ f, d INCrement F Skip if Zero Inkrementace registru, skok pĜi 0 1 (2) 00 1111 dfff ffff IORWF f, d Inclusive OR W with F Logický souþet stĜadaþe a registru 1 00 0100 dfff ffff Z 1, 2 MOVF f, d MOVe F to W Naþtení registru do stĜadaþe 1 00 1000 dfff ffff Z 1, 2 MOVWF f MOVe W to F PĜesun stĜadaþe do registru 1 00 0000 1fff ffff NOP - No OPeration Prázdná instrukce 1 00 0000 0xx0 0000 RLF f, d Rotate Left through carry Rotace registru doleva pĜes pĜíznak C 1 00 1101 dfff fff C 1, 2 RRF f, d Rotate Right through carry Rotace registru doprava pĜes pĜíznak C 1 00 1100 dfff ffff C 1, 2 SUBWF f, d SUBtract W form F Odeþtení stĜadaþe od registru 1 00 0010 dfff ffff C, DC, Z 1, 2 SWAPF f, d SWAP nibbles in F ZámČna horního a dolního pĤlbajtu 1 00 1110 dfff ffff XORWF f, d eXclusive OR W with F nonekvivalence stĜadaþe a registru 1 00 0110 dfff ffff BCF f, b Bit Clear F Nulování bitu registru 1 01 00bb bfff ffff 1, 2 BSF f, b Bit Set F Nastavení bitu registru 1 01 01bb bfff ffff 1, 2 BTFSC f, b Bit Test F Skip if Clear Skok pĜi nulovém bitu registru 1 (2) 01 10bb bfff ffff 3 BTFSS f, b Bit test F Skip if Set Skok pĜi nastaveném bitu registru 1 (2) 01 11bb bfff ffff 3 1, 2, 3 Z 1, 2 1, 2, 3 1, 2 Z 1, 2 BITOVċ ORIENTOVANÉ INSTRUKCE © 1998 Microchip Technology Inc. PIC16F84A Instrukþní sada 35 ěÍDÍCÍ INSTRUKCE ADDLW k ADD Literal and W PĜiþtení konstanty ke stĜadaþi 1 11 111x kkkk kkkk C, DC, Z ANDLW k AND Literal with W Logický souþin stĜadaþe a konstanty 1 11 1001 kkkk kkkk Z CALL k CALL subroutine Volání podprogramu 2 10 0kkk kkkk kkkk CLRWDT - CleaR WatchDog Timer Nulování þasovaþe Watchdog 1 00 0000 0110 0100 GOTO k GO TO adress Skok na náveští 2 10 1kkk kkkk kkkk IORLW k Inclusive OR LIteral with W Logický souþet stĜadaþe a konstanty 1 11 1000 kkkk kkkk MOVLW k MOVe Literal to W 1 11 00xx kkkk kkkk RETFIE - RETurn From Interrupt En. Návrat z podprogramu s povolením pĜerušení 2 00 0000 0000 1001 RETLW k RETurn with LIteral in W Návrat z podprogramu s konstantou 2 11 01xx kkkk kkkk RETURN - RETURN from subroutine Návrat z podprogramu 2 00 0000 0000 1000 SLEEP - go into standby mode SLEEP zahájení režimu Sleep 1 00 0000 0110 0011 TO , PD SUBLW k SUBtract W from Literal Odeþtení stĜadaþe od konstanty 1 11 110x kkkk kkkk C, DC, Z XORLW k eXclusive OR Literal with W nonekvivalence stĜadaþe a konstanty 1 11 1010 kkkk kkkk u TO , PD Z Poznámky: 1: Pokud bude záchytný registr brány (PORTA nebo PORTB) modifikován (napĜíklad naþtením sebe sama instrukcí MOVF PORTB,1), bude do nČj zapsána hodnota, která bude v okamžiku vykonání instrukce pĜítomna na vnČjších vývodech souþástky. Pokud bude napĜíklad v záchytném registru vývodu konfigurovaném jako vstup hodnota log.‘1‘ a tento vývod bude vnČjším obvodem udržován ve stavu log.‘0‘, bude po provedení instrukce modifikující pĜíslušný záchytný registr zapsána na odpovídající bit log.‘0‘. 2: Pokud je operandem této instrukce (a pĜípadnČ i cílovým registrem pĜi d=1) registr TMR0, dojde pĜi vykonání této instrukce rovnČž k vynulování pĜeddČliþky, pokud je tato v této dobČ pĜipojena k þítaþi Timer0. 3: Pokud dojde k zápisu do programového þítaþe PC nebo pokud je splnČna podmínka instrukce podmínČného vČtvení programu, trvá vykonání této instrukce dva instrukþní cykly. Druhý instrukþní cyklus odpovídá vykonání NOP. Poznámka: Další informace o instrukþním souboru jsou k dispozici v dokumentaci DS33023 s názvem : PICmicro™ MidRange MCU Family Reference Manual. © 1998 Microchip Technology Inc. PIC16F84A Instrukþní sada 7.1. ADDLW 36 Popis instrukcí (v abecedním poĜádku) ADD Literal and W BCF pĜiþtení konstanty ke stĜadaþi nulování bitu registru Syntaxe: Operandy: návČští ADDLW k; komentáĜ k = (0-225) Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: (W) = (W) + k C. DC, Z Operace: OvlivĖované pĜíznaky: Popis: ADDWF Obsah stĜadaþe je seþten s osmi bitovou konstantou a výsledek je umístČn do stĜadaþe. ADD W and F BSF pĜiþtení registru ke stĜadaþi Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: ANDLW návČští ADDWF f, d; komentáĜ f = (0-127) d=(0,1) (W) + k ĺ (cílový registr) C. DC, Z Obsah registru W se pĜiþte k obsahu registru f. Je-li hodnota ‚d‘ = 0, pak se výsledek zapíše do registru W. Je-li hodnota ‚d‘ = 1, zapíše se výsledek zpČt od registru f. AND Literal with W Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: BTFSS Je vynulován bit s adresou ‚b‘ v registru s adresou ‚f‘ Bit Set F návČští BSF f, b; komentáĜ f = (0-127) b=(0-7) f(b)=1 žádné Je nastaven bit s adresou ‚b‘ v registru s adresou ‚f‘ Bit Test F Skip if Set skok pĜi nastaveném bitu registru Syntaxe: Operandy: návČští ANDLW k; komentáĜ k = (0-255) Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: (W) = (W).AND.(k) Z Operace: OvlivĖované pĜíznaky: Popis: ANDWF návČští BCF f, b; komentáĜ f = (0-127) b=(0-7) f(b)=0 žádné nastavení bitu registru logický souþin stĜadaþe a konstanty Je provedena operace logického souþinu mezi obsahem stĜadaþe a osmi bitovou konstantou. Výsledek je umístČn do stĜadaþe. Bit Clear F návČští BTFSS f, b; komentáĜ f = (0-127) b=(0-7) skok za podmínky f(b)=1 žádné Pokud je bit s adresou ‚b‘ v registru s adresou ‚f‘ roven ‚0‘, je následující instrukce vykonána. Pokud je tento bit roven ‚1‘, je místo následující instrukce vykonána vždy instrukce NOP. Doba vykonání instrukce je v tomto pĜípadČ 2 instrukþní cykly. AND W with F logický souþin stĜadaþe a registru Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: návČští ANDWF f, d; komentáĜ f = (0-127) d=(0,1) (cílový registr) = (W).AND.(f) Z Je provedena operace logického souþinu mezi obsahem stĜadaþe a obsahem registru. Výsledek je umístČn do stĜadaþe pro d=0 nebo do registru pro d=1. © 1998 Microchip Technology Inc. PIC16F84A Instrukþní sada BTFSC Bit Test F Skip if Clear 37 CLRWDT Syntaxe: Operandy: Operace: návČští BTFSC f, b; komentáĜ f = (0-127) b=(0-7) skok za podmínky f(b)=0 CLeaR WatchDog Timer nulování þasovaþe Watchdog skok pĜi nulovém bitu registru Syntaxe: Operandy: návČští CLWDT; komentáĜ žádné Operace: WDT = 0x00 pĜeddČliþka Watchdog = 0 pĜíznak TO = 1 pĜíznak PD = 1 OvlivĖované pĜíznaky: Popis: CALL žádné Pokud je bit s adresou ‚b‘ v registru s adresou ‚f‘ roven ‚1‘, je následující instrukce vykonána. Pokud je tento bit roven ‘0‘ je místo následující instrukce vykonána vždy instrukce NOP. Doba vykonání instrukce je v tomto pĜípadČ 2 instrukþní cykly. CALL subroutine OvlivĖované pĜíznaky: Popis: TO , PD Je vynulován þítaþ Watchdog a jeho pĜeddČliþka. Jsou nastaveny pĜíznakové bity TO a PD . COMF vyvolání podprogramu Komplement F negace registru Syntaxe: Operandy: návČští CALL k; komentáĜ k= (0-2047) Syntaxe: Operandy: návČští COMF f, d; komentáĜ f = (0-127) d=(0,1) Operace: STACK = (PC)+1 PC(b10-b0) = k PC(b12,b11) = PCLATH (b4,b3) žádné Operace: (cílový registr) = (f) OvlivĖované pĜíznaky: Popis: Z OvlivĖované pĜíznaky: Popis: CLRF Je volán podprogram ležící v pamČti programu na adrese ‚k‘. Do zásobníku je uložena návratová adresa. Adresa podprogramu v rozsahu (0-2047) je vložena do programového þítaþe PC. Horní dva bity programového þítaþe jsou souþasnČ doplnČny ze záchytného registru PCLATH. TĜi nižší bity PCLATH jsou v tomto pĜípadČ ignorovány. Instrukce trvá dva instrukþní cykly. CLeaR F DECF nulování registru návČští CLRF f; komentáĜ f = (0-127) Syntaxe: Operandy: Operace: f = 0x00 Z=1 Z Operace: CLRW Je vynulován obsah registru f a je nastaven pĜíznak nuly Z. DECrement F snížení obsahu registru o jedniþku Syntaxe: Operandy: OvlivĖované pĜíznaky: Popis: Obsah registru je negován a výsledek je umístČn do stĜadaþe pro d=0 nebo do registru pro d=1 OvlivĖované pĜíznaky: Popis: návČští DECF f, d; komentáĜ f = (0-127) d=(0,1) (f) - 1 ĺ (cílový registr) Z Od obsahu registru je odeþtena jedniþka a výsledek je uložen do stĜadaþe pro d=0 nebo do registru pro d=1. CLeaR W nulování stĜadaþe Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: návČští ; komentáĜ žádné (implicitnČ je nastaven stĜadaþ) (W) = 0x00 Z=1 Z Je vynulován obsah stĜadaþe a je nastaven pĜíznak nuly Z. © 1998 Microchip Technology Inc. PIC16F84A Instrukþní sada DECFSZ DECrement F Skip if Zero 38 INCFSZ Dekrementace registru, skok pĜi 0 Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: GOTO návČští DECFSZ f, d; komentáĜ f = (0-127) d=(0,1) (cílový registr) = (f) - 1 Skok pĜi výsledku rovném ‚0’ žádné Od obsahu registru je odeþtena jedniþka a výsledek je umístČn do stĜadaþe pro d=0 nebo do registru pro d=1. Pokud není výsledek roven ‚0‘, je následující instrukce vykonána. Pokud je výsledek roven ‚0‘, je místo následující instrukce vykonána vždy instrukce NOP. Doba vykonání instrukce je v tomto pĜípadČ dva instrukþní cykly GO TO adress Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: IORLW Skok na návČští Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: INCF návČští GOTO k; komentáĜ k= (0-2047) PC(b10-b0) = k PC(b12,b11) = PCLATH (b4,b3) žádné Je proveden nepodmínČný skok na urþenou adresu. Adresa v rozsahu (02047) je vložena do programového þítaþe PC. Horní dva bity programového þítaþe jsou souþasnČ doplnČny ze záchytného registru PCLATH. TĜi nižší bity PCLATH jsou v tomto pĜípadČ ignorovány. Instrukce trvá dva instrukþní cykly. INCrement F Operace: OvlivĖované pĜíznaky: Popis: návČští INCF f, d; komentáĜ f = (0-127) d=(0,1) (cílový registr) = (f) + 1 Z K obsahu registru je pĜiþtena jedniþka a výsledek je uložen do stĜadaþe pro d=0 nebo do registru pro d=1. © 1998 Microchip Technology Inc. návČští INCFSZ f, d; komentáĜ f = (0-127) d=(0,1) (cílový registr) = (f) + 1 Skok pĜi výsledku rovném ‚0‘ žádné K obsahu registru je pĜiþtena jedniþka a výsledek je umístČn do stĜadaþe pro d=0 nebo do registru pro d=1. Pokud není výsledek roven ‚0‘, je následující instrukce vykonána. Pokud je výsledek roven ‚0‘, je místo následující instrukce vykonána vždy instrukce NOP. Doba vykonání instrukce je v tomto pĜípadČ 2 instrukþní cykly. Inclusive OR Literal with W logický souþet stĜadaþe a konstanty Syntaxe: Operandy: Operace: návČští IORLW k; komentáĜ k = (0-255) (W) = (W) OR k OvlivĖované pĜíznaky: Popis: Z IORWF zvýšení obsahu registru o jedniþku Syntaxe: Operandy: INCrement F Skip if Zero inkrementace registru, skok pĜi 0 Je provedena operace logického souþtu mezi obsahem stĜadaþe a osmi bitovou konstantou. Výsledek je umístČn do stĜadaþe. Inclusive OR W with F logický souþet stĜadaþe a registru Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: návČští IORWF f, d; komentáĜ f = (0-127) d=(0,1) (cílový registr) = (W) OR (f) Z Je provedena operace logického souþtu mezi obsahem stĜadaþe a obsahem registru. Výsledek je umístČn do stĜadaþe pro d=0 nebo do registru pro d=1. PIC16F84A Instrukþní sada MOVF MOVe F to W 39 RETFIE naþtení registru do stĜadaþe Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: MOVLW návČští MOVF f, d; komentáĜ f = (0-127) d=(0,1) (cílový registr) = (f) Z Obsah registru je umístČn do stĜadaþe pro d=0. Operand d=1 je vhodné použít pĜi testování obsahu registru na nulu, protože instrukce ovlivĖuje pĜíznak nuly Z. MOVe Literal to W Syntaxe: Operandy: návČští RETFIE; komentáĜ žádné Operace: (PC) = STACK GIE = 1 žádné OvlivĖované pĜíznaky: Popis: RETLW naþtení konstanty do stĜadaþe návČští MOVLW k; komentáĜ k = (0-225) (W) = k Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: žádné OvlivĖované pĜíznaky: Popis: MOVWF MOVe W to F RETURN pĜesuĖ stĜadaþ do registru Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: NOP návČští MOVWF f; komentáĜ f = (0-127) (f) = (W) žádné Obsah stĜadaþe je pĜesunut do registru. Do programového þítaþe je umístČna návratová adresa z vrcholu zásobníku a souþasnČ je povoleno pĜerušení nastavením bitu GIE. Instrukce trvá dva instrukþní cykly. RETurn with Literal in W návrat z podprogramu s konstantou Syntaxe: Operandy: Operace: Do stĜadaþe je naþtena osmibitová konstanta. Bity v operaþním kódu, který nemají žádný význam budou pĜeloženy jako ‚0‘. RETurn From Interrupt návrat s povolením pĜerušení návČští RETLW k; komentáĜ k = (0-225) (PC) = STACK (W) = k žádné Do programového þítaþe je umístČna návratová adresa z vrcholu zásobníku a souþasnČ je do stĜadaþe naþtena osmibitová konstanta, která je souþástí instrukþního kódu. Instrukce trvá dva instrukþní cykly. RETURN from subroutine návrat z podprogramu Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: návČští RETURN; komentáĜ žádné (PC) = STACK žádné Je proveden návrat z podprogramu tím, že do programového þítaþe je umístČna návratová adresa z vrcholu zásobníku. Instrukce trvá dva instrukþní cykly. No OPeration prázdná instrukce Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: návČští NOP; komentáĜ žádné žádná operace žádné BČhem jednoho instrukþního cyklu nedochází k žádné operaci © 1998 Microchip Technology Inc. PIC16F84A Instrukþní sada RLF Rotate Left F 40 SUBLW rotace registru doleva pĜes C Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: RRF návČští ; komentáĜ f = (0-127) d=(0,1) (cílový registr) = rotace (f) doleva C Obsah registru je posunut o jeden bit doleva pĜes C – pĜíznak pĜenosu CARRY (rotace probíhá pĜes devČt bitĤ). Výsledek je umístČn do stĜadaþe pro d=0 nebo do registru pro d=1. C Registr f Rotate Right F Syntaxe: Operandy: návČští SUBLW k; komentáĜ k = (0-255) Operace: OvlivĖované pĜíznaky: Popis: (W) = k – (W) C, DC, Z SUBWF rotace registru doprava pĜes C Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: SLEEP návČští RRF f, d; komentáĜ f = (0-127) d=(0,1) (cílový registr) = rotace (f) doprava C Obsah registru je posunut o jeden bit doprava pĜes C – pĜíznak pĜenosu CARRY (rotace probíhá pĜes devČt bitĤ). Výsledek je umístČn do stĜadaþe pro d=0 nebo do registru pro d=1. C Registr f go into mode SLEEP SUBtract W from Literal odeþtení stĜadaþe od konstanty Obsah stĜadaþe je odeþten (metodou dvojkového doplĖku) od obsahu registru a výsledek je uložen do stĜadaþe pro d=0 nebo do registru pro d=1. SUBtract W from F odeþtení stĜadaþe od registru Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: SWAPF zahájení režimu Sleep návČští SUBWF f, d; komentáĜ f = (0-127) d=(0,1) (cílový registr) = (f) – (W) C, DC, Z Obsah stĜadaþe je odeþten (metodou dvojkového doplĖku) od obsahu registru a výsledek je umístČn do stĜadaþe pro d=0 nebo do registru pro d=1. SWAP nibbles in F zámČna dolního a horního pĤlbajtu Syntaxe: Operandy: návČští SLEEP; komentáĜ žádné Syntaxe: Operandy: Operace: WDT = 0x00h pĜeddČliþka Watchdog = 0 Operace: návČští SWAPF f, d; komentáĜ f = (0-127) d=(0,1) f(b3-b0) = f(b7-b4) f(b7-b4) = f(b3-b0) pĜíznak TO = 1 pĜíznak PD = 0 OvlivĖované pĜíznaky: Popis: TO , PD Vynuluje se bit PD , nastaví se bit OvlivĖované pĜíznaky: Popis: TO . ýasovaþ Watchdog a jeho pĜeddČliþka se nulují. Procesor poþítaþe je uveden do režimu Sleep ve kterém je zastaven taktovací oscilátor. XORLW eXclusive OR Lit. With W XORWF nonekvivalence stĜadaþe a konst. návČští XORLW k; komentáĜ k = (0-225) Syntaxe: Operandy: Operace: OvlivĖované pĜíznaky: Popis: (W) = (W) XOR k Z Operace: OvlivĖované pĜíznaky: Popis: © 1998 Microchip Technology Inc. Jsou vzájemnČ zamČnČny þtyĜi nižší a þtyĜi vyšší bity registru, když je zachováno jejich poĜadí. Výsledek je umístČn do stĜadaþe pro d=0 nebo do registru pro d=1. eXclusive OR W with F nonekvivalence stĜadaþe a registru Syntaxe: Operandy: Je provedena logická operace nonekvivalence mezi obsahem stĜadaþe a osmi bitovou konstantou. Výsledek je umístČn do stĜadaþe. C, DC, Z návČští XORLF k; komentáĜ f = (0-127) d=(0,1) (cílový registr) = (W) XOR (f) Z Je provedena logická operace nonekvivalence mezi obsahem stĜadaþe a obsahem registru. Výsledek je umístČn do stĜadaþe pro d=0 nebo do registru pro d=1. PIC16F84A
Podobné dokumenty
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
komunikační obvody pracují s úrovněmi TTL (Transistor-transistor logic) a pro připojení k PC je třeba je konvertovat pomocí převodníku úrovní. Je zde uvedeno aplikační schéma konvertoru RS232 (Reco...
VícePIC16F87/88 - Tlg.estranky.sk
Dostupný paměťový prostor v mikropočítačích PIC16F87 a PIC16F88 Paměť programu typu Flash 4K x 14
VíceSTEDNÍ PRMYSLOVÁ ŠKOLA ELEKTROTECHNIKY
Model Ĝeší problém Ĝídícího softwaru a elektroniky pro Ĝízení osobního výtahu. Z hlediska softwaru je to pĜedevším správná algoritmizace, ošetĜení nežádoucích elektromechanických jevĤ, realizace Ĝí...
Vícevydání č. 2 - Asociace prádelen a čistíren
po svČtČ. Je to snad také jediná firma, která veĜejnČ prohlásila, že krize se jich pĜíliš nedotkla. Imesa byla jediná italská firma s prezentací prací techniky – všichni ostatní výrobci se soustĜed...
Více