PSM_Curs

27
UTM FCIM gr C-043 1 Introducere: Lucrarea dată prezintă structura unui microcalculator didactic care reali- zează programul calcul a funcţiei arctg x = x-x 3 /3+x 5 /5. Ca unitate central este folosit microcontrolorul Intel 8086 MIN la care sunt conectaţi 64 kB de memorie RAM şi 16 kB memorie ROM. La microcontrolor mai sunt conectaţi 2 drivere din seria 8282 şi 2 drivere din seria 8286 care se foloseşte ăentru a transmite sau recepţiona datele respective, adresele de la microprocessor către memorie, deoarece nivelurile logice între ele sunt diferite. Tensiunile de alimentare ale circuitelor se iau din exterior. Frecventa de lucru este aleasă de un cuarţ conectat la intrările de sincronizare a microcontrolorului. În cazul dat s-a selectat frecvenţa de 12 MHz . Arhitectura microprocesorului Intel 8086 Microprocesorul Intel 8086 este cel mai răspandit microprocesor pe 16 biţi; registrele interne si magistralele de date interne si cea externă sunt de 16 biţi. Caracteristici tehnice principale : multiplexarea in timp a magistralelor de date, adrese si stări, pentru păstrarea capsulei de 40 de pini; magistrala de adrese de 20 de biţi, ceea ce permite adresarea unei memorii de capacitate maximă de 1 MB; singură tensiune de alimentare : + 5 Vcc; frecvenţa semnalului de tact: 4 MHz, 5 MHz sau 8 MHz, in funcţie de variantă;

description

PSM_Curs

Transcript of PSM_Curs

Page 1: PSM_Curs

UTM FCIM gr C-0431

Introducere:

Lucrarea dată prezintă structura unui microcalculator d idact ic care real i - zează programul

calcul a funcţ ie i arctg x = x-x 3 /3+x 5 /5.

Ca uni tate central este fo losi t microcontrolorul Intel 8086 MIN la care sunt conectaţ i 64 kB de

memorie RAM şi 16 kB memorie ROM. La microcontrolor mai sunt conectaţ i 2 dr ivere din

ser ia 8282 şi 2 dr ivere din ser ia 8286 care se fo loseşte ăentru a t ransmite sau recepţ iona

datele respect ive, adresele de la microprocessor către memorie, deoarece nivelur i le logice

între ele sunt d i fer i te.

Tensiuni le de al imentare ale c i rcui te lor se iau din exter ior . Frecventa de lucru este aleasă de

un cuarţ conectat la intrăr i le de s incronizare a microcontrolorulu i . În cazul dat s-a selectat

f recvenţa de 12 MHz .

Arhitectura microprocesorului Intel 8086

Microprocesorul Intel 8086 este cel mai răspandit microprocesor pe 16 biţi; registrele interne si magistralele de date interne si cea externă sunt de 16 biţi. Caracteristici tehnice principale :

multiplexarea in timp a magistralelor de date, adrese si stări, pentru păstrarea capsulei de 40 de pini;

magistrala de adrese de 20 de biţi, ceea ce permite adresarea unei memorii de capacitate maximă de 1 MB;

singură tensiune de alimentare : + 5 Vcc; frecvenţa semnalului de tact: 4 MHz, 5 MHz sau 8 MHz, in funcţie de variantă; compatibilitate cu limbajul de asamblare al microprocesorului Intel-8080 si Intel-8085. setul de instrucţiuni conţine 94 de tipuri de instructiuni, inclusive operaţii aritmetice in cod BCD si operaţii de inmulţire, impărţire; operează cu digiţi (cod BCD, 4 biţi/digit sau 8 biţi/digit), cu octeţi (byte), cu cuvinte de

16 biţi (word), cu cuvinte duble de 32 de biţi (double word), siruri de caractere de 8 biţi (string) si blocuri de date.

acoperă o gamă largă de aplicaŃii datorită celor două moduri de lucru: modul minim pentru aplicaţii simple, in care procesorul generează el însuşi semnalele electrice necesare transferului de date cu memoria si porturile de intrare/iesire si modul maxim, pentru aplicaţii complexe, inclusiv sisteme multiprocesor, in care semnalele de comandă pentru memorie si porturi sunt generate de un circuit specializat, 8288 (controler de magistrale).

2.1 Structura internă Microprocesorul Intel-8086 cuprinde două unităţi funcţionale care lucrează asincron si independent una faţă de cealaltă:

Page 2: PSM_Curs

UTM FCIM gr C-0432

1. Unitatea de execuţie EU (Execution Unit), care efectuează operaţiile conţinute codificat in instrucţiuni.

2. Unitatea de interfaşă cu magistralele (Bus Interface Unit), care are rolul de a extrage instrucţiunile din memorie si de a transfera operanzii intre unitatea de execu ie si memorie sau porturi de

intrare/iesire2.1.1. Unitatea de interfaţă cu magistralele BIU ( Bus Interface Unit ) Realizează conectarea microprocesorului cu exteriorul prin intermediul magistralelor de adrese (20 de linii) si de date (16 linii). De asemenea, unitatea BIU generează semnalele de comandă pentru realizarea operaţiile de citire si scriere cu memoria sau cu porturile. Unitatea BIU realizează extragerea in avans a instrucţiunilor din memorie, pe care le stochează intr-un fisier de instrucţiuni de 6 octeţi, care este de fapt o listă de tip FIFO (First In First Out). Dacă in acest fisier sunt cel puţin două locaţii libere si unitatea de execuţie nu solicită transfer de operanzi cu exteriorul, unitatea BIU va iniţia un ciclu masină de extragere in avans a unei instrucţiuni din memorie, de la adresa următoare. Se asigură astfel un important castig detimp, prin suprapunerea execuţiei cu extragerea instrucţiunilor, operaţiecare necesită timp de acces la memorie si timp de transfer.

2.1.2. Unitatea de execuţie EU (Execution Unit) Extrage succesiv instrucţiunile din fişierul de instrucţiuni, le decodifică pe baza unui microprogram rezident si le execută prin intermediul registrelor de uz general si unităţii aritmetice si logice (UAL). Dacă pentru execuţia unei instrucţiuni este necesar accesul la memorie sau la porturi I/O, unitatea de execuţie transmite către BIU o adresă de 16 biţi (adresă efectivă sau offset) ce va fi utilizată pentru operaţiile de transfer. Unitatea de execuţie dispune de un bloc de comandă care coordonează funcţionarea unităţii. In acest bloc există o memorie ROM in care este stocat microcodul de interpretare si execuţie pentru fiecare instrucţiune.

2.2. Setul de registre Registrele sunt specializate pe funcţii; ele pot fi grupate in 5 categorii:

registre de date (AX, BX, CX, DX); registre index, pentru accesul in interiorul unui segment (SP, BP, DI, SI); registre de segment ( CS , DS , SS , ES ) ; registru indicator de adresă (IP); registru de stare (F).

Primele două categorii alcătuiesc registrele de uz general. Utilizatorul are acces la toate registrele, dimensiunea lor fiind de 16 biţi, egală cu dimensiunea magistralei de date.

Registrele de date. Desi sunt registre de 16 biţi, pot fi utilizate ca două registre de 8 biţi: registrul superior H (High) si registrul inferior L (Low). Oricare din registrele de uz general poate fi utilizat in operaţii aritmetice si logice dar au si funcţii specifice, care nu pot fi modificate de programator (tab.1).

Page 3: PSM_Curs

UTM FCIM gr C-0433

Tabel 1. Funcţiile specifice ale registrelor de uz generalRegistrul Funcţia specifică

AX Inmulţire, impărţire, intrare / iesire pe cuvantAL Inmulţire, impărţire, intrare / iesire pe octetAH Inmulţire, impărţire, pe octetBX Translatare (adresare indexată)CX Contor pentru operaţii cu siruri, bucleCL Contor pentru deplasări, rotaţiiDX Inmulţire, impărţire, intrare / iesire indirectă

Page 4: PSM_Curs

UTM FCIM gr C-0434

Registrele de segment Sunt registre de 16 biţi care conţin adresa de bază a unui segment de memorie. Memoria direct adresabilă de 1 MB necesită o magistrală de adrese de 20 biţi. Registrele interne ale procesorului fiind de 16 biţi, memoria este divizată din punct de vedere logic în segmente de 64 kB, fiecare segment fiind astfel adresabil cu 16 biţi. Procesorul poate să utilizeze simultan atatea segmente de memorie cate registre de segment posedă. Adresele de inceput (de bază) ale celor 4 segmente sunt conţinute in cele 4 registre de segment (Cod, Date, Stivă si de Date suplimentar).

Registrul CS conţine adresa de inceput a segmentului de cod unde se află codurile instrucţiunilor. Pentru a adresa o instrucţiune, microprocesorul combină conţinutul registrului segment de cod CS cu al registrului indicator de adresă, IP, obţinând o adresă fizică de 20 biţi. Registrul DS conţine adresa de inceput a segmentului de date, SS conţine adresa de inceput a segmentului stivă iar ES conţine adresa de inceput a unui segment de date suplimentar. Segmentul de cod conţine instrucţiuni iar ultimele trei segmente de memorie sunt dedicate operanzilor (date). Registrul indicator de adresă IP (Instruction Pointer) Este similar registrului de adresă PC (Program Counter) de la Intel 8080 sau Zilog Z80, indicând adresa instrucţiunii ce se extrage din segmentul de cod. Spre deosebire de PC, IP nu conţine adresa fizică a instrucţiunii ci adresa relativă faţă de baza segmentului de cod. Conţinutul lui IP se combină cu cel al lui CS si astfel se obţine adresa fizică a instrucţiunii. După transferul fiecărui octet in fisierul de instrucţiuni, conţinutul lui IP creste cu o unitate: IP = IP + 1, fiind astfel pregătit pentru adresarea octetului următor din segmentul de cod.

Registrul de stare sau al indicatorilor de condiŃii F (Flags) Acest registru face parte din unitatea aritmetică si logică UAL (sau ALU - Arithmetic and Logic Unit). Desi este un registru de 16 biţi, doar 9 sunt semnificativi, reprezentand indicatorii de condiţii ai procesorului 8086.

Page 5: PSM_Curs

UTM FCIM gr C-0435

Indicatorii se poziţionează in ''0'' sau ''1'' după efectuarea uneioperaţii aritmetice, logice sau după o instrucţiune de control; pot fi testaţiprin intermediul instrucţiunilor condiţionale si se pot lua decizii in funcţie de valoare lor. CF: (Carry Flag) indicatorul de transport; se activează (in ''1'' logic) la apariţia unui bit de transport (depăsirea lungimii normale a rezultatului) la adunare sau de imprumut la scădere; este asociat rezultatului unei operaţii aritmetice sau logice si se comportă ca al noulea bit (b8) al acestuia. PF: (Parity Flag) indicator de paritate; se activează (in ''1'' logic) când rezultatul unei operaţii aritmetice sau logice este un octet cu număr par de unităţi. AF: (Auxiliary Flag) indicator de transport la jumătate; se activează când apare transport sau imprumut in operaţiile aritmetice si logice intre biţii 3 si 4. ZF: (Zero Flag) indicator de zero; se activează (in ''1'' logic) dacă rezultatul unei operaţii aritmetice sau logice este zero.

Fig. 3 Registrul indicatorilor de condiţii la microprocesorul Intel 8086/8088

SF: (Sign Flag) indicator de semn; conţine bitul cel mai semnificativ al rezultatului, deci copiază bitul de semn; va fi ''1'' pentru rezultat negativ si ''0'' pentru un rezultat pozitiv. OF: (Overflow Flag) indicator de depăsire; se activează (in ''1'' logic) cand apare depasirea capacităţii registrului ce conţine rezultatul, ca urmare a unei operaţii aritmetice cu operanzi cu semn; va fi ''1'' când apare transport sau imprumut in/din rangul de semn. TF: (Trap Flag) indicator pentru modul de lucru ''pas cu pas''; dacă este poziţionat in ''1'' logic, microprocesorul nu mai lucrează la viteza dată de semnalul de tact ci in ritmul impus de utilizator. Acest mod de lucru este deosebit de util la depanarea programelor. IF: (Interrupt Flag) indicator pentru controlul intreruperilor; dacă este poziţionat in ''1'' logic (prin instrucţiunea corespunzătoare), sunt validate cererile de intrerupere de tip INTR (mascabile); invalidarea acestora se face prin poziţionarea lui IF in ''0'', caz in care cererile INTR nu vor fi luate in consideraţie. DF: (Direction Flag) indicator de ''direcţie", are efect in operaţiile cu siruri. Dacă este poziţionat in ''1'', după fiecare transfer, adresa operandului din sir se incrementează (creste cu 1) iar dacă este poziţionat in ''0'' adresa se decrementează.

Page 6: PSM_Curs

UTM FCIM gr C-0436

2.3 Structura Nucleului de microsistem cu microprocesorul 8086 în mod minim

Descrierea mudului minim de funcţionare Se instalează dacă intrarea de mod este la nivel ridicat, MN/MX=1. M/IO iesire cu trei stări (Memory / Input-Output); determină o operaţie de citire sau scriere asupra memoriei sau porturilor. Dacă este ''1'' logic, se execută un ciclu maşină de acces la memorie iar dacă este ''0'' logic se execută un ciclu masină de transfer cu porturile de I/O. WR: ieşire cu trei stări (Write) activă in ''0'' logic; determină o operaţie de scriere in memorie sau in porturi. INTA: ieşire cu trei stări (Interrupt Acknowledge), activă in ''1'' logic, cand microprocesorul execută un ciclu masină de acceptare intrerupere. ALE: ieşire activă in ''1'' (Address Load Enable) care se activează când pe magistrala multiplexată este incărcată o adresă. DT/R : ieşire cu trei stări (Data Transmission Reception), care indică sensul transferului pe magistrala de date. Dacă este ''0'' logic, magistrala este orientată către microprocessor (Reception) iar in caz contrar, către sistem (Transmission). DEN: ieşire cu trei stări (Data Enable) care validează transferul datelor către microprocesor.

RD

CLK WRREADYRESET M/IO

DEN

DT/R

AD0-AD15

A16-19

BHE

MN/MX ALE

CLC1

CLC1

8286

8286

8286

8282

DH DL

R A CS

M

CSH ADR CSL

8284

CLC2

DH DL

R A CS

M

CSH ADR CSL

DECODIFICATOR

Page 7: PSM_Curs

UTM FCIM gr C-0437

HOLD: intrare pentru cereri de cedare magistrale. Un dispozitiv inteligent extern solicită controlul total asupra magistralelor in vederea accesului direct la memorie (tehnică DMA - Direct Access Memory). HLDA: ieşire, răspuns la cererea HOLD, confirmând acceptarea acestei cereri, după trecerea magistralelor de adrese, date si control în starea SIR (starea de inaltă impedanŃă sau starea ''a treia'').

2. Memoria principală Este conectată direct la magistralele sistemului pentru a permite o viteză mare de transfer.Din punct de vedere fizic, este formată din mai multe circuite integrate de memorie, care pot fi de tipuri si tehnologii diferite (fig.1). Circuitele integrate de memorie au organizare matriceală: o locaţie de memorie poate fi o linie din matrice sau un element. In primul caz, adresa locaţiei este numărul liniei iar in al doilea caz, adresa locaţiei este formată din numărul liniei si al coloanei.

3.1 Clasificarea circuitelor de memorie Un prim criteriu de clasificare este determinat de durata păstrării informaţiei in memorie. Astfel, datele curente dintr-un program, care se modifică permanent pe durata execuţiei, programele aflate in execuţie, imaginile de pe ecran, se memorează in circuite de memorie RAM (Random Access Memory - memorie cu acces aleatoriu). Memoria RAM poate fi citită si scrisă de către unitatea centrală (microprocesor) de un număr nelimitat de ori; se mai numeste memorie vie. La intreruperea tensiunii de alimentare, informaţia se pierde ''definitiv şi iremediabil'' – este memorie volatilă.

3.2 Caracteristicile unui circuit de memorie

Page 8: PSM_Curs

UTM FCIM gr C-0438

Structura sau modul de organizare: numărul de celule de memorie dintr-o locaţie ( biţi / locaţie) si numărul total de locaţii. Operaţiile de citire si scriere se fac numai cu locaţii.

Capacitatea memoriei: numărul total de locaţii sau cuvinte de memorie. Timpul de acces: intervalul dintre momentul adresării memoriei de către unitatea

centrală si momentul accesului efectiv la date. Puterea consumată, tensiunile de alimentare. Tipul memoriei: RAM, ROM. Tehnologia de realizare: bipolară (TTL, TTL Shottky, ECL), MOS,

CMOS, I2L. Circuitele bipolare sunt foarte rapide dar au densitate mică de integrare. Cele MOS au densitate mare de integrare, putere consumată mică dar sunt mai lente. Tehnologia I2L are performanţe intre cele ale circuitelor bipolare si MOS.

3.3. Memoria EPROM (Erasable and Programmable ROM) Circuitele de memorie EPROM pot fi programate si sterse de un număr de ori (30 - 100), utilizand pentru scriere echipament electronic special, conectat la un calculator. Prin stergeri si reprogramări repetate, creste timpul de stergere (10 min - 60 min). Stergerea se face cu razeultraviolete, motiv pentru care "chip"-urile sunt prevăzute cu o fereastră transparentă de cuarţ. Memoria EPROM de tip MOS stochează informaţia ca o sarcină definitivă intr-o poartă a unui tranzistor MOSFET (transistor MOS cu efect de camp), care are o poartă suplimentară (flotantă) izolată electric (tranzistor cu poartă flotantă si injecţie in avalansă). Poarta flotantă poate fi incărcată (la programare) cu sarcină electric printr-o injecţie de electroni sub acţiunea unui camp electric intens; sarcina negativă acumulată in poarta flotantă modifică tensiunea normală de prag, astfel că tranzistorul selectat cu UG normal, prezintă la iesire 1- logic dacă nu a fost injectat si 0 - logic dacă a fost anterior injectat; astfel, o memorienescrisă (''albă'') are toate celulele in 1 - logic, iar la programare unele celule trec in 0 - logic. Poarta flotantă fiind izolată electric de restul componentelor semiconductoare, sarcina electrică se menţine peste 10 ani, cu o pierdere de cel mult 30%, chiar la temperaturi ridicate.

Fig. 3 Celula de memorie EPROM cu tranzistoare MOS.

3.4. Memoria SRAM de tip MOS Prezintă avantajul unui preş de cost / bit mai redus, densitate ridicată de integrare, dar sunt mai lente, timpul de acces fiind cuprins in domeniul 100 - 500 ns. Celulele de memorie SRAM - MOS sunt circuite basculante bistabile cu funcţionare asincronă, fără impuls de tact.

Page 9: PSM_Curs

UTM FCIM gr C-0439

In varianta cu 6 tranzistoare (fig. 4), T1 si T2 formează un circuit bistabil de tip RS, T3 si T4 au rol rezistiv iar T5 si T6 sunt utilizate pentru conectarea celulei la liniile complementare de date, D,D.

Fig. 4 Celulă de memorie SRAM – MOS

La citire, T5 si T6 sunt deblocate cu "1" pe linia de selecţie (sau de adresă) si astfel informaţia (de 1 bit) conţinută in circuitul bistabil este copiată in liniile de date. Dacă T1 era blocat iar T2 in conducţie, de exemplu (celula in stare ''1''), in linia de date D se transmite un nivel ridicat de tensiune (+5V) = ''1'' logic iar in linia de date D se transmite nivelul (O V) = ''0'' logic. La scriere, după selectarea celulei cu ''1'' logic pe linia de selecţie, se aplică pe liniile de date valorile logice corespunzătoare bitului ce trebuie inscris: pentru inscrierea unui ''1'' logic, D 1,D 0, iar pentru inscrierea unui ''0'' logic, D 0,D 1.

3.5 Organizarea si adresarea memoriei Pentru microprocesorul Intel 8086, memoria este un sir de 1.048.576 octeţi, (1Megaoctet). Toate registrele sale interne de adresare fiind de 16 biţi, nu se pot transfera intern adrese mai lungi de 16 ranguri binare, adică nu se pot adresa spaţii de memorie mai mari de 64 kB. Pentru acoperirea unui spaţiu de memorie de 16 ori mai mare (64 kB x 16 = 1 MB), acesta este divizat logic (in mod virtual) in segmente de maxim 64 kB. Microprocesorul poate lucra simultan cu 4 segmente de memorie, fiecare cu dimensiunea intre 16 octeţi si 64 kiloocteţi, adresele lor de inceput fiind fixate in cele 4 registre segment. In utilizarea oricărei locaţii de memorie se folosesc două feluri de adrese: fizică si logică. Adresa fizică este de 20 de biţi şi identifică in mod unic fiecare byte din spaŃiul memoriei intre 00000 H si FFFFF H. Orice schimb de informaţie intre CPU si memorie utilizează adresa fizică, pe care o transmite prin magistrale de adrese. O adresă logică este formată din doi parametri: adresa de bază si valoarea de offset; pentru orice locaţie, adresa de bază indică adresa primului octet din segmentul de memorie iar valoarea de offset arată distanţa in octeţi de la adresa de bază la locaţia adresată. Adresa de bază şi offset-ul sunt de 16 bişi fiecare. Primul octet dintr-un segment de memorie are offsetul ''0000''.

Page 10: PSM_Curs

UTM FCIM gr C-04310

3. Programarea microprocesorului Intel 8086Microprocesorul Intel 8086 efectueaza prelucrari sub comanda unui program numit si

program de aplicatie. Programul este o secventa de instructiuni aflata in memoria principala.Instructiunea este o comanda elementara data UCP in vederea executarii:- operatiilor asupra unor date (transferuri, aritmetice-logice, deplasari, rotatii, etc.);- comenzilor in vederea selectarii instructiunilor urmatoare, sau trecerii UCP in stari

speciale (ex. asteptarea producerii unor evenimente/semnale externe numite intreruperi);- unor operatii auxiliare.

Instructiunile sint codificate in cod binar, ocupind in memorie 1-6 octeti.Codul instructiunii microprocesorului Intel 8086 este format din:- codul operatiei (primii 1-2 octeti), care specifica (codifica):- tipul operatiei;- tipul operanzilor (8 sau 16 biti, etc.);- sursa operanzilor (interna sau externa);- destinatia rezultatelor operatiilor ALU;- modul de calcul al EA (daca este cazul).- operanzii de tip imediat (daca exista):- date;- adrese.

Etapele dezvoltarii unui program pentru microprocesorul Intel 8086

Desi limbajele de nivel inalt sunt preferate in general datorita posibilitatilor de structurare a programelor, in cazul sistemelor dedicate realizate cu microprocesor, este util si uneori necesar ca o parte sau uneori intregul program sa fie scris in limbaj de asamblare.

Principalul avantaj al programelor scrise in limbaj de asamblare este viteza maxima de executie. Acesta deriva din faptul ca in limbaj de asamblare operatiile limbajului (instructiunile) sunt cele ale microprocesorului.

5. Mersul lucrării :

5.1. Elaborarea şi descrierea structurii nucleului proiectat

Pentru realizarea proiectului de an, am folosit urmatoarele elemente:

Drept microprocessor de baza a fost selectat microprocesorul Intel 8086 MIN. Acesta

permite lucrul cu 19 adrese. Pe lânga semnale de adrese şi date un procesor utilizează şi o serie de semnale de control. Aceste semnale au rolul de a controla fluxul de date şi de a sincroniza microprocesorul cu anumite evenimente externe. Aceste semnale pot fi clasificate după natură lor în următoarele categorii: -semnale de control;

Page 11: PSM_Curs

UTM FCIM gr C-04311

-semnale de intrerupere; -semnale pentru arbitrarea magistralei; -semnale de stare; -semnale diverse; Semnalele de control - indică sensul transferului de date (citire/scriere) precum şi sursa/destinaţia transferului (memorie sau port de intrare/iesire). Semnalele de intrerupere sunt intrări pentru microprocesor şi au rolul de a indica apariţia unor evenimente externe. Microprocesorul anunţă acceptarea unei intreruperi prin activarea unui semnal specific. Semnalele de arbitrare a magistralei sunt necesare pentru reglarea traficului pe magistrala; permit accesul mai multor unităţi master la resursele conectate pe magistrala. Unităţile master sunt cele care pot controla fluxul de date pe magistrală. Unităţi de acces direct la memorie). Unitatile slave sunt cele care pot fi accesate (citite/scrise) de către unităţile master. Semnalele de stare permit monitorizarea funcţionării microprocesorului de către undepanator sau de către alte module intim legate de microprocesor (coprocesor, controloare demagistrala etc.). Într-un sistem cu microprocesor se pot utiliza mai multe magistrale. Avantajulutilizarii mai multor magistrale consta în posibilitatea efectuării unor transferuri în paralel.Utilizarea mai multor magistrale este indicată mai ales în cazul în care într-un sistem sunt mai multe unităţi master.

La realizarea proiectului au fost folosite circuitele:

Intel 8086 MIN – microprocesorul de bază al sistemului;

IS61LV12816AL – circuite de memorie static SRAM de 32K x 8;

AT28BV64B – circuit de memorie programabil EPROM 8K x 8;

8282 – driver pentru conectarea microprocesorului la magistrala de adrese a

memoriei RAM şi ROM, folosit pentru racordarea nivelurilor;

8286 – driver pentru conectarea microprocesorului la magistrala de date a

memoriei RAM şi ROM, folosit pentru racordarea nivelurilor;

8284 – microcontrolor.

5.2. Schema unităţii de memorie SRAM este prezentată în figura următoare:

Page 12: PSM_Curs

UTM FCIM gr C-04312

Circuitul reprezintă o unitate de memorie de 128 kW, cu magistrala de adresă de 17 biţi şi magistrala de adresă de 16 biţi.Pentru a putea fi citită sau scrisă informaţia în memorie, trebuie de selectat cipul cu ajutorul pinului CE (Cipset Enable).Pentru a fi selectat valoarea lui CE=1.

Diagrama de timp pentru citire este dată în următoare figură:

Notă:

Page 13: PSM_Curs

UTM FCIM gr C-04313

Timpul de citire este determinat de suprapunerea semnalelor CE=LOW,UB si/ori

LB=LOW, si WE=LOW.Toate semnalele trebuie sa se afle intr-o stare valida pentrru a fi

initiata scrierea, isa modificarea oricarui dintre ele poate sfirsi ciclul de scriere.

Se pastreaza OE in HIGH minimum 4 ns inainte de a trece WE in LOW pentru plasarea

I/O in starea HIGH-Z.

WE poate fi mentinut in LOW mai multe cicluri de adrese si pinii LB,UB pot fi utilizati pentru controlul functiei de scriere.

Diagrama de timp pentru scriere este dată în următoarea figură:

Diferenţele constau în faptul că este selectat regimul de scrierea datelor în memorie

prin resetarea pinului WE. În timpul scrierii datelor în memorie, la ieşire vom avea starea de

impendanţă înaltă.

Magistrala de adresă a memoriei statice este egală cu a microcontrolorului, deci nu este

nevoie de conectări în plus a adresei. Selectarea regimului de accesare a memoriei are loc prin

semnalele WE şi OE. Dacă se doreşte citirea din memorie, este necesar ca OE să fie egal cu

zero, dacă se doreşte scrierea, atunci WE trebuie să fie zero. Cele două semnale nu pot fi în

acelaşi timp egale cu zero.

5.3. Schema unităţii de memorie EPROM este prezentată în figura

următoare:

Page 14: PSM_Curs

UTM FCIM gr C-04314

Diagramele de timp: la citire:

la scriere:

Page 15: PSM_Curs

UTM FCIM gr C-04315

Citirea din memorie se face în felul următor: Circuitul de memorie AT28BV64B este accesat ca memoria static RAM. Când CE şi OE sunt inferioare şi WE este superior,datele de la locaţia memoriei, care sunt determinate de pinii de adrese, sunt îndrepate spre ieşire. Ieşirele sunt setate într-o impendanţă superioară chiar şi când CE sau OE sunt superioare.

Pentru a transmite toate datele necesare din magestrala de adrese la memoria RAM, am

folosit doua drivere 8286, deoarece fiecare driver 8286 ne permite de a ingloba doar 8

linii de date.

Pentru a transmite toate datele necesare din magestrala de adrese la memoria RAM, am

folosit doua drivere 8282, deoarece fiecare driver 8286 ne permite de a ingloba doar 8

linii de date.

Pentru a controla sincronizarea semnalelor pe magistrala, CPU are nevoie de un

semnal extern de ceas. Circuitul de ceas INTEL 8284, apartinand familiei 8086, in

afara de generarea semnaelor de ceas, dispune si de posibilitatea interfatarii

hardware cu un circuit de initializare (reset) a microprocesorului precum si de un

mecanism pentru inserarea de stari de asteptare —TW — in cadrul ciclului de

magistrala. 8284 necesita conectarea la intrare din exterior a unui cristal de cuart

de frecventa tripla fata de frecventa la care functioneaza 8086 caruia ii furnizeaza

direct semnalul de ceas CLK. In plus fata de iesirea CLK;

Page 16: PSM_Curs

UTM FCIM gr C-04316

Antetul programului.model small ;pentru program se aloca cel putin 64 kb

.code ;intializarea seg de cod

mov si, adr.mem

mov dx,[sij

mov bx.ax ;in reg bx se inscrie valoarea din accumulator

and FOOOH ;inmultirea cu valoarea F00 in hexazecimal

mov cx,12d ;incarcam contorul

et1 ;echiteta de repetare

ror ax ;deplasarea la dreapta

Page 17: PSM_Curs

UTM FCIM gr C-04317

dec cx ;decrementarea registru contor

jnz et1 ;jump la et1 daca fanionul z este diferit de 0

mov dl,ax ;in registru dl se inscie valoarea din acumulator

mov ax,bx ; in accumulator sen carca valoarea din registru

and OFFFH ; inmultim cu valoarea 0FFFh

mov bx,ax

mov ah,dl

add al

mov dh,ah

mov ax,bx ;in reg se inscrie valoarea din accumulator

mul bx

mul bx

div 3 ;impartim la 3

mov cx,dh

et 2: ;echiteta de repetare

ror ax ;deplasarea la dreapta

dec cx

jnz et2 ;jump la et2 daca fanionul z este diferit de 0

sub bx

mov bx,ax

mov ah,dl

mov cx,3

et3:

add dl

dec cx

jnz et3 ;jump la et3 daca fanionul z este diferit de 0

mov dh,ah

mov ax,[si]

and offfh

Page 18: PSM_Curs

UTM FCIM gr C-04318

mov cx,4

et4:

mul ax

dec cx

jnz et4 ;jump la et4 daca fanionul z este diferit de 0

div 5

mov cx,dh

et5:

ror ax

dec cx ;descrementam contorul

jnz et5

add bx

mov bx,ax ;in reg se inscrie valoarea din acumulator

mov ah,dl

mov cx,5

halt

Bibliografie:

1. www.atmel.com

2. www.alsc.com

Page 19: PSM_Curs

UTM FCIM gr C-04319

3. www.ISSI.com

4. www.siguranta.ro

5. www.national.com

6. www.microchip.com

7. „Proiectarea s is temeloc cu microprocesoare. Îndrumar de

proiectare” V. Gîscă S. Zaporojan, UTM, Chişinău 1997

Page 20: PSM_Curs

UTM FCIM gr C-04320

Concluzii:

Această lucrare m+a ajutat să inţeleg mai bine principiile de elaborare a

microsistemelor pe baza de microprocesor, şi anume am folosit microprocesorul

INTEL 8086. In lucrare am realiza algoritmul de calculare a funcţiei:

Sin x=x-x3/3+x5/5.

Programul este realizat in limbajul de asamblare specific microprocesorului Intel

8086. Viteza de lucru este destul de mare deoarece majoritatea instrucţiunilor se

execută într-un singur ciclu. Preţul componentelor nu este mare ,iar datorită posibilită-

ţilor pe care le oferă, microprocesorul poate fi folosit în diverse aplicaţii tehnice.

Micro- calculatorul dat poate fi folosit la prelucrarea sau calcularea diferitor date,

utilizarea la maximum a posibilitatilor de accesare a memoriei il face universal pentru

multe aplicatii complexe.