Obsługa wyświetlacza ze sterownikiem SSD1306
|
|
- Michał Nowak
- 6 lat temu
- Przeglądów:
Transkrypt
1 Obsługa wyświetlacza ze sterownikiem SSD36 Niewielkie wyświetlacze z matrycami OLED cieszą się dużą popularnością wśród konstruktorów projektujących interfejsy użytkownika. Ich zaletami są: bardzo dobra czytelność w różnych warunkach oświetlenia, brak konieczności podświetlania tła, mały pobór prądu oraz stosunkowo niska cena. Niewielkie wymiary mogą być zaletą w aplikacjach wymagających małych w obudów. Jednym z takich elementów jest opisywany wyświetlacz z dwukolorową matrycą OLED o przekątnej,96 cala. Jego matryca ma rozdzielczość piksele i jest sterowana przez specjalizowany sterownik SSD36 produkowany przez firmę Solomon. 6 linii umieszczonych na górze ma kolor żółty, a pozostałe są niebieskie. Podstawowe właściwości sterownika zostały pokazane w tabeli, a schemat blokowy sterownika pokazano na rysunku. Układ SSD36 ma możliwość komunikowania się z systemem nadrzędnym za pomocą magistrali równoległej w standardzie Intel 88 lub Motorola 68 oraz za pomocą interfejsu szeregowego SPI lub I 2 C. Dla aplikacji, w których jest ważna prędkość transmisji danych jest wybierana któraś z magistrali równoległych, a w pozostałych wypadkach magistrale szeregowe. Dla wielu typowych aplikacji jest wystarczająca prędkość transmisji dostępna za pomocą interfejsu szeregowego. Aktywny interfejs jest wybierany sprzętowo przez wymuszenie poziomów logicznych na wejściach konfiguracyjnych BS BS2 (tabela 2). Poziom na wejściu BS2 określa czy będzie użyty interfejs szeregowy (BS2=), czy równoległy (BS2=). W tym wyświetlaczu BS2 jest na stałe dołączony do masy i mamy możliwość wyboru tylko jednego z trzech interfejsów szeregowych. Na płytce drukowanej wyświetlacza są umieszczone dwa pola lutownicze umożliwiające ustawianie poziomów na BS i BS (fotografia 2). Fabrycznie są tam wymuszone poziomy BS= i BS=, czyli 4-przewodowy interfejs SPI. Zgodnie z tym ustawieniem są opisane wyprowadzenia płytki wyświetlacza. Oczywiście, można zmienić interfejs, ale nie widziałem powodu, aby to robić w układzie testowym, więc pozostawiłem ustawienia fabryczne Ponieważ nie przewidziano odczytywania jakichkolwiek danych ze sterownika, to SPI ma tylko linię danych DIN (MOSI z punktu widzenia hosta) oraz linię zegarową CLK. Oprócz tych linii, do przesyłania danych jest używana linia CS i D/C. Wejście CS jest standardowym sygnałem SPI uaktywniającym układ, do którego są wysyłane dane. Wykorzystując CS można do jednej magistrali dołączyć kilka wyświetlaczy każdy wybierany za pomocą odrębnej linii CS. Linia D/C jest wykorzystywana do kierowania danych albo do rejestru komend (D/C=), albo do pamięci obrazu (D/C=). Przy 3-przewodowym interfejsie SPI brak jest sygnału D/C i jest konieczne przesłanie dodatkowego bitu informującego sterownik, gdzie maja trafić dane z magistrali. Komplikuje to obsługę transmisji, bo dane są 9-bitowe i nie można wykorzystać standardowych, sprzętowych interfejsów SPI wysyłających słowa -bajtowe. Używając interfejs I 2 C trzeba dodatkowo wysłać po adresie slave bajt kontrolny. Z jednej ELEKTRONIKA PRAKTYCZNA 3/26
2 strony dodatkowa linia D/C wymaga linii portu sterownika, a z drugiej strony jej użycie przyśpiesza i upraszcza transfer danych. Przebiegi czasowe na liniach magistrali 4-przewodowej pokazano na rysunku 3. Tabela. Podstawowe właściwości sterownika SSD36 Rozdzielczość Matryca piksele Napięcie zasilania Układy logiczne +,65 +3,3 V Drivery panelu matrycy V Maksymalny prąd segmentu ma Maksymalny całkowity prąd 5 ma matrycy Kontrast matrycy 256 poziomów (programowany) Wbudowana pamięć obrazu SRAM bity Interfejsy komunikacyjne Równoległy, 8-bitowy 88/68 Szeregowy SPI 3- lub 4-liniowy Szeregowy I 2 C Funkcje akceleratora graficznego Remapowanie Oscylator Zakres temperatury pracy Ciągłe skrolowanie w poziomie Ciągłe skrolowanie w pionie Kolumn i wierszy Wbudowany w układ C Pamięć obrazu GDDRAM (Graphic Dispaly Data) Pamięć obrazu jest statyczną pamięcią RAM o organizacji bity. Każdemu bitowi pamięci odpowiada pojedynczy piksel na matrycy OLED. Pamięć o takiej organizacji nie może być bezpośrednio zapisywana przez mikrokontroler, dlatego została logicznie podzielona na 8 stron (Page.Page7, rysunek 4). Jedna strona zawiera 28 bajtów. Zapisanie bajtu do pamięci odpowiada pionowej linijce o długości 8 pikseli (rysunek 5). Aby zapewnić elastyczność przy mechanicznym mocowaniu wyświetlacza jest możliwe remapowanie segmentów: są one wybierane licząc od lewej do prawej, od 27 do. Podobnie są remapowane linie matrycy. Remapowaniem sterują dwie komendy: Set Segment Re-map (A/ A) i Set COM Output Scan Direction (C/C8). Zapisywanie danych do pamięci RAM jest adresowane przez dwa liczniki adresowe: licznik kolumn zmieniający się w zakresie 27 i licznik stron zmieniający się w zakresie 7. Dostęp do pamięci RAM powoduje automatyczne zwiększenie licznika kolumn i/lub licznika stron. Zakres zmiany adresów i sposób Rysunek. Schemat blokowy sterownika SSD36 2 ELEKTRONIKA PRAKTYCZNA 3/26
3 Tabela 2. Ustawianie interfejsu komunikacyjnego Interfejs Wejście BS BS BS2 I 2C Motorola Intel SPI 4-wire SPI 3-wire Fotografia 2. Płytka z ustawieniami interfejsu Rysunek 3. Przebiegi czasowe na 4-przewodowej magistrali SPI inkrementacji jest określany przez tryb adresowania ustawiany komendą Set Memory Addressing (2h). Pierwszym z tych trybów jest Page Addresing Mode. Zasadę adresowania w tym trybie zilustrowano na rysunku 6. Początkowy adres w pamięci jest ustalany przez komendy: Set Lower Column Start Address for Page Addressing Mode ( xf). Ta komenda zapisuje 4 młodsze bity licznika startowego adresu w pamięci RAM dla trybu adresowania stron. Set Higer Column Start Address for Page Addressing Mode (x xf). Ta komenda zapisuje 4 starsze bity licznika startowego adresu w pamięci RAM dla trybu adresowania stron. Set Page Address for Page Addressing Mode (xb xb7). Ta komenda ustala licznik adresu stron w pamięci RAM dla trybu adresowania stron. Po zapisaniu liczników każdy dostęp do pamięci RAM powoduje inkrementowanie licznika kolumn. Jeżeli licznik osiągnie wartość 27, to następny dostęp (zapis) do pamięci RAM powoduje wyzerowanie licznika kolumn, a licznik stron pozostanie bez zmian. Żeby go zmienić trzeba użyć komendy Set Page Address for Page Addressing Mode. Kolejnym trybem jest tryb adresowania horyzontalnego Horizontal Addressing Mode pokazany na rysunku 7. Po każdym zapisaniu danej do pamięci RAM jest zwiększany licznik kolumn. Jeżeli licznik osiągnie wartość końcową, to jest ustawiany na wartość początkową i jednocześnie licznik stron jest automatycznie inkrementowany. Jeżeli licznik stron i licznik kolumn osiągną wartość końcową, to są one automatycznie ustawiane na wartość początkową. Ostatni tryb, to tryb adresowania wertykalnego Vertical Addresing Mode (rysunek 8). Po każdym zapisaniu danej do pamięci RAM jest inkrementowany licznik stron. Jeżeli licznik osiągnie wartość końcową, to jest ustawiany na wartość początkową i jednocześnie jest automatycznie inkrementowany licznik kolumn. Jeżeli licznik kolumn i licznik stron osiągną wartość końcową, to są one automatycznie ustawiane na wartość początkową. Wartości początkowe i końcowe liczników kolumn i stron nie muszą mieć wartości maksymalnych adresujących całą pamięć wyświetlacza. Zakresy adresowania dla trybu horyzontalnego i wertykalnego są ustawiane przez dwie komendy: Rysunek 4. Podział pamięci obrazu na strony Rysunek 5. Organizacja strony pamięci RAM Rysunek 6. Adresowanie w trybie Page Addressing Mode Rysunek 7. Tryb adresowania horyzontalnego Rysunek 8. Tryb adresowania wertykalnego ELEKTRONIKA PRAKTYCZNA 3/26 3
4 Rysunek 9. Adresowanie horyzontalne z ograniczonym zakresem zmian adresów Listing. Konfigurowanie interfejsu SPI i linii dodatkowych SPI dev(spi_mosi, SPI_MISO, SPI_SCK); DigitalOut CS(PB_6); DigitalOut DC(PC_7); DigitalOut RES(PA_9); Listing 2. Wysłanie kodu komendy do sterownika //wysłanie danej przez SPI //********************************************** void WriteSpi(unsigned char data) dev.write(data); //zapisanie kodu komendy do sterownika SSD36 void WriteCmd(unsigned char cmd) CS=; DC=; //DC= przesłanie komendy CS=; WriteSpi(cmd); //zapisanie kodu komendy CS=; Listing 3. Zapisanie danej do pamięci RAM //zapisanie danej do pamięci obrazu sterownika SSD36 void WriteData(unsigned char data) CS=; DC=; //DC= przesłanie danej do pamięci RAM CS=; WriteSpi(data); //zapisanie danej CS=; Listing 4. Inicjalizacja sterownika wyświetlacza //inicjalizacja sterownika SSD36 void InitSSD36 (void) CS=; DC=; RES=; //_reset = ; wait(.); RES=; //_reset = ; wait(.); RES=; //_reset = ; WriteCmd(xAE); //wyłącz panel OLED WriteCmd(x); //adres koluny LOW WriteCmd(x); //adres koluny HIGH WriteCmd(x4); //adres startu linii WriteCmd(x2); //tryb adresowania strony WriteCmd(x2); WriteCmd(x8); //ustaw kontrast WriteCmd(xCF); WriteCmd(xA); //ustaw remapowanie WriteCmd(xC); //kierunek skanowania WriteCmd(xA6); //wyświetlanie bez inwersji WriteCmd(xA8); //ustaw multiplex ratio WriteCmd(x3F); ///64 WriteCmd(xD3); //ustaw display offset WriteCmd(x); //bez offsetu WriteCmd(xD5); //ustaw divide ratio/częstotliwość oscylatora WriteCmd(x8); //ramek/sec WriteCmd(xD9); //ustaw okres pre charge WriteCmd(xF); //pre charge 5 cykli, discharge cykl WriteCmd(xDA); //konfiguracja wyprowadzeń sterownika WriteCmd(x2); WriteCmd(xDB); //ustawienie vcomh WriteCmd(x4); WriteCmd(x8D); //ustawienie Charge Pump WriteCmd(x4); WriteCmd(xA4); // podłączenie zawartości RAM do panelu OLED WriteCmd(xA6); //wyłączenie inwersji wyświetlania WriteCmd(xAF); //włącza wyświetlacz DisplayCls(); Set Column Address (x2) komenda z dwoma argumentami z zakresu 27 określającymi adres kolumny początkowej i adres kolumny końcowej dla trybów adresowania horyzontalnego i wertykalnego. Set Page Address (x22) komenda z dwoma argumentami z zakresu 7 określającymi adres strony początkowej i adres strony końcowej dla trybów adresowania horyzontalnego i wertykalnego. Oba te tryby w połączeniu z komendami ustawiania adresów początku i końca obszaru umożliwiają łatwe wyświetlanie fontów mających wysokość większą niż 8 pikseli oraz małych bitmap (ikonek). Przykład takiego adresowania został pokazany na rysunku 9. Komendy sterownika SSD36 Przy okazji omawiania adresowania pamięci RAM obrazu opisałem kilka komend przeznaczonych do wyboru trybu adresowania i ustawiania liczników adresu. Sterownik SSD36 ma spory zestaw komend sterujących. Dokładne opisywanie wszystkich znacznie wykracza poza zakres tego artykułu i nie jest też konieczne, bo dane te można znaleźć w dokumentacji. W tabeli 3 umieszczono zestawienie wszystkich komend. Programowa obsługa wyświetlacza Moduł wyświetlacza jest skonfigurowany do pracy z 4-przewodową magistralą SPI. Jako sterownik użyłem modułu Nucleo z mikrokontrolerem z rodziny STM- 32F4RE produkowanym przez firmę STMicroelectronics. Główne powody tego wyboru to wbudowany programator i wsparcie w systemie bezpłatnego środowiska projektowego mbed. Wsparcie Nucleo przez mbed zapewnia łatwą konfigurację układów peryferyjnych i pozwala skupić się na głównym problemie, czyli na obsłudze wyświetlacza. Na początek zajmiemy się interfejsem komunikacyjnym SPI. W środowisku mbed trzeba zainicjalizować interfejs SPI podając linie, na których będą dostępne sygnały: MOSI (dane wyjściowe), MISO (dane wejściowe) i SCK (zegar taktujący przesyłaniem danych). Standardowo te sygnały są dostępne na złączu zgodnym ze standardem Arduino Uno modułu Nucleo. Jeżeli chcemy z nich skorzystać, wystarczy zadeklarować interfejs z predefiniowanymi definicjami. Interfejs SPI, oprócz linii MOSI, MISO i SCK, wymaga linii CS (standardowa linii interfejsu SPI) i linii DC określającej miejsce docelowe przesyłanych danych. Poza tym, sterownik SSD36 musi zostać sprzętowo wyzerowany przez wyzerowanie linii RESET. Linie interfejsu SPI, łącznie z linią RESET, należy również zdefiniować. Sposób wykonania konfiguracji sprzętowej pokazano na listingu. Do sterowania wyświetlaczem będą nam potrzebne dwie użyteczne procedury: zapisania rejestrów stepujących, czyli kodu komendy i ewentualnie jej argumentów, oraz zapisania danej do pamięci obrazu wyświetlacza zamieszczono je na listingach 2 i 3. Inicjalizowanie sterownika Jak większość sterowników wyświetlaczy, układ SSD36 po włączeniu zasilania ustawia w rejestrach konfiguracyjnych wartości domyślne. To, jakie wartości 4 ELEKTRONIKA PRAKTYCZNA 3/26
5 Tabela 3. Komendy sterownika SSD36 Kod D7 D6 D5 D4 D3 D2 D D Komenda Opis (hex) 8 Set Contrast Control Ustawienie kontrastu w zakresie od do 256 A7 A6 A5 A4 A3 A2 A A A4/A5 X Entire Display ON X= dane z RAM są wyświetlane na matrycy X= dane z RAM nie są wyświetlane A6/A7 X Set Normal/Inverse Display X= wyświetlanie normalne X= wyświetlanie w negatywie AE/AF X Set Display ON/OFF X= sterownie wyświetlaczem wyłączone (SLE- EP) X= wyświetlacz włączony -F X3 X2 X X Set Lower Column Address Młodsze cztery bity adresu kolumn for Page Addr. -F X3 X2 X X Set Higer Column Address Starsze cztery bity adresu kolumn for Page Addr. 2 Set Memory Addressing A[:]= Horizontal Addr. Mode * * * * * * A A Mode A[:]= Vertical Adde. Mode A[:]= Page Addr. Mode A[:]== invalid 2 Set Column Address A[6:] adres początku 27 B[6:] adres końca 27 Tylko dla trybów Vertical i Horizontal * A6 A5 A4 A3 A2 A A * B6 B5 B4 B3 B2 B B 22 Set Page Address A[2:] adres początku 7 * * * * * A2 A A * * * * * B2 B B B-B7 X2 X X Set Page Address for Page Addr. B[2:] adres końca 7 Tylko dla trybów Vertical i Horizontal X[2:] adres strony w trybie adresowania Page Addr. 4-7F X5 X4 X3 X2 X X Set display Start Line Ustawienie linii początkowej po zerowaniu równe A/A X Set Segment Re-map X= adres kolumny odpowiada segmentowi SEG X= adres kolumny odpowiada segmentowi SEG27 A8 Set Multiplex Ratio A[5:] =6MUX.64MUX * * A5 A4 A3 A2 A A A[5:] = 4 błędna wartość C/C8 X3 Set COM Output Scan Direction X= skanowanie COM COM[N-] X= skanowanie COM[N-] COM D3 Set Display Offset Ustawienie przesunięcia w pionie * * A5 A4 A3 A2 A A W zakresie 63 DA Set COM Pins Hardware A4= konfiguracja Sequential COM A5 A4 Configurations A4= konfiguracja AlternativeCOM A5= blokada rempowania L/R A5= odblokowanie remap. L/R D5 Set Display Clock Divide A7 A6 A5 A4 A3 A2 A A Ratio/Oscillator Frequency A[3:]+= divide ratio A[7:4]=oscillator frequency D9 Set Pre-charge period A[3:]phase period od do 5CLK A7 A6 A5 A4 A3 A2 A A A[7:4] phase2 period od do5clk DB Set Vcomh Deselect A[6:4]= ~,65xVcc A6 A5 A4 Level A[6:4]=2h ~,77xVcc A[6:4]=3h~,83Vcc 26/27 X Continous Horizontal Scroll Setup * * * * * B2 B B * * * * * C2 C C * * * * * D2 D D 29/2A X X Continous Vertical and Horizontal Scroll Setup * * * * * B2 B B * * * * * C2 C C * * * * * D2 D D * * E5 E4 E3 E2 E E 2E Deactivate Scroll Wyłączenia skrolowania 2F Activate Scroll Włączenia skrolowania X= przesuwanie w poziomie X= przesuwanie w pionie B[2:]adres strony startowej C[2:] interwał pomiędzy przesunięciami D[2:] adres strony końcowej X[:]= przesuwanie w pionie i w prawo X[:]= przesuwanie w pionie i w lewo B[2:]adres strony startowej C[2:] interwał pomiędzy przesunięciami D[2:] adres strony końcowej E[5:] offset przesunięcia w liniach ELEKTRONIKA PRAKTYCZNA 3/26 5
6 Tabela 3. cd. Kod D7 D6 D5 D4 D3 D2 D D Komenda Opis (hex) A3 Set Verital Scroll Area A[5:] ilość linii w ustalonej górnej przestrzeni * * A5 A4 A3 A2 A A B[6:] ilość linii w skrolowanej przestrzeni * B6 B5 B4 B3 B2 B B 8D Charge Pump Setting A2= pompa ładunkowa wyłączaona * * A2 A2= pompa ładunkowa włączona Rysunek. Określenie napięcia zasalania matrycy trzeba wpisać do tych rejestrów zależy od rodzaju użytej matrycy OLED i zwykle program użytkownika musi je zapisać w procesie inicjalizacji. Kompletną funkcję inicjalizacji void InitSSD36() pokazano na listingu 4. Najpierw jest przeprowadzana sekwencja sprzętowa generująca impuls zerujący o długości ms, ustawiająca bit CS i zerująca DC. Właściwa programowa inicjalizacja zaczyna się od wysłania komendy AE wyłączającej sterowanie matrycą OLED. Potem są inicjowane (zerowane) liczniki adresowe kolumn i stron oraz jest wprowadzany tryb adresowania Page Addressing Mode. Zakładamy, że wyświetlacz będzie pracował w położeniu normalnym to znaczy, że dół wyświetlacza będzie przy krawędzi płytki z wyprowadzeniami. Do tej orientacji mechanicznej jest ustawiane remapowanie, kierunek skanowania i konfiguracja wyprowadzeń sterownika. Sterownik może współpracować z różnymi matrycami, więc ma możliwość ustawienia wielu parametrów, takich jak: divide ratio, częstotliwość odświeżania oraz napięcie zasilające (prąd segmentów) matrycy OLED. Z tymi ustawieniami jest bardzo często problem. Albo mamy wyświetlacz, o którym wiemy tylko, jaki ma sterownik albo w danych katalogowych nie są podane istotne informacje tego typu. Pozostaje inicjowanie pracy układu sterującego metodą prób i błędów. W opisywanym wyświetlaczu istnieje coś w rodzaju dokumentacji technicznej, ale niestety, opisuje ona głównie komunikację ze sterownikiem, a te informacje są doskonale opisane w dokumentacji sterownika SSD36. Rysunek. Taktowanie sterownika Zacznijmy inicjowanie sterownika od ustawienia kontrastu. Prąd segmentu OLED można wyliczyć z równania I SEG =Contrast/256 I REF scale factor, w którym Contrast to wartość argumentu komendy x8 zmieniająca się w zakresie 255, a Scale Factor jest wartością stałą, równą 8. Aby móc zasilić matrycę OLED napięciem wyższym od napięcia zasilającego układy cyfrowe, w układ SSD36 wbudowano przetwornicę podwyższająca napięcie działającą na zasadzie pompy ładunkowej. Do działania takiego układu potrzebne są tylko dwa kondensatory zewnętrzne dołączone do wyprowadzeń CN, CP i C2N oraz C2P. Wartość napięcia wyjściowego określa się za pomocą rezystora zewnętrznego dołączonego do wyprowadzenia IREF. Napięcie na tym wyjściu jest równe Vcc-2,5, gdzie Vcc jest napięciem zasilającym matrycę (rysunek ). W opisywanym wyświetlaczu rezystor R ma wartość MV i powinien wymuszać prąd o wartości ok 2,5 ma ±2 ma. Powoduje on spadek na rezystorze R równy 2,5 V, zatem matryca jest zasilana napięciem 2,5 V+2,5 V=5 V. Po włączeniu zasilania sterownika przetwornica jest domyślnie wyłączona. Dlatego w procedurze inicjalizacji należy ją włączyć wysyłając komendę 8D z argumentem x4 (A2=). Po wyliczeniu prądu jednego segmentu można optymalnie dobrać wartość kontrastu dla matrycy. Ja wpisałem xdf, ale eksperymentowałem również z innymi wartościami. Sterownik SSD36 ma wbudowany układ taktowania zbudowany z wewnętrznego oscylatora RC i programowanego dzielnika (rysunek ). Do taktowania można tez użyć zewnętrznego zegara podawanego na wejście CL. Stopnień podziału częstotliwości programuje się w zakresie od do 6 za pomocą komendy D5 Set Display Clock Divide Ratio/Oscillator Frequency. Najmłodsze 4 bity zawierają wartość D, a DCLK=F OSC /D+. Jak można zobaczyć w procedurze inicjalizacji argument komendy D5 ma wartość x8, czyli D+=. Sterownik jest taktowany częstotliwością równą częstotliwości F OSC. Cztery starsze bity argumentu zawierają współczynnik K określający ile cykli zegara jest przeznaczonych na wyświetlenie jednego rzędu (linijki). Częstotliwość, z którą są wyświetlane ramki można wyliczyć z równania FF FFFFFF = FF OOOOOO DD KK NNNN. oooo MMMMMM Mamy D=, K=8, współczynnik multipleksowania Mux jest ustawiany komendą A8 i wynosi 64. Zatem F FRM =F OSC /(8 64)=F OSC /52. Częstotliwość oscylatora to około 37 khz, a F FRM wynosi ok. 72 Hz. Większość ustawień inicjalizacji została dobrana na podstawie informacji zawartych w dokumentacji sterownika. Ostatnią czynnością inicjalizacji jest wyczyszczenie (wyzerowanie) pamięci obrazu RAM, aby 6 ELEKTRONIKA PRAKTYCZNA 3/26
7 po inicjalizacji na ekranie nie wyświetlały się przypadkowe wartości. Funkcję czyszczenia wyświetlacza pokazano na listingu 5. Działa ona poprawnie dla trybu adresowania Page Addressing Mode ustawionego w czasie inicjalizacji sterownika. Funkcja void DisplayCls() najpierw zeruje bufor w pamięci mikrokontrolera (dwuwymiarowa tablica), a potem zawartość tego bufora przepisuje do pamięci obrazu RAM sterownika funkcja RefreshRAM(). Na listingu 6 pokazano procedurę void SetCol- Start() ustawiająca adres kolumny na początek (x). Praca w trybie tekstowym Wyświetlacz graficzny doskonale nadaje się do wyświetlania tekstu. W typowych wyświetlaczach alfanumerycznych czcionki mają jednakową wielkość zależną od wielkości wyświetlacza i mogą być wyświetlane w ustalonych wierszach. W wyświetlaczu graficznym można definiować czcionki o różnych rozmiarach (zależnie od potrzeb) i umieszczać je w dowolnym miejscu wyświetlacza, o ile tylko tam się zmieszczą. Przy adresowaniu Page Addressing Mode jest łatwo zdefiniować znaki o wysokości 8 pikseli lub wielokrotności 8. Najłatwiej jest definiować znaki np. 8 6 pikseli umieszczając w pamięci generatora znaków 6 kolejnych bajtów łatwo to sobie wyobrazić patrząc na rysunek 7. W programowych bibliotekach obsługujących wyświetlacze graficzne stosowałem z powodzeniem tę metodę. Mam zdefiniowaną tablice generatora znaków i funkcje służące do wyświetlania znaku na podstawie jego kodu ASCII. Niestety w tym wyświetlaczu znaki o wysokości 8 pikseli są nieczytelne. Wynika to po prostu z małych wymiarów w tym wyświetlaczu wartością graniczną jest wysokość 2 pikseli, a najlepiej, gdyby znaki miały 6 lub więcej pikseli. Do rysowania znaków o dowolnej wielkości najlepiej nadaje się funkcja, która potrafi zaświecić lub zgasić pojedynczy piksel o dowolnych współrzędnych x, y niezależnych od trybu adresowania. Taką funkcję pokazano na listingu 7. Jak łatwo zauważyć, funkcja void DrawPoint() z list. 7 modyfikuje zawartość dwuwymiarowego bufora DispBuff umieszczonego w pamięci RAM mikrokontrolera hosta i nie zapisuje modyfikacji do sterownika SSD36. Jak zobaczymy dalej, wszystkie procedury wyświetlania modyfikują tylko ten bufor i aby zobaczyć efekt tych modyfikacji trzeba przepisać całą zawartość DispBuff do pamięci sterownika wywołując funkcję void RefreshRAM() pokazaną na list. 5. Mając do dyspozycji procedurę umożliwiającą zaświecenie/zgaszenie piksela o konkretnej współrzędnej możemy rysować proste, figury, okręgi, ale też rysować znaki alfanumeryczne o dowolnej wielkości. Żeby to robić, potrzebne są wzorce znaków umieszczone w tablicy generatorze znaków. Ręczne tworzenie wzorców znaków jest możliwe, ale to żmudne zajęcie. Istnieje szereg programów tworzących wzorce o zadanej wielkości znaku. W Internecie można też znaleźć gotowe tablice z wzorcami. Ja skorzystałem z gotowych tablic ze zdefiniowanymi znakami o wielkości 2 6 pikseli i 6 8 pikseli. Tablice są tak zbudowane, że kod ASCII znaku adresuje grupę bajtów definiujących ten znak. To znacznie upraszcza procedury wyświetlające łańcuchy znaków (napisy). Na przykład, tablica dla znaków o wysokości 2 i szerokości 6 pikseli jest dwuwymiarową tablicą const char c_chfont26[95][2] i zawiera 95 wzorców znaków. Każdy element wzorca znaków ma 2 Listing 5. Czyszczenie zawartości wyświetlacza //********************************************** //zeruj bufor wyświetlacza //i zapisz jego zwartość do RAM obrazu //********************************************** void DisplayCls(unsigned char fill) unsigned char i, j; for (i = ; i < 8; i ++) for (j = ; j < 28; j ++) DispBuff[j][i] = fill; RefreshRAM();//zawartość bufora do RAM obrazu ***** //zapisanie zawartości bufora do RAM wyświetlacza ***** void RefreshRAM(void) uint8_t i, j; for (i = ; i < 8; i ++) WriteCmd(xB + i); SetColStart(); for (j = ; j < 28; j ++) WriteData(DispBuff[j][i]); Listing 6. Zerowanie licznika kolumn void SetColStart(void) WriteCmd(x); //low WriteCmd(x); //high Listing 7. Rysowanie punktu o ustalonych współrzędnych ****** ***** // rysowanie punktu w buforze RAM mikrokontrolera Hosta ****** ***** void DrawPoint(unsigned char x,unsigned char y, unsigned char p) uint8_t chpos, chbx, chtemp = ; if (x > 27 y > 63) return; chpos = 7 - y / 8; chbx = y % 8; chtemp = << (7 - chbx); if (p) DispBuff[x][chPos] = chtemp; else DispBuff[x][chPos] &= ~chtemp; bajtów i definiuje znak o szerokości 6 pikseli, ale wykorzystuje przestrzeń 2 8 pikseli (listing 8). Dla znaków 6 8 pikseli jest zdefiniowana druga tablica const uint8_t c_ chfont68[95][6]. Mając tablicę generatora znaków i procedurę DrawPoint() potrafiącą zapalać i gasić bit w buforze pamięci mikrokontrolera odpowiadający zawartości pamięci RAM sterownika, a tym samym odpowiadający pikselowi na matrycy OLED można napisać procedurę rysującą znak w pamięci RAM mikrokontrolera. Pamiętamy, że aby ten znak się wyświetlił, trzeba przepisać zawartość DispBuff do pamięci RAM wywołując funkcję void RefreshRAM(). Na listingu 9 pokazano procedurę void DisplayChar() z argumentami: X i Y współrzędne początku znaku na ekranie. Chr kod ASCII wyświetlanego znaku. Size wielkość znaku 2 lub 6 pikseli. Mode= wyświetlanie normalne, mode= wyświetlanie w negatywie. Zależnie od wartości argumentu size, bajty wzorca są pobierane z tablicy c_chfont26[95][2] lub z tablicy c_chfont68[95][6]. Kiedy argument mode jest ELEKTRONIKA PRAKTYCZNA 3/26 7
8 Listing 8. Fragment tablicy generatora znaków 2 6 pikseli const char c_chfont26[95][2] = x,x,x,x,x,x,x,x,x,x,x,x, //, x,x,x,x,x3f,x4,x,x,x,x,x,x, //!, x,x,x3,x,x4,x,x3,x,x4,x,x,x, //,2 x9,x,xb,xc,x3d,x,xb,xc,x3d,x,x9,x, // #,3 x8,xc,x24,x4,x7f,xe,x22,x4,x3,x8,x,x, // $,4 x8,x,x24,xc,xb,x,xd,x8,x32,x4,x,x8, // %,5 x3,x8,xc,x4,x27,x4,xc,x8,x7,x4,x,x4, // &,6 x,x,x6,x,x,x,x,x,x,x,x,x, //,7 x,x,x,x,x,x,xf,x8,x2,x4,x4,x2, // (,8 x,x,x4,x2,x2,x4,xf,x8,x,x,x,x, // ),9 x9,x,x6,x,xf,x8,x6,x,x9,x,x,x, // *, x4,x,x4,x,x3f,x8,x4,x,x4,x,x,x, // +, x,x,x,x6,x,x,x,x,x,x,x,x, //,,2 x4,x,x4,x,x4,x,x4,x,x4,x,x,x, // -,3 x,x,x,x4,x,x,x,x,x,x,x,x, //.,4 x,x2,x,xc,x6,x,x38,x,x4,x,x,x, // /,5 xf,x8,x2,x4,x2,x4,x2,x4,xf,x8,x,x, //,6 x,x,x,x4,x3f,xc,x,x4,x,x,x,x, //,7 x8,xc,x2,x4,x22,x4,x24,x4,x8,x4,x,x, // 2,8 x,x8,x2,x4,x24,x4,x24,x4,xb,x8,x,x, // 3,9 x2,x,xd,x,x,x,x3f,xc,x,x4,x,x, // 4,2 x3c,x8,x24,x4,x24,x4,x24,x4,x23,x8,x,x, // 5,2 xf,x8,x24,x4,x24,x4,x34,x4,x3,x8,x,x, // 6,22 x3,x,x2,x,x27,xc,x38,x,x2,x,x,x, // 7,23 xb,x8,x24,x4,x24,x4,x24,x4,xb,x8,x,x, // 8,24 xc,x,x22,xc,x22,x4,x22,x4,xf,x8,x,x, // 9,25 Listing 9. Wyświetlenie jednego znaku *************** //wyświetlenie jednego znaku, argumenty: //x,y - współrzędne na ekranie //Chr - kod ASCII znaku //size - rozmiar 2, lub 6 //mode= - tryb normalny, mode= znak wyświetlany w negatywie *************** void DisplayChar(uint8_t x, uint8_t y, uint8_t Chr, uint8_t size, uint8_t mode) uint8_t i, j; uint8_t chtemp, chypos = y; Chr =Chr - ; for (i = ; i < size; i ++) if (size == 2) if (mode) chtemp = c_chfont26[chr][i]; else chtemp = ~c_chfont26[chr][i]; else if (mode) chtemp = c_chfont68[chr][i]; else chtemp = ~c_chfont68[chr][i]; for (j = ; j < 8; j ++) if (chtemp & x8) DrawPoint(x, y, ); else DrawPoint(x, y, ); chtemp <<= ; y ++; if ((y - chypos) == size) y = chypos; x ++; break; Listing. Procedura wyświetlania komunikatów *************************** //wyświetlenie łańcucha znaków - napisu //argumenty //x,y - współrzędne na ekranie //*txt - wskaźnik na początek bufora zwierającego łańcuch znaków ASCII do wyświetlenia //size - wysokość znaków 2, lub 6 pikseli //mode= znaki wyświetlane normalnie, mode= znaki wyświetlane w negatywie *************************** void DispTxt(uint8_t x, uint8_t y, const uint8_t *txt, uint8_t size, uint8_t mode) while (*txt!= \ ) if (x > (SSD36_WIDTH - size / 2)) x = ; y += size; if (y > (SSD36_HEIGHT - size)) y = x = ; DisplayCls(x); DisplayChar(x, y, *txt, size, mode); x += size / 2; txt ++; 8 ELEKTRONIKA PRAKTYCZNA 3/26
9 Listing. Wyświetlanie w trybie tekstowym int main (void) InitSSD36 (); DispTxt(,, Test wyswietlacz,6,); //znaki 6pikseli obszar żółty DispTxt(,6, Test wyswietlacz OLED,2,); //znaki 2 pikseli negatyw DispTxt(,32, Sterownik,6,); //znaki 6 pikseli DispTxt(76,36, SSD36,2,); //znaki 2 pikseli RefreshRAM(); //przepisz do sterownika SSD36 while(); Listing 2. Wyświetlenie bitmapy *** //rysuj bitmapę //argumenty //x,y współrzędne początku bitmapy //*bmp wskaźnik na tablicę z przekonwertowaną bitmapą //width - szerokość bitmapy //height - wysokość bitmapy *** void DrawBmp(uint8_t x, uint8_t y, const uint8_t *bmp, uint8_t width, uint8_t height) uint6_t i, j, bytewidth = (width + 7) / 8; for(j = ; j < height; j ++) for(i = ; i < width; i ++ ) if(*(bmp + j * bytewidth + i / 8) & (28 >> (i & 7))) DrawPoint(x + i, y + j, ); Fotografia 2. Wyświetlanie testowych napisów o wysokości 6 i 2 pikseli Fotografia 3. Pełnowymiarowa bitmapa Fotografia 4. Przykład wyświetlenia piksele ikonek wyzerowany, to dodatkowo wartość pobranego bajtu jest negowana. Potem jest analizowany każdy bit bajtu wzorca i zależnie od jego wartości DrawPoint() zapisuje do bufora DispBuff odpowiednią wartość. Mając procedurę wyświetlania jednego znaku o dowolnych współrzędnych można napisać procedurę wyświetlającą łańcuch znaków od określonej pozycji. Na listingu pokazano taką procedurę void DispTxt() przyjmującą następujące argumenty: X i Y współrzędne początku znaku na ekranie. *txt wskaźnik na początek bufora z łańcuchem znaków. Size wielkość znaku 2, lub 6 pikseli. Mode= wyświetlanie normalne, mode= wyświetlanie w negatywie. Po każdym wyświetleniu jednego znaku na podstawie informacji o maksymalnych współrzędnych ekranu wyświetlacza (SSD36_WIDTH i SSD36_HEIGHT) oraz wartości argumentu size są wyliczane współrzędne kolejnego znaku. Jeżeli kolejny znak nie zmieści się w całości w linijce, to tekst jest automatycznie przenoszony na początek kolejnej linijki (CR, LF). Efekt działania krótkiego fragmentu programu z listingu jest pokazany na rysunku 2. Wyświetlanie bitmap Każda czcionka wyświetlana w trybie tekstowym jest bitmapą rysowaną na ekranie. Te bitmapy wzorce znaków umieszczane są w tablicy generatora znaków i mają jednakową wielkość. Jednak często zachodzi konieczność wyświetlania bitmap o różnych rozmiarach. Pewnym problemem jest konwertowanie monochromatycznych ja używam programu bmp2.exe służącego do konwertowania bitmap monochromatycznych o niewielkich rozmiarach na tablicę w języku C. Kiedy już mamy skonwertowana bitmapę, to procedura jej wyświetlania jest stosunkowo prosta pokazano ją na fotografii 2. Na fotografii 3 pokazano pełnowymiarową bitmapę piksele, a na fotografii 4 kilka małych bitmap ikon wyświetlanych w żółtym obszarze matrycy. Tomasz Jabłoński, EP ELEKTRONIKA PRAKTYCZNA 3/26 9
Programowanie Mikrokontrolerów
Programowanie Mikrokontrolerów Wyświetlacz alfanumeryczny oparty na sterowniku Hitachi HD44780. mgr inż. Paweł Poryzała Zakład Elektroniki Medycznej Alfanumeryczny wyświetlacz LCD Wyświetlacz LCD zagadnienia:
Wyświetlacze graficzne : 162x64 z kontrolerem S1D x60 z kontrolerem S1D15710
S1D15705 Wyświetlacze graficzne : 162x64 z kontrolerem S1D15705 219x60 z kontrolerem S1D15710 S1D15710 Wyświetlacze S1D15705/S1D15710 są graficznymi wyświetlaczami ciekłokrystalicznymi. Wyposażone są w
Renesas Synergy interfejsy szeregowe (1)
Renesas Synergy interfejsy szeregowe (1) Interfejsy szeregowe są bardzo ważnym elementem budowania systemów mikroprocesorowych. Wiele elementów zewnętrznych, takich jak wyświetlacze, czujniki, moduły komunikacyjne
Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780
Dane techniczne : Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780 a) wielkość bufora znaków (DD RAM): 80 znaków (80 bajtów) b) możliwość sterowania (czyli podawania kodów znaków) za pomocą
Sterowanie wyświetlaczem graficznym OLED typu DD12832YW-1A
kurs Sterowanie wyświetlaczem graficznym OLED typu DD12832YW-1A Wyświetlacze wykonywane w technologii OLED wzbudzają duże zainteresowanie, ponieważ w odróżnieniu od matryc LCD, które do działania potrzebują
Alternatywa dla alfanumerycznych wyświetlaczy LCD
Alternatywa dla alfanumerycznych wyświetlaczy LCD Jednym z ważniejszych elementów urządzeń sterowanych mikrokontrolerem jest interfejs użytkownika. Od tego, z jakich komponentów jest zbudowany i jak jest
1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych
Dodatek A Wyświetlacz LCD. Przeznaczenie i ogólna charakterystyka Wyświetlacz ciekłokrystaliczny HY-62F4 zastosowany w ćwiczeniu jest wyświetlaczem matrycowym zawierającym moduł kontrolera i układ wykonawczy
Pierwsze kroki z FPGA (9)
Pierwsze kroki z FPGA (9) Obsługa z kontrolerem SSD1331 Celem projektu było obsłużenie sprzętowego kontrolera kolorowego za pomocą układu FPGA zestawu maximator. Zastosowany w przykładzie wyświetlacz wyposażono
Kurs programowania mikrokontrolerów KURS PIC Kurs programowania mikrokontrolerów PIC (6) Sterowanie kolorowym wyświetlaczem Nokii 3510i
Kurs programowania mikrokontrolerów KURS PIC Kurs programowania mikrokontrolerów PIC (6) Sterowanie kolorowym wyświetlaczem Nokii 3510i Graficzne wyświetlacze z telefonów komórkowych są chętnie stosowane.
Pierwsze kroki z FPGA (9)
Pierwsze kroki z FPGA (9) Obsługa z kontrolerem SSD1331 Celem projektu było obsłużenie sprzętowego kontrolera kolorowego za pomocą układu FPGA zestawu maximator. Zastosowany w przykładzie wyświetlacz wyposażono
Programowanie mikrokontrolerów. 8 listopada 2007
Programowanie mikrokontrolerów Marcin Engel Marcin Peczarski 8 listopada 2007 Alfanumeryczny wyświetlacz LCD umożliwia wyświetlanie znaków ze zbioru będącego rozszerzeniem ASCII posiada zintegrowany sterownik
3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8
3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8 Układ PCF 8583 jest pobierającą małą moc, 2048 bitową statyczną pamięcią CMOS RAM o organizacji 256 x 8 bitów. Adresy i dane są przesyłane szeregowo
Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa
Projekt MARM Dokumentacja projektu Łukasz Wolniak Stacja pogodowa 1. Cel projektu Celem projektu było opracowanie urządzenia do pomiaru temperatury, ciśnienia oraz wilgotności w oparciu o mikrokontroler
ADVANCE ELECTRONIC. Instrukcja obsługi aplikacji. Modbus konfigurator. Modbus konfigurator. wersja 1.1
Instrukcja obsługi aplikacji 1 1./ instalacja aplikacji. Aplikacja służy do zarządzania, konfigurowania i testowania modułów firmy Advance Electronic wyposażonych w RS485 pracujących w trybie half-duplex.
2. Architektura mikrokontrolerów PIC16F8x... 13
Spis treści 3 Spis treœci 1. Informacje wstępne... 9 2. Architektura mikrokontrolerów PIC16F8x... 13 2.1. Budowa wewnętrzna mikrokontrolerów PIC16F8x... 14 2.2. Napięcie zasilania... 17 2.3. Generator
Wstęp...9. 1. Architektura... 13
Spis treści 3 Wstęp...9 1. Architektura... 13 1.1. Schemat blokowy...14 1.2. Pamięć programu...15 1.3. Cykl maszynowy...16 1.4. Licznik rozkazów...17 1.5. Stos...18 1.6. Modyfikowanie i odtwarzanie zawartości
Instytut Teleinformatyki
Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Systemy Czasu Rzeczywistego Programowanie wyświetlacza graficznego LCD laboratorium: 01 autor: mgr inż. Paweł Pławiak
Mikroprocesory i Mikrosterowniki Laboratorium
Laboratorium Ćwiczenie 4 Magistrala SPI Program ćwiczenia: konfiguracja transmisji danych między mikrokontrolerem a cyfrowym czujnikiem oraz sterownikiem wyświetlaczy 7-segmentowych przy użyciu magistrali
CECHY URZĄDZENIA: Podłączenie wyświetlacza
CECHY URZĄDZENIA: Napięcie zasilania: 230 VAC; Średni pobór prądu (gdy wyświetlany jest tekst) 0,25A; Maksymalny pobór prądu 0,45 A; Matryca LED o wymiarach 32 x 128 punktów, zbudowana z czerwonych diod
interfejs szeregowy wyświetlaczy do systemów PLC
LDN SBCD interfejs szeregowy wyświetlaczy do systemów PLC SEM 08.2003 Str. 1/5 SBCD interfejs szeregowy wyświetlaczy do systemów PLC INSTRUKCJA OBSŁUGI Charakterystyka Interfejs SBCD w wyświetlaczach cyfrowych
Obsługa modułu wyświetlacza LCD
Kurs programowania mikrokontrolerów PIC (4) Obsługa modułu wyświetlacza LCD Dodatkowe materiały na CD/FTP Niestety, jeszcze nie doczekaliśmy się urządzeń, które komunikują się z nami w ludzki sposób, tzn.
Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości
Politechnika Lubelska Wydział Elektrotechniki i Informatyki PRACA DYPLOMOWA MAGISTERSKA Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości Marcin Narel Promotor: dr inż. Eligiusz
Komunikacja w mikrokontrolerach Laboratorium
Laboratorium Ćwiczenie 4 Magistrala SPI Program ćwiczenia: konfiguracja transmisji danych między mikrokontrolerem a cyfrowym czujnikiem oraz sterownikiem wyświetlaczy 7-segmentowych przy użyciu magistrali
Obsługa wyświetlaczy graficznych z wbudowanym kontrolerem S6B1713, część 2 Przykłady dla mikrokontrolera AT91SAM7S256
Obsługa wyświetlaczy graficznych z wbudowanym kontrolerem S6B1713, część 2 Przykłady dla mikrokontrolera AT91SAM7S256 Od wielu lat dużą popularnością cieszą się sterowniki wyświetlaczy graficznych typu
1. Cel ćwiczenia. Celem ćwiczenia jest zestawienie połączenia pomiędzy dwoma sterownikami PLC za pomocą protokołu Modbus RTU.
1. Cel ćwiczenia Celem ćwiczenia jest zestawienie połączenia pomiędzy dwoma sterownikami PLC za pomocą protokołu Modbus RTU. 2. Porty szeregowe w sterowniku VersaMax Micro Obydwa porty szeregowe sterownika
Alfanumeryczny wyświetlacz LCD
Tomasz Charoński Mateusz Lango Architektura Systemów Komputerowych Wprowadzenie Inteligentne wyświetlacze alfanumeryczne LCD są elementem coraz częściej spotykanym w sprzęcie powszechnego użytku: od urządzeń
Zespół Szkół Technicznych. Badanie wyświetlaczy LCD
Zespół Szkół Technicznych Badanie wyświetlaczy LCD WYŚWIETLACZE LCD CZĘSC TEORETYCZNA ZALETY: ) mały pobór mocy, 2) ekonomiczność pod względem zużycia energii (pobór prądu przy 5V mniejszy niż 2mA), 3)
Kurs programowania mikrokontrolerów PIC (5)
KURS Kurs programowania mikrokontrolerów PIC (5) Obsługa graficznych wyświetlaczy LCD Dodatkowe materiały na CD/FTP Graficzne wyświetlacze LCD powoli stają się jednym z zasadniczych elementów interfejsu
Magistrala SPI. Linie MOSI i MISO sąwspólne dla wszystkich urządzeńna magistrali, linia SS jest prowadzona do każdego Slave oddzielnie.
Magistrala SPI Magistrala SPI składa się z linii: MOSI Master output Slave input MISO Master input Slave Output SCK Clock SS Slave select (CS Chip Select lub CE Chip Enable) Sygnał taktujący transmisję
Szkolenia specjalistyczne
Szkolenia specjalistyczne AGENDA Programowanie mikrokontrolerów w języku C na przykładzie STM32F103ZE z rdzeniem Cortex-M3 GRYFTEC Embedded Systems ul. Niedziałkowskiego 24 71-410 Szczecin info@gryftec.com
Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307
Język C Wykład 9: Mikrokontrolery cz.2 Łukasz Gaweł Chemia C pokój 307 lukasz.gawel@pg.edu.pl Pierwszy program- powtórka Częstotliwość zegara procesora μc (należy sprawdzić z kartą techniczną μc) Dodaje
dokument DOK 02-05-12 wersja 1.0 www.arskam.com
ARS3-RA v.1.0 mikro kod sterownika 8 Linii I/O ze zdalną transmisją kanałem radiowym lub poprzez port UART. Kod przeznaczony dla sprzętu opartego o projekt referencyjny DOK 01-05-12. Opis programowania
ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!
ćwiczenie nr 7 str.1/1 ĆWICZENIE 7 Wprowadzenie do funkcji specjalnych sterownika LOGO! 1. CEL ĆWICZENIA: zapoznanie się z zaawansowanymi możliwościami mikroprocesorowych sterowników programowalnych na
Laboratorium Komputerowe Systemy Pomiarowe
Jarosław Gliwiński, Łukasz Rogacz Laboratorium Komputerowe Systemy Pomiarowe ćw. Zastosowanie standardu VISA do obsługi interfejsu RS-232C Data wykonania: 03.04.08 Data oddania: 17.04.08 Celem ćwiczenia
ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM
ĆWICZENIE 5 TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM Wiadomości wstępne: Port szeregowy może pracować w czterech trybach. Tryby różnią się między sobą liczbą bitów
Kod produktu: MP01611-ZK
ZAMEK BEZSTYKOWY RFID ZE ZINTEGROWANĄ ANTENĄ, WYJŚCIE RS232 (TTL) Moduł stanowi gotowy do zastosowania bezstykowy zamek pracujący w technologii RFID dla transponderów UNIQUE 125kHz, zastępujący z powodzeniem
Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1 PAMIĘCI SZEREGOWE EEPROM Ćwiczenie 3 Opracował: dr inŝ.
Stary wyświetlacz, nowe problemy...
notatnik konstruktora Wyświetlacz graficzny do Nokii 3310 Stary wyświetlacz, nowe problemy... Wyświetlacze LCD od telefonów komórkowych idealnie się nadają do zastosowania w układach z mikrokontrolerem.
Technika Mikroprocesorowa
Technika Mikroprocesorowa Dariusz Makowski Katedra Mikroelektroniki i Technik Informatycznych tel. 631 2648 dmakow@dmcs.pl http://neo.dmcs.p.lodz.pl/tm 1 System mikroprocesorowy? (1) Magistrala adresowa
o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)
O autorze (9) Podziękowania (10) Wstęp (11) Pobieranie przykładów (12) Czego będę potrzebował? (12) Korzystanie z tej książki (12) Rozdział 1. Programowanie Arduino (15) Czym jest Arduino (15) Instalacja
ISBN Copyright by Wydawnictwo BTC Legionowo 2008
Duża popularność graficznych wyświetlaczy LCD powoduje, że w coraz większej liczbie aplikacji warto byłoby wykorzystać ich możliwości (np. dla zwiększenia atrakcyjności urządzenia lub ułatwienia jego obsługi).
Kod produktu: MP01105
MODUŁ INTERFEJSU KONTROLNO-POMIAROWEGO DLA MODUŁÓW Urządzenie stanowi bardzo łatwy do zastosowania gotowy interfejs kontrolno-pomiarowy do podłączenia modułów takich jak czujniki temperatury, moduły przekaźnikowe,
Ćwiczenie 7 Matryca RGB
IMiO PW, LPTM, Ćwiczenie 7, Matryca RGB -1- Ćwiczenie 7 Matryca RGB IMiO PW, LPTM, Ćwiczenie 7, Matryca RGB -2-1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z inną oprócz RS - 232 formą szeregowej
MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN
MODBUS RTU wersja M1.14 protokół komunikacyjny do wyświetlaczy SEM 04.2010 Str. 1/5 MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN W wyświetlaczach LDN protokół MODBUS RTU wykorzystywany
Kod produktu: MP01611
CZYTNIK RFID ZE ZINTEGROWANĄ ANTENĄ, WYJŚCIE RS232 (TTL) Moduł stanowi tani i prosty w zastosowaniu czytnik RFID dla transponderów UNIQUE 125kHz, umożliwiający szybkie konstruowanie urządzeń do bezstykowej
Wyświetlacz graficzny LCD ze sterownikiem
Wyświetlacz graficzny LCD ze sterownikiem Samsung S6B0724 sterowanie w języku C od podstaw W artykule zajmiemy się obsługą sterownika S6B0724 produkowanego przez firmę Samsung. Sterownik ten stosowany
SML3 październik
SML3 październik 2005 16 06x_EIA232_4 Opis ogólny Moduł zawiera transceiver EIA232 typu MAX242, MAX232 lub podobny, umożliwiający użycie linii RxD, TxD, RTS i CTS interfejsu EIA232 poprzez złącze typu
AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)
AVR DRAGON INSTRUKCJA OBSŁUGI (wersja 1.0) ROZDZIAŁ 1. WSTĘP... 3 ROZDZIAŁ 2. ROZPOCZĘCIE PRACY Z AVR DRAGON... 5 ROZDZIAŁ 3. PROGRAMOWANIE... 8 ROZDZIAŁ 4. DEBUGOWANIE... 10 ROZDZIAŁ 5. SCHEMATY PODŁĄCZEŃ
3.4. Opis konfiguracji layoutów.
Definicja layout-ów dla tablicy odczytywana jest z tabeli w bazie danych: [UnitId_System] Gdańsk = 42, Gdynia = 43 [UnitId_Subsytem] 6 = TZT, 7 = ZZT [UnitId_Unit] identyfikator obiektu [Update_TimeStamp]
Kod produktu: MP01611-ZK
ZAMEK BEZSTYKOWY RFID ZE ZINTEGROWANĄ ANTENĄ, WYJŚCIE RS232 (TTL) Moduł stanowi gotowy do zastosowania bezstykowy zamek pracujący w technologii RFID dla transponderów UNIQUE 125kHz, zastępujący z powodzeniem
Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury
Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury Cel ćwiczenia: Głównym celem ćwiczenia jest nauczenie się obsługi klawiatury. Klawiatura jest jednym z urządzeń wejściowych i prawie zawsze występuje
GND(VSS) i VCC - masa i zasilanie. V0 - regulacja kontrastu
Programowanie wyświetlacza LCD według: http://radziu.dxp.pl Wyświetlacz graficzny 2 x 16 ma 2 wiersze, 16 znaków w wierszu, każdy znak jest wyświetlany w matrycy 5 x 8 pikseli. (2*8 wierszy * 5*16 kolumn
STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107
Zestaw uruchomieniowy dla mikrokontrolerów STM32F107 STM32 Butterfly Zestaw STM32 Butterfly jest platformą sprzętową pozwalającą poznać i przetestować możliwości mikrokontrolerów z rodziny STM32 Connectivity
IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO
IC200UDR002 8 wejść dyskretnych 24 VDC, logika dodatnia/ujemna. Licznik impulsów wysokiej częstotliwości. 6 wyjść przekaźnikowych 2.0 A. Port: RS232. Zasilanie: 24 VDC. Sterownik VersaMax Micro UDR002
Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej
Struktura stanowiska laboratoryjnego Na rysunku 1.1 pokazano strukturę stanowiska laboratoryjnego Z80 z interfejsem częstościomierza- czasomierz PFL 21/22. Rys.1.1. Struktura stanowiska. Interfejs częstościomierza
Arduino dla początkujących. Kolejny krok Autor: Simon Monk. Spis treści
Arduino dla początkujących. Kolejny krok Autor: Simon Monk Spis treści O autorze Podziękowania Wstęp o Pobieranie przykładów o Czego będę potrzebował? o Korzystanie z tej książki Rozdział 1. Programowanie
STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107
Zestaw uruchomieniowy dla mikrokontrolerów STM32F107 STM32Butterfly2 Zestaw STM32Butterfly2 jest platformą sprzętową pozwalającą poznać i przetestować możliwości mikrokontrolerów z rodziny STM32 Connectivity
INSTRUKCJA OBSŁUGI. Przekaźnik czasowy ETM ELEKTROTECH Dzierżoniów. 1. Zastosowanie
INSTRUKCJA OBSŁUGI 1. Zastosowanie Przekaźnik czasowy ETM jest zadajnikiem czasowym przystosowanym jest do współpracy z prostownikami galwanizerskimi. Pozwala on załączyć prostownik w stan pracy na zadany
Politechnika Wrocławska
Politechnika Wrocławska Instytut Cybernetyki Technicznej Wizualizacja Danych Sensorycznych Projekt Kompas Elektroniczny Prowadzący: dr inż. Bogdan Kreczmer Wykonali: Tomasz Salamon Paweł Chojnowski Wrocław,
PRUS. projekt dokumentacja końcowa
Adrian Antoniewicz Marcin Dudek Mateusz Manowiecki 17.01.2007 PRUS projekt dokumentacja końcowa Temat: Układ zdalnego sterowania (za pomocą interfejsu RS-232) wyświetlaczem LCD. Spis treści: 1. 2. 3. 4.
Obsługa graficznych wyświetlaczy TFT z chipsetem FSA506 Kurs Obsługa graficznych wyświetlaczy TFT z chipsetem FSA506
Obsługa graficznych wyświetlaczy TFT z chipsetem FSA506 Kurs Obsługa graficznych wyświetlaczy TFT z chipsetem FSA506 W dobie ekspansywnego rozwoju elektroniki użytkowej nikogo nie dziwi już fakt, iż nawet
ZL10PLD. Moduł dippld z układem XC3S200
ZL10PLD Moduł dippld z układem XC3S200 Moduły dippld opracowano z myślą o ułatwieniu powszechnego stosowania układów FPGA z rodziny Spartan 3 przez konstruktorów, którzy nie mogą lub nie chcą inwestować
ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32
ZL15AVR Zestaw uruchomieniowy dla mikrokontrolerów ATmega32 ZL15AVR jest uniwersalnym zestawem uruchomieniowym dla mikrokontrolerów ATmega32 (oraz innych w obudowie 40-wyprowadzeniowej). Dzięki wyposażeniu
Wbudowane układy komunikacyjne cz. 1 Wykład 10
Wbudowane układy komunikacyjne cz. 1 Wykład 10 Wbudowane układy komunikacyjne UWAGA Nazwy rejestrów i bitów, ich lokalizacja itd. odnoszą się do mikrokontrolera ATmega32 i mogą być inne w innych modelach!
Karta katalogowa JAZZ OPLC JZ20-R31
Karta katalogowa JAZZ OPLC JZ20-R31 W tym dokumencie znajduje się specyfikacja Unitronics Jazz Micro-OPLC JZ20-R31. Dodatkowe informacje znajdują się na płycie instalacyjnej CD Unitronics i w bibliotece
Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.
Sprawozdanie z projektu MARM Część druga Specyfikacja końcowa Prowadzący: dr. Mariusz Suchenek Autor: Dawid Kołcz Data: 01.02.16r. 1. Temat pracy: Układ diagnozujący układ tworzony jako praca magisterska.
4. Karta modułu Slave
sygnały na magistralę. Można wyróżnić trzy typy układów scalonych takie jak bramki o otwartym kolektorze wyjściowym, bramki trójstanowe i bramki o przeciwsobnym wzmacniaczu wyjściowym. Obciążalność prądową
Program EDYTOR-AS-OUX
Z.S.E. ASTER ul. Brzozowa 13 87-100 Toruń http:\\www.asterlm.mga.com.pl E-mail: asterlm@mga.com.pl m.lewndowski.aster@gmail.com Program EDYTOR-AS-OUX 1. Charakterystyka ogólna Program edytor-as-oux.exe
Poradnik programowania procesorów AVR na przykładzie ATMEGA8
Poradnik programowania procesorów AVR na przykładzie ATMEGA8 Wersja 1.0 Tomasz Pachołek 2017-13-03 Opracowanie zawiera opis podstawowych procedur, funkcji, operatorów w języku C dla mikrokontrolerów AVR
MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART
MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART Własności MOBOT-RCR v2a: - pasmo komunikacji: ISM 433MHz lub 868MHz - zasięg 50m 300m * - zasilanie: z USB, - interfejs wyjściowy:
Kod produktu: MP01105T
MODUŁ INTERFEJSU DO POMIARU TEMPERATURY W STANDARDZIE Właściwości: Urządzenie stanowi bardzo łatwy do zastosowania gotowy interfejs do podłączenia max. 50 czujników temperatury typu DS18B20 (np. gotowe
Gdzie przyjęto, że: IR7...IR4 to starsze bity przesyłanej danej lub rozkazu, IR3...IR0 to młodsze bity przesyłanej danej lub rozkazu.
Temat: Obsługa wyświetlacza LCD systemie STRC51. Ćwiczenie 5. (sd) 1.Wyświetlacz LCD. 1.1.Zasada pracy wyświetlaczy LCD i kody sterujące. Standardem na rynku wyświetlaczy LCD alfanumerycznych, są moduły
T2210HD/T2210HDA Szerokoekranowy monitor LCD 21,5 Podręcznik użytkownika
T2210HD/T2210HDA Szerokoekranowy monitor LCD 21,5 Podręcznik użytkownika Spis treści Zawartość opakowania... 3 Instalowanie... 4 Przyłączanie monitora do komputera PC... 4 Regulowanie ustawień monitora...
ZL8AVR. Płyta bazowa dla modułów dipavr
ZL8AVR Płyta bazowa dla modułów dipavr Zestaw ZL8AVR to płyta bazowa dla modułów dipavr (np. ZL7AVR z mikrokontrolerem ATmega128 lub ZL12AVR z mikrokontrolerem ATmega16. Wyposażono ją w wiele klasycznych
Zewnętrzne układy peryferyjne cz. 1 Wykład 12
Zewnętrzne układy peryferyjne cz. 1 Wykład 12 Wyświetlacz LCD zgodny z HD44780 Wyświetlacz LCD zgodny z HD44780 2 HD44780 Standardowy sterownik alfanumerycznych wyświetlaczy LCD opracowany przez firmę
TeleVGA. Dokumentacja wer. 1.03
Dokumentacja wer. 1.03 Spis treści Wprowadzenie... 3 Opis złącz karty... 4 Złącze komunikacyjne - J1... 4 Złącze monitora - J2... 4 Złącze serwisowe - J3... 4 Złącze zasilania - J4 (opcja)... 5 Schemat
4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD.
13 4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD. Zagadnienia do przygotowania: - budowa i działanie interfejsu szeregowego UART, - tryby pracy,
JAZZ OPLC JZ20-R10 i JZ20-R16
Karta katalogowa JAZZ OPLC i W dokumencie znajduje się specyfikacja Unitronics Jazz Micro-OPLC oraz. Dodatkowe informacje znajdują się na płycie instalacyjnej CD Unitronics i w bibliotece technicznej na
Karta katalogowa JAZZ OPLC JZ20-T40/JZ20-J-T wejść cyfrowych, 2 wejścia analogowe/cyfrowe, 2 wejścia analogowe. 20 wyjść tranzystorowych
Karta katalogowa JAZZ OPLC JZ20-T40/JZ20-J-T40 16 wejść cyfrowych, 2 wejścia analogowe/cyfrowe, 2 wejścia analogowe 20 wyjść tranzystorowych Specyfikacja techniczna Zasilanie Napięcie zasilania 24 VDC
T2200HD/T2200HDA Szerokoekranowy monitor LCD 21,5 Podręcznik użytkownika
T2200HD/T2200HDA Szerokoekranowy monitor LCD 21,5 Podręcznik użytkownika Spis treści Zawartość opakowania... 3 Instalowanie... 4 Przyłączanie monitora do komputera PC... 4 Przyłączanie monitora do źródła
RSD Uniwersalny rejestrator danych Zaprojektowany do pracy w przemyśle
Uniwersalny rejestrator danych pochodzących z portu szeregowego RS 232 Uniwersalny rejestrator danych Zaprojektowany do pracy w przemyśle - UNIWERSALNY REJESTRATOR DANYCH Max. 35 GB pamięci! to nowoczesne
Opis procedur asemblera AVR
Piotr Kalus PWSZ Racibórz 10.05.2008 r. Opis procedur asemblera AVR init_lcd Plik: lcd4pro.hvr Procedura inicjuje pracę alfanumerycznego wyświetlacza LCD za sterownikiem HD44780. Wyświetlacz działa w trybie
Modem Bluetooth MBL-232/UK
Modem Bluetooth MBL-232/UK Dziękujemy za wybór naszego produktu. Niniejsza instrukcja pomoże państwu w prawidłowym podłączeniu urządzenia, uruchomieniu, oraz umożliwi prawidłowe z niego korzystanie. Przed
Pilot zdalnego sterowania DANE TECHNICZNE FUNKCJE PILOTA ZDALNEGO STEROWANIA
Pilot zdalnego sterowania DANE TECHNICZNE Model sterownika R05/BGE Zasilane 3.0V (Baterie alkaliczne LR03 X 2) Najniższa wartość zasilania przy której emitowany jest sygnał ze sterownika 2.4V Maksymalna
ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM)
ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM) LABORATORIUM 5 - LOKALIZACJA OBIEKTÓW METODĄ HISTOGRAMU KOLORU 1. WYBÓR LOKALIZOWANEGO OBIEKTU Pierwszy etap laboratorium polega na wybraniu lokalizowanego obiektu.
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Interfejsy można podzielić na synchroniczne (oddzielna linia zegara), np. I 2 C, SPI oraz asynchroniczne, np. CAN W rozwiązaniach synchronicznych
WPROWADZENIE Mikrosterownik mikrokontrolery
WPROWADZENIE Mikrosterownik (cyfrowy) jest to moduł elektroniczny zawierający wszystkie środki niezbędne do realizacji wymaganych procedur sterowania przy pomocy metod komputerowych. Platformy budowy mikrosterowników:
Karta katalogowa JAZZ OPLC. Modele JZ20-T10/JZ20-J-T10 i JZ20-T18/JZ20-J-T18
Karta katalogowa JAZZ OPLC Modele JZ20-T10/JZ20-J-T10 i JZ20-T18/JZ20-J-T18 W dokumencie znajduje się specyfikacja Unitronics Jazz Micro-OPLC JZ20-T10/JZ20-J-T10 oraz JZ20-T18/JZ20-J-T18. Dodatkowe informacje
Instrukcja programu użytkownika OmegaUW.Exe. Program obsługuje następujące drukarki fiskalne: ELZAB OMEGA II generacji ELZAB OMEGA F, MERA, MERA F.
Instrukcja programu użytkownika OmegaUW.Exe Program obsługuje następujące drukarki fiskalne: ELZAB OMEGA II generacji ELZAB OMEGA F, MERA, MERA F. Program nie obsługuje drukarek ELZAB OMEGA I generacji
Przykładowe pytania DSP 1
Przykładowe pytania SP Przykładowe pytania Systemy liczbowe. Przedstawić liczby; -, - w kodzie binarnym i hexadecymalnym uzupełnionym do dwóch (liczba 6 bitowa).. odać dwie liczby binarne w kodzie U +..
SZYMAŃSKI ŁÓDŹ Ul. Wiskicka 22 Tel./fax. (042) Tel./fax. (042) Kom
SZYMAŃSKI 93-623 ŁÓDŹ Ul. Wiskicka 22 Tel./fax. (042) 645 92 66 Tel./fax. (042) 250 50 52 Kom. 0 604 938 830 INSTRUKCJA WSAŹNIKA POŁOŻEŃ PRZEŁĄCZNIKA ZACZEPÓW TYPU WNZT 25a Opracował: Edward Szymański
Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne
Spis treści 5 Spis treœci Co to jest mikrokontroler? Wprowadzenie... 11 Budowa systemu komputerowego... 12 Wejścia systemu komputerowego... 12 Wyjścia systemu komputerowego... 13 Jednostka centralna (CPU)...
TECHNIKA MIKROPROCESOROWA II
Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział IEiT Katedra Elektroniki TECHNIKA MIKROPROCESOROWA II LAB 6 Moduł UART - współpraca z komputerem poprzez BlueTooth Mariusz Sokołowski
WEJŚCIE W TRYB PROGRAMOWANIA
WEJŚCIE W TRYB PROGRAMOWANIA Należy wcisnąć przycisk PROGR a następnie kod serwisowy 8 7 1 0 2 1. Pomiędzy kolejnymi wciśnięciami nie może upłynąć czas dłuższy niż 5s. Na wyświetlaczu pojawią się dwa myślniki
SML3 październik
SML3 październik 2005 35 160_7SEG2 Moduł zawiera dwupozycyjny 7-segmentowy wyświetlacz LED ze wspólną anodą, sterowany przez dwa dekodery HEX->7SEG zrealizowane w układach GAL16V8. Dekodery przypominają
PRZETWORNIK ADC w mikrokontrolerach Atmega16-32
Zachodniopomorski Uniwersytet Technologiczny WYDZIAŁ ELEKTRYCZNY Katedra Inżynierii Systemów, Sygnałów i Elektroniki LABORATORIUM TECHNIKA MIKROPROCESOROWA PRZETWORNIK ADC w mikrokontrolerach Atmega16-32
Opis funkcjonalny i architektura. Modu³ sterownika mikroprocesorowego KM535
Opis funkcjonalny i architektura Modu³ sterownika mikroprocesorowego KM535 Modu³ KM535 jest uniwersalnym systemem mikroprocesorowym do pracy we wszelkiego rodzaju systemach steruj¹cych. Zastosowanie modu³u
LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2
LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2 1. Cel ćwiczenia Celem ćwiczenia jest pokazanie budowy systemów opartych na układach Arduino. W tej części nauczymy się podłączać różne czujników,
T201W/T201WA Szerokoekranowy monitor LCD 20 Podręcznik użytkownika
T201W/T201WA Szerokoekranowy monitor LCD 20 Podręcznik użytkownika Spis treści Zawartość opakowania... 3 Instalowanie... 4 Przyłączanie monitora do komputera PC... 4 Przyłączanie monitora do źródła zasilania...
PUNKTOWE STEROWNIKI VERSAMAX MICRO
1.7 64-PUNKTOWE STEROWNIKI VERSAMAX MICRO IC200UDD064 40 wejść dyskretnych 24 VDC, 24 wyjścia tranzystorowe 24 VDC (zabezpieczenie przed zwarciem i przeciąŝeniem), wbudowany port RS232, drugi port dostępny