+ All Categories
Home > Documents > ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf ·...

ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf ·...

Date post: 31-Jan-2018
Category:
Upload: trantuong
View: 246 times
Download: 7 times
Share this document with a friend
71
ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA ELEKTRONIKU PREDMET: MIKROPROCESORSKA TEHNIKA TEMA: INDUSTRIJSKA TOKEN RING RAČUNARSKA MREŽA MENTOR: prof. dr Mile K. Stojčev STUDENTI: Bojan Antonijević 3212 ME Dragan Županjac 3028 ME Niš, Novembar 2007.
Transcript
Page 1: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA ELEKTRONIKU

PREDMET: MIKROPROCESORSKA TEHNIKA

TEMA: INDUSTRIJSKA TOKEN RING RAČUNARSKA MREŽA

MENTOR: prof. dr Mile K. Stojčev STUDENTI: Bojan Antonijević 3212 ME

Dragan Županjac 3028 ME

Niš, Novembar 2007.

Page 2: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

1

SADRŽAJ Uvod 2

1. TOPOLOGIJA MREŽE 3 1. 1. Industrijske mreže 3 1.2. Bus mreže 3 1.3. Star mreže 4 1.4. Ring mreže 4

2. ARHITEKTURA MIKROKONTROLERA PIC16F84 8 2.1. Kućište 9 2.2. Organizacija memorije 11 2.3. Ulazno/izlazni portovi 12

2.4. Oscilator 12 2.5. Reset 14 2.6. Registri specijalne namene ( sfr registry) 15

2.6.1. Status registar 15 2.6.2. Option registar 16 2.6.3. Konfiguracioni registar 17

2.7. Eeprom memorija 18 2.8. Slobodni tajmer-brojač tmr 19 2.9. Programski brojač 19

2.10. Magacin 19 2.11. Programiranje unutar sistema – in system programming 19

2.12. Prekidi (interapti) kod PIC16F84 20 2.13. Intcon registar 20

2.14. Sleep mod- režim smanjene potrošnje 22 3. MPLAB 23 3.1. Instalacija MPLAB-a 23

3.2. Izbor razvojnog moda 26 3.3. Kreiranje projekta 26 3.4. Mpsim simulator 31

4. ALLPIC UNIVERZALNI PROGRAMATOR MICROCHIP PIC MIKROKONTROLERA 34 5. IC PROG 37

6. PRAKTIČNA REALIZACIJA TALKING RING STRUKTURE PIC16F84 MIKROKONTROLEROM 40

6.1. Algoritam token ring-a realizovane makete 45 6.2. Listing kodova 48

7. LABORATORISKA VEŽBA 60 8. ZAKLJUČAK 62 9. DODACI 63 10. SPISAK AKRONIMA 68 11. LITERATURA 69 12. BIOGRAFIJA 70

Page 3: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

2

Uvod

Rad koji je pred vama, ima za cilj da predstavi mikrokontroler PIC16F84, softverske

alate neophodne pri implementaciji ovog mikrokontrolera u uređaj koji se razvija i kao praktičnu ilustraciju predhodno navedenog - simulaciju medjusobne koordinacije više nezavisnih sistema, na bazi token ring komunikacije, povezanih u strukturu prstena.

Sadržaj rada je posledica želje da se prikaže ono što bi se u literaturi definisalo kao „osnovi mikrokontrolera PIC16F84“. Ovaj mikrokontroler danas ne spada u grupu moćnih mikrokontrolera, ali je svakako u grupi mikrokontrolera koji optimalno omogućavaju rešavanje nama bliskih problema.

U prvom delu rada opisan je token-ring, sa aspekta standarda IEEE 802.5 i primene u LAN mrežama. U drugom delu sledi opis arhitekture mikrokontrolera PIC16F84. Treci deo se bavi softverom. Softverski alati namenjeni PIC mikrokontrolerima razvijeni su adekvatno njihovoj popularnosti na tržištu. Microchip kao proizvođač PIC mikrokontrolera razvio je MPLAB, pa shodno tome, i proizvođačkoj preporuci ovde ćemo ga predstaviti.Opis praktične realizacije uređaja je u šestom delu sa ciljem da teoretski predstavljeni PIC16F84 prikaže na delu, simulirajući token ring komunikaciju u sistemu sačinjenom od više elementarnih jedinica, povezanih u strukturu prstena. Peti deo opisuje programator- bootloader, korišćen pri realizaciji praktičnog dela ovoga rada.U dodatku je priložena proizvođačka specifikacija mikrokontrolera PIC16F84.

Page 4: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

3

1. TOPOLOGIJA MREŽE

1.1. Industrijske mreže

Lokalna industrijska mreža (LAN - Local Arrea Network) funkcioniše u okviru jedne lokacije (na jednom spratu zgrade ili u okviru jedne zgrade). Postoji više tipova LAN mreža koje se razlikuju po topologiji mreže, tipu kabla za povezivanje i metodu pristupa.

Topologija mreže se odnosi na fizički raspored računara i način kablovske instalacije mreže. Danas su upotrebi sledeće tri mrežne topologije:

- Magistrala (bus) - Star (zvezda) - Ring (prsten)

1.2. Bus mreže

Bus (magistrala) predstavlja najjednostavniji metod za umrežavanje. Bus mreža je povezana jednim kablom koji povezuje sve računare, servere i ostale periferijske uređaje (Sl. 1). Računari se priključuju na mrežu posredstvom mrežnog adaptera koji je u vidu kartice ugrađen u kućište računara. Svaki mrežni adapter poseduje jedinstvenu fizičku adresu. Fizička adresa se naziva MAC - Media Access Control. Računari na mreži komuniciraju jedan sa drugim tako što šalju podatke preko kabla, direktno na fizičku adresu odredišnog računara.

Sl. 1. Bus mreža

Kada se podaci nađu na mreži oni se zapravo šalju svim računarima u mreži. Mrežni

adapteri svih računara analiziraju te podatke u cilju provere da li se odredišna adresa podataka poklapa sa njegovom MAC adresom. Ako se adrese poklapaju, mrežni adapter prosleđuje podatke računaru, u suprotnom ih odbacuje.

Ethernet

Eternet (ethernet) je najzastupljeniji komunikacioni standard za realizaciju magistralnih računarskih mreža. Kod ovog tipa prenosa podataka, koristi se metod pristupa CSMA/CD - Carrier Sense Multiple Access with Collision Detection. Ovaj metod obezbeđuje da samo jedan računar u datom momentu može da šalje podatke na mrežu. Ukoliko u istom momentu neki drugi računar pokuša da preda podatke i otkrije da na mreži postoji saobraćaj, on će sačekati da se mreža oslobodi pre nego što ponovo pokuša da preda podatke. Ukoliko dva računara istovremeno pokušaju da pristupe mreži nastaje kolizija (collision). Računari dobijaju informaciju o koliziji i u tom slučaju odlažu predaju podataka za neko vreme, određeno na slučajnoj bazi.

Page 5: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

4

Računari se povezuju korišćenjem mrežnih kablova. Za kabliranje magistralinih mreža koriste se koaksijalni kablovi. Krajevi koaksijalnog kabla su završeni tzv. terminatorom (obezbeđuje električno prilagođenje), dok se računari priključuju na kabl posredstvom T- konektora.

Bus mreže su jednostavne za instalaciju, ali poseduju izvesne nedostatke. Otkaz mrežnog kabla (prekid veze između bilo koja dva računara) znači otkaz celokupne mreže. Takođe, zbog mogućnosti pojave kolizija, vreme potrebno za prenos poruke se ne može prethodno odrediti - nedeterministički prenos. Naime, zbog kolizija poruka može da zakasni na odredište što u nekim slučajevima može da poremeti rad sistema.

1.3. Star mreže

Kod LAN mreža star topologije, svi umreženi računari se povezuju na centralnu tačku mreže, tzv. hab (hub).

Sl.2. Star mreža

1.4. Ring mreže

Ring mreža povezuje računare u jedan logički krug. Izlazna (predajna) linija jednog računara se povezuje kao ulazna (prijemna) linija sledećeg računara, tako da podaci putuju u krug i prolaze kroz svaki računar. Kada računar želi da preda poruku on je šalje na predajnu liniju preko koje se poruka prenosi do prvog sledećeg računara. Računar koji je primio poruku ispituje da li je poruka upućena njemu. Ako jeste, računar preuzima poruku; ako nije, računar prosleđuje poruku sledećem računaru.

Page 6: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

5

Sl. 3 Ring mreza.

Fizički, ring mreža ima izgled star mreže. Ključna razlika je u mestu konekcije, koja se ovde naziva Multi-Station Access Unit (MAU). U okviru MAU jedinice, podaci se prosleđuju između računara u mreži.

Sl. 4. Token passing

Za prenos podataka kroz ring mrežu koristi se metod pristupa token passing. Token je oblik kontrolne poruke koja se neprekidno, sukcesivno prenosi od jednog do drugog računara sve dok ne stigne do računara koji želi da koristi mrežu (Sl. 4). Na mreži uvek postoji samo jedan token. Ukoliko neki računar želi da preda poruku, a token je već u upotrebi, on mora sačekati da dobije token. Samo računar koji je primio token može da šalje podatke na mrežu. Konkretnije, algoritam rada ring mreže je sledećeg oblika:

Page 7: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

6

• Računar koji želi da koristi mrežu čeka na slobodan token. • Računar koji je primio slobodan token, a želi da šalje podatke, modifikuje token tako

da on za preostale računare postaje zauzet, i pridodaje tokenu podatke koje šalje zajedno sa MAC adresom odredišnog računara.

• Podaci prolaze pored računara u mreži, sve dok ne stignu na odredište. • Odredišni računar preuzima podatke, a zatim modifikuje token, tako da označi

uspešan prijem podataka, i šalje token ponovo na mrežu. • Token nastavlja put duž ringa sve dok se ne vrati do računara koji je poslao poruku.

Po prijemu tokena, a nakon provere uspešnosti prenosa podatka, predajni računar modifikuje token tako da on postaje slobodan i šalje ga na mrežu.

Treba uočiti da je za prenos jedne poruke između bilo koja dva računara neophodno da token načini jedan pun krug krećući se duž ringa. Iako to izgleda neefikasno, treba imati na umu da brzina prenosa tokena može biti veoma velika (npr. u ring mrež obima 400m, token napravi 5000 krugova u sekundi). Takođe, za razliku od bus mreža, vreme prenosa poruke kod ring mreže se može precizno odrediti - deterministički prenos, što je od velikog značaja kod industrijskih sistema za rad u realnom-vremenu.

Page 8: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

7

Token Ring ima sledeće karakteristike: • podržava brzine 1 i 4 Mbps prema IEEE 802.5 odnosno 4 i 16 prema IBM-ovoj

specifikaciji • prsten kao logički a zvezdu kao fizičku topologiju • koristi prenošenje tokena kao metod za pristup medijumu • veze čvorova održavaju redosled prenošenja tokena • koristi kablove STP ( Shielded Twisted-pair ) sa oklopljenim uporednim paricama

i UTP ( Unshielded Twisted-pair ) sa neoklopljenim uporednim paricama. • svaki čvor je povezan na pristupnu jedinicu koja predstavlja centar ožičenja i

nazvana je MAU ( Multistation Access Unit ) • omogućavaju upotrebu razvodnih tabli koje se smeštaju izmedju čvorova i MAU

jedinica čime se olakšava upotrebe mreže • zahteva ugrađene mogućnosti upravljanja mrežom kako bi se pratilo kretanje

tokena tako da čvorovi mogu utvrditi da li je token oštećen, izgubljen ili uništen.

Ograničenja Token Ring mreže su: • minimalna dužina kablova izmedju radnih stanica i MAU jedinica od 2.5m • ograničenje rastojanja izmedju radnih stanica odnosno čvorova i MAU jedinica i u

zavisnosti od tipova kablova se kreće do 45m za UTP, 100m za STP 100 metara • ograničenje rastojanja izmedju MAU jedinica u zavisnosti od tipova kablova kreće se

do 120m za UTP, 200m za STP pa do 1000m za optičke kablove • svaki segment kabla mora biti sa završnim konektorom • mreža može imati najviše 33 MAU jedinice i do 260 radnih stanica ako se koriste

STP kablovi i do 72 radne stanice ako se koriste UTP kablovi.

Token ring mreže imaju bogat skup upravljačkih mogućnosti medju kojima su i: • sakuplja numeričke informacije od radnih stanica i informacije o performansama

preko CRS-a (Configuration Report Server) • kontroliše adrese svih čvorova i postavljene kriterijume o priključenju na prsten preko

RPS-a (Ring Parametar Server) • prikuplja informacije o lakim i teškim greškama na mreži, formira statističke podatke

o greškama i šalje ih upravljaču preko REM-a (Ring Error Monitor) • daje sve informacije o aktivnostima na mostovima preko LBS-a (LAN Bridge Server)

i informacije o udaljenim serverima preko LRM-a (LAN Reporting Mechanism) Nedostaci Token ring mreže su:

• parametri konfiguracije su vrlo složeni • često skuplji elementi nego kod Ethernet ili ARC net arhitektura • proširenje sistema dosta košta kada se dodaje novo zvezdište kao i nemogućnost

proširivanja odnosno povzivanja na WAN mrežu. • kabliranje je prilično komplikovano • prekid kabla kod veće dužine teže se nalazi

Page 9: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

8

2. ARHITEKTURA MIKROKONTROLERA PIC16F84 Osnovne karakteristike mikrokontrolera PIC16F84 su:

CPU sa RISC arhitekturom i 35 instrukcija, programska memorija od 1024 bajta u flash tehnologiji, RAM memorija od 68 bajta, EEPROM memorija od 64 bajta, 8-bitna magistrala podataka, 15 registara specijalne namene, 8-nivoovski magacin, tri načina adresiranja, takt frekvenca do 20 MHz, četiri izvora prekida, integrisani brojač – delitelj i 13 ulazno – izlaznih pinova.

U/I karakteristike

13 ulazno-izlaznih, pojedinačno upravljanih pinova, max ulazna struja 25mA po pinu, max izlazna struja 20mA po pinu, 8- bitni tajmer/brojač sa programibilnim deliteljem frekvence.

Posebne karakteristike

serijsko in-system programiranje, Power-on reset (pri uključenju napajanja), Power-up timer ( određeno kašnjenje nakon uključenja ), oscilatorski start-up timer (određeno kašnjenje od stabilizacije radne

frekvence), “sleep” način rada ( mod rada sa smanjenom potrošnjom), watchdog tajmer, izbor vrste oscilatora.

Sl.5. Memorijska organizacija mikrokontrolera

C P U

RAM

EEPROM

Slobodni

Programska memorija FLASH

PORT A PORT B

Page 10: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

9

Sl.6. Detaljna blok šema

2.1. Kućište

PIC16F84 ima ukupno osamnaest pinova. Najčešće se sreće u varijanti DIP18, ali i u

SMD kućištu.

Sl.7. Slika dip kućišta PIC16F84

Page 11: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

10

• pin br.1 RA2 Drugi pin porta A . Nema nikakvu dodatnu ulogu.

• pin br.2 RA3 Treći pin porta A. Nema nikakvu dodatnu ulogu.

• pin br.3 RA4 Četvrti pin porta A. Na njemu se takođe nalazi TOCK1 koji

ima tajmersku funkciju.

• pin br.4 MCLR Reset ulaz i Vpp napon programiranja mikrokontrolera

• pin br.5 Vss Napajanje, masa.

• pin br.6 RB0 Nulti pin porta B. Dodatna funkcija je prekid ulaz

• pin br.7 RB1 Prvi pin porta B . Nema nikakvu dodatnu ulogu.

• pin br.8 RB2 Drugi pin porta B. Nema nikakvu dodatnu logu.

• pin br.9 RB3 Treći pin porta B. Nema nikakvu dodatnu ulogu.

• pin br.10 RB4 Četvrti pin porta B. Nema nikakvu dodatnu ulogu.

• pin br.11 RB5 Peti pin porta B. Nema nikakvu dodatnu ulogu.

• pin br.12 RB6 Šesti pin porta B. 'Clock' linija u programskom modu.

• pin br.13 RB7 Sedmi pin porta B. 'Data' linija u programskom modu.

• pin br.14 Vdd Pozitivan pol napajanja.

• pin br.15 OSC2 Pin namenjen spajanju sa oscilatorom.

• pin br.16 OSC1 Pin namenjen spajanju sa oscilatorom.

• pin br.17 RA2 Drugi pin porta A. Nema nikakvu dodatnu ulogu.

• pin br.18 RA1 Prvi pin porta A. Nema nikakvu dodatnu ulogu.

Page 12: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

11

2.2. Organizacija memorije Memorija mikrokontrolera PIC16F84 podeljena je u dva bloka – programsku i memoriju

podataka. Programska memorija je veličine 1024 lokacija širine 14 bita. Adresa 0x00h rezervisana

je za reset vektor, a lokacija 0x04h za prekidni vektor. Memorija podataka sastoji se od 64 8-bitnih lokacija EEPROM memorije i 68 lokacija

RAM memorije od adrese 0x0C do 0x4F. Sa predhodne slike se može primetiti specifična podela memorije “po širini”, čime se formiraju dva segmenta, “banke” – BANK 0 i BANK 1. Prvih dvanaest lokacija u obe “banke” zauzimaju registri specijalne namene – SFR .

Magacin čine osam 13-bitnih lokacija, a programski brojač jedan 13-bitni registar.

Sl. 8. Memorijska organizacija PIC16F84

Page 13: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

12

2.3. Ulazno/Izlazni portovi Važna karakteristika svakog mikrokontrolera je broji organizacija njegovih

ulazno/izlaznih portova i broj pinova kojima portovi raspolažu, jer preko njih mikrokontroler zapravo i komunicira sa okolinom.

PIC16F84 ima dva ulazno/izlazna porta i ukupno trinaest pinova – PORT A , registar na adresi 0x05h sa pridruženih pet pinova i PORT B na adresi 0x06h sa pridruženih osam pinova na kućištu mikrokontrolera. Definisanje portova kao ulaznih ili izlaznih vrsi se na nivou bita, registrima TRISA, na adresi 0x85h i TRISB na adresi 0x86h. Setovanje odgovarajućeg bita u TRIS registru definiše pin kao ulazni, a resetovanje bita definiše pin kao izlazni. Sa slike kućišta PIC16F84 može se videti da neki pinovi pridruženi U/I portovima imaju dvostruku funkciju. Za definisanje namene takvog pina koriste se i drugi SFR registri čije detaljnije objašnjenje tek sledi. Maksimalna ulazna struja je 25mA a maksimalna izlana struja 20mA po pinu.

Sl. 9. Definisanje smera porta

2.4. Oscilator

Da bi mikrokontroler uopšte proradio pored napajanja potreban mu je i takt. U skladu sa taktom funkcioniše njegova celokupna struktura da bi izvršila program.U zavisnosti od frekvence eksternog oscilatora postoje četiri režima rada:

• LP niže frekvence i režim smanjene potrošnje • XT frekvence od 500kHz - 4MHz • HS više frekvence 8MHz-20MHz • RC oscilator realizovan RC kolom

PIC16F84 nema donju graničnu frekvencu, dok je gornja granična frekvenca 20MHz. Za

formiranje takta koriste se eksterna kola, a njihova realizacija je moguća na više načina. Uglavnom se koristi takt frekvenca koju generiše kristalni oscilator jer garantuje vrlo preciznu i stabilnu frekvencu. Na kućištu mikrokontrolera pinovi 15 i 16 su predviđeni za dovođenje takta. Kada se primenjuje kristalni oscilator, pinovi 15 i 16 se preko odgovarajućeg kondenzatora vezuju na masu čime se obezbeđuje stabilniji rad osilatora ali i povećava vreme startovanja.

Page 14: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

13

Pored kristalnog oscilatora možemo da koristimo i neku našu aplikaciju koja generiše takt odgovarajuće frekvence. U tom slučaju takt se dovodi na 16 pin, dok 15 pin ostaje slododan.

Sl.10. Eksterni oscilator Sl.11. RC oscillator u kolu PIC16F84 Najlošije karakteristike daje RC kolo. Daje nestabilnu frekvencu čija odstupanja mogu da

budu i 25% nominalne frekvence . Otpornik RC kola treba da bude iz opsega od 5kΩ do 100kΩ, dok minimalna kapacitivnost treba da bude 20pF. Drugačiji izbor vrednosti komponenti u RC kolu mogu da dovedu do izrazite nestabilnosi i šumova.

Bez obzira koji se oscilator koristi njegov takt se deli sa četiri, čime se dobija radni takt mikrokontrolera. Pri projektovanju štampane ploče uređaja, oscilator treba smestiti što bliže mikrokontroleru, kako bi dužina veze bila što kraća radi sprečavanja smetnji.

Sl.12. Xt oscillator u kolu PIC16F84

Page 15: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

14

2.5. Reset Reset podrazumeva dovođenje mikrokontrolera u poznato stanje. Mikrokontroler

PIC16F84 poznaje sledeće izvora reseta :

Resetovanje pri dovođenju napajanja, power on reset – POR. PIC16F84 ima ugrađeno kolo za interni POR, ali je trajanje tog impusa vrlo kratko. Da bi se obezbedio normalni rad, puni radni napon mora da se dovede vrlo brzo. Zato se eksternim kolom povećava trajanje reset impulsa. Preko otpornika R1 puni se kondenzator C1, pri tome nivo ostaje na logičkoj nuli sve dok se kondenzator ne napuni. Otpornik R2 služi da ograniči ulaznu struju mikrokontrolera. Dioda D1 ima zadatak da u slučaju pada radnog napona brzo isprazni kondenzator. Preporučene vrednosti otpronosti za R2 su od 100Ω do 1kΩ, dok bi R1 trebao da bude veći od 40kΩ, a C manji od 10μF. Na žalost ovo kolo ne daje dobru zaštitu u slučaju delimičnog pada radnog napona. Kako se reset impuls ne generiše ako porast napona nije krenuo od nule, u slučaju pada napona napajanja ispod 2V, a zatim ponovnog rasta, može doći do nedefinisanog ponašanja mikrokontrolera i pojave Brown-out. Ovaj problem se rešava takođe eksternim kolom. Naponski komparator daje impuls kada napon padne ispod određene vrednosti. Napon pri kome će doći do reseta je 0.7V veći od napona na zener diodi. Kada je napon veći od napona reseta, tranzistor vodi i pin MCLR je na logičkoj jedinici, padom napona tranzistor se koči, MCLR je na logičkoj nuli i imamo generisani reset impulsa.

Sl.13. Povećavanje dužine trajanja impulsa Sl.14. Rešavanje problema brown-outa

Resetovanje tokom rada, dovođenjem logičke nule na pin MCLR Resetovanje za vreme sleep režima mikrokontrolera Resetovanje pri prekotačenju sigurnosnog brojača (WDT) , ukoliko je aktivan.

Kako je jedan od načina za reset dovođenje logičke nule na četvrti pin, u praksi se vrlo često na ovaj pin vezuje otpornik prema napajanju kako ne bi došlo do slučajnog reseta, što i pokazuje sledeća slika.

Sl.15. Reset kola

Page 16: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

15

2.6. REGISTRI SPECIJALNE NAMENE ( SFR registry) Upravljanje PIC mikrokontrolerom je zapravo upravljanje stanjima SFR registara.

Pristupa im se na nivou bita, tako da se setovanjem ili resetovanjem odgovarajućeg bita mikrokontroler postavlja u određeni režim rada. Registri specijalne namenene smesteni su u RAM memoriji na prvih dvanaest lokacija obe banke. Navodeći osnovne karakteristike mikrokontrolera PIC16F84 rečeno je da ima 15 registara specijalne namene. Neslaganje dolazi zbog podele RAM memorije na blokove ( Bank 0 i Bank 1) i neophodnosti da pojedini SFR Registry budu dostupni iz oba bloka, pa se od strane korisnika jedan isti registar vidi na dve memorijske lokacije.

2.6.1. STATUS registar STATUS registar pripada grupi SFR registara i može mu se, kao i ostalim registrima ove

grupe, pristupiti na nivou bita. Sadrži aritmetički status ALU, RESET status i bitove za selekciju memorijske banke. Kako ovaj registar vrši selekciju memorijske banke, pristupačan je u svakoj banci, pa otud pristup adresama 0x03h u BANK0 i 0x83h u BANK1 daje isti rezultat.

R/W­ 0 R/W­ 0 R/W­ 0 R­1 R­1 R/W­x R/W­x R/W­x IRP RP 1 RP 0 T0 PD Z DC C 7 6 5 4 3 2 1 bit0

R=bit koji se može pročitati W= bit koji se može pisati - n = vrednost posle reseta bit 0 C – (Carry) prenos 1 = pojavio se prenos sa najvišeg bita rezultata 0 = prenos se nije pojavio bit 1 DC - ( Digit Carry) DC prenos 1 = pojavio se prenos na četvrtom bitu po redu rezultata 0 = prenos se nije pojavio bit 2 Z – ( Zero bit) indikacija nultog rezultata 1 = rezultat je jednak nuli 0 = rezultat je različit od nule bit 3 PD – ( Power – Down bit )

Bit koji se setuje dovođenjem napajanja , posle svakog regularnog reseta, posle resetovanja watchdog tajmera, signalom na RB/INT pinu, završetkom upisa u interni DATA EEPROM, Resetovanjem PD bita mikrokontroler se prevodi u SLEEP režim rada.

bit 4 TO - ( Time Out ) prekoračenje sigurnosnog brojača 1 = prekoračenje se nije desilo 0 = prekoračenje se desilo

Page 17: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

16

bit 6: 5 RP1:RP0 – ( Register bank select bits) izbor grupe registara Viši deo adrese za direktno adresiranje . RP1 bit se ne koristi , ali je

ostavljen za neka buduća proširenja ovog mikrokontrolera 01 = prva banka 00 = nulta banka

bit 7 IRP – ( Register bank selekt bits ) izbor grupe registara 1 = banka 2 i 3

0 = banka 0 i 1

2.6.2. OPTION registar

OPTION registar upravlja dodeljivanjem preskalera, faktorom deljenja preskalera, izborom ivice signala za okidanje brojača TMR0, i izborom izvora takta za brojač TMR0. Upravlja izborom ivice signala na koju se javlja spoljni prekid. Najviši bit ovog registra uključuje ili isključuje interne pull-up otpornike na portu B.

R/W­ 1 R/W­ 1 R/W­ 1 R/W­1 R/W­1 R/W­1 R/W­1 R/W­1 RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0 7 6 5 4 3 2 1 bit 0

R=bit koji se može pročitati W= bit koji se može pisati - n = vrednost posle reseta

bit 0:2 PS0,PS1,PS2 - ( Prescaler rate Select bit)

Ova tri bita definišu faktor deljenja preskalera PS2 ,PS1,PS0 TMR0 WDT 000 1:2 1:1 001 1:4 1:2 010 1:8 1:4 111 1: 256 1:128

bit 3 PSA – ( Prescaler Assigment bit) Dodeljivanje preskalera Ovim bitom se bira da li će preskaler biti dodeljen TMR0 ili

sigurnosnom brojaču 1 = preskaler je dodeljen sigurnosnom brojaču 0 = preskaler je dodeljen slobodnom brojaču

bit 4 TOSE – ( TMRO Source Edge Select bit ) Biranje ivice signala za okidanje brojača TMR0.

Ukoliko je omogućeno da se TMR0 okida impulsima sa pina RA4/TOCKI ovaj bit određuje da li će to biti na opadajuću ili rastuću ivicu signala.

1 = opadajuća ivica 0 = rastuća ivica

Page 18: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

17

bit 5 T0CS - ( TMR0 Clock Source Select bit ) Izbor izvora takta za TMR0

Određuje da li će slobodni brojač uvećavati svoje stanje iz internog oscilatora , na svaku 1/4 takta oscilatora ili spoljnim impulsima na pinu RA4/ T0CKI

1 = spoljnim impulsima 0 = 1/4 internog takta

bit 6 INTEDG - ( Interapt Edge Select bit) izbor ivice na koju se javlja spoljni prekid

1 = rastuća ivica 0 = opadajuća ivica

bit 7 RBPU - ( PORTB Pull-up Enable bit ) ovaj bit uključuje ili isključuje interne pull-up otpornike na portu B

1 = isključeni 0 = uključeni

2.6.3. Konfiguracioni registar Više puta do sada koristili smo pojmove WDT aktivan ili ne, izbor tipa oscilatora,

pominjali smo i zaštitu koda od neautorizovanog čitanja. Konfiguracionim registrom zapravo postavljamo ove parametre. Nalazi se na adresi 2007h i pripada specijalnom test/konfiguracionom memoriskom prostoru kome se pristupa u toku procesa programiranja mikrokontrolera. Konfiguracioni bit može biti programiran – čita se kao nula, ili neprogramiran – čita se kao jedinica.

R­u R­u R­u R­u R­u R­u R­u R­u R­u

CP DP CP CP CP PWRTE WDTE FOSC1 FOSC0

13 ­ 8 7 6 5 4 3 2 1 bit 0

R- bit koji se čita n – vrednost posle reseta u – nepromenjena

bit 0:1 FOSC0 : FOSC1 – selekcija oscilatora

Binarna kombinacija ova dva bita određuje vrstu oscilatora 00 = RC oscilator

01 = HS oscilator 10 = XT oscilator 11 = LP oscilator

Page 19: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

18

2.7. EEPROM memorija PIC16F84 ima 64 bajta EEPROM memorijskih lokacija na adresama 0x00h do 0x63h.

EEPROM memorija se nalazi u posebnom memorijskom prostoru i pristupa joj se preko specijalnih registara:

EEDATA na adresi 0x08h, koja sadrži podatak koji je ili pročitan ili ga treba upisati. EEADR na adresi 0x09h, koji sadrži adresu lokacije kojoj se pristupa. EECON1 na adresi 0x88h, koji sadrži pet kontrolnih bitova. Preostala tri bita se ne

koriste i pri čitanju su uvek nule. EECON2 na adresi 0x89h, koji fizički ne postoji i služi da zaštiti EEPROM od slučajnog

upisa. Vrednosti 0x55h i 0xAAh su prvi i drugi ključ koji onemogućava da dođe do slučajnog upisa.

U­ 0 U­0 U­0 R/W­1 R/W­1 R/W­x R/W­0 R/W­x

­ - - EEIF WRERR WREN WR RD

7 6 5 4 3 2 1 bit 0

R=bit koji se može pročitati W= bit koji se može pisati - n = vrednost posle reseta

bit 0 RD – ( Read Control bit ) Start čitanja iz EEPROM-a

Setovanje ovog bita inicira prenos podataka sa adrese definisane u EEADR u EEDATA registar.

1 = inicira čitanje 0 = ne inicira čitanje

bit 1 WR - (Write Control bit ) Start upisa u EEPROM

Setovanje ovog bita inicira upis podataka iz EEDATA registra na adresu koja se nalazi u EEADR registru.

1 = inicira upis 0 = ne inicira upis

bit 2 WREN – ( EEPROM Write Enable bit) Omogućava upis u EEPROM 1 = dozvoljen upis 0 = upis nije dozvoljen

bit 3 WRERR – ( EEPROM Error Flag bit) Greška prilikom upisa u EEPROM. Signalizira grešku kada je upis u EEPROM bio prekinut reset signalom ili istekom vremena u sigurnosnom brojaču ukliko je isti aktivan.

1 = greška se desila 0 = greška se nije desila

bit 4 EEIF – ( EEPROM Write Operation Interapt Flag bit) Bit kojim se obaveštava o završenom upisu podataka u EEPROM.

1 = upis je završen 0 = upis još nije završen ili nije ni počeo

Page 20: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

19

2.8. Slobodni tajmer-brojač TMR0

PIC16F84 ima jedan osmobitni tajmer-brojač koji se nalazi na adresi 0x01h. Odgovarajućim bitovima OPTION registra definišemo da li se stanje brojača uvećava internim ili spoljnim taktom preko pina RA4/TOCKI, izbor ivice impula za okidanje ukoliko smo izabrali spoljni izvor takta, kao i faktor deljenja preskalera ukoliko je on dodeljen TMR0. Najveći faktor deljenja preskalera je 256. Nakon svakog odbrojavanja do FFh, brojač restuje svoju vrednost na 00h i kreće novi ciklus brojanja. Svakim prelaskom sa FFh na 00h setuje se bit T0IF u INTCON registru. Ukoliko je dozvoljena pojava prekida, ovo se može iskoristiti za generisanje prekida i obradu prekidne rutine.

2.9. Programski brojač

Programski brojač (PC) je trinaestobitni registar koji sadrži adresu instrukcije koja se

izvršava. Njegovim uvećavanjem ili promenom (npr.u slučaju skoka) mikrokontroler izvršava jednu po jednu instrukciju programa.

2.10. Magacin (Stack)

PIC16F84 ima trinaestobitni magacin sa osam nivoa. Njegova osnovna uloga je da

sačuva vrednost programskog brojača nakon što se iz glavnog programa pređe na adresu podprograma koji se izvršava. Da bi program znao da se vrati na mesto odakle je pošao mora sa magacina da vrati vrednost programskog brojača. Pri prelasku iz programa u podprogram vrednost programskog brojača se smešta u magacin, a na kraju podprograma vraća iz magacina u programski brojač, da bi program mogao da nastavi tamo gde je prekinut. Magacin se ponaša kao cirkularni bafer, što znači da kako ima osam nivoa, deveti upis programskog brojača će izbrisati prvi upisani. PIC16F84 nema predviđen bit statusa magacina koji bi kontrolisao njegovo prekoračenje. 2.11. Programiranje unutar sistema –In System Programing

Programiranje PIC16F84 se vrši serijski, što daje mogućnost programiranja

mikrokontrolera i po njegovoj ugradnji.- in system programing. Mikrokontroler se u režim za programiranje uvodi postavljanjem 6 i 7 pina porta B na

nivo logičke nule i dovođenjem napona Vpp od 12V do 14V na MCLR, sa stabilnim naponom napajanja između 4.5V i 5.5V. U ovom režimu rada na RB6 se dovodi takt dok je RB7 I/O tipa namenjen podacima .

U ovom režimu se programiraju programska i memorija podataka, ID lokacije i konfiguraciona reč. ID lokacije se nalaze na adresi 2000h-2003h i određuje način zaštite programskog koda od neautorizovanog čitanja. Konfiguraciona reč se nalazi na adresi 2007h i

Sl.16. Programiranje unutar sistema

Page 21: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

20

koristi se pet nižih bitova ove lokacije. Kao što sam naziv kaže, konfiguriše mokrokontroler po tipu oscilatora, korišćenje WDT-a, korišćenje zaštite programskog koda, i power-up tajmera.

2.12. Prekidi (interapti) kod PIC16F84

Prekidi (interrupti) predstavljaju mehanizam kojim mikrokontroler odgovara na

događaje onog trenuka kada se oni dese, bez obzira na to šta mikrokontroler radi u tom trenutku. Pojavom zahteva za prekid program menja svoj tok izvršenja i nakon prekidne rutine nastavlja tamo gde je prekinut. Pri prelazu na prekidnu rutinu jedino se sadržaj programskog brojača po automatizmu smešta na magacin. Čuvanje sadržaja ostalih registara od važnosti za nastavak programa po povratku iz prekidne rutine u glavni program, rešava se odgovarajućom rutinom u okviru programa. Na adresi 0x0Bh nalazi se registar kontrole prekida – INTCON, čija je uloga da omogući ili zabrani prekide, a u slučaju da su zabranjeni registruje pojedinačne zahteve prekida. PIC16F84 ima četiri izvora prekida:

Spoljašnji prekid na RB0/INT Prekid pri promeni na RB4, RB5, RB6, i RB7 porta B Kraj upisivanja podataka u EEPROM TMR0 prekid uzrokovan prekoračenjem brojača

Svaki izvor prekida ima pridružena dva, odnosno tri bita, prvim se detektuje zahtev za

prekid, a drugim omogućava ili zabranjuje odgovor na detektovani zahtev za prekid. Treći bit je onaj kojim se dozvoljavaju ili zabranjuju svi prekidi. Kada se izvrši instrukcija koja resetuje ovaj bit, svaki prekid se ignoriše. Ignorisani prekidi se obrađuju nakon ponovnog setovanja ovog bita. Kada se odgovori na prekid, bit se resetuje da bi se onemogućio bilo kakav dodatni prekid, povratna adresa se smešta na magacin, a u programski brojač upisuje adresa 0004h – tek tada počinje odgovaranje na prekid. Kada se obradi prekid, mora se resetovati bit čije je setovanje izazvalo prekid, jer će se u suprotnom pri povratku u glavni program prekidna rutina ponovo obraditi.

Da bi se za detekciju zahteva za prekidom koristio deo porta B, potrebno je poznavati karakteristike signala koji izaziva prekid, u prvom redu njegovu širinu impulsa. U tom smislu razlikujemo impuls male i impuls velike širine. Signal zahteva za prekid, koji načini promenu logičkog nivoa i vrati se na predhodno stanje pre kraja prekidne rutine, predstavlja impus male širine. Impuls velike širine, podrazumeva promenu logičkog nivoa i zadržavanje na njemu i po završetku prekidne rutine.

2.13. INTCON registar

R/W­0 R/W­0 R/W­0 R/W­0 R/W­0 R/W­0 R/W­0 R/W­0

GIE EEIE T0IE INTE RBIE T0IF INTF RBIF

7 6 5 4 3 2 1 bit 0

R=bit koji se može pročitati W= bit koji se može pisati - n = vrednost posle reseta

bit 0 RBIF – ( RB Port Change Interrupt flag bit ) Bit koji obaveštava o promeni na 4, 5, 6, i 7-mom pinu PORTB

Page 22: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

21

1 = najmanje jedan pin je promenio svoje stanje 0 = nije se desila promena ni na jednom od pinova bit 1 INTF – ( INT External Interrupt Flag bit ) Javio se zahtev za

spoljašnji prekid . Bit se u prekidnom podprogramu mora resetovati da bi se naredni prekid mogao detektovati.

1 = prekid se desio 0 = prekid se nije desio

bit 2 TOIF – ( TMR0 Overflow Interrupt Flag bit ) Prekoračenje brojača TMR0. Bit se u prekidnom podprogramu mora resetovati da bi se naredni prekid mogao detektovati.

1 = brojač promenio stanje sa FFh na 00h 0 = prekoračenje se nije desilo bit 3 RBIE – ( RB port change Interrupt enable bit ) Omogućuje pojavu

prekida na promenu stanja pinova 4, 5, 6, 7 – om PORTAB. Ako su istovremeno setovani RBIE i RBIF nastupiće prekid

1 = omogućena pojava prekida na promenu stanja 0 = onemogućena pojavaprekida na promenu stanja bit 4 INTE – ( INT External Interrupt Enable bit ) Bit koji omogućava

spoljni prekid sa pina RB0/INT. Ako su istovremeno setovani INTE i INTF, nastupiće prekid

1 = spoljni prekid je omogućen 0 = spoljni prekid je onemogućen bit 5 T0IE – ( TMR0 Overflow Interrupt Enable bit ) Bit koji omogućava

pojavu prekida prilikom prekoračenja brojača TMR0. Ako su istovremeno setovani TOIE i TOIF, nastupiće prekid.

1 = prekid je omogućen 0 = prekid je onemogućen bit 6 EEIE – ( EEPPROM Write Complete Interrupt Enable bit ) Bit koji

omogućava prekid na kraju upisa u EEPROM. Ako su istovremeno setovani EEIE i EEIF ( koji se nalazi u EECON1 registru ) , nastupiće prekid.

1 = prekid je omogućen 0 = prekid je onemogućen bit 7 GIE – ( Global Interrupt Enable bit ) Bit koji dozvoljava ili

zabranjuje sve prekide. 1 = svi prekidi omogućeni 0 = svi prekidi onemogućeni

Page 23: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

22

2.14. Sleep mod- režim smanjene potrošnje

Ovo je mod rada mikrokontrolera koji se ređe koristi. Namenjen je smanjenju potrošnje u

situacijama kada mikrokontroler samo povremeno upravlja nekim procesom . Uvođenjem u ovaj mod stanje PD bita STATUS registra se resetuje, TO bit status

registra se setuje, I/O portovi zadržavaju svoje stanje a pin MCLR mora da bude na logičkoj jedinici.Ukoliko je WDT bio aktivan briše se njegovo trenutno stanje, ali on nastavlja da broji.

U ovom režimu mikrokontroler ostaje sve dok se ne javi jedan od događaja: impuls za reset na pinu MCLR, prekoračenje sigurnosnog brojača ukoliko je isti aktivan ili prekidni zahtev bez obzira da li je isti omogućen ili je aktivna zabrabna svih prekida. Za razliku od prva dva događaja koji će izazvati reset mikrokontrolera i postaviti programski brojač na nulu, povratkom iz sleep režima usled prekidnog zahteva mikrokontroler nastavlja sa programom izvršavanjem prekidne rutine. Treba pomenuti da je prilikom izvršavanja instrukcije prelaska mikrokontrolera u sleep mod naredna instrukcija već definisana (PC+1). Program će izvršiti prvo nju a zatim prekidnu rutinu koja je izazvala prekid sleep režima.

Page 24: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

23

3. MPLAB

MPLAB je Microchip-ovo razvojno okruženje namenjeno PIC mikrokontrolerima. Kako je delo iste kuće koja je tvorac PIC mikrokontrolera , sadrži potpun softverski alat za konforan rad. U ovom delu dajemo neke napomene vezne za MPLAB razvojno okruženje, ispratićemo tok instalacije i postupak konfigurisanja projekta.

Bez obzira na familiju mikrokontrolera, važan, a možda i najvažniji deo svakog softverskog alata jesu simulatori. Dobra osobina programera je da na kraju pisanja svoj program prvo proveri u simulatoru, pa ga zatim testira u realnim uslovima. Nažalost, kao i mnoge druge dobre navike čovek i ovu manje – više izbegava, što zbog vlastitog karaktera, što zbog nedostatka dobrih simulatora.

3.1. Instalacija MPLAB-a

Sl.17 Pozdravni ekran na početku instalacije

Sl.18. Selektovanje komponenti MPLAB razvojnog okruženja

Sl.19. Selektovanje komponenti MPLAB razvojnog okruženja

Sl.20. Selekcija asemblera i operativnog sistema

Page 25: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

24

Sl.21. Izbor direktorijuma u kome će se instalitrati MPLAB

Sl.22. Opcija potrebna korisnicima koji preko već instaliranog MPLAB-a ,

instaliraju novu verziju

Sl.23. Dodavanje MPLAB-a u start meni Sl.24. Određivanje direktorijjma za datoteke linkera

Sl.25. Selekcija direktorijuma za sistemske datoteke

Sl.26. Ekran pred samom instalacijom

Page 26: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

25

Sl.27. Tok instalacije

Sl.28. Poslednje informacije u vezi verzije programa

Sl.29. Kraj instalacije

Page 27: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

26

3.2. Izbor razvojnog moda

OPTIONS »» DEVELOPMENT MODE »» TOOLS

Sl. 30. Izbor razvojnog moda

None (editor only) - kada nameravamo da koristimo samo editor

MPLAB – SIM - kada nameravamo da koristimo implementirani simulator 3.3. Kreiranje projekta

Sl. 31. Otvaranje novog projekta

Prvi korak ka realizaciji programa je, kako samo ime kaže, kreiranje novog projekta. Dajemo ime projektu i smeštamo u željeni direktorijum. PROJECT »» NEW PROJECT

Page 28: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

27

Sl.32. Davanje imena projektu

Nakon davanja imena projektu dobija se prozor kao na sledećoj slici:

Sl.33. Podešavanje elementa projekta Klikom na ' ***.[hex] ' u okviru ' Project files ' , aktivira se opcija 'Node Properties'.

Klikom na nju dobija se sledeći prozor, koji omogućava podešavanje parametara MPASM asemblera. Preporuka je isključiti Case sensitivity, Warning level postaviti na err, uključiti Macro expansion.

Page 29: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

28

Sl.34. Definisanje parametara MPASM asemblera Klikom na OK vraćamo se na predhodni prozor u kome je aktivno dugme ' Add node '.

Klikom na njega dobijamo sledeći prozor u kome dajemo ime našem asemblerskom fajlu.

Sl.35. Davanje imena asemblerskoj datoteci Klikom na dugme OK vraćamo se na polazni prozor u kome se vidi dodata asemblerska

datoteka.

Page 30: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

29

Sl.36. Dodata asemblerska datoteka Klikom na OK vraćamo se u MPLAB okruženje. Po završetku podešavanja polaznih

parametara, pristupa se pisanju programa. Otvara se nova datoteka sa istim imenom asemblerske datoteke koju smo formirarali u predhodnom postupku. Kod projekta sa samo jednom datotekom, ime projekta i izvorne datoteke se moraju podudarati. Nova datoteka se otvara klikom na FILE »» NEW čime se dobija text editor unutar MPLAB radne površine i snima, FILE »» SAVE AS pod predhono definisanim imenom asemblerske datoteke. Nakon predhodnih operacija može se početi sa pisanjem programa.

Sl. 37. Prevođenje programa Kada je program napisan u text editoru, komandom PROJECT »» BUILD ALL, vrši se

prevođenje i dobijamo prozor sa izveštajem o prevođenja, da li ima grešaka ili ne.

Page 31: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

30

Sl. 38. Tok prevođenja asemblerskog programa

Sl. 39. Poruka nakon prevođenja asemblerskog programa Ukoliko grešaka nije bilo, rezultat prevođenja je odgovarjuća HEX datoteka. U slučaju

da se u izveštaju javi poruka o grešci, dvostrukim kilikom na poruku, prelazi se u asemblerski program i to na liniju u kojoj se nalazi greška kako bi je ispravili, a zatim proces prevođenja ponovili.

Page 32: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

31

3.4. MPSIM simulator Bez obzira na familiju mikrokontrolera, važan, a možda i najvažniji deo svakog

softverskog alata jesu simulatori. Dobra osobina programera je da na kraju pisanja svoj program prvo proveri u simulatoru, pa ga zatim testira u realnim uslovima. Nažalost, kao i mnoge druge dobre navike čovek i ovu manje – više izbegava, što zbog vlastitog karaktera, što zbog nedostatka dobrih simulatora.

Sl. 40. Praćenje stanja mikrokonrolera za vreme simulacije

Deo MPLAB okruženja koji omogućava praćenje trenutnih vrednosti promenljivih, stanja registara, stanja pinova na portovima, jeste simulator. U zavisnosti koju veličinu programa želimo da pratimo, otvaramo odgovarajući prozor simulatora WINDOW »» SPECIAL FUNCTION REGISTERS; FILE REGISTERS; WATCH WINDOWS; Kako simulator, simulira realne uslove, to i ovde, kao i u realnim uslovima treba prvo resetovati mikrokontroler: DEBUG »» RUN »» RESET, što za rezultat ima crnu liniju pozicioniranu na početku programa i postavljanje programskog brojača na nulu, što se može videti u statusnoj liniji. Proces simulacije može da se odvija korak po korak – liniju po liniju DEBUG »» RUN »» STEP ili u kontinuitetu do kraja programa DEBUG »» RUN »» RUN. Simulacija nije od velikog značaja ukoliko se radi o jednostavnim programima, ali kod složenijih može biti od velike pomoći.

Kako pri simulaciji realnih uslova treba obezbediti i pobudu ulaznih pinova ili dovođenje nekog signala na ulaz mikrokontrolera, MPLAB je omogućio asinhronu pobudu pina- asyncronous stimulus, pobudu ulaznih pinova definisanu u okviru fajla koji se poziva- pin stimulus, pobudu taktnim impulsima clock stimulus, i definisanje stanja registra nekim unapred formiranim fajlom.

Asihrona pobuda (Asyncronous stimulus)- otvara dijalog prozor u kome se definise dodela pina i stanje- nisko, visoko, takt ili promena stanja u odnosu na predhodno.

Page 33: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

32

Sl. 41. Asihrona pobua

Unapred definisana pobuda pinova (Pin stimulus) – da bi se ova opcija koristila, prethodno moramo da formiramo fajl u kome ćemo definisati trenutke u kojima se javlja pobuda i pinove na koje pobuda dolazi. Fajl se formira u tekst editoru na sledeći nacin: u prvoj liniji je rec cycle a zatim imena pinova na koje se dovodi pobuda. Na primeru bi to izgledalo ovako:

CYCLE RB1 RB0

20 0 0 41 1 0 52 0 1 55 1 1 60 0 0 65 1 0 76 0 1 Sadržaj *.sti fajla Sl. 42. Pobuda taktnim signalom Prva kolona označava takt u kome dolazi do pobude, a zatim slede vrednosti koje se u tom taktu dodeljuju odgovarajućem pinu. Formirani fajl ima ekstenziju *.sti i smesta se u folder projekta.

Pobuda taktnim siganalom (clock stimulus) – ova opcija podrazumeva pobudu određenog ulaznog pina taknim impulsima. U dijalog prozoru vrsi se izbor pina i određuje trajanje visokog i niskog nivoa takt signala koji se dovodi, odnosno formira se takt sekvenca koja će da se primeni. Obratiti pažnju da primenjena clock pobuda traje i posle opcije reset.

Unapred definisana stanja registara (register stimulus) – da bi se ova opcija koristila predhodno moramo da formiramo fajl koji ce da sadrži stanja registara, što zapravo predstavlja pobudu. Fajl se formira u tekst editoru i sadrži vrednosti stanja registara u hex obliku – ima ekstenziju *.reg. U dijalog prozoru biramo registar kome se fajl dodeljuje i adresu programske memorije gde se stanja čitaju.

Page 34: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

33

- paleta sa alatima i značenje ikonica

Sl. 43. Univerzalni toolbar sa kratkim objašnjenjem ikonica

Start izvršenja programa punom brzinom. Prepoznaje se po pojavi žute boje u

statusnoj liniji. Pri ovakvom izvršenju programa, simulator izvršava program punom brzinom sve dok se ne prekine klikom na ikonicu sa crvenim svetlom semafora.

Prekid izvršenja programa punom brzinom. Nakon klika na ovu ikonicu statusna linija postaje ponovo siva, a izvršenje programa se može nastaviti korak – po - korak.

Izvršenje programa korak – po – korak . Klikom na ovu ikonicu kreće izvršenje naredbe iz naredne programske linije u odnosu na trenutnu.

Preskakanje uslova. Omogućava preskakanje nekog programskog uslova. Resetovanje mikrokontrolera. Klikom na ovu ikonicu programski brojač se pozicionira

na početak programa i simulacija može da krene . Prozor sa sadržajem RAM memorije. Pomoću ove ikonice dobijamo prozor sa

sadržajem RAM memorije mikrokontrolera. Prozor sa sadržajem ROM memorije. Klikom na na ovu ikonicu pojavljuje se prozor

sa programom ali u obliku programske memorije, gde se vidi na kojoj se adresi nalazi koja naredba.

Prozor sa SFR registrima. Klikom na ovu ikonicu pojavljuje se prozor sa SFR registrima. Preporučuje se da u simulatoru ovaj prozor uvek bude aktivan.

Prozor sa promenljivima. Ako program sadrži promenljive čije vrednosti treba pratiti, za svaku od njih treba dodati prozor, ovom ikonicom.

Ponovo prevođenje celog projekta. Kada se u procesu simulacije uoče eventualne greške u programu, program se mora prepraviti. Kako simulator koristi HEX datoteku kao svoj ulaz, to je program potrebno ponovo prevesti da bi se sve promene prenele i u simulator. Klikom na ovu ikonicu ceo projekat se ponovo prevodi i dobija se najnovija verzija HEX datoteke za simulator.

Page 35: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

34

4. ALLPIC UNIVERZALNI PROGRAMATOR MICROCHIP PIC MIKROKONTROLERA

Programator korišćen u ovom projektu namenjen je programiranju većine serijskih PIC mikrokontrolera (PIC16F8x, 16F62x, 16F87x, 12C50x, 12F6xx). Odlikuju ga jednostavnost i kompaktnost. Povezuje se na računar preko serijskog porta. Za rad programatora potreban je i slabiji izvor napajanja (15V). Dioda D1 na ulazu za napajanje je predviđena kao zaštita od suprotno priključenog polariteta iz ispravljača. Izvor napajanja može da bude i naizmenični napon, a stabilisani napon od 5V, potreban za napajanje mikrokontrolera obezbeđuje 78L05. Napon programiranja , (Vpp = 13V aprox.) se generiše pomoću zener diode D3. Ostatak kola čine NPN i PNP tranzistori, propratne zener diode i otpornici R4 i R5, koji obezbeđuju TTL logičke nivoe (5V) potrebne za programiranje mikrokontrolera.

Procedura programiranja starijih modela PIC mikrokontrolera koji nemaju interni oscilator, zahteva prvo Vdd (+5V) napon pa tek nakon toga MCLR (+13V) napon. Kod novijih PIC mokrokontrolera procedura je suprotna, napon Vdd, sme se pojaviti tek posle uspostavljanja MCLR, programskog napona. Kod ALLPIC programatora ovaj problem je rešen džamperom J1, kojim se bira mod rada.

Indikator LED1 (crvena) informiše o prisustvu napona napajanja programatora , i on treba da bude u granicama 14V – 20V, pri čemu treba računati da pri naponu od 20V grejanje stabilizatora može biti primetno.

Indikator LED2 (zelena), indicira prisutan napon napajanja Vdd (+5V) na čipu koji se programira .

Ukoliko je kratkospajač JP1 spojen, Vdd (+5V) napon će biti stalno prisutan, što će se videti upaljenom LED2. Ovaj mod rada je namenjen Microchip PIC mikrokontrolerima koji nemaju interni oscilator (16F84, 16F87x), kao i EEPROM-ima. Za mikrokontrolere (16F627, 16F628, 12F629, 12F657) potrebno je skinuti JP1 i u tom modu Vdd se pojavljuje tek po uspostavljanju programskog napona Vpp (13V), na početku programiranja. Kratkospajač JP2 služi za izbor write protect moda za EEPROME 24Cxx.

Poseban konektor, koji je na šemi označen kao CON1, koristi se za eksterni priključak za in – circuit programiranje (ICSP).

Programator nije predviđen za 16C5x seriju, kao i još neke specifične Microchip mikrokontrolere. Nije preporučljivo da dužina kabla kojim se programator povezuje sa računarom bude veća od 2m.

Page 36: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

35

Sl. 44. Električna šema Allpic programatora

Sl. 45. Izgled štampane ploče Allpic programatora

Sl. 46. Izgled Allpic programatora

Page 37: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

36

Sl. 47. Rapored komponenti na štampanoj ploči KOMPONENTE ZA IZRADU: IC1 – 78L05 T1,T3 – BC547 NPN D1, D2 – 1N4148 T2,T4 – BC557 PNP D3 – Zener 13V R1 - 1k2 D4 – Zener 12V R10 – 270 D5, D6 – Zener 5V1 R15 – 1k C1,C2,C3 – 100Nf R7, R8 – 10k C4 -10Uf/16V R4, R5, R13, R14 – 1k8 C5 -100Uf/25V R2, R3, R6, R9, R11, R12 – 5k6 LED1 – crvena 5mm LED2 – zelena 5mm 2x8 pin, 18 pin, 28 pin i 40 pin podnozija DB9 ženski konektor za montazu na PCB JP1 – 1x2 džamper JP2 – 1x3 džamper CON1- 1x5 kontaktna letvica (in-circuit prog.konektor) 6 mm - konektor za napajanje

Page 38: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

37

5. IC Prog Kao prateći softver ALLPIC programatora koristili smo IC PROG. Ovaj program podr-

žava veći broj programatora, sa širokim spektrom PIC mikrokontrolera i EEPROM memorija. Sama instalacija programa je jednostavna, nakon čega dobijamo prozor klasičnog

Windows okruženja. Program ne zahteva specifična podešavanja ali na neka ćemo skrenuti pažnju.

Sl. 48. IC Prog nakon pokretanja Sl. 49. Izbor mikrokontrolera

Sl. 50. Izbor tipa oscilatora

Prvi korak je definisanje programatora koji se koristi. Ovde korišćeni ALLPIC ne nalazi se na listi navedenih, pa u ovoj opciji postavljamo njemu kompatibilan JDM programmer i port na koji je programator priključen. Sledi izbor kontrolera koji se programira, u našem slučaju PIC16F84. Smeštamo kontroler u podnožje, naravno vodeći račnuna o orjentaciji mikrokontro-lera, priključimo napajanje na programator i opcijom REED ALL pročitamo njegov sadržaj. Ukoliko se u kontroleru nalazi predhodno upisan program, brišemo ga opcijom ERASE ALL i izvršimo proveru praznog stanja opcijom BLANK CHECK. Ovim bi bile završene pripremne radnje za upis našeg programa u kontroler. Opcijom OPEN FILE otvaramo željeni *.hex fajl i

Page 39: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

38

proverimo da li su postavljena podešavanja oscilatora, WDT-a, PWRT-a i CP-a na željenim vrednostima. U našem slučaju oscilator treba da je postavljen na XT, dok su ostale fuses opcije deselektovane. Opcijom PROGRAM ALL počinje programiranje. Ukoliko je programiranje izvršeno uspešno, imamo mikrokontroler spreman za ugradnju u sistem.

Sl. 51. Izbro tipa programatora – JDM Programmer

Sl.52. Podešavanja za operativni Sistem WIN XP

Page 40: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

39

POSTUPAK POVEZIVANJA ALLPIC PROGRAMATORA NA RAČUNAR

220 V/AC

15 V/DC

Slika 53. Povezivanje napajanja Allpic programatora na adapter

NAPON NAPAJANJA

NAPON PROGRAMIRANJA

SERIJSKI PORT

RAČUNARA

Slika 54. Povzivanje kabla za serijski port Allpic programator - računar

Page 41: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

40

6. PRAKTIČNA REALIZACIJA TALKING RING STRUKTURE PIC16F84 MIKROKONTROLEROM

Da bi predhodno opisani mikrokonroler PIC16F84 bio prikazan i na delu, na štampanoj

pločici je realizovan sistem (električno kolo) koje simulira talking ring komunikaciju. Naime, tri mikrokontrolera su povezana u strukturu «prsten». Svaki od mikrokontrolera komunicira sa susednim serijski, sa nepotpunim (delimičnim) handshaking-om (semihandshaking). Za ovakav oblik komunikacije dovoljna su sle-deća četiri signala:

• RX D – Prijem podatka (Receive Data) • TX D – Slanje podatka (Transmit Data) • RTS – Zahtev za slanje (Request To Send) • CTS – Brisanje za novo slanje (Clear To Send).

Sistem sa slike, poseduje sledeće karakteristike:

• napaja se iz USB porta računara (5V±0.25V), ili AC/DC adapter 5V • na svaki mikrokontroler se dovodi poseban kvarc od 4MHz • na MCLR pin svakog mikrokontrolera dovodi se globalni reset • četiri moguće komande se zadaju preko džampera (jumpers) J1 i J2 • preko J1 se definiše mikrokontroler kome je upućena komanda • preko J2 se definiše smer slanja komanda • token može da poseduje samo jedan mikrokontroler u jednom trenutku • za signalizaciju posedovanja token-a služe crvene LED • za signalizaciju izršavanja komande služe zelene LED • postoji mogućnost proširenja sistema preko 14-pinskog konektora.

Format informacije koja kruži prstenom je sledeći:

7 ­ 5 4 ­ 2 1 ­ 0

TOKEN ADRESA KOMANDA

Dva bita određuju komandu (0-1), tri definišu adresu mikrokontrolera (2-4), a tri su

rezervisana za token(5-7). Po prijemu informacije mikrokontroler analizira njen sadržaj, čita adresu i ako je informacija njemu namenjena čita i izvršava komandu. Ukoliko adresa upućuje na drugi mikrokontroler, informaciju prosleđuje dalje kroz prsten. Ovakav format omogućava definisanje četiri različite komande i mogućnost adesiranja do osam mikrokotrolera. Token je definisan kao 101.

Razlog izbora ovakvog formata informacije leži u arhitekturi mikrokontrolera PIC16F84 (osmobitni) i svrsi u koju se token komunikacija ovde primenjuje.

Page 42: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

41

A2A3A4MclrVssB0B1B2B3

A0

B4B5B6B7

VddOs2Os1

A1

U1

PIC16F84

A2A3A4MclrVssB0B1B2B3

A0

B4B5B6B7

VddOs2Os1

A1

U2

PIC16F84

A2A3A4MclrVssB0B1B2B3

A0

B4B5B6B7

VddOs2Os1

A1

U3

PIC16F84

R4

100R5

100

R7

100

R6

100

Gnd Gnd

R12

100R13

100

R15

100

R14

100

A2A3B2B3

B5B4A1A0

Vdd VddMCLR MCLR

R17

2.4K

R19

2.4K

R21

2.4K

D2

LED

Gnd

D4

LED

Gnd

D6

LED

Gnd

1234

USB

CON4

F1

0.8A

Gnd

MCLR

Vdd

Vdd Vdd

Gnd

C1

220nF

MCLR

R1

4.7K

Gnd

S1

R2

4.7K

Gnd

MCLR

R3

4.7K

Gnd

S2S2S1

R8

100R9

100

R11

100

R10

100

GndMCLR

Vdd

Y1

4MHz

C230pF

C330pF

Gnd Gnd

Y2

4MHz

C430pF

C530pF

Gnd Gnd

Y3

4MHz

C630pF

C730pF

Gnd Gnd

X1.1 X1.2 X2.1 X3.1X2.2 X3.2

X1.1X1.2

X2.1X2.2

X3.1X3.2

R18

1.8K

Gnd

Gnd Gnd

S1SW-PB

D3

LED

R16

1.8K

D1

LED

Gnd

R20

1.8K

D5

LED

GndCN1

CONN14

J2J1

Sl.55. Električna šema makete

Sl. 56. Izgled štampane ploče sa rasporedom komponenti KOMPONENTE ZA IZRADU: U1, U2, U3 PIC16F84 Y1, Y2, Y3 Kristal 4,00 MHz D1, D3, D5 Crvene LED Φ 3mm D2, D4, D6 Zelena LED Φ 3mm C1 22 nF C2, C3, C4, C5, C6, C7 30 pF R1, R2, R3 4k7 R4, R5, R6, R7, R8, R9, R10, R11,R12, R15 100Ω RR16, R18, R20 3k9 R17, R19, R21 2k2 F1 1 A/250V S2 taster USB USB konektor

Page 43: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

42

P1(J1), P2(J2) Prekidači /(džamperi)

Sl.57 Izgled štampane ploče makete

Uređaj započinje svoj rad dovođenjem napajanja. U početnom trenutku mikrokontroler br. 1 (U1) ima ulogu mastera. Njegova LED signalizacija predstavlja ovo stanje konstantno upaljenom crvenom diodom - koja signalizira posedovanje token-a, i konstantno upaljenom zelenom LED koja signalizira obavljanje zadatka, tj. obradu komande koja je zadata preko J1 i J2.

Postoje četiri moguće kombinacije. Mikrokontroler (U2 ili U3) koji je dobio informaciju preuzima token i ulogu master-a u sistemu, a zatim «čita» sadržaj primljene informacije (komande). Kao indikacija da je token u njegovom posedu, odgovarajuća crvena LED će konstantno da svetli (gori). Ukoliko pročitani sadržaj informacije ukazuje da je komanda namenjena njemu, ona se izvršava – generiše se povorka impulsa na pinu na kome je povezana odgovarajuća zelena LED, a zatim se vraća token mikrokontroleru br.1 (U1). Ako, međutim, komanda nije namenjena njemu, prosleđuje je sledećem mikrokontroleru u prstenu. Po izvršenoj komandi, mikrokontroler br.1 (U1) ponovo poseduje token i može da izvrši (eventualnu) sledeću komandu.

U slučaju gubljenja token-a, posle određenog vremena, mikrokontroler br.1 (U1) generiše novi token i proces počinje iznova.

Sada će biti detaljno opisan svaki od moguća četiri moda (režima rada) sistema.

Page 44: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

43

MOD 1 Režim prvog moda podrazumeva da su J1 i J2 otvoreni. Ovakvom kombinacijom J1 i J2,

mikrolontroler U1 se obraća mikrokontroleru U2. Mikrokontroler U2 po prijemu informacije signalizira svojom crvenom LED da je token u njegovom posedu i preuzima ulogu mastera. Kako pročitani sadržaj informacije ukazuje da je komanda namenjena njemu, on izvršava komandu, generiše povorku impulsa, a zelena LED indicira generisanu povorku impulsa. Po završenoj komandi, mikrokontroler U2 vraća token mikrokontroleru U1.

MOD2 Režim drugog moda podrazumeva da je J1 otvoren a J2 zatvoren. Ovakvom

konbinacijom J1 i J2, mikrokontroler U1 se obraća mikrokontroleru U2. Zatvaranjem J2 promenjen je smer kretanja token-a prema mikrokontroleru U2. Mikrokontroler U1 šalje informaciju mikrokontroleru U3, koji po prijemu informacije svojom crvenom LED signalizira da je token u njegovom posedu i preuzima ulogu mastera. Kako pročitani sadržaj informacije ukazuje da informacija nije namenjena njemu, on informaciju prosleđije sledećem mikrokontroleru – U2. Po prijemu informacije U2 signalizira svojom crvenom LED da je token u njegovom posedu i preuzima ulogu mastera. Kako pročitani sadržaj informacije ukazuje da je komanda namenjena njemu, on izvršava komandu, generiše povorku impulsa, a zelena LED indicira generisanu povorku impulsa. Po završenoj komandi, mikrokontroler U2 vraća token mikrokontroleru U1.

MOD3

Režim trećeg moda podrazumeva da je J1 zatvoren a J2 otvoren. Ovakvom konbinacijom J1 i J2, mikrokontroler U1 se obraća mikrokontroleru U3. Mikrokontroler U1 šalje informaciju mikrokontroleru U2, koji po prijemu informacije svojom crvenom LED signalizira da je token u njegovom posedu i preuzima ulogu mastera. Kako pročitani sadržaj informacije ukazuje da informacija nije namenjena njemu, on informaciju prosleđije sledećem mikrokontroleru – U3. Po prijemu informacije U3 signalizira svojom crvenom LED da je token u njegovom posedu i preuzima ulogu mastera. Kako pročitani sadržaj informacije ukazuje da je komanda namenjena njemu, on izvršava komandu, generiše povorku impulsa, a zelena LED indicira generisanu povorku impulsa. Po završenoj komandi, mikrokontroler U2 vraća token mikrokontroleru U1.

Page 45: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

44

MOD4 Režim četvrtog moda podrazumeva da su J1 i J2 zatvoreni. Ovakvom kombinacijom J1 i

J2, mikrolontroler U1 se obraća mikrokontroleru U3. Mikrokontroler U3 po prijemu informacije signalizira svojom crvenom LED da je token u njegovom posedu i preuzima ulogu mastera. Kako pročitani sadržaj informacije ukazuje da je komanda namenjena njemu, on izvršava komandu, generiše povorku impulsa, a zelena LED indicira generisanu povorku impulsa. Po završenoj komandi, mikrokontroler U2 vraća token mikrokontroleru U1.

Napomena: U opisu kola navedeno je da u slučaju gubljenja token-a mikrokontroler U1 posle određenog vremena generiše novi token. Ovu situaciju je moguće prikazati ukoliko skinemo kratkospajače sa konektora namenjenog proširenju kola. Ovu mogućnost navodimo u napomeni jer ne predstavlja radni režim kola.

Page 46: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

45

6.1. ALGORITAM TOKEN RING-a REALIZOVANE MAKETE I) Korak 1 Token je generisan i to treba signalizirati preko odgovarajuće LED Korak 2 Ispitivanje komande zadate prekidačima ili džamperima Korak 3 Prosleđivanje komande odgovarajućem mikrokontroleru; gasi se LED Korak 4 Skočiti na Korak 1 ukoliko je:

token vraćen od strane mikrokontrolera 2 ili 3 (posle uspešno realizovane komande) token je tokom komunikacije izgubljen i nije vraćen mikrokontroleru posle određenog

timeout-a II) Korak 1 Čekanje do trenutka kad se dobije komanda od strane mikrokontrolera 1 ili 3 Korak 2 Komanda i token su prihvaćeni i to treba signalizirati preko odgovarajuće LED Korak 3 Čitanje i izršavanje komande:

ukoliko je komanda upućena ovom mikrokontroleru, treba da je izvrši, a zatim da je prosledi u odgovarajućem smeru (napomena: token je sastavni deo komande) ukoliko je komanda nije upućena ovom mikrokontroleru, treba samo da je prosle-di u

odgovarajućem smeru Korak 4 Skočiti na Korak 1 III) Korak 1 Čekanje do trenutka kad se dobije komanda od strane mikrokontrolera 2 ili 3 Korak 2 Komanda i token su prihvaćeni i to treba signalizirati preko odgovarajuće LED Korak 3 Čitanje i izršavanje komande:

ukoliko je komanda upućena ovom mikrokontroleru, treba da je izvrši, a zatim da je prosledi u odgovarajućem smeru ukoliko je komanda nije upućena ovom mikrokontroleru, treba samo da je prosle-di u

odgovarajućem smeru Korak 4 Skočiti na Korak 1

Page 47: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

46

Merne tačke

P2 P1

Sl. 58. Merne tačke i raspored kratkospajača-prekidača Priključak napajanja na adapter

P2 (J2) P1(J1)

Sl. 59. Priključivanje kabla za napajanje

Page 48: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

47

220 V /AC Priključak na adapter

Sl. 60. Povezivanje adaptera

Page 49: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

48

6.2.LISTING KODOVA ; ADDRESS OPCODE ASM-1 ; ---------------------------------------------- $0000 $2804 GOTO _main $0004 $ _main: Konfigurisanje smera pinova Porta A $0004 $1303 BCF STATUS, RP1 $0005 $1683 BSF STATUS, RP0 $0006 $0185 CLRF TRISA, 1 Konfigurisanje smera pinova Porta B $0007 $30FC MOVLW 252 $0008 $0086 MOVWF TRISB -- Pocetno stanje Porta A je 0 $0009 $1283 BCF STATUS, RP0 $000A $0185 CLRF PORTA, 1 -- Pocetno stanje Porta B je 0 $000B $3003 MOVLW 3 $000C $0086 MOVWF PORTB $000D $ L_main_0: $000D $0185 CLRF PORTA, 1 $000E $0186 CLRF PORTB, 1 Token je prisutan i to treba signalizirati diodama $000F $1486 BSF PORTB, 1 $0010 $1406 BSF PORTB, 0 -- Uvodjenje kasnjenja $0011 $3033 MOVLW 51 $0012 $00CC MOVWF STACK_12 $0013 $30FF MOVLW 255 $0014 $00CB MOVWF STACK_11 $0015 $30FF MOVLW 255 $0016 $00CA MOVWF STACK_10 $0017 $0BCC DECFSZ STACK_12, F $0018 $281A GOTO $+2 $0019 $2821 GOTO $+8 $001A $0BCB DECFSZ STACK_11, F $001B $281D GOTO $+2 $001C $2820 GOTO $+4 $001D $0BCA DECFSZ STACK_10, F $001E $281D GOTO $-1 $001F $281A GOTO $-5 $0020 $2817 GOTO $-9 $0021 $30FD MOVLW 253 $0022 $00CB MOVWF STACK_11 $0023 $30FF MOVLW 255 $0024 $00CA MOVWF STACK_10 $0025 $0BCB DECFSZ STACK_11, F $0026 $2828 GOTO $+2 $0027 $282B GOTO $+4 $0028 $0BCA DECFSZ STACK_10, F $0029 $2828 GOTO $-1 $002A $2825 GOTO $-5 $002B $30B5 MOVLW 181 $002C $00CA MOVWF STACK_10 $002D $0BCA DECFSZ STACK_10, F $002E $282D GOTO $-1 $002F $0000 NOP $0030 $1086 BCF PORTB, 1 $0031 $1006 BCF PORTB, 0 -- Ispitivanje komande $0032 $3000 MOVLW 0 $0033 $1B06 BTFSC PORTB, 6 $0034 $3001 MOVLW 1 $0035 $00C1 MOVWF STACK_1 $0036 $0841 MOVF STACK_1, 0 $0037 $3A01 XORLW 1 $0038 $1D03 BTFSS STATUS, Z $0039 $2867 GOTO L_main_4

$003A $3000 MOVLW 0 $003B $1B86 BTFSC PORTB, 7 $003C $3001 MOVLW 1 $003D $00C1 MOVWF STACK_1 $003E $0841 MOVF STACK_1, 0 $003F $3A01 XORLW 1 $0040 $1D03 BTFSS STATUS, Z $0041 $2867 GOTO L_main_4 $0042 $ L60_ex_L_main_4: $0042 $1086 BCF PORTB, 1 $0043 $1006 BCF PORTB, 0 $0044 $1505 BSF PORTA, 2 $0045 $1585 BSF PORTA, 3 -- Uvodjenje kasnjenja $0046 $3033 MOVLW 51 $0047 $00CC MOVWF STACK_12 $0048 $30FF MOVLW 255 $0049 $00CB MOVWF STACK_11 $004A $30FF MOVLW 255 $004B $00CA MOVWF STACK_10 $004C $0BCC DECFSZ STACK_12, F $004D $284F GOTO $+2 $004E $2856 GOTO $+8 $004F $0BCB DECFSZ STACK_11, F $0050 $2852 GOTO $+2 $0051 $2855 GOTO $+4 $0052 $0BCA DECFSZ STACK_10, F $0053 $2852 GOTO $-1 $0054 $284F GOTO $-5 $0055 $284C GOTO $-9 $0056 $30FD MOVLW 253 $0057 $00CB MOVWF STACK_11 $0058 $30FF MOVLW 255 $0059 $00CA MOVWF STACK_10 $005A $0BCB DECFSZ STACK_11, F $005B $285D GOTO $+2 $005C $2860 GOTO $+4 $005D $0BCA DECFSZ STACK_10, F $005E $285D GOTO $-1 $005F $285A GOTO $-5 $0060 $30B5 MOVLW 181 $0061 $00CA MOVWF STACK_10 $0062 $0BCA DECFSZ STACK_10, F $0063 $2862 GOTO $-1 $0064 $0000 NOP $0065 $1105 BCF PORTA, 2 $0066 $1185 BCF PORTA, 3 $0067 $ L_main_4: -- Ispitivanje komande $0067 $3000 MOVLW 0 $0068 $1B06 BTFSC PORTB, 6 $0069 $3001 MOVLW 1 $006A $00C1 MOVWF STACK_1 $006B $0841 MOVF STACK_1, 0 $006C $3A01 XORLW 1 $006D $1D03 BTFSS STATUS, Z $006E $289C GOTO L_main_7 $006F $3000 MOVLW 0 $0070 $1B86 BTFSC PORTB, 7 $0071 $3001 MOVLW 1 $0072 $00C1 MOVWF STACK_1 $0073 $0841 MOVF STACK_1, 0 $0074 $3A00 XORLW 0 $0075 $1D03 BTFSS STATUS, Z $0076 $289C GOTO L_main_7 $0077 $ L117_ex_L_main_7: $0077 $1086 BCF PORTB, 1 $0078 $1006 BCF PORTB, 0 $0079 $1185 BCF PORTA, 3 $007A $1505 BSF PORTA, 2

Page 50: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

49

-- Uvodjenje kasnjenja $007B $303E MOVLW 62 $007C $00CC MOVWF STACK_12 $007D $30FF MOVLW 255 $007E $00CB MOVWF STACK_11 $007F $30FF MOVLW 255 $0080 $00CA MOVWF STACK_10 $0081 $0BCC DECFSZ STACK_12, F $0082 $2884 GOTO $+2 $0083 $288B GOTO $+8 $0084 $0BCB DECFSZ STACK_11, F $0085 $2887 GOTO $+2 $0086 $288A GOTO $+4 $0087 $0BCA DECFSZ STACK_10, F $0088 $2887 GOTO $-1 $0089 $2884 GOTO $-5 $008A $2881 GOTO $-9 $008B $3032 MOVLW 50 $008C $00CB MOVWF STACK_11 $008D $30FF MOVLW 255 $008E $00CA MOVWF STACK_10 $008F $0BCB DECFSZ STACK_11, F $0090 $2892 GOTO $+2 $0091 $2895 GOTO $+4 $0092 $0BCA DECFSZ STACK_10, F $0093 $2892 GOTO $-1 $0094 $288F GOTO $-5 $0095 $303C MOVLW 60 $0096 $00CA MOVWF STACK_10 $0097 $0BCA DECFSZ STACK_10, F $0098 $2897 GOTO $-1 $0099 $0000 NOP $009A $0000 NOP $009B $1105 BCF PORTA, 2 $009C $ L_main_7: -- Ispitivanje komande $009C $3000 MOVLW 0 $009D $1B06 BTFSC PORTB, 6 $009E $3001 MOVLW 1 $009F $00C1 MOVWF STACK_1 $00A0 $0841 MOVF STACK_1, 0 $00A1 $3A00 XORLW 0 $00A2 $1D03 BTFSS STATUS, Z $00A3 $28D1 GOTO L_main_10 $00A4 $3000 MOVLW 0 $00A5 $1B86 BTFSC PORTB, 7 $00A6 $3001 MOVLW 1 $00A7 $00C1 MOVWF STACK_1 $00A8 $0841 MOVF STACK_1, 0 $00A9 $3A01 XORLW 1 $00AA $1D03 BTFSS STATUS, Z $00AB $28D1 GOTO L_main_10 $00AC $ L174_ex_L_main_10: $00AC $1086 BCF PORTB, 1 $00AD $1006 BCF PORTB, 0 $00AE $1085 BCF PORTA, 1 $00AF $1405 BSF PORTA, 0 -- Uvodjenje kasnjenja $00B0 $303E MOVLW 62 $00B1 $00CC MOVWF STACK_12 $00B2 $30FF MOVLW 255 $00B3 $00CB MOVWF STACK_11 $00B4 $30FF MOVLW 255 $00B5 $00CA MOVWF STACK_10 $00B6 $0BCC DECFSZ STACK_12, F $00B7 $28B9 GOTO $+2 $00B8 $28C0 GOTO $+8 $00B9 $0BCB DECFSZ STACK_11, F $00BA $28BC GOTO $+2 $00BB $28BF GOTO $+4 $00BC $0BCA DECFSZ STACK_10, F

$00BD $28BC GOTO $-1 $00BE $28B9 GOTO $-5 $00BF $28B6 GOTO $-9 $00C0 $3032 MOVLW 50 $00C1 $00CB MOVWF STACK_11 $00C2 $30FF MOVLW 255 $00C3 $00CA MOVWF STACK_10 $00C4 $0BCB DECFSZ STACK_11, F $00C5 $28C7 GOTO $+2 $00C6 $28CA GOTO $+4 $00C7 $0BCA DECFSZ STACK_10, F $00C8 $28C7 GOTO $-1 $00C9 $28C4 GOTO $-5 $00CA $303C MOVLW 60 $00CB $00CA MOVWF STACK_10 $00CC $0BCA DECFSZ STACK_10, F $00CD $28CC GOTO $-1 $00CE $0000 NOP $00CF $0000 NOP $00D0 $1005 BCF PORTA, 0 $00D1 $ L_main_10: -- Ispitivanje komande $00D1 $3000 MOVLW 0 $00D2 $1B06 BTFSC PORTB, 6 $00D3 $3001 MOVLW 1 $00D4 $00C1 MOVWF STACK_1 $00D5 $0841 MOVF STACK_1, 0 $00D6 $3A00 XORLW 0 $00D7 $1D03 BTFSS STATUS, Z $00D8 $2906 GOTO L_main_13 $00D9 $3000 MOVLW 0 $00DA $1B86 BTFSC PORTB, 7 $00DB $3001 MOVLW 1 $00DC $00C1 MOVWF STACK_1 $00DD $0841 MOVF STACK_1, 0 $00DE $3A00 XORLW 0 $00DF $1D03 BTFSS STATUS, Z $00E0 $2906 GOTO L_main_13 $00E1 $ L231_ex_L_main_13: $00E1 $1086 BCF PORTB, 1 $00E2 $1006 BCF PORTB, 0 $00E3 $1485 BSF PORTA, 1 $00E4 $1405 BSF PORTA, 0 -- Uvodjenje kasnjenja $00E5 $3033 MOVLW 51 $00E6 $00CC MOVWF STACK_12 $00E7 $30FF MOVLW 255 $00E8 $00CB MOVWF STACK_11 $00E9 $30FF MOVLW 255 $00EA $00CA MOVWF STACK_10 $00EB $0BCC DECFSZ STACK_12, F $00EC $28EE GOTO $+2 $00ED $28F5 GOTO $+8 $00EE $0BCB DECFSZ STACK_11, F $00EF $28F1 GOTO $+2 $00F0 $28F4 GOTO $+4 $00F1 $0BCA DECFSZ STACK_10, F $00F2 $28F1 GOTO $-1 $00F3 $28EE GOTO $-5 $00F4 $28EB GOTO $-9 $00F5 $30FD MOVLW 253 $00F6 $00CB MOVWF STACK_11 $00F7 $30FF MOVLW 255 $00F8 $00CA MOVWF STACK_10 $00F9 $0BCB DECFSZ STACK_11, F $00FA $28FC GOTO $+2 $00FB $28FF GOTO $+4 $00FC $0BCA DECFSZ STACK_10, F $00FD $28FC GOTO $-1 $00FE $28F9 GOTO $-5 $00FF $30B5 MOVLW 181

Page 51: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

50

$0100 $00CA MOVWF STACK_10 $0101 $0BCA DECFSZ STACK_10, F $0102 $2901 GOTO $-1 $0103 $0000 NOP $0104 $1085 BCF PORTA, 1 $0105 $1005 BCF PORTA, 0 $0106 $ L_main_13: -- Rep beskonacne petlje $0106 $280D GOTO L_main_0 $0107 $2907 GOTO $ ; ADDRESS OPCODE ASM-2 ; ---------------------------------------------- $0000 $2804 GOTO _main $0004 $ _main: Konfigurisanje smera pinova Porta A $0004 $30C0 MOVLW 192 $0005 $1303 BCF STATUS, RP1 $0006 $1683 BSF STATUS, RP0 $0007 $0085 MOVWF TRISA Konfigurisanje smera pinova Porta B $0008 $30FC MOVLW 252 $0009 $0086 MOVWF TRISB -- Pocetno stanje Porta A je 0 $000A $1283 BCF STATUS, RP0 $000B $0185 CLRF PORTA, 1 -- Pocetno stanje Porta B je 0 $000C $0186 CLRF PORTB, 1 $000D $ L_main_0: $000D $3019 MOVLW 25 $000E $008C MOVWF main_i_L0 $000F $3000 MOVLW 0 $0010 $008D MOVWF main_i_L0+1 -- Uvodjenje kasnjenja $0011 $3082 MOVLW 130 $0012 $00CB MOVWF STACK_11 $0013 $30FF MOVLW 255 $0014 $00CA MOVWF STACK_10 $0015 $0BCB DECFSZ STACK_11, F $0016 $2818 GOTO $+2 $0017 $281B GOTO $+4 $0018 $0BCA DECFSZ STACK_10, F $0019 $2818 GOTO $-1 $001A $2815 GOTO $-5 $001B $3087 MOVLW 135 $001C $00CA MOVWF STACK_10 $001D $0BCA DECFSZ STACK_10, F $001E $281D GOTO $-1 $001F $0000 NOP -- Pocetno stanje Porta B je 0 $0020 $0186 CLRF PORTB, 1 -- Ispitivanje komande $0021 $3000 MOVLW 0 $0022 $1A86 BTFSC PORTB, 5 $0023 $3001 MOVLW 1 $0024 $00C1 MOVWF STACK_1 $0025 $0841 MOVF STACK_1, 0 $0026 $3A00 XORLW 0 $0027 $1D03 BTFSS STATUS, Z $0028 $2833 GOTO L_main_4 $0029 $3000 MOVLW 0 $002A $1A06 BTFSC PORTB, 4 $002B $3001 MOVLW 1 $002C $00C1 MOVWF STACK_1

$002D $0841 MOVF STACK_1, 0 $002E $3A00 XORLW 0 $002F $1D03 BTFSS STATUS, Z $0030 $2833 GOTO L_main_4 $0031 $ L40_ex_L_main_4: $0031 $1006 BCF PORTB, 0 $0032 $1086 BCF PORTB, 1 $0033 $ L_main_4: -- Ispitivanje komande $0033 $ L_main_5: $0033 $3080 MOVLW 128 $0034 $00C0 MOVWF STACK_0 $0035 $3080 MOVLW 128 $0036 $060D XORWF main_i_L0+1, 0 $0037 $0240 SUBWF STACK_0, 0 $0038 $1D03 BTFSS STATUS, Z $0039 $283C GOTO L_main_15 $003A $080C MOVF main_i_L0, 0 $003B $3C00 SUBLW 0 $003C $ L_main_15: $003C $1803 BTFSC STATUS, C $003D $2894 GOTO L_main_6 $003E $3000 MOVLW 0 $003F $1A86 BTFSC PORTB, 5 $0040 $3001 MOVLW 1 $0041 $00C1 MOVWF STACK_1 $0042 $0841 MOVF STACK_1, 0 $0043 $3A01 XORLW 1 $0044 $1D03 BTFSS STATUS, Z $0045 $2894 GOTO L_main_6 $0046 $3000 MOVLW 0 $0047 $1A06 BTFSC PORTB, 4 $0048 $3001 MOVLW 1 $0049 $00C1 MOVWF STACK_1 $004A $0841 MOVF STACK_1, 0 $004B $3A01 XORLW 1 $004C $1D03 BTFSS STATUS, Z $004D $2894 GOTO L_main_6 $004E $ L65_ex_L_main_6: $004E $1406 BSF PORTB, 0 $004F $1486 BSF PORTB, 1 -- Uvodjenje kasnjenja $0050 $3002 MOVLW 2 $0051 $00CC MOVWF STACK_12 $0052 $30FF MOVLW 255 $0053 $00CB MOVWF STACK_11 $0054 $30FF MOVLW 255 $0055 $00CA MOVWF STACK_10 $0056 $0BCC DECFSZ STACK_12, F $0057 $2859 GOTO $+2 $0058 $2860 GOTO $+8 $0059 $0BCB DECFSZ STACK_11, F $005A $285C GOTO $+2 $005B $285F GOTO $+4 $005C $0BCA DECFSZ STACK_10, F $005D $285C GOTO $-1 $005E $2859 GOTO $-5 $005F $2856 GOTO $-9 $0060 $3006 MOVLW 6 $0061 $00CB MOVWF STACK_11 $0062 $30FF MOVLW 255 $0063 $00CA MOVWF STACK_10 $0064 $0BCB DECFSZ STACK_11, F $0065 $2867 GOTO $+2 $0066 $286A GOTO $+4 $0067 $0BCA DECFSZ STACK_10, F $0068 $2867 GOTO $-1 $0069 $2864 GOTO $-5 $006A $300A MOVLW 10 $006B $00CA MOVWF STACK_10

Page 52: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

51

$006C $0BCA DECFSZ STACK_10, F $006D $286C GOTO $-1 $006E $1086 BCF PORTB, 1 $006F $1406 BSF PORTB, 0 -- Uvodjenje kasnjenja $0070 $00C1 MOVLW 2 $0071 $00CC MOVWF STACK_12 $0072 $30FF MOVLW 255 $0073 $00CB MOVWF STACK_11 $0074 $30FF MOVLW 255 $0075 $00CA MOVWF STACK_10 $0076 $0BCC DECFSZ STACK_12, F $0077 $2879 GOTO $+2 $0078 $2880 GOTO $+8 $0079 $0BCB DECFSZ STACK_11, F $007A $287C GOTO $+2 $007B $287F GOTO $+4 $007C $0BCA DECFSZ STACK_10, F $007D $287C GOTO $-1 $007E $2879 GOTO $-5 $007F $2876 GOTO $-9 $0080 $3006 MOVLW 6 $0081 $00CB MOVWF STACK_11 $0082 $30FF MOVLW 255 $0083 $00CA MOVWF STACK_10 $0084 $0BCB DECFSZ STACK_11, F $0085 $2887 GOTO $+2 $0086 $288A GOTO $+4 $0087 $0BCA DECFSZ STACK_10, F $0088 $2887 GOTO $-1 $0089 $2884 GOTO $-5 $008A $300A MOVLW 10 $008B $00CA MOVWF STACK_10 $008C $0BCA DECFSZ STACK_10, F $008D $288C GOTO $-1 $008E $1006 BCF PORTB, 0 $008F $3001 MOVLW 1 $0090 $028C SUBWF main_i_L0, 1 $0091 $1C03 BTFSS STATUS, C $0092 $038D DECF main_i_L0+1, 1 $0093 $2833 GOTO L_main_5 $0094 $ L_main_6: -- Ispitivanje komande $0094 $3000 MOVLW 0 $0095 $1906 BTFSC PORTB, 2 $0096 $3001 MOVLW 1 $0097 $00C1 MOVWF STACK_1 $0098 $0841 MOVF STACK_1, 0 $0099 $3A00 XORLW 0 $009A $1D03 BTFSS STATUS, Z $009B $2A28 GOTO L_main_11 $009C $3000 MOVLW 0 $009D $1986 BTFSC PORTB, 3 $009E $3001 MOVLW 1 $009F $00C1 MOVWF STACK_1 $00A0 $0841 MOVF STACK_1, 0 $00A1 $3A01 XORLW 1 $00A2 $1D03 BTFSS STATUS, Z $00A3 $2A28 GOTO L_main_11 $00A4 $ L153_ex_L_main_11: $00A4 $1486 BSF PORTB, 1 $00A5 $1406 BSF PORTB, 0 -- Uvodjenje kasnjenja $00A6 $300D MOVLW 13 $00A7 $00CC MOVWF STACK_12 $00A8 $30FF MOVLW 255 $00A9 $00CB MOVWF STACK_11 $00AA $30FF MOVLW 255 $00AB $00CA MOVWF STACK_10 $00AC $0BCC DECFSZ STACK_12, F

$00AD $28AF GOTO $+2 $00AE $28B6 GOTO $+8 $00AF $0BCB DECFSZ STACK_11, F $00B0 $28B2 GOTO $+2 $00B1 $28B5 GOTO $+4 $00B2 $0BCA DECFSZ STACK_10, F $00B3 $28B2 GOTO $-1 $00B4 $28AF GOTO $-5 $00B5 $28AC GOTO $-9 $00B6 $30BF MOVLW 191 $00B7 $00CB MOVWF STACK_11 $00B8 $30FF MOVLW 255 $00B9 $00CA MOVWF STACK_10 $00BA $0BCB DECFSZ STACK_11, F $00BB $28BD GOTO $+2 $00BC $28C0 GOTO $+4 $00BD $0BCA DECFSZ STACK_10, F $00BE $28BD GOTO $-1 $00BF $28BA GOTO $-5 $00C0 $302C MOVLW 44 $00C1 $00CA MOVWF STACK_10 $00C2 $0BCA DECFSZ STACK_10, F $00C3 $28C2 GOTO $-1 $00C4 $1086 BCF PORTB, 1 -- Uvodjenje kasnjenja $00C5 $3003 MOVLW 3 $00C6 $00CC MOVWF STACK_12 $00C7 $30FF MOVLW 255 $00C8 $00CB MOVWF STACK_11 $00C9 $30FF MOVLW 255 $00CA $00CA MOVWF STACK_10 $00CB $0BCC DECFSZ STACK_12, F $00CC $28CE GOTO $+2 $00CD $28D5 GOTO $+8 $00CE $0BCB DECFSZ STACK_11, F $00CF $28D1 GOTO $+2 $00D0 $28D4 GOTO $+4 $00D1 $0BCA DECFSZ STACK_10, F $00D2 $28D1 GOTO $-1 $00D3 $28CE GOTO $-5 $00D4 $28CB GOTO $-9 $00D5 $308C MOVLW 140 $00D6 $00CB MOVWF STACK_11 $00D7 $30FF MOVLW 255 $00D8 $00CA MOVWF STACK_10 $00D9 $0BCB DECFSZ STACK_11, F $00DA $28DC GOTO $+2 $00DB $28DF GOTO $+4 $00DC $0BCA DECFSZ STACK_10, F $00DD $28DC GOTO $-1 $00DE $28D9 GOTO $-5 $00DF $30A1 MOVLW 161 $00E0 $00CA MOVWF STACK_10 $00E1 $0BCA DECFSZ STACK_10, F $00E2 $28E1 GOTO $-1 $00E3 $0000 NOP $00E4 $1486 BSF PORTB, 1 -- Uvodjenje kasnjenja $00E5 $3003 MOVLW 3 $00E6 $00CC MOVWF STACK_12 $00E7 $30FF MOVLW 255 $00E8 $00CB MOVWF STACK_11 $00E9 $30FF MOVLW 255 $00EA $00CA MOVWF STACK_10 $00EB $0BCC DECFSZ STACK_12, F $00EC $28EE GOTO $+2 $00ED $28F5 GOTO $+8 $00EE $0BCB DECFSZ STACK_11, F $00EF $28F1 GOTO $+2 $00F0 $28F4 GOTO $+4 $00F1 $0BCA DECFSZ STACK_10, F

Page 53: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

52

$00F2 $28F1 GOTO $-1 $00F3 $28EE GOTO $-5 $00F4 $28EB GOTO $-9 $00F5 $308C MOVLW 140 $00F6 $00CB MOVWF STACK_11 $00F7 $30FF MOVLW 255 $00F8 $00CA MOVWF STACK_10 $00F9 $0BCB DECFSZ STACK_11, F $00FA $28FC GOTO $+2 $00FB $28FF GOTO $+4 $00FC $0BCA DECFSZ STACK_10, F $00FD $28FC GOTO $-1 $00FE $28F9 GOTO $-5 $00FF $30A1 MOVLW 161 $0100 $00CA MOVWF STACK_10 $0101 $0BCA DECFSZ STACK_10, F $0102 $2901 GOTO $-1 $0103 $0000 NOP $0104 $1086 BCF PORTB, 1 -- Uvodjenje kasnjenja $0105 $3003 MOVLW 3 $0106 $00CC MOVWF STACK_12 $0107 $30FF MOVLW 255 $0108 $00CB MOVWF STACK_11 $0109 $30FF MOVLW 255 $010A $00CA MOVWF STACK_10 $010B $0BCC DECFSZ STACK_12, F $010C $290E GOTO $+2 $010D $2915 GOTO $+8 $010E $0BCB DECFSZ STACK_11, F $010F $2911 GOTO $+2 $0110 $2914 GOTO $+4 $0111 $0BCA DECFSZ STACK_10, F $0112 $2911 GOTO $-1 $0113 $290E GOTO $-5 $0114 $290B GOTO $-9 $0115 $308C MOVLW 140 $0116 $00CB MOVWF STACK_11 $0117 $30FF MOVLW 255 $0118 $00CA MOVWF STACK_10 $0119 $0BCB DECFSZ STACK_11, F $011A $291C GOTO $+2 $011B $291F GOTO $+4 $011C $0BCA DECFSZ STACK_10, F $011D $291C GOTO $-1 $011E $2919 GOTO $-5 $011F $30A1 MOVLW 161 $0120 $00CA MOVWF STACK_10 $0121 $0BCA DECFSZ STACK_10, F $0122 $2921 GOTO $-1 $0123 $0000 NOP $0124 $1486 BSF PORTB, 1 -- Uvodjenje kasnjenja $0125 $3003 MOVLW 3 $0126 $00CC MOVWF STACK_12 $0127 $30FF MOVLW 255 $0128 $00CB MOVWF STACK_11 $0129 $30FF MOVLW 255 $012A $00CA MOVWF STACK_10 $012B $0BCC DECFSZ STACK_12, F $012C $292E GOTO $+2 $012D $2935 GOTO $+8 $012E $0BCB DECFSZ STACK_11, F $012F $2931 GOTO $+2 $0130 $2934 GOTO $+4 $0131 $0BCA DECFSZ STACK_10, F $0132 $2931 GOTO $-1 $0133 $292E GOTO $-5 $0134 $292B GOTO $-9 $0135 $308C MOVLW 140 $0136 $00CB MOVWF STACK_11

$0137 $30FF MOVLW 255 $0138 $00CA MOVWF STACK_10 $0139 $0BCB DECFSZ STACK_11, F $013A $293C GOTO $+2 $013B $293F GOTO $+4 $013C $0BCA DECFSZ STACK_10, F $013D $293C GOTO $-1 $013E $2939 GOTO $-5 $013F $30A1 MOVLW 161 $0140 $00CA MOVWF STACK_10 $0141 $0BCA DECFSZ STACK_10, F $0142 $2941 GOTO $-1 $0143 $0000 NOP $0144 $1086 BCF PORTB, 1 -- Uvodjenje kasnjenja $0145 $3003 MOVLW 3 $0146 $00CC MOVWF STACK_12 $0147 $30FF MOVLW 255 $0148 $00CB MOVWF STACK_11 $0149 $30FF MOVLW 255 $014A $00CA MOVWF STACK_10 $014B $0BCC DECFSZ STACK_12, F $014C $294E GOTO $+2 $014D $2955 GOTO $+8 $014E $0BCB DECFSZ STACK_11, F $014F $2951 GOTO $+2 $0150 $2954 GOTO $+4 $0151 $0BCA DECFSZ STACK_10, F $0152 $2951 GOTO $-1 $0153 $294E GOTO $-5 $0154 $294B GOTO $-9 $0155 $308C MOVLW 140 $0156 $00CB MOVWF STACK_11 $0157 $30FF MOVLW 255 $0158 $00CA MOVWF STACK_10 $0159 $0BCB DECFSZ STACK_11, F $015A $295C GOTO $+2 $015B $295F GOTO $+4 $015C $0BCA DECFSZ STACK_10, F $015D $295C GOTO $-1 $015E $2959 GOTO $-5 $015F $30A1 MOVLW 161 $0160 $00CA MOVWF STACK_10 $0161 $0BCA DECFSZ STACK_10, F $0162 $2961 GOTO $-1 $0163 $0000 NOP $0164 $1486 BSF PORTB, 1 -- Uvodjenje kasnjenja $0165 $3003 MOVLW 3 $0166 $00CC MOVWF STACK_12 $0167 $30FF MOVLW 255 $0168 $00CB MOVWF STACK_11 $0169 $30FF MOVLW 255 $016A $00CA MOVWF STACK_10 $016B $0BCC DECFSZ STACK_12, F $016C $296E GOTO $+2 $016D $2975 GOTO $+8 $016E $0BCB DECFSZ STACK_11, F $016F $2971 GOTO $+2 $0170 $2974 GOTO $+4 $0171 $0BCA DECFSZ STACK_10, F $0172 $2971 GOTO $-1 $0173 $296E GOTO $-5 $0174 $296B GOTO $-9 $0175 $308C MOVLW 140 $0176 $00CB MOVWF STACK_11 $0177 $30FF MOVLW 255 $0178 $00CA MOVWF STACK_10 $0179 $0BCB DECFSZ STACK_11, F $017A $297C GOTO $+2 $017B $297F GOTO $+4

Page 54: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

53

$017C $0BCA DECFSZ STACK_10, F $017D $297C GOTO $-1 $017E $2979 GOTO $-5 $017F $30A1 MOVLW 161 $0180 $00CA MOVWF STACK_10 $0181 $0BCA DECFSZ STACK_10, F $0182 $2981 GOTO $-1 $0183 $0000 NOP $0184 $1086 BCF PORTB, 1 -- Uvodjenje kasnjenja $0185 $3003 MOVLW 3 $0186 $00CC MOVWF STACK_12 $0187 $30FF MOVLW 255 $0188 $00CB MOVWF STACK_11 $0189 $30FF MOVLW 255 $018A $00CA MOVWF STACK_10 $018B $0BCC DECFSZ STACK_12, F $018C $298E GOTO $+2 $018D $2995 GOTO $+8 $018E $0BCB DECFSZ STACK_11, F $018F $2991 GOTO $+2 $0190 $2994 GOTO $+4 $0191 $0BCA DECFSZ STACK_10, F $0192 $2991 GOTO $-1 $0193 $298E GOTO $-5 $0194 $298B GOTO $-9 $0195 $308C MOVLW 140 $0196 $00CB MOVWF STACK_11 $0197 $30FF MOVLW 255 $0198 $00CA MOVWF STACK_10 $0199 $0BCB DECFSZ STACK_11, F $019A $299C GOTO $+2 $019B $299F GOTO $+4 $019C $0BCA DECFSZ STACK_10, F $019D $299C GOTO $-1 $019E $2999 GOTO $-5 $019F $30A1 MOVLW 161 $01A0 $00CA MOVWF STACK_10 $01A1 $0BCA DECFSZ STACK_10, F $01A2 $29A1 GOTO $-1 $01A3 $0000 NOP $01A4 $1486 BSF PORTB, 1 -- Uvodjenje kasnjenja $01A5 $3003 MOVLW 3 $01A6 $00CC MOVWF STACK_12 $01A7 $30FF MOVLW 255 $01A8 $00CB MOVWF STACK_11 $01A9 $30FF MOVLW 255 $01AA $00CA MOVWF STACK_10 $01AB $0BCC DECFSZ STACK_12, F $01AC $29AE GOTO $+2 $01AD $29B5 GOTO $+8 $01AE $0BCB DECFSZ STACK_11, F $01AF $29B1 GOTO $+2 $01B0 $29B4 GOTO $+4 $01B1 $0BCA DECFSZ STACK_10, F $01B2 $29B1 GOTO $-1 $01B3 $29AE GOTO $-5 $01B4 $29AB GOTO $-9 $01B5 $308C MOVLW 140 $01B6 $00CB MOVWF STACK_11 $01B7 $30FF MOVLW 255 $01B8 $00CA MOVWF STACK_10 $01B9 $0BCB DECFSZ STACK_11, F $01BA $29BC GOTO $+2 $01BB $29BF GOTO $+4 $01BC $0BCA DECFSZ STACK_10, F $01BD $29BC GOTO $-1 $01BE $29B9 GOTO $-5 $01BF $30A1 MOVLW 161 $01C0 $00CA MOVWF STACK_10

$01C1 $0BCA DECFSZ STACK_10, F $01C2 $29C1 GOTO $-1 $01C3 $0000 NOP $01C4 $1086 BCF PORTB, 1 -- Uvodjenje kasnjenja $01C5 $3003 MOVLW 3 $01C6 $00CC MOVWF STACK_12 $01C7 $30FF MOVLW 255 $01C8 $00CB MOVWF STACK_11 $01C9 $30FF MOVLW 255 $01CA $00CA MOVWF STACK_10 $01CB $0BCC DECFSZ STACK_12, F $01CC $29CE GOTO $+2 $01CD $29D5 GOTO $+8 $01CE $0BCB DECFSZ STACK_11, F $01CF $29D1 GOTO $+2 $01D0 $29D4 GOTO $+4 $01D1 $0BCA DECFSZ STACK_10, F $01D2 $29D1 GOTO $-1 $01D3 $29CE GOTO $-5 $01D4 $29CB GOTO $-9 $01D5 $308C MOVLW 140 $01D6 $00CB MOVWF STACK_11 $01D7 $30FF MOVLW 255 $01D8 $00CA MOVWF STACK_10 $01D9 $0BCB DECFSZ STACK_11, F $01DA $29DC GOTO $+2 $01DB $29DF GOTO $+4 $01DC $0BCA DECFSZ STACK_10, F $01DD $29DC GOTO $-1 $01DE $29D9 GOTO $-5 $01DF $30A1 MOVLW 161 $01E0 $00CA MOVWF STACK_10 $01E1 $0BCA DECFSZ STACK_10, F $01E2 $29E1 GOTO $-1 $01E3 $0000 NOP $01E4 $1486 BSF PORTB, 1 -- Uvodjenje kasnjenja $01E5 $3003 MOVLW 3 $01E6 $00CC MOVWF STACK_12 $01E7 $30FF MOVLW 255 $01E8 $00CB MOVWF STACK_11 $01E9 $30FF MOVLW 255 $01EA $00CA MOVWF STACK_10 $01EB $0BCC DECFSZ STACK_12, F $01EC $29EE GOTO $+2 $01ED $29F5 GOTO $+8 $01EE $0BCB DECFSZ STACK_11, F $01EF $29F1 GOTO $+2 $01F0 $29F4 GOTO $+4 $01F1 $0BCA DECFSZ STACK_10, F $01F2 $29F1 GOTO $-1 $01F3 $29EE GOTO $-5 $01F4 $29EB GOTO $-9 $01F5 $308C MOVLW 140 $01F6 $00CB MOVWF STACK_11 $01F7 $30FF MOVLW 255 $01F8 $00CA MOVWF STACK_10 $01F9 $0BCB DECFSZ STACK_11, F $01FA $29FC GOTO $+2 $01FB $29FF GOTO $+4 $01FC $0BCA DECFSZ STACK_10, F $01FD $29FC GOTO $-1 $01FE $29F9 GOTO $-5 $01FF $30A1 MOVLW 161 $0200 $00CA MOVWF STACK_10 $0201 $0BCA DECFSZ STACK_10, F $0202 $2A01 GOTO $-1 $0203 $0000 NOP $0204 $1086 BCF PORTB, 1

Page 55: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

54

-- Uvodjenje kasnjenja $0205 $300D MOVLW 13 $0206 $00CC MOVWF STACK_12 $0207 $30FF MOVLW 255 $0208 $00CB MOVWF STACK_11 $0209 $30FF MOVLW 255 $020A $00CA MOVWF STACK_10 $020B $0BCC DECFSZ STACK_12, F $020C $2A0E GOTO $+2 $020D $2A15 GOTO $+8 $020E $0BCB DECFSZ STACK_11, F $020F $2A11 GOTO $+2 $0210 $2A14 GOTO $+4 $0211 $0BCA DECFSZ STACK_10, F $0212 $2A11 GOTO $-1 $0213 $2A0E GOTO $-5 $0214 $2A0B GOTO $-9 $0215 $30BF MOVLW 191 $0216 $00CB MOVWF STACK_11 $0217 $30FF MOVLW 255 $0218 $00CA MOVWF STACK_10 $0219 $0BCB DECFSZ STACK_11, F $021A $2A1C GOTO $+2 $021B $2A1F GOTO $+4 $021C $0BCA DECFSZ STACK_10, F $021D $2A1C GOTO $-1 $021E $2A19 GOTO $-5 $021F $302C MOVLW 44 $0220 $00CA MOVWF STACK_10 $0221 $0BCA DECFSZ STACK_10, F $0222 $2A21 GOTO $-1 $0223 $1006 BCF PORTB, 0 $0224 $3001 MOVLW 1 $0225 $028C SUBWF main_i_L0, 1 $0226 $1C03 BTFSS STATUS, C $0227 $038D DECF main_i_L0+1, 1 $0228 $ L_main_11: -- Ispitivanje komande $0228 $3000 MOVLW 0 $0229 $1A86 BTFSC PORTB, 5 $022A $3001 MOVLW 1 $022B $00C1 MOVWF STACK_1 $022C $0841 MOVF STACK_1, 0 $022D $3A01 XORLW 1 $022E $1D03 BTFSS STATUS, Z $022F $2A7B GOTO L_main_14 $0230 $3000 MOVLW 0 $0231 $1A06 BTFSC PORTB, 4 $0232 $3001 MOVLW 1 $0233 $00C1 MOVWF STACK_1 $0234 $0841 MOVF STACK_1, 0 $0235 $3A00 XORLW 0 $0236 $1D03 BTFSS STATUS, Z $0237 $2A7B GOTO L_main_14 $0238 $ L559_ex_L_main_14: $0238 $1406 BSF PORTB, 0 -- Uvodjenje kasnjenja $0239 $300B MOVLW 11 $023A $00CC MOVWF STACK_12 $023B $30FF MOVLW 255 $023C $00CB MOVWF STACK_11 $023D $30FF MOVLW 255 $023E $00CA MOVWF STACK_10 $023F $0BCC DECFSZ STACK_12, F $0240 $2A42 GOTO $+2 $0241 $2A49 GOTO $+8 $0242 $0BCB DECFSZ STACK_11, F $0243 $2A45 GOTO $+2 $0244 $2A48 GOTO $+4 $0245 $0BCA DECFSZ STACK_10, F

$0246 $2A45 GOTO $-1 $0247 $2A42 GOTO $-5 $0248 $2A3F GOTO $-9 $0249 $3033 MOVLW 51 $024A $00CB MOVWF STACK_11 $024B $30FF MOVLW 255 $024C $00CA MOVWF STACK_10 $024D $0BCB DECFSZ STACK_11, F $024E $2A50 GOTO $+2 $024F $2A53 GOTO $+4 $0250 $0BCA DECFSZ STACK_10, F $0251 $2A50 GOTO $-1 $0252 $2A4D GOTO $-5 $0253 $3088 MOVLW 136 $0254 $00CA MOVWF STACK_10 $0255 $0BCA DECFSZ STACK_10, F $0256 $2A55 GOTO $-1 $0257 $1006 BCF PORTB, 0 $0258 $1505 BSF PORTA, 2 $0259 $1185 BCF PORTA, 3 -- Uvodjenje kasnjenja $025A $3033 MOVLW 51 $025B $00CC MOVWF STACK_12 $025C $30FF MOVLW 255 $025D $00CB MOVWF STACK_11 $025E $30FF MOVLW 255 $025F $00CA MOVWF STACK_10 $0260 $0BCC DECFSZ STACK_12, F $0261 $2A63 GOTO $+2 $0262 $2A6A GOTO $+8 $0263 $0BCB DECFSZ STACK_11, F $0264 $2A66 GOTO $+2 $0265 $2A69 GOTO $+4 $0266 $0BCA DECFSZ STACK_10, F $0267 $2A66 GOTO $-1 $0268 $2A63 GOTO $-5 $0269 $2A60 GOTO $-9 $026A $30FD MOVLW 253 $026B $00CB MOVWF STACK_11 $026C $30FF MOVLW 255 $026D $00CA MOVWF STACK_10 $026E $0BCB DECFSZ STACK_11, F $026F $2A71 GOTO $+2 $0270 $2A74 GOTO $+4 $0271 $0BCA DECFSZ STACK_10, F $0272 $2A71 GOTO $-1 $0273 $2A6E GOTO $-5 $0274 $30B5 MOVLW 181 $0275 $00CA MOVWF STACK_10 $0276 $0BCA DECFSZ STACK_10, F $0277 $2A76 GOTO $-1 $0278 $0000 NOP $0279 $1105 BCF PORTA, 2 $027A $1185 BCF PORTA, 3 -- Rep beskonacne petlje $027B $ L_main_14: $027B $280D GOTO L_main_0 $027C $2A7C GOTO $

Page 56: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

55

; ADDRESS OPCODE ASM-3 ; ---------------------------------------------- $0000 $2804 GOTO _main $0004 $ _main: Konfigurisanje smera pinova Porta A $0004 $1303 BCF STATUS, RP1 $0005 $1683 BSF STATUS, RP0 $0006 $0185 CLRF TRISA, 1 Konfigurisanje smera pinova Porta B $0007 $30FC MOVLW 252 $0008 $0086 MOVWF TRISB -- Pocetno stanje Porta A je 0 $0009 $1283 BCF STATUS, RP0 $000A $0185 CLRF PORTA, 1 -- Pocetno stanje Porta B je 0 $000B $0186 CLRF PORTB, 1 $000C $ L_main_0: -- Uvodjenje kasnjenja $000C $3082 MOVLW 130 $000D $00CB MOVWF STACK_11 $000E $30FF MOVLW 255 $000F $00CA MOVWF STACK_10 $0010 $0BCB DECFSZ STACK_11, F $0011 $2813 GOTO $+2 $0012 $2816 GOTO $+4 $0013 $0BCA DECFSZ STACK_10, F $0014 $2813 GOTO $-1 $0015 $2810 GOTO $-5 $0016 $3087 MOVLW 135 $0017 $00CA MOVWF STACK_10 $0018 $0BCA DECFSZ STACK_10, F $0019 $2818 GOTO $-1 $001A $0000 NOP $001B $3019 MOVLW 25 $001C $008C MOVWF _i $001D $3000 MOVLW 0 $001E $008D MOVWF _i+1 -- Ispitivanje komande $001F $ L_main_2: $001F $3080 MOVLW 128 $0020 $00C0 MOVWF STACK_0 $0021 $3080 MOVLW 128 $0022 $060D XORWF _i+1, 0 $0023 $0240 SUBWF STACK_0, 0 $0024 $1D03 BTFSS STATUS, Z $0025 $2828 GOTO L_main_12 $0026 $080C MOVF _i, 0 $0027 $3C00 SUBLW 0 $0028 $ L_main_12: $0028 $1803 BTFSC STATUS, C $0029 $2872 GOTO L_main_3 $002A $3000 MOVLW 0 $002B $1906 BTFSC PORTB, 2 $002C $3001 MOVLW 1 $002D $00C1 MOVWF STACK_1 $002E $0841 MOVF STACK_1, 0 $002F $3A01 XORLW 1 $0030 $1D03 BTFSS STATUS, Z $0031 $2872 GOTO L_main_3 $0032 $3000 MOVLW 0 $0033 $1986 BTFSC PORTB, 3 $0034 $3001 MOVLW 1 $0035 $00C1 MOVWF STACK_1 $0036 $0841 MOVF STACK_1, 0 $0037 $3A01 XORLW 1 $0038 $1D03 BTFSS STATUS, Z $0039 $2872 GOTO L_main_3 $003A $ L42_ex_L_main_3: $003A $1406 BSF PORTB, 0 $003B $1486 BSF PORTB, 1

-- Uvodjenje kasnjenja $003C $3082 MOVLW 130 $003D $00CB MOVWF STACK_11 $003E $30FF MOVLW 255 $003F $00CA MOVWF STACK_10 $0040 $0BCB DECFSZ STACK_11, F $0041 $2843 GOTO $+2 $0042 $2846 GOTO $+4 $0043 $0BCA DECFSZ STACK_10, F $0044 $2843 GOTO $-1 $0045 $2840 GOTO $-5 $0046 $3087 MOVLW 135 $0047 $00CA MOVWF STACK_10 $0048 $0BCA DECFSZ STACK_10, F $0049 $2848 GOTO $-1 $004A $0000 NOP $004B $1086 BCF PORTB, 1 $004C $1406 BSF PORTB, 0 -- Uvodjenje kasnjenja $004D $3002 MOVLW 2 $004E $00CC MOVWF STACK_12 $004F $30FF MOVLW 255 $0050 $00CB MOVWF STACK_11 $0051 $30FF MOVLW 255 $0052 $00CA MOVWF STACK_10 $0053 $0BCC DECFSZ STACK_12, F $0054 $2856 GOTO $+2 $0055 $285D GOTO $+8 $0056 $0BCB DECFSZ STACK_11, F $0057 $2859 GOTO $+2 $0058 $285C GOTO $+4 $0059 $0BCA DECFSZ STACK_10, F $005A $2859 GOTO $-1 $005B $2856 GOTO $-5 $005C $2853 GOTO $-9 $005D $3087 MOVLW 135 $005E $00CB MOVWF STACK_11 $005F $30FF MOVLW 255 $0060 $00CA MOVWF STACK_10 $0061 $0BCB DECFSZ STACK_11, F $0062 $2864 GOTO $+2 $0063 $2867 GOTO $+4 $0064 $0BCA DECFSZ STACK_10, F $0065 $2864 GOTO $-1 $0066 $2861 GOTO $-5 $0067 $3093 MOVLW 147 $0068 $00CA MOVWF STACK_10 $0069 $0BCA DECFSZ STACK_10, F $006A $2869 GOTO $-1 $006B $0000 NOP $006C $1006 BCF PORTB, 0 $006D $3001 MOVLW 1 $006E $028C SUBWF _i, 1 $006F $1C03 BTFSS STATUS, C $0070 $038D DECF _i+1, 1 $0071 $281F GOTO L_main_2 $0072 $ L_main_3: -- Ispitivanje komande $0072 $3000 MOVLW 0 $0073 $1A86 BTFSC PORTB, 5 $0074 $3001 MOVLW 1 $0075 $00C1 MOVWF STACK_1 $0076 $0841 MOVF STACK_1, 0 $0077 $3A01 XORLW 1 $0078 $1D03 BTFSS STATUS, Z $0079 $2A04 GOTO L_main_8 $007A $3000 MOVLW 0 $007B $1A06 BTFSC PORTB, 4 $007C $3001 MOVLW 1 $007D $00C1 MOVWF STACK_1 $007E $0841 MOVF STACK_1, 0

Page 57: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

56

$007F $3A00 XORLW 0 $0080 $1D03 BTFSS STATUS, Z $0081 $2A04 GOTO L_main_8 $0082 $ L116_ex_L_main_8: $0082 $1486 BSF PORTB, 1 $0083 $1406 BSF PORTB, 0 -- Uvodjenje kasnjenja $0084 $3006 MOVLW 6 $0085 $00CC MOVWF STACK_12 $0086 $30FF MOVLW 255 $0087 $00CB MOVWF STACK_11 $0088 $30FF MOVLW 255 $0089 $00CA MOVWF STACK_10 $008A $0BCC DECFSZ STACK_12, F $008B $288D GOTO $+2 $008C $2894 GOTO $+8 $008D $0BCB DECFSZ STACK_11, F $008E $2890 GOTO $+2 $008F $2893 GOTO $+4 $0090 $0BCA DECFSZ STACK_10, F $0091 $2890 GOTO $-1 $0092 $288D GOTO $-5 $0093 $288A GOTO $-9 $0094 $301A MOVLW 26 $0095 $00CB MOVWF STACK_11 $0096 $30FF MOVLW 255 $0097 $00CA MOVWF STACK_10 $0098 $0BCB DECFSZ STACK_11, F $0099 $289B GOTO $+2 $009A $289E GOTO $+4 $009B $0BCA DECFSZ STACK_10, F $009C $289B GOTO $-1 $009D $2898 GOTO $-5 $009E $3042 MOVLW 66 $009F $00CA MOVWF STACK_10 $00A0 $0BCA DECFSZ STACK_10, F $00A1 $28A0 GOTO $-1 $00A2 $1086 BCF PORTB, 1 -- Uvodjenje kasnjenja $00A3 $3002 MOVLW 2 $00A4 $00CC MOVWF STACK_12 $00A5 $30FF MOVLW 255 $00A6 $00CB MOVWF STACK_11 $00A7 $30FF MOVLW 255 $00A8 $00CA MOVWF STACK_10 $00A9 $0BCC DECFSZ STACK_12, F $00AA $28AC GOTO $+2 $00AB $28B3 GOTO $+8 $00AC $0BCB DECFSZ STACK_11, F $00AD $28AF GOTO $+2 $00AE $28B2 GOTO $+4 $00AF $0BCA DECFSZ STACK_10, F $00B0 $28AF GOTO $-1 $00B1 $28AC GOTO $-5 $00B2 $28A9 GOTO $-9 $00B3 $3046 MOVLW 70 $00B4 $00CB MOVWF STACK_11 $00B5 $30FF MOVLW 255 $00B6 $00CA MOVWF STACK_10 $00B7 $0BCB DECFSZ STACK_11, F $00B8 $28BA GOTO $+2 $00B9 $28BD GOTO $+4 $00BA $0BCA DECFSZ STACK_10, F $00BB $28BA GOTO $-1 $00BC $28B7 GOTO $-5 $00BD $30CF MOVLW 207 $00BE $00CA MOVWF STACK_10 $00BF $0BCA DECFSZ STACK_10, F $00C0 $28BF GOTO $-1 $00C1 $0000 NOP $00C2 $1486 BSF PORTB, 1

-- Uvodjenje kasnjenja $00C3 $3002 MOVLW 2 $00C4 $00CC MOVWF STACK_12 $00C5 $30FF MOVLW 255 $00C6 $00CB MOVWF STACK_11 $00C7 $30FF MOVLW 255 $00C8 $00CA MOVWF STACK_10 $00C9 $0BCC DECFSZ STACK_12, F $00CA $28CC GOTO $+2 $00CB $28D3 GOTO $+8 $00CC $0BCB DECFSZ STACK_11, F $00CD $28CF GOTO $+2 $00CE $28D2 GOTO $+4 $00CF $0BCA DECFSZ STACK_10, F $00D0 $28CF GOTO $-1 $00D1 $28CC GOTO $-5 $00D2 $28C9 GOTO $-9 $00D3 $3046 MOVLW 70 $00D4 $00CB MOVWF STACK_11 $00D5 $30FF MOVLW 255 $00D6 $00CA MOVWF STACK_10 $00D7 $0BCB DECFSZ STACK_11, F $00D8 $28DA GOTO $+2 $00D9 $28DD GOTO $+4 $00DA $0BCA DECFSZ STACK_10, F $00DB $28DA GOTO $-1 $00DC $28D7 GOTO $-5 $00DD $30CF MOVLW 207 $00DE $00CA MOVWF STACK_10 $00DF $0BCA DECFSZ STACK_10, F $00E0 $28DF GOTO $-1 $00E1 $0000 NOP $00E2 $1086 BCF PORTB, 1 -- Uvodjenje kasnjenja $00E3 $3002 MOVLW 2 $00E4 $00CC MOVWF STACK_12 $00E5 $30FF MOVLW 255 $00E6 $00CB MOVWF STACK_11 $00E7 $30FF MOVLW 255 $00E8 $00CA MOVWF STACK_10 $00E9 $0BCC DECFSZ STACK_12, F $00EA $28EC GOTO $+2 $00EB $28F3 GOTO $+8 $00EC $0BCB DECFSZ STACK_11, F $00ED $28EF GOTO $+2 $00EE $28F2 GOTO $+4 $00EF $0BCA DECFSZ STACK_10, F $00F0 $28EF GOTO $-1 $00F1 $28EC GOTO $-5 $00F2 $28E9 GOTO $-9 $00F3 $3046 MOVLW 70 $00F4 $00CB MOVWF STACK_11 $00F5 $30FF MOVLW 255 $00F6 $00CA MOVWF STACK_10 $00F7 $0BCB DECFSZ STACK_11, F $00F8 $28FA GOTO $+2 $00F9 $28FD GOTO $+4 $00FA $0BCA DECFSZ STACK_10, F $00FB $28FA GOTO $-1 $00FC $28F7 GOTO $-5 $00FD $30CF MOVLW 207 $00FE $00CA MOVWF STACK_10 $00FF $0BCA DECFSZ STACK_10, F $0100 $28FF GOTO $-1 $0101 $0000 NOP $0102 $1486 BSF PORTB, 1 -- Uvodjenje kasnjenja $0103 $3002 MOVLW 2 $0104 $00CC MOVWF STACK_12 $0105 $30FF MOVLW 255 $0106 $00CB MOVWF STACK_11

Page 58: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

57

$0107 $30FF MOVLW 255 $0108 $00CA MOVWF STACK_10 $0109 $0BCC DECFSZ STACK_12, F $010A $290C GOTO $+2 $010B $2913 GOTO $+8 $010C $0BCB DECFSZ STACK_11, F $010D $290F GOTO $+2 $010E $2912 GOTO $+4 $010F $0BCA DECFSZ STACK_10, F $0110 $290F GOTO $-1 $0111 $290C GOTO $-5 $0112 $2909 GOTO $-9 $0113 $3046 MOVLW 70 $0114 $00CB MOVWF STACK_11 $0115 $30FF MOVLW 255 $0116 $00CA MOVWF STACK_10 $0117 $0BCB DECFSZ STACK_11, F $0118 $291A GOTO $+2 $0119 $291D GOTO $+4 $011A $0BCA DECFSZ STACK_10, F $011B $291A GOTO $-1 $011C $2917 GOTO $-5 $011D $30CF MOVLW 207 $011E $00CA MOVWF STACK_10 $011F $0BCA DECFSZ STACK_10, F $0120 $291F GOTO $-1 $0121 $0000 NOP $0122 $1086 BCF PORTB, 1 -- Uvodjenje kasnjenja $0123 $3010 MOVLW 16 $0124 $00CC MOVWF STACK_12 $0125 $30FF MOVLW 255 $0126 $00CB MOVWF STACK_11 $0127 $30FF MOVLW 255 $0128 $00CA MOVWF STACK_10 $0129 $0BCC DECFSZ STACK_12, F $012A $292C GOTO $+2 $012B $2933 GOTO $+8 $012C $0BCB DECFSZ STACK_11, F $012D $292F GOTO $+2 $012E $2932 GOTO $+4 $012F $0BCA DECFSZ STACK_10, F $0130 $292F GOTO $-1 $0131 $292C GOTO $-5 $0132 $2929 GOTO $-9 $0133 $304C MOVLW 76 $0134 $00CB MOVWF STACK_11 $0135 $30FF MOVLW 255 $0136 $00CA MOVWF STACK_10 $0137 $0BCB DECFSZ STACK_11, F $0138 $293A GOTO $+2 $0139 $293D GOTO $+4 $013A $0BCA DECFSZ STACK_10, F $013B $293A GOTO $-1 $013C $2937 GOTO $-5 $013D $30CE MOVLW 206 $013E $00CA MOVWF STACK_10 $013F $0BCA DECFSZ STACK_10, F $0140 $293F GOTO $-1 $0141 $1486 BSF PORTB, 1 -- Uvodjenje kasnjenja $0142 $3010 MOVLW 16 $0143 $00CC MOVWF STACK_12 $0144 $30FF MOVLW 255 $0145 $00CB MOVWF STACK_11 $0146 $30FF MOVLW 255 $0147 $00CA MOVWF STACK_10 $0148 $0BCC DECFSZ STACK_12, F $0149 $294B GOTO $+2 $014A $2952 GOTO $+8 $014B $0BCB DECFSZ STACK_11, F

$014C $294E GOTO $+2 $014D $2951 GOTO $+4 $014E $0BCA DECFSZ STACK_10, F $014F $294E GOTO $-1 $0150 $294B GOTO $-5 $0151 $2948 GOTO $-9 $0152 $304C MOVLW 76 $0153 $00CB MOVWF STACK_11 $0154 $30FF MOVLW 255 $0155 $00CA MOVWF STACK_10 $0156 $0BCB DECFSZ STACK_11, F $0157 $2959 GOTO $+2 $0158 $295C GOTO $+4 $0159 $0BCA DECFSZ STACK_10, F $015A $2959 GOTO $-1 $015B $2956 GOTO $-5 $015C $30CE MOVLW 206 $015D $00CA MOVWF STACK_10 $015E $0BCA DECFSZ STACK_10, F $015F $295E GOTO $-1 $0160 $1086 BCF PORTB, 1 -- Uvodjenje kasnjenja $0161 $3002 MOVLW 2 $0162 $00CC MOVWF STACK_12 $0163 $30FF MOVLW 255 $0164 $00CB MOVWF STACK_11 $0165 $30FF MOVLW 255 $0166 $00CA MOVWF STACK_10 $0167 $0BCC DECFSZ STACK_12, F $0168 $296A GOTO $+2 $0169 $2971 GOTO $+8 $016A $0BCB DECFSZ STACK_11, F $016B $296D GOTO $+2 $016C $2970 GOTO $+4 $016D $0BCA DECFSZ STACK_10, F $016E $296D GOTO $-1 $016F $296A GOTO $-5 $0170 $2967 GOTO $-9 $0171 $3046 MOVLW 70 $0172 $00CB MOVWF STACK_11 $0173 $30FF MOVLW 255 $0174 $00CA MOVWF STACK_10 $0175 $0BCB DECFSZ STACK_11, F $0176 $2978 GOTO $+2 $0177 $297B GOTO $+4 $0178 $0BCA DECFSZ STACK_10, F $0179 $2978 GOTO $-1 $017A $2975 GOTO $-5 $017B $30CF MOVLW 207 $017C $00CA MOVWF STACK_10 $017D $0BCA DECFSZ STACK_10, F $017E $297D GOTO $-1 $017F $0000 NOP $0180 $1486 BSF PORTB, 1 -- Uvodjenje kasnjenja $0181 $3002 MOVLW 2 $0182 $00CC MOVWF STACK_12 $0183 $30FF MOVLW 255 $0184 $00CB MOVWF STACK_11 $0185 $30FF MOVLW 255 $0186 $00CA MOVWF STACK_10 $0187 $0BCC DECFSZ STACK_12, F $0188 $298A GOTO $+2 $0189 $2991 GOTO $+8 $018A $0BCB DECFSZ STACK_11, F $018B $298D GOTO $+2 $018C $2990 GOTO $+4 $018D $0BCA DECFSZ STACK_10, F $018E $298D GOTO $-1 $018F $298A GOTO $-5 $0190 $2987 GOTO $-9

Page 59: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

58

$0191 $3046 MOVLW 70 $0192 $00CB MOVWF STACK_11 $0193 $30FF MOVLW 255 $0194 $00CA MOVWF STACK_10 $0195 $0BCB DECFSZ STACK_11, F $0196 $2998 GOTO $+2 $0197 $299B GOTO $+4 $0198 $0BCA DECFSZ STACK_10, F $0199 $2998 GOTO $-1 $019A $2995 GOTO $-5 $019B $30CF MOVLW 207 $019C $00CA MOVWF STACK_10 $019D $0BCA DECFSZ STACK_10, F $019E $299D GOTO $-1 $019F $0000 NOP $01A0 $1086 BCF PORTB, 1 -- Uvodjenje kasnjenja $01A1 $3002 MOVLW 2 $01A2 $00CC MOVWF STACK_12 $01A3 $30FF MOVLW 255 $01A4 $00CB MOVWF STACK_11 $01A5 $30FF MOVLW 255 $01A6 $00CA MOVWF STACK_10 $01A7 $0BCC DECFSZ STACK_12, F $01A8 $29AA GOTO $+2 $01A9 $29B1 GOTO $+8 $01AA $0BCB DECFSZ STACK_11, F $01AB $29AD GOTO $+2 $01AC $29B0 GOTO $+4 $01AD $0BCA DECFSZ STACK_10, F $01AE $29AD GOTO $-1 $01AF $29AA GOTO $-5 $01B0 $29A7 GOTO $-9 $01B1 $3046 MOVLW 70 $01B2 $00CB MOVWF STACK_11 $01B3 $30FF MOVLW 255 $01B4 $00CA MOVWF STACK_10 $01B5 $0BCB DECFSZ STACK_11, F $01B6 $29B8 GOTO $+2 $01B7 $29BB GOTO $+4 $01B8 $0BCA DECFSZ STACK_10, F $01B9 $29B8 GOTO $-1 $01BA $29B5 GOTO $-5 $01BB $30CF MOVLW 207 $01BC $00CA MOVWF STACK_10 $01BD $0BCA DECFSZ STACK_10, F $01BE $29BD GOTO $-1 $01BF $0000 NOP $01C0 $1486 BSF PORTB, 1 -- Uvodjenje kasnjenja $01C1 $3002 MOVLW 2 $01C2 $00CC MOVWF STACK_12 $01C3 $30FF MOVLW 255 $01C4 $00CB MOVWF STACK_11 $01C5 $30FF MOVLW 255 $01C6 $00CA MOVWF STACK_10 $01C7 $0BCC DECFSZ STACK_12, F $01C8 $29CA GOTO $+2 $01C9 $29D1 GOTO $+8 $01CA $0BCB DECFSZ STACK_11, F $01CB $29CD GOTO $+2 $01CC $29D0 GOTO $+4 $01CD $0BCA DECFSZ STACK_10, F $01CE $29CD GOTO $-1 $01CF $29CA GOTO $-5 $01D0 $29C7 GOTO $-9 $01D1 $3046 MOVLW 70 $01D2 $00CB MOVWF STACK_11 $01D3 $30FF MOVLW 255 $01D4 $00CA MOVWF STACK_10 $01D5 $0BCB DECFSZ STACK_11, F

$01D6 $29D8 GOTO $+2 $01D7 $29DB GOTO $+4 $01D8 $0BCA DECFSZ STACK_10, F $01D9 $29D8 GOTO $-1 $01DA $29D5 GOTO $-5 $01DB $30CF MOVLW 207 $01DC $00CA MOVWF STACK_10 $01DD $0BCA DECFSZ STACK_10, F $01DE $29DD GOTO $-1 $01DF $0000 NOP $01E0 $1086 BCF PORTB, 1 -- Uvodjenje kasnjenja $01E1 $3006 MOVLW 6 $01E2 $00CC MOVWF STACK_12 $01E3 $30FF MOVLW 255 $01E4 $00CB MOVWF STACK_11 $01E5 $30FF MOVLW 255 $01E6 $00CA MOVWF STACK_10 $01E7 $0BCC DECFSZ STACK_12, F $01E8 $29EA GOTO $+2 $01E9 $29F1 GOTO $+8 $01EA $0BCB DECFSZ STACK_11, F $01EB $29ED GOTO $+2 $01EC $29F0 GOTO $+4 $01ED $0BCA DECFSZ STACK_10, F $01EE $29ED GOTO $-1 $01EF $29EA GOTO $-5 $01F0 $29E7 GOTO $-9 $01F1 $301A MOVLW 26 $01F2 $00CB MOVWF STACK_11 $01F3 $30FF MOVLW 255 $01F4 $00CA MOVWF STACK_10 $01F5 $0BCB DECFSZ STACK_11, F $01F6 $29F8 GOTO $+2 $01F7 $29FB GOTO $+4 $01F8 $0BCA DECFSZ STACK_10, F $01F9 $29F8 GOTO $-1 $01FA $29F5 GOTO $-5 $01FB $3042 MOVLW 66 $01FC $00CA MOVWF STACK_10 $01FD $0BCA DECFSZ STACK_10, F $01FE $29FD GOTO $-1 $01FF $1006 BCF PORTB, 0 $0200 $3001 MOVLW 1 $0201 $028C SUBWF _i, 1 $0202 $1C03 BTFSS STATUS, C $0203 $038D DECF _i+1, 1 $0204 $ L_main_8: -- Ispitivanje komande $0204 $3000 MOVLW 0 $0205 $1986 BTFSC PORTB, 3 $0206 $3001 MOVLW 1 $0207 $00C1 MOVWF STACK_1 $0208 $0841 MOVF STACK_1, 0 $0209 $3A01 XORLW 1 $020A $1D03 BTFSS STATUS, Z $020B $2A56 GOTO L_main_11 $020C $3000 MOVLW 0 $020D $1906 BTFSC PORTB, 2 $020E $3001 MOVLW 1 $020F $00C1 MOVWF STACK_1 $0210 $0841 MOVF STACK_1, 0 $0211 $3A00 XORLW 0 $0212 $1D03 BTFSS STATUS, Z $0213 $2A56 GOTO L_main_11 $0214 $ L520_ex_L_main_11: $0214 $1406 BSF PORTB, 0 -- Uvodjenje kasnjenja $0215 $300B MOVLW 11 $0216 $00CC MOVWF STACK_12 $0217 $30FF MOVLW 255

Page 60: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

59

$0218 $00CB MOVWF STACK_11 $0219 $30FF MOVLW 255 $021A $00CA MOVWF STACK_10 $021B $0BCC DECFSZ STACK_12, F $021C $2A1E GOTO $+2 $021D $2A25 GOTO $+8 $021E $0BCB DECFSZ STACK_11, F $021F $2A21 GOTO $+2 $0220 $2A24 GOTO $+4 $0221 $0BCA DECFSZ STACK_10, F $0222 $2A21 GOTO $-1 $0223 $2A1E GOTO $-5 $0224 $2A1B GOTO $-9 $0225 $3033 MOVLW 51 $0226 $00CB MOVWF STACK_11 $0227 $30FF MOVLW 255 $0228 $00CA MOVWF STACK_10 $0229 $0BCB DECFSZ STACK_11, F $022A $2A2C GOTO $+2 $022B $2A2F GOTO $+4 $022C $0BCA DECFSZ STACK_10, F $022D $2A2C GOTO $-1 $022E $2A29 GOTO $-5 $022F $3088 MOVLW 136 $0230 $00CA MOVWF STACK_10 $0231 $0BCA DECFSZ STACK_10, F $0232 $2A31 GOTO $-1 $0233 $1085 BCF PORTA, 1 $0234 $1405 BSF PORTA, 0 $0235 $1006 BCF PORTB, 0 -- Uvodjenje kasnjenja $0236 $3033 MOVLW 51 $0237 $00CC MOVWF STACK_12 $0238 $30FF MOVLW 255 $0239 $00CB MOVWF STACK_11 $023A $30FF MOVLW 255 $023B $00CA MOVWF STACK_10 $023C $0BCC DECFSZ STACK_12, F $023D $2A3F GOTO $+2 $023E $2A46 GOTO $+8 $023F $0BCB DECFSZ STACK_11, F $0240 $2A42 GOTO $+2 $0241 $2A45 GOTO $+4 $0242 $0BCA DECFSZ STACK_10, F $0243 $2A42 GOTO $-1 $0244 $2A3F GOTO $-5 $0245 $2A3C GOTO $-9 $0246 $30FD MOVLW 253 $0247 $00CB MOVWF STACK_11 $0248 $30FF MOVLW 255 $0249 $00CA MOVWF STACK_10 $024A $0BCB DECFSZ STACK_11, F $024B $2A4D GOTO $+2 $024C $2A50 GOTO $+4 $024D $0BCA DECFSZ STACK_10, F $024E $2A4D GOTO $-1 $024F $2A4A GOTO $-5 $0250 $30B5 MOVLW 181 $0251 $00CA MOVWF STACK_10 $0252 $0BCA DECFSZ STACK_10, F $0253 $2A52 GOTO $-1 $0254 $0000 NOP $0255 $1005 BCF PORTA, 0 $0256 $ L_main_11: -- Rep beskonacne petlje $0256 $280C GOTO L_main_0 $0257 $2A57 GOTO $

Page 61: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

60

7. LABORATORISKA VEŽBA

CILJ VEŽBE: a) Na praktičnom primeru pokazati princip funkcionisanja token-ringa i mogućnost primene ovog načina komunikacije kod sistema realizovanih na bazi mikrokontrolera. Uočiti način kretanja tokena koje signalizira crvena LED, ponašanje sistema u slučaju posedovanja tokena i u slučaju kada token nije njemu namenjen

b) Prikazati osnovnu topologiju kola, neophodnu za funkcionisanje mikrokontrolera PIC16F84.

ZADATAK VEŽBE : Posmatrati signal u mernim tačkama. PRIBOR : Maketa, USB kabl, računar sa postojećim USB konektorom ili odgovarajući adapter,

osciloskop. PRIPREMA: Prekidače na maketi postaviti u položaj 0. Priključiti napajanje na odgovarajući port

računara i makete. Dovođenje komandi promenom stanja prekidača vršiti u trenutku kada je token u posedu mikrokontrolera br.1

1) ZADATAK: Posmatranje signala na mernoj tački 1

a) Po dovodjenju napajanja i oba prekidača u položaju 0, postaviti sondu osciloskopa na mernu

tačku 1. Resetovati sistem. Izvršiti merenje. Skicirati izgled signala. Opisati kretanje tokena koje signalizira crvena LED

b) Prekidač J2 postaviti u položaj 1, prekidač J1 ostaje u položaju 0. Izvršiti merenje. Skicirati

izgled signala. Opisati kretanje tokena koje signalizira crvena LED.

Page 62: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

61

2) ZADATAK: Merenje signala u mernoj tački 2

a) Prekidač J1 postaviti u položaj 1, prekidač J2 postaviti u položaj 0. Izvršiti merenje. Skicirati izgled signala. Opisati kretanje tokena koji signalizira crvena LED.

b) Oba prekidača postaviti u položaj 1. Izvršiti merenje. Skicirati izgled signala. Opisati

kretanje tokena koje signalizira crvena LED.

2 1 U3 U1 U2 J1 J2 P2(J2) P1(J1)

Page 63: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

62

8. ZAKLJUČAK

“teorija formira praksu, praksa koriguje teoriju..''

Polazeći od principa vezanih za lokalne računarske mreže, u kojima je token ring definisan standardima, u ovom radu smo pokušali da na osnovu tih standarda realizujemo kolo bazirano na mikrokontroleru PIC16F84, koje će simulirati način te komunikacije u okviru sopstvenih mogućnosti. Bez mogućnosti da u potpunosti primenimo standard token-ring, ograničeni osobinama mikrokontrolera bez obzira na izabrani tip, cilj nam je bio da predstavimo mogući način rešavanja problema sinhronizovanog rada više mikrokontrolerskih jedinica povezanih u celovit sistem i njihovu međusobnu komunikaciju. Kroz predlog tog rešenja cilj nam je bio da predstavimo mikrokontroler PIC16F84 i njegove mogućnosti, arhitekturu ovog mikrokontrolera, kao i da skrenemo pažnju na neke specifičnosti koje se često sreću pri praktičnoj realizaciji uređaja baziranih na pomenutoj familiji PIC mikrokontrolera.

Proizvođačka preporuka softvera za razvoj aplikacija je MPLAB. Iz tog razloga je ovaj alat i opisan. Pri opisu MPLAB-a posebna pažnja posvećena je delu koji se odnosi na softversku simulaciju napisanog programskog koda. Dobra osobina programera je da na kraju pisanja svoj program prvo proveri u simulatoru, pa ga zatim testira u realnim uslovima. Nažalost, kao i mnoge druge dobre navike čovek i ovu manje – više izbegava, što zbog vlastitog karaktera, što zbog nedostatka dobrih simulatora.

Prateći deo praktične realizacije je i programator širokog spektra PIC mikrokontrolera i manje grupe serijskih EEPROM-a. Softverku podršku ovom programatoru čini IC-prog. Programiranje se vrši preko serijskog porta PC računara.

U okviru dodatka priložena je proizvođačka specifikacija primenjenog mikrokontrolera. Po realizaciji svakog uređaja, prepozanaju se i nedostaci načinjeni u toku razvoja. Takav stav

na kraju ovog rada imamo i mi. Svakako bi činjenje određenih ispravki, kako hardverskih tako i softverskih, učinilo maketu još funkcionalnijom, ali bi opet dosli u situaciju da primetimo sopstvene propuste. Ako je naša početna ideja da token-ring koji je karakteristika komunikacije računarski mreža realizujemo mikrokontrolerom skromnih mogućnosti, kao i da mogućnosti istog preporučimo za realizovanje rešenja nekih bliskih problema, ovaj rad je ispunio naša očekivanja. Za Vaša...

Page 64: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

63

9. DODATAK

Page 65: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

64

Page 66: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

65

Page 67: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

66

Page 68: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

67

Page 69: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

68

10. SPISAK AKRONIMA

LAN (local arrea network) lokalna računarska mreža MAC (media access control) fizička adresa CSMA/CD (Carrier Sense Multiple Access with Collision Detection) prenos podataka kroz mrežu

sa kontrolom kolizije MAU (Multi-Station Access Unit ) jedinica za pristup više stanica STP (Shielded Twisted-pair ) oklopljene uporedne parice UTP (Unshielded Twisted-pair ) neoklopljene uporedne parice CRS (Configuration Report Server) server konfiguracionih podataka radnih stanica RPS (Ring Parametar Server) server parametara ringa, sadrži kriterijume za priključivanje na server REM (Ring Error Monitor) sadrži statističke podatke grešaka LBS (LAN Bridge Server) server mostova LAN-a LRM (LAN Reporting Mechanism) mehanizam izveštaja LAN-a

Page 70: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

69

11. LITERATURA

1. PIC16F84, DATASHEET, Microchip Tecnology Inc, 2001. 2. ARHITEKTURE I PROGRAMIRANJE RAČUNARSKIH SISTEMA ZASNOVANIH NA

FAMILIJI PROCESORA 80x86, Mile K. Stojčev, Branislav D. Petrović, I izdanje, Elektronski fakultet, Niš, 1999.

3. MICROCHIP PIC MIKROKONTROLERI Dragan Andrić, Nebojša Matić, I izdanje Mikroelektronika, Beograd,1999.

4. MPLAB www.microchip.com 5. IC-Prog, Version 1.05, B.Gijzen, www.ic-prog.com, 2004. 6. Allpic programator www.yuelektro.cjb.net 7. http://www.datacottage.com/ 8. http://www.techfest.com/index.htm

Page 71: ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA …es.elfak.ni.ac.rs/Papers/TOKEN RING FINALNI RAD.pdf · elektronski fakultet u niŠu katedra za elektroniku predmet: mikroprocesorska tehnika

PIC16F84

70

12. BIOGRAFIJE AUTORA RADA

• Obrazovanje : Saradnik u prirodnim naukama IV stepen Gimnazija Svilajnac Apsolvent Elektronskog fakulteta u Nišu Student fakulteta civilne odbrane u Beogradu Pirotehničar

Živi i radi u selu Roćevcu kod Svilajnca, vlasnik privarne firme „ANTES“ – Svilajnac. Bavi se izradom i održavanjem uređaja za saobraćajnu signalizaciju i projektovanjem mikrokontrolerskih uređaja.

• A

z • Obrazovanje :

Elektrotehničar za Radio TV tehniku Elektrotehnička škola u Kraljevu Apsolvent Elektronskog fakulteta u Nišu Licencirani serviser Fiskalnih uređaja, prateće opreme i softvera Galeb GROUP –Šabac.

Živi i radi u Nišu, zaposlen u „MIKOPS-u“, nalazi se na radnom mestu Servisera Fiskalnih

registar kasa i GPRS uređaja. Bavi se grafičkom obradom, softverskim projektovanjem za komunikaciju računara i Fiskalnih uređaja, kao i projektovanjem PCB- štampanih kola.

• Prezime: Antonijević • Ime: Bojan • Datum rođenja: 12.09.1973. • Nacionalnost: Srbin • Bračno stanje: Neoženjen

• Prezime: Županjac • Ime: Dragan • Datum rođenja: 02.01.1971. • Nacionalnost: Srbin • Bračno stanje: Oženjen Marijanom, otac Nemanje i

Stefana


Recommended