logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Centralka alarmowa na 89c51 z NE 5/99 - problem z wyświetlaczem LCD

kaczor38 21 Maj 2005 21:33 2126 18
REKLAMA
  • #1 1513903
    kaczor38
    Poziom 11  
    Posty: 29
    Centralka alarmowa opisana w NE 5/99. Mam kłopoty z jej uruchomieniem i chciałbym się dowiedzieć czy ktoś może ją robił ? Jaki był efekt ? Czy program jest poprawnie napisany. W ogóle chciałbym nawiązać kontakt celem uzyskania konsultacji.
    Mam następujący problem. Procek jest zaprogramowany jak myślę poprawnie ( sądzę po porównaniu pliku wsadowego z odczytem z EEPROM ). Na symulatorze programowym w Bascomie jest OK a po uruchomieniu układu na LCD górna linia wyświetla wszystkie możliwe piksele. Dolna jest natomiast wygaszona. Jeśli ktoś ma jakieś doświadczenie z w/w układem i zechce pomóc z góry dziękuję.
  • REKLAMA
  • #2 1514994
    mipix
    Poziom 38  
    Posty: 4069
    Pomógł: 495
    Ocena: 1483
    Centralki takiej nie uruchamiełem. Ale taki efekt wizualny daje źle zainicjowany wyświetlacz. Sprawdź procedury startowe i przewody łączące LCD z procesorem. Być może pomieszane są linie sterujące, RS, EN, R/W, sprawdź to w instrukcji od LCD, ponieważ zdażają się modele z różnymi wyprowadzeniami (miałem taki)
  • #3 1515052
    kaczor38
    Poziom 11  
    Posty: 29
    bardzo dziękuje za podpowiedź. posprawdzam połaczenia wyświetlacza bo myślałem że rozmieszczenie jest standatdowe, ale upewnie się. co do procedur inicjalizujących lcd to nie mam pojęcia bo jestem zielony z programowania. wklepałem gotowy listing i go skompilowałem.
    jeśli ktoś potrafi zweryfikowac i ewentualnie wskazac błedy w listingu to byłbym wdzięczny.[

    $crystal = 12000000
    $large

    Dim Klawisz As Byte , Pomoc As Byte , Pomoc1 As Byte
    Dim Adres As Byte , Licznik As Byte
    Dim Wartosc As Byte , Wartosc1 As Byte
    Dim Wartosc2 As Byte , Stan1 As Byte
    Dim Licznik1 As Word

    Declare Sub Zapis_p(adres As Byte , Wartosc As Byte)
    Declare Sub Odczyt_p(adres As Byte , Wartosc As Byte)
    Dim Addressw As Const 174 , Addressr As Const 175

    P0 = 255
    P2 = 255
    P3 = 255
    P1 = 0
    P2.1 = 0

    Cursor Off
    Cls
    Lcd "Centrala 89C51"
    Locate 2 , 1
    Lcd "właściciel"
    Wait 3

    If P2.5 = 0 Then
    Gosub Pamiec
    End If

    Gosub Sprawdz_stan


    'Glowna Petla Programu


    Do

    Cls
    Lcd "Wlacz alarm - 1"
    Locate 2 , 1
    Lcd "Zmien kod - 2"

    Do

    Gosub Wybor

    Loop Until Klawisz <> 0

    If Klawisz = 1 Then
    Gosub Aktywacja
    End If

    Loop


    'Podprogram Ustaw


    Ustaw:

    Klawisz = 0
    Pomoc = 0

    Cls
    Lcd "Wpisz stary kod"
    Wait 2

    Gosub Kasuj_blok1
    Gosub Wyswietlacz1

    Do

    Gosub Klawiatura

    Loop Until Klawisz = 11

    Klawisz = 0

    Gosub Sprawdz

    If Pomoc = 0 Then
    Gosub Wyswietlacz2
    Return
    End If

    Cls
    Lcd "Wpisz nowy kod"
    Wait 2

    Gosub Kasuj_blok1
    Gosub Wyswietlacz1

    Do

    Gosub Klawiatura

    Loop Until Klawisz = 11

    Gosub Przepisz1

    Cls
    Lcd "Nowy kod wpisany"
    Wait 2

    Pomoc = 0

    Return



    'Podprogram Pamiec


    Pamiec:

    Klawisz = 0

    Cls
    Lcd " Czy chcesz "
    Locate 2 , 1
    Lcd "skasowac pamiec?"
    Wait 3
    Cls
    Lcd " TAK - 1; NIE - 2 "

    Do

    Gosub Wybor

    Loop Until Klawisz <> 0

    If Klawisz = 1 Then
    Cls
    Lcd " Kasowanie "
    Gosub Kasuj_2416
    Wait 1
    Adres = 0
    Klawisz = 0
    Gosub Wyswietlacz1

    Do

    Gosub Klawiatura

    Loop Until Klawisz = 11

    Gosub Przepisz1
    Gosub Kasuj_blok1
    End If

    Klawisz = 0

    Return


    'Podprogram Przepisz1


    Przepisz1:

    Adres = 0
    Licznik = 0

    For Licznik = 0 To 15

    Adres = Licznik
    Call Odczyt_p(adres , Wartosc)
    Adres = Licznik + 20
    Call Zapis_p(adres , Wartosc)

    Next Licznik

    Adres = 0
    Licznik = 0

    Return


    'Podprogram Aktywacja


    Aktywacja:

    P2.1 = 1
    P2.3 = 0
    Pomoc = 0
    Stan1 = 1
    Licznik1 = 0

    Call Zapis_p(51 , 0)

    Cls
    Lcd "ALARM WLACZONY "

    Do

    If Stan1 = 1then
    Gosub Stan
    End If

    Gosub Wybor

    If Klawisz = 13 Then
    Gosub Wylacz
    End If

    Loop Until Pomoc = 1

    Call Zapis_p(51 , 255)

    P2.3 = 1
    P2.1 = 0
    P2.0 = 1

    Cls
    Lcd "ALARM WYLACZONY "
    Wait 2

    Adres = 0
    Wartosc = 0
    Pomoc = 1
    Klawisz = 0
    Licznik = 0
    Stan1 = 0

    Return


    'Podprogram Stan


    Stan:

    If P0 <> 0 Then
    Gosub Alarm
    Return
    End If

    If P2.4 = 1 Then
    Gosub Alarm
    Return
    End If

    If P2.7 = 1 Then
    Gosub Alarm
    Return
    End If

    If P2.6 = 1 Then
    Gosub Zwloka
    Return
    End If

    Return


    'Podprogram Zwloka


    Zwloka:

    Waitms 10
    Incr Licznik1

    If Licznik1 > 2000 Then
    Gosub Alarm
    End If

    Return



    'Podprogram Wylacz


    Wylacz:

    Adres = 0
    Klawisz = 0
    Pomoc = 0
    Klawisz = 0

    Gosub Wyswietlacz1

    Do

    Do
    If Stan1 = 1 Then
    Gosub Stan
    End If

    If Pomoc1 = 1 Then
    Gosub Wyswietlacz1
    Pomoc1 = 0
    End If

    Gosub Klawiatura

    Loop Until Klawisz = 11

    Gosub Sprawdz
    Gosub Kasuj_blok1
    Gosub Wyswietlacz1

    Adres = 0
    Klawisz = 0

    Loop Until Pomoc = 1

    Stan1 = 0

    Return



    'Podprogram Sprawdz


    Sprawdz:

    Adres = 0
    Licznik = 0
    Pomoc = 0
    Klawisz = 0

    For Licznik = 0 To 15

    Adres = Licznik
    Call Odczyt_p(adres , Wartosc)
    Wartosc1 = Wartosc
    Adres = Licznik + 20
    Call Odczyt_p(adres , Wartosc)
    Wartosc2 = Wartosc

    If Wartosc1 <> Wartosc2 Then
    Return
    End If

    Next Licznik

    Pomoc = 1

    Return



    'Podprogram Alarm


    Alarm:

    P2.0 = 0
    Klawisz = 0
    Stan1 = 0
    Licznik = 0
    Adres = 0
    Pomoc = 0
    Stan1 = 0

    Cls
    Lcd " W L A M A N I E "

    Gosub Kasuj_blok1

    Stan1 = 0
    Pomoc1 = 1

    Return



    'Podprogram Wybor


    Wybor:

    Adres = 0
    Klawisz = 0

    Reset P3.7

    If P3.3 = 0 Then
    Klawisz = 1
    Gosub Opoznienie
    End If

    If P3.0 = 0 Then
    Klawisz = 13
    Gosub Opoznienie
    End If

    P3 = 255
    Reset P3.6

    If P3.3 = 0 Then
    Klawisz = 2
    Gosub Opoznienie
    End If

    P3 = 255

    Return



    'Podprogram Sprawdz Stan


    Sprawdz_stan:

    Call Odczyt_p(51 , Wartosc)

    If Wartosc = 0 Then
    Gosub Aktywacja
    End If

    Return



    'Podprogram Kasowania 2416


    Kasuj_2416:

    Adres = 0

    For Adres = 0 To 51
    Call Zapis_p(adres , 255)
    Next Adres

    Adres = 0

    Return



    'Podprogram Opoznienie


    Opoznienie:

    Licznik = 0
    P2.2 = 0
    Waitms 50
    P2.2 = 1

    Do

    P3.7 = 0
    P3.6 = 0
    P3.5 = 0
    P3.4 = 0

    If P3 = 00001111 Then
    Licznik = 1
    End If

    If Stan1 = 1 Then
    Gosub Stan
    End If

    Loop Until Licznik = 1

    Waitms 50
    P3 = 255

    Return



    'Podprogram Klawiatura


    Klawiatura:

    P3 = 255
    Reset P3.7

    If P3.3 = 0 Then
    Klawisz = 1
    Lcd "1"
    Wartosc = Klawisz
    Call Zapis_p(adres , Wartosc)
    Gosub Opoznienie
    Incr Adres
    Gosub Klawiatura2
    Elseif P3.2 = 0 Then
    Klawisz = 5
    Lcd "5"
    Wartosc = Klawisz
    Call Zapis_p(adres , Wartosc)
    Gosub Opoznienie
    Incr Adres
    Gosub Klawiatura2
    Elseif P3.1 = 0 Then
    Klawisz = 9
    Lcd "9"
    Wartosc = Klawisz
    Call Zapis_p(adres , Wartosc)
    Gosub Opoznienie
    Incr Adres
    Gosub Klawiatura2
    End If

    P3 = 255
    Reset P3.6

    If P3.3 = 0 Then
    Klawisz = 2
    Lcd "2"
    Wartosc = Klawisz
    Call Zapis_p(adres , Wartosc)
    Gosub Opoznienie
    Incr Adres
    Gosub Klawiatura2
    Elseif P3.2 = 0 Then
    Klawisz = 6
    Lcd "6"
    Wartosc = Klawisz
    Call Zapis_p(adres , Wartosc)
    Gosub Opoznienie
    Incr Adres
    Gosub Klawiatura2
    Elseif P3.1 = 0 Then
    Klawisz = 0
    Lcd "0"
    Wartosc = Klawisz
    Call Zapis_p(adres , Wartosc)
    Gosub Opoznienie
    Incr Adres
    Gosub Klawiatura2
    End If

    P3 = 255
    Reset P3.5

    If P3.3 = 0 Then
    Klawisz = 3
    Lcd "3"
    Wartosc = Klawisz
    Call Zapis_p(adres , Wartosc)
    Gosub Opoznienie
    Incr Adres
    Gosub Klawiatura2
    Elseif P3.2 = 0 Then
    Klawisz = 7
    Lcd "7"
    Wartosc = Klawisz
    Call Zapis_p(adres , Wartosc)
    Gosub Opoznienie
    Incr Adres
    Gosub Klawiatura2
    Elseif P3.1 = 0 Then
    Klawisz = 11
    Gosub Opoznienie
    If Adres > 16 Then
    Gosub Klawiatura2
    End If
    Return
    End If

    P3 = 255
    Reset P3.4

    If P3.3 = 0 Then
    Klawisz = 4
    Lcd "4"
    Wartosc = Klawisz
    Call Zapis_p(adres , Wartosc)
    Gosub Opoznienie
    Incr Adres
    Gosub Klawiatura2
    Elseif P3.2 = 0 Then
    Klawisz = 8
    Lcd "8"
    Wartosc = Klawisz
    Call Zapis_p(adres , Wartosc)
    Gosub Opoznienie
    Incr Adres
    Gosub Klawiatura2
    Elseif P3.1 = 0 Then
    Klawisz = 12
    Gosub Opoznienie
    Adres = 17
    Gosub Klawiatura2
    End If

    P3 = 255

    Return


    'Podprogram Klawiatura2 , Pomocniczy


    Klawiatura2:

    If Adres > 16 Then

    Gosub Kasuj_blok1
    Locate 2 , 1
    Lcd " "
    Locate 2 , 1
    Adres = 0
    Klawisz = 0

    End If

    Return



    'Podprogram Kasuj_blok1


    Kasuj_blok1:

    Adres = 0

    For Adres = 0 To 19
    Call Zapis_p(adres , 255)
    Next Adres
    Adres = 0

    Return


    'Podprogram Wyswietlacz1


    Wyswietlacz1:

    Cls
    Lcd " Podaj kod "
    Locate 2 , 1

    Return



    'Podprogram Wyswietlacz2


    Wyswietlacz2:

    Cls
    Lcd " Nieprawidlowy kod "
    Locate 2 , 1

    Return



    'Procedura Zapisu Pamieci Eeprom 24c04


    Sub Zapis_p(adres As Byte , Wartosc As Byte)
    I2cstart
    I2cwbyte Addressw
    I2cwbyte Adres
    I2cwbyte Wartosc
    I2cstop
    Waitms 10
    End Sub



    'Procedura Odczytu Pamieci Eeprom 24c04


    Sub Odczyt_p(adres As Byte , Wartosc As Byte)
    I2cstart
    I2cwbyte Addressw
    I2cwbyte Adres
    I2cstart
    I2cwbyte Addressr
    I2crbyte Wartosc , 9
    I2cstop
    End Sub
    tex][/tex]
  • #4 1515272
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    W tym programie wogóle nie jest zainicjowany wyświetlacz...

    Trzeba napisać procedurkę zaraz po dyrektywach z $ na początku:
    '==================================
    Config Lcdpin = Pin , Db4 = P3.1 , Db5 = P3.2 , Db6 = P3.3 , Db7 = P3.4 , E = P3.5 , Rs = P3.6
    Config LCD = 16 * 2
    Cls
    '==================================

    Ale musisz troche pozmieniać! Przede wszystkim Db4 = pin do którego jest podłączone wyprowadzenie Db4 wyświetlacza (11 od początku) tak samo dla kolejnych danych Db5 (12pin wyświetlacza) Db6(13pin) Db7(14pin) Rs(4 pin) i En(6pin)

    Zakładam że jest to wyświetlacz 16*2 jeśli inny to wpisz to zamiast 16*2
  • #5 1515345
    And!
    Admin grupy Projektowanie
    Posty: 9061
    Pomógł: 175
    Ocena: 784
    Tej centralki akurat nie robiłem, ale robiłem swoją opartą o 89C51 jej słabym punktem było resetowanie się przy zapalaniu świetlówek na obiekcie. Musiałem zastosować zewnętrzną pamięć w której zapisany był stan centralki. Przy starcie cntralka zczytywała dane z pamięci.
    Odporność na zakłócenia możesz sprawdzić zbliżając do urządzenia lutownicę transformatorową (włączoną na tym samym kablu co zasilanie urządzenia) i klilkakrotnie nią "kliknąc"
  • REKLAMA
  • #6 1515535
    kaczor38
    Poziom 11  
    Posty: 29
    serdeczne dzięki za podpowiedź tak zrobię jak sugerujesz, kable sprawdzałem i wszystko gra a wyświetlacz 20*2 ale chyba bedzie działać.

    wszystkim bardzo dziekuje za zainteresowanie
  • #7 1516282
    szymtro
    Poziom 30  
    Posty: 1421
    Pomógł: 101
    Ocena: 59
    A linie db0, db1,db2,db3 i R/W wyświetlacza mają być podłaczone do masy bo inaczej nawet prawidłowa inicjalizacja wyświetlacza nie przyniesie efektu.

    A swoją drogą to zauważyłem ciekawy efekt. Wyświetlacz 2*24 jak jest zainicjowany jako jednoliniowy (do testów można tak zrobić) kontrast nastawiamy sobie pr i wychodzi że pr'ek będzie nastawiony na jakieś 75% w kierunku masy. Incjujemy teraz wyświetlacz jako dwuliniowy i tu lipa - znaki są słabo widoczne i trzeba pokręcić pr'kiem w strone masy a nawet zapodać "troszkę" ujemnego napiecia (odnośnie do masy). Czy u was wyświetlacze też tak działają? Czy to moze u mnie tylko tak. Wyświetlacz to Samsung SMC-2423A (KS0066 + 2xKS0065).
  • REKLAMA
  • #8 1517438
    kaczor38
    Poziom 11  
    Posty: 29
    dzięki za dotychczasową pomoc wyświetlacz ruszył i jest OK ale program jest do .... teraz nie działa klawiatura i chyba bedzie podobny problem tzn nie jest zdeklarowana. nie potrafię programować w bascom ale po analizie listingu nie spotkałem nigdzie deklaracji portów, które mają być ustawione na wej a które na wyj to samo się odnosi do deklaracji zewnętrznej pamięci eeprom. jeśli ktoś ma jeszcze cierpliwość to prosiłbym o dalszą pomoc.
  • #9 1518073
    And!
    Admin grupy Projektowanie
    Posty: 9061
    Pomógł: 175
    Ocena: 784
    Widocznie autor korzystał z ustawień w zakładce kompilatora.
    W źródle zrobisz to tak:
    CONFIG SDA = pin
    CONFIG SCL = pin
    Gdzie pin to np. p3.2
    Czyli pin 2 portu 3.
  • #10 1518111
    kaczor38
    Poziom 11  
    Posty: 29
    And dzięki bardzo, widzę że na cienie mozna liczyć. Doszedłem już do tego etapu i właśnie ustawiłem w kompilatorze ale po przeprogramowaniu dalej kicha. sprawdzałem na sowtowym emulatorze i widze że program przy oczekiwaniu na wcisniecie klawisza zapętla się i nic się nie dzieje :( coś skopane jest z podprogramami. mnie czas goni a nie potrafie przeanalizowac tego listingu. dzieki za dotychczasową pomoc i pomęcze się dalej moze spadnie jakies natchnienie na mnie :) jeszcze raz dzieki
  • Pomocny post
    #11 1518203
    And!
    Admin grupy Projektowanie
    Posty: 9061
    Pomógł: 175
    Ocena: 784
    Brak schematu nieco przeszkadza. Program wygląda na poprawny.
    Może to wina sprzętu.
    Sprawdź połączenia, oraz działanie klawiatury, wykonaj test zwierając drutem wyprowadzenia które zwarłaby klawiatura przy naciśnięciu klawisza.
    Np zwarcie P3.3 z P3.7 powinno włączyć alarm przy początkowym wyborze.

    Czy zapis odczyt do pamięci EEPROM działa poprawnie ?
  • #12 1518280
    kaczor38
    Poziom 11  
    Posty: 29
    And dzięki za sugestie ale co do schematu to jest ok, sprawdzałem a na tym się trochę znam bo liznołem jakiejś szkoliny :) ale niestety co do programowania nie mam pojecia a czasu niezbyt duzo by sie nauczyć.
    Układ jest poprawnie zmontowany ze sprawnych podzespołów i działa jak należy. doszedłem do wniosku że problem tkwi chyba w wersji kompilatora. ja kompiluje v2.01 a autor pisze, że uzywał wersji 1.13. szukałem na necie ale nie mogę zassać takiej starej. czytałem helpa do wersji 2.11 i widzę zasadnicze róznice w składni. nie wiem jak to się ma do kompilacji ale podejzewam, że problem tu może tkwić. na samym początku jak wklepałem program do bascoma to już wyrzucił mi błąd przy oznaczeniu komentaża. w listingu komentaże są rozpoczete i kończone gwiazdkami. nowa wersja tego nie uznaje więc stąd przypuszczenie, że może reszta też się knoci. następnie zauwazyłem ze autor napisał podprogram "opoznienie" i z tego co wywnioskowałem chodzi tu o eliminacje drgania styków, a w nowym komilatorze można to napisać duzo prościej. chyba że się mylę
    pozdrawiam i liczę na dalszą podpowiedź bo widzę, że znasz się na tym dobrze.
    dołanczam schemat niestety w jpg
    Załączniki:
    • Schemat.jpg (682.03 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #13 1518285
    kaczor38
    Poziom 11  
    Posty: 29
    sorry nie wiem dlaczego naliczył punkty nie miałem takiego zamiaru. jeśli możesz to podaj maila wysle Ci schemat.
  • #15 1518731
    kaczor38
    Poziom 11  
    Posty: 29
    And dzieki za pomoc. Tak plik wybrałem $regfile = 80c51 i na razie nic się nie zmieniło oprócz tego, że nie bedę sie zajmował tym projektem.
    Za dotychczasową pomoc serdecznie dziękuje i wiem do kogo się udac jak bym kiedyś miał problem z układem.
  • #16 1518817
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    Co do tej pętli, to tak ma być, kierunku portów nie trzeba ustawiać w 8051, wszystko powinno działać, na symulacji możesz to sprawdzić ustawiając stan niski na jednej z lini P3
  • #17 1518837
    kaczor38
    Poziom 11  
    Posty: 29
    McRacnor dziękuję bardzo za podpowiedź i pozdrawiam sprawdze jak bede miał okazje
  • #18 1530728
    kaczor38
    Poziom 11  
    Posty: 29
    And na razie przez pare dni nie robiłem nic przy tej centrali ale od poniedziałku się wezmę to nieomieszkam powiadomić o postępach no i ewentualnie poproszę o dalsze ( w miare mozliwości i cierpliwości :) konsultacje. Punkty oddałem i przepraszam. Słyszałem, że avr są prostsze w programowaniu ale cóż taki projekt został wybrany i jest już zatwierdzony więc nie można zmienić. Pozdrawiam i życzę miłego weekendu.
  • #19 1530905
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    Co do punktów wystarczy, tak jak jest drobnymi literkami napisane (odpowiedź lub edycja wiadomości, na dole), ustawić prowizję na 0.01 punkta dla plików większych niż 125KB... ;) AVR-y nie są specjalnie prostsze, ale za to mają więcej zaimplementowanych rejestrów I/O i kod wykonuje się szybciej, jeśli chodzi o podstawowych przedstawicieli.

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy problemów z uruchomieniem centralki alarmowej opartej na mikrokontrolerze 89C51, opisanej w NE 5/99, ze szczególnym uwzględnieniem błędów w wyświetlaniu na LCD. Głównym problemem był nieprawidłowo zainicjowany wyświetlacz LCD, co objawiało się pełnym podświetleniem górnej linii i wygaszeniem dolnej. Sugerowano sprawdzenie poprawności połączeń linii sterujących LCD (RS, EN, R/W) oraz konieczność dodania odpowiedniej procedury inicjalizacji w Bascomie, uwzględniającej konfigurację pinów danych i sterujących zgodnie z modelem wyświetlacza (np. 16x2 lub 20x2). Poruszono także kwestie podłączenia linii db0–db3 i R/W do masy, co jest wymagane dla prawidłowej pracy wyświetlacza. Wskazano na możliwe problemy z kompatybilnością wersji kompilatora Bascom (autor używał wersji 1.13, a pytający 2.01), co może powodować błędy składniowe i nieprawidłowe działanie programu, zwłaszcza w obsłudze klawiatury i pamięci EEPROM. Zwrócono uwagę na konieczność poprawnego ustawienia pliku definicji procesora ($regfile) oraz konfiguracji portów i pinów w programie. Wskazano również na potencjalne zakłócenia elektromagnetyczne wpływające na stabilność centralki. Ostatecznie wyświetlacz został uruchomiony poprawnie, jednak program wymaga dalszej korekty, zwłaszcza w obsłudze klawiatury i pamięci zewnętrznej. Dyskusja zawierała także uwagi dotyczące różnic w działaniu kontrastu i inicjalizacji wyświetlaczy LCD różnych rozmiarów oraz sugestie testów sprzętowych i symulacji programowych.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA