Technika Mikroprocesorowa
Transkrypt
Technika Mikroprocesorowa
Podstawy Techniki Mikroprocesorowej - Laboratorium Ćwiczenie C Temat: Port równoległy i układ czasowy Cel i przebieg ćwiczenia: Zapoznanie się z funkcjami i programowaniem scalonych układów wejścia/wyjścia I8255 (port równoległy) i I8254 (układ czasowo-licznikowy). Realizacja systemu mikroprocesorowego z jednostką centralną Z80 spełniającego rolę stopera, zegara lub licznika zdarzeń. Wykorzystanie sprzętowych możliwości generowania skali czasu i mechanizmu przerwania maskowalnego procesora. Napisanie programu w języku asemblera Z80 programującego układy wejścia/wyjścia i realizujące zadaną przez prowadzącego funkcję systemu. Wiadomości teoretyczne: W praktycznych zastosowaniach systemów mikroprocesorowych niezbędne jest połączenie mikroprocesora z urządzeniami zewnętrznymi. W tym celu stosowane są układy sprzęgające wejścia/wyjścia. Układy te można ogólnie podzielić na: • bezpośrednie układy wejścia/wyjścia • scalone układy wejścia/wyjścia Najprostszym układem wejściowym jest zespół bramek trójstanowych dołączonych do magistrali danych systemu mikroprocesorowego. Przy pomocy takiego układu można odczytać stany przełączników - czujników o wyjściach dwustanowych. Na wejście sterujące bramek trójstanowych należy podać sygnał powodujący ich otwarcie wtedy gdy mikroprocesor chce odczytać stan wejść. Najprostszym układem wyjściowym jest rejestr o wejściach dołączonych do magistrali danych. Układ taki można zastosować do sterowania zespołem diod świecących, wyświetlaczy 7-segmentowych, a po odpowiednim wzmocnieniu sygnałów również przekaźników itp. Bezpośrednie układy wejścia/wyjścia stosowane są do sprzęgania systemu mikroprocesorowego z urządzeniami zewnętrznymi, które są zawsze gotowe na przyjęcie informacji (wyjście) lub dostarczają informacji w sposób ciągły (wejście). W innych przypadkach konieczne jest użycie scalonych układów sprzęgających, które umożliwiają realizację transmisji z potwierdzeniem. Potrzeba przesyłania z potwierdzeniem zachodzi najczęściej wtedy gdy system mikroprocesorowy współpracuje z wolniejszym urządzeniem zewnętrznym, które może być niegotowe na przyjęcie danych. Klasycznym przykładem jest tutaj drukarka. Mechanizm transmisji z potwierdzeniem obejmuje przesyłanie między systemem mikroprocesorowym a urządzeniem zewnętrznym dodatkowych sygnałów sterujących. W trybie przesyłanie z potwierdzeniem system mikroprocesorowy informuje urządzenie zewnętrzne o wpisaniu danych do rejestru wyjściowego, a urządzenie zewnętrzne informuje system mikroprocesorowy o odczytaniu danych. Dla przesyłania w odwrotnym kierunku urządzenie zewnętrzne informuje system mikroprocesorowy o gotowości danych do odczytania, a w odpowiedzi otrzymuje potwierdzenie odczytania danych. Sekwencja odpowiednich sygnałów przy przesyłaniu z potwierdzeniem wygląda następująco: 1. nadajnik po wpisaniu do bufora informacji wystawia sygnał gotowości danych do odczytania DV (Data Valid) 2. odbiornik po odebraniu sygnału DV odczytuje dane i wystawia sygnał potwierdzenia odczytania danych DAC (Data Accepted) 3. nadajnik po odebraniu sygnału DAC kasuje sygnał DV 1 4. odbiornik w odpowiedzi na skasowanie sygnału DV kasuje sygnał DAC - jest to dla nadajnika zezwolenie na wysłanie kolejnej danej. Najbardziej efektywnym przesyłaniem z potwierdzeniem jest przesyłanie wykorzystujące przerwania. W takim systemie wpisanie danych do bufora generuje przerwanie, a odczyt odbywa się w procedurze obsługi. Innym rozwiązaniem jest generowanie przerwania po odczytaniu danych, z zapisem w procedurze obsługi. W odróżnieniu od prostych układów wejścia/wyjścia, których funkcja jest całkowicie zdeterminowana sprzętowo, scalone układy sprzęgające są z reguły programowalne. Funkcja tych układów jest zależna również od sposobu zaprogramowania takiego układu. Scalone układy wejścia/wyjścia można podzielić na: • uniwersalne • specjalizowane Przy pomocy układów uniwersalnych można dołączyć do systemu mikroprocesorowego różnorodne urządzenia zewnętrzne; układy specjalizowane są dedykowane do współpracy z określonym typem urządzenia (klawiatura, monitor ekranowy, napęd dysków elastycznych). Przykładem programowalnego układu wejścia/wyjścia jest układ Intel 8255A. Zawiera on trzy porty 8-bitowe podzielone na dwie grupy. Układ może pracować w trzech trybach. Tryb 0 - bezpośrednie wejście lub wyjście w zależności od zaprogramowanego kierunku transmisji, tryb 1 - wejście lub wyjście w zależności od zaprogramowanego kierunku transmisji - przesyłanie z potwierdzeniem, tryb 2 - przesyłanie dwukierunkowe. Przykładowy sposób dekodowania układu 8255A w przestrzeni wejścia/wyjścia mikroprocesora Z80 przedstawiono na Rys. 1. Układ 8255A jest dekodowany od adresu X0h, gdzie X=0, 1,.... E, F. Rys. 1. Dekodowanie układu 8255A. Układy czasowo-licznikowe są w systemach mikroprocesorowych wykorzystywane do odmierzania czasu oraz zliczania impulsów zewnętrznych. Zastosowanie układów czasowo-licznikowych zwalnia procesor od realizacji tych funkcji w sposób programowy. Układy tego typu stanowią również integralną część mikrokomputerów jednoukładowych co jest szczególnie cenne przy konstruowaniu mikroprocesorowych układów automatyki. 2 Jednym z najczęściej stosowanych układów czasowo-licznikowych jest Intel 8254. Został zastosowany m.in. w komputerach PC/AT do generacji sygnału przerwania zegarowego, żądania odświeżania pamięci dynamicznej oraz generacji sygnału dźwiękowego. W skład układu 8254 wchodzą trzy niezależne liczniki 16-bitowe, z których każdy może pracować w jednym z sześciu trybów (zliczając impulsy w kodzie binarnym lub BCD). Dla zwiększenia zakresu odmierzanych czasów (pojemności) możliwe jest łączenie kaskadowe liczników wchodzących w skład układu 8254. Projekt wstępny: Zaprojektować dekoder adresów przestrzeni wejścia/wyjścia systemu mikroprocesorowego opartego na procesorze Z80. Układ ma zapewniać dekodowanie układu wejścia/wyjścia 8255A i układu licznika 8254. Do budowy dekodera wykorzystać układ 74HCT138 znajdujący się na pakiecie 8255. Przygotować schemat ideowy i montażowy zaprojektowanego układu. Do transmisji sygnału z dekodera między pakietami wykorzystać jedną z linii magistrali definiowanych przez użytkownika U0-U3 lub niewykorzystaną linię magistrali adresowej A16-A23. Zaproponować sposób zastosowania układu licznika 8254 do pomiaru czasu wciśnięcia przycisku. Do sterowania układem licznika wykorzystać zegar systemowy o częstotliwości 4 MHz. Sposób pomiaru powinien być możliwie mało absorbujący dla procesora - niepożądane jest programowe generowanie skali czasu oraz programowe sprawdzanie położenia przycisku. Wynik pomiaru (w sekundach lub dziesiątych częściach sekundy) należy wyświetlać na bieżąco na wyświetlaczu 7-segmentowym (dwie cyfry) umieszczonym wraz z dekoderem UCY7447 na ramie panelowej. Do sterowania wyświetlaczem wykorzystać buforowany układem 74HCT541 port A układu 8255A. Przy projektowaniu układu do pomiaru czasu zwrócić szczególną uwagę na dostępne tryby pracy licznika 8254 i własności poszczególnych trybów przerwań procesora Z80. Przygotować schemat ideowy i montażowy zaprojektowanego układu. Napisać program w asemblerze procesora Z80 inicjujący pracę układów 8254 i 8255A oraz realizujący zadany pomiar i wyświetlający jego wynik. Rozważyć sposób modyfikacji zaprojektowanego układu w taki sposób by mógł spełniać rolę stopera - tzn. pierwsze wciśnięcie przycisku uruchamia zliczanie czasu z wyświetlaniem, drugie blokuje pomiar utrzymując wynik na wyświetlaczu, trzecie zeruje wyświetlaną liczbę i przygotowuje układ do kolejnego cyklu pomiarowego. W ćwiczeniu wykorzystuje się "standardowy" system mikroprocesorowy Z80 wyposażony w pamięć RAM 6264 bez dekodera adresów. Literatura: 1. Dokumentacja systemu DSM (pakiety 8255 i 8254) 2. Materiały pomocnicze do TMIK/L (programowalny układ wejścia/wyjścia 8255A Intel, programowalny licznik 8254 Intel) 3. K. Badźmirowski i in. „Układy i systemy mikroprocesorowe” WNT, Warszawa 1990, część 2: str. 11-20, 30-36 4. P. Misiurewicz „Podstawy techniki mikroprocesorowej” WNT, Warszawa 1991, str. 57-61, 68-78, 81-83, 93-99 5. M. Modrzejewski, A. Skorupski, C, Stępień „Układy mikroprocesorowe serii INTEL 8080” WPW Warszawa 1988 6. pr. zb, „Modułowe systemy mikrokomputerowe” WNT, Warszawa 1990, str. 427-430 7. A. Niederliński „Mikroprocesory, mikrokomputery, mikrosystemy” WSziP, Warszawa 1988, str. 208-216, 226-231 3 8. J. Pieńkos, S. Moszczyński, A. Pluta „Układy mikroprocesorowe 8080/8085 w modułowych systemach sterowania” WKiŁ, Warszawa 1988, str. 113-121, 132-143, 306-311 9. A. Rydzewski, K. Sacha „Mikrokomputer. Elementy, budowa, działanie” WCiKT NOT-SIGMA, Warszawa 1985, str. 129-138 Do wstępnego zapoznania się z możliwościami układu czasowego 8254 można posłużyć się opisem układu 8253. Układ 8253 nie posiada funkcji Read Back 4