Jak obsługiwać wyświetlacz i klawiaturę w programie na mikrokontroler 8051 w C?

8051 w C





Poprzedni Następny
Wiadomość
spis treści
From: "Andrzej" <ANDO_at_nospam_technik.swiebodzin.pl>
Subject: 8051 w C
Date: Mon, 6 Apr 1998 23:42:57 +0200


Od niedawna zaczelem probowac cos pisac na 51 w C
lecz nie do konca wiem w jaki sposob wykonac obsługe wyswietlacza i
klawiatury .Prosze o pomoc . Jesli ktos wie czy mozna zakupic ksiazke na ten
temat w ksiegarni internetowej to prosze adres ksiegarni.
ANDO_at_nospam_technik.swiebodzin.pl




Poprzedni Następny
Wiadomość
spis treści
From: cichy_at_nospam_amart.JUNKMAILPROTECTION.com.pl (Jaroslaw Cichorski Jr.)
Subject: Re: 8051 w C
Date: Tue, 07 Apr 1998 18:51:00 GMT


"Andrzej" <ANDO_at_nospam_technik.swiebodzin.pl> wrote:

Od niedawna zaczelem probowac cos pisac na 51 w C
lecz nie do konca wiem w jaki sposob wykonac obsługe wyswietlacza i
klawiatury .

To nie jest zaimplementowane w zadnym C na kontrolery jednoukladowe,
bo nie ma na to standardu. Klawiature i wyswietlacz mozesz sobie
podlaczyc jak chcesz i musisz sam sie martwic o to jak ja obsluzyc.
Mozesz sobie do tego popisac wlasne funkcje i stworzyc biblioteki.
Obsluga obu tych peryferiow jest w zasadzie bardzo prosta.
Organizacja klawiatury zalezy od tego ile klawiszy chcesz czytac i ile
wyjsc/wejsc masz do dyspozycji.
Jezeli to maja byc tylko dwa- trzy klawisze, to oplaca sie raczej
podlaczyc je na osobne wejscia. Wcisniecie klawisza to zwarcie wejscia
do masy.
Jezeli chcesz wiecej klawiszy, to lepiej zrobic przemiatanie.
Podzielic klawiature na wiersze i kolumny. Podajac w danym momencie na
kolumne sygnal, czytamy na ktorym wejsciu (wierszu) sie on pojawi.
Podajac w ten sposob po kolei sygnal na wszystkie kolumny i czytajac
wiersze skanujemy wszystkie klawisze. Do takiego rozwiazania
potrzebujemy tylko k+w linii z uP, a mozemy czytac k x w klawiszy. (k
Przy obsludze klawiatury musisz jeszcze zwrocic uwage na programowe
filtrowanie drgan stykow inaczej jedno wcisniecie klawisza bedzie
przez uC rozumiane jako cala seria wcisniec.
Jezeli chodzi o wyswietlacz, to zalezy jaki chcesz uzyc. Czy to ma byc
LED 7-segmentowy, czy LCD matrycowy.
Jezeli LED, to tez lepiej zrobic w multiplexie. Podajesz zasilanie
tylko na katode jednego wyswietlacza, a anody sterujesz w zaleznosci
od tego ktore segmenty maja sie palic. Potem nastepna katoda i tak
wszystkie cyfry. Trzeba tylko uwazac, aby w sterowaniu przy zmianie
cyfry, najpierw wylaczyc zasilanie, katody, wylaczyc wszystkie anody,
podac zasilanie na nowa katode i dopiero wlaczyc anody. Inaczej
bedziesz mial cienie na wyswietlaczu.
Jezeli w tym samym systemie ma byc klawiatura i wyswietlacz LED to
mozna katody i sterowanie kolumn klawiatury zrobic na tych samych
wyjsciach - oszczedzasz nogi procesora. Trzeba tylko troche
pokombinowac, zeby sie to wzalemnie nie zaklocalo - np. zeby
wcisniecie dwoch klawiszy z roznych kolumn ale w tym samym wierszu nie
powodowalo zapalenia sie segmentow z cyfry obok....
Osobna sprawa to wyswietlacz LCD alfanumeryczny. Tez jest dosc prosty
w sterowaniu, ale do niego pisze sie tak, jak do urzadzenia
zewnetrznego (jezeli nie masz w systemie zewnetrznej pamieci, to
mozesz LCD potraktowac jak pamiec zewnetrzna, trzeba tylko zwrocic
uwage na polaryzacje sygnalu E). Gdy jest pamiec zewnetrzna to mozna
zrobic prosty dekoder adresow do rozroznienia RAM i LCD.
Mozna tez w ogole uzyc innych linii uC do sterowania LCD i wtedy nie
potrzeba dekodera adresow.
Najlepiej poszukaj rozkazow i dokladnego opisu tego wyswietlacza w
sieci - powinno byc tez w archiwum grupy.

Mam nadzieje, ze to Ci na poczatek wystarczy.
Sorry, jezeli napisalem rzeczy zbyt oczywiste.

Pozdrawiam.


--------
Jaroslaw Cichorski Jr.
E-mail cichy_at_nospam_amart.JUNKMAILPROTECTION.com.pl
WWW http://www.amart.com.pl
UWAGA Adres niewazny!
Prosze usunac JUNK MAIL PROTECTION. zeby otrzymac prawidlowy adres.
Kto to jest General Failure i dlaczego czyta z mojego dysku twardego ?