Sunteți pe pagina 1din 10

1.

Memoria Virtuala Exista 2 idei fundamentale, privind functionarea sistemlor cu uprocesor : -pentru executia unui program codul trebuie sa se afle in memoria principala (MP) a sistemului. Daca acesta se afla in alte resurse de memorie programul trebuie transferat in memoria principala si, pe urma executat de up. -operanzii(datele) inainte de a fi prelucrati de instructiuni trebuie sa fie stocati fie in memoria principala fie intr-un registru intern al up -up evoluate utilizeaza principiul organizarii modulare a memoriei sistemului -modulele pot fi segmente sau pagini -segmentele sunt module de memorie de lungime variabila in timp ce paginile sunt module de memorie care au toate aceeasi lungime. In consecinta dimensiunea modulelor de memorie este limitata de dimensiunea memoriei principale, deci de resursele hardware ale sistemului. -in sistemul de calcul, in afara de memoria principala exista si memoria auxiliara (MA) de capacitate mult mai mare decat cea a memoriei principale -desi functional cele 2 tipuri de memorie au acelasi rol, de suport al informatiei, exista diferente in privinta modului de utilizare de catre ucp. Pentru a fi accesata de acesta, continutul MA trebuie intai transferat in memoria principala, ori de cate ori este utilizata de catre up. -principiul MV consta in a considera toate resursele de memorie (p+a) ca pe o memorie unica de foarte mare capacitate, ce ofera programatorului un spatiu virtual (logic) de adrese pt constituirea programelor sau pt stocarea datelor -acest spatiu este mult mai mare decat spatiul adreselor fizice oferit de adresa principala. Astfel spus MV se prezinta programatorului ca o memorie principala de f mare capacitate => spatiul adresabil al unui program nu va fi limitat de capacitatea memoriei principale instalate ci doar de dimensiunea spatiului adreselor virtuale -realizarea conceptului de MV implica existenta unui mecanism pt transferul de blocuri intregi de date intre MA si MP. -transferul de blocuri intre MP si MA trebuie sa fie transparent pt utilizator -implementarea conceptului de MV prin SW nu este folosita practic => procesoarele au si facilitati HW -MV permite userului sa alcatuiasca programele in limitele spatiului adresabil folosind adrese logice in locul adreselor fizice -pt accesarea MP trebuiesc translatate adresele logice in adrese fizice iar acest lucru este realizat de MMU. -realizarea MV necesita executarea transferurilor de blocuri intre MA si MP care implica organizarea informatiei -organizarea este segmentata sau pe pagini -dpdv SW, comanda transferurilor este executata de programe ale SO -translatarea adr.logice in adr.fizice de catre MMU are la baza un tablou al descriptorilor de segment sau pagini din MP. -fiecare intrare in tabloul descriptorilor de segmente are urmaotarea structura (adresa de baza a segm. in MP + dimensiunea segm. +indicatorii de stare+indicatorii de protectie -fiecarui segment ii sunt asociati un nr de indicatori folositi pt protectia programelor si a datelor : P(prezenta) : arata daca segmentul este prezent in MP sau nu, este folosit pt a preveni accesarea falsa de informatii care nu se afla in MP W(write) : este folosit de SO pt a cunoaste daca s-a executat o operatie de scriere in segm. respectiv. A(accesare) : indica SO frecventa de utilizare a informatiilor din segmentul respectiv. -implementarea conceptului de MV presupune realizarea de catre UCP a unor noi functii : extragere cod + citire data + executie instr. + scriere data -ciclul instructiune realizeaza 3 cicli de magistrale C2, operatii de citire si o operatie de scriere - daca toate cele 3 adrese logice exista in MP, MMU translateaza adr.logica in adr.fizica si executia instr. decurge normal -daca una din adresele virtuale nu poate fi translatata (pt ca nu corespunde unui segment existent in MP), executia instructiunii e intrerupta iar SO executa reactualizarea continului MP -deoarece intreruperea executiei programului ca urmare a unei erori de accesare a memoriei poate sa intervina oricand in decursul executiei unei instructiuni, up trebuie prevazut cu un mecanism care sa dea posibilitatea continuarii executiei MV si mecanismele necesare: MMU + organizarea modulara a spatiului de memorie + mecanisme de detectarea si rezolvarea erorilor de accesare a memoriei + existenta SO cu programe de gestionare a memoriei. 4. Caracteristici constructive si functionale ale Microcontrolerelor Un controller este un system folosit pentru a comanda si a prelua stari de un process sau un aspect al mediului inconjurator.La inceput un controller era un echipament de mari dimensiuni,iar dupa aparitia microprocesoarelor controllerele s-au redus.Procesul de minimizare a continuat,toate componentele necesare unui controller incapand pe un chip. Un microcontroller contine:UC,GT la care se adauga din exterior un crystal de cuart,RAM(volatila)ROM/PROM/EPROM,EEPROM(nevolatila),I/O seriale si paralele,convertoare CAD,CDA,etc.Pretul unui microcontroller este redus din cauza cantitatilor mari in care se fabrica,pretul unic aducand cu sine si micsorarea sistemelor de control. Cu un microcontroller se poate realiza un controller integrat(EC);controllerul acesta face parte dintr-un system construit cu un anumit scop,altul decat calcule generale. Pe langa microcontroller,un controller integrat are nevoie pt a-si indeplini functia si de un Hardware suplimentar.Importanta microcontrllerului este dovedita de piata care se afla in continua crestere. Exista microcontrllere pe 4b/8b/16b,iar principalii producatori sunt Intel,AMD,IBM,Motorola Ca intrari se folosesc de regula semnale de la comutatoare sau de la traductoare(de presiune ,de temperature,etc)-Digitale-AnalogiceCele digitale vehiculeazea semnalele discrete,informatia citita fiind informatia care se esantioneaza la momentul citirii liniei respective.Cele analogice vehiculeaza informatiile exprimabile prin functii continue de timp.Citirea acestora de catre microcontroller presupune prezenta unor circuite capabile sa prelucreze aceste informatii,fie comutatoare analogice,fie CAN.Iesirile sunt fie analogice caz in care reprezinta iesiri ale CAN,fie sunt digitale caz in care este memorata pe acestea pana la o noua scriere afisata la un UC.Pot comanda diverse dispozitive electronice si electrice (alarme,motoare,dispozitive de afisare ,etc.) Se poate vedea o prima diferenta fata de PC unde intrarile se fac de regula de la tastatura si iesirile pe monitor sau imprimanta.Pc-ul este folosit pentru a prelucra informatia si a afisa rezultatul pe monitor sau pe hartie,un microcontroller comanda un process.Un element important fara de care microcontrollerul nu poate functiona este programul care se stocheaza in memoria proprie microcontrollerului.Microcontrollerul poate fi privit ca un microprocessor care pe acelasi chip mai contine o memorie si o serie de interfete. 2. Regimul de multiprogramare presupune execuia simultan pe acelai sistem de calcul a mai multor programe sau aplicaii definite fie de acelai utilizator (multiprogramare)

sau fie de diveri utilizatori (funcionare cu utilizatori multipli). Aceste programe pot fi utilizate simultan n cazul unor aplicaii. Dar n MP se mai afl i programele SO, biblioteci de subprograme, etc., care pot fi executate n cadrul programelor de aplicaie, iar pe de alt parte, ntr-un sistem de calcul exist un singur microprocesor (o singur unitate central) care poate executa la un moment dat codurile unui anumit proces. Execuia simultan a mai multor procese se realizeaz prin divizarea timpului (time sharing), adic atunci cnd procesorul este alocat succesiv diferitelor procese. n felul acesta, cu toate c execuia proceselor de ctre microprocesor este serial, ele apar ca fiind executate n paralel de ctre acesta. Se obine un pseudoparalelism n executarea diferitelor procese. Modul de execuie cvasiparalel a proceselor i trecerea de la un proces la altul este prezentat n figura 1. Funcionarea UCP este comutat succesiv de la proces la proces. ntre dou procese consecutive exist un interval de comutare a proceselor. - stri active : - starea de proces n execuie atunci cnd UCP execut codurile procesului respectiv; - starea de proces lansat cnd procesul se afl n coada de ateptare gestionat de SO i ateapt alocarea UCP; - starea de proces n ateptare cnd procesul ateapt crearea unor condiii care s permit reluarea execuiei (de exemplu: apariia unei ntreruperi, executarea unui transfer I/O, etc.). Dup apariia condiiilor procesul reintr n starea de lansare. - stri pasive. Un proces devine creat dup ncrcarea sa n MA (de exemplu, pe disc), prin copiere, editare, etc. Comutarea procesului din starea pasiv n starea de lansare este realizat cu comanda de lansare (RUN). Ca urmare a executrii acestei comenzi, programul intr n atenia SO. Din starea de proces lansat, el poate comuta din nou n starea pasiv la comanda de oprire (STOP). n starea de proces lansat, SO i atribuie un indicator de prioritate i l plaseaz ntr-o coad de ateptare, n vederea alocrii UCP. Aceast operaie este executat de planificatorul proceselor (englez=scheduler) de la nivelul UCP, i este transparent pentru utilizator. La comanda SO, procesul comut n starea de proces n execuie. n aceast stare, UCP este alocat procesului, deci execut codurile acestuia. Timpul de alocare este fixat de SO i este acelai pentru toate procesele. Din starea de proces n execuie, procesul poate comuta n una din urmtoarele stri: napoi n starea de proces lansat cnd intervalul de timp care i-a fost alocat UCP s-a ncheiat; - n starea de proces n ateptare de exemplu, atunci cnd, continuarea execuiei este condiionat de apariia unor condiii. Procesul se blocheaz temporar, iar UCP este alocat altui proces lansat. Dup apariia condiiilor care au generat starea de ateptare, procesul redevine proces lansat, ateptnd alocarea UCP de ctre SO; - n starea de proces creeat - dup ncheierea execuiei, atunci cnd sunt disponibile rezultatele execuiei. Pentru realizarea regimului de multiprogramare, la nivelul SO trebuie s existe programe care s execute funcii speciale. Unul dintre aceste programe este cel de comand al proceselor. Se pune urmtoarea problem: Cum selecteaz acest program procesul care urmeaz a trece n starea de execuie? Activitatea de selecie este una de planificare. Procesele sunt organizate ntr-o coad de ateptare n care ateapt alocarea UCP. n mod frecvent se folosete metoda lansrii n execuie n primul rnd a proceselor care au mai trecut prin aceast stare, i apoi a celorlalte procese. Pentru a realiza comutarea proceselor, la nivelul programului de comand al proceselor trebuie s fie disponibile toate informaiile despre starea proceselor. Operaia de comutare a UCP ntre dou procese are dou faze eseniale: - salvarea contextului procesului ntrerupt; - restaurarea contextului acestuia dup reintrarea n starea de execuie. Problema definirii contextului procesului este esenial pentru implementarea regimului de multiprogramare. Contextul este constituit din ansamblul informaiilor necesare relurii ulterioare corecte a execuiei procesului, la viitoarea alocare a UCP. Informaiile ce caracterizeaz procesul pot fi mprite n trei categorii: - Valorile datelor care se salveaz. Este vorba de coninutul registrelor care se vor afla ntr-o zon considerat nesigur, deoarece prin utilizarea registrelor, coninutul lor poate fi distrus. n aceast categorie intr SP i SR. - Contorul (Numrtorul) programului (PC) care indic prima instruciune de la care este reluat execuia programului. - Coninutul tuturor registrelor care conin informaii despre evoluia procesului, inclusiv coninutul unor registre ale dispozitivelor externe (care sunt unitatea de gestionare a memoriei MMU, coprocesorul aritmetic, etc.). Fiecrui proces i sunt alocate spaii pentru: coduri, date, stiv, blocul de comand al procesului (adic o zon n care sunt stocate toate informaiile necesare pentru gestionarea corect a proceselor pentru SO). Alocarea de spaii separate fiecrui proces este indispensabil unui mediu cu multiprogramare, pentru protecia relativ a proceselor. Realizarea activitilor legate de funcionarea n regim de multiprogramare (comutarea proceselor, planificarea, sincronizarea) numai prin metode SW consum mult timp. n plus, execuia proceselor implic i apeluri ale programelor SO i ale altor programe, care, de asemenea, consum timp (n unele cazuri, mai mult dect procesul de baz). De aceea realizarea regimului de multiprogramare numai prin procedee SW este ineficient. Creterea eficienei implic realizarea unei pri din activitile legate de multiprogramare prin mijloace HW. Microprocesoarele de uz general sunt prevzute cu astfel de faciliti. 3.Caracteristici ale RISC comparativ cu CISC. Arhitectura unitatii centrale de calcul (CPU) este unul din elementele cele mai importante care trebuie avut in vedere in analiza oricarui sistem de calcul. Principalele Concepte luate in considerare si intalnite aici sunt : Arhitectura von Neumann, de tip Harvard, CISC, RISC.

Aproape toate microprocesoarele au la baza realizarii CPU conceptul CISC (complex instruction set computer). Asta inseamna un set uzual de peste 80 de instructiuni, multe dintre ele f puternice si specializate. De obicei multe dintre aceste instr. sunt f diferite intre ele, unele opereaza numai cu anumite spatii de adrese/registre, altele permit numai anumite moduri de adresare. Pentru programatorul de limbaj de asamblare exista unele avantaje prin utilizarea unei singure instructiuni complexe in locul mai multor instr, simple. RISC (reduced isc) este un concept de realizare a CPU care a inceput sa fie utilizat cu succes de ceva timp si la realizarea microcontrolerelor. Prin implementarea unui set redus de instructiuni care se pot executa foarte rapid si eficient se obtine o reducere a complexitatii microcircuitului, suprafata disponibilizata putand fi utilizata in alte scopuri. Caracteristici RISC : arh. Harvard modificata sau vonNeumann + viteza sporita de executie prin implementarea unui pipeline pt instructiuni + set instructiuni ortogonal (simetric) (orice instructiune opereaza cu orice spatiu de adrese(memorie) sau orice registru, instructiunile nu prezinta combinatii speciale, exceptii, restrictii sau efecte colaterale.

5. Caracteristici generale Familia MCS-51 apartine firmei Intel si reprezinta o dezvoltare a familiei anterioare de microcontrolere MCS-48. Familia cuprinde microcontrolere pe 8 biti (8051, 8751, 8031), realizate n tehnologie HMOS (n-channel High performance Metal Oxid Semiconductor), cu ocapsula DIL (Dual In Line) cu 40 de pini, avnd urmatoarele caracteristici tehnice: arhitectura orientata pe acumulator; 4 kocteti memorie de program (ROM) on-chip (nu si pentru 8031); 128 kocteti memorie de date (RAM) on-chip; memoria ROM si RAM cu mecanisme de adresare diferite; adresabilitate de pna la 64kB att pentru RAM, ct si pentru memoria de program, prin extensii de memorie n afara cipului; 4 bancuri de registri n memoria RAM (registri RAM); flaguri definite prin software de catre utilizator; 32 linii de I/O organizate ca 4 porturi de 8 biti (la 8031 - 6 linii I/O); port serial multi-mod de mare viteza; timer/numarator de 16 biti cu doua moduri de functionare; logica de tratare a ntreruperilor cu doua nivele de prioritati; stiva interna pentru stocarea datelor si pentru apelurile de subrutina; multiplicator si divizor hardware ce executa operatiile n 4 microsecunde; detectie a depasirilor la bitul de semn si calcul de paritate; set extins de instructiuni (comparativ cu setul MCS-48); adresabilitate directa pe octet si bit; aritmetica zecimala si binara; operatii logice la nivel de bit (Boolean Operations); compatibilitate cu familia MCS-48; un ciclu de instructiune de o microsecunda la o frecventa a ceasului de 12 MHz; alimentare la Vcc = +5V. elementele constitutive ale microcontrolerului si anume: -Unitatea Centrala de Prelucrare (UCP); -Memoria interna (RAM + ROM); -Porturi de I/O; -Registrele de configurare (cu sufixul CON), de mod (cu sufixul MOD) si stare; -Logica de comanda si control. Toate unitatile functionale sunt conectate la o magistrala interna pe 8 biti (INTERNAL BUS). Aceasta magistrala este conectata cu exteriorul prin porturi de I/O, atunci cnd se doreste extinderea capacitatii de memorie sau I/O n exterior. Conectarea memoriei ROM la busul intern se face cu amplificatoare de sens unic (SENSE AMPS). IR (Instruction Register) reprezinta registrul n care se ncarca instructiunea din memoria program, iar PLA (Programmable Logic Array) este decodorul pentru instructiune (notate cu RI si, respectiv, DI, n Figura 1). Elementele de baz ale UCP sunt: UAL pe 8 bii cu regitri de 8 bii, acumulatorul (A)( conine unul din operanzi, iar dup execuia operaiei conine rezultatul; El este folosit la unele operaii de transfer de date fiind utilizat obligatoriu la operaii de transfer cu memoria RAM extern, la rotaii, calcul al paritii, test cu zero, etc.) registrul de date suplimentar (B), registrul indicatorilor condiionali (PSW) i regitrii cu funcii speciale: SP Stack Pointer (Indicator de stiv), PC Program Counter (Numrtor de program) i DC - Data Counter (Numrtor de date). Registrul PSW (Program Status Word) conine civa bii de stare (indicatori condiionali) care reflect starea curent a UCP. Indicatorii condiionali sunt afectai de execuia unor instruciuni. Registrul PSW trebuie salvat prin program nainte de servirea rutinelor de cerere de ntrerupere alturi de PC i DP: C- flag (indicator) de transport setat hard/soft de anumite instruciuni logice i aritmetice. A- flag (indicator) de transport auxiliar indic transport sau mprumut la/de la nibbelul superior. F0- flag (indicator) definit de utilizator. R0, R1- bii de selecie a celor 4 bancuri de registre din RAM; setai sau resetai software. OV- flag (indicator) de depire a capacitii de reprezentare.

P- flag (indicator) de paritate. Microcontrolerul folosete patru bacuri de regitri situai n memoria RAM, fiecare banc coninnd 8 regitri, notai R0 R7. La un moment dat procesorul lucreaz doar cu registrele din bancul de memorie curent. Instruciunile care adreseaz registrele folosesc 3 bii pentru specificarea registrului. Registrul B este un registru de 8 bii care este utilizat mpreun cu acumulatorul n operaii de mprire i nmulire. El conine al doilea operand, iar dup execuia instruciunii, cei 8 bii mai semnificativi ai rezultatului nmulirii, respectiv restul pentru mprire (ctul se gsete n acumulator). SP (Indicatorul de stiv) este un registru pe 8 bii care indic prima locaie ocupat din vrful stivei. Stiva care poate avea maxim 128 octei. La iniializare SP se ncarc cu adresa 7 astfel c stiva crete de la locaia 8 din RAM. Prin modificarea coninutului SP, dup iniializare, stiva poate fi localizat n orice zon a memoriei RAM. Registrul DP (Data Pointer) de 16 bii servete ca registru de adresare pentru adresa de baz la executarea salturilor indirecte, la instruciunile de adresare a tablourilor, la instruciunile de transfer cu memoria extern. El poate fi folosit att pe 8 bii (se folosesc cele 2 jumti: Low i High), ct i ca registru de 16 bii existnd instruciuni speciale care ncarc i incrementeaz toi cei 16 bii odat, astfel nct tablourile pot fi localizate oriunde n memorie. Registrul PC (16 bii) este contorul de instruciuni. Poate fi folosit i pe 8 bii. El adreseaz instruciunile din memoria ROM, fiind salvat automat n stiv la execuia instruciunilor de apel a subrutinelor i la rspunsul la cererile de ntreruperi, fiind incrementat pentru a apela instruciunea urmtoare sau ncrcat cu adresa de salt, la instruciuni de salt n program. P0, P1, P2 i P3 sunt patru registre buffer pentru porturile I/O corespunztoare. SBUF (Serial Data Buffer Registru de date al portului serial) este format din doi regitri buffer, folosii mpreun cu portul I/O seria, unul pentru transmisie i unul pentru recepie. TH0 (octet superior timer 0), TL0 (octet inferior timer 0), respectiv TH1 (octet superior timer 1), TL1 (octet inferior timer 1) sunt registre folosite de modulele timer 0 i timer Structura sistemului de interfee de intrare/ieire (I/O) i de dispozitive periferice ncorporate deosebete microcontrolerele de celelalte tipuri de microprocesoare. Ea este specific aplicaiilor de tip industrial (achiziie de date, operaii de control i reglare, msur). Structura porturilor este foarte versatil. n cadrul aceleai familii de microcontrolere exist versiuni cu structuri diferite ale sistemului de I/O. Microcontrolerul 8051 conine 4 porturi de I/O bidirecionale, de 8 bii fiecare (P0, P1, P2, P3), care pot fi configurate prin program. Ele sunt folosite pentru extensia memoriei i pentru conectarea dispozitivelor periferice. Transferul datelor prin porturi se face sub controlul programului. Semnificaia acestor linii de I/O este variabil n funcie de destinaia porturilor. De exemplu, pentru adresarea extensiilor de memorie portul P0 multiplexeaz magistrala de date i cea de adrese. La nceputul ciclului de magistral extern 8 bii ai adresei de date referite sunt plasai la ieirea portului P0, dup care urmeaz transferul datei pe aceiai magistral de 8 linii. n cazul referirii unei date din memorie care necesit o adres de 16 bii, cei 8 bii mai semnificativi ai adresei sunt plasai la ieirea portului P2, iar adresa de 16 bii pentru memoria extern fiind obinut prin concatenarea ieirilor porturilor P0 i P2. Cei 8 pini ai portului P3 sunt folosii ca intrri/ieiri de comand cu semnificaiile din urmtoarea figur: RD, WR ieiri pentru semnalele de comand citire/scriere T1/T0 intrri pentru Timer/Numrtor 1, respectiv 0, sau pini de test INT1/INT0 intrri pentru ntreruperi active pe front sau palier negativ TxD linie de transmisie serial pentru P3 configurat n modul UART RxD linie de recepie serial pentru P3 configurat n modul UART Este o interfa de comunicaie serial ce permite transmisia i recepia serial, fullduplex, cu sau fr bit de paritate, cu rate de la 110 baud 31 kbaud. Circuitul este programabil n 4 variante de funcionare: - registru de deplasare pentru extensia dispozitivelor de I/O. - UART de 8 bii. - UART de 9 bii (8 bii date + 1 bit de paritate). - legtura de comunicaie interprocesor n sisteme distribuite la viteza de 187 kbaud. Microcontrolerul 8051 are dou moduri de operare cu consum redus: modul inactiv (IDLE) i modul cu tensiune sczut (POWER DOWN). n modul IDLE oscilatorul rmne n funciune, dar procesorul nu execut nici o instruciune. Timerele i portul serial funcioneaz i orice ntrerupere de la ele produc revenirea la funcionarea normal. Starea intern (numrtorul de program, indicatorul de stiv, coninutul registrelor, etc.) este pstrat. n modul POWER DOWN oscilatorul intern este oprit i toate funciile sunt oprite. Sunt pstrate doar datele din RAM i din registrele interne. Ieirea din aceast stare este realizat prin activarea intrrii RESET. Modurile de lucru cu consum redus pot fi activate prin setarea unor bii de control din registrul SFR PCON: PD - bit pentru modul de lucru POWER DOWN; IDL - bit pentru modul IDLE.

6. Setul de instruciuni Setul de instruciuni al 8051 este destul de regulat, n sensul c majoritatea instruciunilor pot opera cu variabile din spaii de adrese fizice sau logice diferite. El a fost proiectat astfel nct s fie eficient ca dimensiune a codului i ca vitez de execuie. Instruciunile sunt codate cu 13 octei. Practic toate instruciunile se execut n unul sau doi cicli main (1 sau 2 sec la un tact de 12MHz); doar dou instruciuni (MUL, DIV ) sunt executate n patru cicli. Setul de instruciuni cuprinde 111 instruciuni: 49 de un octet, 45 de doi octei i 17 de trei octei. Instruciunile pot fi grupate n 4 categorii: Instruciuni pentru transferul datelor MOV - transfer bit sau octet de la o locaie surs la o locaie destinaie PUSH - incrementeaz SP i transfer octet de la surs n stiv la adresa dat de SP POP - transfer un octet de la adresa dat de SP la o destinaie i decrementeaz SP XCH - schimb coninutul acumulatorului cu coninutul variabilei indicate care poate fi adresat direct sau indirect cu registru XCHD - schimb semicuvntul inferior din acumulator (biii 30) cu cel al unei locaii de memorie RAM intern adresat indirect cu un registru specificat MOVC- ncarc acumulatorul cu un octet de cod sau cu o constant din memoria de program MOVX- transfer un octet ntre acumulator i memoria extern de date MOV DPTR, #data - ncarc data imediat de 16 bii n registrul dublu DPTR. Instruciuni pentru operaii aritmetice INC - incrementeaz operandul cu 1 DEC - decrementeaz un operand cu 1 ADD - adun la acumulator operandul surs ADDC - adun la acumulator opeandul surs mpreun cu transportul din CY DAA - corecia zecimal a rezultatului adunrii operanzilor zecimali reprezentai n cod BCD SUBB - scdere a unui operand din acumulator mpreun cu mprumutul MUL - execut nmulirea fr semn a operandului din acumulator cu operandul din registrul B. Rezultatul pe 16 bii este n B (high byte) i A (low byte) DIV - execut mprirea fr semn a coninutului acumulatorului la coninutul registrului B. Rezultatul este n regitrii A (ctul) i B (restul) Instruciuni pentru operaii logice CLR - reseteaz toi biii din A sau orice bit adresabil direct SETB - seteaz orice bit adresabil direct CPL - complementeaz coninutul lui A, fr a modifica PSW RL - rotaie stnga a acumulatorului cu un rang RLC - rotaie stnga a acumulatorului prin CY RR - rotaie dreapta a acumulatorului RRC - rotaie dreapta a acumulatorului prin CY SWAP - inverseaz semiocteii n A ANL - SI-logic pe octet ORL - SAU-logic pe octet XRL - SAU EXCLUSIV-logic pe octet Instruciuni de control - Apeluri i salturi necondiionate: ACALL - instruciune de apel a unei subrutine atunci cnd adresa de salt este cuprins n 2K ai paginii curente. Cmpul de adres de 11 bii ai instruciunii este concatenat cu cei mai semnificativi 5 bii din PC LCALL - instruciune de apelare care poate specifica oricare adres din spaiul memoriei de 64K RET - transfer controlul la adres de revenire salvat n prealabil n stiv i decrementeaz apoi SP cu 2 AJMP - salt necondiionat la o adres din spaiul 2K, analog cu ACALL LJMP - salt necondiionat la o adres din spatiul 64K, analog cu LCAL SJMP - salt necondiionat scurt n cadrul a 256 octei - Salturi condiionate: JZ - salt dac toi biii din A sunt 0 JNZ - salt dac A cel puin un bit din A este 1 JC - salt dac CY este 1 JNC - salt dac CY este 0 JB - salt dac bitul specificat este 1 JNB - salt dac bitul specificat este 0 JBC - salt dac bitul adresat este 1 i apoi terge acest bit CJNE - decrementeaz operandul surs i pune rezultatul la operandul destinaie; salt dac rezultatul nu este zero RETI - la fel ca RET, dar activeaz i ntreruperile Microcontrolerul accept operanzi de tip bit sau octet i folosete urmtoarele moduri de adresare a datelor:

a) Adresare de tip registru Utilizatorul are acces la 4 bancuri de cte 8 regitri (notai R0R7) de 8 bii, situai la nceputul memoriei RAM (0-1FH), fiecare banc fiind selectat de biii RS1, RS0 din PSW. La un moment dat UCP are acces la un singur banc de regitri, selecia registrului vizat facndu-se cu cei mai puini semnificativi 3 bii din codul instruciunii. Se pot forma astfel instruciuni de un octet. De exemplu, realizarea operaiei de adunare a registrelor R0 i R1 i ncrcarea rezultatului n acumulator poate fi realizat cu secvena: MOV A,R0 ADD A,R1 n limbajul de asamblare 8051, acest mod de adresare este specificat prin utilizarea simbolurilor de forma Rn (cu n = 0 7) sau prin nume simbolice definite anterior ca registre cu directive de tip EQU sau SET. b) Adresare direct (tip octet) Permite adresarea direct a oricror locaii de memorie, porturi I/O sau registre hardware. n formatul instruciunii, octetul care urmeaz dup octetul de cod al operaiei specific adresa locaiei de memorie sau registrul vizat. Un octet suplimentar adugat codului instruciunii specific locaia folosit. Funcie de valoarea celui mai semnificativ bit al acestui octet este selectat unul din dou spaii fizice de memorie. Dac adresa direct este ntre 0 i 127 (00-7FH) este utilizat RAM-ul intern. Dac varianta de microcontroler compatibil 8051 are mai mult de 128 de octei de RAM local (aa cum se ntmpl la 8052 i la majoritatea derivatelor recente), doar primii 128 octei pot fi adresai direct, restul adreselor de memorie RAM pot fi adresate doar indirect cu R0 sau R1 ca pointer sau prin intermediul indicatorului de stiv (SP). De exemplu, secvena: MOV A,30h ADD A,40h MOV 40h,A adun coninutul locaiilor de adres 30H i 40h din RAM i transfer rezultatul n RAM la adresa 40h. Toate porturile I/O i registrele speciale au asignate adrese n intervalul 128-255 (80H0FFH). Cnd adresa direct utilizat este n aceste limite se acceseaz registrele corespunztoare din SFR. Adresarea direct permite ca toate registrele cu funcii speciale s fie citite, scrise sau utilizate ca operanzi. n general aceasta este singura metod folosit pentru accesarea porturilor I/O i a regitrilor speciali. Dac adresarea direct este folosit cu alte adrese dect cele predefinite n lista de registre speciale ale microcontrolerului rezultatul instruciunii este nedefinit. c) Adresare de tip registru indirect Acest mod este destinat n esen manipulrii variabilelor a cror adres fizic (locaie RAM) este determinat, calculat sau modificat dinamic. Situaia apare atunci cnd se manipuleaz adrese de memorie n secven, intrri indexate din tabele aflate n RAM, la operaii cu precizie extins (format de reprezentare pe mai mult de un octet) sau la operaii cu iruri. Pentru adresarea memoriei externe pentru date 8051 utilizeaz dou feluri de adresare indirect. Primul mod folosete registrele R0 i R1 din bancul curent pentru generarea unei adrese de 8 bii care este transferat pe portul P0, adres suficient pentru adresarea porturilor I/O sau pentru arii mici de memorie RAM. Al doilea mod folosete o adres indirect de 16 bii furnizat de registrul DPTR cu care procesorul poate accesa o memorie de date de pn la 64 koctei. n limbajul de asamblare 8051 adresarea indirect este identificat prin simbolul (prefixul) "@" urmat de R0 sau R1 sau un simbol asignat anterior acestora. n limbajul de asamblare al procesorului I-8051 adresarea indirect este reprezentat cu @, ca n exemplul urmtor: MOV A,@R0 ADD A,@R1 d) Adresare imediat Atunci cnd operandul surs este o constant i nu o variabil (instruciunea folosete o valoare cunoscut n momentul asamblrii), constanta respectiv poate fi ncorporat instruciunii prin utilizarea unui octet suplimentar. Valoarea respectiv nu mai poate fi modificat pe parcursul executrii programului. Identificarea adresrii directe a operandului se face cu ajutorul prefixului "#" (diez). Operandul poate fi un ir numeric, o valoare simbolic sau o expresie aritmetic folosind constante (evaluat n momentul asamblrii). Data pe 8 bii urmeaz octetului de cod al operaiei. n limbajul de asamblare datele sunt precedate de semnul #. De exemplu: MOV A,#15 ADD A,#18 Modul de adresare este specificat n codul instruciunii. O instruciune poate folosi mai multe moduri de adresare pentru operanzii surs sau/i destinaie. 2.8 Sistem minimal realizat cu microcontrolerul 8051 Sistemul minimal prezentat n figura 5 urmtoare conine: unitatea central (8051), memoria extern pentru program (EPROM) i extensia de memorie RAM pentru date de 32 K. Magistralele externe pentru adrese i date sunt realizate prin demultiplexarea magistralei comune de adrese/date realizat cu porturile P0 i P2. Magistrala pentru adrese este creat cu ajutorul circuitului basculant bistabil i a semnalului ALE (Address Latch Enable) generat de

microcontroler. Exemplu de aplicaie utiliznd microcontrolerul 8051 Tastaturile alfanumerice constau dintr-o matrice de 8x8 linii, respectiv 8 linii de scanare i 8 linii de recepie ca n figura 6 urmtoare. Fiecare set de linii se conecteaz la unul din porturile microcontrolerului. Prin program se nscrie 0 logic pe liniile de scanare i 1 logic pe liniile de recepie. Apsnd o tast, se conecteaz o linie de scanare la o linie de recepie, rezultnd un 0 logic pe linia respectiv de recepie. Cele 8 linii de recepie sunt trecute printr-o poart SI-logic astfel nct trecerea n 0 logic a oricreia din liniile de recepie va genera o ntrerupere. Se consider c starea celor dou seturi de linii, la apariia ntreruperii, este cea descris anterior. Rutina de deservire a ntreruperii trebuie s identifice care din taste a fost apsat, dac se presupune c dou taste nu pot fi apsate simultan. Starea curent a liniilor de recepie este memorat ntr-un registru intern. Dac o singur tast este apsat, toate liniile de recepie mai puin una (cea la care aparine tasta apasat) vor fi citite ca 1 logic. Dup aceea procesul se inverseaz, adic este nscris 0 logic pe liniile de recepie i 1 logic pe liniile de scanare, iar liniile citite sunt cele de scanare. Dac o singur tast este apsat, numai una dintre aceste linii de scanare va fi citit ca 0 logic. Localiznd unicul nivel logic 0 din fiecare set de linii, se identific tasta apsat. Dac mai mult de dou taste ale matricii sunt apsate simultan, atunci unul sau ambele seturi de linii vor conine mai muli de 0. O subrutin are sarcina de a determina care din cei 8 bii din fiecare set este 0. Dac se apas mai multe taste simultan, nu se va executa nici o aciune. Pentru tastele ce trebuie apsate simultan cu alte taste (ex.: Shift, Alt, Control), nu se face conectarea la liniile matricei. Aceste taste speciale vor fi conectate direct la cte un pin al portului microcontrolerului, n acest mod existnd posibilitatea generrii unei comenzi dac pe lng tasta special se mai apas o tast; mai mult se previne generarea unei ntreruperi la apsarea singular a tastei speciale. n mod normal microcontrolerul va atepta apsarea unei taste, dac nu exist alte activiti pe care trebuie s le rezolve. Generarea unei ntreruperi, ca urmare a apsrii unei taste, scoate microcontrolerul din starea de ateptare. Rutina de tratare a ntreruperii ateapt un interval de aproximativ 30ms pentru ca tasta s fac un contact sigur, dup care identific sursa de ntrerupere (tasta care a fost apsat). Pentru contactele mecanice ale tastelor exist un interval de maxim 30ms n care contactul nu este stabil i deci trebuie s se atepte un interval de timp dup care s se fac citirea corect a tastei apsate. Subrutina care determin care din cei 8 bii din cele dou seturi de linii este 0 i dac mai mult de 1 bit este 0, se numete SCAN. Pentru a utiliza subrutina se ncarc datele de pe linii ntr-o locaie a RAM-ului adresabil pe bit numit LINE i se apeleaz subrutina SCAN. Numrul de bii LINE care sunt 0 este returnat n ZERO_COUNTER. Dac numai 1 bit este zero, numrul su de ordine (poziia: 1...8) este returnat n ZERO_BIT. 7.Familia mcs80196 e produsa de intel si contine uc de 16biti, realizate in capsule cu 40 de pini: -arhitectura e organizata pe registri -memoria ram e organizata ca o arie de 232 registri de 8 biti (fisier de registre) - realizeaza o inmultire pe 16x16 biti in 2-3 microsecunde la o frecventa a ceasului de 12Mhz - realizeaza o impartire de 32 la 16 biti in 4microsecunde, la f=12mhz -are 5 porturi de I/O pe 5b, configurabile SW -poate trata 28 de intreruperi -are un timer de urmarire -are un generator de impulsuri de largime variabila -are o magistrala configurabila la 8 sau 16b -are un port serial full duplex -are un sistem de I/O de mare viteza (HSIV) -are 4 timere pe 16b -un numarator pe 16b care lucreaza prin incrementare/decrementare -un convertor AD pe 16b cu un circuit de esantionare/memorare -are modurile de lucru power-down si idle -un set de instrunctiuni cu 1,2, 3 operanzi care adreseaza date pe bit, octet, cuvant dublu cu semn sau fara semn Structura Interna UCP: -este alcatuita in principal din UAL cu registrii (RALU) si aria de registrii a ram-ului (register file) -fisierul de registre contine 256 registre cu adrese 00-offh, datele continute in acesti registri se sterg in modul power down. -registrele cu adresele 00-17H sunt registre de control al dispozitivelor de I/O denumiti si registrii cu functii speciale (SFR) -UAL cu registrii consta din UAL care opereaza pe 17b din registrul fanioanelor, din PC, din contor de bucla si registre temporare Controlerul pt memorie - este un circuit ce furnizeaza semnalele de comanda pe magistrala si care contine o coada de instructiuni de 4 octeti Circuitul Timer (counter): -ucontrolerul i-80196 are 2 timere pe 16b -include un contor de evenimente, un generator de rate de serializare, un timer de urmarire cu rolul de a reseta sistemul daca apar erori SW Sistemul de intreruperi:exista 28 de surse de intreruperi, respecti 18 vectori de intrerupere HighSpeedInput:poate inregistra momentul de producere al unor evenimente externe cu o rezolutie temporala a 1,33us la 12MHz HighSpeedOutput:genereaza evenimente pe baza numaratoarelor din Timer-1 si Timer-2;aceste evenimente pot fi : semnal de start conversie A/D, reset Timer-2, generare de intarzieri variabile, setarea sau resetarea semnalului de iesire

Circuitul de generare a impulsurilor modulate: poate furniza semnale de tip impuls cu durata variabila sau cu factor de umplere variabil Bloc de conversie A/D: preia semnalul de la iesirea multiplexorului analogic si il esantioneaz cu rata furnizata de convertorul A/D. Interfata de comunicatii seriala: are un mod sincron si 3 moduri asincrone de comunicatie Modurile particulare de functionare powerdown/idle : cu rol de a economisi energia consumata de uc; ambele moduri sunt activate de program; -idle, cpu trece in regim de consum redus, prin decuplarea intrarii de ceas de la generatorul de tact, fara a opri generatorul; toti registrii cpu isi pastreaza datele inscrise inaintea comutarii in modul idle -power down, intreg uc trece in regim de consum redus, prin deconectarea tuturor blocurilor componente de la generatorul de ceas. 8. Sistem de comanda cu microcontrolerul I-80196 Un exemplu de aplicatie care foloseste caracteristice particulare ale microcontrolerului 80196 este sistemul de control a turatiei si directiei motoarelor de pozitionare pentru bratul unui robot industrial. Microcontrolerul cu ajutorul blocului de generare a pulsurilor de largime variabila (PWM) poate controla viteza si pozitia, pentru fiecare motor in parte si poate detecta depasirea conditiilor limita de functionare. Sarcinile pe care trebuie sa le execute sistemul sunt urmatoarele: - obtinerea unei informatii despre pozitia si directia motorului. - controlul vitezei si directiei motorului. - detectia starii de depasire a limitei de buna functionare. - comunicatia cu un dispecer (unitate centrala de control). Pozitia si viteza motorului sunt furnizate de un bloc optic de codare care cu ajutorul a doua pulsuri periodice defazate cu 90 (notate Faza A si Faza B), calculeaza viteza de rotatie si directia motorului. Viteza si acceleratia se calculeaza prin numararea pulsurilor inregistrate intr-o perioada de timp data. Pentru rezolutii mici de masura se genereaza 2 pulsuri la o perioada de revolutie a motorului iar pentru rezolutii mari se genereaza 5000 de pulsuri. Aceasta informatie este furnizata microcontrolerului care ia decizia privind modificarea vitezei sau directiei. Algoritmul de control implementat cu microcontroler este de tip PID (Proportional, Integral, Differential). El se bazeaza pe o informatie proportionala, integrala si diferentiala, prelucrata intr-un sistem cu o bucla de reactie care controleaza eroarea, adica diferenta intre parametrii doriti si cei efectivi ai motorului. Algoritmul PID este tradus in semnale de comanda a motorului prin intermediul blocului PWM. Acest bloc furnizeaza un semnal digital cu factor de umplere variabil care este trecut print-un bloc de conversie digitalanalog, semnalul analogic rezultat fiind cel care controleaza efectiv motorul, care este un motor de curent continuu. Algoritmul PID consta in calculul unor termeni proportionali, integrali respectiv diferentiali care sunt adunati si care controleaza semnalul de modificare a parametrilor de comanda ai motorului, intr-o structura cu reactie. Pentru controlul pozitiei, iesirea (Output), care reprezinta semnalul de control aplicat blocului PWM, se obtine din cei trei termeni ai algoritmului, inmultiti cu factorii de cistig corespunzatori. Iesirea este apoi scalata si este comparata cu valoarea iesirii PWM limita. Daca aceasta limita este depasita, iesirea (Output) este fixata la valoarea limita. Directia de rotatie a motorului este stabilita in functie de semnul iesirii (Output). 9. Functiile de UC pe 8biti cu o arhitectura multiplicata cu magistrala memoriei de date separata de magistrala memoriei pt program. Caracteristici: -arhitectura cu un set redus de instructiuni -moduri de adresare directa, indirecta si relativa -RAM intern -memorie EEPROM sau flash -porturi I/O digitale care suporta curenti mari de I/O -are un timer integrat pe 8b, circuitul de reset, timerul de urmarire -are un mod de economisire a energiei -interfata pt semanul d tact extern Arhitectura interna: -uc din aceasta familie folosesc o arhitectura harvard cu spatii separate pt coduri si pt date - setul de instructiuni e de tip RISC si contine intre 35-80 de instructiuni. -caracteristicile sunt comune Registrii interni: -pot fi grupate in registre speciale (SFR) si registre de uz general -registrii speciali sunt utilizati de uc pt a controla perifericele si functiile interne ale acestuia -nr de registri speciali poate fi diferit in functie de complexitate uc -registri speciali (de optiuni, asociati porturilor de I/O, ai timerelor, de control al IRQ, comutatoarelor AD) I/O : -fiecare tip de I/O are 2 registri asociati : directie si date -registrul de date are acelasi nume cu portul asociat (porta, portb) -datele de 8b pot fi transmise catre un port sau pot fi citite simultan din registrul de date asociat : e posibila citirea sau scrierea individuala a fiecarui pin al portului. -porturile la uc PIC sunt bidirectionale = orice pin poate fi I sau O (registrii tris) - punerea pe 0 logic a unui bit configureaza bitul ca iesire -adresa registrilor de control al porturilor sunt fixe si se afla in aria de adrese a registrilor speciali.

Registrii timerelor : -in functie de model, un uc PIC poate avea intre 1 si 3 timere TMR0: - ca numarator e incrementat de fiecare data cand un impuls e aplicat pinului TOCA1 -ca timer e incrementat de frecventa semnalului de tact -este situat la adresa 01a iar ori de cate ori apare o depasire a acestui registru are loc o intrerupere; pt a preveni o intrerupere trebuie resetat periodic prin program TMR1: - e un timer pe 16 biti - ca timer e incrementat la fiecare puls al frecventei de oscilatie /4 (?) - in mod numarator e incrementat pe fiecare front crescator al intrarii de semnal de tact TMR2: -timer pe 3b -incrementeaza de la 0 pana la valoarea din PR2 Modulator PWM -aditional timerelor , in cazul sistemelor realizate ca uc apare necesitatea de a masura timpul la care se petrecere un eveniment. - la nivelul HW acesta se realizeaza cu ajutorul unui registru de captura a carui valoare e comparata cu valoarea unui timer; cand cele 2 valori sunt egale se genereaza o intrerupere -in cazul uc PIC aceste functii sunt indeplinite de catre modul CCP (Capture/compare/PWH-determinarea factorului de umplere) Convertorul A/D: - permite achizitionarea de semnale analogice direct de catre uc -modul de functionare e controlat cu ajutorul registrilor speciali asociati -rezolutia acestui convertor depinde de tipul de uc ca fiind de 8 sau 16b -pt functionarea convertoarelor a/d e necesara o tensiune de referinta; aceasta e programata cu ajutorul registrului de control si valoarea tipica e de +5V. 10.organizarea memoriei -pic16f84 are 2 blocuri separate de memorie : 1)memoria de program -e de tip flash ce poate fi stearsa si reprogramata cu ajutorul unui programator pe o interfata seriala dedicata -aceasta permite inclusiv reprogramarea uc fara a fi necesara scoaterea lui din circuit -unele uc pic sunt dotate cu memoria de program otp ce pot fi programate o singura data si avand un pret redus se folosesc la produse de serie mica -capacitatea memoriei de program e de 1024 de locatie cu latimea de 14b -memoria de program poate fi programata serial folosint 2 pini ce trebuie sa fie separati de liniile montajului pt a nu aparea erori; 2)memoria de date -consta din memoria EEPROM si RAM. Memoria EEPROM are 64 de locatii de 8b a caror continut nu e pierdut in timpul opririi sursei de alimentare -EEPROM-ul nu e adresabil direct dar e accesat indirect prin registrii EEADR si EEDATA -memoria RAM pt date ocupa 64 locatii. Locatiile s.n. registrii gpr care pot fi accesati indiferent de ce banc e selectat la un moment dat. Registrii cu fuctii speciale (SFR) -ocupa primele 12 locatie din bancurile 0 si 1 - in afara de diviziunea in lungime a registrilor GPR, harta de memorie e de asemenea impartita in 2 bancuri de memorie in latime. - selectia unuia dintre bancuri se face din bitii RP0 si RP1, in registrul Status 11. uc AVR 8biti au la baza un nucleu RISC cu arhitectura harvard. Sunt destinate aplicatiilor simple : controlul motoarelor, controlul fluxlui de informatie pe portul usb, etc. -32 registre de lucru pe 8biti -multiplicator harware -arhitectura harvard a spatiului -frecventa de lucru poate fi controlata prin software de la 0 la 16MHz -timer programabil cu circuit de prescalare -surse de intrerupere interne si externe -timer de urmarire cu oscilator independent -interfata jtag -6 moduri de operare Sleep si powerdown -oscilator integrat RC -procesoarele sunt disponibile in capsule variate, de la circuite cu 8 pini la procesoare cu 68 pini Arhitectura interna (exemplificata pe uc de 8b ATmega 16): -procesorul dispune de un set de 131 de instructiuni si 32 registre de uz general -cele 32 de regsitre sunt direct adresabile de unitatea aritmetica si logica ALU -o instructiune poate acesa 2 registre independente -structura interna contine ALU + registre generale + memorie RAM si EEPROM + porturile I/O de uz general si celelalte blocuri de I/O -memoria flash de program impreuna cu intreg blocul de extragere a instructiunilor/decodare si executie comunica printr-o magistrala proprie, separata de magistrala de date UCP: functia principala a nucleului CPU-AVR este de a asigura executia corecta a programului; pt aceasta nucleul este capabil sa acceseze memoriile, sa execute calcule, sa controleze perifericele si sa prelucreze intreruperile ALU: executa operatiile de prelucrare a datelor Registre de uz general : - fisierul de registre este optimizat pt setul de instructiuni AVR RISC

- procesoarele AVR folosesc un set de 32 instructiuni pe 8biti care pot fi accesate intr-un singur ciclu de tact -fiecare registru are si o adresa in spatiul memorie de date permitand o adresare uniforma -spatiul memoriei flash este impartit in 2 sectiuni, boot + sectiunea de aplicare a programelor -modulele intreruperilor cu registrele de control in spatiul I/O si in status register se afla bitul de intrerupere globala Registrul de stare (SREG): -contine informatii despre ultima operatie aritmetica efectuata de alu - starea registrului este actualizata dupa fiecare executie a unei operatii aritmetice - continutul registrului de stare poate fi salvat prin program la accesarea unei subrutine Stiva: -este folosita pt sotcarea temporara a datelor, pt stocarea variabilelor locale si pt stocarea adreselor de revenire din intreruperi -accesarea stivei se efectueaza cu ajutorul registrului contor de stiva SP, care este actualizat de procesor la fiecare accesare a stivei Executia instructiunilor -CPU AVR combina avantajul arhitecturii harvard a spatiului de memorie si accesul rapid la registre de executie pipeline -procesorul foloseste un pipeline de 2 etaje, unul pt extragerea instructiunilor si altul pt executie -in timp ce o instructiune este executata, o noua instructiune este extrasa din memorie, astfel procesorul furnizeaza un rezultat la fiecare tact, chiar daca o instructiune dureaza mai mult de un tact. 12.Organizarea memoriei : -ATmega 16 AVR are 2 spatii de memorie principala, spatiul pt memoria de date si pt memoria de program -in plus are si o memorie nevolatila EEPROM pt memorarea datelor -toate cele 3 tipuri de memorie sunt adresate liniar Memoria pt programe: -ATmega16 contine o memorie flash pt programe, reprogramabila pe 16kb -memoria flash este organizata pe cuvinte iar spatiul de memorie este impartit in 2 sectiuni pt securitate : sectiunea de program boot si sectiunea pt programe de aplicatii Memoria de date: -este organizata pe octeti -primele 96 de adrese din spatiul memoriei sunt rezervate fisierului de registre iar urmatoarele 1024 locatii sunt dedicate datelor interne SDRAM - memoria SDRAM este accesata cu instructiuni de acces atat direct cat si indirect folosind registrul pointer. -SRAM-ul este folosit si pt constituirea stivei iar accesul la aceasta memorie se face in 2 perioade de tact Memoria EEPROM - toate ucAVR poseda EEPROM folosita pt stocarea constantelor - aceasta este organizata ca un spatiu separat de date in care pot fi citit/scrisi biti individuali - cand se citeste odata din EEPROM, CPU este oprit timp de 4T inainte ca urmatoarea comanda sa fie executata. Sistemul I/O:ucAVR poseda un sistem diversificat de dispozitive I/O adecvate aplicatiilor de comanda, control, reglare, achizitii de date: -ATmega16 dispune de 32 linii de I/O grupate in 4 porturi de 8biti -porturile sunt denumite cu literele A,B, C, D -fiecare pin al unui port poate fi setat individual ca intrare sau iesire fara sa afecteze ceilalti pini -operatiile cu porturile se fac prin intermediul unui set de 3 registre alocate fiecarui port - toate porturile AVR cu functia "citeste-modifica-scrie" atunci cand sunt folosite ca porturi I/O generale digitale - in limbaj de asamblare toti registrii si referintele de bit sunt scrise in forma generala unitatile timer/counter: -ATmega16 poseda 2 unitati timer de 8b si una de 16b -unitatile timer fac posibila cronometrarea precisa a executiei programului, generarea de forma de unda, masurarea intervalelor de timp Modul USART: -efectueaza receptia transmisia datelor de la/catre un dispozitiv periferic cu acces serie -executa conversia serie/paralel a datelor la receptie, respectiv conversia paralel/serie la transmisie Interfata SPI : asigura transferul rapid sincron de date intre uc si dispozitivele periferice Interfata TWI : implementeaza un protocol de comunicatie pe 2 fire permitand interconectarea a 2 pana la 128 dispozitive diferite Convertorul AD: comparatorul analogic : compara 2 marimi analogice si genereaza o cerere de intrerupere cand acestea sunt egale timerul de urmarire:este folosit pt a activa un dispozitiv in caz ca SW-ul este blocat intr-o bucla infinita sau in caz ca executia programului este defectuoasa.

S-ar putea să vă placă și