Si të krijoni një port për të marrë mcs 51. Mikrokontrollues MCS-51

UDC 681.5, 681.325.5 (075.8)

BBK 32.973.202-018.2 i 73

Shcherbina A. N.Makinat kompjuterike, sistemet dhe rrjetet. Mikrokontrolluesit dhe mikroprocesorët në sistemet e kontrollit: Cheb. shtesa / A.N. Shcherbina, P.A. Nechaev-SPb.: Nga Politekniku. un-ta, 2012.-226 f.

Korrespondon me përmbajtjen e standardit arsimor shtetëror për fushat e trajnimit dhe specialiteteve në fushën e menaxhimit në sistemet teknike, energjinë elektrike dhe inxhinierinë elektrike dhe përmbajtjen e kurrikulës shembullore të disiplinës "Kompjutera, sisteme dhe rrjete".

Pyetjet themelore të organizimit logjik të sistemeve të mikroprocesorëve konsiderohen në shembullin e arkitekturës bazë të familjes së mikrokontrolluesve MCS-51 nga Intel. Përshkruhet teknologjia e programimit të mikrokontrolluesve në gjuhët Assembler dhe SI.

Mund të jetë i dobishëm për studentët dhe mësuesit e institucioneve të larta teknike, specialistë në automatizimin e proceseve teknologjike dhe pajisjeve të prodhimit, si dhe për inxhinierët e projektimit të sistemeve mikroprocesore.

Ai korrespondon gjithashtu me përmbajtjen e standardit arsimor shtetëror të disiplinave "Mikrokontrolluesit dhe mikroprocesorët në sistemet e kontrollit" dhe "Pajisjet elektronike të automatizimit" të trajnimit bachelor, inxhinierik dhe master në drejtimin 140400 "Elektrike dhe inxhinieri elektrike".

Botuar me vendim të këshillit redaktues dhe botues

Universiteti Politeknik Shtetëror i Shën Petersburgut.

© Shcherbina A. N., Nechaev P. A., 2012

© Shteti i Shën Petersburgut

Universiteti Politeknik, 2012

ISBN 978-5-7422-3553-8


Hyrje.. 7

Kapitulli 1. Arkitektura e familjes MCS51. 10

1.1 Karakteristikat e përgjithshme 10

1.2 Diagrami bllok 11



1.3 8051 Caktimi i pinit të mikrokontrolluesit 15

1.4 Organizimi i kujtesës 17

1.4.1 Kujtesa e programit (ROM) 18

1.4.2 Kujtesa e të dhënave (RAM) 19

1.4.3 Regjistrat e funksioneve të veçanta. 20

1.4.4 Regjistri i flamurit (PSW) 23

1.5 Pajisja e kontrollit dhe sinkronizimit 26

1.6 Organizimi i porteve I/O 27

1.6.1 Informacion i përgjithshëm. 27

1.6.2 Funksionet alternative. 27

1.7. Kohëmatësit / numëruesit e mikrokontrolluesve të familjes 8051. 28

1.7.1. Struktura e kohëmatësve-numëruesit. 28

1.7.2 Mënyrat e funksionimit të kohëmatësve. tridhjetë

1.8. Porta serike 32

1.8.1. Struktura e portit serik. 32

1.8.2. Kontrolli i marrësit/regjistri i statusit SCON.. 34

1.8.3. Regjistri i kontrollit të fuqisë PCON.. 36

1.9. Sistemi i ndërprerjeve 37

1.9.1. Struktura e sistemit të ndërprerjeve. 37

1.9.2 Ekzekutimi i rutinës së ndërprerjes. 40

Kapitulli 2 Karakteristikat e 80C51GB.. mikrokontrolluesi 42

2.1 Karakteristikat 42

2.2 porta hyrëse/dalëse P0-P5 43

2.2.1 Funksionimi i porteve I/O. 43

2.2.2 Shkrimi në port.. 46

2.3 Karakteristikat e sistemit 8XC51GB.. të ndërprerjes 49

Aktivizo/çaktivizo ndërprerjet. 50

Ndërprisni menaxhimin e prioriteteve. 51

ndërprerjet e jashtme. 54

2.3. Nyja ADC 56

2.4. Mbrojtësi i harduerit 61

2.5. Zbulimi i dështimit të orës 63

2.6. Matrica e numëruesve të programueshëm RSA 64

2.6.1. Struktura PCA.. 64

2.6.2. Regjistri i modalitetit të numëruesit PCA (CMOD) 66

2.6.3. Regjistri i kontrollit të numëratorit PCA (CON) 67

2.6.4. Krahasoni/rregulloni modulet. 68

2.7. Porta serike e përmirësuar 76

2.8. Kohëmatësi/Numërues 79

Caktimi i pinit prej 8XC51GB.. mikrokontrolluesit e grupit 86

Kapitulli 3 Programimi MK 8051GB.. 89

3.1. Modeli i softuerit 89

3.2 Llojet e të dhënave 93

3.3 Mënyrat e adresimit të të dhënave 93

3.4 Sistemi i komandës 95

3.4.1 Karakteristikat e përgjithshme. 95

3.4.2 Llojet e komandave. 96

3.4.3 Llojet e operandëve. 97

3.4.4 Komandat e transferimit të të dhënave të mikrokontrolluesit. 98

3.4.5 Udhëzime aritmetike 8051.101

3.4.6 8051 Komandat Logjike MCU. 104

3.4.7 Komandat e funksionimit 8051 bit. 106

3.5 Korrigjimi i programeve 111

Kapitulli 4. Gjuha e programimit ASM-51. 112

4.2 Shkrimi i tekstit të programit 113

4.3 Alfabeti i gjuhës. 114

4.4 Identifikuesit. 115

4.5 Numrat 117

4.6 Direktivat 118

4.7 Zbatimi i nënprogrameve në ASM51 122

4.7.1 Struktura e nënprocedurës në gjuhën ASM51. 122

4.7.2 Kalimi i variablave të parametrave në një nënprogram. 123

4.7.3 Zbatimi i nënprogrameve-funksioneve në gjuhën ASM51. 123

4.7.4 Zbatimi i rutinave të trajtimit të ndërprerjeve në gjuhën ASM51. 124

4.8 Programim i strukturuar në gjuhën e asamblesë. 125

4.9 Veçoritë e përkthimit të programeve me shumë module.. 126

4.10 Përdorimi i segmenteve 128

4.10.1 Ndarja e memories MK në segmente .. 128

4.10.2 Segmentet e memories absolute. 129

4.10.2 Segmente memorie të zhvendosshme. 131

Kapitulli 5. Gjuha e programimit C-51. 134

5.1 Karakteristikat e përgjithshme të gjuhës 134

5.3 Struktura e programeve C-51 136

5.3. Elementet e gjuhës programuese C-51 138

5.3.1. Simbolet.. 138

5.3.2. Njësitë leksikore, ndarësit dhe përdorimi i hapësirave. 141

5.3.3 Identifikuesit.. 142

5.3.4 Fjalë kyçe. 143

5.3.5 Konstantet.. 143

5.4. Shprehjet në thëniet gjuhësore 146

programimi C-51 146

5.5. Prioritetet e Operacionit 148

5.6. Deklarata të gjuhës programuese C-51 149

5.6.1. operatorët e deklarimit. 150

5.6.2 Deklaratat e ekzekutueshme.. 150

5.6.3 Operatori i caktimit. 151

5.6.4 Deklarata e kushtëzuar. 151

5.6.5 Operatori strukturor (). 152

5.6.6 Deklarata e ciklit for. 152

5.6.7 Deklarata e lakut me kontroll të gjendjes deri në trupin e lakut while. 153

5.6.8 Deklarata e ciklit me kontroll të gjendjes pas trupit të ciklit do while. 154

5.6.9 Deklarata e pushimit. 155

5.6.10 Deklarata e vazhdimit. 155

5.6.11 Deklarata e përzgjedhjes së ndërprerësit. 155

5.6.12 Operatori goto. 157

5.6.13 Shprehja e operatorit. 158

5.6.14 Deklarata e kthimit nga kthimi nënrutinë. 158

5.6.15 Deklaratë boshe. 158

5.7. Deklarimi i variablave në gjuhën e programimit C-51. 159

5.7.1. Deklarata e ndryshueshme. 159

5.7.3 Llojet e të dhënave me numra të plotë. 161

5.7.4 Numrat me pikë lundruese. 162

5.7.5 Variablat e tipit të numëruar. 162

5.7.6. Deklarimi i vargjeve në gjuhën e programimit C-51. 164

5.7.7. Strukturat.. 165

5.7.8. Shoqatat (përzierjet) 166

5.8. Përdorimi i treguesve në C-51 167

5.8.1. Deklarimi i treguesve. 167

5.8.2. Tregues të pashtypshëm. 168

5.8.3. Treguesit e varur nga memoria. 169

5.9. Deklarimi i llojeve të reja të variablave 169

5.10. Inicializimi i të dhënave 170

5.11. Përdorimi i nënprogrameve në gjuhën e programimit C-51. 170

5.11.1. Përkufizimi i nënprogrameve.. 171

5.11.2. Parametrat e nënprogramit .. 173

5.11.3. Deklarimi paraprak i nënprogrameve.. 174

5.11.4 Thirrja e nënprogrameve.. 176

5.11.5 Thirrja rekursive e nënprogramit.. 176

5.11.6 Ndërprerja e rutinave. 177

5.11.7 Fusha e variablave dhe nënprogrameve.. 178

5.12. Programet me shumë module 179

Kapitulli 6. Përgatitja e programeve në mjedisin e zhvillimit të integruar Keil μVision2. 182

6.1 Krijimi i një projekti ASM-51 182

6.2 Shembull i krijimit të një projekti C për një kontrollues trajnimi në Keil μVision2 IDE 188

Kapitulli 7 Përshkrimi i kontrolluesit të mësimit .. 199

7.1. Struktura e kontrolluesit 199

7.2. Hapësira e adresës 200

7.2.1. Shpërndarja e memories. 200

7.2.2 Kujtesa e jashtme. 201

7.2.3. Kujtesa e brendshme e të dhënave. 202

7.3. Alokimi i portit I/O 202

7.4. Porta serike………………………………….203

7.5. Duke punuar me LCD 205

7.6. Panelet e komandimit…………………………………………………213

SHTOJCA P2 STRUKTURA E RAPORTIT PËR PUNËT LABORATORIKE……..217

Shtojca P3 Kodet e komandave të makinës. 217

Referencat... 224


Prezantimi

Në zhvillimin e specialiteteve që lidhen me automatizimin e proceseve teknologjike dhe prodhimit, studimi i mikrokontrolluesve është një nga seksionet e rëndësishme.

Ekziston një zhvillim dhe shfaqje e vazhdueshme e gjithnjë e më shumë mikrokontrolluesve dhe mikroprocesorëve 16 dhe 32-bit në botë, por pjesa më e madhe e tregut botëror të mikroprocesorëve i përket ende pajisjeve 8-bit. Sipas të gjitha parashikimeve të kompanive analitike për të ardhmen e afërt, pozicioni kryesor i mikrokontrolluesve 8-bit në tregun botëror do të vazhdojë.

Aktualisht, midis të gjithë mikrokontrolluesve 8-bit, familja MCS-51 është lideri i padiskutueshëm në numrin e varieteteve dhe numrin e kompanive që prodhojnë modifikimet e tij. Emrin e ka marrë nga përfaqësuesi i parë i kësaj familjeje - mikrokontrolluesi 8051. Një grup i suksesshëm periferikësh, një zgjedhje fleksibël e memories programore të jashtme ose të brendshme dhe një çmim i përballueshëm siguruan që ky mikrokontrollues të ishte i suksesshëm në treg.

Përparësitë e familjes MCS-51:

arkitektura, e cila është standardi de facto;

Gjerësia ekstreme e familjes dhe shumëllojshmëria e mundësive;

Disponueshmëria e versioneve me performancë të lartë dhe të zgjeruara të procesorëve;

një numër i konsiderueshëm zhvillimesh softuerësh dhe harduerësh të disponueshëm lirisht;

lehtësia e programimit të harduerit, duke përfshirë programimin në qark;

kosto e ulët dhe disponueshmëria e çipave bazë;

Disponueshmëria e versioneve të specializuara të kontrollorëve për kushte të veçanta përdorimi

Disponueshmëria e versioneve të kontrollorëve me një nivel të reduktuar të ndërhyrjes elektromagnetike;

· Popullaritet i gjerë në mesin e zhvilluesve të brezit të vjetër, si në botë ashtu edhe në vendet e CIS;

Mbështetja e arkitekturës nga institucionet arsimore kryesore të botës.

Dhe, së fundi, avantazhi kryesor: pasi të keni zotëruar çipin bazë të familjes, është e lehtë të filloni të punoni me "përbindësh" të tillë informatikë si mikrokontrolluesit Cygnal, Dallas Semiconductor, Analog Devices, Texas Instruments.

Familja MCS-51 përfshin një gamë të tërë mikroqarqesh nga mikrokontrolluesit më të thjeshtë deri te ata mjaft kompleks. Deri më sot, ka më shumë se 200 modifikime të mikrokontrolluesve të familjes 8051, të prodhuara nga pothuajse 20 kompani. Çdo vit ka gjithnjë e më shumë variante të përfaqësuesve të kësaj familjeje.

Fushat kryesore të zhvillimit janë:

rritja e shpejtësisë (rritja e frekuencës së orës dhe ridizajnimi i arkitekturës);

reduktimi i tensionit të furnizimit dhe konsumit të energjisë;

· Rritja e sasisë së memories RAM dhe FLASH në një çip me mundësinë e programimit në qark;

· futja e pajisjeve komplekse si sistemet e kontrollit të disqeve, ndërfaqet CAN dhe USB, etj. në periferinë e mikrokontrolluesit.

Mikrokontrolluesit e familjes MCS-51 ju lejojnë të kryeni si detyrat e kontrollit të pajisjeve të ndryshme ashtu edhe zbatimin e nyjeve individuale të qarkut analog. Të gjitha mikroqarqet e kësaj familjeje punojnë me të njëjtin sistem komandimi. Shumica e tyre kryhen në të njëjtat raste me të njëjtën pinout (numërimi i këmbëve për rastin). Kjo bën të mundur përdorimin e mikroqarqeve të prodhuesve të ndryshëm për pajisjen e zhvilluar pa ndryshuar diagramin e qarkut të pajisjes dhe programit.

Prodhuesit kryesorë të varieteteve të familjes së 51-të në botë janë Philips, Siemens, Intel, Atmel, Dallas, Temic, Oki, AMD, MHS, Gold Star, Winbond, Silicon Systems dhe një sërë të tjerë.

Karakteristikat e analogëve të mikrokontrolluesve të familjes MCS-51 (Intel 8XC51FA, 8XC51GB, 80C152) me veçori të avancuara janë dhënë në Tabelën. NË 1.

Tabela B.1

RAM ROM SAR ADC WDT T/C Pas lindjes. Kanalet Veçoritë
Atmel: AT89C2051
- - - - UART Flash 2 Kb
AT89C4051 - - - - UART Flash 4 Kb
AT89S4D12 128 mijë - - - UART, SPI Flash 4 Kb
Gjysmëpërçues DALLAS: DS5000FP
- - - + UART ngarkues bootstrap
DS5001FP - - - + UART ngarkues bootstrap
DS8xC520 16 mijë - - + 2xUART 2DPTR
SIEMENS: C505C
16 mijë - + + UART, MUND 8DPTR
C515C 64 mijë - + + UART+SSC+CAN 4 PWM, 8 DPTR
Philips: *89C51RA+
- + - + UART 2 DPTR, lvl 4 ndërprerje, ora jashtë, Flash 8K
P51XAG1x 8K - - + 2 UART
Intel: 8xC51RA
8K - + + UART IRQ me 4 nivele, orë jashtë
8XC196KC 64 mijë 16 mijë - + - UART 3 PWM
80C196KB 64 mijë 8K - + - UART PWM

Kapitulli 1 MCS51 Arkitektura Familjare

Mikrokontrolluesit me një çip 8-bit të familjes MCS-51 kanë fituar popullaritet të madh në mesin e zhvilluesve të sistemeve të kontrollit të mikroprocesorit për shkak të arkitekturës së tyre të dizajnuar mirë. Arkitektura e mikrokontrolluesit është një grup burimesh harduerike të aksesueshme nga softueri i brendshëm dhe i jashtëm dhe një sistem komandash. Arkitektura e familjes MCS-51 përcaktohet kryesisht nga qëllimi i saj - ndërtimi i pajisjeve dixhitale kompakte dhe me kosto të ulët. Mikrokontrolluesit që kryejnë të gjitha funksionet e një mikrokompjuteri duke përdorur një mikroqark të vetëm quhen kompjuterë me një çip (OEVM).

Intel ka lëshuar rreth 50 modele të bazuara në bërthamën e funksionimit të mikrokontrolluesit Intel 8051. Në të njëjtën kohë, shumë kompani të tjera, si Atmel, Philips, filluan prodhimin e mikrokontrolluesve të tyre të zhvilluar në standardin MCS-51.

Karakteristikat e përgjithshme

Karakteristikat kryesore të familjes:

· Njësia qendrore e përpunimit 8-bit (CPU), e fokusuar në kontrollin e pajisjeve ekzekutive;

· CPU-ja ka një qark të integruar të shumëzimit të harduerit 8-bit dhe pjesëtimit të numrave;

Prania në grupin e udhëzimeve të një numri të madh operacionesh për të punuar me bit të adresueshëm drejtpërdrejt bën të mundur që të flitet për një procesor për të punuar me të dhëna bit (procesor Boolean);

memorie programi e brendshme (në çip) e një maske ose të tipit të riprogramueshëm, e cila ka një vëllim prej 4 deri në 32 Kb për kristale të ndryshme, në disa versione mungon;

· të paktën 128 byte RAM rezidente të të dhënave, e cila përdoret për organizimin, regjistrimin e bankave, grumbullimin dhe ruajtjen e të dhënave të përdoruesit;

· të paktën 32 linja ndërfaqe dydrejtimëshe (porte), të konfiguruara individualisht për hyrjen ose daljen e informacionit;

· dy numërues/kohëmarë me shumë mënyra 16-bitësh të përdorur për të numëruar ngjarjet e jashtme, për të organizuar vonesat kohore dhe për të fiksuar portën e komunikimit;

· Transmetues asinkron dydrejtimësh (UART) i krijuar për të organizuar kanalet e komunikimit midis mikrokontrolluesit dhe pajisjeve të jashtme me një gamë të gjerë shpejtësish transferimi informacioni. Ekzistojnë mjete për integrimin harduer-softuer të mikrokontrolluesve në një sistem të lidhur;

· një sistem ndërprerjesh me prioritet me dy nivele që mbështet të paktën 5 vektorë të ndërprerjeve nga 4 burime të brendshme dhe 2 të jashtme të ngjarjeve;

gjenerator i integruar i orës.

Skema strukturore

Diagrami bllok i kontrolluesit është paraqitur në figurën 1.1 dhe përbëhet nga njësitë kryesore funksionale të mëposhtme: një njësi kontrolli, një njësi logjike aritmetike, një njësi kohëmatës/counter, një ndërfaqe serike dhe njësi ndërprerjeje, një numërues programi, memorie të dhënash, dhe memorie programore. Shkëmbimi dypalësh kryhet duke përdorur një autostradë të brendshme të të dhënave 8-bit. 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).

Njësia e kontrollit dhe sinkronizimit (Koha dhe kontrolli)- 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ë tij. Njësia e kontrollit përfshin:

pajisje për formimin e intervaleve kohore;

logjika input-output;

regjistri i udhëzimeve;

regjistri i menaxhimit të konsumit të energjisë elektrike;

dekoder komande, logjika e kontrollit kompjuterik.

Oriz. 1.1. Diagrami strukturor i kontrolluesit I8051.

Pajisja për përcaktimin e kohësështë menduar për gjenerimin dhe daljen e sinjaleve të sinkronizimit të brendshëm të fazave, cikleve 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ç udhëzimeve të shumëzimit dhe pjesëtimit, kohëzgjatja e të cilave është katër cikle makinerie. Le të shënojmë frekuencën e oshilatorit kryesor përmes F g. 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ë sigurojnë shkëmbimin e informacionit me pajisje të jashtme përmes portave hyrëse/dalëse P0-P3.

Regjistri komanduesështë projektuar për të regjistruar dhe ruajtur një kod operimi 8-bit të komandës që po ekzekutohet. Kodi i funksionimit, me ndihmën e një dekoderi komandues dhe logjikën e kontrollit kompjuterik, shndërrohet në një mikroprogram për ekzekutimin e komandës.

Regjistri i kontrollit të kërkesës (PCON) ju lejon të ndaloni funksionimin e mikrokontrolluesit për të zvogëluar konsumin e energjisë dhe për të zvogëluar nivelin e ndërhyrjes nga mikrokontrolluesi. Një reduktim edhe më i madh i konsumit të energjisë dhe uljes së zhurmës mund të arrihet duke ndaluar oshilatorin kryesor të mikrokontrolluesit. Kjo mund të arrihet duke ndërruar bitet në regjistrin e kontrollit të kërkesës PCON. Për opsionin e prodhimit nMOS (seri 1816 ose çipa të huaj që nuk kanë shkronjën "c" në mes të emrit), regjistri i kontrollit të energjisë PCON përmban vetëm një bit që kontrollon shpejtësinë e zhurmës së portës serike SMOD, dhe aty nuk janë bit kontrolli të konsumit të energjisë.

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

regjistrat e akumulatorëve, regjistrat mbajtës TMP1 dhe TMP2;

konstante ROM;

mbledhës;

regjistri shtesë (regjistri B);

bateri (ACC);

regjistri i statusit të programit (PSW).

Regjistrohu akumulatorë dhe regjistra mbajtës- regjistrat tetë-bitësh të krijuar për të marrë dhe ruajtur operandët për kohëzgjatjen e operacioneve në to. Këta regjistra nuk janë të aksesueshëm nga ana programore.

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

Mbledhja paralele 8-bitëshështë një qark i tipit kombinim me transferim sekuencial, i projektuar për të kryer veprime aritmetike të mbledhjes, zbritjes dhe veprimet logjike të mbledhjes, shumëzimit, joekuivalencës dhe identitetit.

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ë konsiderohet si një regjistër shtesë i gërvishtjeve.

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 blloku i ndërprerjeve (SIP) projektuar për të organizuar hyrje - daljen e flukseve sekuenciale të informacionit dhe organizimin e sistemit të ndërprerjes së programit. Blloku përfshin:

PIP tampon;

logjika e kontrollit;

regjistri i kontrollit;

tampon transmetuesi;

tampon marrësi;

transmetues porti serik;

regjistri i prioriteteve të ndërprera;

interrupt enable regjistri;

ndërprerja e logjikës së përpunimit të flamurit dhe skemës së gjenerimit 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 programit përbëhet nga 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 gjatë 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 OEVM dhe pajisjeve të jashtme, duke formuar 32 linja hyrëse-dalëse.

Regjistri i statusit të programit (PSW)është projektuar për të ruajtur informacione rreth gjendjes së ALU gjatë ekzekutimit të programit.

Kujtesa e programit (EPROM) projektuar për të ruajtur programe dhe është një memorie vetëm për lexim (ROM). Mikroqarqe të ndryshme përdorin ROM të maskuar, të fshirë nga UV ose FLASH.

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

Treguesi i stivës (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 mund të ruani përkohësisht çdo qelizë memorie.

1.3 8051 Caktimi i pinit të mikrokontrolluesit(Fig. 1.2)

· U ss - potenciali i telit të përbashkët ("toka");

U cc - tensioni kryesor i furnizimit +5 V;

· X1,X2 - konkluzione për lidhjen e një rezonatori kuarci;

· RST - hyrja e rivendosjes së përgjithshme të mikrokontrolluesit;

PSEN - leja e kujtesës së programit të jashtëm, lëshuar vetëm kur hyni në ROM të jashtëm;

· ALE - strobi i adresës së memories së jashtme;

· EA - çaktivizoni memorien e brendshme të programit; niveli 0 në këtë hyrje bën që mikrokontrolluesi të ekzekutojë programin vetëm nga ROM-i i jashtëm; duke injoruar të brendshmen (nëse kjo e fundit ekziston);

Oriz. 1.2. Caktimi i pinit 8051.

P1 - porta hyrëse/dalëse pothuajse dydrejtimëshe tetë-bitësh, çdo bit i portës mund të programohet si për hyrjen ashtu edhe për daljen e informacionit, pavarësisht nga statusi i biteve të tjerë;

· P2 - një portë pothuajse dydrejtimëshe tetë-bitëshe, e ngjashme me P1, kunjat e këtij porti përdoren për të lëshuar informacionin e adresës kur aksesoni programin e jashtëm ose memorien e të dhënave (nëse përdoret adresimi 16-bit i kësaj të fundit). Për më tepër, kunjat e portave përdoren kur programoni për të futur pjesët e rendit të lartë të adresës në mikrokontrollues;

· РЗ - një port pothuajse dydrejtues tetë-bit, i ngjashëm me Р1, kunjat e këtij porti mund të kryejnë një sërë funksionesh alternative që përdoren në funksionimin e kohëmatësve, një port serik I / O, një kontrollues ndërprerjeje dhe të jashtëm memoria e programit dhe e të dhënave;

· P0 - porta e shumëfishtë dydrejtimëshe tetë-bitëshe e hyrje-daljes së informacionit, përmes këtij porti në momente të ndryshme kohore dalin bajtët e ulët të adresës dhe të dhënat.

Organizimi i kujtesës

E gjithë seria MCS-51 ka një arkitekturë të Harvardit, d.m.th. hapësira të veçanta adresash programesh dhe memorie të dhënash. Struktura e memories është paraqitur në fig. 1.3.

Sasia e memories së brendshme (rezidente) të programit (ROM, EPROM ose OTP ROM) e vendosur në një çip, në varësi të llojit të mikroqarkullimit, mund të jetë 0 (ROMless), 4K (çip 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 të brendshëm ose të jashtëm përcaktohet nga vlera e sinjalit në pinin EA (External Access):

EA=V cc (tensioni i furnizimit) - akses në ROM të brendshëm;

EA=V ss (potenciali i tokës) - akses në ROM të jashtëm.

Për çipat pa ROM, kunja EA duhet të lidhet përgjithmonë me V ss.

Oriz. 1.3. Organizimi i kujtesës i familjes MCS-51

Strobe e leximit të ROM-it të jashtëm - (Program Store Enable) krijohet kur hyni në kujtesën e programit të jashtëm dhe është joaktive gjatë hyrjes në ROM që ndodhet në çip. Zona e adresës së memories së ulët të programit përdoret nga sistemi i ndërprerjes. Arkitektura e çipit bazë 8051 mbështet pesë burime ndërprerjeje:

dy ndërprerje të jashtme;

dy ndërprerje nga kohëmatësit;

ndërpret nga porta serike.

Në fig. 1.4 tregon një hartë të zonës së poshtme të kujtesës së programit.

Oriz. 1.4. Harta e zonës së poshtme të kujtesës së programit

Kujtesa e programit (ROM)

Për mikrokontrolluesit e familjes 8051, memoria e programit dhe memoria e të dhënave janë pajisje të pavarura dhe të pavarura, të adresuara nga komanda të ndryshme dhe sinjale kontrolli.

Sasia e memories së integruar të programit e vendosur në çipin e mikrokontrolluesit 8051 është 4 KB (në familje deri në 32). Kur aksesoni memorien e programit të jashtëm, të gjithë mikrokontrolluesit 8051 përdorin gjithmonë një adresë 16-bit, e cila u siguron atyre akses në 64 KB ROM. Mikrokontrolluesi hyn në kujtesën e programit kur lexon kodin optik dhe operandët (duke përdorur numëruesin e programit të PC-së), si dhe kur ekzekuton komandat për të kopjuar një bajt nga memoria e programit në akumulator. Kur ekzekutoni komandat e kopjimit të të dhënave, adresimi i qelizës së memories së programit nga e cila do të lexohen të dhënat mund të kryhet duke përdorur numëruesin e PC-së dhe një regjistër të posaçëm të treguesit të të dhënave dy bajtë DPTR.

Kujtesa e të dhënave (RAM)

Sasia e memories së të dhënave në çip është 128 bajt. Memoria e jashtme e të dhënave mund të jetë deri në 64 KB. 32 bajtët e parë janë të organizuar në katër banka të regjistrave për qëllime të përgjithshme, të përcaktuara përkatësisht banka 0 - banka 3. Secili prej tyre përbëhet nga tetë regjistra R0-R7. Në çdo kohë, programi është i disponueshëm, me adresimin e regjistrit, vetëm një bankë regjistrash, numri i të cilave gjendet në bitin e tretë dhe të katërt të fjalës së statusit të programit PSW.

8051 Adresat e zonës së bitit të mikrokontrolluesit

Tabela 1.1

Adresa e bajtit (Hex) Adresat pak nga pak
D7 D6 D5 D4 D3 D2 D1 D0
2F 7F 7E 7D 7C 7B 7A
2E
2D 6F 6E 6D 6C 6B 6A
2C
2B 5F 5E 5D 5C 5B 5A
2A
4F 4E 4D 4C 4B 4A
3F 3E 3D 3C 3B 3A
2F 2E 2D 2C 2B 2A
1F 1E 1D 1C 1B 1A
0F 0E 0D 0C 0B 0A
20h

Hapësira e mbetur e adresave mund të konfigurohet nga zhvilluesi sipas gjykimit të tij: ajo mund të akomodojë grupin, sistemin dhe zonat e të dhënave të përdoruesit. Qelizat e memories së të dhënave mund të aksesohen në dy mënyra. Mënyra e parë është adresimi i drejtpërdrejtë i një qelize memorie. Në këtë rast, adresa e qelizës është operandi i instruksionit përkatës. Metoda e dytë është adresimi indirekt duke përdorur regjistrat e treguesve R0 ose R1: përpara se të ekzekutoni komandën përkatëse, njëri prej tyre duhet të përmbajë adresën e qelizës në të cilën duhet të aksesohet.

Për të hyrë në memorien e jashtme të të dhënave, përdoret vetëm adresimi indirekt duke përdorur regjistrat R0 dhe R1 ose duke përdorur regjistrin e treguesit 16-bit DPTR.

Një pjesë e kujtesës së të dhënave është një zonë bit, ajo ka aftësinë të përdorë komanda të veçanta bit për të adresuar çdo shifër të qelizave të memories. Adresa e biteve direkt të adresueshëm mund të shkruhet edhe në formën (ByteAddress).(Bit). Korrespondenca midis këtyre dy metodave të adresimit mund të përcaktohet nga Tabela. 1.1.

Intel është krijuesi i arkitekturës së familjes MCS-51, i cili 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ë n-MOS. Një grup i mirë pajisjesh periferike, një zgjedhje fleksibël e memories programore të jashtme ose të brendshme dhe një çmim i përballueshëm siguruan që ky mikrokontrollues të ishte i suksesshëm në treg. Nga pikëpamja e teknologjisë, mikrokontrolluesi 8051 ishte një produkt shumë kompleks për kohën e tij - në kristal u përdorën 128 mijë transistorë, që ishte 4 herë më shumë se numri i transistorëve në mikroprocesorin 16-bit 8086. Ky mikrokontrollues mbetet thelbi. të familjes MCS-51 deri më sot.

Elementet kryesore të arkitekturës bazë të familjes (arkitektura e mikrokontrolluesit 8051) janë:

8-bit ALU;

4 banka regjistrash, 8 në secilën;

Memorie programore e brendshme (rezidente) 4 KB, me tipin ROM ose EPROM (8751);

Memorie e brendshme (rezidente) e të dhënave 128 bajt;

21 regjistra të funksioneve të veçanta;

procesor Boolean;

Dy kohëmatës/numërues 16-bitësh;

Kontrolluesi i portës serike (UART);

Kontrolluesi i ndërprerjes me dy nivele prioritare;

Katër porte hyrëse/dalëse 8-bitëshe, dy prej të cilave përdoren si autobus adresash/të dhënash për qasje në programe të jashtme dhe memorie të të dhënave;

Gjenerator i integruar i orës.

Më pas u lëshua mikrokontrolluesi 8052, i cili paraqiste një sasi të shtuar të programeve rezidente dhe memorjes së të dhënave të prezantuar nga një kohëmatës i tretë dhe një kontrollues ndërprerës i zgjeruar përkatësisht.

Hapi tjetër themelor në zhvillimin e MCS-51 ishte transferimi i teknologjisë së prodhimit në CMOS (modifikimi 8xC51). Kjo bëri të mundur zbatimin e mënyrave Idl (boshe) dhe Power Down (konsum i ulët), të cilat sigurojnë një reduktim të mprehtë të konsumit të energjisë së kristalit dhe hapën rrugën për përdorimin e një mikrokontrollues në aplikacione të paqëndrueshme, për shembull, në pajisje autonome me bateri.

Dhe faza e fundit e rëndësishme në zhvillimin e MK 8051 nga Intel ishte lëshimi i mikrokontrolluesve 8xC51FA / FB / FC dhe 8xC51RA / RB / RC, të cilat për shkurtësi shpesh quhen 8xC51Fx dhe 8xC51Rx. Karakteristika kryesore dalluese e këtij grupi kristalesh është prania e një timer / numëruesi të specializuar (PCA). Përveç kësaj, mikrokontrolluesit 8xC51Rx përmbajnë gjithashtu një kohëmatës vëzhgues (WDT). Konsideroni arkitekturën dhe funksionalitetin e PCA në më shumë detaje.

RSA përfshin:

Timer/counter 16-bit;

Pesë module 16-bitëshe të mostrës dhe krahasimit, secila e lidhur me një linjë të ndryshme porti hyrëse/dalëse të mikrokontrolluesit.

Kohëmatësi/numëruesi shërben të pesë modulet e mostrës 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 programueshëm 16-bit;

Pajisja e daljes me shpejtësi të lartë 16-bit;

PWM 8-bit.

Zbatimi i të gjitha funksioneve të listuara bëhet në PCA në nivelin e harduerit dhe nuk ngarkon procesorin qendror. Kjo ju lejon të rritni xhiron e përgjithshme, të përmirësoni saktësinë e matjeve dhe përpunimin e sinjalit dhe të zvogëloni kohën e përgjigjes së mikrokontrolluesit ndaj ngjarjeve të jashtme, gjë që është veçanërisht e rëndësishme për sistemet në kohë reale. PCA i implementuar në 8xC51Fx (8xC51Rx) doli të ishte i tillë

Emërtimi

Maks. frekuenca (MHz)

ROM/EPROM (bajt)

sportele

Është me fat që arkitektura e këtyre mikrokontrolluesve është bërë një standard i industrisë dhe vetë PCA është riprodhuar vazhdimisht në modifikime të ndryshme të MK 8051.

Disa karakteristika të një numri mikrokontrolluesësh MCS-51 të prodhuar nga Intel janë dhënë në Tabelën 1.1.

Fillimisht, pengesat e arkitekturës MCS-51 ishin një ALU e bazuar në bateri 8-bit dhe ekzekutimi relativisht i ngadaltë i instruksioneve (12 sythe kërkohen për të ekzekutuar udhëzimet më të shpejta).

Tabela 1.1

I/O

ADC fut x shifra

periferi,

veçoritë

U përkëdhelur. (NË)

Opsioni i tensionit të ulët

IRQ me 4 nivele, orë jashtë

IRQ me 4 nivele, orë jashtë

Versioni i tensionit të ulët 8xC51Fx

IRQ me 4 nivele, orë jashtë

IRQ me 4 nivele, orë jashtë

IRQ me 4 nivele, orë jashtë

riodet e frekuencës së orës (frekuenca e sinkronizimit MC)). Kjo kufizoi përdorimin e mikrokontrolluesve të familjes në aplikacionet që kërkojnë rritje të performancës dhe llogaritje komplekse (16- dhe 32-bit). Çështja e modernizimit themelor të arkitekturës MCS-51 është bërë 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 të familjes MCS-51, në lidhje me të cilat një nga detyrat kryesore të hartimit të një arkitektura e re ishte të zbatonte përputhshmërinë e harduerit dhe softuerit me zhvillimet e bazuara në MCS -51.

Për të zgjidhur këtë problem, u krijua një grup i përbashkët specialistësh nga Intel dhe Philips, por më vonë rrugët e këtyre dy kompanive u ndryshuan. Si rezultat, në vitin 1995 u shfaqën dy familje dukshëm të ndryshme: MCS-251/151 e Intel dhe MCS-51XA e Philips (shih nënseksionin 1.2).

Karakteristikat kryesore të arkitekturës MCS-251:

Hapësirë ​​adresash lineare 24-bitëshe, që adreson deri në 16 MB memorie;

Arkitektura e regjistrit që lejon regjistrat të referohen si bajt, fjalë dhe fjalë të dyfishta;

Mënyra e adresimit të faqes për marrjen më të shpejtë të komandave nga memoria e jashtme e programit;

Radha e udhëzimeve;

Komplet i zgjeruar instruksionesh, duke përfshirë operacione aritmetike dhe logjike 16-bitësh;

Hapësirë ​​e zgjeruar e adresave të stivës (deri në 64 KB);

Ekzekutimi i komandës më të shpejtë në 2 cikle.

Kompleti i udhëzimeve MCS-251 përfshin dy grupe instruksionesh - grupi i parë është një kopje e grupit të instruksioneve MCS-51 dhe i dyti përbëhet nga udhëzime të zgjeruara që përfitojnë nga arkitektura MCS-251. Para përdorimit të mikrokontrolluesit, ai duhet të konfigurohet, d.m.th. duke përdorur programuesin, "digjni" pjesët e konfigurimit që përcaktojnë se cili nga grupet e instruksioneve do të bëhet aktiv pasi të ndizet energjia. Nëse instaloni grupin e parë të udhëzimeve, atëherë në këtë rast MK e familjes MCS-251 do të jetë në përputhje me MCS-51 në nivelin e kodit binar. Ky modalitet quhet Modaliteti Binar. Nëse fillimisht instaloni një grup udhëzimesh të zgjeruara (Source Mode), atëherë programet e shkruara për MCS-51 do të kërkojnë ripërpilim në ndër-tools për MCS-251. Modaliteti i burimit ju lejon të përdorni arkitekturën MCS-251 me efikasitet maksimal dhe të arrini performancën më të lartë.

Për përdoruesit e fokusuar në përdorimin e mikrokontrolluesve MCS-251 si një zëvendësim mekanik për MCS-51, Intel lëshon mikrokontrolluesit MCS-151 të programuar tashmë në gjendjen Binary Mode.

Disa karakteristika të një numri mikrokontrolluesësh MCS-251/151 janë dhënë në tabelën 1.1.

Aktualisht, Intel, që synon tregun e procesorëve Pentium, po kufizon prodhimin e kristaleve MCS-51. Në përgjithësi, për një zhvillues të veçantë, kjo mund të kalojë pa u vënë re, përveç nëse ai përdor mikrokontrollues 8xC51GB dhe 80C152Jx, të cilët nuk kanë analogët e tyre të saktë midis produkteve nga kompani të tjera. Si për të gjithë mikrokontrolluesit e tjerë të familjes MCS-51, ata të gjithë riprodhohen shumë herë nga kompani të tjera.

PLANI I LEKTORËS

1. Hyrje

2. Udhëzime aritmetike dhe logjike

3. Komandat e transferimit të të dhënave

4. Operacionet Boolean

5. Udhëzimet e kërcimit

1. Hyrje

Sistemi i komandës MCS-51 mbështet një grup të vetëm udhëzimesh që është krijuar për të ekzekutuar algoritme 8-bit për kontrollin e aktuatorëve. Është e mundur të përdoren metoda të shpejta të adresimit të RAM-it të brendshëm, duke kryer operacione bit në strukturat e vogla të të dhënave. 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 individuale në komandat logjike dhe kontrolluese të algjebrës Boolean.

Mënyrat e adresimit : grup instruksionesh MCS-51 mbështet mënyrat e mëposhtme të adresimit. Adresimi i drejtpërdrejtë: Operandi specifikohet nga një adresë 8-bit në instruksion. Adresimi direkt përdoret vetëm për gjysmën e poshtme të memories dhe regjistrave të brendshëm të të dhënave SFR. adresimi 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ë specifikuar 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 nëpërmjet udhëzimeve specifike që përmbajnë një fushë 3-bitëshe që tregon numrin e regjistrit në vetë udhëzimin. Në këtë rast, nuk ka asnjë fushë adrese përkatëse në komandë. Operacionet duke përdorur regjistra të veçantë: disa udhëzime përdorin regjistra individualë (për shembull, operacionet e akumulatorit, DPTR, etj.). Në këtë rast, adresa e operandit nuk është fare e specifikuar në udhëzim. Është e paracaktuar nga kodi optik.

Konstante të menjëhershme : konstanta mund të jetë drejtpërdrejt në komandën prapa kodit optik.

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

Seti i komandaveka 42 mnemonikë komanduese për të specifikuar 33 funksione të këtij sistemi. Sintaksa e shumicës së udhëzimeve të gjuhës së asamblesë përbëhet nga një funksion mnemonik i ndjekur nga operandët që specifikojnë 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 vendosur, jo nga ndryshimet në shënimin kujtimor.

Sistemi i komandës mund të ndahet me kusht në pesë grupe: komanda aritmetike; komandat logjike; komandat e transferimit të të dhënave; udhëzimet e procesorit të bitave; komandat e degëzimit dhe transferimit. Emërtimet dhe simbolet e përdorura në sistemin e komandës janë dhënë më poshtë.

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

Emërtimi, simboli

Qëllimi

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 vendndodhjes së të dhënave të brendshme 8-bitëshe të adresueshme drejtpërdrejt, e cila mund të jetë një vendndodhje e brendshme e të dhënave RAM (0-127) ose një regjistër funksioni special SFR (128-255)

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

8-bit i menjëhershëm të dhënat e përfshira në kodin e funksionimit (COP)

të dhënatH

MSB (15-8) të të dhënave të menjëhershme 16-bit

te dhenaL

Bitë të ulëta (7-0) të të dhënave të menjëhershme 16-bit

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 drejtpërdrejt, adresa e të cilit përmban CPC-në e vendosur në RAM-in e brendshëm të të dhënave ose në 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 elementi X


+

*
DHE
OSE
XOR
/X

Operacionet:
shtesat
zbritje
shumëzimi
ndarje
shumëzimi logjik (DHE operacioni)
shtimi logjik (operacioni OSE)
moduli shtesë 2 (XOR)
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. Në total, 111 kombinime të tilla janë të mundshme në sistemin e komandës.

2. Udhëzime aritmetike dhe logjike

Si të 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 ruani 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 në përmbajtjen e regjistrit A përmbajtjen e regjistrit R 7 dhe ruajeni rezultatin në regjistrin A;

SHTO A,#127- shtoni në përmbajtjen e regjistrit A një numër, adresa e qelizës 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 përveç instruksionit INC DPTR(zhvendosja e treguesit të të dhënave DPTR në bajtin tjetër), që 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 akumulatorin.

Udhëzim MUL AB kryen një shumëzim (shumëzimi) të të dhënave në akumulator me të dhënat në regjistrin B, duke e vendosur prodhimin në regjistrat A (gjysma e poshtme) dhe B (gjysma e lartë).

Udhëzim DIV AB ndan (pjeston) 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ëzim DA A projektuar 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ëzimi logjik i përmbajtjes së regjistrit A me një numër, adresa e qelizës së ruajtjes së të cilit është 53 16 dhe ruani rezultatin në regjistrin A.

Të gjitha veprimet logjike në përmbajtjen e akumulatorit kryhen në një cikël makinerie, pjesa tjetër - në dy. Operacionet Boolean 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 (regjistrat e funksioneve speciale) në modalitetin e adresimit të drejtpërdrejtë pa përdorur baterinë.

Veprimet e rrotullimit RL A, RLC A, etj. 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 kryen këmbimin e tetradës së vogël dhe të lartë në akumulator.

3. Komandat e transferimit të të dhënave

Ekipi MOV dest,src lejon transferimin e të dhënave ndërmjet qelizave të brendshme RAM ose zonës së regjistrit të funksioneve speciale SFR pa përdorur bateri. Në këtë rast, 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 stacki vendoset direkt në memorien rezidente të të dhënave dhe rritet lart. Udhëzim SHTYTJE së pari rrit vlerën në regjistrin e treguesve të stivës PS, dhe më pas shtyn bajt të të dhënave në pirg. Ekipet SHTYTJE Dhe POP përdoren vetëm në modalitetin e adresimit të drejtpërdrejtë (kur shkruani ose rivendosni një bajt), por pirgu është gjithmonë i disponueshëm kur adresohet në mënyrë indirekte përmes një regjistri PS. Kështu, pirgu mund të përdorë gjithashtu 128 bajtët më të lartë të memories së të dhënave. Të njëjtat konsiderata përjashtojnë përdorimin e 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ë hyrë në 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 e ngjashme me atë të mëparshme, por vetëm për tetradat më të ulëta të përfshira 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 aktuale e regjistrave, dhe për ato 16-bit, regjistri i treguesit të të dhënave DPTR. Me çdo metodë për të hyrë në kujtesën e jashtme të të dhënave, bateria luan rolin e një burimi ose marrësi informacioni.

Për të hyrë në tabelat e vendosura në memorien e programit, përdoren komandat e mëposhtme:

MOVC A,@A+ DPTR ;

MOVC A,@A+ PC .

Përmbajtja e regjistrit përkatës të treguesit të të dhënave përdoret si adresa bazë e tabelës. DPTR ose PC(numëruesi i softuerit), dhe kompensimi merret nga A. Këto udhëzime përdoren ekskluzivisht për të lexuar të dhëna nga memoria e programit, 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ë kërcime të kushtëzuara, transferime, rivendosje, përmbysje, AND dhe OSE. Të gjithë bitët e specifikuar janë të disponueshëm në modalitetin e adresimit të drejtpërdrejtë.

Mbaj pak CF në regjistrin e funksionit të veçantë "fjala e statusit të programit PSW' përdoret si një akumulues i procesorit Boolean me një bit.

5. Udhëzimet e kërcimit

Adresat e operacionit të kërcimit shënohen në gjuhën e asamblesë me një etiketë ose një vlerë reale në hapësirën e memories së programit. Adresat e degëve të kushtëzuara mblidhen në një zhvendosje relative - një bajt shenje i shtuar në numëruesin e programit PC nëse plotësohet kushti i tranzicionit. Kufijtë e kërcimeve të tilla qëndrojnë midis minus 128 dhe 127 në raport me bajtin e parë pas udhëzimit. Në funksionin special regjistroni "fjala e statusit të programit PSW» nuk ka asnjë 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ë udhëzimeve të degëve të pakushtëzuara: SJMP, LJMP Dhe AJMP– adresat e destinacionit që ndryshojnë në format. Udhëzim SJMP kodon adresën si një kompensim relativ dhe zë dy bajt. Distanca e kërcimit është e kufizuar në një interval prej minus 128 deri 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. Komanda është e gjatë 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ë programit PC mbeten të pandryshuara. Kështu, kërcimi mund të bëhet brenda bllokut 2K-byte, i cili përmban instruksionin që ndjek udhëzimin AJMP.

Ekzistojnë dy lloje të udhëzimeve për thirrjen e nënprogramit: LCALL Dhe Thirrni. Udhëzim LCALL përdor adresën 16-bitëshe të nënprogramit të thirrur. Në këtë rast, nënprogrami mund të vendoset kudo në memorien e programit. Udhëzim Thirrni përdor adresën e nënprogramit 11-bit. Në këtë rast, nënprogrami i thirrur duhet të jetë i vendosur në të njëjtin bllok 2K-byte me udhëzimin e mëposhtëm Thirrni. Të dy versionet e instruksionit e shtyjnë adresën e udhëzimit 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 udhëzimin RET, duke ju lejuar të ktheheni te udhëzimi 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ëzim RETI përdoret për t'u kthyer nga rutinat e ndërprerjes. I vetmi ndryshim RETI nga RET eshte ajo RETI Informon sistemin që përpunimi i ndërprerjes ka përfunduar. Nëse në momentin e ekzekutimit RETI nuk ka ndërprerje të tjera, është identike RET.

Udhëzim DJNZ projektuar për kontrollin e ciklit. Për të drejtuar një lak N sapo t'ju duhet të ngarkoni në numërator bajtë me vlerën N dhe mbyllni trupin e lakut me komandën DJNZ, duke treguar 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 vendosur në "1".

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

Versioni bazë MCS-51 Informacion i shkurtër. Mikrokontrolluesit modernë 8-bit (MC) kanë burime të tilla kontrolli në kohë reale, për të cilat më parë janë përdorur paraqitje të shtrenjta me shumë çipa në formën e tabelave të veçanta të mikrokompjuterëve, përkatësisht:

● të ketë kapacitet të mjaftueshëm të memories, ndarjen e saj fizike dhe logjike në memorie programore dhe memorie të të dhënave (arkitektura e Harvardit) dhe një sistem komandimi të orientuar në ekzekutimin e algoritmeve të kontrollit;

● përfshijnë të gjitha pajisjet (procesori, ROM, RAM, portat hyrëse/dalëse, sistemi i ndërprerjeve, mjetet e përpunimit të informacionit të bitit, etj.) të nevojshme për të zbatuar një sistem kontrolli mikroprocesor me një konfigurim minimal. Në vitet 1970, firma Intel zhvilloi dhe zotëroi prodhimin komercial të një familjeje mikrokontrolluesish 8-bitësh MCS-48, të bashkuar nga një numër karakteristikash të përbashkëta (kapaciteti shifror, sistemi i komandës, një grup blloqesh funksionale bazë, etj.). Versioni bazë i kësaj familjeje përfshin:

● procesor 8-bit;

● memorie e brendshme e programit (1/2/4K bajt);

● memorie e brendshme e të dhënave (64/128/256 bajt);

● deri në 27 linja hyrëse/dalëse të brendshme dhe 16 të jashtme;

● një kohëmatës 8-bitësh;

● sistemi i ndërprerjes me një nivel me dy burime kërkesash. Në vitin 1980, e njëjta kompani zhvilloi një familje të re të mikrokontrolluesve MCS-51 me tetë bit, i cili është në përputhje me arkitekturën e familjes MCS-48, por ka aftësi më të gjera.

Arkitektura e familjes MCS-51 doli të ishte aq e suksesshme sa që është ende një nga standardet për MK-të 8-bit edhe sot e kësaj dite. Prandaj, si objekt studimi u zgjodhën MC-të e kësaj familjeje, të cilat përdoren gjerësisht në sisteme kontrolli relativisht të thjeshta.

Për familjen MCS-51 janë zhvilluar mjete të ndryshme për përgatitjen e programeve (përpilues, emulatorë harduer-softuerësh, etj.) dhe ka një numër të madh bibliotekash të nënprogrameve standarde. Familja përfshin modifikime të ndryshme të mikroqarqeve (versionet e çipit) të mikrokontrolluesve. Artikujt e këtij seksioni shqyrtojnë në detaje të mjaftueshme versionin bazë të mikrokontrolluesve të familjes MCS-51 (mikroqarku 8051 korrespondon me analogun vendas KP1816BE51), më i thjeshti në aspektin strukturor dhe funksional dhe për sa i përket të kuptuarit.

Seritë pasuese të mikroqarqeve, duke ruajtur përputhshmërinë me versionin bazë, ndryshojnë prej tij në teknologjinë e përmirësuar të prodhimit, parametrat elektrikë, pajisje shtesë dhe funksionalitet. Artikujt e mëposhtëm i kushtohen veçorive strukturore dhe funksionale të modifikimeve të mëvonshme të mikroqarqeve të familjes MCS-51.
Blloku i përgjithësuar i MCS-51. Përbërja e MC, një bllok diagram i përgjithësuar i të cilit është paraqitur në fig. 7.1.1, përfshin:

● Njësia qendrore e përpunimit 8-bit CPU, e përbërë nga ALU, pajisje kontrolli uu dhe gjeneratori i adresave F;

● ROM i maskuar me kapacitet 4K byte për ruajtjen e programeve;

● 128 bajt RAM për ruajtjen e të dhënave;

● katër porte të programueshme Р0–Р3 për hyrje-daljen e informacionit;

● Blloku i ndërfaqes serike BPI për shkëmbimin e informacionit me pajisje të jashtme nëpërmjet një linje me dy tela;

● blloku i kohëmatësve/numëruesve BT/C për të ruajtur modalitetin në kohë reale;

● Blloku i ndërprerjeve BP për organizimin e ndërprerjeve të programeve të ekzekutueshme. Këto fonde formohen banor pjesë e mikrokontrolluesit e vendosur direkt në çip. MC përfshin një numër të madh regjistrash, të cilët janë caktuar në blloqe funksionale të veçanta dhe nuk janë paraqitur në diagram.

Diagrami gjithashtu nuk tregon qarqet e kontrollit. Shkëmbimi dypalësh i informacionit ndërmjet blloqeve kryhet nëpërmjet një 8-biti të brendshëm autobusi i të dhënave SD-8.

Nga e brendshme 16-bit autobusi i adresave SHA-16, adresa e formuar në CPU shfaqet në ROM (12 bit të adresës) dhe në RAM (8 bit të ulët).

Kur përdorni memorie të jashtme, 8 bit të rendit të ulët të adresës dalin në portin P0 dhe 3 ose 8 bit të rendit të lartë në portin P2.

Për zgjerimin logjik të ndërfaqes, përdoret kombinimi i funksioneve të linjave të portit. Si shembull, në fig. 7.1.1 Vija me pika tregon linjat e portit P3, duke performuar alternativë funksionet e transmetimit të sinjalit të kontrollit, qëllimi i të cilave do të diskutohet më poshtë. Për të krijuar një gjenerator të brendshëm të orës, një rezonator kuarci dhe dy kondensatorë janë të lidhur në daljet e mikroqarkut MK (Fig. 7.1.1). Në vend të një gjeneratori të brendshëm të orës, një oshilator i jashtëm mund të përdoret për sinkronizim. Emërtimi grafik konvencional i mikroqarkut MK është paraqitur në fig. 7.1.2, përcaktimi dhe qëllimi i përfundimeve - në tabelë. 7.1.1. Konsideroni blloqet funksionale të MK dhe parimin e funksionimit të tyre. Pajisja aritmetike-logjike. Njësia aritmetike-logjike është projektuar për të kryer operacione aritmetike (duke përfshirë shumëzimin dhe pjesëtimin) dhe logjike në operandët tetë-bitësh, si dhe operacionet e zhvendosjes logjike, zeroizimit, vendosjes, etj. Bllokdiagrami i ALU është paraqitur në fig. 7.1.3.

ALU përfshin

● paralele tetë-bitësh shtues Lloji i kombinimit SM me transferim sekuencial, duke kryer operacione aritmetike (mbledhje dhe zbritje) dhe logjike (mbledhje, shumëzim, pabarazi dhe identitet);

bateri A, sigurimi i funksioneve të regjistrit kryesor aritmetik;

regjistrohen B, përdoret për të zbatuar operacionet e shumëzimit dhe pjesëtimit, ose si një regjistër shtesë superoperativ, funksionet e të cilit përcaktohen nga përdoruesi;

regjistrat(i padisponueshëm nga ana programore) ruajtje e përkohshmeРВХ1, РВХ2, të destinuara për marrjen dhe ruajtjen e operandëve për kohëzgjatjen e operacionit;

● ROM konstante ROM që ruan një kod korrigjimi për paraqitjen e të dhënave binare-dhjetëshe, një kod maskë për operacionet e biteve dhe një kod konstant;

regjistri i fjalëve të statusit të programit PSW, duke rregulluar gjendjen e ALU pasi të jetë kryer operacioni. Në tabelë. 7.1.2 jep informacion mbi caktimin e biteve në shifra individuale të regjistrit PSW. Pajisja e kontrollit. Njësia e kontrollit të CPU (CU) synuar për të koordinuar punën e përbashkët të të gjitha nyjeve MK duke përdorur orën e gjeneruar dhe sinjalet e kontrollit. Ai përfshin (Fig. 7.1.4):

njësia e sinkronizimit dhe kontrollit USU, i cili gjeneron impulse të orës që vendosin ciklet e makinës dhe gjendjet e tyre individuale (S) dhe fazat (P), dhe në varësi të mënyrës së funksionimit të MK, gjeneron grupin e nevojshëm të sinjaleve të kontrollit. Një, dy ose katër cikle makinerie janë caktuar për të ekzekutuar instruksionin.

Çdo cikël makinerie ka gjashtë shtete S1–S6, A përfshin çdo shtet dy faza P1, P2, kohëzgjatja e së cilës është periudha e lëkundjes së gjeneratorit të orës T 0SC.

Kohëzgjatja e ciklit të makinës është 12T 0SC. Të gjitha ciklet e makinerive janë të njëjta, duke filluar me fazën S1P1 dhe duke përfunduar me fazën S6P2.

Përveç impulseve të orës, pajisja e orës në çdo cikël makinerie gjeneron dy (ndonjëherë një) sinjale strobe të bajtit të ulët të adresës ALE në formën e një impulsi pozitiv në fazat S1P2-S2P1 dhe S4P2-S5P1. Diagramet e kohës në fig. 7.1.5 ilustrojnë organizimin e cikleve të makinerive;

● Regjistri i komandës RK, dekoder komandues DC dhe PLA, duke lejuar në çdo cikël makinerie të formojë një grup mikrooperacionesh në përputhje me mikroprogramin e komandës që ekzekutohet;

● Logjika hyrëse-dalëse e LVV për marrjen dhe lëshimin e sinjaleve që ofrojnë shkëmbim informacioni ndërmjet MC dhe pajisjeve të jashtme nëpërmjet portave Р0–Р3;

● Regjistri PCON, i cili ka një bit të vetëm SMOD të aktivizuar në pozicionin PCON.7 për të dyfishuar shpejtësinë e të dhënave të portës serike. Pjesët e mbetura janë të rezervuara për përdorim në të ardhmen.
Gjeneratori i adresave. Formuesi i adresave (FA), ose numëruesi i komandave të PC, synuar për të formuar adresën aktuale të memories së programit 16-bit dhe adresën e memories së jashtme të të dhënave 8/16-bit. Ai përfshin (Fig. 7.1.6):

● 16-bit tampon B, i cili komunikon ndërmjet autobusit të të dhënave 8-bitësh të SD dhe autobusit të brendshëm 16-bit (IS) të gjeneratorit të adresave;

● Skema e rritjes SI për rritjen e vlerës së adresës aktuale të kujtesës së programit me një;

● regjistroni për ruajtjen e adresës aktuale të komandave PTA që vijnë nga SI;

● Regjistri i treguesve të të dhënave DPTR , i përbërë nga dy regjistra 8-bitësh DPH dhe DPL. Shërben për të ruajtur një adresë 16-bit të memories së jashtme të të dhënave dhe mund të përdoret si dy RON të pavarur të aksesueshëm nga softueri;

● Regjistri i gjeneratorit të adresave RFA për ruajtjen e adresës ekzekutive të memories së programit 16-bit ose adresës së kujtesës së jashtme të të dhënave 8/16-bit. Ky regjistër përdoret gjithashtu për të transferuar të dhëna përmes portit P0 në pajisje të jashtme gjatë ekzekutimit të udhëzimeve MOVX @Rm, A dhe MOVX @DPRT, A.

Kujtesa e të dhënave. Kujtesa e të dhënave synuar për marrjen, ruajtjen dhe lëshimin e informacionit të përdorur në procesin e ekzekutimit të programit. Memoria e brendshme (rezidente) e të dhënave (Fig. 7.1.7) përbëhet nga RAM me kapacitet 128 bajt, tregues i stivës PS, regjistri i adresave RAM RA dhe dekoder Dsh. Treguesi i stivës SP është një regjistër 8-bitësh që merr dhe ruan adresën e vendndodhjes së stivës që është aksesuar për herë të fundit. Pas rivendosjes, treguesi i stivës vendoset në adresën 07H, që korrespondon me fillimin e stivit me adresën 08H. Regjistri i adresave RA së bashku me dekoderin Dsh lejon hyrjen në qelizën e kërkuar të memories që përmban një bajt ose pak informacion.

MK ofron mundësinë për të rritur sasinë e kujtesës së të dhënave deri në 64 KB duke u lidhur pajisjet e jashtme të ruajtjes. Si shembull, në fig. 7.1.8 tregon faqosjen e memories së jashtme të të dhënave VPD me një kapacitet prej 2K byte duke përdorur udhëzime si MOVX @ Rm (m = 0; 1). Në këtë rast, porti P0 funksionon si një autobus i shumëfishuar adresash/të dhënash, tre linja të portit P2 përdoren për të adresuar një faqe të jashtme RAM dhe pesë linjat e mbetura mund të përdoren si linja I/O.
Në fig. 7.1.9 tregon diagramet e kohës së cikleve të leximit dhe shkrimit kur MK është duke punuar me RAM të jashtëm. Diagramet tregojnë:

● PCN - bajt i lartë i numëruesit të komandës PC;

● DPL, DPH - bajt i ulët dhe i lartë i regjistrit të treguesit të të dhënave DPTR, i cili përdoret si regjistër adresimi indirekt në udhëzimet MOVX @DPTR,A dhe MOVX A,@DPTR;

● P2 SFR - kapëse portash P2;

● Rm (m = 0, 1) - regjistrat e përdorur në instruksionet MOVX @Rm, A dhe MOVX A, @Rm si regjistra adresash indirekte;

● Z - gjendja e rezistencës së lartë;

● D - periudha gjatë së cilës të dhënat nga porta P0 futen në mikrokontrollues. Kujtesa e programit. Kujtesa e programit është krijuar për të ruajtur programet, ka hapësirën e saj të adresave (të ndara nga memoria e të dhënave) dhe është vetëm për lexim. Ai përfshin një dekoder Dsh dhe ROM (Fig. 7.1.10). Memoria e programit adresohet duke përdorur një numërues PC 16-bitësh, kështu që kapaciteti i saj maksimal është 64K byte. Memoria e brendshme e programit përbëhet nga një ROM me një kapacitet prej 4K byte dhe një dekoder 12-bit. Memoria e jashtme lidhet sipas diagramit në fig. 7.1.11. Nëse 0 V aplikohet në pinin ¯EA të MCU (siç tregohet në Fig. 7.1.11), memoria e brendshme e programit çaktivizohet. Të gjitha akseset e kujtesës fillojnë në adresën 0000h. Kur pini ¯EA lidhet me furnizimin me energji elektrike, qasja në kujtesën e brendshme të programit në adresat 0000h–FFFFh dhe në kujtesën e jashtme të programit në adresat 0FFFh–FFFFh ndodh automatikisht.

Për të lexuar memorien e programit të jashtëm të MK, gjenerohet sinjali ¯PSEN. Kur punoni me memorie të brendshme, sinjali i leximit nuk përdoret. Kur aksesoni memorien e jashtme të programit, gjithmonë formohet një adresë 16-bitëshe. Bajt i ulët i adresës transmetohet përmes portit P0 në gjysmën e parë të ciklit të makinës dhe fiksohet me prerjen e strobit ALE në regjistër.Në gjysmën e dytë të ciklit, porta P0 përdoret për të futur një bajt të dhënash nga memoria e jashtme në MCU.

Bajt i lartë i adresës transmetohet përmes portës P2 gjatë gjithë kohës që aksesohet memoria.

Diagramet e kohës së cikleve të leximit dhe shkrimit gjatë funksionimit të MK me RAM të jashtëm janë paraqitur në fig. 7.1.12.
Diagramet tregojnë:

● PCL OUT - prodhimi i ulët i bajtit të numëruesit të komandave të PC;

● PCN OUT - lëshimi i bajtit të lartë të numëruesit të komandës PC;

● DPH është bajt i lartë i regjistrit të treguesit të të dhënave DPTR, i cili përdoret si një regjistër adresimi indirekt në instruksionet MOVX @DPTR,A dhe MOVX A,@DPTR;

● P2 SFR - kapëse portash P2;

● INS IN - futja e bajtit të instruksionit (komandës) nga memoria e programit;

● ADDR OUT - lëshimi i bajtit të ulët të adresës së memories së jashtme të të dhënave nga regjistrat Rm (m = 0, 1) ose nga regjistri DPL (Regjistri i poshtëm DPTR). Portet hyrëse/dalëse. Caktimi i portit. Portat P0, P1, P2, P3 synuar për të shkëmbyer informacion midis MK dhe pajisjeve të jashtme, si dhe për të kryer funksionet e mëposhtme:

● bajt i ulët i adresës А7…A0 del përmes portit Р0; një bajt i të dhënave del nga MK dhe futet në MK kur punoni me memorie të jashtme programore dhe memorie të jashtme të të dhënave (me ndarje kohore);

● bajt i lartë i adresës A15…A8 del përmes portit P2 kur punoni me memorien e programit të jashtëm dhe memorien e jashtme të të dhënave (vetëm kur përdorni komandat MOVX A,@DPTR dhe MOVX @DPTR,A);

● Linjat e portit P3 mund të përdoren për të kryer funksione alternative nëse në mbylljen e kësaj linje është futur 1, përndryshe në daljen e linjës fiksohet 0. Funksionet alternative të daljeve të portit P3 janë dhënë në tabelë. 7.1.3.

Karakteristikat skematike të porteve

Në fig. 7.1.13 tregon diagramet për një kanal të secilit prej porteve MK, duke përfshirë:

● një shul për fiksimin e bitit të të dhënave të marra;

● amplifikim i daljes kaskadë(shofer);

● nyjë lidhje me faza e daljes (përveç P2);

● një qark për transmetimin e një biti të dhënash nga ana e daljes së portit, i përbërë nga buferët B2 dhe B3 (për portën P4). Shulja është një D-flip-flop, i akorduar nga sinjali i brendshëm "Write to latch". Një pjesë e të dhënave nga dalja direkte e D-flip-flop mund të lexohet nga softueri përmes buferit B1 nga sinjali "Read latch" në linjën e autobusit të brendshëm të të dhënave (SD) të MK.

Faza e daljes porti P0 është një inverter, tiparet e të cilit manifestohen në faktin se tranzistori i ngarkesës VT2 hapet vetëm kur hyn në kujtesën e jashtme (kur transferoni adresat dhe të dhënat përmes portit). Në të gjitha mënyrat e tjera, tranzistori i ngarkesës është i mbyllur. Prandaj, për të përdorur P0 (Fig. 7.1.13, a) si një portë dalëse për qëllime të përgjithshme, rezistorët e jashtëm të ngarkesës duhet të lidhen me daljet e tij. Kur shkruani 1 në mbylljen e portit, transistori i inverterit VT1 fiket dhe kunja e jashtme e portës P0.X transferohet në një gjendje me rezistencë të lartë. Në këtë modalitet, kunja e portit P0.X mund të shërbejë si hyrje. Nëse porta P0 përdoret si një port I/O për qëllime të përgjithshme, secila nga kunjat e saj P0.X mund të funksionojë në mënyrë të pavarur si hyrje ose si dalje. Fazat e daljes portat P1, P2, P3 (Fig. 7.1.13, b, c, d) bërë sipas qarqeve të invertorëve me një rezistencë të brendshme të ngarkesës, e cila përdoret si një transistor VT2.

Për të zvogëluar kohën e kalimit gjatë kalimit të daljeve të portit nga gjendja 0 në gjendjen 1, një tranzistor shtesë VT3 futet paralelisht me tranzitorin e ngarkesës VT2. Transistori VT3 me ndihmën e elementeve në qarkun e portës zhbllokohet për një kohë të barabartë me dy periudha të lëkundjes së oshilatorit kryesor kristal (gjatë fazave S1P1, S2P2 të ciklit të makinës). Fazat e daljes portat P0, P2 (Fig. 7.1.13, A, c) duke përdorur multiplekserin MX mund të lidhen ose me mbyllëse ose me autobusët e brendshëm "Address / data" dhe "Address". Faza e daljes së portës P1 (Fig. 7.1.13, 6) është e lidhur përgjithmonë me shulën.

Nëse kunja e portës P3 është një dalje dhe mbyllja e saj përmban 1, atëherë faza e saj e daljes kontrollohet nga sinjali i brendshëm i harduerit "Funksioni i daljes alternative", i cili siguron funksionin alternativ përkatës, d.m.th. një nga sinjalet ¯WR, ¯RD ose RxD është formuar në pinin e jashtëm. Nëse pini i portit përdoret si hyrje, atëherë sinjali alternativ që vjen në të (TxD, ¯INT0, ¯INT1, T0, T1) transmetohet në linjën e brendshme "Funksioni i hyrjes alternative".

Modaliteti i shkrimit në port.

Kur lëshohet një komandë shkrimi në portë, vlera e re shkruhet në shul në fazën S6P2 dhe del direkt në pinin e daljes së portit në fazën S1P1 të ciklit të ardhshëm të makinës.

Modaliteti i leximit të portit

Komandat e leximit të portit lexojnë informacionin drejtpërdrejt nga kunjat e jashtme të kunjave të portit ose nga daljet e mbylljes. Në rastin e parë, biti i të dhënave nga dalja e portit lexohet në mënyrë programore përmes buferit B2 nga sinjali "Read outputs" në linjën e autobusit të brendshëm të të dhënave (SD) të MK. Vini re se sinjalet "Write to latch", "Read latch", "Read pins" gjenerohen nga hardueri kur ekzekutohen komandat përkatëse.

Në rastin e dytë, zbatohet i ashtuquajturi modaliteti "Lexo-Modifiko-Shkruaj", në të cilin komanda lexon sinjalin e statusit të shulës, e modifikon atë nëse është e nevojshme dhe më pas e shkruan përsëri në shul. Modaliteti Read-Modify-Write zbatohet kur ekzekutohen komandat e mëposhtme: ANL, ORL, XRL, JBC; CPL; I.N.C.; DEC; DJNC; MOV PX,Y; CLR PX.Y; SETB PX,Y.

Leximi i informacionit nga daljet e mbylljes eliminon gabimet gjatë interpretimit të nivelit logjik në një kunj porti. Lexoni vazhdimin e artikullit në.



Artikuj të ngjashëm: