sisteme cu microprocesoare.pdf

Upload: andy4500

Post on 03-Apr-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    1/77

    1

    SISTEME CU MICROPROCESOARE

    1 . Introducere

    Aparatele i sistemele controlate cu microprocesor au aprut

    s-au perfecionat odat cu apariia pe pia a miroproesoarelo(1970 -1980) dup care (n special dup 1985) s-au rspndit foartrapid, nlocuind aproape complet aparatele i sistemele de msuri control numerice clasice (cu logic cablat), att n tehnica dlaborator ct i n instrumentaia industrial, mai ales n controluautomat.

    Clasificarea sistemelor cu microprocessor

    n funcie de complexitatea sistemului din care face parte vomavea:

    - aparate de msur cu microprocesor utilizate ca instrumentde laborator sau de teren;

    - sisteme de msur cu microprocesor folosite n complexe dmsur i control n industrie.

    1.1 Avantajele folosirii microprocesoarelor n sistemele dmsur i control

    Includerea unui microprocesor ntr-un sistem de msur

    control d posibilitatea ca manevrele de operator s fie preluat(parial sau total) de ctre microprocesor i n plus s se obincteva avantaje importante:

    1. Preluarea comenzilor de operator cum ar fi reglaje de zero de cap de scar, selectarea gamelor asigurnd un plus de precizie siguran n exploatare.

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    2/77

    2

    2. Autocalibrarea i compensarea automat a influenei factorilode clim. De asemenea se calculeaz abaterile i se corecteazrezultatul final al msurrii.

    3. mbuntirea preciziei prin eliminarea erorilor sistematic(prin autocalibrare, autocorecie).

    4. Micorarea numrului de componente ale sistemului prieliminarea componentelor destinate implementrii logicii cablate.

    5. Creterea versatilitii aparatului prin obinerea unoposibiliti suplimentare de msur pe baza programelor interne.

    6. Creterea vitezei de lucru prin automatizarea operaiilor dmsurare.

    7. Posibilitatea determinrii prin calcul a altor parametrii dsemnal (valoare de vrf, valoare medie, valoare efectiv, calculudistorsiunilor, a spectrului de amplitudini, determinarea fazedefazajului).

    8.Posibilitatea autotestrii prin programe speciale executate dmicroprocesorul ncorporat, la comanda operatorului sau n cazuapariiei unei anomalii in funcionare. n acest caz se poat

    declana o procedur de testare i semnalizare a eventualelodefecte.Toate aceste avantaje arat clar c sistemele de msur

    control moderne nu pot exista fr a fi controlate de ctrmicroprocesoare.

    1.2 Microprocesoare : o privire generaln cele ce urmeaz ne vom referi la un microprocesor generi

    (presupus de 8 bii) i vom ncepe cu precizarea unor termeni notaii utilizate n lucrrile din domeniul microprocesoarelor.

    Definiii i terminologie

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    3/77

    3

    Sistemul de calcul este un echipament care transform datele dintare n rezultate de ieire pe baza unui algoritm materializat ntrun program. Aceast definiie reprezint sensul clasic al noiunide calculator .

    Sistemele inteligente sunt acele sisteme care pot prelucrinformaii incomplete definite sau aproape complet definite. Astfede sisteme sunt sistemele fuzzy sau reelele neuronale.

    n cazul n care informaiile de prelucrat sunt complet definitatunci avem de-a face cu algoritmi secveniali. Acest tip dalgoritmi a stat la baza construciei mainilor secveniale (VoNewman).Dac operaiile elementare independente se pot executa paralel (pmai multe uniti de calcul), avem de-a face cu algoritmi paraleli.

    ncepnd cu anii 1970 au aprut tendine de automatizare proceselor de producie bazate iniial pe automate numerice cablat(logic cablat) i apoi pe sisteme cu microprocesoare (logicprogramat). De dat recent sunt sistemele bazate pe arhitectur

    paralele (sisteme multiprocesor , sisteme distribuite).Arhitectura mainii secveniale standard (Von Newman) esturmtoarea:

    UnitateCentral Memorie

    Subsistem de intrare/ieire

    Om/proces

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    4/77

    4

    Unitatea central (CPU-Central Processing Unit), transformdatele n rezultate pe baza execuiei instruciunilor programulumemorat.

    Memoria este mediul principal de stocare/regsire a datelorrezultatelor i programelor.

    Subsistemul de intrare-ieire este destinat realizrii interfeeom-main sau proces-main.

    Partea fizic a unui sistem de calcul (componentele electroniceeste relative simpl, poate fi produs n serie i este relativ ieftinTermenul hardware se refer tocmai la aceast parte

    Ceea ce transform acest echipament ieftin ntr-o diversitate dinstrumente, controlere industriale, calculatoare speciale sau de u

    general, sunt programele (utilitare sau de aplicaii) i sistemele dprograme (operare, exploatare), adic software care vor determinhardware-ul de uz general s execute ceea ce dorim.

    Un alt termen frecvent utilizat este firmware, care desemneazprograme speciale stocate n memorii nevolatile, al cror rol estde a asigura faciliti de configurare i testare a echipamentuluprecum i minima sa funcionare. Exemplu biosul de l

    calculatoarele personale.Microprocesoarele actuale se produc ntr-o gam larg d

    variante, de la cele de uz general sau cele destinate aplicaiiloindustriale, pn la procesoarele de semnal sau coprocesoarele cfuncii bine precizate. De asemenea, microprocesoarele pot fi:

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    5/77

    5

    - microprocesoare monocip (unitatea central i circuitele dsuport sunt dispuse n interiorul aceleiai capsule de circuiintegrat).

    - microprocesoare multicip la care unitatea central circuitele de suport, sunt realizate sub form de circuite integrat

    distincte.Microprocesoarele pentru aplicaii dedicate mai ales cel

    destinate mediului industrial sunt realizate monocip, oferind unplus de comoditate n proiectare i o fiabilitate sporit. Dexemplu, microprocesorul 80186, al firmei Intel, includaproximativ toate componentele sistemelor cu 8086, adic unitatecentral, generatorul de tact, controlerul de magistral i cel dntreruperi, controlerul DMA, contor/timer-ul, logica ddecodificare, etc.

    Deseori microprocesoarele monocip includ att memorie dlucru, ct i interfee de intrare/ieire, adic structura minimal unui microcalculator, motiv pentru care ele se mai numesc microcalculatoare ntr-un singur cip (Single Componen

    Microcomputer). Deoarece aceast categorie de microprocesoarsunt destinate mai ales aplicaiilor de control n mediul industrialele se ntlnesc i sub denumirea de microcontrolere.

    Microprocesoarele de uz general multicip au fost realizate i variante monocip, purtnd numele de microprocesoare nglobateDe exemplu, familiile 80186 sau 80386EX sunt produse de Intel n varianta monocip avnd avantajul utilizrii suportului d

    programe i exploatare dezvoltat pentru sistemele de calcuexistente curent pe pia (de exemplu calculatoarele personale).

    Elemente tehnologice

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    6/77

    6

    Microprocesoarele i circuitele de suport se pot produce urmtoarele tehnologii:

    1 . Tehnologia bipolarpermite obinerea unor viteze dlucru mari, dar cu un consum ridicat i cu probleme de climatizardeosebite.

    2 . Tehnologia MOS a evoluat mult, oferind condiii dobinere a unor performane de vitez deosebit, n condiiile unuconsum redus i al unui grad de integrare foarte ridicat. Exist familii MOS mai importante:

    PMOSse bazeaz pe realizarea tranzistoarelor MOS cu canap, prin difuzia impuritilor de tip p (bor), ntr-un substrat de silicide tip n , pentru a forma drena i sursa. Se remarc prin densitatmare de integrare, ns microprocesorul este relativ lent.

    NMOSse bazeaz pe relizarea tranzistoarelor MOS cu canan prin difuzia impuritilor de tip n (fosfor sau arseniu) ntr-usubstrat de siliciu de tip p, pentru a forma drena i sursa. Se obino densitate de componente similar cu cea specific PMOS, daasigur o vitez mai mare pentru circuitele realizate, ns este mul

    mai scump dect tehnologia PMOS.CMOScombin ambele tipuri de tranzistoare ntr-o structurcomplementar, rezultatul fiind o vitez de lucru medie, imunitatmare la zgomote i un consum extreme de redus.

    HMOS este o tehnologie mai recent i a fost utilizat csucces de firma INTEL la realizarea noilor sale generaii dmicroprocesoare i microcontrolere. Aceast tehnologie foloset

    tranzistoare cu canal n, proiectate special pentru a lucra la tensiunjoase i la viteze mari.

    CHMOS este rodul mbinrii performanelor de vitezdeosebit ale tehnologiei HMOS, cu consumul sczut al celeCMOS. Rezultatul a fost remarcabil, astfel nct majoritate

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    7/77

    7

    productorilor de microprocesoare i microcontrolere au trecut laceast tehnologie.

    Bii , octei , cuvinte

    Marea majoritate a echipamentelor numerice folosesc pentrreprezentarea intern a numerelor sistemul binar, caracterizat dutilizarea a numai 2 cifre: 0 i 1. Bitul reprezint cea mai micunitate de informaie, echivalent cu o afirmaie (DA , 1) sau infirmaie (NU, 0).

    Pentru uniti mai mari, cea mai important este octetul, obinudin gruparea a 2 8 bii. Octetul reprezint unitatea cea mafolosit pentru caracterizarea dimensiunii blocurilor de memorieDac aceast dimensiune este mare, se pot folosi multiplii acestuia

    Kilooctet 210biiMegaoctet 220bii 210 KBGigaoctet 230bii 210 MB 220 KBUn cuvnt este un grup de bii ce desemneaz cantitate

    maxim de informaie ce poate fi transferat la un moment dat dun dispozitiv numeric. Cuvntul este materializat prin ci paralelde comunicaie a informaiei numite magistrale. Numrul de bii aunui cuvnt constituie lungimea sa. Lungimea unui cuvnt este undintre caracteristicile cele mai importante ale unui microprocesordeoarece hotrte precizia datelor i viteza de prelucrare acestora.

    Algoritmi , programe i limbaj main

    Fiind dat o problem pentru rezolvarea acesteia trebuie gsito metod adecvat algoritmul. Un algritm este o secven doperaii, grupate ntr-o succesiune de etape (pai) ce perm

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    8/77

    8

    rezolvarea problemelor specificate. Pentru a fi neles dmicroprocesor, algoritmul trebuie prezentat ntr-un limbaj adecvatlimbaj care const ntr-un set de simboluri i reguli de sintaxfoarte bine precizate. Materializarea algoritmului cu ajutorul unulimbaj se face ntr-un program ce const ntr-o succesiune d

    operaii elementareinstruciuni.La nivelul cel mai de jos, instruciunile programului s

    prezint ca iruri de bii ce pot fi transformate cu uurin impulsuri electrice, dar care sunt foarte greu de manevrat de ctrprogramator. Acest limbaj, singurul neles de procesor este numlimbaj main. Din acest motiv, au fost create programe specialecare permit utilizarea unor limbaje mai apropiate de cel uman(limbaj de asamblare).

    Ulterior au fost create o multitudine de limbaje (BASICFORTRAN, C etc) , numite de nivel ridicat, a cror scop a fosgsirea unei modaliti ct mai accesibile de a programa unmicroprocesor.

    Logic cablat i logic programat

    Logica cablat presupune un automat de control n carsecvena de semnale de sincronizare/coordonare sunt elaborate pbaza unei scheme fixe (de obicei cu pori i bistabile interconectatconvenabil), imposibil de modificat.

    Logica programat se bazeaz pe un automat de contro

    flexibil, capabil s genereze semnale de sincronizare/coordonarepe baza unui program executat de microprocesor. Majoritateaparaturii moderne utilizeaz logic programat. Prin simplmodificare a programului, ntreaga funcionare a aparatului spoate schimba.

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    9/77

    9

    Puterea de calcul i viteza de lucru a microprocesorului

    Prin putere de calcul se nelege mai ales capabilitatea dprelucrare numeric a acestuia i este determinat de lungimecuvntului, de arhitectura intern i viteza de execuie

    instruciunilor.Viteza microprocesorului este condiionat de factori:

    -Frecvena ceasuluiun tact mai rapid determin un procesor sexecute un program mult mai rapid;-Arhitectura intern permite creterea vitezei de lucr

    (meninnd frecvena ceasului neschimbat) pe baza trecerii de lexecuia strict secvenial a operaiilor, la execuia lor paralelntr-un mod transparent pentru utilizator, folosind tehnici cautilizarea memoriilor CACHE, creterea numrului de magistralinterne ale unitilor de prelucrare, succesiune pipelin(suprapunerea parial a operaiilor).-Viteza de execuie a instruciunilor este dificil de msura

    direct. Se definete de obicei ca durata de execuie a uno

    instruciuni foarte des folosite sau ca numr mediu de instruciunexecutate ntr-o secund.-Setul de instruciuni - condiioneaz indirect viteza de calcu

    Cu ct modul de codificare a instruciunilor este mai simplu secvena microoperaiilor este mai rapid, cu att microprocesoruva avea o vitez de lucru mai mare.

    Microprocesoarele cu set complet de instruciuni (CISC

    consum un timp relative ridicat pe instruciune, dar compenseazacest lucru printr-o gam divers de instruciuni.

    Spre deosebire de ele, microprocesoarele cu set redus dinstruciuni (RISC) sunt optimizate astfel nct instruciunile s fiexecutate foarte rapid, chiar mai multe ntr-un singur tact main .

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    10/77

    10

    Arhitectura intern a unui microprocessor

    Ca orice unitate central a unui sistem de calculmicroprocesorul conine urmtoarele componente principale:

    - unitatea de control CPU ;

    - unitatea logico-aritmetic ALU;- registre interne;Acestea comunic ntre ele prin ci de transfer informaie

    numite magistrale, ce leag ntre ele mai multe dispozitive, dar lun moment dat doar dou dispozitive pot schimba informaiesursa i destinaia. Coordonarea transferurilor pe magistral se facde ctre un dispozitiv master, cele subordonate fiind slaveMicroprocesorul posed i o magistral intern, legat printr-interfa la magistrala extern.

    Structura intern a unui microprocesor generic este urmtoatea

    PS

    CLK

    Gen

    IR PCSP

    Inst DCD CPU

    BI

    ADDBUS

    DATABUS

    REG DCD

    R2R1R4R3

    B

    X

    TMP

    ACC

    ALU

    CMDBUSCuartz

    INTReset

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    11/77

    11

    Unitatea de control

    Asigur sincronizarea i coordonarea operaiilor din interiorui exteriorul microprocesorului. Ca orice automat secveniasincron, unitatea central este guvernat de un semnal de tac(CLK), produs de un circuit de ceas intern sau externmicroprocesorului. n majoritatea cazurilor, oscilatorul, carasigur tactul, este pilotat cu cuar i asigur frecvene ntre 1 i 4MHz (microprocesoarele ce echipeaz calculatoarele modernajung pn la frecvene de ordinal GHz).

    n principal, unitatea de control solicit instruciunile stocate memoria de program, le decodific i pe baza acestora comand

    funcionarea celorlalte blocuri (ALU, registre etc ) internmicroprocesorului, n vederea executrii corecte a acestora.

    Unitatea logicoaritmetic

    ALU execut operaiile aritmetice i logice impuse dinstruciunile programului, sub coordonarea direct a unitii d

    control.Operaiile aritmetice pot fi: adunare i scdere (de baz

    obligatorii), respectiv nmulire, mprire, ridicare la puter(suplimentare).

    Operaiile logice pot fi: NU, I, SAU (de baz - obligatorii)respectiv SAUEXCLUSIV, deplasri, rotiri (suplimentare).

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    12/77

    12

    Participanii la o operaie aritmetic sau logic se numesoperanzi, iar semnul grafic asociat acesteia se numete operatorDac operaia necesit un singur operand (schimbarea semnulusau negarea), ea se numete operaie unar. Dac operaia necesit2 operanzi (adunare, I logic), ea se numete binar.

    Registrele interne

    Au rolul de a stoca temporar operanzii i rezultatele vehiculatprin ALU, pe parcursul uneia sau mai multor instruciunRegistrele folosite n mod uzual la calcule se numesc registrgenerale, iar cele folosite la operaii speciale (adresareamanevrarea stivelor) se numesc registre funcionale.

    Registrele generale pot ndeplini mai multe roluri:-manevrpentru stocarearea temporar a unui operand sa

    a unui rezultat;- acumulator (ACC)registru folosit n operaiile de adunar

    pentru cumularea unui ir de valori (unul din operanzi se gset

    ntr-un registru de lucru, iar cellalt l constituie chiar coninutuacumularorului), iar la sfrit rezultatul se depune tot nacumulator;

    - contor cu autoincrementare sau cu autodecrementare, cpermite realizarea simpl a buclelor de program i parcurgereirurilor de date;

    -baz (B) i index (X) ce permite adresarea irurilor d

    valori (vectori), plasate n locaii succesive de memorie;-indicator de stiv (SP) - permite adresarea unei zone d

    memorie (stiv), special creat pentru a facilita manevrarea datelorpe principiul ultimul sositprimul servit (LIFO), prin operaii dtipul PUSH, POP, precum i execuia subrutinelor sau a tratrintreruperilor.

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    13/77

    13

    Un microprocesor posed cel puin 2 registre general(acumulator i manevr). Majoritatea microprocesoarelor folosesseturi de 4 16 registre, ce pot prelua unul din rolurile prezentatmai sus.

    Registrele funcionale

    ndeplinesc sarcini dedicate pentru controlul derulrinstruciunilor n microprocesor.

    -Registrul de stare program (PS) conine o serie dinformaii ce descriu starea execuiei progarmului (indicatorii dcondiie, care reprezint modul de terminare a unei operaii logicoaritmetice, utilizat la realizarea salturilor condiionate, precum i indicatorilor de semnalare a evenimentelor speciale i a modurilode lucru);

    -Registrul de instruciuni (IR)destinat stocrii instruciunpe parcursul execuiei sale;

    -Contorul de program (PC) indic n permaneninstruciunea curent (de executat);

    Execuia instruciunilor i indicatorii de condiie

    Vom considera citirea i execuia unei instruciuni tipice de uncuvnt. Pentru aceasta:-de la adresa coninut n contorul de program (PC) interfaa d

    magistral citete un cuvnt, printr-un ciclu de citire al instruciuni-coninutul locaiei citite este transferat prin magistrala intern

    registrul de instruciuni (IR);-contorul de program este incrementat pentru a indic

    instruciunea imediat urmtoare;-imediat ce codul instruciunii este disponibil, n registrul d

    instruciuni (IR), el este decodificat i transformat n semnale d

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    14/77

    14

    activare a diverselor microoperaii din care este compus execuipropriu-zis a instruciunii;

    -nc din faza final a execuiei instruciunii, se poate declancitirea instruciunii urmtoare;

    n cazul instruciunilor de mai multe cuvinte, se fac referir

    succesive la memorie.Multe microoperaii presupun folosirea ALU pentru calcul

    ascunse (calcule de adres). Operaiile de calcul produc rezultatce trebuie testate pentru a lua o decizie. ALU dispune de un set dbistabili care fac parte integrant din registrul de stare program(PS) i care memoreaz modul de finalizare al operaiei executateAceti bistabili se numesc indicatori de condiie i ei pot fi testan instruciuni de salt condiionat.

    Indicatorii cei mai utilizai sunt prezentai n continuare:-Z (ZERO)se seteaz dac rezultatul este nul;-S (SIGN)se seteaz dac rezultatul este negativ;-C (CARRY)se seteaz dac apare un transport;-V (OVERFLOW) se seteaz dac rezultatul unei operai

    ntre numere cu semn are un semn incorect (datorit transporturilonedorite spre poziia semnului).

    Seturi de instruciuni

    Instruciunea este o operaie elementar ce se execut dmicroprocesor n cadrul unui program. Orice instruciune est

    identificat pe baza unui cod de operaie ce face parte integrantdin corpul acesteia. Codul de operaie este completat de informasuplimentare, numite uzual argumente.

    Codul operaiei este singura poriune a instruciunii care sdecodific intern i declaneaz secvena de microoperaii dinunitatea de comand (exist instruciuni formate numai din cod).

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    15/77

    15

    Lista complet de instruciuni pe care o poate interpreta executa un microprocesor se numete set de instruciunInstruciunile sunt stocate n memorie sub form de cuvintconsecutive, care materializeaz programul existnd dou categoride instruciuni mprite pe baza formatului:

    - instruciuni cu format fix la care lungimea acestora structura diverselor cmpuri componente este fix, indiferent dcodul instruciunii;

    - instruciuni cu format variabil la care lungimea structura cmpurilor componente este dependent de coduinstruciunii.

    Formate uzuale de instruciuni

    a)COCod

    operaie

    AOAdresoperand

    AOAdresoperand

    ARAdres

    rezultant

    AIAdres

    instruciune

    b)

    COCodoperaie

    AOAdresoperand

    AOAdresoperand

    AR sau AIAdres rezultant sauAdres instruciune

    c)COCod

    operaie

    AOAdresoperand

    AO sau AIAdres operand sau Adres

    instruciune

    d)

    COCod

    operaie

    AO sau AIAdres operand sau Adres instruciune

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    16/77

    16

    a) - instruciune cu patru adrese: dou adrese de operanzi, adres pentru rezultat i o adres pentru urmtoarea instruciuneFormatul este incomod, datorit numrului mare de argumentecare nu sunt folosite ntotdeauna.

    b) - instruciune cu trei adrese: dou adrese de operanzi i adres pentru rezultat sau pentru urmtoarea instruciune. n acescaz se presupune c instruciunile sunt plasate n locaii succesiveastfel c adresa instruciunii urmtoare este subneleasInstruciunile care nu respect aceast secven (salturi, apeluri dsubrutine), de regul nu sunt instruciuni de calcul i ca urmarultimul cmp poate fi folosit pentru adresa urmtoarei instruciunde executat.

    c) - instruciuni cu dou adrese: dou adrese de operand, dicare ultima poate fi pentru urmtoarea instruciune. Rezultatul uneoperaii este depus ntr-un loc implicit cunoscut (de obicei, acumulator).

    d) - instruciuni cu o singur adres: o adres de operand sa

    pentru urmtoarea instruciune. n aceast situaie att unul dioperanzi, ct i rezultatul operaiei au un loc prestabilit. Acesformat este cel mai economic.

    Microprocesoarele actuale folosesc , de obicei , instruciuni cuformat variabil cu una sau cu dou adrese , deoarece permit utilizare optim a memoriei de program i o scurtare semnificativa timpului de extrageredecodificare .

    Instruciuni de transfer de date

    Transfer informaia dintr-un registru (sau locaie de memorien alt registru. Operaiile curente sunt de transfer (ncrcarememorare) i interschimbare.

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    17/77

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    18/77

    18

    Instruciunile de apel (CALL) i revenire (RET) din subroutinerealizeaz i salvarea adresei de ntoarcere (a locului de undtrebuie reluat programul dup execuia subrutinei).

    Instruciuni de control al microprocesorului

    n acest grup pot fi nscrise unele instruciuni speciale dcontrol:

    -oprire (HALT)ce suspend execuia programului curent pnla apariia unei cereri de ntrerupere extern ;

    -nici o operaie (NOP);-activarea (EI) sau dezactivarea (DI) sistemului de ntreruperi.

    Instruciuni de intrare / ieire

    Acest grup include dou instruciuni de transfer, cu porturi dintrare/ieire, adic citire port (IN) sau scriere port (OUT).

    Tehnici de adresare a memoriei

    Din analiza formatelor de instruciuni, am observat c pentru defini complet operaia de executat este nevoie s cunoatem locuunde sunt amplasai operanzii, adic adresele lor. n general, uoperand se poate afla n registre sau n memoria de lucru.

    Adresa unui registru se poate codifica pe un numr redu

    de bii (uzual 3 sau 4 bii), ce poate face parte chiar din cmpudestinat codului operaie.

    n al doilea caz, adresa locaiei de memorie unde se afloperandul este precizat ntr-un cmp separat, ce face parte dicorpul instruciunii.

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    19/77

    19

    Regsirea unei informaii presupune determinarea adreseutiliznd un set de convenii i metode de calcul, cunoscute sunumele de tehnici de adresare.

    Principalele tehnici de adresare ntlnite la majoritatemicroprocesoarelor sunt:

    Adresarea implicit

    Pleac de la ideea c adresa (locul) unui operand este implicicunoscut i definit chiar de operaia executat, n timp ce adoilea operand se afl ntr-un registru de lucru.

    Multe instruciuni cu adresare implicit sunt reprezentate pe usingur cuvnt, necesitnd pentru extragere o singur referire lmemorie.

    Ex: ADD r ACC ACC + r ,

    unde r este un registru de lucru;

    Adresarea directEste legat de prezena unui operand n memorie, n care adres

    lui nu mai poate fi implicit cunoscut. Corpul instruciunii are ucmp explicit pentru adres. n timpul execuiei instruciunii se maface o referire suplimentar la memorie, pentru extragereoperandului.

    Ex : ADD r , adr r r + ( adr ) ,

    unde (adr) este coninutul locaiei de memorie cu adresa adr.n cazul instruciunii de forma:

    ADD adr ACC ACC + ( adr ) ,

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    20/77

    20

    avem un caz tipic de combinaie a adresrii implicite i a celedirecte.

    Adresare imediat

    Presupune aducerea operandului chiar n corpul instruciuni(nlocuind corpul de adres cu operandul). Avantajul const economia unor referiri suplimentare la memorie n timpul execuieunei instruciuni, util mai ales la operaii cu constante.

    ADD r ,4 r r + 4 ,

    unde 4 este o constant plasat n corpul instruciunii.

    Adresarea indexat

    Este principalul mijloc de adresare a irurilor de date dispuse ladrese consecutive, pornind de la o adres de baz. Adresare

    indexat utilizeaz un registru special, numit registru de index, ncare se plaseaz numrul de ordine al elementului din ir, cartrebuie prelucrat. n corpul instruciunii sunt specificate adresa dbaz i adresa registrului de index.

    Ex : ADD r , adr [ x ] r r + ( adr +x )

    Adresarea bazat

    Este folosit ca mijloc alternativ (la adresarea indexat) dacces la irurile de date. Adresa irului este plasat n registruspecial numit registru de baz, iar indexul face parte din corpuinstruciunii.

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    21/77

    21

    Adresarea bazat combinat cu adresarea indexat dau umijloc foarte eficient de acces la blocurile mari de date.

    Ex : ADD r , B[10] r r + (B+10) ,

    unde r este registrul de lucru, B este registrul de baz, iar prin(B+10) se nelege coninutul locaiei de memorie cu adresa dat dregistrul de baz la care s-a adugat 10.

    nlocuind constanta 10 cu x, adic B[x] se obine o adresarbazat i indexat.

    Adresarea indirect

    Este o modalitate de regsire a informaiei pe baza interpretrioperandului, nu ca o valoare de calcul ci ca o nou adres de undse poate extrage valoarea sa adevrat. Adresarea indirect permitpartajarea unei date ntre mai multe uniti de program, dar accesul la irurile de date.

    EX : ADD r , (adr) r r+(adr)

    Prin (adr) se nelege coninutul locaiei de memorie cu adresadr, la care se afl o nou adres.

    Alte tipuri de adresri:-adresare relativ la care calculul adresei se face n rapor

    cu coninutul contorului deprogram;-adresare cu autoincrementare i autodecrementare (puner

    i extragere din stiv);-adresare paginat;

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    22/77

    22

    De obicei microprocesoarele nu admit combinarea oricreinsruciuni cu orice mod de adresare. Instruciunile de transfeimplementeaz cele mai multe moduri de adresare.

    Microprocesorul i circuitele externe

    Un sistem cu microprocesor, n afar de unitatea centralcuprinde memoria i subsistemul de intrare/ieire ce sunt conectatprintro magistral extern.

    Magistral extern a unui microprocesor

    Realizarea unui sistem cu microprocesor se face n jurul unemagistrale ce servete drept cale de transfer a informaiei. i ninteriorul microprocesorului principalele sale componente sundispuse tot n jurul unei magistrale, numit magistral intern. afara microprocesorului, aceasta are drept corespondent magistralextern.

    Legtura ntre cele dou magistrale se face printr-o interfaspecial, al crui rol este de a asigura att o separare electric, unnumr relativ redus de terminale externe, dar i adaptarea lacelai protocol de comunicaie ntre dispozitive.

    Liniile unei magistrale se grupeaz n date (DATA BUS)adrese (AD BUS), comenzi/control (CMD BUS) i alimentri.

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    23/77

    23

    Magistrala de date (DATA BUS), permite transferainformaiei bidirecional, fiind compus dintr-un numr de linegal cu lungimea cuvntului microprocesorului. Disciplina dmagistral impune ca la un moment dat ntr-un sistem s se afle dialog doar dou dispozitive, unul surs i unul destinaie, sensu

    de transfer fiind unic i dictat de cele dou tipuri de operaii dbaz admise: citire i scriere. Rezult c dispozitivele ce sconecteaz mpreun pe aceeai magistral de date trebuie sdispun de buffere cu trei stri (3-State) astfel nct s nu aparconflicte electrice n timpul transferurilor.

    Magistrala de adrese (AD BUS) este unidirecional (de lmicroprocesor spre exterior) i servete la vehicularea adreselor cpermit localizarea n memorie sau ntr-un registru de interfa informaiei utile.

    Magistrala de comenzi (CMD BUS) conine semnalunidirecionale, menite s asigure coordonarea i sincronizaretransferurilor cu dispozitivele externe precum memorie i interfeI/O. Aceste semnale permit identificarea tipului de operaie d

    transfer (RD-citire, WR -scriere), natura dispozitivului (MRQ -memorieIORQ -interfee I/O), precum i natura informaiei vehiculate (dateMI-instruciuni).

    Microprocesorul dispune i de linii speciale pentru generatorude tact (X1 i X2, pentru conectarea cuarului sau CLK pentrsemnalul de tact extern),precum i pentru sincronizarea cdispozitivele externe (RDY), iniializarea (RESET), cereri d

    ntrerupere (INT) i de magistral (BRQ i BACK). Unelmicroprocesoare folosesc aceleai linii pentru adrese i dateacestea fiind multiplexate. La nceputul fiecrui transferprocesorul depune nti adresele (ce pot fi ngheate ntr-u

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    24/77

    24

    registru LATCH) i apoi folosete aceleai linii pentru citirea sascrierea datelor.

    Memoria

    Sistemele cu microprocesoare utilizeaz dou tipuri de memorpentru stocarea datelor si programelor.

    -Memorie numai cu posibilitate de citire care este nevolatil care este scris de utilizator (EPROM i EEPROM), aceasta fiinmemoria de program.

    -Memorie cu posibiliti de citire/scriere (RAM), care estvolatil i servete la stocarea temporar a informaiilor (datrezultate i chiar programe), aceasta fiind memoria de lucru.

    Microprocesoarele de uz general, de regul multicip, nu dispude resurse proprii de memorie (cu excepia registrelor de lucru cpot fi considerate memorii RAM foarte rapide dar de capacitatmic).

    Multe microprocesoare actuale sunt dotate cu memorie RAM

    proprie foarte rapid, de capacitate relativ modest (4 16 KB), acrui rol este de a funciona ca tampon ntre CPU i memoriextern, mai lent, dar de mare capacitate. Aceast memorienumit memorie CACHE, realizeaz funcia de acceleratormpreun cu un dispozitiv intern de gestionare, funcie ce estcomplet transparent pentru utilizator.

    Subsistemul de intrare/ieire

    Face legtura ntre microprocesor i periferice prin interfespecializate, numite generic porturi. n principiu, transferal datelode la sau ctre porturi se face cu instruciuni speciale, numitinstruciuni de intrare/ieire. Citirea unui port se face cu

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    25/77

    25

    instruciune de intrare (IN), iar scrierea ctre un port se face cu instruciune de ieire (OUT). Utilizatorul are acces la funciilinterfeei prin intermediul registrelor acesteia. Registrele dinterfa se grupeaz n trei categorii:

    -registre de control, destinate manevrrii interfeei

    perifericului asociat;-registre de stare, cu ajutorul crora se verific condiiile

    modul de execuie al operaiilor, precum i erorile aprute;-registre de date, prin care se face transferul propriuzis.

    Structura simplificat a unei interfee este prezentat n figururmtoare:

    AD BUS

    CMD BUS

    DATABUS

    Decodoricontrolinterfa

    Registrude control

    Registrude stare

    Registrude date

    Registrude date

    DISPOZITIV

    PERIFERIC

    Tampon

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    26/77

    26

    Tipuri de Interfee

    -interfaa paralel permite interconectarea perifericelor cvitez de lucru ridicat;

    -interfaa serial permite interconectarea perifericelor c

    vitez redus, dar folosind un numr mic de linii (de regul dousau trei), conform unui standard (RS 232, RS 422, RS 485 etc);

    -contor/temporizator: este o interfa special folosit ca contor sau generator de impulsuri programabil;

    -interfaa video: permite obinerea imaginilor grafice alcaracterelor sau curbelor pe un ecran monitor TV sau cu cristallichide.

    Transferuri , cicluri , stri

    Principala utilitate a unei magistrale este transferul informaiePentru aceasta, un microprocesor trebuie s precizeze:

    -natura operaiei dorite: poate fi citire sau scriere i est

    identificat cu ajutorul unor semnale speciale de pe magistrala dcomenzi (RD sau WR );-natura dispozitivului implicat n transfer ce poate fi memori

    au interfa de intrare/ieire (MRQ - memorie, IORQ - interfaa I/O);-adresa locaiei sau registrului dorit (AD BUS);

    Transferul are loc pe durata unui ciclu de magistral. Cum

    microprocesorul este guvernat de un semnal de tact precis, rezultc i ciclul de magistral este corelat cu acest tact. Perioada tactuluse numete stare, iar fiecare ciclu are un numr determinat de stri

    Ciclurile de citire/scriere ale microprocesorului sunt date diagramele urmtoare:

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    27/77

    27

    CLK

    Dat stabil

    T1 T2 T3

    Ciclu de citire

    AD BUS

    DATA BUS

    RD

    MRQ , IRQ

    Adres stabil

    CLK

    Dat stabil

    T1 T2 T3

    Ciclu de scriere

    AD BUS

    DATA BUS

    WR

    MRQ , IRQ

    Adres stabil

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    28/77

    28

    nti microprocesorul pune o adres valid pe liniile AD BU(locaie de memories sau registru I/O), apoi activeaz pe rnsemnalele care specific natura dispozitivului (MRQ sau IORQ ) i apooperaia dorit (RD sau WR ).

    n timpul ciclului de citire, microprocesorul ateapt

    dispozitivul adresat s pun pe magistrala de date un cuvnt validpe care-l preia spre sfritul ciclului.Dac dispozitivul nu poatrspunde n timp util, el poate folosi dezactivarea liniei READYfornd microprocesorul s atepte.

    Folosirea liniei READY pentru sincronizarea cu dispozitivlente determin microprocesorul s insereze automat o succesiunde stri de ateptare, acestea sunt introduse n interiorul ciclululungindu-i convenabil durata. Dac dispozitivul adresat nactiveaz linia READY, sistemul se poate bloca.

    ntreruperi i accesul direct la memorieO problem important n orice sistem de calcul est

    sincronizarea activitii microprocesorului cu evenimentelexterne. Toate aceste evenimente au un punct comun: sunasincrone n raport cu execuia programului de ctre procesorProgramul trebuie informat printr-un mijloc oarecare c un astfede eveniment s-a produs i c trebuie tratat corespunztor (printr-secven specific numit rutin de tratare).

    Exist trei tipuri de mecanisme utilizate pentru tratare

    evenimentelor externe:-ateptarea (bucla) programat;-ntreruperi;-accesul direct la memorie.

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    29/77

    29

    Ateptarea programat

    n forma sa cea mai simpl, const ntr-o secven de programcare citete n permanen o informaie de stare i testeaz unindicator, pentru a afla dac evenimentele au avut loc.

    Procesorul nu execut nici o alt activitate pn ce evenimentu

    nu s-a produs rezultnd timpi inutilizabili pentru sistem.

    ntreruper i

    Sunt faciliti hardware oferite de microprocesoare, prin care udispozitiv periferic atrage atenia asupra producerii unoevenimente externe ce reclam o intervenie prompt.

    nainte ca o ntrerupere s poat avea loc, este necesar s sndeplineasc condiiile:

    -perifericul n cauz trebuie s fie capabil s genereze ntrerupere;

    -sistemul trebuie s posede toate mecanismele hardware dtransmitere a semnalului de ntrerupere de la periferic la CPU;

    -programul ce se execut de microprocesor trebuie s conin

    secvene de cod special destinate lucrului cu ntreruperi (rutine dtratare a ntreruperilor);-perifericul trebuie s genereze semnalul de ntrerupere.

    Apariia unei ntreruperi n activitatea curent microproesorului determin urmtoarea secven de evenimente:

    -instruciunea n curs de execuie se ncheie normal;

    -starea intern a procesorului (registrul de stare i contorul dprogram) este salvat pentru a permite mai trziu reluareactivitii din locul unde a fost ntrerupt;

    -microprocesorul ncarc noi informaii de stare i execut unsalt de la o rutin de tratare specific, ce realizeaz toate aciunilurgente implicate de apariia evenimentului;

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    30/77

    30

    -la sfritul rutinei de tratare (marcat cu o instruciune drevenire din ntrerupere IRET) se restaureaz starea procesorulusalvat anterior;

    -restaurarea este ncheiat cu rencrcarea contorului dprogram cu valoarea salvat i prin aceasta, reluarea programulu

    ntrerupt.Observaii

    -tratarea ntreruperii trebuie s nlture cauza apariiei acesteiaastfel secvena de mai sus se poate repeta;

    -dac sosesc noi ntreruperi de aceeai natur, n timpuexecuiei rutinei de tratare, se poate ajunge la situaia ca aceasta sfie restartat recursive, pn la apariia unor erori sau pierderecontrolului asupra programului;

    -procesoarele actuale suport instruciuni ce permit activarearespectiv dezactivarea tratrii ntreruperilor. Pe baza acestora spot elimina ntreruperile neprevzute.

    Microprocesoarele mai simple sunt dotate cu o singur intarpentru semnale de ntrerupere (INT), dar cele mai multe posed

    intrare suplimentar (NMI), care permite tratarea unor evenimentimperative, motiv pentru care nu exist nici un mecanism interde inhibare a acestora(ntreruperi nemascabile). O problem important apare lconectarea ntreruperilor de la mai multe periferice. Cum pot fluate acestea n considerare dac microprocesorul dispune doar do singur intrare INT. Rspunsul este dat de introducerea unu

    mecanism de multiplexare/arbitrare a cererilor de ntrerupere, bazape o logic cu prioriti.

    O soluie este folosirea unui controler de ntreruperi. Acestdispune de un codor de prioriti care determin solicitantul cu cemai mare nivel de prioritate i genereaz semnalul de ntreruperctre procesor. n momentul acceptrii ntreruperii, controleru

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    31/77

    31

    pune pe magistral un cuvnt de identificare al perifericulusolicitant, astfel nct microprocesorul s fie capabil s activezrutina de tratare specificat.

    O alt soluie este cea n care logica de arbitrare i multiplexara fost distribuit chiar n circuitele de interfa. Fiecare circuit are

    intrare de autorizare a ntreruperilor (IEI) i o ieire de semnalizara activitii ctre perifericul urmtor (IEO). Dac IEI1, atuncperifericul n cauz poate genera o ntrerupere. Dac acelaperiferic se afl n curs de tratare, el va pune IEO0. Un dispoziticu IEI0 este obligat s transmit IEO0.

    Prioritatea este stabilit pe baza poziiei fizice a perifericuluntr-un lan de prioriti.

    Odat generat ntreruperea i acceptat de procesor, perifericui va pune cuvntul de identificare pe magistral, pentru a permitactivarea rutinei de tratare corect.

    ntrerupere nemascabil

    1

    NMI

    MICROPROCESOR

    INT

    Periferic 1

    Periferic 2

    Periferic n

    IEI

    IEI

    IEI

    IEO

    IEO

    IEO

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    32/77

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    33/77

    33

    Accesul direct la memorie

    Permite ca dou procesoare s partajeze aceeai magistral scopul realizrii accesului la aceleai resurse. Unul dintre ele est

    chiar unitatea central a sistemului, iar cellalt este dedicat numainterceptrii i arbitrrii cererilor provenite de la periferice, precumi coordonrii transferurilor solicitate, fr a mai apela la unitatecentral.Acest procesor dedicat controler pentru acces direct la memori(DMA) funcioneaz n dou moduri:

    -modul slave, funionnd ca un circuit de interfa obinuit, cpoate fi programat prin instruciuni I/O, programarea are ca scoprecizarea locaiei de memorie de unde ncepe transferul i sensutransferului;

    -modul master controlerul preia controlul magistralei (dupce a primit acceptul CPU) i dirijeaz traficul de informaiegenernd toate semnalele de control necesare.

    Ciclurile DMA se pot ntreptrunde cu cele CPU, mai ales dacrata de transfer a perifericului nu este prea mare, caz n carexecuia programului principal este ncetinit foarte puin.

    Multe controlere DMA sunt capabile s gestioneze mai multperiferice. Astfel, cererile DMA, notate DRQ, emise de perifericeajung la controler, care le arbitreaz i care solicit apoi eliberaretemporar a magistralei de ctre procesor prin activarea semnalulu

    BREQ.Procesorul termin ciclul de memorie sau I/O n curs, dup car

    se deconecteaz de la magistral i semnalizeaz acest lucractivnd linia BACK.

    Controlerul DMA preia acum controlul magistralei semnalizeaz acest lucru perifericului, prin smnal de acceptar

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    34/77

    34

    DACK. La terminarea unui transfer DMA, perifericul dezactiveazlinia DRQ, controlerul eliberez magistrala, semnaliznd aceslucru i procesorului prin linia BRQ, acesta preia din nou controlumagistralei i totul reintr n normal.

    Avantajul imediat al tehnicii de transfer prin acces direct lmemorie este c acesta permite eliberarea procesorului de sarcingestionrii directe a intrrilor i ieirilor de date din sistem: estsuficient s programm controlerul DMA pentru citirea unui blode date de la un periferic (de exemplu. CAN), dup care procesorueste liber s realizeze o alt activitate ce nu are nevoie de datel

    DRQ

    DACK

    DRQ

    DACK

    DRQ0

    DACK0BREQ

    BACK

    DRQ1

    DACK1

    BREQ

    BACK

    Microprocesor

    Periferice

    Controler DMA

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    35/77

    35

    solicitate. Unitatea de transfer a datelor prin DMA este blocul, daceea la sfritul transferului este considerat a fi epuizarea bloculude date.

    Microcontrolerul 8051(INTEL)

    Familia de microcontrolere de 8 bii MCS51 lansat i produsde Intel a devenit practic un standard industrial. Ea a stat la bazadezvoltrii de microcontrolere compatibile realizate de firme ca:Philips, Siemens, Dallas, etc. Arhitectura MCS51 este optimizatpentru aplicaii de control. Intelofer o gam larg demicrocontrolere compatibile cu 8051 ce difer ntre ele doar prinopiuni i tehnologie. Principalele caracteristici ale familiei MCS5sunt prezentate n tabelul urmtor:

    CHIP ROMintern

    RAMintern

    Timere16 biti

    Surseint.

    8031 - 128 2 5

    8051 4k 128 2 580C51 4k 128 2 58032 - 256 3 68052 8k 256 3 6

    80C52 8k 256 3 689C52 8k Flash 256 3 6

    Microcontrolerul 8051 are n structura sa: unitate aritmetica i logic de 8 bii ce poate executa operai

    de adunare, scdere, nmulire, mprire, incrementare, ISAU, SAU Exclusiv, complementare i rotire,

    memorie de program de tip ROM 4k octei

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    36/77

    36

    memorie de date RAM 128 octei 4 porturi paralele de intrare/ieire 30 PP de 8 bii un port serial duplex dou circuite numrtoare/temporizatoare N/T0, N/T1 de ct

    16 bii 5 surse de ntrerupere cu dou nivele de prioriti generator de tact 1,2 12 zMH

    Deasemenea microcontrolerul are posibilitatea de adresare a unememorii externe de program i a unei memorii externe de date ccapacitate maxim de 64k octei.

    Toate microcontrolerele din familia MCS51 au spaiu separa

    pentru memoria de date i de program. Acest lucru permite cretere de vitez datorat att suprapunerii pariale a unomicrooperatii, ct icrearea posibilitatii de adresare scurt (cu usingur octet de adres).

    Memoria de program poate fi doar citit. La 8051 primii 4octei de program sunt n chip. Restul se afl n exterior, iar pentrua citi aceast memorie de program extern se folosete semnaluPSEN (Program Store Enable).

    Memoria de date ocup un spaiu separat fa de memoriprogram. La 8051 exist 128 octei RAM n chip. Memoria de datextern poate fi accesat prin generarea de ctre unitatea central semnalelor de citire RD sau scriere WR. Memoria de program cea de date (extern) pot fi combinate dac dorim prin folosire

    semnalelor RD si PSEN pentru a genera smnal de citire pentru memorie comun n care s avem att memorie program ct memorie de date.

    Memoria de program

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    37/77

    37

    Dup reset CPU i ncepe execuia de la adresa 0000H undetrebuie s existe o instruciune de salt peste zona vectorilor dentrerupere. Aceast zon ncepe de la adresa 0003H unde esteplasat rutina de tratare a ntreruperii externe INTR0. Hartamemoriei program arat astfel:

    Adresele vectorilor de tratare a ntreruperilor sunt:0003h INTRO 0000Bh Timer 00013h INTR 1001Bh Timer 10023h Seriala002Bh Timer 2 (doar pentru 8x52)

    Dac rutina de tratare a ntreruperii este foarte scurt ea poatfi plasat n cei 8 octei rezervai. Rutinele mai lungi pot folosi oinstruciune de salt peste locaiile rezervate ntreruperilourmtoare, dac acestea se folosesc.

    FFFFh

    2000h

    1FFFh

    0000h

    ROMextern

    ROMintern

    sau

    FFFFh

    0000h

    ROMextern

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    38/77

    38

    Cei 4k octei (8k octei la 8x52) de memorie program pot fi capsul sau extern. Aceast selecie este posibil folosind linia EA(External Acces). Daca EA=0 se acceseaz 64k octei memoriextern. Dac EA=1, atunci se execut program din:

    - memoria intern 4k octei (0000h-0FFFh);

    - memoria externa de pn la 64k octei ntre adresele 1000h FFFFh.

    n timpul execuiei programului din memoria intern nu sgenereaz semnalul PSEN. Porturile P0 i P2 sunt dedicate pentrua se folosi ca magistral de adres. Deasemenea P0 este folosit ca magistral de date prin multiplexarea adreselor A0-A7 i dateloD0-D7.Modul de conectare al memoriei program este prezentat continuare:

    Pentru citirea memoriei program se emite octetul inferior aPC (Program Counter) ca o adres la portul P0. Cu ajutoru

    P0 DO-D7

    AO-A7

    MEMPROG

    A8-A15

    OE

    80C51

    ALE

    P2

    PSEN

    LATCH

    STB

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    39/77

    39

    semnalului ALE (Adress Catch Enable) se nscrie aceast adresntr-un latch. ntre timp la portul P2 se emite octetul superior al PCOdat ce adresa este stabil se activeaz semnalul PSEN pentrcitirea datelor din memoria de program, date care sunt citite dportul P0.

    Adresarea memoriei program se face ntotdeauna pe 16 biiExecuia programelor din memoria program extern sacrific astfedou porturi P0 i P2.

    Memoria de date intern

    Microcontrolerul 8051 are o memorie intern de date RAM d128 octei adresabil direct i indirect n spaiul de adresare Fhh 700 Aceast zon este mprit astfel:

    !

    Spaiul 00h-07h reprezint, dup reset, grupul de registre R0-Rutilizate pentru surse sau destinaii n multe instruciuni ca:

    Zona adresabilala nivel de bit

    Zona registrelorR0-R7

    Zona de uzgeneral

    30h

    28h

    20h

    10h

    08h

    00h

    2Fh

    7Fh

    1Fh

    17h

    0Fh

    07h

    18h

    R0

    00h

    7Fh

    R1 R2 R3 R4 R5 R6 R

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    40/77

    40

    ADD A,RnMOV Rn,#data

    ntr-o astfel de instruciune, registrele R0-R7 sunt adresat

    direct cu un cmp de 3 bii )70( n cuprins mpreun cu coduoperaiei, n primul octet corespunztor codului main ainstruciunii. Ex:

    ADD A,Rn cod instr.: 0010.1rrr

    ADD A,R0

    28hADD A,R1 29h....................

    ADD A,R7 2Fh

    Registrele R0 i R1 sunt utilizate i pentru adresarea indirect memoriei de date interne ca de exemplu, n instruciunile:

    MOV A,@RiADD A,@RiINC @Ri

    n aceste instruciuni indicele i cu valorile 0 sau 1 este precizan primul cuvnt din codul main printr-un bit. Deasemenearegistrele R0 i R1 sunt utilizate pentru adresarea indirect memoriei de date externe n instruciunile:

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    41/77

    41

    MOVX A,@RiMOVX @Ri,A

    n aceste instruciuni, coninutul registrului R0 sau Rreprezint octetul mai puin semnificativ al adresei. Octetul ma

    semnificativ al adresei este dat de portul P2.Exist posibilitatea ca, prin programarea biilor RS1 i RS0 a

    registrului de stare a programului (PSW), grupul de registre R0-Rs fie ales conform tabelului:

    PSW.4RS1

    PSW.3RS0

    AdresagrupuluiR0-R7

    0 0 00h-07h

    0 1 08h-0Fh

    1 0 10h-17h

    1 1 18h-1Fh

    Locaiile memoriei din spaiul 20h-2Fh reprezint o zon dmemorie adresabil i la nivel de bit n instruciuni de tipul:

    CPL bitJB bit,rel

    Adresarea biilor se realizeaz direct, cu un octet coninut codul main al instruciunii corespunzatoare. Ex:

    CPL C are codul 10110011CPL bit are codul 10110010 adr.bit

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    42/77

    42

    Zona de memorie 80h-FFh este o zon de memorie cu accedirect i pe bit folosit pentru registrele cu funciuni speciale. Lmicrocontrolerul 8x52 aceast zon este dublat cu o zon dmemorie RAM dar la care accesul se face numai indirect. Astfememoria intern de date arat astfel:

    Memoria intern de date este utilizat deasemenea pentru stiv.Registrul indicator de stiv SP este ncrcat, dup reset, cu valoare07h. Exist posibilitatea de modificare a zonei din memoria intern

    de date utilizat pentru stiv, prin ncrcarea altei valori n registruSP.

    De exemplu prin ncarcarea valorii 2Fh n registrul SP stivancepe de la valoarea 30h.

    Adresabilanumai direct

    (SFR)

    FFh

    80h7Fh

    00h

    Adresabilanumai indirect

    (8x52)

    Adresabiladirect siindirect

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    43/77

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    44/77

    44

    Indicatorul de transport C (PSW.7) se poziioneaz la nivel 1logic n urma execuiei unei instruciuni de adresare care a produun transport i n urma execuiei unei instruciuni de scdere care necesitat un mprumut. Dac execuia unei instruciuni dscdere/adunare nu produce mprumut/transport, indicatorul C s

    poziioneaz la nivel logic 0. Astfel, indicatorul C se utilizeazpentru aplicaii n operaii aritmetice cu operanzi fr semn.

    Deasemenea indicatorul C este folosit i n operaii logice i dtransfer al controlului:

    ADD A,directANL C,bitRLC AJC Rel

    Indicatorul de transport auxiliar AC (PSW.6) se poziioneaz lnivel logic 1 n urma unei operaii de adunare/scdere carproduce transport/mprumut din/n poziia bitului 3.

    Indicatorul de depire OV (PSW.2) se poziioneaz la nivelogic 1 n urma execuiei unei instruciuni de adunare dac s-

    produs un transport din poziia bitului 6 i nu s-a produs utransport din poziia bitului 7 indicnd astfel depirea domeniulude valori )127128( .

    Indicatorul de paritate P (PSW.0) conine suma modulo 2 biilor registrului acumulator. La nivel logic 1 indic un numimpar de bii cu nivel logic 1 n acumulator. Bitul P nu estmodificat de nici o instruciune de scriere n registrul PSW.

    Ceilali bii ai PSW sunt: F (PSW.5) disponibil pentru ugeneral, PSW.1 rezervat pentru dezvoltri ulterioare (nefolosit)RS1 i RS0 (PSW.4 i PSW.3) pentru selecia grupului de registrR0-R7.

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    45/77

    45

    SBUFregistru serialfiind compus de fapt din dou registrseparate de 8 bii avnd aceeai adres direct, unul pentrutransmisie i unul pentru recepie folosite pentru interfaa serial.Cnd un octet de date este scris n SBUF acesta este plasat nbufferul de transmisie i declanseaz nceputul transmisiei seriale a

    acestuia. Cnd se realizeaz o recepie se citete coninutulbufferului de recepie. Adresa direct a registrului SBUF este 99H

    Registrele de controlexist mai multe astfel de registre, carconin bii de control i de stare pentru ntreruperitemporizatoare/numrtoare i portul serial. Ele vor fi descrise lfunciile corespunzatoare.

    Registrele de tempor izareexist dou perechi de registre dcte 8 bii T0 (TH0, TL0) T1 (TH1, TL1) folosite cnumrtoare/temporizatoare de 16 bii programabile n 4 modurdiferite. Celelalte registre interne i funciile acestora vor fdiscutate ulterior.

    Moduri de adresare

    Modurile de adresare folosite de microcontrolerul 8051 sunt:

    - Adresare directn adresarea direct operandul este specificat de un cmp de 8 bi

    de adres din instruciune. Doar RAM-ul intern de date i SRF pofi adresate direct.Ex: MOV A,30h

    MOV A,DPL

    - Adresarea indirect

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    46/77

    46

    n adresarea indirect instruciunea specific un registru cconine adresa operandului. Doar RAM-ul intern i cel extern poatfi adresat indirect. Adresa pe 8 bii a operandului se afl n unul diregistrele R0 sau R1. Registrul Ri, i=0 sau 1 este precizat printr-u

    bit din codul main al instruciunii.

    Ex: MOV A,@Ri 1110 011IMOV @Ri,A 1111 011IMOV @Ri,direct 1010 011I ADR.DIRECTMOV direct,@Ri 1000 011I ADR.DIRECT

    Adresa pe 16 bii a operandului se afl n DPTR fiind folospentru transfer de date din memoria RAM extern n instruciuni dtipul:

    MOVX A,@DPTRMOVX @DPTR,A

    - Instruciuni cu regitriiInstruciunile cu regitrii de lucru interni (R0-R7) au avantaju

    eliminrii unui octet de adres din instruciune deoarece adresoperandului se poate coda pe 3 bii din codul instruciune.Ex: MOV A,Rn 1110 1rrr

    MOV Rn,direct 1010 1rrr adr direct

    Exist i instruciuni specifice orientate pe manevrareregitrilor. Unele instruciuni opereaz doar n acumulator saDPTR nefiind necesar nici un octet suplimentar de adres n coduinstruciunii.Ex: CLR A 1110 0100DEC A 0001 0100

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    47/77

    47

    DIV A,B 1000 0100JMP @A+DPTR 0111 0011MOVX A,@DPTR 1110 0000

    - Constante imediateValoarea constantei urmeaz codului n memoria program. D

    exemplu MOV A,#data ncarc valoarea dat n acumulator.Ex: MOV A,#100 100A

    MOV A,#64H

    - Adresarea indexatSe folosete pentru a accesa memoria de program ce poate f

    doar citit. Acest mod se folosete pentru a citi tabele din memoride program. Registrul de baz de 16 bii (unul din registre DPTRsau PC) indic baza tabelului iar acumulatorul este incrcat cpoziia din tabel dorit. Adresa de citire din tabel rezult ca sumdintre coninutul acumulatorului i pointerul de baz.

    Tipuri de instruciuni

    Instruciuni aritmetice

    Aceste instructiuni sunt:Adunare ADD A,Adunare cu C ADDC A,

    Scdere SUBB A,Incrementare INC Decrementare DEC nmulire MUL ABmprire DIV ABAjustare zecimalDA

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    48/77

    48

    Instruciuni logice

    Instruciunile logice disponibile sunt:ANL A,ANL ,A

    ANL ,#dataORL ,AORL A,ORL , #dataXRL A,XRL , AXRL ,#dataCLR ACPL ARL ARLC ARR ARRC A

    SWAP A

    O operaie de tipul ANL A, poate lua una din formelurmtoare:

    -Adresare direct ANL A,30H-Adresare indirect ANL A,@R1-Adresare registru ANL A,R6-Adresare imediat ANL A,#100Toate operaiile asupra memoriei de date pot fi executate fr

    folosi acumulatorul. De ex. XRL , #data execut un saexclusiv ntre octetul de memorie i data imediat fr folosireacumulatorului. Instruciunea SWAP A schimb ntre ele partesuperioar i cea inferioar din acumulator.

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    49/77

    49

    Instruciuni pentru transferul datelor cu memoria intern

    Formatul general al instruciunii este: MOV , permite transferul ntre dou locaii interne RAM sau SRF fr

    folosi acumulatorul sau ntre un registru i o locaie de memorieTrebuie inut cont de faptul c pentru 8052 spaiul de memorisuperior celor 128 octei RAM poate fi adresat doar indirect, iaspaiul registrelor cu funcii speciale poate fi adresat doar direct.

    Stiva se afl n memoria RAM intern i crete spre adreselsuperioare. Instruciunea PUSH mai nti incrementeaz SP (StacPointer) i apoi depune octetul pe stiv. Instruciunile PUSH POP se folosesc doar n modul de adresare direct pentru a indicoctetul ce va fi salvat sau restaurat. Dac stiva depete cei 128 doctei din RAM-ul intern, octeii depui n continuare se pierd iacei restaurai au valori nedeterminate. Instruciunile de transfeinclud i instruciuni pe 16 bii care pot fi folosite pentru a iniializpointerul de date DPTR pentru citiri de tabele din memori

    program sau pentru accesul la memoria extern de datePrincipalele instruciuni care adreseaz spaiul intern al memoriede date sunt:

    MOV A,MOV ,AMOV ,MOV DPTR,#data 16

    PUSH POP XCH A,XCHD A,@Ri

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    50/77

    50

    Instruciunea XCH A, face ca acumulatorul i octetus-i schimbe valorile ntre ele. Instruciunea XCHD A,@Ri estasemntoare, dar doar cei mai puin semnificativi 4 bii sunschimbai.

    Instruciuni pentru transferul datelor cu memoria extern

    n acest caz poate fi folosit doar adresarea indirect. Alegeretipului de transfer se face dup numrul de octei de adres. Dacse dorete adresarea cu un singur octet de adres se vor folosregitrii R0 sau R1.

    Pentru adresarea cu doi octei de adres se va folosi registruDPTR. Dezavantajul folosirii adresei pe 16 bii este acela afolosirii portului P2 care astfel nu poate fi folosit pentru aplicaieSelectarea memoriei externe se face cu operaii de tipul MOVX cpot fi:

    MOVX A,@Ri

    MOVX @Ri,AMOVX A,@DPTRMOVX @DPTR,A

    Setul de instruciuni al microcontrolerului 8051 conine i douinstruciuni pentru citirea tabelelor din memoria program. Acestinstruciuni sunt:

    MOVC A,@A+DPTRMOVC A,@A+PC

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    51/77

    51

    Instruciunea MOVC A,@A+DPTR transfer intrarea din taben acumulator. DPTR este setat s indice nceputul tabelei iaacumulatorul intrarea din tabel.

    Instruciunea MOVC A,@A+PC se compune din urmtoarelmicrooperaii:

    ))(()(1)()(

    PCAAPCPC

    Folosirea acestui tip de citire a datelor este ilustrat de programuurmtor:

    MOV A,INTR_TABLECALL TABLE

    ------------------Subrutina TABLE va arta astfel:TABLE: MOVC A,@A+PC

    RETdata1-------dataN

    Imediat dup instruciunea RET se plaseaz tabela cu intrri dla 1 la 255. Intrarea 0 nu se foloseste deoarece n timpul execuieinstruciunii MOVC, PC-ul conine adresa instruciunii dntoarcere RET.

    Offset relativ

    Destinaia adresei unde se face un salt condiionat estspecificat n asamblor de un tabel sau de o adres n memoriprogram. Destinaia se d ca un offset relativ la poziia curent PC. Aceasta nseamn, n cod complement lui doi, c octetul offsese adun la PC dac saltul are loc. Domeniul de salt este cuprin

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    52/77

    52

    ntre -128 i +127 octei n memoria program, relativ la primuoctet ce urmeaz dup instruciune.

    Instructiuni de salt

    Aceste instruciuni sunt:JMP addrJMP @A+DPTR

    Instruciunea JMP addr ascunde de fapt trei instruciuniSJMP, AJMP, LJMP

    1. SJMPformeaz adresa destinaie ca offset relativ, avndoi octei coninnd codul operaiei i offsetul relativ. Distanmaxim de salt este limitat la -128, +127 octei relativ linstruciunea ce urmeaz dup SJMP.

    2. LJMPformeaz adresa de salt ca o constant pe 16 biInstruciunea are 3 octei constnd n codul operaiei i doi octede adres, destinaia fiind oriunde n spaiul de 64 k.

    3. AJMP formeaz adresa destinaie ca o constant pe 1bii. Instruciunea are 2 octei lungime, unul conine codul operaiedin 5 bii i pe 3 bii adresele cele mai semnificative. Al doileoctet conine restul adresei. Adresa de salt poate fi oriunde spaiul de 2k octei relativ la instruciunea ce urmeaz dup AJMP

    JMP @A+DPTRofer posibiliti de salt pentru lucru ctabele. Adresa destinaie este obinut ca sum dintre registru

    DPTR i coninutul acumulatorului. Adresa de salt este pe 16 biin mod uzual DPTR este setat cu adresa tabelului i funcie dadresa acumulatorului avem o anumit specificaie.

    TABLE:AJMP CASE0AJMP CASE1

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    53/77

    53

    AJMP CASEN

    MOV DPTR,#TABLE

    MOV A,INDEXRL A ;nmulire cu doiJMP @A+DPTR

    Lucrul cu subrutine

    Apelul unei subrutine se face cu instruciuni de tipul CALLadr. De fapt sunt dou instruciuni LCALL i ACALL c

    adresare pe 16 bii, respectiv pe 11 bii. Subrutinele trebuie s stermine cu RET pentru a reveni la instruciunea de dup CALLntreruperile se vor termina cu RETI.

    Salturi condiionate

    Acestea specific destinaia adresei ca un offset relativ l

    instructiunea ce urmeaz dup instruciunea de salt. Distana de saeste limitat la -128 la +127 octeti fa de primul octet ainstruciunii urmtoare. Nu exist flag z n PSW. Instruciunile JZi JNZ testeaz direct coninutul acumulatorului dac este zero i funcie de coninut face saltul sau continu programul. DJNZ este instruciune de control pentru bucle la fel ca i CJNE. Formatul loeste:

    DJNZ , relCJNE A,,relCJNE ,#data,rel

    Porturile paralele ale 8051

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    54/77

    54

    Microcontrolerul 8051 conine patru porturi paralelbidirecionale de cte 8 bii. Fiecare port are un registru intern de bii P0P3 i un amplificator de magistral bidirecional. Pristructura microcontrolerului, porturile paralele pot realiza funcalternative care determin utilizri specifice ale porturilor.

    Astfel amplificatoarele de magistral ale porturilor P0 i P2 sutilizeaz pentru accesul memoriilor externe. Portul P1 este un porclasic de intrare/ieire. Liniile portului P3 pot avea utilizralternative.

    Portul P1

    Un operand surs pentru o instruciune de adresare direct aunui port poate fi dat de coninutul registrului portului sau denivelele logice ale liniilor (pinilor) portului.

    n instruciunea ANL P1,A un operand surs este coninuturegistrului portului P1.

    n instruciunea ANL A,P1 un operand sursa este dat de nivelellogice corespunztoare ale pinilor portului P1.

    Aceast logic de funcionare se realizeaz prin comenzcorespunztoare de citire a bistabilelor P1.X, respectiv a pinilo

    Citire bistabilP1.x

    Linia x

    Magistral intern

    comand scrieren bistabil P1.x

    citireP1.x

    A1

    A2

    D

    T Q

    Q Rs

    T

    PINP1.x

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    55/77

    55

    P1.X. Nivelul logic dintr-un bistabil al unui port poate fi diferit dnivelul logic al pinului corespunztor. De ex. Dac ieirea Q bistabilului P1.X este la nivel logic1, tranzistorul T este blocat nivelul logic al pinului P1.X poate fi comandat din exterior.

    Rezistena Rs este o rezisten de sarcin activ cu rolul de

    mri viteza de comutare de la nivel logic 0 la nivel logic 1Aceast mrire de vitez se obine prin generarea de ctre sarcinactiv a unui curent de 30 mA pe durata a dou perioade algeneratorului de tact, ncepnd cu frontul de comutare 10 logic dla ieirea Q a bistabilului P1.X.

    Structura unei astfel de rezistene active este :

    Tranzistorul T2 cu canal iniial, genereaz n permanen ucurent de 0,25 mA. n regim staionar avnd Q la nivelul logic 0sau 1, tranzistorul T1 de tipul cu canal indus, este blocadeoarece nivelele logice de la ntrzierile circuitului SAU_NU suncomplementare. Dup frontul de comutare a semnalului de l

    nivelul 1 la 0 logic, n intervalul a dou perioade T0 algeneratorului de tact, ntrzierile circuitului SAU_NU sunt lnivelul logic 0 i tranzistorul T1 genereaz un curent de 30 mAAcest curent mrete viteza de comutare de la nivelul logic 0 lnivelul logic 1 a semnalului de ieire de la pinul P1.X.

    T1 T2

    0,25mA

    linie ntrziere

    2T0

    PINP1.xbistabil P1.x T

    Vcc

    Q

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    56/77

    56

    Portul P3

    Portul P3 poate realiza aceleai funciuni ca i portul P1 i plus poate fi utilizat pentru funcii alternative de intrare sau de lieire. Pentru realizarea funciei alternative de intrarcorespunztoare unui pin P3.X circuitul conine amplificatoru

    repetor A3 a crui ieire este conectat n structurmicrocontrolerului n concordan cu funcia alternativ realizat.

    Deasemenea pentru realizarea funciei alternative de intrareste necesar blocarea tranzistorului T care se obine prin aplicare

    de nivele logice 1 la intrrile circuitului I-NU. Astfel se impunprogramarea la nivel logic 1a bistabilului P3.X. cealalt intrare circuitului I-NU este conectat intern la nivel logic 1 circuitul corespunzator unui pin P3.X cu funcie alternative dintrare.

    D Q Rs

    PINP3.x

    T

    comand citirebistabil P3.x

    Linie x

    Magistrala interna

    Funcie alternativ( , , )TXD RD WR

    Vcc

    Funcie alternativ

    0( , , )RXD T etc

    BistabilP3.x

    A3

    A1

    A2

    Qcomanda scriere

    bistabil P3.X

    comand citire

    pin P3.x

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    57/77

    57

    Funcia alternativ de ieire corespunztoare unui pin P3.X srealizeaz prin comanda unei intrri n circuitul I-NU, cealaltintrare fiind stabilit la nivel logic 1 prin programarebistabilului P3.X. n cazul realizrii funciei TXD (pin P3.1) linia dintrare n circuitul I-NU pentru funcia alternativ este la nive

    logic 1 cu excepia intervalului corespunztor transmisiei unucaracter, declanat de scrierea unui octet n registrul intern SBUFn cazul realizrii funciilor RDiWR liniile de intrare n circuitele INU pentru funciile alternative sunt la nivel logic1, cu excepiintervalelor corespunztoare ciclurilor de scriere, respectiv citirn/din memoria de date extern.

    Portul P2

    Portul P2 are funcia alternativ de transfer al octetului masemnificativ al adresei n cicluri de extragere coduri instructiundin memoria de program extern, n cicluri de citire din memoride program extern, cu instruciuni MOVC i n cicluri de acces lmemoria de date extern cu instruciuni MOVX n care adresare

    se realizeaz cu registru DPTR. n aceste cicluri linia de comandadresare este la nivel logic 1 i impune poziia 1 pentrucomutatorul k:

    D Q Rs

    PINP2.x

    T

    comand citirebistabil P2.x

    Linie x

    Magistrala interna

    Bit deadres

    Vcc

    BistabilP2.x

    A1

    A

    Qcomanda scriere

    bistabil P2.X

    1

    0 K

    Comandadres

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    58/77

    58

    Astfel bitul de adres corespunztor comand ieirea P2.X portului. Deasemenea, nivelul logic 1 la ieirea circuitului comand sarcina activ RSastfel nct s genereze un curent mamare de 0,25 mA dac bitul de adres are nivel logic 1. Sasigur astfel comanda corespunztoare a circuitelor de memoriextern. n afara intervalelor corespunztoare ciclurilor indicatmai sus portul P2 poate fi utilizat pentru intrri/ieiri de uz general

    Portul P0

    Are funcia alternativ de transfer al octetului mai puinsemnificativ al adresei, precum i al octetului cod instruciune saudat n orice ciclu de acces la memoriile externe.

    D Q Ts

    PIN

    P0.xT

    comand citirebistabil P0.x

    Linie x

    Magistrala interna

    Bit deadres/date

    Vcc

    BistabilP0.x

    A1

    Qcomanda scrierebistabil P0.X

    1

    0K

    Comandadres/date

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    59/77

    59

    n intervalele corespunztoare acestor cicluri, linia dcomand adresare/transfer date, este la nivel logic 1 i impunpoziia 1 pentru comutatorul k. Astfel prin liniile portului P0 spoate realiza transferul adresei i datei de intrare sau ieire, primultiplexarea n timp. La ieirea circuitului I se obine nivel logi1 care deschide tranzistorul TS n intervalele de transfer bii dadres cu nivel logic 1, sau de ieire bii de date cu nivel logi1. n afara acestor intervale, tranzistorul Ts este blocat. ciclurile de acces la memoriile externe, bistabilele (biii) registruluP0 se ncarc cu nivele logice 1.

    n afara ciclurilor de acces la memoriile externe, portul Ppoate fi utilizat pentru intrri/ieiri de uz general. Ieirile P0.X sunde tipul dren n gol (Ts-blocat), iar intrrile P0.X sunt dimpedan ridicat (T i TS = blocate, Q = 1 prin programare).

    Funcionarea sincronizat a microcontrolerului 8051

    Pentru funcionarea sincronizat, microcontrolerul conine ugenerator de tact. Semnalul de comand al generatorului de taceste dat de un oscilator cu frecvena maxim MHz120 f . Pentrrealizarea oscilatorului, microcontrolerul conine un circuiinversor cu intrarea i ieirea conectate la pinii XTAL1 i XTAL2

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    60/77

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    61/77

    61

    main de doi oceti, al doilea octet se extrage din memoriprogram n starea S4 a aceluiai ciclu main. Rezult c intr-uciclu main se pot efectua dou extrageri de coduri instruciuneDac este nevoie i de cel de-al treilea octet, acesta se va extrage faza S1P2 a celui de-al doilea ciclu main. n strile n care s

    face extragere de cod instruciunea are loc i incrementarecontorului de program PC. Execuia unei instruciuni se termin faza S6P2 a ciclului main corespunztor. Pentru accesumemoriilor externe, adresa se formeaz din valoarea portului P(octetul superior) i valoarea portului P0 (octetul inferior)Transferul unui octet de date se face prin liniile portului P0. rezultc portul P0 este folosit att pentru adrese ct i pentru date printehnici de multiplexare. Se impune astfel memorarea temporarntr-un registru extern a octetului mai puin semnificativ al adreseiMemorarea adresei inferioare n registru se realizeaz pe bazsemnalului de validare registru de adresare ALE. Pentru selecidiferit a celor dou tipuri de memorie (de program i RAMmicrocontrolerul genereaz semnalul PSEN pentru validare

    memoriei de program extern i semanlele WRiRD pentru memoride date extern. Diagramele de timp corespunzatoare extragerii dcoduri instruciuni din memorii program sunt:

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    62/77

    62

    Circuitele de numrare/temporizare ale microcontrolerului8051

    Microcontrolerul 8051 conine dou circuite d

    numrare/temporizare notate cu N/T0 i N/T1. Fiecare circuconine dou registre numrtoare de cte 8 bii , TH0, TL0, TH1TL1 din grupul registrelor cu funcii speciale. Structura unui circunumrtor/temporizator este prezentat n figura de mai jos.

    Funcia de temporizare se realizeaz prin numarare deimpulsuri cu o frecvena egal cu frecvena oscilatorului divizat

    CLK

    ALE

    S1 S2 S3 S4 S5 S6

    PSEN

    COD INSTRUCTIUNE PCLPCL COD INSTRUCTIUNE

    P0-P7

    PCL PCL

    A0-A7

    PCH PCH PCH

    A15-A8P2.7-P2.0

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    63/77

    63

    cu 12. Rezult c frecvena pentru temporizare avnd f0=12 MHzeste f=1 MHz.

    Funcia de numrare se realizeaz prin numrarea fronturilode cdere ale semnalului aplicat la pinul Ti al microcontroleruluAceste fronturi se detecteaz prin testarea de ctre microcontroler

    strii liniei Ti n fazele S5P2 ale ciclurilor main. Se considerdetectat un front de cdere dac n fazele S5P2 din dou ciclurmain consecutive rezultatul testrii va fi un nivel logic 1urmat de un nivel 0 logic. Detecia unui front de cderdetermin incrementarea cu o unitate a coninutului registrulunumrator n faza S3P1 a ciclului main urmtor detectrifrontului de cdere. Rezult c funcia de numrare a fronturilor dcdere ale semnalului extern aplicat pinului Ti se efectueaz corecdac fiecare nivel corespunztor acestui semnal este meninut pe durat mai mare dect durata unui ciclu main. Astfel frecvenmaxim a semnalului de la linia de intrare Ti este f0/24 adic500KHz pentru f0=12MHz.

    Generator

    de tact

    Divizorfrecven

    12

    C/Ti

    (TMOD)

    RegistrunumrtorTHi,TLi

    GATE i(TMOD)

    TR i(TCON) TF i

    (TCON)

    f0 f0/12

    0

    11

    K1 K2

    Cerere ntrerupere

    PIN P3.i+2

    Ti

    PIN P3.i+4

    / INTi

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    64/77

    64

    Pentru controlul funcionrii circuitelonumrtoare/temporizatoare se utilizeaz registrele interne TMODi TCON din grupul registrelor cu funcii speciale. Funcia dnumrare sau temporizare se realizeaz prin comandcorespunztoare a comutatorului K1. Acest comutator estcomandat de bitul C/Ti din registrul TMOD (C/T0=TMOD.2C/T1=TMOD.6). Dup cum rezult i din figura anterioar vomavea:

    C/Ti = 0temporizator

    C/Ti = 1numrtorDeclanarea i blocarea proceselor de numrare/temporizare

    corespunztoare poziiilor cuplat respectiv decuplat alcomutatorului K2 se pot stabili prin programarea biilor TRi di

    registrul TCON i GATEi din registrul TMOD i prin semnaextern conectat la pinul INTi al microcontrolerului. Comandproceselor de numrare/temporizare se poate realiza prin programprin stabilirea bitului GATEi la nivelul logic 0.

    n acest caz declanarea i blocarea se comand priprogramarea bitului TRi. Dac biii GATEi i TRi se programeazla nivel logic 1, comanda se realizeaz cu semnalul conectat l

    intrarea INTi a microcontrolerului.Procesele de numrare/temporizare evolueaz n sensu

    creterii coninutului registrului numrtor. La depirea valormaxime corespunztoare capacitii numrtorului, bitul indicatode depire TFi din registrul TCON este poziionat la nivel logi1 semnaliznd o cerere de ntrerupere. Coninutul numrtorulu

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    65/77

    65

    devine zero sau se ncarc cu o valoare programat n funcie dmodul de lucru al circuitului numrtor/temporizator. Bituindicator de depire se poziioneaz la nivelul logic 0 dupacceptarea cererii de ntrerupere de ctre logica de control.

    Exist 4 moduri de lucru n funcie de modul de utilizare a

    registrelor TLi i THi. Selecia modului de lucru se realizeaz prinprogramarea biilor M1 i M0 (TMOD.1, TMOD.0) pentru N/T0 sM1 si M0 (TMOD.5, TMOD.4) pentru N/T1.\

    n modul 0 registrul numrtor este de 13 bii format dinregistrul TH i cei mai puin semnificativi 5 bii ai registrului TL.

    !

    Coninutul registrului astfel obinut este incrementat pn lvaloarea maxim. Urmtoarea incrementare duce la anulareconinutului numrtorului.

    n modul 1 registrul numrtor este de 8 bii format diregistrul TL ca n fig. urmtoare:

    Reg. TLTL.4 TL.0 Reg. TLTH.7 TH.0

    TFReg. TL

    TL.7 TL.0

    Reg. TLTH.7 TH.0

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    66/77

    66

    La depirea capacitii de numrare, registrul TL se ncarc cuconinutul registrului TH. Accest mod de lucru este util pentrutemporizri cu valori programabile. Durata temporizrii este datde perioada cu care apar depiri ale capacitii de numrare.Rezult c durata temporizrii este dat de:

    )](256[12

    0

    THf

    T

    n modul de lucru 3 cele dou circuite dnumrare/temporizare opereaz n mod diferit. Circuitul N/T

    conine ca numrtor registrul TL0. n plus registrul TH0 estinclus ntr-o structur de temporizator care utilizeaz biii TR1 TF1 corespunztori circuitului N/T1 n celelalte moduri de lucru.

    Prin programarea circuitului N/T0 n modul 3 i a circutuluiN/T1 n modurile 0, 1 sau 2, comutatorul K2 este cuplat indiferentde circuitul de comand. Blocarea procesului de numrare se poate

    TR1TMOD.6

    TL.0TL.4

    TL.Re

    g

    TH.0TH.7

    TH.Re

    g

    TF1

    TCON.7

    REG TH0Cerere

    ntrerupere

    f0/12 K

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    67/77

    67

    face prin programarea modului 3 pentru circuitul N/T1. CircuitulN/T1 n modul 3 nu poate efectua cereri de ntreruperi, iardeclanarea numrtorului 1 se face doar prin programarea in altmod de lucru.

    Portul serial al microcontrolerului 8051

    Este utilizat pentru transferul de informaie ntrmicrocontroler i componentele externe sistemului cu comunicaiserial. Transferul serial al unui cuvnt de la emitor la receptor srealizeaz prin conversia paralel-serie a cuvntului i apoconversia serie-paralel.

    Comunicaia serial ntre dou echipamente poate realiztransferul de informaie n ambele sensuri alternativ printr-singur linie (comunicaie semiduplex) sau simultan prin dou lini(comunicaie duplex).

    n cazul comunicaiei asincrone, transferul cuvintelor dintr-umesaj se poate realiza la intervale de timp variabile. Un cuvn

    conine o secven de 8 sau 9 bii de date. Transmisia presupunncrcarea succesiv a liniei de comunicaie cu biii corespunztorcuvntului de transmis, cu frecvena de comunicaie fc exprimatn bii/s. Recepia const n testarea periodic a strii liniei dcomunicaie n scopul citirii secvenei de bii de date. Pentrtransferul corect al unui cuvnt este necesar ca receptorul sciteasc starea liniei de comunicaie cu aceeai frecven i faz cu

    care se ncarc biii cuvntului la emisie. Sincronizarea de faz circuitului de recepie cu cel de emisie se realizeaz pe bazfrontului de cdere corespunztor bitului de start. Dup bitul dstart cu nivel logic 0 urmeaz emisia biilor de date (8 sau 9ncepnd cu bitul de semnificaie minim (LSB). Ultimul bit ddate emis poate fi bit de paritate utilizat pentru verificare

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    68/77

    68

    corectitudinii cuvntului recepionat. Dup ultimul bit de daturmeaz un bit de stop cu nivel logic 1.

    Portul serial al microcontrolerului 8051 poate fi utilizat pentrucomunicaie serial asincron de tip duplex prin liniile dtransmisie TXD (P3.1) respectiv recepie RXD (P3.0)Microcontrolerul 8051 are 2 registre interne notate SBUF, unu

    pentru transmisie i unul pentru recepie. Cele dou registre aaceeai adres 99H. Adresarea direct ca i operand surs a adrese99H se refer la registrul SBUF de recepie. Adresarea direct ca operand destinaie a adresei 99H se refer la registrul SBUF dtransmisie. Pentru recepie, portul serial utilizeaz un registru ddeplasare care realizeaz conversia serie paralel a datelor de plinia de recepie. Coninutul registrului de deplasare este transfera

    n registrul SBUF doar dup asamblarea complet a unui octeDup transferul octetului din registrul de deplasare n registrul drecepie SBUF se poate trece la obinerea unui nou octet nregistrul de deplasare nainte de citirea octetului precedent dinregistrul de recepie SBUF. Dac citirea octetului precedent nu srealizeaz nainte de terminarea asamblrii noului octet, rezult

    LSB MSB

    BIT

    START BIT BIT BIT Paritate

    Data.0 Data.7 (opional)Bit

    stop

    1/fc

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    69/77

    69

    pierderea octetului precedent. Portul serial al microcontrolerulu8051 poate funciona n 4 moduri de lucru stabilite prinprogramarea biilor SM0 i SM1 din registrul de control al portuluserial SCON.

    Modul 0Se folosete pentru realizarea unei comunicaii semiduplex

    Astfel, linia RXD se utilizeaz alternativ pentru recepia satransmisia unor secvene de 8 bii de date cu frecvena dcomunicaie 12/0f bii/s (f0frecvena oscilatorului de tact)Semnalul cu frecvena de comunicaie 12/0f este disponibil la lini

    TXD. Declanarea transmisiei se realizeaz prin ncrcarea unuoctet n registrul SBUF. La sfritul transmisiei celor 8 bii de dateportul serial poziioneaz la nivel 1 bitul indicator de ntreruperla transmisie Ti preciznd posibilitatea de ncrcare a unui octet registrul de transmisie. Declanarea recepiei se realizeaz dacbitul de validare a recepiei REN este programat la nivel 1. Lsfritul recepiei celor 8 bii de date, portul serial poziioneaz l

    nivel 1 bitul indicator de ntrerupere la recepie Ri.

    Modur i le de lucru 1, 2, 3 ale portului serial se utilizeazpentru comunicaie asincron de tip duplex. Astfel se realizeaztransmisia prin linia TXD i recepia prin linia RXD a unor cuvintce conin un bit de start cu nivel 0, 8 bii de date i un bit de stopcu nivel 1.

    n modurile 2 i 3, cuvintele conin i un bit cu nivel logiprogramabil ce urmeaz celor 8 bii de date. n modurile 1,2,declanarea transmisiei se realizeaz prin scrierea octetului dtransmis n registrul SBUF. La nceputul transmisiei bitului dstop, portul serial poziioneaz la nivel 1 bitul indicator d

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    70/77

    70

    ntrerupere Ti. Validarea recepiei se face prin programarea la nive1 a bitului de validare recepie REN. Declanarea recepiei unucuvnt se realizeaz de frontul de cdere al bitului de start.

    Dac bitul SM2 (SCON.5) este programat la nivel 0, portuserial poziioneaz la nivel 1 bitul indicator de ntrerupere l

    recepie Ri, la mijlocul intervalului de recepie a bitului de stocorespunztor cuvntului recepionat. Dac bitul SM2 (SCON.5este programat la nivel 1, portul serial poziioneaz la nivel 1bitul indicator de ntrerupere la recepie Ri, numai dac bituurmtor celor 8 bii de date (RB8) are nivel 1.

    Deoarece n modurile 2 i 3, nivelul logic al bitului urmtocelor 8 bii de date poate fi programat la transmisie n TB8, rezultposibilitatea de recepie selectiv in funcie de SM2 a cuvinteloncrcate pe o linie de comunicaie. Acest lucru poate fi folosipentru comunicaii multiprocesor.

    Un cuvnt de comand conine 8 bii de date cu adresa unumicroprocesor din sistem i un bit urmtor cu nivel 1. Un cuvnde date conine dup cei 8 bii de date un bit cu nivel 1.

    Porturile seriale ale microcontrolerelor 8051 din sistem sunprogramate n modurile 2 sau 3 i cu SM2 la nivel 1. Astferecepia unui cuvnt de comand poziioneaz la nivel 1 bitul Rdin fiecare microcontroler.

    Subrutina de ntrerupere analizeaz cei 8 bii ce pot fi dadres. Microcontrolerul ce recunoate propria adres poziioneazSM2 la 0 pentru a recepiona cuvintele de date ce urmeaz

    Celelalte C din sistem meninSM2=1 i nu genereaz ntreruperde recepie.

    n modurile 1 i 3 valoarea frecvenei de comunicaie poate fstabilit prin programare. Pentru aceasta se folosete Timerul 1 cgenerator de frecven de comunicaie programat n modul 2.

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    71/77

    71

    0

    )(

    )]1(256[1232

    2f

    THf

    SMOD

    c

    unde, SMOD este un bit din PCON. De cele mai multe orutilizatorul tie frecvena de comunicaie i dorete s tie valoare

    ce trebuie nscris n TH1.

    c

    SMOD

    f

    fTH

    1232

    22561 0

    )(

    THi trebuie s fie o valoare ntreag. Rotunjind pe TH1 la ntregucel mai apropiat se produce o modificare a frecvenei d

    comunicaie iar utilizatorul trebuie s schimbe valoarea cuarului.Ex:

    biti/sec .7,48071

    1(SMOD)

    MHz12f

    biti/sec .4800

    real0

    c

    c

    fTH

    f

    Dac am dori:

    cuartuluischimbareaimpunesebiti/sec.10416f

    biti/sec .8928249

    5,2491

    0(SMOD)

    MHz12f

    biti/sec .9600

    THI

    1

    0

    TH

    c

    f

    TH

    f

    n modul 2 de lucru al portului serial valoarea frecvenei decomunicaie este:

    09bituldac0Ri

    19bituldac1Ri12SM

    cuvntpt.1Ri02SM

    f64

    2f 0

    )SMOD(

    c

    .

    Comand 8 bii date +1+stop (SM2=1) rec.adr.Date 8 bii date +0+stop (SM2=0) rec.date celcu adr.01C

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    72/77

    72

    (SM2=1) pt. adr. BAD

    Sistemul de ntreruperi al C8051

    Sursele de cereri de ntreruperi pentru 8051C sunt externe

    interne. Sursele externe transmit cererile de ntrerupere prin pin)3.3P(INT1i)2.3P(0INT ai microcontrolerului. Sursele interne d

    ntrerupere sunt circuite de numrare/temporizare 10 /,/ TNTN i portuserial. Cererile de ntrerupere generate de sursele de ntreruperpoziioneaz la nivel 1 biii corespunztori din registrele internTCON i SCON dup cum urmeaz:

    -

    IE0 (TCON.1) si IE1 (TCON.3) pentru ntreruperi externe- TF0 (TCON.5) i TF1 (TCON.7) pentru ntreruperi de lcircuitele de numrare/temporizare.

    - Ri (SCON.0) i Ti (SCON.1) pentru ntreruperi de lportul serial.

    Strile acestor bii indicatori de cereri de ntrerupere suntestate de logica de control a ntreruperilor microcontrolerului

    faza S5P2 a fiecrui ciclu main. Astfel logica de control ntreruperilor identific sursele care solicit ntrerupere i asigurapelul subrutinei de ntrerupere corespunztoare unei surse, concordan cu condiiile de validare i prioritile stabilite pentrsurse prin programare. Strile biilor indicatori de cereri dntrerupere pot fi stabilite prin programare.

    O surs extern poate solicita o cerere de ntrerupere pricomanda pinului 1INTsau0INT cu nivel logic 0 sau cu un front dcdere, n funcie de nivelul logic programat n bitul IT0 sau IT1n cazul variantei de cerere de ntrerupere extern prin nivel, bituIEi urmrete n permanen nivelul logic de comand a intrri

    iINT .

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    73/77

    73

    Astfel, o cerere de ntrerupere indicat prin nivel logic 1 abitului IEi corespunde nivelului logic 0 de comand a pinulu

    iINT , avnd n vedere prezena circuitului inversor. Nivelul logi0 corespunztor unei cereri de ntrerupere extern prin nivetrebuie meninut pn la apelul de ctre microcontroler a subrutine

    de ntrerupere corespunztoare. Comanda liniei iINT la nivel 1trebuie s se efectueze nainte de sfritul execuiei subrutinei dntrerupere corespunztoare, pentru a se evita apelul repetat aacesteia. n cazul variantei de cerere de ntrerupere prin front dcdere, bitul IEi este poziionat la nivel 1 de un front de cderprezent la intrarea iINT . Detecia fronturilor de cdere se realizeazprin eantionarea strii intrrii iINT cu frecvena ciclurilor mainRezult c pentru detecia corect a unui front de cdere estnecesar comanda intrrii iINT cu nivel 1, apoi cu nivel 0fiecare nivel logic trebuind s fie meninut pe o durat cel putiegal cu durata unui ciclu main. Nivelul logic1 din bitul IErezultat ca urmare a deteciei unui front de cdere, se menine pnla apelul de ctre microcontroler a subrutinei de ntreruper

    corespunzatoare, cnd bitul IEi este poziionat la nivel 0 de ctrlogica de control a microcontrolerului.!

    DETECTOR DE FRONTDE CDERE

    IT0TCON.0

    IE0TCON.1

    K1

    0

    1

    TF0

    TCON.5

    INT0

    PIN P3.2

    N/T0

    DETECTOR DE FRONTDE CDERE

    IT1TCON.2

    IE1TCON.3

    K2

    0

    1

    TF1

    TCON.7

    INT1

    PIN P3.3

    N/T0

  • 7/28/2019 Sisteme cu Microprocesoare.pdf

    74/77

    74

    Cererile de ntrerupere de la un circuit dnumrare/temporizare N/Ti0, i=0, 1, sunt generate la depirevalorii maxime corespunztoare capacitii numrtorului, cnbitul indicator de depire TFi se poziioneaz la nivel logic 1

    La apelul subrutinei de ntrerupere corespunztoare, bitul TFi estpoziionat la nivel logic 0 de ctre logica de control ntreruperilor microntrolerului.

    Cererile de ntrerupere de la portul serial sunt generate de lsfritul transmisiei sau recepiei unui cuvnt, cnd biii indicatorde cereri de ntrerupere Ti respectiv Ri se poziioneaz la nivelulogic 1. La apelul subrutinei de ntrerupere corespunztoarestrile biilor Ti i Ri nu sunt modificate de ctre logica de controa ntreruperilor microcontrolerului, astfel subrutina de ntreruperse testeaz biii Ri i Ti pentru determinarea tipului de ntreruper(recepie respectiv transmisie) i apoi se programeaz nivelul login biii Ri i Ti. Sursele de cereri de ntreruperi pentrmicrocontrolerul 8051 sunt mascabile. Astfel validarea sa

    invalidarea acceptrii de ctre microcontroler a cererilor dntreruperi corespunztoare diferitelor surse se pot stabili priprogramarea registrului de validare ntrerupere IE. Invalidaretuturor surselor de cereri de ntrerupere se realizeaz prinprogramarea bitului EA (IE.7). La nivel logic 0. Dac bitul EAeste programat la nivel 1 validarea sau invalidarea surselor dcereri de ntrerupere se programeaz independent pentru fiecar

    surs utiliznd biii de validare a ntreruperilor din