Microcontrolere MCS-51: model de program, structură, comenzi. Microcontrolere MCS-51

Microcontrolere MCS-51: model de program, structură, comenzi. Microcontrolere MCS-51

UDC 681.5, 681.325.5 (075.8)

BBK 32.973.202-018.2 i 73

Shcherbina O.N.Mașini de calcul, sisteme și măsuri. Microcontrolere și microprocesoare în sistemele de control: cheb. Pos_bnik/O.M. Shcherbina, P.A. Nechaev-SPb.: Institutul de Politehnică. Univ., 2012.-226 p.

Prezintă înlocuirea standardului național de pregătire și specialități în domeniul managementului în sisteme tehnice, inginerie energetică și inginerie electrică și înlocuirea programului educațional inițial al disciplinei „Calcul” fără mașini, sisteme sau măsuri.”

Nutriția fundamentală a organizării logice a sistemelor cu microprocesoare este examinată folosind arhitectura de bază a familiei de microcontrolere MCS-51 de la Intel. Este descrisă tehnologia de programare a microcontrolerelor folosind limbaje Assembler și CI.

Poate fi util pentru studenți și dezvoltatori de cunoștințe tehnice avansate, specialiști în automatizarea proceselor și producție, precum și pentru inginerii proiectanți ai sistemelor cu microprocesoare.

De asemenea, înlocuiește standardul național al disciplinelor „Microcontrolere și microprocesoare în sisteme de control” și „Dispozitive electronice de automatizare” pentru pregătirea de licență, inginerie și master direct 1404 00 „Inginerie electrică și inginerie electrică”.

Acordați asupra deciziilor editoriale și editoriale de dragul

Universitatea Politehnică de Stat din Sankt Petersburg.

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

© Statul Sankt Petersburg

Universitatea Politehnică, 2012

ISBN 978-5-7422-3553-8


Intrarea.. 7

Secțiunea 1. Arhitectura familiei MCS51. 10

1.1 Caracteristicile gazului 10

1.2 Diagrama bloc 11



1.3 Scopul componentelor microcontrolerului 8051 15

1.4 Organizarea memoriei 17

1.4.1 Memoria programului (PPM) 18

1.4.2 Memoria de date (DMS) 19

1.4.3 Registre de funcții speciale. 20

1.4.4 Registrul mandatelor (PSW) 23

1.5 Instalare și sincronizare 26

1.6 Organizarea porturilor de intrare-ieșire 27

1.6.1 Rapoarte din culise. 27

1.6.2 Funcții alternative. 27

1.7. Temporizatoare / microcontrolere din familia 8051. 28

1.7.1. Structura cronometrelor de tratament. 28

1.7.2 Moduri de funcționare a temporizatoarelor de tratament. treizeci

1.8. Port serial 32

1.8.1. Structura portului serial. 32

1.8.2. Registrul de stare de service/preț SCON.. 34

1.8.3. PCON.. registrul 36

1.9. Sistemul 37

1.9.1. Schimbați structura sistemului. 37

1.9.2 Subprogramele Vikonannya perervaniya. 40

Capitolul 2. Caracteristici ale microcontrolerului 80C51GB.

2.1 Caracteristici funcționale 42

2.2 Porturi I/O P0-P5 43

2.2.1 Funcționarea porturilor I/O. 43

2.2.2 Înregistrare la port.

2.3 Caracteristici ale sistemului de întrerupere 8XC51GB.

Permis/gard să întrerupă. 50

Întrerupeți gestionarea priorităților. 51

Întreruperi externe. 54

2.3. Vuzol ADC 56

2.4. Watchdog hardware 61

2.5. S-a dezvăluit defecțiunea generatorului de ceas 63

2.6. Matricea medicilor programați RSA 64

2.6.1. Structura PCA..64

2.6.2. Registrul medicului medic RSA (CMOD) 66

2.6.3. Registrul managementului medical al APC (CON) 67

2.6.4. Module de aliniere/fixare. 68

2.7. Extinderea portului serial 76

2.8. Temporizatoare/dozatoare 79

Plasarea microcontrolerelor din grupul 8XC51GB.

Secțiunea 3. Programare MK 8051GB.

3.1. Model software 89

3.2 Tipuri de date 93

3.3 Metode de adresare a datelor 93

3.4 Sistemul de comandă 95

3.4.1. Zagalny caracteristică. 95

3.4.2 Tipuri de comenzi. 96

3.4.3 Tipuri de operanzi. 97

3.4.4 Comenzi pentru suprascrierea datelor microcontrolerului. 98

3.4.5 Instrucțiuni de operații aritmetice 8051. 101

3.4.6 Comenzile operațiilor logice ale microcontrolerului 8051. 104

3.4.7 Comenzi pentru operații pe biți ai microcontrolerului 8051. 106

3.5 Configurarea programului 111

Secțiunea 4. Programarea limbajului ASM-51. 112

4.2 Înregistrarea programului text 113

4.3. Alfabetul limbajului. 114

4.4 Identificatori. 115

4.5 Numerele 117

4.6 Directiva 118

4.7 Implementarea subprogramului ASM51 122

4.7.1 Structura subprogramului-procedura al meu ASM51. 122

4.7.2 Transferarea parametrilor modificabili în subprogram. 123

4.7.3 Implementarea funcției de subprogram a ASM51 al meu. 123

4.7.4 Implementarea rutinelor de procesare folosind ASM51 meu. 124

4.8 Asamblator programat structural. 125

4.9 Caracteristici ale difuzării de programe bogat modulare. 126

4.10 Selectarea segmentului 128

4.10.1 Împărțirea memoriei MK în segmente. 128

4.10.2. Segmente de memorie absolută. 129

4.10.2 Segmente de memorie mutate. 131

Capitolul 5. Programarea limbajului S-51. 134

5.1 Caracteristicile Zagalnaya ale filmului 134

5.3 Structura programului S-51 136

5.3. Programare film Elementi S-51 138

5.3.1. Simboluri.. 138

5.3.2. Unități lexicale, separatoare și compensații. 141

5.3.3 Identificator 142

5.3.4 Cuvinte cheie. 143

5.3.5 Constant.. 143

5.4. Virazi în operatori de film 146

programare C-51 146

5.5. Prioritățile operațiunilor militare 148

5.6. Operatori programare film C-51 149

5.6.1. Operatorii sunt uluiți. 150

5.6.2 Operatori, ce să semneze. 150

5.6.3 Operator de atribuire. 151

5.6.4 Operator mental. 151

5.6.5 Operator structural (). 152

5.6.6 Operator pentru buclă. 152

5.6.7 Operator pentru o buclă cu o inversare cap la cap a buclei while. 153

5.6.8 Operator pentru bucla de la inversarea minții după corp la bucla do while. 154

5.6.9. Pauza operatorului. 155

5.6.10 Continuare operator. 155

5.6.11 Comutare operator de selecție. 155

5.6.12 Salt la operator. 157

5.6.13 Operator Virazu. 158

5.6.14 Retur operator de rotație din subprograme. 158

5.6.15 Operator gol. 158

5.7. Uimit de modificările mele în programarea C-51. 159

5.7.1. Uimit de schimbare. 159

5.7.3 Scopurile tipurilor de date. 161

5.7.4 Numerele cu un bulgăre plutitor. 162

5.7.5 Tipuri răi pentru a fi în siguranță. 162

5.7.6. Masive uluite în programul C-51. 164

5.7.7. Structuri.. 165

5.7.8. Ob'ednannya (sumishi) 166

5.8. Vikoristannya prezentând în movі C-51 167

5.8.1. Expozitori uluiți. 167

5.8.2. Indicatori netipificați. 168

5.8.3. Memorie a afișajelor învechite. 169

5.9. Uimirea noilor tipuri de schimbare 169

5.10. Inițializarea datelor 170

5.11. Subprogramul Vikoristannya u movі programare S-51. 170

5.11.1. Subprogram important.. 171

5.11.2. Parametrii firmware 173

5.11.3. Subprogramare înainte 174

5.11.4 Subprogramul Viklik.. 176

5.11.5 Subprogram apel recursiv. 176

5.11.6 Întreruperea subprogramelor. 177

5.11.7 Domenii de schimbare și subprograme. 178

5.12. Programe cu module bogate 179

Capitolul 6. Pregătirea programelor pentru nucleul integrat al Keil μVision2. 182

6.1 Crearea proiectului meu ASM-51 182

6.2 Aplicație creată de proiectul meu C pentru controlerul inițial în miezul integrat al Keil μVision2 188

Capitolul 7. Descrierea controlerului inițial. 199

7.1. Structura controlerului 199

7.2. Spatiu de adresa 200

7.2.1. Împărțit amintirea. 200

7.2.2 Memorie externă. 201

7.2.3. Memoria internă a datelor. 202

7.3. Lista de porturi pentru inserare și îndepărtare 202

7.4. Port secvenţial………………………………...203

7.5. Robot z RKI 205

7.6. Panourile de control……………………………………………………………………213

SUPLIMENT P2 STRUCTURA RAPORTULUI DESPRE LAB ROBOT……..217

Anexă P3 comenzile aparatului Kodi. 217

Referințe... 224


introduce

În specialitățile stăpânite legate de automatizarea proceselor tehnologice și de fabricație, dezvoltarea microcontrolerelor este una dintre secțiunile importante.

Lumea se confruntă cu o dezvoltare continuă și apariția de noi și noi microcontrolere și microprocesoare pe 16 și 32 de biți, dar cea mai mare parte a pieței de microprocesoare ușoare este încă pierdută pentru dispozitivele pe 8 biți. Conform tuturor previziunilor companiilor de analiză, poziția de lider a microcontrolerelor pe 8 biți pe piața iluminatului va rămâne în viitorul apropiat.

În prezent, dintre toate microcontrolerele pe 8 biți, familia MCS-51 este liderul incontestabil în numărul de soiuri și numărul de companii care produc modificările acestuia. Și-a luat numele de la primul reprezentant al familiei sale - microcontrolerul 8051. Pe lângă setul de dispozitive periferice, capacitatea de a alege fie memorie de program externă, fie internă și un preț rezonabil pentru Nu ne-a păsat de succesul acestui microcontroler în piața.

Avantajele familiei MCS-51:

· arhitectura, care este un standard de facto;

· Lărgimea extremă a familiei și diversitatea posibilităților;

· Disponibilitatea unor versiuni foarte productive și avansate de procesoare;

· Numărul de opțiuni software și hardware disponibile pe scară largă este semnificativ;

· Ușurință în programarea hardware, inclusiv programarea circuitelor interne;

· Ieftinitatea și disponibilitatea cipurilor de bază;

· Disponibilitatea unor versiuni speciale de controlere pentru minți speciale

· Disponibilitatea versiunilor de controler cu un nivel redus de tranzitori electromagnetici;

· Popularitate largă în rândul generațiilor mai în vârstă de copii, atât în ​​lume, cât și în țările cu LIC;

· Susținerea arhitecturii cu principiile de bază ale luminii.

Și, știți, principalul avantaj: stăpânind cipul de bază al familiei, este ușor să începeți să lucrați cu astfel de monștri de calcul precum microcontrolere de la Cygnal, Dallas Semiconductor, Analog Devices, Texas Instruments.

Stocul familiei MCS-51 include o gamă întreagă de microcircuite, de la cele mai simple microcontrolere până la câteva pliabile. Astăzi există peste 200 de modificări ale microcontrolerelor din familia 8051, care sunt produse de aproximativ 20 de companii. În curând apar noi variante de reprezentanți ai acestei familii.

Principalele direcții de dezvoltare sunt:

· Cod de viteză crescută (frecvență de ceas crescută și arhitectură reproiectată);

· Tensiune redusă și consum de energie;

· Utilizare sporită a memoriei RAM și FLASH pe cip cu posibilitatea de programare a circuitelor interne;

· Introducerea de periferice de microcontroler pentru dispozitive pliabile precum sistemele de control al drive-urilor, interfețele CAN și USB etc.

Microcontrolerele din familia MCS-51 vă permit să configurați controlul diferitelor dispozitive, precum și să implementați diferite componente ale circuitelor analogice. Toate microcircuitele din această familie funcționează cu același sistem de comandă. Cele mai multe dintre ele sunt instalate în carcase noi cu o bază care este evitată (numerotarea bazei pentru carcasă). Acest lucru vă permite să utilizați microcircuite de la diferite companii - producători fără a relua schemele de circuit ale dispozitivului și ale programelor.

Principalii producători de specii din a 51-a familie din lume sunt Philips, Siemens, Intel, Atmel, Dallas, Temic, Oki, AMD, MHS, Gold Star, Winbond, Silicon Systems și alții.

Caracteristicile analogilor microcontrolerelor din familia MCS-51 (Intel 8XC51FA, 8XC51GB, 80C152) cu capacități extinse sunt prezentate în tabel. ÎN 1.

Tabelul B.1

RAM ROM RSA ADC WDT T/C Slide Canale Caracteristici
Atmel: AT89C2051
- - - - UART Flash 2 KB
AT89C4051 - - - - UART Flash 4 KB
AT89S4D12 128K - - - UART, SPI Flash 4 KB
DALLAS Semiconductor: DS5000FP
- - - + UART Încărcător bootstrap
DS5001FP - - - + UART Încărcător bootstrap
DS8xC520 16K - - + 2xUART 2 DPTR
SIEMENS: C505C
16K - + + UART, CAN 8 DPTR
C515C 64K - + + UART+ SSC+CAN 4 PWM, 8 DPTR
Philips: *89C51RA+
- + - + UART 2 DPTR, 4 nivel. rev., ceas out, Flash 8K
P51XAG1x 8K - - + 2 UART
Intel: 8xC51RA
8K - + + UART 4 nivele IRQ, ceas out
8XC196KC 64K 16K - + - UART 3 PWM
80C196KB 64K 8K - + - UART PWM

Secțiunea 1. Arhitectura familiei MCS51

Microcontrolerele cu un singur cip pe 8 biți din familia MCS-51 au câștigat o mare popularitate în rândul dezvoltatorilor de sisteme de control cu ​​microprocesor în funcție de designul arhitecturii. Arhitectura microcontrolerului este o colecție de resurse hardware și sisteme de comandă accesibile de software interne și externe. Arhitectura familiei MCS-51 este condusă în mod semnificativ de obiectivele sale de a crea dispozitive digitale compacte și cu costuri reduse. Microcontrolerele care combină toate funcțiile micro-EOM într-un singur microcircuit au fost numite EOM cu un singur cip (SOC).

Intel a lansat aproape 50 de modele bazate pe nucleul de operare al microcontrolerului Intel 8051. În același timp, multe alte companii, precum Atmel, Philips, au început să producă propriile microcontrolere, împărțite în standardul MCS-51.

caracteristicile subterane

Principalele caracteristici ale familiei:

· Procesor central (CPU) pe 8 biți, orientat spre controlul dispozitivelor computerizate;

· CPU este echipat cu un circuit de multiplicare hardware pe 8 biți;

· Faptul că setul de instrucțiuni are un număr mare de operații pentru lucrul cu biți adresați direct face posibil să vorbim despre un procesor pentru lucrul cu date pe biți (procesor boolean);

· Memorie de program internă (rotită pe cristal) de tip mascat sau reprogramat, care poate fi pentru diferite cristale cu un volum de la 4 la 32 KB, în unele versiuni în fiecare zi;

· Cel puțin 128 de octeți de memorie RAM rezidentă de date, care este utilizat pentru organizare, înregistrarea băncilor, stiva și stocarea datelor;

· Cel puțin 32 de linii de interfață bidirecționale (porturi), care pot fi configurate individual pentru a introduce sau a ieși informații;

· două vindecători/temporizatoare multi-mode pe 16 biți care sunt folosite pentru a menține procesele externe, pentru a organiza ceasurile de timp și pentru a verifica portul de comunicare;

· Bidirectional duplex asynchronous receiver (UART), utilizat pentru organizarea canalelor de comunicație între microcontroler și dispozitive externe cu o gamă largă de viteze de transfer de informații. Є caracteristici pentru integrarea hardware și software a microcontrolerelor în sistemul asociat;

· sistem prioritar de udare casnic, care suportă cel puțin 5 vectori de udare din 4 jeturi de apă interne și 2 exterioare;

· Generator de ceas intern.

Diagramă bloc

Schema bloc a controlerului este prezentată în Fig. 1.1 și constă din următoarele unități funcționale principale: o unitate de control, o unitate aritmetic-logică, un bloc temporizator/distribuitor, o interfață serială și bloc de întrerupere, un controler de program, o memorie memorie de date și programe. Comunicarea bidirecțională are loc printr-o magistrală de date internă de 8 biți. Aproape toți reprezentanții familiei MCS-51 au fost creați în cadrul acestei scheme. Diverse microcircuite ale acestei familii sunt împărțite în registre cu scop special (registre și număr de porturi).

Bloc de sincronizare și control- scopuri pentru vibrarea semnalelor de sincronizare și control pentru a asigura coordonarea funcționării integrate a unităților OEOM în toate modurile de funcționare admise. Unitatea de control al depozitului include:

formarea viitoare a intervalelor de oră;

logica intrare-ieșire;

registru de comenzi;

registru de gestiune a alimentării cu energie electrică;

decodor de comandă, logica de control EOM.

Mic 1.1. Schema bloc a controlerului I8051.

Dispozitiv pentru formarea intervalelor de oră Destinat pentru formarea și formarea semnalelor interne de ceas de fază, cicluri și cicluri de ceas. Numărul de cicluri de mașină înseamnă complexitatea secvenței de comenzi. Aproape toate comenzile OEOM sunt executate în unul sau două cicluri de mașină, cu excepția comenzilor de înmulțire, și a căror trivialitate are loc în mai multe cicluri de mașină. În mod semnificativ, frecvența generatorului, care este setată prin F r. Frecvența ciclului mașinii este de 12/F sau setați 12 perioade la semnalul generatorului care se setează. Logica de intrare-ieșire este concepută pentru a primi tipurile de semnale care asigură schimbul de informații de la dispozitive externe prin porturile de intrare-ieșire P0-P3.

Registrul de comenzi Scopul înregistrării este de a salva opcode-ul de 8 biți al comenzii care este adăugată. Codul de operare, cu ajutorul unui decodor de comandă și al logicii de control EOM, este convertit în microprogramul comenzii.

Registrul de control al membrilor (PCON) Vă permite să schimbați robotul microcontroler pentru a modifica cantitatea de energie electrică consumată și pentru a modifica nivelul de intrare de la microcontroler. O schimbare și mai mare a cantității de energie electrică și o schimbare a transcodării pot fi realizate prin deconectarea generatorului de microcontroler care îl setează. Acest lucru poate fi realizat cu ajutorul inversării registrului de biți în legătură cu PCON. Pentru versiunea fabricată folosind tehnologia n-MOS (seria 1816 sau microcircuite străine, ale căror nume au litera „c” în mijloc), registrul de registru PCON conține doar un bit, ceea ce asigură o transmisie lină de portul serial SMOD și va să fie conectat la alimentarea cu energie electrică în fiecare zi.

Unitate logică aritmetică (ALU) este un dispozitiv paralel pe opt biți care oferă o gamă largă de operații aritmetice și logice. ALU este format din:

registre baterie, registre de economisire a timpului TMP1 și TMP2;

constante PZP;

sumatora;

registru suplimentar (registru B);

baterie (ACC);

registrul va deveni un program (PSW).

Registru baterie și registru de economisire a timpului- registre de opt biți, menite să capteze și să salveze operanzi pentru ora de execuție a operațiunilor asupra acestora. Aceste registre nu sunt accesibile programatic.

ROM constant va asigura generarea unui cod corectat în timpul transmiterii datelor sub a zecea, un cod masca în timpul operațiunilor pe biți și un cod constant.

Sumator paralel de opt biți este o schemă de tip combinațional cu transfer ulterior, concepută pentru calculul operațiilor aritmetice de adunare, adunare și operații logice de adunare, înmulțire, ambiguitate și identitate.

Registrul B- un registru de opt biți, care se modifică în timpul operației de înmulțire. Pentru alte instrucțiuni, poate fi considerat un registru operațional suplimentar.

Baterie- un registru de opt cifre pentru primirea si salvarea rezultatului obtinut in timpul executarii operatiilor sau operatiilor aritmetico-logice.

Bloc de interfață serială (SIP) scopuri de organizare a intrărilor - afișarea fluxurilor ulterioare de informații și organizarea unui sistem de întrerupere a programelor. Blocul de depozitare include:

tampon PIP;

logica keruvannya;

registru de control;

tampon de transmisie;

tampon primar;

acceptor port serial;

întreruperea registrului prioritar;

se permite întreruperea registrului;

Se întrerupe logica procesării însemnelor și schema vibrației vectoriale.

Contor de comenzi (Contor de programe) Scopuri pentru formarea unei adrese filetate de 16 biți a memoriei interne de program și a unei adrese de 8/16 biți a memoriei externe de program. Depozitul de stocare a comenzilor include un buffer PC de 16 biți, un registru PC și o schemă de incrementare (mărește cu 1).

memorie de date (RAM) Proiectat pentru salvarea din timp la oră a informațiilor care sunt colectate în timpul procesului de instalare a programului.

Porti P0, P1, P2, P3 Are porturi de intrare-ieșire cvasi-bidirecționale pentru a asigura schimbul de informații OEOM cu dispozitive externe, creând 32 de linii de intrare-ieșire.

Înregistrarea va deveni un program (PSW) Scopuri pentru salvarea informațiilor despre instalația LSA în timpul instalării programului.

Memoria programului (EPROM) Proiectat pentru salvarea de programe și dispozitive de memorie permanentă (ROM). Unele microcircuite au măști stagnante care pot fi șterse prin expunere la ultraviolete sau FLASH ROM.

Registrul de afișare a datelor (DPTR) scopul pentru stocarea adresei de 16 biți a memoriei de date externe.

Indicator de stivă (SP) Este un registru de opt biți folosit pentru a organiza o zonă specială de memorie de date (stivă), în care puteți salva rapid orice cantitate de memorie.

1.3 Scopul componentelor microcontrolerului 8051(Fig. 1.2)

· U ss - potenţialul drotu-ului subteran („pământ”);

· U cc - tensiunea principală de alimentare +5 V;

· X1, X2 – conectori pentru conectarea unui rezonator de cuarț;

· RST - intrarea microcontrolerului;

· PSEN - a permis ca memoria externă a programului să fie vizibilă numai atunci când este actualizată la noul ROM;

· ALE – stroboscopul adresei memoriei externe;

· EA - activarea memoriei interne a programului; Nivelul 0 la care intrarea determină microcontrolerul să termine programul numai de la PZP extern; Ignorarea interiorului (cum rămâne);

Mic 1.2. Atribuirea pinii 8051.

· P1 - port de intrare/ieșire cvasi-bidirecțional de opt biți, fiecare port poate fi programat atât pentru intrarea cât și pentru ieșire de informații, independent de alte categorii;

· P2 este un port cvasi-bidirecțional de opt biți, similar cu P1, ai cărui pini sunt utilizați pentru a afișa informații despre adrese atunci când programul sau datele sunt descărcate în memoria externă (deoarece se folosește adresarea pe 16 biți). rămânerea). În plus, pinii portului sunt selectați atunci când sunt programați pentru a introduce adrese de ordin înalt în microcontroler;

· РЗ - port cvasi-bidirecțional de opt biți, similar cu P1, ai cărui pini pot fi echipați cu o serie de funcții alternative, cum ar fi cele utilizate în funcționarea temporizatoarelor, portul serial de intrare-ieșire, controlerul de întrerupere , și tributuri de memorie de program extern;

· P0 - multiplexarea portului bidirecțional de opt biți pentru intrare-ieșire a informațiilor, prin acest port octetul mic al adresei și al datelor este scos în momente diferite.

Organizarea memoriei

Întreaga serie MCS-51 folosește arhitectura Harvard pentru a oferi programe adresabile și memorie de date. Structura memoriei este prezentată în Fig. 1.3.

Cantitatea de memorie internă (rezidentă) de program (ROM, EPROM sau OTP ROM) care este stocată pe cristal poate fi setată la 0 (fără ROM), 4K (cristal de bază), 8K, 16K sau 32K în funcție de tipul de microcircuit. Pentru consum, puteți extinde memoria de program a PZP-ului extern instalat. Accesul la PZP intern sau extern este atribuit valorilor semnalului de pe ieșirea EA (Acces extern):

EA = V cc (tensiune de viață) - acces la PZP intern;

EA = V ss (potențial de masă) – acces la ROM extern.

Pentru cristalele fără PZP (fără ROM), conexiunile EA trebuie să fie conectate permanent la V ss.

Mic 1.3. Organizarea memoriei familiei MCS-51

Strobe pentru citirea PZP-ului extern - (Program Store Enable) este generat atunci când programul este descărcat în memoria externă și este inactiv în timpul descărcării în PZP care se află pe cip. Zona adreselor inferioare de memorie a programului este întreruptă de sistem. Arhitectura cipului de bază 8051 acceptă cinci funcții:

· întrerupe două exterioare;

· întrerupeți cronometrele de două ori;

· Întreruperea portului serial.

În fig. Figura 1.4 prezintă o hartă a zonei inferioare a memoriei programului.

Mic 1.4. Harta zonei inferioare a memoriei programului

Memorie program (PPM)

În microcontrolerele din familia 8051, memoria de program și memoria de date sunt dispozitive independente și independente, adresate prin diferite comenzi și semnale care sunt controlate.

Volumul memoriei de programe stocate pe cipul microcontrolerului 8051 este de până la 4 KB (în familie până la 32). Când programele vor fi intermitente într-o memorie nouă, toate microcontrolerele din familia 8051 vor folosi întotdeauna o adresă de 16 biți, care va oferi acces la până la 64 KB de ROM. Microcontrolerul trece la memoria programului la ora citirii codului de operare și operanzilor (procesorul de comandă al PC-ului) și trimite comenzile pentru a copia octetul din memoria programului în baterie. La utilizarea acestor comenzi, copierea datelor este adresată în mijlocul memoriei programului din care vor fi citite datele, poate interacționa cu controlerul de date al PC-ului și registrul special de date dublu octet DPTR.

Memoria tributurilor (MP)

Volumul memoriei de date stocate pe cip este de 128 de octeți. Volumul memoriei externe de date poate ajunge până la 64 KB. Primii 32 de octeți sunt organizați în patru bănci de registre de importanță primară, care sunt desemnate banca 0 - banca 3. Fiecare dintre ele este format din opt registre R0-R7. În orice moment, programul are o singură bancă de registre disponibile în timpul adresei de registre, numărul cărora se află în al treilea și al patrulea biți ai cuvântului va deveni programul PSW.

Adresele zonei de memorie de biți a microcontrolerului 8051

Tabelul 1.1

Adrese de octeți (hexadecimale) Adresele bătăliilor pe rânduri
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

Spațiul de adrese, care se pierde, poate fi configurat de dezvoltator la discreția sa: poate găzdui zone de stivă, sistem și date personale. Rechemarea memoriei acestor date se poate face în două moduri. Prima metodă este adresarea directă la mijlocul memoriei. Ce tip de adresă din mijloc este operandul comenzii de intrare. O altă metodă este adresarea indirectă a registrelor indicatoare suplimentare R0 sau R1: înainte de ieșirea comenzii externe, adresele din mijloc pot fi introduse într-una dintre ele până când este necesară deschiderea lor.

Pentru a transfera date în memoria externă, este necesară adresarea indirectă pentru registrele suplimentare R0 și R1 sau registrul indicator de 16 biți DPTR.

O parte a memoriei de date este zona de biți, în ea există capacitatea de a aborda descărcarea de piele a memoriei de mijloc folosind comenzi speciale de biți. Adresele biților adresați direct pot fi, de asemenea, înregistrate în același mod (AddressByte). (Descărcare). Relevanța acestor două metode de adresare poate fi văzută în tabel. 1.1.

Intel este fondatorul arhitecturii familiei MCS-51, care își ia numele de la primul reprezentant al acestei familii - microcontrolerul 8051, lansat în 1980 pe baza tehnologiei n-MOS. În plus, un set de dispozitive periferice, posibilitatea unei alegeri flexibile a memoriei de programe externe și interne și un preț rezonabil au asigurat succesul acestui microcontroler pe piață. Din punct de vedere al tehnologiei, unitățile de microcontroler 8051 pentru timpul său este un dispozitiv foarte pliabil - au fost 128 de mii în cristal. tranzistori, care a fost de 4 ori mai mare decât numărul de tranzistori din microprocesorul pe 16 biți 8086. Funcțiile microcontrolerului sunt pierdute în nucleul familiei MCS-51 și 100% fiecare.

Elementele principale ale arhitecturii de bază a familiei (arhitectura microcontrollerului 8051) sunt:

ALU pe 8 biți;

4 banci de registre, cate 8 pentru fiecare;

Memoria programului intern (rezident) este de 4 KB, de tip ROM sau EPROM (8751);

Memorie de date internă (rezidentă) 128 octeți;

21 registre cu funcții speciale;

procesor boolean;

Două temporizatoare/dezactivatoare pe 16 biți;

Controler de port serial (UART);

Controlorul de prelucrare se amestecă între două niveluri de priorități;

Există porturi I/O pe 8 biți, dintre care două sunt folosite ca magistrală de adrese/date pentru accesarea programelor externe și a memoriei de date;

Generator de ceas Vbudovany.

Apoi a fost lansat microcontrolerul 8052, care a crescut cantitatea de memorie rezidentă a programului și a datelor, a introdus un al treilea temporizator și un controler de întrerupere extins.

p align="justify"> Următorul pas în dezvoltarea MCS-51 este transferul tehnologiei de fabricație către CMOS (modificare 8xC51). Acest lucru a făcut posibilă implementarea modurilor Idl (idle) și Power Down (consum redus de energie), care au asigurat o scădere bruscă a consumului de energie al cristalului și au deschis calea pentru ca microcontrolerul să se blocheze în accesorii epuizate de energie, pt. de exemplu, în dispozitivele autonome cu o durată de viață a bateriei m.

Ultima etapă importantă în dezvoltarea lui MK 8051 de către Intel a fost lansarea microcontrolerelor 8xC51FA/FB/FC și 8xC51RA/RB/RC, care sunt adesea denumite 8xC51Fx și 8xC51Rx. Caracteristica principală a acestui grup de cristale este prezența unui cronometru/vindecător special (RSA). În plus, microcontrolerele 8xC51Rx pot seta suplimentar un timer watchdog (WDT). Să aruncăm o privire asupra arhitecturii și capabilităților funcționale ale raportului PCA.

Depozitul RSA include:

temporizator/lichidator pe 16 biți;

Cinci module de eșantionare și aliniere pe 16 biți sunt conectate la propria linie la portul de intrare/ieșire al microcontrolerului.

Temporizatorul/curerul deservește toate cele cinci module de eșantionare și numărul care poate fi programat pentru una dintre următoarele funcții:

Eșantionarea pe 16 biți a valorii temporizatorului după marginea pozitivă a semnalului extern;

Eșantionarea pe 16 biți a valorii temporizatorului după marginea negativă a semnalului extern;

Eșantionarea pe 16 biți a valorii temporizatorului în spatele oricărei margini a semnalului extern;

Temporizator programabil pe 16 biți;

Dispozitive suedeze pe 16 biți;

PWM pe 8 biți.

Toate funcțiile revizuite sunt disponibile de la PCA la nivel hardware și nu implică procesorul central. Acest lucru vă permite să creșteți debitul de procesare, să îmbunătățiți acuratețea procesării și procesării semnalului și să reduceți timpul de răspuns al microcontrolerului la intrările externe, ceea ce este deosebit de important pentru sistemele în timp real. Au apărut implementări ale 8xC51Fx (8xC51Rx) RSA.

Programare

Max. frecvență (MHz)

ROM/EPROM (octet)

medicii

Să remarcăm că arhitectura acestor microcontrolere a devenit un standard industrial, iar PCA în sine a fost implementat pe scară largă în diferite modificări ale MK 8051.

Caracteristicile unui număr de microcontrolere MCS-51 fabricate de Intel sunt enumerate în Tabelul 1.1.

Inițial, cele mai „colegiale” părți ale arhitecturii MCS-51 au fost ALU-uri bazate pe baterie de 8 biți și un număr semnificativ mai mare de comenzi (pentru cele mai avansate comenzi, erau necesare 12 relee).

Tabelul 1.1

introducere/introducere

ADC, intrare x descărcare

periferie,

particularitate

Animal de companie. (ÎN)

Opțiune de joasă tensiune

4 nivele IRQ, ceas out

4 nivele IRQ, ceas out

Versiunea de joasă tensiune 8xC51Fx

4 nivele IRQ, ceas out

4 nivele IRQ, ceas out

4 nivele IRQ, ceas out

cicluri ale frecvenței de ceas (frecvența de sincronizare MK). Acest lucru a separat familia de microcontrolere de suplimente care generează coduri avansate de viteză și calcule complexe (16 și 32 de biți). Accentul principal a fost modernizarea fundamentală a arhitecturii MCS-51. Problema modernizării a fost complicată de faptul că, înainte de începutul anilor 90, se crease deja multă implementare în software-ul și hardware-ul familiei MCS-51, cu care una dintre principalele sarcini de proiectare a unei noi arhitecturi era o realitate.valoarea hardware-ului și software-ului cu capabilități bazate pe MCS -51.

Pentru a finaliza sarcina atribuită, a fost creat un grup comun cu fasciști de la Intel și Philips, iar ulterior cele două companii au fuzionat. Drept urmare, în 1995, au apărut două familii distincte: MCS-251/151 de la Intel și MCS-51XA de la Philips (diviziunea 1.2).

Principalele caracteristici ale arhitecturii MCS-251:

Spațiu de adrese liniar de 24 de biți, care asigură adresarea până la 16 MB de memorie;

O arhitectură de registry care permite accesul la registre, precum și la octeți, șiruri și șiruri subordonate;

Mod de adresare side-by-side pentru preluarea mai rapidă a comenzilor din memoria externă a programului;

Instructiuni Cherga;

Extensii de set de instrucțiuni pentru a include operații aritmetice și logice pe 16 biți;

Extinderea spațiului de adrese al stivei (până la 64 KB);

Victoria celei mai populare echipe în 2 măsuri.

Sistemul de comandă MCS-251 include două seturi de instrucțiuni - primul set este o copie a sistemului de comandă MCS-51, iar celălalt constă în instrucțiuni extinse pentru a implementa avantajele arhitecturii MCS-251. Înainte de a instala microcontrolerul, acesta trebuie ajustat. Cu ajutorul programatorului, „ardeți” biții de configurare, care indică ce set de instrucțiuni va deveni activ după pornirea vieții. Dacă instalați primul set de instrucțiuni, atunci în ce tip de MK din familia MCS-251 va fi comparat cu MCS-51 sau egal cu codul dublu. Acest mod se numește modul binar. Dacă instalați mai întâi un set de instrucțiuni extinse (Mod sursă), inclusiv programe scrise pentru MCS-51, puteți efectua recompilări între procese pentru MCS-251. Modul sursă vă permite să utilizați arhitectura MCS-251 cu eficiență maximă și să obțineți codul de cea mai mare viteză.

Pentru clienții care doresc să instaleze microcontrolere MCS-251 ca înlocuitor mecanic pentru MCS-51, Intel produce microcontrolere MCS-151, deja programate în modul binar.

Caracteristicile unui număr de microcontrolere MCS-251/151 sunt enumerate în Tabelul 1.1.

Nini Intel, direct pe piața procesoarelor Pentium, arde producția de cristale MCS-51. În general, pentru un anumit comerciant cu amănuntul, acest lucru poate fi pierdut și de neobservat, deoarece nu sunt aceleași microcontrolere 8xC51GB și 80C152Jx, deoarece nu au analogii lor exacti printre dispozitivele altor companii. Până la decizia microcontrolerelor din familia MCS-51, toate au fost distribuite pe scară largă de alte companii.

Ministerul Educației Externe și Profesionale al Federației Ruse Universitatea Tehnică de Stat Novosibirsk V.M. Veprik, V.A. Afanasiev, A.I. Druzhinin, A.A. Zemskov, A.R. Isaev, O.V. Malyavko MICROCONTROLLER FAMILY MCS-51 Manual de început cu privire la cursurile „Sisteme cu microprocesoare” și „Proiectarea sistemelor cu microprocesoare” pentru studenții seniori ai Facultății de Automatizare și Tehnologie Computațională a tuturor formelor de învățare Novosibirsk 199 7 V.M. Veprik, V.A. Afanasiev, A.I. Druzhinin, A.A. Zemskov, A.R. Isaev, O.V. Cel mic. Microcontrolere din familia MCS-51: Ghid de bază. - Novosibirsk. Dorim să vă prezentăm o descriere detaliată a arhitecturii, capabilităților funcționale și sistemelor de comandă ale familiei de microcontrolere cu un singur cip (Embedded Microcontrollers) MCS-51, fabricate de INTEL. Cealaltă parte a manualului conține o descriere a controlerului inițial cu microprocesor UMPC-51, atribuit studenților ca obiect de investigație la sfârșitul ciclului de robot de laborator. Materialul din ghid poate fi folosit pentru cursuri și proiecte de diplomă și poate fi util și pentru inginerii de circuite care sunt implicați în dezvoltarea și operarea echipamentelor electronice. Autorii recunosc responsabilitatea profundă a ATZT „Noile tehnologii” - distribuitorul oficial al INTEL pentru furnizarea de materiale bazate pe rezultatele acestei lucrări. Tabelul 15, figura 25, lista de ani. 12 titluri Revizor: O.D. Baran, G.G. Matușkin. Lucrarea a fost pregătită la Departamentul de Tehnologie Computațională, Universitatea Tehnică de Stat din Novosibirsk 2 ENTRY. Familia MCS-51 de microcontrolere cu un singur cip pe 8 biți a apărut pe piața de iluminat la începutul anilor 1980. Primele modificări ale cristalelor (aproximativ 7) s-au bazat pe tehnologia high-moss n-MOS (HMOS) și au fost completă din punct de vedere funcțional cu arhitectura microEOM Harvard cu un singur cip, unul dintre principiile de bază ale căreia se află în zonele de adrese separate logice ale memoriei programului. și date. Odată cu dezvoltarea tehnologiei de supraalimentare, versiunile mai noi ale microcircuitelor MCS-51 au început să fie fabricate folosind o tehnologie CMOS (CHMOS) mai aprofundată și de putere redusă (în modul de sincronizare activă a cipului, curentul a fost crescut la 10-50 mA). Sistemul de comandă MCS-51, orientat spre implementarea diverșilor algoritmi de control digital, păstrând în același timp asemănarea generală cu sistemul de comandă al familiei anterioare MCS-48, s-a extins în mod clar, introducând noi principii n: operații orientate pe biți și câmpuri de biți care sunt adresate memoriei de date. a făcut posibil să vorbim despre implementarea unui procesor de biți pe un cip; au fost implementate o serie de comenzi de multiplicare, ceea ce înseamnă că acestea sunt în curs de actualizare; robotul a fost îmbunătățit cu o stivă; Grupul de comenzi de transfer de control a fost extins; Sistemul de comandă a început să pară simetric, astfel încât să fie mai puțin învechit din cauza transmiterii datelor prin baterie. Capacitățile funcționale ale noilor dispozitive periferice s-au extins, de asemenea, prin adăugarea a două temporizatoare pe 16 biți; port serial duplex hardware; iriga sistemul de curte; patru porturi I/O pe 8 biți. p align="justify">Principiile schimbărilor în structura ciclului oră-timp al procesorului au dus la o lucru mai rapid din memoria externă a programelor și datelor, precum și la reacții la întreruperi externe și interne. Dimensiunea totală a spațiului de adrese al memoriei externe a programului și a datelor a crescut la 128 KB. Registrele pe 16 biți ale Program Counter și Data Pointer au permis extinderea rapidă a adreselor în orice interval, ceea ce a oferit dezvoltatorilor posibilitatea de a implementa algoritmi pentru procesarea rapidă a seturilor mari de date. Toate nodurile accesibile prin software ale microcontrolerului au fost stocate într-o zonă specială de memorie de date (Registrul de funcții speciale), ceea ce a făcut posibilă accesarea lor în același mod ca și părțile primare ale RAM rezidentă. În modificările ulterioare ale cristalelor, au fost aduse îmbunătățiri pentru a crește capacitățile funcționale suplimentare, salvând în același timp complexitatea software-ului nou față de versiunile anterioare. Caracteristicile modificărilor rămase ale microcontrolerelor din familia MCS-51 includ: design complet static; versiuni de 3 și 5 volți ale cristalelor; o gamă largă de dispozitive periferice disponibile; frecvența maximă de ceas – 24 MHz; pentru anumite grupe de cristale – 33 MHz. În prezent, în depozitul MCS-51 există aproape 60 de versiuni de cristale, în plus, documentația oficială este disponibilă (din păcate, există încă puțină traducere a limbii ruse). Pentru a pregăti suportul matematic pentru microcontrolerele MCS-51, folosim în principal limbajele „ASM-51”, „C”, pentru care există o serie de compilatoare care s-au dovedit bine, biblioteci de subprograme standard și emulatori software pe care le-am sunt în curs de dezvoltare Există diverse companii străine și interne. 3 Indiferent de „vechimea” suficientă a familiei (peste 15 ani) și de apariția pe piața de iluminat în ultimii ani a microcontrolerelor cu un singur cip cu o productivitate mai mare și arhitectură foarte sofisticată - MCS-51, MCS-251, MCS-96, controlerele M CS-51 vor continua să reziste mult timp Vykoristovyvayutsya la vârsta sistemelor de management simple. 4 1. SISTEM SEMNIFICAȚII COMPONENTE ALE COMPANIEI INTEL ȘI DEPOZITUL FUNCȚIONAL AL ​​FAMILIEI MCS-51 Pentru marcarea microcircuitelor de către INTEL, un sistem este configurat în mai multe câmpuri: 1 2 3 4 Х ХХ Х Х ХХ Х Х Х Х Х Х Х ХХ Х Х Х ХХ Х Х Х ХХ Х Х Х ХХ Х Х Х ХХ Х Х Х ХХ Х Х Х ХХ Х Х Х ХХ Х Х Х ХХ Х Х Х Х XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX motiv) , auto pentru o gamă extinsă de temperatură (-40/+125 C) M (militar), conform standardelor militare (-55/+125 C) Q sau C (comercial), interval de temperatură „comercial” (0/+70 C) cu (160 8) ani antrenament termic dinamic; L sau E (Extins), interval de temperatură „extins” (-40/+85 C) cu (160 8) - antrenament termic dinamic de un an; T (Extins), interval de temperatură „extins” (-40/85 C) fără antrenament termic; I (Industrial), victorios pentru standardele industriale. Într-un alt câmp, plasați un prefix de una sau două cifre, care indică tipul de ambalare al microcircuitului (Tipul pachet). Există zeci de tipuri diferite de pachete de microcircuite astăzi, așa că putem indica doar câteva dintre ele: A Ceramic Pin Grid Array, (PGA); C Pachet Ceramic Dual In-Line (CDIP); K Ceramic Quad Flatpack Package (QFP); Pachet KD Plastic Quad Flatpack, cu pas fin, matriță, (PQFP); Pachet KU Plastic Quad Flatpack, pitch fin, die Up, (PQFP); N suport de așchii cu plumb din plastic, (PLCC); P Pachet dublu în linie din plastic (PDIP); Modul de memorie SM Single In-Line Leadless, (SIMM); Pachet dublu în linie din plastic U, înmuiere de contracție, (PDIPS); Z Zigzag In-Line Package (ZIP). Al treilea câmp poate conține până la 15 caractere numerice și alfabetice, care indică tipul de dispozitiv specific construit pe cip. Al patrulea câmp poate include până la șase caractere numerice și alfabetice pentru a reprezenta diferite caracteristici și opțiuni de configurare ale microcircuitelor. Informații suplimentare despre tipurile de carcase și designul acestora pot fi găsite în cartea: Numărul de comandă de ambalare 240800. Există descrieri ale microcontrolerelor din familia MCS-51, primul caracter al celui de-al treilea câmp este tradițional (pentru Intel) nuє "8 ". Un alt simbol al celui de-al treilea câmp indică tipul de PZP introdus: 0 program PZP masca; cristal fără PZP (pentru versiunile ulterioare de cristale); 1 masca program PZP (Cod ROM Standard, Firmware); 3 masca PZP (pentru versiunile ulterioare de cristale), (Cod ROM personalizabil); 7 UFRZU sau PZP programat o singură dată (EPROM sau OTP ROM); 8 EEPROM (Flash - on-chip memory) Poate exista și o literă care indică caracteristicile tehnologice ale producției: prezența literei este tehnologie HMOS, viață de 5V; Tehnologie CHMOS, viață 5V; Tehnologia L CHMOS, viata 3B; 5 Simbolurile principale ale celui de-al treilea câmp pentru microcontrolere din familia MCS-51 includ numere (de exemplu, 31,32,51,54,58,152) și până la patru litere care reprezintă caracteristicile funcționale ale cristalelor (de exemplu, PPP). , specificul grupului de cristale, vizibilitatea sistemului Pentru a proteja memoria programului de accesul neautorizat, este posibil să se utilizeze un algoritm de programare amănunțit „Quick Pulse” etc.). În documentația tehnică originală de la Intel, toate microcontrolerele din familia MCS-51 sunt aranjate în grupuri („Linia de produse”), fiecare unită în funcție de capacitățile lor funcționale și parametrii electrici ai versiunilor ii cristale. Fragmentele denumirilor de microcircuite dintr-un grup sunt separate nesemnificativ, apoi pentru a desemna grupul de marginea pielii, se creează un simbol fix, creat din marcarea unor microcircuite specifice, prin înlocuirea simbolurilor, care este tăiată baby, pe „X ". Astfel, puteți vedea astfel de grupuri de microcontrolere. 1. Grupa 8X5X (linia de produse 8051 și linia de produse 8052): 8031AN, 8051AN, 8751N, 8051ANR, 8751N-8, 8751VN, 8032AN, 8052AN, 8752V. 2. Grupa 8ХС51 (linie de produse 80С51): 80С31ВН, 80С51ВН, 87С51. 3. Grupa 8ХС5Х (8ХС52/54/58 Linie de produse): 80С32, 80С52, 87С52, 80С54, 87С54, 80С58, 87С58. 4. Grupa 8ХС51FX (linie de produse 8XC51FA/FB/FC): 80C51FA, 83C51FA, 87C51FA, 83C51FB, 87C51FB, 83C51FC, 87C51FC. 5. Grupa 8ХL5X (linie de produse 8XL52/54/58): 80L52, 87L52, 80L54, 87L54, 80L58, 87L58. 6. Grup 8XL51FX (linie de produse 8XL51FA/FB/FC): 80L51FA, 83L51FA, 87L51FA, 83L51FB, 87L51FB, 83L51FC, 87L51FC. 7. Grupa 8ХС51RX (linie de produse 8XC51RA/RB/RC): 80C51RA, 83C51RA, 87C51RA, 83C51RB, 87C51RB, 83C51RC, 87C51RC. 8. Grupa 8ХC51GB (linie de produse 8XC51GX): 80C51GB, 83C51GB, 87C51GB. 9. Grupa 8ХС152JX (linie de produse 8XC152): 80C152JA, 83C152JA, 80C152JB, 80C152JC, 83C152JC, 80C152JD. 10. Grupa 8XC51SL (linie de produse 8XC51SL): 80C51SL-BG, 81C51SL-BG, 83C51SL-BG, 80C51-AH, 81C51SL-AH, 83C51SL-AH, 85C5 83C51SL-51SL, 83C51SL-51SL Primul grup de microcontrolere include modele mai tinere ale familiei, bazate pe tehnologia n-MOS și nu este recomandată decât mai târziu în noile dezvoltări; toate celelalte grupuri se bazează pe tehnologia actuală CMOS. Microcircuite ale altui, al treilea și al patrulea grup sunt astăzi reprezentanți clasici ai familiei MCS-51. Acest grup include versiuni de 3 volți ale cristalelor (Low-Voltage). Cristalele acestui grup sunt echipate cu RAM extinsă, care este de până la 512 octeți. Microcircuitele din grupele a opta, a noua și a zecea sunt specializate pentru microcontrolere (Application Specific). O mulțime de programe actuale folosesc microcontrolere foarte productive, cum ar fi capabilități avansate de adresare, arhitectură de registry, o cantitate mare de RAM și stivă internă și, de asemenea, sprijină eficient programarea de nivel înalt. Aceste microcontrolere includ microcontrolere New Architecture din familiile MCS-5 și MCS-251, pe care Intel a început producția în 1995. Funcționalitatea și caracteristicile cheie ale microcontrolerului MCS-51/MCS-251 sunt furnizate în supliment. 6 2. PRINCIPALELE CARACTERISTICI ALE MODELULUI DE BAZĂ AL FAMILIEI DE MICROCONTROLLER MCS-51. Modelul de bază al familiei de microcontrolere MCS-51 și baza pentru toate modificările viitoare este microcontrolerul I-8051. Principalele sale caracteristici: CPU pe opt biți, optimizat pentru implementarea funcțiilor de control; generator de ceas de intrare; spațiu de memorie program adresabil – 64 K; spatiu de memorie de date adresa – 64 K; memorie internă program – 4 K; memorie internă de date – 128 octeți; capabilități suplimentare pentru executarea operațiilor în algebră booleană (operații pe biți); 32 bidirecționale și individual adresate liniei de intrare/ieșire; 2 temporizatoare/dozatoare bogat funcționale de șaisprezece biți; primer asincron full-duplex; Sistemul vectorial este intercalat cu două niveluri de prioritate și șase unități de putere. Schema bloc a lui I-8051 este prezentată în Fig. 1, identificarea microcircuitelor este prezentată în Fig. 2. 128 octeţi T/C 0 contor 4K ROM control RAM T/C 1 intrări CPU BUS 4 I/O Serial OSC control Porturi Port P0 P1 P2 P3 T D R D Adresă/Date Fig.1. Diagrama bloc a I-8051 Întreaga serie MCS-51 folosește arhitectura Harvard pentru a extinde spațiul de adrese de memorie al programelor și datelor. Organizarea memoriei este prezentată în Fig. 3. Cantitatea de memorie internă (rezidentă) de program (ROM, EPROM sau OTP ROM) care este stocată pe cristal poate fi setată la 0 (fără ROM), 4K (cristal de bază), 8K, 16K sau 32K în funcție de tipul de microcircuit. Pentru consum, puteți extinde memoria de program a PZP-ului extern instalat. Accesul la PZP intern sau extern este atribuit valorilor semnalului de pe ieșirea EA (Acces extern): EA = Vcc (tensiune de viață) – acces la PZP intern; EA = Vss (potențial de masă) – acces la ROM extern. Pentru cristalele fără upgrade EA PZP (fără ROM), pot exista conexiuni permanente la Vss. Strobe pentru citirea PZP-ului extern - PS EN (Program Store Enable) este generat atunci când programul este descărcat în memoria externă și este inactiv în timpul descărcării în PZP care se află pe cip. 7 Zona adresei inferioare a memoriei programului este învingătoare de sistemul de întrerupere, arhitectura microcircuitelor 8051 oferă suport pentru cinci dispozitive de întrerupere: două întreruperi externe; Schimbați două tipuri de cronometre; Întreruperea la portul serial. 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. Atribuții de memorie I-8051 Memorie program (Citire) Memorie de date (Citire/Scriere) FFFFH ROM externă FFFFH Memorie externă @DPTR RD Date PSEN WR @PC MOVC EA=0 Memoria internă @Date DPTR @PC Extern FFH intern 1 PZP 80H EA =0 0000H EA=1 inferior 128 00H 0000H PSEN Fig.3. Organizarea memoriei familiei MCS-51 8 Figura 4 prezintă o hartă a zonei inferioare a memoriei programului. ROM Memorie program 0033Н 002БН Port serial 0023Н Vector Timer1 001BN întrerupere EINT1 0013Н Timer0 000BH EINT0 0003Н Adresa de start 0000H (Reset) Fig.4. Memoria programului Adresele vectorilor sunt întrerupte la intervale de 8 octeți: - 0003Н întrerupere externă 0 (Întrerupere externă 0) - nou IN T 0; - 000BN override timer 0 (semnal de override timer - T F 0); - 0013Н întrerupere externă 1 (Interrupție externă 1) - conexiune IN T 1; - 001BH override timer 1 (semnal de override timer - T F 1); - 0023H întrerupere la portul serial (Serial Interrupt = Receive Interrupt sau Transmit Interrupt); Și așa mai departe. Memoria de date este combinată cu memoria programului. Această găluzie poate adresa 64K de OZP extern. Când datele sunt descărcate în memoria externă, CPU-ul microcontrolerului generează semnale de citire (RD) și scriere (WR), interacționând cu memoria internă de date la nivel de comandă, prin care semnalele RD și WR nu vibrează. Memoria de program externă și memoria de date externă pot fi combinate prin conectarea semnalelor R D și S EN la un circuit „I logic” pentru a elimina memoria stroboscopică externă (program/date). Cei 128 de octeți inferiori ai memoriei interne de date (inferioare 128) sunt prezenți pe toate cristalele MCS-51 și sunt prezentate în Fig. 5. Primii 32 de octeți sunt 4 bănci (Register Bank) a câte 8 registre fiecare (R7...R0). Registrele R0 și R1 din orice bancă pot fi considerate ca registre de adrese indirecte. Pașii din spatele băncilor de registry de 16 octeți creează un bloc de spațiu adresat de biți. Setul de instrucțiuni MCS-51 permite o gamă largă de operații pe biți, iar cei 128 de biți din acest bloc sunt adresați direct și variază de la 00H la 7FH. Toți octeții din jumătatea inferioară de 128 de octeți a memoriei pot fi adresați fie direct, fie indirect. Jumătatea superioară de 128 de octeți a memoriei RAM (superioară 128) din microcircuitul I-8051 este zilnică și, de asemenea, în versiunile de cristale cu 256 de octeți de RAM. În acest caz, zona „Upper 128” nu mai este disponibilă pentru adresare indirectă. Zona SFR (Registrul Funcțiilor Speciale) este accesibilă doar prin adresare directă. Amplasarea registrelor de funcții speciale în spațiul SFR este prezentată în Fig. 6. Acestea includ registre de porturi, temporizatoare, funcții de control periferic și așa mai departe. 9 7FH Zona RAM adresată pe octeți 30H (directă, indirectă) 2FH 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H 2EH 77H 76H 75H 74H 73H 7H 10 20 H 0EH 0BH0 0BH 0BH0 0BH 0BH00 06H 05H 04H 03H 02H 01H 00H 1FH RB3 18H 17H RB2 10H 0FH RB1 08H 07H SP după RESET 00H RB0(R7+R0) Mic 5. Reduceți 128 de octeți de memorie RAM internă. Adresare pe biți 8 octeți 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 OD TL0 TL1 NTH0 TH1 8FH PSW D7H C8H CFH C0H C7H B8H IP BFH B0H P3 B7H OD TL0 TL1 N /A 3/B 4/C 5/D 6/E 7/F Mic6. Plasarea registrelor funcțiilor speciale în spațiul SFR. Pentru 16 adrese, spațiul SFR are posibilitatea de adresare atât pe octeți, cât și pe biți. Pentru registrele cu adresa de biți, adresele hexazecimale se termină cu „0H” sau „8H”. Adresele de biți din acest câmp pot varia de la 80H la FFH. Întreaga serie de cristale din familia MCS-51 conține un set de bază de SFR, ca în microcircuitul I-8051, atribuite acelorași adrese. Cu toate acestea, cristalele, care reprezintă o dezvoltare ulterioară a familiei în zona SFR, adaugă noi registre de extindere 10

Lumea microcontrolerelor este condusă de Intel cu familiile sale de microcontrolere pe opt biți 8048 și 8051. Arhitectura MCS-51 își ia numele de la primul reprezentant al acestei familii - microcontrolerul 805. 1, lansat în 1980 pe baza tehnologiei HMOS. În plus, un set de dispozitive periferice, posibilitatea unei alegeri flexibile a memoriei de programe externe și interne și un preț rezonabil au asigurat succesul acestui microcontroler pe piață. În ceea ce privește tehnologia, microcontrolerul 8051 a fost pentru vremea sa un dispozitiv foarte pliabil - cristalul avea un vicoristan de 128 de mii. tranzistori, care a fost de 4 ori mai mare decât numărul de tranzistori din microprocesorul pe 16 biți 8086.

Elementele principale ale arhitecturii de bază sunt:
- LSA pe 8 biți bazat pe arhitectura bateriei;
- 4 banci de registre, cate 8 pentru fiecare;
- S-a adăugat memoria de program de 4Kbyte;
- RAM interna 128 bytes;
- Procesor boolean
-2 cronometre pe șaisprezece biți;
- Controler de canal serial (UART);
- operatorul de prelucrare întrerupe între două niveluri de priorități;
- deși există porturi I/O pe 8 biți, dintre care două sunt folosite ca magistrală de adrese/date pentru accesarea programelor externe și a memoriei de date;
- Generator de ceas încorporat.

Acest microcontroler în sine este cel mai bine cunoscut producătorilor și este o metodă populară de instalare în dispozitivele din cea mai largă gamă. Fără emulatori, dezvoltatori și programatori de cipuri 8051, nu există dificultăți în dezvoltarea software-ului.

Să începem cu dezvoltarea MCS-51, cu transferul tehnologiei de producție către CHMOS. Acest lucru a făcut posibilă implementarea modurilor Idle și Power Down, care au permis o reducere drastică a consumului de energie al cristalului și au deschis calea pentru ca microcontrolerul să fie utilizat în programe care consumă energie, de exemplu, în dispozitive autonome cu durata de viata a bateriei.

Ultima etapă importantă a dezvoltării sale direct de către Intel în cadrul arhitecturii pe 8 biți a fost lansarea microcontrolerelor 8xC51FA/FB/FC, care sunt adesea denumite 8xC51FX. Caracteristica principală a acestui grup de cristale este prezența unei serii de vindecători programabili (PCA). Diagrama bloc a PCA este prezentată în Fig. 2.

Depozitul PCA include:

Temporizatorul de tratament deservește toate cele cinci module de prelevare și numărul care poate fi programat pentru una dintre următoarele funcții:

Eșantionarea pe 16 biți a valorii temporizatorului după marginea pozitivă a semnalului extern;
Eșantionarea pe 16 biți a valorii temporizatorului după marginea negativă a semnalului extern;
Eșantionarea pe 16 biți a valorii temporizatorului în spatele oricărei margini a semnalului extern;
Temporizator software pe 16 biți;
dispozitiv HSO pe 16 biți;
PWM pe 8 biți

Toate funcțiile avansate sunt disponibile în PCA la nivel hardware și nu implică procesorul central, ceea ce permite creșterea debitului general al sistemului, creșterea preciziei procesării și procesării semnalului.Aceasta va reduce timpul de răspuns al microcontrolerului la extern. intrări, ceea ce este deosebit de important pentru sistemele în timp real. Implementările PCA 8xC51FX au dezvăluit că arhitectura microcontrolerelor FX a devenit un standard industrial de facto, iar PCA în sine a fost implementat pe scară largă în diferite modificări ale microcontrolerelor de la diverse companii.

Inițial, cele mai „universitare” părți ale arhitecturii MCS-51 erau un ALU de 8 biți bazat pe o baterie și un număr foarte mare de instrucțiuni (pentru cele mai avansate instrucțiuni, sunt necesare 12 perioade de ceas pentru frecvențe). Acest lucru a separat familia de microcontrolere de suplimente care generează coduri avansate de viteză și calcule complexe (16 și 32 de biți). Principiul modernizării arhitecturii vechi a devenit mai important. Problema modernizării a fost complicată de faptul că înainte de începutul anilor 90 se crease deja multă dezvoltare în domeniul software și hardware, iar una dintre sarcinile principale în dezvoltarea noii arhitecturi a fost implementarea hardware-ului. și software.Informații despre dispozitivele vechi bazate pe MCS-51. Pentru a atinge acest obiectiv, a fost creată o echipă comună cu reprezentanți de la Intel și Philips. Drept urmare, în 1995 Au apărut 2 familii distincte: MCS-251/151 de la Intel și 51XA de la Philips (în același timp mai mici).

Principalele caracteristici ale arhitecturii MSC-251:

Spațiu de adrese liniar de 24 de biți, care asigură adresarea până la 16M de memorie(Microcontrolerele din familia MCS-251, care sunt în prezent lansate, au un spațiu de memorie adresabil de 256K);
Sistemul de comandă al microcontrolerelor din familia MCS-251 conține 111 comenzi care sunt incluse înaintea sistemului de comandă al microcontrolerelor din familia MCS-51 (comenzi „vechi”) și, în plus, include 157 de comenzi „noi”. Kodi folosește o serie de comenzi noi în format de 4 octeți.
Înainte de a instala microcontrolerul, acesta trebuie ajustat. Cu ajutorul programatorului, „ardeți” octeții de configurare, care indică ce seturi de instrucțiuni vor deveni active după pornirea vieții. Dacă instalați setul de instrucțiuni MCS-51, atunci MSC-251 va funcționa cu MCS-51 la același nivel ca un cod dublu. Acest mod se numește modul binar. Cu toate acestea, extensiile de comandă în acest mod sunt disponibile și prin „quat” - codul de instrucțiuni de rezervare 0A5h. Desigur, costul fiecărei instrucțiuni extinse crește cu 1 octet. Dacă instalați un set de instrucțiuni extinse de la început, atunci acest set de programe scrise pentru MCS-51 va trebui să fie recompilat la părțile încrucișate pentru MCS-51, deoarece Acum, instrucțiunile standard vor fi disponibile prin același „quadrant” 0A5h și vor crește, de asemenea, cu 1 octet. Acest mod se numește Modul sursă. Permite, cu eficiență maximă, extinderea instrucțiunilor pentru a obține cea mai mare viteză posibilă, dar nu necesită reluare a software-ului.
arhitectura de registry, care permite extragerea de registre, precum și octeți, șiruri și șiruri subordonate;
modul de adresare alăturat pentru preluarea mai rapidă a instrucțiunilor din memoria externă a programului;
instrucțiuni de desen;
extensii de set de instrucțiuni pentru a include instrucțiuni aritmetice și logice pe 16 biți;
extinderea spațiului de adrese al stivei până la 64K;
Explicați cele mai avansate instrucțiuni în 2 pași;
Valoarea este chiar mai mare decât cea a unui cod dublu cu programe pentru MCS-51.

Pentru clienții care doresc să instaleze microcontrolere MCS-251 ca înlocuitor mecanic pentru MCS-51, Intel lansează microcontrolere MCS-251 cu biți de configurare preprogramați sau modul binar. Astfel de microcontrolere au primit indexul MCS-151.

Pe lângă Intel în sine, microcontrolerele MCS-251 sunt produse sub licență de către Temic Semiconductors.

Universal Serial Bus sau USB extinde tehnologia plug-and-play la dispozitivele moderne I/O găsite pe computerele personale de înaltă performanță de astăzi.

Pentru a asigura capacitatea de a conecta o varietate de dispozitive periferice, standardul USB are patru moduri de transmisie: Coruptive, Isochronous, Pulse și transmisie matrice. Fiecare dispozitiv periferic trebuie să accepte un mod diferit de transfer al parametrilor de configurare, comenzilor și informațiilor despre dispozitiv către dispozitiv. Transmisia izocronă asigură acces garantat la magistrală, debit constant și rezistență la erori, acest mod de transmisie putând fi utilizat în dispozitivele de ieșire audio și telefoanele computerizate. Transmisia cu impulsuri este destinata dispozitivelor de intrare precum mouse, joystick sau tastatura, care transmit informatii rar si in portiuni mici, intercalate cu o perioada de intretinere. Transferul masiv permite dispozitivelor precum scanere, faxuri sau camere digitale să transfere cantități mari de date pe un computer personal de îndată ce este conectat un canal de magistrală.

Principalele caracteristici ale produsului

Valoare mare cu „Specificația Universal Serial Bus 1.0”
Transceiver USB Serial Bus Interface Engine (SIE)
Chotiri chergi FIFO pentru transfer
Trei carduri FIFO de 16 octeți
Chotiri chergi FIFO pentru receptie
Trei carduri FIFO de 16 octeți
Un fișier FIFO configurat (până la 1024 de octeți)
Recepție/transmisie automată în format FIFO
Operațiuni de upgrade/upgrade
Trei vectori de întrerupere a magistralei USB
Ciclu de blocare a fazelor
Viteze de transfer de date: 12 Mbit/s și 1,5 Mbit/s
Mod ciclu extins
Spațiu de adrese extern cu o capacitate de 256 KB
Moduri de economisire a energiei: pornire și oprire
Parametri care trebuie solicitați de către koristuvach
Ochіkuvannya în timp real
1 KB de memorie RAM pe cip
Chotiri porti introducere/vivodu
Programarea unei serii de pacienți (PCA)
Microcontroler UART standard (MCS 51).
Temporizator watchdog hardware
Trei cronometre/killere pe 16 biți cu capacități grozave
Înțelegerea setului de comandă al microcontrolerelor din arhitecturile MCS 51 și MCS 251
Arhitectura microcontrolerului MCS 251 se bazează pe registre
Frecventa de operare 6 sau 12 MHz

Controlerul 8x930Hx are caracteristici suplimentare:

mufa USB
Posibilitatea folosirii unui hub USB
Managementul comunicațiilor
Conexiune/deconectare dezvăluită de la dispozitivul de ieșire
Managementul vieții, inclusiv upgrade/actualizare
Detectarea și reînnoirea defecțiunilor anvelopelor
Suport pentru dispozitive de ieșire de mare viteză și viteză mică
Contact de ieșire pentru comunicație prin port
Contact de intrare pentru detectarea supratensiunii

Mai multe moduri diferite de transfer de date USB sunt asigurate de funcționarea fără întreruperi a trei elemente: Gazdă, Hub, Dispozitiv funcțional. Gazda controlează transmiterea informațiilor generale și de bază prin magistrală. Dispozitivele funcționale extind sistemele gazdă. Aceasta include tipuri tipice de lucru cu un computer: intrare de la tastatură sau joystick, afișare pe monitor; precum și tipuri mai complexe de activități, cum ar fi telefonia digitală și transmisia de imagini. Un microcontroler Intel 8x930Ax a fost proiectat pentru a controla dispozitivele funcționale. După cum puteți vedea, hub-urile sunt un punct de expansiune USB, care oferă acces la alte dispozitive funcționale. Microcontrolerul Intel 8x930Hx, care combină funcțiile unui dispozitiv funcțional cu un hub USB, este primul hub USB serial conceput pentru dispozitivele periferice PC actuale.

Hub-urile USB joacă un rol important într-o gamă largă de utilizatori de computere. Odată cu apariția dispozitivelor periferice - tastaturi, monitoare, imprimante și altele - cu hub-uri încorporate, conectarea sau conectarea unui dispozitiv nou este la fel de simplă ca introducerea unei ștecheri într-o priză. Noile niveluri de productivitate și conectivitate USB extinsă ar putea duce la o nouă generație de dispozitive pentru serviciu și programe personale. Zilele de cărți noi, conflicte IRQ și bile de fire încurcate sunt respectate.

Cablul de magistrală USB este format din patru fire: Vbus, D+, D- și GND – ceea ce permite o conexiune mai simplă și mai consistentă. Această metodă include, de asemenea, un singur conector standard pentru conectarea dispozitivelor periferice la magistrala USB. Datele sunt transmise diferit prin cablurile D+ și D-: fie la o viteză mare de 12 Mbit/sec, fie la o viteză mică de 1,5 Mbit/sec. Utilizarea cristalelor este o necesitate pentru lăncile electronice de astăzi. Este necesar să instalați un rezistor terminal vantage pe ambele linii D+ și D-, care este necesar pentru tipul de dispozitiv: de mare viteză și de mică viteză.

O privire asupra familiei
Familia Intel 8x930 este formată din două controlere cu un singur cip.

Controlerul Intel 8x930Ax este un dispozitiv pe 8 biți bazat pe arhitectura microcontrolerului MCS 251 și este proiectat să funcționeze cu dispozitive periferice care sunt conectate la magistrala USB. Pe de altă parte, 8x930Hx utilizează același nucleu de microcontroler MCS 251 plus capacitățile extinse ale hub-ului de bus USB încorporat. Implementarea arhitecturii MCS 251 în ambele controlere de magistrală USB oferă următoarele avantaje:

Productivitate ridicată
Definirea tipurilor mixte de memorie și adresare
Consum redus de energie
Zgomot redus de rubarbă
Suport eficient pentru limbajul de nivel înalt
Extensii la setul de comenzi
Fezabilitate inspirată

În gama de comenzi pentru 8x930Ax, puteți folosi instrucțiuni atât din kit-ul de microcontroler MCS 51, cât și din kit-ul de microcontroler MCS 251. Această abordare economisește investiția clientului în program.De asemenea, subliniază productivitatea maximă din beneficii.

Desktopurile cu microcontrolere 8x930 sunt pline cu diverse caracteristici modelate care le fac să arate mai groase decât doar microcontrolerele. Programed Accelerator Array (PCA) oferă o varietate de suplimente care necesită alinierea și stocarea datelor în timp real, schimbul de date de mare viteză și modularea lățimii impulsului. În plus, stocul controlerului include un port serial extins, trei temporizatoare/dezactivatoare pe 16 biți, un watchdog hardware, porturi de intrare/ieșire de 8 biți, precum și două moduri de economisire a energiei: răcire și oprire.

Controlerele din familia 8x930Ax echipate cu 1 KB de memorie pot fi selectate dintre opțiunile fără memorie persistentă sau cu memorie persistentă de 8 sau 16 KB. Acestea pot adresa până la 256 KB de memorie externă pentru a găzdui comenzi și date și 40 de octeți de registre pentru scopuri generale, care sunt stocați în procesorul central ca fișier de registru. În funcție de combinația selectată, în fișierul de registru pot fi extinse registre de 16 octeți, 16 registre pe dublu octet și 10 registre pe mai mulți octeți.

Controlerele de transfer au o interfață flexibilă cu memorie externă. Pentru a crește la dispozitive cu memorie mare, este posibil să adăugați trei cicluri de curățare și să generați un număr mai mare de cicluri - scalați până la funcția în timp real. Selectarea comenzilor externe poate îmbunătăți productivitatea utilizând un mod suplimentar side-by-side, în care datele sunt transferate la octetul înalt al adresei.

Ambele controlere 8x930 sunt echipate cu mai multe circuite FIFO pentru a suporta dispozitive interne de ieșire: atât circuite de transmisie, cât și circuite de recepție. Mai multe carduri FIFO pentru recepție/transmitere acceptă mai multe dispozitive funcționale finale (de la 0 la 3). Linia 0 este formată din 16 octeți și este destinată transmiterii de informații care controlează. Cardul 1 este inclus în categoria setărilor computerului și are o capacitate de până la 1024 de octeți. Cardurile 2 și 3 constau din 16 octeți fiecare și pot suporta transferul de informații în moduri de transfer în impuls, izocron și matrice. Când este atribuit controlerul 8x930Hx, o pereche de carduri FIFO este utilizată pentru dispozitivele de intrare. Aceste semnale din controlerul 8x930Hx sunt suportate de repetiții suplimentare, care indică retransmiterea fluxurilor de date generate de dispozitivele de ieșire.

O privire asupra arhitecturii
Implementarea de proiectare a USB în microcontrolerele 8x930Ax și 8x930Hx poate fi împărțită în patru blocuri: blocuri FIFO, un bloc de interfață cu dispozitive funcționale, un bloc de interfață cu o magistrală serială și un bloc de recepție-transmisie. Controlerul 8x930Hx conține blocuri cu mai multe linii pentru a îndeplini funcțiile hub-ului: blocați interfața cu hub-ul și repetați.

Circuitele FIFO pentru recepție și transmisie pe ambele controlere sunt în formă de inel. Cardurile acceptă până la două seturi de date adiacente de dimensiuni redimensionabile și creează un registru de curățare de octeți care arată numărul de octeți din seturile de date. Sertarele sunt în proporții, care arată completitatea sau golirea sertarelor și, de asemenea, repetă recepția sau transferul unui set continuu de date. Unitatea de interfață cu dispozitive funcționale (IFU) distribuie transmisia și recepția datelor USB în funcție de tipul de transmisie și devine un card. În plus, blocul IFU urmează etapa tranzacției, care este reprezentată de FIFO și, pe lângă faptul că este întrerupt, informează despre starea curentă a sistemului care controlează procesorul central 8x930.

Blocul de interfață magistrală serială implementează protocolul de transmisie USB: ordonarea secvențială a pachetelor, generarea și recunoașterea semnalelor, generarea și verificarea sumelor de control, codificarea/decodarea datelor folosind metoda NRZI, înlocuirea bit-bit nya, generarea și recunoașterea identificatorului de pachet ( PID).

Integrarea transmisiei-receptorului pe microcontrolere USB cu o interfață simplă, cu o singură lățime, care respectă specificația USB 1.0. Familia de controlere 8x930 are trei interfețe conectate la USB. Semnele sunt generate atunci când pielea pornește cadrul, recepția/transmiterea datelor este finalizată la dispozitivele funcționale finale, în timpul downgradării globale sau actualizării robotului. Pentru hub-ul 8x930Hx, blocul de interfață cu hub-ul este utilizat pentru a conecta conexiunea la porturile de ieșire. Confirmă în mod repetat extinderea semnalelor în porturile USB, care pot fi mărite sau reduse.

Testarea sistemului va începe să fie efectuată la sfârșitul ciclului mașinii de piele la faza S5P2, urmând comenzile RETI și orice comenzi din arhive către registrele IE și IP. Din momentul fixării sursei de alimentare până la întrerupere până la întreruperea serviciului, sunt necesare 38 până la 86 de perioade ale frecvenței fOSC, în funcție de faza alimentării necesare și de numărul de cicluri de mașină ale comenzii, înainte de terminare. a oricărei surse de alimentare necesare.

La implementarea întreruperii hardware, este compilată comanda LCALL addr16, care asigură că doctorul programului este memorat în stiva căii fluxului (rotația adresei memorate) și trece la adresa de start addr16 a procedurii de fir despre baia servitorului. Vă voi ruga să vă rupeți tricotajele cu un șnur de piele

adresa de start (vector de schimb):

Întreruperea externă INT0.

Resetarea temporizatorului/dozatorului TC0.

Întreruperea externă INT1.

Resetarea temporizatorului/dozatorului TC1.

Întreruperea portului serial.

2.7. Metode de adresare și sistemul de comandă al familiei MCS-51

Sistemul de comandă al familiei MCS-51 este orientat spre organizarea intrării și ieșirii integrate a datelor prin porturile universale P0...P3 și procesarea inițială a informațiilor. Se acordă un respect deosebit operațiunilor cu biți și transferului de control asupra valorilor acestora. Comenzile care efectuează astfel de operațiuni formează un grup mare și sunt create simultan folosind același hardware numit „procesor boolean” în depozitul de arhitectură MCS-51.

Sistemul de comandă oferă programului capacitatea de a efectua mai multe operațiuni folosind un nou set de metode de adresare și resurse hardware disponibile de software.

2.7.1. Metode de adresare

Comanda skin informează procesorul despre operația specificată și despre metoda de accesare a operanzilor. Codul de comandă conține un număr de câmpuri care au scopuri funcționale diferite. Cele mai importante câmpuri ale oricărei comenzi sunt codul de operație (OPC), care indică acțiunea comenzii și partea de adresă. Câmpurile părții de adresă conțin informații despre adresele operanzilor și rezultatul operației și, în unele cazuri, informații despre adresa următoarei comenzi.

Adresa indică numărul cardului de memorie în care se află operandul și se numește adresa directă.

Metodele de adresare includ un set de mecanisme de accesare a operanzilor. Unele dintre ele sunt simple, reducând comanda la un format compact și permițând accesul rapid la operand, dar pot limita resursele disponibile. Altele vă permit să operați toate resursele disponibile în sistem, dar comanda este să mergeți la el

Prezentarea și viconny necesită mult timp. Un set de metode de adresare în sistemul de comandă cutanată și compromisuri ale mecanismelor de adresare subiacente dezvoltate de proiectanții de arhitectură, rezultate dintr-un set de sarcini asociate.

Mai jos sunt principalele metode de adresare utilizate de familia de sisteme de comandă MCS-51.

Adresarea implicită. Comanda nu conține nicio declarație explicită despre adresa operandului care va lua parte la operație sau adresa care va conține rezultatul operației, dar aceste adrese sunt respectate. Comenzile se adresează cel mai adesea implicit acumulatorului ca urmare a operațiunii. De exemplu, rezultatul adăugării acumulatorului (A) și a registrului R1 la banca de date curentă prin comanda ADD A, R1 este scris în acumulator, care este implicit adresat. Întreaga comandă specificată ocupă un octet în memorie, în timp ce adresele din afara bateriei (zona 8Eh SFR) ocupă un octet.

Fără adresare de mijloc. În câmpul de adresă există o comandă de răzbunare

Nu adresele operandului trăiesc, ci operandul însuși. Adresarea fără centru este indicată printr-un caracter special # înaintea numărului. De exemplu, cu comanda MOV A,#15h, numărul hexazecimal 15 (un alt octet al comenzii) este introdus în baterie. Sistemul de comenzi fără adresare mijlocie este desemnat ca #date, unde data este un număr

(Date = 00h...FFh).

Adresare directă. Câmpul adresa de comandă arată adresa directă a memoriei de date în care este stocat operandul sau unde este stocat. De exemplu, cu comanda MOV A,15h, în loc de DSEG din mijloc cu adresa 15h, se conectează la baterie. Mijlocul memoriei este adresat direct, iar bateria este adresată implicit. În funcție de locația operandului adresat, adresarea directă este împărțită în registru direct și absolută.

Adresare directă de registru. Câmpul de adresă al comenzii conține o adresă directă către registrul băncii de registre de flux. Fiecare bancă are toate registrele și sunt adresate la adresa directă necesară pe trei biți. Mnemonicii comenzilor au un registru care se adresează valorilor Rn, unde n=0...7. Toate câmpurile de comandă se încadrează într-un octet. Acest tip de adresare se numește scurtă. De exemplu, MOV R4, R1.

Adresare absolută directă Vă permite să navigați în orice zonă de mijloc DSEG și SFR. Adresa directă din acest câmp ocupă un octet, iar comanda ocupă doi octeți. În sistemul de comandă, octetul de adresă directă este desemnat prin cuvântul direct (direct = 00h ... FFh). De exemplu, comanda MOV 80h,R2 (sau MOV P0,R2) atribuie portul P0 (80h mijloc al regiunii SFR) băncii de date în locul registrului R2. Dacă operanzii au adresare absolută directă, comanda devine tribyte (de exemplu, MOV 80h, 15h).

Adresarea indirectă. Câmpul de adresă conține adresa din mijlocul memoriei, care conține adresa directă a operandului. În sistemul de comandă, adresarea indirectă este indicată prin simbolul special @. Eu sunt la putere

Salvați adresa directă a registrului R0 și R1 (@Ri, i = 0,1) a băncii de registre de piele. De exemplu, dacă în locul registrului R1 al băncii de registre curente valoarea este 15h, atunci comanda MOV A, @ R1 intră în aceeași zi cu comanda superioară MOV A, 15h – introduceți memoria centrală DSEG cu adresa 15h în baterie în loc de ulator. Cu toate acestea, comanda MOV A, @ R1 este de un octet și, chiar mai important, este posibilă schimbarea programatică a adresei prin schimbarea registrului R1.

Adresare specifică. Cu adresarea directă, adresele directe sunt formate prin adăugarea adresei de bază la câmpul de adresă al comenzii. În câmpul de adresă de bază, vicor-ul este folosit în locul programului de vindecare, iar câmpul de adresă de comandă conține offset-uri rel de opt biți (relative). Numărul rel este interpretat de comandă ca un semn întreg, reprezentat de codul suplimentar. Intervalul de afisare este (-128...+127). Când numărul rel este setat, urma este turnată astfel încât vindecatorul programului să poată confirma atacul, trimițând comanda. Adresarea portabilă este utilizată pe scară largă în comenzile de transfer de control, ceea ce permite crearea modulelor de program care sunt în mișcare. Comenzile pentru transferul controlului cu adresare portabilă vă permit să organizați alinierea poziției curente a programului de curățare pentru PC pe cealaltă parte (-128...+127) octeți.

În programele mele de asamblare, puteți specifica o etichetă în câmpul de offset care trebuie mutată. Ca urmare a translației, asamblatorul calculează valoarea deplasării, deoarece aceasta nu depășește (-128 ... +127). În caz contrar, veți vedea o notificare despre modificare.

Adresarea de bază reprezintă un alt tip de adresare portabilă. Adresa directă din acest câmp se formează prin adăugarea adresei specificate în comandă, în locul registrului de bază, în care este stocată adresa de bază. Funcția registrului de bază din familia MCS-51 este registrul de date DPTR sau curățătorul de software pentru PC. Acest tip de adresare este util în special atunci când procesează tabele și matrice de date. Pentru comenzile MOVC A,@A+DPTR și MOVC A,@A+PC, adresa directă de 16 biți este formată ca o sumă în locul registrelor DPTR și A sau PC și A.

Partea de adresare. Când pagina de adresare este eliminată, memoria este împărțită într-un număr de pagini de aceeași dimensiune. Adresarea laturilor este afectată de registrul lateral al laturilor, iar adresarea memoriei de mijloc din mijlocul laturii este adresa care se află în comandă. Adresele directe sunt formate prin concatenarea (adăugarea) adreselor laterale și a adreselor din memorie din mijlocul lateralului. Pentru comanda MOVX A, @ Ri, funcția registrului lateral este setată la portul P2 (octetul mare al adresei), iar în locul registrului Ri (octetul de adresă scăzut) este setată la adresa din mijlocul latură. În acest caz, memoria este împărțită în 256 de pagini, fiecare cu 256 de medii.

Adresarea stivă Este folosit în comenzile fără adresă și este susținut de metode de adresare auto-incrementale și auto-decrementale, care urmează principiul LIFO (Last Input – First Output) - „nivelurile rămase sunt primele”. Stiva este situată în DSEG și crește la mai multe adrese. Adresele din partea superioară a stivei sunt situate în indicatorul de stivă SP. Când un octet este scris în stivă, incrementul este inițial marcat în locul SP, iar apoi scrierea este marcată după acea adresă. Când un octet este citit din stivă, citirea la adresa indicată de SP, care este decrementul SP, este inițial finalizată. Cu o stivă vikorystank, este necesar să vă asigurați că adâncimea stivei (cantitatea maximă de memorie de mijloc alocată stivei) nu este controlată de hardware. În cazul stivelor excesiv de mari, celulele de memorie nerecunoscute pot fi ocupate din cauza pierderii de informații din acestea. Stiva hardware este utilizată pentru a salva adrese în timpul întreruperilor serviciului.

2.7.2. Sistemul de comandă al familiei MCS-51

Sistemul de comandă este prezentat în tabelele P2.1...P2.6 Anexa 2. Tabelele indică numele comenzii, mnemonicii acesteia, codul de operare dublă, introducerea comenzii la steagurile C, OV, AC și P, restul comenzii în octeți (B ) și ora de descompunere în cicluri de mașină (C), și înlocuirea transformării înscrise de echipă. Ca separator de câmpuri de adresă, echipele au o comă. Pentru a fi mai ușor de citit, puteți adăuga spații după comă, deoarece acestea sunt susținute de asamblatorul care este învingător.

Toate comenzile non-personale pot fi împărțite în 5 grupe: operații de transfer, operații aritmetice, operații logice, operații cu biți și operații de transfer de control.

Grup de comenzi pentru operațiuni de transfer de date(Tabelul A2.1) zi-

Există trei comenzi: MOV (transfer de date între DSEG și RSEG), MOVC (între CSEG și A), MOVX (între XSEG și A), comenzi pentru a împinge în stivă PUSH și POP, precum și două comenzi pentru a schimba XCH și XCHD. Toate comenzile de transfer de date care acceptă acumulatorul stabilesc ordinea de paritate în locul acumulatorului P, iar comenzile de adresare directă care acceptă registrul PSW modifică toate comenzile. Cea mai importantă este comanda MOV, care acceptă mai multe metode de adresare: registru direct (A, Rn, DPTR), direct (direct), indirect (@Ri), fără mijloc (#data, #data16). Celălalt operand al comenzii este jerel, primul este prim. Pentru inserare, există trei moduri de adresare (inclusiv cea din mijloc), iar pentru inserare se folosesc toate cele patru metode. Comanda de trei octeți MOV direct, direct asigură transferul între două centre de memorie (DSEG și SFR), inclusiv RSEG. Pentru a face schimb cu RSEG, sunt transferate formate speciale de doi octeți:

Comanda specială MOV DPTR, # data16 vă permite să atribuiți un indicator DPTR pe 16 biți valorilor data16.

Comanda MOVC vă permite să citiți informații din memoria programului CSEG nu în registrul de comandă al dispozitivului, ci în bateria dispozitivului de operare. Comanda are două metode de adresare: în spatele bazei DPTR și folosind computerul. În ambele cazuri, întregul fără semn de ștergere (index) este stocat în baterie. Să luăm în considerare și rezultatul - bateria. Comanda vă permite să schimbați codul pentru tabele.

Extinderea la memoria externă se face folosind comanda suplimentară MOVX. Schimbul are loc octet cu octet între baterie și XSEG extern. XSEG-ul mijlociu poate fi adresat în două moduri: fie prin indicatorul DPTR pe 16 biți, fie prin indicatorul Ri pe 8 biți, i=0,1. Registrul P2 va servi drept registru lateral.

Comenzile PUSH și POP fără adresă asigură transferul de date.

acestea între DSEG, RSEG și SFR.

Comanda de schimb XCH asigură schimbul bidirecțional de octeți, iar comanda XCHD asigură operanzi de octeți de ordin inferior.

Un grup de instrucțiuni de operații aritmetice(Tabelul A2.2) zi-

include comenzi pentru adăugarea ADD, adăugarea cu ajustarea transferului ADDC, adăugarea cu reglarea poziției SUBB, creșterea și modificarea cu un INC și DEC, adăugarea corecției zecilor în format de cod dublu zecimal (BCD), înmulțirea MUL și sub DIV. Operațiile sunt efectuate pe numere întregi fără semn. Pe lângă operațiile suplimentare, se folosește primul operand, iar rezultatul este folosit ca acumulator. Pentru semnificația altui operand se folosesc registrul direct, adresarea directă absolută, directă și indirectă. Operațiunile INC și DEC sunt conectate la baterie, care este adresată direct registrului, direct sau indirect adresată la mijlocul memoriei. În plus, operațiunea INC este limitată la registrul indicator DPTR pe 16 biți.

La operațiunile de înmulțire numerică întregă și subsecțiune fără semn, iau parte acumulatorul și registrul B. La înmulțire, valoarea de 8 biți a lui A este înmulțită cu valoarea de 8 biți a lui B, iar rezultatul de 16 biți este scris în pereche BA. În acest caz, registrul B salvează partea principală a lucrării. Ensignul OV este instalat dacă surplusul este mai mare de 255. Când valoarea de 8 biți A este împărțită în valoarea de 8 biți, B este înregistrat privat în A, iar excesul este în B. Când subdiviziunea este testată la 0 , steagul de reaprovizionare OV este setat.

A zecea comandă de ajustare a acumulatorului DA este plasată după comanda de adăugare. Adăugările trebuie trimise în coduri BCD. Editarea se face în mod standard.

Grup de comenzi de operații logice(Tabelul A2.3 ) Există trei tipuri de operații: ANL - mai logic decât I, ORL - mai logic decât ABO, XRL - mai logic decât ABO. Jerel al primului operand

servește fie bateria A, fie compartimentul de memorie este adresat direct. Celălalt operand este specificat de una dintre cele patru metode de bază de adresare. Se poate accesa si depozitul grupului operații într-un singur pas deasupra bateriei: CLR – purificare, CPL – inversare, precum și RL, RLC, RR și RRC – operații de distrugere ciclică și extinsă la dreapta și la stânga. Aceasta include operația de schimbare în bateria SWAP, care poate fi interpretată ca un transfer ciclic al unui octet pentru mai multe descărcări.

Grup de comenzi pentru operații cu biți(Tabelul A2.6) să se răzbune

mandi SETB - setarea bitului la 1, CLR - eliminarea bitului la 0, CPL - inversarea bitului, ANL și ORL - mai logic și mai logic decât ABO în loc de ensign C și bitul adresat direct, MOV - suprascrierea bitului .

U În operațiunile de luptă, ensign C își asumă rolul unui acumulator boolean. Ca operand, este folosit în locul unui ensign C sau al unui bit adresat direct în zona BSEG. Pentru operațiunile ANL și ORL, puteți utiliza un vicor în loc de un bit (bit) adresat direct sau o inversare (/bit).

U Acest grup include și echipa de tranziție mentală din lume 8 biți rel. O tranziție mentală poate avea loc fie când bitul este instalat (comandă JB), fie când bitul este șters (comandă JNB). Rețineți în special comanda JBC, care, atunci când bitul este instalat, implementează resetarea și resetează imediat bitul 0.

Grup de comenzi de transmisie(tabelele P2.4 și P2.5)

Conține comenzi pentru tranziție nebună AJMP, LJMP, SJMP, JMP, tranziție mentală JZ, JNZ, CJNE, apel ACALL, LCALL, rotație RET, RETI și modificări cu tranziție mentală DJNZ. Aceasta include comanda NOP goală.

U În comenzile de transfer de control, adresarea de referință este utilizată pe scară largă, ceea ce vă permite să creați module de program care se mișcă. Cum apare adresa? O deplasare de 8 biți a rel este un octet cu un semn, care asigură o tranziție la (-128 ... +127) octeți în conformitate cu poziția firului PC. Pentru a merge în orice alt punct din spațiul de adrese de 64 KB, puteți utiliza fie adresa directă16, fie adrese indirecte @A+DPTR. În locul lui A se interpretează ca un întreg fără semn. O scurtă opțiune de adresare directă addr11 în mijlocul unei pagini de intrare în flux de 2 KB pentru utilizare cu familia MCS-48.

Toate aceste tipuri de adrese sunt discutate în comenzile de tranziție. Comenzile Wiklyku au numai metode directe de adresare addr16 și interne addr11. Toate comenzile mentale au o adresare mai puțin clară.

Când microcontrolerul detectează o solicitare de întrerupere, lansează comanda LCALL addr16, care stochează automat adresa pe stivă. Informațiile despre program (în loc de registrul PSW) nu sunt salvate automat. Cu asta

 

 

Tse tsikavo: