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

atmega16 -na jednym porcie LCD i klawiatura

09 Mar 2010 23:40 1881 12
  • Poziom 9  
    Witam. Mam układ gdzie na porcie D mam podłączenie klawiatury(7 knefli) oraz lcd(zapis 8 bitowy). Programując klawiaturę w przerwaniu okazało się ze LCD wymusza mi na porcie D rożne stany. Chciałem się zapytać czy jest możliwość obejścia tego?czy tylko sprzętowo? czy np wysłanie komendy lcd off do wyświetlacza zwolni mi te piny i klawiatura będzie mogła być odczytana z tego portu? Pozdrawiam
  • Poziom 42  
    Podłącz wyświetlacz w trybie 4 bitowym a już rozwiąże ci się spora część problemu jeśli nie cały. Zależy jak dużą masz klawiaturkę - bo nie mam pojęcia co to są kne-coś-tam-fle ;)
  • Poziom 29  
    Knefle, chyba przyciski? ;) LCD nie wymusza stanów - a tym bardziej różnych - bo jego piny pracują ciągle w roli wejść. Obojętnie czy wyłączysz, czy nie, prąd zawsze będzie płynął przez wewnętrze rezystory podciągające - uwierz przerabiałem to :) Będzie to jakieś 80uA.
  • Poziom 38  
    wyświetlacz nie pracuje tylko i wyłącznie w trynie odczytu to zwykła głupota, wyjściem może byś zapamiętanie stanu portu w przerwaniu i odtworzenie go po wyjściu z przerwania, w tym przypadku zalecałbym wykorzystanie wyświetlacza bez wykorzystania flagi zajętości. 2 wyjściem może być wyłączanie przerwania od klawiatury podczas realizacji funkcji obsługi wyświetlacza.
  • Poziom 9  
    knefle czyli przyciski:) mam 7 przycisków czyli według tego co pisal manekinen nie ma możliwości żeby te dwie rzeczy chodziły razem tak?
  • Poziom 38  
    jak już mówiłem musisz dobrze to przemyśleć chodzić razem mogą jednak musisz zabezpieczyć obsługę LCD
  • Poziom 29  
    tadzik85 napisał:
    wyświetlacz nie pracuje tylko i wyłącznie w trynie odczytu to zwykła głupota

    Tak? Zacytuj gdzie autor napisał że korzysta z pinu RW. Nie ma żadnego schematu, żadnych szczegółów, więc ja założyłem że jest to HD44780 bez RW - a jeśli tak jest, i RW jest na stałe ściągnięta do masy, to piny cały czas pracują w roli wejść...

    Jak obsługujesz te przyciski? Jeśli podciągasz i włączając ściągasz do masy to nie powinno być problemu bo wyświetlacz też je podciąga. Warunek jest taki że pin RW na stałe ściągasz do masy i zamiast czekać na flagę to w programie generujesz opóźnienia. Wtedy bez problemu da się to zrobić. Pokażesz może jakiś kawałek schematu, będzie mniej do zgadywania ;)
  • Poziom 9  
    tam jest jeden błąd z potencjometrem ale już jest poprawiony wiec można go olac bo to stary schemat bez naniesionych poprawek atmega16 -na jednym porcie LCD i klawiatura faktycznie z r/w nic nie robiłem wiec może jak dam go do masy to będzie ok

    Dodano po 2 [minuty]:

    ojej ale niewyraźnie:/ ogólnie po lewej mam takie dziwne przyciski (ja tego nie rysowałem) przez diody są podłączone do portu D sterownie odbywa za pomocą portu pc0 jeżeli pc0 jest w stanie wysoki to diody są zaporowo a jeżeli pc0 jest w stanie niskim to wtedy następuje odczyt klawiatury
  • Poziom 9  
    i już mi nikt nie odp?:(
  • Poziom 29  
    Czyli przed odczytem program zmienia kierunek pracy portu D na wejcśiowy, podciąga w górę, port C.0 ściąga w dół i naciśnięcie przycisku powoduje przepływ prądu do port C.0 poprzez diodę. Wygląda ok. Więc jeśli wyświetlacz wykorzystuje linię RW, a program po odczycie ją zwalnia, to wyświetlacz faktycznie może jakieś dane na linie wystawiać...

    tadzik85 dobrze zgadłeś, zwracam honor ;)

    Przed przełączeniem portu D na jako wejście, ustaw ręcznie na linii RW stan niski, i najlepiej odczekaj choćby kilka us i dopiero sprawdzaj stan portu D. Jeśli chciałbyś na stałe linię RW dołączyć do masy, to musiałbyś zmienić program tak aby nie czekał na flagę gotowości na tej linii ale "na oko" odczekiwał czas po jakim LCD będzie gotowy.
  • Poziom 9  
    ok dziękuje:) ustawie rw w stan niski i zobaczymy co z tego będzie:) dziękuje za pomoc:)
  • Poziom 38  
    uważaj tez na sygnał E wyświetlacza, w czasie obsługi klawiszy ich stan będzie podawany również na wyświetlacz.

    To co chcesz osiągnąć jest możliwe, ale musisz mieć na uwadze wiele czynników i w pełni panować nad obsługa klawiatury i wyświetlacza. Z czego wynika, ze bardzo łatwo tu o głupią pomyłkę.
  • Poziom 9  
    czyli to ze na E będę mieć np stan niski czy wysoki to info o tym będzie na linii danych?

    Dodano po 1 [minuty]:

    ahca to żeby klikanie no powodowała żeby lcd pomyśli ze wysyłam jakąś komendę czy coś:) rozumiem spoko