Prirodno matemati~ki fakultet - Skopje

Institut za Informatika

Seminarska rabota po predmetot

Mikroprocesori i mikrokompjuteri

Semafori


Izrabotil: Valentina Spiroska

Mentor: d-r Marjan Gu{ev

Skopje, oktomvri 1997






REZIME

Vo ovaa seminarska rabota e razraboten problemot postaven na sledniot na~in:

Da se napravi programa vo Assembler koja }e regulira dva semafori na raskrsnica.

Pritoa, programata e izrabotena za prika`uvawe na rabotata na dva semafori na 8085 I/O karta.

Isto taka se razrabotuva i procedurata PAUZA.ASM koja {to se povikuva vo programata, t. e. se koristi kako pomo{na procedura pri izvr{uvaweto na programata.

SODR@INA
1. OPIS NA PROGRAMATA

2. OPIS NA PROCEDURATA Pauza.asm

3.ZAKLU^OK

 

1 OPIS NA PROGRAMATA

Izvornoto ime na programata e semafori.asm, napi{ana vo izvoren kod od Assembler. Pri startuvawe se povikuva izvr{nata verzija na programata, t.e semafori.exe.

Ovaa programa vr{i prikaz na regulacijata na semaforite na 8255 I/O karta, prika`ana na Slika 1, na sledniot na~in:

Slika 1. Nadvore{en izgled na 8255 I/O karta

Na prvite tri signalni sijalici se prika`uva prviot semafor (P1C7-crveno, P1C6-`olto, P1C5-zeleno), a na poslednite tri vtoriot semafor (P1C2-crveno, P1C1-`olto, P1C0-zeleno). Signalnite sijalici P1C4 i P1C3 ne se koristat.
Na displejot, portite P1A i P1B ja prika`uvaat sostojbata na prviot semafor, a P2A i P2B na vtoriot. Pritoa dokolku se pojavi vrednosta: 00 ozna~uva crveno svetlo, 01-`olto svetlo, 10-crveno i `olto, 11-zeleno.
Regulirawe pri izvr{uvawe na programot se vr{i so prekinuva~ot P2C0, i toa: nagore-programata raboti, nadolu-programata zavr{uva.

Po startuvaweto na programata, na ekranot od monitorot se ispi{uva poraka koja ka`uva kako se vr{i regulirawe pri izvr{uvaweto na programata.

Na portite se ispra}aat vrednostite od slednite promenlivi, i toa na signalnite sijalici:

CZ-na prviot semafor sveti crveno svetlo, a na vtoriot zeleno.
CP-na prviot semafor sveti crveno, a na vtoriot zelenoto trepka (najavuva deka }e se promeni).
CB-na prviot semafor sveti crveno, a na vtoriot `olto.
CBC-na prviot semafor sveti crveno i `olto, a na vtoriot crveno.
ZC-na prviot semafor sveti zeleno, a na vtoriot crveno.
PC-na prviot semafor zelenoto trepka, a na vtoriot crveno.
BC-na prviot semafor `olto, a na vtoriot crveno.
CCB-na prviot semafor crveno, a na vtoriot crveno i `olto.

Voedno i izvr{uvaweto na algoritamot za rabota na semaforite se odviva po istiot redosled kako i {to se navedeni promenlivite. Na displejot se ispra}aat slednite promenlivi CD-0 i ZD-1, po sledniot algoritam soodveten na prethodniot:

P1A-CD, P1B-CD, P2A-ZD, P2B-ZD
P1A-CD, P1B-CD, P2A-ZD, P2B-ZD
P1A-CD, P1B-CD, P2A-CD, P2B-ZD
P1A-ZD, P1B-CD, P2A-CD, P2B-CD
P1A-ZD, P1B-ZD, P2A-CD, P2B-CD
P1A-ZD, P1B-ZD, P2A-CD, P2B-CD
P1A-CD, P1B-ZD, P2A-CD, P2B-CD
P1A-CD, P1B-CD, P2A-ZD, P2B-CD

Programot zavr{uva koga prekinuva~ot P2C0 dobie vrednost nula t.e e isklu~en.

Na Slika 2 e prika`an programski segment, vo koj e predstaven na~inot na prenesuvawe na soodvetnite vrednosti na portite (prika`an e prviot slu~aj t.e prviot semafor e so crveno svetlo, a vtoriot zeleno).

NE1: ;CRVENO-ZELENO

@prati port1C, CZ

@prati port1A, CD ;ispraka vrednost na portite od

@prati port1B, CD ;sijalickite

@prati port2A, ZD ;i displejot

@prati port2B, ZD

mov BX, 36

CALL PAUZA

@zemi port2C

JC NE2

@kraj

Slika 2. Prenesuvawe vrednosti na portite

Vo programata se definirani slednite macro-programski segmenti:

(Zabele{ka: Po naveduvaweto na prekinot, vrednosta vo zagradite ja ozna~uva funkcijata)

1. @pec-ispi{uva string na monitorot, koristej}i go DOS prekinot 21H(09h), Slika 3.

@pec MACRO string ;pecati tekst na ekranot

MOV AH, 09H

MOV DX, OFFSET string

INT 21H

ENDM

Slika 3. Makro za pe~atewe


2. @kraj-ja zavr{uva programata, Slika 4.

@kraj MACRO ;ja prekinuva programata

MOV AL,0

MOV AH,4CH

INT 21H

ENDM

Slika 4. Makro za prekinuvawe na rabotata na programata

3. @prati-pra}a na odredena porta dadena vrednost, Slika 5.

@prati MACRO port, value ;isprati vrednost na portata

MOV DX, port

MOV AL, value

OUT DX, AL

ENDM

Slika 5. Makro za ispra}awe vrednost na portite od 8255 I/O karta

4. @zemi-zema vrednost od odredena porta, Slika 6.

@zemi MACRO port ;zemi vrednost od portata

MOV DX, port

IN AL, DX

SHR AX, 1

ENDM

Slika 6. Makro za zemawe vrednost od portite od 8255 I/O karta