Documente Academic
Documente Profesional
Documente Cultură
Porturi de intrare/ieșire
(partea a doua)
1. Scopul lucrării
Obiectivul acestei lucrări este să faciliteze înțelegerea modului în care comunică procesorul
cu afișoarele cu 7 segmente și cu butoanele de pe placa Altera DE1.
2. Mersul lucrării
Pentru această lucrare se poate folosi proiectul din lucrarea precedentă sau se poate crea un
nou proiect în Quartus II Web Edition (după modelul din Anexa A).
Urmează construirea sistemului (după modelul din Anexa C) sau completarea celui din
lucrarea precedentă cu încă două porturi. În final, sistemul trebuie să cuprindă:
un procesor NIOS II (varianta economică Nios II/e)
un modul de memorie (se va alege un modul de 4 KB de memorie on-chip de tip RAM)
un port de intrare (PIO) de 10 biți (corespunzător comutatoarelor SW)
un port de ieșire (PIO) de 8 biți (corespunzător LED-urilor verzi LEDG)
un port de ieșire (PIO) de 10 biți (corespunzător LED-urilor roșii LEDR)
un port de intrare (PIO) de 3 biți (corespunzător butoanelor KEY[3..1])
un port de ieșire (PIO) de 7 biți (corespunzător afișorului HEX0[6..0])
Portul corespunzător butoanelor este de numai 3 biți deoarece butonul KEY[0] este asociat
intrării de reset a procesorului și nu poate fi utilizat în alt scop. De asemenea, pentru început, se
folosește doar unul dintre afișoarele cu 7 segmente ( HEX0).
După creare, instanțiere și compilare, sistemul trebuie descărcat pe placa Altera DE1.
Etapele care trebuie parcurse pentru acest lucru sunt prezentate în Anexa D.
E important să fie notate adresele alocate porturilor, întrucât ele trebuie accesate din
programul care va fi executat.
volatile int c;
default:
a = 0x7f;
}
return a;
}
*afis7 = afisor(c%16);
*LED_rosii = c;
}
}
Execuția acestui program are ca efect afișarea valorii de pe comutatoare pe LED-urile roșii
(în binar), respectiv pe afișorul cu 7 segmente HEX0 (în hexazecimal). Afișarea are loc doar în
momentul în care este apăsat butonul KEY[3]. Așa cum se observă din codul de mai sus, butoanele
funcționează în logică negată: „0” înseamnă buton apăsat, iar „1” înseamnă buton eliberat.
Pentru a putea lansa în execuție programul, e necesar ca acesta să fie inclus, la rândul lui,
într-un proiect. Pentru crearea proiectului se utilizează Altera Monitor Program.
Etapele care trebuie parcurse pentru acest lucru sunt prezentate în Anexa MP.
a. Să se completeze funcția afisor în așa fel încât să includă codurile pentru toate cifrele
hexazecimale posibile: cifrele 0-9 și literele A, b, C, d, E, F (care codifică valorile 10-15). Apoi să
se verifice funcționarea programului.
b. Ce rost are operația (*buton & 0x4) în programul dat ca exemplu? Ce s-ar întâmpla dacă
ar lipsi 0x? Ce rost are c%16 și ce s-ar întâmpla dacă ar fi doar c?
Bibliografie:
http://www.altera.com/education/univ/materials/comp_org/labs/unv-labs.html