Cele ćwiczenia
Poznanie konstrukcji i funkcjonowania przykładowego systemu modułowego z Z80. Poznanie zasad obsługi laboratoryjnego systemu mikroprocesorowego.
Stanowisko badawcze
Ćwiczenie przeprowadzane jest w dwuosobowych grupach przy stanowisku komputerowym. Wymagany jest komputer klasy Pentium, z systemem operacyjnym Windows, wyposażony w kolorową kartę graficzną i takiż monitor. Na komputerze powinny być zainstalowane programy narzędziowe (program metaasemblera C32.EXE i symulatora ekranowego SYMULATOR.EXE). Wymienione oprogramowanie narzędziowe w całości jest umieszczone w kartotece D:\Z80. Studenci piszą i uruchamiają swoje programy w indywidualnych podkartotekach, założonych w kartotece D:\Z80\LAB na pierwszych zajęciach. Jako przykładowy, rzeczywisty system mikroprocesorowy wykorzystuje się modułowy system z mikroprocesorem Z80. Jest on połączony z komputerem typu PC łączem szeregowym, które służy do ładowania kodów programów do pamięci operacyjnej systemu mikroprocesorowego.
Przebieg ćwiczenia
Ćwiczenie jest zaplanowane jako 2-godzinne i obejmuje:
1. Zapoznanie się z funkcjami klawiaturowymi systemu PLUM.
2. Przygotowanie w edytorze tekstowym prostych programów do uruchomienia (mogą to być programy zaćwiczenia 1). Należy przy tym pamiętać o podanych w pkt.1 uwagach dotyczących konstrukcji programu przeznaczonego do uruchomienia na systemie PLUM.
3. Przygotowanie plików w formacie Intel-Hex, tj. asemblację.
4. Załadowanie pliku nazwa.HEX do pamięci systemu PLUM, co wymaga:
• użycia programu RS_OWL.EXE (aut. dr inż. A.Sołbuta), w którym należy przed transmisją:
otworzyć wybrany port (COM1);
ustawić parametry transmisji (przycisk Zmień parametry) na wartości:
com1:, 2400bodów, bit parzystości (E), 7 bitów danych, 1 bit stopu
• wybrania na klawiaturze PLUMa polecenie LOAD (klawisz 9);
• rozpoczęcia transmisji przyciskiem Wyślij plik programu RS_OWL.
Przy poprawnym przebiegu ładowania programu, na wyświetlaczu systemu obserwujemy zmieniające się adresy ładowania kolejnych bajtów kodu programu testowego1.
5. Uruchomienie załadowanego programu testowego i sprawdzenie wyników jego pracy. Program powinien pozostawić wyniki swej pracy w komórkach pamięci RAM, którą należy sprawdzić poleceniem MEMORY.
Program 1:
Program dodaje dwie liczby. Obie są zapisywane do pamięci poprzez wybór na klawiaturze urządzenia PLUM. Wynik zapisywany jest w pamięci i wyświetlany na wyświetlaczu urządzenia, gdy zostanie podany adres komórki z wynikiem.
Cpu "Z80.tbl"
HOF "INT8"
INCl "SYSTEM.INC"
org 8000H ;organizacja pamięci od komórki numer 8000
ld ix,8100H ;wgranie do rejestru „ix” zawartości komórki pamięci nr 8100
ld A,(ix+0) ;dodanie do zawartości akumulatora wartości z rejestru “ix”
add A,(IX+1) ;dodanie do akumulatora wartości z rejestru o adresie “ix+1”, w tym przypadku 8101
ld (IX+2),A ;wgranie zawartości akumulatora do rejestru o adresie “ix+2”, w tym przypadku 8102
RET
END
Działanie:
Program organizuje swoją pamięć od komórki pamięci o adresie 8000h. Na klawiaturze urządzenia PLUM użytkownik wybiera adres komórki, do której ma być wpisana pierwsza liczba i wpisuje ją. To samo robi z liczbą drugą. Program dodaje obie liczby. Wynik można sprawdzić poprzez odwołanie się do adresu komórki pamięci z wynikiem - w tym programie 8102h. Program działa zgodnie z założeniami.
Program 2:
Po wpisaniu liczby z klawiatury urządzenia do odpowiedniej komórki pamięci, program uzupełnia określoną liczbę następnych komórek liczbami większymi o 1 od poprzedniej.
cpu "z80.tbl"
hof "int8"
incl "system.inc"
org 8000h ;organizacja pamięci programu od komórki 8000h
ld B,20d ;załadowanie do rejestru B liczby 20
ld HL,8080h ;załadowanie do rejestru HL zawartości komórki 8080h
ld A,1d ;załadowanie do akumulatora liczby 1
ld C,1d ;załadowanie do rejestru C liczby 1
ld (HL),A ;załadowanie do rejestru HL zawartości akumulatora
E1: inc HL ;deklaracja etykiety E1; zwiększenie rejestru HL o 1
add A,C ;dodanie do akumulatora wartości rejestru C
ld (HL),A ;załadowanie do rejestru HL zawartości akumulatora
djnz E1 ;instrukcja skoku do etykiety E1, pod warunkiem, że rejestr B jest większy od zera
ret
END
Działanie:
Na klawiaturze urządzenia PLUM wpisywana jest liczba do odpowiedniej komórki pamięci (tutaj 8080h). Program uzupełnia kolejne 20 komórek pamięci liczbami, z których każda jest większa o 1 od poprzedniej. Program uzupełnia tyle komórek ile wynosi liczba wpisana do rejestru B, licznika skoku warunkowego „DJNZ”. Sprawdzenie wyniku działania programu odbywa się poprzez wpisanie na klawiaturze urządzenia PLUM adresu komórki, którą chce się sprawdzić. W tym przypadku, są to kolejne 20 komórki od 8080. Program działa zgodnie z założeniami.