Mikrokontroleri obitelji mcs 51 imaju tipsku arhitekturu. Mikrokontroleri MCS–51. Blok dijagram, ALU, memorija podataka. Način čitanja porta

22.04.2021 Zanimljiv

Intel je začetnik arhitekture obitelji MCS-51, koja je dobila ime po prvom predstavniku ove obitelji - mikrokontroleru 8051, izdanom 1980. godine na temelju n-MOS tehnologije. Sretan set periferni uređaji, mogućnost fleksibilnog odabira vanjske ili unutarnje programske memorije te pristupačna cijena osigurali su uspjeh ovog mikrokontrolera na tržištu. S tehnološke točke gledišta, mikrokontroler 8051 bio je vrlo složen proizvod za svoje vrijeme - u kristalu je korišteno 128 tisuća tranzistora, što je bilo 4 puta više od broja tranzistora u 16-bitnom mikroprocesoru 8086. Ovaj mikrokontroler ostaje jezgra obitelj MCS-51 do danas.

Glavni elementi osnovne arhitekture obitelji (arhitektura mikrokontrolera 8051) su:

8-bitni ALU;

4 banke registara, po 8 u svakoj;

Interna (rezidentna) programska memorija 4 KB, tipa ROM ili EPROM (8751);

Interna (rezidentna) podatkovna memorija 128 bajtova;

21 registar posebne funkcije;

Booleov procesor;

Dva 16-bitna mjerača vremena/brojača;

Kontrolor serijski priključak(UART);

Kontroler prekida s dvije razine prioriteta;

Četiri 8-bitna I/O porta, od kojih se dva koriste kao adresna/podatkovna sabirnica za pristup vanjskoj programskoj i podatkovnoj memoriji;

Ugrađen generator takta.

Zatim je pušten mikrokontroler 8052, koji je imao povećanu količinu rezidentne programske i podatkovne memorije, treći mjerač vremena i odgovarajuće prošireni kontroler prekida.

Sljedeći temeljni korak u razvoju MCS-51 bio je prijenos proizvodne tehnologije na CMOS (modifikacija 8xC51). To je omogućilo implementaciju načina rada Idl (mirovanje) i Power Down (smanjena potrošnja), koji omogućuju oštro smanjenje potrošnje energije kristala i otvorili su put za korištenje mikrokontrolera u aplikacijama koje ovise o energiji, na primjer, u samostalnim uređajima na baterije.

I posljednja važna faza u razvoju 8051 MK od strane Intela bilo je izdavanje mikrokontrolera 8xC51FA/FB/FC i 8xC51RA/RB/RC, koji se radi kratkoće često nazivaju 8xC51Fx i 8xC51Rx. Glavna značajka razlikovanja ove skupine kristala je prisutnost specijaliziranog mjerača vremena/brojača (SCA). Osim toga, 8xC51Rx mikrokontroleri dodatno sadrže watchdog timer (WDT). Pogledajmo detaljnije arhitekturu i funkcionalnost PCA.

RSA uključuje:

16-bitni mjerač vremena/brojač;

Pet 16-bitnih modula uzorka i usporedbe, svaki spojen na vlastitu liniju ulaza/izlaza mikrokontrolera.

Mjerač vremena/brojač opslužuje svih pet modula za uzorkovanje i usporedbu, koji se mogu programirati za obavljanje jedne od sljedećih funkcija:

16-bitno uzorkovanje vrijednosti timera na pozitivnom rubu vanjskog signala;

16-bitno uzorkovanje vrijednosti timera na negativnom rubu vanjskog signala;

16-bitno uzorkovanje vrijednosti timera na bilo kojem rubu vanjskog signala;

16-bitni programabilni mjerač vremena;

16-bitni izlazni uređaj velike brzine;

8-bitni PWM.

Sve gore navedene funkcije izvode se u PCA na hardverskoj razini i ne opterećuju središnji procesor. To vam omogućuje povećanje ukupne propusnosti, poboljšanje točnosti mjerenja i obrade signala te smanjenje vremena odgovora mikrokontrolera na vanjske događaje, što je posebno važno za sustave u stvarnom vremenu. PCA implementiran u 8xC51Fx (8xC51Rx) pokazao se tako

Oznaka

Maks. frekvencija (MHz)

ROM/EPROM (bajt)

brojila

Bila je sreća da je arhitektura ovih mikrokontrolera postala industrijski standard, a sam PCA je reproduciran mnogo puta u raznim modifikacijama MK 8051.

Neke karakteristike niza mikrokontrolera MCS-51 koje proizvodi Intel dane su u tablici 1.1.

U početku su najveća uska grla arhitekture MCS-51 bili 8-bitni ALU temeljen na baterijama i relativno sporo izvođenje instrukcija (najbrže instrukcije zahtijevaju 12 procesora za izvršenje).

Tablica 1.1

I/O

ADC, ulazi x bita

periferija,

osobitosti

U snaga (U)

Opcija niskog napona

4 razine IRQ, clock out

4 razine IRQ, clock out

Niskonaponska verzija 8xC51Fx

4 razine IRQ, clock out

4 razine IRQ, clock out

4 razine IRQ, clock out

riods taktna frekvencija(frekvencija MK sinkronizacije)). To je ograničilo upotrebu mikrokontrolera iz obitelji u aplikacijama koje zahtijevaju povećanu brzinu i složene izračune (16- i 32-bitni). Pitanje temeljne modernizacije arhitekture MCS-51 postalo je hitno. Problem modernizacije bio je kompliciran činjenicom da je početkom 90-ih već stvoreno mnogo razvoja u području softvera i hardver obitelji MCS-51, pa je stoga jedan od glavnih zadataka projektiranja nove arhitekture bila implementacija hardverske i softverske kompatibilnosti s razvojem temeljenim na MCS-51.

Kako bi se riješio ovaj problem, stvorena je zajednička grupa stručnjaka iz Intela i Philipsa, ali kasnije su se putevi ove dvije tvrtke razišli. Kao rezultat toga, 1995. godine pojavile su se dvije značajno različite obitelji: MCS-251/151 od Intela i MCS-51XA od Philipsa (vidi pododjeljak 1.2).

Glavne karakteristike MCS-251 arhitekture:

24-bitni linearni adresni prostor, adresiranje do 16 MB memorije;

Arhitektura registara koja omogućuje pristup registrima kao bajtovima, riječima i dvostrukim riječima;

Način adresiranja stranica za ubrzavanje dohvaćanja uputa iz vanjske programske memorije;

Red instrukcija;

Prošireni skup instrukcija, uključujući 16-bitne aritmetičke i logičke operacije;

Prošireni adresni prostor steka (do 64 KB);

Izvođenje najviše brza naredba u 2 takta.

MCS-251 set instrukcija uključuje dva skupa instrukcija - prvi set je kopija MCS-51 skupa instrukcija, a drugi se sastoji od proširenih instrukcija koje koriste prednosti MCS-251 arhitekture. Prije korištenja mikrokontrolera potrebno ga je konfigurirati, tj. pomoću programatora "spalite" konfiguracijske bitove koji određuju koji će skup instrukcija postati aktivan nakon uključivanja napajanja. Ako instalirate prvi skup uputa, tada će u ovom slučaju obitelj MCS-251 biti kompatibilna s MCS-51 na razini binarnog koda. Ovaj način rada naziva se binarni način rada. Ako inicijalno instalirate skup proširenih uputa (izvorni način), tada će programi napisani za MCS-51 zahtijevati rekompilaciju korištenjem unakrsnih alata za MCS-251. Source Mode vam omogućuje korištenje MCS-251 arhitekture s maksimalnom učinkovitošću i postizanje najviših performansi.

Za korisnike usredotočene na korištenje MCS-251 mikrokontrolera kao mehaničke zamjene za MCS-51, Intel proizvodi MCS-151 mikrokontrolere koji su već programirani u stanju binarnog načina rada.

Neke karakteristike niza mikrokontrolera MCS-251/151 dane su u tablici 1.1.

Trenutno Intel, usmjeren na tržište Pentium procesora, ograničava proizvodnju MCS-51 kristala. Općenito, za određenog programera to može proći nezapaženo, osim ako ne koristi mikrokontrolere 8xC51GB i 80C152Jx, koji nemaju svoje točne analoge među proizvodima drugih tvrtki. Što se tiče svih ostalih mikrokontrolera iz obitelji MCS-51, svi su oni mnogo puta replicirani od strane drugih tvrtki.

Osnova mikrokontrolera (vidi sliku 1) je 8-bitna aritmetičko-logička jedinica (ALU). MK memorija ima harvardsku arhitekturu, tj. logički podijeljena na: programsku memoriju - PP (unutarnju ili vanjsku), adresiranu 16-bitnim programskim brojačem (SC) i podatkovnu memoriju - unutarnju (Resident Data Memory - RPD) 128 (ili 256) bajtova, kao i vanjsku (External Memorija podataka – VPD) do 64 KB. Fizički, programska memorija implementirana je u ROM (samo za čitanje), a podatkovna memorija implementirana je u RAM (podaci se mogu pisati i čitati).

Prijem i dostava vanjski signali provodi se preko 4 osmobitna porta P0..P3. Prilikom kontaktiranja vanjska memorija programa (VPP) ili podatkovne memorije (DVD), priključci P0 i P2 koriste se kao multipleksirana vanjska adresa/podatkovna sabirnica. P3 port linije također mogu obavljati alternativne funkcije (vidi tablicu 1).

16-bitni DPTR registar tvori VPD adresu ili osnovnu adresu programske memorije u naredbi konverzije akumulatora. DPTR registar se također može koristiti kao dva neovisna 8-bitna registra (DPL i DPH) za pohranu operanda.

8-bitni interni registar naredbi (RC) prima kod naredbe koja se izvršava; ovaj kod dešifrira upravljački krug, koji generira upravljačke signale (vidi sliku 1).

Pristup posebnim funkcijskim registrima - RSF (SFR - zaokruženi su na sl. 1 točkasta linija) moguće je samo korištenjem izravnog adresiranja bajtova u rasponu adresa od 128 (80h) i više.


Rezidentna podatkovna memorija (RDM) u prvim modelima mikrokontrolera obitelji MCS-51 imala je volumen od 128 bajtova. Donja 32 bajta RPD-a također su registri Opća namjena– RON (4 banke po 8 RONs svaka). Program može kontaktirati jedan od 8 RON-ova aktivne banke. Odabir aktivne RON banke provodi se programiranjem dva bita u statusnom registru procesora - PSW.


Tablica 1 – MCS–51 dodjele pinova

Pin br. Oznaka Svrha
1..8 P1 8-bitni kvazi-dvosmjerni I/O port
9 RST

Reset signal (aktivna razina – visoka);

RST signal resetira: PC i većinu registara posebnih funkcija (SFR), onemogućujući sve prekide i mjerače vremena; odabire RON banku 0; zapisuje "sve jedinice" na portove P0_P3, pripremajući ih za unos; zapisuje kod 07H u pokazivač steka (SP);

10..17

8-bitni kvazi-dvosmjerni I/O port; nakon snimanja u odgovarajuću kategoriju "1" - obavlja dodatne (alternativne) funkcije:

Ulaz serijskog porta – RxD;

Izlaz serijskog porta – TxD;

Ulaz vanjskog prekida 0 – ~INT0;

Ulaz vanjskog prekida 1 – ~INT1;

Ulaz tajmera/brojača 0 – T0;

Ulaz tajmera/brojača 1 – T1;

Izlaz stroboskopa signal pri upisu u VPD – ~ WR;

Izlaz stroboskopa signal pri očitavanju s VPD – ~ RD;

18, 19 X1, X2 Pinovi za spajanje kvarcnog rezonatora ili LC kruga;
20 GND Opći zaključak;
21..28 P2 8-bitni kvazi-dvosmjerni I/O port; ili adresni izlaz A u načinu rada s vanjskom memorijom (VPP ili VPD);
29 PME Strobo za čitanje vanjske programske memorije, izdaje se samo prilikom pristupa vanjskom ROM-u;
30 PIVO Eksterna memorijska adresa strob (VPP ili VPD);
31 EA Onemogućavanje RPP-a, razina "0" na ovom ulazu prenosi MK na uzorkovanje naredbi samo sa piste ;
39..32 P0 8-bitni dvosmjerni I/O port; kada pristupa vanjskoj memoriji, izdaje adrese A (koje se zapisuju u vanjski registar pomoću ALE signala), a zatim razmjenjuje bajt sinkrono s ~PME signalom (za naredbe) ili ~WR,~RD (za podatke u VPD-u) , prilikom pristupa vanjskoj memoriji sve jedinice se zapisuju u registar porta P0, uništavajući tamo pohranjene informacije;
40 Ucc Izlaz napona napajanja

Prebacivanje RON banaka pojednostavljuje izvršavanje potprograma i rukovanje prekidima, jer nema potrebe slati sadržaj RON-ova glavnog programa na stog prilikom poziva podprograma (dovoljno je otići na drugu aktivnu banku RON-ova u podprogramu).

Pristup RPD-u moguć je korištenjem neizravnog ili izravnog adresiranja bajtova (izravno adresiranje bajtova omogućuje vam pristup samo prvih 128 bajtova RPD-a).

Prošireno RPD područje (za mikrokontrolere obitelji MCS-52 i sljedećih obitelji) od adrese 128 (80h) do 255 (FFh) može se adresirati samo korištenjem neizravne metode adresiranja.

Tablica 2 – Blok registara posebnih funkcija (s f r)

Mnemo kod Ime
0E0h * ACC Baterija
0F0h *B Registrirajte akumulatorski ekspander
0D0h *PSW Riječ statusa procesora
0B0h *P3 Priključak 3
0A0h *P2 Priključak 2
90h *P1 Priključak 1
80h * P0 Priključak 0
0B8h *IP Registar prioriteta prekida
0A8h *tj Registar maske prekida
99h SBUF Međuspremnik serijskog primopredajnika
98h * SCON Kontrola serijskog porta/registar statusa
89h TMOD Registar načina rada mjerača vremena/brojača
88h * TCON Tajmeri/Brojači Kontrola/Registar statusa
8Dh TH1 Mjerač vremena 1 (visoki bajt)
8Bh TL1 Mjerač vremena 1 (manji bajt)
8Ch TH0 Mjerač vremena 0 (visoki bajt)
8Ah TL0 Mjerač vremena 0 (manji bajt)
83h DPH Registar pokazivača podataka (DPTR) (visoki bajt)
82h DPL Registar pokazivača podataka (DPTR) (niski bajt)
81h SP Registar pokazivača steka
87h PCON Registar kontrole potrošnje energije

2. SOFTVERSKI MODEL MCS–51


MCS–51 VRSTE NAREDBI

Gotovo polovica instrukcija se izvršava u 1 strojnom ciklusu (MC). Uz frekvenciju kvarcnog oscilatora od 12 MHz, vrijeme izvršenja takve naredbe je 1 μs. Preostale instrukcije se izvršavaju u 2 strojna ciklusa, tj. za 2 μs. Samo se instrukcije množenja (MUL) i dijeljenja (DIV) izvode u 4 strojna ciklusa.

Tijekom jednog strojnog ciklusa dogode se dva pristupa programskoj memoriji (internoj ili vanjskoj) za čitanje dva bajta naredbe ili jedan pristup vanjskoj memoriji podataka (EDM).

3. METODE (NAČINI) ADRESIRANJA MCS–51

1. ADRESIRANJE REGISTRA – 8-bitni operand se nalazi u RON-u odabrane (aktivne) banke registara;

2 IZRAVNO ADRESIRANJE (označeno znakom – #) – operand se nalazi u drugom (a za 16-bitni operand u trećem) bajtu naredbe;

3 INDIREKTNO ADRESIRANJE (označeno znakom – @) – operand se nalazi u podatkovnoj memoriji (RDM ili VPD), a adresa memorijske ćelije sadržana je u jednom od RON-ova neizravnog adresiranja (R0 ili R1); u PUSH i POP naredbama adresa je sadržana u pokazivaču stoga SP; DPTR registar može sadržavati VPD adresu do 64K;

4 IZRAVNO ADRESIRANJE BAJTA – (dir) – koristi se za pristup RPD ćelijama (adrese 00h...7Fh) i posebnim funkcijskim registrima SFR (adrese 80h...0FFh);

5 ADRESIRANJE IZRAVNIH BITOVA – (bit) – koristi se za pristup zasebno adresabilnim 128 bitova koji se nalaze u RPD ćelijama na adresama 20H...2FH i zasebno adresabilnim bitovima posebnih funkcijskih registara (vidi tablicu 3 i model programa);

6 INDIREKTNO INDEKS ADRESIRANJE (označeno znakom – @) – pojednostavljuje pregled tablica u programskoj memoriji, PP adresa je određena zbrojem baznog registra (PC ili DPTR) i indeksnog registra (Akumulator);

7 IMPLICITNO (UGRAĐENO) ADRESIRANJE – kod naredbe sadrži implicitnu (standardno) referencu na jedan od operanda (najčešće na Akumulator).

4. FORMAT RIJEČI STANJA PROCESORA (PSW).

C – oznaka za prijenos (CARY) ili borrow, također obavlja funkcije “Boolean Accumulator” u naredbama koje rade s bitovima;

AC – pomoćna (dodatna) zastavica prijenosa – postavlja se na “1” ako je u naredbi zbrajanja (ADD, ADDC) došlo do prijenosa s niske tetrade na visoku tetradu (tj. s 3. bita na 4. bit);

F0 – korisnička zastavica – postavljena, resetirana i provjerena softverom;

RS1 RS0 Banka Adresa (dir)
0 0 0 00h..07h
0 1 1 08h..0Fh
1 0 2 10h..17h
1 1 3 18h..1Fh

RS1,RS0 – Odabir banke registra:

OV – Zastavica aritmetičkog prekoračenja; njegova vrijednost određena je operacijom "Isključivo ILI" ulaznog i izlaznog prijenosnog signala najvažnijeg bita ALU; jedna vrijednost ove zastavice označava da je rezultat aritmetičke operacije u kodu komplementa dvojke izvan dopuštenih granica: –128…+127; kada se izvrši operacija dijeljenja, OV flag se resetira, au slučaju dijeljenja s nulom, postavlja se; kod množenja se postavlja OV zastavica ako je rezultat veći od 255 (0FFH);

PSW bit – Rezerva, sadrži okidač, dostupan pisanjem ili čitanjem;

P – zastavica parnosti – je zbrajanje broja jediničnih bitova u akumulatoru parnom; generiran kombinacijskim sklopom (softver dostupan samo čitanjem).

Mikrokontroleri MCS-51 nemaju oznaku "Z". Ali u naredbama uvjetnog skoka (JZ, JNZ), trenutni (nula ili ne-nula) sadržaj akumulatora provjerava se kombinacijskim sklopom.

Sve naredbe za prijenos i razmjenu operanda mogu se izvršiti preko Akumulatora (vidi sliku 3). Štoviše, prijenosi iz/u vanjsku memoriju (programska memorija ili podatkovna memorija) mogu se izvršiti samo preko baterije.

Većina prijenosa također se može izvršiti putem izravnog bajta (dir). Postoje čak i dir-dir prijenosi (vidi sliku 3).

Prijenosi koji nedostaju iz RON u RON mogu se implementirati kao prijenosi iz RON u izravno adresiran bajt dir (uzimajući u obzir da se RON-ovi nalaze u početnom području rezidentne memorije podataka, čije se ćelije mogu adresirati kao dir).

Instrukcije XCH razmjene dopuštaju prijenos bajtova bez uništavanja oba operanda.

Aritmetičke instrukcije se izvršavaju samo u Akumulatoru. Stoga se prvi operand prvo mora staviti u akumulator, a zatim dodati ili oduzeti drugi operand. Rezultat se stavlja u akumulator.


SUBB naredba oduzimanja izvršava se samo s posudom (tj. Caryjeva zastavica se također oduzima od rezultata). Stoga, da biste izvršili naredbu oduzimanja bez posuđivanja, prvo morate izdati naredbu za brisanje zastavice C (CLRC).

Uputa za množenje jednobajtnih operanda - MULAB - postavlja rezultat od dva bajta (16 bita): niži bajt u akumulator, visoki bajt u B registar.

Rezultat izvršenja naredbe za dijeljenje jednobajtnih operanda - DIVAB - smješta se: kvocijent - akumulator, ostatak - u registar B.

INC aritmetička instrukcija dodaje jedan odabranom operandu. Aritmetička instrukcija DEC oduzima jedan od odabranog operanda. Naredba Decimal Accumulator Adjustment (DAA) pomaže vam dodati binarno kodirane decimalne (BCD) brojeve bez njihove pretvorbe u heksadecimalni format (hex format). Izvorni operandi moraju biti u BCD formatu, tj. Svaka tetrada od jednog bajta sadrži samo brojeve od 0 do 9 (ne mogu biti heksadecimalni brojevi: A, B, C, D, E, F). Stoga jedan bajt može sadržavati brojeve od 00 do 99 za upakirane BCD brojeve ili brojeve od 0 do 9 za nepakirane BCD brojeve.

Naredba DA A - decimalna korekcija izvodi akcije nad sadržajem Akumulatora nakon dodavanja BCD brojeva u procesoru (brojevi su dodani prema zakonima heksadecimalne aritmetike) na sljedeći način (vidi primjer):

· ako je sadržaj niže tetrade akumulatora veći od 9 ili je postavljena pomoćna zastavica prijenosa (AC = 1), tada se 6 dodaje sadržaju akumulatora (tj. nedostajućih šest znamenki u heksadecimalnom formatu);

· ako je nakon toga sadržaj najviše tetrade Akumulatora veći od 9 ili je postavljena zastavica C, tada se broj 6 dodaje najvišoj tetradi Akumulatora.

Naredba decimalne korekcije DA A ne koristi se nakon naredbe inkrementa (INC) jer naredba inkrementa ne utječe (mijenja) zastavice C i AC.

Logičke naredbe:

Logički "I" - ANL,

Logički "ILI" – ORL,

Logičke XOR naredbe - XRL - izvršavaju se u Akumulatoru (kao i aritmetičke), ali je moguće logičke naredbe izvršavati iu izravnom bajtu (dir). U ovom slučaju, drugi operand može biti:

U bateriji ili

Neposredni operand naredbe.

Naredbe rotacije (RR A, RL A) i naredbe rotacije preko CARY zastavice (RRC A, RLC A) ciklički pomiču sadržaj Akumulatora za 1 bit. Prijenosi bit operanda se provode samo preko C zastavice.

Arhitekturu obitelji MCS-51 uvelike određuje njegova namjena – konstrukcija kompaktan I jeftino digitalni uređaji. Sve funkcije mikroračunala implementirane su pomoću jednog mikro kruga. Obitelj MCS-51 uključuje cijela linija mikrosklopova od najjednostavnijih mikrokontrolera do prilično složenih. Mikrokontroleri obitelji MCS-51 omogućuju vam obavljanje zadataka upravljanja za različite uređaje i implementaciju pojedinačnih komponenti analognog kruga. Svi mikro krugovi ove obitelji rade s istim sustavom zapovijedanja, većina ih se provodi u identičnim slučajevima s odgovarajući pinout(numeriranje nogu za tijelo). To vam omogućuje korištenje mikro krugova za razvijeni uređaj različite tvrtke- proizvođači (kao što su Intel, Dallas, Atmel, Philips itd.) bez prerade shematski dijagram uređaja i programa.

Slika 1. Blok dijagram kontrolera K1830BE751

Blok dijagram regulatora prikazan je na slici 1. i sastoji se od sljedećih glavnih funkcionalnih jedinica: upravljačka jedinica, aritmetičko-logička jedinica, mjerač vremena/brojač jedinica, serijsko sučelje i jedinica prekida, programski brojač, podatkovna memorija i programska memorija. Dvosmjerna komunikacija provodi se pomoću interne 8-bitne sabirnice podataka. Pogledajmo pobliže svrhu svakog bloka. Gotovo svi članovi obitelji MCS-51 izgrađeni su prema ovoj shemi. Razni mikro krugovi ove obitelji razlikuju se samo u registrima posebne namjene (uključujući broj priključaka). Sustav zapovijedanja svi kontroleri obitelj MCS-51 sadrži 111 osnovne naredbe s formatom od 1, 2 ili 3 bajta i ne mijenja se pri prelasku s jednog čipa na drugi. To osigurava izvrsnu prenosivost programa s jednog čipa na drugi.

Jedinica za upravljanje i sinkronizaciju

Jedinica za mjerenje vremena i kontrolu dizajnirana je za generiranje sinkronizirajućih i upravljačkih signala koji osiguravaju koordinaciju suradnja OEVM blokira u svim dopuštenim načinima rada. Upravljačka jedinica uključuje:

  • uređaj za formiranje vremenskih intervala,
  • ulazno-izlazna logika,
  • registar naredbi
  • kontrolni registar potrošnja električne energije,
  • dekoder naredbi, računalna upravljačka logika.

Uređaj za formiranje vremenskih intervala dizajniran za generiranje i izdavanje internih taktnih signala faza, taktova i ciklusa. Broj ciklusa stroja određuje trajanje instrukcija. Gotovo sve računalne naredbe izvršavaju se u jednom ili dva strojna ciklusa, osim naredbi množenja i dijeljenja, čije je trajanje izvršenja četiri strojna ciklusa. Označimo frekvenciju glavnog oscilatora s F g. Tada je trajanje strojnog ciklusa jednako 12/F g ili iznosi 12 perioda signala glavnog oscilatora. I/O logika dizajnirana je za primanje i izlazne signale koji osiguravaju razmjenu informacija sa vanjski uređaji kroz ulazno/izlazne portove P0-P3.

Registar naredbi dizajniran za snimanje i pohranjivanje 8-bitnog operacijskog koda naredbe koja se izvršava. Operacijski kod se uz pomoć naredbi i računalne logike upravljanja pretvara u mikroprogram za izvršavanje naredbe.

Registar kontrole potražnje (PCON) omogućuje vam zaustavljanje mikrokontrolera kako biste smanjili potrošnju energije i smanjili razinu smetnji mikrokontrolera. Još veće smanjenje potrošnje energije i smetnji može se postići zaustavljanjem glavnog oscilatora mikrokontrolera. To se može postići mijenjanjem bitova registra kontrole potrošnje PCON-a. Za opciju proizvodnje n-MOS (serija 1816 ili strani čipovi koji nemaju "c" u sredini svog naziva), registar kontrole potrošnje PCON-a sadrži samo jedan bit koji kontrolira brzinu prijenosa podataka serijskog porta SMOD, i nema kontrolnih bitova potrošnje energije.

Uz članak "Arhitektura mikrokontrolera MCS-51" pročitajte:


http://site/MCS51/tablms.php


http://site/MCS51/SysInstr.php


http://site/MCS51/port.php

PLAN PREDAVANJA

1. Uvod

2. Aritmetičke i logičke upute

3. Naredbe za prijenos podataka

4. Booleove operacije

5. Upute za skok

1. Uvod

Sustav zapovijedanja MCS-51 podržava jedan skup instrukcija, koje su dizajnirane za izvršavanje 8-bitnih algoritama upravljanja aktuatorom. Moguće je koristiti brze metode adresiranje unutarnjeg RAM-a, izvođenje bitnih operacija na malim strukturama podataka. Postoji opsežan sustav za adresiranje jednobitnih varijabli kao neovisnog tipa podataka, koji omogućuje korištenje pojedinačnih bitova u logičkim i kontrolnim naredbama Booleove algebre.

Načini adresiranja : skup naredbi MCS-51 podržava sljedeće načine adresiranja. Izravno adresiranje: Operand je određen 8-bitnom adresom u instrukciji. Izravno adresiranje koristi se samo za donju polovicu Unutarnja memorija podaci i registri SFR. Neizravno adresiranje: Instrukcija se obraća registru koji sadrži adresu operanda. Ovaj tip adresiranje se koristi za vanjski i unutarnji RAM. Registri se mogu koristiti za određivanje 8-bitnih adresa R0 I R1 odabrana banka registra ili pokazivač na stog SP. Za 16-bitno adresiranje koristi se samo registar pokazivača podataka DPTR.

Upute za registraciju : registri R0–R7 trenutna banka registra može se adresirati putem posebnih instrukcija koje sadrže 3-bitno polje koje pokazuje broj registra u samoj instrukciji. U ovom slučaju u naredbi nedostaje odgovarajuće polje adrese. Operacije s posebnim registrima: neke instrukcije koriste pojedinačne registre (na primjer, operacije akumulatora, DPTR, itd.). U ovom slučaju adresa operanda uopće nije navedena u naredbi. Unaprijed je određeno kodom operacije.

Neposredne konstante : konstanta se može nalaziti izravno u naredbi nakon operacijskog koda.

Indeksno adresiranje : Indeksno adresiranje može se koristiti samo za pristup programskoj memoriji i samo u načinu čitanja. U ovom načinu rada pregledavaju se tablice u programskoj memoriji. 16-bitni registar ( DPTR ili programski brojač) označava osnovnu adresu željene tablice, a akumulator označava ulaznu točku u nju.

Skup naredbiima 42 mnemotehničke naredbe za određivanje 33 funkcije ovog sustava. Sintaksa većine instrukcija asemblerskog jezika sastoji se od mnemonike funkcije iza koje slijede operandi koji označavaju metode adresiranja i tipove podataka. Različite vrste podaci ili načini adresiranja određeni su postavljenim operandima, a ne promjenama u mnemotehnici.

Sustav naredbi može se podijeliti u pet skupina: aritmetičke naredbe; logičke naredbe; naredbe za prijenos podataka; naredbe bitnog procesora; naredbe za grananje i prijenos kontrole. Oznake i simboli koji se koriste u sustavu zapovijedanja navedeni su u nastavku.

Stol. Oznake i simboli koji se koriste u sustavu zapovijedanja

Oznaka, simbol

Svrha

Baterija

Registri trenutno odabrane banke registra

Broj učitanog registra navedenog u naredbi

direktno

Izravno adresabilna 8-bitna adresa interne podatkovne ćelije, koja može biti interna podatkovna RAM ćelija (0-127) ili registar posebne funkcije SFR (128-255)

Neizravno adresabilna 8-bitna interna podatkovna RAM ćelija

8-bitni direktno podaci uključeni u kod operacije (OPC)

podaciH

Najvažniji bitovi (15–8) neposrednih 16-bitnih podataka

podaciL

Bitovi najmanje važnosti (7–0) neposrednih 16-bitnih podataka

11-bitna odredišna adresa

adresarL

Najmanje važni bitovi odredišne ​​adrese

8-bitni bajt pomaka s predznakom

Izravno adresabilni bit čija adresa sadrži COP koji se nalazi u internom podatkovnom RAM-u ili posebnom funkcijskom registru SFR

a15, a14...a0

Bitovi odredišne ​​adrese

Sadržaj elementa X

Sadržaj na adresi pohranjen u elementu X

Bit M elementa X


+

*
I
ILI
XOR
/X

Operacije:
dodatak
oduzimanje
množenje
podjele
logičko množenje (operacija I)
logično zbrajanje (operacija ILI)
zbrajanje modulo 2 (isključivo ILI)
inverzija elementa X

Funkcijska mnemotehnika je jedinstveno povezana sa specifičnim kombinacijama metoda adresiranja i tipova podataka. Ukupno je u sustavu zapovijedanja moguće 111 takvih kombinacija.

2. Aritmetičke i logičke upute

Kako str primjer aritmetička instrukcija, operacija zbrajanja može se izvesti pomoću jedne od sljedećih naredbi.

DODATIA,7 F 16 – sadržaju registra A dodati broj 7 F 16 i pohraniti rezultat u registar A;

DODATIA,@ R0 – sadržaju registra A dodati broj čiju adresu (@ – komercijalni na ) pohranjuje se u registar R 0 (neizravno adresiranje), i pohraniti rezultat u registar A;

DODAJTE A,R7– dodati sadržaj registra A sadržaju registra R 7 i rezultat spremiti u registar A;

DODAJTE A, #127– dodati sadržaju registra A broj čija je adresa memorijske ćelije 127 ( # – simbol broja), te rezultat spremite u registar T- re A.

Sve aritmetičke instrukcije izvode se u jednom strojnom ciklusu s izuzetkom instrukcije INC DPTR(pomak pokazivača podataka DPTR do sljedećeg bajta), zahtijevajući dva strojna ciklusa, kao i operacije množenja i dijeljenja izvedene u 4 strojna ciklusa. Svaki bajt u internoj podatkovnoj memoriji može se povećavati i smanjivati ​​bez upotrebe baterije.

upute MUL AB vrši množenje (množenje) podatka u akumulatoru podatkom u registru B, smještajući produkt u registre A (niža polovica) i B (visoka polovica).

upute DIV AB dijeli (dijeli) sadržaj akumulatora s vrijednošću u registru B, ostavljajući ostatak u B, a kvocijent u akumulatoru.

upute DA A namijenjen je za binarne decimalne aritmetičke operacije (aritmetičke operacije nad brojevima predstavljenim u binarnom decimalnom kodu). Ne pretvara binarni broj u BCD, ali daje točan rezultat samo pri zbrajanju dva binarna decimalna broja.

Primjer logična naredba: Logička operacija I može se izvesti pomoću jedne od sljedećih naredbi:

ANLA,7 F 16 – logičko množenje sadržaja registra A s brojem 7 F 16 a rezultat se pohranjuje u registar A;

ANLA,@ R1 – logičko množenje sadržaja registra A s brojem čija je adresa pohranjena u registru R 1 (neizravno adresiranje), i pohraniti rezultat u registar A;

ANL A,R6– logičko množenje sadržaja registra A sa sadržajem registra R 6, a rezultat spremiti u registar A;

ANL A,#53 – logičko množenje sadržaja registra A s brojem čija je adresa memorijske ćelije 53 16, a rezultat se pohranjuje u registar A.

Sve logičke operacije na sadržaju akumulatora izvode se u jednom strojnom ciklusu, a ostale u dva. Logičke operacije mogu se izvoditi na bilo kojem od nižih 128 bajtova unutarnje podatkovne memorije ili na bilo kojem registru SFR (registri posebne funkcije) u načinu izravnog adresiranja bez korištenja baterije.

Rotacijske operacije pomaka RL A, RLC A, itd. pomiču sadržaj akumulatora jedan bit udesno ili ulijevo. U slučaju lijevog cikličkog pomaka, bit najmanje važnosti se pomiče na poziciju najveće važnosti. U slučaju desnog cikličkog pomaka događa se suprotno.

Operacija ZAMJENA A mijenja niske i visoke tetrade u bateriji.

3. Naredbe za prijenos podataka

Tim MOV odredište,src omogućuje vam prijenos podataka između internih RAM ćelija ili područja registra posebnih funkcija SFR bez korištenja baterije. U ovom slučaju, rad s gornjom polovicom unutarnjeg RAM-a može se provoditi samo u načinu neizravnog adresiranja, a pristup registrima SFR– samo u načinu izravnog adresiranja.

U svim mikro krugovima MCS-51 Stog se postavlja izravno u rezidentnu podatkovnu memoriju i raste prema gore. upute GURNUTI prvo povećava vrijednost u registru pokazivača steka SP, a zatim zapisuje bajt podataka na stog. Timovi GURNUTI I POP koriste se samo u načinu izravnog adresiranja (pisanje ili vraćanje bajta), ali stog je uvijek dostupan kada se neizravno adresira preko registra SP. Dakle, stog također može koristiti gornjih 128 bajtova podatkovne memorije. Ista razmatranja isključuju mogućnost korištenja instrukcija steka za adresiranje registara SFR.

Upute za prijenos podataka uključuju 16-bitni prijenos MOV DPTR,#podaci16, koji se koristi za inicijalizaciju registra pokazivača podataka DPTR prilikom pregledavanja tablica u programskoj memoriji ili za pristup vanjskoj podatkovnoj memoriji.

Operacija XCH A,bajt koristi se za razmjenu podataka između akumulatora i adresiranog bajta. Tim XCHD A,@Ri sličan prethodnom, ali se izvodi samo za niže tetrade uključene u razmjenu operanda.

Za pristup vanjskoj podatkovnoj memoriji koristi se samo neizravno adresiranje. U slučaju jednobajtnih adresa koriste se registri R0 ili R1 banka tekućeg registra, a za 16-bitni – registar pokazivača podataka DPTR. Kod bilo koje metode pristupa vanjskoj podatkovnoj memoriji, baterija igra ulogu izvora ili primatelja informacija.

Za pristup tablicama koje se nalaze u programskoj memoriji koristite sljedeće naredbe:

MOVC A,@A+ DPTR ;

MOVC A,@A+ PC .

Sadržaj registra pokazivača podataka koristi se kao osnovna adresa tablice DPTR ili PC(brojač programa), a odstupanje se uzima iz A. Ove se upute koriste isključivo za čitanje podataka iz programske memorije, ali ne i za pisanje u nju.

4. Booleove operacije

Mikrosklopovi MCS-51 sadrže “Boolean” procesor. Unutarnji RAM ima 128 izravno adresabilnih bitova. Registarski prostor posebne funkcije SFR također može podržati do 128 bitnih polja. Bitne instrukcije izvode uvjetna grananja, prijenose, resetiranja, inverzije, I i ILI operacije. Svi navedeni bitovi dostupni su u načinu izravnog adresiranja.

Nosi malo CF u posebnom funkcijskom registru “riječ statusa programa” P.S.W." se koristi kao jednobitni akumulator za Boolean procesor.

5. Upute za skok

Adrese operacija skokova označene su u asemblerskom jeziku oznakom ili stvarnom vrijednošću u memorijskom prostoru programa. Uvjetne adrese grananja sastavljaju se u relativni pomak - bajt znaka koji se dodaje programskom brojaču PC ako je prijelazni uvjet ispunjen. Granice takvih prijelaza leže između minus 128 i 127 u odnosu na prvi bajt koji slijedi nakon instrukcije. U posebnom funkcijskom registru "Riječ statusa programa" P.S.W." ne postoji oznaka nule, dakle upute JZ I JNZ provjeriti uvjet "jednako nuli" kao testiranje podataka u akumulatoru.

Postoje tri vrste naredbi bezuvjetnog skoka: SJMP, LJMP I AJMP– odredišne ​​adrese koje se razlikuju u formatu. upute SJMP kodira adresu kao relativni pomak i uzima dva bajta. Udaljenost skoka ograničena je na raspon od minus 128 do 127 bajtova u odnosu na instrukciju koja slijedi SJMP.

U uputama LJMP Odredišna adresa se koristi kao 16-bitna konstanta. Duljina naredbe je tri bajta. Odredišna adresa može se nalaziti bilo gdje u memoriji programa.

Tim AJMP koristi 11-bitnu konstantu adrese. Naredba se sastoji od dva bajta. Kada se ova instrukcija izvrši, nižih 11 bitova brojača adresa zamjenjuje se 11-bitnom adresom iz instrukcije. Pet najznačajnijih bitova programskog brojača PC ostaju nepromijenjeni. Dakle, prijelaz se može napraviti unutar bloka od 2K bajta u kojem se nalazi instrukcija koja slijedi nakon instrukcije AJMP.

Postoje dvije vrste poziva naredbi potprograma: LCALL I POZIV. upute LCALL koristi 16-bitnu adresu pozvane podrutine. U tom slučaju potprogram se može nalaziti bilo gdje u memoriji programa. upute POZIV koristi 11-bitnu adresu potprograma. U ovom slučaju, pozvana rutina mora se nalaziti u jednom bloku od 2K bajta sa sljedećim uputama POZIV. Obje verzije instrukcija guraju adresu sljedeće instrukcije na stog i učitavaju je u programski brojač PC odgovarajuću novu vrijednost.

Potprogram završava instrukcijom RET, koji vam omogućuje povratak na instrukciju nakon naredbe POZIV. Ova instrukcija izbacuje povratnu adresu sa stoga i učitava je u programski brojač. PC . upute RETI koristi se za povratak iz prekidnih rutina. Jedina razlika RETI iz RET je li to RETI obavještava sustav da je obrada prekida završena. Ako u trenutku izvršenja RETI nema drugih prekida, onda je identično RET.

upute DJNZ dizajniran za kontrolu ciklusa. Za izvođenje petlje N jednom trebate učitati bajt s vrijednošću u brojač N i naredbom zatvoriti tijelo petlje DJNZ, što označava početak ciklusa.

Tim CJNE uspoređuje svoja dva operanda kao nepredznačene cijele brojeve i skače na tamo navedenu adresu ako operandi koji se uspoređuju nisu jednaki. Ako je prvi operand manji od drugog, bit prijenosa CF je postavljen na "1".

Sve instrukcije u sastavljenom obliku zauzimaju 1, 2 ili 3 bajta.

Komandni sustav OMEVM pruža velike mogućnosti obrade podataka, osigurava provedbu logičkih i aritmetičkih operacija, kao i kontrolu u stvarnom vremenu. Implementirana je bitna, tetradna (4 bita), bajtova (8 bita) i 16-bitna obrada podataka. LSI obitelji MCS-51 - 8-bitni OMEVM: ROM, RAM, registri posebne namjene, ALU i vanjske gume imaju organizaciju bajtova. Dvobajtne podatke koriste samo pokazivački registar (DPTR) i programski brojač (PC). Treba napomenuti da se registar pokazivača podataka može koristiti kao dvobajtni registar DPTR ili kao dva jednobajtna registra posebne namjene DPH i DPL. Programski brojač uvijek se koristi kao dvobajtni registar. Skup naredbi OMEVM ima 42 mnemotehnike naredbi za određivanje 33 funkcije ovog sustava. Sintaksa većine naredbi asemblerskog jezika sastoji se od mnemonike funkcije, iza koje slijede operandi koji pokazuju metode adresiranja i tipove podataka. Različite vrste podataka ili načini adresiranja određeni su postavljenim operandima, a ne promjenama u mnemotehnici. Sustav zapovijedanja može se podijeliti u pet skupina:
  • Aritmetičke naredbe;
  • Logičke naredbe;
  • Naredbe za prijenos podataka;
  • Naredbe bit procesora;
  • Naredbe za grananje i prijenos kontrole.
Postoje sljedeće vrste adresiranja izvornog operanda:
  • Registarsko adresiranje
  • Izravno adresiranje
  • Registarsko-neizravno adresiranje
  • Izravno adresiranje
  • Neizravno adresiranje registara na temelju zbroja baznog i indeksnog registra
Aritmetičke instrukcije Skup instrukcija sadrži sljedeće aritmetičke operacije: zbrajanje, zbrajanje s prijenosnom zastavicom, oduzimanje s posuđivanjem, povećanje, dekrement, usporedbu, decimalni ispravak, množenje i dijeljenje. ALU izvodi operacije na cijelim brojevima bez predznaka. U operacijama s dva operanda: zbrajanje (ADD), zbrajanje s prijenosom (ADDC) i oduzimanje s posuđivanjem (SUBB), akumulator je prvi operand i prima rezultat operacije. Drugi operand može biti radni registar odabrane banke radnih registara, registar interne podatkovne memorije s registarsko-indirektnim i izravnim adresiranjem ili izravni podatkovni bajt. Ove operacije utječu na zastavice donjeg protoka, prijenosa, srednjeg prijenosa i pariteta u statusnoj riječi procesora (PSW). Korištenje bita za prijenos omogućuje vam znatno povećanje točnosti operacija zbrajanja (ADDC) i oduzimanja (SUBB). Izvođenje operacija zbrajanja i oduzimanja ovisno o predznaku može se izvršiti pomoću programska kontrola zastavica preljeva (OV) PSW registra. Oznaka srednjeg prijenosa (AC) osigurava da se aritmetičke operacije izvode u binarnom decimalnom kodu. Operacije povećanja i smanjenja ne utječu na oznake. Operacije usporedbe ne utječu ni na odredišni ni na izvorni operand, ali utječu na oznake prijenosa. Postoje tri aritmetičke operacije koje se izvode samo na akumulatoru: dvije naredbe za provjeru sadržaja akumulatora A (JZ, JNZ), te naredba decimalne korekcije za dodavanje BCD kodova. Tijekom operacije množenja, sadržaj akumulatora A se množi sa sadržajem registra B i rezultat se postavlja na sljedeći način: niži bajt u registar B, visoki bajt u registar A. U slučaju operacije dijeljenja, cijeli broj od dijeljenja se stavlja u akumulator A, ostatak od dijeljenja u registar B. Logičke naredbe s bajt varijablama Sustav naredbi omogućuje implementaciju logičkih operacija: “I”, “ILI”, “ISKLJUČIVO ILI” na akumulatoru. registar (A) i izvorni bajt. Drugi operand (izvorni bajt) može biti radni registar u odabranoj radnoj banci registara; interni RAM registar adresiran korištenjem neizravnog adresiranja registra; izravno adresabilne interne RAM ćelije i registri posebne namjene; izravna vrijednost. Navedene logičke operacije mogu se implementirati na bilo kojem registru unutarnjeg RAM-a koji se izravno adresira ili registru posebne namjene koristeći sadržaj akumulatora A ili izravne podatke kao drugi operand. Postoje logične operacije koje se izvode samo na bateriji: resetiranje i invertiranje svih osam bitova A; ciklički pomak lijevo i desno; ciklički pomak lijevo i desno, uzimajući u obzir oznaku prijenosa; zamjena mjesta starije i mlađe tetrade (nibla) unutar baterije. Naredbe za prijenos podataka Tablice simbola (kodova) programiranih u ROM mogu se odabrati korištenjem naredbi za prijenos podataka korištenjem neizravnog adresiranja. Konstantni bajt može se prenijeti u akumulator iz programske memorijske lokacije koja se adresira zbrojem baznog registra (PC ili DPTR) i indeksnog registra (sadržaj A). Ovo osigurava, na primjer, pogodan način implementacije algoritma za pretvaranje ASCII koda u kod od sedam segmenata. Bilo koja ćelija u 256-bajtnom bloku vanjskog podatkovnog RAM-a može se odabrati korištenjem neizravnog adresiranja registara kroz pokazivačke registre R0 ili R1 (odabrana radna banka registara). Lokacija unutar 64 KB vanjskog RAM adresnog prostora također se može odabrati korištenjem neizravnog adresiranja registra preko DPTR registra pokazivača podataka. Naredbe prijenosa između registara koji se mogu izravno adresirati omogućuju vam da upišete vrijednost iz porta u internu RAM ćeliju bez korištenja radnih registara ili akumulatora. U logičkom procesoru, bilo koji prednji bit može se postaviti u prijenosni bit i obrnuto. Sadržaj akumulatora se može razmjenjivati ​​sa sadržajem radnih registara (odabrane banke) i sa sadržajem internih RAM ćelija adresiranih neizravnim registarskim adresiranjem, kao i sa sadržajem direktno adresabilnih internih RAM ćelija i sa sadržajem registara posebne namjene. Najmanji značaj (bitovi 3-0) sadržaja akumulatora može se zamijeniti s niskom vrijednošću sadržaja internih RAM ćelija odabranih korištenjem neizravnog adresiranja registra. Upute za bit procesor Bit procesor dio je MCS51 obitelji arhitekture mikrokontrolera i može se smatrati nezavisnim bit procesorom. Bitni procesor izvršava skup instrukcija, ima vlastiti RAM koji se može adresirati bitovima i vlastiti ulaz-izlaz. Naredbe koje djeluju na bitove osiguravaju izravno adresiranje 128 bitova (0-127) u šesnaest internih RAM ćelija (ćelije s adresama 20N-2FH) i izravno bitno adresiranje registara posebne namjene, čije su adrese višestruke od osam. Svaki od pojedinačno adresabilnih bitova može se postaviti na "1", resetirati na "0", invertirati, provjeriti. Prijelazi se mogu implementirati: ako je bit postavljen; ako bit nije postavljen; skok ako je bit postavljen, brisanje tog bita; bit se može prepisati u (iz) prijenosnog bita. Između bilo kojeg bita koji se može izravno adresirati i zastavice za prijenos mogu se izvesti logičke operacije "I" i "ILI", gdje se rezultat unosi u bit zastavice za prijenos. Instrukcije za obradu bitova omogućuju implementaciju složenih kombinatoričkih logičkih funkcija i optimizaciju korisničkih programa. Naredbe za grananje i prijenos kontrole Adresni prostor programske memorije nema organizaciju stranica, što vam omogućuje slobodno premještanje fragmenata programa unutar adresnog prostora bez potrebe za ponovnom dodjelom (promjenom) broja stranice. Premještanje pojedinačnih fragmenata programa omogućuje različitim programima korištenje premještenih programskih modula. 16-bitne upute za skok i pozivanje potprograma omogućuju vam skok na bilo koju točku u adresnom prostoru programske memorije od 64 KB. 11-bitni skokovi i upute za pozivanje potprograma omogućuju skokove unutar programskog modula od 2 KB. Sustav naredbi sadrži naredbe za uvjetne i bezuvjetne skokove u odnosu na početnu adresu sljedećeg programa u rasponu od (RS)-128 do (ZS)+127. Naredbe za provjeru pojedinačnih bitova omogućuju izvođenje uvjetnih prijelaza na stanje "0" ili "1" izravno adresabilnih bitova. Naredbe za provjeru sadržaja akumulatora (nula/ne-nula) dopuštaju uvjetne skokove kroz sadržaj A. Indirektni registarski skokovi u sustavu instrukcija omogućuju grananje u odnosu na osnovni registar (sadržaj DPTR ili PC) s pomakom koji se nalazi u akumulatoru A. Adresiranje registra Adresiranje registra koristi se za pristup osam radnih registara odabrane radne banke registara (ti isti registri mogu se odabrati korištenjem izravnog adresiranja i neizravnog adresiranja registara kao normalne interne podatkovne RAM ćelije). Adresiranje registra koristi se za pristup registrima A, B, AB (dvostruki registar), DPTR i zastavici prijenosa C. Korištenje adresiranja registra omogućuje vam da dobijete dvobajtni ekvivalent trobajtnih instrukcija izravnog adresiranja. Izravno adresiranje Izravno adresiranje bajtova koristi se za pristup lokacijama interne podatkovne memorije (RAM) (0-127) i registrima posebne namjene. Izravno adresiranje bitova koristi se za pristup pojedinačno adresabilnim 128 bitova koji se nalaze na adresnim lokacijama 20H-2FH i individualno adresabilnim bitovima registara posebne namjene. Najvažniji bit bajta izravnog adresnog koda odabire jednu od dvije grupe bitova koji se mogu zasebno adresirati smještenih u RAM-u ili registrima posebne namjene. Izravno adresabilni bitovi s adresama 0-127 (00H-7FH) nalaze se u bloku od 16 internih RAM ćelija s adresama 20H-2FH. Navedene ćelije su numerirane redom od najmanjeg bita niskog bajta do najvažnijeg bita visokog bajta. Bitovi koji se zasebno mogu adresirati u registrima posebne namjene numerirani su na sljedeći način: pet najznačajnijih bitova adrese podudaraju se s pet najznačajnijih bitova adrese samog registra, a tri najmanje značajna bita određuju mjesto pojedinačnog bita unutar registar. Neizravno adresiranje putem registra Neizravno adresiranje registra koristi se za pristup unutarnjim podatkovnim RAM ćelijama. Registri R10 i R1 odabrane banke registara koriste se kao pokazivački registri. Instrukcije PUSH i POP koriste sadržaj pokazivača stoga (SP). Neizravno adresiranje registara također se koristi za pristup vanjskoj memoriji podataka. U ovom slučaju pomoću pokazivačkih registara R0 i R1 (odabrana banka radnih registara) bira se ćelija iz bloka od 256 bajtova vanjske podatkovne memorije. Broj bloka unaprijed je postavljen sadržajem priključka P2. 16-bitni podatkovni pokazivač (DPTR) može se koristiti za pristup bilo kojoj lokaciji u adresnom prostoru vanjske podatkovne memorije do 64 KB. Izravno adresiranje Izravno adresiranje omogućuje odabir konstanti koje su eksplicitno navedene u naredbi iz adresnog prostora programske memorije. Neizravno adresiranje registra zbrojem baznog i indeksnog registra Neizravno adresiranje registra zbrojem baznog registra plus indeksnog registra (sadržaj akumulatora A) pojednostavljuje pregled tablica ugrađenih u programsku memoriju. Bilo koji bajt iz tablice može se odabrati na adresi određenoj zbrojem sadržaja DPTR ili PC i sadržaja A. Tablica oznaka i simbola korištenih u sustavu instrukcija
Oznaka, simbol Svrha
A Baterija
Rn Registri trenutno odabrane banke registra
r Broj učitanog registra navedenog u naredbi
direktno Izravno adresabilna 8-bitna adresa interne podatkovne ćelije, koja može biti interna podatkovna RAM ćelija (0-127) ili SFR (128-255)
@Rr Neizravno adresabilna 8-bitna interna podatkovna RAM ćelija
podaci8 8-bitni neposredni podaci koji idu u COP
podaciH Najvažniji bitovi (15-8) neposrednih 16-bitnih podataka
podaciL Bitovi najmanje važnosti (7-0) neposrednih 16-bitnih podataka
adresa11 11-bitna odredišna adresa
adresarL Najmanje važni bitovi odredišne ​​adrese
disp8 8-bitni offset bajt s predznakom m
malo Bit koji se može izravno adresirati čija adresa sadrži COP koji se nalazi u internom podatkovnom RAM-u ili SFR-u
a15, a14...a0 Bitovi odredišne ​​adrese
(X) Sadržaj elementa X
((X)) Sadržaj na adresi pohranjen u elementu X
(X) [M] Bit M elementa X
+ - * / I ILI XOR /X Operacije: zbrajanje oduzimanje množenje dijeljenje logičko množenje (operacija I) logičko zbrajanje (operacija ILI) zbrajanje modulo 2 (isključivo ILI) inverzija elementa X

Funkcijska mnemotehnika je jedinstveno povezana sa specifičnim kombinacijama metoda adresiranja i tipova podataka. Ukupno je u sustavu zapovijedanja moguće 111 takvih kombinacija. Tablica prikazuje popis naredbi poredanih po abecedi.

Mnemotehnika Funkcija Zastave
ACALL naredba Apsolutni poziv potprograma
DODAJ naredbu<байт-источник> Dodatak AC, C, OV
ADDC A naredba<байт-источник> Dodavanje s prenošenjem AC, C, OV
Tim AJMP Apsolutni prijelaz
Tim ANL<байт-назначения>, <байт-источникa> Logički "I"
ANL C tim,<байт-источникa> Logički "I" za bit varijable
Tim CJNE<байт-назначения>, <байт-источник>, <смещение> Usporedi i skoči ako nije jednako C
CLR A naredba Ponovno postavljanje baterije
CLR naredba Reset bit C, bit
Tim CPL A Inverzija ak umulya ora
CPL tim Inverzija bitova C, bit
Tim DA A Ispravak decimalnog akumulatora za poziciju AC, C
DEC tim<байт> Smanjenje
Tim DIV AB Podjela C, OV
Tim DJNZ<байт>, <смещение> Smanjivanje i skok ako nije jednako nuli
Tim INC<байт> Povećanje
Zapovjedništvo INC DPTR Povećanje pokazivača podataka
Tim JB , Skoči ako je bit postavljen
Tim JBC-a , Skoči ako je bit postavljen i resetiraj taj bit
Tim JC Prijelaz ako je prijenos postavljen
Naredba JMP @A+DPTR Neizravni prijenos
Tim JNB , Skok ako bit nije postavljen
Tim JNC Skok ako nosi nije postavljen
Tim JNZ Skok ako sadržaj akumulatora nije nula
Ekipa JZ Skoči ako je sadržaj akumulatora 0
LCALL naredba Dug poziv
Tim LJMP Dugi prolaz
MOV naredba<байт-назначения>, <байт-источника> Varijabla naprijed bajta
MOV naredba<бит-назначения>, <бит-источника> Slanje podatkovnog bita C
Naredba MOV DPTR,#podaci16 Učitajte pokazivač podataka sa 16-bitnom konstantom
MOVC naredba A,@A+( ) Pošalji bajt iz memorije programa
MOVX tim<байт приемника>, <байт источника> Pošalji podatke u vanjsku memoriju (iz vanjske memorije)
Tim MUL AB Množenje C, OV
naredba NOP Bez operacije PC
ORL tim<байт-назначения>, <байт-источникa> Logički "ILI" za promjenjive bajtove
ORL C tim,<бит источникa> Logički "ILI" za bit varijable C
POP naredba Čitanje s hrpe
PUSH naredba Zapisivanje na stog
naredba RET Povratak iz potprograma
RETI tim Povratak iz prekida
Tim RL A Pomaknite sadržaj akumulatora ulijevo
Tim RLC A Pomaknite sadržaj akumulatora ulijevo pomoću zastavice za prijenos
RR A naredba Pomaknite sadržaj akumulatora udesno
RRC A tim Pomaknite sadržaj akumulatora udesno pomoću zastavice za prijenos C
naredba SETB Postavite bit C
Tim SJMP<метка> Kratki prijelaz
Tim SUBB A,<байт источника> Oduzimanje s posuđivanjem AC, C, OV
SWAP Naredba Zamjena bilježnica unutar baterije
XCH A naredba,<байт> Razmijenite sadržaj akumulatora s bajt varijablom
XCHD naredba A,@R1 Razmjena bilježnica
XRL tim<байт-назначения>, <байт-источникa> Logički "XOR" za bajtove varijable