Wyświetlacze LED
Wyświetlacze LED 2/26 Sterowanie diodami LED:
Wyświetlacze LED 3/26 Wyświetlacze segmentowe LED - zespoły diód LED o wspólnej jednej elektrodzie: WA albo WK. Zalety wyświetlaczy LED: Wady wyświetlaczy LED: - długa żywotność; - duży pobór mocy; - duży zakres temperatur pracy; - kontrast zależny od oświetlenia zewn. - duża częstotliwość pracy; - brak refleksów świetlnych;
Wyświetlacze LED 4/26 Sterowanie można realizować statycznie - w sposób analogiczny do sterowania pojedynczymi diodami LED (wygodniejsze są układy WA). Do uzyskania potrzebnych znaków na wyświetlaczu segmentowym stosuje się: - bezpośrednie sterowanie segmentami - cyfry, niektóre litery, symbole; - standardowe dekodery sprzętowe - tylko cyfry, czasem litery/symbole.
Wyświetlacze LED 5/26 Przykład statycznego sterowania wyświetlaczami przy użyciu 7447: seria TTL: ’46, ‘246, ‘247, ’48, ‘248, ‘249; seria CMOS: 4055, 4547, 4558.
Wyświetlacze LED 6/26 z zatrzaskiem na cyfrę BCD: 4056, 4511, 4543, 4544, 4513
Wyświetlacze LED 7/26 Dynamiczne sterowanie wyświetlaczami LED Cechy: równolegle połączone linie segmentów wszystkich pozycji wyświetlacza; wspólne elektrody poszczególnych pozycji sterowane niezależnie; mniejsza liczba elementów sterujących - oszczędności; prostsza sieć połączeń - oszczędności; wymaga buforowania wyświetlanej informacji; trudniejsze sterowanie - rozbudowany program albo specjalny sterownik sprzętowy; stosowane także w przypadku grup pojedynczych LED.
WG – okresy wygaszania międzysegmentowego TP – okres powtarzania Wyświetlacze LED 8/26 zasada pracy: W1 W3 W2 W4 stan linii segmentowych WG TO TP W1, W2, W3, W4 – sterowania wspólnych elektrod kolejnych pozycji wyświetlacza WG – okresy wygaszania międzysegmentowego TP – okres powtarzania TO – okres obsługi
Wyświetlacze LED 9/26 Aby uzyskać podobną jak przy sterowaniu statycznym obserwowaną jasność świecenia segmentów LED należy stosować impulsowo prąd segmentu k-krotnie większy (tzw. forsowanie prądu). Częstotliwość powtarzania dla pojedynczego wyświetlacza powinna być większa od 40Hz (TP < 2,5ms), wynika to ze zdolności postrzegania oka ludzkiego. Przy N wyświetlaczach w zestawie, otrzymujemy częstotliwość obsługi: fO > N∙fP
Wyświetlacze LED 10/26 Przykład algorytmu obsługi zestawu 8 wyświetlaczy w przerwaniach zegar. założenia: częstotliwość przerwań zegarowych fC 840Hz = 320Hz; pozycje wyświetlacza są wybierane kodem poprzez port portselcyfr; informację wyświetlaną wpisuje się do portu portwysw; struktury danych: bufor wyświetlacza bufwy przechowuje informacje (W0..W7) wyświetlane na poszczególnych pozycjach wyświetlacza jako: kody segmentowe, kody specjalne, cyfry BCD (pojedyncze lub pary).
Wyświetlacze LED 11/26 START AOUT[portselcyfr] START lw:=(lw+1) mod 8 AM[bufwy+lw] RL sw RETURN inne działania procedury obsługi przerwania zegarowego operacje końcowe procedury obsługi przerwania zegarowego operacje startowe procedury obsługi przerwania zegarowego wyłączenie wszystkich pozycji wyświetlacza wysłanie do portwysw informacji o stanie kolejnej pozycji wyświetlacza, przygotowanie nowej wartości selektora sw aktualizacja portselcyfr - włączenie kolejnej pozycji wyświetlacza A:=11111111b AOUT[portwysw] swOUT[portselcyfr]
Wyświetlacze LED 12/26 Przykładowa realizacja sprzętowa: - wyświetlacz typu WA
Wyświetlacze LED 13/26 Przykładowa realizacja sprzętowa: - wyświetlacz typu WK
Wyświetlacze LED 14/26
Wyświetlacze LED 15/26 Wyświetlacze mozaikowe LED. Umożliwiają one przedstawianie różnych znaków i symboli w matrycy 5x7, 5x8 itp. pikseli. Sterowanie nimi może być zrealizowane jako: - sterowanie dynamiczne kolejnymi kolumnami pikseli (dostępne są scalone generatory znaków np.7304xx); - sterowanie statyczne lub dynamiczne całymi matrycami zintegrowanymi z lokalnymi sterownikami.
Wyświetlacze LED - 8279 16/26 Sterownik klawiatury i wyświetlaczy
Wyświetlacze LED - 8279 17/26 Cechy układu 8279: możliwość obsługi matrycy do 64 klawiszy lub innych styków; możliwość współpracy z klawiaturą autonomiczną; bufor FIFO na 8 znaków z klawiatury autonomicznej; dynamiczna obsługa do 16 (segmentowo) lub 32 (cyfry BCD) wyświetlaczy 7-segmentowych; zawiera pamięć znaków dla wyświetlaczy; 4 tryby pracy wyświetlacza; 4 tryby pracy klawiatury; możliwość zgłaszania przerwań od klawiatury; widoczny dla procesora jako 2 kolejne porty (rozróżnienie pinem A0); dostępny rejestr stanu;
Wyświetlacze LED - 8279 18/26 Przykładowa aplikacja
Wyświetlacze LED - DB-DSP 19/26 pakiet DBDSP klawiatury i wyświetlacza LED, zawierający: matrycę 24 klawiszy; sześciopozycyjny 7-segmentowy wyświetlacz LED z uniwibratorem zabezpieczającym przed przepaleniem wyświetlaczy; układ 8255 jako zestaw portów pośredniczących między magistralą systemu a klawiaturą i wyświetlaczem; lokalny dekoder adresów GAL16V8, rozpoznający adresy: 8000h - odczyt/zapis portu PA 8255 8001h - odczyt/zapis portu PB 8255 8002h - odczyt/zapis portu PC 8255 8003h - odczyt rejestru stanu/zapis rejestru sterującego 8255 80FFh - wymuszenie resetu sprzętowego 8255
Wyświetlacze LED - DB-DSP 20/26
Wyświetlacze LED - DB-DSP 21/26 #include <sfr51.h> // program wyswietlajacy ‘1’ na wszystkich pozycjach unsigned char xdata segmenty _at_ 0x8001; unsigned char xdata klawisze _at_ 0x8002; unsigned char xdata sterowanie _at_ 0x8003; unsigned char xdata resetDBDSP _at_ 0x80FF; unsigned char idata i,s; int idata k; void main (void) { resetDBDSP=0; //programowy reset 8255 na DBDSP sterowanie=0x91; //zainicjowanie 8255 do pracy segmenty=0; //wstepne wygaszenie segmentow klawisze=0x7f;
Wyświetlacze LED - DB-DSP 22/26 while (1) { for (k=1; k<100; k++); // wylaczenie wszystkich pozycji wyswietlacza klawisze=0xff; // stale wysterowanie segmentow b i c segmenty=6; // wlaczenie kolejnej pozycji klawisze=i*16; // wyslanie strobu startu dla uniwibratora klawisze=i*16+0x80; // zmiana numeru pozycji i=(i+1) % 6; }
Wyświetlacze LED - DB-DSP 23/26 #include <sfr51.h> // program wyswietlajacy znaki z bufora unsigned char xdata segmenty _at_ 0x8001; unsigned char xdata klawisze _at_ 0x8002; unsigned char xdata sterowanie _at_ 0x8003; unsigned char xdata resetDBDSP _at_ 0x80FF; unsigned char idata i,s; int idata k; unsigned char idata display[6];
Wyświetlacze LED - DB-DSP 24/26 void main (void) { resetDBDSP=0; //programowy reset 8255 na DBDSP sterowanie=0x91; //zainicjowanie 8255 do pracy segmenty=0; //wstepne wygaszenie segmentow klawisze=0x7f; //zainicjowanie bufora kodami segmentowymi znakow display[0]=0x54; //’n’ display[1]=0x77; //’A’ display[2]=0x73; //’P’ display[3]=0x06; //’I’ display[4]=0x6d; //’S’ display[5]=0; //’ ‘
Wyświetlacze LED - DB-DSP 25/26 while (1) { for (k=1; k<100; k++); // wylaczenie wszystkich pozycji wyswietlacza klawisze=0xff; // stale wysterowanie segmentow b i c segmenty=display[i]; // wlaczenie kolejnej pozycji klawisze=i*16; // wyslanie strobu startu dla uniwibratora klawisze=i*16+0x80; // zmiana numeru pozycji i=(i+1) % 6; }
Wyświetlacze LED 26/26