16

16



7 Instrukcje skoków i wywołań podprogramów 77

Przykład 2:

Lcd .On:

Dalej:


Jeśli do wyjścia portu PI.7 dołączona jest dioda elektroluminescencyjna (LED) jak na rysunku, to testując linię portu PI.7 można włączyć diodę wykonując instrukcję:

JBC Pl.7,Dalej


;jeśli bit Pl.7-1 to zeruj bit ;i wykonaj skok do etykiety ;{adresu) Dalej

Dioda elektroluminescencyjna (LED) świcd się jeśli na linii Pl.7 wystąpi stan zera logicznego (przepływ prądu) l jest zgaszona jeśli linia PI.7*1 (brak przepływu prądu). Dla włączonej diody testowany w instrukcji JBC warunek nie jest spełniony co i tak nic ma znaczenia, ponieważ dioda jest zapalona. Jeżeli dioda jest zgaszona to instrukacja JBC spowoduje jej włączenie.

DJNZ argumentadres


Decrement and Jump relative

Warunek:

Dziabnie:    PC <= PC + 2, Rn cr Rn - 1 Jeśli Rn * 0 to PC c= PC + rei

PC <= PC + 3, (adr) <= (adr) -1 Jeśli (adr) * 0 to PC c= PC + rei

Adresowanie:    Mnemonik:    Struktura bajtów:    Cykle    Znacz-

_.___maszynowe:    nfla:

rejestrowe:

DJNZ

Rn,rel

| 1 1 0 1 | 1 r r r | 2

-

1_E£l_1

bezpośrednie:

DJNZ

adr,rei

1 1 0 1 | 0 1 0 1 | 2

-

adr

,.-v^s

rei-

Dziabnie:

Zmniejszenie zawartości:

•    rejestru Rn, Rn « R7..R0,

•    komórki wewnętrznej pamięci RAM adresowanej bezpośrednio adresem adr.

Instrukcje zaliczane do grupy bajtowej wymiany danych przedstawiono w tabeli 4-1. Dotyczą one przesyłania danych między rejestrami procesora i wewnętrzną oraz zewnętrzną pamiędą RAM, a także pobierania argumentów z pamięci kodu programu.

Tabela 4-1. Instrukcje wymiany danych

Mnemonik instrukcji

Operaqe

Tryby

adresowania

Liczba

cykli

maszyn.

Instrukcje dotyczące wewnętrznej pamięa RAM (IDATA)

MOV A,<bajt>

A <= <bajt>

R B N P

1 lub 2

MOV <bajt>,A

<bajt> <= A

RB P

1 lub 2

MOV Rn,<bajt>

Rn <= <bajt>

R B N P

1 lub 2

MOV <bajt>,Rn

<bajt> c= Rn

RB P

1 lub 2

MOV QRi,<bajo

(Ri) c= <bajt>

B N P

1 lub 2

MOV <bajt>,@Ri

<bajt> c= (Ri)

B P

1 lub 2

MOV <adr>,*cadrl>

<adr> c= <adr1>

R B N P

2

MOV DPTR.#dana 16

DPTR c= rłdana 16

N

2

PUSH adr

stos c= (adr)

B

2

IKDP adr

(adr) <= stos

B

2

XCłl A,<bajt>

A <bajt>

RB 1*

1

XCHD A,0Ri

a3..0 ° ®r*3..0

P

1

Instrukcje dotyczące zewnętrznej parni ęd RAM (XDATA)

MOVX A,0Ri

A c= (256*P2+Ri)

P

2

MOVX @Ri.A

(256*P2+Ri) <= A

P

2

MOVX A,©DPTR

A c= (DPTR)

P

2

MOVX 0DPTRA-

(DPTR) ć= A

P

2

Instrukcje dotyczące pamięd kodu programu (CODĘ)

MOVC A,@A+DPTR

A c= (A+DPTR)

1

2

MOVC A,@A+PC

A c= (A+PC)

1

2

Instrukcje MOV A,<bajt>,.. ,MOV <adr>,<adrl> umożliwiają przesyłanie danych między dwoma komórkami wewnętrznej parnięd RAM, rejestrów specjalnych (SFR) i akumulatorem oraz stosowane są do wpisywania lub odczytywania 8-bitowych argumentów. Należy pamiętać, że rejestry specjalne (SFR) można adresować tylko bezpośrednio, a segment wewnętrznej pamięa RAM o adresach 80H..UFFH (w procesorach 8052 i nowszych) tylko pośrednio. Wyjaśniają to poniższe przykłady, w których podany tryb adresowania dotyczy drugiego argumentu. Najczęściej jest mm drugi lub trzed bajt instrukcji (w instrukcji MOV <adr>,<adrl>):

MOV A,R5    ;adresowanie rejestrowe,    A cr R5

qn/r,\c 1


Wyszukiwarka

Podobne podstrony:
16 7 Instrukcje skoków i wywołań podprogramów 77 Przykład 2: Lcd On: Dalej: Jeśli do wyjścia portu
10 7 Instrukcje skoków i wywołań podprogramów 83 CALL adr    CALL Uncondilional Dzia
10 7 Instrukcje skoków i wywołań podprogramów 73 AJMP Procedura_2 ;skok do Procedury 2 AJMP
14 7 Instrukcje skokow i wywołań podprogramów 79 CJNE argument_l,axgument_2,adres Compare and Jump
18 7 Instrukcje skoków i wywołań podprogramów 85 •    wpisanie pobranego adresu do l
14 7 Instrukcje skokow i wywołań podprogramów 79 CJNE argument_l.argumenl_2,adres Compaie and Jump
10 73 7 Instrukcje skoków i wywołań podprogramów AJMP Procedura_2 ;skok do Procedury 2 AJMP
18 7 łnsinjkgc skoków i wywołań podprogramów 75 7 łnsinjkgc skoków i wywołań podprogramów 75 JMP
12 7 Instrukcje skoków i wywoJag podprogramów 71 Przed omówieniem przedstawionych grup rozkazów wyj
lista rozkazow 3 Lista rozkazów mikroprocesora 8051. Instrukcje skoków i wywołań podprogramów Oznacz
16 3. Instrukcje modyfikacji bitów 87 Rozwiązanie problemu pokazano w poniższym przykładzie, realiz
12 7 Insnukcte skokpw i wywołań podprogramów 81 7 Insnukcte skokpw i wywołań podprogramów

więcej podobnych podstron