View
43
Download
0
Category
Preview:
DESCRIPTION
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); - PowerPoint PPT Presentation
Citation preview
Urządzenia operatorskie
Urządzenia operatorskie 2/46
Wejścia informacji
Wyjścia informacji
Urządzenia operatorskie - wejścia 3/46
Ź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 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ń.
A02
A13
A24
A35
A46
A57
A68
A79
B0 18
B1 17
B2 16
B3 15
B4 14
B5 13
B6 12
B7 11
E19
DIR174LS245
1
K0 K1 K2 K3 K4 K5 K6 K7
VCC
VCC
D0D1D2D3D4D5D6D7
/CS
Urządzenia operatorskie - wejścia 5/46
Ad a) bezpośredni odczyt/przeglądanie
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.
Urządzenia operatorskie - wejścia 6/46
Przykładowy algorytm obsługi klawiatury:
AIN[portwe]
START
T
opóźnienie kms
AIN[portwe]
T
likwidacja skutków drgań styków
N
N
oczekiwanie na klawisz
A=11111111b ?
A=11111111b ?
1
Urządzenia operatorskie - wejścia 7/46
B:=0
RR A
CY = 0 ?T
B:=B+1kod_klaw:=B
opóźnienie kms
AIN[portwe]
N
KONIEC
oczekiwanie na zwolnienie klawisza
N
T
1
dekodowanie klawisza
A=11111111b ?
Urządzenia operatorskie - wejścia 8/46
Drgania styków można także eliminować odpowiednim układem sprzętowym:
R
VCC
K
C
Uk Uwe Uwy
Uk
t
Uwe
t
Uwe
t
Urządzenia operatorskie - wejścia 9/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 - czekajet2: acall delay10ms ;opoznienie mov a,P1 ;ponowny odczyt cjne a,#255,et3 ;czy sa nadal zwarte styki sjmp et1 ;skok jesli nie - czekajet3: mov r7,#0 ;rozpoczecie dekodowaniadekod: rrc a ;przesuw bitow do CY jnc kod ;skok gdy CY=0 inc r7 sjmp dekod ;sprawdz nastepny bitkod: mov kod_klaw,r7 ;zapisz kod klawiszaczekaj: acall delay10ms ;opoznienie in a,P1 ;kontrolny odczyt portu klawiszy cjne a,#255,czekaj ;czy sa jeszcze zwarte styki ;skok jesli takkoniec:
Urządzenia operatorskie - wejścia 10/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 Bet2: acall delay10ms ;opoznienie mov a,P1 ;ponowny odczyt cjne a,b,et3 ;czy sa nadal zwarte styki sjmp et1 ;skok jesli nie - czekajet3: ...
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 r1niekod: 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 r1niekod: djnz r2,dekod ;sprawdz nastepny bit mov @r1,#255 ;wpisanie znacznika konca listy
Urządzenia operatorskie - wejścia 13/46
Wykorzystanie przerwań zegarowych do odczytu i eliminacji drgań styków klawiatury
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
Urządzenia operatorskie - wejścia 14/46
wewnątrz P.O.P. należy zrealizować następujące działania:
A=tmpklaw ?
AIN[portwe]
START
T
N
klawA tmpklawA
RETURN
N
Tewentualne dekodowanie stanu
klawiszy
działania opcjonalne
inne działania procedury obsługi przerwania zegarowego
inne działania procedury obsługi przerwania zegarowego
A=11111111b ?
Urządzenia operatorskie - wejścia 15/46
Ad b) przeglądanie matrycy klawiszy/zadajnikówprzykład matrycy klawiszy 8x8 (64 klawisze)
OC1 C11
1D2 2D3 3D4 4D5 5D6 6D7 7D8 8D9
1Q 192Q 183Q 174Q 165Q 156Q 147Q 138Q 12U1
74HC573
A02 A13 A24 A35 A46 A57 A68 A79
B0 18B1 17B2 16B3 15B4 14B5 13B6 12B7 11
E19 DIR1U2
74HC245
/CS
/WR
/RD
D0D1D2D3D4D5D6D7
D0D1D2D3D4D5D6D7
R1R6R7R8
VCC
Urządzenia operatorskie - wejścia 16/46
R1R3R4R5
VCC
R2
1
1
1
1
0
1 1 1 101 11 0 0
odpowiedź prawidłowaodpowiedź obserwowana
pozorniewciśniętyklawisz
Prosta matryca klawiatury ma następującą wadę:
eliminacja błędnych odczytów:
Urządzenia operatorskie - wejścia 17/46
Przykładowy algorytm obsługi przez program główny (bez przerwań) matrycy 8x8 niestabilnych klawiszy (przycisków) :
BOUT[portwy]AIN[portwe]
START
T
opóźnienie kms
AIN[portwe]
TRR BC:=C+8
szukanie wciśniętego klawisza
likwidacja skutków drgań styków
N
NN
B:=01111111bC:=0
T
przejście do następnej kolumny/wiersza matrycy
A=11111111b ?
A=11111111b ?
C = 64 ?
A B
Urządzenia operatorskie - wejścia 18/46
opóźnienie kms
AIN[portwe]
N
KONIEC
oczekiwanie na zwolnienie klawisza
kod_klawC
T
B:=11111111b
BOUT[portwy]
wyłączenie pobudzeń matrycy
RR A
T
C:=C+1
Ndekodowanie
klawiszaCY = 0 ?
A=11111111b ?
A B
Urządzenia operatorskie - wejścia 19/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 20/46
Prosty algorytm obsługi matrycy klawiszy w przerwaniach zegarowych z podwójnym buforowaniem:
AIN[portwekl]
START
T
M[bsk+lk]AM[brk+lk]A
N
lk:=(lk+1)mod nk
operacje startowe procedury obsługi przerwania zegarowego odczyt odpowiedzi matrycy na
pobudzenie wysłane wcześniej
porównanie nowego odczytu z buforem roboczym,
aktualizacja wpisu w buforze roboczym albo stanu
modyfikacja licznikakolumn matrycy/indeksu
buforówA
A=M[brk+lk]?
Urządzenia operatorskie - wejścia 21/46
struktury danych: brk0 brk1 . . . brknk-1 bsk0 bsk1 . . . bsknk-1
lk brk bsk
lk=0 ? T
RETURN
N dekodowanie stanu klawiatury(wykonywane co nk przerwań)
inne działania procedury obsługi przerwania zegarowego
operacje końcowe procedury obsługi przerwania zegarowego
lkOUT[portwykl]
wysłanie nowego pobudzenia do matrycy,
zał: sprzętowy dekoder NB 1zN
A
Urządzenia operatorskie - wejścia 22/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 23/46
Przykładowy schemat klawiatury 64 klawiszy zrealizowany w TTL:
Urządzenia operatorskie - wejścia 24/46
Klawiatura PC na mikrokontrolerze:
Urządzenia operatorskie - wyjścia 25/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 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:
VCC
VCC"1"=on
"0"=off
"1"=on
"0"=off'07
'06
gorsze rozwi¹zanie
lepsze rozwi¹zanie
D02
D13
D26
D37
Q0 16
Q1 15
Q2 10
Q3 9
Q0 10
Q1 14
Q2 11
Q3 8
E0113
E234 7475
OC1
C11
1D2
2D3
3D4
4D5
5D6
6D7
7D8
8D9
1Q 19
2Q 18
3Q 17
4Q 16
5Q 15
6Q 14
7Q 13
8Q 12
74HC573
VCC VCC
"1"=off"0"=on
"1"=on"0"=off
Urządzenia operatorskie - wyjścia 28/46
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)
VCC VCC
"1"=on
"0"=off
"1"=on
"0"=off'07
'06
albo
Urządzenia operatorskie - wyjścia 29/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 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.
Urządzenia operatorskie - wyjścia 31/46
Wyświetlacze segmentowe LED - zespoły diód LED o wspólnej jednej elektrodzie: WA albo WK.
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.
Urządzenia operatorskie - wyjścia 33/46
Przykład statycznego sterowania wyświetlaczami przy użyciu 7447:
seria TTL: ’46, ‘246, ‘247, ’48, ‘248, ‘249;seria CMOS: 4055, 4547, 4558.
Urządzenia operatorskie - wyjścia 34/46
z zatrzaskiem na cyfrę BCD: 4056, 4511, 4543, 4544, 4513
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.
Urządzenia operatorskie - wyjścia 36/46
W1 W3W2 W4 W1 W2stan linii
segmentowych
W1
W2
W3
W4
WGWG WG WG WG WG
TO
TP
zasada pracy:
W1, W2, W3, W4 – sterowania wspólnych elektrod kolejnych pozycji wyświetlaczaWG – okresy wygaszania międzysegmentowegoTP – okres powtarzaniaTO – 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:
selektor 8z1indeksW0W1W2W3W4W5W6W7swlw bufwy
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).
Urządzenia operatorskie - wyjścia 39/46
AOUT[portselcyfr]
START
lw:=(lw+1) mod 8AM[bufwy+lw]
RL sw
RETURN
inne działania procedury obsługi przerwania zegarowego
operacje końcowe procedury obsługi przerwania zegarowego
operacje startowe procedury obsługi przerwania zegarowego
wyłączenie wszystkich pozycji wyświetlacza
wysłanie do portwysw informacji o stanie kolejnej
pozycji wyświetlacza, przygotowanie nowej wartości selektora sw
aktualizacja portselcyfr - włączenie kolejnej pozycji
wyświetlacza
A:=11111111b
inne działania procedury obsługi przerwania zegarowego
AOUT[portwysw]
swOUT[portselcyfr]
Urządzenia operatorskie - wyjścia 40/46
Vcc
sterowanie 1 pozycj¹:"1"=off, "0"=on
T
Vcc
a b c d e f g
hW
DL-WA
sterowanie segmentami:"1"=on, "0"=off
B11
B22
B33
B44
B55
B66
B77
B88
GND9
K1 18
K2 17
K3 16
K4 15
K5 14
K6 13
K7 12
K8 11
U 10
U3 ULN2803A
OC1
C11
1D2
2D3
3D4
4D5
5D6
6D7
7D8
8D9
1Q 19
2Q 18
3Q 17
4Q 16
5Q 15
6Q 14
7Q 13
8Q 12
U2
74HC573
OC1
C11
1D2
2D3
3D4
4D5
5D6
6D7
7D8
8D9
1Q 19
2Q 18
3Q 17
4Q 16
5Q 15
6Q 14
7Q 13
8Q 12
U1
74HC573
Przykładowa realizacja sprzętowa:
- wyświetlacz typu WA
sterowanie 1 pozycj¹:"1"=on, "0"=off
Vcc
a b c d e f g
hW
DL-WK
sterowanie segmentami:"1"=off, "0"=on
OC1
C11
1D2
2D3
3D4
4D5
5D6
6D7
7D8
8D9
1Q 19
2Q 18
3Q 17
4Q 16
5Q 15
6Q 14
7Q 13
8Q 12
U2
74HC573
OC1
C11
1D2
2D3
3D4
4D5
5D6
6D7
7D8
8D9
1Q 19
2Q 18
3Q 17
4Q 16
5Q 15
6Q 14
7Q 13
8Q 12
U1
74HC573T
Urządzenia operatorskie - wyjścia 41/46
Przykładowa realizacja sprzętowa:
- wyświetlacz typu WK
Urządzenia operatorskie - wyjścia 42/46
Vcc
T1
Vcc
a b c d e f g
hW
sterowanie segmentami:"1"=on, "0"=off
B11
B22
B33
B44
B55
B66
B77
B88
GND9
K1 18
K2 17
K3 16
K4 15
K5 14
K6 13
K7 12
K8 11
U 10
U2
ULN2803A
D034
D133
D232
D331
D430
D529
D628
D727
PA0 4
PA1 3
PA2 2
PA3 1
PA4 40
PA5 39
PA6 38
PA7 37
PB0 18
PB1 19
PB2 20
PB3 21
PB4 22
PB5 23
PB6 24
PB7 25
PC0 14
PC1 15
PC2 16
PC3 17
PC4 13
PC5 12
PC6 11
PC7 10
RD5
WR36
A09
A18
RESET35
CS6
U1
8255A
T2
Vcc
a b c d e f g
hW
T3
Vcc
a b c d e f g
hW
T4
Vcc
a b c d e f g
hW
A1
B2
CLR3 Q 4
Q 13
Cext14
RCext15U3A
74123
C
RVcc
A1 B2 C3
E14 E25 E36
Y0 15Y1 14Y2 13Y3 12Y4 11Y5 10Y6 9Y7 7U4
74138
Vcc
R1
R2
R3
R4
Vcc
R5
R6
R7
R8
D
'138CBA funkcja000 w³.poz.1010 w³.poz.2100 w³.poz.3110 w³.poz.4xx1 wyl.poz.1-4
Urządzenia operatorskie - wyjścia 43/46
Wyświetlacze mozaikowe LED.Umożliwiają one przedstawianie różnych znaków i symboli w matrycy5x7, 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
A B C D E F GW
fgedcbaW
a b c d e f g
W
b,c
B,C
A,D,E,F,G
a,d,e,f,g
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.
Recommended