PSM_Curs
-
Upload
george-meriacri -
Category
Documents
-
view
228 -
download
2
description
Transcript of 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ă:
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).
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ă
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.
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ă.
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
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
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.
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''.
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;
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:
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ă:
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:
UTM FCIM gr C-04314
Diagramele de timp: la citire:
la scriere:
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;
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
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
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
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
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.