copiutze uc microcontrolere

11
SUB 1. Memoria virtuala -concept, -functionare, -caracteristici ale uprocesoarelor pentru comanda memoriei virtuale ------------------------------------------ -------------------------------- Concept: Consideram toate memoriile (MP si MA) ca pe un spatiu unic de adrese care ofera utilizarea unui spatiu de memorie denumit logic sau virtual unde pot fi construite blocuri de date mult mai mari decat in mp. Aceste blocuri nu mai sunt limitate de dim MP.MV e vazuta ca o “mp” care ofera un spatiu de adrese mult mai mare decat spatiu memoriei fizice. Pt implementarea conceptului de MV e necesar ca accesul la MV sa fie transparent pt programator, care trb degrevat de utilizarea acestui bloc de date. Cea mai mare parte a informatiei(date) sunt stocate in MA. Apoi sisteml adduce informatii din MA in mp si sistemul incepe sa functioneze. Realizarea mv implica existenta unui mechanism care sa execute transferal de date intre mp si ma. Transeferul de date intre mp si ma e ineficient, de aceea se realizeaza pe blocuri/module; Implementarea conceptului de mv poate fi realizat : soft sau hard. Pentru a fi executat un program de microprocesoare trebuie plasat in memoria principala (memoria de tip semiconductor) Pentru a prelucra datele, trebuie sa fie plasate in memoria principal, operanzii microprocesorului. Microproc evoluate folosesc principiul organizarii modulare: Liniara (spatiu de memorie liniara, pentru microproc simple (<64 octeti)) Modular (blocuri, pt microproc evoluate, blocuri, segmente, pagini) Dimensiunea blocurilor de memorie este limitata de dimensiunea memoriei principale. Este un impediment pentru ca microprocesoarele nu pot sa creeze blocuric de memorie mai mari decat memoria principala. Uneori spatiul memoriei de blocuri este f mic (pt microproc <64 Kocteti) Pentru utilizator ar fi mai comod sa constituie blocuri de date care sa nu tine seama de memoria principala. In structura unui sistem de calcul, in afara de memoria principala, exista alte memorii (memorii auxiliare – este accesata prin intermediul registrului de intrare iesire), ex:discuri magnetice, discuri optice. Memoria principala este, de regula, mai mare. Pt a accesa memoria auxiliara trebuie sa mutam continutul in memoria principala de unde poate fi prelucrata de microproc. Def: conceptul de memorie virtuala – consideram toate memoriile (MP si MA) ca pe un spatiu unic de adrese care ofera utilizatorului un spatiu de memorie denumit logic sau virtual unde pot fi construite blocuri mult mai mari decat in MP. Aceste blocuri nu mai sunt limitate de dimensiunea memoriei principale. MV este vazuta ca o MP care ofera spatiu de adrese mai mare decat spatiul memoriei fizice. Pentru a fi implementat conceptul de MV este necesar ca accesul la MV sa fie transparent pt programator, care trebuie degrevat de utilizarea acestui bloc de SUB 2. Regimul de multiprogramare - concept, - caracteristici, - functionarea microprocesoarelor in regim de multiprogramare ---------------------------------------------------- ------------------ Microprocesorul este un element cu functie simpla (la un moment dat el executa doar o anumita instructiune). Executarea simultana a mai multor aplicatii pe un uP se realizeaza in regim de divizor al timpului, uP fiind alocat succesiv diverselor procese. Se obtine un pseudoparalelism in executarea proceselor. Timpul alocat executarii codului unui anumit proces este dat de SO folosit. Proceselor le sunt asociate prioritati care le sunt calculate dinamic pe baza criteriului de alocare. Procesele care au fost deja lansate au prioritate mai mare. Starile unui proces : In derularea lui, un anumit proces parcurge 2 feluri de stari: active si pasive. Un proces este in stare pasiva atunci cand este creat si incarcat in MAux a uP. Executie - situatie in care codurile procesului ocupa UCP - un proces intra in aceasta stare ca urmare a alocarii procesului respectiv - poate sa iasa din aceasta stare prin dezalocare sau cand este incheiat Proces lansat - intra in aceasta stare in urma comenzii de lansare data de utilizator. El intra intr-o coada de asteptare si SO decide momentul in care procesul intra in executie. Comutarea proceselor Pt realizarea regimului de multiprogramare, la nivelul SO exista programul de selectare a procesului care este comutat in starea de executie din procesele aflate in coada de astept. Metoda lansarii in executie cu prioritatea proceselor care au mai trecut prin aceasta stare. In esenta comutarea proceselor cuprinde 2 faze: - salvarea procesului care iese din starea de ex. - Restaurarea procesului care intra in st de ex. Exista 3 categorii de info care definesc starea unui proces: - Valorile datelor: continutul registrelor care se vor afla intr-o zona nesigura. - PC: Salvarea PC pt continuarea procesului - Continutul tuturor registrelor care contin info despre starea procesorului, nu despre un anumit proces Info care caract starea unui anumit proces sunt salvate intr-o zona dedicata a memo care tb sa existe pt fieare proces zona denumita descriptorul procesului respectiv. Memoria sist cu uP trebuie sa contina zone distincte pt fiecare proces. Alocarea de spatii de memorie pt fiecare proces este obligatorie pt a asigura protectia relativa a proceselor. Implementarea conceptului de multiprogr numai prin metode soft este posibila dar consuma mult timp. uP din gen 3 au fost concepute si cu procedeee hardware. uP nu sunt prevazute cu facilitati pt implementarea planificarii si sincronizarii proceselor, aceste sarcini sunt realizate de S.O. SUB 3. Implementarea conceptului de memorie virtuala la familia de uprocesoare IAPX286/386 - organizarea memoriei virtuale - mecanismul de adresare a memoriei virtuale - mecanismul de protectie a memoriei ----------------------------------------------- -------------------------- Organizarea memorie virtuale In modul protejat, managementul MV este asigurat de MMU, incorporata in CPU. Intrucat sp de adrese logice este independent de MF, alocarea sp de adrese reale la sp de adrese virtuale se face transparent software. Datorita MMU virtuale, sistemul poate schimba dinamic blocuri de cod sau de date intre MP si MA, independent si transparent pt progrm de aplicatie. MV este impartita intr-un anumit nr de segmente virtuale care sunt unitati de mem alocate in MP si transferate in si din MA. Sp adreselor virtuale este organizat in sp de adrese logice alocate pt fiecare proces in parte denumite sp de adr locale si un sp de adrese globale care este folosit in comun. Sp adr globale este folosit pt stocarea datelor si progr de sistem incluzand software de sistem, biblioteci de subprogr, suport pt lb de nivel inalt. Sp adr locale contin segm de cod si de date, definite pt fiecare proces in parte. Impartirea sp adr virtuale in AL si AG asigura satisfacerea celor 2 cerinte in reg de multiprogramare: 1. Procesele sunt prevazute cu sp proprii de adrese- ipolarea relativa a proceselor 2. Asigurarea accesului tuturor proceselor la resursele comune ale sistemului care se afla in sp adreselor globale.(nu mai e ipolare rel.) Progr nu are acces la adr fizice geerate intern de uP. Adresarea MV Principiul translatiei din AL in AF este urmatorul: Din tabloul de descriptori uP extrage descript in care se afla adr specificata de pointer. Se afla si adr de baza din MP. Aceasta adresa este insumata cu deplasamentul. uP executa procese carora le coresp sp de adr locale, fiecare avand cate un tablou de descriptori locali. Registrele segment contin descriptorii segm respectiv (1reg pt cod, 1reg pt stiva, 2 reg pt date) Mecanismul de protectie Intr-un sist cu multiprogramare, mecanismele de protectie sunt necesare pt funct corecta. IAPX86xx contine astfel de facilitati care asigura protectia proceselor si izolarea lor. Protectia implica 3 aspecte: 1. Izolarea progr de sistem: SO - date globale 2. Izolarea utilizatorilor intre ei 3. Izolarea tipurilor de date Mecanismele utilizeaza conceptul de ierarhizare a privilegiilor: privilegiu suerior stocarii datelor de sistem si inferior progr definite de utilizator. La familia IAPX 86 – 4 nivele de privilegiere notate: PV0-cel mai priv....PV3-cel mai putin priv. Izolarea se realiz prin ajutorul tabelelor de descriptori. La nivelul 0, progr de sist nu sunt izolate intre ele Tablourile contin entitati numite descriptori ai segm din mem. Adr de baza a seg accesat (24 biti) este obtinuta din tabloul din descriptorul corespunzator. La adresa de baza a seg se adauga deplasamentul de 16 biti pt a forma o adresa fizica a operandlui. Mecanismul de generare a adresei fizice este

Upload: ioana-enache

Post on 22-Oct-2015

15 views

Category:

Documents


1 download

DESCRIPTION

j

TRANSCRIPT

Page 1: Copiutze uC Microcontrolere

SUB 1. Memoria virtuala -concept,-functionare, -caracteristici ale uprocesoarelor pentru comanda memoriei virtuale--------------------------------------------------------------------------Concept:Consideram toate memoriile (MP si MA) ca pe un spatiu unic de adrese care ofera utilizarea unui spatiu de memorie denumit logic sau virtual unde pot fi construite blocuri de date mult mai mari decat in mp. Aceste blocuri nu mai sunt limitate de dim MP.MV e vazuta ca o “mp” care ofera un spatiu de adrese mult mai mare decat spatiu memoriei fizice. Pt implementarea conceptului de MV e necesar ca accesul la MV sa fie transparent pt programator, care trb degrevat de utilizarea acestui bloc de date. Cea mai mare parte a informatiei(date) sunt stocate in MA. Apoi sisteml adduce informatii din MA in mp si sistemul incepe sa functioneze.Realizarea mv implica existenta unui mechanism care sa execute transferal de date intre mp si ma. Transeferul de date intre mp si ma e ineficient, de aceea se realizeaza pe blocuri/module; Implementarea conceptului de mv poate fi realizat : soft sau hard.

Pentru a fi executat un program de microprocesoare trebuie plasat in memoria principala (memoria de tip semiconductor)Pentru a prelucra datele, trebuie sa fie plasate in memoria principal, operanzii microprocesorului.Microproc evoluate folosesc principiul organizarii modulare:

Liniara (spatiu de memorie liniara, pentru microproc simple (<64 octeti))

Modular (blocuri, pt microproc evoluate, blocuri, segmente, pagini)

Dimensiunea blocurilor de memorie este limitata de dimensiunea memoriei principale. Este un impediment pentru ca microprocesoarele nu pot sa creeze blocuric de memorie mai mari decat memoria principala. Uneori spatiul memoriei de blocuri este f mic (pt microproc <64 Kocteti)Pentru utilizator ar fi mai comod sa constituie blocuri de date care sa nu tine seama de memoria principala.In structura unui sistem de calcul, in afara de memoria principala, exista alte memorii (memorii auxiliare – este accesata prin intermediul registrului de intrare iesire), ex:discuri magnetice, discuri optice.Memoria principala este, de regula, mai mare.Pt a accesa memoria auxiliara trebuie sa mutam continutul in memoria principala de unde poate fi prelucrata de microproc.Def: conceptul de memorie virtuala – consideram toate memoriile (MP si MA) ca pe un spatiu unic de adrese care ofera utilizatorului un spatiu de memorie denumit logic sau virtual unde pot fi construite blocuri mult mai mari decat in MP.Aceste blocuri nu mai sunt limitate de dimensiunea memoriei principale.MV este vazuta ca o MP care ofera spatiu de adrese mai mare decat spatiul memoriei fizice.Pentru a fi implementat conceptul de MV este necesar ca accesul la MV sa fie transparent pt programator, care trebuie degrevat de utilizarea acestui bloc de date.Cea mai mare parte a datelor este stocata in MA. Apoi sistemul aduce informatii din MA in MP si sistemul incepe sa functioneze.Realizarea MV implica existenta unui mecanism care sa execute transferul de date intre MP si MA.Transferul unor date intre MA si MP este ineficient de aceea se realizeaza pe blocuri/module.Implementarea conceptului de MV poate fi realizat atat software cat si hardware.Primele sisteme foloaseau softul (metoda lenta). La microproc evoluate (incepand cu generatia 3) in structura microproc au fost introduse facilitati hardware combinate cu elemente soft= sistemul are un spatiu de MP mult mai mare.

Elementele Hard pt MV:In cazul organizarii modulare sunt folosite 2 tipuri de adrese:

Virtual (pointeri) – folosite in programare Fizice – adrese pe care microproc le folosesc pt

a accesa MP.Pt functionarea sistemului cu microproc trebuie sa existe un mecanism. Translaterea adreselor fizice in adrese virtuale este facuta de unitatea de gestionare a memoriei (MMU=Memory Management Unit)Transferul intre MA si MP se realizeaza sub forma de blocuri.Daca in cazul unei prelucrari apar adrese logice (care nu exista in MP), MMU trimite comenzi de transfer in MP.Cand in MP sunt stocate blocuri de informatie care nu mai sunt necesare ele sunt trimise in MA, prin intermediul MMU. Primele tipuri de microprocesoare au folosit blocuri segmentate.Segmentele – pot avea diferite dimensiuni; unitati logice de memorie (acces direct la memorie); pot fi referite de utilizator in program.Microprocesoarele din generatia 4 si 5 folosesc si pagini si segmente = flexibilitate mare a MV.Ex: Intel (segmentele sunt impartite in pagini)Gestionarea MP de MMU si sist de operare implica cunoasterea continutului MP si al continutului MV.Trasnlatarea memoriei virtuale in adrese fizice se bazeaza pe structuri de date denumite “descriptori de segmente/pagina”.Fiecarui segment de coduri/date din MV ii este atasat un descriptor de segment/pagina.

SUB 2.Regimul de multiprogramare

- concept, - caracteristici,- functionarea microprocesoarelor in regim de multiprogramare

----------------------------------------------------------------------Microprocesorul este un element cu functie simpla (la un moment dat el executa doar o anumita instructiune). Executarea simultana a mai multor aplicatii pe un uP se realizeaza in regim de divizor al timpului, uP fiind alocat succesiv diverselor procese.Se obtine un pseudoparalelism in executarea proceselor. Timpul alocat executarii codului unui anumit proces este dat de SO folosit. Proceselor le sunt asociate prioritati care le sunt calculate dinamic pe baza criteriului de alocare. Procesele care au fost deja lansate au prioritate mai mare.Starile unui proces:In derularea lui, un anumit proces parcurge 2 feluri de stari: active si pasive.Un proces este in stare pasiva atunci cand este creat si incarcat in MAux a uP.Executie - situatie in care codurile procesului ocupa UCP

- un proces intra in aceasta stare ca urmare a alocarii procesului respectiv

- poate sa iasa din aceasta stare prin dezalocare sau cand este incheiat

Proces lansat - intra in aceasta stare in urma comenzii de lansare data de utilizator. El intra intr-o coada de asteptare si SO decide momentul in care procesul intra in executie.Comutarea proceselorPt realizarea regimului de multiprogramare, la nivelul SO exista programul de selectare a procesului care este comutat in starea de executie din procesele aflate in coada de astept.Metoda lansarii in executie cu prioritatea proceselor care au mai trecut prin aceasta stare.In esenta comutarea proceselor cuprinde 2 faze:

- salvarea procesului care iese din starea de ex.- Restaurarea procesului care intra in st de ex.

Exista 3 categorii de info care definesc starea unui proces:- Valorile datelor: continutul registrelor care se vor afla intr-o

zona nesigura.- PC: Salvarea PC pt continuarea procesului- Continutul tuturor registrelor care contin info despre starea

procesorului, nu despre un anumit procesInfo care caract starea unui anumit proces sunt salvate intr-o zona dedicata a memo care tb sa existe pt fieare proces zona denumita descriptorul procesului respectiv. Memoria sist cu uP trebuie sa contina zone distincte pt fiecare proces.Alocarea de spatii de memorie pt fiecare proces este obligatorie pt a asigura protectia relativa a proceselor.Implementarea conceptului de multiprogr numai prin metode soft este posibila dar consuma mult timp. uP din gen 3 au fost concepute si cu procedeee hardware.uP nu sunt prevazute cu facilitati pt implementarea planificarii si sincronizarii proceselor, aceste sarcini sunt realizate de S.O.

SUB 3.Implementarea conceptului de memorie virtuala la familia de uprocesoare IAPX286/386- organizarea memoriei virtuale- mecanismul de adresare a memoriei virtuale- mecanismul de protectie a memoriei-------------------------------------------------------------------------Organizarea memorie virtualeIn modul protejat, managementul MV este asigurat de MMU, incorporata in CPU. Intrucat sp de adrese logice este independent de MF, alocarea sp de adrese reale la sp de adrese virtuale se face transparent software. Datorita MMU virtuale, sistemul poate schimba dinamic blocuri de cod sau de date intre MP si MA, independent si transparent pt progrm de aplicatie.MV este impartita intr-un anumit nr de segmente virtuale care sunt unitati de mem alocate in MP si transferate in si din MA. Sp adreselor virtuale este organizat in sp de adrese logice alocate pt fiecare proces in parte denumite sp de adr locale si un sp de adrese globale care este folosit in comun.Sp adr globale este folosit pt stocarea datelor si progr de sistem incluzand software de sistem, biblioteci de subprogr, suport pt lb de nivel inalt.Sp adr locale contin segm de cod si de date, definite pt fiecare proces in parte.Impartirea sp adr virtuale in AL si AG asigura satisfacerea celor 2 cerinte in reg de multiprogramare:

1. Procesele sunt prevazute cu sp proprii de adrese- ipolarea relativa a proceselor

2. Asigurarea accesului tuturor proceselor la resursele comune ale sistemului care se afla in sp adreselor globale.(nu mai e ipolare rel.)

Progr nu are acces la adr fizice geerate intern de uP.Adresarea MVPrincipiul translatiei din AL in AF este urmatorul:Din tabloul de descriptori uP extrage descript in care se afla adr specificata de pointer. Se afla si adr de baza din MP. Aceasta adresa este insumata cu deplasamentul.uP executa procese carora le coresp sp de adr locale, fiecare avand cate un tablou de descriptori locali. Registrele segment contin descriptorii segm respectiv (1reg pt cod, 1reg pt stiva, 2 reg pt date)Mecanismul de protectieIntr-un sist cu multiprogramare, mecanismele de protectie sunt necesare pt funct corecta. IAPX86xx contine astfel de facilitati care asigura protectia proceselor si izolarea lor.Protectia implica 3 aspecte:

1. Izolarea progr de sistem: SO - date globale2. Izolarea utilizatorilor intre ei3. Izolarea tipurilor de date

Mecanismele utilizeaza conceptul de ierarhizare a privilegiilor: privilegiu suerior stocarii datelor de sistem si inferior progr definite de utilizator.La familia IAPX 86 – 4 nivele de privilegiere notate:PV0-cel mai priv....PV3-cel mai putin priv.Izolarea se realiz prin ajutorul tabelelor de descriptori. La nivelul 0, progr de sist nu sunt izolate intre ele

Tablourile contin entitati numite descriptori ai segm din mem. Adr de baza a seg accesat (24 biti) este obtinuta din tabloul din descriptorul corespunzator. La adresa de baza a seg se adauga deplasamentul de 16 biti pt a forma o adresa fizica a operandlui.Mecanismul de generare a adresei fizice este prezentat in fig.Tablourile sunt accesate automat de CPU ori de cate ori registrele de segm sunt incarcate cu un nou selector pt a reactualiza continutul descriptorului. Dupa initializarea cu ajutorul fct RESET, procesul comuta in modul real de funct. In acest mod, la orice adresare a mem, procesul genereaza o adr fizica de 20 biti. Mecanismul de calcul al adresei fizice este similar cu cel utilizat de Up 86/88 si anume selectorul de 16 biti este deplsat la stg cu …biti formand adresa de baza a segm din memoria fizica si la aceasta valoare se aduna deplasamentul care este de 16biti.Toate segm pot fi citite/scrise si/sau executatea avand dimens de pana la 64k. Up nu poseda mecanismul de protectie a mem in acest mod.Modul real este folosit de regula pt config fnct procesorului.Pt PE=1 procesorul isi comuta fct pe modul protejat. Numai in acest mod, utilize poate avea acces la facilitatile arhtecturale avute de procesorul ix86, si anume:facilitatea support pt MU, extensia sp de mem, elem pt protectia sist, mecanisme pt fctin regim de multiprogramare.In modul protejat , managmentul MV este asigurat de MMU… intrucat spatial adr logice este independent de MF, alocarea spatiului de adrese reale este transparent software. MV este impartita intr-un anumit de segmente virtuale care sunt unitati de mem allocate in spatial mem principale si trans in si din MA. Sp adr virtuale este organizat in sp de adr logice allocate pt fiecare process in parte denumite sp de adrese locale si un sp de adr locale care este folosit de comun de toate procesele.Sp adr globale este folosit pt stocarea datelor si prog de system incluzand software de system (SO), biblioteci de subprog.Impartirea sp adr virtuale in sp adr locale si globale asigura satisfacerea celor 2 cerinte necesare? In regim de multiprogramare a procesului.1)

Page 2: Copiutze uC Microcontrolere

SUB 4.Implementarea regimului de multiprogramare lamicroprocesoarele din familia IAPX 286/386 ------------------------------------------------------------------------------Procesorul are facilitati hard pt comutarea proceselor. Procesele sunt izolate intre ele pt a se evita patrunderea. Pt realizarea functiei in regim de multiprogramare, uP IAPX 86 foloseste folosesc struc de date care definesc starea fiecarui proces din sistInfo sunt folos de SO pt gestionarea corecta a proceselor.Aceste struct de date formeaza seg de stare al procesului TSS-Task State Segment. Acesta este constituit din blocul de date de 22 cuvinte. Un nou proces e identificat prin incarcarea in TR a reg de stare a noului proces.Seg de stare contine:

- O parte statica care nu se modifica pe toata durata procesului (selector seg descript locali, pointerii initiali ai stivei de la niv 0-2)

- O parte dinamica ce contine info curente despre evolutia procesului. Se modifica la fiecare comutare a procesului dintr-o stare intr-alta. Aici sunt salvate toate info privind evolutia procesului in momentul in care iese din starea de executie

Descript TSS are 2 stari care sunt specificate in octetul de atribute: IDLE si BUSYComutarea proceselorComutarea unui proces (task switch opperation) poate fi initiata in unul din urm moduri:

1. In urma executiei instr pt transf controlului (JUMP CALL) de tip intersegment, instr care se refera la un TSS)

2. Exec. unei instr de revenire de tip IRET atunci cand indic NT=1. Cand se exec IRET si NT=1 proc exec o revenire lunga, un salt inapoi catre procesul din care a fost initiat procesul curent

3. Comutarea cu ajutorul instr CALL, JUMP de tip intersegment care se refera la o „poarta de proces” (TASK GATE). Aceste porti sunt structuri de date care pot sa execute saltul dintr-un proces in altul.

4. Comutarea unui proces initiat printr-o intrerupere atunci cand pointerul de intrerupere se refera la o poarta de proces din tabloul de descript de intrup

Pt comutarea proces, iAPX 86 nu folos facilitati noi ci foloseste instr curente sau sistemul de intrerupere. Diferenta dintre modul in care se exec intstr este data de poarta de proces sau indic de stare al procesului. In cazul incare comutarea se realiz cu TASK GATE , trabsferul controlului este conditionat de relatiile care tb sa existe intre indic niv de privilegiere. Sunt respectate aceleasi reguli ca atunci cand se trece dintr-un proces intr-altul.Dupa ce accesul la un nou seg de stare a fost validat activit de comutare a procesului implica parcurgerea urmatoarelor etape:

1. uP tb sa identifice modul in care s-a initializat comutarea procesului : prin CALL, JUMP, intrer. (Descriptorul noului TSS este aflat fie direct fie prin intermediul portii de proces

2. Verificarea daca din procesul curent este posibil saltul in noul proces prin verif rel care tb sa existe intre indic.

3. Salvarea starii vechiului proces in seg sau de stare din mem in partea dinamica

4. SO incarca in reg de stare (TR) selectorul descriptorului de stare al noului proces si marcheaza in acest descriptor indic BUSY

5. Incarcarea in uprocesor a o\info care tin de noul proces prin transf info din seg de stare

Dupa exec comutarii, procesul nou incepe de la momentul suspendarii comutarii. Cand este exec comutarea unui proces, uP seteaza indic TS din reg de stare. Acest indic este folos de catre coprocesorul aritmetic pt a sti daca contextul de lucru apartine procesului curent sau celui anterior

SUB 5.Microprocesoare RISC -Caracteristici ale uprocesoarelor RISC, -Comparatii cu procesoarele CISC,-Avantaje/dezavantaje ale arhitecturii RISC----------------------------------------------------------------------------------------------Caracteristicile procesoarelor RISC:Pentru a proiecta un processor de tip RISC au fost parcurse mai multe etape:1.etapa de analiza a diverselor categorii de aplicatii in vederea idntificarii aplicatiei cheie.2.definirea unei cai de date optimale pt realizarea acestor aplicatii caracteristice.3.analiza modului in care instructiunile definite la punctul 1 exploateaza calea de date definite.4.completarea setului de instructiuni cu alte instructiuni care nu sunt legate direct de prelucrarea de date.Instructiunile procesoarelor de tip RISC au urmatorul character:Executarea unei instructiuni/ciclu.un ciclu incepe cu extragerea codului sin u final cu depunerea rezultatelor.Spre deosebire de CISC,la care instructiunile dureaza mult,executarea la RISC este proiectata ca sa fie executata intr-un singur ciclu:CPU simplificat,uniformizarea instructiunilor.La RISC au fost excluse toate instructiunile care necesita mai mult de un ciclu pt executie(Au fost excluse instructiuni de multiplicare).Operatiile complexe sunt executate in comtinuare cu secvente de asttfel de instructiuni prin program.-folosirea arhitehturii de tip LOAD-STORE:Aceasta arhitectura are in vedere faptul ca ca instructiunile executate intr-un singur ciclu,operatia de transfer cu memoria trebuiesc evitate-nu pot fi executate intr-un singur ciclu.Procesoarele folosesc instructiuni de tip LOAD-STORE cand trebuie sa lucreze cu memoria.Nu exista instructiuni care sa foloseasca operanzi din memorie.-operatiile cu operanzi tip RISC elimina din setul de register-operatiile complexe sunt executate cu secvente de instructiuni.Chiar cu acest caz datorita faptului ca instructiunile sunt executate intr-un singur tact chiar si asa acestea dureaza putin-Prelucrarea de tip pipe-line:toate procesoare RISC au o arhitectura de tip pipe-line.Avantajul acestei arhitecturi este acelea ca toate instructiunile sunt utilizate intr-un cicluchiar daca realizate instructiunile ocupa mai mult de un ciclu.Procesoarele RISC executa o instructiune/ciclu.Procesoarele furnizeaza un rezultat/ciclu,chiar dc instructiunile dureaza mai mult de un ciclu.-Evitarea unicodarii: instructiunile produse de compilator sunt executate direct de unitatea Hard si sunt interceptate de un cod ca in cazul procesorului CISC.(la cisc fiecarei instructiuni ii este asociat un cod;dup ace instructiunea este decodificata procesorul executa o secventa de cod.)La RISC operatiile sunt executate de unitatea Hardware specializata=>viteza mai mare decat la CISC.-unitatea de comanda cablata-instructiunile au format fix:reducand nr de instructiuni acestea au putu fi codate cu un nr fix de cuvinte;nr de moduri de adresare redus(RISC 1-3 moduri de adresare)-transferul complexitatii de programe catre compilator:datorita existentei simplificate a apartii HARD a procesoarelor RISC si a CPU,o parte din problemele pe care rezolva aceste componente au fost transferate compilatorului.RISC executa operatiile simple,face ca operatiile complexe specifice de limbaj de tip inalt sa fie translatate in limbaj masina.Avantajele procesorului RISC:structura setului de instructiuni simplificate,putine moduri de adresare=>compilatorul actioneaza mai simplu decat daca ar folosi multe moduri de adresare-setul de register:toate instructiunile au operanzi in register=>nr mai mare de register(32-sute de register)Proiectantii au cautat ca aceste register interne sa fie utilizate cat mai uniform.Alocarea registrelor intr-un program inspira 2 aspecte:HARD:registrele interne ale unui microprocessor RISC sunt folosite pe principiul ferestrei de register.Registrele sunt impartite in structuri numite ferestre.SOFT:compilatorul cand interpreteaza considera setul de registreinfinit dupa care procesorul restrange avest set de register la dimensiunea ferestrei alocand ferestrei simboluri fizice in fereastrea folosita.Toate aceste trasaturi avantajeaza un processor RISC complet.In realitate nu exista un processor care sa aiba toate atributele unui RISC complet.Aproape toate procesoarele RISC existente includ in setul de instructiuni instructiuni simple,dar si o instructiune complexa.Toate cele 3 mari categorii de procesoare ,de uz general sunt de tip RISC sau CISC.

SUB 6.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,MotorolaCa 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.

Page 3: Copiutze uC Microcontrolere

SUB 7. MCS51-intel : i8051caracteristici:- realizat in tehnologie M-MOS- are o arhitectura orientata pe acumulator- are in str lui 128 KB de mem ram pt date- rom si ram au mecanisme de adresare diferite-sp de adresare pt mem de program si de date este de 64KB- in memoria ram sunt organizate si bancuri de registre(locatii din mem ram)- utiliz 32 de linii i/o organizate sub forma a 4 porturi- are un port serial de mare viteza cu mai multe moduri de functionare(pe 2 fire)- poseda un timer de 16 biti, este programabil- are o logica de intreruperi cu 2 nivele de prioriitate- stiva este interna (pt stocarea contextului de lucru)- stiva de tip hard – rapida- in str mai exista un multiplicator hard care realiz x&: f rapid- are semnalizator de depasire de scara- proc CISC- mod de adresare redus – direct pe octet si bit- op aritm exec in cod binar compl fata de 2 si BCD- exec operatii boolene - f tact 12 mHz

Arhitectura interna a procesoruluiBlocuri funct.:-CPU(nucleul procesorului);- mem. Interna:128x8 Ram pt date;4Kx8 ROM pt programe;porturi I/O;-registre de configurare si de mod :sunt fol in leg cu porturile I/O;-controllerul.toat unit fctionale sunt conectate la magistr interna care este conect cu extrriorul prin porturi I/OFct.uC este uprogramate cu ajutorul unui circ PLA.CPU   : contine UAL pe 8b,un acummulator conectat la UAL,un reg.pt date (B),un reg la indic conditionali(PSW),reg indic de stiva (SP),reg contor program (PC) si contor de date(PC).Princ. Fct.exec de UAL snt :op. aritm,op exec pe 8b si logice.UAL poate sa stabileasca cond pt exec salturilor,calc adresele operanzilor si permite combinarea autom a operatiilor simple pt a obt instruct complexeUAL exec operatii si pe bit.

Porturile I/O :exista 4 porturi bidirectionale de cate 8b notate cu P,P1,P2,P3 (4x8b) ;semnificatia porturilor i/O este variab in fct de dest porturilor ;pt accesarea extensiilor de mem portul P multiplex adresele cu datele.pt adrese P este fol impreuna cu P2 ;P3 este pe 8 linii cu semnific sep(T1 si T- linii de intr pr TIMER ;INT1,INT-intr de intrrupere ;TxD,RxD-lnii pt comunicatie seriala). Prc are 2 TMER-e numart de 16b notate cu TH,TL ;TH1,TL1.asociate cu ac timere sunt 2 reg :unul care contrlz modul de lucru al timer si altul pt reg de cod.Portul serial+reg de config :utiliz ca interfata de comunicatie de tip FULL DUPLEX ;comunicatia se poate reliz cu sau fara bit de paritate ;viteza de trnsfr poate fi programata ;circ este programabil.Proc I8051 poseda 2 sist de intrruperi:exista 5 surse care pot solicita intreruperea fct proc:1)interfata de comunicatie seriala care pate cere intrerup pt transmisie de date;2)2 suerse prov de la TIMER-e,at cand capacit timerului este depas;3)INT,INT1sosite prin P3 de la disp externe.Toate intrerup sunt mascabile ;reg IE contine bitii de mascare a celor 5 surse ;prioritatea este data d IP.se programeaza orrdinea intreruperilor care sunt vectorizate si care stabilec subrutina de intrerupri ;fiecare sursa este tratata cu o subrutina sep ;vect sunt predef.Setul de instruct si mudori de adresare :Proc este de tip CISC ;instr fol urm moduri de adresare :-de tip reg :adreseaza reg def in mem RAM.adreseaza 4 bancuri de cate 8 reg fiecare.la un mom dat proc poate lucra cu un sg set de reg.pt selectarea reg sunt utiliz 3b in instruc ;-de tip direct :fol un octet ;-reg indirect :se utiliz primele 2 reg din mem RAM ca reg pt adresarea unai loc din RAM.reg este selectat de bitul cel mai putin semnfic din instruct ;-imediata :data este sontinuta cgiar in instruct.EX de instruct :-transefr de date :MOVE,XCG,PUSH,POP ;-de tip aritm :ADD,ADDC,SUBB,DIV,INC,DEC ;-de tip logic :AND,OR,XOR ;-instruct logice.trnsfr la niv de bit in care rolul A este prelua de C ;_trnsfr al continutului prgr :salt in prgr.appel sau revenire din subrutina,control.

SUB 8. 8. Caracteristicile MCS86-I-SO196

Este o familie pe 18 biti, realizate in tehnologia CH-MOS(consum redus, viteza ridicata). Sunt in capsule cu 80 pini.

Caracteristici:-arhit orientata pe registri-registrele proc sunt organiz in mem RAM sub forma unei arii de 232 de biti cnectati direct la RALU-nr de registre este mai mare-operational uP pot fi prez cu ROM(8 octeti, interna) pt stocarea programelor-operatii: x, +(16x16 biti->rezultat 32 biti in mod rapid) fTACT=12 MHz->t=4 uS, :, (cuvinte pe 32b/16b)-are 5 porturi I/O de 8 biti programabile-pt conectarea disp periferice sau pt extensia de memorie-trateaza pana la 28 de surse de intreruperi-TIMER de urmarire-> WATCH DOG detect unor anomalii in functionare-generator de unde PWM(pulse width modulation)- pt comanda surselor digitale-magistrala poate fi configurata sa lucreze pe 8 sau 16 biti-pt comunicatii cu exteriorul are un port serial de tip FULLDUPLEX-un sistem de I/O de mare viteza: HIS;HSO(high speed) pt conectarea unor circ seriale pt comunicare de biti-uC poseda un TIMER programabil 16b-toate I/O sunt programabile-uC utilizeaza alte 4 TIMERE implementate prin soft de 16 biti-numarator de evenimente de 16 biti care lucreaza ata prin incrementare cat si prin decrementare-poseda o interfata CAD(Analog-Digitala)- S|H(sample|hold) si un MUX -multe aplicatii cer consum redus- UC poseda 2 regiuni de lucru:power down, IDLE-set de instructiuni: CISC(nu este ortogonal; instructiunile lucreaza cu 1-3 operqanzi; proc acceseaza date de tip bit, octet, cuvant; operanzii ot fi cu sau fara semn)-utilizeaza principalul pipeline de functionare-HOLD->pt arbitrajul Magistralelor HLDA-in power-down intreg uC este setat prin consum redus=> frecv tactului scade-> puterea scade Inainte ca proc sa fie blocat, salveza contextul de lucru cu registrii Iesire din regimul power-down se realiz cu RESET-in IDLE frecv de lucru scade, dar oscilatorul funct in cont. Iesirea din IDLE prin RESET sau intrerupere.Insteruct lucreaza cu 1-3 operanzi.Acestia sunt adresati folosind mai multe modur: prin registii:direct, indirect, imediat, indexat.Instruct opereaza cu date din fisierul de registii(exclusiv) uP nu are acumulator

Aplicatie: Sistem de comanda a unui motor.

SUB 9.PIC – pic12 - procesor de tip risc- set de instr: 33 de instr- este aproape ortogonal (orice instr poate fi folosita cu orice mod de adresare, putine restrictii)-aproape toate instructiunile sunt executate intr-un ciclu de tact- usor de programat- compatibil cu limbaje de nivel inalt- are un grad mare de integrare- fct la o fv de tact 4MHz- utilizeaza o arhitectura de tip harvard – consta in faptul ca memoria ram si rom este oganizata sub forma de blocuri de date separate si sunt accesate cu magistrale diferite- poate sa transfere in paralel codurile codurile de instructiuni si date- este utilizata o singura mag pt date/coduri- UC executa operatii logice, salt sau ramificare in program, op de control- 4KB de mem pt date prog- 3 indic conditionali: carry, zero, overflow- interfete i/o : sunt programabile cu registrii de configurareMicroproc PIC12preturi mici si usor de utilizat dat arhitecturii RISC.au un nr de 33 de instruct cu un grad mare de ortogonalitate din care maj se exec intr-un sg ciclu.Spatiul mic ocupat in capsula (8 pini) face ac microcontr potrivit aplicatiilor miniatura precum si aplicatiilor casnice ;pt a pute fi reliz cu si mai mare economie de spatiu circ de RESET este integrat.Sunt disp cu EPROM sauEEPROM inclus care fac posibila atat realiz seriilor mari car si a prototipurilor sau aplicatiilor cu elem care se modifica.Ac uC admite o frecv de pana la 4MHz.PIC 12 are o arhitect HARWARD (consta in faptul ca mem ROM si RAM este erganizata sub forma de blocuri de date separate si sunt accesate cu magistrale diferite.uC poate sa transfere in paralel codurile de instruct si de date) cu magistrale diferite pt date si pt instructiuni.Ac lucru permite ca mag de instr sa fie mai mare ( 12b) ca urmare mag instr pot fi de un cuv si pot fi exec intr-un sg ciclu.Unitate centrala este o unitate pe 8b care permite realiz f.aritmetice si booleene(adunare,scadere,deplasare),oper logice cu date care se gasesc in reg de lucru (W) si in oricare reg de uz general.Saltul de instruct are un mare grad de ortogonalitate ceea ce reduce mult simpla necesitate de raliz a unei aplicatii..PC(numaratoru de program) :este un reg de 12b,ceea ce inseamna ca poate adresa un spatiu de 2k de 12 b.Saltul de registre localizat in RAM contine reg cu fctii speciale si reg de uz general.

PIC 16 :carateristici

Are arhitectura aproximativa cu pic 12 ,dar are cateva imbaunatatiri :-are 35 de instruct fata de 33 la pic 12 ;-fmax=20MHz ;-posibilitatea de lucru in intreruperi cu 7 surse interne si una externa. ;-stiva automata cu 8 nivele ;-13 linii de intrare/iesire cu posibilitatea stabilirii individ a sensului de transfer si cu linie de putere pt comanda dir a unui LED ;-mag de instr este de 14b ;-mem ROM este de 512x14cuv pana la 2Kx14cuv ;-mem RAMEste de la 80 la 128 de octeti ;Ac sunt livrate in capsule cu 20 de pini.

PIC 17 :caracteristici

Prezinta urm imbunatariri fata de PIC 16 :-58 de instruct ;-fmax =33MHZ ;-stiva aut cu 16 nivele ;-are 33 de linii de intrare/iesire cu posib stabilirii individ a sensului de transfer si cu o linie de putere pt comanda unui LED ;-mag de instruct este de 16b ;-mem ROM 2048x16 cuv ;-mem RAM 232 de octeti ;-mag de date si adrese sunt accesibile la pini,in ac caz unit centrala poate exec inmultiri ;-sunt admise 11 surse de intreruperi ;-sunt livrate in capsule cu 44 de pini ;SIS de TIMER :-TIMER 0 un numarator de 16b cu sursa de numarare interna sau externa ;-poate lucra cu un reg de prescalare care da tact divizat cu 1/1 pana la 1/256 ;-TIMER 18b care poate lucra cu TIMER 2 pt a forma un TIMER pe 16b.Poate lucra in reg de urmarire a unor ev externe.TIMER-ul are asoc un regpoate lucra in reg de comparare ;-TIMER 2 =TIMER 1 ;-TIMER 216b cu reg asociat.UART poate fi config sa lucreze in mod serial asincron FULL DUPLEX(pt a tranfera date cu un terminal sau un calculator) sau in mod sincron FULL DUPLEX(pt a lucra cu memeorii externe de tip EEPROM)AC micocontrollere din fam PIC nu au nevoie de componente externe pt RESET si pt ceas=>avantaj.

Page 4: Copiutze uC Microcontrolere

SUB 10. Criterii de proiectare--------------------------------------------------------------------------Crit pt aleg. unui uC-poate duce la succesul proiect/esecObiectivul urmarit in alegere e obt. calit. dorite cu un cost cat mai micCercetare/proiectare/constr/testare/compatib elmag. cu mediul reparareSe pune probl. stab. fct. pe care uC tb. sa o indepl. in sist.Alegerea din catalog a unui uC tb facuta in ideea a cost de pe piataDupa stab uC optim, se verifica preturile, daca e disponibil suportul acordat de fabricant, exist. uneltelor de dezv. si stabilit. firmelor constr.Crit. imp. : posib. de a fi gasit pe piata. In ord. imp. criteriile sunt:1) Posib. fol. in aplic. data:-e suficient un uC sau sunt necesare circ. suplim.-limite i/o sunt suficiente (nr. mic. aplic. nu se face cu uC, nr. mare = pret mare)-exista toate interf. solicitate de apl.-capac. de mem. Ram si Rom-uC are viteza suficienta pt. ac. aplic. - se verifica timp necesar rularii, care tb. < intervalul de timp in care react. uC-alim. uC poate fi facuta din aplic.-pretul uC e bun pt aplic respectiv2) Posib. de a gasi pe piata-tb. sa fie disponibil in cant. suficiente-tb. sa fie in prod. actuala + posibi. aprovizionare-disponib. unor accesorii (CNA ..)3)Disponib. suportului de dezv.-asambloare, compilat, analizor logic, emulator4) Suport din partea construct.-docum tehn.-buletin de aplic.-service-rapoarte despre probl. de funct.-soft de utilizare5)Seriozitatea constr.-viteza de livrare-competenta-stab. si fiabilit. uC realiz-nr. de ani si rezult. financiareUn argum. ptr alegerea unui tip de uC e existenta unui modul de eval.Pt. a promova propriile uC, multi furniz. au creeat kituri de eval. care contin placi de eval si un soft minimal cu care se pot pune la punct aplicatiiKit- progr.. pt. calc. + un progr. de transf. al datelor spre placa + asamblor + compilat. simplu - sunt insotite de documentatiemotorola, philips, texas instrum.Fiecare furnizor de uC pune la disp clientilor si un Kit de sort. -> contine o placa de soclu si Hard aferent pt. prog. initiala a uC, interfata + cablul de leg. la calc. + documente progr. Nu contine si un uCPretul >100 dolariAlt. argum. - comoditatea fol. luiex: Motorola 68HC // A8P1 - are in Rom un progr. monitor Pt. punerea in funct e nev. doar de o leg. seriala RS232 cu un calc. (conversie de nivel) si se poate lucra de pe calc. cu monitorul uC, ruland progr. in Ram-ul uC si stocandu;le in EEPROM

Algoritmul proiect. sist. cu uC (156)Proiect. sist. cu uC in vederea siguranteiTend. prod. de a scadea preturile duce la raspand. uC si la crearea a noi aplic.Micsorarea dimens. => creste frecv. de lucru. Cu cat frecv. creste cu atat creste posib. interferentelor elmag. si se pune probl. proiect. in vederea compatib.. elmag.-aplic. poate genera perturbatii sau poate fi susceptibila la perturb. Descop. unor probl. de interferente elmag. in faza finala a aplic. poate fi costisitoare, deoarece s'ar putea sa fie necesara reproiect,-Perturb. sunt generate de armonicile sgn. digitale din circ. Pot fi radiate de buclele de cablaj, care se comporta ca antene sau sunt card. spre sursa de alim. Orice cale inductiva sare capacitiva pe traseu poate provoca vf. de tens./caderi de tens. Pt. un sist. cu uC perturb. Sunt generate de cablaj deoarece circ. integrate au dimens. prea mici pt. a putea emite sgn. cu frecv. cea mai mare e tactul sist. generat cu un circuit oscilat cu quartz.Forma sgn e apr. sinusoidala => cont. de armonica e micl. Daca tactul e adus din ext. se impune atentie pt. a reduce buclele de circ. emisive.Pt un sist. care are mem. ext. cuplate la uC, limite de transf. pot fi emisive deoarece frecv. de tranz. sunt mari. Susceptibilit. e creata de nat.Sincrona a uC. Un tact cu nivel electric suficient poate prod. o eroare.Erori:1) Aplic. are o eroare dar se corecteaza2)Aplic. are o eroare dar o intrerup. / RESEAplic. are o eroareT o corect.3)Aplic. are o eroare si oprind si repornind sist. dispare4)Aplic. are o eroare permanenta datorata unui comp. defecte.

Perform. compatibilit. elmag. poate fi imbunatatite acord. atentie:a) Orice perturb. pe limite de alim. => funct. defectuoasa a sist. => se recomanda utiliz. cablaj. multistrat la care masa si alimentarea sunt plane interne la aplic. cu pret. mic, a cate imp. de a reduce pretul e fol cablajul dublu placat La ac. tipuri de cablaj traseele de masa si tens. de +5v tb. sa fie cat mai late pt. avea o imped. cat mai mica.Decupl. cu condens. a uC tb realiz. cat mai apr. de circuit. In unele aplic. f. ieftine se fol. alim. uC de la retea fara transform. , fol. un redresor monoalternanta.Un circ. critic e cel de generare a tactului. Orice impuls parazit modif. n (niu) =50% si instr. nu se executa corect. O astfel de sit. poate fi rezolv. de ceasul de garda.E imp. protectia pinilor de intrare. Un pin in aer poate comuta daca in vecinatatea lui sunt linii HF. Se recomanda decuplarea cu C (1-10nF) cat mai apr. de circ.b)Fol. e f. utila pt. cresterea sigurantei-e integrat, iar daca nu un ceas de garda ext. poate fi usor realiz. cu un monostabil., redeclansabil. Redecl. tb. facuta in progr. princ., nu in subrutine. Pt. a fi fol. corect, tb. analizata durata progr. pe ramura cea mai lunga.c)Se imbunatat. siguranta in funct. in fct. fara nici un HW suplim.Metode: -reincarcarea period. a reg. care comanda pinii i/o si a celor mai imp. reg.

Readucerea lor la niv. corecte mict. probab. ca o perturb sa se propage in circ:-citirea repetata a sgn. de intrare micsoreaza riscul unei citiri gresite-daca exista locatii in RAm nefolosite dupa fiecare etapa de rulare se scrie un bit in Ram. Inainte de rularea unei rutine critice. Se verifica val. stocata si se executa daca val. din Ram e corecta.-daca exista mem. nefolosita, se incepe cu instr. de salt intr-un loc necunoscut pt. ca un salt neprevaz. in mem. sa fie anulat de saltul in locul cunoscut.

Page 5: Copiutze uC Microcontrolere

Prob 1. Să se programeze procesorul 16F84 astfel încat pe display-ul placii sa fie afisată cifra 7.

LIST P=16F84, R=DECSTATUS EQU 3 ; registrul 03h din memoria de

dateRA EQU 5 ; registrul 05h din memoria de

dateRB EQU 6 ; registrul 06h din memoria de

dateTRISA EQU 0x85 ;registrul 85h din memoria

de dareTRISB EQU 0x86 ;registrul 86h din memoria

de date

RP0 EQU 5 ; bitul 5 din registrul STATUS

ORG 0 ; se defineste RAM-ul începand cu 0h L1 MOVLW 0 ; conţinutul registrului W devine 0 MOVWF TRISB ; se setează TRISB ca port de

ieşire BCF STATUS,RP0 ; se resetează bitul RP0

(RP0=0) pentru selectarea segmentului ;0 din memoria de date

MOVLW 0x07 MOVWF RB ; se trimite aceasta valoarea 0x07 la

port TRISB GOTO L1 END

Prob 2. Să se scrie un program în care să se completeze cu AAh toate registrele de uz general din segmentul 0 de memorie, apoi să le ştearga (sa le completeze cu 0). Dacă ştergerea a fost efectuată se vor aprinde led-urile 0,1,2,3 (corespunzatoare pinilor RB<0>...RB<3>).

LIST P=16F84, R=DEC; definirea RAM-uluiSTATUS EQU 3 ; registrul 03h din memoria de date FSR EQU 4 ; registrul 04h din memoria de dateINDF EQU 0x00 ; adresare indirectaRA EQU 5 ; se definesc variabilele pentru porturiRB EQU 6TRISA EQU 0x85 TRISB

EQU 0x86 RP0 EQU 5 ; bitul 5 din registrul STATUS

ORG 0 ; BSF STATUS,RP0MOVLW 0X00MOVWF TRISB ; portul B

configurat ca port de iesireBCF STATUS, RP0 ;se reseteaza

bitul 5 din registrul STATUS pentru ;scrierea in segmentul 0 de memorie

MOVLW 0x00 ; conţinutul registrului W este incarcat cu 0x00

MOVWF RB ; se asigură ca ledurile sunt stinse

MOVLW 0x0C ; conţinutul registrului W este incarcat cu 0x0C (adresă de la care încep ;registrele generale)

MOVWF FSR ; registrul FSR ia valoarea 0x0c

; se începe adăugarea de valori în registrele generaleADAUGAREG

MOVLW 0xAAMOVWF INDF ; registrul INDF ia

valoare 0xAAINCF FSR ;se va incrementa

registrul FSR pâna va parcurge toata zona de memorie cu registre generale (de la 0x0C la 0x2F)

MOVLW 0x2F; conţinutul registrului W este 0x2F

SUBWF FSR,0 ; se scade din registrul FSR valoarea 0x2F

BTFSS STATUS,2 ; se testează daca bitul 2 din registrul STATUS este 0, daca este 1 se ;sare peste instrucţiunea următoare

GOTO ADAUGAREG

MOVLW 0x0CMOVWF FSR ;

STERGEREGCLRF INDFINCF FSRMOVLW 0x2FSUBWF FSR,0BTFSS STATUS,2

GOTO STERGEREG

MOVLW 0x0FMOVWF RB ; se vor aprinde cele 4 led-uri

END ; sfârşit de program

Prob3. Să se scrie un program care verifică dacă conţinutul registrului de la adresa 0x10 este par sau impar. Dacă este par pe display se va afişa valoarea FF iar daca este impar 11.

LIST P=16F84, R=DECSTATUS EQU 3 ; registrul 03h din memoria de dateRA EQU 5 ; registrul 05h din memoria de dateRB EQU 6 ; registrul 06h din memoria de dateTRISA EQU 5 ;registrul 85h din memoria de dareTRISB EQU 6 ;registrul 86h din memoria de date

RP0 EQU 5 ; bitul 5 din registrul STATUS

ORG 0 ; se defineşte RAM-ul începand cu 0h BSF STATUS,RP0 ; se setează bitul RP0 (RP0=1) pentru

selectarea segmentului 1 ; din memoria de date

MOVLW 0X00 MOVWF TRISB ; se seteaza PORTB ca port de ieşire BCF STATUS,RP0 ; se va scrie in segmentul 0 din memoria de date MOVLW 0X00 MOVWF RB ; pe display se va afisa 00

IMPAR MOVLW 0X11 ; dacă este impar se va afişa 11 MOVWF RB

MOVLW 0X0A MOVWF OPERAND ; operandul de testat RRF OPERAND ; se va roti la dreapta cu carry BTFSC STATUS,0 ;se verifică daca bitul de carry din registru STATUS este 0 sau 1 GOTO IMPAR ; dacă este 1 sare la impar MOVLW 0XFF ;se va afisa FF dacă operandul este par MOVWF RB

END

Prob4. Să se simuleze un numarator zecimal de la 1 la 10.

LIST P=16F84,R=DEC

STATUS EQU 3 ; registrul 03h din memoria de dateRA EQU 5 ;registrul 05 din memoria de dateRB EQU 6 ;registrul 06 din memoria de dateTRISA EQU 0X85 TRISB EQU 0X86 TEMP EQU 0X0CZ EQU 2 ; bitul 2 din registrul STATUS (bitul de zero);RP0 EQU 5 ; bitul 5 din registrul STATUSR0 EQU 0X0DR1 EQU 0X0ER2 EQU 0X0FDATR1 EQU 133DATR2 EQU 250ZECE EQU 0X10

ORG 0 ; se incepe de la adresa 0 BCF STATUS,RP0 ; se va scrie in segmentul 0 de memorie MOVLW 0 MOVWF TRISB ; se va configura portul b ca port de ieşire MOVLW 0X09 MOVWF ZECE ; variabila ZECE va lua valoarea 0X09 MOVLW 0X00 MOVWF TEMP INCEPUT MOVF TEMP,0 ; continutul lui W se va salva in variabila TEMP SUBWF ZECE,0 ; se scade din ZECE conţinutul lui W BTFSC STATUS,Z ; se testează daca W a juns la valoarea 10, dacă ;da sare la ETZECE CALL ETZECE MOVF TEMP,0 ADDLW 0X01 ; adună conţinutul lui W cu 1 MOVWF TEMP ; si îl salvează în variabila TEMP MOVWF RB ;se afişează numărul din W MOVLW 10 ; numară la o secundă CALL DELAY GOTO INCEPUT;DELAY ; DELAY 0.1 SEC MOVWF R0DELAY3 MOVLW DATR1 MOVWF R1DELAY2 MOVLW DATR2 MOVWF R2DELAY1 DECFSZ R2 GOTO DELAY1 DECFSZ R1 GOTO DELAY2 DECFSZ R0 GOTO DELAY3 RETLW 0

ETZECEMOVLW 0X10MOVWF RB

END

Page 6: Copiutze uC Microcontrolere

Prob 5. Să se simuleze un semafor: - led-ul rosu se va aprinde pentru 15 secundeLIST P=16F84,R=DEC;ROSU RB:<0>, GALBEN RB:<2>, VERDE RB:<1>; TRAFFIC LIGHT

STATUS EQU 3RA EQU 5RB EQU 6R0 EQU 0X0CR1 EQU 0X0DR2 EQU 0X0ETRISA EQU 0X85TRISB EQU 0X86RP0 EQU 5 ; bitul 5 din registru STATUS; Definirea variabilelorDATR1 EQU 133DATR2 EQU 250 ORG 0 BSF STATUS,RP0 MOVLW 0 MOVWF TRISB ; PORTB ca port de ieşire BCF STATUS,RP0;BEGIN MOVLW 00000001 MOVWF RB ; se aprinde led-ul rosu MOVLW 150 ; pentru 15 secunde CALL DELAY; MOVLW 000000100 MOVWF RB ; se aprinde led-ul galben MOVLW 20 ; pentru 2 secunde CALL DELAY ; MOVLW 00000010 MOVWF RB ; se aprinde led-ul verde MOVLW 150 ; pentru 15 secunde CALL DELAY

GOTO BEGIN

DELAY ; DELAY 0.1 SEC MOVWF R0DELAY3 MOVLW DATR1 MOVWF R1DELAY2 MOVLW DATR2 MOVWF R2DELAY1 DECFSZ R2 GOTO DELAY1 DECFSZ R1 GOTO DELAY2 DECFSZ R0 GOTO DELAY3 RETLW 0

END