480 likes | 614 Views
Urządzenia operatorskie. Urządzenia operatorskie 2 /46. Wejścia informacji Wyjścia informacji. Źródła informacji: klawiatury stykowe (klasyczne, słabej jakości); kontaktronowe (lepsze, wady łączenia);
E N D
Urządzenia operatorskie 2/46 Wejścia informacjiWyjścia informacji
Źródła informacji: • klawiatury • stykowe (klasyczne, słabej jakości); • kontaktronowe (lepsze, wady łączenia); • hallotronowe (dobre ale drogie); • membranowe (popularne, estetyczne, praktyczne); • zadajniki (stabilne) • kołowe (kodowane lub nie); • dip-switche; • przełączniki, przyciski. Urządzenia operatorskie - wejścia 3/46
Urządzenia operatorskie - wejścia 4/46 Sposoby obsługi klawiatur i zadajników: a) programowy bezpośredni odczyt/przeglądanie; b) programowe przeglądanie matrycy klawiszy/zadajników; c) klawiatura autonomiczna z możliwością wykorzystania przerwań.
Ad a) bezpośredni odczyt/przeglądanie Urządzenia operatorskie - wejścia 5/46 Zaleta - duża prostota obsługi. Wada - przy większej liczbie styków zużywa się zbyt dużo buforów. Rozwiązanie stosowane tylko przy b. małej liczbie odczytywanych klawiszy.
START oczekiwanie na klawisz AIN[portwe] T A=11111111b ? N likwidacja skutków drgań styków opóźnienie kms AIN[portwe] T A=11111111b ? N 1 Przykładowy algorytm obsługi klawiatury: Urządzenia operatorskie - wejścia 6/46
1 B:=0 RR A T CY = 0 ? N kod_klaw:=B B:=B+1 opóźnienie kms dekodowanie klawisza AIN[portwe] N A=11111111b ? oczekiwanie na zwolnienie klawisza T KONIEC Urządzenia operatorskie - wejścia 7/46
Uk t Uwe t Uwe t Drgania styków można także eliminować odpowiednim układem sprzętowym: Urządzenia operatorskie - wejścia 8/46
Realizacja przykładowego algorytmu w asemblerze MCS51: et1: mov a,P1 ;pierwszy odczyt portu klawiszy cjne a,#255,et2 ;czy sa zwarte styki sjmp et1 ;skok jesli nie - czekaj et2: acall delay10ms ;opoznienie mov a,P1 ;ponowny odczyt cjne a,#255,et3 ;czy sa nadal zwarte styki sjmp et1 ;skok jesli nie - czekaj et3: mov r7,#0 ;rozpoczecie dekodowania dekod: rrc a ;przesuw bitow do CY jnc kod ;skok gdy CY=0 inc r7 sjmp dekod ;sprawdz nastepny bit kod: mov kod_klaw,r7 ;zapisz kod klawisza czekaj: acall delay10ms ;opoznienie in a,P1 ;kontrolny odczyt portu klawiszy cjne a,#255,czekaj ;czy sa jeszcze zwarte styki ;skok jesli tak koniec: Urządzenia operatorskie - wejścia 9/46
Możliwe modyfikacje tego algorytmu - programu: 1. po ponownym odczycie stan A porównuje się nie z 255 (11111111b), ale z wynikiem pierwszego odczytu, zapamiętanym w pomocniczym rejestrze B: et1: mov a,P1 ;pierwszy odczyt portu klawiszy cjne a,#255,et2 ;czy sa zwarte styki sjmp et1 ;skok jesli nie - czekaj mov b,a ;przechowanie kopii w B et2: acall delay10ms ;opoznienie mov a,P1 ;ponowny odczyt cjne a,b,et3 ;czy sa nadal zwarte styki sjmp et1 ;skok jesli nie - czekaj et3: ... Urządzenia operatorskie - wejścia 10/46
Urządzenia operatorskie - wejścia 11/46 2.a. wyszukanie wszystkich wciśniętych klawiszy - tworzy się listę kodów klawiszy - wymagany jest 9-bajtowy bufor klawiszy, przechowujący listy aktualnie zwartych styków, lista kończy się bajtem 0FFh: mov r2,#8 ;R2=ilosc bitow do przejrzenia mov r7,#0 ;R7=kod/numer bitu mov r1,#key_buf ;R1->poczatek listy aktywnych kl. dekod: rrc a ;przesuw bitow do CY jc niekod ;skok gdy CY=1 mov @r1,r7 ;dopisanie kodu z R7 do listy inc r1 niekod: inc r7 djnz r2,dekod ;sprawdz nastepny bit mov @r1,#255 ;wpisanie znacznika konca listy
Urządzenia operatorskie - wejścia 12/46 2.b. wyszukanie wszystkich wciśniętych klawiszy - tworzy się listę kodów klawiszy - wymagany jest 9-bajtowy bufor klawiszy, przechowujący listy aktualnie zwartych styków, lista kończy się bajtem 0FFh - wersja wykorzystująca o 1 rejestr roboczy mniej: mov r2,#8 ;R2=ilosc bitow do przejrzenia ;a takze kod/numer bitu mov r1,#key_buf ;R1->poczatek listy aktywnych kl. dekod: rlc a ;przesuw bitow do CY jc niekod ;skok gdy CY=1 mov @r1,r2 ;dopisanie kodu z R2 do listy dec @r1 ;korekta wpisu inc r1 niekod: djnz r2,dekod ;sprawdz nastepny bit mov @r1,#255 ;wpisanie znacznika konca listy
Wykorzystanie przerwań zegarowych do odczytu i eliminacji drgań styków klawiatury Urządzenia operatorskie - wejścia 13/46 • Założenia do przykładu: • do 8 klawiszy wczytywanych poprzez ten sam port portwe, • przerwania zegarowe o okresie rzędu kilku milisekund. • Wymagane jest użycie przynajmniej 2 zmiennych: • klaw - podającej aktualny stabilny stan klawiatury; • tmpklaw - rejestrującej zmiany stanu klawiszy, odczytanego z portwe
START inne działania procedury obsługi przerwania zegarowego AIN[portwe] T N A=tmpklaw ? klawA tmpklawA działania opcjonalne N A=11111111b ? ewentualne dekodowanie stanu klawiszy T inne działania procedury obsługi przerwania zegarowego RETURN wewnątrz P.O.P. należy zrealizować następujące działania: Urządzenia operatorskie - wejścia 14/46
Ad b) przeglądanie matrycy klawiszy/zadajników przykład matrycy klawiszy 8x8 (64 klawisze) Urządzenia operatorskie - wejścia 15/46
Prosta matryca klawiatury ma następującą wadę: Urządzenia operatorskie - wejścia 16/46 eliminacja błędnych odczytów:
START B:=01111111b C:=0 BOUT[portwy] AIN[portwe] szukanie wciśniętego klawisza A=11111111b ? T N przejście do następnej kolumny/wiersza matrycy opóźnienie kms likwidacja skutków drgań styków AIN[portwe] RR B C:=C+8 T A=11111111b ? N T N C = 64 ? A B Przykładowy algorytm obsługi przez program główny (bez przerwań) matrycy 8x8 niestabilnych klawiszy (przycisków) : Urządzenia operatorskie - wejścia 17/46
A B RR A dekodowanie klawisza CY = 0 ? N T C:=C+1 kod_klawC opóźnienie kms oczekiwanie na zwolnienie klawisza AIN[portwe] N A=11111111b ? T B:=11111111b wyłączenie pobudzeń matrycy BOUT[portwy] KONIEC Urządzenia operatorskie - wejścia 18/46
Korzystniejsze jest użycie przerwań zegarowych ponieważ: • nie ma „jałowego” oczekiwania w pętli na klawisz lub jego zwolnienie; • okres przerwań zegarowych sprzyja stabilizacji sygnałów na rozległych połączeniach matrycy klawiszy; • łatwiej jest eliminować drgania styków na drodze programowej; • użycie przerwań zegarowych wymaga zastosowania bufora stanu klawiatury w pamięci RAM, co ułatwia późniejszą interpretację jej stanu. Urządzenia operatorskie - wejścia 19/46
START operacje startowe procedury obsługi przerwania zegarowego odczyt odpowiedzi matrycy na pobudzenie wysłane wcześniej AIN[portwekl] porównanie nowego odczytu z buforem roboczym,aktualizacja wpisu w buforze roboczym albo stanu A=M[brk+lk]? N T M[brk+lk]A M[bsk+lk]A lk:=(lk+1)mod nk modyfikacja licznikakolumn matrycy/indeksu buforów A Prosty algorytm obsługi matrycy klawiszy w przerwaniach zegarowych z podwójnym buforowaniem: Urządzenia operatorskie - wejścia 20/46
A lk=0 ? T dekodowanie stanu klawiatury(wykonywane co nk przerwań) N inne działania procedury obsługi przerwania zegarowego wysłanie nowego pobudzenia do matrycy, zał: sprzętowy dekoder NB 1zN lkOUT[portwykl] operacje końcowe procedury obsługi przerwania zegarowego RETURN Urządzenia operatorskie - wejścia 21/46
Ad c) Klawiatury autonomiczne Charakteryzują się one: - sprzętowym układem przeglądania klawiszy (tzw. sekwenter); - możliwością włączenia w system przerwań mikroprocesora; - różnymi funkcjami dodatkowymi zrealizowanymi sprzętowo (autorepeat, eliminacja drgań styków, programowanie funkcji); - odciążają oprogramowanie systemowe; - komunikacja z systemem mikroprocesorowym łączem równoległym lub szeregowym. Urządzenia operatorskie - wejścia 22/46
Przykładowy schemat klawiatury 64 klawiszy zrealizowany w TTL: Urządzenia operatorskie - wejścia 23/46
Klawiatura PC na mikrokontrolerze: Urządzenia operatorskie - wejścia 24/46
Rodzaje informacji wyjściowej: a) binarna (stany on/off różnych składników systemu, alarmy itp.); b) znakowa (cyfrowa lub tekstowa, np. o zmierzonych wielkościach analogowych). Urządzenia operatorskie - wyjścia 25/46
Urządzenia operatorskie - wyjścia 26/46 Ad a) Informacja binarna Stosuje się różnego rodzaju sygnalizację: - diody świecące LED; - miniaturowe żarówki / LEDy mocy; - sygnały akustyczne;
Urządzenia operatorskie - wyjścia 27/46 Sterowanie diodami LED:
Sterowanie miniaturowymi żarówkami: Należy korzystać z tranzystorów ze względu na prąd uderzeniowy przy włączaniu "zimnej" żarówki (ok. 10 razy większy od nominalnego) Urządzenia operatorskie - wyjścia 28/46
Sygnalizacja dźwiękowa: • "niewielkiej mocy" - elementy piezoceramiczne sterowane bitami rejestru portu wyjściowego (wyjściowe przebiegi okresowe albo wbudowane generatory); • "dużej mocy" - różnego rodzaju syrenki włączane przekaźnikami lub kluczami półprzewodnikowymi • „werbalna” - układy pamiętające i odtwarzające sekwencje dźwiękowe. Urządzenia operatorskie - wyjścia 29/46
Urządzenia operatorskie - wyjścia 30/46 Ad b) Informacja znakowa Stosowane rozwiązania: - wyświetlacze segmentowe LED: - sterowane statycznie - sterowane dynamicznie; - wyświetlacze mozaikowe LED; - wyświetlacze LCD segmentowe; - wyświetlacze LCD mozaikowe.
Wyświetlacze segmentowe LED - zespoły diód LED o wspólnej jednej elektrodzie: WA albo WK. Urządzenia operatorskie - wyjścia 31/46 Zalety wyświetlaczy LED:Wady wyświetlaczy LED: - długa żywotność;- duży pobór mocy; - duży zakres temperatur pracy;- kontrast zależny od oświetlenia zewn. - duża częstotliwość pracy; - brak refleksów świetlnych;
Urządzenia operatorskie - wyjścia 32/46 Sterowanie można realizować statycznie - w sposób analogiczny do sterowania pojedynczymi diodami LED (wygodniejsze są układy WA). Do uzyskania potrzebnych znaków na wyświetlaczu segmentowym stosuje się: - bezpośrednie sterowanie segmentami - cyfry, niektóre litery, symbole; - standardowe dekodery sprzętowe - tylko cyfry, czasem litery/symbole.
Przykład statycznego sterowania wyświetlaczami przy użyciu 7447: Urządzenia operatorskie - wyjścia 33/46 seria TTL: ’46, ‘246, ‘247, ’48, ‘248, ‘249; seria CMOS: 4055, 4547, 4558.
z zatrzaskiem na cyfrę BCD: 4056, 4511, 4543, 4544, 4513 Urządzenia operatorskie - wyjścia 34/46
Urządzenia operatorskie - wyjścia 35/46 • Dynamiczne sterowanie wyświetlaczami LED • Cechy: • równolegle połączone linie segmentów wszystkich pozycji wyświetlacza; • wspólne elektrody poszczególnych pozycji sterowane niezależnie; • mniejsza liczba elementów sterujących - oszczędności; • prostsza sieć połączeń - oszczędności; • wymaga buforowania wyświetlanej informacji; • trudniejsze sterowanie - rozbudowany program albo specjalny sterownik sprzętowy; • stosowane także w przypadku grup pojedynczych LED.
WG WG WG WG WG WG stan linii segmentowych W1 W2 W3 W4 W1 W2 W1 W2 W3 W4 TO TP Urządzenia operatorskie - wyjścia 36/46 zasada pracy: W1, W2, W3, W4 – sterowania wspólnych elektrod kolejnych pozycji wyświetlacza WG – okresy wygaszania międzysegmentowego TP – okres powtarzania TO – okres obsługi
Urządzenia operatorskie - wyjścia 37/46 Aby uzyskać podobną jak przy sterowaniu statycznym obserwowaną jasność świecenia segmentów LED należy stosować impulsowo prąd segmentu k-krotnie większy (tzw. forsowanie prądu). Częstotliwość powtarzania dla pojedynczego wyświetlacza powinna być większa od 50Hz (TP < 2,5ms), wynika to ze zdolności postrzegania oka ludzkiego. Przy N wyświetlaczach w zestawie, otrzymujemy częstotliwość obsługi: fO > N∙fP
Urządzenia operatorskie - wyjścia 38/46 • Przykład algorytmu obsługi zestawu 8 wyświetlaczy w przerwaniach zegar. • założenia: • częstotliwość przerwań zegarowych fC 850Hz = 400Hz; • pozycje wyświetlacza są wybierane kodem poprzez port portselcyfr; • informację wyświetlaną wpisuje się do portu portwysw; • struktury danych: bufor wyświetlacza bufwy przechowuje informacje (W0..W7) wyświetlane na poszczególnych pozycjach wyświetlacza jako: kody segmentowe, kody specjalne, cyfry BCD (pojedyncze lub pary).
START operacje startowe procedury obsługi przerwania zegarowego wyłączenie wszystkich pozycji wyświetlacza A:=11111111b AOUT[portselcyfr] inne działania procedury obsługi przerwania zegarowego wysłanie do portwysw informacji o stanie kolejnej pozycji wyświetlacza, przygotowanie nowej wartości selektora sw lw:=(lw+1) mod 8 AM[bufwy+lw] RL sw AOUT[portwysw] inne działania procedury obsługi przerwania zegarowego aktualizacja portselcyfr- włączenie kolejnej pozycji wyświetlacza swOUT[portselcyfr] operacje końcowe procedury obsługi przerwania zegarowego RETURN Urządzenia operatorskie - wyjścia 39/46
Urządzenia operatorskie - wyjścia 40/46 Przykładowa realizacja sprzętowa: - wyświetlacz typu WA
Urządzenia operatorskie - wyjścia 41/46 Przykładowa realizacja sprzętowa: - wyświetlacz typu WK
Urządzenia operatorskie - wyjścia 43/46 Wyświetlacze mozaikowe LED. Umożliwiają one przedstawianie różnych znaków i symboli w matrycy 5x7, 5x8 itp. pikseli. Sterowanie nimi może być zrealizowane jako: - sterowanie dynamiczne kolejnymi kolumnami pikseli (dostępne są scalone generatory znaków np.7304xx); - sterowanie statyczne lub dynamiczne całymi matrycami zintegrowanymi z lokalnymi sterownikami.
Urządzenia operatorskie - wyjścia 44/46 Wyświetlacze LCD segmentowe i mozaikowe. Zalety LCD: - "bezprądowe" sterowanie, mały pobór mocy; - stały kontrast niezależny od oświetlenia zewnętrznego; - możliwość uzyskania dowolnych kolorów przez filtry barwne; - tanie; - mogą być podświetlane od tyłu. Wady LCD: - duża bezwładność odpowiedzi (10-20ms czas włączenia, 100-200ms czas wyłączenia); - powierzchnia wyświetlacza dająca refleksy świetlne; - mały zakres temperatur pracy; - wymagają do pracy przebiegu prostokątnego ok. 32Hz.
Urządzenia operatorskie - wyjścia 45/46 zasada pracy wyświetlacza LCD
Urządzenia operatorskie - wyjścia 46/46 Do sterowania wyświetlaczy segmentowych można używać rejestrów zatrzaskowych i bramek XOR. Dostępne są także scalone sterowniki wyświetlaczy LCD zwykłe - 4055 i z zatrzaskiem - 4056, 4543, 4544. Mozaikowe wyświetlacze LCD są dostępne w dwóch odmianach: - 1,2 lub 4 wierszowe np. po 16 (20) znaków w linii; - ekrany o rozdzielczościach jak w komputerach laptop, palmtop itp. Wyświetlacze takie są zintegrowane z odpowiednimi sterownikami, z którymi mikroprocesor komunikuje się normalnym łączem równoległym, umożliwiającym przesył danych i rozkazów programujących sterownik. Przykładowe sterowniki: - 7211; - PCF8566, PCF8576, PCF8577, PCF8578 (wszystkie z I2C).
Urządzenia operatorskie - wyjścia 47/46 Wyświetlacze pseudoanalogowe. Do reprezentacji wielkości analogowych są niekiedy stosowane wskaźniki linijkowe typu LED lub LCD np.: - sterowane cyfrowo dekodery NB-->1zN: 7442 (10), 74154 (16), itd.; - sterowany analogowo UL1970 - skala z 16 diód LED; - sterowany cyfrowo 4754V - skala 18 elementów LCD. Tzw. linijka może też być jednym z dodatkowych elementów wyświetlacza segmentowego LCD.