Struktura stanowiska laboratoryjnego Na rysunku 1.1 pokazano strukturę stanowiska laboratoryjnego Z80 z interfejsem częstościomierza- czasomierz PFL 21/22. Rys.1.1. Struktura stanowiska. Interfejs częstościomierza PFL 21/22 Częstościomierz czasomierz PFL 21/22 jest przystosowany do współpracy z drukarką, dzięki moŝliwości przełączania przyrządu na zewnętrzne sterowanie pomiarem (sygnały: START, KONIEC i BLOKADA), oraz wyprowadzenie danych pomiarowych, w kodzie BCD na tylne złącze typu CANNON.. UmoŜliwiło to zbudowanie prostego interfejsu pomiędzy częstościomierzem a systemem mikroprocesorowym, który steruje częstotliwością pomiarów i dokonuje dalszej ich obróbki. W interfejsie zastosowano dwa programowalne układy portów we-wy typu INTEL 8255. Lokacje adresowe w przestrzeni adresowej systemu pokazano w tabeli 1.1. Tabela 1.1. Lokacje adresowe układów 8255 interfejsu. rejestr Układ 8255- I Układ 8255- II PA FEDC FED8 PB FEDD FED9 PC DEDE FEDA sterujący FEDF FEDB Konstrukcja interfejsu umoŝliwia dwa tryby pracy interfejsu.
1. Tryb pracy automatycznej Wykorzystuje w pełni moŝliwości układu 8255 przy pracy w trybie 1 wejściowym. W tym trybie sygnały do i z częstościomierza są dopasowane do sygnałów IBF i STB układu 8255. Ponadto interfejs wystawia do częstościomierza sygnał blokady po dokonaniu pomiaru, aŝ do chwili odczytu danych, co zapobiega przed przypadkowym wyzwoleniem pomiaru. Aby interfejs pracował w tym trybie pracy, naleŝy na bitach PC6 i PC7 portu PC obu układów ustawić logiczne 1, poprzez indywidualne ustawienie bitów portu C. Praca w trybie automatycznym jest sygnalizowana świeceniem sygnałów STER. AUT. I BLOK. AUT. 2. Tryb pracy programowej W tym trybie pracy, interfejs umoŝliwia wystawianie sygnałów START i BLOKADA w sposób programowy. Częstościomierz nie jest wyzwalany automatycznie po odczycie danych z buforów portów układów 8255. Aby uzyskać moŝliwość pracy w tym trybie naleŝy zaprogramować bity 6 i 7 portów C układów na logiczne 0. Wyzwalania pomiaru dokonuje się poprzez zmianę stanu bitu PC7 portu C układu II- 8255 z logicznego 0 na 1 i powrót na 0. Sygnał blokady uzyskuje się poprzez zmianę bitu PC7 portu PC układu I na logiczną 1. Aby interfejsy pracował poprawnie w obu trybach, naleŝy oba porty PA i PB układów 8255 zaprogramować do pracy w trybie 1 jako wejścia, wolne bity portu PC (bity PC0-PC3, PC4-PC7) jako wyjścia. Odczyt danych powinien odbyć się w kolejności pokazanej w tablicy 2.2. Na kaŝdym z portów A i B układów 8255 znajdują się dwie cyfry wyniku w kodzie BCD. Tablica 2.2. Kolejność odczytu danych. Port A układu I Port B układu I Port A układu II Port B układu II Odczyt danych w innej kolejności grozi przedwczesnym wyzwoleniem do pomiaru. Organizacja pamięci VRAM monitora znakowego Na rysunku 1.2 pokazano organizację adresów pamięci VRAM monitora znakowego. W celu wyświetlenia na ekranie monitora znaku naleŝy zapisać kod ASCII tego znaku do pamięci VRAM pod wybrana lokację.
Rys.1.2. Organizacja pamięci VRAM monitora znakowego. Programowanie układu 8255 W tabeli 2.3. pokazano format słowa sterującego dla układu 8255, w tabeli 2.4. format słowa sterującego bitami portu PC. Tabela 2.3. Format słowa sterującego B7 B6 B5 B4 B3 B2 B1 B0 1 0 PC0-PC3- wyjście 1 PC0-PC3- wejście 0 PORT B- wyjście 1 PORT B- wejście 0 PORT B- Tryb 0 1 PORT B- Tryb 1 0 PC4-PC7- wyjście 1 PC4-PC7- wejście 0 PORT A- wyjście 1 PORT A- wejście 0 0 PORT A- Tryb 0 0 1 PORT A- Tryb 1 1 0 PORT A- Tryb 2 1 1 PORT A- Tryb 2 Tabela 2.4. Indywidualne ustawianie i kasowanie bitów portu PC B7 B6 B5 B4 B3 B2 B1 B0 0 X X X 0 reset
dowolne 1 set PC0 0 0 0 PC1 0 0 1 PC2 0 1 0 PC3 0 1 1 PC4 1 0 0 PC5 1 0 1 PC6 1 1 0 PC7 1 1 1 Kody ASCII znaków alfanumerycznych W tabeli 2.5 pokazano kody ASCII znaków alfanumerycznych. Tabela 2.5. Kody ASCII znaków alfanumerycznych. ZNAK HEX ZNAK HEX ZNAK HEX ZNAK HEX ZNAK HEX! 21 4 34 H 48 \ 5C p 70 22 5 35 I 49 ] 5D q 71 # 23 6 36 J 4A ^ 5E r 72 $ 24 7 37 K 4B 5F s 73 % 25 8 38 L 4C 60 t 74 & 26 9 39 M 4D a 61 u 75 27 : 3A N 4E b 62 v 76 ( 28 ; 3B O 4F c 63 w 77 ) 29 < 3C P 50 d 64 x 78 * 2A = 3D Q 51 e 65 y 79 + 2B > 3E R 52 f 66 z 7a, 2C? 3F S 53 g 67 7b - 2D @ 40 T 54 h 68 7c. 2E A 41 U 55 i 69 7d / 2F B 42 V 56 j 6A ~ 7e 0 30 C 43 W 57 k 6B DEL 7f 1 31 D 44 X 58 l 6C spacja 20 2 32 E 45 Y 59 m 6D 3 33 F 46 Z 5A n 6E G 47 [ 5B o 6F
Ćwiczenie Praca interfejsu w trybie automatycznym 1. Znaleźć słowo sterujące dla układu 8255- porty A i B w trybie 1 wejściowym wolne bity portu PC jako wyjścia. Zapisać znalezione słowo w protokole zaliczeniowym w postaci binarnej i HEX. B7 B6 B5 B4 B3 B2 B1 B0 HEX 2. Znaleźć słowo sterujące dla układu 8255, ustawiające bity portu C do pracy automatycznej- PC6= PC7= 1. Zapisać znalezione słowo w protokole zaliczeniowym w postaci binarnej i HEX. B7 B6 B5 B4 B3 B2 B1 B0 HEX 3. Przy pomocy instrukcji procesora Z80 zrealizować algorytm programowania interfejsu, odczytu danych i wyświetlania wyników pomiarów na ekranie monitora znakowego. Program powinien być zapętlony i zawierać opóźnienie programowe 2 sekundowe (2 razy uŝyta procedura CALL #EEB4). Częstościomierz PL 21 ustawiony na pomiar o czasie trwania 1 sekunda. Integralną częścią programu jest rozpakowanie danych 8 bitowych zawierających, dane dwu cyfrowe- na dwa kody ASCII odpowiadające cyfrom wyniku. W tym celu naleŝy zrealizować poniŝszy algorytm pokazany na rysunku 1.3.
Rys.1.3. Algorytm rozpakowania danej Algorytm całego programu, gdzie uwzględniona jest powyŝsza sekwencja pokazano na rysunku 1.4.
Rys.1.4. Algorytm programu głównego
Program w postaci symbolicznej naleŝy zapisać do protokołu zaliczeniowego. Program wpisać do pamięci systemu. a. Klawisz E (z poziomu programu MNITOR)- edytor assembler, b. Klawisz I, ENTER - autonumering, c. Klawisz A, ENTER, ENTER - asemblacja, d. Klawisz E (z poziomu programu EDYTOR), numer linii - edycja, e. Klawisz D, numer linii - kasowanie linii, f. Klawisz M (z poziomu programu EDYTOR)- wejście do programu MONITOR, g. Klawisz G, 0000, ENTER (z poziomu programu MONITOR)- uruchomienie programu h. Klawisz ESC (na poziome MONITORA)- przerwanie zamkniętej pętli, z pętli moŝna równieŝ wyjść uŝywając przycisku pułapki sprzętowej na module Bootstrap (rys.1.1.) Uruchomić program i sprawdzić zmieniając częstotliwość z generatora. 4. Zmodyfikować program, aby cyfry były wyświetlane w kolejności zgodnej z widokiem wyświetlacza częstościomierza. 5. Zmodyfikować program, uŝywając instrukcji wywołania procedur. W procedurę objąć wyświetlanie danych na monitorze znakowym. Tak zmodyfikowany program zapisać w protokole.