Računalniki Windows internet

Mikrokontrolerji MCS-51. Blok diagram, ALU, pomnilnik podatkov. Mikrokrmilniki družine mcs51 Kako narediti vrata za sprejem mcs 51

Osnovna različica MCS-51 Kratke informacije. Sodobni 8-bitni mikrokrmilniki (MC) imajo takšne nadzorne vire v realnem času, za katere so bile prej uporabljene drage postavitve z več čipi v obliki ločenih mikroračunalniških plošč, in sicer:

● imeti zadostno kapaciteto pomnilnika, njegovo fizično in logično razdelitev na programski pomnilnik in podatkovni pomnilnik (harvardska arhitektura) ter ukazni sistem, usmerjen v izvajanje krmilnih algoritmov;

● vključujejo vse naprave (procesor, ROM, RAM, vhodna/izhodna vrata, prekinitveni sistem, orodja za obdelavo bitnih informacij itd.), ki so potrebne za izvajanje mikroprocesorskega krmilnega sistema z minimalno konfiguracijo. V sedemdesetih letih prejšnjega stoletja je podjetje Intel razvil in obvladal komercialno proizvodnjo družine 8-bitnih mikrokrmilnikov MCS-48, ki jih združujejo številne skupne značilnosti (zmogljivost številk, ukazni sistem, nabor osnovnih funkcionalnih blokov itd.). Osnovna različica te družine vključuje:

● 8-bitni procesor;

● notranji programski pomnilnik (1/2/4K bajtov);

● notranji pomnilnik podatkov (64/128/256 bajtov);

● do 27 notranjih in 16 zunanjih V/I linij;

● en 8-bitni števec časa;

● enonivojski prekinitveni sistem z dvema viroma zahtev. Leta 1980 je isto podjetje razvilo novo družino osembitnih mikrokrmilnikov MCS-51, ki je združljiva z arhitekturo družine MCS-48, vendar ima širše zmogljivosti.

Arhitektura družine MCS-51 se je izkazala za tako uspešno, da je še danes eden od standardov za 8-bitne MK. Zato so bili za predmet študija izbrani MC te družine, ki se pogosto uporabljajo v razmeroma enostavnih krmilnih sistemih.

Za družino MCS-51 so bila razvita različna orodja za pripravo programov (prevajalniki, strojno-programski emulatorji itd.), obstaja pa veliko število knjižnic standardnih podprogramov. Družina vključuje različne modifikacije mikrovezij (različice čipov) mikrokrmilnikov. Članki tega razdelka dovolj podrobno obravnavajo osnovno različico mikrokrmilnikov družine MCS-51 (mikrovezje 8051 ustreza domačemu analogu KP1816BE51), najpreprostejše v strukturnem in funkcionalnem smislu ter v smislu razumevanja.

Naslednje serije mikrovezij, ob ohranjanju združljivosti z osnovno različico, se od nje razlikujejo po izboljšani proizvodni tehnologiji, električnih parametrih, dodatni strojni opremi in funkcionalnosti. Naslednji članki so posvečeni strukturnim in funkcionalnim značilnostim poznejših modifikacij mikrovezij družine MCS-51.
Splošni blok diagram MCS–51. Sestava MC, katerega posplošen blok diagram je prikazan na sl. 7.1.1, vključuje:

● 8-bitna centralna procesorska enota CPU, sestavljena iz ALU, krmilne naprave uu in generator naslovov F;

● maskiran ROM z zmogljivostjo 4K bajtov za shranjevanje programov;

● 128 bajtov RAM za shranjevanje podatkov;

● štiri programabilna vrata Р0–Р3 za vnos-izhod informacij;

● BPI serijski vmesniški blok za izmenjavo informacij z zunanjimi napravami preko dvožične linije;

● blok časovnikov/števcev BT/C za vzdrževanje načina v realnem času;

● BP prekinitveni blok za organizacijo prekinitev izvedljivih programov. Ta sredstva se oblikujejo rezident del mikrokrmilnika, ki se nahaja neposredno na čipu. MC vključuje veliko število registrov, ki so dodeljeni ločenim funkcionalnim blokom in niso prikazani na diagramu.

Diagram tudi ne prikazuje krmilnih tokokrogov. Dvostranska izmenjava informacij med bloki se izvaja preko internega 8-bitnega podatkovno vodilo SD-8.

Z notranjim 16-bitnim naslovno vodilo SHA-16, je naslov, oblikovan v CPU, prikazan v ROM-u (12 bitov naslova) in v RAM-u (8 nizkih bitov).

Pri uporabi zunanjega pomnilnika se 8 nižjih bitov naslova izpusti na vrata P0 in 3 ali 8 višjih bitov izhodi na vrata P2.

Za logično razširitev vmesnika se uporablja kombinacija funkcij pristaniških linij. Kot primer, na sl. 7.1.1 pikčasta črta prikazuje črte vrat P3, ki delujejo alternativa funkcije prenosa krmilnega signala, katerih namen bo obravnavan v nadaljevanju. Za ustvarjanje notranjega generatorja ure sta kvarčni resonator in dva kondenzatorja priključena na izhode mikrovezja MK (slika 7.1.1). Namesto notranjega generatorja ure se lahko za sinhronizacijo uporabi zunanji oscilator. Konvencionalna grafična oznaka mikrovezja MK je prikazana na sl. 7.1.2, poimenovanje in namen zaključkov - v tabeli. 7.1.1. Razmislite o funkcionalnih blokih MK in načelu njihovega delovanja. Aritmetično-logična naprava. Aritmetično-logična enota je zasnovana za izvajanje aritmetičnih (vključno z množenjem in deljenjem) in logičnih operacij na osembitnih operandih, pa tudi za operacije logičnega premika, ničle, nastavitve itd. Blok diagram ALU je prikazan na sl. 7.1.3.

ALU vključuje

● vzporedni osembitni seštevek Kombinacijski tip SM z zaporednim prenosom, ki izvaja aritmetične (seštevanje in odštevanje) in logične (seštevanje, množenje, nesorazmerje in istovetnost) operacij;

baterija A, zagotavljanje funkcij glavnega aritmetičnega registra;

registrirati B, ki se uporablja za izvajanje operacij množenja in deljenja ali kot dodatni superoperacijski register, katerega funkcije določi uporabnik;

registri(programsko ni na voljo) začasno skladiščenjeРВХ1, РВХ2, namenjeni sprejemanju in shranjevanju operandov za čas trajanja operacije;

● ROM konstante ROM, ki shranjuje korekcijsko kodo za dvojiško-decimalno predstavitev podatkov, kodo maske za bitne operacije in konstantno kodo;

register stanja programa PSW, ki določa stanje ALU po opravljeni operaciji. V tabeli. 7.1.2 podaja informacije o dodelitvi bitov posameznim števkom registra PSW. Krmilna naprava. Krmilna enota CPU (CU) predvideno za usklajevanje skupnega dela vseh vozlišč MK z uporabo ustvarjene ure in krmilnih signalov. Vključuje (slika 7.1.4):

enota za sinhronizacijo in upravljanje USU, ki generira urne impulze, ki nastavljajo strojne cikle in njihova posamezna stanja (S) in faze (P), ter glede na način delovanja MK generira potreben nabor krmilnih signalov. Za izvedbo ukaza so dodeljeni en, dva ali štirje strojni cikli.

Vsak strojni cikel ima šestih držav S1–S6, A vključuje vsako stanje dve fazi P1, P2, katerega trajanje je obdobje nihanja generatorja ure T 0SC .

Trajanje strojnega cikla je 12T 0SC. Vsi strojni cikli so enaki, začenši s fazo S1P1 in končajo s fazo S6P2.

Poleg taktnih impulzov, urna naprava v vsakem strojnem ciklu generira dva (včasih en) strobo signala nizkega bajta naslova ALE kot pozitiven impulz v fazah S1P2-S2P1 in S4P2-S5P1. Časovni diagrami na sl. 7.1.5 ponazoriti organizacijo strojnih ciklov;

● register ukazov RK, ukazni dekoder DC in PLA, ki v vsakem strojnem ciklu omogočata oblikovanje niza mikrooperacij v skladu z mikroprogramom ukaza, ki se izvaja;

● vhodno-izhodna logika LVV za sprejem in oddajo signalov, ki zagotavljajo izmenjavo informacij med MC in zunanjimi napravami preko vrat Р0–Р3;

● Register PCON, ki ima en sam omogočen SMOD bit v položaju PCON.7 za podvojitev hitrosti prenosa podatkov serijskih vrat. Preostali deli so rezervirani za prihodnjo uporabo.
Generator naslovov. Oblikovalec naslovov (FA) ali števec ukazov PC, predvideno za oblikovanje trenutnega 16-bitnega naslova programskega pomnilnika in 8/16-bitnega naslova zunanjega pomnilnika podatkov. Vključuje (slika 7.1.6):

● 16-bitni pufer B, ki komunicira med 8-bitnim podatkovnim vodilom SD in 16-bitnim notranjim vodilom (IS) generatorja naslovov;

● shema prirastka SI za povečanje vrednosti trenutnega naslova programskega pomnilnika za eno;

● register za shranjevanje trenutnega naslova ukazov PTA, ki prihajajo iz SI;

● Register podatkovnega kazalca DPTR , sestavljen iz dveh 8-bitnih registrov DPH in DPL. Služi za shranjevanje 16-bitnega naslova zunanjega pomnilnika podatkov in se lahko uporablja kot dva neodvisna programsko dostopna RON;

● Register generatorja naslovov RFA za shranjevanje naslova izvršilnega 16-bitnega programskega pomnilnika ali 8/16-bitnega naslova zunanjega pomnilnika podatkov. Ta register se uporablja tudi za prenos podatkov prek vrat P0 na zunanje naprave pri izvajanju navodil MOVX @Rm, A in MOVX @DPRT, A.

Podatkovni pomnilnik. Podatkovni pomnilnik predvideno za sprejemanje, shranjevanje in izdajanje informacij, ki se uporabljajo v procesu izvajanja programa. Notranji (rezidenčni) pomnilnik (slika 7.1.7) podatkov je sestavljen iz RAM-a s kapaciteto 128 bajtov, kazalec sklada SP, naslovni register RAM RA in dekoder Dsh. Kazalec sklada SP je 8-bitni register, ki sprejme in shrani naslov lokacije sklada, do katerega je bil nazadnje dostopen. Po ponastavitvi je kazalec sklada nastavljen na naslov 07H, ki ustreza začetku sklada z naslovom 08H. Naslovni register RA skupaj z dekoderjem Dsh omogoča dostop do zahtevane pomnilniške celice, ki vsebuje bajt ali bit informacij.

MK omogoča povečanje količine podatkovnega pomnilnika do 64 KB s povezavo zunanje naprave za shranjevanje. Kot primer, na sl. 7.1.8 prikazuje ostranjevanje zunanjega podatkovnega pomnilnika VPD z zmogljivostjo 2K bajtov z uporabo navodil, kot je MOVX @ Rm(m = 0; 1). V tem primeru vrata P0 delujejo kot multipleksirano naslovno/podatkovno vodilo, tri vrstice vrat P2 se uporabljajo za naslavljanje strani zunanjega RAM-a, preostalih pet vrstic pa je mogoče uporabiti kot V/I linije.
Na sl. 7.1.9 prikazuje časovne diagrame ciklov branja in pisanja, ko MK deluje z zunanjim RAM-om. Diagrami kažejo:

● PCN - visoki bajt števca ukazov PC;

● DPL, DPH - nizki in visoki bajti registra podatkovnega kazalca DPTR, ki se uporablja kot register posrednega naslavljanja v navodilih MOVX @DPTR,A in MOVX A,@DPTR;

● P2 SFR - zapahi vrat P2;

● Rm (m = 0, 1) - registri, ki se uporabljajo v MOVX @Rm, A in MOVX A, @Rm navodilih kot posredni naslovni registri;

● Z - stanje visoke odpornosti;

● D - obdobje, v katerem se podatki iz vrat P0 vnašajo v mikrokrmilnik. Programski pomnilnik. Programski pomnilnik je zasnovan za shranjevanje programov, ima svoj naslovni prostor (ločen od pomnilnika podatkov) in je samo za branje. Vključuje dekoder Dsh in ROM (slika 7.1.10). Programski pomnilnik je naslovljen s 16-bitnim računalniškim števcem, zato je njegova največja zmogljivost 64K bajtov. Notranji programski pomnilnik je sestavljen iz ROM-a s kapaciteto 4K bajtov in 12-bitnega dekodirnika. Zunanji pomnilnik je priključen v skladu s shemo na sl. 7.1.11. Če je 0 V priključen na ¯EA pin MCU (kot je prikazano na sliki 7.1.11), je notranji programski pomnilnik onemogočen. Vsi dostopi do pomnilnika se začnejo na naslovu 0000h. Ko je ¯EA pin priključen na napajanje, se samodejno izvede dostop do notranjega programskega pomnilnika na naslovih 0000h–FFFFh in do zunanjega programskega pomnilnika na naslovih 0FFFh–FFFFh.

Za branje zunanjega programskega pomnilnika MK se generira signal ¯PSEN. Pri delu z notranjim pomnilnikom se signal branja ne uporablja. Pri dostopu do zunanjega programskega pomnilnika se vedno oblikuje 16-bitni naslov. Nizki bajt naslova se v prvi polovici strojnega cikla prenese preko vrat P0 in se fiksira z izrezom strobo ALE v registru.V drugi polovici cikla se vrata P0 uporabljajo za vnos podatkovnega bajta iz zunanjega pomnilnika v MCU.

Visoki bajt naslova se prenaša skozi vrata P2 ves čas dostopa do pomnilnika.

Časovni diagrami ciklov branja in pisanja med delovanjem MK z zunanjim RAM-om so prikazani na sl. 7.1.12.
Diagrami kažejo:

● PCL OUT - nizkobajtni izhod števca ukazov PC;

● PCN OUT - izdaja visokega bajta števca ukazov PC;

● DPH je visoki bajt registra kazalca podatkov DPTR, ki se uporablja kot register posrednega naslavljanja v navodilih MOVX @DPTR,A in MOVX A,@DPTR;

● P2 SFR - zapahi vrat P2;

● INS IN - vnos ukaznega (ukaznega) bajta iz programskega pomnilnika;

● ADDR OUT - izdajanje nizkega bajta naslova zunanjega podatkovnega pomnilnika iz registrov Rm (m = 0, 1) ali iz registra DPL (spodnji register DPTR). V/I vrata. Dodelitev vrat. Vrata P0, P1, P2, P3 predvideno za izmenjavo informacij med MK in zunanjimi napravami ter za izvajanje naslednjih funkcij:

● nizki bajt naslova А7…A0 se izpiše skozi vrata Р0; bajt podatkov se izpiše iz MK in vnese v MK pri delu z zunanjim programskim pomnilnikom in zunanjim pomnilnikom podatkov (s časovno delitvijo);

● visoki bajt naslova A15…A8 se pri delu z zunanjim programskim pomnilnikom in zunanjim podatkovnim pomnilnikom izpiše prek vrat P2 (samo pri uporabi ukazov MOVX A,@DPTR in MOVX @DPTR,A);

● Vrata vrat P3 se lahko uporabljajo za izvajanje alternativnih funkcij, če je v zapah te linije vnesena 1, v nasprotnem primeru je na linijskem izhodu fiksirana 0. Alternativne funkcije izhodov vrat P3 so podane v tabeli. 7.1.3.

Shematske značilnosti pristanišč

Na sl. 7.1.13 prikazuje diagrame za en kanal vsakega od vrat MK, vključno z:

● zapah za pritrditev prejetega podatkovnega bita;

● izhodno ojačanje kaskada(voznik);

● vozlišče povezava z izhodna stopnja (razen P2);

● vezje za prenos podatkovnega bita z izhodne strani vrat, sestavljeno iz medpomnilnikov B2 in B3 (za vrata P4). Zapah je D-flip-flop, ki ga taktira notranji signal "Write to zapah". Del podatkov iz neposrednega izhoda D-flip-flopa lahko programska oprema prebere prek medpomnilnika B1 s signalom »Read latch« v linijo notranjega podatkovnega vodila (SD) MK.

Izhodna stopnja vrata P0 je pretvornik, katerega značilnosti se kažejo v tem, da se obremenitveni tranzistor VT2 odpre samo pri dostopu do zunanjega pomnilnika (pri prenosu naslovov in podatkov skozi vrata). V vseh drugih načinih je obremenitveni tranzistor zaprt. Zato je treba za uporabo P0 (slika 7.1.13, a) kot izhodna vrata splošnega namena priključiti zunanje obremenitvene upore na njegove izhode. Pri zapisovanju 1 v zapah vrat se tranzistor pretvornika VT1 izklopi in zunanji zatič vrat P0.X se prenese v stanje visokega upora. V tem načinu lahko pin P0.X služi kot vhod. Če se vrata P0 uporabljajo kot V/I vrata splošnega namena, lahko vsak od njegovih zatičev P0.X deluje neodvisno kot vhod ali izhod. Izhodne stopnje vrata P1, P2, P3 (slika 7.1.13, b, c, d) izdelano po vezjih pretvornikov z notranjim obremenitvenim uporom, ki se uporablja kot tranzistor VT2.

Za zmanjšanje preklopnega časa med prehodom izhodov vrat iz stanja 0 v stanje 1 se vzporedno z obremenitvenim tranzistorjem VT2 uvede dodaten tranzistor VT3. Tranzistor VT3 se s pomočjo elementov v vezju vrat odklene za čas, ki je enak dvema obdobjema nihanja glavnega kristalnega oscilatorja (v fazah S1P1, S2P2 strojnega cikla). Izhodne stopnje vrata P0, P2 (slika 7.1.13, A, c) z uporabo multipleksorja MX se lahko povežejo bodisi z zapahi bodisi z notranjimi vodili "Naslov / podatki" in "Naslov". Izhodna stopnja priključka P1 (slika 7.1.13, 6) je trajno povezana z zapahom.

Če je pin priključka P3 izhod in njegov zapah vsebuje 1, potem njegovo izhodno stopnjo krmili notranji signal strojne opreme "Alternativna izhodna funkcija", ki zagotavlja ustrezno alternativno funkcijo, tj. eden od signalov ¯WR, ¯RD ali RxD se oblikuje na zunanjem zatiču. Če se pin priključka uporablja kot vhod, se alternativni signal, ki pride nanj (TxD, ¯INT0, ¯INT1, T0, T1), prenese v notranjo linijo "Alternative Input Function".

Način zapisovanja vrat.

Ko se izda ukaz za zapisovanje v vrata, se nova vrednost zapiše v zapah v fazi S6P2 in izide neposredno na izhodni zatič vrat v fazi S1P1 naslednjega strojnega cikla.

Način branja vrat

Ukazi za branje vrat berejo informacije neposredno iz zunanjih zatičev vrat ali iz izhodov zapaha. V prvem primeru se podatkovni bit iz izhoda vrat programsko prebere prek medpomnilnika B2 s signalom »Preberi izhode« v linijo notranjega podatkovnega vodila (SD) MK. Upoštevajte, da signale "Write to zapah", "Read latch", "Read pins" generira strojna oprema, ko se izvedejo ustrezni ukazi.

V drugem primeru je implementiran tako imenovani način "Read-Modify-Write", v katerem ukaz prebere signal stanja zapaha, ga po potrebi spremeni in nato zapiše nazaj v zapah. Način Read-Modify-Write se izvaja, ko se izvajajo naslednji ukazi: ANL, ORL, XRL, JBC; CPL; I.N.C.; DEC; DJNC; MOV PX,Y; CLR PX.Y; SETB PX,Y.

Branje informacij iz izhodov zapaha odpravlja napake pri interpretaciji logičnega nivoja na zatiču vrat. Preberite nadaljevanje članka v.

Trenutno različna podjetja proizvajajo številne modifikacije in analoge te družine, tako s strani Intel kot drugih proizvajalcev, frekvenca ure in velikost pomnilnika sta se desetkrat povečala in še naprej naraščata. Dopolnjuje se tudi nabor vgrajenih LSI modulov; hitri rezidenčni ADC je vgrajen v veliko število sodobnih modelov, ki imajo do 12, zdaj pa je lahko tudi več bitov. Toda v središču družine MSS51 je BIS 8051, 80C51, 8751, 87C51, 8031, 80C31 podjetja Intel, katerih prvi vzorci so bili izdani leta 1980.

Mikrokrmilniki družine MCS51 so izdelani z uporabo visokokakovostne tehnologije n-MOS (serija 8ХХХ, analogna - serija 1816 v Rusiji in Belorusiji) in k-MOS tehnologije (serija 8ХСХХ, analogna - serija 1830). Drugi znak za 8 pomeni: 0 - brez EEPROM-a na čipu, 7 - 4K EEPROM z UV-brisom. Tretji znak: 3 - ROM bo kristaliziran, 5 - če ROM-a ni, je na čipu zamaskiran ROM.

Tako je 80S51 k-MOS LSI z masko ROM na čipu, 8031 ​​je n-MOS LSI brez programskega pomnilnika (ROM, EPROM) na čipu, 8751 je n-MOS LSI s rezidentom (nahaja se na čipu) RPROM z ultravijoličnim brisanjem. Še naprej bomo obravnavali LSI 8751, pri čemer bomo po potrebi naredili zadržke glede razlik v drugih vezjih in navedli parametre, ki so bili objavljeni za prvi serijski LSI. Po potrebi lahko dodatne informacije o vseh sodobnih spremembah najdete v imenikih podjetij in tehnični dokumentaciji.

A. Splošne značilnosti in dodelitev zatičev

Družina MCS51 temelji na petih modifikacijah MK (z enakimi glavnimi značilnostmi), glavna razlika med katerimi je izvedba programskega pomnilnika in poraba energije (glej tabelo 3.1). Mikrokrmilnik je osembitni, t.j. ima navodila za obdelavo osembitnih besed, ima harvardsko arhitekturo, taktna frekvenca za osnovne vzorce družine je 12 MHz.

Tabela 3.1.

mikro vezja

Notranji programski pomnilnik, bajti

Vrsta pomnilnika programa

Notranji pomnilnik podatkov, bajti

Taktna frekvenca, MHz

Porabni tok, mA

MK 8051 in 80C51 vsebujeta programski pomnilnik ROM z masko s kapaciteto 4096 bajtov in sta zasnovana za uporabo v množični proizvodnji. MK 8751 vsebuje 4096 bajtni EPROM z UV-brisom in je priročen v fazi razvoja sistema pri odpravljanju napak v programih, pa tudi pri izdelavi v majhnih serijah ali pri ustvarjanju sistemov, ki zahtevajo

periodično prilagajanje.

MK 8031 ​​in 80C31 ne vsebujeta vgrajenega programskega pomnilnika. Tako kot prej opisane modifikacije lahko uporabljajo do 64 KB zunanjega programskega pomnilnika in se učinkovito uporabljajo v sistemih, ki zahtevajo bistveno večji (kot 4 KB na čipu) ROM programski pomnilnik.

Vsak MK družine vsebuje rezidenčni podatkovni pomnilnik z zmogljivostjo 128 bajtov z možnostjo razširitve skupne količine podatkov RAM do 64 KB z uporabo zunanjih RAM IC.

    osrednji osem-bitni procesor;

    4K programski pomnilnik (samo 8751 in 87C51);

    128 bajtov podatkovnega pomnilnika;

    štiri osem-bitna programabilna vhodno-izhodna vrata;

    dva 16-bitna večmodna časovnika/števca;

    sistem avtovektorskih prekinitev s petimi vektorji in dvema programsko vodenima prioritetnima nivojema;

    serijski vmesnik, vključno z univerzalnim dupleksnim oddajnikom, ki lahko deluje v štirih načinih;

    generator ure.

Ukazni sistem MK vsebuje 111 osnovnih ukazov v formatu 1, 2 ali 3 bajtov. Mikrokrmilnik ima:

    32 splošnih registrov RON, organiziranih kot štiri banke po osem registrov vsak z imeni R0 ... R7, izbiro posamezne banke določi program z nastavitvijo ustreznih bitov v statusnem registru programa PSW;

    128 programsko nadzorovanih zastav (bitni procesor, glej spodaj);

    niz registrov posebnih funkcij, ki nadzorujejo elemente MK. Mikrokrmilnik ima naslednje načine delovanja:

ena). Splošna ponastavitev. 2). Normalno delovanje. 3). Način nizke porabe in način mirovanja. 4). Način programiranja rezidenčnega EPROM-a, če obstaja.

Tu se bomo osredotočili na prva dva načina delovanja, podroben opis sestave in delovanja MC v vseh načinih je podan v Dodatku P1.

RON in območje bitnega procesorja se nahajata v naslovnem prostoru rezidenčnega RAM-a z naslovi od 0 do 80h.

V zgornjem območju naslovov rezidenčnega RAM-a so registri posebnih funkcij (SFR, Special Function Registers). Njihov namen je podan v tabeli. 3.2.

Tabela 3.2.

Poimenovanje

ime

baterija

Registriraj se B

Register statusa programa

kazalec sklada

Kazalec podatkov. 2 bajta:

nizek bajt

visoki bajt

Register prednostnih prekinitev

Register omogočanja prekinitve

Register načina časovnika/števca

Nadzorni register časovnika/števca

Časovnik/števec 0. Visoki bajt

Časovnik/števec 0. Nizki bajt

Časovnik/števec 1. Visoki bajt

Časovnik/števec 1. Nizki bajt

Nadzor serijskih vrat

Serijski medpomnilnik

Upravljanje porabe

* - registri, dovoljuje malo po malo naslavljanje

Oglejmo si na hitro funkcije SFR-jev, navedenih v tabeli 3.2.

baterija ACC - register akumulatorjev. Ekipe, zasnovane za delo

če imate akumulator, uporabite mnemonik "A", npr. MOV A, R2 . Mnemonik "ACC" se uporablja na primer pri naslavljanju akumulatorja bit za bit. Tako bo simbolično ime petega bita akumulatorja pri uporabi sestavljalnika A5M51 naslednje: ACC. 5. .

Registriraj se V . Uporablja se med operacijami množenja in deljenja. Za druga navodila se lahko register B obravnava kot dodaten register beležnice.

Registriraj se države programi PSW vsebuje informacije o stanju programa in se nastavi deloma samodejno z rezultatom opravljene operacije, deloma s strani uporabnika. Oznaka in namen registrskih bitov sta podana v tabelah 3.3 oziroma 3.4.

Tabela 3.3.

Poimenovanje

Tabela 3.4.

Poimenovanje

Dodelitev bitov

Dostop do utripa

Nosite zastavo. Spremembe med izvajanjem številnih aritmetičnih in logičnih navodil.

Strojna ali programska oprema

Dodatna zastava za nošenje. Nastavi/počisti ga strojna oprema med izvajanjem navodil za seštevanje ali odštevanje, da se označi prenos ali izposoja v 3. bitu pri ustvarjanju nizkega grizljanja rezultata (D0-D3).

Strojna ali programska oprema

Oznaka 0. Oznaka, ki jo določi uporabnik.

Programsko

Programsko

Kazalec na banko delovnih registrov

Programsko

Banka 0 naslovov (00H - 07H) Bank 1 Naslovi (08H - 0FH) Bank 2 Naslovi (10H - 17H) Bank 3 Naslovi (18H - 1FH)

prelivna zastavica. Nastavi ali počisti s strojno opremo med izvajanjem aritmetičnih navodil za prikaz stanja prelivanja.

Strojna ali programska oprema

Rezervni. Vsebuje sprožilec za branje/pisanje, ki ga je mogoče uporabiti

Paritetni bit. Ponastavite ali nastavite s strojno opremo vsak cikel navodil, da prikažete sodo ali liho število bitov baterije, ki so v stanju "1".

Strojna ali programska oprema

Kazalec sklad SP - 8-bitni register, katerega vsebina se poveča, preden se podatki zapišejo v sklad med navodili PUSH in CALL. Pri začetni ponastavitvi je kazalec sklada nastavljen na 07H in območje sklada v podatkovnem RAM-u se začne na naslovu 08H. Če je potrebno, z redefiniranjem kazalca sklada, se območje sklada lahko nahaja kjer koli v notranjem podatkovnem RAM-u mikrokrmilnika.

Kazalec podatkov DPTR sestavljen iz visokega bajta (DPH) in nizkega bajta

(DPL). Vsebuje 16-bitni naslov pri dostopu do zunanjega pomnilnika. Je lahko uporabljen

biti shranjen kot 16-bitni register ali kot dva neodvisna osembitna registra.

Vrata 0 - PortZ. Ločeni biti registrov posebnih funkcij P0, P1, P2, P3 so biti - "zapahi" izhodov vrat P0, P1, P2, P3.

Buffer dosledno pristanišče SBUF predstavlja dva ločena registra: medpomnilnik oddajnika in medpomnilnik sprejemnika. Ko so podatki zapisani v SBUF, vstopijo v medpomnilnik oddajnika in pisanje bajta v SBUF samodejno začne njegov prenos skozi serijska vrata. Ko se podatki preberejo iz SBUF, se pridobijo iz ciljnega medpomnilnika.

Registri časovnik. Registrski pari (TH0, TL0) in (TH1, TL1) obrazec 16-

registra bitnega števca časovnika/števca 0 oziroma časovnika/števca 1.

Registri upravljanje. Registri posebne funkcije IP, IE, TMOD, TSON, SCON in PCON vsebujejo kontrolne bite in statusne bite za prekinitveni sistem, časovno

meri/števci in serijska vrata. V nadaljevanju bodo podrobno obravnavani.

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 med delovanjem zagotavlja:

    minimalni čas izvajanja ukazov za seštevanje je 1 µs;

    strojno množenje in deljenje z minimalnim časom izvajanja 4 µs.

MK omogoča nastavitev frekvence notranjega oscilatorja s pomočjo kvarčnega kristala, LC verige ali zunanjega oscilatorja.

Razširjeni ukazni sistem zagotavlja bajtno in bitno naslavljanje, binarno in binarno-decimalno aritmetiko, indikacijo prelivanja in sodo/neparno določanje ter možnost implementacije logičnega procesorja.

Najpomembnejša in značilna značilnost arhitekture družine MCS51 je, da lahko ALU, skupaj z izvajanjem operacij na 8-bitnih tipih podatkov, manipulira z enobitnimi podatki. Posamezne bite, ki so dostopni s programsko opremo, je mogoče nastaviti, ponastaviti ali zamenjati z njihovim komplementom, jih je mogoče posredovati, preveriti in

Slika 3.2. Zunanje ugotovitve

mikrokrmilnik

uporablja pri logičnih izračunih. Ker podpora za preproste vrste podatkov (če obstaja

trenutni trend povečevanja dolžine besed) se na prvi pogled morda zdi korak nazaj, zaradi te kakovosti so mikrokrmilniki družine MCS51 še posebej primerni za aplikacije, ki uporabljajo krmilnike. Algoritmi delovanja slednjih na svoj način predpostavljajo prisotnost vhodnih in izhodnih logičnih spremenljivk, ki jih je težko izvesti s standardnimi mikroprocesorji. Vse te lastnosti se skupaj imenujejo Boolean procesor družine MCS51. Ta zmogljiv ALU naredi družino mikrokrmilnikov MCS51 enako primeren nabor navodil tako za aplikacije v realnem času kot za algoritme, ki zahtevajo veliko podatkov.

Shema vezja mikrokrmilnika je prikazana na sl. 3.2. V osnovni različici je pakiran v 40-pinski DIP paket. Upoštevajte namen zaključkov.

Začnimo z napajalnimi kabli «0 V" in "5 V" , prek katerega prejme glavno moč. Trenutna poraba je podana v tabeli. 3.1.

Zaključek "RST" - ponastavite mikrokrmilnik. Ko je ta zatič aktiven visoko, se način splošno ponastaviti in MK izvede naslednja dejanja:

Nastavi števec ukazov osebnega računalnika in vse registre posebnih funkcij razen zapahov vrat P0-P3, kazalca sklada SP in registra SBUF na nič;

    kazalec sklada ima vrednost, ki je enaka 07H;

    onemogoči vse vire prekinitev, števce časovnika in serijsko

    izbere BANK 0 RAM-a, pripravi vrata P0-RZ za sprejem podatkov in določi

deli zatiče ALE in PME kot vhode za zunanjo uro;

      v registrih posebnih funkcij PCON, IP in IE rezervirani bit dobijo naključne vrednosti, vsi drugi bit pa se ponastavijo na nič;

      register SBUF je nastavljen na naključne vrednosti.

      nastavi zapahe vrat P0-P3 na "1".

Stanja registrov mikrokrmilnika po ponastavitvi so prikazana v tabeli 3.5.

Tabela 3.5.

Informacije

nedoločen

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

Izhod RST ima tudi alternativno funkcijo. Preko njega se napaja rezervno napajanje, da se vsebina RAM-a mikrokrmilnika ohrani nespremenjena, ko odstranimo glavnega.

sklepi bq1, BQ2 zasnovan za priključitev kvarčnega resonatorja, ki določa urno frekvenco MC.

Zaključek EA` (E xternal A obleko zunanji naslov) - zasnovan za aktiviranje načina branja kontrolnih kod iz zunanjega programskega pomnilnika, ko se na ta izhod uporabi aktivna nizka raven. Izhod ima alternativni namen (funkcija). Napaja se s programsko napetostjo EPROM-a v načinu programiranja.

Zaključek PME (P program M emory E Plemeniti dovoljenje spomin programi) - zasnovan za nadzor cikla branja iz programskega pomnilnika in samodejno aktiviran MK v vsakem strojnem ciklu.

Zaključek ALE (A obleko L angleščina E Plemeniti dovoljenje mlajši naslovi) utripa izhod spodnjega dela naslova na vratih P0. Izhod se uporablja tudi pri programiranju EPROM-a, medtem ko se nanj med programiranjem uporablja stroboskopski impulz.

MK vsebuje štiri skupine vrat: P0, P1, P2 in P3. To je preostalih 40 nožic mikrokrmilnika. Ta vrata lahko služijo za pobitni vnos - izhod informacij, poleg tega pa ima vsako od njih svojo specializacijo. Splošni funkcionalni diagram pristanišča je prikazan na sl. 3.3. Vrata vsebujejo izhodna stikala FET, povezana z zatičem, funkcijsko stikalo, zapah D-zapaha in krmilno logiko. Eno ali nič je mogoče zapisati v zapah na notranjem vodilu MK. Te informacije se preko funkcijskega stikala dovajajo do izhodnih tipk in izhoda MC. V stanju ena sta oba tranzistorja N in N1 zaprta, N2 pa je odprt. V stanju nič se N odpre-

Xia in N2 se zapre. V trenutku, ko vrata izvedejo nadomestno funkcijo, za katere so specializirana, se sprosti stanje izhodnega zapaha. Mikrokrmilnik lahko ločeno bere stanje zapaha vrat in stanje njegovega izhoda, ki ga nastavi zunanji signal. Če želite to narediti, v sestavljalniku MK obstajajo posebni ukazi, ki aktivirajo ustrezne vrstice. Če želite prebrati stanje zatiča na zapah ustreznih vrat,

biti vnaprej posnet

Iz notranjega

Zapah za upravljanje

Funkcijsko stikalo

Vcc

Vikend

enoto. Ko je na izhodu celice "AND", na katero je ta linija povezana, aktivirana vrstica "zapahno branje",

njene gume MK D Q

Pišite v zapah C Q

branje zapah

Priključni zatič

stanje zapaha, ki prispe na notranje vodilo mikrokrmilnika, ko je aktiviran

"reading output" - stanje zunanjega izhoda vrat.

pristanišče P0 – univerzalna dvosmerna vrata

vhod-izhod. Za tem pristaniščem

funkcija organiziranja zunanjih avtobusov naslovov in

riž. 3.3. Funkcionalni diagram vrat mikrokrmilnika

podatkov za razširitev pomnilnika programa in podatkovnega pomnilnika

mikrokrmilnik. Ko se dostopa do zunanjega programskega pomnilnika ali se izvede ukaz za dostop do zunanjega podatkovnega pomnilnika, je spodnji del naslova (A0…A7) nastavljen na zatiči vrat, ki je na pinu ALE nastavljen visoko. Nato se pri zapisovanju v podatkovni pomnilnik informacije, ki se zapisujejo iz notranjega vodila MK, napajajo na zatiče vrat P0. Nasprotno, v operacijah branja informacije iz zatičev vrat gredo na notranje vodilo. Značilnost vrat P0 je odsotnost "povlečnega" tranzistorja N2, ki zagotavlja napajanje izhodu. Ko se zapah zapiše v vrata 1, se preprosto postavi v stanje visoke impedance, ki je potrebno za pravilno delovanje podatkovnega vodila. Če je treba preko izhoda napajati kakršne koli zunanje naprave, je treba zagotoviti zunanje upore od napajalnih tokokrogov do izhoda vrat.

pristanišče P1 – univerzalna dvosmerna V/I vrata brez alternativnih funkcij.

pristanišče R2 – univerzalna dvosmerna I/O vrata, kot alternativna funkcija, ki pri dostopu do zunanjega pomnilnika izdajo zgornji del naslova (А8…А15).

pristanišče P3 – univerzalna dvosmerna vhodno-izhodna vrata, katerih vsak bit omogoča izvajanje različnih alternativnih funkcij. V tem primeru se alternativne funkcije izvajajo le, če so enote zapisane v izhodne zaklepe vrat, sicer je izvajanje alternativnih funkcij blokirano. Navajamo jih posebej za vsak bit:

P3.0 RxD (R glava e X notranji D ate, preberite zunanje podatke) – vhod vgrajenega serijskega oddajnika.

P3.1 TxD (T ype e X notranji D ate, prenos zunanjih podatkov) – vgrajen serijski oddajno-sprejemni izhod.

P3.2 INT0` (INT errupt, interrupt) - zunanji prekinitveni vhod 0.

P3.3 INT1` – zunanji prekinitveni vhod 1.

P3.4 С/T0 – vhod nič vgrajenega časovnika/števca.

R3.5 C/T1 – vhod prvega vgrajenega časovnika/števca.

P3.6 WR` (W rite, write) - nadzorni izhod cikla pisanja v pomnilniku podatkov.

P3.7 RD` (R ead, read) - izhodni nadzor cikla branja iz pomnilnika podatkov.

Zatiči vrat P1, P2 in P3 so sposobni oddajati približno 0,2 mA toka in sprejemati 3 mA tok pri nič, zatiči vrat P0 so močnejši in lahko oddajo približno 0,8 mA tok pri nič in sprejmejo tok 5 mA pri nič. Kratke informacije o namenu nožic mikrokrmilnika so podane v tabeli 3.6.

Tabela 3.6.

Poimenovanje

Izhodni cilj

8-bitna dvosmerna vrata P1. Naslovni vhod A0-A7 pri preverjanju notranjega ROM-a (RPZU)

vstopi izhod

Splošni signal za ponastavitev. Rezervna izhodna moč RAM-a iz zunanjega vira (za 1816)

8-bitna dvosmerna vrata P3 z dodatnimi funkcijami

vstopi izhod

Serijski podatki sprejemnika - RxD

Serijski podatki oddajnika - TxD

Zunanji prekinitveni vhod 0- INT0`

Zunanji prekinitveni vhod 1-INT1`

Vhod časovnika/števca 0: - T0

Vhod časovnika/števca 1: - T1

Izhod strobnega signala pri zapisovanju v zunanji pomnilnik podatkov: - WR`

Izhod stroboskopa pri branju iz zunanjega pomnilnika podatkov - RD`

Zaključki za priključitev kvarčnega resonatorja.

izhodni vhod

Splošni sklep

8-bitna dvosmerna vrata P2. Izhodni naslov A8-A15 v načinu delovanja z zunanjim pomnilnikom. V načinu notranjega ROM testa se izhodi P2.0 - P2.6 uporabljajo kot vhod naslova A8-A14. Zaključek P2.7 - dovoljenje za branje ROM-a.

vstopi izhod

Ločljivost programskega pomnilnika

Izhod za omogočanje zapaha naslova. Pri programiranju signala EEPROM: PROG

vstopi izhod

Blokiranje dela z notranjim pomnilnikom. Pri programiranju EEPROM se poda signal UPR.

vstopi izhod

8-bitna dvosmerna vrata P0. Naslovno/podatkovno vodilo za delo z zunanjim pomnilnikom. Izhod podatkov D7-D0 v testnem načinu notranjega ROM (RPZU).

vstopi izhod

Izhodna moč iz vira napetosti + 5V

Osnova mikrokrmilnika (glej sliko 1) je 8-bitna aritmetično logična enota (ALU). Pomnilnik MK ima harvardsko arhitekturo, t.j. logično razdeljen: na programski pomnilnik - PP (notranji ali zunanji), ki ga naslavlja 16-bitni števec ukazov (SC) in podatkovni pomnilnik - notranji (Rezident data memory - RPD) 128 (ali 256) bajtov, ter zunanji (zunanji pomnilnik podatkovni pomnilnik – VPD) do 64 KB. Fizično je programski pomnilnik implementiran na ROM (samo za branje), podatkovni pomnilnik pa na RAM (podatke je mogoče zapisovati in brati).

Sprejem in dostava zunanjih signalov se izvaja preko 4 osembitnih vrat Р0..Р3. Pri dostopu do zunanjega programskega pomnilnika (EPM) ali podatkovnega pomnilnika (VPD) se vrata P0 in P2 uporabljajo kot multipleksirano zunanje naslovno/podatkovno vodilo. Vrata P3 lahko izvajajo tudi alternativne funkcije (glejte tabelo 1).

16-bitni register DPTR tvori naslov VPD ali osnovni naslov programskega pomnilnika v navodilu za pretvorbo akumulatorja. Register DPTR se lahko uporablja tudi kot dva neodvisna 8-bitna registra (DPL in DPH) za shranjevanje operandov.

8-bitni notranji ukazni register (RK) prejme kodo ukaza, ki se izvaja; to kodo dekodira krmilno vezje, ki generira krmilne signale (glej sliko 1).

Dostop do registrov posebnih funkcij - RSF (SFR - na sliki 1 so obkroženi s pikčasto črto) je možen le z uporabo neposrednega bajtnega naslavljanja v območju naslovov od 128 (80h) in več.


Rezidenčni podatkovni pomnilnik (RDD) v prvih modelih mikrokrmilnikov družine MCS-51 je imel kapaciteto 128 bajtov. Spodnjih 32 bajtov RPD so tudi registri splošnega namena - RON (4 banke po 8 RON). Program se lahko prijavi na enega od 8 RON aktivne banke. Izbira aktivne banke RON se izvede s programiranjem dveh bitov v registru statusa procesorja - PSW.


Tabela 1 - Dodelitev zatičev MCS-51

Pin št. Poimenovanje Namen
1..8 P1 8-bitna kvazi-dvosmerna V/I vrata
9 RST

Signal za ponastavitev (aktivna raven - visoka);

Signal RST se ponastavi: računalnik in večina registrov posebnih funkcij (SFR), ki onemogočajo vse prekinitve in časovnike; izbere RON Bank 0; zapiše "vse" v vrata P0_P3 in jih pripravi za vnos; zapiše kodo 07H v kazalec sklada (SP);

10..17

8-bitna kvazi-dvosmerna V/I vrata; po zapisovanju v ustrezen bit "1" - izvaja dodatne (alternativne) funkcije:

Vhod serijskih vrat - RxD;

Izhod serijskih vrat - TxD;

Zunanji prekinitveni vhod 0 - ~INT0;

Zunanji prekinitveni vhod 1 - ~INT1;

Vhod časovnika/števca 0 - T0;

Vhod časovnika/števca 1 - T1;

Strobe izhod. signal pri pisanju v VPD - ~ WR;

Strobe izhod. signal pri branju iz VPD - ~ RD;

18, 19 X1, X2 Zaključki za priključitev kvarčnega resonatorja ali LC vezja;
20 GND Splošni sklep;
21..28 P2 8-bitna kvazi-dvosmerna V/I vrata; ali izhodni naslov A v načinu zunanjega pomnilnika (VPP ali VPD);
29 PME Strobo branja zunanjega programskega pomnilnika, ki se izda samo ob dostopu do zunanjega ROM-a;
30 ALE Zunanji pomnilniški naslov strobe (VPP ali VPD);
31 EA Če onemogočite RPP, raven "0" na tem vhodu preklopi MK na izbor ukazov samo z vzletno-pristajalne steze ;
39..32 P0 8-bitna dvosmerna V/I vrata; pri dostopu do zunanjega pomnilnika izda naslove A (ki jih signal ALE zapiše v zunanji register), nato pa sinhrono izmenja bajt s signalom ~PME (za ukaze) ali ~WR,~RD (za podatke v VPD) , pri dostopu do zunanjega pomnilnika se vse enote zapišejo v register vrat P0, kar uniči tam shranjene informacije;
40 Ucc Izhodna napajalna napetost

Preklapljanje bank RON-ov poenostavi izvajanje podprogramov in obdelavo prekinitev, ker. pri klicu podprograma ni treba prenesti vsebine RON-ov glavnega programa v sklad (dovolj je, da greste v drugo aktivno banko RON v podprogramu).

Dostop do RPD je možen z uporabo posrednega ali neposrednega bajtnega naslavljanja (neposredno bajtno naslavljanje omogoča dostop samo do prvih 128 bajtov RPD).

Razširjeno območje RPD (za mikrokrmilnike družine MCS-52 in naslednje družine) od naslova 128 (80h) do 255 (FFh) je mogoče naslavljati samo z metodo posrednega naslavljanja.

Tabela 2 - Bločni registri posebnih funkcij (s f r)

Mnemo koda ime
0E0h *ACC baterija
0F0h *B Registrirajte razširjevalnik baterije
0D0h *PSW Beseda stanja procesorja
0B0h *P3 Pristanišče 3
0A0h * P2 Pristanišče 2
90h * P1 Pristanišče 1
80h *P0 Vrata 0
0B8h * IP Register prednostnih prekinitev
0A8h *IE Register prekinitvene maske
99h SBUF Medpomnilnik serijskega oddajnika
98h * SCON Nadzorni/statusni register serijskih vrat
89h TMOD Register načina časovnika/števca
88h * TCON Register časovnika/števec nadzora/status
8Dh TH1 Časovnik 1 (visoki bajt)
8 bh TL1 Časovnik 1 (nizki bajt)
8ch TH0 Časovnik 0 (visoki bajt)
8ah TL0 Časovnik 0 (nizki bajt)
83h DPH Register podatkovnega kazalca (DPTR) (visoki bajt)
82h DPL Register podatkovnega kazalca (DPTR) (nizki bajt)
81h SP Register kazalca sklada
87h PCON Register za krmiljenje povpraševanja

2. MODEL PROGRAMSKE OPREME MCS–51


VRSTE UKAZOV MCS–51

Skoraj polovica ukazov se izvede v 1 strojnem ciklu (MC). Pri frekvenci kristalnega oscilatorja 12 MHz je čas izvedbe takega ukaza 1 μs. Preostali ukazi se izvajajo v 2 strojnih ciklih, t.j. za 2 ms. Samo ukazi množenja (MUL) in deljenja (DIV) se izvajajo v 4 strojnih ciklih.

Med enim strojnim ciklom sta dva dostopa do programskega pomnilnika (notranji ali zunanji) za branje dveh bajtov ukaza ali en dostop do zunanjega pomnilnika podatkov (EDM).

3. METODE (METODE) NASLOVANJA MCS–51

1. NASLOV REGISTRA - 8-bitni operand se nahaja v RON izbrane (aktivne) banke registrov;

2 NEPOSREDNO NASLOVANJE (označeno z znakom - #) - operand se nahaja v drugem (in za 16-bitni operand in v tretjem) bajtu ukaza;

3 POSREDNO NASLOVANJE (označeno z znakom - @) - operand je v podatkovnem pomnilniku (RPD ali VPD), naslov pomnilniške celice pa je v enem od RON posrednega naslavljanja (R0 ali R1); v ukazih PUSH in POP je naslov v kazalcu sklada SP; register DPTR lahko vsebuje naslov VPD do 64K;

4 DIRECT BYTE ADDRESSING – (dir) – uporablja se za dostop do celic RPD (naslovi 00h…7Fh) in registrov posebnih funkcij SFR (naslovi 80h…0FFh);

5 DIRECT BIT ADDRESSING - (bit) - se uporablja za naslavljanje ločeno naslovljivih 128 bitov, ki se nahajajo v celicah RPD na naslovih 20H ... 2FH in za ločeno naslovljive bite posebnih funkcijskih registrov (glej tabelo 3 in model programa);

6 INDIREKTNO INDEKSNO NASLOVANJE (označeno z znakom @) - poenostavi pregledovanje tabel v programskem pomnilniku, PP naslov je določen z vsoto osnovnega registra (PC ali DPTR) in indeksnega registra (Battery);

7 IMPLICITNO (Vgrajeno) NASLOVANJE - koda navodil vsebuje implicitno (privzeto) sklicevanje na enega od operandov (najpogosteje na Akumulator).

4. FORMAT BESEDE STANJA PROCESORJA (PSW).

C - Zastavica za prenašanje (CARY) ali izposojanje, deluje tudi kot "boolov akumulator" v navodilih z bitnim upravljanjem;

AC – pomožna (dodatna) zastavica za prenašanje – nastavljena na "1", če je imel ukaz za seštevanje (ADD, ADDC) prenos iz tetrade nizkega reda v višji (tj. iz 3. bita v 4. bit);

F0 - uporabniška zastavica - nastavi, ponastavi in ​​preveri s programsko opremo;

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

RS1,RS0 – Izbira banke registracije:

OV - Zastavica aritmetičnega prelivanja; njegova vrednost je določena z operacijo XOR vhodnih in izhodnih prenosnih signalov najpomembnejšega bita ALU; ena sama vrednost te zastave označuje, da je rezultat aritmetične operacije v kodi komplementa dveh izven obsega: –128…+127; pri izvajanju operacije delitve se zastavica OV ponastavi, v primeru delitve z ničlo pa se nastavi; pri množenju se nastavi zastava OV, če je rezultat večji od 255 (0FFH);

Bit PSW - rezerviran, vsebuje sprožilec, na voljo za pisanje ali branje;

P - zastavica parnosti - je dodatek števila posameznih bitov v akumulatorju k sodim številu; je sestavljen iz kombinacijskega vezja (programsko na voljo samo za branje).

Mikrokrmilniki MCS-51 nimajo zastave "Z". Toda v navodilih za pogojni skok (JZ, JNZ) kombinacijska vezje preveri trenutno (nič ali nenič) vsebino akumulatorja.

Vse ukaze za prenose in izmenjavo operandov je mogoče izvesti preko Akumulatorja (glej sliko 3). Poleg tega se lahko prenosi iz/v zunanji pomnilnik (programski pomnilnik ali podatkovni pomnilnik) izvajajo samo prek baterije.

Večino prenosov je mogoče izvesti tudi s posredovanim bajtom (dir). Obstajajo celo prenosi med dir-to-dir (glej sliko 3).

Manjkajoče prenose iz RON v RON je mogoče izvesti kot prenose iz RON v posredovani bajtni dir (glede na to, da se RON-ji nahajajo v začetnem območju rezidenčnega pomnilnika podatkov, katerega celice je mogoče nasloviti kot dir).

Ukazi za izmenjavo XCH vam omogočajo pošiljanje bajtov, ne da bi uničili oba operanda.

Aritmetični ukazi se izvajajo samo v Akumulatorju. Zato je treba prvi operand najprej postaviti v Akumulator in nato dodati ali odšteti drugi operand. Rezultat se shrani v Akumulator.


Ukaz za odštevanje SUBB se izvede samo z izposojo (tj. od rezultata se odšteje tudi zastavica Cary). Zato je za izvedbo ukaza odštevanja brez izposoje potrebno najprej izvesti ukaz Clear Flag C (CLRC).

Navodilo za množenje enobajtnih operandov - MULAB - postavi dvobajtni (16-bitni) rezultat: nizki bajt je v akumulatorju, višji bajt je v registru B.

Rezultat izvajanja ukaza za deljenje enobajtnih operandov - DIVAB - se postavi: količnik - akumulator, preostanek - v register B.

Aritmetično navodilo INC izbranemu operandu doda eno. Aritmetično navodilo DEC odšteje eno od izbranega operanda. Navodilo Akumulator Decimal Correction (DAA) vam pomaga dodajati binarno kodirana decimalna (BCD) števila, ne da bi jih pretvorili v šestnajstiško (šestnajstiško) obliko. Izvorni operandi morajo biti v formatu BCD, t.j. v vsaki tetradi enega bajta so samo številke od 0 do 9 (šestnajstiških številk ne more biti: A, B, C, D, E, F). Zato lahko en bajt vsebuje številke od 00 do 99 za pakirane BCD številke ali številke od 0 do 9 za nepakirane BCD številke.

Ukaz DA A - decimalni popravek izvede dejanja nad vsebino Akumulatorja po dodajanju BCD številk v procesor (številke so bile dodane v skladu z zakoni heksadecimalne aritmetike) na naslednji način (glej primer):

· če je vsebina tetrade nižjega reda akumulatorja večja od 9 ali je nastavljena pomožna zastavica za prenašanje (AC = 1), se vsebini akumulatorja doda 6 (to je manjkajočih šest števk v šestnajstiški format);

· če je po tem vsebina višjega reda akumulatorja večja od 9 ali je nastavljena zastavica C, se višjemu redu akumulatorja doda številka 6.

Ukaz za decimalni popravek DA A se ne uporablja po ukazu inkrementa (INC), ker ukaz za inkrement ne vpliva (spreminja) na zastavice C in AC.

Logični ukazi:

Logično "IN" - ANL,

Logično "ALI" - ORL,

Logični ukaz XOR - XRL - se izvaja v Akumulatorju (kot tudi aritmetika), vendar je možno izvajati logične ukaze tudi v bajtu neposrednega naslova (dir). V tem primeru je lahko drugi operand:

v bateriji oz

Neposredni operand v navodilu.

Navodila za rotacijo (RR A, RL A) in navodila za rotacijo prek zastave CARY (RRC A, RLC A) zavrtijo vsebino akumulatorja za 1 bit. Bitni operandi se pošljejo samo prek zastave C.

UDK 681.5, 681.325.5 (075.8)

BBK 32.973.202-018.2 in 73

Ščerbina A.N.Računalniški stroji, sistemi in omrežja. Mikrokrmilniki in mikroprocesorji v krmilnih sistemih: Cheb. dodatek / A.N. Shcherbina, P.A. Nechaev-SPb.: S politehnike. un-ta, 2012.-226 str.

Ustreza vsebini državnega izobrazbenega standarda za področja usposabljanja in specialnosti s področja vodenja tehničnih sistemov, elektroenergetike in elektrotehnike ter vsebini vzornega učnega načrta discipline »Računalniki, sistemi in omrežja«.

Temeljna vprašanja logične organizacije mikroprocesorskih sistemov so obravnavana na primeru osnovne arhitekture družine mikrokrmilnikov MCS-51 podjetja Intel. Opisana je tehnologija programiranja mikrokrmilnikov v jezikih Assembler in SI.

Uporaben je lahko za študente in učitelje visokih tehničnih ustanov, strokovnjake za avtomatizacijo tehnoloških procesov in proizvodne opreme ter za inženirje za načrtovanje mikroprocesorskih sistemov.

Ustreza tudi vsebini državnega izobraževalnega standarda disciplin "Mikrokrmilniki in mikroprocesorji v krmilnih sistemih" in "Elektronske naprave za avtomatizacijo" za dodiplomsko, inženirsko in magistrsko izobraževanje smeri 140400 "Elektroenergetika in elektrotehnika".

Objavljeno po sklepu uredniškega in založniškega sveta

Državna politehnična univerza v Sankt Peterburgu.

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

© Država Sankt Peterburg

Politehnična univerza, 2012

ISBN 978-5-7422-3553-8


Uvod.. 7

Poglavje 1. Arhitektura družine MCS51. 10

1.1 Splošne značilnosti 10

1.2 Blok diagram 11



1.3 8051 Dodelitev pinov mikrokrmilnika 15

1.4 Organizacija spomina 17

1.4.1 Programski pomnilnik (ROM) 18

1.4.2 Podatkovni pomnilnik (RAM) 19

1.4.3 Registri posebnih funkcij. dvajset

1.4.4 Register zastave (PSW) 23

1.5 Naprava za krmiljenje in sinhronizacijo 26

1.6 Organiziranje V/I vrat 27

1.6.1 Splošne informacije. 27

1.6.2 Alternativne funkcije. 27

1.7. Časovniki/števci mikrokrmilnikov družine 8051. 28

1.7.1. Zgradba časovnikov-števcev. 28

1.7.2 Načini delovanja časovnikov-števcev. trideset

1.8. Serijska vrata 32

1.8.1. Struktura serijskih vrat. 32

1.8.2. Nadzorni/statusni register oddajnika SCON.. 34

1.8.3. Register krmiljenja moči PCON.. 36

1.9. Prekinitveni sistem 37

1.9.1. Struktura prekinitvenega sistema. 37

1.9.2 Izvajanje prekinitvene rutine. 40

2. poglavje Značilnosti mikrokrmilnika 80C51GB.. 42

2.1 Lastnosti 42

2.2 V/I vrata P0-P5 43

2.2.1 Delovanje V/I vrat. 43

2.2.2 Pisanje v vrata.. 46

2.3 Značilnosti prekinitvenega sistema 8XC51GB.. 49

Omogoči/onemogoči prekinitve. 50

Prekinitev upravljanja prioritet. 51

zunanje prekinitve. 54

2.3. ADC vozlišče 56

2.4. Nadzornik strojne opreme 61

2.5. Zaznavanje okvare ure 63

2.6. Matrica programabilnih števcev RSA 64

2.6.1. Struktura PCA.. 64

2.6.2. Register načina števca PCA (CMOD) 66

2.6.3. Krmilni register PCA števca (CON) 67

2.6.4. Primerjaj/popravi module. 68

2.7. Izboljšana serijska vrata 76

2.8. Merilniki časa/števci 79

Dodelitev pinov za skupinske mikrokrmilnike 8XC51GB.. 86

Poglavje 3 Programiranje MK 8051GB.. 89

3.1. Model programske opreme 89

3.2 Vrste podatkov 93

3.3 Načini naslavljanja podatkov 93

3.4 Sistem ukazov 95

3.4.1 Splošne značilnosti. 95

3.4.2 Vrste ukazov. 96

3.4.3 Vrste operandov. 97

3.4.4 Ukazi za prenos podatkov mikrokrmilnika. 98

3.4.5 Aritmetična navodila 8051.101

3.4.6 8051 Logični ukazi MCU. 104

3.4.7 8051 Bit Operacijski ukazi 106

3.5 Programi za odpravljanje napak 111

Poglavje 4. Programski jezik ASM-51. 112

4.2 Pisanje besedila programa 113

4.3 Jezikovna abeceda. 114

4.4 Identifikatorji. 115

4.5 Številke 117

4.6 Direktivi 118

4.7 Implementacija podprogramov v ASM51 122

4.7.1 Struktura postopka podprograma v jeziku ASM51. 122

4.7.2 Posredovanje spremenljivk parametrov v podprogram. 123

4.7.3 Implementacija podprogramov-funkcij v jeziku ASM51. 123

4.7.4 Implementacija rutin za obdelavo prekinitev v jeziku ASM51. 124

4.8 Strukturirano programiranje v zbirnem jeziku. 125

4.9 Posebnosti prevajanja večmodulnih programov.. 126

4.10 Uporaba segmentov 128

4.10.1 Razdelitev pomnilnika MK na segmente .. 128

4.10.2 Absolutni segmenti pomnilnika. 129

4.10.2 Prestavljivi pomnilniški segmenti. 131

Poglavje 5. Programski jezik C-51. 134

5.1 Splošne značilnosti jezika 134

5.3 Struktura programov C-51 136

5.3. Elementi programskega jezika C-51 138

5.3.1. Simboli.. 138

5.3.2. Leksikalne enote, ločila in uporaba presledkov. 141

5.3.3 Identifikatorji.. 142

5.3.4 Ključne besede. 143

5.3.5 Konstante.. 143

5.4. Izrazi v jezikovnih izjavah 146

programiranje C-51 146

5.5. Prednostne naloge operacije 148

5.6. Stavki programskega jezika C-51 149

5.6.1. operaterji deklaracij. 150

5.6.2 Izvedljivi stavki.. 150

5.6.3 Operater dodelitve. 151

5.6.4 Pogojni stavek. 151

5.6.5 Strukturni operater (). 152

5.6.6 Stavek zanke for. 152

5.6.7 Stavek zanke s preverjanjem stanja do telesa zanke while. 153

5.6.8 Stavek zanke s preverjanjem stanja po telesu zanke do while. 154

5.6.9 Izjava break. 155

5.6.10 Izjava nadaljevanja. 155

5.6.11 Izjava za izbiro stikala. 155

5.6.12 Operater goto. 157

5.6.13 Operatorski izraz. 158

5.6.14 Povratni stavek iz vrnitve podprograma. 158

5.6.15 Prazen izpisek. 158

5.7. Deklaracija spremenljivk v programskem jeziku C-51. 159

5.7.1. Deklaracija spremenljivke. 159

5.7.3 Celoštevilski podatkovni tipi. 161

5.7.4 Številke s plavajočo vejico. 162

5.7.5 Spremenljivke oštevilčenega tipa. 162

5.7.6. Deklaracija nizov v programskem jeziku C-51. 164

5.7.7. Strukture.. 165

5.7.8. Združenja (mešanice) 166

5.8. Uporaba kazalcev v C-51 167

5.8.1. Razglasitev kazalcev. 167

5.8.2. Netipizirani kazalci. 168

5.8.3. Kazalniki, odvisni od pomnilnika. 169

5.9. Deklaracija novih vrst spremenljivk 169

5.10. Inicializacija podatkov 170

5.11. Uporaba podprogramov v programskem jeziku C-51. 170

5.11.1. Definicija podprogramov.. 171

5.11.2. Parametri podprograma .. 173

5.11.3. Vnaprejšnja deklaracija podprogramov.. 174

5.11.4 Klicanje podprogramov.. 176

5.11.5 Rekurzivni klic podprograma.. 176

5.11.6 Prekinitvene rutine. 177

5.11.7 Obseg spremenljivk in podprogramov.. 178

5.12. Večmodulni programi 179

Poglavje 6. Priprava programov v integriranem razvojnem okolju Keil μVision2. 182

6.1 Ustvarjanje projekta ASM-51 182

6.2 Primer izdelave C projekta za krmilnik usposabljanja v Keil μVision2 IDE 188

Poglavje 7 Opis krmilnika učenja .. 199

7.1. Struktura krmilnika 199

7.2. Naslovni prostor 200

7.2.1. Dodelitev pomnilnika. 200

7.2.2 Zunanji pomnilnik. 201

7.2.3. Notranji pomnilnik podatkov. 202

7.3. Dodelitev V/I vrat 202

7.4. Serijska vrata……………………………………………203

7.5. Delo z LCD 205

7.6. Krmilne plošče……………………………………………………………213

PRILOGA P2 STRUKTURA POROČILA O LABORATORIJSKEM DELU……..217

Dodatek P3 Kode strojnih ukazov. 217

Literatura... 224


Uvod

Pri razvoju specialnosti, povezanih z avtomatizacijo tehnoloških procesov in proizvodnje, je študij mikrokrmilnikov eden od pomembnih odsekov.

Na svetu se nenehno razvija in pojavlja vedno več 16- in 32-bitnih mikrokrmilnikov in mikroprocesorjev, vendar največji delež svetovnega trga mikroprocesorjev še vedno pripada 8-bitnim napravam. Po vseh napovedih analitičnih podjetij v bližnji prihodnosti se bo vodilni položaj 8-bitnih mikrokrmilnikov na svetovnem trgu nadaljeval.

Trenutno je med vsemi 8-bitnimi mikrokrmilniki družina MCS-51 nesporno vodilna po številu različic in številu podjetij, ki proizvajajo njegove modifikacije. Ime je dobil po prvem predstavniku te družine - mikrokrmilniku 8051. Uspešen nabor perifernih naprav, prilagodljiva izbira zunanjega ali notranjega programskega pomnilnika in dostopna cena so zagotovili uspeh tega mikrokrmilnika na trgu.

Prednosti družine MCS-51:

arhitektura, ki je de facto standard;

Izjemna širina družine in raznolikost priložnosti;

Razpoložljivost visoko zmogljivih in razširjenih različic procesorjev;

veliko število prosto dostopnih razvojnih programov in strojne opreme;

enostavnost programiranja strojne opreme, vključno s programiranjem v vezju;

nizki stroški in razpoložljivost osnovnih čipov;

Razpoložljivost specializiranih različic krmilnikov za posebne pogoje uporabe

Razpoložljivost različic krmilnikov z zmanjšano stopnjo elektromagnetnih motenj;

· velika priljubljenost med razvijalci starejše generacije, tako v svetu kot v državah CIS;

Podpora arhitekturi s strani vodilnih izobraževalnih ustanov sveta.

In končno, glavna prednost: ko obvladate osnovni čip družine, je enostavno začeti delati s takšnimi računalniškimi "pošasti", kot so mikrokrmilniki Cygnal, Dallas Semiconductor, Analog Devices, Texas Instruments.

Družina MCS-51 vključuje celo vrsto mikrovezij od najpreprostejših mikrokrmilnikov do precej zapletenih. Do danes obstaja več kot 200 modifikacij mikrokrmilnikov družine 8051, ki jih proizvaja skoraj 20 podjetij. Vsako leto je vse več variant predstavnikov te družine.

Glavna področja razvoja so:

povečanje hitrosti (povečanje frekvence ure in preoblikovanje arhitekture);

zmanjšanje napajalne napetosti in porabe energije;

· povečanje količine RAM-a in FLASH pomnilnika na čipu z možnostjo programiranja v vezju;

· uvedba kompleksnih naprav, kot so sistemi za krmiljenje pogonov, vmesniki CAN in USB itd. na periferijo mikrokrmilnika.

Mikrokrmilniki družine MCS-51 vam omogočajo izvajanje tako nalog krmiljenja različnih naprav kot izvajanja posameznih vozlišč analognega vezja. Vsa mikrovezja te družine delujejo z istim ukaznim sistemom. Večina jih je izvedena v istih ohišjih z enakim pinoutom (številčenje nog za ohišje). To omogoča uporabo mikrovezij različnih proizvajalcev za razvito napravo brez spreminjanja sheme vezja naprave in programa.

Glavni proizvajalci sort 51. družine na svetu so Philips, Siemens, Intel, Atmel, Dallas, Temic, Oki, AMD, MHS, Gold Star, Winbond, Silicon Systems in številni drugi.

Značilnosti analogov mikrokrmilnikov družine MCS-51 (Intel 8XC51FA, 8XC51GB, 80C152) z naprednimi funkcijami so podane v tabeli. V 1.

Tabela B.1

Oven ROM SAR ADC WDT T/C Porojstvo. Kanali Posebnosti
Atmel: AT89C2051
- - - - UART Flash 2 Kb
AT89C4051 - - - - UART Flash 4 Kb
AT89S4D12 128 K - - - UART, SPI Flash 4 Kb
Polprevodnik DALLAS: DS5000FP
- - - + UART zagonski nalagalnik
DS5001FP - - - + UART zagonski nalagalnik
DS8xC520 16K - - + 2xUART 2DPTR
SIEMENS: C505C
16K - + + UART, CAN 8DPTR
C515C 64K - + + UART+SSC+CAN 4 PWM, 8 DPTR
Philips: *89C51RA+
- + - + UART 2 DPTR, 4. nivo prekinitev, izklop, Flash 8K
P51XAG1x 8K - - + 2 UART
Intel: 8xC51RA
8K - + + UART 4 stopnje IRQ, izklop
8XC196KC 64K 16K - + - UART 3 PWM
80C196KB 64K 8K - + - UART PWM

Poglavje 1 Družinska arhitektura MCS51

8-bitni mikrokrmilniki z enim čipom družine MCS-51 so zaradi svoje dobro zasnovane arhitekture pridobili veliko popularnost med razvijalci mikroprocesorskih krmilnih sistemov. Arhitektura mikrokrmilnika je niz notranjih in zunanjih programsko dostopnih virov strojne opreme in sistem ukazov. Arhitekturo družine MCS-51 v veliki meri določa njen namen - izdelava kompaktnih in poceni digitalnih naprav. Mikrokrmilniki, ki opravljajo vse funkcije mikroračunalnika z uporabo enega samega mikrovezja, se imenujejo računalniki z enim čipom (OEVM).

Intel je izdal okoli 50 modelov, ki temeljijo na operacijskem jedru mikrokrmilnika Intel 8051. Hkrati so številna druga podjetja, kot so Atmel, Philips, začela s proizvodnjo svojih mikrokrmilnikov, razvitih v standardu MCS-51.

Splošne značilnosti

Glavne značilnosti družine:

· 8-bitna centralna procesna enota (CPU), osredotočena na nadzor izvršilnih naprav;

· CPE ima vgrajeno vezje 8-bitnega strojnega množenja in deljenja števil;

Prisotnost v nizu navodil velikega števila operacij za delo z neposredno naslovljivimi biti omogoča govoriti o procesorju za delo z bitnimi podatki (boolov procesor);

notranji (na čipu) programski pomnilnik maske ali reprogramabilnega tipa, ki ima prostornino od 4 do 32 Kb za različne kristale, v nekaterih različicah ga ni;

· najmanj 128 bajtov podatkovnega rezidenčnega RAM-a, ki se uporablja za organizacijo, register bank, sklad in shranjevanje uporabniških podatkov;

· najmanj 32 dvosmernih vmesniških linij (vrat), posamično konfiguriranih za vnos ali izhod informacij;

· dva 16-bitna večnamenska števca/časovnika, ki se uporabljata za štetje zunanjih dogodkov, organiziranje časovnih zamikov in uro komunikacijskih vrat;

· Dvosmerni dupleksni asinhroni oddajnik (UART), zasnovan za organizacijo komunikacijskih kanalov med mikrokrmilnikom in zunanjimi napravami s širokim razponom hitrosti prenosa informacij. Obstajajo sredstva za strojno-programsko integracijo mikrokrmilnikov v povezan sistem;

· dvostopenjski prednostni prekinitveni sistem, ki podpira vsaj 5 prekinitvenih vektorjev iz 4 notranjih in 2 zunanjih virov dogodkov;

vgrajen generator ure.

Strukturna shema

Blok diagram krmilnika je prikazan na sliki 1.1 in je sestavljen iz naslednjih glavnih funkcionalnih enot: krmilne enote, aritmetično logične enote, enote časovnika/števca, serijskega vmesnika in prekinitvene enote, programskega števca, pomnilnika podatkov in programski pomnilnik. Dvostranska izmenjava se izvaja po interni 8-bitni podatkovni avtocesti. Skoraj vsi predstavniki družine MCS-51 so zgrajeni po tej shemi. Različna mikrovezja te družine se razlikujejo le po registrih za posebne namene (vključno s številom vrat).

Enota za krmiljenje in sinhronizacijo (Timeing and Control)- zasnovan za ustvarjanje sinhronizacijskih in krmilnih signalov, ki zagotavljajo koordinacijo skupnega delovanja enot OEVM v vseh dovoljenih načinih njegovega delovanja. Krmilna enota vključuje:

naprava za oblikovanje časovnih intervalov;

vhodno-izhodna logika;

register navodil;

register upravljanja porabe električne energije;

dekoder ukazov, računalniška krmilna logika.

riž. 1.1. Strukturni diagram krmilnika I8051.

Naprava za določanje časa je namenjen generiranju in izhodu internih sinhronizacijskih signalov faz, ciklov in ciklov. Število strojnih ciklov določa trajanje izvajanja ukaza. Skoraj vsi ukazi OEVM se izvajajo v enem ali dveh strojnih ciklih, razen navodil za množenje in deljenje, katerih trajanje je štiri strojne cikle. Označimo frekvenco glavnega oscilatorja skozi F g. Trajanje strojnega cikla je 12/F g oziroma 12 obdobij signala glavnega oscilatorja. Vhodno-izhodna logika je zasnovana za sprejemanje in izdajanje signalov, ki zagotavljajo izmenjavo informacij z zunanjimi napravami preko vhodnih/izhodnih vrat P0-P3.

Ukazni register je zasnovan za snemanje in shranjevanje 8-bitne operacijske kode ukaza, ki se izvaja. Operacijska koda se s pomočjo ukaznega dekoderja in računalniške krmilne logike pretvori v mikroprogram za izvajanje ukazov.

Register nadzora povpraševanja (PCON) vam omogoča, da ustavite delovanje mikrokrmilnika, da zmanjšate porabo energije in zmanjšate raven motenj mikrokrmilnika. Še večje zmanjšanje porabe energije in zmanjšanje hrupa je mogoče doseči z zaustavitvijo glavnega oscilatorja mikrokrmilnika. To je mogoče doseči s preklapljanjem bitov v registru za upravljanje zahteve PCON. Za možnost proizvodnje n-MOS (serija 1816 ali tuji čipi, ki nimajo črke "c" na sredini imena), register za krmiljenje moči PCON vsebuje samo en bit, ki nadzoruje hitrost prenosa serijskih vrat SMOD, in ni bitov za nadzor moči.

Aritmetično logična enota (ALU) je vzporedna osem-bitna naprava, ki zagotavlja aritmetične in logične operacije. ALU sestavljajo:

registri akumulatorja, zadrževalni registri TMP1 in TMP2;

ROM konstante;

seštevek;

dodatni register (register B);

baterija (ACC);

register statusa programa (PSW).

Registriraj se akumulatorski in zadrževalni registri- osem-bitni registri, zasnovani za sprejemanje in shranjevanje operandov za čas trajanja operacij na njih. Ti registri niso programsko dostopni.

ROM konstante zagotavlja razvoj popravljalne kode za dvojiško-decimalno predstavitev podatkov, kode maske za bitne operacije in konstantne kode.

Vzporedni 8-bitni seštevalec je vezje kombiniranega tipa z zaporednim prenosom, zasnovano za izvajanje aritmetičnih operacij seštevanja, odštevanja in logičnih operacij seštevanja, množenja, neekvivalence in istovetnosti.

Registriraj se B- osembitni register, ki se uporablja med operacijami množenja in deljenja. Za druga navodila se lahko šteje za dodaten register beležnice.

baterija- osembitni register, zasnovan za sprejemanje in shranjevanje rezultata, pridobljenega pri izvajanju aritmetično-logičnih operacij ali operacij premikanja

Serijski vmesnik in prekinitveni blok (SIP) zasnovan za organizacijo vhoda - izhoda zaporednih informacijskih tokov in organizacijo sistema programske prekinitve. Blok vključuje:

pufer PIP;

krmilna logika;

kontrolni register;

medpomnilnik oddajnika;

medpomnilnik sprejemnika;

oddajnik za serijska vrata;

register prioritet prekinitve;

register omogočanja prekinitve;

logika obdelave zastave prekinitve in shema generiranja vektorjev.

Programski števec je zasnovan tako, da oblikuje trenutni 16-bitni naslov notranjega programskega pomnilnika in 8/16-bitni naslov zunanjega programskega pomnilnika. Programski števec je sestavljen iz 16-bitnega računalniškega medpomnilnika, registra računalnika in vezja inkrementa (povečanje vsebine za 1).

Podatkovni pomnilnik (RAM) je namenjen za začasno shranjevanje informacij, ki se uporabljajo med izvajanjem programa.

Vrata P0, P1, P2, P3 so kvazi-dvosmerna vhodno-izhodna vrata in so zasnovana tako, da zagotavljajo izmenjavo informacij med OEVM in zunanjimi napravami, ki tvorijo 32 vhodno-izhodnih linij.

Register statusa programa (PSW) je zasnovan za shranjevanje informacij o stanju ALU med izvajanjem programa.

Programski pomnilnik (EPROM) zasnovan za shranjevanje programov in je pomnilnik samo za branje (ROM). Različna mikrovezja uporabljajo maskirane, UV-izbrisljive ali FLASH ROM-e.

Register podatkovnega kazalca (DPTR) zasnovan za shranjevanje 16-bitnega naslova zunanjega pomnilnika podatkov.

Kazalec sklada (SP) je osembitni register, zasnovan za organiziranje posebnega podatkovnega pomnilniškega območja (sklad), v katerega lahko začasno shranite katero koli pomnilniško celico.

1.3 8051 Dodelitev pinov mikrokrmilnika(slika 1.2)

· U ss - potencial skupne žice ("zemlja");

U cc - glavna napajalna napetost +5 V;

· X1,X2 - zaključki za priključitev kvarčnega resonatorja;

· RST - vhod splošne ponastavitve mikrokrmilnika;

PSEN - dovoljenje za zunanji programski pomnilnik, ki se izda samo ob dostopu do zunanjega ROM-a;

· ALE - strobe naslova zunanjega pomnilnika;

· EA - onemogoči notranji programski pomnilnik; raven 0 na tem vhodu povzroči, da mikrokrmilnik izvaja program samo iz zunanjega ROM-a; ignoriranje notranjega (če slednje obstaja);

riž. 1.2. Dodelitev pinov 8051.

P1 - osem-bitna kvazi-dvosmerna vhodna/izhodna vrata, vsak bit vrat se lahko programira tako za vnos kot izhod informacij, ne glede na stanje drugih bitov;

· P2 - osem-bitna kvazi-dvosmerna vrata, podobna P1, pini tega vratu se uporabljajo za izdajo naslovne informacije pri dostopu do zunanjega programskega ali podatkovnega pomnilnika (če se uporablja 16-bitno naslavljanje slednjega). Poleg tega se zatiči vrat uporabljajo pri programiranju za vnos bitov višjega reda v mikrokrmilnik;

· РЗ - osem-bitna kvazi-dvosmerna vrata, podobna R1, zatiči tega vrat lahko opravljajo številne alternativne funkcije, ki se uporabljajo pri delovanju časovnikov, serijskih V/I vrat, prekinitvenega krmilnika in zunanjih pomnilnik programov in podatkov;

· P0 - multipleksirano osem-bitno dvosmerno pristanišče vhoda-izhoda informacij, prek katerega se v različnih časovnih točkah oddaja nizek bajt naslova in podatkov.

Organizacija spomina

Celotna serija MCS-51 ima harvardsko arhitekturo, torej ločene naslovne prostore programskega in podatkovnega pomnilnika. Struktura pomnilnika je prikazana na sl. 1.3.

Količina notranjega (rezidenčnega) programskega pomnilnika (ROM, EPROM ali OTP ROM), ki se nahaja na čipu, je odvisno od vrste mikrovezja lahko 0 (brez ROM), 4K (osnovni čip), 8K, 16K ali 32K. Po potrebi lahko uporabnik razširi pomnilnik programa z namestitvijo zunanjega ROM-a. Dostop do notranjega ali zunanjega ROM-a je določen z vrednostjo signala na pinu EA (External Access):

EA=V cc (napajalna napetost) - dostop do notranjega ROM-a;

EA=V ss (potencial ozemljitve) - dostop do zunanjega ROM-a.

Za čipe brez ROM-a mora biti zatič EA trajno povezan z V ss.

riž. 1.3. Organizacija pomnilnika družine MCS-51

Strobe za branje zunanjega ROM-a - (Omogoči shranjevanje programov) se ustvari pri dostopu do zunanjega programskega pomnilnika in je neaktiven med dostopom do ROM-a, ki se nahaja na čipu. Nizko naslovno območje programskega pomnilnika uporablja prekinitveni sistem. Arhitektura osnovnega čipa 8051 podpira pet virov prekinitve:

dve zunanji prekinitvi;

dve prekinitvi iz časovnikov;

prekine iz serijskih vrat.

Na sl. 1.4 prikazuje zemljevid spodnjega območja programskega pomnilnika.

riž. 1.4. Zemljevid spodnjega območja programskega pomnilnika

Programski pomnilnik (ROM)

Za mikrokrmilnike družine 8051 sta programski pomnilnik in podatkovni pomnilnik neodvisni in neodvisni napravi, ki jih naslavljajo različni ukazi in krmilni signali.

Količina vgrajenega programskega pomnilnika, ki se nahaja na čipu mikrokrmilnika 8051, je 4 KB (v družini do 32). Pri dostopu do zunanjega programskega pomnilnika vsi mikrokrmilniki 8051 vedno uporabljajo 16-bitni naslov, ki jim omogoča dostop do 64 KB ROM-a. Mikrokrmilnik dostopa do programskega pomnilnika pri branju opkode in operandov (z uporabo računalniškega programskega števca), kot tudi pri izvajanju ukazov za kopiranje bajta iz programskega pomnilnika v akumulator. Pri izvajanju ukazov za kopiranje podatkov se lahko naslavljanje celice programskega pomnilnika, iz katere se berejo podatki, izvede tako z uporabo osebnega števca kot posebnega dvobajtnega registra kazalca podatkov DPTR.

Podatkovni pomnilnik (RAM)

Količina podatkovnega pomnilnika na čipu je 128 bajtov. Zunanji podatkovni pomnilnik je lahko do 64 KB. Prvih 32 bajtov je organiziranih v štiri banke splošnih registrov, ki so označene kot banka 0 - banka 3. Vsaka od njih je sestavljena iz osmih registrov R0-R7. Program je v vsakem trenutku na voljo z registrskim naslavljanjem le ena banka registrov, katerih število je v tretjem in četrtem bitu statusne besede programa PSW.

8051 Naslovi bitov mikrokrmilnika

Tabela 1.1

Bajtni naslov (šestnajstiški) Bitni naslovi po bitih
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 naslovni prostor lahko razvijalec konfigurira po lastni presoji: lahko sprejme področja sklada, sistema in uporabniških podatkov. Do podatkovnih pomnilniških celic je mogoče dostopati na dva načina. Prvi način je neposredno naslavljanje pomnilniške celice. V tem primeru je naslov celice operand ustreznega ukaza. Druga metoda je posredno naslavljanje z uporabo kazalnih registrov R0 ali R1: pred izvedbo ustreznega ukaza mora eden od njih vsebovati naslov celice, do katere je treba dostopati.

Za dostop do zunanjega podatkovnega pomnilnika se uporablja samo posredno naslavljanje z uporabo registrov R0 in R1 ali z uporabo 16-bitnega kazalnega registra DPTR.

Del podatkovnega pomnilnika je bitno območje, ima možnost uporabe posebnih bitnih ukazov za naslavljanje vsake števke pomnilniških celic. Naslov neposredno naslovljivih bitov lahko zapišemo tudi v obliki (ByteAddress).(Bit). Ustreznost med tema dvema načinoma naslavljanja je mogoče določiti iz tabele. 1.1.

Ukazni sistem OMEVM zagotavlja odlične zmogljivosti obdelave podatkov, zagotavlja izvajanje logičnih, aritmetičnih operacij, pa tudi nadzor v realnem času. Izvedena bitna, tetradna (4 bitov), ​​bajtna (8 bitov) in 16-bitna obdelava podatkov.

Družina LSI MCS-51 - 8-bitni OMEVM: ROM, RAM, registri za posebne namene, ALU in zunanja vodila imajo organizacijo bajtov. Dvobajtne podatke uporabljata samo kazalec (DPTR) in programski števec (PC). Opozoriti je treba, da se register podatkovnega kazalca lahko uporablja kot dvobajtni register DPTR ali kot dva enobajtna registra posebnega namena DPH in DPL. Programski števec se vedno uporablja kot dvobajtni register.

Nabor ukazov OMEVM ima 42 ukaznih mnemonik za določanje 33 funkcij tega sistema.

Sintaksa večine navodil v zbirnem jeziku je sestavljena iz funkcijske mnemonike, ki ji sledijo operandi, ki določajo metode naslavljanja in vrste podatkov. Različne vrste podatkov ali načini naslavljanja so določeni z nastavljenimi operandi, ne s spremembami mnemoničnega zapisa.

Ukazni sistem lahko pogojno razdelimo v pet skupin:

Obstajajo naslednje vrste naslavljanja izvornih operandov:

  • Posredno naslavljanje registrov z vsoto osnovnih in indeksnih registrov

Tabela oznak in simbolov, ki se uporabljajo v sistemu ukazov

Oznaka, simbol Namen
A baterija
Rn Registri trenutno izbrane registrske banke
r Številka naloženega registra, podana v ukazu
neposredno Neposredno naslovljivi 8-bitni naslov notranje podatkovne lokacije, ki je lahko notranja lokacija podatkovnega RAM-a (0-127) ali SFR (128-255)
@rr Posredno naslovljiva 8-bitna lokacija notranjega podatkovnega RAM-a
podatki8 8-bitni neposredni podatki, vključeni v CPC
podatkiH MSB (15-8) neposrednih 16-bitnih podatkov
podatkiL Nizki biti (7-0) neposrednih 16-bitnih podatkov
addr11 11-bitni ciljni naslov
addrL Najmanj pomembni deli ciljnega naslova
disp8 8-bitni predznačeni odmik bajta
bit Neposredno naslovljivi bit, katerega naslov vsebuje CPC, ki se nahaja v notranjem podatkovnem RAM-u ali SFR
a15, a14...a0 Biti ciljnega naslova
(X) Vsebina elementa X
((X)) Vsebina na naslovu, shranjenem v elementu X
(X) [M] Izpust M element X

+
-
*
IN
ALI
XOR
/X
Operacije:
dodatki
odštevanje
množenje
divizije
logično množenje (operacija IN)
logično seštevanje (operacija ALI)
seštevek po modulu 2 (XOR)
inverzija elementa X

Mnemonika funkcij je edinstveno povezana s posebnimi kombinacijami metod naslavljanja in tipov podatkov. Skupno je v ukaznem sistemu možnih 111 takih kombinacij. Tabela prikazuje seznam ukazov, razvrščenih po abecedi.

Mnemonika Funkcija Zastave
Ekipa ACALL Absolutni klic podprograma
Dodatek AC, C, OV
Dodatek s prenašanjem AC, C, OV
Ekipa AJMP Absolutni prehod
Logika "IN"
Logični "AND" za spremenljive bite C
Primerjajte in skočite, če ne enakovredni C
Ekipa CLR A Ponastavitev baterije
CLR ekipa Ponastavi bit C, bit
CPL ekipa A Inverzija baterije
CPL ekipa Bitna inverzija C, bit
Ekipa DA A Akumulatorski decimalni popravek za seštevanje AC, C
Ekipa DEC<байт> Zmanjšanje
Ekipa DIV AB divizije C, OV
Ekipa DJNZ<байт>, <смещение> Zmanjšanje in skok, če ni nič
Ekipa I.N.C.<байт> Prirast
Ekipa INC DPTR Povečanje podatkovnega kazalca
Ekipa J.B. , Skoči, če je bit nastavljen
Ekipa JBC , Razcepite, če je bit nastavljen in ponastavite ta bit
Ekipa J.C. Skočite, če je prenos nastavljen
Ukaz JMP @A+DPTR Posredni prehod
Ekipa JNB , Skočite, če bit ni nastavljen
Ekipa JNC Skočite, če prenos ni nastavljen
Ekipa JNZ Skočite, če je vsebina akumulatorja drugačna od nič
Ekipa JZ Skoči, če je vsebina akumulatorja 0
Ekipa LCALL dolg klic
Ekipa LJMP dolg prehod
Posreduj spremenljivi bajt
Pošlji podatkovni bit C
Ukaz MOV DPTR, #podatki16 Naloži podatkovni kazalec s 16-bitno konstanto
MOVC navodilo A,@A+( ) Premaknite bajt iz pomnilnika programa
Pošlji podatke v zunanji pomnilnik (iz zunanjega pomnilnika).