Institut za Informatika
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 |
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