![]()

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