Programiranje MK vrat v jeziku C 51. Mikrokrmilniki MCS–51: programski model, struktura, ukazi. Način branja vrat

Osnovna različica MCS–51 Kratka informacija. Sodobni 8-bitni mikrokontrolerji (MC) imajo takšne vire za nadzor v realnem času, za katere so bile prej uporabljene drage veččipne postavitve 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) in ukazni sistem, osredotočen na izvajanje nadzornih algoritmov;

● vključujejo vse naprave (procesor, ROM, RAM, vhodno/izhodna vrata, prekinitveni sistem, sredstva za obdelavo bitnih informacij itd.), ki so potrebne za implementacijo minimalne konfiguracije mikroprocesorskega nadzornega sistema. V 70. letih prejšnjega stoletja je podjetje Intel Družina 8-bitnih mikrokontrolerjev MCS-48, ki jih združujejo številne skupne značilnosti (bitna zmogljivost, ukazni sistem, nabor glavnih funkcijskih blokov itd.), je bila razvita in uvedena v industrijsko proizvodnjo. Osnovna različica te družine vključuje:

● 8-bitni procesor;

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

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

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

● en 8-bitni časovnik-števec;

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

Arhitektura družine MCS-51 se je izkazala za tako uspešno, da je še vedno eden od standardov za 8-bitne MK. Zato smo za predmet proučevanja izbrali mikrokrmilnike te družine, ki se pogosto uporabljajo v relativno enostavnih krmilnih sistemih.

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

Naslednje serije mikrovezij, medtem ko ohranjajo združljivost z osnovno različico, se od nje razlikujejo po izboljšani proizvodni tehnologiji, električni parametri, dodatno strojno opremo in funkcionalnost. Naslednji članki so posvečeni strukturnim in funkcionalnim značilnostim naslednjih modifikacij družine mikrovezij MCS-51.
Posplošen blokovni diagram MCS-51. Sestava MC, katere posplošen blokovni diagram je prikazan na sl. 7.1.1 vključuje:

● 8-bitni procesor CPU, sestavljen iz ALU, krmilne naprave UU in generator naslovov F;

● maska ​​ROM s kapaciteto 4K bajtov za shranjevanje programov;

● RAM s kapaciteto 128 bajtov za shranjevanje podatkov;

● štiri programabilna vrata P0–P3 za vhod– izhod informacij;

● blok serijski vmesnik BPI za izmenjavo informacij z zunanjimi napravami po dvožilni liniji;

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

● Blok prekinitev BP za organiziranje prekinitev izvršljivih programov. Ta sredstva tvorijo rezident del mikrokontrolerja, ki se nahaja neposredno na čipu. MK vključuje veliko število registrov, ki so dodeljeni ločenim funkcijskim blokom in niso prikazani na diagramu.

Diagram tudi ne prikazuje krmilnih vezij. Dvosmerna izmenjava informacij med bloki se izvaja prek notranjega 8-bitnega podatkovno vodiloŠD-8.

Z notranjim 16-bitnim naslovno vodiloША-16 Naslov, ustvarjen v CPE, je izhod v ROM (12 naslovnih bitov) in v RAM (8 nižjih bitov).

Pri uporabi zunanjega pomnilnika se 8 najmanj pomembnih bitov naslova prenese na vrata P0, 3 ali 8 najpomembnejših bitov pa na vrata P2.

Za logično razširitev vmesnika se uporablja združevanje funkcij vratnih linij. Kot primer na sl. 7.1.1 črtkana črta prikazuje črte vrat P3, ki delujejo alternativa funkcije prenosa krmilnih signalov, katerih namen bo obravnavan v nadaljevanju. Za ustvarjanje notranjega generatorja ure sta kvarčni resonator in dva kondenzatorja priključena na sponke mikrovezja MK (slika 7.1.1). Namesto notranjega taktnega generatorja lahko za sinhronizacijo uporabimo zunanji vir nihanja. Pogojno grafična oznaka Mikrovezja MK so prikazana na sl. 7.1.2, oznaka in namen zatičev - v tabeli. 7.1.1. Oglejmo si funkcionalne bloke MK in načelo njihovega delovanja. Aritmetična logična naprava. Aritmetično logična naprava je zasnovana za izvajanje aritmetičnih (vključno z množenjem in deljenjem) in logičnih operacij na osembitnih operandih, pa tudi operacij logičnega premika, ničlenja, nastavitve itd. Blokovni diagram ALU je prikazan na sl. 7.1.3.

ALU vključuje

● vzporedni osembitni seštevalnik SM kombinacijskega tipa z zaporednim prenosom, ki izvaja aritmetične (seštevanje in odštevanje) in logične (seštevanje, množenje, neskladje in istovetnost) operacije;

baterija A, zagotavljanje funkcij glavnega aritmetičnega registra;

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

registri(programska oprema ni na voljo) začasna hrambaРВХ1, РВХ2, namenjeni za sprejem in shranjevanje operandov v času trajanja operacije;

● ROM konstante ROM, ki hrani korekcijsko kodo za binarno decimalno predstavitev podatkov, kodo maske za bitne operacije in kodo za konstante;

register statusnih besed programa PSW, ki beleži stanje ALU po končani operaciji. V tabeli 7.1.2 podaja informacije o dodelitvi bitov posameznih bitov registra PSW. Krmilna naprava. Krmilna enota (CU) centralnega procesorja namenjeno za usklajevanje sodelovanje vsa MK vozlišča z uporabo generiranih taktnih impulzov in krmilnih signalov. Sestavljen je iz (slika 7.1.4):

sinhronizacijska in krmilna enota Krmilni sistem, ki generira taktne impulze, ki definirajo strojne cikle in njihova posamezna stanja (S) ter faze (P) in glede na način delovanja mikrokrmilnika generira potreben nabor krmilnih signalov. Za izvedbo ukaza so potrebni en, dva ali štirje strojni cikli.

Vsak strojni cikel ima šest držav S1–S6, A vključuje vsako stanje dve fazi P1, P2, katerih trajanje je nihajna doba generatorja takta T 0SC.

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

Poleg taktnih impulzov sinhronizacijska naprava generira dva (včasih enega) krmilna signala za spodnji bajt naslova ALE v vsakem strojnem ciklu v obliki pozitivnega impulza v fazah S1P2–S2P1 in S4P2–S5P1. Časovni diagrami na sl. 7.1.5 ponazoriti organizacijo strojnih ciklov;

● ukazni register RK, ukazni dekoder DC in PLM, ki omogočata v vsakem strojnem ciklu generiranje nabora mikrooperacij v skladu z mikroprogramom izvedenega ukaza;

● Vhodno/izhodna logika LVV za sprejem in oddajo signalov, ki zagotavljajo izmenjavo informacij iz MK z zunanjimi napravami prek vrat P0–P3;

● Register PCON, ki ima en omogočen bit SMOD na položaju PCON.7 za podvojitev podatkovne hitrosti serijskih vrat. Preostali bitovi so rezervirani za kasnejšo uporabo.
Generator naslovov. Generator naslovov (FA) ali PC ukazni števec, namenjeno za oblikovanje trenutnega 16-bitnega naslova programskega pomnilnika in 8/16-bitnega naslova zunanjega podatkovnega pomnilnika. Sestavljen je iz (slika 7.1.6):

● 16-bitni medpomnilnik B, ki komunicira med 8-bitnim podatkovnim vodilom SD in 16-bitnim notranjim vodilom (IB) oblikovalnika naslova;

● SI inkrementno vezje za povečanje vrednosti trenutnega naslova programski pomnilnik na enoto;

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

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

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

Pomnilnik podatkov. Pomnilnik podatkov namenjeno za sprejemanje, shranjevanje in izdajanje informacij, ki se uporabljajo med izvajanjem programa. Notranji (rezidenčni) podatkovni pomnilnik (slika 7.1.7) je sestavljen iz RAM-a s kapaciteto 128 bajtov, kazalec sklada S.P. naslovni register RAM RA in dekoder Dsh. Kazalec sklada SP je 8-bitni register, zasnovan za sprejem in shranjevanje naslova celice sklada, do katere je bil zadnji dostop. Po ponastavitvi je kazalec sklada nastavljen na naslov 07H, kar ustreza začetku sklada z naslovom 08H. Naslovni register PA skupaj z dekoderjem Dsh omogoča dostop do zahtevane pomnilniške celice, ki vsebuje bajt ali bit informacije.

MK omogoča povečanje kapacitete podatkovnega pomnilnika do 64 KB s povezavo zunanje pomnilniške naprave. Kot primer na sl. 7.1.8 prikazuje organizacijo strani zunanjega podatkovnega pomnilnika VPD s kapaciteto 2K bajtov z uporabo ukazov vrste 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 se lahko uporablja kot vhodno/izhodne linije.
Na sl. 7.1.9 prikazuje časovne diagrame ciklov branja in pisanja, ko MK deluje z zunanjim RAM-om. Diagrami kažejo:

● RSN - visoki bajt števca ukazov osebnega računalnika;

● DPL, DPH - nizki in visoki bajti podatkovnega kazalnega registra DPTR, ki se uporablja kot register za posredno naslavljanje v ukazih MOVX @DPTR,A in MOVX A,@DPTR;

● P2 SFR - zapahi vrat P2;

● Rm (m = 0, 1) - registri, uporabljeni v ukazih MOVX @Rm, A in MOVX A, @Rm kot posredni naslovni registri;

● Z - stanje visoke upornosti;

● D - obdobje, v katerem se podatki iz vrat P0 vnašajo v mikrokrmilnik. Programski pomnilnik. Programski pomnilnik je zasnovan za shranjevanje programov, ima svoj (ločen od podatkovnega pomnilnika) naslovni prostor in je samo za branje. Vključuje dekoder Dsh in ROM (slika 7.1.10). Za naslavljanje programskega pomnilnika se uporablja 16-bitni PC števec, tako da je njegova največja zmogljivost 64K bajtov. Notranji programski pomnilnik je sestavljen iz 4K bajtnega ROM-a in 12-bitnega dekoderja. Zunanji pomnilnik je priključen v skladu s shemo na sl. 7.1.11. Če je 0 V dobavljen na ¯EA zatiču MK (kot je prikazano na sliki 7.1.11), notranji spomin programi so onemogočeni. Vsi dostopi do pomnilnika se začnejo na naslovu 0000h. Ko je priključek ¯EA priključen na vir napajanja, se samodejno izvede dostop do notranjega programskega pomnilnika na naslovih 0000h–FFFFh in zunanjega programskega pomnilnika na naslovih 0FFFh–FFFFh.

Za branje zunanjega pomnilnika MK programov se generira signal ¯PSEN. Pri delu z notranjim pomnilnikom se signal za branje ne uporablja. Pri dostopu do zunanjega programskega pomnilnika se vedno oblikuje 16-bitni naslov. Nizki bajt naslova se v prvi polovici strojnega cikla prenaša prek vrat P0 in se določi z rezom stroboskopa ALE v registru.V drugi polovici cikla se vrata P0 uporabljajo za vnos bajta podatke iz zunanjega pomnilnika v MK.

Najpomembnejši bajt naslova se prenaša skozi vrata P2 v celotnem času dostopa do pomnilnika.

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

● PCL OUT - izpis spodnjega bajta programskega števca osebnega računalnika;

● RSN OUT - izhod visokega bajta števca ukazov PC;

● DPH - visoki bajt podatkovnega kazalnega registra DPTR, ki se uporablja kot register za posredno naslavljanje v ukazih MOVX @DPTR,A in MOVX A,@DPTR;

● P2 SFR - zapahi vrat P2;

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

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

● nizki bajt naslova A7…A0 je izhod skozi vrata P0; podatkovni bajt se izpiše iz MK in vnese v MK pri delu z zunanjim programskim pomnilnikom in zunanjim podatkovnim pomnilnikom (časovno ločeno);

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

● linije vrat P3 se lahko uporabljajo za izvajanje alternativnih funkcij, če je v zapahu te vrstice vnešena 1, sicer pa je na izhodu linije fiksirana 0. Alternativne funkcije pinov vrat P3 so podane v tabeli. 7.1.3.

Značilnosti vezij vrat

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

● zapah za fiksiranje bita prejetih podatkov;

● izhodni ojačevalnik 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 uravnava notranji signal "Write to latch". Podatkovni bit iz neposrednega izhoda flip-flopa D je mogoče programsko prebrati prek vmesnega pomnilnika B1 z uporabo signala "Read Latch" v linijo notranjega podatkovnega vodila (ID) MK.

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

Da bi skrajšali preklopni čas pri prehodu zatičev vrat iz stanja 0 v stanje 1, je bil vzporedno z obremenitvenim tranzistorjem VT2 uveden dodaten tranzistor VT3. Tranzistor VT3 je z uporabo elementov v vezju vrat odklenjen za čas, ki je enak dvema nihajnima obdobjema glavnega kvarčnega oscilatorja (med fazami S1P1, S2P2 strojnega cikla). Izhodne stopnje vrata P0, P2 (slika 7.1.13, A, c) z uporabo multiplekserja 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 zatič vrat P3 izhod in njegov zapah vsebuje 1, potem njegovo izhodno stopnjo krmili strojna oprema notranji signal"Nadomestna izhodna funkcija", ki zagotavlja izvajanje ustrezne alternativne funkcije, tj. eden od signalov ¯WR, ¯RD ali RxD se ustvari na zunanjem zatiču. Če se izhod vrat uporablja kot vhod, potem se alternativni signal, ki pride do njega (TxD, ¯INT0, ¯INT1, T0, T1), prenese na notranjo linijo "Funkcija alternativnega vhoda".

Način snemanja vrat.

Ko se izvede ukaz za pisanje vrat, se nova vrednost zapiše v zapah v fazi S6P2 in izpiše neposredno na izhodni zatič vrat v fazi S1P1 naslednjega strojnega cikla.

Način branja vrat

Ukazi za branje vrat berejo informacije neposredno z zunanjih zatičev vrat ali iz izhodov zapaha. V prvem primeru se podatkovni bit iz zatiča vrat programsko prebere prek vmesnega pomnilnika B2 z uporabo signala "Read Pins" v linijo notranjega podatkovnega vodila (SD) MK. Upoštevajte, da se signali "Write to latch", "Read latch", "Read pins" ustvarijo v strojni opremi, 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 »Branje-Spreminjanje-Pisanje« se izvaja pri izvajanju naslednjih ukazov: ANL, ORL, XRL, JBC; CPL; INC; DEC; DJNC; MOV PX,Y; CLR PX.Y; SETB PX,Y.

Branje informacij iz izhodov zapahov vam omogoča, da odpravite napake pri interpretaciji logičnega nivoja na zatiču vrat. Preberite nadaljevanje članka.

Arhitekturo družine MCS-51 v veliki meri določa njen namen – konstrukcija kompakten in poceni digitalne naprave. Vse funkcije mikroračunalnika se izvajajo z enim samim mikrovezjem. Družina MCS-51 vključuje celo vrsto mikrovezij od najpreprostejših mikrokontrolerjev do precej zapletenih. Mikrokrmilniki družine MCS-51 omogočajo izvajanje tako nadzornih nalog za različne naprave kot implementacijo posameznih komponent analogno vezje. Vsa mikrovezja te družine delujejo z enakim sistemom ukazov, večina jih je izvedena v enakih primerih z ustrezen pinout(oštevilčenje nog za telo). To vam omogoča, da za razvito napravo uporabite mikrovezja različnih proizvajalcev (kot so Intel, Dallas, Atmel, Philips itd.). brez predelave shematski diagram naprave in programe.

Slika 1. Blokovna shema krmilnika K1830BE751

Blokovna shema krmilnika je prikazana na sliki 1. in je sestavljena iz naslednjih glavnih funkcijskih enot: krmilna enota, aritmetično-logična enota, časovnik/števec enota, serijski vmesnik in prekinitvena enota, programski števec, podatkovni pomnilnik in programski pomnilnik. Dvosmerna komunikacija se izvaja z uporabo notranjega 8-bitnega podatkovnega vodila. Oglejmo si podrobneje namen vsakega bloka. Skoraj vsi člani 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). Komandni sistem vsi krmilniki družina MCS-51 vsebuje 111 osnovni ukazi s formatom 1, 2 ali 3 bajtov in se ne spremeni pri prehodu z enega čipa na drugega. To zagotavlja odlično prenosljivost programa z enega čipa na drugega.

Krmilna in sinhronizacijska enota

Enota za merjenje časa in krmiljenje je zasnovana za ustvarjanje sinhronizacijskih in krmilnih signalov, ki zagotavljajo koordinacijo skupnega delovanja računalniških enot glavnega računalnika v vseh dovoljenih načinih njegovega delovanja Krmilna enota vključuje:

  • naprava za oblikovanje časovnih intervalov,
  • vhodno-izhodna logika,
  • register ukazov
  • register upravljanja z energijo,
  • ukazni dekoder, računalniška krmilna logika.

Naprava za oblikovanje časovnih intervalov zasnovan za generiranje in izdajanje notranjih signalov ure faz, ur in ciklov. Število strojnih ciklov določa trajanje navodil. Skoraj vsi računalniški ukazi se izvedejo v enem ali dveh strojnih ciklih, razen ukazov množenja in deljenja, katerih trajanje izvajanja je štiri strojne cikle. Označimo frekvenco nadrejenega oscilatorja z F g. Potem je trajanje strojnega cikla enako 12/F g ali je 12 period signala nadrejenega oscilatorja. V/I logika je namenjena sprejemanju in izhodu signalov, ki zagotavljajo izmenjavo informacij z zunanjimi napravami preko vhodno/izhodnih vrat P0-P3.

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

Register nadzora povpraševanja (PCON) vam omogoča zaustavitev mikrokrmilnika, da zmanjšate porabo energije in zmanjšate raven motenj mikrokrmilnika. Še večje zmanjšanje porabe energije in motenj lahko dosežemo z zaustavitvijo glavnega oscilatorja mikrokrmilnika. To lahko dosežete s preklapljanjem bitov registra za nadzor porabe PCON. Za proizvodno možnost n-MOS (serija 1816 ali tuji čipi, ki nimajo "c" na sredini svojega imena) vsebuje register za nadzor porabe PCON samo en bit, ki nadzoruje hitrost prenosa serijskih vrat SMOD, in ni bitov za nadzor porabe energije.

Skupaj s člankom "Arhitektura mikrokontrolerjev MCS-51" preberite:


http://site/MCS51/tablms.php


http://site/MCS51/SysInstr.php


http://site/MCS51/port.php

Trenutno različna podjetja proizvajajo številne modifikacije in analoge te družine, tako Intel kot drugi proizvajalci, takt in zmogljivost pomnilnika sta se desetkrat povečala in še naprej naraščata. Širi se tudi nabor modulov, vgrajenih v LSI, veliko število sodobnih modelov ima vgrajen rezidenčni hitri ADC z do 12, zdaj pa lahko tudi več bitov. Toda družina MCS51 temelji na Intelovih LSI 8051, 80С51, 8751, 87С51, 8031, 80С31, katerih prvi vzorci so bili izdani leta 1980.

Mikrokontrolerji družine MCS51 so izdelani s pomočjo 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 – na čipu ni EPROM-a, 7 – 4K EPROM z ultravijoličnim brisanjem. Tretji znak: 3 – ROM na čipu, 5 – če ROM-a ni, potem je na čipu maska ​​ROM.

In tako je 80С51 LSI, ki temelji na tehnologiji k-MOS z masko ROM na čipu, 8031 ​​je n-MOS LSI brez programskega pomnilnika (ROM, RPOM) na čipu, 8751 je n-MOS LSI z rezident (nameščen na čipu) RPOM z ultravijoličnim brisanjem. Nadalje bomo obravnavali 8751 LSI in po potrebi izrazili pridržke glede razlik med drugimi vezji, pri čemer bomo navedli tiste parametre, ki so bili objavljeni za prve serijske LSI. Če je potrebno, lahko najdete dodatne informacije o vseh sodobnih spremembah 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 osnovnimi lastnostmi), glavna razlika med katerimi je izvedba programskega pomnilnika in poraba energije (glej tabelo 3.1). Mikrokrmilnik je osembitni, tj. ima ukaze za obdelavo osembitnih besed, ima harvardsko arhitekturo, taktna frekvenca osnovnih vzorcev družine je 12 MHz.

Tabela 3.1.

Mikro vezja

Notranji programski pomnilnik, bajtov

Vrsta programskega pomnilnika

Notranji podatkovni pomnilnik, bajt

Urna frekvenca, MHz

Poraba toka, mA

MK 8051 in 80C51 vsebujeta programski pomnilnik ROM, ki ga je mogoče programirati z masko, s kapaciteto 4096 bajtov med izdelavo čipa in sta zasnovana za uporabo v množični proizvodnji. MK 8751 vsebuje 4096-bajtni RPOM z ultravijoličnim izbrisom in je primeren v fazi razvoja sistema pri odpravljanju napak v programih, pa tudi med proizvodnjo v majhnih serijah ali pri ustvarjanju sistemov, ki zahtevajo ponovno pisanje med delovanjem.

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 obseg (od 4 KB na čipu) programskega pomnilnika ROM.

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

    osembitni centralni procesor;

    4 KB programskega pomnilnika (samo 8751 in 87C51);

    128-bajtni podatkovni pomnilnik;

    štiri osembitna programabilna V/I vrata;

    dva 16-bitna multi-mode časovnika/števca;

    avtomatski vektorski prekinitveni sistem s petimi vektorji in dvema programsko nadzorovanima prednostnima nivojema;

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

    generator ure.

Sistem ukazov MK vsebuje 111 osnovnih ukazov v formatu 1, 2 ali 3 bajtov. Mikrokontroler ima:

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

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

    nabor registrov posebnih funkcij, ki krmilijo elemente MK. Obstajajo naslednji načini delovanja mikrokontrolerja:

1). Splošna ponastavitev. 2).Normalno delovanje. 3). Način nizke porabe energije in način mirovanja. 4). Način programiranja za rezidenčni RPOM, če je na voljo.

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

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

V zgornjem območju stanovanjskih naslovov RAM so posebni funkcijski registri (SFR, Special Function Registers). Njihov namen je podan v tabeli. 3.2.

Tabela 3.2.

Imenovanje

Ime

Baterija

Registracija B

Register stanja programa

Kazalec sklada

Podatkovni kazalec. 2 bajta:

Nizki bajt

Visoki bajt

Register prioritete prekinitev

Register omogoči prekinitev

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, dopuščanje bitno naslavljanje

Oglejmo si na kratko funkcije registrov SFR, prikazane v tabeli 3.2.

Baterija ACC - register akumulatorjev. Ukazi, zasnovani za delo

vi z baterijo, uporabite na primer mnemonik "A", MOV A, P2 . Mnemonika ACC se uporablja na primer pri bitnem naslavljanju akumulatorja. Tako bo simbolično ime petega bita akumulatorja pri uporabi asemblerja A5M51 naslednje: ACC. 5. .

Registrirajte se IN . Uporablja se med operacijami množenja in deljenja. Za druga navodila lahko register B obravnavamo kot dodatni register v realnem času.

Registrirajte se država programi P.S.W. vsebuje informacije o stanju programa in se namesti delno samodejno glede na rezultat opravljene operacije, delno pa ga namesti uporabnik. Oznaka in namen bitov registra sta podana v tabeli 3.3 oziroma 3.4.

Tabela 3.3.

Imenovanje

Tabela 3.4.

Imenovanje

Dodelitev bitov

Bitni dostop

Nosi zastavo. Spremembe med izvajanjem niza aritmetičnih in logičnih ukazov.

Strojna ali programska oprema

Dodatna nosilna zastavica. Nastavljeno/počiščeno v strojni opremi med navodili za seštevanje ali odštevanje, da nakaže prenos ali izposojo v bitu 3, ko je ustvarjen najmanj pomemben grizek rezultata (D0-D3).

Strojna ali programska oprema

Zastavica 0. Uporabniško določena zastavica.

Programsko

Programsko

Indeks banke delovnega registra

Programsko

Banka 0 z naslovi (00Н - 07Н) Banka 1 z naslovi (08Н - 0FН) Banka 2 z naslovi (10Н - 17Н) Banka 3 z naslovi (18Н - 1FН)

Prelivna zastavica. Nastavi ali počisti strojna oprema med izvajanjem aritmetičnih navodil, da prikaže stanje prelivanja

Strojna ali programska oprema

Rezervni. Vsebuje zapisljiv in berljiv sprožilec, ki ga je mogoče uporabiti

Paritetni bit. Strojna ponastavitev ali nastavitev ob vsakem ciklu ukazov, da prikaže sodo ali liho število bitov baterije v stanju "1".

Strojna ali programska oprema

Kazalec kup SP - 8-bitni register, katerega vsebina se poveča pred zapisovanjem podatkov v sklad, ko se izvajajo ukazi 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, se lahko s preglasitvijo kazalca sklada območje sklada nahaja kjer koli v notranjem RAM-u podatkov mikrokrmilnika.

Kazalec podatke DPTR je sestavljen iz visokega bajta (DPH) in nizkega bajta

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

bodisi 16-bitni register ali dva neodvisna osem-bitna registra.

Port0 - PortZ. Ločeni biti registrov posebnih funkcij P0, P1, P2, RZ so "zapahi" bitov vrat P0, P1, P2, RZ.

Medpomnilnik dosledno pristanišče SBUF predstavlja dva ločena registra: medpomnilnik oddajnika in medpomnilnik sprejemnika. Ko se podatki zapišejo v SBUF, vstopijo v medpomnilnik oddajnika in pisanje bajta v SBUF samodejno sproži prenos prek serijskih vrat. Ko se podatki berejo iz SBUF, se pridobijo iz medpomnilnika sprejemnika.

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

registri za štetje bitov za časovnik/števec 0 oziroma časovnik/števec 1.

Registri upravljanje. Registri posebnih funkcij IP, IE, TMOD, TCON, SCON in PCON vsebujejo kontrolne in statusne bite prekinitvenega sistema, časovno

merilniki/števci in serijska vrata. O njih bomo podrobneje razpravljali spodaj.

RxD TxD INT0 INT1 T0 T1 WR

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

RST BQ2 BQ 1 E.A.

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

Med delovanjem MC zagotavlja:

    najmanjši č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 z uporabo kvarca, LC verige ali zunanjega oscilatorja.

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

Najpomembnejša in najbolj značilna značilnost družinske arhitekture MCS51 je, da lahko ALU manipulira z enobitnimi podatki poleg izvajanja operacij na 8-bitnih tipih podatkov. Posamezne bitove, ki so dostopni programski opremi, je mogoče nastaviti, počistiti ali zamenjati z njihovim dopolnilom, jih je mogoče posredovati, preveriti in

Slika 3.2. Zunanji zatiči

mikrokrmilnik

uporablja v logičnih izračunih. Medtem ko je podpora za preproste tipe podatkov (če je na voljo)

Čeprav se trenutni trend daljših besed na prvi pogled morda zdi kot korak nazaj, je zaradi te kakovosti družina mikrokrmilnikov MCS51 še posebej primerna za aplikacije, ki temeljijo na krmilnikih. Delovni algoritmi slednjega predpostavljajo prisotnost vhodnih in izhodnih logičnih spremenljivk, ki jih je težko implementirati s standardnimi mikroprocesorji. Vse te lastnosti se skupaj imenujejo logični procesor družine MCS51. Zaradi tega zmogljivega ALU je družina mikrokrmilnikov MCS51 primerna tako za nadzorne aplikacije v realnem času kot podatkovno intenzivne algoritme.

Shema vezja mikrokrmilnika je prikazana na sl. 3.2. V osnovni izvedbi je zapakiran v 40-polno DIP ohišje. Poglejmo namen žebljičkov.

Začnimo z napajalnimi zatiči «0 IN" in "5 IN" , preko katerega dobi osnovno prehrano. Trenutna poraba je podana v tabeli. 3.1.

Zaključek "RST" - ponastavitev mikrokontrolerja. Ko je za ta zatič uporabljena aktivna visoka raven, se način splošno ponastaviti in MK izvaja naslednja dejanja:

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

    kazalec sklada ima vrednost enako 07H;

    onemogoči vse vire prekinitev, časovnik-števec in serijski

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

deli nožice ALE in PME kot vhode za zunanje taktiranje;

      v registrih posebne funkcije Rezervirani biti PCON, IP in IE imajo naključne vrednosti, vsi drugi biti pa so ponastavljeni na nič;

      register SBUF je nastavljen na naključne vrednosti.

      nastavi zapahe vrat P0-PZ na "1".

Stanja registrov mikrokrmilnika po ponastavitvi so prikazana v tabeli 3.5.

Tabela 3.5.

Informacije

Negotovo

0ХХХ0000V za k-MOS 0XXXXXXXB za n-MOS

Zatič RST ima tudi alternativno funkcijo. Prek njega se napaja rezervno napajanje, da ostane vsebina RAM-a mikrokontrolerja nespremenjena, ko odstranite glavnega.

zaključki BQ1, BQ2 so namenjeni za priključitev kvarčnega resonatorja, ki določa urno frekvenco MK.

Zaključek EA` (E zunanji A obleka zunanji naslov) - zasnovan za aktiviranje načina branja kontrolnih kod iz zunanjega programskega pomnilnika, ko je na ta pin uporabljena aktivna nizka raven. Izhod ima alternativni namen (funkcijo). V načinu za programiranje se napaja z napetostjo za programiranje iz RPOM.

Zaključek PME (p rogram M emory E nable dovoljenje spomin programi) - je zasnovan za nadzor cikla branja iz programskega pomnilnika in ga samodejno aktivira MK v vsakem strojnem ciklu.

Zaključek ALE (A obleka L dolžina E nable dovoljenje mlajši naslovi) utripa izhod nižjega dela naslova prek vrat P0. Izhod se uporablja tudi pri programiranju RPOM, medtem ko se vanj dovaja stroboskopski impulz za proces programiranja.

MK vsebuje štiri skupine vrat: P0, P1, P2 in P3. To je preostalih 40 pinov mikrokontrolerja. Ta vrata lahko služijo za bitni vnos in izhod informacij, poleg tega pa ima vsaka od njih svojo specializacijo. Splošni funkcionalni diagram vrat je prikazan na sl. 3.3. Vrata vsebujejo izhodna stikala FET, povezana z zatičem, funkcijsko stikalo, zapah flip-flopa D in krmilno logiko. Na zapah na notranjem vodilu MK lahko zapišemo enoto ali ničlo. Te informacije se prek funkcijskega stikala pošljejo na izhodna stikala in izhod MK. V enem stanju sta oba tranzistorja N in N1 zaprta, N2 pa je odprt. V ničelnem stanju se N odpre-

Xia in N2 se zapre. V trenutku, ko vrata izvedejo alternativno funkcijo, za katero so specializirana, se izhodno stanje zapaha počisti. Mikrokrmilnik lahko ločeno bere stanje zapaha vrat in stanje njegovega izhoda, ki ga nastavi zunanji signal. V ta namen vsebuje zbirnik MK posebne ukaze, ki aktivirajo ustrezne vrstice. Če želite prebrati stanje zatiča v ustreznem zapahu vrat, je

biti vnaprej posneti

Iz notranjega

Nadzorni zapah

Funkcijsko stikalo

Vcc

Vikend

enota. Ko je vrstica »read latch« aktivirana, se prikaže izhod celice »AND«, s katero je ta vrstica povezana.

njene gume MK D Q

Pišite na zapah C Q

Preberi zapah

Port pin

Stanje zaklepa se ob aktiviranju prenese na notranje vodilo MC

“read output” - stanje zunanjega zatiča vrat.

Pristanišče P0 – univerzalna dvosmerna vrata

I/O Onkraj tega pristanišča

funkcijo organiziranja zunanjih naslovnih vodil in

riž. 3.3. Funkcionalni diagram vrat mikrokrmilnika

data za razširitev programskega pomnilnika in podatkovnega pomnilnika

mikrokrmilnik. Ko se dostopa do zunanjega programskega pomnilnika ali se izvede ukaz za dostop do zunanjega podatkovnega pomnilnika, se nizki del naslova (A0...A7) nastavi na zatičih vrat, ki je visoko zaprt na zatiču ALE. Nato se pri zapisovanju podatkov v pomnilnik posnete informacije iz notranjega vodila MK pošljejo na zatiče vrat P0. Nasprotno, pri operacijah branja se informacije iz zatičev vrat pošljejo v notranje vodilo. Značilnost vrat P0 je odsotnost "pull-up" tranzistorja N2, ki zagotavlja napajanje izhoda. Pri pisanju v zapah vrat enote se preprosto preklopi v stanje visoke impedance, kar je potrebno za normalno delovanje podatkovnega vodila. Če je treba preko izhoda napajati katero koli zunanjo napravo, je treba zagotoviti zunanje upore od napajalnih tokokrogov do izhoda vrat.

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

Pristanišče P2 – univerzalna dvosmerna V/I vrata, ki kot alternativno funkcijo izdajo višji del naslova (A8...A15) pri dostopu do zunanjega pomnilnika.

Pristanišče P3 – univerzalna dvosmerna V/I vrata, katerih vsak bit omogoča izvajanje različnih alternativnih funkcij. V tem primeru se alternativne funkcije izvajajo le, če so zapisane na zapahe priključnih zatičev; v nasprotnem primeru je izvajanje alternativnih funkcij blokirano. Naštejmo jih za vsak bit posebej:

P3.0 RxD (R ead e X notranji D jedel, branje zunanjih podatkov) – vnos vgrajenega serijskega oddajnika-sprejemnika.

P3.1 TxD (T ype e X notranji D ate, prenaša zunanje podatke) – izhod vgrajenega serijskega oddajnika-sprejemnika.

P3.2 INT0` (INT erupt, interrupt) – zunanji prekinitveni vhod 0.

P3.3 INT1` – zunanji prekinitveni vhod 1.

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

P3.5 C/T1 – vnos prvega vgrajenega časovnika/števca.

P3.6 WR` (W rite, write) – izhod za krmiljenje cikla pisanja v podatkovni pomnilnik.

P3.7 RD` (R ead, read) – nadzor izhoda bralnega cikla iz podatkovnega pomnilnika.

Zatiči vrat P1, P2 in P3 lahko oddajo tok približno 0,2 mA na enoto in sprejmejo tok 3 mA pri nič; zatiči vrat P0 so močnejši in lahko oddajo tok približno 0,8 mA v eni enoti in prejema tok 5 mA pri ničli. Kratke informacije o namenu pinov mikrokontrolerja so podane v tabeli 3.6.

Tabela 3.6.

Imenovanje

Izhodni namen

8-bitna dvosmerna vrata P1. Vnos naslova A0-A7 pri preverjanju notranjega ROM-a (RPM)

vstop izhod

Splošni signal za ponastavitev. Izhod rezervne moči RAM-a iz zunanjega vira (za 1816)

8-bitna dvosmerna vrata P3 z dodatnimi funkcijami

vstop 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 stroboskopskega signala pri pisanju v zunanji podatkovni pomnilnik: - WR`

Izhod stroboskopskega signala pri branju iz zunanjega pomnilnika podatkov – RD`

Vodniki za priključitev kvarčnega resonatorja.

izhodni vnos

Splošni zaključek

8-bitna dvosmerna vrata P2. Izhod naslova A8-A15 v načinu zunanjega pomnilnika. V načinu preverjanja notranjega ROM-a se nožice P2.0 - P2.6 uporabljajo kot vnos naslovov A8-A14. Pin P2.7 - dovoljenje za branje ROM-a.

vstop izhod

Ločljivost programskega pomnilnika

Izhodni signal omogoči fiksacijo naslova. Pri programiranju signala RPOM: PROG

vstop izhod

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

vstop izhod

8-bitna dvosmerna vrata P0. Naslovno/podatkovno vodilo za delo z zunanjim pomnilnikom. Podatkovni izhod D7-D0 v testnem načinu notranjega ROM-a (RPM).

vstop izhod

Izhodna moč iz vira napetosti +5V

NAČRT PREDAVANJA

1. Uvod

2. Aritmetična in logična navodila

3. Ukazi za prenos podatkov

4. Logične operacije

5. Navodila za skok

1. Uvod

Komandni sistem MCS-51 podpira en niz navodil, ki je zasnovan za izvajanje 8-bitnih algoritmov za krmiljenje aktuatorja. Možno je uporabiti hitre metode za naslavljanje notranjega RAM-a in izvajanje bitnih operacij na majhnih podatkovnih strukturah. Obstaja obsežen sistem za naslavljanje enobitnih spremenljivk kot neodvisnega podatkovnega tipa, ki omogoča uporabo posameznih bitov v logičnih in krmilnih ukazih Boolove algebre.

Načini naslavljanja : niz ukazov MCS-51 podpira naslednje načine naslavljanja. Neposredno naslavljanje: Operand je določen z 8-bitnim naslovom v navodilu. Neposredno naslavljanje se uporablja samo za spodnjo polovico notranjega podatkovnega pomnilnika in registrov SFR. Posredno naslavljanje: Navodilo naslovi register, ki vsebuje naslov operanda. Ta vrsta naslavljanje se uporablja za zunanji in notranji RAM. Registre je mogoče uporabiti za določanje 8-bitnih naslovov R0 in R1 izbrana registrska banka ali kazalec sklada SP. Za 16-bitno naslavljanje se uporablja samo register podatkovnega kazalca DPTR.

Navodila za registracijo : registri R0–R7 trenutno registrsko banko je mogoče nasloviti prek posebnih navodil, ki vsebujejo 3-bitno polje, ki označuje številko registra v samem navodilu. V tem primeru v ukazu manjka ustrezno naslovno polje. Operacije z uporabo posebnih registrov: nekatera navodila uporabljajo posamezne registre (na primer operacije akumulatorja, DPTR itd.). V tem primeru naslov operanda v ukazu sploh ni določen. Vnaprej je določena s kodo delovanja.

Takojšnje konstante : konstanta se lahko nahaja neposredno v ukazu za operacijsko kodo.

Indeksno naslavljanje : Indeksno naslavljanje se lahko uporablja samo za dostop do programskega pomnilnika in samo v načinu branja. V tem načinu se pregledujejo tabele v programskem pomnilniku. 16-bitni register ( DPTR ali programski števec) označuje osnovni naslov želene tabele, akumulator pa označuje vstopno točko vanjo.

Nabor ukazovima 42 mnemonik ukazov za določanje 33 funkcij tega sistema. Sintaksa večine ukazov zbirnega jezika je sestavljena iz mnemonike funkcije, ki ji sledijo operandi, ki označujejo metode naslavljanja in tipe podatkov. Različne vrste načini podatkov ali naslavljanja so določeni z nastavljenimi operandi, ne s spremembami v mnemotehniki.

Sistem ukazov lahko razdelimo v pet skupin: aritmetična navodila; logični ukazi; ukazi za prenos podatkov; ukazi bitnega procesorja; ukazi za razvejanje in prenos nadzora. Oznake in simboli, uporabljeni v ukaznem sistemu, so podani spodaj.

Tabela. Oznake in simboli, ki se uporabljajo v ukaznem sistemu

Oznaka, simbol

Namen

Baterija

Registri trenutno izbrane registrske banke

Številka naloženega registra, podana v ukazu

neposredno

Neposredno naslovljiv 8-bitni notranji naslov podatkovne celice, ki je lahko notranja podatkovna celica RAM (0–127) ali register posebne funkcije SFR (128–255)

Posredno naslovljiva 8-bitna notranja podatkovna celica RAM

8-bitni neposredno podatki, vključeni v operacijsko kodo (OPC)

podatkiH

Najpomembnejši biti (15–8) neposrednih 16-bitnih podatkov

podatkiL

Najmanj pomembni biti (7–0) neposrednih 16-bitnih podatkov

11-bitni ciljni naslov

naslovL

Najmanj pomembni deli ciljnega naslova

8-bitni predznačeni offset bajt

Neposredno naslovljiv bit, katerega naslov vsebuje COP, ki se nahaja v notranjem podatkovnem RAM-u ali posebnem funkcijskem registru SFR

a15, a14...a0

Biti ciljnega naslova

Vsebina elementa X

Vsebina na naslovu, shranjenem v elementu X

Bit M elementa X


+

*
IN
ALI
XOR
/X

Operacije:
dodatek
odštevanje
množenje
divizije
logično množenje (operacija IN)
logično seštevanje (operacija OR)
dodatek modulo 2 (izključni ALI)
inverzija elementa X

Funkcijska mnemonika je edinstveno povezana s posebnimi kombinacijami metod naslavljanja in tipov podatkov. Skupno je v sistemu poveljevanja možnih 111 takih kombinacij.

2. Aritmetična in logična navodila

Kako p primer aritmetična navodila, lahko operacijo dodajanja izvedete z enim od naslednjih ukazov.

DODAJA,7 F 16 – vsebini registra A dodati številko 7 F 16 in shrani rezultat v register A;

DODAJA,@ R0 – vsebini registra A dodati številko, katere naslov (@ – komercialni pri ) je shranjen v registru R 0 (posredno naslavljanje) in shrani rezultat v register A;

DODAJ A,R7– dodati vsebino registra A vsebini registra R 7 in rezultat shranimo v register A;

DODAJ A, #127– vsebini registra A dodajte številko, katere naslov pomnilniške celice je 127 ( # – simbol številke) in rezultat shranite v register T- ponovno A.

Vsa aritmetična navodila se izvedejo v enem strojnem ciklu z izjemo ukaza INC DPTR(odmik podatkovnega kazalca DPTR na naslednji bajt), kar zahteva dva strojna cikla, pa tudi operacije množenja in deljenja, izvedene v 4 strojnih ciklih. Vsak bajt v notranjem podatkovnem pomnilniku je mogoče povečati ali zmanjšati brez uporabe baterije.

Navodila MUL AB izvede množenje (množenje) podatkov v akumulatorju s podatki v registru B, pri čemer produkt postavi v registra A (nižja polovica) in B (višja polovica).

Navodila DIV AB deli (deli) vsebino akumulatorja z vrednostjo v registru B, ostanek ostane v B, količnik pa v akumulatorju.

Navodila DA A je namenjen binarnim decimalnim aritmetičnim operacijam (aritmetične operacije nad števili, predstavljenimi v binarni decimalni kodi). Ne pretvori binarnega števila v BCD, vendar zagotavlja pravilen rezultat samo pri seštevanju dveh dvojiških decimalnih števil.

Primer logični ukaz: logično operacijo IN lahko izvedete z enim od naslednjih ukazov:

ANLA,7 F 16 – logično množenje vsebine registra A s številom 7 F 16 in rezultat se shrani v register A;

ANLA,@ R1 – logično množenje vsebine registra A s številko, katere naslov je shranjen v registru R 1 (posredno naslavljanje) in shranite rezultat v register A;

ANL A,R6– logično množenje vsebine registra A z vsebino registra R 6 in rezultat shranite v register A;

ANL A,#53 – logično množenje vsebine registra A s številom, katerega naslov pomnilniške celice je 53 16, rezultat pa se shrani v register A.

Vse logične operacije na vsebini akumulatorja se izvedejo v enem strojnem ciklu, ostale pa v dveh. Logične operacije se lahko izvajajo na katerem koli od spodnjih 128 bajtov notranjega podatkovnega pomnilnika ali na katerem koli registru SFR (registri posebnih funkcij) v načinu neposrednega naslavljanja brez uporabe baterije.

Operacije rotacijskega premika RL A, RLC A itd. premaknejo vsebino akumulatorja za en bit v desno ali levo. V primeru cikličnega premika v levo se najmanj pomemben bit premakne na najpomembnejši položaj. V primeru desnega cikličnega premika se zgodi nasprotno.

Delovanje ZAMENJAVA A zamenja nizke in visoke tetrade v bateriji.

3. Ukazi za prenos podatkov

Ekipa MOV dest,src vam omogoča prenos podatkov med notranjimi celicami RAM ali območji registra posebnih funkcij SFR brez uporabe baterije. V tem primeru se lahko delo z zgornjo polovico notranjega RAM-a izvaja samo v načinu posrednega naslavljanja in dostop do registrov SFR– samo v načinu neposrednega naslavljanja.

V vseh mikrovezjih MCS-51 Sklad je postavljen neposredno v rezidenčni podatkovni pomnilnik in raste navzgor. Navodila POTISNI najprej poveča vrednost v registru kazalca sklada SP in nato zapiše bajt podatkov v sklad. Ekipe POTISNI in POP se uporabljajo samo v načinu neposrednega naslavljanja (zapisovanje ali obnavljanje bajta), vendar je sklad vedno dostopen pri posrednem naslavljanju prek registra SP. Tako lahko sklad uporablja tudi zgornjih 128 bajtov podatkovnega pomnilnika. Enaki premisleki izključujejo možnost uporabe ukazov sklada za naslavljanje registrov SFR.

Navodila za prenos podatkov vključujejo 16-bitni prenos MOV DPTR,#podatki16, ki se uporablja za inicializacijo registra podatkovnega kazalca DPTR pri pregledovanju tabel v programskem pomnilniku ali za dostop do zunanjega podatkovnega pomnilnika.

Delovanje XCH A,bajt uporablja se za izmenjavo podatkov med akumulatorjem in naslovljenim bajtom. Ekipa XCHD A,@Ri podoben prejšnjemu, vendar se izvaja samo za nižje tetrade, ki sodelujejo pri izmenjavi operandov.

Za dostop do zunanjega podatkovnega pomnilnika se uporablja samo posredno naslavljanje. V primeru enobajtnih naslovov se uporabljajo registri R0 oz R1 banko trenutnega registra, za 16-bitno pa – register podatkovnega kazalca DPTR. Pri kateri koli metodi dostopa do zunanjega podatkovnega pomnilnika ima baterija vlogo vira ali sprejemnika informacij.

Za dostop do tabel v programskem pomnilniku uporabite naslednje ukaze:

MOVC A,@A+ DPTR ;

MOVC A,@A+ PC .

Vsebina registra podatkovnega kazalca se uporablja kot osnovni naslov tabele DPTR oz PC(programski števec), odmik pa je vzet iz A. Ta navodila se uporabljajo izključno za branje podatkov iz programskega pomnilnika, ne pa za pisanje vanj.

4. Logične operacije

Mikrovezja MCS-51 vsebujejo "Boolov" procesor. Notranji RAM ima 128 neposredno naslovljivih bitov. Prostor registra posebnih funkcij SFR lahko podpira tudi do 128 bitna polja. Bitna navodila izvajajo pogojne veje, prenose, ponastavitve, inverzije ter operacije IN in ALI. Vsi navedeni biti so na voljo v načinu neposrednega naslavljanja.

Nosi bit CF v registru posebnih funkcij “beseda statusa programa” P.S.W." se uporablja kot enobitni akumulator za logični procesor.

5. Navodila za skok

Naslovi operacij skokov so v zbirnem jeziku označeni z oznako ali z realno vrednostjo v pomnilniškem prostoru programa. Pogojni naslovi veje so sestavljeni v relativni odmik - bajt znaka, dodan programskemu števcu PCče je prehodni pogoj izpolnjen. Meje takih prehodov ležijo med minus 128 in 127 glede na prvi bajt, ki sledi navodilu. V registru posebnih funkcij "beseda stanja programa" P.S.W." ni ničelne zastavice, torej navodila JZ in JNZ preverite pogoj "enako nič" kot testiranje podatkov v akumulatorju.

Obstajajo tri vrste ukazov za brezpogojni skok: SJMP, LJMP in AJMP– ciljni naslovi, ki se razlikujejo po formatu. Navodila SJMP kodira naslov kot relativni odmik in zavzame dva bajta. Razdalja skoka je omejena na obseg od minus 128 do 127 bajtov glede na navodilo, ki sledi SJMP.

V navodilih LJMP Ciljni naslov se uporablja kot 16-bitna konstanta. Dolžina ukaza je tri bajte. Ciljni naslov se lahko nahaja kjer koli v programskem pomnilniku.

Ekipa AJMP uporablja 11-bitno naslovno konstanto. Ukaz je sestavljen iz dveh bajtov. Ko se ta ukaz izvede, se spodnjih 11 bitov števca naslovov nadomesti z 11-bitnim naslovom iz ukaza. Pet najpomembnejših bitov programskega števca PC ostani nespremenjen. Tako se lahko prehod izvede znotraj 2K-bajtnega bloka, v katerem se nahaja ukaz, ki sledi ukazu AJMP.

Obstajata dve vrsti klicev ukazov v podprogram: LCALL in KLIC. Navodila LCALL uporablja 16-bitni naslov klicanega podprograma. V tem primeru se lahko podprogram nahaja kjerkoli v pomnilniku programa. Navodila KLIC uporablja 11-bitni naslov podprograma. V tem primeru se mora klicana rutina nahajati v enem samem 2K bajtnem bloku z navodili, ki sledijo KLIC. Obe različici ukaza potisneta naslov naslednjega ukaza na sklad in ga naložita v programski števec PC ustrezno novo vrednost.

Podprogram se konča z navodilom RET, ki vam omogoča, da se po ukazu vrnete na navodilo POKLIČITE. To navodilo odstrani povratni naslov iz sklada in ga naloži v programski števec. PC . Navodila RETI uporablja se za vrnitev iz prekinitvenih rutin. Edina razlika RETI od RET je to RETI obvesti sistem, da je obdelava prekinitve končana. Če v času izvršitve RETI ni drugih prekinitev, potem je enako RET.

Navodila DJNZ zasnovan za nadzor ciklov. Za izvedbo zanke n enkrat morate v števec naložiti bajt z vrednostjo n in zaprite telo zanke z ukazom DJNZ, ki označuje začetek cikla.

Ekipa CJNE primerja svoja dva operanda kot nepredznačena cela števila in skoči na tam naveden naslov, če primerjana operanda nista enaka. Če je prvi operand manjši od drugega, potem je prenosni bit CF je nastavljen na "1".

Vsa navodila v sestavljeni obliki zasedajo 1, 2 ali 3 bajte.

ARHITEKTURA DRUŽINE MIKROKRMILNIKOVMCS-51

Zapiski predavanj za tečaje

“Mikroprocesorji v krmilnih sistemih”, “Mikroprocesorska tehnika”

"Mikroprocesorska orodja in sistemi"

za študente vseh oblik študija

072000 – Standardizacija in certificiranje

210200 – Avtomatizacija tehnoloških procesov

230104 – Sistemi za računalniško podprto načrtovanje

Tambov 2005

UVOD.. 3

1. STRUKTURA MIKROKONTROLERJA INTEL 8051. 3

1.1. Organizacija spomina. 5

1.2. Aritmetično-logična naprava. 6

1.3. Stalni pomnilnik za programe in podatke. 7

1.4. Akumulatorski in splošni registri. 8

1.5. Register statusnih besed programa in njegove zastavice. 9

1.6. Kazalni registri. 10

1.7. Registri posebnih funkcij. enajst

1.8. Naprava za krmiljenje in sinhronizacijo. enajst

1.9. Vzporedna informacijska vhodno/izhodna vrata. 12

1.10. Časovniki/števci. 13

1.11. Serijska vrata. 18

1.11.1. Registriraj SBUF.. 18

1.11.2. Načini delovanja serijskih vrat. 18

1.11.3. Registriraj SCON.. 19

1.11.4. Hitrost sprejema/oddajanja. 21

1.12. Sistem prekinitev. 22

2. UKAZNI SISTEM MIKROKRMIlnikA INTEL 8051. 26

2.1. Splošne informacije. 26

2.1.1. Vrste ukazov. 27

2.1.2. Vrste operandov. 28

2.1.3. Metode naslavljanja podatkov. trideset

2.1.4. Oznake rezultatov. 31

2.1.5. Simbolično naslavljanje. 32

2.2. Ukazi za prenos podatkov. 33

2.2.1. Struktura informacijskih povezav. 33

2.2.2. Dostop do baterije. 33

2.2.3. Dostop do zunanjega pomnilnika podatkov. 34

2.2.4. Dostop do programskega pomnilnika ... 34


2.2.5. Dostop do sklada. 35

2.3. Aritmetične operacije. 35

2.4. Logične operacije. 39

2.5. Ukazi za prenos nadzora. 43

2.5.1. Dolg prehod. 43

2.5.2. Absolutni prehod. 43

2.5.3. Relativni prehod. 44

2.5.4. Posredni prenos. 44

2.5.5. Pogojni skoki.. 44

2.5.6. Podprogrami.. 47

2.6. Operacije z biti. 48

Testna vprašanja... 49

LITERATURA.. 50

Dodatek UKAZNI SISTEM INTEL 8051. 51

UVOD

Od 80. let 20. stoletja se je pojavil samostojen razred mikroprocesorske tehnike integrirana vezja– mikrokontrolerji z enim čipom, ki so namenjeni vgradnji v naprave za različne namene. Od razreda mikroprocesorjev z enim čipom se razlikujejo po prisotnosti notranjega pomnilnika in razvitih načinov interakcije z zunanjimi napravami.

8-bitni mikrokontrolerji z enim čipom družine MCS-51 se pogosto uporabljajo. Ta družina je nastala na osnovi mikrokrmilnika Intel 8051, ki je zaradi svoje dobro zasnovane arhitekture pridobil veliko popularnost med razvijalci mikroprocesorskih krmilnih sistemov. Arhitektura mikrokrmilnika je niz notranjih in zunanjih programsko dostopnih strojnih virov in ukaznih sistemov.

Pozneje je Intel izdal približno 50 modelov, ki temeljijo na operacijskem jedru mikrokontrolerja Intel 8051. Hkrati so mnoga druga podjetja, kot sta Atmel, Philips, začela proizvajati lastne mikrokrmilnike, razvite v standardu MCS-51. Je tudi domači analog Mikrokrmilnik Intel 8051 - čip K1816BE51.

2. STRUKTURA MIKROKONTROLERJA INTEL 8051

Mikrokrmilnik Intel 8051 temelji na tehnologiji n-MOS na visoki ravni. Njegove glavne značilnosti so naslednje:

· osembitni centralni procesor optimiziran za izvajanje nadzornih funkcij;

· vgrajen taktni generator (največja frekvenca 12 MHz);

· naslovni prostor programskega pomnilnika - 64 KB;

· naslovni prostor podatkovnega pomnilnika - 64 KB;

· notranji programski pomnilnik - 4 KB;

· notranji podatkovni pomnilnik - 128 bajtov;

· dodatne zmožnosti za izvajanje operacij logične algebre (bitne operacije);

· 2 šestnajstbitna multifunkcijska časovnika/števca;

· full-duplex asinhroni oddajnik-sprejemnik (serijska vrata);

· vektorski prekinitveni sistem z dvema nivojema prioritete in petimi viri dogodkov.

Slika 1 - Blokovna shema mikrokontrolerja Intel 8051

Osnovo blokovnega diagrama (slika 1) tvori notranje dvosmerno 8-bitno vodilo, ki med seboj povezuje glavna vozlišča in naprave mikrokrmilnika: rezidenčni programski pomnilnik (RPM), rezidenčni podatkovni pomnilnik (RDM), aritmetično-logični pomnilnik. enota (ALU), posebne funkcije registrske enote, krmilna enota (CU), vzporedna V/I vrata (P0-P3), kot tudi programabilni časovniki in serijska vrata.

2.1. Organizacija spomina

Ta mikrokontroler ima vgrajen (rezidenčni) in zunanji pomnilnik programov in podatkov. Rezidenčni programski pomnilnik (RPM) ima kapaciteto 4 KB, rezidenčni podatkovni pomnilnik (RDM) pa ima kapaciteto 128 bajtov.


Odvisno od modifikacije mikrokontrolerja je RPM izveden v obliki maske ROM, enkratno programabilnega ali reprogramabilnega ROM-a.

Po potrebi lahko uporabnik razširi programski pomnilnik z namestitvijo zunanjega ROM-a. Dostop do notranjega ali zunanjega ROM-a je določen z vrednostjo signala na pinu EA (zunanji dostop):

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

EA=VSS (zemljitveni potencial) - dostop do zunanjega ROM-a.

Zunanji programski in podatkovni pomnilnik sta lahko velika po 64 KB in naslovljena prek vrat P0 in P2. Slika 2 prikazuje pomnilniško kartico Intel 8051.

Slika 2 - Organizacija pomnilnika Intel 8051

External ROM read strobe - (Program Store Enable) se ustvari pri dostopu do zunanjega programskega pomnilnika in je neaktiven med dostopom do ROM-a, ki se nahaja na čipu.

Območje spodnjih naslovov programskega pomnilnika (slika 3) uporablja prekinitveni sistem. Arhitektura čipa INTEL 8051 zagotavlja podporo za pet virov prekinitev. Naslovi, na katere se prenaša nadzor prekinitev, se imenujejo prekinitveni vektorji.

Slika 3 - Zemljevid območja spodnjega programskega pomnilnika

2.2. Aritmetično logična enota

8-bitna aritmetično logična enota (ALU) lahko izvaja aritmetične operacije seštevanja, odštevanja, množenja in deljenja; logične operacije IN, ALI, izključni ALI, kot tudi operacije cikličnega premika, ponastavitve, inverzije itd. Programsko nedostopna registra T1 in T2, namenjena začasnemu shranjevanju operandov, vezje decimalne korekcije (DCU) in vezje za generiranje lastnosti so povezani z vhodi rezultat delovanja (PSW).

Preprosta operacija seštevanja se uporablja v ALU za povečanje vsebine registrov, napredovanje registra podatkovnega kazalca (RAR) in samodejno izračunavanje naslednjega rezidenčnega pomnilniškega naslova programa. Najenostavnejša operacija odštevanja se uporablja v ALU za dekrementiranje registrov in primerjavo spremenljivk.

Najenostavnejše operacije samodejno tvorijo "tandeme" za izvajanje operacij, kot je na primer povečevanje 16-bitnih parov registrov. ALU izvaja mehanizem za kaskadno izvajanje preprostih operacij za izvajanje kompleksnih ukazov. Tako se na primer pri izvajanju enega od ukazov za pogojni prenos krmiljenja na podlagi rezultata primerjave v ALU trikrat poveča programski števec (PC), dvakrat prebere RDM, izvede se aritmetična primerjava dveh spremenljivk, oblikuje se 16-bitni prehodni naslov in se glede na program odloči o prehodu ali ne. Vse zgornje operacije se izvedejo v samo 2 μs.

Pomembna značilnost ALU je njegova zmožnost upravljanja ne samo z bajti, ampak tudi z bitmi. Posamezne bitove, ki so dostopni programski opremi, je mogoče nastaviti, počistiti, obrniti, prenesti, preizkusiti in uporabiti v logičnih operacijah. Ta sposobnost je zelo pomembna, saj se za nadzor objektov pogosto uporabljajo algoritmi, ki vsebujejo operacije na vhodnih in izhodnih logičnih spremenljivkah, katerih izvajanje je povezano z določenimi težavami pri uporabi običajnih mikroprocesorjev.

Tako lahko ALU deluje s štirimi tipi informacijskih objektov: Boolean (1 bit), digitalni (4 biti), bajt (8 bitov) in naslov (16 bitov). ALU izvaja 51 različnih operacij za posredovanje ali preoblikovanje teh podatkov. Ker je na voljo 11 načinov naslavljanja (7 za podatke in 4 za naslove), se s kombinacijo delovanja in načina naslavljanja osnovno število 111 ukazov razširi na 255 od 256 možnih z enobajtno opkodo.

2.3. Rezidenčni programski in podatkovni pomnilnik

Stanovanjski (na čipu) programski pomnilnik (RPM) in podatkovni pomnilnik (RDM) sta fizično in logično ločena, imata različne mehanizme za naslavljanje, delujeta pod nadzorom različnih signalov in opravljata različne funkcije.

Programski pomnilnik RPM ima kapaciteto 4 KB in je namenjen shranjevanju ukazov, konstant, inicializacijskih kontrolnih besed, pretvorbenih tabel za vhodne in izhodne spremenljivke itd. Pomnilnik ima 16-bitno naslovno vodilo, preko katerega je omogočen dostop iz PC programski števec ali iz registra podatkovni kazalec (DPTR). DPTR deluje kot osnovni register za posredne programske skoke ali se uporablja v operacijah tabel.

Podatkovni pomnilnik RDM je zasnovan za shranjevanje spremenljivk med izvajanjem aplikacijskega programa, naslovljiv je z enim bajtom in ima kapaciteto
128 bajtov. Poleg tega njegov naslovni prostor meji na naslove posebnih funkcijskih registrov, ki so navedeni v tabeli. 1.

Programski pomnilnik je tako kot podatkovni pomnilnik mogoče razširiti na
64 KB s priklopom zunanjih čipov.

Tabela 1

Blok registra posebnih funkcij

Ime

Baterija

Register ekspanderja akumulatorja

Beseda stanja programa

Register kazalca sklada

Register podatkovnega kazalca

Register prioritete prekinitev

Register prekinitvene maske

Register načina časovnika/števca

Nadzor časovnika/register stanja

Časovnik 0 (visoki bajt)

Časovnik 0 (nizki bajt)

Časovnik 1 (visoki bajt)

Časovnik 1 (nizki bajt)

Nadzorni register oddajnika

Medpomnilnik oddajnika

Register krmiljenja moči

Opomba. Registri, katerih imena so označena z (*), omogočajo naslavljanje posameznih bitov.

2.4. Zbirni in splošni registri

Akumulator (A) je izvor operanda in lokacija rezultata pri izvajanju aritmetičnih, logičnih operacij in številnih operacij prenosa podatkov. Poleg tega je mogoče operacije premikov, preverjanje ničle, generiranje paritetne zastavice itd. izvajati le z uporabo akumulatorja.

Uporabnik ima na voljo štiri banke po 8 splošnih registrov R0–R7 (slika 9). Možna pa je uporaba registrov le ene od štirih bank, ki se izbere z bitom registra PSW.

2.5. Register statusnih besed programa in njegove zastavice

Ko se v ALU izvede veliko ukazov, se generirajo številni atributi delovanja (zastavice), ki se zapišejo v register statusne besede programa (PSW). V tabeli 2 vsebuje seznam zastav PSW, podaja njihova simbolična imena in opisuje pogoje za njihovo oblikovanje.

tabela 2

Besedna oblika stanja programa PSW

Ime in namen

Nosi zastavo. Nastavitev in ponastavitev s strojno ali programsko opremo pri izvajanju aritmetičnih in logičnih operacij

Pomožna nosilna zastavica. Nastavi in ​​počisti samo strojna oprema, ko se izvajajo navodila za seštevanje in odštevanje, in signalizira prenos ali izposojo v bitu 3

Zastavica 0. Program jo lahko nastavi, počisti ali preveri kot uporabniško določeno zastavico.

Izbira registrske banke. Nastavitev in ponastavitev programske opreme za izbiro delujoče banke registrov (tabela 3)

Prelivna zastavica. Nastavi in ​​ponastavi strojna oprema pri izvajanju aritmetičnih operacij

Se ne uporablja

Paritetna zastava. Nastavi in ​​ponastavi strojna oprema v vsakem ciklu in popravi sodo/liho število enega bita v akumulatorju, tj. izvede pariteto

Tabela 3

Izbira delujoče banke registra

Meje naslova

Najbolj »aktivna« zastavica PSW je zastavica za prenos, ki je vključena in spremenjena med številnimi operacijami, vključno s seštevanjem, odštevanjem in premiki. Poleg tega zastavica za prenašanje (CY) deluje kot "logični akumulator" v navodilih bitne manipulacije. Zastavica prelivanja (OV) zazna aritmetično prelivanje v predznačenih celoštevilskih operacijah in omogoča uporabo aritmetike v kodah komplementa dveh. ALU ne krmili zastavic za izbiro bank registrov (RS0, RS1), njihovo vrednost v celoti določa aplikacijski program in se uporablja za izbiro ene izmed štirih bank registrov.

Kot bajt lahko register PSW predstavimo na naslednji način:

V mikroprocesorjih, katerih arhitektura temelji na akumulatorju, večina navodil deluje na akumulatorju z uporabo implicitnega naslavljanja. Intel 8051 je drugačen. Čeprav procesor temelji na bateriji, lahko izvede veliko ukazov brez njegove udeležbe. Na primer, podatke je mogoče prenesti iz katere koli celice RDM v kateri koli register, kateri koli register je mogoče naložiti s takojšnjim operandom itd. Veliko logičnih operacij je mogoče izvesti brez vključevanja akumulatorja. Poleg tega je mogoče spremenljivke povečati, zmanjšati in preveriti brez uporabe akumulatorja. Zastavice in kontrolne bite je mogoče preveriti in spremeniti na enak način.

2.6. Kazalni registri

8-bitni kazalec sklada (SP) lahko naslovi katero koli območje RDM. Njegova vsebina se poveča, preden se podatki shranijo na sklad med navodili PUSH in CALL. Vsebina SP se po izvedbi ukazov POP in RET zmanjša. Ta metoda naslavljanja elementov sklada se imenuje pre-increment/post-decrement. Pri inicializaciji mikrokontrolerja se po signalu RST v SP samodejno naloži koda 07H. To pomeni, da bo prvi podatkovni element v skladu nameščen na lokaciji RDM 08H, razen če aplikacijski program preglasi sklad.

Dvobajtni register podatkovnega kazalca DPTR se običajno uporablja za zajem 16-bitnega naslova v operacijah dostopa do zunanjega pomnilnika. Z ukazi mikrokontrolerja lahko register podatkovnega kazalca uporabljamo bodisi kot 16-bitni register bodisi kot dva neodvisna 8-bitna registra (DPH in DPL).

2.7. Registri posebnih funkcij

Registri, simbolično imenovani IP, IE, TMOD, TCON, SCON in PCON, se uporabljajo za zaklepanje in programsko spreminjanje krmilnih in statusnih bitov prekinitvenega vezja, časovnika/števca, serijskega oddajnika in upravljanja porabe energije. Njihova organizacija bo podrobno opisana v razdelkih 1.8-1.12, ko bomo obravnavali značilnosti mikrokrmilnika v različnih načinih.

2.8. Naprava za krmiljenje in sinhronizacijo

Kvarčni resonator, povezan z zunanjimi zatiči mikrokontrolerja, krmili delovanje notranjega oscilatorja, ta pa generira sinhronizacijske signale. Krmilna enota (CU) na podlagi sinhronizacijskih signalov ustvari strojni cikel fiksnega trajanja, ki je enak 12 generatorskim obdobjem. Večina ukazov mikrokrmilnika se izvede v enem strojnem ciklu. Nekatera navodila, ki delujejo na 2-bajtnih besedah ​​ali dostopajo do zunanjega pomnilnika, potrebujejo dva strojna cikla. Samo navodila za deljenje in množenje zahtevajo štiri strojne cikle. Na podlagi teh lastnosti delovanja krmilne naprave se izračuna čas izvajanja aplikacijskih programov.

V vezju mikrokrmilnika je ukazni register (IR) poleg krmilne naprave. Njegova funkcija je shranjevanje kode ukaza, ki se izvaja.

Vhodni in izhodni signali krmilne in sinhronizacijske naprave:

1. PSEN – ločljivost programskega pomnilnika,

2. ALE – izhodni signal za omogočanje fiksacije naslova,

3. PROG – programiranje signala,

4. EA – blokiranje dela z notranjim pomnilnikom,

5. VPP – programiranje napetosti,

6. RST – splošni signal za ponastavitev,

7. VPD – izhodna moč rezervnega pomnilnika zunanji vir,

8. XTAL – priključni vhodi kvarčni resonator.

2.9. Vzporedna vhodno/izhodna vrata

Vsa štiri vrata (P0-P3) so zasnovana za vnos ali izhod informacij bajt za bajtom. Vsaka vrata vsebujejo nadzorovan zaklepni register, vhodni medpomnilnik in izhodni gonilnik.

Izhodni gonilniki vrat P0 in P2 ter vhodni medpomnilnik vrat P0 se uporabljajo pri dostopu do zunanjega pomnilnika. V tem primeru se skozi vrata P0 v načinu časovnega multipleksiranja najprej odda nizki bajt naslova, nato pa se izda ali sprejme podatkovni bajt. Vrata P2 oddajo najpomembnejši bajt naslova v primerih, ko je širina naslova 16 bitov.

Vse zatiče vrat P3 je mogoče uporabiti za izvajanje alternativnih funkcij, navedenih v tabeli. 4. Te funkcije lahko omogočite tako, da zapišete 1 v ustrezne bite zaskočnega registra (P3.0-P3.7) vrat P3.

Tabela 4

Nadomestne funkcije vrat P3

Ime in namen

Branje. Pri dostopu do zunanjega podatkovnega pomnilnika strojna oprema ustvari aktivni signal nizke ravni

Zapis. Pri dostopu do zunanjega podatkovnega pomnilnika strojna oprema ustvari aktivni signal nizke ravni

Vhod časovnika/števca 1 ali testni vhod

Vhod časovnika/števca 0 ali testni vhod

Vnos zahteve za prekinitev 1. Zazna nizek nivo ali izklopni signal

Vnos zahteve za prekinitev 0. Zazna nizek nivo ali izklopni signal

Izhod oddajnika serijskih vrat v načinu UART. Izhod ure v načinu premikalnega registra

Vhod sprejemnika serijskih vrat v načinu UART. Vnos/izhod podatkov v načinu premikalnega registra

Vrata 0 so dvosmerna, vrata 1-3 pa navidezno dvosmerna. Vsako linijo vrat je mogoče uporabiti neodvisno za vhod ali izhod.

Na podlagi signala RST se enote samodejno zapišejo v zaskočne registre vseh vrat, s čimer se nastavijo za vhodni način.

Vsa vrata je mogoče uporabiti za organizacijo vnosa/izhoda informacij prek dvosmernih prenosnih linij. Vendar vrat P0 in P2 ni mogoče uporabiti za ta namen, če ima sistem zunanji pomnilnik, komunikacija s katerim je organizirana prek skupnega skupnega naslovnega/podatkovnega vodila, ki deluje v načinu časovnega multipleksiranja.

Dostop do V/I vrat je možen z ukazi, ki delujejo na bajtu, posameznem bitu ali poljubni kombinaciji bitov. Poleg tega v primerih, ko so vrata hkrati operand in cilj rezultata, krmilna naprava samodejno izvede poseben način, imenovan »branje-spreminjanje-pisanje«. Ta način dostopa vključuje vnos signalov ne iz zunanjih zatičev vrat, temveč iz njegovega registra zapaha, kar odpravlja napačno branje predhodno izhodnih informacij. Ta mehanizem za dostop do vrat je implementiran v ukazih:




Vrh