Računala Windows Internet

Mikrokontroleri MCS-51. Blok dijagram, ALU, memorija podataka. Mikrokontroleri iz obitelji mcs51 Kako napraviti port za primanje mcs 51

Osnovna verzija MCS-51 Kratke informacije. Moderni 8-bitni mikrokontroleri (MC) imaju takve resurse upravljanja u stvarnom vremenu, za koje su se ranije koristili skupi rasporedi s više čipova u obliku zasebnih mikroračunarskih ploča, i to:

● imati dovoljan memorijski kapacitet, njegovu fizičku i logičku podjelu na programsku memoriju i memoriju podataka (harvardska arhitektura) i sustav naredbi orijentiran na izvršavanje upravljačkih algoritama;

● uključiti sve uređaje (procesor, ROM, RAM, ulazne/izlazne portove, sustav prekida, alate za obradu bitova, itd.) potrebne za implementaciju mikroprocesorskog upravljačkog sustava s minimalnom konfiguracijom. Sedamdesetih godina prošlog stoljeća tvrtka Intel razvio i ovladao komercijalnom proizvodnjom obitelji 8-bitnih MCS-48 mikrokontrolera, ujedinjenih nizom zajedničkih značajki (znamenkasti kapacitet, sustav naredbi, skup osnovnih funkcionalnih blokova itd.). Osnovna verzija ove obitelji uključuje:

● 8-bitni procesor;

● interna programska memorija (1/2/4K bajta);

● interna memorija podataka (64/128/256 bajtova);

● do 27 unutarnjih i 16 vanjskih I/O linija;

● jedan 8-bitni brojač vremena;

● jednorazinski sustav prekida s dva izvora zahtjeva. Godine 1980. ista je tvrtka razvila novu obitelj osmobitnih mikrokontrolera MCS-51, koja je kompatibilna s arhitekturom obitelji MCS-48, ali ima šire mogućnosti.

Arhitektura obitelji MCS-51 pokazala se toliko uspješnom da je i danas jedan od standarda za 8-bitne MK-ove. Stoga su za predmet istraživanja odabrani MC-ovi ove obitelji, koji se široko koriste u relativno jednostavnim sustavima upravljanja.

Za obitelj MCS-51 razvijeni su različiti alati za pripremu programa (kompilatori, hardversko-softverski emulatori itd.), a postoji i veliki broj knjižnica standardnih potprograma. Obitelj uključuje različite modifikacije mikrosklopova (čip verzije) mikrokontrolera. Članci ovog odjeljka dovoljno detaljno razmatraju osnovnu verziju mikrokontrolera obitelji MCS-51 (mikrokrug 8051 odgovara domaćem analogu KP1816BE51), najjednostavniji u strukturnom i funkcionalnom smislu iu smislu razumijevanja.

Sljedeće serije mikro krugova, uz zadržavanje kompatibilnosti s osnovnom verzijom, razlikuju se od nje po poboljšanoj tehnologiji proizvodnje, električnim parametrima, dodatnom hardveru i funkcionalnosti. Sljedeći članci posvećeni su strukturnim i funkcionalnim značajkama naknadnih modifikacija mikro krugova obitelji MCS-51.
Generalizirani blok dijagram MCS–51. Sastav MC-a, čiji je generalizirani blok dijagram prikazan na sl. 7.1.1, uključuje:

● 8-bitna središnja procesorska jedinica CPU, koja se sastoji od ALU, upravljački uređaji uu i generator adresa F;

● maskirani ROM kapaciteta 4K bajta za pohranjivanje programa;

● 128 bajtova RAM-a za pohranu podataka;

● četiri programabilna porta R0–R3 za ulaz-izlaz informacija;

● BPI serijski blok sučelja za razmjenu informacija s vanjskim uređajima preko dvožične linije;

● blok mjerača vremena/brojila BT/C za održavanje načina rada u stvarnom vremenu;

● BP prekidni blok za organiziranje prekida izvršnih programa. Ova sredstva formiraju Rezidencija dio mikrokontrolera koji se nalazi izravno na čipu. MC uključuje veliki broj registara, koji su dodijeljeni zasebnim funkcionalnim blokovima i nisu prikazani na dijagramu.

Dijagram također ne prikazuje upravljačke krugove. Bilateralna razmjena informacija između blokova provodi se putem internog 8-bita sabirnica podataka SD-8.

Internim 16-bitnim adresna sabirnica SHA-16, adresa formirana u CPU-u se prikazuje u ROM-u (12 bitova adrese) iu RAM-u (8 niskih bitova).

Kada koristite vanjsku memoriju, 8 bitova nižeg reda izlaze na port P0, a 3 ili 8 bitova visokog reda izlaze na port P2.

Za logičko proširenje sučelja koristi se kombinacija funkcija portnih linija. Kao primjer, na sl. 7.1.1 isprekidana linija prikazuje linije priključka P3 u izvedbi alternativa funkcije prijenosa upravljačkog signala, čija će svrha biti razmotrena u nastavku. Za stvaranje unutarnjeg generatora sata, kvarcni rezonator i dva kondenzatora spojeni su na izlaze mikrosklopa MK (slika 7.1.1). Umjesto internog generatora takta, za sinkronizaciju se može koristiti vanjski oscilator. Konvencionalna grafička oznaka mikrosklopa MK prikazana je na sl. 7.1.2, oznaka i svrha zaključaka - u tablici. 7.1.1. Razmotrite funkcionalne blokove MK-a i princip njihovog rada. Aritmetičko-logički uređaj. Aritmetičko-logička jedinica dizajnirana je za obavljanje aritmetičkih (uključujući množenje i dijeljenje) i logičkih operacija nad osmobitnim operandima, kao i operacijama logičkog pomaka, nuliranja, postavljanja itd. Blok dijagram ALU-a prikazan je na sl. 7.1.3.

ALU uključuje

● paralelni osmobitni guja SM tip kombinacije sa sekvencijalnim prijenosom, izvođenjem aritmetičkih (zbrajanje i oduzimanje) i logičkih (zbrajanje, množenje, disparitet i identičnost) operacija;

baterija A, pružanje funkcija glavnog aritmetičkog registra;

Registar B, koji se koristi za provedbu operacija množenja i dijeljenja, ili kao dodatni superoperativni registar, čije funkcije definira korisnik;

registre(programski nedostupno) privremeno skladište RVH1, RVH2, namijenjeni za primanje i pohranjivanje operanada za vrijeme trajanja operacije;

● ROM konstante ROM koji pohranjuje korekcijski kod za binarni-decimalni prikaz podataka, kod maske za bitne operacije i konstantni kod;

registar riječi statusa programa PSW, fiksiranje stanja ALU nakon izvršene operacije. U tablici. 7.1.2 daje informacije o dodjeli bitova pojedinim znamenkama registra PSW. Upravljački uređaj. CPU upravljačka jedinica (CU) namjeravao koordinirati zajednički rad svih MK čvorova koristeći generirane satne i upravljačke signale. Uključuje (slika 7.1.4):

jedinica za sinkronizaciju i upravljanje USU, koji generira taktne impulse koji postavljaju cikluse stroja i njihova pojedinačna stanja (S) i faze (P), te ovisno o načinu rada MK-a, generira potreban skup kontrolnih signala. Jedan, dva ili četiri strojna ciklusa dodijeljena su za izvršenje instrukcije.

Svaki strojni ciklus ima šest država S1–S6, A svako stanje uključuje dvije faze P1, P2, čije trajanje je period osciliranja generatora takta T 0SC .

Trajanje ciklusa stroja je 12T 0SC . Svi strojni ciklusi su isti, počevši s fazom S1P1 i završavajući s fazom S6P2.

Osim taktnih impulsa, satni uređaj u svakom strojnom ciklusu generira dva (ponekad jedan) stroboskop signala niskog bajta ALE adrese kao pozitivan impuls u fazama S1P2-S2P1 i S4P2-S5P1. Vremenski dijagrami na sl. 7.1.5 ilustrirati organizaciju strojnih ciklusa;

● RK komandni registar, dekoder naredbi DC i PLA, omogućujući u svakom strojnom ciklusu formiranje skupa mikro-operacija u skladu s mikroprogramom naredbe koja se izvršava;

● ulazno-izlazna logika LVV-a za primanje i izdavanje signala koji osiguravaju razmjenu informacija između MC i vanjskih uređaja preko portova R0–R3;

● PCON registar, koji ima jedan omogućen SMOD bit na poziciji PCON.7 za udvostručenje brzine prijenosa podataka serijskog porta. Preostali bitovi su rezervirani za buduću upotrebu.
Generator adresa. Uređaj za oblikovanje adrese (FA) ili brojač naredbi računala, namjeravao za formiranje trenutne 16-bitne adrese programske memorije i 8/16-bitne adrese vanjske memorije podataka. Uključuje (slika 7.1.6):

● 16-bitni pufer B, koji komunicira između 8-bitne sabirnice podataka SD-a i 16-bitne interne sabirnice (IS) generatora adresa;

● Shema SI inkrementa za povećanje vrijednosti trenutne memorijske adrese programa za jedan;

● registar za pohranjivanje trenutne adrese PTA naredbi koje dolaze iz SI;

● Registar pokazivača podataka DPTR , koji se sastoji od dva 8-bitna registra DPH i DPL. Služi za pohranu 16-bitne adrese vanjske memorije podataka i može se koristiti kao dva neovisna softverski dostupna RON-a;

● Registar generatora RFA adrese za pohranjivanje adrese izvršne 16-bitne programske memorijske adrese ili 8/16-bitne adrese vanjske memorije podataka. Ovaj registar se također koristi za prijenos podataka preko porta P0 na vanjske uređaje kada se izvršavaju MOVX @Rm, A i MOVX @DPRT, A instrukcije.

Memorija podataka. Memorija podataka namjeravao za primanje, pohranjivanje i izdavanje informacija koje se koriste u procesu izvođenja programa. Interna (rezidentna) memorija (slika 7.1.7) podataka sastoji se od RAM-a kapaciteta 128 bajtova, pokazivač steka SP, adresni registar RAM RA i dekoder Dsh. SP pokazivač stoga je 8-bitni registar koji prima i pohranjuje adresu lokacije stoga kojoj se zadnji put pristupilo. Nakon resetiranja, pokazivač steka se postavlja na adresu 07H, što odgovara početku hrpe s adresom 08H. Adresni registar RA zajedno s dekoderom Dsh omogućuje pristup traženoj memorijskoj ćeliji koja sadrži bajt ili bit informacija.

MK pruža mogućnost povećanja količine podatkovne memorije do 64 KB povezivanjem vanjski uređaji za pohranu podataka. Kao primjer, na sl. 7.1.8 prikazuje stranica vanjske memorije podataka VPD s kapacitetom od 2K bajta pomoću instrukcija kao što je MOVX @ Rm (m = 0; 1). U ovom slučaju, port P0 radi kao multipleksirana adresna/podatkovna sabirnica, tri linije porta P2 koriste se za adresiranje vanjske RAM stranice, a preostalih pet linija može se koristiti kao I/O linije.
Na sl. 7.1.9 prikazuje vremenske dijagrame ciklusa čitanja i pisanja kada MK radi s vanjskim RAM-om. Dijagrami pokazuju:

● PCN - visoki bajt brojača PC naredbi;

● DPL, DPH - niski i visoki bajtovi registra pokazivača podataka DPTR, koji se koristi kao registar neizravnog adresiranja u MOVX @DPTR,A i MOVX A,@DPTR uputama;

● P2 SFR - zasuni P2 porta;

● Rm (m = 0, 1) - registri koji se koriste u MOVX @Rm, A i MOVX A, @Rm instrukcijama kao neizravni adresni registri;

● Z - stanje visokog otpora;

● D - razdoblje tijekom kojeg se podaci s porta P0 unose u mikrokontroler. Programska memorija. Programska memorija je dizajnirana za pohranjivanje programa, ima svoj (odvojen od podatkovne memorije) adresni prostor i samo je za čitanje. Uključuje dekoder Dsh i ROM (slika 7.1.10). Programska memorija se adresira pomoću 16-bitnog računala, tako da je njezin maksimalni kapacitet 64K bajta. Interna programska memorija sastoji se od ROM-a kapaciteta 4K bajta i 12-bitnog dekodera. Vanjska memorija je spojena prema dijagramu na sl. 7.1.11. Ako se 0 V primijeni na ¯EA pin MCU-a (kao što je prikazano na slici 7.1.11), interna programska memorija je onemogućena. Svi pristupi memoriji počinju na adresi 0000h. Kada je ¯EA pin spojen na napajanje, pristup internoj programskoj memoriji na adresama 0000h–FFFFh i vanjskoj programskoj memoriji na adresama 0FFFh–FFFFh se događa automatski.

Za čitanje vanjske programske memorije MK-a generira se signal ¯PSEN. Kada radite s internom memorijom, signal čitanja se ne koristi. Prilikom pristupa vanjskoj programskoj memoriji uvijek se formira 16-bitna adresa. Niži bajt adrese prenosi se preko porta P0 u prvoj polovici strojnog ciklusa i fiksira se rezom ALE stroba u registru.U drugoj polovici ciklusa, port P0 se koristi za unos bajta podataka iz vanjske memorije u MCU.

Visoki bajt adrese se prenosi kroz P2 port tijekom cijelog vremena pristupa memoriji.

Vremenski dijagrami ciklusa čitanja i pisanja tijekom rada MK-a s vanjskim RAM-om prikazani su na sl. 7.1.12.
Dijagrami pokazuju:

● PCL OUT - izlaz niskog bajta računalnog brojača naredbi;

● PCN OUT - izdavanje visokog bajta brojača PC naredbi;

● DPH je visoki bajt registra pokazivača podataka DPTR, koji se koristi kao registar neizravnog adresiranja u MOVX @DPTR,A i MOVX A,@DPTR uputama;

● P2 SFR - zasuni P2 porta;

● INS IN - unos instrukcijskog (naredbenog) bajta iz programske memorije;

● ADDR OUT - izdavanje niskog bajta adrese vanjske memorije podataka iz registara Rm (m = 0, 1) ili iz registra DPL (donji registar DPTR). I/O portovi. Dodjela luke. Priključci P0, P1, P2, P3 namjeravao za razmjenu informacija između MK-a i vanjskih uređaja, kao i za obavljanje sljedećih funkcija:

● nizi bajt adrese A7…A0 izlazi kroz port R0; bajt podataka izlazi iz MK-a i unosi se u MK pri radu s vanjskom programskom memorijom i vanjskom memorijom podataka (s vremenskom podjelom);

● visoki bajt adrese A15…A8 izlazi preko porta P2 pri radu s vanjskom programskom memorijom i vanjskom podatkovnom memorijom (samo kada se koriste naredbe MOVX A,@DPTR i MOVX @DPTR,A);

● Linije P3 porta mogu se koristiti za izvođenje alternativnih funkcija ako je u zasun ovog voda uneseno 1, inače je na linijskom izlazu fiksirano 0. Alternativne funkcije izlaza P3 porta dane su u tablici. 7.1.3.

Shematske značajke luka

Na sl. 7.1.13 prikazuje dijagrame za jedan kanal svakog od MK portova, uključujući:

● zasun za fiksiranje bita primljenih podataka;

● izlazno pojačanje kaskada(vozač);

● čvor veza sa izlazni stupanj (osim P2);

● sklop za prijenos bita podataka s izlazne strane porta, koji se sastoji od međuspremnika B2 i B3 (za port P4). Zasun je D-flip-flop, klokovan internim signalom "Write to latch". Bit podataka s izravnog izlaza D-flip-flopa može se pročitati softverom kroz međuspremnik B1 signalom "Read latch" na liniji interne sabirnice podataka (SD) MK-a.

Izlazni stupanj port P0 je pretvarač, čije se značajke očituju u činjenici da se tranzistor opterećenja VT2 otvara samo pri pristupu vanjskoj memoriji (prilikom prijenosa adresa i podataka kroz port). U svim ostalim načinima rada tranzistor opterećenja je zatvoren. Stoga, za korištenje P0 (slika 7.1.13, a) kao izlaznog priključka opće namjene, vanjski otpornici opterećenja moraju biti spojeni na njegove izlaze. Prilikom upisivanja 1 u zasun priključka, tranzistor pretvarača VT1 se isključuje, a vanjski pin priključka P0.X se prenosi u stanje visokog otpora. U ovom načinu rada, pin priključka P0.X može poslužiti kao ulaz. Ako se port P0 koristi kao I/O port opće namjene, svaki njegov P0.X pinovi može raditi neovisno kao ulaz ili kao izlaz. Izlazni stupnjevi priključci P1, P2, P3 (slika 7.1.13, b, c, d) izrađen prema krugovima invertera s unutarnjim otpornikom opterećenja, koji se koristi kao tranzistor VT2.

Kako bi se smanjilo vrijeme prebacivanja tijekom prijelaza izlaza porta iz stanja 0 u stanje 1, uvodi se dodatni tranzistor VT3 paralelno s tranzistorom opterećenja VT2. Tranzistor VT3 uz pomoć elemenata u krugu vrata otključava se na vrijeme jednako dva razdoblja oscilacije glavnog kristalnog oscilatora (tijekom faza S1P1, S2P2 ciklusa stroja). Izlazni stupnjevi portovi P0, P2 (slika 7.1.13, A, c) pomoću MX multipleksora mogu se spojiti ili na zasune ili na interne sabirnice "Adresa / podaci" i "Adresa". Izlazni stupanj priključka P1 (sl. 7.1.13, 6) je trajno spojen na zasun.

Ako je pin P3 porta izlaz i njegov zasun sadrži 1, tada se njegovim izlaznim stupnjem upravlja hardverskim internim signalom “Alternativna izlazna funkcija”, koji pruža odgovarajuću alternativnu funkciju, tj. jedan od signala ¯WR, ¯RD ili RxD formira se na vanjskom pinu. Ako se pin priključka koristi kao ulaz, tada se alternativni signal koji stiže na njega (TxD, ¯INT0, ¯INT1, T0, T1) prenosi na internu liniju “Alternative Input Function”.

Način pisanja porta.

Kada se izda naredba za pisanje u port, nova vrijednost se upisuje u zasun u fazi S6P2 i izlazi izravno na izlazni pin porta u fazi S1P1 sljedećeg strojnog ciklusa.

Način čitanja porta

Naredbe za čitanje porta čitaju informacije izravno s vanjskih pinova pinova porta ili iz izlaza zasuna. U prvom slučaju, podatkovni bit s izlaza porta se programski čita kroz međuspremnik B2 signalom "Čitanje izlaza" na liniju interne sabirnice podataka (SD) MK-a. Imajte na umu da signale "Write to latch", "Read latch", "Read pins" generira hardver kada se izvršavaju odgovarajuće naredbe.

U drugom slučaju implementiran je takozvani način rada "Čitanje-Modify-Write" u kojem naredba čita signal statusa zasuna, po potrebi ga modificira, a zatim ga zapisuje natrag u zasun. Način rada Read-Modify-Write implementiran je kada se izvršavaju sljedeće naredbe: ANL, ORL, XRL, JBC; CPL; I.N.C.; DEC; DJNC; MOV PX,Y; CLR PX.Y; SETB PX,Y.

Čitanje informacija s izlaza zasuna eliminira pogreške pri tumačenju logičke razine na pinu porta. Nastavak članka pročitajte u.

Trenutno razne tvrtke proizvode mnoge modifikacije i analoge ove obitelji, kako Intel, tako i drugi proizvođači, frekvencija sata i veličina memorije su se deset puta povećale i nastavljaju rasti. Skup ugrađenih LSI modula također se nadopunjuje; rezidentni ADC velike brzine ugrađen je u veliki broj modernih modela, koji imaju do 12, a sada ih može biti više. No, u srcu obitelji MSS51 je BIS 8051, 80C51, 8751, 87C51, 8031, 80C31 iz Intela, čiji su prvi uzorci objavljeni 1980. godine.

Mikrokontroleri iz obitelji MCS51 izrađeni su korištenjem visokokvalitetne n-MOS tehnologije (serija 8HHH, analogna - serija 1816 u Rusiji i Bjelorusiji) i k-MOS tehnologije (serija 8HSHH, analogna - serija 1830). Drugi znak nakon 8 znači: 0 - nema EEPROM-a na čipu, 7 - 4K EEPROM-a s UV brisanjem. Treći znak: 3 - ROM će se kristalizirati, 5 - ako nema ROM-a, onda je na čipu maskirani ROM.

I tako je 80S51 k-MOS LSI s maskom ROM-a na čipu, 8031 ​​je n-MOS LSI bez programske memorije (ROM, EPROM) na čipu, 8751 je n-MOS LSI sa rezidentom (nalazi se na čipu) RPROM s ultraljubičastim brisanjem. Nastavit ćemo razmatrati LSI 8751, čineći, ako je potrebno, rezerve o razlikama u drugim sklopovima, navodeći parametre koji su objavljeni za prvi serijski LSI. Po potrebi dodatne informacije o svim suvremenim izmjenama možete pronaći u imenicima poduzeća i tehničkoj dokumentaciji.

A. Opće karakteristike i raspored pinova

Obitelj MCS51 temelji se na pet modifikacija MK-a (s identičnim glavnim karakteristikama), a glavna razlika između njih je implementacija programske memorije i potrošnja energije (vidi tablicu 3.1). Mikrokontroler je osmobitni, t.j. ima upute za obradu osmobitnih riječi, ima harvardsku arhitekturu, frekvencija takta za osnovne uzorke obitelji je 12 MHz.

Tablica 3.1.

mikro krugovi

Interna memorija programa, bajtovi

Vrsta memorije programa

Interna memorija podataka, bajtovi

Frekvencija takta, MHz

Struja potrošnje, mA

MK 8051 i 80C51 sadrže programsku ROM programsku memoriju s maskom kapaciteta 4096 bajtova i dizajnirani su za upotrebu u masovnoj proizvodnji. MK 8751 sadrži EPROM od 4096 bajta s UV brisanjem i prikladan je u fazi razvoja sustava prilikom otklanjanja pogrešaka u programima, kao i kod proizvodnje u malim serijama ili kod stvaranja sustava koji zahtijevaju

periodično prilagođavanje.

MK 8031 ​​i 80C31 ne sadrže ugrađenu programsku memoriju. Oni, kao i prethodno opisane modifikacije, mogu koristiti do 64 KB vanjske programske memorije i učinkovito se koriste u sustavima koji zahtijevaju znatno veću (od 4 KB na čipu) ROM programsku memoriju.

Svaki MK iz obitelji sadrži rezidentnu podatkovnu memoriju kapaciteta 128 bajtova s ​​mogućnošću proširenja ukupne količine RAM podataka do 64 KB korištenjem vanjskih RAM IC-ova.

    središnji osmobitni procesor;

    4K programska memorija (samo 8751 i 87C51);

    128 bajtova podatkovne memorije;

    četiri osam-bitna programabilna ulazno-izlazna porta;

    dva 16-bitna višemodna mjerača vremena/brojila;

    sustav autovektorskih prekida s pet vektora i dvije softverski kontrolirane razine prioriteta;

    serijsko sučelje, uključujući univerzalni duplex primopredajnik koji može raditi u četiri načina;

    generator takta.

Sustav MK naredbi sadrži 111 osnovnih naredbi s formatom od 1, 2 ili 3 bajta. Mikrokontroler ima:

    32 registra opće namjene RON, organiziranih kao četiri banke po osam registara svaka s nazivima R0 ... R7, izbor određene banke određuje program postavljanjem odgovarajućih bitova u statusni registar PSW programa;

    128 softverski kontroliranih zastavica (bit procesor, vidi dolje);

    skup registara posebnih funkcija koji upravljaju elementima MK. Mikrokontroler ima sljedeće načine rada:

jedan). Općenito resetiranje. 2). Normalan rad. 3). Način rada niske potrošnje i mirovanja. 4). Način programiranja rezidentnog EPROM-a, ako postoji.

Ovdje ćemo se usredotočiti na prva dva načina rada, detaljan opis sastava i rada MC-a u svim načinima rada dat je u Dodatku P1.

RON i zona bitnog procesora nalaze se u adresnom prostoru rezidentnog RAM-a s adresama od 0 do 80h.

U gornjoj zoni adresa rezidentnog RAM-a nalaze se registri posebnih funkcija (SFR, Special Function Registers). Njihova namjena je data u tablici. 3.2.

Tablica 3.2.

Oznaka

Ime

Baterija

Registar B

Registar statusa programa

pokazivač steka

Pokazivač podataka. 2 bajta:

niski bajt

visoki bajt

Registar prioriteta prekida

Registar za omogućavanje prekida

Registar načina rada mjerača/brojača

Registar upravljanja timerom/brojačem

Tajmer/brojač 0. Visoki bajt

Tajmer/brojač 0. Niski bajt

Tajmer/brojač 1. Visoki bajt

Tajmer/brojač 1. Niski bajt

Kontrola serijskog porta

Serijski međuspremnik

Upravljanje potrošnjom

* - registri, dopuštajući malo pomalo adresiranje

Pogledajmo na brzinu funkcije SFR-ova navedenih u tablici 3.2.

Baterija ACC - registar akumulatora. Timovi dizajnirani za rad

ako imate akumulator, koristite mnemoniku "A", na primjer, MOV A, R2 . Mnemonički "ACC" koristi se, na primjer, kada se malo po bit adresira akumulator. Dakle, simbolički naziv petog bita akumulatora pri korištenju asemblera A5M51 bit će sljedeći: ACC. 5. .

Registar V . Koristi se tijekom operacija množenja i dijeljenja. Za ostale upute, registar B može se smatrati dodatnim registrom scratchpad-a.

Registar Države programe PSW sadrži informacije o stanju programa i postavlja se dijelom automatski rezultatom izvršene operacije, dijelom od strane korisnika. Oznaka i namjena bitova registra dani su u tablicama 3.3 i 3.4.

Tablica 3.3.

Oznaka

Tablica 3.4.

Oznaka

Dodjela bitova

Pristup ritmu

Nosite zastavu. Promjene tijekom izvršavanja niza aritmetičkih i logičkih instrukcija.

Hardver ili softver

Dodatna zastava za nošenje. Postavlja/briše hardverom tijekom izvršavanja instrukcija zbrajanja ili oduzimanja kako bi se označilo prijenos ili posuđivanje u bitu 3 pri generiranju niskog grickanja rezultata (D0-D3).

Hardver ili softver

Oznaka 0. Oznaka koju definira korisnik.

Programski

Programski

Pokazivač na banku radnih registara

Programski

Banka 0 adresa (00H - 07H) Banka 1 adrese (08H - 0FH) Banka 2 adrese (10H - 17H) Banka 3 adrese (18H - 1FH)

preljevna zastavica. Postavlja ili briše hardver tijekom izvršavanja aritmetičkih instrukcija kako bi se označio uvjet prelijevanja.

Hardver ili softver

Rezervni. Sadrži okidač za čitanje/pisanje koji se može koristiti

Paritetni bit. Poništite ili namjestite hardverski svaki ciklus instrukcija kako biste označili paran ili neparan broj bitova baterije koji su u stanju "1".

Hardver ili softver

Pokazivač stog SP - 8-bitni registar čiji se sadržaj povećava prije nego što se podaci upisuju u stog tijekom PUSH i CALL instrukcija. Prilikom početnog resetiranja, pokazivač stoga je postavljen na 07H, a područje stoga u podatkovnom RAM-u počinje na adresi 08H. Ako je potrebno, redefiniranjem pokazivača stoga, područje stoga može se nalaziti bilo gdje u internom podatkovnom RAM-u mikrokontrolera.

Pokazivač podaci DPTR sastoji se od visokog (DPH) i niskog bajta

(DPL). Sadrži 16-bitnu adresu prilikom pristupa vanjskoj memoriji. Može se koristiti

biti pohranjen kao 16-bitni registar ili kao dva nezavisna osmobitna registra.

Port0 - PortZ. Odvojeni bitovi registara posebnih funkcija P0, P1, P2, P3 su bitovi - "zasuni" izlaza portova P0, P1, P2, P3.

Pufer dosljedan luka SBUF predstavlja dva odvojena registra: međuspremnik odašiljača i međuspremnik prijemnika. Kada se podaci zapisuju u SBUF, oni ulaze u međuspremnik odašiljača, a upis bajta u SBUF automatski inicira njihov prijenos kroz serijski port. Kada se podaci čitaju iz SBUF-a, dohvaćaju se iz odredišnog međuspremnika.

Registri mjerač vremena. Registrski parovi (TH0, TL0) i (TH1, TL1) oblik 16-

registri brojača bitova za timer/brojac 0 i timer/counter 1, redom.

Registri upravljanje. Registri posebne funkcije IP, IE, TMOD, TSON, SCON i PCON sadrže kontrolne bitove i statusne bitove za sustav prekida, vrijeme-

mjere/brojila i serijski port. O njima će se detaljno raspravljati u nastavku.

RxD TxD INT0 INT1 T0 T1 WR

P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

RST BQ2 BQ 1EA

P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7

P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7

MC tijekom rada osigurava:

    minimalno vrijeme izvršenja za naredbe zbrajanja je 1 µs;

    hardversko množenje i dijeljenje s minimalnim vremenom izvršenja od 4 µs.

MK pruža mogućnost postavljanja frekvencije unutarnjeg oscilatora pomoću kvarcnog kristala, LC lanca ili vanjskog oscilatora.

Prošireni sustav naredbi pruža adresiranje bajtova i bitova, binarnu i binarno-decimalnu aritmetiku, indikaciju prekoračenja i određivanje parno/neparno, te mogućnost implementacije logičkog procesora.

Najvažnija i najizrazitija značajka arhitekture obitelji MCS51 je da ALU može, zajedno s izvođenjem operacija na 8-bitnim tipovima podataka, manipulirati jednobitnim podacima. Pojedinačni softverski dostupni bitovi mogu se postaviti, poništiti ili zamijeniti njihovim dopunom, mogu se proslijediti, provjeriti i

sl.3.2. Vanjski nalazi

mikrokontroler

koristi se u logičkim proračunima. Dok podrška za jednostavne tipove podataka (ako postoji

trenutni trend povećanja duljine riječi) može se na prvi pogled činiti kao korak unatrag, ova kvaliteta čini mikrokontrolere obitelji MCS51 posebno prikladnim za aplikacije koje koriste kontrolere. Algoritmi rada potonjeg na svoj način pretpostavljaju prisutnost ulaznih i izlaznih booleovih varijabli, koje je teško implementirati pomoću standardnih mikroprocesora. Sva ova svojstva zajednički se nazivaju Booleovim procesorom obitelji MCS51. Ovaj moćni ALU čini obitelj mikrokontrolera MCS51 jednako prikladnim skupom instrukcija i za aplikacije upravljanja u stvarnom vremenu i za algoritme koji zahtijevaju velike količine podataka.

Shema sklopa mikrokontrolera prikazana je na sl. 3.2. U osnovnoj verziji pakiran je u 40-pinski DIP paket. Razmotrite svrhu zaključaka.

Počnimo s kabelima za napajanje «0 V" i "5 V" , preko kojeg prima glavnu snagu. Potrošnja struje data je u tablici. 3.1.

Zaključak "RST" - resetirajte mikrokontroler. Kada je ovaj pin aktivan visoko, način rada Općenito resetirati i MK izvodi sljedeće radnje:

Postavlja brojač instrukcija računala i sve registre posebnih funkcija osim zasuna porta P0-P3, pokazivača steka SP i registra SBUF na nulu;

    pokazivač steka uzima vrijednost jednaku 07H;

    onemogućuje sve izvore prekida, brojače vremena i serijski

    odabire BANKU 0 RAM-a, priprema portove P0-RZ za primanje podataka i određuje

dijeli ALE i PME pinove kao ulaze za vanjski sat;

      u registrima posebnih funkcija PCON, IP i IE rezervirani bitovi poprimaju slučajne vrijednosti, a svi ostali bitovi se resetiraju na nulu;

      SBUF registar je postavljen na slučajne vrijednosti.

      postavlja zasune portova P0-P3 na "1".

Stanja registara mikrokontrolera nakon resetiranja prikazana su u tablici 3.5.

Tablica 3.5.

Informacija

neodređeno

0XXXX0000B za k-MOS 0XXXXXXXB za n-MOS

RST izlaz također ima alternativnu funkciju. Preko njega se dovodi rezervno napajanje kako bi se sadržaj RAM-a mikrokontrolera sačuvao nepromijenjen kada se glavni ukloni.

zaključke bq1, BQ2 dizajniran za spajanje kvarcnog rezonatora koji određuje taktnu frekvenciju MC-a.

Zaključak EA` (E xternal A haljina vanjski adresa) - dizajniran za aktiviranje načina čitanja kontrolnih kodova iz vanjske programske memorije, kada se na ovaj izlaz primijeni aktivna niska razina. Izlaz ima alternativnu svrhu (funkciju). Napaja se programskim naponom EPROM-a u načinu programiranja.

Zaključak PME (P program M emory E plemenita dozvola memorija programe) - dizajniran za kontrolu ciklusa čitanja iz programske memorije i automatski aktiviran MK u svakom strojnom ciklusu.

Zaključak PIVO (A haljina L Engleski E plemenita dozvola junior adrese) strobi izlaz donjeg dijela adrese na portu P0. Izlaz se također koristi pri programiranju EPROM-a, dok se na njega primjenjuje stroboskopski impuls tijekom procesa programiranja.

MK sadrži četiri grupe portova: P0, P1, P2 i P3. Ovo su preostalih 40 pinova mikrokontrolera. Ovi portovi mogu služiti za bit-po-bit ulaz – izlaz informacija, ali uz to svaki od njih ima svoju specijalizaciju. Generalizirani funkcionalni dijagram priključka prikazan je na sl. 3.3. Port sadrži FET izlazne sklopke spojene na pin, funkcijski prekidač, D-zasun i upravljačku logiku. Jedan ili nula može se upisati u zasun na internoj sabirnici MK-a. Ova informacija se preko funkcijske sklopke dovodi do izlaznih tipki i izlaza MC-a. U stanju jedan, oba tranzistora N i N1 su zatvorena, ali je N2 otvoren. U stanju nule, N otvara-

Xia, a N2 se zatvara. U trenutku kada port izvrši zamjensku funkciju za koju je specijaliziran, stanje izlaznog zasuna se oslobađa. Mikrokontroler može zasebno čitati stanje zasuna porta i stanje njegovog izlaza, postavljeno vanjskim signalom. Da biste to učinili, u MK asembleru postoje posebne naredbe koje aktiviraju odgovarajuće linije. Za očitavanje statusa igle na zasun odgovarajućeg priključka,

biti unaprijed snimljen

Od internog

Zasun za upravljanje

Funkcijski prekidač

Vcc

Vikend

jedinica. Kada je linija "zasun čitanja" aktivirana na izlazu "AND" ćelije na koju je ovaj vod spojen,

njezine gume MK D Q

Pišite u zasun C Q

zasun čitanja

Igla priključka

stanje zasuna koji dolazi na internu sabirnicu mikrokontrolera, kada je aktiviran

"reading output" - stanje vanjskog izlaza porta.

Luka P0 – univerzalni dvosmjerni priključak

ulaz izlaz. Iza ove luke

funkcija organiziranja vanjskih sabirnica adresa i

Riža. 3.3. Funkcionalni dijagram priključka mikrokontrolera

podataka za proširenje memorije programa i memorije podataka

mikrokontroler. Kada se pristupi vanjskoj programskoj memoriji ili se izvrši naredba za pristup vanjskoj memoriji podataka, donji dio adrese (A0…A7) postavlja se na pinove porta, koji je visoko na ALE pinu. Zatim, prilikom pisanja u memoriju podataka, informacija koja se zapisuje s interne sabirnice MK-a se dovodi na pinove priključka P0. U operacijama čitanja, naprotiv, informacije s portnih pinova idu na internu sabirnicu. Značajka priključka P0 je odsutnost "pull-up" tranzistora N2, koji osigurava napajanje na izlazu. Kada se zasun upiše na port 1, on se jednostavno postavlja u stanje visoke impedancije potrebno za ispravno funkcioniranje podatkovne sabirnice. Ako je potrebno napajati bilo koji vanjski uređaj preko izlaza, treba osigurati vanjske otpornike od strujnih krugova do izlaza porta.

Luka P1 – univerzalni dvosmjerni I/O port bez alternativnih funkcija.

Luka R2 – univerzalni dvosmjerni I/O port, kao alternativna funkcija, izdavanje gornjeg dijela adrese (A8…A15) prilikom pristupa vanjskoj memoriji.

Luka P3 – univerzalni dvosmjerni ulazno-izlazni port, čiji svaki bit omogućuje izvođenje različitih alternativnih funkcija. U ovom slučaju, alternativne funkcije se implementiraju samo ako su jedinice upisane u izlazne zasune porta, inače je izvođenje alternativnih funkcija blokirano. Navodimo ih zasebno za svaki bit:

P3.0 RxD (R glava e x interni D ate, read external data) – ulaz ugrađenog serijskog primopredajnika.

P3.1 TxD (T ype e x interni D ate, transmit external data) – ugrađeni serijski izlaz primopredajnika.

P3.2 INT0` (INT errupt, interrupt) - vanjski ulaz prekida 0.

P3.3 INT1` – vanjski ulaz za prekid 1.

P3.4 S/T0 – ulaz nulte ugrađenog mjerača vremena/brojila.

R3.5 C/T1 – ulaz prvog ugrađenog mjerača vremena/brojila.

P3.6 WR` (W rite, write) - kontrolni izlaz ciklusa upisivanja u memoriju podataka.

P3.7 RD` (R ead, read) - izlazna kontrola ciklusa čitanja iz memorije podataka.

Pinovi priključka P1, P2 i P3 su sposobni za izlaz oko 0,2 mA struje i primanje struje od 3 mA na nuli, pinovi priključka P0 su snažniji i sposobni isporučiti oko 0,8 mA struje na nuli i prihvatiti struju od 5 mA na nuli. Kratke informacije o namjeni pinova mikrokontrolera dane su u tablici 3.6.

Tablica 3.6.

Oznaka

Izlazno odredište

8-bitni dvosmjerni P1 port. Adresni ulaz A0-A7 prilikom provjere internog ROM-a (RPZU)

unesite izlaz

Signal općeg resetiranja. RAM rezervna izlazna snaga iz vanjskog izvora (za 1816)

8-bitni dvosmjerni P3 port s dodatnim značajkama

unesite izlaz

Serijski podaci prijemnika - RxD

Serijski podaci odašiljača - TxD

Ulaz vanjskog prekida 0- INT0`

Ulaz vanjskog prekida 1-INT1`

Tajmer/brojač ulaz 0: - T0

Tajmer/brojač ulaz 1: - T1

Izlaz stroboskopskog signala prilikom upisivanja u vanjsku memoriju podataka: - WR`

Izlaz stroboskopskog signala pri čitanju iz vanjske memorije podataka - RD`

Zaključci za spajanje kvarcnog rezonatora.

izlazni ulaz

Opći zaključak

8-bitni dvosmjerni P2 port. Izlazna adresa A8-A15 u načinu rada s vanjskom memorijom. U načinu rada internog ROM testa, izlazi P2.0 - P2.6 se koriste kao ulaz adrese A8-A14. Zaključak P2.7 - dopuštenje za čitanje ROM-a.

unesite izlaz

Razlučivost programske memorije

Adresni zasun omogućava izlaz. Prilikom programiranja EEPROM signala: PROG

unesite izlaz

Blokiranje rada s internom memorijom. Prilikom programiranja EEPROM-a daje se UPR signal.

unesite izlaz

8-bitni dvosmjerni port P0. Adresna/podatkovna sabirnica za rad s vanjskom memorijom. Izlaz podataka D7-D0 u testnom načinu rada internog ROM-a (RPZU).

unesite izlaz

Izlazna snaga iz izvora napona + 5V

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

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

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

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

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


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


Tablica 1 - Dodjela pinova MCS-51

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

Reset signal (aktivna razina - visoka);

RST signal se resetuje: PC i većina registara posebnih funkcija (SFR), onemogućujući sve prekide i mjerače vremena; odabire RON Bank 0; upisuje "sve one" na portove P0_P3, pripremajući ih za unos; upisuje kod 07H u pokazivač steka (SP);

10..17

8-bitni kvazi-dvosmjerni I/O port; nakon upisa u odgovarajući bit "1" - obavlja dodatne (alternativne) funkcije:

Ulaz serijskog porta - RxD;

Izlaz serijskog porta - TxD;

Ulaz vanjskog prekida 0 - ~INT0;

Ulaz vanjskog prekida 1 - ~INT1;

Tajmer/brojač ulaz 0 - T0;

Tajmer/brojač ulaz 1 - T1;

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

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

18, 19 X1, X2 Zaključci za spajanje kvarcnog rezonatora ili LC kruga;
20 GND Opći zaključak;
21..28 P2 8-bitni kvazi-dvosmjerni I/O port; ili izlazna adresa A u načinu rada vanjske memorije (VPP ili VPD);
29 PME Strobe za čitanje vanjske programske memorije, izdaje se samo pri pristupu vanjskom ROM-u;
30 PIVO Adresni strobosjek vanjske memorije (VPP ili VPD);
31 EA Onemogućujući RPP, razina "0" na ovom ulazu prebacuje MK na odabir naredbi samo sa piste ;
39..32 P0 8-bitni dvosmjerni I/O port; kada pristupa vanjskoj memoriji, izdaje adrese A (koje su upisane u vanjski registar pomoću ALE signala), a zatim sinkrono razmjenjuje bajt sa signalom ~PME (za naredbe) ili ~WR,~RD (za podatke u VPD-u) , pri pristupu vanjskoj memoriji sve jedinice se upisuju u registar porta P0, uništavajući tamo pohranjene informacije;
40 Ucc Izlazni napon napajanja

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

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

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

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

Mnemo kod Ime
0E0h *ACC Baterija
0F0h *B Registrirajte ekspander baterije
0D0h *PSW Riječ statusa procesora
0B0h *P3 luka 3
0A0h * P2 luka 2
90h * P1 Luka 1
80h *P0 Port 0
0B8h * IP Registar prioriteta prekida
0A8h *IE Registar maske prekida
99h SBUF Međuspremnik serijskog primopredajnika
98h * SCON Registar kontrole/statusa serijskog porta
89h TMOD Registar načina rada mjerača/brojača
88h * TCON Registar mjerača vremena/upravljanja brojačem/statusa
8Dh TH1 Tajmer 1 (visoki bajt)
8bh TL1 Tajmer 1 (niski bajt)
8h TH0 Tajmer 0 (visoki bajt)
8ah TL0 Tajmer 0 (niski bajt)
83h DPH Registar pokazivača podataka (DPTR) (visoki bajt)
82h DPL Registar pokazivača podataka (DPTR) (niski bajt)
81h SP Registar pokazivača steka
87h PCON Registar kontrole snage potražnje

2. SOFTVERSKI MODEL MCS–51


VRSTE NAREDBA MCS–51

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

Tijekom jednog strojnog ciklusa, postoje dva pristupa programskoj memoriji (unutarnja ili vanjska) za čitanje dva bajta instrukcije ili jedan pristup vanjskoj memoriji podataka (EDM).

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

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

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

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

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

5 IZRAVNO BITSKO ADRESIRANJE - (bit) - koristi se za adresiranje odvojeno adresabilnih 128 bitova smještenih u RPD ćelijama na adresama 20H ... 2FH i za odvojeno adresibilne bitove posebnih funkcijskih registara (vidi tablicu 3 i model programa);

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

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

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

C - Carry (CARY) ili posudila zastavica, također funkcionira kao "boolean akumulator" u bit-operiranim uputama;

AC – pomoćna (dodatna) oznaka prijenosa – postavljena na "1" ako je naredba za zbrajanje (ADD, ADDC) imala prijenos s tetrade nižeg reda na visoki red (tj. iz 3. bita u 4. bit);

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

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

RS1,RS0 – Odabir banke registracije:

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

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

P - zastavica parnosti - je zbrajanje broja pojedinačnih bitova u akumulatoru paran broj; formira se kombinacijskim krugom (programski dostupan samo za čitanje).

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

Sve naredbe prijenosa i razmjene operanada mogu se izvesti preko Akumulatora (vidi sliku 3). Štoviše, prijenosi iz/u vanjsku memoriju (programska memorija ili memorija podataka) mogu se izvesti samo putem baterije.

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

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

XCH naredbe za razmjenu omogućuju vam slanje bajtova bez uništavanja oba operanda.

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


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

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

Rezultat izvršavanja instrukcije za dijeljenje jednobajtnih operanda - DIVAB - stavlja se: količnik - akumulator, ostatak - u registar B.

INC aritmetička instrukcija dodaje jedan odabranom operandu. Aritmetička instrukcija DEC oduzima jedan od odabranog operanda. Akumulatorska decimalna ispravka (DAA) instrukcija pomaže vam da dodate binarno kodirane decimalne (BCD) brojeve bez pretvaranja u heksadecimalni (hex) format. Izvorni operandi moraju biti u BCD formatu, tj. u svakoj tetradi od jednog bajta nalaze se samo brojevi od 0 do 9 (ne mogu biti heksadecimalni brojevi: A, B, C, D, E, F). Stoga jedan bajt može sadržavati brojeve od 00 do 99 za pakirane BCD brojeve ili brojeve od 0 do 9 za nepakirane BCD brojeve.

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

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

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

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

Logičke naredbe:

Logično "I" - ANL,

Logično "ILI" - ORL,

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

u bateriji ili

Neposredni operand u instrukciji.

Upute za rotaciju (RR A, RL A) i upute za rotaciju kroz CARY zastavu (RRC A, RLC A) rotiraju sadržaj Akumulatora za 1 bit. Bitovi se operandi šalju samo preko zastavice C.

UDK 681.5, 681.325.5 (075.8)

BBK 32.973.202-018.2 i 73

Ščerbina A.N.Računalni strojevi, sustavi i mreže. Mikrokontroleri i mikroprocesori u upravljačkim sustavima: Cheb. dodatak / A.N. Shcherbina, P.A. Nechaev-SPb.: S Veleučilišta. un-ta, 2012.-226 str.

Odgovara sadržaju državnog obrazovnog standarda za područja izobrazbe i specijalnosti iz područja upravljanja u tehničkim sustavima, elektroenergetici i elektrotehnici i sadržaju oglednog nastavnog plana i programa discipline "Računala, sustavi i mreže".

Temeljna pitanja logičke organizacije mikroprocesorskih sustava razmatraju se na primjeru osnovne arhitekture obitelji mikrokontrolera MCS-51 tvrtke Intel. Opisana je tehnologija programiranja mikrokontrolera na jezicima Assembler i SI.

Može biti od koristi studentima i nastavnicima visokih tehničkih ustanova, stručnjacima za automatizaciju tehnoloških procesa i proizvodne opreme, kao i projektantima mikroprocesorskih sustava.

Odgovara i sadržaju državnog obrazovnog standarda disciplina "Mikrokontroleri i mikroprocesori u sustavima upravljanja" i "Elektronički uređaji automatike" za prvostupničko, inženjersko i magistarsko izobrazbu smjera 140400 "Elektroenergetika i elektrotehnika".

Objavljeno odlukom uredničkog i izdavačkog vijeća

Državno politehničko sveučilište u Sankt Peterburgu.

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

© Država Sankt Peterburg

Veleučilište, 2012

ISBN 978-5-7422-3553-8


Uvod.. 7

Poglavlje 1. Arhitektura obitelji MCS51. 10

1.1 Opće karakteristike 10

1.2 Blok dijagram 11



1.3 Dodjela pinova mikrokontrolera 8051 15

1.4 Organizacija memorije 17

1.4.1 Programska memorija (ROM) 18

1.4.2 Memorija podataka (RAM) 19

1.4.3 Registri posebnih funkcija. dvadeset

1.4.4 Registar zastave (PSW) 23

1.5 Uređaj za upravljanje i sinkronizaciju 26

1.6 Organiziranje I/O portova 27

1.6.1 Opći podaci. 27

1.6.2 Alternativne funkcije. 27

1.7. Tajmeri / brojači mikrokontrolera iz obitelji 8051. 28

1.7.1. Struktura mjerača vremena. 28

1.7.2 Načini rada mjerača vremena. trideset

1.8. Serijski port 32

1.8.1. Struktura serijskog porta. 32

1.8.2. Registar upravljanja/statusa primopredajnika SCON.. 34

1.8.3. Registar kontrole snage PCON.. 36

1.9. Sustav prekida 37

1.9.1. Struktura sustava prekida. 37

1.9.2 Izvršavanje rutine prekida. 40

Poglavlje 2 Značajke 80C51GB.. mikrokontrolera 42

2.1 Značajke 42

2.2 I/O portovi P0-P5 43

2.2.1 Rad I/O portova. 43

2.2.2 Pisanje na port.. 46

2.3 Značajke 8XC51GB.. sustava prekida 49

Omogući/onemogući prekide. 50

Upravljanje prioritetom prekida. 51

vanjski prekidi. 54

2.3. ADC čvor 56

2.4. Hardverski nadzornik 61

2.5. Detekcija kvara sata 63

2.6. Matrica programabilnih brojača RSA 64

2.6.1. Struktura PCA.. 64

2.6.2. PCA registar načina rada brojača (CMOD) 66

2.6.3. Kontrolni registar PCA brojača (CON) 67

2.6.4. Usporedite/popravite module. 68

2.7. Poboljšani serijski port 76

2.8. Brojači vremena 79

Dodjela pinova 8XC51GB.. grupnih mikrokontrolera 86

Poglavlje 3 Programiranje MK 8051GB.. 89

3.1. Model softvera 89

3.2 Tipovi podataka 93

3.3 Načini adresiranja podataka 93

3.4 Sustav zapovijedanja 95

3.4.1 Opće karakteristike. 95

3.4.2 Vrste naredbi. 96

3.4.3 Vrste operanda. 97

3.4.4 Naredbe za prijenos podataka mikrokontrolera. 98

3.4.5 Aritmetičke upute 8051.101

3.4.6 8051 Logičke naredbe MCU. 104

3.4.7 8051 Bit Operation Commands. 106

3.5 Programi za otklanjanje pogrešaka 111

Poglavlje 4. Programski jezik ASM-51. 112

4.2 Pisanje teksta programa 113

4.3 Jezična abeceda. 114

4.4 Identifikatori. 115

4.5 Brojevi 117

4.6 Direktive 118

4.7 Implementacija potprograma u ASM51 122

4.7.1 Struktura potprograma-procedure u jeziku ASM51. 122

4.7.2 Prosljeđivanje parametarskih varijabli u potprogram. 123

4.7.3 Implementacija potprograma-funkcija u jeziku ASM51. 123

4.7.4 Implementacija rutina za rukovanje prekidima u jeziku ASM51. 124

4.8 Strukturirano programiranje u asemblerskom jeziku. 125

4.9 Osobitosti prevođenja višemodulnih programa.. 126

4.10 Korištenje segmenata 128

4.10.1 Particioniranje MK memorije na segmente .. 128

4.10.2 Apsolutni memorijski segmenti. 129

4.10.2 Premještavi memorijski segmenti. 131

Poglavlje 5. Programski jezik C-51. 134

5.1 Opće karakteristike jezika 134

5.3 Struktura programa C-51 136

5.3. Elementi programskog jezika C-51 138

5.3.1. Simboli.. 138

5.3.2. Leksičke jedinice, separatori i upotreba razmaka. 141

5.3.3 Identifikatori.. 142

5.3.4 Ključne riječi. 143

5.3.5 Konstante.. 143

5.4. Izrazi u jezičnim izjavama 146

programiranje C-51 146

5.5. Prioriteti operacije 148

5.6. Izjave programskog jezika C-51 149

5.6.1. operatori deklaracije. 150

5.6.2 Izvršni izrazi.. 150

5.6.3 Operator dodjele. 151

5.6.4 Uvjetna izjava. 151

5.6.5 Strukturni operator (). 152

5.6.6 Naredba petlje for. 152

5.6.7 Naredba petlje s provjerom uvjeta do tijela while petlje. 153

5.6.8 Naredba petlje s provjerom uvjeta nakon tijela petlje do while. 154

5.6.9 Izjava o prekidu. 155

5.6.10 Izjava o nastavku. 155

5.6.11 Izjava o odabiru prekidača. 155

5.6.12 Operator goto. 157

5.6.13 Operatorski izraz. 158

5.6.14 Naredba povrata iz potprograma return. 158

5.6.15 Prazna izjava. 158

5.7. Deklariranje varijabli u programskom jeziku C-51. 159

5.7.1. Deklaracija varijable. 159

5.7.3 Cjelobrojni tipovi podataka. 161

5.7.4 Brojevi s pomičnim zarezom. 162

5.7.5 Varijable nabrojanog tipa. 162

5.7.6. Deklariranje nizova u programskom jeziku C-51. 164

5.7.7. Konstrukcije.. 165

5.7.8. Asocijacije (mješavine) 166

5.8. Korištenje pokazivača u C-51 167

5.8.1. Deklariranje pokazivača. 167

5.8.2. Neupisani pokazivači. 168

5.8.3. Pokazivači ovisni o memoriji. 169

5.9. Deklariranje novih tipova varijabli 169

5.10. Inicijalizacija podataka 170

5.11. Korištenje potprograma u programskom jeziku C-51. 170

5.11.1. Definicija potprograma.. 171

5.11.2. Parametri potprograma .. 173

5.11.3. Unaprijed deklaracija potprograma.. 174

5.11.4 Pozivanje potprograma.. 176

5.11.5 Rekurzivni poziv potprograma.. 176

5.11.6 Prekidane rutine. 177

5.11.7 Opseg varijabli i potprograma.. 178

5.12. Višemodulni programi 179

Poglavlje 6. Priprema programa u integriranom razvojnom okruženju Keil μVision2. 182

6.1 Izrada projekta ASM-51 182

6.2 Primjer izrade C projekta za kontroler obuke u Keil μVision2 IDE 188

Poglavlje 7 Opis kontrolera učenja .. 199

7.1. Struktura kontrolera 199

7.2. Adresni prostor 200

7.2.1. Dodjela memorije. 200

7.2.2 Vanjska memorija. 201

7.2.3. Interna memorija podataka. 202

7.3. Dodjela ulazno/izlaznih portova 202

7.4. Serijski priključak……………………………………………203

7.5. Rad s LCD 205

7.6. Kontrolne ploče……………………………………………………………213

DODATAK P2 STRUKTURA IZVJEŠĆA O LABORATORIJSKOM RADU……..217

Dodatak P3 Kodovi strojnih naredbi. 217

Literatura... 224


Uvod

U razvoju specijalnosti vezanih uz automatizaciju tehnoloških procesa i proizvodnje, studij mikrokontrolera jedan je od važnih odjela.

U svijetu postoji kontinuirani razvoj i pojava sve više 16- i 32-bitnih mikrokontrolera i mikroprocesora, no najveći udio na svjetskom tržištu mikroprocesora i dalje pripada 8-bitnim uređajima. Prema svim prognozama analitičkih tvrtki za bližu budućnost, vodeći položaj 8-bitnih mikrokontrolera na svjetskom tržištu će se nastaviti.

Trenutno, među svim 8-bitnim mikrokontrolerima, obitelj MCS-51 je neprikosnoveni lider u broju varijanti i broju tvrtki koje proizvode njegove modifikacije. Ime je dobio po prvom predstavniku ove obitelji - mikrokontroleru 8051. Uspješan set perifernih uređaja, fleksibilan izbor vanjske ili interne programske memorije i pristupačna cijena osigurali su uspjeh ovog mikrokontrolera na tržištu.

Prednosti obitelji MCS-51:

arhitektura, koja je de facto standard;

Ekstremna širina obitelji i raznolikost mogućnosti;

Dostupnost visokoučinkovitih i proširenih verzija procesora;

značajan broj slobodno dostupnih softverskih i hardverskih razvoja;

jednostavnost hardverskog programiranja, uključujući programiranje unutar kruga;

niska cijena i dostupnost osnovnih čipova;

Dostupnost specijaliziranih verzija kontrolera za posebne uvjete korištenja

Dostupnost verzija kontrolera sa smanjenom razinom elektromagnetskih smetnji;

· široka popularnost među programerima starije generacije, kako u svijetu tako iu zemljama ZND-a;

Podrška arhitekturi od strane vodećih obrazovnih institucija svijeta.

I, konačno, glavna prednost: svladavši osnovni čip obitelji, lako je početi raditi s takvim računalnim "čudovištima" kao što su Cygnal, Dallas Semiconductor, Analog Devices, Texas Instruments mikrokontroleri.

Obitelj MCS-51 uključuje cijeli niz mikro krugova od najjednostavnijih mikrokontrolera do prilično složenih. Do danas postoji više od 200 modifikacija mikrokontrolera obitelji 8051, koje proizvodi gotovo 20 tvrtki. Svake godine postoji sve više varijanti predstavnika ove obitelji.

Glavna područja razvoja su:

povećanje brzine (povećanje frekvencije takta i redizajn arhitekture);

smanjenje napona napajanja i potrošnje energije;

· povećanje količine RAM-a i FLASH memorije na čipu uz mogućnost programiranja unutar kruga;

· uvođenje složenih uređaja kao što su sustavi upravljanja pogonom, CAN i USB sučelja itd. na periferiju mikrokontrolera.

Mikrokontroleri iz obitelji MCS-51 omogućuju vam obavljanje zadataka upravljanja raznim uređajima i implementacije pojedinačnih čvorova analognog kruga. Svi mikro krugovi ove obitelji rade s istim sustavom zapovijedanja. Većina ih se izvodi u istim kućištima s istim pinoutom (numeracija nogu za kućište). To omogućuje korištenje mikro krugova različitih proizvođača za razvijeni uređaj bez mijenjanja dijagrama sklopa uređaja i programa.

Glavni proizvođači sorti 51. obitelji u svijetu su Philips, Siemens, Intel, Atmel, Dallas, Temic, Oki, AMD, MHS, Gold Star, Winbond, Silicon Systems i niz drugih.

Karakteristike analoga mikrokontrolera obitelji MCS-51 (Intel 8XC51FA, 8XC51GB, 80C152) s naprednim značajkama dane su u tablici. U 1.

Tablica B.1

radna memorija ROM SAR ADC WDT T/C Posteljica. Kanali Osobitosti
Atmel: AT89C2051
- - - - UART Flash 2 Kb
AT89C4051 - - - - UART Flash 4 Kb
AT89S4D12 128 tisuća - - - UART, SPI Flash 4 Kb
DALLAS Semiconductor: DS5000FP
- - - + UART bootstrap loader
DS5001FP - - - + UART bootstrap loader
DS8xC520 16 tisuća - - + 2xUART 2DPTR
SIEMENS: C505C
16 tisuća - + + UART, KAN 8DPTR
C515C 64 tisuća - + + UART+SSC+CAN 4 PWM, 8 DPTR
Philips: *89C51RA+
- + - + UART 2 DPTR, 4. nivo prekid, clock out, Flash 8K
P51XAG1x 8K - - + 2 UART-a
Intel: 8xC51RA
8K - + + UART 4 razine IRQ, clock out
8XC196KC 64 tisuća 16 tisuća - + - UART 3 PWM
80C196KB 64 tisuća 8K - + - UART PWM

Poglavlje 1 Obiteljska arhitektura MCS51

8-bitni mikrokontroleri s jednim čipom iz obitelji MCS-51 stekli su veliku popularnost među programerima mikroprocesorskih upravljačkih sustava zbog svoje dobro osmišljene arhitekture. Arhitektura mikrokontrolera je skup internih i eksternih softverski dostupnih hardverskih resursa i sustava naredbi. Arhitektura obitelji MCS-51 uvelike je određena njegovom svrhom - izgradnjom kompaktnih i jeftinih digitalnih uređaja. Mikrokontroleri koji obavljaju sve funkcije mikroračunala pomoću jednog mikrosklopa nazivaju se računala s jednim čipom (OEVM).

Intel je izdao oko 50 modela baziranih na operativnoj jezgri mikrokontrolera Intel 8051. Istovremeno, mnoge druge tvrtke, poput Atmela, Philipsa, započele su proizvodnju svojih mikrokontrolera razvijenih u standardu MCS-51.

Opće karakteristike

Glavne karakteristike obitelji:

· 8-bitna središnja procesorska jedinica (CPU), usmjerena na kontrolu izvršnih uređaja;

· CPU ima ugrađeni sklop 8-bitnog hardverskog množenja i dijeljenja brojeva;

Prisutnost u skupu instrukcija velikog broja operacija za rad s izravno adresiranim bitovima omogućuje govoriti o procesoru za rad s bitnim podacima (Booleov procesor);

interna (na čipu) programska memorija maske ili reprogramibilnog tipa, koja ima volumen od 4 do 32 Kb za različite kristale, u nekim verzijama je odsutna;

· najmanje 128 bajtova rezidentnog RAM-a koji se koristi za organizaciju, registar banaka, stog i pohranu korisničkih podataka;

· najmanje 32 dvosmjerne linije sučelja (porta), pojedinačno konfigurirane za unos ili izlaz informacija;

· dva 16-bitna multi-mode brojača/tajmera koji se koriste za brojanje vanjskih događaja, organiziranje vremenskih kašnjenja i satiranje komunikacijskog porta;

· Dvosmjerni dupleks asinkroni primopredajnik (UART) dizajniran za organiziranje komunikacijskih kanala između mikrokontrolera i vanjskih uređaja sa širokim rasponom brzina prijenosa informacija. Postoje sredstva za hardversko-softversku integraciju mikrokontrolera u povezani sustav;

· dvorazinski prioritetni sustav prekida koji podržava najmanje 5 vektora prekida iz 4 interna i 2 vanjska izvora događaja;

ugrađeni generator takta.

Strukturna shema

Blok dijagram kontrolera prikazan je na slici 1.1 i sastoji se od sljedećih glavnih funkcionalnih jedinica: upravljačke jedinice, aritmetičko-logičke jedinice, jedinice timera/brojila, serijskog sučelja i jedinice za prekid, programskog brojača, memorije podataka i programska memorija. Bilateralna razmjena provodi se pomoću interne 8-bitne autoceste podataka. Gotovo svi predstavnici obitelji MCS-51 izgrađeni su prema ovoj shemi. Različiti mikro krugovi ove obitelji razlikuju se samo po registrima posebne namjene (uključujući broj priključaka).

Jedinica za upravljanje i sinkronizaciju (Timing and Control)- dizajniran za generiranje sinkronizirajućih i upravljačkih signala koji osiguravaju koordinaciju zajedničkog rada OEVM jedinica u svim dopuštenim načinima rada. Upravljačka jedinica uključuje:

uređaj za formiranje vremenskih intervala;

ulazno-izlazna logika;

registar uputa;

registar upravljanja potrošnjom električne energije;

dekoder naredbi, računalna upravljačka logika.

Riža. 1.1. Strukturni dijagram I8051 kontrolera.

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

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

Registar kontrole potražnje (PCON) omogućuje vam da zaustavite rad mikrokontrolera kako biste smanjili potrošnju energije i smanjili razinu smetnji od mikrokontrolera. Još veće smanjenje potrošnje energije i smanjenje buke može se postići zaustavljanjem glavnog oscilatora mikrokontrolera. To se može postići prebacivanjem bitova u registru upravljanja potražnjom PCON. Za n-MOS proizvodnu opciju (serija 1816 ili strani čipovi koji nemaju slovo "c" u sredini imena), PCON registar kontrole snage sadrži samo jedan bit koji kontrolira brzinu prijenosa SMOD serijskog porta, i nema bitova za kontrolu snage.

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

registri akumulatora, registri držanja TMP1 i TMP2;

ROM konstante;

guja;

dodatni registar (registar B);

baterija (ACC);

registar statusa programa (PSW).

Registar registri akumulatora i držanja- osmobitni registri dizajnirani za primanje i pohranjivanje operanada za vrijeme trajanja operacija na njima. Ovi registri nisu programski dostupni.

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

Paralelni 8-bitni zbrajač je sklop kombiniranog tipa sa sekvencijalnim prijenosom, dizajniran za izvođenje aritmetičkih operacija zbrajanja, oduzimanja i logičkih operacija zbrajanja, množenja, neekvivalencije i identičnosti.

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

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

Serijsko sučelje i blok prekida (SIP) dizajniran za organizaciju ulaza – izlaza sekvencijalnih tokova informacija i organizaciju sustava programskih prekida. Blok uključuje:

tampon PIP;

logika upravljanja;

kontrolni registar;

međuspremnik odašiljača;

međuspremnik prijemnika;

serijski primopredajnik;

registar prioriteta prekida;

registar omogućavanja prekida;

logika obrade zastavice prekida i shema generiranja vektora.

Brojač programa je dizajniran da formira trenutnu 16-bitnu adresu interne programske memorije i 8/16-bitnu adresu vanjske programske memorije. Programski brojač sastoji se od 16-bitnog PC međuspremnika, PC registra i inkrementnog kruga (povećava sadržaj za 1).

Podatkovna memorija (RAM) namijenjen je za privremeno pohranjivanje informacija koje se koriste tijekom izvođenja programa.

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

Registar statusa programa (PSW) dizajniran je za pohranu informacija o stanju ALU-a tijekom izvođenja programa.

Programska memorija (EPROM) dizajniran za pohranjivanje programa i memorija je samo za čitanje (ROM). Različiti mikro krugovi koriste maskirane, UV-izbrisive ili FLASH ROM-ove.

Registar pokazivača podataka (DPTR) dizajniran za pohranu 16-bitne adrese vanjske memorije podataka.

Pokazivač steka (SP) je osmobitni registar dizajniran za organiziranje posebnog memorijskog područja podataka (stog), u koji možete privremeno pohraniti bilo koju memorijsku ćeliju.

1.3 8051 dodjela pinova mikrokontrolera(slika 1.2)

· U ss - potencijal zajedničke žice ("zemlja");

U cc - napon glavnog napajanja +5 V;

· X1,X2 - zaključci za spajanje kvarcnog rezonatora;

· RST - ulaz za opće resetiranje mikrokontrolera;

PSEN - dopuštenje vanjske programske memorije, izdano samo pri pristupu vanjskom ROM-u;

· ALE - eksterna memorijska adresa strobe;

· EA - onemogućiti internu memoriju programa; razina 0 na ovom ulazu uzrokuje da mikrokontroler izvršava program samo iz vanjskog ROM-a; ignoriranje unutarnjeg (ako potonje postoji);

Riža. 1.2. Dodjela pinova 8051.

P1 - osmobitni kvazi-dvosmjerni ulazno/izlazni port, svaki bit porta može se programirati i za unos i za izlaz informacija, bez obzira na status ostalih bitova;

· P2 - osmobitni kvazi-dvosmjerni port, sličan P1, pinovi ovog porta se koriste za izdavanje informacija o adresi prilikom pristupa vanjskoj programskoj ili podatkovnoj memoriji (ako se koristi 16-bitno adresiranje potonje). Osim toga, pinovi porta se koriste prilikom programiranja za unos bitova višeg reda adrese u mikrokontroler;

· RZ - osmobitni kvazi-dvosmjerni port, sličan R1, pinovi ovog porta mogu obavljati niz alternativnih funkcija koje se koriste u radu mjerača vremena, serijskog I/O porta, kontrolera prekida i eksternih memorija programa i podataka;

· P0 - multipleksirani osmobitni dvosmjerni port za ulaz-izlaz informacija, kroz ovaj port u različitim vremenskim trenucima izlaze niži bajt adrese i podataka.

Organizacija memorije

Cijela serija MCS-51 ima harvardsku arhitekturu, odnosno odvojene adresne prostore programske i podatkovne memorije. Struktura memorije prikazana je na sl. 1.3.

Količina interne (rezidentne) programske memorije (ROM, EPROM ili OTP ROM) koja se nalazi na čipu, ovisno o vrsti mikrosklopa, može biti 0 (ROMless), 4K (osnovni čip), 8K, 16K ili 32K. Ako je potrebno, korisnik može proširiti memoriju programa instaliranjem vanjskog ROM-a. Pristup unutarnjem ili vanjskom ROM-u određen je vrijednošću signala na pinu EA (External Access):

EA=V cc (napon napajanja) - pristup internom ROM-u;

EA=V ss (potencijal uzemljenja) - pristup vanjskom ROM-u.

Za čipove bez ROM-a, EA pin mora biti trajno spojen na V ss.

Riža. 1.3. Organizacija memorije obitelji MCS-51

Eksterni ROM čitač - (Program Store Enable) generira se prilikom pristupa vanjskoj programskoj memoriji i neaktivan je tijekom pristupa ROM-u koji se nalazi na čipu. Adresno područje niske programske memorije koristi sustav prekida. Arhitektura osnovnog čipa 8051 podržava pet izvora prekida:

dva vanjska prekida;

dva prekida od mjerača vremena;

prekida iz serijskog porta.

Na sl. 1.4 prikazuje mapu donjeg područja programske memorije.

Riža. 1.4. Karta donjeg područja programske memorije

Programska memorija (ROM)

Za mikrokontrolere iz obitelji 8051, programska memorija i memorija podataka su neovisni i neovisni uređaji kojima se adresiraju različite naredbe i upravljački signali.

Količina ugrađene programske memorije koja se nalazi na čipu mikrokontrolera 8051 je 4 KB (u obitelji do 32). Prilikom pristupa vanjskoj programskoj memoriji, svi 8051 mikrokontroleri uvijek koriste 16-bitnu adresu, što im omogućuje pristup 64 KB ROM-a. Mikrokontroler pristupa programskoj memoriji prilikom čitanja opkoda i operanada (pomoću računalnog programskog brojača), kao i prilikom izvršavanja naredbi za kopiranje bajta iz programske memorije u akumulator. Prilikom izvršavanja naredbi za kopiranje podataka, adresiranje programske memorijske ćelije iz koje će se podaci čitati može se provesti i korištenjem računala računala i posebnog dvobajtnog registra pokazivača podataka DPTR.

Podatkovna memorija (RAM)

Količina podatkovne memorije na čipu je 128 bajtova. Vanjska podatkovna memorija može biti do 64 KB. Prva 32 bajta organizirana su u četiri banke registara opće namjene, označene kao banka 0 - banka 3. Svaki od njih se sastoji od osam registara R0-R7. Programu je u svakom trenutku dostupna, uz adresiranje registra, samo jedna banka registara, čiji se broj nalazi u trećem i četvrtom bitu riječi statusa PSW programa.

8051 Adrese područja bitova mikrokontrolera

Tablica 1.1

Adresa bajta (hex) Bit adrese po bit
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

Preostali adresni prostor programer može konfigurirati prema vlastitom nahođenju: može prihvatiti područja stog, sustava i korisničkih podataka. Podatkovnim memorijskim ćelijama može se pristupiti na dva načina. Prvi način je izravno adresiranje memorijske ćelije. U ovom slučaju, adresa ćelije je operand odgovarajuće instrukcije. Druga metoda je neizravno adresiranje pomoću registara pokazivača R0 ili R1: prije izvršavanja odgovarajuće naredbe, jedan od njih mora sadržavati adresu ćelije kojoj je potrebno pristupiti.

Za pristup vanjskoj memoriji podataka koristi se samo neizravno adresiranje pomoću registara R0 i R1 ili pomoću 16-bitnog registra pokazivača DPTR.

Dio memorije podataka je područje bitova, ima mogućnost korištenja posebnih bitnih naredbi za adresiranje svake znamenke memorijskih ćelija. Adresa bitova koji se mogu izravno adresirati također se može napisati u obliku (ByteAddress).(Bit). Korespondencija između ove dvije metode adresiranja može se odrediti iz tablice. 1.1.

Sustav naredbi OMEVM pruža velike mogućnosti obrade podataka, pruža provedbu logičkih, aritmetičkih operacija, kao i kontrolu u stvarnom vremenu. Implementirana bitna, tetradna (4 bita), bajt (8 bita) i 16-bitna obrada podataka.

LSI obitelj MCS-51 - 8-bitni OMEVM: ROM, RAM, registri posebne namjene, ALU i vanjske sabirnice imaju organizaciju bajtova. Dvobajtne podatke koriste samo registar pokazivača (DPTR) i programski brojač (PC). Treba napomenuti da se registar pokazivača podataka može koristiti kao dvobajtni registar DPTR ili kao dva jednobajtna registra posebne namjene DPH i DPL. Programski brojač uvijek se koristi kao dvobajtni registar.

Skup naredbi OMEVM ima 42 mnemonike naredbi za specificiranje 33 funkcije ovog sustava.

Sintaksa većine uputa asemblerskog jezika sastoji se od funkcije mnemonika iza koje slijede operandi koji specificiraju metode adresiranja i tipove podataka. Različiti tipovi podataka ili načini adresiranja određeni su postavljenim operandima, a ne promjenama mnemoničke notacije.

Sustav zapovijedanja može se uvjetno podijeliti u pet grupa:

Postoje sljedeće vrste adresiranja izvornog operanda:

  • Neizravno adresiranje registra zbrojem osnovnih i indeksnih registara

Tablica oznaka i simbola koji se koriste u sustavu zapovijedanja

Oznaka, simbol Svrha
A Baterija
Rn Registri trenutno odabrane banke registara
r Broj učitanog registra naveden u naredbi
direktno Izravno adresabilna 8-bitna adresa interne lokacije podataka, koja može biti interna podatkovna RAM lokacija (0-127) ili SFR (128-255)
@rr Neizravno adresabilna 8-bitna interna podatkovna RAM lokacija
podaci8 8-bitni neposredni podaci uključeni u CPC
podaciH MSB-ovi (15-8) neposrednih 16-bitnih podataka
podaciL Niski bitovi (7-0) neposrednih 16-bitnih podataka
addr11 11-bitna odredišna adresa
addrL Najmanji značajni bitovi odredišne ​​adrese
disp8 8-bitni predznačni pomakni bajt
malo Izravno adresibilni bit čija adresa sadrži CPC koji se nalazi u internom podatkovnom RAM-u ili SFR-u
a15, a14...a0 Bitovi odredišne ​​adrese
(X) Sadržaj elementa X
((X)) Sadržaj na adresi pohranjenoj u elementu X
(X) [M] Pražnjenje M element X

+
-
*
I
ILI
XOR
/X
Operacije:
dodaci
oduzimanje
množenje
podjela
logičko množenje (operacija I)
logično zbrajanje (operacija ILI)
zbrajanje po modulu 2 (XOR)
inverzija elementa X

Funkcijska mnemonika je jedinstveno povezana sa specifičnim kombinacijama metoda adresiranja i tipova podataka. Ukupno je u zapovjednom sustavu moguće 111 takvih kombinacija. Tablica prikazuje popis naredbi poredanih po abecedi.

Mnemotehnika Funkcija Zastave
ACALL tim Apsolutni poziv potprograma
Dodatak AC, C, OV
Dodatak s prijenosom AC, C, OV
AJMP tim Apsolutni prijelaz
Logika "I"
Logički "AND" za varijabilne bitove C
Usporedite i skočite ako ne i jednaki C
Tim CLR A Resetiranje baterije
CLR tim Reset bit C, bit
CPL tim A Inverzija baterije
CPL tim Inverzija bita C, bit
Tim DA A Akumulator decimalni ispravak za zbrajanje AC, C
DEC tim<байт> Smanjenje
Tim DIV AB Podjela C, OV
Tim DJNZ<байт>, <смещение> Smanjenje i skok ako nije nula
Tim I.N.C.<байт> Povećanje
Tim INC DPTR Povećanje pokazivača podataka
Tim J.B. , Skoči ako je bit postavljen
Tim JBC , Grani se ako je bit postavljen i resetiraj ovaj bit
Tim J.C. Skočite ako je prijenos postavljen
Naredba JMP @A+DPTR Neizravni prijelaz
Tim JNB , Skoči ako bit nije postavljen
Tim JNC Skočite ako prijenos nije postavljen
Tim JNZ Skoči ako je sadržaj akumulatora različit od nule
Tim JZ Skoči ako je sadržaj akumulatora 0
LCALL tim dugi poziv
Tim LJMP duga tranzicija
Proslijedi varijabilni bajt
Pošalji bit podataka C
Naredba MOV DPTR,#podaci16 Učitavanje pokazivača podataka sa 16-bitnom konstantom
MOVC instrukcija A,@A+( ) Premjesti bajt iz programske memorije
Pošaljite podatke u vanjsku memoriju (iz vanjske memorije).