Powrót

Moduł wyświetlacza z układem TM1637

Praktycznie w każdym systemie mikroprocesorowym niezbędne są elementy wyświetlające informacje. Na rynku dostępnych jest wiele rozwiązań o różnych cechach użytkowych. Jednym z nich jest tytułowy wyświetlacz ze specjalizowanym układem scalonym TM1637.

Moduł wyświetlacza z układem TM1637 to popularny, tani i łatwy w obsłudze komponent elektroniczny, służący do wyświetlania cyfr oraz kilku znaków semigrafiki (w tym liter pozwalających na prezentację danych w systemie szesnastkowym). Sam układ (TM1637) potrafi trochę więcej, niż oferuje moduł wyświetlacza. Technicznie może on sterować wyświetlaczem o maksymalnie 6 cyfrach oraz dysponuje możliwością obsługi prostej klawiatury o 16 przyciskach. Tytułowy moduł wykorzystuje układ w ograniczonym zakresie, co nie oznacza, że nie można zastosować TM1637 we własnych konstrukcjach wykorzystujących jego pełne możliwości.

Moduł wyświetlacza

Układ TM1637 autonomicznie obsługuje kilkucyfrowy wyświetlacz 7-segmentowy LED w trybie multipleksowania. Ten sposób polega na szybkim zapalaniu i gaszeniu poszczególnych segmentów danej cyfry, przez synchroniczne włączanie zasilania odpowiedniej cyfry. Dzięki temu, że proces zachodzi z częstotliwością kilkudziesięciu Hz, ludzkie oko, ze względu na swoją bezwładność, odbiera obraz jako ciągły. Autonomiczność rozwiązania wymaga, by istniało kilka rejestrów 8-bitowych do przechowywania informacji, które segmenty w obrębie każdej cyfry mają być włączone (siedem segmentów wyświetlacza oraz sterowanie kropką lub dwukropkiem) oraz układ cyklicznie przełączający zasilanie anod wyświetlaczy. Wszystkie te operacje realizuje układ scalony TM1637, toteż nie ma konieczności realizacji w programie jakichkolwiek operacji związanych z odświeżaniem danych. Jedyne działania jakie musi podjąć mikrokontroler, to wysłanie przez dedykowany interfejs szeregowy danych o włączeniu odpowiednich segmentów wyświetlacza (segment do świecenia włącza się jedynką logiczną). Układ sterujący nie ma wbudowanego generatora znaków, czyli program sam musi „rozłożyć” dany znak na poszczególne segmenty. Takie rozwiązanie z jednej strony zmusza do stworzenia w programie rozwiązania przekształcającego znak na sterowanie poszczególnymi segmentami, ale z drugiej strony umożliwia wyświetlanie znaków semigrafiki.

Wspomniany interfejs szeregowy w oryginalnej dokumentacji określony jest jako two-wire serial (rysunek 1), co może sugerować, że jest to interfejs typu I2C (w mikrokontrolerach ATMEGA również używa się określenia two wire serial interface). Pomimo pewnych podobieństw do I2C nie jest to ten interfejs. Główna różnica polega na braku adresowania układów oraz odwróconej kolejności przesyłanych bitów (w I2C przesyłanie bitów zaczyna się od najbardziej znaczącego, w TM1637 od bitu najmniej znaczącego), przez co TM1637 nie jest zgodny ze standardem I2C. Brak możliwości adresowania implikuje, że na jednej magistrali szeregowej może być przyłączony jeden moduł.

Rysunek 1

Schemat modułu pokazuje rysunek 2, gdzie jego złącze zawiera 4 sygnały: dwa do zasilania modułu (dopuszczalna wartość napięcia zasilającego to 3,3 V…5 V, co pozwala na użycie modułu w systemach o obniżonym napięciu zasilającym), sygnał zegarowy (CLK) oraz przesyłanych danych (DIO). Źródłem sygnału CLK jest zawsze mikrokontroler, natomiast w przypadku obsługi jedynie wyświetlacza (bez klawiatury), sygnałem DIO steruje mikrokontroler z wyjątkiem jednego bitu potwierdzenia ACK, który jest wymuszany przez TM1637.

Rysunek 2

Polecenia układu TM1637

Komunikacja z układem TM1637 opiera się na przesyłaniu jednobajtowych rozkazów za pomocą interfejsu szeregowego. Polecenia te są identyfikowane przez dwa najbardziej znaczące bity wysyłanego bajtu.

Kombinacja binarna 01xxxxxx (40 hex) oznacza polecenie konfigurujące, które na młodszej części zawiera odpowiednie szczegóły. Możliwe są:
• polecenie o kodzie 40 hex oznacza automatyczną inkrementację adresu, po wysłaniu adresu pierwszej cyfry, każdy kolejny wysłany bajt danych automatycznie trafia na następną pozycję wyświetlacza,
• polecenie o kodzie 42 hex oznacza odczyt klawiatury, w przypadku modułu z fotografii tytułowej ta możliwość nie jest wykorzystana (nie ma klawiatury),
• polecenie o kodzie 44 hex oznacza ustawienie adresu (pozycji na wyświetlaczu, gdzie ma być umieszczony znak, przeciwieństwo autoinkrementacji), każdy wyświetlany znak wymaga jawnego podania adresu konkretnej cyfry,
• polecenie o kodzie 48 hex to tryb testowy, wykorzystywany wyłącznie na etapie produkcji układu scalonego, w praktyce amatorskiej nie występuje.

(…)

——– ciach! ——–

To jest tylko fragment artykułu, którego pełna wersja ukazała się we wrześniowym numerze czasopisma Zrozumieć Elektronikę (ZE 9/2026). Pełną wersję czasopisma znajdziesz pod tym linkiem. Natomiast niepełna, okrojona wersja, pozwalająca zapoznać się z zawartością numeru ZE 9/2026 znajduje się tutaj.

Andrzej Pawluczuk
apawluczuk@vp.pl

Uwaga! Wskazówki, jak nabyć pełne wersje dowolnych numerów ZE znajdują się na stronie:
https://piotr-gorecki.pl/n11.