Mikro cw4 modul by Hawkers

Politechnika Białostocka

Wydział Elektryczny

Technika Mikroprocesorowa 2

Ćwiczenie numer: 4

Temat: Modółowy system mikroprocesorowy na Z80

Wykonujący ćwiczenie: Wróblewski Łukasz

Niewierowski Paweł

Studia dzienne

Kierunek: Elektronika i Telekomunikacja

Semestr V Grupa laboratoryjna L05

Prowadzący ćwiczenie: dr inż. R. Kociszewski

...........................

OCENA

22.10.2010r.

Data wykonania ćwiczenia

.........................................

Data i podpis prowadzącego

  1. Cel ćwiczenia

Poznanie konstrukcji i funkcjonowania przykładowego systemu

modułowego z Z80.

Poznanie zasad obsługi laboratoryjnego systemu mikroprocesorowego.

  1. Przebieg ćwiczenia

Przed zajęciami powinniśmy zapoznanie się z funkcjami klawiaturowymi systemu PLUM.

Następnie odtworzyśmy program, zrealizowany na poprzednich zajęciach. Należalo go odpowiednio zmodyfikować by zadzialal na modulowym systemie mikroprocesorowym.

CPU "Z80.TBL"

HOF "INT8"

ORG 8000h ; pamiec moze zawierac adres: od 8000 do 8700h

znaki: equ 8060h ;zadeklarowanie zmiennej w 8060h, dopiero np w 60. Program zawiera się w pierwszych np. 48 komorkach pamieci.

tab1: equ 8080h ; zostawienie miejsca na zmienną ‘znaki’

tab2: equ 8100h ;

ld a,1 ;załadowanie do akumulatora 1

ld b,20 ;domyślnie b, jest długością

;np. zmiennej (adresu)

ld hl, znaki ;załadowanie adresu zmiennej ‘znaki’

czysc: ld (hl),a ;petla za pomocą której wypełnimy tablice ciągiem liczb (1;2;3, itd.)

add a,1

inc hl

djnz czysc

ld de,tab1 ;przypisanie do rejestru tab1.

ld hl,znaki ;analogicznie

ld b, 10

inc hl

parz: ;stworzenie oddzielnej tablicy,

;przepisujac liczby parzyste

ld a,(hl) ;przypisanie do a adresu hl

ld (de),a ;analogicznie

inc hl ;podwójna zmiana adresu

inc hl ;przepisujemy co druga liczbę

inc de

djnz parz

ld de,tab2 ;analogicznie, jak powyżej

ld hl,znaki

ld b, 10

nieparz:

ld a,(hl)

ld (de),a

inc hl ;ponownie co 2, jak dla parzystych

inc hl

inc de

djnz nieparz

ld de,tab1 ;

ld hl,znaki

ld b, 10

przepis1: ;przepisywanie tablicy 1.

ld a,(de)

ld (hl),a

inc hl

inc de

djnz przepis1

ld de,tab2

ld b, 10

przepis2: ;przepisywanie tablicy 2.

ld a,(de)

ld (hl),a

inc hl

inc de

djnz przepis2

ret ; właściwe zakończenie programu - gdy są przeznaczone do

uruchamiania jako procedury

end

Już po tak przygotowanym programie należalo go skompilowac, odnależć wygenerowany plik programu *.HEX

Kolejnie załadowaliśmy podany plik do pamięci systemu PLUM, poprzez:

-użycie programu RS_OWL.EXE

Należao wykonać odpowiednie instrukcje:

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.

9 - polecenie LOAD do załadowania poprzez łącze szeregowe z komputera

nadrzędnego kodu programu użytkownika.

Na wyświetlaczu pojawia się napis Load, a w trakcie ładowania kodu

programu, z prawej strony wyświetlacza widoczne jest adres

Na wyświetlaczu systemu obserwujemy zmieniające się adresy ładowania kolejnych bajtów kodu programu testowego co świadczy o poprawnym przebiegu ladowania.

Uruchomilismy program, mogismy odczytać czy program poprawnie się wykonal odczyt wyników swej pracy w komórkach pamięci RAM, którą sprawdzamy z pomocą polecenia MEMORY.

Jako efekt naszej pracy mogliśmy zarejestrować co pojawio się na wyswietlaczu urzadzenia.

Program mial za zadanie przetworzyc ciag liczb: 1,2,3,4 itd. Na ciag nieparzyty 1,3,5.. po nim ciag parzysty 2,4,6....Zaczynając od liczb nieparzystych, odpowiednio odczytywaliśmy (zapisując) co drugą zmienną, analogicznie było z liczbami parzystymi. Na końcu przepisaliśmy nasze tablice, pierwszo tablica z liczbami nieparzystymi, po niej z parzystymi.

Już po zaadowaniu naszego programu do systemu mikroprocesorowego Z80, wpelnilismy naszą tablicę ciągiem znakow 1,2,3,4 ... itd.

W komórce pamięci 8100h wpisaliśmy wartość 1. Następnie wciskamy klawisz Enter, do potwierdzania poleceń, także do inkrementacji wybranego adresu.

Następnie zmieniliśmy adres, ustawisliśmy wartość 2

I tak kolejno na następnych liczb:

(...)

Już po wypenieniu takiej tablicy wartościami, możemy uruchomić nasz program (jako procedurę) i zauważyć przypisane wartości do innych komórek w pamięci.

By uruchomić program korzystamy z polecenia: klawisz 8 - polecenie CALL sużace do uruchamiania podprogramów kończących się rozkazem RET

Tzn. Że nasz program wykonal się

Zakończenie programu.

Program się wykona, więc w pamięci będą zapisane odpowiednie wartości. By móc je odczytać posugujemy się poleceniem 0 - polecenie MEMORY slużace do przeglądania i modyfikacji pamięci:

Następnie przyciskamy klawisz enter, do potwierdzenia polecenia.

Następnie wyświetla się nam:

Ponownie wciskając klawisz enter, zwiększamy inkrementację, przechodzimy do następnej komórki

Widzimy wartość większą o 2. Tzn. Że zostala przepisana co druga liczba.

Analogicznie w pozostaych komórkach pamięci (do zamkniecia pętli)

Wartość szestnastkowa co odpowiada liczbie 10.

Po sprawdzeniu naszej tablicy z liczbami parzystymi, wracamy do adresu gdzie powinny sie pojawić nadpisane wartości. Czyli nasz ciąg. Na początku ciąg nieparzyty.

Ciąg powinien zacząć się w komórce pamięci o adresie 8100h.

Jak widzimy program wykonal się poprawnie. Po ciągu liczb nieparzystych, kolejno zostal zapisany ciag z liczbami nieparzytymi.

Przeglądając komórki pamięci możemy również sprawdzić rejestry,

W tym celu przyciskamy klawisz A - polecenie REGISTERS slużace do podglądu i modyfikacji zestawu rejestrów programu.

Na wyświetlaczu widoczne są: po lewej symbole par rejestrów, a po prawej

ich 16-bitowe wartości. Możemy je modyfikować.

PC - licznik rozkazów

SP - wskaźnik stosu

AF - akumulator A i rejestr flag F

bC - para rejestrów BC

dE - para rejestrów DE

hL - para rejestrów HL

A.F. - alternatywne: akumulator A i rejestr flag F

b.C. - alternatywna para rejestrów BC- jak widać nie byly uzywane w programie.

d.E. - alternatywna para rejestrów DE

  1. Wnioski

Zajęcia pozwoliły na bliższe zapoznanie się z językiem niskiego poziomu jakim jest asembler. Tym razem mieliśmy przyjemność pracowania również na modułowym systemie mikroprocesorowym na Z80. Po lekkiej modyfikacji programu, mogliśmy go zrealizować na tym systemie. Przeglądając pamięć RAM wiemy, że program dzialal poprawnie (w rzeczywistosci). W latwy sposob zapoznaliśmy się z obslugą tego urządzenia. Co jest niezbędne do tworzenia, bardziej zlozonych programow, zagadnień realizowanych na kolejnych zajęciach.


Wyszukiwarka

Podobne podstrony:
mikropro2cw2 by Hawkers
mikro 2P1 cw4 5 zadania
mikro-2P1-cw4-5
cw4 zad, pomoc dla studenta, mikro i makroekonomia
mikro 2P1 cw4 5
prezentacja mikro Kubska 2
modul I historia strategii2002
Komunikacja Moduł (2)
Mikro w 1
7 Mikro i makro elementy naszej diety
Wykład 3 Mikro 1 Econ
Moduł IV WŁADZA W013
wyk ad4 Mikro
cw4 Zespół Klinefeltera
MODUŁ POWIETRZE
Modul 1 Misja, strategia, planowanie

więcej podobnych podstron