Dispozitiv de IO: Afișajul cu 7 segmente

De la WikiLabs
Versiunea din 3 martie 2014 10:52, autor: Ssincan (Discuție | contribuții) (Controlul segmentelor)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)
Afișajul cu 7 segmente

Afișajul cu 7 segmente este utilizat pentru a afișa valori numerice (sau chiar alfanumerice) în format natural, mai degrabă decât în binar, folosind ledurile.

Controlul segmentelor

Atenție: Controlul afișajului cu 7 segmente se face controlând separat fiecare segment în parte. Controlul se face pe logică negativă, astfel, când se propagă valoarea 0 la pinul corespunzător unui segment, acesta este aprins, iar când pinul este 1, segmentul este stins. Un exemplu de secvență de control care va aprinde cifra 2 este prezentat în figură:

Exemplu de secvență de control pentru cifra 2

Astfel, vom avea nevoie de un circuit cu o ieșire de 8 biți care va reprezenta codul de control pentru valoarea dorită, valoare care va reprezenta numărul pe care dorim să-l vedem afișat:

  • pentru valoarea dorită 0, codul de control va fi 8'b10000100 (toate segmentele aprinse, mai puțin cel din mijloc și punctul);
  • pentru valoarea dorită 1, codul de control va fi 8'b11110101 (segmentele din dreapta aprinse, restul stins);
  • pentru valoarea dorită 2, codul de control va fi 8'b10011000 (vezi figura anterioara);
  • ...etc.

Aceste valori depind de convenţia aleasă pentru corespondenţa bit - segment. Pentru exemplul de mai sus, ordinea segmentelor este PDEFCGBA (bitul 7 corespunde punctului, bitul 6 corespunde segmentului D etc.). Orice altă permutare a segmentelor este corectă, cu condiţia ca ordinea din modulul de control al segmentelor să se reflecte în fişierul de specificaţie a legăturilor („Implementation Constraints File”).

Atenție: Pinii la care sunt legate segmentele sunt scrise pe placa de dezvoltare pe desenul de deasupra afișajului (pentru placa Nexys 2, acestea au numele similare cu cele de pe desenul de mai sus).

Controlul cifrei

Controlul segmentelor este comun pentru toate cele 4 cifre disponibile pe placă. Asta înseamnă că toate segmentele de pe aceeași poziție din toate cele 4 cifre sunt legate la același pin (altfel spus, toate cifrele active la un anumit moment de timp vor afișa aceeași valoare). Activarea sau dezactivarea unei cifre se face tot pe logică negată, folosind pinii legați la dispozitivele AN3 - AN0. Prin urmare, modulul care controlează afișajul pe 7 segmente va avea, pe lângă ieșirea de 8 biți necesară controlului segmentelor, încă o ieșire de 4 biți care va controla starea fiecărei cifre (activată sau dezactivată).

Implementarea circuitului de control

Implementarea uzuală pentru circuitul de control se face cu o memorie ROM.