Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Pogreške
  • Mikrokontroleri MCS – 51. Blok dijagram, ALU, memorija podataka

Mikrokontroleri MCS – 51. Blok dijagram, ALU, memorija podataka

Osnova mikrokontrolera (vidi sliku 1) je 8-bitna aritmetičko-logička jedinica (ALU). MK memorija ima harvardsku arhitekturu, t.j. logički podijeljena: na programsku memoriju - PP (internu ili eksternu), adresiranu 16-bitnim brojačem naredbi (SC) i memoriju podataka - internu (Resident data memory - RPD) 128 (ili 256) bajtova, kao i eksternu (External podatkovna memorija - VPD) do 64 KB. Fizički, programska memorija implementirana je na ROM (samo za čitanje), a memorija podataka - na RAM (podaci se mogu pisati i čitati).

Prijem i isporuka vanjskih signala vrši se preko 4 osmobitna porta P0..P3. Prilikom pristupa vanjskoj programskoj memoriji (EPM) ili podatkovnoj memoriji (EPM), portovi P0 i P2 se koriste kao multipleksirana vanjska adresa/sabirnica podataka. Linije P3 porta također mogu obavljati alternativne funkcije (vidi tablicu 1).

16-bitni DPTR registar čini VFD adresu ili osnovnu adresu programske memorije u naredbi pretvorbe akumulatora. DPTR registar se također može koristiti kao dva nezavisna 8-bitna registra (DPL i DPH) za pohranjivanje operanda.

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

Pozivanje na registre posebnih funkcija - RSF (SFR - na slici 1. zaokruženi su isprekidanom linijom) moguće je samo korištenjem izravnog bajtova adresiranja u rasponu adresa od 128 (80h) i više.


Stalna podatkovna memorija (RPM) u prvim modelima MCS-51 mikrokontrolera imala je volumen od 128 bajtova. Najniža 32 bajta RPD-a također su registri opće namjene - RON (4 banke po 8 RON). Program može adresirati jedan od 8 RON-a aktivne banke. Odabir aktivne RON banke provodi se programiranjem dva bita u registru statusa procesora - PSW.


Tablica 1 - Namjena pinova MCS-51

Pin br. Oznaka Ugovoreni sastanak
1..8 R1 8-bitni kvazi-dvosmjerni ulazni/izlazni port
9 RST

Reset signal (aktivna razina - visoka);

RST signal briše: PC i većinu registara posebnih funkcija (SFR), onemogućujući sve prekide i rad tajmera; odabire Bank RONs 0; upisuje "sve one" na portove P0_P3, pripremajući ih za unos; upisuje kod 07H u pokazivač steka (SP);

10..17

8-bitni kvazi-dvosmjerni ulazni/izlazni port; nakon upisa 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;

Tajmer / ulaz brojača 0 - T0;

Ulaz tajmera / brojača 1 - T1;

Strobe izlaz. signal prilikom pisanja u VPD - ~ WR;

Strobe izlaz. signal pri čitanju iz VPD - ~ RD;

18, 19 X1, X2 Vodovi za spajanje kvarcnog rezonatora ili LC-kruga;
20 GND Opći zaključak;
21..28 P2 8-bitni kvazi-dvosmjerni ulazni/izlazni port; ili izlaz adrese A u načinu rada s vanjskom memorijom (VFP ili VFD);
29 PME Strob čitanja vanjske programske memorije, izdaje se samo pri pristupu vanjskom ROM-u;
30 Pivo Adresni strobosjek vanjske memorije (VPP ili VPD);
31 EA Isključujući RPP, razina "0" na ovom ulazu prenosi MC na odabir naredbi samo sa piste ;
39..32 P0 8-bitni dvosmjerni ulazni/izlazni port; kada pristupa vanjskoj memoriji, izdaje adrese A (koje se upisuju u vanjski registar pomoću ALE signala), a zatim sinkrono razmjenjuje bajt sa signalom ~ PME (za naredbe) ili ~ WR, ~ RD (za podatke u VFD-u). ), kada se pristupa vanjskoj memoriji, sve jedinice se upisuju u registar porta P0, uništavajući tamo pohranjene informacije;
40 Ucc Izlazni napon napajanja

Prebacivanje RON banaka pojednostavljuje izvršavanje potprograma i rukovanje prekidima, budući da nema potrebe gurati sadržaj RON-ova glavnog programa na stog prilikom pozivanja potprograma (dovoljno je prijeći na drugu aktivnu banku RON-ova u potprogramu).

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

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

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

Mnemo kod Ime
0E0h * ACC Baterija
0F0h * B Registar za proširenje baterije
0D0h * PSW Riječ statusa procesora
0B0h * P3 luka 3
0A0h * P2 luka 2
90h * P1 Luka 1
80h * P0 Port 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 / brojača
88h * TCON Tajmer / kontrola brojača / registar statusa
8Dh TH1 Tajmer 1 (visoki bajt)
8Bh TL1 Tajmer 1 (niski bajt)
8 pog TH0 Tajmer 0 (visoki bajt)
8 Ah TL0 Tajmer 0 (niski 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


VRSTE NAREDBA MCS – 51

Gotovo polovica instrukcija izvršava se u jednom strojnom ciklusu (MC). Uz frekvenciju kristalnog oscilatora od 12 MHz, vrijeme izvršenja takve naredbe je 1 μs. Ostale naredbe se izvode u 2 strojna ciklusa, tj. za 2μs. Samo upute za množenje (MUL) i dijeljenje (DIV) izvode se u 4 strojna ciklusa.

Tijekom jednog strojnog ciklusa postoje dva poziva programskoj memoriji (unutarnjoj ili vanjskoj) za čitanje dva bajta naredbe ili jedan pristup vanjskoj memoriji podataka (EPM).

3. METODE (METODE) ADRESIRANJA MCS-51

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

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

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

4 DIRECT BYTE ADDRESSING - (dir) - koristi se za pristup ćelijama RPD-a (adrese 00h… 7Fh) i registrima posebnih funkcija SFR (adrese 80h… 0FFh);

5 IZRAVNO BITSKO ADRESIRANJE - (bit) - koristi se za označavanje odvojeno adresibilnih 128 bitova koji se nalaze u RPD ćelijama na adresama 20H ... 2FH i na odvojeno adresibilne bitove registara posebnih funkcija (vidi tablicu 3 i model programa);

6 INDIREKTNO INDEKSNO ADRESIRANJE (označeno s - @) - pojednostavljuje pregled tablica u programskoj memoriji, PP adresa je određena zbrojem osnovnog registra (PC ili DPTR) i indeksnog registra (Akumulator);

7 IMPAKTNO (UGRAĐENO) ADRESIRANJE - kod naredbe sadrži implicitnu (prema zadanim postavkama) referencu na jedan od operanada (najčešće na Bateriju).

4. FORMAT RIJEČI STANJA PROCESORA (PSW)

C - Carry flag (CARY) ili posuditi, također služi kao "Boolean Accumulator" u uputama koje rade na bitovima;

AC - pomoćna (dodatna) oznaka prijenosa - postavljena na "1" ako je u naredbi za zbrajanje (ADD, ADDC) došlo do prijenosa s nižeg nibble-a na viši (tj. iz 3. bita u 4. bit);

F0 - korisnička zastavica - postavljena, izbrisana i programski provjerena;

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

RS1, RS0 - Odaberite banku registra:

OV - Zastavica aritmetičkog preljeva; njegova je vrijednost određena operacijom "Isključivo ILI" signala ulaznih i izlaznih prijenosa najznačajnijeg bita ALU-a; jedna vrijednost ove zastavice označava da je rezultat aritmetičke operacije u kodu komplementa dvojke izvan raspona: –128 ... + 127; pri izvođenju operacije dijeljenja briše se zastavica OV, a u slučaju dijeljenja s nulom postavlja se; prilikom množenja, OV zastavica se postavlja ako je rezultat veći od 255 (0FFH);

Bit PSW - rezerviran, sadrži flip-flop, dostupan za pisanje ili čitanje;

P - zastavica parnosti - je komplement broja pojedinačnih bitova u akumulatoru na par; formiran kombinacijskim krugom (softver dostupan samo čitanjem).

U MCS-51 mikrokontrolerima nema oznake "Z". Ali u uputama za uvjetni skok (JZ, JNZ), trenutni (nula ili različiti od nule) sadržaj akumulatora provjerava se kombinacijskim krugom.

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

Većina prijenosa također se može obaviti putem bajta izravne adrese (dir). Postoje čak i dir-dir naprijed (vidi sliku 3).

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

Naredbe za razmjenu XCH dopuštaju prijenos bajtova bez uništavanja oba operanda.

Aritmetičke naredbe se izvršavaju samo u Akumulatoru. Stoga se prvi operand prvo mora smjestiti u Akumulator, a zatim dodati ili oduzeti drugi operand. Rezultat se stavlja u bateriju.


Naredba subtract SUBB izvodi se samo uz posudbu (tj. Sary zastavica također se oduzima od rezultata). Stoga, da biste izvršili naredbu za oduzimanje bez posuđivanja, prvo morate izvršiti naredbu za brisanje oznake C (CLRC).

Instrukcija za množenje jednobajtnih operanda - MULAB - postavlja dvobajtni (16-bitni) rezultat: niži bajt - u bateriju, stariji bajt - u registar B.

Rezultat izvršavanja naredbe za dijeljenje jednobajtnih operanda - DIVAB - stavlja se: količnik - 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 Correction (DAA) pomaže vam da dodate binarne decimalne brojeve (BCD brojeve) bez pretvaranja 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 postojati heksadecimalni brojevi: A, B, C, D, E, F). Stoga jedan bajt može sadržavati brojeve od 00 do 99 za pakirane BCD brojeve ili brojeve od 0 do 9 za nepakirane BCD brojeve.

Naredba DA A - decimalni ispravak izvodi radnje na sadržaju Akumulatora nakon dodavanja BCD brojeva u procesor (brojevi su dodani prema zakonima heksadecimalne aritmetike) na sljedeći način (vidi primjer):

· Ako je sadržaj najnižeg grickanja Akumulatora veći od 9 ili je postavljena zastavica pomoćnog prijenosa (AC = 1), tada se sadržaju Akumulatora dodaje 6 (tj. nedostajućih šest znamenki u hex formatu);

· Ako je nakon toga sadržaj visokog grickanja Akumulatora veći od 9 ili je postavljena zastavica C, tada se visokom grickanju Akumulatora dodaje broj 6.

Naredba decimalne korekcije DA A ne primjenjuje se nakon naredbe za povećanje (INC) jer naredba za povećanje ne utječe (mijenja) na zastavice C i AC.

Logičke naredbe:

Logično "I" - ANL,

Logično "ILI" - ORL,

Logička naredba "EXCLUSIVE OR" - XRL– se izvršava u Akumulatoru (kao i aritmetika), ali je moguće izvršiti i logičke naredbe u bajtu koji se može izravno adresirati (dir). U ovom slučaju, drugi operand može biti:

U bateriji ili

Neposredni operand u naredbi.

Naredbe za rotaciju (RR A, RL A) i naredbe za rotaciju preko CARY zastavice (RRC A, RLC A) ciklički pomiču sadržaj Akumulatora za 1 bit. Referencije bitnih uređaja provode se samo preko C zastavice.

Arhitektura obitelji MCS-51 uvelike je predodređena njenom namjenom - građevinom kompaktan i jeftino digitalnih uređaja. Sve funkcije mikroračunala implementirane su pomoću jednog mikrosklopa. Obitelj MCS-51 uključuje niz mikro krugova od najjednostavnijih mikrokontrolera do onih najsloženijih. Mikrokontroleri iz obitelji MCS-51 omogućuju vam obavljanje upravljačkih zadataka za različite uređaje i implementaciju pojedinačnih čvorova analognog kruga. Svi mikro krugovi ove obitelji rade s istim zapovjedni sustav MCS-51, većina ih se izvodi u istim slučajevima s odgovarajući pinout(numeracija nogu za tijelo). To omogućuje korištenje mikro krugova različitih tvrtki za razvijeni uređaj - Maxim, Atmel, NXP itd. (katalog..php? stranica = popis_komponenti & id = 39 "> pogledajte pretraživanje po parametrima) bez mijenjanja shematskog dijagrama uređaja i programa.

Slika 1. Blok dijagram I8751 kontrolera

Blok dijagram kontrolera prikazan je na slici 1. i sastoji se od sljedećih glavnih funkcionalnih jedinica: upravljačka jedinica, aritmetičko-logička jedinica, mjerač vremena/brojila, serijsko sučelje i jedinica za prekid, programski brojač, memorija podataka i programska memorija. Dvosmjerna razmjena provodi se pomoću interne 8-bitne autoceste podataka.

Pogledajmo pobliže svrhu svakog bloka. Gotovo svi predstavnici obitelji MCS-51 izgrađeni su prema ovoj shemi.... Različiti mikrosklopovi ove obitelji razlikuju se samo po registrima posebne namjene (uključujući broj priključaka). Skup naredbi za sve kontrolere obitelji MCS-51 sadrži 111 osnovnih naredbi s formatom od 1, 2 ili 3 bajta i ne mijenja se pri prelasku s jednog mikrokruga na drugi. To osigurava izvrsnu prenosivost programa s jednog mikrokruga na drugi.

Jedinica za upravljanje i sinkronizaciju

Jedinica za vrijeme i upravljanje dizajnirana je za generiranje sinkronizacijskih i upravljačkih signala koji osiguravaju koordinaciju zajedničkog rada OEVM jedinica u svim dopuštenim načinima rada. Upravljačka jedinica uključuje:

  • - uređaj za formiranje vremenskih intervala,
  • - I/O logika,
  • - registar naredbi,
  • - registar kontrole potrošnje električne energije,
  • - dekoder naredbi, računalna upravljačka logika.

Uređaj za oblikovanje vremenskog utora namijenjen je formiranju i izdavanju internih sinkroniziranih signala faza, taktova i ciklusa. Broj strojnih ciklusa određuje trajanje izvršenja instrukcije. Gotovo sve naredbe OEVM izvode se u jednom ili dva strojna ciklusa, osim naredbi za množenje i dijeljenje čije trajanje je četiri strojna ciklusa. Označimo frekvenciju glavnog oscilatora s F g. Tada je trajanje strojnog ciklusa 12 / F g ili 12 perioda signala glavnog oscilatora. Ulazno-izlazna logika je dizajnirana za primanje i izdavanje signala koji osiguravaju razmjenu informacija s vanjskim uređajima kroz P0-P3 ulazne/izlazne portove.

Zapovjedni registar je namijenjen za snimanje i pohranjivanje 8-bitnog operacijskog koda naredbe koja se izvršava. Operativni kod se uz pomoć dekodera naredbi i računalne upravljačke logike pretvara u mikroprogram za izvršavanje naredbi.

Registar kontrole potrošnje (PCON) omogućuje vam da zaustavite mikrokontroler kako biste smanjili potrošnju energije i smanjili razinu buke iz mikrokontrolera. Daljnje smanjenje potrošnje energije i smanjenje šuma može se postići zaustavljanjem glavnog oscilatora mikrokontrolera. To se može postići malim okretanjem u registru kontrole potrošnje PCON. Za n-MOS (1816 serija ili strani mikro krugovi bez "c" u sredini), PCON Registar kontrole potrošnje sadrži samo jedan bit koji kontrolira brzinu prijenosa SMOD serijskog porta i nema bitova za kontrolu snage.

Aritmetičko-logička jedinica (ALU) je paralelni osmobitni uređaj koji izvodi aritmetičke i logičke operacije. ALU se sastoji od:

  • - akumulatorski registri, registri čuvanja TMP1 i TMP2,
  • - ROM konstante,
  • - guja,
  • - dodatni registar (registar B),
  • - baterija (ACC),
  • - registar statusa programa (PSW).

Registar baterija i držanje registara- osmobitni registri namijenjeni za primanje i pohranjivanje operanada za vrijeme trajanja operacija nad njima. Ovi registri nisu programski dostupni.

ROM konstante osigurava generiranje ispravnog koda za binarno-decimalni prikaz podataka, koda maske za bitne operacije i konstantnog koda.

Paralelni osmobitni zbrajač je kombinacijski sklop sa sekvencijalnim prijenosom, dizajniran za izvođenje aritmetičkih operacija zbrajanja, oduzimanja i logičkih operacija zbrajanja, množenja, nejednakih i identičnih.

Registar B- osmobitni registar koji se koristi tijekom operacija množenja i dijeljenja. Za ostale upute može se promatrati kao dodatni superoperativni registar.

Baterija- osmobitni registar dizajniran za primanje i pohranjivanje rezultata dobivenog prilikom izvođenja aritmetičko-logičkih operacija ili operacija pomaka

Serijsko sučelje i jedinica za prekid (PIP) namijenjen je organizaciji ulazno-izlaznih sekvencijalnih tokova informacija i organizaciji sustava za prekidanje programa. Blok uključuje:

  1. - PIP međuspremnik,
  2. - upravljačka logika,
  3. - kontrolni registar,
  4. - međuspremnik odašiljača,
  5. - međuspremnik prijemnika,
  6. - serijski primopredajnik,
  7. - registar prioriteta prekida,
  8. - registar omogućavanja prekida,
  9. - logika za obradu zastavica prekida i sklop za generiranje vektora.

Brojač programa je dizajniran da formira trenutnu 16-bitnu adresu interne programske memorije i 8/16-bitnu adresu vanjske programske memorije. Brojač instrukcija uključuje 16-bitni PC međuspremnik, PC registar i inkrementalni sklop (povećavajući sadržaj za 1).

Podatkovna memorija (RAM) namijenjen je za privremeno pohranjivanje informacija koje se koriste u procesu izvršavanja programa.

Priključci P0, P1, P2, P3 su kvazi-dvosmjerni ulazno-izlazni portovi i dizajnirani su da osiguraju razmjenu informacija između računala i vanjskih uređaja, tvoreći 32 ulazno-izlazne linije.

Tajmer uređaj Osnovni modeli obitelji imaju dva programabilna 16-bitna mjerača vremena / brojača (T / C0 i T / C1), koji se mogu koristiti i kao mjerači vremena i kao vanjski brojači događaja

Registar statusa programa (PSW) namijenjen za pohranjivanje informacija o stanju ALU-a tijekom izvođenja programa.

Programska memorija (EPROM) namijenjena je za pohranjivanje programa i memorija je samo za čitanje (ROM). Različiti mikro krugovi koriste ROM-ove maske, koji se mogu izbrisati ultraljubičastim zračenjem ili BLJESAK ROM.

Registar pokazivača podataka (DPTR) dizajniran je za pohranjivanje 16-bitne adrese vanjske memorije podataka ili programske memorije.

Pokazivač steka (SP) je osmobitni registar dizajniran za organiziranje posebnog područja memorije podataka (stog), u kojem se može privremeno pohraniti bilo koja memorijska ćelija.



U podrijetlu proizvodnje mikrokontrolera je Intel s obiteljima osmobitnih mikrokontrolera 8048 i 8051. Arhitektura MCS-51 dobila je ime po prvom predstavniku ove obitelji - mikrokontroleru 8051, objavljenom 1980. godine na temelju HMOS tehnologije. Uspješan set perifernih uređaja, fleksibilan izbor vanjske ili interne programske memorije i razumna cijena osigurali su ovom mikrokontroleru uspjeh na tržištu. S tehnološkog stajališta, mikrokontroler 8051 bio je vrlo složen proizvod za svoje vrijeme - u kristalu je korišteno 128 tisuća tranzistora, što je 4 puta više od broja tranzistora u 16-bitnom 8086 mikroprocesoru.

Glavni elementi temeljne arhitekture su:
- 8-bitni ALU baziran na arhitekturi baterije;
- 4 banke registara, po 8 u svakoj;
- ugrađena programska memorija 4Kbyte;
- interni RAM 128 bajtova;
- booleov procesor
-2 šesnaest-bitna mjerača vremena;
- kontroler serijskog kanala (UART);
- kontroler obrade 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đeni generator takta.

Upravo je ovaj mikrokontroler najpoznatiji programerima i popularan je kontrolni alat u širokom rasponu uređaja. Dostupni su mnogi 8051 emulatori, programi za ispravljanje pogrešaka i programeri, tako da je razvoj softvera jednostavan.

Sljedeći temeljni korak u razvoju MCS-51 bio je prijenos proizvodne tehnologije na CHMOS. To je omogućilo implementaciju načina rada Idle i Power Down, što je omogućilo drastično smanjenje potrošnje energije kristala i otvorilo put za korištenje mikrokontrolera u nestabilnim aplikacijama, na primjer, u samostalnim baterijama. uređaja.

I posljednja temeljna faza u razvoju ovog smjera od strane Intela u okviru 8-bitne arhitekture bilo je izdavanje 8xC51FA / FB / FC mikrokontrolera, koji se zbog kratkoće često nazivaju 8xC51FX. Glavna razlikovna značajka ove skupine kristala je prisutnost niza programabilnih brojača (PCA). Blok dijagram PCA prikazan je na slici 2.

PCA uključuje:

Brojač vremena služi svih pet modula uzorkovanja i usporedbe, 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 softverski mjerač vremena;
16-bitni izlazni uređaj velike brzine (HSO);
8-bitni PWM

Sve gore navedene funkcije izvode se u PCA na hardverskoj razini i ne opterećuju središnji procesor, što omogućuje povećanje ukupne propusnosti sustava, povećanje točnosti mjerenja i obrade signala te smanjenje vremena odziva mikrokontrolera na vanjske događaja, što je posebno važno za sustave u stvarnom vremenu. PCA implementiran u 8xC51FX pokazao se toliko uspješnim da je arhitektura FX mikrokontrolera postala de facto industrijski standard, a sam PCA je više puta reproduciran u raznim modifikacijama mikrokontrolera različitih tvrtki.

Izvorna uska grla arhitekture MCS-51 bila su 8-bitni ALU baziran na bateriji i relativno sporo izvršenje instrukcija (najbrže instrukcije zahtijevaju 12 ciklusa takta za izvršenje). To je ograničilo upotrebu mikrokontrolera iz obitelji u aplikacijama koje zahtijevaju visoke performanse i složene izračune (16- i 32-bitni). Pitanje temeljne modernizacije stare arhitekture postalo je aktualno. Problem modernizacije komplicirala je činjenica da je do početka 90-ih već stvoreno mnogo razvoja na području softvera i hardvera, a jedan od glavnih zadataka razvoja nove arhitekture bila je implementacija hardvera i softvera. kompatibilnost sa starim dizajnom temeljenim na MCS-51. Za rješavanje ovog problema stvoren je zajednički tim stručnjaka iz Intela i Philipsa. Kao rezultat toga, 1995. godine pojavile su se dvije značajno različite obitelji: MCS-251/151 iz Intela i 51XA iz Philipsa (na potonjem ćemo se zadržati u nastavku).

Glavne karakteristike MSC-251 arhitekture:

24-bitni linearni adresni prostor, adresiranje do 16M memorije(proizvedeni mikrokontroleri iz obitelji MCS-251 imaju 256K memorijskog adresnog prostora);
Skup instrukcija mikrokontrolera MCS-251 sadrži svih 111 instrukcija uključenih u skup instrukcija mikrokontrolera MCS-51 ("stare" upute), a osim toga uključuje 157 "novih" instrukcija. Neki novi kodovi naredbi su u 4-bajtnom formatu.
Prije korištenja mikrokontrolera potrebno ga je konfigurirati, tj. uz pomoć programatora "spaliti" konfiguracijske bajtove koji određuju koji će skup instrukcija postati aktivan nakon uključivanja. Ako instalirate MCS-51 skup instrukcija, tada će MSC-251 biti binarno kompatibilan s MCS-51. Ovaj način rada naziva se binarni način rada. Međutim, proširene upute u ovom načinu su također dostupne kroz "prozor" - rezervirani kod instrukcije 0A5h. Naravno, duljina svake proširene instrukcije tada se povećava za 1 bajt. Ako u početku instalirate skup proširenih uputa, tada će u ovom slučaju programi napisani za MCS-51 zahtijevati ponovnu kompilaciju na križnim sredstvima za MCS-51, budući da sada će standardne upute biti dostupne kroz isti "prozor" 0A5h i njihova će se duljina također povećati za 1 bajt. Ovaj način rada naziva se Source Mode. Omogućuje vam da izvučete maksimum iz proširenih uputa i dobijete najbolju izvedbu, ali zahtijeva redizajn softvera.
arhitektura registra koja omogućuje pristup registrima kao bajtovima, riječima i dvostrukim riječima;
način adresiranja stranica za ubrzanje odabira instrukcija iz vanjske programske memorije;
red instrukcija;
prošireni skup instrukcija, uključujući 16-bitne aritmetičke i logičke upute;
proširen adresni prostor stog do 64K;
izvršavanje najbrže instrukcije u 2 takta;
binarna kompatibilnost sa softverom MCS-51.

Za korisnike orijentirane na korištenje MCS-251 mikrokontrolera kao mehaničke zamjene za MCS-51, Intel proizvodi MCS-251 mikrokontrolere s unaprijed programiranim konfiguracijskim bitovima u stanju binarnog načina rada. Takvi mikrokontroleri dobili su indeks MCS-151.

Osim samog Intela, MCS-251 mikrokontroleri su licencirani od strane Temic Semiconductors.

Univerzalna serijska sabirnica (USB) proširuje Plug-and-Play tehnologiju na vanjske I/O uređaje koji se nalaze u današnjim osobnim računalima visokih performansi.

Kako bi pružio mogućnost povezivanja raznih perifernih uređaja, USB standard definira četiri načina prijenosa: Master, Isochronous, Pulse i Array transfer. Svaki periferni uređaj mora podržavati način upravljanja za prijenos konfiguracijskih parametara, naredbi i informacija o statusu uređaja. Izokroni prijenos osigurava zajamčeni pristup sabirnici, konstantnu širinu pojasa i toleranciju na pogreške, ovaj način prijenosa može se koristiti u audio izlaznim uređajima i računalnoj telefoniji. Impulsni prijenos namijenjen je uređajima za unos kao što su miš, joystick ili tipkovnica koji prenose informacije rijetko i u malim obrocima, ali s ograničenim razdobljem servisiranja. Prijenos niza omogućuje uređajima kao što su skeneri, faks uređaji ili digitalne kamere da prenose velike količine podataka na osobno računalo čim kanal sabirnice postane slobodan.

Glavne značajke proizvoda

Potpuno usklađen sa "Specifikacijama univerzalne serijske sabirnice 1.0"
Ugrađeni USB primopredajnik Serial Bus Interface Engine (SIE)
Četiri FIFO reda za prijenos
Tri 16-bajtna FIFO reda
Četiri FIFO reda čekanja za primanje
Tri 16-bajtna FIFO reda
Jedan konfigurabilni FIFO (do 1024 bajta)
Kontrola automatskog prijenosa / prijema u FIFO redovima
Zaustavite / nastavite s radom
Tri vektora prekida USB sabirnice
Ciklus blokade faze
Brzine podataka: 12 Mbps i 1,5 Mbps
Način sporog ciklusa
Vanjski adresni prostor kapaciteta 256 KB
Načini uštede energije: pripravnost i isključenje
Korisnički definirani parametri
Čekanje u stvarnom vremenu
1 KB RAM-a na čipu
Četiri I/O porta
Programabilno polje brojača (PCA)
Standardni (MCS 51) UART mikrokontroler
Hardverski nadzorni mjerač vremena
Tri fleksibilna 16-bitna mjerača vremena / brojača
Kompatibilan s MCS 51 i MCS 251 skupom uputa za mikrokontroler
Arhitektura mikrokontrolera MCS 251 bazirana na registrima
Radna frekvencija 6 ili 12 MHz

Kontroler 8x930Hx ima dodatne značajke:

USB čvorište
Mogućnosti upravljanja USB čvorištem
Upravljanje vezom
Detekcija spajanja/odspajanja s izlaznim uređajem
Upravljanje napajanjem uključujući zaustavljanje / nastavak
Otkrivanje i oporavak kvarova sabirnice
Podržava izlazne uređaje pune i male brzine
Izlazni kontakt za prebacivanje snage porta
Ulazni kontakt za detekciju preopterećenja

Četiri različita USB načina prijenosa podataka osiguravaju tri elementa koji rade zajedno: Host, Hub, Funkcionalni uređaj. Domaćin kontrolira prijenos sadržaja i kontrolnih informacija na sabirnici. Funkcionalni uređaji proširuju glavne sustave. To uključuje tipične vrste rada s računalom: unos s tipkovnice ili joysticka, izlaz na monitor; te složenije djelatnosti kao što su digitalna telefonija i prijenos slike. Mikrokontroler Intel 8x930Ax dizajniran je za upravljanje funkcionalnim uređajima. Konačno, čvorišta pružaju USB proširenje koje omogućuje pristup drugim funkcionalnim uređajima. Mikrokontroler Intel 8x930Hx, koji kombinira funkcije upravljanja funkcionalnim uređajem i USB hubom, prvo je serijsko USB čvorište dizajnirano za moderne periferne uređaje računala.

USB čvorišta igraju ključnu ulogu u širenju svijeta korisnika računala. S pojavom perifernih uređaja - tipkovnica, monitora, pisača i drugih - s ugrađenim čvorištima, uključivanje ili isključivanje novog uređaja jednostavno je kao uključivanje u utičnicu. Nove razine performansi i poboljšana USB povezivost mogli bi dovesti do sljedeće generacije uređaja za rad i zabavu. Dani ugrađenih kartica, IRQ sukoba i zapetljanih žica su odbrojani.

USB kabel sabirnice sastoji se od samo četiri žice: Vbus, D+, D- i GND - što čini vezu lakšom i dosljednijom. Jedan standardni konektor za spajanje perifernih uređaja na USB sabirnicu služi istoj svrsi. Podaci se prenose različito preko D + i D- kabela: bilo pri punoj brzini od 12 Mbps ili pri maloj brzini od 1,5 Mbps. Primopredajnik je ugrađen u kristal, tako da nema potrebe za vanjskim elektroničkim sklopovima. Iznimka je terminalni pull-up otpornik na D + i D- linijama, koji je potreban za određivanje vrste uređaja: velike brzine ili niske brzine.

Pregled obitelji
Obitelj Intel 8x930 sastoji se od dva kontrolera s jednim čipom.

Intel 8x930Ax kontroler je 8-bitni uređaj temeljen na arhitekturi mikrokontrolera MCS 251 i dizajniran je za rad s USB perifernim uređajima. S druge strane, 8x930Hx koristi istu jezgru mikrokontrolera MCS 251 plus poboljšane mogućnosti ugrađenog USB čvorišta. Upotreba MCS 251 arhitekture u oba USB kontrolera sabirnice nudi sljedeće prednosti:

Visoke performanse
Korištenje mješovitih vrsta memorije i adresiranja
Mala potrošnja energije
Niska razina buke
Učinkovita jezična podrška na visokoj razini
Prošireni skup naredbi
Ugrađene mogućnosti

Upute za 8x930Ax mogu biti upute iz kompleta mikrokontrolera MCS 51 i kompleta mikrokontrolera MCS 251. Ovaj pristup štedi korisnikovo ulaganje u softver i istiskuje maksimalnu izvedbu iz aplikacija.

8x930 mikrokontroleri toliko su puni raznih ugrađenih značajki da izgledaju moćnije od samo mikrokontrolera. Programabilno polje brojača (PCA) pruža fleksibilnost za aplikacije koje zahtijevaju usporedbu ili hvatanje u stvarnom vremenu, komunikaciju velike brzine ili modulaciju širine impulsa. Osim toga, kontroler uključuje prošireni serijski port, tri 16-bitna mjerača vremena / brojača, hardverski nadzorni mjerač vremena, četiri 8-bitna I/O porta i dva načina za uštedu energije: pripravnost i isključenje.

Kontroleri iz obitelji 8x930Ax opremljeni su s 1 KB memorije i mogu se koristiti u verzijama bez trajne memorije, ili s trajnom memorijom od 8 ili 16 KB. Mogu adresirati do 256 KB vanjske memorije za upute i podatke i 40 bajtova registara opće namjene, koji se nalaze u središnjem procesoru kao registarska datoteka. Ovisno o korištenoj kombinaciji, registarska datoteka može sadržavati 16 bajtnih registara, 16 dvobajtnih i 10 četverobajtnih registara.

Kontroleri imaju fleksibilno sučelje s vanjskom memorijom. Moguće je dodati tri petlje čekanja za pristup uređajima sa sporom memorijom i pozvati funkciju u stvarnom vremenu za generiranje više petlji. Dohvaćanje vanjskih uputa može poboljšati performanse korištenjem načina rada stranice, u kojem se podaci ispiraju u visokom bajtu adrese.

Oba 8x930 kontrolera opremljena su s osam FIFO redova za podršku internih izlaznih uređaja: četiri reda za prijenos i četiri reda za primanje. Četiri FIFO-a za prijenos/primanje podržavaju četiri terminalska funkcijska uređaja (0 do 3). Red čekanja 0 sastoji se od 16 bajtova i namijenjen je za prijenos kontrolnih informacija. Red čekanja 1 može se konfigurirati od strane korisnika i ima kapacitet do 1024 bajta. Redovi 2 i 3 sastoje se od 16 bajtova svaki i mogu se koristiti za prijenos informacija u impulsnom, izokronom i nizu prijenosa. U slučaju kontrolera 8x930Hx, navedeni redovi su pojačani s parom FIFO redova za ulazne uređaje. Ove redove u kontroleru 8x930Hx podržava opcijski repetitor, koji je odgovoran za ponovni prijenos tokova podataka koje generiraju izlazni uređaji.

Pregled arhitekture
Strukturno, implementacija USB-a u mikrokontrolerima 8x930Ax i 8x930Hx može se podijeliti u četiri bloka: FIFO redovi, blok sučelja s funkcionalnim uređajima, blok sučelja sa serijskom sabirnicom i primopredajnik. Kontroler 8x930Hx ima dodatne jedinice za upravljanje funkcijama čvorišta: jedinicu sučelja s hubom i repetitorom.

FIFO-ovi za prijenos i prijem na oba kontrolera su kružni. Redovi podržavaju do dva odvojena skupa podataka varijabilne veličine i sadrže registre broja bajtova koji označavaju broj bajtova u skupovima podataka. Redovi su opremljeni zastavicama koje pokazuju je li red pun ili prazan, a također su sposobni ponoviti prijem ili prijenos trenutnog skupa podataka. Jedinica funkcionalnog sučelja uređaja (FDI) distribuira odaslane ili primljene USB podatke prema vrsti prijenosa i stanju redova čekanja. Osim toga, IFU jedinica prati stanje transakcije, upravlja FIFO redovima, izvještava o pojavi kontrolnih događaja središnjem procesoru 8x930 koristeći zahtjev za prekid.

Jedinica sučelja serijske sabirnice implementira USB protokol za prijenos: sekvencijalno sekvencijalno naručuje pakete, generira i prepoznaje signal, generira i provjerava kontrolne zbrojeve, kodira / dekodira podatke pomoću NRZI metode, popunjavanje bitova, generira i prepoznaje identifikator paketa (PID).

Integrirani primopredajnik baziran na USB mikrokontroleru usklađen je s jednostavnim četverožičnim sučeljem definiranim USB 1.0 specifikacijom. Obitelj 8x930 kontrolera ima tri prekida vezana za USB. Pojavljuju se na svakom početku okvira, na kraju prijema / prijenosa podataka do terminalnih funkcionalnih uređaja, u slučaju globalne obustave ili nastavka rada. U čvorištu 8x930Hx, jedinica sučelja čvorišta koristi se za kontrolu i praćenje statusa veze na nizvodne portove. Repetitor je odgovoran za širenje USB signala gore-dolje.

Ministarstvo općeg i stručnog obrazovanja Ruske Federacije Novosibirsko državno tehničko sveučilište V.N. Veprik, V.A. Afanasjev, A.I. Druzhinin, A.A. Zemskov, A.R. Isaev, O.V. Malyavko MIKROKONTROLERI OBITELJI MCS-51 Udžbenik za kolegije "Mikroprocesorski sustavi" i "Projektiranje mikroprocesorskih sustava" za studente viših razreda Fakulteta automatizacije i računalnog inženjerstva svih oblika obrazovanja Novosibirsk 1997. V.N. Veprik, V.A. Afanasjev, A.I. Druzhinin, A.A. Zemskov, A.R. Isaev, O.V. Malyavko. Mikrokontroleri Obitelj MCS-51: Vodič. - Novosibirsk. Ovaj vodič sadrži opći opis arhitekture, funkcionalnosti i skupa uputa MCS-51 obitelji mikrokontrolera s jednim čipom (Embedded Microcontrollers) proizvođača INTEL. U drugom dijelu priručnika opisan je obrazovni mikroprocesorski kontroler UMPK-51, koji se nudi studentima kao predmet istraživanja pri izvođenju ciklusa laboratorijskog rada. Materijal priručnika može se koristiti u nastavnim radovima i izradi diploma, a može biti koristan i za stručne inženjere uključene u razvoj i rad elektroničke opreme. Autori izražavaju duboku zahvalnost AOZT-u "New Technologies" - službenom distributeru INTEL-a za pružanje materijala na temelju kojih je ovaj rad izveden. Tablica 15, sl. 25, popis slova. 12 naslova Recenzenti: E.D. Baran, G.G. Matuškin. Rad je pripremljen na Odsjeku za informatiku, Novosibirsk State © Tehničko sveučilište 2 UVOD. Obitelj MCS-51 8-bitnih mikrokontrolera s jednim čipom pojavila se na svjetskom tržištu početkom osamdesetih. Prve modifikacije kristala (oko 7) izrađene su korištenjem visokokvalitetne n-MOS (HMOS) tehnologije i bile su funkcionalno cjelovita mikroračunala s jednim čipom harvardske arhitekture, čiji je jedan od glavnih principa logično odvajanje adrese. prostore programske memorije i podataka. Razvojem poluvodičke tehnologije počele su se proizvoditi sljedeće verzije mikrosklopova MCS-51 pomoću naprednije CMOS (CHMOS) tehnologije male snage (u aktivnom načinu rada potrošnja kristala dovedena je do 10-50 mA). Sustav zapovijedanja MCS-51, usmjeren na implementaciju različitih algoritama digitalnog upravljanja, uz zadržavanje neke vanjske sličnosti sa sustavom zapovijedanja prethodne obitelji MCS-48, kvalitativno se proširio, pojavile su se temeljne inovacije u njemu: bitno orijentirane operacije i bitna polja koja se mogu adresirati u memoriji podataka, što je omogućilo da se govori o implementaciji bitnog procesora na čipu; Implementirano izvršavanje naredbi množenja, dijeljenja i oduzimanja; poboljšan rad sa stogom; proširena je grupa naredbi za prijenos kontrole; Sustav zapovijedanja počeo je izgledati simetričnije, odnosno manje ovisan o prijenosu podataka kroz bateriju. Funkcionalnost perifernih uređaja na ploči također je proširena uvođenjem: dva 16-bitna mjerača vremena / brojača; hardverski serijski duplex port; sustav prekida na dvije razine; četiri 8-bitna I/O porta. Temeljne promjene u strukturi vremenskog ciklusa procesora dovele su do ubrzanja rada s vanjskom memorijom programa i podataka, kao i reakcija na vanjske i unutarnje prekide. Ukupna veličina adresnog prostora vanjske programske i podatkovne memorije povećana je na 128 KB. 16-bitni registri programskog brojača i pokazivača podataka omogućili su izravan pristup cijelom rasponu adresa, što je programerima dalo mogućnost implementacije algoritama za brzu obradu velikih nizova podataka. Svi softverski dostupni čvorovi mikrokontrolera okupljeni su u posebnom području podatkovne memorije (Special Function Register), što im je omogućilo pristup na gotovo isti način kao i običnim ćelijama rezidentne RAM-a. U kasnijim modifikacijama kristala, poboljšanje je išlo putem povećanja dodatne funkcionalnosti uz zadržavanje pune softverske kompatibilnosti s ranijim verzijama. Značajke najnovijih modifikacija mikrokontrolera MCS-51 su: potpuno statičan dizajn; 3- i 5-voltne kristalne verzije; širok raspon ugrađenih perifernih uređaja; maksimalna frekvencija takta - 24 MHz; za pojedine skupine kristala - 33 MHz. Trenutno, MCS-51 uključuje oko 60 verzija kristala, osim toga, postoji i dostupna je detaljna vlasnička dokumentacija (nažalost, do sada je malo prevedena na ruski). Za pripremu softvera za mikrokontrolere MCS-51 uglavnom se koriste jezici "ASM-51", "C", za koje postoji niz dobro dokazanih kompilatora, knjižnica standardnih potprograma i softverskih emulatora koje proizvode različiti strani i domaće firme. 3 Unatoč dovoljnoj "starini" obitelji (više od 15 godina) i pojavi na svjetskom tržištu posljednjih godina jednočipnih mikrokontrolera većih performansi i poboljšane arhitekture - MCS-51, MCS-251, MCS-96, MCS-51 kontroleri će se široko koristiti u relativno jednostavnim ugrađenim upravljačkim sustavima. 4 1. SISTEM OZNAČAVANJA INTEL KOMPONENTI I FUNKCIONALNI SASTAV OBITELJI MCS-51 Za označavanje mikro krugova od strane INTEL-a koristi se sustav označavanja od nekoliko polja: 1 2 3 4 4 HHHHHHHHHHHHHHH Prvo polje Auto sadrži prethp. : , automobilska verzija za prošireni temperaturni raspon (-40 / + 125 C) M (vojna), verzija prema vojnim standardima (-55 / + 125 C) Q ili C (komercijalno), "komercijalno" temperaturno područje (0 / + 70 C) ) s (160 8) - jednosatni dinamički toplinski trening; L ili E (Extended), "prošireni" temperaturni raspon (-40 / + 85 C) sa (160 8) - satni dinamički toplinski trening; T (Prošireni), "prošireni" temperaturni raspon (-40 / + 85 C) bez termičke obuke; I (Industrijski), izvedba prema industrijskim standardima. Drugo polje sadrži jednoslovni ili dvoslovni prefiks koji označava vrstu paketa mikrosklopa (Package Type). Danas postoji nekoliko desetaka različitih vrsta paketa mikrosklopova, stoga ćemo, kao primjer, dati samo neke oznake: Ceramic Pin Grid Array, (PGA); C Keramički dvostruki in-line paket, (CDIP); K Ceramic Quad Flatpack Package, (QFP); KD Plastic Quad Flatpack Package, Fine Pitch, Die Down, (PQFP); KU Plastic Quad Flatpack Package, Fine Pitch, Die Up, (PQFP); N Plastic Leaded Chip Carrier, (PLCC); P Plastični dvostruki in-line paket, (PDIP); SM jednostruki bezvodni memorijski modul, (SIMM); U Plastični dvostruki in-line paket, skupljajući se, (PDIPS); Z cik-cak in-line paket, (ZIP). Treće polje može sadržavati do 15 numeričkih i abecednih znakova koji označavaju vrstu određenog uređaja koji se nalazi na čipu. Četvrto polje može sadržavati do šest numeričkih i abecednih znakova, odražavajući različite značajke i verzije mikro krugova. Dodatne informacije o vrstama paketa i njihovom dizajnu možete pronaći u knjizi: Broj narudžbe pakiranja 240800. S obzirom na opisane mikrokontrolere iz obitelji MCS-51, prvi znak trećeg polja tradicionalno je (za Intel) jednak "8". Drugi znak trećeg polja obično označava vrstu ugrađenog ROM-a: 0 maskirani ROM programa; kristal bez ROM-a (za kasnije verzije kristala); 1 maska ​​ROM programa (Standardni ROM kod, Firmware); 3 maske ROM (za kasnije kristalne verzije), (prilagodljivi ROM kod); 7 UVROM ili jednokratni programabilni ROM (EPROM ili OTP ROM); 8 EEPROM (Flash - memorija na čipu) Nadalje, može slijediti slovo koje označava tehnološke značajke proizvodnje: bez slova HMOS tehnologija, napajanje 5V; Sa CHMOS tehnologijom, napajanje 5V; L CHMOS tehnologija, napajanje 3V; 5 Sljedeći znakovi trećeg polja za mikrokontrolere MCS-51 su brojevi (na primjer, 31,32,51,54,58,152) i od jednog do četiri slova, koji odražavaju funkcionalne značajke kristala (na primjer, veličina ROM-a , specifičnosti skupine kristala, dostupnost sustava zaštita programske memorije od neovlaštenog pristupa, mogućnost korištenja naprednijeg programskog algoritma „Quick Pulse“ i slično). U originalnoj tehničkoj dokumentaciji Intela, svi mikrokontroleri MCS-51 raspoređeni su u skupine ("Linija proizvoda"), od kojih svaka objedinjuje kristalne verzije najbliže po svojoj funkcionalnosti i električnim parametrima. Budući da se nazivi mikro krugova jedne skupine neznatno razlikuju, za označavanje svake pojedinačne skupine koristi se generalizirana simbolika, nastala od označavanja specifičnih mikro krugova, zamjenom različitih znakova s ​​"X". Tako se mogu razlikovati sljedeće skupine mikrokontrolera. 1. Grupa 8H5H (linija proizvoda 8051 i linija proizvoda 8052): 8031AN, 8051AN, 8751N, 8051ANR, 8751N-8, 8751VN, 8032AN, 8052AN, 8752VN. 2. Grupa 8HS51 (linija proizvoda 80S51): 80S31VN, 80S51VN, 87S51. 3. Grupa 8HS5H (8HS52 / 54/58 Linija proizvoda): 80S32, 80S52, 87S52, 80S54, 87S54, 80S58, 87S58. 4. Grupa 8XC51FX (8XC51FA / FB / FC linija proizvoda): 80C51FA, 83C51FA, 87C51FA, 83C51FB, 87C51FB, 83C51FC, 87C51FC. 5. Grupa 8HL5X (8XL52 / 54/58 Linija proizvoda): 80L52, 87L52, 80L54, 87L54, 80L58, 87L58. 6. Grupa 8XL51FX (8XL51FA / FB / FC linija proizvoda): 80L51FA, 83L51FA, 87L51FA, 83L51FB, 87L51FB, 83L51FC, 87L51FC. 7. Grupa 8XC51RX (8XC51RA / RB / RC linija proizvoda): 80C51RA, 83C51RA, 87C51RA, 83C51RB, 87C51RB, 83C51RC, 87C51RC. 8. Grupa 8XC51GB (linija proizvoda 8XC51GX): 80C51GB, 83C51GB, 87C51GB. 9. Grupa 8XC152JX (linija proizvoda 8XC152): 80C152JA, 83C152JA, 80C152JB, 80C152JC, 83C152JC, 80C152JD. 10. Grupa 8XC51SL (8XC51SL Linija proizvoda): 80C51SL-BG, 81C51SL-BG, 83C51SL-BG, 80C51-AH, 81C51SL-AH, 83C51SL-AH, 87C51SL- AH1SLC51, SLC51, SLC51, 87C51SL-AH, 87C51SL-AH, 81C51SL-BG . Prva skupina mikrokontrolera uključuje mlađe modele obitelji, izrađene po n-MOS tehnologiji i ne preporučuju se za korištenje u novim dizajnima, sve ostale skupine izrađene su po modernoj CMOS tehnologiji. Mikrokrugovi druge, treće i četvrte skupine danas su klasični predstavnici obitelji MCS-51. Peta i šesta skupina uključuju 3-voltne verzije kristala (niskonaponske). Kristali sedme skupine opremljeni su proširenim RAM-om (Expanded RAM), čiji je volumen 512 bajtova. Mikrokrugovi osme, devete i desete skupine su mikrokontroleri specifični za primjenu (Application Specific). Mnoge moderne aplikacije zahtijevaju MCU-ove visokih performansi koji koriste napredne mogućnosti adresiranja, arhitekturu registra, velike količine interne RAM-a i stogova, te učinkovito podržavaju programiranje na visokoj razini. Ovi mikrokontroleri uključuju mikrokontrolere nove arhitekture MCS-5 i MCS-251, koje je Intel počeo proizvoditi 1995. godine. Funkcionalni sastav i ključne značajke mikrokontrolera MCS-51 / MCS-251 prikazani su u dodatku. 6 2. TEMELJNE KARAKTERISTIKE OSNOVNOG MODELA OBITELJI MIKROUPRAVLJAČA MCS-51. Osnovni model obitelji mikrokontrolera MCS-51 i osnova za sve naknadne modifikacije je mikrokontroler I-8051. Njegove glavne značajke su sljedeće: osmobitni CPU optimiziran za upravljačke funkcije; ugrađeni generator takta; adresni prostor programske memorije - 64 K; adresni prostor memorije podataka - 64 K; interna programska memorija - 4K; interna memorija podataka - 128 bajtova; dodatne mogućnosti za izvođenje operacija Booleove algebre (operacije po bitu); 32 dvosmjerna i pojedinačno adresabilna I/O linije; 2 šesnaest-bitna višenamjenska mjerača vremena / brojača; full duplex asinkroni primopredajnik; vektorski sustav prekida s dvije razine prioriteta i šest izvora događaja. Blok dijagram I-8051 prikazan je na slici 1, a raspored pinova mikrosklopa prikazan je na slici 2. Vanjski prekidi Prekidi 128 bajtova T / C 0 brojač 4K ROM kontrola RAM T / C 1 ulazi CPU BUS 4 I / O Serijski OSC kontrolni portovi Port P0 P1 P2 P3 T D R D Adresa / Podaci Slika 1. I-8051 blok dijagram Cijela serija MCS-51 ima harvardsku arhitekturu, odnosno odvojene adresne prostore za programsku memoriju i podatke. Organizacija memorije prikazana je na slici 3. Količina interne (rezidentne) programske memorije (ROM, EPROM ili OTP ROM) koja se nalazi na čipu, ovisno o vrsti mikrosklopa, može biti 0 (ROMless), 4K (bazna matica), 8K, 16K ili 32K. Ako je potrebno, korisnik može proširiti memoriju programa instaliranjem vanjskog ROM-a. Pristup unutarnjem ili vanjskom ROM-u određen je vrijednošću signala na EA pinu (External Access): EA = Vcc (napon napajanja) - pristup unutarnjem ROM-u; EA = Vss (potencijal zemlje) - pristup vanjskom ROM-u. Za kristale bez ROM-a (ROM-a), EA pin mora biti trajno spojen na Vss. Eksterni ROM čitač - PS EN (Program Store Enable) generira se prilikom pristupa vanjskoj programskoj memoriji i nije aktivan kada se pristupa ROM-u koji se nalazi na čipu. 7 Područje nižih adresa programske memorije koristi sustav prekida, arhitektura mikrosklopa 8051 pruža podršku za pet izvora prekida: dva vanjska prekida; dva prekida od mjerača vremena; prekida iz serijskog porta. P1.0 1 40 Vcc P1.1 2 39 P0. 0 (AD0) P1.2 3 38 P0.1 (AD1) P1.3 4 37 P0.2 (AD2) P1.4 5 36 P0.3 (AD3) P1.5 6 35 P0.4 (AD4) P1. 6 7 34 P0.5 (AD5) P1.7 8 33 P0.6 (AD6) RESET 9 32 P0.7 (AD7) (RD) P3.0 10 31 EA / Vpp (TD) P3.1 11 30 ALE / PROG (INT0) P3.2 12 29 PSEN (INT1) P3.3 13 28 P2.7 (A15) (T0) P3.4 14 27 P2.6 (A14) (T1) P3.5 15 26 P2.5 ( A13) (WR) P3.6 16 25 P2.4 (A12) (RD) P3.7 17 24 P2.3 (A11) XTAL2 18 23 P2.2 (A10) XTAL1 19 22 P2.1 (A9) Vss 20 21 P2.0 (A8) Slika 2. Dodjela pinova za I-8051 Programska memorija (Čitanje) Memorija podataka (Čitanje/pisanje) FFFFH Vanjski ROM FFFFH Vanjski @DPTR RD memorija PSEN WR podaci @PC MOVC EA = 0 Interna memorija @DPTR podaci @PC Vanjski unutarnji FFH gornji 128 SFR MOVX ROM ROM 80H EA = 0 0000H EA = 1 donji 128 00H 0000H PSEN Slika 3. Organizacija obiteljske memorije MCS-51 8 Slika 4 prikazuje kartu donjeg područja programske memorije. ROM Programska memorija 0033H 002BH Serijski port 0023H Vector Timer1 001BH prekida EINT1 0013H Timer0 000BH EINT0 0003H Početna adresa 0000H (Reset) Slika 4. Programska memorija Adrese vektora prekida nalaze se u intervalima od 8 bajtova: - 0003H vanjski prekid 0 (External Interrupt 0) - pin IN T 0; - 000BH prekid od tajmera 0 (po zastavici prelijevanja tajmera - T F 0); - 0013H vanjski prekid 1 - IN T 1 pin; - 001BH prekid od timera 1 (prema zastavici prelijevanja tajmera - T F 1); - 0023H prekid iz serijskog porta (serijski prekid = prekid prijema ili prekid prijenosa); itd. Memorija podataka je odvojena od programske memorije. 64K vanjskog RAM adresiranja moguće je u ovom području. Prilikom pristupa vanjskoj memoriji podataka, CPU mikrokontrolera generira odgovarajuće signale čitanja (R D) ili zapisivanja (W R), interakcija s internom podatkovnom memorijom vrši se na razini naredbe, dok se R D i W R signali ne generiraju. Vanjska programska memorija i vanjska memorija podataka mogu se kombinirati AND-om RD i PS EN signala kako bi se osigurala eksterna memorija (program/podatak) stroboskop. Donjih 128 bajtova interne memorije podataka (donjih 128) prisutni su na svim MCS-51 matricama i prikazani su na slici 5. Prva 32 bajta predstavljaju 4 banke (Registar Bank) s 8 registara (R7 ... R0). Registri R0 i R1 u bilo kojoj od banaka mogu se koristiti kao neizravni adresni registri. 16 bajtova koji slijede banke registara tvore blok prostora koji se može adresirati u bitovima. MCS-51 skup instrukcija sadrži široku paletu bitnih operacija, a 128 bita u ovom bloku je izravno adresibilno, a adrese su u rasponu od 00H do 7FH. Svi bajtovi u donjoj polovici memorije od 128 bajta mogu se adresirati izravno ili neizravno. Gornja polovica RAM memorije od 128 bajta (gornja 128) nema u I-8051 čipu, ali je dostupna u verzijama kristala s 256 bajtova RAM-a. U ovom slučaju, područje "Gornje 128" dostupno je samo za neizravno adresiranje. Područje SFR (Registar posebnih funkcija) dostupno je samo uz izravno adresiranje. Raspored registara posebnih funkcija u SFR prostoru prikazan je na slici 6. To uključuje registre portova, mjerače vremena, periferne kontrole i tako dalje. 9 7FH RAM područje koje se može adresirati u bajtovima 30H (izravno, neizravno) 2FH 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H 2EH 77H 76H 75H 74H 73H 72H 71H 70H Bajt-područje koje se može adresirati 73H 72H 71H 70H Bajt-područje 70H 70H 71H 70H Bajt-područje AH0H0 BH05 Područje bajt-adresa6H0 BH0H0 BH00 Područje bajta6H05 04H 03H 02H 01H 00H 1FH RB3 18H 17H RB2 10H 0FH RB1 08H 07H SP nakon RESETIRANJA 00H RB0 (R7 + R0) Slika 5. Donjih 128 bajtova interne RAM memorije. bitsko adresiranje 8 bajtova F8H FFH F0H B F7H E8H EFH E0H ACC E7H D8H DFH D0H PSW D7H C8H CFH C0H C7H B8H IP BFH B0H P3 B7H A8H IE AFH A0H P2 A7H 98F 98H S P2 A7H 98F 98H 98H 98F 98H 98F 98H /8 1/9 2 / A 3 / B 4 / C 5 / D 6 / E 7 / F Slika 6. Postavljanje registara posebnih funkcija u SFR prostor. Za 16 adresa u SFR prostoru moguće je i bajtsko i bitno adresiranje. Za registre koji se mogu adresirati na bit, heksadecimalna adresa završava s "0H" ili "8H". Bit adrese u ovom području kreću se od 80H do FFH. Cijela serija kristala obitelji MCS-51 ima osnovni set SFR-ova, kao u mikrokrugu I-8051, koji se nalazi na istim adresama. Međutim, u kristalima, koji su daljnji razvoj obitelji u SFR regiji, dodaju se novi registri za proširenje 10

PLAN PREDAVANJA

1. Uvod

2. Aritmetičke i logičke upute

3. Naredbe za prijenos podataka

4. Booleove operacije

5. Upute za prijelaz

1. Uvod

Zapovjedni sustav MCS-51 podržava jedan skup instrukcija, koji je dizajniran za izvršavanje 8-bitnih algoritama za upravljanje izvršnim uređajima. Moguće je koristiti brze metode adresiranja unutarnjeg RAM-a, izvodeći bitne operacije na malim strukturama podataka. Postoji opsežan sustav za adresiranje jednobitnih varijabli kao neovisnog tipa podataka, koji omogućuje korištenje odvojenih bitova u logičkim i kontrolnim naredbama Booleove algebre.

Načini adresiranja : skup naredbi MCS-51 podržava sljedeće načine adresiranja. Izravno oslovljavanje: operand je određen 8-bitnom adresom u instrukciji. Izravno adresiranje koristi se samo za donju polovicu interne memorije podataka i registara SFR. Neizravno adresiranje: instrukcija se obraća registru koji sadrži adresu operanda. Ova vrsta adresiranja koristi se za vanjski i unutarnji RAM. Registri se mogu koristiti za označavanje 8-bitnih adresa R0 i R1 odabranu banku registra ili pokazivač steka SP... Za 16-bitno adresiranje koristi se samo registar pokazivača podataka DPTR.

Upute za registraciju : registri R0 – R7 trenutnu banku registra može se adresirati putem posebnih instrukcija koje sadrže 3-bitno polje koje označava broj registra u samoj instrukciji. U ovom slučaju nedostaje odgovarajuće adresno polje u naredbi. Operacije pomoću posebnih registara: neke upute koriste pojedinačne registre (npr. rad baterije, DPTR, itd.). U ovom slučaju, adresa operanda uopće nije navedena u naredbi. Unaprijed je definiran kodom operacije.

Neposredne konstante : konstanta se može pronaći odmah u naredbi nakon koda operacije.

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

Skup naredbiima 42 mnemoničke oznake naredbi za konkretizaciju 33 funkcije ovog sustava. Sintaksa za većinu naredbi asemblerskog jezika sastoji se od oznake mnemoničke funkcije iza koje slijede operandi koji označavaju metode adresiranja i tipove podataka. Različiti tipovi podataka ili načini adresiranja određeni su postavljenim operandima, a ne promjenama mnemoničkih oznaka.

Sustav naredbi se uvjetno može podijeliti u pet grupa: aritmetičke naredbe; logičke naredbe; naredbe za prijenos podataka; naredbe bitnog procesora; naredbe za prijenos grananja i upravljanja. Skraćenice i simboli koji se koriste u sustavu naredbi prikazani su u nastavku.

Stol. Oznake i simboli koji se koriste u sustavu naredbi

Oznaka, simbol

Ugovoreni sastanak

Baterija

Registri trenutno odabrane banke registara

Broj učitanog registra naveden u naredbi

direktno

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

Neizravno adresabilna 8-bitna ćelija internog podatkovnog RAM-a

8-bitni direktno podaci uključeni u šifru operacije (CPC)

podaciH

Najznačajniji bitovi (15-8) izravnih 16-bitnih podataka

podaciL

Najmanji značajni bitovi (7-0) izravnih 16-bitnih podataka

11-bitna odredišna adresa

addrL

Najmanji značajni bitovi odredišne ​​adrese

8-bitni predznačni pomakni bajt

Direktno adresibilni bit, čija adresa sadrži CPC, koji se nalazi u internom podatkovnom RAM-u ili registru posebnih funkcija SFR

a15, a14 ... a0

Bitovi odredišne ​​adrese

Sadržaj elementa X

Sadržaj na adresi pohranjenoj u elementu X

Pražnjenje M elementa X


+

*
I
ILI
XOR
/ X

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

Funkcijska mnemonika je jedinstveno povezana sa specifičnim kombinacijama metoda adresiranja i tipova podataka. U zapovjednom sustavu moguće je ukupno 111 takvih kombinacija.

2. Aritmetičke i logičke upute

Kako n primjer aritmetička naredba, operacija zbrajanja može se izvesti jednom od sljedećih naredbi.

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

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

DODAJ A, R7- dodati sadržaj registra sadržaju registra A R 7 i pohraniti rezultat u registar A;

DODAJ A, # 127- sadržaju registra A dodati broj čija je adresa mjesta pohrane 127 ( # - simbol broja) i pohraniti rezultat u registar T- ponovno A.

Sve aritmetičke upute izvode se u jednom strojnom ciklusu s izuzetkom instrukcije INC DPTR(pomak pokazivača podataka DPTR do sljedećeg bajta), što zahtijeva dva strojna ciklusa, kao i operacije množenja i dijeljenja koje se izvode u 4 strojna ciklusa. Bilo koji bajt u internoj memoriji podataka može se povećavati i smanjivati ​​bez korištenja baterije.

Upute MUL AB vrši množenje podataka u akumulatoru s podacima u registru B, stavljajući proizvod u registre A (donja polovica) i B (visoka polovica).

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

Upute DA A namijenjen je binarno-decimalnim aritmetičkim operacijama (aritmetičke operacije nad brojevima predstavljenim u binarno-decimalnom kodu). Ne pretvara binarno u binarni decimalni, ali daje točan rezultat samo pri zbrajanju dva BCD broja.

Primjer logička naredba: Logička operacija I može se izvesti jednom od sljedećih naredbi:

ANLA,7 F 16 - logično množenje sadržaja registra A brojem 7Ž 16 a rezultat se pohranjuje u registar A;

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

ANL A, R6- logično množenje sadržaja registra A sa sadržajem registra R 6, a rezultat pohraniti u registar A;

ANL A, #53 - logičko množenje sadržaja registra A brojem čija je adresa mjesta pohrane 53 16, a rezultat se pohranjuje u registar A.

Sve logičke operacije nad sadržajem akumulatora izvode se u jednom strojnom ciklusu, ostale - u dva. Logičke operacije mogu se izvesti na bilo kojem od nižih 128 bajtova interne memorije podataka ili na bilo kojem registru SFR (registri posebnih funkcija) u načinu izravnog adresiranja bez korištenja baterije.

Operacije cikličkog pomaka RL A, RLC A i tako dalje pomiču sadržaj akumulatora za jedan bit udesno ili ulijevo. U slučaju lijevog cikličkog pomaka, bit s najmanjim značajem se pomiče na najznačajniji položaj. U slučaju desnog cikličkog pomaka događa se suprotno.

Operacija ZAMJENA A izmjenjuje mlađe i starije bilježnice u akumulatoru.

3. Naredbe za prijenos podataka

Tim MOV dest, src omogućuje prijenos podataka između ćelija interne RAM-a ili područja registra posebnih funkcija SFR bez korištenja baterije. Istodobno, rad s gornjom polovicom internog RAM-a može se obavljati samo u načinu neizravnog adresiranja, a pristup registrima SFR- samo u načinu izravnog adresiranja.

U svim mikro krugovima MCS-51 stog se dodjeljuje izravno u rezidentnu memoriju podataka i raste prema gore. Upute GURNUTI najprije povećava vrijednost u registru pokazivača steka SP a zatim gura podatkovni bajt u stog. Naredbe GURNUTI i POP koriste se samo u načinu izravnog adresiranja (pisanje ili vraćanje bajta), ali je stog uvijek dostupan kada se posredno adresira preko registra SP... Dakle, stog 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-bitnu operaciju prijenosa MOV DPTR, # podaci16 koji se koristi za inicijalizaciju registra pokazivača podataka DPTR pri pregledu 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 je sličan prethodnom, ali se izvodi samo za niže tetrade koje sudjeluju u razmjeni operanada.

Za pristup vanjskoj memoriji podataka koristi se samo neizravno adresiranje. U slučaju jednobajtnih adresa koriste se registri R0 ili R1 trenutnu banku registra, a za 16-bitnu - registar pokazivača podataka DPTR... Kod bilo koje metode pristupa vanjskoj memoriji podataka, akumulator ima ulogu izvora ili primatelja informacija.

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

MOVC A, @ A + DPTR ;

MOVC A, @ A + PC .

Sadržaj registra pokazivača podataka koristi se kao osnovna adresa tablice. DPTR ili PC(programski brojač), a pomak se uzima iz A... Ove naredbe služe isključivo za čitanje podataka iz programske memorije, ali ne i za upisivanje u nju.

4. Booleove operacije

Mikrokrugovi MCS-51 sadrže "boolean" procesor. Interni RAM ima 128 bitova koji se mogu izravno adresirati. Prostor registra posebne funkcije SFR također može podržati do 128 bitnih polja. Bitne instrukcije izvode uvjetne skokove, prijenose, dumpove, inverzije, I i OR operacije. Svi navedeni bitovi dostupni su u načinu izravnog adresiranja.

Nosite bit CF u registar posebnih funkcija "riječ statusa programa PSW"Upotrebljava se kao jednobitni akumulator booleovog procesora.

5. Upute za prijelaz

Adrese prijelaznih operacija označene su u asemblerskom jeziku oznakom ili stvarnom vrijednošću u prostoru programske memorije. Uvjetne adrese grananja sastavljaju se u relativni pomak - predznak bajt dodan programskom brojaču PC ako je uvjet prijelaza ispunjen. Granice takvih prijelaza leže između minus 128 i 127 u odnosu na prvi bajt koji slijedi instrukciju. U registru posebne funkcije "riječ statusa programa PSW“Ne postoji nula zastavica, dakle upute JZ i JNZ provjeriti uvjet "jednako nuli" kao testiranje podataka u akumulatoru.

Postoje tri vrste naredbe bezuvjetnog grananja: SJMP, LJMP i AJMP- različito u formatu odredišne ​​adrese. Upute SJMP kodira adresu kao relativni pomak i zauzima 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 adresnu konstantu. Naredba se sastoji od dva bajta. Kada se ova instrukcija izvrši, donjih 11 bitova brojača adresa zamjenjuju se 11-bitnom adresom iz instrukcije. Pet najvažnijih bitova softverskog brojača PC ostati nepromijenjena. Dakle, skok se može izvesti unutar 2K-bajtnog bloka, u kojem se nalazi instrukcija koja slijedi instrukciju AJMP.

Postoje dvije vrste poziva naredbenih potprograma: LCALL i POZIV... Upute LCALL koristi 16-bitnu adresu pozvanog potprograma. U ovom slučaju, potprogram se može nalaziti bilo gdje u memoriji programa. Upute POZIV koristi 11-bitnu adresu potprograma. U ovom slučaju, pozvani potprogram mora biti smješten u jednom bloku od 2K bajta s uputom koja slijedi POZIV... Obje verzije naredbe stavljaju adresu sljedeće naredbe na stog i učitavaju je u programski brojač PC odgovarajuću novu vrijednost.

Potprogram završava uputom RET za povratak na instrukciju nakon naredbe POZIV... Ova instrukcija izbacuje povratnu adresu iz steka i učitava je u programski brojač. PC ... Upute RETI koristi se za povratak iz servisnih rutina prekida. Jedina razlika RETI iz RET je li to RETI obavještava sustav da je rukovanje prekidom završeno. Ako u vrijeme izvršenja RETI nema drugih prekida, onda je identično RET.

Upute DJNZ dizajniran za kontrolu ciklusa. Za pokretanje ciklusa N jednom kada trebate učitati bajtove s vrijednošću N i zatvorite tijelo petlje naredbom DJNZšto označava početak ciklusa.

Tim CJNE uspoređuje svoja dva operanda kao neoznačene cijele brojeve i skače na adresu navedenu u njemu ako uspoređeni operandi nisu jednaki. Ako je prvi operand manji od drugog, tada je bit prijenosa CF je postavljeno na "1".

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

Vrhunski povezani članci