Pobierz - Zakład TwT WT PW

Transkrypt

Pobierz - Zakład TwT WT PW
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
Laboratorium Systemy łączności w transporcie
ĆWICZENIA
1.
Przygotowanie do zajęć
W trakcie wykonywania wszystkich ćwiczeń / projektów wymagane jest uruchomienie
następujących aplikacji:
-
BASCOM – kompilator języka BASIC
-
PG4UW – program obsługi programatora T51
-
LABMK – program wspomagający pracę w laboratorium i sporządzający protokoły
Jako aplikacje dodatkowe uruchamiane są w określonych sytuacjach:
-
WINDSO – program obsługi przystawki oscyloskopowej (kiedy nie jest wykorzystywany
program ten powinien być wyłączany, a nie „chowany” pod inną aplikację, ponieważ
znacznie spowalnia pracę komputera)
-
COMTEST – program narzędziowy obsługi portów COM – RS232C
Przełączanie pomiędzy aplikacjami jest możliwe przy użyciu kombinacji klawiszy Alt+Tab
lub poprzez wybór na pasku zadań.
1.1
Nazewnictwo plików tworzonych podczas ćwiczeń
Zapisane w negatywie trzycyfrowe numery, które pojawiają się w instrukcji, oznaczają
kolejny krok wykonywanego ćwiczenia. Pierwsza cyfra numeru informuje o numerze
ćwiczenia, i tak numer 205 oznacza piąty punkt drugiego ćwiczenia. Numery te są
wykorzystywane w nazewnictwie plików tworzonych podczas ćwiczeń, zarówno przez edytor
BASIC, jak i kompilator BASCOM. Obowiązuje następujące nazewnictwo plików:
GGGPZXXX.ROZ , gdzie
GGG oznacza skrót grupy studenckiej (LTK, EPS, LTS, LTW, SRD, TWT, SRL, SRK), P
symbol podgrupy (A, B, C), Z numer zespołu (1, 2, 3 ...), XXX numer kolejnego kroku
ćwiczenia, a ROZ jest rozszerzeniem charakterystycznym dla danego pliku. Przykładowy
zapis
twtc2205.bas
oznacza grupę TwT, drugi zespół, podgrupę C, piąty krok drugiego ćwiczenia i plik BASIC
kompilatora BASCOM. W praktyce operacja zapisu pliku BASIC wymaga jedynie wyboru z
menu FILE opcji SAVE AS i zmiany numeru kroku ćwiczenia na kolejny. Wszystkie pliki
zapisywane są na dysku c w katalogu głównym „c:\lab_mk\” i podkatalogach, oznaczających
kolejno rok akademicki, rodzaj studiów, rok studiów, grupę studencką oraz podgrupę łącznie
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 1
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
z dwucyfrowym numerem zespołu. Przykładowy katalog dla ww. grupy TwT, to:
„c:\lab_mk\20012002\DZIENNE\3\TWT\C02\”.
Tak
rygorystyczne
podejście
do
nazewnictwa plików podyktowane jest koniecznością zarządzania plikami w ich olbrzymiej
ilości, przekraczającej pod koniec każdego semestru liczbę tysiąca.
1.2
Konfiguracja kompilatora i programu obsługi programatora
W praktyce zarządzanie plikami nie jest jednak uciążliwe, wymaga bowiem jedynie
ustawienia w opcjach kompilatora BASCOM ścieżki dostępu. W tym celu należy wybrać z
menu OPTIONS polecenie ENVIRONMENT i odszukać na trzeciej zakładce pole FILE
LOCATION. Klikając dwukrotnie na tym polu uzyskujemy dostęp do typowego okna
dialogowego Windows i wskazujemy ścieżkę przypisana do danego zespołu. Wybór
zatwierdzamy naciśnięciem (kliknięciem) klawisza OK.
W programie obsługi programatora T51 nie jest wymagane nawet konfigurowanie ścieżki
dostępu - wystarczy pierwsze otwarcie lub pierwszy zapis pliku i już każde następne
odwołanie będzie dotyczyło tego katalogu.
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 2
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
1.3
Kompilator BASCOM
Po uruchomieniu programu w oknie edytora pojawia się domyślnie ostatnio
przetwarzany plik BASIC. Zwykle należy go zamknąć korzystając z polecenia CLOSE w
menu głównym FILE. Po tym należy otworzyć plik przeznaczony aktualnie do edycji
(polecenie OPEN w menu głównym FILE) lub utworzyć nowy plik, korzystając z polecenia
NEW w menu głównym FILE – skrót Ctrl+N). Zapisanie pliku pod nową nazwą jest możliwe
po wybraniu polecenia SAVE AS... w menu głównym FILE, a pod starą nazwą poleceniem
SAVE w tym samym menu głównym FILE – skrót Ctrl+S.
Białe pole poniżej menu i paska ikon jest polem edytora programu, które służy po
prostu do pisania programu, w typowy dla każdego edytora Windows sposób. Słowa
kluczowe języka BASIC pisane są w kolorze niebieskim, nazwy zmiennych i stałych w
kolorze czarnym, nazwy portów i rejestrów w kolorze brązowym oraz komentarze w kolorze
zielonym. Po napisaniu programu należy poddać go kompilacji, czyli przetworzeniu do
postaci w której może zostać wpisany do mikrokontrolera. Jest to plik w postaci
szesnastkowej, który tworzy się automatycznie w katalogu pliku BASIC i ma taką samą jak
on nazwę z rozszerzeniem HEX. – np. twtc2205.hex. W celu kompilacji programu należy
wybrać polecenie COMPILE w menu głównym PROGRAM lub nacisnąć klawisz skrótu F7.
Wykryte podczas kompilacji błędy kompilator sygnalizuje podkreśleniem na czerwono linii
programu, która zawiera błąd oraz umieszczeniem z jej lewej strony znaku E (ang. error –
błąd). Dodatkowo u dołu okna edytora pojawia się okno, które zawiera szczegółowe
informacje o wykrytych błędach.
Program umożliwia jednoczesną edycję wielu plików z różnymi programami, do
których dostęp możliwy jest po wybraniu ich nazwy (lub numeru) w menu głównym
WINDOW. Polecenie CASCADE z tego samego menu rozmieszcza w oknie głównym
kompilatora wszystkie otwarte do edycji pliki.
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 3
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
1.4
Program obsługi programatora T51
Służy on (w najprostszym zastosowaniu) do odczytania stworzonego pliku
szesnastkowego HEX i wpisaniu go do pamięci programu mikrokontrolera. Po uruchomieniu
program testuje port Centronics w celu wykrycia programatora. Jeżeli nie zostanie on
wykryty, to program poinformuje o tym fakcie. W celu należy otwarcia pliku HEX należy
skorzystać z polecenia LOAD w menu głównym FILE lub nacisnąć klawisz F3. Poniżej menu
głównego i paska ikon znajduje się białe okno komunikatów (LOG), gdzie umieszczane są
wszystkie informacje nt. operacji wykonywanych przez program. Tam też pokazuje się
informacja o prawidłowym (lub błędnym) odczycie pliku.
Następnie należy umieścić mikrokontroler w podstawce typu ZIF programatora. W
tym celu należy zwolnić zaciski podstawki poprzez podniesienie w górę jej dźwigienki.
Mikrokontroler należy umieścić w podstawce w taki sposób, by jego zaznaczony róg znalazł
się przy dźwigience, którą następnie należy opuścić zaciskając styki podstawki na
wyprowadzeniach układu.
Przed każdym programowaniem należy skasować zawartość pamięci mikrokontrolera,
do czego służy polecenie ERASE w menu głównym DEVICE lub naciśnięcie klawisza F10.
Po potwierdzeniu YES polecenia skasowania program usunie całą zawartość pamięci
programu. Wyczyszczenie pamięci programu mikrokontrolera może zostać sprawdzone
polecenie BLANCK CHECK w menu głównym DEVICE lub poprzez naciśnięcie klawisza F6.
W tym momencie można przystąpić do jej zaprogramowania, zawartością
odczytanego pliku HEX. W tym celu należy wybrać polecenie PROGRAM w menu głównym
DEVICE lub nacisnąć klawisz F9.
Program informuje o poprawności każdej wykonanej operacji w oknie komunikatów.
niezależnie jednak można sprawdzić poprawność zapisanego programu poprzez wybranie
polecenia VERIFY w menu głównym DEVICE lub naciśnięcie klawisza F8.
Wszystkie ww. funkcje dostępne są także po naciśnięciu odpowiedniej ikony.
UWAGA !!! Wyjęcie układu z podstawki podczas trwania procesu programowania lub
kasowania może doprowadzić do jego uszkodzenia !
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 4
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
1.5
Program obsługi przystawki oscyloskopowej
Przystawka w pełni funkcjonalnie zastępuje wykorzystanie standardowego przyrządu
laboratoryjnego, jakim jest oscyloskop. Dzięki wykorzystaniu komputera nie tylko pozwala
zaoszczędzić miejsce na stanowisku laboratoryjnym, ale oferuje wiele możliwości
dostępnych jedynie dla drogich cyfrowych oscyloskopów, takich jak zapamiętywanie i
drukowanie obserwowanych przebiegów. Najważniejszą jednak jej funkcją jest analiza
widma, która pozwala na pełna obserwację przebiegów, np. generowanych przez układ
wybierania tonowego.
Przystawka wykonywana jest w dwóch wersjach, jako jedno- i dwukanałowa. W
przypadku wersji jednokanałowej niedostępna jest sekcja CH2, znajdująca się poniżej i
pośrodku ekranu podglądu przebiegów. Obie sekcje CH1 i CH2 służą do ustawienia wartości
wzmocnienia (VOLTS/DIV) w sposób typowy dla każdego oscyloskopu. Analogicznie
ustawiana jest wartość podstawy czasu w polu FREQ. RANGE. Proces odtwarzania
przebiegu rozpoczyna się po naciśnięciu klawisza RUN, a jego zapamiętanie po naciśnięciu
SINGLE. Klawisze ZOOM
służą do 1, 2, 3 i 4-krotnego powiększenia (rozszerzenia)
obserwowanego przebiegu. Klawisze DSO i FFT służą odpowiednio do przełączania się
pomiędzy funkcją oscyloskopu, a funkcja analizatora widma.
Klawiszami ON / OFF włączane i wyłączane jest wyzwalanie przebiegu (TRIGGER),
którego źródło ustalają przyciski CH1 (kanał 1) i CH2 (kanał 2) oraz znajdujące się poniżej
klawisze wyboru zbocza narastającego lub opadającego impulsu wyzwalania.
Po wybraniu opcji MARKERS z menu głównego VIEW na ekranie podglądu pojawiają
się ruchome (chwytane i przeciągane myszą) poziome i pionowe linie (markery), które służą
odpowiednio do odczytu wartości napięcia i częstotliwości w wybranych punktach przebiegu.
Sam przebieg może zostać skopiowany do schowka Windows poleceniem COPY lub zapisany
na dysku poleceniem SAVE AS ...
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 5
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
1.6
Program narzędziowy ComTest
Jego zadaniem jest obsługa dostępnych w Windows portów COM (RS232C)
komputera laboratoryjnego. Po uruchomieniu programu widoczne jest jego standardowe
okno, którego organizacja nie ulega zmianie podczas pracy.
1 – pole danych
odbieranych
2 – pole danych do
wysłania
3 – pole danych
nadawanych
4 – pole zdarzeń i
komunikatów
Dostęp do danego portu uzyskuje się po wybraniu jego numeru z pierwszej listy
zakładki (COM 1, COM 2 ....) oraz jego konfiguracji do której należą kolejno: wybór
szybkości pracy (300, ... 9600, ...), ilości bitów danych (5, 6, 7, 8) i sposobu sterowania
przepływem danych (brak, xon/xoff, ...). Najczęstsze ustawienie wykorzystywane podczas
ćwiczeń to: COM 1, 9600, 8, brak. Po dokonaniu konfiguracji należy nacisnąć klawisz
POŁĄCZ i program otwiera dostęp do wybranego portu. W przypadku błędu, np. z powodu
zajętości portu przez inną aplikację, program wyświetli odpowiedni komunikat. zamknięcie
portu następuje po naciśnięciu klawisza ROZŁĄCZ. W polu nr 1 pokazywane są wszystkie
znaki odbierane z otwartego portu COM. Należy jednak pamiętać, że nie wszystkie znaki
ASCII będą widziane w czytelnej postaci. Pole nr 2 służy do bezpośredniego wysyłania
danych do portu COM. W tym celu należy wpisać w polu nr 2 odpowiednią sekwencję
znaków i nacisnąć Enter lub klawisz NADAJ. W przypadku zaznaczenia opcji POWTÓRZ
program będzie „w kółko” nadawał zapisaną sekwencję. Jeżeli zaznaczono opcję CZYŚĆ, to
po wysłaniu sekwencji nastąpi skasowanie zawartości pola nr 2. Wszystkie wysłane znaki
umieszczane są w polu nr 3. Pole nr 4 służy natomiast do wyświetlania zachodzących w
porcie COM zdarzeń, wykrytych błędów transmisji i kodów ASCII odbieranych znaków.
Możliwe jest to po zaznaczeniu odpowiedniej opcji w polu UMIEŚĆ.
Kasowanie zawartości pól 1, 3 i 4 jest możliwe dzięki trzem klawiszom CZYŚĆ,
odpowiednio ODB., NAD., ZD.
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 6
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
2.
Realizowane projekty
A.
Budowa, schemat aplikacyjny i programowanie mikrokontrolera
Celem ćwiczenia jest zapoznanie z fizyczną budową układu mikrokontrolera
AT89C51,
identyfikacja
jego
wyprowadzeń,
pomiar
podstawowych
właściwości
elektrycznych jego układu zasilania oraz zapoznanie się z kompilatorem BASCOM i obsługą
programatora T51.
101
Odszukaj na płytce laboratoryjnej C51Test wszystkie charakterystyczne bloki
funkcjonalne, wyszczególnione i omówione we wprowadzeniu do laboratorium. Zidentyfikuj
je zarówno przy pomocy opisów płytki, jak i kolorów użytych do zaznaczenia
poszczególnych bloków.
Wykonaj kasowanie pamięci programu mikrokontrolera i umieść go w podstawce
płytki laboratoryjnej C51Test. Do wyprowadzeń V i A bloku Wy2 podłącz kolejno multimetr
i zmierz napięcie oraz prąd zasilania mikrokontrolera. Pamiętaj o zwarciu wyprowadzenia A
po odłączeniu multimetru - amperomierza.
Do wyprowadzeń X1 i X2 bloku Wy1 podłącz przystawkę oscyloskopową i obserwuj
badane przebiegi. Określ częstotliwość drgań generatora taktującego pracę mikrokontrolera.
Zapisz obraz badanych przebiegów, zarówno obserwowanych na oscyloskopie, jak i na
analizatorze widma. Określ jakość badanych sygnałów.
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 7
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
Przy użyciu sondy logicznej lub multimetru określ wartość logiczną napięć na
wszystkich wyprowadzeniach mikrokontrolera. Zapisz otrzymane wyniki.
UWAGA !!! W tym punkcie nie jest tworzony żaden program !
102
Wykorzystaj kompilator BASCOM i napisz swój pierwszy program, którego zadaniem
będzie wyłączenie sygnału przetwornika piezoelektrycznego (tzw. buzzer). Buzzer jest
podłączony do linii P1.6, a steruje nim (generuje dźwięk) stan wysoki. Użyj w programie
nazwy symbolicznej BUZZER.
UWAGA !!! Wszystkie elementy sygnalizacyjne i wykonawcze sterowane są określoną
linią mikrokontrolera Pm.n poprzez tranzystor (BC337) pracujący w układzie klucza. Rezystor
RB ogranicza prąd płynący przez bazę tranzystora, a rezystor RC pełni taką samą rolę w
odniesieniu do elementu wykonawczego i złącza kolektor-emiter.
103
Zmień program z p. 102 w taki sposób, aby naciśnięcie klawisza INT, podłączonego
do linii P3.3 (INT1), prowadziło do generowania dźwięku przez BUZZER. Spraw, aby
generowaniu dźwięku towarzyszyła sygnalizacja (świecenie) czerwoną diodą LED1, a
chwilom ciszy świecenie diody LED2 zielonej. Dioda LED1 podłączona jest do linii P3.4, a
dioda LED2 do linii P3.5. W programie używaj nazw symbolicznych INT, LED1 i LED2.
104
Rozbuduj program z p. 103 w taki sposób, aby naciśnięciu klawisza INT powodowało
nie tylko generowanie dźwięku, ale i zmianę stanu styków przekaźnika PRZEK. Do jego
wyprowadzeń podłącz multimetr i ustaw go w pozycji testowania zwarć.
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 8
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
105
W bloku konfiguracji wyświetlaczy LCD/LED ustaw zwory na jumperach P1.0, P1.1,
P1.2, P1.3, P1.4, P1.5 w pozycję 2-3, a na BL i LT w pozycję 1-2.
Określ, które z linii portu P1 pełnią rolę magistrali danych (ustalają wyświetlaną
wartość), a które pełnią rolę magistrali adresowej (wybierają wyświetlacz do zapisu wartości).
Układ „1 z 10” jest dekoderem kodu BCD na kod 1 z dziesięciu (4028), czyli na jego
jednym wyjściu pojawia się jedynka, a numer tego wejścia odpowiada podanej na wejścia
licznie w kodzie BCD. Pozostałe wyjścia przyjmują wartość zero. Wykorzystywane są tylko
dwie linie kodu BCD (A1 i A2), ponieważ wystarczają one do zapisu czterech kombinacji
(00, 01, 10, 11), czyli tyle ile jest wyświetlaczy LED. Ponieważ o chwili zapisu danych do
wyświetlacza (pokazaniu cyfry) decyduje stan niski na wejściu LE, to wyjścia dekodera „1 z
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 9
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
10” muszą zostać zanegowane w układzie NOT (4069). Wtedy na wybranym wyświetlaczu
(LE=0) pojawia cyfra podana na wejście dekodera kodu BCD na kod wskaźnika
siedmiosegmentowego „BCD na 7 seg.” (4511). UWAGA !!! Powyższy rysunek nie jest
schematem ideowym – nie pokazuje rzeczywistych połączeń w układzie, lecz istotę sterowania
wyświetlaczem LED. W rzeczywistości to dekodery „BCD na 7 seg.” posiadają wejścia LE.
W katalogu „c:\lab_mk\” znajduje się program WYSW_LED1.BAS, który obrazuje
sterowanie wyświetlaczami. Otwórz ten plik w BASCOMie i zapisz go pod kolejną nazwą w
swoim katalogu. Jego zadaniem jest wyświetlenie, po naciśnięciu klawisza INT i odczekaniu
1 sekundy, numeru wyświetlacza – kolejno od cyfry jedności, dziesiątek, setek aż do cyfry
tysięcy. Nie dokonuj żadnych zmian w programie i opisz jego działanie.
106
Z katalogu „c:\lab_mk\” otwórz w BASCOMie plik WYSW_LED2.BAS i zapisz go
pod odpowiednią nazwą do swojego katalogu. Jego zadanie jest identyczne, jak programu w
p. 105. Uruchom program i ponownie sprawdź jego działanie. Porównaj obydwa programy i
określ przyczynę ich odmiennego działania.
107
W katalogu „c:\lab_mk\” znajduje się plik WYSW_LED.BAS, który zawiera
uniwersalną procedurę sterowania wyświetlaczem LED. W tym celu wystarczy jedynie
wybrać numer wyświetlacza i wyświetlaną wartość, które to wartości podstawiane są
odpowiednio do zmiennych W_CYFRA i W_WARTOSC, oraz następnie wywołać procedurę
WYSWIETL (Call Wyswietl). Zapisz ten plik w swoim katalogu pod koleją nazwą i
wykorzystaj procedurę WYSWIETL do pokazania na wyświetlaczu swojej daty urodzenia.
Wyświetlacz ma pokazywać w pętli naprzemiennie dzień z miesiącem (DDMM) oraz rok
(RRRR) z czasem wyświetlania równym 1 sekunda.
108
Zmień program z p. 107 w taki sposób, aby zliczał on impulsy (naciśnięcia) klawisza
INT. Sprawdź, czy można zrealizować to zadanie bez używania funkcji czasowych.
109
Mając gotowy program z p. 108 dołącz do niego program z p. 103, by naciskanie
klawisza INT było sygnalizowane diodami LED1 i LED2 oraz sygnałem BUZZERA.
Po uruchomieniu i przetestowaniu programu wyłącz zasilanie płytki laboratoryjnej.
Wciśnij włącznik RST, co spowoduje rozłączenie układu zerowania mikrokontrolera z linią
zerowania. Powtórz proces włączania i wyłączania zasilania płytki 20 razy i za każdym razem
sprawdzaj działanie programu. Określ ilość prawidłowych wykonań programu.
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 10
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
B.
Współpraca mikrokontrolera z układami wejścia/wyjścia
Celem ćwiczenia jest poznanie i zrozumienie sposobu działania układów służących do
wprowadzania, wyprowadzania i przechowywania informacji, zwanych ogólnie układami
wejścia/wyjścia.
201
W bloku konfiguracji wyświetlaczy LCD/LED ustaw zwory na jumperach P1.0, P1.1,
P1.2, P1.3, P1.4, P1.5 oraz LT w pozycję 1-2, a na BL w pozycji 2-3.
Napisz program, który na wyświetlaczu LCD (dwa wiersze po szesnaście znaków)
napisze w skrócie nazwę wydziału i uczelni.
WYDZ. TRANSPORTU
POL. W-WSKIEJ
202
Zmień program z p. 201 w taki sposób, aby pracując w pętli wyświetlał kolejno
przesuwające się do góry linie z tekstem wyświetlanym poprzednio oraz uzupełnionym o
symbol grupy studenckiej oraz nazwiska i pierwszą literę imienia członków zespołu
laboratoryjnego.
WYDZ. TRANSPORTU
POL. W-WSKIEJ
GGG
Nazwisko1 I1.
Nazwisko2 I2.
Nazwisko3 I3.
Przestaw zworę na jumperze BL z pozycji 2-3 na pozycję 1-2. Dotykaj palcem
końcówek (wszystkich dookoła) układów dekoderów kodu BCD na kod wskaźnika
siedmiosegmentowego (4028, kolor czerwony). Obserwuj jak zachowuje się układ, którego
wejścia nie są podłączone – „wiszą w powietrzu”.
Przywróć zworze na jumperze BL pozycję 2-3.
203
Budowa i zasada działania klawiatury matrycowej m x n klawiszy opiera się na
organizacji klawiatury w postaci klawiszy ułożonych w m-wierszach i n-kolumnach. Pod
każdym klawiszem krzyżuje się jedna para linii – jedna linia z danego wiersza i druga linia z
danej kolumny. Wszystkie m+n linii podłączone są do przypisanych im linii portów
mikrokontrolera. W przypadku płytki laboratoryjnej jest to cały port P0. Jedna grupa tych linii
(obojętnie, czy linii wierszy czy kolumn) jest podpięta (podciągnięta) do plusa zasilania
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 11
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
poprzez oddzielny rezystor, zwykle 4,7kΩ. Odczyt stanu klawiszy polega na kolejnym (tylko
jedna w danej chwili) zerowaniu linii nie podłączonych do plusa zasilania i kolejnym
odczycie wszystkich linii, które są do niego podpięte. Jeżeli w tej chwili będzie wciśnięty
któryś z klawiszy, to spowoduje on zwarcie dwóch znajdujących się pod nim linii i zmianę
stanu linii podpiętej do plusa ze stanu wysokiego (pochodzącego od plusa zasilania) na niski
(pochodzący od wyzerowanej linii).
W katalogu „c:\lab_mk\” znajduje się plik KLAW_4X4.BAS, który zawiera
uniwersalną procedurę obsługi klawiatury matrycowej 4x4 (4 rzędy klawiszy w 4
kolumnach). Po każdym wywołaniu procedury KLAW_4X4 (Call Klaw_4x4) procedura
podstawia pod zmienną KLAWISZ kod naciśniętego klawisza. Jeżeli żaden klawisz nie został
naciśnięty, to zmienna KLAWISZ przyjmuje wartość 255. Klawiszom zostały przypisane
następujące kody: 0 dla 0, 1 dla 1, 2 dla 2, ... , 9 dla 9, 10 dla A, 11 dla B, 12 dla C, 13 dla D,
14 dla * i 15 dla #. Napisz program wykorzystujący procedurę KLAW_4x4, który po
naciśnięciu klawisza napisze na wyświetlaczu LCD jego kod.
204
Rozbuduj program z p. 203 w taki sposób, aby naciśnięciu klawisza towarzyszył
sygnał dźwiękowy, a kod klawisza był wysyłany do komputera laboratoryjnego łączem
RS232C (polecenia Print i Printbin) – uruchom program narzędziowy ComTest.
205
Zmień program z p. 204 i usuń z procedury obsługi klawiatury polecenie oczekiwania
100 milisekund, polecenie wysyłania kodu klawisza łączem RS232C oraz generowania
dźwięku. Przetestuj działanie zmodyfikowanego programu.
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 12
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
206
W katalogu „c:\lab_mk\” znajduje się plik PAMIEC.BAS, który zawiera dwie
uniwersalne procedury zapisu i odczytu do/z pamięci szeregowej EEPROM, wg standardu
I2C. W celu zapisu danej do pamięci należy jedynie wpisać jej wartość oraz adres
odpowiednio do zmiennych EEPROM i EEPROM_ADRES. Następnie należy wywołać
procedurę EEPROM_ZAPIS (Call Eeprom_zapis), która zapisze wartość zmiennej EEPROM
w pamięci pod adresem EEPROM_ADRES.
W celu odczytu określonej komórki pamięci należy jedynie wpisać jej adres do
zmiennej
EEPROM_ADRES
i
wywołać
procedurę
EEPROM_ODCZYT
(Call
Eeprom_zapis), która przypisze zmiennej EEPROM odczytaną zawartość komórki pamięci,
znajdującą się pod adresem EEPROM_ADRES.
Na płytce laboratoryjnej znajdują się trzy układy pamięci szeregowej AT24C02 o
pojemności 2kb (256 x 8 bajtów) i adresach bazowych 160, 164 i 166. Pamięci te korzystają
ze wspólnej dwukierunkowej (zapis i odczyt) magistrali I2C, której linie są oznaczone SDA
(dane) i SCL (zegar).
Zmień program z p. 204 w taki sposób, aby zamiast wysyłać łączem RS232C kody
naciśniętych klawiszy, zapisywał on je do kolejnych komórek pamięci – od 1 do 20. Po
zapisaniu 20-tej komórki program ma poinformować o tym fakcie i zakończyć działanie.
Zapisz w protokole zapamiętana sekwencję liczb w postaci mapy pamięci – komórka, adres i
wartość.
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 13
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
207
Zmień program z p. 206 w taki sposób, aby po uruchomieniu oczekiwał on na
naciśnięcie klawisza INT. Po jego naciśnięciu program ma odczytywać kolejne (zapisane
wcześniej) komórki pamięci i wyświetlać ich wartość na wyświetlaczu LCD. Po odczytaniu
20-tej komórki program ma poinformować o tym fakcie i zakończyć działanie.
208
Zmień program z p. 207 w taki sposób, aby po naciśnięciu dowolnego klawisza na
klawiaturze matrycowej 4x4 wyświetlał on na wyświetlaczu LCD zawartość komórki pamięci
o adresie identycznym z kodem klawisza. Zaproponuj rozwiązanie, które pozwoli uzyskać
dostęp do komórek o adresie większym od 16, czyli większym od największego kodu
klawisza.
209
Napisz program, który po uruchomieniu oczekuje na naciśnięcie klawisza INT. Po
jego naciśnięciu program ma realizować funkcje stopera – wyświetlać w minutach i
sekundach upływający czas. Wykorzystaj funkcję Wait. Dodaj do programu wysyłanie
wartości odmierzonego czasu łączem RS232C do komputera laboratoryjnego. Sprawdź z
dowolnym zegarkiem elektronicznym dokładność pomiaru czasu i zinterpretuj otrzymany
wynik.
210
W katalogu „c:\lab_mk\” znajduje się plik ZEGAR.BAS, który zawiera procedurę
obsługi zegara czasu rzeczywistego RTC (PCF8583). Zegar ten jest także obsługiwany
poprzez magistralę I2C, a jego adres bazowy wynosi 162.
Uruchom program i porównaj jego działanie z programem z p. 209.
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 14
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
C.
Projekt i budowa elektronicznego aparatu telefonicznego
Celem ćwiczenia jest połączenie umiejętności zdobytych podczas projektów A i B w
jedną funkcjonalną całość oraz praktyczne wykorzystanie ich w konstrukcji elektronicznego
aparatu telefonicznego. Dodatkowym celem ćwiczenia jest zaznajomienie studentów z
podstawowymi elementami aparatu telefonicznego, procesem zestawiania i przyjmowania
połączeń oraz podstawowymi parametrami elektrycznymi aparatu i linii telefonicznej.
Aparat został wykonany w postaci dodatkowej płytki podłączanej do głównej płytki
laboratoryjnej za pomocą złącz typu FC10 i gniazd P2 oraz P3. Oznaczenia gniazd
odpowiadają portom mikrokontrolera do których prowadzą poszczególne linie od 1 do 8.
Dodatkowo na liniach 9 i 10 wyprowadzono napięcie zasilania +5V DC. Schemat ideowy
aparatu został przedstawiony na rysunku C-1, a rozmieszczenie poszczególnych elementów
na rys. C-2. Składa się on z dwóch zasadniczych części: rozmownej (górna część schematu)
oraz układu załączania do linii, elektronicznej identyfikacji sygnału dzwonienia oraz układu
wybierania tonowego DTMF (część dolna schematu). Podłączenie aparatu do linii możliwe
jest dzięki typowemu złączu LINE (RJ4/6, kolor czarny) oraz zworom JP_L3 i JP_L4 w
bloku LINIA, które pozwalają na „zmianę położenia” żył w gniazdku bez konieczności
zmiany wtyczki. Sygnał z linii podawany jest następnie poprzez kondensator CL i rezystor
RL na dwa przekaźniki PRZE1 i PRZE2 (kolor brązowy). Zadaniem CL i RL jest
dopasowanie rezystancji i pojemności aparatu do norm telekomunikacyjnych; oba te elementy
mogą zostać w razie konieczności zwarte zworami JP_CL i JP_RL (CL i RL). Gniazda
CI_L1 i JP_L1, oznaczone na płytce L, pozwalają na podłączenie oscyloskopu i multimetru
do linii.
W stanie spoczynku (jak na schemacie) sygnał z linii poprzez styki rozwierne
przekaźników podawany jest poprzez kondensator C11 na tradycyjny dzwonek telefoniczny,
podłączany do gniazda DZWONEK, oznaczonego na płytce DZW (kolor zielony). Zwarcie
zwory JP_DZ (DZ), powoduje podanie sygnału dzwonienia na elektroniczny układ jego
identyfikacji. W przypadku dzwonienia następuje spolaryzowanie i świecenie czerwonej
diody LED_DZ oraz przewodzenie diody transoptora US2 (CNY17, kolor zielony). Kolektor
C transoptora spolaryzowany jest napięciem zasilania poprzez rezystor R11 i takie napięcie
(+5V) występuje na nim w chwili zatkania (braku sygnału dzwonienia). Przewodzenie diody
transoptora powoduje jednak wysterowanie jego tranzystora i przełączenie kolektora do masy
układu, co odpowiada logicznej zmianie napięcia z 1 (5V) do 0. Zmiana ta podawana jest za
pośrednictwem złącz P2 i P3 na dwie linie mikrokontrolera: P2.7 i P3.2 (linia przerwania
INT0, wspólna z odbiornikiem podczerwieni).
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 15
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
Rys. C-1 Schemat ideowy aparatu telefonicznego
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 16
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
Rys. C-2 Rozmieszczenie elementów na płytce aparatu telefonicznego
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 17
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
W przypadku naciśnięcia klawisza ON_LINE poprzez rezystor R4 zostają
wysterowane tranzystory T1 i T2 (kolor żółty). Ich przewodzenie powoduje przepływ prądu w
uzwojenia przekaźników PRZEK 1 i PRZEK 2, co wywołuje zmianę stanu ich styków. Po
zwarciu zwory JP_WL (WL) analogiczną reakcję można wywołać w sposób programowy,
poprzez podanie na linię P2.6 mikrokontrolera stanu wysokiego. Zmiana stanu styków
powoduje odłączenie układu identyfikacji sygnału dzwonienia i załączenie części rozmownej
aparatu oraz transformatora TR1 do linii telefonicznej. Diody D4, D5, D6 i D7 pracują w
układzie prostownika, uniezależniając cześć rozmowną od polaryzacji linii. W tym momencie
w słuchawce aparatu powinien być słyszany sygnał centrali lub głos abonenta dzwoniącego.
Słuchawka aparatu (głośnik i mikrofon) podłączana jest do gniazda SLUCH (RJ4/4, kolor
biały) poprzez kombinację zwór M+, M-, G+ i G-. Odpowiednie ich ustawienie umożliwia
podłączenie dowolnej słuchawki bez konieczności zmian we wtyczce połączeniowej.
Wykorzystanie mikrofonów nowszej generacji wymaga włączenia w ich układ dodatkowego
źródła zasilania (np. baterii 1,5V). Napięcie to można także uzyskać z dzielnika napięcia R12
i R13, poprzez połączenie zwory JP_MIK (oznaczonej na płytce MIK) z odpowiednimi
pinami zwory M+. Jeżeli dzielnik nie jest wykorzystywany należy rozewrzeć zworę JP_ZAS,
oznaczoną ZAS.
Układ rozmowny składa się ze wzmacniacza mikrofonowego na tranzystorze T5,
wzmacniacza słuchawkowego na tranzystorach T6 i T7 oraz z układu tranzystorów T8 i T9
(kolor pomarańczowy) spełniających rolę dodatkowego stopnia wzmocnienia dla sygnałów z
mikrofonu przed wysłaniem ich w linię. Przedstawiony układ rozmowny posiada oczywiście
układ antylokalny, którego zadanie polega na eliminacji (w praktyce znacznym osłabieniu)
własnego sygnału mowy we własnej słuchawce. Podczas mówienia do mikrofonu sygnał
wzmacniany jest we wzmacniaczu mikrofonowym i z kolektora tranzystora T5, poprzez
kondensator C10, podawany jest na bazę tranzystora T8. Tranzystory T8 i T9 pełnią w tym
przypadku rolę wzmacniacza, którego wzmocnienie zależne jest od rezystancji linii. W środku
dzielnika napięcia, tworzonego potencjometrem P_ANTY spotykają się dwa sygnały: linii i
wzmacniacza mikrofonowego. Ponieważ są one przeciwne w fazie, to częściowo się znoszą i
ich różnica podawana jest poprzez kondensator C6 na układ wzmacniacza słuchawkowego.
Gniazda IMPULS (IMP, kolor czerwony) i TONE (TON, kolor niebieski) służą do
podłączenia układu wybierania aparatu, odpowiednio impulsowego i tonowego. W przypadku
odłączenia tradycyjnej tarczy wybierania impulsowego wymagane jest zwarcie zwory
JP_DZW (DZW). Nie należy jednak tego robić, jeżeli podłączane jest w jej miejsce wyjście
przekaźnika PRZ1 płytki laboratoryjnej, który w ćwiczeniu zastępuje blok wybierania
impulsowego.
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 18
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
Układ US1 (UM91531, kolor czerwony) jest scalonym nadajnikiem kodu DTMF –
wybierania tonowego. Może on jednak pracować także w trybie wybierania impulsowego, a
sam wybór dokonywany jest poprzez wejście T/P układu US1 zworą JP_PT (PT), gdzie stan
niski odpowiada wybieraniu tonowemu, a stan wysoki impulsowemu. W przypadku pracy w
trybie wybierania impulsowego sygnał wyprowadzany jest na wyjście PULSE i może być
obserwowany na oscyloskopie na wyjściu WY_PULSE (P). Układ taktowany jest
wewnętrznym generatorem, do którego podłączany jest kwarc Q1 (3,579 MHz). Pracę układu
US1 inicjuje podanie stanu niskiego na wejście CE, uzyskiwanego po załączeniu zasilania z
rezystora R1 i kondensatora C1. Wygenerowanie odpowiedniego tonu (cyfry) musi zostać
poprzedzone podaniem odpowiedniej kombinacji na wejścia D3, D2, D1 i D0 układu US1. W
trakcie spoczynku na wejściu LATCH układu US1 powinien być utrzymywany stan niski.
Podanie na to wejście krótkiego (np. 10 ms) impulsu dodatniego powoduje uruchomienie
procedury generowania sygnału tonowego. Dodatnie zbocze impulsu powoduje przepisanie
danych z wejść D3 – D0 do wewnętrznego rejestru układu US1. Zbocze ujemne rozpoczyna
generowanie sygnału tonowego, co jest sygnalizowane zmianą stanu wyjścia ACK układu
US1 z poziomu logicznej jedynki do zera. Poziom niski na wyjściu ACK utrzymywany jest
przez cały czas generowania sygnału tonowego i zmienia się na wysoki po jego zakończeniu
wraz ze standardowym czasem przerwy.
LATCH
Kod DTMF
TONE
ACK
0
10
80
150
t (ms)
Rys. C-3 Przebiegi czasowe układu US1
Wszystkie sześć wejść sterujących układu US1 połączone jest poprzez złącze P2 z
portem P2 mikrokontrolera: D3=P2.3, D2=P2.2, D1=P2.1, D0=P2.0, LATCH=P2.4,
ACK=P2.5. Sygnał tonowy wyprowadzany jest na wyjście TONE układu US1, gdzie poprzez
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 19
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
rezystor R5 oraz tranzystor T3 podawany jest na transformator TR1 i trafia do linii
telefonicznej. Czas trwania generowanego sygnału tonowego wynosi 70 ms i tyle samo
wynosi przerwa przed wysłaniem następnej cyfry. Przebiegi czasowe układu US1 zostały
pokazane na rysunku C-3.
301
Odszukaj na płytce aparatu telefonicznego wszystkie charakterystyczne bloki
funkcjonalne oraz elementy, wyszczególnione i omówione we wprowadzeniu do ćwiczenia.
Zidentyfikuj je zarówno przy pomocy opisów płytki, jak i kolorów użytych do zaznaczenia
poszczególnych bloków i elementów.
W bloku konfiguracji wyświetlaczy LCD/LED ustaw zwory w taki sam sposób, jak w
p. 105. Wyciśnij włącznik ON_LINE, rozewrzyj zwory WL, DZW i DZ. Połącz płytkę
laboratoryjną z płytką aparatu dwoma płaskimi kablami typu FC10, za pomocą złącz P2 i P3.
Do gniazda IMP (kolor czerwony) podłącz tradycyjną tarczę numerową (wybierania
impulsowego), a do gniazda DZW (kolor zielony) tradycyjny dzwonek. Gniazdo TON (kolor
niebieski) pozostaw bez podłączenia. Zaprogramuj mikrokontroler w sposób identyczny, jak
w p. 102, by wyłączyć sygnał buzzera – program zapisz pod nazwą właściwą dla p. 301.
Włącz zasilanie płytki laboratoryjnej. Do gniazda L (kolor czerwony) podłącz multimetr i
zmierz napięcie, jakie panuje na linii w stanie spoczynku. Z telefonu laboratoryjnego
zadzwoń na numer przypisany do Twojego stanowiska i aparatu. Zmierz napięcie, jakie
występuje na linii w chwili dzwonienia oraz uważaj na występujące napięcie stałe i zmienne.
Zamiast multimetru podłącz oscyloskop. Włącz przycisk ON_LINE i obserwuj sygnał
zgłoszenia centrali, przerysuj oscylogram i zapisz częstotliwość oraz napięcie sygnału. Przy
pomocy potencjometru P_ANTY przeprowadź równoważenie układu antylokalnego – szukaj
takiej pozycji, aby przydźwięk i własny głos w słuchawce były jak najsłabsze. Wyłącz
przycisk ON_LINE i ponownie zadzwoń do swojego aparatu. Obserwuj na oscyloskopie
przebieg sygnału dzwonienia, przerysuj oscylogram i zapisz częstotliwość oraz napięcie
sygnału. Włącz przycisk ON_LINE i zadzwoń do aparatu laboratoryjnego. Analogicznie jak
poprzednio obserwuj sygnał centrali, przerysuj oscylogram i zapisz częstotliwość oraz
napięcie sygnału. W przypadku sygnału przerywanego (jest / nie ma) opisz rytm zmian
sygnału.
Odłącz tarczę numerową od gniazda IMP i zewrzyj zworę DZW. Do gniazda TON
podłącz klawiaturę wybierania tonowego i ponownie wybierz numer aparatu laboratoryjnego.
Obserwuj na oscyloskopie przebieg sygnału wybierania tonowego, przerysuj przykładowy
oscylogram i opisz jego naturę. Zwróć uwagę na konieczność wykorzystania oscyloskopu z
pamięcią.
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 20
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
302
Odłącz klawiaturę wybierania tonowego oraz dzwonek tradycyjny i ponownie
rozewrzyj zworę DZW oraz zewrzyj zwory WL i DZ. Do gniazda IMP podłącz kabel
łączący je z wyjściem przekaźnika PRZ1 płytki laboratoryjnej. Napisz program, który po
uruchomieniu odpowiednio ustawi styki przekaźnika PRZE1, po naciśnięciu klawisza INT
będzie włączał i wyłączał aparat do linii telefonicznej, co odpowiada funkcji klawisza
ON_LINE. Sterowanie realizowane jest przez linię P2.6, użyj nazwy symbolicznej LINIA.
Wykorzystaj diody LED1 i LED2 do informowania o stanie aparatu - niech dioda zielona
informuje o stanie spoczynku, a dioda czerwona o podłączeniu aparatu do linii.
303
Rozbuduj program z p. 302 w taki sposób, by uruchamiał on sygnał buzzera w
chwilach, kiedy na wejściu P2.7 pojawia się sygnał dzwonienia. Użyj nazwy symbolicznej
DZWONEK. Wykorzystaj aparat laboratoryjny i wybierz numer swojego aparatu /
stanowiska. Kiedy rozlegnie się dźwięk buzzer’a, to „odbierz telefon” używając klawisza
INT.
304
Dołącz do programu z p. 303 procedurę z p. 203, czyli funkcję obsługi klawiatury
matrycowej 4 x 4 klawisze. Wyświetlaj naciskane klawisze w drugim wierszu wyświetlacza
LCD i czyść ją przy rozłączaniu aparatu od linii telefonicznej.
305
Rozbuduj program z p. 304 o funkcję generowania impulsów (zwieranie i rozwieranie)
na stykach przekaźnika PRZE1 płytki laboratoryjnej. Liczba impulsów ma odpowiadać
kodowi naciśniętego klawisza (od 1 do 9) i liczbie 10 w przypadku naciśnięcia klawisza 0.
Zwróć uwagę, by czas przerwy i czas zwarcia odpowiadał wymaganiom normy. Stwórz
odpowiednią procedurę o nazwie PULSE.
Włącz aparat do linii i wybierz numer aparatu laboratoryjnego. Zakończ połączenie i z
aparatu laboratoryjnego wybierz numer swojego aparatu. Sprawdź, czy zaprogramowany
mikrokontroler realizuje wszystkie podstawowe funkcje aparatu: identyfikację sygnału
dzwonienia, włączanie i wyłączanie do linii oraz wybieranie numeru. Upewnij się, że aparat
„nie zawiesza się”, czyli przechodzi po zakończeniu każdej funkcji do odpowiedniego stanu.
Dodaj do programu procedurę TONE, która zrealizuje wybieranie kolejnych cyfr w
systemie tonowym. Dla ułatwienia, przyjmij w programie sztywne wykorzystanie raz jednej,
a raz drugiej procedury – PULSE lub TONE.
306
Rozbuduj program z p. 305 o funkcję klawisza REDIAL (użyj takiej nazwy dla
tworzonej procedury), czyli automatycznego wybierania ostatnio wprowadzonego numeru. W
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 21
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
tym celu wykorzystaj procedury z p. 206, zapisujące i odczytujące zawartość pamięci
szeregowej EEPROM. Niech wprowadzany numer trafia do pierwszej pamięci US2 płytki
laboratoryjnej, w zakresie adresów od 0 do 10. Zauważ, że długość numeru może być różna,
więc na końcu, po zapisaniu numeru, trzeba umieścić informację (znak) jego końca. Numer
powinien trafiać do pamięci w trakcie wybierania kolejnych cyfr, a zerowanie adresu
aktualnej komórki pamięci powinno następować po rozłączeniu aparatu od linii – dzięki temu
rozwiązany zostaje problem identyfikacji końca wprowadzanego numeru. Pamiętaj, że adres
aktualnie zapisywanej komórki nie może przekroczyć 10, ewentualnie 9 - jeśli zawsze
wykorzystywany jest znacznik końca numeru. Funkcję REDIAL uaktywniaj po naciśnięciu
klawisza A.
307
Dodaj do programu z p. 306 możliwość wprowadzania do pamięci aparatu dziesięciu
numerów, które będą wywoływane (wybierane) po naciśnięciu klawisza skrótu. Po
naciśnięciu klawisza B program ma oczekiwać na naciśnięcie jednego z klawiszy od 0 do 9.
Po jego naciśnięciu program ma zapisać ostatnio wybrany numer, zapamiętany funkcją
REDIAL w pamięci EEPROM układu US3 – uważaj na inny adres układu. Przyjmij, że
można wprowadzać, co najwyżej dziesięciocyfrowe numery, a adresy początku ich położenia
w pamięci określane są w najprostszy z możliwych sposobów:
adres = klawisz * 10
gdzie klawisz oznacza kod naciśniętego klawisza, po naciśnięciu klawisza B. Procedura musi
zapewniać możliwość wycofania się bez zapisu numeru w pamięci. W tym celu wystarczy
zagwarantować odpowiednią reakcję na ponowne naciśnięcie klawisza B.
Jako klawisz skrótu przyjmij klawisz D, czyli po jego naciśnięciu program ma
oczekiwać na naciśnięcie klawisza od 0 do 9 i po jego naciśnięciu odczytać z pamięci numer
przypisany do danego klawisza, a następnie wybrać go. Najprostsza realizacja tej funkcji
może polegać na przepisaniu odpowiedniego numeru do obszaru zarezerwowanego dla
klawisza REDIAL i wywołanie funkcji REDIAL. W ten sposób uniknie się też problemu z
bieżącym zapisywaniem numeru odczytywanego z pamięci do obszaru pamięci funkcji
REDIAL. Analogicznie jak poprzednio funkcja obsługi klawisza skrótu musi zapewniać
możliwość wycofania się z wybierania numeru z pamięci. Także najłatwiej zapewnić to
poprzez reakcję na ponowne naciśnięcie klawisza D.
Zauważ, że program robi się w tym miejscu dosyć złożony. Dla jego czytelności i
ułatwienia programowania zalecane jest wykorzystanie zmienne TRYB, określającej, w jaki
trybie znajduje się aparat. Możliwe są następujące tryby pracy:
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 22
Zakład Telekomunikacji w Transporcie Wydział Transportu Politechniki Warszawskiej
1 – spoczynku i gotowości na przyjęcie wywołania
2 – identyfikacji sygnału dzwonienia
3 – wybierania numeru
4 – odtwarzania ostatniego numeru REDIAL
5 – wprowadzania numeru do pamięci
6 - wybierania numeru wybranego klawiszem skrótu
Programowa realizacja obsługi każdego z trybów pracy aparatu jest idealnym przykładem
wykorzystania funkcji SELECT CASE.
UWAGA !!! Wejście w każdy z trybów pracy aparatu powinno być sygnalizowane
wyświetleniem odpowiedniego komunikatu w drugim wierszu wyświetlacza LCD.
308
Rozbuduj program z p. 307 o procedury obsługi zegara czasu rzeczywistego RTC,
wykorzystywane w p. 210. Spraw, by w pierwszym wierszu wyświetlacza LCD pokazywany
był aktualny czas, odczytany z układu US5 płytki laboratoryjnej. Czas ma być wyświetlany
wg formatu GG:MM:SS, gdzie GG oznacza godzinę, MM minuty, a SS sekundy. Jednak w
chwilach włączenia aparatu do linii w miejscu aktualnej godziny wyświetlaj czas połączenia.
Dla ułatwienia jako moment rozpoczęcia zliczania czasu połączenia przyjmij chwilę
włączenia aparatu do linii.
309
Dodaj do programu z p. 308 funkcję rejestrowania czasu połączeń (wywołań), które
nie zostały odebrane. Program musi, zatem zliczać przychodzące sygnały dzwonienia i po
przekroczeniu ich ustalonej liczby (dla ułatwienia przyjmij w programie ich stałą wartość,
równą 5) zapisać w pamięci czas wywołania. Czas ten ma trafiać do trzeciej pamięci
EEPROM układu US4 płytki laboratoryjnej, a do jego zapisania wystarczą zaledwie trzy
komórki pamięci. Problemem jest tutaj identyfikacja końca dzwonienia, czyli chwili, w której
abonent dzwoniący zrezygnuje z próby nawiązania połączenia. Pomocą w rozwiązaniu tego
problemu może być funkcja identyczna do tej, która służy do zliczania czasu połączenia –
brak sygnału dzwonienia przez jakiś czas, oznacza jego koniec. Brak rozwiązania tego
problemu prowadziłby do rejestracji czasu połączenia po każdych 5 dzwonkach w przypadku
wyjątkowo upartych abonentów.
W drugim wierszu wyświetlacza LCD program musi informować o zapisanych w
pamięci czasach połączeń, które nie zostały odebrane. Po kolejnych naciśnięciach klawisza C
program ma w drugim wierszu wyświetlacza LCD pokazywać kolejne czasy połączeń, które
nie zostały odebrane. Wyświetlenie wszystkich czasów ma kasować zmienną, określającą ich
ilość.
Laboratorium systemy łączności w transporcie - ćwiczenia, str. 23

Podobne dokumenty