You are on page 1of 4

Lab_2a

SISTEM DE AFISARE CU L.E.D.-uri


1. Introducere:
O alta utilizare a interfetei numerice este si comanda unui sistem de afisare cu l.e.d.-uri.
L.e.d.-urile sunt dispuse intr-o matrice de 8 linii si 8 coloane comandate ca in figura de mai jos:

Figura 1 : Sistem de afisaj cu l.e.d.-uri


Pentru ca un l.e.d. sa fie aprins este necesar ca tensiunea directa pe l.e.d. sa fie 0.6V,
luminozitatea l.e.d.-ului fiind direct proportionala cu curentul prin l.e.d. Acest lucru se intampla
daca tranzistoarele ce comanda linia si coloana la intersectia carora se afla l.e.d.-ul, sunt
deschise, deci daca in baza acestor tranzistoare vom avea un "1" logic. Este evident ca la o
tensiune in baza corespunzatoare unui "1" logic de cel putin 3.6V, tranzistorul de pe coloana este
deschis chiar la saturatie, iar tranzistorul de pe o linie care are o tensiune in baza mai mare de Ube
(linie) + Ul.e.d. + Uce (saturatie coloana) (aproximativ 1.3V) va fi si acesta deschis. Pentru a mari
curentul prin l.e.d., va trebui sa marim curentul din emitorul tranzistorului de pe linie, deci
curentul din baza aceluiasi tranzistor (intrucat Ie=(1+β)*Ib). Marirea curentului din baza se poate
face fie prin marirea tensiunii de alimentare Ualim, fie prin micsorarea rezistentei de 5KΩ dintre
colectorul si baza tranzistorului de pe linie, pastrand constanta tensiunea de alimentare.
Bazele celor 8 tranzistoare vor fi comandate prin intermediul interfetei numerice de iesire
realizate cu placa PCL-711. Aceasta ofera 16 iesiri numerice, pentru acest montaj folosindu-se
numai 8. Numarul maxim de l.e.d.-uri care poate fi comandat de sistemul de iesiri numerice
aferent placii PCL-711 este de 8x 8=64 l.e.d.-uri.
Afisarea unei imagini pe matricea de 4x4 l.e.d.-uri se face prin baleierea unui "1" logic pe
coloanele matricii. Astfel, la un moment dat, numai un tranzistor de pe coloana din cele 4 este
deschis (are un "1" logic in baza), celelalte trei fiind blocate (au "0" logic in baza). In momentul
in care se pune un "1" in baza unui tranzistor din coloane, in bazele celor 4 tranzistoare de pe
linii vor fi puse valori de "1" sau "0" logic, in functie de care l.e.d.-uri se doreste a fi aprinse sau
stinse pe coloana respectiva. Se mentine aceasta situatie un anumit interval de timp pentru
formarea persistentei pe retina ochiului, dupa care se continua cu urmatoarea coloana. Daca
suntem pe coloana a patra, se reia baleierea incepand cu coloana intai .
Pentru a se forma o imagine continua, dat fiind faptul ca la un anumit moment este
aprinsa numai o coloana, este necesar ca timpul de aprindere al unei coloane sa fie bine ales.
Daca acest timp este prea mare, imaginea va prezenta palpairi sau chiar se va observa aprinderea
succesiva a fiecarei coloane.

Afisarea unei imagini pe matricea de 8x8 l.e.d.-uri:


Sa consideram mai intai cazul unei imagini statice, deci imaginea afisata pe matricea de
8x8 l.e.d-uri ramane stabila un interval de timp nedeterminat, utilizatorul fiind cel care decide
afisarea unei alte imagini statice. Fiecare imagine este compusa din 4 coloane (cu l.e.d.-uri
aprinse sau stinse conform imaginii respective) coloane care sunt aprinse succesiv cate un
interval de timp astfel ales, incat sa nu se observe aprinderea lor succesiva. Cele 4 coloane sunt
percepute de ochiul uman ca fiind aprinse simultan. Se poate afirma ca, in realitate, o imagine
statica este de fapt o imagine dinamica formata din 4 imagini statice, cate una pentru aprinderea
fiecarei coloane. Fiecarei coloane aprinse ii corespunde un octet (respectiv doi octeti - in functie
de care iesiri numerice sunt folosite la comanda sistemului de afisaj) de memorie, deci fiecarei
imagini statice ii va corespunde o zona de memorie de 4 (respectiv 8) octeti, ce va fi baleiata
continuu, in mod circular, informatia fiind scrisa in portul de iesire, pentru a fi afisata pe l.e.d.-
uri. Ex: pentru a aprinde toate l.e.d.-urile de pe coloana 3 (corespunzatoare lui DO5) se vor
trimite la porturile de iesire urmatoarele doua cuvinte de comanda:
- BASE+13: 0010 0000 (20H)→DO5=High
- BASE+14: 1010 1010 (AAH)→DO9, DO11, DO13 si DO15 = High
Pentru formarea imaginii statice cu toate l.e.d.-urile exterioare aprinse (numita "careu"), se
trimite la porturile de iesire urmatoarele 4 perechi de cuvinte de comanda:
1. BASE+13: 0000 0001 (01H)→DO1=High
BASE+14: 1010 1010 (AAH)→DO9, DO11, DO13 si DO15 = High
2. BASE+13: 0000 0000 (00H)→Nu e folsit.
BASE+14: 1100 1000 (C8H)→DO14 (selecteaza coloana), DO9 si DO15 = High
3. BASE+13: 0010 0000 (20H)→DO5=High
BASE+14: 1000 1000 (88H)→DO9 si DO15 = High
4. BASE+13: 1000 0000 (80H)→DO7=High
BASE+14: 1010 1010 (AAH)→DO9, DO11, DO13 si DO15 = High

Sa consideram cazul afisarii unei imagini dinamice (imagine formata dintr-un numar finit
de imagini statice). Se descompune imaginea de afisat intr-un sir de imagini statice, fiecare
imagine statica fiind mentinuta un anumit timp pe afisaj, dupa care aceasta va fi inlocuita cu
urmatoarea imagine statica, s.a.m.d. Se porneste de la premiza ca imaginea dinamica care trebuie
afisata are un caracter repetitiv, deci se poate descompune intr-un numar finit de imagini statice.
Fiecarei imagini statice ii corespunde o zona de memorie de 8 octeti, deci unei imagini dinamice
ii va corespunde un numar de 8 x ns octeti, unde "ns" este numarul de imagini statice in care se
descompune imaginea dinamica. In cazul sistemelor mari de afisare cu l.e.d.-uri, din cauza
cresterii numarului de coloane, va scade frecventa de aprindere a unei coloane. Astfel daca "t"
este timpul de aprindere al unei coloane si "nc" numarul de coloane, atunci frecventa va fi
f=(1/nc)*t. Deci, l.e.d.-urile unei coloane sunt aprinse un interval de timp "t", dupa care sunt
stinse un interval de timp egal cu (nc-1)*t. Daca "I" este curentul prin l.e.d. atunci cand este
aprins, curentul mediat pe o perioada va fi Imed=I/T, unde T=1/f este perioada de aprindere a unei
coloane. Curentul "I" trebuie ales astfel incat Imed sa nu depaseasca curentul maxim prin l.e.d.
(20mA). In impuls, un l.e.d poate fi comandat cu un curent de pana la 1A, cu conditia ca Imed sa
nu depaseasca 20mA. In acest caz se poate scrie:

I med = I / nc (1)
Din relatia (1) se observa ca, o data cu cresterea numarului de coloane, scade curentul mediu prin
l.e.d., deci luminozitatea l.e.d.-ului. O solutie de marire a curentului mediu este scaderea
timpului de aprindere al unei coloane "t". Acesta nu poate fi micsorat foarte mult deoarece ochiul
uman nu ar mai percepe aprinderea l.e.d.-urilor coloanei respective. In concluzie, conditia pe
care trebuie sa o indeplineasca sistemele de afisare mari este:

I r ≤ I / nc ≤ I max / nc (2)
unde
Imax - curentul maxim prin l.e.d;
Ir - curentul care asigura o buna vizibilitate a l.e.d.-ului.

Observatie: comanda l.e.d.-urilor se face cu iesirile placii PCL-711 (DO1…DO15 ). Acestea sunt
organizate in doi octeti, aflati la adresele (BASE+13) si (BASE+14).

Exemplu: pentru a realiza o imagine dinamica formata din doua imagini statice (imaginea I -
careu si imaginea II - imagine cu l.e.d.-urile interioare aprinse) se trimite la porturile de iesire
urmatoarea secventa de cuvinte de comanda:
Imaginea I:
1. BASE+13: 0000 0001 (01H)→DO1=High
BASE+14: 1010 1010 (AAH)→DO9, DO11, DO13 si DO15 = High
2. BASE+13: 0000 0000 (00H)→Nu e folsit.
BASE+14: 1100 1000 (C8H)→DO14 (selecteaza coloana), DO9 si DO15 = High
3. BASE+13: 0010 0000 (20H)→DO5=High
BASE+14: 1000 1000 (88H)→DO9 si DO15 = High
4. BASE+13: 1000 0000 (80H)→DO7=High
BASE+14: 1010 1010 (AAH)→DO9, DO11, DO13 si DO15 = High

- Temporizare intre imaginile statice


Imaginea II:
1. BASE+13: 0000 0000 (00H)→
BASE+14: 0000 0000 (00H)→Nu se aprinde nici un l.e.d de pe prima coloana.
2. BASE+13: 0000 0000 (00H)→Nu e folsit.
BASE+14: 0110 1000 (68H)→DO14 (selecteaza coloana), DO11 si DO13 = High
3. BASE+13: 0010 0000 (20H)→DO5=High
BASE+14: 0010 1000 (28H)→DO11 si DO13 = High
4. BASE+13: 0000 0000 (00H)→
BASE+14: 0000 0000 (00H)→Nu se aprinde nici un l.e.d de pe a patra coloana.

2. Chestiuni de studiat:
a) Se vor scrie cuvintele de comanda pentru crearea unor imagini statice (Ex: Imagine cu
colturile aprinse, imagine cu colturile stinse si restul l.e.d.-urilor aprinse, etc.).
b) Se vor scrie programe in C++ pentru crearea de imagini statice si de imagini dinamice, cum
sunt cele prezentate la punctul 4.

3. Echipamente si materiale folosite:


a) montaj cu l.e.d.-uri;
b) Calculator cu placa PCL-711;
c) Sursa de alimentare (5V pentru alimentarea montajului cu l.e.d.-uri);
d) Cordoane de legatura.
4. Modul de lucru: se realizeaza montajul din figura 2:

Figura 2: Montajul de lucru pentru comanda l.e.d.-urilor

a) Se conecteaza montajul la placa PCL-711;


b) Se alimenteaza montajul de la sursa de alimentare de 5V;
c) Se scrie un program in C pentru crearea unei imagini statice. Acest program va afisa un
patrat pe matricea de 8x8 l.e.d.-uri (va aprinde numai l.e.d.-urile din coloanele 1 si 8 si liniile
1 si 8 - imagine numita careu).
d) Sa se scrie un program care sa realizeze o imagine dinamica.

Exemplu de program(pentru matrice 4x4):

#include<stdlib.h>
#include<dos.h>
#define BASE 0x220
main( )
{
int a[4],b[4];
a[1]=2; a[2]=8; a[3]=32; a[4]=128;
b[1]=170; b[2]=130; b[3]=130; b[4]=170;
for (int j=1; j<50; j++)
{
for (int i=1; i<5; i++)
{
outport (BASE+13,a[i]);
outport (BASE+14,b[i]);
delay(8);
}
outport (BASE+13,0);
outport (BASE+14,0);
}
}