mini

Transkript

mini
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

PIC 12F675

PIC 12F675 Programování v aplikaci (ICSP™) prostĜednictvím dvou vývodĤ

Více

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Č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íce

PIC16F87/88 - Tlg.estranky.sk

PIC16F87/88 - Tlg.estranky.sk Dostupný paměťový prostor v mikropočítačích PIC16F87 a PIC16F88 Paměť programu typu Flash 4K x 14

Více

STEDNÍ PRMYSLOVÁ ŠKOLA ELEKTROTECHNIKY

STEDNÍ 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íce

vydání č. 2 - Asociace prádelen a čistíren

vydá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

Fleck SXT

Fleck SXT Aby se veškeré změny uložily do paměti, musí programování proběhnout až do konce a vrátit se do provozního režimu, je tedy nutné projít všechny stupně programu tlačítkem až na konec. při výpadku pr...

Více