plum jakis

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ń

ld a,00h

out (ctc1),a wektor przerwan, młodszy bajt

ld a,0b7h słowo sterujące

out (ctc1),a wyższy priorytet portu 1, inicjalizacja CTC1 jako genera tora przerwan systemowych

ld a,0f7h sł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łać 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

out (ledy),a 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łał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.


Wyszukiwarka

Podobne podstrony:
Jakis Dziennik ustaw Nieznany
Podać jakiś wzór i wyjaśnić symbole
jakiś kolos
strary egzamin jakis
pedagogika, resocjalizacja, Resocjalizacja (z łaciny re + socialis - społeczny), włączenie do życia
test jakis hematy
GERIATRIA-JAKIŚ ZBIÓR PYTAŃ, medycyna UMed Łódź, 4 rok, geriatria
jakiś mini skrypt
MAMY JAKIŚ WYBÓR, jasełka
Egz z rach, jakis test z rach2, 1
jakiś teścik z separacji
jakiś egzamin
jakis test z lasow, studia, rok IV, SZOW, koło
Jakiś gotowiec- pytania z egzaminu!, weta up.lbn, rok 1, sem 1, chemia, Chemia, Chemia- egzamin (od
HAEJBG504 Sugar Plum Fairy
Plum rain Snail
angielsk 23-28, Other - inny, another - jakiś inny, jeszcze jeden, the other=ten drugi, I was doing,

więcej podobnych podstron