Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Greš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). Memorija MK ima harvardsku arhitekturu, tj. logički podijeljeni: na programsku memoriju - PP (internu ili eksternu), adresiranu 16-bitnim komandnim brojačem (SC) i memoriju podataka - internu (Resident data memory - RPD) 128 (ili 256) bajtova, kao i eksternu (External memorija podataka – VPD) do 64 KB. Fizički, programska memorija je implementirana na ROM (samo za čitanje), a memorija podataka je implementirana u RAM (podaci se mogu pisati i čitati).

Prijem i isporuka eksternih signala vrši se preko 4 osmobitna porta R0..R3. Kada se pristupa eksternoj programskoj memoriji (EPM) ili memoriji podataka (VPD), portovi P0 i P2 se koriste kao multipleksirana eksterna magistrala adresa/podataka. Linije P3 porta također mogu obavljati alternativne funkcije (vidi tabelu 1).

16-bitni DPTR registar formira VPD adresu ili osnovnu adresu programske memorije u instrukciji konverzije akumulatora. DPTR registar se također može koristiti kao dva nezavisna 8-bitna registra (DPL i DPH) za pohranjivanje operanada.

8-bitni interni registar komandi (RK) prima kod naredbe koja se izvršava; ovaj kod dekodira kontrolni krug, koji generiše kontrolne signale (vidi sliku 1).

Pristup registrima posebnih funkcija – RSF (SFR – na slici 1 zaokruženi su isprekidanom linijom) moguć je samo korišćenjem direktnog bajt adresiranja u opsegu adresa od 128 (80h) i više.


Stalna memorija podataka (RDD) u prvim modelima mikrokontrolera porodice MCS-51 imala je kapacitet od 128 bajtova. Donja 32 bajta RPD-a su takođe registri opšte namene - RON (4 banke po 8 RON). Program se može prijaviti na jedan od 8 RON-a aktivne banke. Odabir aktivne banke RON-ova vrši se programiranjem dva bita u registru statusa procesora - PSW.


Tabela 1 - Dodjela pinova MCS-51

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

Reset signal (aktivan nivo - visok);

RST signal se resetuje: PC i većina registara specijalnih funkcija (SFR), onemogućujući sve prekide i tajmere; bira RON Bank 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 I/O port; nakon upisivanja u odgovarajući bit "1" - obavlja dodatne (alternativne) funkcije:

Ulaz serijskog porta - RxD;

Izlaz serijskog porta - TxD;

Ulaz eksternog prekida 0 - ~INT0;

Ulaz eksternog prekida 1 - ~INT1;

Tajmer/brojač ulaz 0 - T0;

Tajmer/brojač ulaz 1 - T1;

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

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

18, 19 X1, X2 Zaključci za povezivanje kvarcnog rezonatora ili LC kola;
20 GND Opšti zaključak;
21..28 P2 8-bitni kvazi-dvosmjerni I/O port; ili izlazna adresa A u načinu eksterne memorije (VPP ili VPD);
29 PME Eksterni strob za čitanje programske memorije, izdaje se samo kada se pristupa eksternom ROM-u;
30 ALE Eksterna memorijska adresa (VPP ili VPD);
31 EA Onemogućavajući RPP, nivo "0" na ovom ulazu prebacuje MK na izbor komandi samo sa piste ;
39..32 P0 8-bitni dvosmjerni I/O port; kada pristupa vanjskoj memoriji, izdaje adrese A (koje se upisuju u vanjski registar pomoću ALE signala), a zatim sinhrono razmjenjuje bajt sa signalom ~PME (za komande) ili ~WR,~RD (za podatke u VPD-u) , kada se pristupa eksternoj memoriji, sve jedinice se upisuju u registar porta P0, uništavajući informacije koje su tamo pohranjene;
40 Ucc Izlazni napon napajanja

Prebacivanje banaka RON-ova pojednostavljuje izvršavanje potprograma i rukovanje prekidima, jer. nije potrebno prenositi sadržaj RON-ova glavnog programa u stog prilikom pozivanja potprograma (dovoljno je otići u drugu aktivnu RON banku u potprogramu).

Pristup RPD-u je moguć korištenjem indirektnog ili direktnog bajtova adresiranja (direktno bajt adresiranje omogućava pristup samo prvih 128 bajtova RPD-a).

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

Tabela 2 - Blok registri posebnih funkcija (s f r)

Mnemo kod Ime
0E0h *ACC Baterija
0F0h *B Registrirajte ekspander 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 *IE Registar maske prekida
99h SBUF Bafer serijskog primopredajnika
98h * SCON Registar kontrole/statusa serijskog porta
89h TMOD Registar načina rada tajmera/brojača
88h * TCON Tajmer/brojač Kontrola/Registar statusa
8Dh TH1 Tajmer 1 (visoki bajt)
8bh TL1 Tajmer 1 (niski bajt)
8ch TH0 Tajmer 0 (visoki bajt)
8ah 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 snage potražnje

2. SOFTVERSKI MODEL MCS–51


VRSTE KOMANDA MCS–51

Gotovo polovina naredbi se izvršava u jednom strojnom ciklusu (MC). Sa frekvencijom kristalnog oscilatora od 12 MHz, vrijeme izvršenja za takvu naredbu je 1 μs. Preostale komande se izvršavaju u 2 mašinska ciklusa, tj. za 2 ms. Samo instrukcije množenja (MUL) i dijeljenja (DIV) se izvršavaju u 4 strojna ciklusa.

Tokom jednog mašinskog ciklusa, postoje dva pristupa programskoj memoriji (internoj ili eksternoj) za čitanje dva bajta instrukcije ili jedan pristup eksternoj memoriji podataka (EDM).

3. METODE (METODE) ODRŠAVANJA MCS–51

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

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

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

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

5 DIREKTNO BITSKO ADRESIRANJE - (bit) - koristi se za pristup odvojeno adresiranim 128 bitova koji se nalaze u RPD ćelijama na adresama 20H ... 2FH i odvojeno adresiranim bitovima specijalnih funkcijskih registara (vidi tabelu 3 i model programa);

6 INDIREKTNO INDEKSNO ADRESIRANJE (označeno znakom @) - pojednostavljuje pregled tabela u programskoj memoriji, PP adresa je određena zbirom osnovnog registra (PC ili DPTR) i indeksnog registra (Battery);

7 IMPLICITNO (UGRAĐENO) ADRESIRANJE - instrukcijski kod sadrži implicitnu (podrazumevano) referencu na jedan od operanada (najčešće na Akumulator).

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

C - Nosi (CARY) ili posudi zastavicu, također funkcionira kao "boolean akumulator" u bit-operiranim instrukcijama;

AC – pomoćna (dodatna) oznaka za nošenje – postavljena na "1" ako je komanda za sabiranje (ADD, ADDC) imala prijenos sa tetrade nižeg reda na visoki red (tj. sa 3. bita na 4. bit);

F0 - korisnička zastavica - postavljena, resetovana i provjerena softverom;

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 – Izbor banke registra:

OV - Zastavica aritmetičkog prelivanja; njegova vrijednost je određena XOR operacijom ulaznih i izlaznih prijenosnih signala najznačajnijeg bita ALU; jedna vrijednost ove zastavice pokazuje da je rezultat aritmetičke operacije u komplementarnom kodu dvije izvan opsega: –128…+127; prilikom izvođenja operacije dijeljenja, OV zastavica se resetuje, au slučaju dijeljenja na nulu, postavlja se; prilikom množenja, OV zastavica se postavlja ako je rezultat veći od 255 (0FFH);

Bit PSW - rezervisan, sadrži okidač, dostupan za pisanje ili čitanje;

P - zastavica parnosti - je dodavanje broja pojedinačnih bitova u akumulatoru parnom broju; formira se kombinacijskim krugom (programski dostupno samo za čitanje).

Mikrokontroleri MCS-51 nemaju oznaku "Z". Ali u uputama za uslovni skok (JZ, JNZ), kombinaciono kolo provjerava trenutni (nula ili ne-nula) sadržaj akumulatora.

Sve komande prenosa i razmene operanada mogu se izvršiti preko Akumulatora (vidi sliku 3). Štaviše, prijenosi iz/u vanjsku memoriju (programsku memoriju ili memoriju podataka) mogu se izvršiti samo preko baterije.

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

Prijenosi koji nedostaju iz RON u RON mogu se implementirati kao prijenosi iz RON u proslijeđeni bajt dir (s obzirom da se RON-ovi nalaze u početnom području stalne memorije podataka, čije ćelije se mogu adresirati kao dir).

XCH komande za razmjenu vam omogućavaju slanje bajtova bez uništavanja oba operanda.

Aritmetičke komande 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.


Komanda za oduzimanje SUBB-a se izvršava samo sa posuđivanjem (tj. Cary zastavica se također oduzima od rezultata). Stoga, da bi se izvršila instrukcija oduzimanja bez pozajmljivanja, potrebno je prvo izvršiti Clear Flag C (CLRC) instrukciju.

Instrukcija za množenje jednobajtnih operanda - MULAB - postavlja dvobajtni (16-bitni) rezultat: niži bajt je u Akumulatoru, a visoki bajt je u registru B.

Rezultat izvršavanja instrukcije za podjelu 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 izabranog operanda. Instrukcija akumulatorske decimalne korekcije (DAA) pomaže vam da dodate binarni decimalni (BCD) brojevi bez njihovog pretvaranja u heksadecimalni (hex) format. Izvorni operandi moraju biti u BCD formatu, tj. u svakoj tetradi od jednog bajta nalaze se samo brojevi od 0 do 9 (ne mogu postojati heksadecimalni brojevi: A, B, C, D, E, F). Dakle, jedan bajt može sadržavati brojeve od 00 do 99 za upakovane BCD brojeve, ili brojeve od 0 do 9 za nepakirane BCD brojeve.

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

· ako je sadržaj tetrade nižeg reda akumulatora veći od 9 ili je postavljena zastavica pomoćnog prijenosa (AC = 1), tada se sadržaju akumulatora dodaje 6 (odnosno šest cifara koje nedostaju u heksadecimalnom format);

· ako je nakon toga sadržaj visokog reda Akumulatora veći od 9 ili je postavljena zastavica C, onda se broj 6 dodaje visokom redu Akumulatora.

Instrukcija decimalne korekcije DA A se ne koristi nakon instrukcije inkrementa (INC) jer instrukcija povećanja ne utječe (mijenja) na zastavice C i AC.

Logičke komande:

Logično "I" - ANL,

Logično "OR" - ORL,

Logička naredba XOR - XRL - se izvršava u Akumulatoru (kao i aritmetika), ali je moguće izvršiti i logičke komande u bajtu direktne adrese (dir). U ovom slučaju, drugi operand može biti:

u bateriji ili

Neposredni operand u instrukciji.

Instrukcije rotacije (RR A, RL A) i instrukcije rotacije preko CARY zastavice (RRC A, RLC A) rotiraju sadržaj akumulatora za 1 bit. Bitovi operandi se šalju samo preko zastavice C.

Arhitektura porodice MCS-51 je u velikoj mjeri predodređena njenom namjenom - građevinom kompaktan i jeftino digitalnih uređaja. Sve funkcije mikroračunara implementirane su pomoću jednog mikrokola. Porodica MCS-51 uključuje čitav niz mikro krugova od najjednostavnijih mikrokontrolera do prilično složenih. Mikrokontroleri porodice MCS-51 omogućavaju vam da obavljate i zadatke upravljanja različitim uređajima i implementaciju pojedinačnih čvorova analognog kola. Sva mikro kola ove porodice rade sa istim komandni sistem MCS-51, većina njih se izvodi u istim slučajevima sa odgovarajući pinout(numeracija nogu za kućište). To vam omogućava da za razvijeni uređaj koristite čipove različitih kompanija - Maxim, Atmel, NXP itd. (catalog..php?page=components_list&id=39"> s.m. Pretraživanje po parametrima) bez mijenjanja dijagrama sklopa 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čke jedinice, aritmetičko-logičke jedinice, jedinice tajmera/brojala, serijskog sučelja i jedinice za prekid, programskog brojača, memorije podataka i programska memorija. Bilateralna razmjena se vrši korištenjem internog 8-bitnog autoputa podataka.

Pogledajmo bliže svrhu svakog bloka. Gotovo svi predstavnici porodice MCS-51 izgrađeni su prema ovoj shemi.. Različiti mikro krugovi ove porodice razlikuju se samo po registrima posebne namjene (uključujući broj portova). Komandni sistem svih kontrolera iz porodice MCS-51 sadrži 111 osnovnih naredbi s formatom od 1, 2 ili 3 bajta i ne mijenja se pri prelasku s jednog mikrokola na drugo. Ovo obezbeđuje odličnu prenosivost programa sa jednog čipa na drugi.

Jedinica za upravljanje i sinhronizaciju

Jedinica za upravljanje i sinhronizaciju (Timing and Control) je dizajnirana da generiše sinhronizacione i upravljačke signale koji obezbeđuju koordinaciju zajedničkog rada OEVM jedinica u svim dozvoljenim režimima rada. Upravljačka jedinica uključuje:

  • - uređaj za formiranje vremenskih intervala,
  • - I/O logika,
  • - registar instrukcija,
  • - registar upravljanja potrošnjom električne energije,
  • - komandni dekoder, kompjuterska upravljačka logika.

Uređaj za određivanje vremena je namijenjen za generiranje i izlaz internih sinhronizacijskih signala faza, ciklusa i ciklusa. Broj mašinskih ciklusa određuje trajanje izvršenja instrukcije. Gotovo sve OEVM komande se izvršavaju u jednom ili dva mašinska ciklusa, osim naredbi množenja i dijeljenja, čije trajanje je četiri strojna ciklusa. Označimo frekvenciju glavnog oscilatora kroz F g. Tada je trajanje mašinskog ciklusa 12/F g, odnosno 12 perioda signala master oscilatora. Ulazno-izlazna logika je dizajnirana da prima i izdaje signale koji osiguravaju razmjenu informacija sa vanjskim uređajima preko ulazno/izlaznih portova P0-P3.

Komandni registar dizajniran je za snimanje i pohranjivanje 8-bitnog koda operacije naredbe koja se izvršava. Operativni kod se uz pomoć komandnog dekodera i kompjuterske upravljačke logike pretvara u mikroprogram za izvršavanje komande.

Registar kontrole potražnje (PCON) omogućava vam da zaustavite rad mikrokontrolera kako biste smanjili potrošnju energije i smanjili nivo smetnji od mikrokontrolera. Još veće smanjenje potrošnje energije i smanjenje buke može se postići zaustavljanjem glavnog oscilatora mikrokontrolera. Ovo se može postići prebacivanjem bitova u PCON registru upravljanja potražnjom. Za n-MOS proizvodnu opciju (1816 serija ili strani čipovi koji nemaju slovo "c" u sredini imena), PCON registar kontrole napajanja 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 pruža aritmetičke i logičke operacije. ALU se sastoji od:

  • - registri akumulatora, registri za privremenu memoriju TMP1 i TMP2,
  • - ROM konstante,
  • - guja,
  • - dodatni registar (registar B),
  • - akumulator (ACC),
  • - registar statusa programa (PSW).

Registrirajte se baterija i drže registre- osmobitni registri dizajnirani da primaju i pohranjuju operande za vrijeme trajanja operacija na njima. Ovi registri nisu programski dostupni.

ROM konstante osigurava razvoj ispravljačkog koda za binarno-decimalno predstavljanje podataka, koda maske za bitne operacije i konstantnog koda.

Paralelni 8-bitni sabirač je kombinacijsko kolo sa sekvencijalnim prijenosom, dizajnirano za izvođenje aritmetičkih operacija sabiranja, oduzimanja i logičkih operacija sabiranja, množenja, dispariteta i identiteta.

Registar B- osmobitni registar koji se koristi tokom operacija množenja i dijeljenja. Za ostale upute, može se smatrati dodatnim registrom scratchpad-a.

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

Serijski interfejs i blok prekida (SIP) je dizajniran da organizuje ulaz-izlaz sekvencijalnih tokova informacija i organizuje sistem prekida programa. Blok uključuje:

  1. - PIP bafer,
  2. - kontrolna logika,
  3. - kontrolni registar,
  4. - bafer predajnika,
  5. - bafer prijemnika,
  6. - serijski primopredajnik,
  7. - registar prioriteta prekida,
  8. - registar omogućavanja prekida,
  9. - logika za obradu zastavica prekida i šema generiranja vektora.

Programski brojač je dizajniran da formira trenutnu 16-bitnu adresu interne programske memorije i 8/16-bitnu adresu eksterne programske memorije. Programski brojač se sastoji od 16-bitnog PC bafera, PC registra i inkrementnog kola (povećava sadržaj za 1).

Memorija podataka (RAM) namijenjen je za privremeno pohranjivanje informacija koje se koriste tokom izvršavanja programa.

Priključci P0, P1, P2, P3 su kvazi-dvosmjerni ulazno-izlazni portovi i dizajnirani su da osiguraju razmjenu informacija između OEVM-a i eksternih uređaja, formirajući 32 ulazno-izlazne linije.

Tajmer uređaj Osnovni modeli familije imaju dva programabilna 16-bitna tajmera/brojača (T/C0 i T/C1) koji se mogu koristiti i kao tajmeri i kao eksterni brojači događaja.

Registar statusa programa (PSW) dizajniran je za pohranjivanje informacija o stanju ALU-a tokom izvršavanja programa.

Programska memorija (EPROM) dizajniran za pohranjivanje programa i memorija je samo za čitanje (ROM). Razna mikrokola koriste maskirane ROM-ove koji se brišu ultraljubičastim zračenjem ili FLASH 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 memorijskog područja podataka (steka), u koji možete privremeno pohraniti bilo koju memorijsku ćeliju.



U počecima proizvodnje mikrokontrolera je Intel sa porodicama osmobitnih mikrokontrolera 8048 i 8051. Arhitektura MCS-51 dobila je ime po prvom predstavniku ove porodice - mikrokontroleru 8051, koji je pušten 1980. godine baziran na HMOS tehnologiji. Dobar set perifernih uređaja, fleksibilan izbor eksterne ili interne programske memorije i pristupačna cijena osigurali su uspjeh ovog mikrokontrolera na tržištu. U tehnološkom smislu, mikrokontroler 8051 bio je vrlo složen proizvod za svoje vrijeme - u kristalu je korišteno 128 hiljada tranzistora, što je 4 puta više od broja tranzistora u 16-bitnom 8086 mikroprocesoru.

Glavni elementi osnovne arhitekture su:
- 8-bitni ALU baziran na arhitekturi baterija;
- 4 banke registara, po 8 u svakoj;
- ugrađena programska memorija 4Kbytes;
- interni RAM 128 bajtova;
- boolean procesor
-2 šesnaest-bitna tajmera;
- kontroler serijske veze (UART);
- kontroler prekida sa dva nivoa prioriteta;
- četiri 8-bitna ulazna/izlazna porta, od kojih se dva koriste kao adresna/podataka za pristup eksternoj memoriji programa i podataka;
- ugrađeni generator takta.

Upravo je ovaj mikrokontroler najpoznatiji programerima i popularan je kontrolni alat u širokom spektru uređaja. Dostupni su mnogi emulatori, debugeri i 8051 programeri, tako da razvoj softvera nije težak.

Sljedeći fundamentalni korak u razvoju MCS-51 bio je transfer proizvodne tehnologije na CHMOS. To je omogućilo implementaciju režima mirovanja i isključivanja napajanja, što je omogućilo drastično smanjenje potrošnje energije kristala i otvorilo put za upotrebu mikrokontrolera u nestabilnim aplikacijama, na primjer, u autonomnim uređajima koji se napajaju baterijama.

A posljednja fundamentalna 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 karakteristika ove grupe kristala je njihov niz programabilnih brojača (PCA). Strukturni dijagram PCA prikazan je na sl.2.

PCA uključuje:

Tajmer/brojač služi svih pet modula za uzorkovanje i poređenje, koji se mogu programirati da obavljaju jednu od sljedećih funkcija:

16-bitno uzorkovanje vrijednosti tajmera na pozitivnoj ivici vanjskog signala;
16-bitno uzorkovanje vrijednosti tajmera na negativnoj ivici vanjskog signala;
16-bitno uzorkovanje vrijednosti tajmera na bilo kojoj ivici vanjskog signala;
16-bitni softverski tajmer;
16-bitni izlazni uređaj velike brzine (HSO);
8-bitni PWM

Sve gore navedene funkcije se izvode u PCA na hardverskom nivou i ne opterećuju centralni procesor, što omogućava povećanje ukupne propusnosti sistema, poboljšanje tačnosti mjerenja i obrade signala i smanjenje vremena odziva mikrokontrolera na eksterne događaja, što je posebno važno za sisteme u realnom 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 kompanija.

U početku, usko grlo MCS-51 arhitekture je bio 8-bitni ALU baziran na bateriji i relativno sporo izvršenje instrukcija (za izvršenje najbržih instrukcija potrebno je 12 ciklusa takta). Ovo je ograničilo upotrebu porodičnih mikrokontrolera u aplikacijama koje zahtevaju povećane performanse i složene proračune (16- i 32-bitne). Pitanje temeljne modernizacije stare arhitekture postalo je hitno. Problem modernizacije je bio komplikovan činjenicom da je do početka 90-ih godina već bilo puno razvoja u oblasti softvera i hardvera, a jedan od glavnih zadataka u razvoju nove arhitekture bio je implementacija hardverske i softverske kompatibilnosti. sa starim razvojem zasnovanim na MCS-51. Za rješavanje ovog problema stvorena je zajednička grupa stručnjaka iz Intela i Philipsa. Kao rezultat toga, 1995. godine pojavile su se 2 značajno različite porodice: MCS-251/151 iz Intela i 51XA iz Philipsa (u nastavku ćemo se fokusirati na posljednje).

Ključne karakteristike MSC-251 arhitekture:

24-bitni linearni adresni prostor, adresiranje do 16M memorije(proizvedeni mikrokontroleri iz porodice MCS-251 imaju memorijski adresni prostor od 256K);
Skup instrukcija mikrokontrolera porodice MCS-251 sadrži svih 111 komandi uključenih u skup instrukcija mikrokontrolera porodice MCS-51 ("stare" komande), a pored toga uključuje 157 "novih" komandi. Neki novi kodovi komandi su u formatu od 4 bajta.
Prije korištenja mikrokontrolera, on mora biti konfigurisan, tj. koristeći programator, "spalite" konfiguracijske bajtove koji određuju koji će skup instrukcija postati aktivan nakon uključivanja napajanja. Ako instalirate MCS-51 set instrukcija, tada će MSC-251 biti kompatibilan sa MCS-51 na nivou binarnog koda. Ovaj način rada naziva se binarni način rada. Međutim, proširene instrukcije u ovom načinu su također dostupne kroz "prozor" - rezervirani kod instrukcije 0A5h. Naravno, dužina svake proširene instrukcije se u ovom slučaju povećava za 1 bajt. Ako u početku instalirate skup proširenih instrukcija, tada će u ovom slučaju programi napisani za MCS-51 zahtijevati ponovnu kompilaciju na unakrsnim alatima za MCS-51, jer sada će standardne instrukcije biti dostupne kroz isti "prozor" 0A5h i njihova dužina će se takođe povećati za 1 bajt. Ovaj način rada se zove Source Mode. Omogućava vam korištenje proširenih instrukcija s maksimalnom efikasnošću i postizanjem najviših performansi, ali zahtijeva redizajn softvera.
arhitektura registra koja dozvoljava da se registri nazivaju bajtovima, riječima i dvostrukim riječima;
adresiranje u načinu stranice za ubrzavanje preuzimanja instrukcija iz eksterne programske memorije;
red instrukcija;
prošireni skup instrukcija, uključujući 16-bitne aritmetičke i logičke instrukcije;
prošireni adresni prostor steka do 64K;
izvršavanje najbrže instrukcije u 2 ciklusa;
kompatibilnost binarnog koda sa programima za MCS-51.

Za korisnike orijentisane na upotrebu MCS-251 mikrokontrolera kao mehaničke zamene za MCS-51, Intel izdaje MCS-251 mikrokontrolere sa konfiguracionim bitovima koji su već programirani u stanju binarnog režima. Takvi mikrokontroleri su dobili indeks MCS-151.

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

Univerzalna serijska magistrala (ili USB) proširuje Plug-and-Play tehnologiju na eksterne I/O uređaje koji se nalaze na današnjim vrhunskim personalnim računarima.

Kako bi se mogli povezati različiti periferni uređaji, USB standard definira četiri načina prijenosa: Master, Isochronous, Pulse i Array Transfer. Svaki periferni uređaj mora podržavati kontrolni način za prosljeđivanje konfiguracijskih parametara, naredbi i informacija o statusu uređaja. Izohron prenos obezbeđuje zagarantovan pristup magistrali, konstantan propusni opseg i toleranciju grešaka, i može se koristiti u audio izlaznim uređajima i kompjuterskoj telefoniji. Impulsni prijenos je namijenjen za ulazne uređaje kao što su miš, džojstik ili tastatura koji prenose informacije rijetko i u malim porcijama, ali sa ograničenim periodom trajanja. Prijenos niza omogućava uređajima kao što su skeneri, faks mašine ili digitalne kamere da prenesu velike količine podataka na personalni računar čim kanal sabirnice postane slobodan.

Glavne karakteristike proizvoda

Potpuno kompatibilan sa "Specifikacija univerzalne serijske magistrale 1.0"
Integrirani USB primopredajnik Serial Bus Interface Engine (SIE)
Četiri FIFO reda za prijenos
Tri 16-bajtna FIFO reda
Četiri FIFO reda za prijem
Tri 16-bajtna FIFO reda
Jedan konfigurabilni FIFO red (do 1024 bajta)
Automatska kontrola prijema/prijenosa u FIFO redovima
Zaustavi/nastavi operacije
Tri vektora prekida USB magistrale
Ciklus blokade faze
Brzine podataka: 12 Mbps i 1,5 Mbps
Način sporog ciklusa
Eksterni adresni prostor kapaciteta 256 KB
Režimi uštede energije: pripravnost i isključenje
Korisnički definirane opcije
Čekanje u realnom vremenu
1 KB RAM na čipu
Četiri I/O porta
Programabilni broj mjerača (PCA)
Standardni (MCS 51) UART mikrokontroler
Hardverski čuvar
Tri fleksibilna 16-bitna tajmera/brojala
Kompatibilan sa MCS 51 i MCS 251 mikrokontrolerskim skupom instrukcija
Arhitektura MCS 251 mikrokontrolera zasnovana na registrima
Radna frekvencija 6 ili 12 MHz

Kontroler 8x930Hx ima dodatne karakteristike:

USB hub
Opcije kontrole USB čvorišta
Upravljanje vezom
Detekcija povezivanja/odspajanja sa izlaznim uređajem
Upravljanje napajanjem uključujući zaustavljanje/nastavljanje
Detekcija kvara sabirnice i oporavak
Podrška za izlazne uređaje pune i male brzine
Izlazni pin za prebacivanje napajanja porta
Ulazni kontakt za detekciju preopterećenja

Četiri različita načina prenosa podataka preko USB-a omogućena su kooperacijom tri elementa: Host, Hub, Funkcionalni uređaj. Domaćin kontrolira prijenos sadržaja i kontrolnih informacija preko magistrale. Funkcionalni uređaji proširuju sisteme domaćina. Ovo uključuje tipične vrste rada na računaru: unos sa tastature ili džojstika, izlaz na monitor; kao i složenije aktivnosti kao što su digitalna telefonija i prijenos slike. Intel 8x930Ax mikrokontroler je dizajniran za kontrolu funkcionalnih uređaja. Konačno, čvorišta su USB tačka proširenja koja omogućava pristup drugim funkcionalnim uređajima. Intel 8x930Hx mikrokontroler, koji kombinuje funkcionalnu kontrolu uređaja i USB čvorište, je prvo komercijalno dostupno USB čvorište dizajnirano za moderne PC periferne uređaje.

USB čvorišta igraju ključnu ulogu u širenju svijeta korisnika PC-a. Sa pojavom perifernih uređaja - tastatura, monitora, štampača i još mnogo toga - opremljenih ugrađenim čvorištima, povezivanje ili isključivanje novog uređaja je jednostavno kao umetanje utikača u utičnicu. Novi nivoi performansi i poboljšana USB povezanost mogli bi dovesti do nove generacije uređaja za rad i zabavu. Dani ugrađenih kartica, IRQ sukoba i zapetljanih žica su odbrojani.

USB kabl sabirnice sastoji se od samo četiri žice: Vbus, D+, D- i GND - na taj način pojednostavljuje i ujednačava vezu. Istu svrhu služi i jedan standardni konektor za povezivanje perifernih uređaja na USB magistralu. Podaci se prenose različito na D+ i D- kablovima, 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 eksternim elektronskim kolima. Izuzetak je završni otpornik na D+ i D- liniji, koji je potreban da bi se utvrdilo da li je uređaj velike ili male brzine.

Pregled porodice
Intel 8x930 porodica se sastoji od dva kontrolera sa jednim čipom.

Intel 8x930Ax kontroler je 8-bitni uređaj koji je zasnovan na arhitekturi mikrokontrolera MCS 251 i dizajniran je za rad sa perifernim uređajima povezanim na USB magistralu. S druge strane, 8x930Hx koristi isto jezgro mikrokontrolera MCS 251 plus poboljšane karakteristike ugrađenog USB čvorišta magistrale. Upotreba MCS 251 arhitekture u oba USB kontrolera magistrale nudi sljedeće prednosti:

Visoke performanse
Upotreba mješovitih tipova memorije i adresiranja
Mala potrošnja energije
Niska buka
Efikasna podrška za jezike visokog nivoa
Prošireni skup komandi
Ugrađene funkcije

Uputstva za 8x930Ax se mogu koristiti i iz kompleta mikrokontrolera MCS 51 i iz kompleta mikrokontrolera MCS 251. Ovaj pristup štedi korisnicima ulaganja u softver i izvlači najviše performanse iz aplikacija.

Mikrokontroleri 8x930 su toliko puni raznih ugrađenih funkcija da izgledaju moćnije od samo mikrokontrolera. Programabilni brojač (PCA) daje fleksibilnost aplikacijama koje zahtijevaju poređenje u realnom vremenu ili hvatanje podataka, brzu komunikaciju ili modulaciju širine impulsa. Dodatno, kontroler uključuje prošireni serijski port, tri 16-bitna tajmera/brojača, hardverski nadzornik, četiri 8-bitna I/O porta i dva načina za uštedu energije: pripravnost i isključenje.

Kontroleri iz porodice 8x930Ax opremljeni su sa 1 Kbyte memorije i mogu se koristiti u verzijama bez trajne memorije, ili sa trajnom memorijom kapaciteta 8 ili 16 Kbyte. Oni mogu adresirati do 256 KB eksterne memorije za instrukcije i podatke i 40 bajtova registara opšte namene, koji se nalaze u CPU-u kao registarski fajl. Ovisno o korištenoj kombinaciji, registarska datoteka može sadržavati 16 bajtnih registara, 16 dvobajtnih i 10 četverobajtnih registara.

Kontroleri imaju fleksibilan interfejs sa eksternom memorijom. Za pristup uređajima sa sporom memorijom moguće je dodati tri ciklusa čekanja, a za generiranje više ciklusa koristiti funkciju u realnom vremenu. Eksterno dohvaćanje instrukcija može poboljšati performanse korištenjem načina rada stranice, koji okreće podatke u visokom bajtu adrese.

Oba 8x930 kontrolera su opremljena sa osam FIFO redova za podršku internih izlaznih uređaja: četiri reda za slanje i četiri reda za prijem. Četiri FIFO reda za prijem/prenos podržavaju četiri krajnje funkcionalne jedinice (0 do 3). Red čekanja 0 sastoji se od 16 bajtova i namijenjen je za prijenos kontrolnih informacija. Red čekanja 1 je kategoriziran kao korisnički konfiguriran i ima kapacitet do 1024 bajta. Redovi 2 i 3 imaju po 16 bajtova i mogu se koristiti za prijenos informacija u burst, izohronom i nizu načinima prijenosa. U slučaju kontrolera 8x930Hx, ovi redovi su pojačani parom FIFO redova za ulazne uređaje. Ovi redovi u 8x930Hx kontroleru su podržani dodatnim repetitorom koji je odgovoran za ponovni prijenos tokova podataka generiranih od strane izlaznih uređaja.

Pregled arhitekture
Strukturno, USB implementacija u mikrokontrolerima 8x930Ax i 8x930Hx može se podijeliti u četiri bloka: FIFO redovi, blok interfejsa sa funkcionalnim uređajima, blok interfejsa serijske magistrale i primopredajnik. Kontroler 8x930Hx ima dodatne blokove za upravljanje funkcijama koncentratora: interfejs blok sa koncentratorom i repetitorom.

FIFO redovi za prijem i prijenos na oba kontrolera su u obliku prstena. Redovi podržavaju do dva zasebna skupa podataka promenljive veličine i sadrže registre brojača bajtova koji pokazuju broj bajtova u skupovima podataka. Redovi su opremljeni zastavicama koje pokazuju da li je red pun ili prazan, a također su u mogućnosti da ponove prijem ili prijenos trenutnog skupa podataka. Funkcionalna jedinica interfejsa uređaja (FID) distribuira prenete ili primljene USB podatke prema vrsti prenosa i stanju redova. Osim toga, IFU blok prati stanje transakcije, upravlja FIFO redovima i, koristeći zahtjev za prekid, izvještava o pojavi kontrolnih događaja centralnom procesoru 8x930.

Interfejs jedinica serijske magistrale implementira USB protokol za prijenos: sekvencira pakete, vrši generiranje i prepoznavanje signala, generiranje i verifikaciju kontrolne sume, NRZI kodiranje / dekodiranje podataka, punjenje bitova, generiranje i prepoznavanje identifikatora paketa (PID).

Integrisani primopredajnik na USB mikrokontrolerima je u skladu sa jednostavnim četvorožičnim interfejsom definisanim USB 1.0 specifikacijom. Porodica kontrolera 8x930 ima tri prekida vezana za USB. Pojavljuju se na početku svakog okvira, kraju prijema/prijenosa podataka do terminalnih funkcionalnih uređaja, u slučaju globalne obustave ili nastavka rada. U čvorištu 8x930Hx, blok sučelja čvorišta se koristi za upravljanje i praćenje statusa veze izlaznih portova. Repetitor je odgovoran za širenje signala gore i dolje USB portova.

Ministarstvo opšteg i stručnog obrazovanja Ruske Federacije Novosibirski državni tehnički univerzitet V.N. Veprik, V.A. Afanasiev, A.I. Družinin, A.A. Zemskov, A.R. Isaev, O.V. Malyavko MIKROKONTROLERI PORODICE MCS-51 Udžbenik iz predmeta "Mikroprocesorski sistemi" i "Projektovanje mikroprocesorskih sistema" za studente viših godina Fakulteta za automatizaciju i računarstvo svih oblika obrazovanja Novosibirsk 1997 V.N. Veprik, V.A. Afanasiev, A.I. Druzhinin, A.A. Zemskov, A.R. Isaev, O.V. Malyavko. Mikrokontroleri porodice MCS-51: Uputstvo. - Novosibirsk. Predloženi udžbenik sadrži opšti opis arhitekture, funkcionalnosti i komandnog sistema porodice mikrokontrolera sa jednim čipom (Embedded Microcontrollers) MCS-51, proizvođača INTEL. U drugom dijelu priručnika opisan je obrazovni mikroprocesorski kontroler UMPC-51, koji se nudi studentima kao predmet proučavanja prilikom izvođenja ciklusa laboratorijskog rada. Materijal priručnika može se koristiti u dizajnu kurseva i diploma, a može biti koristan i za stručne inženjere uključene u razvoj i rad elektronske opreme. Autori izražavaju duboku zahvalnost CJSC "Nove Technologies", zvaničnom distributeru INTEL-a, na obezbeđenju materijala na osnovu kojih je ovaj posao izveden. Tabela 15, slika 25, spisak lit. 12 naslova Recenzenti: E.D. Baran, G.G. Matushkin. Rad je pripremljen na Katedri za računarsko inženjerstvo Novosibirsk State © Tehnički univerzitet 2 UVOD. Porodica 8-bitnih jednočipnih mikrokontrolera MCS-51 pojavila se na svjetskom tržištu početkom osamdesetih. Prve modifikacije kristala (oko 7) napravljene su korištenjem visokokvalitetne n-MOS (HMOS) tehnologije i predstavljale su funkcionalno dovršene mikroračunare s jednim čipom harvardske arhitekture, čiji je jedan od glavnih principa logičko razdvajanje programa i podataka. memorijski adresni prostori. S razvojem poluvodičke tehnologije, počele su se proizvoditi sljedeće verzije mikro krugova MCS-51 korištenjem naprednije CMOS (CHMOS) tehnologije male snage (u aktivnom načinu rada potrošnja kristala je povećana na 1050 mA). Komandni sistem MCS-51, fokusiran na implementaciju različitih algoritama digitalnog upravljanja, uz zadržavanje neke eksterne sličnosti sa komandnim sistemom prethodne porodice MCS-48, kvalitativno se proširio, u njemu su se pojavile fundamentalne inovacije: bit-orijentisane operacije i bitna polja adresirana 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 stekom; proširena je grupa komandi za prenos kontrole; Komandni sistem je počeo izgledati više simetrično, odnosno manje ovisi o prijenosu podataka kroz bateriju. Funkcionalnost ugrađenih perifernih uređaja je takođe proširena uvođenjem: dva 16-bitna brojača vremena; hardverski serijski dupleks port; dvostepeni sistem prekida; četiri 8-bitna I/O porta. Temeljne promjene u strukturi vremenskog ciklusa procesora dovele su do bržeg rada sa eksternom programskom i podatkovnom memorijom, kao i odgovora na vanjske i interne prekide. Ukupna veličina adresnog prostora eksternog programa i memorije podataka povećana je na 128 KB. 16-bitni registri programskog brojača (Program Counter) i pokazivača podataka (Data Pointer) omogućili su direktan pristup cijelom rasponu adresa, što je programerima dalo mogućnost implementacije algoritama za brzu obradu velikih nizova podataka. Svi softverski dostupni čvorovi mikrokontrolera svedeni su na posebno područje memorije podataka (Special Function Register), što je omogućilo pristup njima na gotovo isti način kao i običnim ćelijama rezidentne RAM memorije. U kasnijim modifikacijama kristala, poboljšanje je išlo putem povećanja dodatne funkcionalnosti uz održavanje pune softverske kompatibilnosti sa ranijim verzijama. Karakteristike najnovijih modifikacija mikrokontrolera iz porodice MCS-51 su: potpuno statičan dizajn; 3- i 5-voltne verzije kristala; širok raspon ugrađenih perifernih uređaja; maksimalna frekvencija takta - 24 MHz; za pojedinačne grupe kristala - 33 MHz. Trenutno, MCS-51 uključuje oko 60 verzija kristala, osim toga, dostupna je i dostupna detaljna vlasnička dokumentacija (nažalost, još nije prevedena na ruski). Za pripremu softvera za mikrokontrolere MCS-51 uglavnom se koriste jezici ASM-51, C, za koje postoji niz prilično dokazanih kompajlera, biblioteka standardnih potprograma i softverskih emulatora koje proizvode različite strane i domaće kompanije. . 3 Uprkos dovoljnoj „starini“ porodice (više od 15 godina) i pojavi na svetskom tržištu poslednjih godina jednočipnih mikrokontrolera većih performansi i poboljšane arhitekture – MCS-51, MCS-251, MCS-96, MCS-51 kontroleri će se dugo koristiti u relativno jednostavnim ugrađenim upravljačkim sistemima. 4 1. INTEL SISTEM OZNAČAVANJA KOMPONENTI I FUNKCIONALNI SASTAV PORODICE MCS-51 Za označavanje mikročipova, INTEL koristi sistem notacije koji se sastoji od nekoliko polja: , automobilska verzija za prošireni temperaturni opseg (-40 / +125 C) M (vojna) , verzija prema vojnim standardima (-55 / +125 C) Q ili C (Commercial), "komercijalni" temperaturni opseg (0 / +70 C ) sa (160 8) - satni dinamički termički trening; L ili E (Prošireno), "prošireni" temperaturni opseg (-40/+85 C) sa (160 8) satnim dinamičkim termičkim treningom; T (Prošireno), "prošireno" temperaturno područje (-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 mikrokola (Package Type). Danas postoji nekoliko desetina različitih tipova paketa mikrokola, stoga ćemo kao primjer dati samo neke oznake: Ceramic Pin Grid Array, (PGA); C Ceramic Dual In-Line Package, (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 Plastic Dual In-Line Package, (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 tip određenog uređaja koji se nalazi na čipu. Četvrto polje može uključivati ​​do šest numeričkih i abecednih znakova, odražavajući različite karakteristike i verzije mikrokola. Dodatne informacije o tipovima kućišta i njihovom dizajnu možete pronaći u knjizi: Broj za narudžbu pakovanja 240800. Što se tiče opisanih mikrokontrolera iz porodice MCS-51, prvi znak trećeg polja tradicionalno je (za Intel) jednak "8". Drugi znak trećeg polja obično označava tip ugrađenog ROM-a: 0 programska maska ​​ROM-a; ne-ROM kristal (za kasnije verzije kristala); 1 maska ​​ROM programa (Standardni ROM kod, firmver); 3 maske ROM (za kasnije verzije kristala), (prilagodljivi ROM kod); 7 UFPROM ili jednokratni programabilni ROM (EPROM ili OTP ROM); 8 EEPROM (Flash - memorija na čipu) Zatim može slijediti slovo koje označava tehnološke karakteristike proizvodnje: bez slova HMOS tehnologija, napajanje od 5V; Sa CHMOS tehnologijom, napajanje od 5V; l CHMOS tehnologija, 3V napajanje; 5 Sljedeći znakovi trećeg polja za mikrokontrolere porodice MCS-51 su brojevi (na primjer, 31,32,51,54,58,152) i od jednog do četiri slova koja odražavaju funkcionalne karakteristike čipova (npr. Veličina ROM-a, specifičnosti grupe čipova, prisustvo sistemske zaštite programske memorije od neovlašćenog pristupa, mogućnost korišćenja naprednijeg programskog algoritma „Quick Pulse“ i slično). U originalnoj tehničkoj dokumentaciji kompanije Intel, svi mikrokontroleri porodice MCS-51 su grupisani u grupe („Linija proizvoda“), od kojih svaka kombinuje najbliže verzije kristala u smislu njihove funkcionalnosti i električnih parametara. Budući da se nazivi mikrokola jedne grupe neznatno razlikuju, tada se za označavanje svake pojedinačne grupe koristi generalizirani simbolizam, formiran od označavanja specifičnih mikrokola, zamjenom različitih znakova sa "X". Tako se mogu razlikovati sljedeće grupe mikrokontrolera. 1. Grupa 8X5X (linija proizvoda 8051 i linija proizvoda 8052): 8031AN, 8051AN, 8751H, 8051AHP, 8751H-8, 8751VN, 8032AN, 8052AN, 8752VN. 2. Grupa 8HS51 (80S51 linija proizvoda): 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 8XL5X (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 (8XC51GX linija proizvoda): 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-AH, 81C51SL-BG, 83C51SL-BG, 80C51-AH, 81C51SL-AH, 83C51SL-AH, 87C51SL-AH, 80ALC51SL-5, 81SLC55 87C51SL-AL. Prva grupa mikrokontrolera obuhvata mlađe modele familije, napravljene korišćenjem n-MOS tehnologije i ne preporučuju se za upotrebu u novim razvojima, sve ostale grupe su napravljene korišćenjem savremene CMOS tehnologije. Mikro kola druge, treće i četvrte grupe danas su klasični predstavnici porodice MCS-51. Peta i šesta grupa uključuju 3-voltne verzije kristala (niskonaponske). Kristali sedme grupe opremljeni su proširenom RAM memorijom (Expanded RAM), čiji je volumen 512 bajtova. Mikro kola osme, devete i desete grupe su mikrokontroleri specijalizovani za primenu (Application Specific). Mnoge od današnjih aplikacija zahtevaju kontrolne mikrokontrolere visokih performansi koji koriste napredno adresiranje, arhitekturu registra, veliki interni RAM i prostor steka, i efikasno podržavaju programiranje jezika visokog nivoa. Ovi mikrokontroleri uključuju mikrokontrolere Nove arhitekture iz porodica MCS-5 i MCS-251, koje je Intel lansirao 1995. godine. Funkcionalni sastav i ključne karakteristike mikrokontrolera MCS-51/MCS-251 date su u prilogu. 6 2. GLAVNE KARAKTERISTIKE OSNOVNOG MODELA PORODICE MIKROCONTROLERA MCS-51. Osnovni model porodice mikrokontrolera MCS-51 i osnova za sve naredne modifikacije je mikrokontroler I-8051. Njegove glavne karakteristike su sljedeće: osmobitni CPU optimiziran za kontrolne funkcije; ugrađeni generator takta; adresni prostor programske memorije - 64 K; adresni prostor memorije podataka - 64 K; interna programska memorija - 4 K; interna memorija podataka - 128 bajtova; dodatne karakteristike za izvođenje operacija Booleove algebre (operacije po bitovima); 32 dvosmjerne i individualno adresabilne I/O linije; 2 x 16-bitna višefunkcionalna tajmera/brojača; full duplex asinhroni primopredajnik; vektorski sistem prekida sa dva nivoa prioriteta i šest izvora događaja. Blok dijagram I-8051 je prikazan na slici 1, a raspored pinova mikrokola je prikazan na slici 2. Eksterni 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. Blok dijagram I-8051 Čitava serija MCS-51 ima harvardsku arhitekturu, odnosno odvojene adresne prostore memorije programa i podataka. Organizacija memorije je prikazana na slici 3. Količina interne (rezidentne) programske memorije (ROM, EPROM ili OTP ROM) koja se nalazi na čipu, ovisno o vrsti mikrokola, može biti 0 (ROMless), 4K (osnovni čip), 8K, 16K ili 32K. Ako je potrebno, korisnik može proširiti programsku memoriju instaliranjem eksternog ROM-a. Pristup internom ili eksternom ROM-u određen je vrijednošću signala na pinu EA (External Access): EA=Vcc (napon napajanja) - pristup internom ROM-u; EA=Vss (potencijal zemlje) - pristup eksternom ROM-u. Za čipove bez ROM-a, EA pin mora biti trajno povezan na Vss. Eksterni ROM čitač - PS EN (Program Store Enable) se generiše prilikom pristupa eksternoj programskoj memoriji i neaktivan je tokom pristupa ROM-u koji se nalazi na čipu. 7 Nisko područje programske memorije koristi sistem prekida, arhitektura 8051 čipa pruža podršku za pet izvora prekida: dva eksterna prekida; dva prekida od tajmera; prekida sa 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) (R D) P3.0 10 31 EA/Vpp (T D) 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) Sl.2. Dodjela pinova I-8051 Programska memorija (čitanje) Memorija podataka (čitanje/pisanje) FFFFH Eksterni ROM FFFFH Eksterni @DPTR RD memorija PSEN WR podaci @PC MOVC EA=0 Interna memorija @DPTR podaci @PC Eksterni interni FFH gornji 128 SFR MOVX ROM ROM 80H EA=0 0000H EA=1 donji 128 00H 0000H PSEN Sl.3. Organizacija memorije porodice MCS-51 8 Slika 4 prikazuje mapu donjeg područja programske memorije. ROM Programska memorija 0033H 002BH Serijski port 0023H Vektorski Tajmer1 001BH prekida EINT1 0013H Tajmer0 000BH EINT0 0003H Početna adresa 0000H (Reset) Sl.4. Adrese vektora prekida u memoriji programa nalaze se u intervalima od 8 bajtova: - 0003H eksterni prekid 0 (External Interrupt 0) - izlaz IN T 0 ; - 000BH prekid od tajmera 0 (prema zastavici prelivanja tajmera - T F 0); - 0013H eksterni prekid 1 (eksterni prekid 1) - izlaz IN T 1; - 001BH prekid od tajmera 1 (prema zastavici prelivanja tajmera - T F 1); - 0023H prekid serijskog porta (serijski prekid = prekid prijema ili prekid prijenosa); itd. Memorija podataka je odvojena od programske memorije. U ovoj oblasti se može adresirati 64K eksterne RAM memorije. Prilikom pristupa eksternoj memoriji podataka, CPU mikrokontrolera generiše odgovarajuće signale čitanja (RD) ili pisanja (WR), interakcija sa internom memorijom podataka se vrši na nivou komande, dok se RD i W R signali ne generišu. Eksterna programska memorija i eksterna memorija podataka mogu se kombinovati kombinovanjem RD i PS EN signala na logičan I način kako bi se proizvela eksterna memorija (program/podatak) strob. Donjih 128 bajtova interne memorije podataka (donjih 128) prisutni su na svim MCS-51 čipovima i prikazani su na slici 5. Prva 32 bajta su 4 banke (banka registara) od 8 registara (R7...R0). Registri R0 i R1 u bilo kojoj banci mogu se koristiti kao indirektni adresni registri. 16 bajtova koji slijede banke registara čine blok prostora koji se može adresirati u bitovima. MCS-51 skup instrukcija sadrži široku lepezu bitnih operacija, a 128 bita u ovom bloku se mogu direktno adresirati i adrese se kreću od 00H do 7FH. Svi bajtovi u donjoj polovini memorije od 128 bajtova mogu se adresirati direktno ili indirektno. Gornja polovina RAM memorije od 128 bajta (gornja 128) nije prisutna u I-8051 čipu, ali je dostupna u 256-bajtnim RAM verzijama čipova. U ovom slučaju, područje "Upper 128" dostupno je samo sa indirektnim adresiranjem. SFR (Special Function Register) područje je dostupno samo uz direktno adresiranje. Postavljanje registara posebnih funkcija u SFR prostor je prikazano na Sl.6. Oni uključuju registre portova, tajmere, periferne kontrole i tako dalje. 9 7HH Pobytnit-ljepilo 30h (direktno, indirektno) 2FH 7FH 7EH 7DH 78h 79h 76h 74h 73h 72h 71h 73h 73h 72h 71h 0h 0dh 0ch 0h 0ch 0ch 0ch 0ch 0ch 0ch 0ch 0c 06h 05h 04H 03H 02H 01H 00H 1FH RB3 18H 17H RB2 10H 0FH RB1 08H 07H SP nakon RESETOVANJA 00H RB0(R7+R0) Sl.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 S 98H 98H S P2 A7H 98H 98H P2 A7H S 98H 98H DPH PCO 87H N 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F Sl.6. Postavljanje registara posebnih funkcija u SFR prostor. Za 16 adresa u SFR prostoru moguće je adresiranje i bajt i bit. Za registre koji se mogu adresirati na bit, heksadecimalna adresa završava sa "0H" ili "8H". Bit adrese u ovoj oblasti imaju vrijednosti od 80H do FFH. Čitava serija kristala porodice MCS-51 ima osnovni SFR set, kao u I-8051 čipu, koji se nalazi na istim adresama. Međutim, u kristalima, koji predstavljaju dalji razvoj porodice u SFR regionu, dodaju se novi registri za proširenje 10

PLAN PREDAVANJA

1. Uvod

2. Aritmetičke i logičke upute

3. Komande za prijenos podataka

4. Bulove operacije

5. Instrukcije za skok

1. Uvod

Komandni sistem MCS-51 podržava jedan skup instrukcija koji je dizajniran za izvršavanje 8-bitnih algoritama za upravljanje aktuatorima. Moguće je koristiti brze metode adresiranja interne RAM memorije, izvođenje bitnih operacija na malim strukturama podataka. Postoji opsežan sistem za adresiranje jednobitnih varijabli kao nezavisnog tipa podataka, koji omogućava korišćenje pojedinačnih bitova u logičkim i kontrolnim komandama Bulove algebre.

Načini adresiranja : set instrukcija MCS-51 podržava sljedeće načine adresiranja. Direktno adresiranje: Operand je specificiran 8-bitnom adresom u instrukciji. Direktno adresiranje se koristi samo za donju polovinu interne memorije podataka i registara SFR. indirektno adresiranje: Instrukcija se obraća registru koji sadrži adresu operanda. Ova vrsta adresiranja se koristi za eksterni i interni RAM. Registri se mogu koristiti za specificiranje 8-bitnih adresa R0 i R1 odabrana banka registara ili pokazivač steka SP. Za 16-bitno adresiranje koristi se samo registar pokazivača podataka. DPTR.

Uputstva za registraciju : registri R0–R7 Trenutna banka registara može se adresirati preko posebnih instrukcija koje sadrže 3-bitno polje koje označava broj registra u samoj instrukciji. U ovom slučaju, u naredbi nema odgovarajućeg adresnog polja. Operacije pomoću posebnih registara: neke instrukcije koriste pojedinačne registre (na primjer, operacije akumulatora, DPTR itd.). U ovom slučaju, adresa operanda uopće nije navedena u instrukciji. To je unaprijed određeno kodom operacije.

Neposredne konstante : konstanta može biti direktno u komandi iza koda operacije.

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

Skup komandiima 42 komandne mnemonike za specifikaciju 33 funkcije ovog sistema. Sintaksa većine instrukcija asemblerskog jezika sastoji se od mnemoničke funkcije koju prate operandi koji specificiraju metode adresiranja i tipove podataka. Različiti tipovi podataka ili načini adresiranja određeni su postavljenim operandima, a ne promjenama mnemoničke notacije.

Sistem komandi se uslovno može podeliti u pet grupa: aritmetičke komande; logičke komande; naredbe za prijenos podataka; instrukcije za bit procesor; naredbe grananja i prijenosa. Oznake i simboli koji se koriste u komandnom sistemu su dati u nastavku.

Table. Oznake i simboli koji se koriste u komandnom sistemu

Oznaka, simbol

Svrha

Baterija

Registri trenutno odabrane banke registara

Broj učitanog registra naveden u naredbi

direktno

Direktno adresibilna 8-bitna adresa interne lokacije podataka, koja može biti interna podatkovna RAM lokacija (0-127) ili registar posebnih funkcija SFR (128-255)

Indirektno adresibilna 8-bitna interna data RAM lokacija

8-bitni odmah podaci uključeni u šifru operacije (COP)

dataH

MSB-ovi (15-8) neposrednih 16-bitnih podataka

dataL

Niski bitovi (7-0) neposrednih 16-bitnih podataka

11-bitna odredišna adresa

addrL

Najmanji značajni bitovi odredišne ​​adrese

8-bitni offset bajt sa predznakom

Direktno adresibilni bit čija adresa sadrži CPC koji se nalazi u internom RAM-u podataka ili registru posebne funkcije SFR

a15, a14...a0

Bitovi adrese odredišta

Sadržaj elementa X

Sadržaj na adresi pohranjenoj u elementu X

Ispraznite M element X


+

*
I
ILI
XOR
/X

Operacije:
dodaci
oduzimanje
množenje
divizije
logičko množenje (I operacija)
logičko sabiranje (operacija ILI)
zbrajanje po modulu 2 (XOR)
inverzija elementa X

Mnemotehnika funkcija je jedinstveno povezana sa specifičnim kombinacijama metoda adresiranja i tipova podataka. Ukupno je moguće 111 ovakvih kombinacija u komandnom sistemu.

2. Aritmetičke i logičke upute

Kako primjer aritmetička komanda, operacija sabiranja se može 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 (@ – komercijalno at ) se pohranjuje u registar R 0 (indirektno adresiranje) i pohraniti rezultat u registar A;

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

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

Sve aritmetičke instrukcije se izvršavaju u jednom mašinskom ciklusu osim 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 mašinska ciklusa. Bilo koji bajt u internoj memoriji podataka može se povećavati i smanjivati ​​bez korištenja akumulatora.

Uputstvo MUL AB vrši množenje (množenje) podataka u akumulatoru sa podacima u registru B, stavljajući proizvod u registre A (donja polovina) i B (viša polovina).

Uputstvo DIV AB dijeli (dijeli) sadržaj akumulatora vrijednošću u registru B, ostavljajući ostatak u B i količnik u akumulatoru.

Uputstvo DA A dizajniran za binarno-decimalne aritmetičke operacije (aritmetičke operacije nad brojevima predstavljenim u binarno-decimalnom kodu). Ne pretvara binarno u binarni decimalni, ali daje tačan rezultat samo kada se dodaju dva BCD broja.

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

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

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

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

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

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

Operacije rotacije RL A, RLC A, itd. 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čajniju poziciju. U slučaju desnog cikličkog pomaka, događa se suprotno.

Operacija SWAP A vrši razmjenu juniorskih i seniorskih tetrada u akumulatoru.

3. Komande za prijenos podataka

Tim MOV dest,src omogućava prijenos podataka između internih RAM ćelija ili područja registra posebne funkcije SFR bez upotrebe baterije. U ovom slučaju, rad sa gornjom polovinom interne RAM memorije može se obavljati samo u načinu indirektnog adresiranja, a pristup registrima SFR– samo u načinu direktnog adresiranja.

U svim mikro krugovima MCS-51 stek se postavlja direktno u rezidentnu memoriju podataka i raste prema gore. Uputstvo GURANJE prvo povećava vrijednost u registru pokazivača steka SP, a zatim gura bajtove podataka u stog. Timovi GURANJE i POP koriste se samo u načinu direktnog adresiranja (prilikom pisanja ili vraćanja bajta), ali je stog uvijek dostupan kada se indirektno adresira preko registra SP. Dakle, stek može koristiti i gornjih 128 bajtova memorije podataka. Ista razmatranja isključuju upotrebu stek instrukcija za adresiranje registara. SFR.

Instrukcije za prijenos podataka uključuju 16-bitnu operaciju prijenosa MOV DPTR,#podaci16, koji se koristi za inicijalizaciju registra pokazivača podataka DPTR prilikom pregleda tabela u programskoj memoriji ili za pristup eksternoj memoriji podataka.

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

Za pristup eksternoj memoriji podataka koristi se samo indirektno adresiranje. U slučaju jednobajtnih adresa koriste se registri R0 ili R1 trenutnu banku registara, a za 16-bitne registar pokazivača podataka DPTR. Kod bilo koje metode pristupa eksternoj memoriji podataka, baterija igra ulogu izvora ili primaoca informacija.

Za pristup tabelama koje se nalaze u programskoj memoriji koriste se sljedeće naredbe:

MOVC A,@A+ DPTR ;

MOVC A,@A+ PC .

Sadržaj odgovarajućeg registra pokazivača podataka se koristi kao osnovna adresa tabele. DPTR ili PC(softverski brojač), a pomak se uzima iz A. Ove upute se koriste isključivo za čitanje podataka iz programske memorije, a ne za pisanje u nju.

4. Bulove operacije

Mikrokrugovi MCS-51 sadrže Boolean procesor. Interna RAM memorija ima 128 direktno adresabilnih bitova. Prostor registra posebne funkcije SFR takođe može podržati do 128 bitnih polja. Bitne instrukcije izvode uslovne skokove, transfere, resetovanja, inverzije, I i ILI operacije. Svi navedeni bitovi su dostupni u načinu direktnog adresiranja.

Nosi bit CF u registru posebnih funkcija "riječ statusa programa PSW' se koristi kao jednobitni Boolean procesorski akumulator.

5. Instrukcije za skok

Adrese operacije skoka su u asemblerskom jeziku označene oznakom ili realnom vrijednošću u prostoru programske memorije. Uslovne adrese grananja se sklapaju u relativni pomak - predznak bajt koji se dodaje programskom brojaču PC ako je ispunjen prelazni uslov. Granice takvih skokova leže između minus 128 i 127 u odnosu na prvi bajt koji slijedi instrukciju. U registru posebne funkcije "riječ statusa programa PSW» nema nulte zastavice, pa uputstva JZ i JNZ provjerite uvjet "jednako nuli" kao testiranje podataka u akumulatoru.

Postoje tri tipa bezuslovnih instrukcija grananja: SJMP, LJMP i AJMP– odredišne ​​adrese koje se razlikuju po formatu. Uputstvo SJMP kodira adresu kao relativni pomak i zauzima dva bajta. Udaljenost skoka je ograničena na raspon od minus 128 do 127 bajtova u odnosu na instrukciju koja slijedi SJMP.

U uputstvu LJMP odredišna adresa se koristi kao 16-bitna konstanta. Komanda je duga tri bajta. Odredišna adresa može se nalaziti bilo gdje u programskoj memoriji.

Tim AJMP koristi 11-bitnu adresnu konstantu. Komanda 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 programskog brojača PC ostati nepromijenjen. Dakle, skok se može izvršiti unutar 2K-bajtnog bloka, koji sadrži instrukciju koja slijedi nakon instrukcije AJMP.

Postoje dvije vrste instrukcija za pozivanje potprograma: LCALL i ACALL. Uputstvo LCALL koristi 16-bitnu adresu pozvanog potprograma. U ovom slučaju, potprogram se može nalaziti bilo gdje u programskoj memoriji. Uputstvo ACALL koristi 11-bitnu adresu potprograma. U ovom slučaju, pozvani potprogram mora biti smješten u istom bloku od 2K bajta sa instrukcijom koja slijedi ACALL. Obje verzije instrukcije guraju adresu sljedeće instrukcije na stog i učitavaju je u programski brojač. PC odgovarajuću novu vrijednost.

Potprogram se završava instrukcijom RET, što vam omogućava da se vratite na instrukciju nakon naredbe CALL. Ova instrukcija izbacuje povratnu adresu sa steka i učitava je u programski brojač. PC . Uputstvo RETI koristi se za povratak iz rutina prekida. Jedina razlika RETI od RET je li to RETI Obavještava sistem da je obrada prekida završena. Ako u vrijeme izvršenja RETI nema drugih prekida, identično je RET.

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

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

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

Top Related Articles