POLITECHNIKA
BIA OSTOCKA
WYDZIA ELEKTRYCZNY
KATEDRA AUTOMATYKI I ELEKTRONIKI
Sprawozdanie z zaj laboratoryjnych:
Technika Mikroprocesorowa 2
Kod: TS1A520312
wiczenie numer: 6
Temat: System przerwa mikroprocesora Z80.
Wykonuj cy wiczenie:
Rafa Siemieniuk
Patryk Siwerski
Studia dzienne
Kierunek: Elektronika i Telekomunikacja Specjalno : Aparatura Elektroniczna
Semestr: V
Grupa: L02
Prowadz cy wiczenie: dr in . Kociszewski Rafa
……………...……..
Ocena
7.12.2009
Data wykonania wiczenia
……………………………………
Data i podpis prowadz cego
I. Cel i zakres wiczenia
Celem wiczenia by o nabycie umiej tno ci programowania prostych systemów obs ugi przerwa .
II. Opis stanowiska laboratoryjnego
Stanowisko laboratoryjne sk ada o si z:
- komputera klasy Pentium z systemem operacyjnym Windows;
- programów narz dziowych ( program metaasemblera C.32.EXE oraz symulator ekranowy SYMULATOR.EXE).
- modu owego systemu z mikroprocesorem Z80
III. Przebieg wiczenia
Na pocz tku naszym celem by o zapoznanie si z budow i dzia aniem przyk adowego programu CWICZINT.ASM, który wykorzystuje przerwania wektorowe od wszystkich liczników uk adu Z80CTC, a nast pnie jego modyfikacja.
W kolejnym etapie naszym zadaniem by o napisanie programu, który wykorzystuj c przerwania o cz stotliwo ci 1..2Hz b dzie generowa na linijce diód LED pod wy wietlaczem podany ni ej wzór: Zmodyfikowany program z opisem rozkazów:
cpu "z80.tbl"
wskazuje plik zawieraj cy opis listy rozkazów wybranego procesora;
hof "int8"
okre la format pliku wyj ciowego .HEX; incl "system.inc"
org 8000h
; porty ukladu CTC na plycie CPU (zdefiniowane w pliku SYSTEM.INC):
;ctc1 equ 74h
;ctc2 equ 75h
;ctc3 equ 76h
;ctc4 equ 77h
; port LED'ow na plycie PKW
ledy: equ 0c1h
begin: im 2
wybór 2 trybu obs ugi przerwa maskowalnych ld a,81h
ld i,a
wektor przerwa , starszy bajt tablicy przerwa
out (ctc1),a
wektor przerwan, m odszy bajt
ld a,0b7h
owo steruj ce
out (ctc1),a
wy szy priorytet portu 1, inicjalizacja CTC1 jako genera tora przerwan systemowych
ld a,0f7h
owo steruj ce, tryb licznikowy;
out (ctc2),a
out (ctc2),a
out (ctc3),a
out (ctc4),a
ld a,00h
dzieli przez 256
out (ctc1),a
CTC1 / 256 - czas przerwania 26,7ms
ld a,20
out (ctc2),a
CTC2 co 0,53s
ld a,15
out (ctc3),a
CTC3 co 8s
ld a,10
out (ctc4),a
ld bc,8500h
ei
zezwolenie na przerwania INT
label1: call inopnd
;ld hl,(oprnd1)
;ld de,(oprnd2)
;or a ; CY := 0
;sbc hl,de
; call hl4hp
; dfb 42h
;call conin
reakcja na klawisz
;call clsp
kasowanie wy wietlacza
;dfb 80h
od 0 pozycji 8 miejsc
Nop
pusta instrukcja maj ca za zadanie wywo nast pne
jr label1
; O B S L U G I P R Z E R W A N
int0: push af
odlozenie zawartosci akumulatora na stos call ifkey
ld d,46h
cp d
jp nz,skok
in a,(ctc3)
inc a
jp begin
skok: ld a,0
pop af
ei
odblokowanie przerwa
reti
powrót z procedury obs ugi przerwa maskowalnych int1: push af
ld a,(bc)
inc bc
przes anie zawarto ci akumulatora na wyj cie tzn. na diody pop af
ld a,16
cp c
jp nz, skok2
ld bc,8500h
skok2: ei
odblokowanie przerwa
reti
powrót z procedury obs ugi przerwa maskowalnych org 8100h
tabint: dwl int0 ;
tablica adresow obslug przerwan
dwl int1
org 8500h
tab: dfb 80h, 0c0h, 0e0h,0f0h,0f8h,0fch,0feh,0ffh,0h kolejne wzory wy wietlacza;
end
Niestety nie uda o nam si stworzy p tli, dzi ki której program dzia by poprawnie. Program
poprawnie wy wietla wzór jedynie do po owy. Po zapaleniu si wszystkich diod program ko czy swoje dzia anie, zamiast wróci do pozycji wyj ciowej.
Po kompilacji programu wcisn li my klawisz 9 ( oraz enter w celu zatwierdzenia- analogicznie w pozosta ej cz ci wiczenia) na klawiaturze systemu PLUM w celu za adowania kodu programu z komputera. W
trakcie adowania na wy wietlaczu pojawi si napis LOAD. Za pomoc programu RS_OWL przes ali my dany program z rozszerzeniem .hex i wciskamy klawisz 8. Za pomoc klawiatury systemu PLUM wpisali my adres pocz tkowy naszego programu (8000). . Po wci ni ciu klawisza enter diody LED pod wy wietlaczem zacz y miga w kolejno ci jak na rysunku.
IV. Wnioski
Podczas realizacji tego wiczenia poznali my zasad dzia ania systemu przerwa mikroprocesora Z80, oraz tworzyli my program, który na wy wietlaczu systemu PLUM mia generowa zadany efekt. Niestety stworzony program dzia a tylko po owicznie, brak w nim p tli, przez co generowanie efektów wietlnych ko czy si ju po zapaleniu si wszystkich diod.