Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Gabimet
  • Mikrokontrolluesit MCS – 51. Bllok diagrami, ALU, memoria e të dhënave

Mikrokontrolluesit MCS – 51. Bllok diagrami, ALU, memoria e të dhënave

Baza e mikrokontrolluesit (shih Fig. 1) është një Njësi Aritmetike-Logjike 8-bitëshe (ALU). Memoria MK ka arkitekturë të Harvardit, d.m.th. e ndarë logjikisht: në memorie programi - PP (e brendshme ose e jashtme), e adresuar nga një numërues komandash 16-bit (SC) dhe memorie e të dhënave - e brendshme (Memorie e të dhënave rezidente - RPD) 128 (ose 256) bajt, si dhe e jashtme (e jashtme memoria e të dhënave - VPD) deri në 64 KB. Fizikisht, memoria e programit zbatohet në ROM (vetëm për lexim), dhe memoria e të dhënave - në RAM (të dhënat mund të shkruhen dhe lexohen).

Marrja dhe shpërndarja e sinjaleve të jashtme kryhet nëpërmjet 4 portave tetëbitësh P0..P3. Kur qaseni në kujtesën e programit të jashtëm (EPM) ose memorien e të dhënave (EPM), portat P0 dhe P2 përdoren si një autobus i jashtëm i shumëfishuar i adresave / të dhënave. Linjat e portit P3 mund të kryejnë gjithashtu funksione alternative (shih Tabelën 1).

Regjistri DPTR 16-bitësh formon adresën VFD ose adresën bazë të kujtesës së programit në komandën e konvertimit të Akumulatorit. Regjistri DPTR mund të përdoret gjithashtu si dy regjistra 8-bitësh të pavarur (DPL dhe DPH) për ruajtjen e operandëve.

Regjistri i brendshëm i komandës 8-bitësh (RK) merr kodin e komandës që po ekzekutohet; ky kod deshifrohet nga qarku i kontrollit, i cili gjeneron sinjale kontrolli (shih Fig. 1).

Referuar regjistrave të funksioneve speciale - RSF (SFR - në Fig. 1 ata janë të rrethuar me një vijë me pika) është e mundur vetëm me përdorimin e adresimit direkt të bajtit në diapazonin e adresave nga 128 (80h) dhe më shumë.


Memoria e të dhënave rezidente (RPM) në modelet e para të mikrokontrolluesve MCS-51 kishte një vëllim prej 128 bajt. 32 bajtë më të ulët të RPD janë gjithashtu regjistra me qëllime të përgjithshme - RON (4 banka me 8 RON). Programi mund të adresojë një nga 8 RON-të e bankës aktive. Zgjedhja e bankës RON aktive kryhet duke programuar dy bit në regjistrin e statusit të procesorit - PSW.


Tabela 1 - Qëllimi i kunjave MCS-51

Pini nr. Emërtimi Emërimi
1..8 Р1 Porta hyrëse/dalëse pothuajse dydrejtimëshe 8-bitëshe
9 RST

Sinjali i rivendosjes (niveli aktiv - i lartë);

Sinjali RST fshin: PC-në dhe shumicën e Regjistrave të Funksionit Special (SFR), duke çaktivizuar të gjitha ndërprerjet dhe funksionimin e kohëmatësit; zgjedh Bankën RON 0; shkruan "all ones" në portat P0_P3, duke i përgatitur ato për hyrje; shkruan kodin 07H në treguesin e stivës (SP);

10..17

Porta hyrëse/dalëse pothuajse dydrejtimëshe 8-bitëshe; pasi shkruani në kategorinë përkatëse "1" - kryen funksione shtesë (alternative):

Hyrja e portës serike - RxD;

Dalja e portës serike - TxD;

Hyrja e ndërprerjes së jashtme 0 - ~ INT0;

Hyrja e ndërprerjes së jashtme 1 - ~ INT1;

Hyrja e kohëmatësit / numëruesit 0 - T0;

Hyrja e kohëmatësit / numëruesit 1 - T1;

Prodhimi strobe. sinjal kur shkruani në VPD - ~ WR;

Prodhimi strobe. sinjal kur lexoni nga VPD - ~ RD;

18, 19 X1, X2 Plumbat për lidhjen e një rezonatori kuarci ose qarku LC;
20 GND Konkluzioni i përgjithshëm;
21..28 P2 Porta hyrëse/dalëse pothuajse dydrejtimëshe 8-bitëshe; ose daljen e adresës A në mënyrën e funksionimit me memorie të jashtme (VFP ose VFD);
29 PME Strobi i leximit të memories së jashtme të programit, lëshohet vetëm kur hyni në ROM-in e jashtëm;
30 Ale Strobi i adresës së memories së jashtme (VPP ose VPD);
31 EA Fikja e RPP, niveli "0" në këtë hyrje transferon MC në një përzgjedhje komandash vetëm nga pista ;
39..32 P0 Porta hyrëse/dalëse me dy drejtime 8-bit; kur hyn në memorien e jashtme, ai lëshon adresat A (të cilat shkruhen në regjistrin e jashtëm nga sinjali ALE) dhe më pas shkëmben një bajt në mënyrë sinkrone me sinjalin ~ PME (për komanda) ose ~ WR, ~ RD (për të dhënat në VFD ), kur hyni në memorien e jashtme, të gjitha njësitë shkruhen në regjistrin e portit P0, duke shkatërruar informacionin e ruajtur atje;
40 Ucc Prodhimi i tensionit të furnizimit

Ndërrimi i bankave RON thjeshton ekzekutimin e nënprogrameve dhe trajtimin e ndërprerjeve, pasi nuk ka nevojë të shtyni përmbajtjen e RON-ve të programit kryesor në pirg kur thërrisni një nënprogram (mjafton të kaloni në një bankë tjetër aktive të RON-ve në nënprogram).

Qasja në RPD është e mundur duke përdorur adresimin e bajtit indirekt ose të drejtpërdrejtë (adresimi i drejtpërdrejtë i bajtit lejon aksesin vetëm në 128 bajt të parë të RPD).

Zona e zgjeruar RPD (për mikrokontrolluesit e familjes MCS-52 dhe familjet pasuese) nga adresa 128 (80h) në 255 (FFh) mund të adresohet vetëm duke përdorur metodën e adresimit indirekt.

Tabela 2 - Blloku i regjistrave të funksioneve speciale (s f r)

Kodi Mnemo Emri
0E0h * ACC Bateria
0F0h * B Regjistri i zgjerimit të baterisë
0D0h * PSW Fjala e statusit të procesorit
0B0h * P3 Porti 3
0A0h * P2 Porti 2
90h * P1 Porti 1
80h * P0 Porta 0
0B8h * IP Regjistri i Prioritetit të Ndërprerjes
0A8h * dmth Ndërprerja e regjistrit të maskave
99h SBUF Buferi i transmetuesit serial
98h * SCON Kontrolli i portës serike / Regjistri i statusit
89h TMOD Regjistrohu i modalitetit të kohëmatësit / numëruesit
88h * TCON Kohëmatësi / kontrolli i numëruesit / regjistri i statusit
8Dh TH1 Kohëmatësi 1 (bajt i lartë)
8 Bh TL1 Kohëmatësi 1 (Bajt i ulët)
8Ch TH0 Kohëmatësi 0 (bajt i lartë)
8 Ah TL0 Kohëmatësi 0 (bajt i ulët)
83h DPH Regjistri i treguesve të të dhënave (DPTR) (Bajt i lartë)
82h DPL Regjistri i treguesve të të dhënave (DPTR) (Bajt i ulët)
81h PS Regjistri i treguesve të stivës
87h PCON Regjistri i kontrollit të konsumit të energjisë

2. MODELI SOFTWARE MCS – 51


LLOJET E KOMANDAVE MCS – 51

Pothuajse gjysma e instruksioneve ekzekutohen në 1 cikël makinerie (MC). Me një frekuencë oshilator kristal prej 12 MHz, koha e ekzekutimit të një komande të tillë është 1 μs. Pjesa tjetër e komandave ekzekutohen në 2 cikle makinerie, d.m.th. për 2μs. Vetëm udhëzimet për shumëzim (MUL) dhe pjesëtim (DIV) ekzekutohen në 4 cikle makinerie.

Gjatë një cikli makinerie, ka dy thirrje në memorien e programit (të brendshme ose të jashtme) për të lexuar dy bajt komandash ose një akses në memorien e jashtme të të dhënave (EPM).

3. METODAT (METODA) E ADRESIMIT MCS-51

1. ADRESIMI I REGJISTRIT - operandi 8-bit është në RON të bankës së zgjedhur (aktive) të regjistrave;

2 ADRESIMI DIREKT (i shënuar me - #) - operandi është në bajtin e dytë (dhe për një operand 16-bit dhe në të tretën) të komandës;

3 ADRESIMI I INDIREKT (i shënuar me - @) - operandi është në kujtesën e të dhënave (RPD ose VPD), dhe adresa e qelizës së memories gjendet në një nga RON-të e adresimit indirekt (R0 ose R1); në komandat PUSH dhe POP, adresa gjendet në treguesin e stivës SP; regjistri DPTR mund të përmbajë një adresë IPT ​​deri në 64K;

4 ADRESIMI DIREKT BYTE - (dir) - përdoret për të hyrë në qelizat e RPD (adresat 00h… 7Fh) dhe në regjistrat e funksioneve speciale SFR (adresat 80h… 0FFh);

5 ADRESIMI I DIREKT BIT - (bit) - përdoret për t'iu referuar 128 biteve të adresueshëm veçmas të vendosura në qelizat RPD në adresat 20H ... 2FH dhe për bit të adresueshëm veçmas të regjistrave të funksioneve të veçanta (shih tabelën 3 dhe modelin e programit);

6 ADRESIMI I INDEKSIT INDIREKT (i shënuar me - @) - thjeshton shikimin e tabelave në memorien e programit, adresa PP përcaktohet nga shuma e regjistrit bazë (PC ose DPTR) dhe regjistri i indeksit (Akumulatori);

7 ADRESIMI I NDIKIMIT (TË NDËRTUAR) - kodi i komandës përmban një referencë të nënkuptuar (sipas parazgjedhjes) për një nga operandët (më shpesh për baterinë).

4. FORMATI I FJALËS SË GJENDJES SË PROCESORIT (PSW)

C - Carry flag (CARY) ose huazim, shërben gjithashtu si "Akumulator Boolean" në udhëzimet që funksionojnë në bit;

AC - flamuri i bartjes ndihmëse (shtesë) - vendoset në "1" nëse në komandën e shtimit (ADD, ADDC) ka pasur një transferim nga biti i poshtëm në atë më të lartë (d.m.th., nga biti i 3-të në bitin e 4-të);

F0 - flamuri i përdoruesit - vendoset, pastrohet dhe kontrollohet në mënyrë programore;

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

RS1, RS0 - Zgjidhni bankën e regjistrit:

OV - Flamuri i tejmbushjes aritmetike; vlera e tij përcaktohet nga funksioni "OE ekskluzive" i sinjaleve të mbartësve të hyrjes dhe daljes së bitit më të rëndësishëm të ALU; një vlerë e vetme e këtij flamuri tregon se rezultati i një operacioni aritmetik në kodin e komplementit të dy është jashtë kufijve: –128 ... + 127; gjatë kryerjes së një operacioni ndarjeje, flamuri OV fshihet dhe në rastin e pjesëtimit me zero, vendoset; kur shumëzohet, flamuri OV vendoset nëse rezultati është më i madh se 255 (0FFH);

Bit PSW - Rezervuar, përmban një flip-flop, i disponueshëm për shkrim ose lexim;

P - flamuri i barazisë - është plotësimi i numrit të biteve të vetme në akumulator deri në çift; i formuar nga një qark kombinues (softueri i disponueshëm vetëm me lexim).

Nuk ka asnjë flamur "Z" në mikrokontrolluesit MCS-51. Por në udhëzimet e kërcimit të kushtëzuar (JZ, JNZ), përmbajtja aktuale (zero ose jo zero) e Akumulatorit kontrollohet nga qarku i kombinimit.

Të gjitha komandat për transferimin dhe shkëmbimin e operandëve mund të kryhen nëpërmjet Battery (shih Fig. 3). Për më tepër, transferimet nga / në memorien e jashtme (Memoria e programit ose memoria e të dhënave) mund të kryhen vetëm përmes baterisë.

Shumica e transferimeve mund të bëhen edhe nëpërmjet një bajt adrese të drejtpërdrejtë (dir). Madje ka edhe dir-dir përpara (shih Figurën 3).

Transferimet që mungojnë nga RON në RON mund të zbatohen si transferime nga RON në një bajt dir të adresueshëm drejtpërdrejt (duke marrë parasysh që RON-të ndodhen në zonën fillestare të Memorisë së të Dhënave Rezident, qelizat e së cilës mund të adresohen si dir).

Komandat e shkëmbimit XCH lejojnë transferimin e bajteve pa i shkatërruar të dy operandët.

Komandat aritmetike ekzekutohen vetëm në Acumulator. Prandaj, operandi i parë duhet së pari të vendoset në Acumulator dhe më pas të shtohet ose të zbritet operandi i dytë. Rezultati vendoset në bateri.


Komanda zbritje SUBB kryhet vetëm me një huazim (d.m.th., nga rezultati zbritet edhe flamuri Сary). Prandaj, për të ekzekutuar komandën e zbritjes pa huazim, fillimisht duhet të ekzekutoni komandën për të pastruar flamurin C (CLRC).

Udhëzimi për shumëzimin e operandëve me një bajt - MULAB - vendos një rezultat dy bajt (16 bit): bajtin e ulët - në Bateri, bajtin e lartë - në regjistrin B.

Rezultati i ekzekutimit të komandës për ndarjen e operandëve me një bajt - DIVAB - vendoset: herësi - një Akumulator, pjesa e mbetur - në regjistrin B.

Instruksioni aritmetik INC i shton një operandit të zgjedhur. Instruksioni aritmetik DEC zbret një nga operandi i zgjedhur. Komanda Korrigjimi i Akumulatorit Decimal (DAA) ju ndihmon të shtoni numra binar-decimal (numrat BCD) pa i konvertuar në format heksadecimal (format hex). Operatorët origjinal duhet të jenë në format BCD, d.m.th. çdo tetradë e një bajt përmban vetëm numra nga 0 deri në 9 (nuk mund të ketë numra heksadecimal: A, B, C, D, E, F). Prandaj, një bajt mund të përmbajë numra nga 00 në 99 për numrat BCD të paketuara, ose numra nga 0 në 9 për numrat BCD të papaketuara.

Komanda DA A - korrigjimi dhjetor kryen veprime në përmbajtjen e Akumulatorit pas shtimit të numrave BCD në procesor (numrat u shtuan sipas ligjeve të aritmetikës heksadecimal) si më poshtë (shih shembullin):

· Nëse përmbajtja e thithjes më të ulët të Akumulatorit është më e madhe se 9 ose është vendosur flamuri i bartjes ndihmëse (AC = 1), atëherë 6 i shtohet përmbajtjes së Akumulatorit (d.m.th. gjashtë shifrat që mungojnë në formatin hex);

· Nëse pas kësaj përmbajtja e thithjes së lartë të Akumulatorit është më e madhe se 9 ose është vendosur flamuri C, atëherë numri 6 i shtohet gërvishtjes së lartë të Akumulatorit.

Komanda e korrigjimit dhjetor DA A nuk zbatohet pas komandës së rritjes (INC) sepse komanda e rritjes nuk ndikon (ndryshon) flamujt C dhe AC.

Komandat logjike:

Logjike "AND" - ANL,

Logjike "OR" - ORL,

Komanda logjike "EXCLUSIVE OSE" - XRL– ekzekutohen në Acumulator (si dhe aritmetike), por është e mundur të ekzekutohen komandat logjike edhe në bajtin e adresueshëm direkt (dir). Në këtë rast, operandi i dytë mund të jetë:

Në bateri ose

Operandi i menjëhershëm në komandë.

Komandat e rrotullimit (RR A, RL A) dhe komandat e rrotullimit përmes flamurit CARY (RRC A, RLC A) zhvendosin në mënyrë ciklike përmbajtjen e Akumulatorit me 1 bit. Referencat e pajisjes bit kryhen vetëm përmes flamurit C.

Arkitektura e familjes MCS-51 është kryesisht e paracaktuar nga qëllimi i saj - ndërtimi kompakte dhe i lirë pajisje dixhitale. Të gjitha funksionet e një mikrokompjuteri zbatohen duke përdorur një mikroqark të vetëm. Familja MCS-51 përfshin një sërë mikroqarqesh nga mikrokontrolluesit më të thjeshtë deri tek ata më kompleksët. Mikrokontrolluesit e familjes MCS-51 ju lejojnë të kryeni të dy detyrat e kontrollit për pajisje të ndryshme, dhe të zbatoni nyjet individuale të një qarku analog. Të gjitha mikroqarqet e kësaj familjeje punojnë me të njëjtën gjë sistemi i komandës MCS-51, shumica e tyre kryhen në të njëjtat raste me pinout që përputhet(numërimi i këmbëve për trupin). Kjo lejon përdorimin e mikroqarqeve nga kompani të ndryshme për pajisjen e zhvilluar - Maxim, Atmel, NXP, etj. (katalog..php? faqe = komponentë_listë & id = 39 "> shiko kërkimin sipas parametrave) pa ndryshuar diagramin skematik të pajisjes dhe programit.

Figura 1. Diagrami bllok i kontrolluesit I8751

Blloku i kontrolluesit është paraqitur në figurën 1. dhe përbëhet nga njësitë kryesore funksionale si në vijim: njësia e kontrollit, pajisja logjike aritmetike, njësia e kohëmatësit / numëruesi, ndërfaqja serike dhe njësia e ndërprerjes, numëruesi i programit, memoria e të dhënave dhe memoria e programit. Shkëmbimi i dyanshëm kryhet duke përdorur një autostradë të brendshme të të dhënave 8-bit.

Le të hedhim një vështrim më të afërt në qëllimin e secilit bllok. Pothuajse të gjithë përfaqësuesit e familjes MCS-51 janë ndërtuar sipas kësaj skeme.... Mikroqarqe të ndryshme të kësaj familjeje ndryshojnë vetëm në regjistrat me qëllime të veçanta (përfshirë numrin e porteve). Komandimi i grupit për të gjithë kontrollorët e familjes MCS-51 përmban 111 komanda bazë me format 1, 2 ose 3 bajt dhe nuk ndryshon kur kalon nga një mikroqark në tjetrin. Kjo siguron transportueshmëri të shkëlqyer të programeve nga një mikroqark në tjetrin.

Njësia e kontrollit dhe sinkronizimit

Njësia e kohës dhe kontrollit është projektuar për të gjeneruar sinjale sinkronizuese dhe kontrolluese që sigurojnë koordinimin e funksionimit të përbashkët të njësive OEVM në të gjitha mënyrat e lejuara të funksionimit të saj. Njësia e kontrollit përfshin:

  • - një pajisje për formimin e intervaleve kohore,
  • - I/O logjika,
  • - regjistri i komandës,
  • - regjistri i kontrollit të konsumit të energjisë elektrike,
  • - dekoder komandues, logjika e kontrollit kompjuterik.

Pajisja për formësimin e sloteve kohoreështë menduar për formimin dhe lëshimin e sinjaleve të sinkronizimit të brendshëm të fazave, orëve dhe cikleve. Numri i cikleve të makinës përcakton kohëzgjatjen e ekzekutimit të instruksionit. Pothuajse të gjitha komandat OEVM ekzekutohen në një ose dy cikle makinerie, përveç komandave të shumëzimit dhe pjesëtimit, kohëzgjatja e të cilave është katër cikle makinerie. Le të caktojmë frekuencën e oshilatorit kryesor me F g. Atëherë kohëzgjatja e ciklit të makinës është 12 / F g ose 12 periudha të sinjalit të oshilatorit kryesor. Logjika hyrëse-dalëse është krijuar për të marrë dhe lëshuar sinjale që ofrojnë shkëmbim informacioni me pajisje të jashtme përmes portave hyrëse/dalëse P0-P3.

Regjistri komanduesështë menduar për regjistrimin dhe ruajtjen e kodit të funksionimit 8-bit të komandës që po ekzekutohet. Kodi i funksionimit, me ndihmën e një dekoderi komandues dhe logjikës së kontrollit kompjuterik, shndërrohet në një mikroprogram për ekzekutimin e komandës.

Regjistri i kontrollit të konsumit (PCON) ju lejon të ndaloni mikrokontrolluesin për të zvogëluar konsumin e energjisë dhe për të zvogëluar nivelin e zhurmës nga mikrokontrolluesi. Ulja e mëtejshme e konsumit të energjisë dhe reduktimi i zhurmës mund të arrihet duke ndaluar oshilatorin kryesor të mikrokontrolluesit. Kjo mund të arrihet duke rrotulluar pak në PCON Regjistri i Kontrollit të Konsumit. Për n-MOS (seri 1816 ose mikroqarqe të huaja pa "c" në mes), Regjistri i Kontrollit të Konsumit PCON përmban vetëm një bit për të kontrolluar shpejtësinë e baud-it të portës serike SMOD dhe nuk ka pjesë të kontrollit të energjisë.

Njësia logjike aritmetike (ALU)është një pajisje paralele tetë-bitësh që kryen veprime aritmetike dhe logjike. ALU përbëhet nga:

  • - regjistrat e akumulatorëve, që mbajnë regjistra TMP1 dhe TMP2,
  • - Konstantet ROM,
  • - shtues,
  • - regjistri shtesë (regjistri B),
  • - bateri (ACC),
  • - regjistri i statusit të programit (PSW).

Regjistrohu bateri dhe mbajtjen e regjistrave- regjistrat tetë-bitësh të destinuar për marrjen dhe ruajtjen e operandëve për kohëzgjatjen e operacioneve në to. Këta regjistra nuk janë të aksesueshëm nga ana programore.

Konstantet ROM siguron gjenerimin e një kodi korrigjues për përfaqësimin e të dhënave binare-dhjetëshe, një kod maskë për operacionet e bitit dhe një kod konstant.

Mbledhës paralel tetëbitëshështë një qark kombinues me bartje sekuenciale, i projektuar për të kryer veprime aritmetike të mbledhjes, zbritjes dhe veprimet logjike të mbledhjes, shumëzimit, të pabarabartë dhe identikë.

Regjistrohu B- një regjistër tetë-bitësh i përdorur gjatë operacioneve të shumëzimit dhe pjesëtimit. Për udhëzime të tjera, ai mund të shihet si një regjistër shtesë superoperativ.

Bateria- një regjistër tetë-bitësh i krijuar për të marrë dhe ruajtur rezultatin e marrë gjatë kryerjes së operacioneve aritmetike-logjike ose operacioneve të zhvendosjes

Ndërfaqja serike dhe njësia e ndërprerjes (PIP)është menduar për organizimin e hyrje-daljeve të rrjedhave sekuenciale të informacionit dhe organizimin e një sistemi për ndërprerjen e programeve. Blloku përfshin:

  1. - Bufer PIP,
  2. - logjika e kontrollit,
  3. - regjistri i kontrollit,
  4. - tampon transmetuesi,
  5. - tampon marrësi,
  6. - marrës i portës serike,
  7. - ndërprerja e regjistrit të përparësisë,
  8. - regjistri i aktivizimit të ndërprerjes,
  9. - logjika për përpunimin e flamujve të ndërprerjeve dhe një qark gjenerimi të vektorit.

Numëruesi i programitështë projektuar për të formuar adresën aktuale 16-bit të memories së brendshme të programit dhe adresën 8/16-bit të memories së jashtme të programit. Numëruesi i udhëzimeve përfshin një tampon PC 16-bitësh, një regjistër PC dhe një qark në rritje (duke rritur përmbajtjen me 1).

Kujtesa e të dhënave (RAM)është menduar për ruajtjen e përkohshme të informacionit të përdorur në procesin e ekzekutimit të programit.

Portat P0, P1, P2, P3 janë porta hyrje-dalje pothuajse dydrejtimëshe dhe janë krijuar për të siguruar shkëmbimin e informacionit midis kompjuterit dhe pajisjeve të jashtme, duke formuar 32 linja hyrëse-dalëse.

Pajisja me kohëmatës Modelet bazë të familjes kanë dy kohëmatës / numërues të programueshëm 16-bit (T / C0 dhe T / C1), të cilët mund të përdoren edhe si kohëmatës dhe si numërues të ngjarjeve të jashtme.

Regjistri i statusit të programit (PSW) të destinuara për ruajtjen e informacionit rreth gjendjes së ALU gjatë ekzekutimit të programit.

Kujtesa e programit (EPROM)është menduar për ruajtjen e programeve dhe është një memorie vetëm për lexim (ROM). Mikroqarqe të ndryshme përdorin ROM maskash, të fshirë nga rrezatimi ultravjollcë ose FLASH ROM.

Regjistri i treguesve të të dhënave (DPTR)është projektuar për të ruajtur një adresë 16-bit të memories së jashtme të të dhënave ose të memories së programit.

Stack Pointer (SP)është një regjistër tetë-bitësh i krijuar për të organizuar një zonë të veçantë të memories së të dhënave (stack), në të cilën çdo qelizë memorie mund të ruhet përkohësisht.



Në origjinën e prodhimit të mikrokontrolluesve është Intel me familjet 8048 dhe 8051 të mikrokontrolluesve tetë-bit. Arkitektura MCS-51 e ka marrë emrin nga përfaqësuesi i parë i kësaj familjeje - mikrokontrolluesi 8051, i lëshuar në vitin 1980 bazuar në teknologjinë HMOS. Një grup i suksesshëm i pajisjeve periferike, një zgjedhje fleksibël e memories programore të jashtme ose të brendshme dhe një çmim i arsyeshëm i siguruan këtij mikrokontrolluesi një sukses në treg. Nga pikëpamja e teknologjisë, mikrokontrolluesi 8051 ishte një produkt shumë kompleks për kohën e tij - 128 mijë transistorë u përdorën në kristal, që ishte 4 herë më shumë se numri i transistorëve në mikroprocesorin 16-bit 8086.

Elementet kryesore të arkitekturës themelore janë:
- ALU 8-bit bazuar në arkitekturën e baterisë;
- 4 banka regjistrash, 8 në secilën;
- memorie e integruar e programit 4 Kbyte;
- RAM i brendshëm 128 byte;
- procesor boolean
-2 kohëmatës gjashtëmbëdhjetë-bitësh;
- kontrollues kanali serik (UART);
- kontrollues i përpunimit të ndërprerjes me dy nivele prioritare;
- katër porte I / O 8-bit, dy prej të cilave përdoren si një autobus adresash / të dhënash për të hyrë në programin e jashtëm dhe memorien e të dhënave;
- gjenerator i integruar i orës.

Është ky mikrokontrollues që është më i njohur për zhvilluesit dhe është një mjet i njohur kontrolli në një gamë të gjerë pajisjesh. Ka shumë emulatorë, korrigjues dhe programues 8051 të disponueshëm, kështu që zhvillimi i softuerit është i drejtpërdrejtë.

Hapi tjetër themelor në zhvillimin e MCS-51 ishte transferimi i teknologjisë së prodhimit në CHMOS. Kjo bëri të mundur zbatimin e modaliteteve Idle dhe Power Down, të cilat bënë të mundur uljen drastike të konsumit të energjisë së kristalit dhe hapën rrugën për përdorimin e mikrokontrolluesit në aplikacione të paqëndrueshme, për shembull, në bateritë e pavarura. pajisje.

Dhe faza e fundit themelore në zhvillimin e këtij drejtimi nga Intel brenda kornizës së arkitekturës 8-bit ishte lëshimi i mikrokontrolluesve 8xC51FA / FB / FC, të cilët për shkurtësi shpesh quhen 8xC51FX. Tipari kryesor dallues i këtij grupi kristalesh është prania e një grupi numëruesish të programueshëm (PCA). Diagrami bllok i PCA është paraqitur në Fig. 2.

PCA përfshin:

Kohëmatësi shërben të pesë modulet e marrjes së mostrave dhe krahasimit, të cilat mund të programohen për të kryer një nga funksionet e mëposhtme:

Kampionimi 16-bit i vlerës së kohëmatësit në skajin pozitiv të sinjalit të jashtëm;
Kampionimi 16-bit i vlerës së kohëmatësit në skajin negativ të sinjalit të jashtëm;
Kampionimi 16-bit i vlerës së kohëmatësit në çdo skaj të sinjalit të jashtëm;
Kohëmatësi i softuerit 16-bit;
Pajisja dalëse me shpejtësi të lartë 16-bit (HSO);
PWM 8-bit

Të gjitha funksionet e mësipërme kryhen në PCA në nivelin e harduerit dhe nuk ngarkojnë procesorin qendror, gjë që lejon rritjen e xhiros së përgjithshme të sistemit, rritjen e saktësisë së matjeve dhe përpunimit të sinjalit dhe zvogëlimin e kohës së përgjigjes së mikrokontrolluesit ndaj jashtme. ngjarje, gjë që është veçanërisht e rëndësishme për sistemet në kohë reale. PCA i implementuar në 8xC51FX doli të ishte aq i suksesshëm sa arkitektura e mikrokontrolluesve FX u bë standardi de facto i industrisë, dhe vetë PCA u riprodhua vazhdimisht në modifikime të ndryshme të mikrokontrolluesve nga kompani të ndryshme.

Grykat e ngushta origjinale të arkitekturës MCS-51 ishin ALU e bazuar në bateri 8-bit dhe ekzekutimi relativisht i ngadaltë i instruksioneve (udhëzimet më të shpejta kërkojnë 12 cikle ore për t'u ekzekutuar). Kjo kufizoi përdorimin e mikrokontrolluesve të familjes në aplikacione që kërkojnë rritje të performancës dhe llogaritje komplekse (16- dhe 32-bit). Çështja e modernizimit themelor të arkitekturës së vjetër u bë urgjente. Problemi i modernizimit u ndërlikua nga fakti se nga fillimi i viteve '90 tashmë ishin krijuar shumë zhvillime në fushën e softuerit dhe harduerit, dhe një nga detyrat kryesore të zhvillimit të një arkitekture të re ishte zbatimi i harduerit dhe softuerit. pajtueshmëria me modelet e vjetra të bazuara në MCS-51. Për të zgjidhur këtë problem, u krijua një ekip i përbashkët specialistësh nga Intel dhe Philips. Si rezultat, në 1995 u shfaqën 2 familje dukshëm të ndryshme: MCS-251/151 nga Intel dhe 51XA nga Philips (ne do të ndalemi në këtë të fundit më poshtë).

Karakteristikat kryesore të arkitekturës MSC-251:

Hapësirë ​​adresash lineare 24-bitëshe, që adreson memorie deri në 16M(mikrokontrolluesit e prodhuar të familjes MCS-251 kanë një hapësirë ​​adrese memorie 256K);
Kompleti i udhëzimeve të mikrokontrolluesve MCS-251 përmban të gjitha 111 udhëzimet e përfshira në grupin e instruksioneve të mikrokontrolluesve MCS-51 (udhëzime "të vjetra"), dhe, përveç kësaj, përfshin 157 udhëzime "të reja". Disa kode të reja komanduese janë në format 4-bajtë.
Përpara përdorimit të mikrokontrolluesit, ai duhet të konfigurohet, d.m.th. me ndihmën e programuesit, "digjni" bajtet e konfigurimit që përcaktojnë se cili nga grupet e instruksioneve do të bëhet aktiv pas ndezjes. Nëse instaloni grupin e udhëzimeve MCS-51, atëherë MSC-251 do të jetë binare i pajtueshëm me MCS-51. Ky modalitet quhet Modaliteti Binar. Sidoqoftë, udhëzimet e zgjeruara në këtë modalitet janë gjithashtu të disponueshme përmes një "dritare" - kodi i rezervuar i udhëzimit 0A5h. Natyrisht, gjatësia e çdo instruksioni të zgjeruar më pas rritet me 1 bajt. Nëse fillimisht instaloni një grup udhëzimesh të zgjeruara, atëherë në këtë rast programet e shkruara për MCS-51 do të kërkojnë ripërpilim në mjetet e kryqëzuara për MCS-51, pasi tani udhëzimet standarde do të jenë të disponueshme përmes së njëjtës "dritare" 0A5h dhe gjatësia e tyre gjithashtu do të rritet me 1 bajt. Kjo mënyrë quhet "Modaliteti burimor". Kjo ju lejon të përfitoni sa më shumë nga udhëzimet e zgjeruara dhe të merrni performancën më të mirë, por kërkon ridizajnim të softuerit.
një arkitekturë regjistrash që lejon që regjistrat të aksesohen si bajt, fjalë dhe fjalë të dyfishta;
modaliteti i adresimit të faqeve për të shpejtuar zgjedhjen e udhëzimeve nga memoria e programit të jashtëm;
radha e udhëzimeve;
grup i zgjeruar instruksionesh, duke përfshirë instruksione aritmetike dhe logjike 16-bitësh;
hapësira e zgjeruar e adresave të stekit deri në 64K;
ekzekutimi i instruksionit më të shpejtë në 2 cikle ore;
pajtueshmëri binar me softuerin MCS-51.

Për përdoruesit e fokusuar në përdorimin e mikrokontrolluesve MCS-251 si një zëvendësim mekanik për MCS-51, Intel prodhon mikrokontrollues MCS-251 me bit konfigurimi të programuar paraprakisht në gjendjen Binary Mode. Mikrokontrollues të tillë morën indeksin MCS-151.

Përveç vetë Intel, mikrokontrolluesit MCS-251 janë të licencuar nga Temic Semiconductors.

Autobusi Serial Universal (USB) zgjeron teknologjinë Plug-and-Play në pajisjet e jashtme I/O që gjenden në kompjuterët personalë të sotëm me performancë të lartë.

Për të ofruar mundësinë për të lidhur një sërë pajisjesh periferike, standardi USB përcakton katër mënyra transferimi: Master, Isochronous, Pulse dhe Array transfer. Çdo pajisje periferike duhet të mbështesë një modalitet kontrolli për të transmetuar parametrat e konfigurimit, komandat dhe informacionin e statusit të pajisjes. Transmetimi izokron siguron akses të garantuar në autobus, gjerësi bande konstante dhe tolerancë ndaj gabimeve, kjo mënyrë transmetimi mund të përdoret në pajisjet e daljes audio dhe telefoninë kompjuterike. Transmetimi i pulsit është menduar për pajisjet hyrëse si miu, leva ose tastiera që transmetojnë informacion rrallë dhe në pjesë të vogla, por me një periudhë shërbimi të kufizuar. Transferimi i grupeve lejon pajisje të tilla si skanerët, makinat e faksit ose kamerat dixhitale të transmetojnë sasi të mëdha të dhënash në një kompjuter personal sapo kanali i autobusit të bëhet i lirë.

Karakteristikat kryesore të produktit

Plotësisht në përputhje me "Specifikimin Universal Serial Bus 1.0"
Transmetuesi USB në bord Motori i ndërfaqes së autobusit serial (SIE)
Katër radhë FIFO për transmetim
Tre radhë FIFO 16-bajtë
Katër radhë FIFO për marrjen
Tre radhë FIFO 16-bajtë
Një FIFO i konfigurueshëm (deri në 1024 byte)
Kontrolli automatik i transmetimit/marrjes në radhët FIFO
Ndalo / rifillo operacionet
Tre vektorë të ndërprerjes së autobusit USB
Cikli i bllokimit të fazës
Shpejtësia e të dhënave: 12 Mbps dhe 1.5 Mbps
Modaliteti i ciklit të ngadaltë
Hapësira e jashtme e adresave me një kapacitet prej 256 KB
Modalitetet e kursimit të energjisë: gatishmëri dhe fikje
Parametrat e përcaktuar nga përdoruesi
Duke pritur në kohë reale
1 KB RAM në një çip
Katër porte I/O
Vargu kundërvargësh i programueshëm (PCA)
Mikrokontrollues standard (MCS 51) UART
Kohëmatësi i rojes së harduerit
Tre kohëmatës / numërues fleksibël 16-bitësh
E përputhshme me grupin e udhëzimeve të mikrokontrolluesve MCS 51 dhe MCS 251
Arkitektura e mikrokontrolluesit MCS 251 e bazuar në regjistra
Frekuenca e funksionimit 6 ose 12 MHz

Kontrolluesi 8x930Hx ka veçori shtesë:

Hub USB
Aftësitë e kontrollit të shpërndarës USB
Menaxhimi i lidhjes
Zbulimi i lidhjes / shkëputjes me një pajisje dalëse
Menaxhimi i energjisë duke përfshirë ndalimin / rifillimin
Zbulimi dhe rikuperimi i dështimit të autobusit
Mbështet pajisjet dalëse me shpejtësi të plotë dhe me shpejtësi të ulët
Kontakti i daljes për ndërrimin e fuqisë së portës
Kontakti i hyrjes për zbulimin e mbingarkesës

Katër mënyra të ndryshme të transferimit të të dhënave USB ofrohen nga tre elementë që punojnë së bashku: Host, Hub, Pajisja funksionale. Pritësi kontrollon transferimin e përmbajtjes dhe informacionit të kontrollit në autobus. Pajisjet funksionale zgjerojnë sistemet pritëse. Kjo përfshin llojet tipike të punës me një PC: hyrje nga tastiera ose levë, dalje në monitor; dhe aktivitete më komplekse si telefonia dixhitale dhe transmetimi i imazheve. Një mikrokontrollues Intel 8x930Ax u krijua për të kontrolluar pajisjet funksionale. Së fundi, shpërndarësit ofrojnë një pikë shtesë USB që ofron akses në pajisje të tjera funksionale. Mikrokontrolluesi Intel 8x930Hx, i cili kombinon funksionet e pajisjes funksionale dhe funksionet e kontrollit të shpërndarësit USB, është shpërndarësi i parë serial USB i krijuar për pajisjet periferike moderne të PC.

Hubs USB luajnë një rol thelbësor në zgjerimin e botës së përdoruesve të PC. Me ardhjen e pajisjeve periferike - tastierat, monitorët, printerët dhe të tjerët - me shpërndarës të integruar, mbyllja ose shkëputja e një pajisjeje të re është po aq e lehtë sa futja në një prizë elektrike. Nivelet e reja të performancës dhe lidhja e përmirësuar USB mund të çojnë në pajisjet e punës dhe argëtimit të gjeneratës së ardhshme. Ditët e kartave të ngulitura, konfliktet IRQ dhe telat e ngatërruar janë të numëruara.

Kablloja e autobusit USB përbëhet nga vetëm katër tela: Vbus, D +, D- dhe GND - gjë që e bën lidhjen më të lehtë dhe më të qëndrueshme. Një lidhës i vetëm standard për lidhjen e pajisjeve periferike me autobusin USB shërben për të njëjtin qëllim. Të dhënat transmetohen ndryshe përmes kabllove D + dhe D-: ose me shpejtësi të plotë prej 12 Mbps ose me një shpejtësi të ulët prej 1,5 Mbps. Transmetuesi është i ndërtuar në kristal, kështu që nuk ka nevojë për qarqe elektronike të jashtme. Një përjashtim është rezistenca e tërheqjes së terminalit në të dy linjat D + dhe D-, e cila kërkohet për të përcaktuar llojin e pajisjes: me shpejtësi të lartë ose me shpejtësi të ulët.

Pasqyrë e familjes
Familja Intel 8x930 përbëhet nga dy kontrollues me një çip.

Kontrolluesi Intel 8x930Ax është një pajisje 8-bitëshe e bazuar në arkitekturën e mikrokontrolluesit MCS 251 dhe është krijuar për të punuar me pajisje periferike USB. Nga ana tjetër, 8x930Hx përdor të njëjtën bërthamë mikrokontrollues MCS 251 plus aftësitë e zgjeruara të shpërndarësit USB në bord. Përdorimi i arkitekturës MCS 251 në të dy kontrollorët e autobusit USB ofron përparësitë e mëposhtme:

Performancë e lartë
Përdorimi i llojeve të përziera të memories dhe adresimit
Konsumi i ulët i energjisë
Niveli i ulët i zhurmës
Mbështetje efektive gjuhësore e nivelit të lartë
Komandanti i zgjeruar i komandave
Aftësi të integruara

Udhëzimet për 8x930Ax mund të jenë udhëzime si nga kompleti i mikrokontrolluesit MCS 51 ashtu edhe nga kompleti i mikrokontrolluesit MCS 251. Kjo qasje kursen investimin e përdoruesve në softuer dhe shtrydh performancën maksimale nga aplikacionet.

Mikrokontrolluesit 8x930 janë aq të mbushur me veçori të ndryshme të integruara saqë duken më të fuqishëm se thjesht mikrokontrolluesit. Vargu i numërueshëm i programueshëm (PCA) ofron fleksibilitet për aplikacionet që kërkojnë krahasim ose kapje në kohë reale, komunikim me shpejtësi të lartë ose modulim të gjerësisë së pulsit. Për më tepër, kontrolluesi përfshin një portë serike të zgjeruar, tre kohëmatës / numërues 16-bitësh, një kohëmatës monitorues harduerësh, katër porte I/O 8-bit dhe dy mënyra të kursimit të energjisë: gatishmëria dhe fikja.

Kontrollorët e familjes 8x930Ax janë të pajisur me 1 KB memorie dhe mund të përdoren në versionet pa memorie të përhershme, ose me memorie të përhershme prej 8 ose 16 KB. Ata mund të adresojnë deri në 256 KB memorie të jashtme për instruksione dhe të dhëna dhe 40 bajt regjistra për qëllime të përgjithshme, të cilat ndodhen në procesorin qendror si skedar regjistri. Në varësi të kombinimit të përdorur, skedari i regjistrit mund të përmbajë 16 regjistra bajtësh, 16 regjistra me dy bajtë dhe 10 regjistra me katër bajtë.

Kontrollorët kanë një ndërfaqe fleksibël me memorien e jashtme. Është e mundur të shtohen tre cikle pritjeje për të aksesuar pajisjet me memorie të ngadaltë dhe për të thirrur një funksion në kohë reale për të gjeneruar më shumë sythe. Marrja e udhëzimeve të jashtme mund të përmirësojë performancën duke përdorur modalitetin e faqes, në të cilën të dhënat pastrohen në bajtin e lartë të adresës.

Të dy kontrollorët 8x930 janë të pajisur me tetë radhë FIFO për të mbështetur pajisjet e brendshme të daljes: katër radhë transmetimi dhe katër radhë pranimi. Katër FIFO për transmetim/marrje mbështesin katër pajisje me funksion terminal (0 deri në 3). Radha 0 përbëhet nga 16 bajt dhe ka për qëllim transferimin e informacionit të kontrollit. Radha 1 është e konfigurueshme nga përdoruesi dhe ka një kapacitet deri në 1024 bajt. Radhët 2 dhe 3 përbëhen nga 16 bajt secila dhe mund të përdoren për të transferuar informacion në mënyrat e transferimit pulsues, izokron dhe grupi. Në rastin e një kontrolluesi 8x930Hx, radhët e specifikuara amplifikohen me një palë radhë FIFO për pajisjet hyrëse. Këto radhë në kontrolluesin 8x930Hx mbështeten nga një përsëritës opsional, i cili është përgjegjës për ritransmetimin e rrjedhave të të dhënave të krijuara nga pajisjet dalëse.

Pasqyrë e arkitekturës
Strukturisht, zbatimi i USB në mikrokontrolluesit 8x930Ax dhe 8x930Hx mund të ndahet në katër blloqe: radhët FIFO, një bllok ndërfaqeje me pajisje funksionale, një bllok ndërfaqe me një autobus serial dhe një marrës. Kontrolluesi 8x930Hx ka njësi shtesë për kontrollin e funksioneve të shpërndarësit: një njësi ndërfaqeje me një shpërndarës dhe një përsëritës.

FIFO-t për transmetimin dhe marrjen në të dy kontrollorët janë rrethore. Radhët mbështesin deri në dy grupe të dhënash të veçanta me madhësi të ndryshueshme dhe përmbajnë regjistra të numërimit të bajteve që tregojnë numrin e bajteve në grupet e të dhënave. Radhët janë të pajisura me flamuj që tregojnë nëse radha është e plotë apo e zbrazët, dhe gjithashtu janë në gjendje të përsërisin marrjen ose transmetimin e grupit aktual të të dhënave. Njësia funksionale e ndërfaqes së pajisjes (FDI) shpërndan të dhënat USB të transmetuara ose të marra sipas llojit të transmetimit dhe gjendjes së radhëve. Për më tepër, njësia IFU monitoron gjendjen e transaksionit, menaxhon radhët FIFO, raporton ndodhjen e ngjarjeve të kontrollit te procesori qendror 8x930 duke përdorur një kërkesë për ndërprerje.

Blloku i ndërfaqes së autobusit serial zbaton protokollin e transferimit USB: në mënyrë sekuenciale porosit paketat, gjeneron dhe njeh një sinjal, gjeneron dhe kontrollon shumat e kontrollit, kodimin / dekodimin e të dhënave duke përdorur metodën NRZI, mbushjen e bitit, gjenerimin dhe njohjen e një identifikuesi pakete (PID).

Transmetuesi i integruar i bazuar në mikrokontrollues USB përputhet me një ndërfaqe të thjeshtë me katër tela të përcaktuar nga specifikimi USB 1.0. Familja e kontrollorëve 8x930 ka tre ndërprerje të lidhura me USB. Ato ndodhin në çdo fillim të një kornize, në fund të marrjes/transmetimit të të dhënave në pajisjet funksionale terminale, në rast të pezullimit global ose rifillimit të punës. Në shpërndarësin 8x930Hx, njësia e ndërfaqes së shpërndarësit përdoret për të kontrolluar dhe monitoruar statusin e lidhjes me portet e poshtme. Përsëritësi është përgjegjës për përhapjen e sinjaleve USB lart e poshtë.

Ministria e Arsimit të Përgjithshëm dhe Profesional të Federatës Ruse, Universiteti Teknik Shtetëror Novosibirsk V.N. Veprik, V.A. Afanasyev, A.I. Druzhinin, A.A. Zemskov, A.R. Isaev, O. V. Malyavko MIKROKONTROLLET E FAMILJES MCS-51 Libër mësuesi për kurset "Sistemet mikroprocesorike" dhe "Dizajnimi i sistemeve mikroprocesore" për studentët e moshuar të Fakultetit të Automatizimit dhe Inxhinierisë Kompjuterike të të gjitha formave të arsimit Novosibirsk 1997 V.N. Veprik, V.A. Afanasyev, A.I. Druzhinin, A.A. Zemskov, A.R. Isaev, O. V. Malyavko. Familja e mikrokontrolluesve MCS-51: Tutorial. - Novosibirsk. Ky tutorial përmban një përshkrim të përgjithshëm të arkitekturës, funksionalitetit dhe grupit të instruksioneve të familjes MCS-51 të mikrokontrolluesve me një çip (Mikrokontrolluesit e Embedded) të prodhuar nga INTEL. Pjesa e dytë e manualit ofron një përshkrim të kontrolluesit edukativ të mikroprocesorit UMPK-51, i ofruar studentëve si objekt kërkimi gjatë kryerjes së një cikli pune laboratorike. Materiali i manualit mund të përdoret në hartimin e lëndëve dhe diplomave, dhe gjithashtu mund të jetë i dobishëm për inxhinierët e qarkut të përfshirë në zhvillimin dhe funksionimin e pajisjeve elektronike. Autorët shprehin mirënjohjen e tyre të thellë për AOZT "New Technologies" - distributor zyrtar i INTEL për sigurimin e materialeve mbi bazën e të cilave u krye kjo punë. Tabela 15, fig 25, lista e shkronjave. 12 tituj Recensues: E.D. Baran, G.G. Matushkin. Puna u përgatit në Departamentin e Shkencave Kompjuterike, Shtetit Novosibirsk © Technical University 2 HYRJE. Familja MCS-51 e mikrokontrolluesve me një çip 8-bit u shfaq në tregun botëror në fillim të viteve tetëdhjetë. Modifikimet e para të kristaleve (rreth 7) u bënë duke përdorur teknologjinë n-MOS (HMOS) me cilësi të lartë dhe ishin mikrokompjuterë me një çip të plotë funksionalisht të arkitekturës së Harvardit, një nga parimet kryesore të të cilave është ndarja logjike e adresës. hapësirat e memories dhe të dhënave të programit. Me zhvillimin e teknologjisë gjysmëpërçuese, versionet pasuese të mikroqarqeve MCS-51 filluan të prodhohen duke përdorur teknologjinë më të avancuar dhe me fuqi të ulët CMOS (CHMOS) (në modalitetin aktiv, konsumi i kristaleve u soll në 10-50 mA). Sistemi i komandës MCS-51, i përqendruar në zbatimin e algoritmeve të ndryshme të kontrollit dixhital, duke ruajtur disa ngjashmëri të jashtme me sistemin e komandës së familjes së mëparshme MCS-48, është zgjeruar cilësisht, në të janë shfaqur risi themelore: operacione të orientuara nga bit dhe fusha bit të adresueshme në memorien e të dhënave, të cilat bënë të mundur që të flitet për zbatimin e një procesori bit në një çip; Zbatimi i komandave të shumëzimit, pjesëtimit dhe zbritjes; përmirësimi i punës me pirgun; është zgjeruar grupi i komandave të transferimit të kontrollit; Sistemi i komandës filloi të dukej më simetrik, domethënë më pak i varur nga transferimet e të dhënave përmes baterisë. Funksionaliteti i pajisjeve periferike në bord është zgjeruar gjithashtu me prezantimin e: dy kohëmatësve / numëruesve 16-bit; porta dupleks serike harduerike; sistem ndërprerjesh me dy nivele; katër porte I/O 8-bit. Ndryshimet thelbësore në strukturën e ciklit kohor të procesorit kanë çuar në përshpejtimin e punës me memorien e jashtme të programeve dhe të dhënave, si dhe në reagimet ndaj ndërprerjeve të jashtme dhe të brendshme. Madhësia totale e hapësirës së adresave të programit të jashtëm dhe kujtesës së të dhënave është rritur në 128 KB. Regjistrat 16-bitësh Program Counter dhe Data Pointer lejuan akses të drejtpërdrejtë në të gjithë gamën e adresave, gjë që u dha zhvilluesve mundësinë për të zbatuar algoritme për përpunimin e shpejtë të grupeve të mëdha të të dhënave. Të gjitha nyjet e mikrokontrolluesit të aksesueshëm nga softueri u mblodhën së bashku në një zonë të veçantë të memories së të dhënave (Regjistri i Funksionit Special), i cili bëri të mundur aksesin në to pothuajse në të njëjtën mënyrë si në qelizat e zakonshme të RAM-it rezident. Në modifikimet e mëvonshme të kristaleve, përmirësimi shkoi përgjatë rrugës së rritjes së funksionalitetit shtesë duke ruajtur përputhshmërinë e plotë të softuerit me versionet e mëparshme. Veçoritë e modifikimeve më të fundit të mikrokontrolluesve MCS-51 janë: dizajn plotësisht statik; Versione kristali 3 dhe 5 volt; gamë e gjerë e pajisjeve periferike të integruara; Frekuenca maksimale e orës - 24 MHz; për grupe individuale kristalesh - 33 MHz. Aktualisht, MCS-51 përfshin rreth 60 versione të kristaleve, përveç kësaj, ekziston dhe disponohet dokumentacion i detajuar i pronarit (për fat të keq, deri më tani pak i përkthyer në Rusisht). Për të përgatitur softuerin për mikrokontrolluesit MCS-51, përdoren kryesisht gjuhët "ASM-51" dhe "C", për të cilat ekzistojnë një numër përpiluesish të mirë-provuar, biblioteka të nënprogrameve standarde dhe emulatorë softuerësh të prodhuar nga të huaj të ndryshëm. dhe kompanitë vendase. 3 Megjithë "antikën" e mjaftueshme të familjes (më shumë se 15 vjet) dhe shfaqjen në tregun botëror vitet e fundit të mikrokontrolluesve me një çip të vetëm me performancë më të lartë dhe arkitekturë të përmirësuar - MCS-51, MCS-251, MCS-96, Kontrollorët MCS-51 do të përdoren gjerësisht në sistemet relativisht të thjeshta të kontrollit të integruar. 4 1. SISTEMI I PËRCAKTIMIT TË KOMPONENTËVE SIPAS INTEL-it DHE PËRBËRJA FUNKSIONALE E FAMILJES MCS-51 Për shënjimin e mikroqarqeve nga INTEL, përdoret një sistem përcaktimi i disa fushave: 1 2 3 4 ХХ ХХХХХХХХХX Automotive: , versioni i automobilave për një interval të zgjatur të temperaturës (-40 / + 125 C) M (Ushtarak), versioni sipas standardeve ushtarake (-55 / + 125 C) Q ose C (Commercial), diapazoni "komercial" i temperaturës (0 / + 70 C) ) s (160 8) - një orë trajnim dinamik termik; L ose E (E zgjatur), diapazoni i "zgjeruar" i temperaturës (-40 / + 85 C) me (160 8) - orë trajnim dinamik termik; Т (E zgjatur), diapazoni i "zgjeruar" i temperaturës (-40 / + 85 С) pa trajnim termik; I (Industriale), ekzekutimi sipas standardeve industriale. Fusha e dytë përmban një parashtesë me një ose dy shkronja që tregon llojin e paketimit të mikroqarkullimit (Lloji i paketës). Sot ekzistojnë disa dhjetëra lloje të ndryshme të paketave të mikroqarqeve, prandaj, si shembull, do të japim vetëm disa emërtime: Një rrjet i rrjetës së pineve qeramike, (PGA); Paketa C Dual In-Line Qeramike, (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 mbajtëse çip me plumb nga plastika, (PLCC); P Plastic Dual In-Line Package, (PDIP); SM Single In-Line Leadless Memory Module, (SIMM); U Plastic Dual In-Line Package, Shrink Dip, (PDIPS); Paketa Zigzag In-Line, (ZIP). Fusha e tretë mund të përmbajë deri në 15 karaktere numerike dhe alfabetike që tregojnë llojin e një pajisjeje specifike të vendosur në çip. Fusha e katërt mund të përfshijë deri në gjashtë karaktere numerike dhe alfabetike, duke pasqyruar veçori dhe versione të ndryshme të mikroqarqeve. Informacione shtesë për llojet e paketave dhe dizajnin e tyre mund të gjenden në librin: Numri i porosisë së paketimit 240800. Përsa i përket mikrokontrolluesve të përshkruar të familjes MCS-51, karakteri i parë i fushës së tretë tradicionalisht (për Intel) është i barabartë me "8". Karakteri i dytë i fushës së tretë zakonisht tregon llojin e ROM-it të integruar: 0 ROM i maskuar i programeve; kristal pa ROM (për versionet e mëvonshme të kristaleve); 1 maskë ROM e programeve (Kodi standard ROM, Firmware); ROM me 3 maska ​​(për versionet e mëvonshme kristal), (Kodi ROM i personalizueshëm); 7 UVROM ose ROM i programueshëm një herë (EPROM ose OTP ROM); 8 EEPROM (Flash - memorie në një çip) Më tej, mund të vijojë një letër, që tregon veçoritë teknologjike të prodhimit: teknologjia pa shkronjë HMOS, furnizimi me energji elektrike 5V; Me teknologji CHMOS, furnizim me energji elektrike 5V; Teknologjia L CHMOS, furnizimi me energji elektrike 3V; 5 Karakteret vijuese të fushës së tretë për mikrokontrolluesit MCS-51 janë numra (për shembull, 31,32,51,54,58,152) dhe nga një deri në katër shkronja, të cilat pasqyrojnë veçoritë funksionale të kristaleve (për shembull, madhësia ROM , specifikat e një grupi kristalesh, mbrojtja e disponueshmërisë së sistemit të kujtesës së programit nga aksesi i paautorizuar, aftësia për të përdorur një algoritëm programimi më të avancuar "Pulsi i shpejtë" dhe të ngjashme). Në dokumentacionin teknik origjinal të Intel, të gjithë mikrokontrolluesit MCS-51 janë rregulluar në grupe ("Linja e produktit"), secila prej të cilave bashkon versionet kristal më të afërt në funksionalitetin dhe parametrat e tyre elektrikë. Meqenëse emrat e mikroqarqeve të një grupi ndryshojnë pak, për të përcaktuar çdo grup individual, përdoret një simbolikë e përgjithësuar, e formuar nga shënimi i mikroqarqeve specifike, duke zëvendësuar karakteret e ndryshme me "X". Kështu, mund të dallohen grupet e mëposhtme të mikrokontrolluesve. 1. Grupi 8Х5Х (8051 Linja Produkti dhe 8052 Linja e Produkteve): 8031АН, 8051АН, 8751Н, 8051АНР, 8751Н-8, 8751ВН, 8032АН, 8052АН, 872 2. Grupi 8ХС51 (Linja e produktit 80С51): 80С31ВН, 80С51ВН, 87С51. 3. Grupi 8ХС5Х (8ХС52 / 54/58 Linja e produktit): 80С32, 80С52, 87С52, 80С54, 87С54, 80С58, 87С58. 4. Grupi 8XC51FX (8XC51FA / FB / FC Linja e produkteve): 80C51FA, 83C51FA, 87C51FA, 83C51FB, 87C51FB, 83C51FC, 87C51FC. 5. Grupi 8ХL5X (8XL52 / 54/58 Linja e produktit): 80L52, 87L52, 80L54, 87L54, 80L58, 87L58. 6. Grupi 8XL51FX (8XL51FA / FB / FC Linja e produkteve): 80L51FA, 83L51FA, 87L51FA, 83L51FB, 87L51FB, 83L51FC, 87L51FC. 7. Grupi 8XC51RX (8XC51RA / RB / RC Linja e produkteve): 80C51RA, 83C51RA, 87C51RA, 83C51RB, 87C51RB, 83C51RC, 87C51RC. 8. Grupi 8XC51GB (Linja e produktit 8XC51GX): 80C51GB, 83C51GB, 87C51GB. 9. Grupi 8XC152JX (Linja e produktit 8XC152): 80C152JA, 83C152JA, 80C152JB, 80C152JC, 83C152JC, 80C152JD. 10. Grupi 8XC51SL (Linja e produkteve 8XC51SL): 80C51SL-BG, 81C51SL-BG, 83C51SL-BG, 80C51-AH, 81C51SL-AH, 83C51SL-AH, 87C51SL-BG, 87C51SL-BG, 83C51SL-BG . Grupi i parë i mikrokontrolluesve përfshin modele të vogla të familjes, të bëra duke përdorur teknologjinë n-MOS dhe nuk rekomandohen për përdorim në dizajne të reja, të gjitha grupet e tjera janë bërë duke përdorur teknologjinë moderne CMOS. Mikroqarqet e grupeve të dytë, të tretë dhe të katërt janë sot përfaqësuesit klasikë të familjes MCS-51. Grupi i pestë dhe i gjashtë përfshin versionet 3 volt të kristaleve (Tensioni i ulët). Kristalët e grupit të shtatë janë të pajisur me RAM të zgjeruar (RAM të zgjeruar), vëllimi i të cilit është 512 bajt. Mikroqarqet e grupit të tetë, të nëntë dhe të dhjetë janë mikrokontrollues specifikë të aplikacionit (Application Specific). Shumë aplikacione moderne kërkojnë MCU me performancë të lartë që përdorin aftësi të avancuara adresimi, regjistrojnë arkitekturë, sasi të mëdha RAM dhe stack të brendshëm dhe mbështesin me efikasitet programimin e nivelit të lartë. Këta mikrokontrollues përfshijnë mikrokontrolluesit New Architecture MCS-5 dhe MCS-251, të cilët Intel filloi t'i prodhojë në 1995. Përbërja funksionale dhe veçoritë kryesore të mikrokontrolluesit MCS-51 / MCS-251 janë dhënë në shtojcë. 6 2. KARAKTERISTIKAT THEMELORE TË MODELIT BAZË TË FAMILJES SË MIKROKONTROLLERËVE MCS-51. Modeli bazë i familjes së mikrokontrolluesve MCS-51 dhe baza për të gjitha modifikimet e mëvonshme është mikrokontrolluesi I-8051. Karakteristikat e tij kryesore janë si më poshtë: një CPU me tetë bit i optimizuar për funksionet e kontrollit; gjenerator i integruar i orës; hapësira e adresës së memories së programit - 64 K; Hapësira e adresës së memories së të dhënave - 64 K; memoria e brendshme e programit - 4K; memorie e brendshme e të dhënave - 128 bajt; mundësi shtesë për kryerjen e operacioneve të algjebrës Boolean (operacione bitwise); 32 linja I/O me dy drejtime dhe individuale të adresueshme; 2 kohëmatës / numërues shumëfunksional gjashtëmbëdhjetë-bitësh; transmetues asinkron i plotë dupleks; sistemi i ndërprerjeve vektoriale me dy nivele prioritare dhe gjashtë burime ngjarjesh. Diagrami bllok i I-8051 është paraqitur në Fig. 1, caktimi i kunjit të mikroqarkut është treguar në Fig. 2. Ndërprerjet e jashtme Ndërprerjet 128 bajt T / C 0 numërues 4K ROM kontrolli RAM T / C 1 hyrjet CPU BUS 4 I / O Kontrolli serial i OSC Portat Portat P0 P1 P2 P3 T D R D Adresa / Të dhënat Fig. 1. Bllok diagrami I-8051 E gjithë seria MCS-51 ka një arkitekturë të Harvardit, domethënë hapësira të veçanta adresash për memorien e programit dhe të dhënat. Organizimi i kujtesës është paraqitur në figurën 3. Sasia e memories së brendshme (rezidente) të programit (ROM, EPROM ose OTP ROM) e vendosur në çip, në varësi të llojit të mikroqarkullimit, mund të jetë 0 (ROMless), 4K (bazë), 8K, 16K ose 32K. Nëse është e nevojshme, përdoruesi mund të zgjerojë memorien e programit duke instaluar një ROM të jashtëm. Qasja në ROM-in e brendshëm ose të jashtëm përcaktohet nga vlera e sinjalit në pinin EA (External Access): EA = Vcc (tensioni i furnizimit) - qasja në ROM-in e brendshëm; EA = Vss (potenciali i tokës) - akses në ROM të jashtëm. Për kristalet pa ROM (ROMless), kunja EA duhet të lidhet përgjithmonë me Vss. ROM-i i jashtëm i leximit - PS EN (Program Store Enable) krijohet kur hyni në kujtesën e programit të jashtëm dhe është joaktiv kur hyni në ROM që ndodhet në çip. 7 Zona e adresave të poshtme të memories së programit përdoret nga sistemi i ndërprerjes, arkitektura e mikroqarkut 8051 ofron mbështetje për pesë burime ndërprerjesh: dy ndërprerje të jashtme; dy ndërprerje nga kohëmatësit; ndërpret nga porta serike. 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) Fig. 2. Caktimi pin i I-8051 Memoria e programit (Lexo) Kujtesa e të dhënave (Lexo / Shkruaj) FFFFH ROM e jashtme FFFFH Memorie e jashtme @DPTR RD PSEN WR të dhëna @PC MOVC EA = 0 Memorie e brendshme @DPTR të dhëna @PC E jashtme e brendshme FFH sipërme 128 SFR MOVX ROM ROM 80H EA = 0 0000H EA = 1 më e ulët 128 00H 0000H PSEN Fig. 3. MCS-51 Family Memory Organization 8 Figura 4 tregon një hartë të zonës së memories së poshtme të programit. ROM Kujtesa e programit 0033H 002BH Porta serike 0023H Kohëmatësi vektorial1 001BH ndërpret EINT1 0013H Timer0 000BH EINT0 0003H Adresa e fillimit 0000H (Rivendos) Fig. 4. Memoria e programit Adresat e vektorëve të ndërprerjes janë të vendosura në intervale prej 8 bajt: - 0003H ndërprerje e jashtme 0 (Ndërprerje e jashtme 0) - pin IN T 0; - 000BH ndërprerje nga kohëmatësi 0 (nga flamuri i tejkalimit të kohëmatësit - T F 0); - 0013H ndërprerje e jashtme 1 - IN T 1 pin; - Ndërprerja 001BH nga kohëmatësi 1 (nga flamuri i tejkalimit të kohëmatësit - T F 1); - 0023H ndërprerje nga porta serike (Serial Interrupt = Receive Interrupt or Transmit Interrupt); etj. Kujtesa e të dhënave është e ndarë nga memoria e programit. Adresimi i RAM-it të jashtëm 64K është i mundur në këtë zonë. Kur hyni në memorien e jashtme të të dhënave, CPU-ja e mikrokontrolluesit gjeneron sinjalet përkatëse të leximit (R D) ose shkrimit (W R), ndërveprimi me memorien e brendshme të të dhënave kryhet në nivelin e komandës, ndërsa sinjalet R D dhe W R nuk gjenerohen. Kujtesa e jashtme e programit dhe memoria e jashtme e të dhënave mund të kombinohen duke ANDDhuar sinjalet R D dhe PS EN për të siguruar një strobë memorie të jashtme (program / të dhëna). 128 bajtë më të ulët të memories së brendshme të të dhënave (128 më të ulëta) janë të pranishme në të gjitha makineritë MCS-51 dhe janë paraqitur në Figurën 5. 32 bajtet e para përfaqësojnë 4 banka (Register Bank) me 8 regjistra (R7 ... R0). Regjistrat R0 dhe R1 në cilëndo nga bankat mund të përdoren si regjistra adresash indirekte. 16 bajt që ndjekin bankat e regjistrave formojnë një bllok hapësire të adresueshme me bit. Kompleti i instruksioneve MCS-51 përmban një gamë të gjerë operacionesh bit, dhe 128 bitët në këtë bllok janë drejtpërdrejt të adresueshëm dhe adresat variojnë nga 00H në 7FH. Të gjithë bajtet në gjysmën e poshtme 128 bajt të memories mund të adresohen drejtpërdrejt ose tërthorazi. Gjysma e sipërme 128 bajt e memories RAM (128 e sipërme) mungon në çipin I-8051, por është i disponueshëm në versionet e kristaleve me 256 bajt RAM. Në këtë rast, zona "Upper 128" është e disponueshme vetëm për adresim indirekt. Zona SFR (Special Function Register) është e disponueshme vetëm me adresim të drejtpërdrejtë. Rregullimi i regjistrave të funksioneve speciale në hapësirën SFR është paraqitur në Fig. 6. Këto përfshijnë regjistrat e porteve, kohëmatësit, kontrollet periferike, etj. 9 7FH Byte-addressable zonë RAM 30h (direkt, indirekt) 2FH 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H 2EH 77H 76H 75H 74H 73H 72h 71H 70H Byte-addressable zonë RAM (direkte) 21h 0FH 0EH 0DH 0CH 0BH 20AH 09h 08H 06H 05H 04H 03H 02H 01H 00H 1FH RB3 18H 17H RB2 10H 0FH RB1 08H 07H SP pas RISETIMIT 00H RB0 (R7 + R0) Fig. 5. Fundi 128 byte RAM i brendshëm. adresimi në mënyrë bitale 8 bajt 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 A70H 100H 8 1/9 2 / A 3 / B 4 / C 5 / D 6 / E 7 / F Fig. 6. Vendosja e regjistrave të funksioneve të veçanta në hapësirën SFR. Për 16 adresa në hapësirën SFR, adresimi i bajtit dhe i bitit është i mundur. Për regjistrat e adresueshëm me bit, adresa heksadecimal përfundon me "0H" ose "8H". Adresat bit në këtë zonë variojnë nga 80H në FFH. E gjithë seria e kristaleve të familjes MCS-51 ka një grup bazë SFR, si në mikroqarkullin I-8051, të vendosur në të njëjtat adresa. Megjithatë, në kristalet, të cilat janë një zhvillim i mëtejshëm i familjes në rajonin SFR, shtohen regjistra të rinj për të zgjeruar 10

PLANI I LEKTORËS

1. Hyrje

2. Udhëzime aritmetike dhe logjike

3. Komandat për transferimin e të dhënave

4. Operacionet Boolean

5. Udhëzimet e tranzicionit

1. Hyrje

Sistemi i komandës MCS-51 mbështet një grup të vetëm udhëzimesh, i cili është krijuar për të ekzekutuar algoritme 8-bit për kontrollin e pajisjeve ekzekutive. Është e mundur të përdoren metoda të shpejta të adresimit të RAM-it të brendshëm, duke kryer operacione bit në struktura të vogla të dhënash. Ekziston një sistem i gjerë për adresimin e variablave me një bit si një lloj i pavarur i të dhënave, i cili lejon përdorimin e biteve të veçantë në komandat logjike dhe të kontrollit të algjebrës Boolean.

Mënyrat e adresimit : grup komandash MCS-51 mbështet mënyrat e mëposhtme të adresimit. Adresim direkt: operandi specifikohet nga adresa 8-bit në instruksion. Adresimi direkt përdoret vetëm për gjysmën e poshtme të memories së brendshme të të dhënave dhe regjistrit SFR. Adresim indirekt: instruksioni i drejtohet regjistrit që përmban adresën e operandit. Ky lloj adresimi përdoret për RAM të jashtëm dhe të brendshëm. Regjistrat mund të përdoren për të treguar adresat 8-bit R0 dhe R1 banka e zgjedhur e regjistrit ose treguesi i stivës PS... Për adresimin 16-bit, përdoret vetëm regjistri i treguesit të të dhënave DPTR.

Udhëzimet e regjistrimit : regjistrat R0 - R7 banka e regjistrit aktual mund të adresohet përmes udhëzimeve specifike që përmbajnë një fushë 3-bitëshe që tregon numrin e regjistrit në vetë udhëzimin. Në këtë rast, fusha përkatëse e adresës në komandë mungon. Operacionet duke përdorur regjistra të veçantë: disa udhëzime përdorin regjistra individualë (p.sh. funksionimi i baterisë, DPTR, etj.). Në këtë rast, adresa e operandit nuk është fare e specifikuar në komandë. Është i paracaktuar nga kodi optik.

Konstante të menjëhershme : konstanta mund të gjendet pikërisht në komandën pas kodit optik.

Adresimi i indeksuar : adresimi i indeksit mund të përdoret vetëm për qasje në kujtesën e programit dhe vetëm në modalitetin e leximit. Në këtë mënyrë, tabelat shihen në memorien e programit. Regjistri 16-bit ( DPTR ose numëruesi i programit) tregon adresën bazë të tabelës së kërkuar dhe akumulatori tregon pikën e hyrjes në të.

Komandanti i grupitka 42 emërtime mnemonike të komandave për të konkretizuar 33 funksione të këtij sistemi. Sintaksa për shumicën e komandave të gjuhës së asamblesë përbëhet nga një përcaktues i funksionit mnemonik i ndjekur nga operandët që tregojnë metodat e adresimit dhe llojet e të dhënave. Llojet e ndryshme të të dhënave ose mënyrat e adresimit përcaktohen nga operandët e grupit, jo nga ndryshimet në emërtimet mnemonike.

Sistemi i komandës mund të ndahet me kusht në pesë grupe: komanda aritmetike; komandat logjike; komandat e transferimit të të dhënave; komandat e procesorit të biteve; komandat e transferimit të degëzimit dhe kontrollit. Shkurtesat dhe simbolet e përdorura në sistemin e komandës janë paraqitur më poshtë.

Tabela. Shënimet dhe simbolet e përdorura në sistemin e komandës

Emërtimi, simboli

Emërimi

Bateria

Regjistrat e bankës së regjistrit të përzgjedhur aktualisht

Numri i regjistrit të ngarkuar i specifikuar në komandë

e drejtpërdrejtë

Adresa e qelizës së brendshme të të dhënave 8-bit e adresueshme drejtpërdrejt, e cila mund të jetë një vendndodhje e brendshme e RAM-it të të dhënave (0-127) ose një regjistër funksioni special SFR (128-255)

Qeliza 8-bitëshe e adresueshme në mënyrë indirekte e RAM-it të të dhënave të brendshme

8-bit e drejtpërdrejtë të dhënat e përfshira në kodin e funksionimit (CPC)

të dhënatH

Bitët më domethënës (15-8) të të dhënave direkte 16-bit

te dhenaL

Bitët më pak të rëndësishëm (7-0) të të dhënave direkte 16-bitësh

Adresa e destinacionit 11-bit

addrL

Pjesët më pak të rëndësishme të adresës së destinacionit

Bajt i kompensuar i nënshkruar 8-bit

Bit i adresueshëm i drejtpërdrejtë, adresa e të cilit përmban CPC, e vendosur në RAM-in e brendshëm të të dhënave ose regjistrin e funksioneve speciale SFR

a15, a14 ... a0

Bitët e adresës së destinacionit

Përmbajtja e elementit X

Përmbajtja në adresën e ruajtur në elementin X

Shkarkimi M i elementit X


+

*
DHE
OSE
XOR
/ X

Operacionet:
shtesat
zbritje
shumëzimi
ndarje
shumëzimi logjik (DHE operacioni)
shtimi logjik (operacioni OSE)
shtimi mod 2 (ekskluzive OSE)
përmbysja e elementit X

Mnemonika e funksionit shoqërohet në mënyrë unike me kombinime specifike të metodave të adresimit dhe llojeve të të dhënave. Gjithsej 111 kombinime të tilla janë të mundshme në sistemin e komandës.

2. Udhëzime aritmetike dhe logjike

Si n shembull komanda aritmetike, operacioni i shtimit mund të kryhet me një nga komandat e mëposhtme.

SHTOA,7 F 16 - shtoni numrin 7 në përmbajtjen e regjistrit A F 16 dhe ruajeni rezultatin në regjistrin A;

SHTOA,@ R0 - shtoni në përmbajtjen e regjistrit A numrin adresën e të cilit (@ – komerciale ) ruhet në regjistër R 0 (adresim indirekt), dhe ruajeni rezultatin në regjistrin A;

SHTO A, R7- shtoni përmbajtjen e regjistrit përmbajtjes së regjistrit A R 7 dhe ruajeni rezultatin në regjistrin A;

SHTO A, # 127- shtoni në përmbajtjen e regjistrit A një numër, adresa e vendndodhjes së ruajtjes së të cilit është 127 ( # - simboli i numrit) dhe ruajeni rezultatin në regjistër T- ri A.

Të gjitha udhëzimet aritmetike ekzekutohen në një cikël makinerie me përjashtim të instruksionit INC DPTR(zhvendosja e treguesit të të dhënave DPTR në bajtin tjetër), i cili kërkon dy cikle makinerie, si dhe operacione të shumëzimit dhe pjesëtimit të kryera në 4 cikle makinerie. Çdo bajt në memorien e brendshme të të dhënave mund të rritet dhe zvogëlohet pa përdorur baterinë.

udhëzime MUL AB kryen shumëzimin e të dhënave në akumulator me të dhënat në regjistrin B, duke e vendosur prodhimin në regjistrat A (gjysma e ulët) dhe B (gjysma e lartë).

udhëzime DIV AB ndan përmbajtjen e akumulatorit me vlerën në regjistrin B, duke lënë pjesën e mbetur në B dhe herësin në akumulator.

udhëzime DA Aështë menduar për veprime aritmetike binare-dhjetëshe (veprime aritmetike mbi numrat e paraqitur në kodin binar-dhjetor). Nuk konvertohet në binar dhjetore binare, por jep vetëm rezultatin e saktë kur shtohen dy numra BCD.

Shembull komandë logjike: Operacioni logjik DHE mund të kryhet nga një nga komandat e mëposhtme:

ANLA,7 F 16 - shumëzimi logjik i përmbajtjes së regjistrit A me numrin 7 F 16 dhe rezultati ruhet në regjistrin A;

ANLA,@ R1 - shumëzimi logjik i përmbajtjes së regjistrit A me numrin adresa e të cilit ruhet në regjistër R 1 (adresim indirekt), dhe ruajeni rezultatin në regjistrin A;

ANL A, R6- shumëzimi logjik i përmbajtjes së regjistrit A me përmbajtjen e regjistrit R 6, dhe ruajeni rezultatin në regjistrin A;

ANL A, # 53 - shumëzim logjik i përmbajtjes së regjistrit A me një numër, adresa e vendndodhjes së ruajtjes së të cilit është 53 16, dhe rezultati ruhet në regjistrin A.

Të gjitha veprimet logjike në përmbajtjen e akumulatorit kryhen në një cikël makinerie, pjesa tjetër - në dy. Operacionet logjike mund të kryhen në cilindo nga 128 bajt më të ulët të memories së brendshme të të dhënave ose në çdo regjistër SFR (regjistrimet e funksioneve speciale) në modalitetin e adresimit të drejtpërdrejtë pa përdorur bateri.

Operacionet e zhvendosjes ciklike RL A, RLC A, e kështu me radhë lëvizin përmbajtjen e akumulatorit një bit djathtas ose majtas. Në rastin e një zhvendosjeje ciklike majtas, biti më pak i rëndësishëm zhvendoset në pozicionin më domethënës. Në rastin e një zhvendosjeje ciklike djathtas, ndodh e kundërta.

Operacioni SHKËMBIMI A shkëmben fletoret e vogël dhe të lartë në akumulator.

3. Komandat për transferimin e të dhënave

Ekipi MOV dest, src ju lejon të transferoni të dhëna midis qelizave të RAM-it të brendshëm ose zonës së regjistrit të funksioneve speciale SFR pa përdorur bateri. Në të njëjtën kohë, puna me gjysmën e sipërme të RAM-it të brendshëm mund të kryhet vetëm në mënyrën e adresimit indirekt, dhe qasja në regjistra SFR- vetëm në modalitetin e adresimit të drejtpërdrejtë.

Në të gjitha mikroqarqet MCS-51 stack-i shpërndahet drejtpërdrejt në memorien rezidente të të dhënave dhe rritet lart. udhëzime SHTYTJE së pari rrit vlerën në regjistrin e treguesve të stivës PS dhe më pas shtyn një bajt të dhënash në pirg. Komandat SHTYTJE dhe POP përdoren vetëm në modalitetin e adresimit të drejtpërdrejtë (shkrimi ose rivendosja e një bajt), por pirgu është gjithmonë i aksesueshëm kur adresohet në mënyrë indirekte nëpërmjet një regjistri PS... Kështu, pirgu mund të përdorë 128 bajtët e sipërm të memories së të dhënave. Të njëjtat konsiderata përjashtojnë mundësinë e përdorimit të instruksioneve të stivës për adresimin e regjistrave. SFR.

Udhëzimet e transferimit të të dhënave përfshijnë një operacion transferimi 16-bit MOV DPTR, # të dhëna16 i cili përdoret për të inicializuar regjistrin e treguesve të të dhënave DPTR kur shikoni tabela në memorien e programit ose për të aksesuar memorien e jashtme të të dhënave.

Operacioni XCH A, bajt përdoret për të shkëmbyer të dhëna ndërmjet akumulatorit dhe bajtit të adresuar. Ekipi XCHD A, @ Riështë i ngjashëm me atë të mëparshëm, por kryhet vetëm për tetrada më të ulëta që marrin pjesë në shkëmbimin e operandëve.

Vetëm adresimi indirekt përdoret për të hyrë në memorien e jashtme të të dhënave. Në rastin e adresave me një bajt, përdoren regjistrat R0 ose R1 banka e regjistrit aktual, dhe për 16-bit - regjistri i treguesit të të dhënave DPTR... Me çdo metodë të aksesimit të memories së jashtme të të dhënave, akumuluesi luan rolin e një burimi ose marrësi informacioni.

Për të hyrë në tabelat e vendosura në memorien e programit, përdorni komandat:

MOVC A, @ A + DPTR ;

MOVC A, @ A + PC .

Përmbajtja e regjistrit të treguesve të të dhënave përdoret si adresa bazë e tabelës. DPTR ose PC(numëruesi i programit), dhe kompensimi merret nga A... Këto komanda përdoren ekskluzivisht për të lexuar të dhëna nga memoria e programit, por jo për të shkruar në të.

4. Operacionet Boolean

Mikroqarqet MCS-51 përmbajnë një procesor "boolean". RAM-i i brendshëm ka 128 bit të adresueshëm drejtpërdrejt. Hapësira e regjistrit të funksioneve speciale SFR gjithashtu mund të mbështesë fusha deri në 128 bit. Instruksionet bit kryejnë operacione kërcimesh të kushtëzuara, transferime, deponime, inversione, DHE dhe OSE. Të gjithë bitët e specifikuar janë të disponueshëm në modalitetin e adresimit të drejtpërdrejtë.

Mbaj pak CF në funksionet e veçanta regjistroni "fjala e statusit të programit PSW"Përdoret si një akumulues një bit i një procesori boolean.

5. Udhëzimet e tranzicionit

Adresat e operacioneve të tranzicionit tregohen në gjuhën e asamblesë me një etiketë ose me një vlerë reale në hapësirën e memories së programit. Adresat e degëve të kushtëzuara mblidhen në një kompensim relativ - një bajt shenje i shtuar në numëruesin e programit PC nëse plotësohet kushti i kalimit. Kufijtë e këtyre tranzicioneve qëndrojnë midis minus 128 dhe 127 në lidhje me bajtin e parë pas udhëzimit. Në funksionin special regjistroni "fjala e statusit të programit PSW“Nuk ka flamur zero, kështu që udhëzimet JZ dhe JNZ kontrolloni kushtin "e barabartë me zero" kur testoni të dhënat në akumulator.

Ekzistojnë tre lloje të komandave të degës së pakushtëzuar: SJMP, LJMP dhe AJMP- të ndryshme në formatin e adresës së destinacionit. udhëzime SJMP kodon adresën si një kompensim relativ dhe zë dy bajt. Distanca e kërcimit është e kufizuar në një interval nga minus 128 në 127 bajt në lidhje me udhëzimin e mëposhtëm SJMP.

Në udhëzimet LJMP adresa e destinacionit përdoret si një konstante 16-bitësh. Gjatësia e komandës është tre bajt. Adresa e destinacionit mund të gjendet kudo në memorien e programit.

Ekipi AJMP përdor një konstante adresash 11-bitësh. Komanda përbëhet nga dy bajt. Kur ky instruksion ekzekutohet, 11 bitet e poshtme të numëruesit të adresave zëvendësohen me adresën 11-bitëshe nga instruksioni. Pesë pjesët më domethënëse të numëruesit të softuerit PC mbeten të pandryshuara. Kështu, kërcimi mund të kryhet brenda një blloku 2K-byte, në të cilin ndodhet instruksioni që ndjek udhëzimin. AJMP.

Ekzistojnë dy lloje të thirrjeve të nënprogramit të komandës: LCALL dhe Thirrni... udhëzime LCALL përdor adresën 16-bitëshe të nënprogramit të thirrur. Në këtë rast, nënprogrami mund të vendoset kudo në kujtesën e programit. udhëzime Thirrni përdor një adresë nënprograme 11-bitësh. Në këtë rast, nënprogrami i thirrur duhet të jetë i vendosur në një bllok 2K-byte me udhëzimin e mëposhtëm Thirrni... Të dy versionet e komandës vendosin adresën e komandës tjetër në pirg dhe e ngarkojnë atë në numëruesin e programit PC vlerën e re përkatëse.

Nënprogrami përfundon me një udhëzim RET për t'u kthyer në udhëzimin duke ndjekur komandën THIRRJE... Ky udhëzim nxjerr adresën e kthimit nga pirgu dhe e ngarkon atë në numëruesin e programit. PC ... udhëzime RETI përdoret për t'u kthyer nga rutinat e shërbimit me ndërprerje. I vetmi ndryshim RETI nga RET eshte ajo RETI informon sistemin se trajtimi i ndërprerjeve ka përfunduar. Nëse në momentin e ekzekutimit RETI nuk ka ndërprerje të tjera, atëherë është identike RET.

udhëzime DJNZ projektuar për të kontrolluar ciklet. Për të drejtuar ciklin N sapo ju duhet të ngarkoni bajt me vlerën N dhe mbyllni trupin e lakut me komandën DJNZ që tregon fillimin e ciklit.

Ekipi CJNE krahason dy operandët e tij si numra të plotë të panënshkruar dhe kërcen në adresën e specifikuar në të nëse operandët e krahasuar nuk janë të barabartë. Nëse operandi i parë është më i vogël se i dyti, atëherë biti i bartjes CF është vendosur në "1".

Të gjitha komandat në formë të montuar zënë 1, 2 ose 3 bajt.

Artikujt kryesorë të lidhur