Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Asembler 8051] Obsługa wyświetlacza, przycisków.

Sciepa 26 Lis 2010 16:47 3534 3
  • #1 26 Lis 2010 16:47
    Sciepa
    Poziom 9  

    Potrzebuje dowiedzieć się jak się obsługuje wyświetlacz. Chce, aby program pokazywał mi wynik na tym wyświetlaczu.
    Zestaw na którym pracuje jest podobny do ZL2MCS51, tyle, że wyświetlacz jest inny bo wygląda jak w ZL1MCS51 LCD.
    Dostęp do tego zestawu mam raz na 2 tygodnie (uczelnia) i ciężko sprawdzić jaki to dokładnie model.

    Chce także dowiedzieć się jak obsługuje się przyciski na klawiaturze zestawu. Tzn. chce osiągnąć taki efekt żeby program nic nie robił, dopóki nie nacisnę przycisku np S1.

    0 3
  • Pomocny post
    #2 26 Lis 2010 21:07
    kazwita
    Poziom 15  

    Witam.

    Szczęśliwie dla użytkowników praktycznie wszystkie wyświetlacze alfanumeryczne LCD obsługuje się tak samo. Ich chipy sterujące są zgodne z HD44780. W skrócie obsługa LCD'ka wygląda tak:
    - inicjalizacja (zestaw komend sterujących, ustawia się min. sposób podłączenia 4/8 bit, ilość linii itp itd.). Sprawa dosyć dobrze opisana w większości datasheet'ów do wyświetlaczy (np. tutaj - patrz str. 16), w książkach zresztą też.
    - wpis znaku do rejestru danych LCD'ka (stan wysoki na linii RS) automatycznie wyświetla go na ekraniku i przesuwa kursor na następną pozycję. Nie trzeba się dalej już niczym zajmować - sprawę przejmuje kontroler wyświetlacza. Znak jest wyświetlany tak długo, aż go nadpiszemy, lub wyczyścimy ekran. Wpisuje się zawsze 1 bajt, w zależności od jego zawartości wyświetli się odpowiedni znak z tablicy (str. 25 wspomnianego pdf'a). Przykładowo jeżeli wpiszę wartość 32 (020h), to wyświetli się "0", dla 33 - "1" itp.
    - są instrukcje do czyszczenia całego ekranu, do przesuwania kursora (np. na początek linii), przydają się do zorganizowania tekstu na ekranie. Tu wpisuje się dane do rejestru instrukcji (inne ustawienie linii sterującej RS - trzeba podać na nią 0).
    - Po zapisie czegokolwiek do LCD'ka trzeba odczekać chwilę, przed wpisaniem kolejnej danej/instrukcji, tak by dać czas kontrolerowi wyświetlacza na przetworzenie otrzymanych danych.

    Odnośnie obsługi klawiatur. Przyciśnięcie przycisku podaje stan niski na odpowiedni pin mikrokontrolera (ten do którego podłączony jest przycisk). W programie głównym można okresowo sprawdzać stan pinu i zareagować na jego stan. Można wstawić pętlę typu "nic nie robię aż do naciśnięcia przycisku" - rozwiązanie najprostsze ale niezbyt optymalne bo całkowicie blokuje działanie programu. Gdy przycisk jest podłączony do linii przerwania zewnętrznego INT0 lub INT1, wtedy naciśnięcie przycisku wywołuje przerwanie, i tam wstawiamy reakcję na naciśnięcie klawisza. Jeżeli przycisków ma być więcej niż kilka najlepiej sprawdzają się tzw. klawiatury matrycowe. Bardziej "wypasione" 51-ki mają wbudowane sprzętowe układy wspomagające obsługę takiego typu klawiatur.

    Ogólnie dobrze jest "wchłonąć" trochę wiedzy książkowej, w moim przypadku sprawdziła się pozycja (napisana dosyć zrozumiale):
    „Podstawy programowania mikrokontrolera 8051”. Autorzy – Piotr i Paweł Gałka, chyba jest nadal dostępna. Jest też sporo książek w ofercie wydawnictwa BTC.

    Pozdrawiam.

    0
  • #3 03 Gru 2010 14:07
    Sciepa
    Poziom 9  

    Potrzebuje się dowiedzieć jak obsługuje się wyświetlacz 7-segmentowy tego zestawu uruchomieniowego zl2mcs51.
    Szukałem w książkach, ale nic ciekawego nie znalazłem. Tzn. wiem że muszę zdefiniować sobie cyfry itp ale nie wiem gdzie to mam wysyłać.

    0
  • Pomocny post
    #4 04 Gru 2010 12:56
    kazwita
    Poziom 15  

    Witam.

    Sposób wykonania niezbędnych połączeń elektrycznych jest opisany w PDF’ie (Multipleksowany wyświetlacz LED). Załóżmy chwilowo, że są już połączenia:
    - uaktywniony bufor (JP1 1-2),
    - bufor podłączony kablem (1 do 1) do portu np. P1 (JP2>>JP4),
    - sterowanie wspólnymi katodami wyświetlaczy podłączone do portu np. P2(JP3>>JP5).

    Zastosowane w układzie wyświetlacze działają, gdy poda się „1-ki” na linię sterującą segmentem (przez bufor) oraz na wspólną linię całego segmentu.

    Algorytm działania w skrócie:
    - ustawiam zera na P1 i P2.0…P2.3 (nic nie świeci),
    - wypisuje kod cyfry na P1 (1-ki tam, gdzie ma się świecić segment),
    - ustawiam 1 na odpowiedniej linii portu P2 (np. P2.0 – wyświetli się zawartość wpisana wcześniej do P1 na DS1)
    - czekam chwilę, cyfra na DS1 się świeci
    - ustawiam 0 na poprzednio omawianej linii portu P2 (cyfra gaśnie),
    - wypisuje kod kolejnej cyfry na P1,
    - ustawiam 1 na następnej linii portu P2 (np. P2.1 – wyświetli się zawartość wpisana wcześniej do P1 na DS2)
    - czekam chwilę, cyfra na DS2 się świeci
    - ustawiam 0 na poprzednio omawianej linii portu P2 (cyfra gaśnie)
    ……(potem DS3, DS4, znowu DS1- i tak w kółeczko)…

    Oczywiście przy przemiataniu wyświetlaczy biorę tylko pod uwagę 4 linie sterujące P2.0…P2.3. Automat przemiatający wspólne katody warto sobie zorganizować na przerwaniach od timera, wtedy z poziomu programu głównego troszczymy się tylko o wpisanie do odpowiedniego obszaru pamięci danych, które mają być wyświetlane. Reszta „robi się sama”.

    Pozdrawiam.

    0