Sterownik LED

Prosty sterownik diod LED
Zapraszam wszystkich amatorów do spróbowania swoich sił i wykonania chyba najprostszego układu cyfrowego współpracującego z naszym ulubieńscem ZX Spectrum.

Co to za układ i do czego służy?
Ten prościutki układ to 8 wyjść cyfrowych (dwustanowyc), które mogą być dowolnie wykorzystane przez użytkownika. W przedstawionym układzie do wyjść są podłączone diody świecące, ale można zamiast nich zastosować np. przekaźniki i sterować czymś większym, na przykład pralką automatyczną. Można też układ nieco rozbudować i za jego pomocą komunikować się z drukarką. Celem budowy tego rozszerzenia jest zapoznanie początkującego elektronika z możliwością projektowania prostych i funkcjonalnych układów współpracujących z ZX Spectrum, gdyż bardzo podobnie wyglądają układy podłączane np. do szyny ISA w komputerach PC. W naszym przypadku diody można włączać i wyłączać programowo, można więc bawić się biegnącym punktem świetlnym, zrobić prosty wskaźnik wysterowania itd. - co tylko przyjdzie do głowy programiście.

Elementy
Potrzebne będą: układy 74LS682 (8-bitowy komparator), 74LS574 (8-bitowy zatrzask), 74LS00 (4 bramki NAND), 8 tranzystorków NPN np. BC107, BC109 itp., 8 rezystorów 220..470 Ohm, 8 diod świecących LED i złącze krawędziowe. Jeśli nie masz gotowego złącza krawędziowego (a pewnie nie masz), musisz je sobie samemu wykonać. Jak? To proste - wylutuj ze starej płyty PC XT/AT jedno gniazdo ISA. Obetnij je na porządaną długość (28 końcówek) - świetnie spisuje się imadło i brzeszczot do metalu. Wygładź krawędzie pilnikiem lub ostrym nożem, a następnie usuń metalowe styki z pozycji 5 w złączu (u góry i na dole) - można chwycić szczypcami i na siłę wyciągnąć. W tak otrzymaną szczelinę wklej kawałek tworzywa, w ten sposób zrobisz zabezpieczenie, które umożliwia włożenie złącza na szynę ZX Spectrum tylko w prawidłowy sposób. Ach, na koniec potrzebna będzie jeszcze jakaś płytka uniwersalna i trochę przewodu do zrobienia połączeń.

Wykonie układu:
Układ należy zmontować starannie, należy bardzo uważać, żeby nie pomylić nóżek w układach scalonych oraz w złączu krawędziowym. Nawet niewielki błąd może spowodować uszkodzenie komputera. Przed podłączeniem do ZX Spectrum należy pozbyć się ładunków elektrostatycznych, które są groźne dla sprzętu. Układ można montować na płytce uniwersalnej lub specjalnie wykonanej. Poniżej znajduje się schemat połączeń.

Jak to działa?
Komparator porównuje sygnały A0-A7 ze Spectrum z ustawionym adresem. Na schemacie widnieje ustawiony na sztywno adres 7Fh. Ja w prototypie zastosowałem zworki, którymi mogę sobie ustawić dowolny adres z zakresu 0h-FFh. Układ scalony 74LS682 ma tę zaletę, że wejścia Q0-Q7 są wewnętrznie podpięte do +5V poprzez 20kOhm rezystory, dzięki czemu pozostawienie wolnego wejścia jest równoważne z wystąpieniem na nim wysokiego stanu logicznego. Następnie, jeśli adres na szynie ZX Spectrum zgadza się z adresem ustawionym w układzie oraz jeśli sygnał /IORQ ma niski stan, jest podawany sygnał sterujący wejściem CLK układu 74LS574. Po drodze znajdują się 4 bramki NAND - tworzą one prosty układ, kóry na wyjściu daje zero tylko wtedym gdy na wejściach są zera. Gdy wejście CLK przechodzi ze stanu 1 do 0, następuje zapamiętanie danych z wejść D1-D8 i utrzymanie na wyjściach Q1-Q8 takiego stanu aż do następnej zmiany. Jest to niezbędne, jeśli chcemy, by pomiędzy kolejnymi zapisami diodki cały czas świeciły. Układ 74LS574 jest 8-bitowym zatrzaskiem - w środku jest 8 przerzutników typu D. Wyjść zatrzasku nie można podłączać bezpośrednio do tak dużego obciążenia jakim jest dioda LED lub przekaźnik - dlatego jako elementu włączającego użyłem tranzystora bipolarnego. Może to być dowolny tranzystor npn małej mocy o parametrach podobnych do BC107.

Uwagi
Układ ma jedną, niewielką wadę. Bieże pod uwagę tylko zgodność adresu i sygnał /IORQ informujący o odwoływaniu się do przestrzeni wejścia/wyjścia. Jest mu obojętne, czy dane są odczytywane, czy zapisywane do portu. Jeśli sterujemny diodami poleceniem OUT 7Fh , wartosc - wszystko jest OK. Jeśli natomiast w programie znajdzie się instrukcja czytająca z tego portu (IN), diodki mogą zapalać się w sposób przypadkowy. Przyznaję, że jest to drobny błąd w moim projekcie. W praktyce należałoby dodać jeszcze jedną bramkę, która badałaby stan linii /IORQ i /WR. Należy więc zadbać o to, by program nie czytał danych z portu, pod którym jest widoczne nasze urządzenie. Jak już wspomniałem, diodki zapalają się, jeśli do portu 7Fh wysyłamy dane - każdemu bitowi odpowiada jedna dioda. W celu przetestowania, czy układ działa poprawnie, wystarczy uruchomić króciutki program demonstracyjny:

10 LET n = INT (RND * 255) : REM generujemy jakąś losową liczbę
20 OUT 127, n : REM wysyłamy do portu 7Fh
30 BEEP 0.05,n : REM generowanie dźwięku - krótkie opóźnienie
40 GO TO 10 : REM ...i tak w kółko :-)

schemat połączeń

prototyp

Na płytce uniwersalnej widać 8 zworek, które pozwalają dowolnie ustalić adres we/wy (w prawym górnym rogu). Ponadto widać też wyprowadzenie sygnału VIDEO, niezwiązane zupełnie z opisywanym układem.

Dozwolone publikowanie niniejszego schematu tylko w celach niekomercyjnych. Autor nie odpowiada za wszelkie spustoszenia wywołane działaniem układu.


Powrót do strony głównej...