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

Obsługa klawiatury matrycowej STD 34-07 z mikrokontrolerem AT89C2051 w asemblerze

mahduhnaja 22 Maj 2006 22:45 3345 16
REKLAMA
  • #1 2653709
    mahduhnaja
    Poziom 11  
    Posty: 11
    Witam!
    :)
    Pracuje teraz nad moim projektem ktrego tematem jest:zamek szyfrowy na '51 dokladnie 2051 z klawiturka matrycowa STD 34-07

    mam problem jak jej u[code]

    mialam juz klawiatury matrycowe na laboratorium ale byly nieco inne

    ta nie ma nic podpinanego do zasilania tylko wszystko to wiersze i kolumny

    kompletnie nie wiem jak ona dzila i jak ja obsluzyc

    wszystko pisze w asemblerze wlasciwie skonczylam program i polutowalam plytke poza ta jedna nieszczesna klawiatura

    jestem nawet gotowa kupic inna jesli tylko dowiem sie jak dziala

    na lab podawalismy na wiersze krazace zero a vcc podpinalismy do kolumn
    czytalismy bezposrednio z portu

    czy ktos orientuje sie jak robi sie to z TA klawiatura?

    z gory dziekuje

    bardzo przepraszam za brak polskich liter
    chwilowo pracuje na syste,ie w innym jezyku...
  • REKLAMA
  • #2 2654082
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #3 2655510
    Konto nie istnieje
    Konto nie istnieje  
  • #4 2657808
    mahduhnaja
    Poziom 11  
    Posty: 11
    Dziękuje bardzo za odpowiedż!
    :)
    bardzo mi sie przydalo to objaśnienie

    teoretycznie sterowałam juz taka klawiaturą ale jej schemat był inny niz tej która mam
    i nie miałam pojęcia jak to działa

    mój miernik niestety przestał działac więc metoda prób i błedów odpadła na początku...

    dlatego tez bardzo dziękuje!!!

    mam jeszcze pytanie techniczne :
    klawiatura zakończona jest płasą taśmą
    dołączone do niej jest złącze do przylutowania na płytke
    czy ma znaczene w która strone i jak włoże w nie ta taśme?
    tzn klawiatura z dołu płytki lub z góry

    mam nadzieje ze zrozumiecie co mam na myśli...
  • #5 2659079
    mahduhnaja
    Poziom 11  
    Posty: 11
    i chciałam jeszcze spytac o p1.0 i p1.1
    nie maja one rezystorow podciągających a reszta portu ma
    chciałabym je wykorzyctać (jeden z nich) do podłączenia klawiatury
    jak i jakie mam podłaczyc rezystory podciągające?
  • REKLAMA
  • #6 2659198
    upanie
    Poziom 22  
    Posty: 434
    Pomógł: 33
    Ocena: 7
    Do pinu trzeba podłączyć rezystor np. 4k7, którego druga końcówka podłączona jest do napięcia zasilającego procesor.

    upanie[/url]
  • #7 2666446
    mahduhnaja
    Poziom 11  
    Posty: 11
    czy na pewno 4,7 k wystarczy
    to znaczy czy stosowl ktos to w praktyce
    :)
    bo spotkalam wartośc od 50..100 k ohm a wlasnie druga jaka znalazlam to 4,7K
    i nie wiem ktora jest dobra
    :|

    ale chyba zaufam 4,7k
    w sumie juz powtorzyla sie ta wartosc...
    dzieki
  • #8 2666470
    upanie
    Poziom 22  
    Posty: 434
    Pomógł: 33
    Ocena: 7
    W zasadzie to w tym przypadku wartość tego rezystora ma niewielkiego znacznie. Oczywiście nie można przegiąć w dół bo będzie płynął zbyt duży prąd. Jeżeli wyjście jest typu otwarty-kolekktor to rezystor nie może mieć zbyt dużej wartości bo czas narastania na obciążonym wyjściu będzie zbyt duży. Typowy pullup (rezystor podciągająy) to 4k7.

    upanie
  • #9 3589277
    ewsd75
    Poziom 13  
    Posty: 90
    Ocena: 20
    Mam mały problemik z klawiaturą matrycową . Może któryś z kolegów pomoże mi go rozwązać. Chciałbym nacisnąć kilka klawiszy po kolei i aby one zostały wyświetlone na kolejnych polach LCD. Próbowałem przypisać wprowadzane wartości do kolejnych elementów tablicy ale nie udało się. klawiatura jest 4x4. Czy możecie mi pomóc w rozwiązaniu tego problemu.
  • REKLAMA
  • #10 3589569
    Konto nie istnieje
    Konto nie istnieje  
  • #11 3589615
    ewsd75
    Poziom 13  
    Posty: 90
    Ocena: 20
    Troszkę chyba się nie zrozumieliśmy. Klawiatura matrycowa dział , po naciśnięciu klawisza np. 1 to na wyświetlaczu pojawia się znak 1 . Chodzi mi o to że jak nacisnę klawisz 1 to na LCD pojawi się znak 1 i tam zostanie, następnie nacisnę 2 i na LCD w następnym polu ma się pojawić 2 a znak 1 ma zostać. Czyli na LCD mają być znaki 1 i 2 bo takie nacisnołem. I tą sytuację chcę powtórzyć kilkakrotnie i wszystkie nasiśnięte klawisze mają pozostawić swoje znaki na LCD.
  • #12 3589656
    seba_x
    Poziom 31  
    Posty: 2071
    Pomógł: 29
    Ocena: 112
    ewsd75 napisał:
    Troszkę chyba się nie zrozumieliśmy. Klawiatura matrycowa dział , po naciśnięciu klawisza np. 1 to na wyświetlaczu pojawia się znak 1 . Chodzi mi o to że jak nacisnę klawisz 1 to na LCD pojawi się znak 1 i tam zostanie, następnie nacisnę 2 i na LCD w następnym polu ma się pojawić 2 a znak 1 ma zostać. Czyli na LCD mają być znaki 1 i 2 bo takie nacisnołem. I tą sytuację chcę powtórzyć kilkakrotnie i wszystkie nasiśnięte klawisze mają pozostawić swoje znaki na LCD.


    zrób tak :

    licznik=0
    if klawisz_naciśnięty then
    incr licznik
    locate 1,licznik
    lcd znak_klawisza
    end if

    to powyżej to tylko przykład musisz odpowiednio dostosować do języka w którym piszesz
  • #13 3593688
    ewsd75
    Poziom 13  
    Posty: 90
    Ocena: 20
    seba_x , dziękuję za pomoc dostosowałem Twój przykład do Bascoma i udało się programik działa. Programik usytawiłem jako podprogram przerwania i zadziałało. Dzięki za pomoc.
  • #14 3595403
    sylwunia35
    Poziom 18  
    Posty: 331
    Pomógł: 16
    Ocena: 146
    WITAM
    Przepraszam że się wcinam ale mam pytanko do kolegów jak dalej zrobić aby te liczby wciśnięte np: 1 i 2 dawały liczbę 12 do dalszego działania programu? Chodzi o Bascom.
  • #15 3598092
    ewsd75
    Poziom 13  
    Posty: 90
    Ocena: 20
    Postaram się coś napisać aby po wciśnięciu 1 i 2 procek zinterpretował to jako 12. Również piszę w Bascomie.
  • #16 3598115
    seba_x
    Poziom 31  
    Posty: 2071
    Pomógł: 29
    Ocena: 112
    sylwunia35 napisał:
    WITAM
    Przepraszam że się wcinam ale mam pytanko do kolegów jak dalej zrobić aby te liczby wciśnięte np: 1 i 2 dawały liczbę 12 do dalszego działania programu? Chodzi o Bascom.


    masz tu kawałek mojego programu , powinieneś wyczaić o co chodzi :

    Licznik_pomocniczy = 0

    A = 0
    B = 0
    C = 0
    End If



    If Licznik_pomocniczy = 1 Then

    Locate 2 , Licznik_nastepny
    A = Klawisz
    Klawisz = 255
    Lcd A

    A = A * 100
    Plyty_skladanie = Plyty_skladanie + A


    End If

    If Licznik_pomocniczy = 2 Then

    Locate 2 , Licznik_nastepny
    B = Klawisz
    Klawisz = 255
    Lcd B

    B = B * 10
    Plyty_skladanie = Plyty_skladanie + B


    End If

    If Licznik_pomocniczy = 3 Then

    Locate 2 , Licznik_nastepny
    C = Klawisz
    Klawisz = 255
    Lcd C


    Plyty_skladanie = Plyty_skladanie + C

    Licznik_nastepny = Licznik_nastepny - 3

    Licznik_pomocniczy = 0
    Zezwol_na_zmiany = 0
    End If

    End If


    chodzi miniejwięcej o to że pierwszą cyferkę mnożysz przez 100 , następną przez 10 i dodajesz do poprzedniej i na koniec dodajesz ostatnią , otrzymujesz liczbę 3 cyfrową , u mnie działa na 100%
  • #17 3599987
    sylwunia35
    Poziom 18  
    Posty: 331
    Pomógł: 16
    Ocena: 146
    Dzięki za odp
    Widziałem w jakimś opracowaniu jakoś prościej , jakaś komenda + coś ale nigdzie nie mogę tego znaleść.
    No cóż to musi mi wystarczyć. A może ktoś jeszcze ma inną propozycje - zobaczymy.
    Pozdrowienia.

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy obsługi klawiatury matrycowej STD 34-07 podłączonej do mikrokontrolera AT89C2051 i programowanej w asemblerze. Klawiatura nie posiada zasilania, sygnały są przesyłane wyłącznie przez linie wierszy i kolumn. Zalecane jest stosowanie metody „krążącego zera” lub „krążącej jedynki” do skanowania macierzy klawiszy. Mikrokontroler 8051 ma wbudowane rezystory podciągające na większości portów, co eliminuje konieczność stosowania zewnętrznych rezystorów podciągających, jednak piny P1.0 i P1.1 ich nie posiadają i wymagają podłączenia rezystorów (np. 4,7 kΩ) do zasilania. Wartość rezystorów podciągających może się różnić, ale typowo stosuje się 4,7 kΩ, co zapewnia odpowiedni czas narastania sygnału i ogranicza prąd. Autorzy dyskusji wyjaśniają, jak odczytywać stan klawiszy poprzez ustawianie odpowiednich stanów na kolumnach i odczyt wierszy, interpretując naciśnięcia jako logiczne „0”. Ponadto poruszono problem programowego zapisu kolejnych naciśnięć klawiszy na wyświetlaczu LCD, gdzie kolejne znaki mają pozostać widoczne, co rozwiązano przez inkrementację licznika i wyświetlanie znaków w kolejnych pozycjach. Przykłady kodu w Bascomie pokazują, jak łączyć kolejne cyfry w liczby do dalszego przetwarzania. Poruszono także kwestie poprawnego podłączenia taśmy płaskiej klawiatury do złącza na płytce, jednak bez jednoznacznej odpowiedzi.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA