Document, comentariu, eseu, bacalaureat, liceu si facultate
Top documenteAdmitereTesteUtileContact
      
    


 


Ultimele referate adaugate

Adauga referat - poti sa ne ajuti cu un referat?

Politica de confidentialitate



Ultimele referate descarcare de pe site
  CREDITUL IPOTECAR PENTRU INVESTITII IMOBILIARE (economie)
  Comertul cu amanuntul (economie)
  IDENTIFICAREA CRIMINALISTICA (drept)
  Mecanismul motor, Biela, organe mobile proiect (diverse)
  O scrisoare pierduta (romana)
  O scrisoare pierduta (romana)
  Ion DRUTA (romana)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  Starea civila (geografie)
 

Ultimele referate cautate in site
   domnisoara hus
   legume
    istoria unui galban
   metanol
   recapitulare
   profitul
   caract
   comentariu liric
   radiolocatia
   praslea cel voinic si merele da aur
 
despre:
 
PROIECTLA SISTEME CU MICROPROCESOARE
Colt dreapta
Vizite: ? Nota: ? Ce reprezinta? Intrebari si raspunsuri
 
UNIVERSITATEA „VALAHIA” TARGOVISTE m8k16ki
AUTOMATICA IV

PROIECTLA SISTEME CU MICROPROCESOARE

TEMA PROIECT:

Sa se implementeze un algoritm care sa realizeze numararea cu afisare cu tactul de 6Hz pana la o valoare de referinta citita de pe portul de intrare cu microprocesoare. Cand contorul ajunge la valoarea de referinta, aceasta va fi afisata timp de 3 secunde, apoi va incepe numararea inversa pana la 0. Decrementarea se va face cu o frecventa de 8Hz.

Notiuni introductive

Domeniul microprocesoarelor este unul dintre cele mai dinamice din industria calculatoarelor. Aparut in anii 1970, microprocesorul este un circuit capabil sa efectueze functiile aritmetice si de control ale unui calculator. Pe atunci un microprocesor era un circuit integrat pe scara larga (LSI), continand cateva mii de tranzistoare, pe o suprafata de aproximativ 5 mm2. Dezvoltarea microprocesoarelor a urmat dezvoltarii circuitelor integrate, complexitatea acestora dublandu-se practic in fiecare an. In prezent s-a ajuns la cateva milioane de tranzistoare (6-9 milioane: Pentium II, AMD K6-2, Cyrix MII) pe o suprafata de cativa milimetri patrati.
Z80 este un procesor care nu se mai foloseste in nici un calculator actual, iar viteza lui este foarte mica (5 MHz), comparativa cu frecventele procesoarelor actuale (sute de Mhz). Totusi, mai este folosit si acum, in concurenta cu microcontrolerele, la realizarea unor sisteme de automatizare simple si fara necesitati prea mari de viteza. Z80 este un microprocesor pe 8 biti, cu 16 linii de adresa.
In interiorul calculatoarelor toate informatiile sunt reprezentate sub forma unor numere binare, sau sub forma unor grupe de biti.
Sistemul cel mai potrivit s-a dovedit a fi cel hexazecimal, cel care admite saisprezece cifre distincte (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F).




Cap. I. Microprocesorul Z80

1.1. Notiuni introductive. Arhitectura interna

Microprocesoarele nu sunt altceva decat unitati centrale de calculator (CPU -; Central Processing Unit) incorporate intr-o singura capsula de circuit integrat.
Ele vor citi instructiunile unui program dintr-un bloc de memorie, le vor decodifica si vor executa comenzile formulate in insusi codul instructiunii. Pentru a citi din blocul de memorie externa codul instructiunii ce urmeaza a fi executata, microprocesorul va trebui sa genereze o adresa pe care o va pune la dispozitie memoriei, pana cand din celula selectata pe baza acestei adrese va apare data ceruta. Pentru a putea „mentine” starea liniilor de adresa pe durata intregii operatii de citire, microprocesorul va trebui sa posede un element memorator intermediar, pe care-l vom numi registrul tampon de adrese AB (Adress Buffer). Informatia codificata, citita din memorie o vom depune temporar, de asemenea intr-un registru intermediar numit registrul tampon de date DB (Data Buffer).
Liniile electrice pe care se va genera cuvantul binar de adresa le vom numi magistrala de adrese ABUS (Adess Bus), iar pe cele dedicate datelor citite/ scrise in memorie, magistrala de date DBUS (Data Bus).
Z80 este un microprocesor pe 8 biti, cu 16 linii de adresa.
In interiorul calculatoarelor toate informatiile sunt reprezentate sub forma unor numere binare, sau sub forma unor grupe de biti.
Sistemul cel mai potrivit s-a dovedit a fi cel hexazecimal, cel care admite saisprezece cifre distincte (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F).
Structura interna a microprocesorului Z80, organizata pe blocuri functionale, este prezentata in figura alaturata. (UAL -; Unitatea aritmetica si logica;
RI -; Registrul de instructiuni;
UCC -; Unitatea de comanda si control.)

REGISTRII SPECIALI

Contorul program -; PC (Program Counter) este un registru dublu, avand lungimea de 16 biti. El este destinat sa memoreze adresa instructiunii ce urmeaza a fi executata. Dupa ce se citeste codul instructiunii curente din memorie continutul acestui registru este incrementat automat cu 1.
Indicatorul de stiva -; SP ( Stack Pointer) este un registru dublu, avand lungimea de 16 biti. SP este un registru de adresare special, avand aceeasi lungime ca si PC, el poate adresa intregul spatiu de adrese de memorie: 0000- FFFF.
La microprocesorul Z80, registrul SP organizeaza o stiva descrescatoare: la fiecare salvare se inscriu in memorie 2 octeti (2 registrii simplii sau 1 registru dublu) si continutul indicatorului de stiva este decrementat cu 2.
La fiecare restaurare se citesc din memorie 2 octeti si continutul indicatorului de stiva este incrementat cu 2.
Registrul de instructiune -; IR (Instruction Register) este un registru special cu lungimea de 8 biti. Aceasta este celula in care se depoziteaza codul unei instructiuni, citit din memorie la operatia fetch. Circuitul de comanda al microprocesorului preia codul instructiunii de executat din IR, il decodifica si isi programeaza toate activitatile pe care le are de efectuat in vederea ducerii la bun sfarsit a „poruncii” primite.
Registrul - A ( Acumulator) este un registru avand lungimea de 8 biti. El se distinge prin faptul ca pe langa a sti sa memoreze un octet, este implicat in toate operatiile aritmetice si logice: unul din cei doi parametrii asupra carora urmeaza sa fie efectuata o operatie aritmetica sau logica (adunare, scadere, etc.) se va afla obligatoriu in acumulator. Rezultatul operatiei se genereaza de asemenea in registrul A, el suprascriindu-se peste valoarea initiala. Observam ca operatiile aritmetice si cele logice actioneaza astfel incat acumuleaza rezultatele in registrul A. De aici provine si numele de acumulator.
Registrul indicatorilor de conditie -; F ( Flag). Asa cum o spune si numele simbolic ales pentru acest registru special el este menit sa semnaleze ceva. In acest registru, care in cazul microprocesorului Z80 are lungimea de 8 biti, fiecare bit in parte are semnificatia lui. De aceea ei se numesc indicatori de conditie. Flagurile furnizeaza atat programatorului cat si insasi unitatii de comanda a microprocesorului, informatii privind natura rezultatului unei operatii aritmetice sau logice efectuate. Din starea bitilor dedicati ai registrului F putem afla daca rezultatul operatiei efectuate este 0 sau nu, daca el este un numar pozitiv sau negativ, daca numarul bitilor din rezultat ce au valoarea 1 este un numar par sau impar.
Flagul S (sign= semn) care apare pe pozitia cea mai semnificativa a registrului F (bit 7), memoreaza bitul cel mai semnificativ al unui numar rezultat pe baza unei operatii aritmetice sau logice, in acumulator.

Flagul Z (zero) -; apare pe pozitia bitului 6 a registrului F. El este inscris (valoarea 1), daca rezultatul unei operatii aritmetice/ logice este 0. Daca rezultatul operatiei difera de 0, atunci continutul indicatorului Z va fi 0.
Flagul H (Half carry) reprezinta transportul care apare in cursul unei operatii aritmetice de la bit 3 spre bit 4 al acumulatorului. El ocupa pozitia bit 4 in registrul indicatorilor de conditie F .Flagul H nu poate fi testat prin instructiuni de salt conditionat. El este folosit de catre unitatea aritmetica si logica a microprocesorului la executia instructiunii de corectie zecimala, pentru corectia numerelor zecimale codificate in binar: BCD.
Flagul P/V (Parity/ Overflow) -; este un indicator de conditie multifunctional. El ocupa pozitia bit 2 in registrul F. Asa cum rezulta din numele acestui indicator, el poate indica paritatea numarului din acumulator sau depasire de domeniu.
Flagul N -; este un indicator care memoreaza tipul ultimei operatii aritmetice efectuate: adunare sau scadere. In registrul F el ocupa pozitia bit 1.
N=1 daca ultima operatie aritmetica a fost adunare;
N=0 daca ultima operatie aritmetica a fost scadere.
Flagul F este folosit impreuna cu indicatorul de transport H si cu indicatorul de transport Cy.
Flagul Cy (Carry - transport) -; este indicatorul cel mai popular, afectat atat de operatiile aritmetice/ logice cat si de clasa operatiilor de rotire/ deplasare octet. El ocupa pozitia cea mai putin semnificativa (bit 0) in registrul indicatorilor de conditie F.
Registrul de reimprospatare a memoriilor dinamice - R (Refresh) este un registru cu lungimea de 7 biti, menit sa asigure printr-o numarare ciclica de la 127 (0000000 - 1111111) reimprospatarea memoriilor RAM dinamice, din componenta unui microcalculator, atunci cand ele exista.
Prezenta registrului R este un castig semnificativ in favoarea microprocesorului Z80, ea scutindu-l pe proiectantul microcalculatorului de un efort coniderabil, cel de a realiza o memorie cu 2 cai de acces ( din partea procesorului si din partea unui circuit de reimprospatare extern) si de a rezolva conflictele ce apar intre cele doua componente.
Registrul vectorului de intreruperi - I (Interrupt register) este ultimul in sirul registrilor speciali ai microprocesorului Z80. El este un registru cu lungimea de 8 biti si serveste in modul de intreruperi 2 la dirijarea sursei de cerere a intreruperilor.
Prin intrerupere intelegem fenomenul la aparitia caruia microprocesorul abandoneaza -; la cererea unui eveniment extern -; programul in curs de rulare, deserveste -; executand un program dedicat -; evenimentul extern, dupa care se reintoarce la programul abandonat, reluandu-i executia din punctul in care ea fusese suspendata.

REGISTRII GENERALI
Registrii de uz general au menirea sa pastreze in imediata apropiere a „focarului” microprocesorului date, care sa poata fi accesate rapid, evitandu-se pe cat se poate accesele la memorie si astfel reduc viteza de lucru a microprocesorului.
Intr-o grupare semnificativa a figurii 1 distingem alaturi de registrii deja prezentati (PC, SP, R, I) alte casute simbolizate cu B, C, D, E, H, L.
Registrii B si C: sunt registrii generali de 8 biti. Exista o multitudine de instructiuni(de transfer, aritmetice, logice, de rotire, etc.) care trateaza continutul acestor registrii. Ei nu au fost figurati intamplator pe aceeasi linie: in anumite conditii ei se pot atasa, formand un registru pereche BC, avand lungimea de 16 biti. In aceasta situatie B este octetul cel mai semnificativ, iar C octetul cel mai putin semnificativ. Exista instructiuni care trateaza perechea BC ca un registru de 16 biti(instructiuni de transfer, instructiuni aritmetice).
Registrii D si E: se caracterizeaza prin aceleasi trasaturi ca si registrii B si C. Atunci cand perechea DE formeaza un registru dublu de 16 biti, D ocupa octetul superior iar E octetul inferior.
Registrii H si L: difera de cei anteriori B, C, D, E doar prin faptul ca sunt implicati intr-un numar mai mare de instructiuni, avand astfel un grad de functionalitate sporit fata de BC si respectiv DE. Atunci cand ei formeaza o pereche HL, registrul H ocupa octetul superior, iar L cel inferior. Perechea HL devine principalul instrument de adresare indirecta a unor operanzi locazati in memorie la adrese cunoscute.
Registrii index IX si IY: sunt registrii de 16 biti. Ei sunt dedicati eminamente pentru stocarea unor adrese de memorie. Ii vom trata ca registrii de 16 biti. Acesti registrii au fost ganditi sa fie utilizati atunci cand trebuiesc efectuate operatii aritmetice/logice asupra unor campuri de date ce sunt asezate la adrese succesive de memorie, formand astfel un tabel. Registrii index nu vor contine adresa celulei care se doreste a fi tratata.

CAP II. Clasificarea intructiunilor microprocesorului Z80 pe clase de instructiuni.

Clasa 1. Instructiuni de transfer de 8 biti LOAD-8

Mnemonici incluse: LD
Totalul intructiunilor din clasa: 111
Numarul de grupe: 11

Clasa 2. Instructiuni de transfer de 16 biti LOAD-16
Mnemonici incluse: LD, EX, EXX, POP, PUSH
Totalul instructiunilor din clasa: 39
Numarul de grupe: 10

Clasa 3. Instructiuni de transfer de blocuri de date LOAD-IDR
Mnemonici incluse: LDD, LDDR, LDI, LDIR
Totalul instructiunilor din clasa: 4
Numarul de grupe: 2

Clasa 4. Instructiuni aritmetice/logice pe 8 biti AR/LOG-8
Mnemonici incluse: ADD, ADC, SUB, SBC, AND, XOR, OR, CP, INC, DEC, CPL, NEG, DAA, RLCA, RRCA, RLA, RRA
Totalul instructiunilor din clasa: 115
Numarul de grupe: 26

Clasa 5. Instructiuni aritmetice de 16 biti ARIT-16
Mnemonici incluse: ADD, ADC, BC, INC, DEC
Totalul instructiunilor din clasa: 32
Numarul de grupe: 7

Clasa 6. Instructiuni logice pe blocuri de date LOG-IDR
Mnemonici incluse: CPD, CPDR, CPI, CPIR
Totalul instructiunilor din clasa: 4
Numarul de grupe: 2

Clasa 7. Instructiuni orientate pe bit BITSR
Mnemonici incluse: BIT, SET, RES, SCF, CCF
Totalul instructiunilor din clasa: 242
Numarul de grupe: 7

Clasa 8. Instructiuni de salt JUMP
Mnemonici incluse: JP, JR, DJNZ
Totalul instructiunilor din clasa: 18
Numarul de grupe: 6
Clasa 9. Instructiuni de apel si revenire din subrutina CALL/RET
Mnemonici incluse: CALL, RET, RST
Totalul instructiunilor din clasa: 26
Numarul de grupe: 5

Clasa 10. Instructiuni de rotire si deplasare ROT/HIFT
Mnemonici incluse: RLC, RRC,RL, RR, SLA, SRA, SRL, RLD, RRD
Totalul instructiunilor din clasa: 72
Numarul de grupe: 9

Clasa 11. Instructiuni de intrare/ iesire IN/OUT
Mnemonici incluse: IN, IND, INDR, INI, INIR, OTDR, OTIR, AUT, OUTD
Totalul instructiunilor din clasa: 24
Numarul de grupe: 8

Clasa 12. Instructiuni de comanda SYS
Mnemonici incluse: DI, EI, HALT, IM, NOP, RETI, RETN
Totalul intructiunilor din clasa: 9
Numarul de grupe: 5

CAP. III. Descrierea algoritmului folosit pentru tema enuntata.

Adresa de Eticheta Mnemonica Opcodul Comentarii memorie simbolica Si
Operanzi
1000 LD P, 1400H 310014
1003 IN A,(0CH) DB0C
1005 LD D, A 57
1006 LD B, A 47
1007 LD C, 0 0.00E+00
1009 Et1 INC C 0C
100A LD A, C 79
100B OUT(OCH, A) D30C
100D CALL 1100H CD0011
1010 DJNZ Et1 10FF
1012 CALL 1200H CD0012
1015 LD B, D 42
1016 Et2 LD A, B 78
1017 OUT(OCH, A) D30C
1019 CALL 1300H CD0013
101C DJNZ Et2 10F8
101E RET C9

SUBRUTINA -; adresa 1100

1100 LD HL, 43D0H 21D043
1103 Et3 DEC HL 2B
1104 LD A, H 7C
1105 OR L B5
1106 JPNZ Et3 C20311
1109 RET C9

SUBRUTINA -; adresa 1200

1200 LD C, 04 OEO4
1202 Et4 LD HL, FFFF 21FFFF
1025 Et5 DEC HL 2B
1026 LD A, H 7C
1027 OR L B5
1028 JPNZ Et5 C20512
120B DEC C 0D
120C JPNZ Et4 C20212
120F LD HL, C4B7H 21B7C4
1212 Et6 DEC HL 2B
1213 LD A, H 7C
1214 OR L B5
1215 JPNZ C21212
1218 RET C9

SUBRUTINA -; adresa 1300

1300 LD HL, 32DCH 21DC32
1303 Et7 DEC HL 2B
1304 LD A, H 7C
1305 OR L B5
1306 JPNZ Et7 C20313
1309 RET C9

BIBLIOGRAFIE:

1. D. Carstoiu -; Sisteme cu microprocesoare, Note de curs
2. M. Patrubany -; Totul despre microprocesorul Z80, Ed. Tehnica 1989
3. Tepelea, Lupu -; Microprocesoare -; aplicatii
4. I. Spanulescu, S. Spanulescu -; Circuite integrate digitale si sisteme cu microprocesoare, Ed. Victor 1996
5. G. Musca -; Programare in limbaj de asamblare, Ed. Teora,1998
Gh. Toacse -; Introducere in microprocesoare, Ed. St. si Enc.1985
6. Patrubany M. -; Ed. Tehnica -; 1989 Totul despre microprocesorul Z80


Colt dreapta
Creeaza cont
Comentarii:

Nu ai gasit ce cautai? Crezi ca ceva ne lipseste? Lasa-ti comentariul si incercam sa te ajutam.
Esti satisfacut de calitarea acestui document, eseu, cometariu? Apreciem aprecierile voastre.

Nume (obligatoriu):

Email (obligatoriu, nu va fi publicat):

Site URL (optional):


Comentariile tale: (NO HTML)


Noteaza documentul:
In prezent fisierul este notat cu: ? (media unui numar de ? de note primite).

2345678910

 
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite
Colt dreapta