LITEcomp aplikacje Współpraca z wyświetlaczem LCD od telefonu NOKIA 3310

Podobne dokumenty
LITEcomp aplikacje Cyfrowy potencjometr audio sterowany pilotem RC5

LITEcomp aplikacje Zegar z układem PCF8583

LITEcomp aplikacje Zdalnie sterowany włącznik ośmiu urządzeń

Programowanie Mikrokontrolerów

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

2. Architektura mikrokontrolerów PIC16F8x... 13

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Programowanie mikrokontrolerów. 8 listopada 2007

1. Wstęp Różnice pomiędzy mikrokontrolerami ST7 a ST7LITE Rdzeń mikrokontrolerów ST7FLITE... 15

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

Opis procedur asemblera AVR

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

LITEcomp aplikacje Termometr z DS18B20

Wyświetlacze graficzne : 162x64 z kontrolerem S1D x60 z kontrolerem S1D15710

Szkolenia specjalistyczne

Obsługa wyświetlaczy graficznych z wbudowanym kontrolerem S6B1713, część 2 Przykłady dla mikrokontrolera AT91SAM7S256

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4

Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED

ZL2ARM easyarm zestaw uruchomieniowy dla mikrokontrolerów LPC2104/5/6 (rdzeń ARM7TDMI-S)

Programowanie w językach asemblera i C

Instrukcja programu użytkownika OmegaUW.Exe. Program obsługuje następujące drukarki fiskalne: ELZAB OMEGA II generacji ELZAB OMEGA F, MERA, MERA F.

Alternatywa dla alfanumerycznych wyświetlaczy LCD

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa

Układy Cyfrowe projekt. Korekcja jasności obrazów w 24-bitowym formacie BMP z użyciem funkcji gamma. Opis głównych modułów sprzętowych

Ćwiczenie 3. Konwersja liczb binarnych

Wstęp Architektura... 13

Opis układów wykorzystanych w aplikacji

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

3.4. Opis konfiguracji layoutów.

Technika Mikroprocesorowa

Tab. 1. Zestawienie najważniejszych parametrów wybranych mikrokontrolerów z rodziny LPC2100, które można zastosować w zestawie ZL3ARM.

instrukcja użytkownika terminala ARGOX PA-20 SYSTEMY AUTOMATYCZNEJ IDENTYFIKACJI

Zespół Szkół Technicznych. Badanie wyświetlaczy LCD

Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

Struktura i działanie jednostki centralnej

Licznik rewersyjny MD100 rev. 2.48

Wyjście do drukarki Centronix

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów

Ćwiczenie 7 Matryca RGB

Programowalne Układy Cyfrowe Laboratorium

PRUS. projekt dokumentacja końcowa

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

ZL2ARM easyarm zestaw uruchomieniowy dla mikrokontrolerów LPC2104/5/6 (rdzeń ARM7TDMI-S)

CECHY URZĄDZENIA: Podłączenie wyświetlacza

Organizacja typowego mikroprocesora

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

ISBN Copyright by Wydawnictwo BTC Legionowo 2008

Wykład 4. Środowisko programistyczne

Architektura komputerów. Asembler procesorów rodziny x86

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Kod produktu: MP01611

Informator techniczny

Podstawy Programowania C++

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Alfanumeryczny wyświetlacz LCD

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.

Hardware mikrokontrolera X51

Wyświetlacz graficzny LCD ze sterownikiem

Logiczny model komputera i działanie procesora. Część 1.

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

Diagnostyka pamięci RAM

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Instytut Teleinformatyki

2. PORTY WEJŚCIA/WYJŚCIA (I/O)

Architektura komputerów

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Instytut Teleinformatyki

Ćwiczenie 3 Wyświetlacz ciekłokrystaliczny

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

ZL8AVR. Płyta bazowa dla modułów dipavr

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

GND(VSS) i VCC - masa i zasilanie. V0 - regulacja kontrastu

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Cyfrowy rejestrator parametrów lotu dla bezzałogowych statków powietrznych. Autor: Tomasz Gluziński

Sprzęt i architektura komputerów

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

TECHNIKA MIKROPROCESOROWA

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Instrukcja do oprogramowania ENAP DEC-1

Politechnika Wrocławska

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Licznik prędkości LP100 rev. 2.48

ZL9ARM płytka bazowa dla modułów diparm z mikrokontrolerami LPC213x/214x

Wstęp Podstawowe informacje o mikroprocesorach AT91SAM9...11

LITEcomp aplikacje Jednokanałowy woltomierz z pamięcią wyników pomiarów

MIKROKONTROLERY I MIKROPROCESORY

Programowanie mikrokontrolerów AVR z rodziny ATmega.

WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z wykonanego projektu. Jakub Stanisz

Architektura systemów komputerowych Laboratorium 7 Symulator SMS32 Stos, Tablice, Procedury

Struktura systemu mikroprocesorowego Z80 z interfejsem monitora graficznego.

Laboratorium mikroinformatyki. Szeregowe magistrale synchroniczne.

Vinculum scalony host USB

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

Instytut Teleinformatyki

Sprzęt i architektura komputerów

Komunikacja w mikrokontrolerach Laboratorium

Transkrypt:

LITEcomp aplikacje Współpraca z wyświetlaczem LCD od telefonu NOKIA 3310 Bywa, że standardowy wyświetlacz alfanumeryczny 2x16 znaków będący podstawowym monitorem LITEcompa okazuje się niewystarczający dla potrzeb tworzonej aplikacji. W takim przypadku można wykorzystać popularny wyświetlacz LCD stosowany w telefonach Nokia 3310, którego największą zaletą jest bardzo niska cena i małe wymiary. Przykład współpracy takiego wyświetlacza z modułem LITEcomp przedstawiamy niżej. st7.ep.com.pl LITEcomp LITEcomp jest prostym komputerkiem wykonanym na mikrokontrolerze ST7FLITE19. LITEcomp jest w ramach promocji dodawany bezpłatnie do książki Mikrokontrolery ST7LITE w praktyce (autor Jacek Bogusz). Książka jest dostępna w sklep.avt.pl (numer katalogowy KS 260905). Wyświetlacz LCD od telefonu Nokia 3310 był wielokrotnie opisywany na łamach Elektroniki Praktycznej, w związku z tym w artykule zostaną przypomniane tylko najważniejsze informacje o tym wyświetlaczu. Więcej informacji można znaleźć m.in. w specjalnym wydaniu EPplus poświęconym wyświetl a c z o m E P p l u s 2/2007 Displays. Warto również sięgnąć po podstawowe źródło, jakim jest dokumentacja układu PCD8544 dostępna na stronie www.nxp.com. Komunikacja z kontrolerem wyświetlacza odbywa się poprzez jednokierunkowy interfejs szeregowy wspomagany dwoma liniami kontrolnymi: D/C (informuje kontroler czy transmitowany bajt jest rozkazem czy daną) oraz RESET (linia służącą do wyzerowania kontrolera). Maksymalna częstotliwość taktowania interfejsu szeregowego nie może przekraczać 4 MHz. Wyświetlacz posiada 504 bajty pamięci obrazu, które są zorganizowane w sześć stron po 84 bajty, co przekłada się na organizację ekranu 84x48 pikseli. Ponieważ nie jest możliwy odczyt zawartości pamięci obrazu, w celu pełnego wykorzystania możliwości graficznych konieczne jest stworzenie w pamięci RAM bufora obrazu. Jednakże w p r z y p a d ku mikrokontrolera S T 7 F L I T E 1 9, który posiada zaledwie 128 bajtów ogólnodostępnej pam i ę c i R A M, stworzenie tak i e g o b u f o r a nie jest możliwe. W związku z tym funkcjonalność wyświetlacza jest ograniczona wyłącznie do wyświetlania tekstu oraz obrazów przygotowanych na komputerze PC i zapisanych w pamięci programu. Nie będzie możliwe rysowanie figur geometrycznych czy linii bezpośrednio przez mikrokontroler. Schemat układu jest przedstawiony na rys. 1. Napięcie zasilające nie może przekraczać +3,3 V ze względu na maksymalne napięcie pracy układu PCD8544. Przekroczenie tej wartości może spowodować trwałe uszkodzenie kontrolera wyświetlacza. W związku z niższym niż zwykle napięciem pracy modułu LITEcomp należy zwrócić uwagę na konfigurację bajtów Option Bytes mikrokontrolera ST7FLITE19, a w szczególności na konfigurację układu LVD. Nie należy oczywiście ustawiać progu 89

zadziałania układu na 4,1 V, gdyż mikrokontroler w takim przypadku nigdy by nie wystartował. Nie należy również wyłączać układu LVD, gdyż z doświadczeń przeprowadzonych przeze mnie przy takiej konfiguracji wynikło, iż mikrokontroler startuje znacznie wcześniej, niż układ PCD8544 jest zdolny do przyjmowania poleceń, co objawia się brakiem reakcji wyświetlacza na wysyłane przez mikrokontroler polecenia. W związku z tym próg zadziałania układu LVD należy ustawić na ok. 2,8 V. Procedury obsługi interfejsu SPI Mikrokontroler ST7FLITE19 komunikuje się z kontrolerem wyświetlacza za pomocą sprzętowego układu SPI, co znacznie upraszcza program w porównaniu do programowej realizacji interfejsu SPI. Przygotowałem dwie krótkie procedury: initspi, która konfiguruje układ SPI oraz sendspi, która wysyła bajt przekazany przez rejestr A. Kod procedur jest przedstawiony na list. 1. Zapis rozkazu i danej do wyświetlacza Najważniejszymi procedurami wykorzystywanymi podczas komunikacji z wyświetlaczem są procedury zapisu rozkazu oraz danych do kontrolera. Rozkaz jest zapisywany przy niskim stanie na wyprowadzeniu D/C, natomiast dane są zapisywane przy wysokim stanie. Kod procedur zapisu rozkazu i danej do wyświetlacza jest przedstawiony na list. 2. Rys. 1. Schemat interfejsu dla wyświetlacza graficznego od telefonu NOKIA 3310 Inicjalizacja wyświetlacza Procedura inicjalizacji kontrolera wyświetlacza rozpoczyna się od skonfigurowania wyprowadzeń I/O kontrolujących linie DC i RES oraz inicjalizacji interfejsu SPI. Następnie jest dokonywana konfiguracja kontrolera zgodnie z danymi zawartymi w dokumentacji układu PCD8544 oraz czyszczona jest zawartość pamięci obrazu. Kod procedury inicjalizacji wyświetlacza przedstawiono na list. 3. Przed nawiązaniem komunikacji z kontrolerem wyświetlacza konieczne jest jego wyzerowanie poprzez podanie na wyprowadzenie RST impulsu rozpoczynającego się opadający zboczem. Kod procedury generującej impuls zerujący jest przedstawiony na list. 4. Czyszczenie pamięci obrazu Wyczyszczenie zawartości pamięci obrazu sprowadza się do zapisania bajtów o wartości zero do wszystkich 504 komórek pamięci. Kod procedury czyszczącej pamięć obrazu jest przedstawiony na list. 5. Wyświetlenie znaku Procedura wyświetlająca znak jest stosunkowo skomplikowana ze względu na fakt, iż kontroler PCD8544 nie posiada własnej tablicy czcionek. W związku z tym konieczne jest przechowywanie tablicy z czcionkami w pamięci programu mikrokontrolera ST7FLITE19. Tablica ze wzorami czcionek jest zdefiniowana w pliku font5x8.asm. Parametrem procedury List. 1. Procedury initspi i sendspi ; Procedura inicjalizacji interfejsu SPI initspi A, #%00000011 ; programowe zarządzanie trybem pracy, SS > GPIO SPISR, A A, #%01010000 ; MASTER: Enable, Fsck = Fcpu/8 SPICR, A ; Procedura transmitująca bajt danych przez interfejs SPI sendspi SPIDR, A ; załadowanie danej do wysłania do SPIDR BTJF SPISR, #7, * ; oczekiwanie na zakończenie transmisji A, SPIDR ; załadowanie odebranej danej do A List. 2. Kod procedur zapisu rozkazu i danej do wyświetlacza ; Procedura zapisująca do wyświetlacza rozkaz.n3310_writecommand BRES PBDR, #N3310_DC sendspi ; Procedura zapisująca do wyświetlacza daną.n3310_writedata BSET PBDR, #N3310_DC sendspi 90

Procedura wyświetlająca bitmapę Na wyświetlaczu można wyświetlić obraz graficzny o rozmiarach 84x48 pikseli. Bitmapa wywyświetlającej znak jest jego kod ASCII. Ponieważ tablica czcionek zawiera definicje znaków od znaku o kodzie 32 (spacja), konieczne jest odjęcie od przekazanego przez rejestr A kodu liczby 32. Następnie tak otrzymana liczba jest mnożona przez liczbę bajtów składających się na jeden znak, czyli przez pięć. Otrzymany w ten sposób indeks tablicy jest dodawany do adresu pierwszego elementu i wynik jest ładowany do wskaźnika fontptr i na podstawie tego adresu oraz zawartości rejestru X odczytywany jest bajt z tablicy czcionek. Odczyt z tablicy jest wykonywany pięciokrotnie w pętli wraz z inkrementacją wartości rejestru X. W ten sposób zostaną odczytane wszystkie bajty składające się na znak o określonym kodzie ASCII. Po wyświetleniu wszystkich List. 3. Kod procedury inicjalizacji wyświetlacza ; Procedura inicjalizacji wyświetlacza.n3310_init BSET PBDDR, #N3310_DC BSET PBOR, #N3310_DC BSET PBDDR, #N3310_RES BSET PBOR, #N3310_RES BSET PBDR, #N3310_RES initspi N3310_Reset A, #N3310C_FS OR A, #N3310C_FS_EXTENDED N3310_WriteCommand A, #N3310C_VOP OR A, #72 N3310_WriteCommand A, #N3310C_TEMP OR A, #2 N3310_WriteCommand A, #N3310C_BIAS OR A, #3 N3310_WriteCommand A, #N3310C_FS OR A, #N3310C_FS_BASIC OR A, #N3310C_FS_HORIZONTAL N3310_WriteCommand A, #N3310C_DC OR A, #N3310C_DC_NORMAL N3310_WriteCommand N3310_ClearScreen List. 4. Kod procedury generującej impuls zerujący ; Procedura generująca ujemny impuls na linii Reset.N3310_Reset BRES PBDR, #N3310_RES NOP NOP BSET PBDR, #N3310_RES pięciu bajtów składowych znaku do pamięci wyświetlacza zapisywany jest bajt o wartości zero, który jest odstępem pomiędzy kolejnymi znakami. Kod procedury wyświetlającej znak jest przedstawiony na list. 6. Procedura wyświetlenia znaku stanowi podstawę procedur wyświetlających tekst, wartości liczb itp. Zaprezentowane we wcześniejszych odcinkach kursu procedury prezentacji danych alfanumerycznych wykorzystujące procedurę writechar można zaadaptować do współpracy z wyświetlaczem prezentowanym w bieżącym artykule w bardzo prosty sposób. Wystarczy po prostu zamienić wywołanie procedury writechar na N3310_WriteChar. Wyświetlenie tekstu Wyświetlenie tekstu na wyświetlaczu realizowane jest przez makroinstrukcję WTXT, której kod znajduje się w pliku n3310lcd.inc. Kod procedury jest prawie identyczny jak w przypadku wyświetlana napisów na wyświetlaczu alfanumerycznym HD44780 z tą różnicą, że zamiast procedury writechar wywoływana jest procedura N3310_WriteChar. Kod makroinstrukcji WTXT przedstawiony jest na list. 7. Parametrem makroinstrukcji jest adres pierwszego znaku tekstu zapisanego w pamięci (etykieta). Adres ten musi być znany na etapie kompilacji programu. Tekst musi być zakończony bajtem o wartości zero. Efekt zastosowania procedury wyświetlającej tekst jest przedstawiony na fot. 2. List. 5. Kod procedury czyszczącej pamięć obrazu ; Procedura czyszcząca pamięć obrazu.n3310_clearscreen CLR X ; CLR Y ; ustawienie współrzędnych ekranu X = 0 Y = 0 N3310_GoTo ; Y, #6 ; liczba wierszy ClearScreenLoop1 X, #84 ; liczba kolumn ClearScreenLoop2 A, #0 ; N3310_WriteData ; zapis wartości czyszczącej ekran DEC X ; X i sprawdzenie czy to ostatnia kolumna? JRNE ClearScreenLoop2 ; jeśli nie to skok do ClearScreenLoop2 DEC Y ; Y i sprawdzenie czy to ostatni wiersz? JRNE ClearScreenLoop1 ; jeśli nie to skok do ClearScreenLoop1 Fot. 2. Efekt działania procedury wyświetlającej tekst 91

List. 6. Kod procedury wyświetlającej znak ; Procedura wyświetlająca na wyświetlaczu znak o kodzie ASCII przekazanym w A.N3310_WriteChar PUSH X ; zapamiętanie X na stosie SUB A, #32 ; konwersja kodu X, A ; A, #5 ; obliczenie przesunięcia (5* kod znaku) MUL X, A ; {fontptr+0},x ; przepisanie wyniku mnożenia do fontptr {fontptr+1},a ; Fot. 3. Przykładowa bitmapa wyświetlona za pomocą procedury pełnia cały ekran począwszy od współrzędnych (0,0) i musi mieć rozmiar 84x48 pikseli. W przypadku, gdy rzeczywisty obraz, który zamierzamy wyświetlić, jest mniejszych rozmiarów, należy przygotować bitmapę o rozmiarach 84x48 i niewykorzystane miejsce pozostawić białe. Adres tablicy z zawartością obrazu należy przekazać przez rejestry X:Y. Bitmapa może być przechowywana w dowolnym obszarze w przestrzeni adresowej mikrokontrolera: RAM, EEPROM lub FLASH. Kod procedury wyświetlającej bitmapę przedstawiony jest na list. 8. Przykładową bitmapę wyświetloną za pomocą procedury N3310_ Bitmap przedstawiono na fot. 3. Do konwersji bitmapy z postaci pliku *.bmp na postać źródłową asemblera ST7 opracowałem specjalny program dla komputera PC (rys. 4). Obsługa programu sprowadza się do wskazania lokalizacji A, {fontptr+1} ; (LSB) ADD A, #font5x8.l ; Zsumowanie obliczonego przesunięcia z {fontptr+1}, A ; adresem początku tablicy czcionek A, {fontptr+0} ; (MSB) ADC A, #font5x8.h ; {fontptr+0}, A ; CLR X WriteCharLoop A, ([fontptr.w],x) ; odczyt danych z tablicy N3310_WriteData ; wyświetlenie na wyświetlaczu INC X CP X, #5 ; czy to już cały znak? JRNE WriteCharLoop ; jeśli nie to skok do WriteCharLoop A, #0 ; N3310_WriteData ; odstęp pomiędzy znakami POP X List. 7. Kod makroinstrukcji WTXT ; Makroinstrukcja wyświetlająca tekst WTXT MACRO pstr LOCAL wt1,wt2 CLR X ; wyzerowanie rejestru x wt1 A, (pstr,x) ; załadowanie do rejestru A znaku spod adresu będącego sumą pstr i rejestru X JREQ wt2 ; jeśli odczytany znak jest zerem (koniec napisu) to skok do wt2 INC X ; inkrementacja rejestru X (przygotowanie do pobrania następnego znaku) N3310_WriteChar ; wyświetlenie znaku na wyświetlaczu JRA wt1 ; skok do wt1 wt2 MEND List. 8. Kod procedury wyświetlającej bitmapę ; Procedura wyświetlająca bitmapę. {fontptr+0}, X ; przepisanie adresu bitmapy do wskaźnika {fontptr+1}, Y ; CLR X ; CLR Y ; N3310_GoTo ; ustawienie współrzędnych ekranu X = 0 Y = 0 Y, #6 ; liczba wierszy BitmapLoop1 X, #84 ; liczba kolumn BitmapLoop2 A,[fontPtr.w] ; odczytanie bajtu z tablicy N3310_WriteData ; wyświetlenie na wyświetlaczu A, {fontptr+1} ; ADD A, #1 ; inkrementacja młodszego bajtu wskaźnika {fontptr+1}, A ; A, {fontptr+0} ; ADC A, #0 ; inkrementacja starszego bajtu wskaźnika {fontptr+0}, A ; DEC X ; X i sprawdzenie czy to ostatnia kolumna? JRNE BitmapLoop2 ; jeśli nie to skok do BitmapLoop2 Rys. 4. Winietka programu służącego do konwersji bitmapy z pliku *.bmp na postać źródłową asemblera ST7 DEC Y ; Y i sprawdzenie czy to ostatni wiersz? JRNE BitmapLoop1 ; jeśli nie to skok do BitmapLoop1 92

KURS pliku *.bmp oraz lokalizacji wyjściowego pliku *.asm. Wygenerowany przez program plik jest gotowy do natychmiastowego dołączenia do projektu. List. 9. Kod programu demonstracyjnego st7/ ; LITEcomp aplikacje ; Biblioteka procedur obsługi wyświetlacza NOKIA 3310 ; Plik : main.asm ; Autor : Radosław Kwiecień, radoslaw.kwiecien@ep.com.pl. NOLIST #INCLUDE #INCLUDE.LIST st7flite19.inc n3310lcd.inc extern extern obrazek.w obrazek1.w Program demonstracyjny Program demonstrujący działanie przedstawionych w artykule procedur wyświetla w pętli nieskończonej naprzemiennie bitmapę oraz tekst. Wyjaśnienia wymaga sposób deklaracji tekstu. Pomimo, iż zapis może sugerować, że tekst jest podzielony na sześć wierszy, w rzeczywistości jest to jeden ciągły tekst kończący się bajtem o wartości zero. Podział na wiersze został zastosowany tylko w celu odwzorowania organizacji ekranu wyświetlacza, natomiast tak naprawdę jest to jeden ciągły napis o długości 84 znaków, którym jest zapełniany cały ekran. W związku z tym, że po osiągnięciu maksymalnej wartości adresu kolumn adres wierszy jest automatycznie inkrementowany, w przypadku ciągłego zapisu do pamięci obrazu nie jest wymagane ustawianie adresu kolejnych wierszy przez program. W przypadku wyświetlania krótszych napisów konieczne jest ich zakończenie bajtem o wartości zero oraz ustawienie odpowiednich współrzędnych ekranowych. W przypadku próby wyświetlenia napisu, który nie został zakończony zerem, program będzie zapisywał do wyświetlacza dane tak długo, aż nie natrafi na bajt o wartości zero. Objawi się to oczywiście wyświetleniem śmieci bądź też kolejnych umieszczonych w pamięci napisów. Kod programu przedstawiony jest na list. 9. Pliki z kodem źródłowym, program demonstracyjny jak również program konwertera plików BMP2DC.exe można pobrać ze strony www.ep.com.pl, są one również zamieszczone na płycie CD EP12/2007B. Radosław Kwiecień, EP radoslaw.kwiecien@ep.com.pl ; obszar pamięci danych RAM BYTES SEGMENT ram0 fontptr DS.W 1 ; obszar pamięci programu WORDS SEGMENT rom tekst1 www.ep.com.pl LITEcomp aplikacje NOKIA 3310 LCD ST7FLITE19,0 ; Początek programu głównego._reset N3310_Init ; inicjalizacja mainloop X, #obrazek.h Y, #obrazek.l ; wyświetlenie bitmapy X, #obrazek1.h Y, #obrazek1.l ; wyświetlenie bitmapy WTXT X, #0 Y, #0 N3310_GoTo tekst1 ; ustawienie współrzędnych ; wyświetlenie napisu JRA mainloop ; skok na początek pętli głównej ; A, #%00001000 ; włączenie timera F=1KHz ATCSR, A BTJF ATCSR, #2, * ; oczekiwanie na przepełnienie CLR ATCSR END ; Koniec pliku main.asm R E K L A M A 93