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