Dispozitiv de IO: 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ă:
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.
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.