UNIVERZITET U NIŠU

ELEKTORNSKI FAKULTET
KATEDRA ZA ELEKTRONIKU
Smer: EKIS
Predmet: Embedded sistemi

Simulacija PLC kontolera pomoću
PIC16F877 mikrokontrolera

studenti:
Aleksandar Gošić
11486
Aleksandar Lakićević 11523
mentor:
prof. dr Mile Stojčev

PDF created with pdfFactory Pro trial version www.pdffactory.com

Sadržaj
UVOD ......................................................................................................... 2
PLC ............................................................................................................. 3
PLC sistem .................................................................................................. 5
Programiranje PLC-a. Ladder dijagrami ...................................................... 6
Projektni zadatak ......................................................................................... 7
MIKROC – Softver za programiranje PIC mikrokontrolera ........................10
Editovanje koda ..........................................................................................13
Učitavanje HEX fajla u mikrokontroler–Programiranje mikrokontrolera ....17
Princip rada bootloadera .............................................................................25
Realizacija softvera - Realizacija zadate kombinacione funkcije................26
Transformacija ladder dijagrama u mikroC kod ..........................................29
Primer 1:..................................................................................................29
Primer 2:..................................................................................................35
Primeri za laboratorijske vežbe ...................................................................41
Literatura ....................................................................................................48
Zaključak ....................................................................................................49
Dodatak ......................................................................................................50
Opis mikrokontrolera PIC16F877............................................................50
Serijska komunikacija posredstvom MAX232 drajvera ...........................63
U/I moduli ...............................................................................................64
Napajanje ................................................................................................65
Biografije autora .........................................................................................66

1
PDF created with pdfFactory Pro trial version www.pdffactory.com

UVOD
Smisao ovog zadatka je da se pomoću PIC16F877 mikrokontrolera
simulira rad programabilnog logičkog kontrolera (PLC). Za pisanje koda
koristili smo kompajler mikroC, a za upis koda u mikrokontroler koristili
smo mikroBootloader, produkte firme MikroElektronika iz Beograda.
Primena i način rada PLC kontrolera biće pojašnjena u prvom delu
teksta. Kasnije je opisan kompletan hardver sistema počevši od
mikrokontrolera pa nadalje. Zatim, biće opisani softveri za editivanje koda i
za učitavanje koda u mikrokontroler. Na kraju je objašnjeno kako se pomoću
osnovnih logičkih funkcija realizuju konkretne složene funkcije, što je
ilistrovano kroz nekoliko prostih primera.

2
PDF created with pdfFactory Pro trial version www.pdffactory.com

digitalni elektronski uređaj koji poseduje programabilnu memoriju za smeštanje instrukcija kojima se realizuju specifične funkcije.(Programmable) . relejne šeme.karakteristično za prvobitne tipove PLC kontrolera. a prihvataju i generišu.(Logic) .com . a koji se može lako programirati i ugrađivati u nove i postojeće industrijske sisteme. koji je u mogućnosti da obavlja brojne tipove upravljačkih funkcija različitog nivoa složenosti. PLC program se razvija u jeziku lestvičastih (ladder) dijagrama. Program rada se unapred priprema i puni u permanentu memoriju PLC kontrolera. odmeravaju vremenske intervale. prebrojavaju događaje. PLC . a u cilju upravljanja različitim mašinama i procesima putem digitalnih ili analognih ulazno/izlaznih modula. brojanje i artimetičke operacije. PLC .namenski elektronski uređaj. PLC (Controller).PLC PLC . PLC .prati ključne parametre procesa (posredstvom priključenih senzora i davača.industrijski računar čiji su hardver i softver posebno prilagođeni radu u industrijskim uslovima. tajming.pdffactory. Savremeni PLC-ovi. PLC kontroler se razlikuje od računarskog sistema opšte namene po tome što nema spoljnu memoriju (diskove). pored diskretnih. kao što su logičko sekvenciranje.Glavna primena u industriji (proizvodnoj) gde se koristi za automatsko upravljanje procesima . i analogne signale. zasnovan na mikroprocesoru.označava mogućnost programiranja. pored logičkih mogu da obavljaju: aritmetičke operacije. PLC . koji je nastao po ugledu na tzv. generiše pobudu kojom deluje na proces (posredstvom aktuatora) . PLC generiše diskretne (digitalne) izlazne signale u funkciji (logičkoj) diskretnih ulaznih signala . kao i niz standardne 3 PDF created with pdfFactory Pro trial version www. Slika 1. PLC .jedna od glavnih osobina PLC kontrolera je mogućnost obavljanja logičkih (bulovih) funkcija. i shodno memorisanom programu.upravljačka jedinica procesa.slika 1.

ulazno/izlazne opreme. njegov operativni sistem je jednostavniji i pruža komparativno manje mogućnosti od računara opšte namene.pdffactory. Pored toga. Drugim rečima. korisnik PLC kontrolera je u najvećoj mogućoj meri oslobođen rešavanja različitih problema vezanih za čisto računarski aspekt. Izgled PLC kontrolera 4 PDF created with pdfFactory Pro trial version www. Slika 2. U izvesnom smislu.com . PLC je koncipiran i projektovan za jedan relativno uzak i jasno definisan obim poslova vezanih za nadzor i upravljanje pojedinim uređajima. Zapravo. područje primene PLC kontrolera isto je kao i za specijalizovane mikroračunarske kontrolere ili signal procesore. mašinama i procesima. Ključna razlika leži u činjenici da korišćenje PLC-a ne zahteva od korisnika gotovo nikakvo predznanje o arhitekturi mikroračunarskih sistema i programiranju. Na slici 2 su prikazani savremeni komercijalni PLC-ovi. što je rezultovalo u njegovoj izuzetnoj efikasnosti i jednostavnosti. i može da se u punoj meri skoncentriše na projektovanje same aplikacije.

Centralna procesorksa jedinica (CPU) ili logička jedinica predstavlja „mozak“ sistema. PM i U/I moduli smeštaju se u metalne ormare – tzv. dok sa druge. Sa jedne strane. solenoide. prema operateru.obezbeduje napajanje mikroprocesora. 2. memorije. Primeri PM-ova su: rucni terminali. Programator/Monitor (PM). rekove. a sastoji se iz sledece tri podjedinice: a. prema PLC-u.com . industrijski terminali i personalni racunari. motore. u obliku blok dijagrama. statusnih informacija ka/iz PLC-a. ulaznog i izlaznog modula. PLC sistem 5 PDF created with pdfFactory Pro trial version www. Izvor napajanja . Izlazni modul poseduje terminale preko koji PLC šalje izlazne signale kojima pobuduje relee. Ulazni modul poseduje terminale (prikljucne tacke) na koje se dovode elektricni signali koje generišu senzori ili prevaraci.pdffactory. Slika 3. U/I moduli. ovi uredaji poseduju ekran i tastaturu. podataka. 3. displeje i druge izlazne uredaje. Delovi PLC sistema CPU. PM je uredaj koji se koristi za komunikaciju sa PLC-om. Memorija – za cuvanje sistemskog softvera i korisnickog programa c. prikazane četiri osnovne jedinice svakog PLC sistema kao i načina na koji su medusobno povezane: 1. odgovarajuci komunikacioni interfejs za prenos programa.PLC sistem Na slici 3 su. b. Rekovi i šasije. Mikroprocesor. 4.

Programiranje PLC-a. Ladder dijagrami
Kao što je već ranije istaknuto, PLC je početno razvijen sa idejom da
zameni relejne sisteme. To znači da se očekivalo da on realizuje
odgovarajuću vremensku sekvencu logičkih operacija. Pored toga, uspešna
primena PLC-a u praksi, zahtevala je i da se njegovo programiranje
prilagodi tehnici koja je svim korisnicima relejnih sistema dobro poznata. Iz
svih ovih razloga, za projektovanje PLC-ova razvijen je programski jezik
zasnovan na leder (lestvičastim) dijagramima – leder programski jezik.
Jedan prostiji primer ladder dijagrama je prikazan na slici 4.

Slika 4. Primer ladder dijagrama

Kao što se vidi sa slike, ladder dijagram se sastoji od uslova funkcije
sa leve strane i akcije sa desne strane. Osnovni tipovi uslova (bit naredbe za
definiasanje uslova) su normalno otvoren prekidač( ) i normalno zatvoren
prekidač ( ). Pomoću njih je moguće realizovati sve osnovne logičke
funkcije o čemu će biti reči kasnije. Simbol za akciju je ( ) i ona se
izvršava ako je iskaz (uslov) na levoj strani dijagrama istinit.

6
PDF created with pdfFactory Pro trial version www.pdffactory.com

Projektni zadatak
Kao što smo već napomenuli zadatak ovog projekta je bio da se
pomoću mikrokontrolera simulira rad PLC-a. Za tu svrhu je iskorišćen
MICROCHIP-ov mikrokontroler PIC16F877. Konkretno, zadatak je bio da
se opišu osnovne logičke kombinacione funkcije koje bi permanentno bile
smeštene u softer mikrokontrolera, a da se konkretne složene funkcije
realizuju, u glavnom delu softvera, povezivanjem osnovih logičkih funkcija.
Sa jedne strane, na ulaz kontrolera potrebno je povezati prekidače, kao
ulazne module, koji će definisati stanje na ulazu logičkih funkcija, a sa druge
strane potrebno je povezati LED diode, kao izlazne module, koje će služiti
kao indikacija stanja na izlazu kontrolera.






Za realizaciju ovog simulatora upotrebljene su sledeće komponente:
mikrokontroler PIC16F877 kao centralna procesorska jedinica;
MAX232 sa propratnim interfejsom za serijsku komunikaciju sa
računarom putem koje se vrši programiranje kontrolera;
klik-klak prekidači koji definišu logičke ulaze kontrolera (visok ili
nizak nivo na ulazu kontrolera );
LED diode za indikaciju logičkih stanja na izlazu kontrolera;
74HC241 drajver za poduđivanje LED dioda;
RESET kolo za vraćanje kontrolera na početno stanje (resetovanje);
blok za napajanje sa stabilizatorom napona na 5V.

Na sledećim slikama su prikazane blok šema celog sistema kao i šema
štampane ploče odnosno PCB-a koje su izrađene u programskom paketu
DXP korišćenjem programa Protel2004.

7
PDF created with pdfFactory Pro trial version www.pdffactory.com

Slika 5. Blok šema kompletnog sistema

Slika 6. Izgled štampane ploče sistema
8
PDF created with pdfFactory Pro trial version www.pdffactory.com

com . Realizovani PLC simulator 9 PDF created with pdfFactory Pro trial version www.pdffactory.Slika 7.

koja su posledica nešto složenijeg pristupa magacinu (stack) i ograničenja vezana za memoriju. statistike koda i slično. kao i automatskoj korekciji pojedinih grešaka. što se ogleda automatskom kontrolom i upozorenjima vezanim za sintaksu koda. • mikroC tretira označavanje const kao “true constans” (kod C++). Preglednost strukture programa (koda). 10 PDF created with pdfFactory Pro trial version www.com . koji je razvila beogradska MikroElektronika. Programer ima na raspolaganju veliki broj integrisanih biblioteka i rutina. promenljivih i funkcija omogućava Code explorer. i namenjen je pisanju koda za MICROCHIP-ove PIC mikrokontrolere. korišćenih parametara. dok su druge rezultat hardverskih ograničenja PIC mikrokontrolera. • Pokazivači (pointers) promenljivih i pokazivači konstanti nisu kompatibilni.Ukoliko se teži ka prenosivosti programa. Koristeći mikroC. Jasan asemblerski kod i standardna kompatibilnost generisanih HEX datoteka toka programa preko ugrađeg debagera (debugger). treba koristiti tradicionalno pretprocesorsko definisanje konstanti. programeru je omogućen jednostavan način da kontroliše proces programiranja i napravi kvalitetan firmware. koje značajno ubrzavaju pisanje programa. Moramo da napomenemo kako mikroC odstupa od ANSI standarda u nekoliko segmenata. Pomenućemo neke specifičnosti: • Rekurzivne funkcije (function recursion) su podržane sa izvesnim ograničenjima. Detaljan izveštaj i grafičko predstavljanje RAM i ROM mape. tj. što omogućava korišćenje const objekta na mestima gde ANSI C očekuje constant izraz . Osnovne karakteristike programa mikroC su sledeće: • • • • • Pisanje C koda korišćenjem kvalitetnog editora.MIKROC – Softver za programiranje PIC mikrokontrolera mikroC prestavlja moćan softverski alat.pdffactory. Neka odstupanja su načinjena u cilju da se olakša programiranje. nije moguća međusobna dodela ili upoređivanje.

Instalacija Ovde ćemo preko Slika 8-11 ilustrovati proces instaliranja mikroC-a. PIC12F508..com).• mikroC dozvoljava C++ stil jednolinijskih komentara.pdffactory. math. uz individualna odstupanja. Inače. Izuzetak su mikrokontroleri koji imaju staro hardversko jezgro kao na primer PIC12C508._. Sada treba kliknuti na komandno dugme NEXT 11 PDF created with pdfFactory Pro trial version www. 16 i 18. Nakon toga sledi: Slika 8. ograničena verzija (do 2KB programa) može da se preuzme sa sajta MikroElektronike (www.com . instalacija traje 30 sekundi. PIC12C509. Komentar može da počne bilo gde i traje do sledeće nove linije programskog koda. Inače.exe . a to se najjednostavnije ostvaruje klikom na ikonicu: Početak procesa instalacije se ostvaruje klikom na izvršni fajl mikroC_. Posle instalacije treba pokrenuti mikroC.mikroe. mora da se plati licenca od 250$. stdlib. • Brojne standardne C biblioteke (ctype. PIC12F509 itd. U sličaju ako se želi potpuna verzija (neograničen kapacitet programa).. string ) implementirane su u mikroC. koristeći dve kose crte (//). Napominjemo da mikroC podržava gotovo sve PIC mikrokontrolere serija 12.

Prihvatanje uslova licenciranja i zatim treba kliknuti na komandno dugme NEXT Slika 10. Izbor programatora (PicFlash). gotovih primera i zatim klik na komandno dugme NEXT 12 PDF created with pdfFactory Pro trial version www.com .pdffactory.Slika 9.

Slika 11.pdffactory. Slika 12. jer će se programiranje mikrokontrolera vršiti na način koji će kasnije biti opisan. Izbor foldera za smeštanje programa i klik na komandno dugme NEXT Na kraju instalacije mikroC-a biće ponuđena instalacija drajvera za programator koju u ovom slučaju treba prekinuti izborom opcije No.com . Editovanje koda U narednim redovima biće ilustrovan postupak kreiranja koda u mikroC-u (Slike 12-18). Izgled editora po startovanju programa mikroC 13 PDF created with pdfFactory Pro trial version www.

pdffactory.Slika 13. parametri kontrolera) 14 PDF created with pdfFactory Pro trial version www. Kreiranje novog projekta preko opcije Project → New Project Slika 14. tip mikrokontrolera. Podešavanje parametara novog projekta (naziv.com . takt.

• njegovu putanju. • tip mikrokontrolera (u našem slučaju P16F877).com . U editor treba uneti program (kod) mikrokontrolera 15 PDF created with pdfFactory Pro trial version www. • i čekirati dugme Default.Kod ovog koraka je neophodno u okviru prozora New Project odabrati: • ime projekta. • vrednost frekvencije kvarcnog kristala (u našem slučaju 8MHz). Slika 15. Nakon toga pritisnuti Ok.pdffactory.

U editor je unet primer zadate funkcije Slika 17.com .Slika 16. Sada treba izvršiti prevođenje (compile) programa preko opcije Project → Build 16 PDF created with pdfFactory Pro trial version www.pdffactory.

Izgled prozora posle kompilacije sa izveštajem (Messages) Kao produkti prevođenja (kompilacije/kompajliranja) generiše se nekoliko fajlova: asemblerski kod (ASM). Sve što je potrebno je da se ostvari serijska veza mikrokontrolera i PC-a.Slika 18. heksadecimalni kod (HEX). Nama je od daljeg značaja HEX fajl jer on predstavlja kod koji treba „spustiti“ u mikrokontroler.com . posredstvom 17 PDF created with pdfFactory Pro trial version www. odnosno kod kojim se programira mikrokontroler. Na taj način se izbegava potreba dodatnog programatora čime se uređaj značajno pojeftinjuje i pojednostavljuje. programa koji je sastavni deo paketa mikroC. Učitavanje HEX fajla u mikrokontroler – Programiranje mikrokontrolera Jedan od načina na koji se programira mikrokontroler („spuštanje“ HEX fajla) je učitavanje HEX fajla posredstvom mikroBootloader-a. izveštaji itd.pdffactory. a to se veoma jednostavno postiže povezivanjem USART terminala mikrokontrolera na COM port PC-a.

te se on ne mora ugradjivati u uređaj što ga je učinilo značajno jeftinijim i jednostavnijim. Postupak programiranja je sledeći: Najpre je potrebno učitati kod za komunikaciju sa mikroBootloaderom posredstvom nekog programatora u mikrokontroler.pdffactory. a svaki naredni put se programiranje vrši preko serijskog porta (USART terminala) korišćenjem programa mikroBootloader. pomoću adekvatnog programatora. učita kod koji će nadalje omogućiti komunikaciju mikrokontrolera i mikroBootloader-a. 18 PDF created with pdfFactory Pro trial version www.neophodnog drajvera za RS-232 komunikaciju (MAX232 sa propratnim hardverom odnosno elektrolitskim kondenzatorima) i kabla (neupredeni „1na1”) za RS-232 komunikaciju. U tu svrhu je iskorišćeno razvojno okruženje firme MikroElektronika iz Beograda dato na slici 19. Ostvarivanje ove veze je predhodno detaljnije objašnjeno. Da bi se na ovaj način isprogramirao mikrokontroler ipak je neophodno da se prvo u njega. Na taj način potreba za programatorom postoji samo pri prvom programiranju mikrokontrolera.com . Takođe je moguće kupiti mikrokontroler sa već ugrađenim kodom za programiranje putem serijskog porta (USART terminala) korišćenjem nekog bootloader-a.

..Slika 19. 19 PDF created with pdfFactory Pro trial version www.com . Razvojno okruženje EasyPIC4 Učitavanje datog koda se vrši na sledeći način: U okviru primera koji se dobijaju uz navedeno razvojno okruženje nalazi se i neophodan kod koji se nalazi u sistemskom folderu programa mikroC čija putanja je sledeća: .\Mikroelektronika\mikroC\Examples\EasyPic4\extra_examples\Bootloader\P16 Kada je program otvoren programiranje se vrši jednostavnim pritiskom na dugem Build+Program kao na slici 32.pdffactory.

com . Kada je i to obavljeno. Učitavanje bootloader koda Pošto je mikrokontroler isprogramiran kodom za komunikaciju sa mikroBootloader-om može se izvaditi iz okruženja i ugraditi u razvijeni sistem.Slika 20.pdffactory. dalje programiranje kontrolera se vrši na sledeći način: U okviru alata koje poseduje mikroC nalazi se i već pomenuti mikroBootloader prikazana na slici 21. 20 PDF created with pdfFactory Pro trial version www.

Slika 22. Izgled mikroBootloader-a 21 PDF created with pdfFactory Pro trial version www.pdffactory.Slika 21. Pokretanje mikroBootloader-a Na sledećoj slici je prikazan izgled mikroBootloader-a.com .

Slika 23.Uspostavljanje veze se vrši na sledeći način: Najpre je potrebno izvršiti priključivanje sistema na napajanje i COM port PC-a. Kada je program mikroBootloader pokrenut potrebno je podesiti RS232 komunikaciju biranjem opcije Setup Port na način prikazan na slici 23. Podešavanje RS-232 komunikacije Pošto je sve to obavljeno neophodno je resetovati mikrokontroler pritiskom na taster predviđen za reset i u roku od dve sekunde inicirati konekciju pritiskom na opciju Connect.com . Slika 24. Ako je konekcija uspešno obavljena pojaviće se prozor kao na slici 24. Uspešno obavljena konekcija 22 PDF created with pdfFactory Pro trial version www.pdffactory.

U suprotnom će se pojaviti prozor prikazan na slici 25 što znači da neki od koraka nije ispoštovan. biranjem opcije Open HEX file kao na slikama 26 i 27. programiranje mikrokontrolera se vrši opcijom Start bootloader.com . 23 PDF created with pdfFactory Pro trial version www. pojavljuje se prozor kao na slici 28 pa je potrebno još jednom resetovati mikrokontroler pritiskom reset tastera na sistemu nakon čega je on a samim tim i ceo sistem spreman za izvršavanje zadate funkcije. Neuspešna konekcija usled lošeg setovanja porta(Setup Port) ili usled isticanja vremenskog intervala od dve sekunde za iniciranje komunikacije nakon resetovanja mikrokontrolera Ako je konekcija uspešno izvršena (slika 24) potrebno je učitati već izgenerisani HEX fajl sa zadatom funkcijom.pdffactory. Kada se učitavanje HEX fajla završi. Slika 25. U tom slučaju treba ponoviti algoritam konektovanja počevši od koraka sa slike 22. Na samom kraju.

Otvaranje adekvatnog HEX fajla Slika 27.Slika 26. Izgled prozora nakon učitanog HEX fajla nakon čega je potrebno startovati bootloader opcijom Start bootloader 24 PDF created with pdfFactory Pro trial version www.com .pdffactory.

Na taj način je programator potreban samo pri prvom programiranju mikrokontrolera pa je njegova ugradnja na sistem nepotrebna iako je sistem neophodno programirati više puta.pdffactory.Slika 28.com . mikrokontroler kreće sa njegovim izvršenjem. 25 PDF created with pdfFactory Pro trial version www. A ako ne dođe do iniciranja konekcije u roku od 2 sekunde bootloader program takođe skače na prvu liniju ispod sebe i ako već postoji učitan konkretan zadati program. On ima funkciju da nakon svakog resetovanja kontrolera u toku prve 2 sekunde nadgleda USART terminal. Jedina mana je što je nemoguće zaštititi kod. U suprotnom se ne dešava ništa sve dok se mikrokontroler ponovo ne resetuje. jer bi se na taj način onemogućilo ponovno programiranje bez dodatnog programatora pa bi ovaj način programiranja bio apsurdan. Ukoliko je sistem priključen na COM port PC-a i u toku od te 2 sekunde usledi inicijalizacija konekcije kao na slici 36 bootloader program će skočiti na prvu liniju ispod sebe i na taj način omogućiti upisivanje konkretnog programa u prostor predviđen za te svrhe. Izgled prozora nakon uspešno izvršenog programiranja mikrokontrolera. Način na koji se programiranje zapravo odvija je sledeći: Kod koji je prvo učitan u mikrokontroler (preko programatora) je smešten na samom početku ROM memorije predviđene za smeštanje programa rada mikrokontrolera. Dalje je potrebno pritisnuti dugme Ok i resetovati mikrokontroler Princip rada bootloadera Ovakav vid programiranja je specifičan za PIC mikrokotrolere.

c= a & b. • AND 3 – trulazno „I“ kolo. char b) { char c. return c. Ispod su navedeni delovi koda u kome su opisane date funkcije u mikroC kompajleru koje zapravo predstavljaju osnovna logička kola digitalne elektronike kao i njihovi odgovarajući simboli sa leve strane i ekvivalenti simboli ladder dijagrama sa desne strane: • Invertor (NOT funkcija) int INV(char a) { a= ~a.Realizacija zadate kombinacione funkcije Kao što je već poznato PLC kontroleri se programiraju putem ladder dijagrama. } Simbol NOT funkcije Simbol normalo zatvorenog prekidača koji u ladder dijagramu odgorara NOT funkciji • Dvoulazno I kolo (AND2) int AND2(char a.dvoulazno „I“ kolo. } Simbol AND2 funkcije Simbol koji u ladder dijagramu odgovara AND2 funkciji 26 PDF created with pdfFactory Pro trial version www. dalji tok projektovanja se zasnivao na tome da se realizuju sledeće logičke funkcije koje bi podsećale na osnovne logičke funkcije koje se koriste u ladder dijagramima: • AND 2 .Realizacija softvera . • OR 2 – dvoulazno „ILI“ kolo. return a. • XOR – „ekskluzivno ILI“ kolo. • NOT – Invertor.com .pdffactory. • OR 3 – troulazno „ILI“ kolo. Pošto je ovakav način programiranja klasičnog mikrokontrolera (PIC) praktično nemoguć zbog nemogućnosti kompajlera da to obavi.

return c. char b.• Troulazno I kolo (AND3) int AND3(char a. } Simbol OR3 funkcije Simbol koji u ladder dijagramu odgovara OR3 funkciji 27 PDF created with pdfFactory Pro trial version www.com . return d. d= a & b & c. char b. return d.pdffactory. c= a | b. char c) { char d. } Simbol OR2 funkcije Simbol koji u ladder dijagramu odgovara OR2 funkciji • Troulazno ILI kolo (OR3) int OR3(char a. d= a | b | c. } Simbol AND3 funkcije Simbol koji u ladder dijagramu odgovara AND3 funkciji • Dvoulazno ILI kolo (OR2) int OR2(char a.char b) { char c. char c) { char d.

c= a ^ b. return c.com .pdffactory. njihovim spajanjem. 28 PDF created with pdfFactory Pro trial version www.• XOR kolo int XOR(char a. realizovati bilo koju složenu logičku funkciju.char b) { char c. } Simbol XOR funkcije Simbol koji u ladder dijagramu odgovara XOR funkciji Na osnovu navedenih logičkih funkcija moguće je.

Prvi korak je transformisanje ladder dijagrama u dijagram logičkih funcija (digitalne elektornike).Transformacija ladder dijagrama u mikroC kod Kroz naredna dva primera biće ilustrovano kako se od zadatog ladder dijagrama dolazi do mikroC koda. Transformacija prve lestvice ladder dijagrama u logičku šemu 29 PDF created with pdfFactory Pro trial version www. Slika 30. korak po korak. Sledeće slike iliustruju kako se od zadatog ladder diajagrama sa slike 29 prelazi na dijagram osnovnih logičkih funkcija. Primer 1: Na osnovu zadatog ladder dijagrama sa slike 29 isprogramirati kontroler da obavlja datu kombinacionu funkciju. Najpre je potrebno uočiti segmente ladder dijagrama koji se direktno mogu zameniti ekvivalentnom logičkom funkcijom kao što je prethodno objašnjeno.pdffactory.com . Slika 29.

Slika 33.pdffactory. Drugi korak predstavlja transformaciju dobijene logičke šeme u mikroC kod za programiranje kontrolera.Slika 31. Sada je najpre potrebno obeležiti interne signale kao što je prikazano na slici 34 da bi se u kodu omogućilo spajanje dobijenih logičkih funkcija. koja je potpuno ekvivalentna ladder dijagramu sa slike 29. Transformacija treće lestvice ladder dijagrama u logičku šemu Pošto su prethodno ilustrovane lestvice ladder dijagrama povezene paraleleno.com . Transformacija druge lestvice ladder dijagrama u logičku šemu Slika 32. pa se na taj način dobija kompletna logička funkcija kao na slici 33. zaključu je se da su sve logičke šeme povezane u jedno troulazno “ILI” kolo. 30 PDF created with pdfFactory Pro trial version www. Izlaz A date konbinacione funkcije odgovara akciji A sa slike 29.

f0=INV(b.d1. e.f0=INV(f. k.c. c.b1.i.f0.Slika 34. a.d1. Formiranje potrebnog koda na osnovu ovako dobijene funkcije se vrši na sledeći način: Prvo je neophodno definisati sve interne promenljive.f0). što je predstaljeno u narednom delu koda: /*Deklarisanje neophodnih promenljivih*/ /*Ovaj deo koda je prilagodljiv korisnickim potrebama*/ volatile char a. i. /*Do ovog dela kod je prilagodljiv korisnickim potrebama*/ Nakon toga je potrebno ulazne signale (In1 do In8.f0=OR3(i.j. d. f.f0. d1.d. j.b.pdffactory.f0.f0=INV(d.c.k. 31 PDF created with pdfFactory Pro trial version www.f0).f0.f0.k.f1.f0).f0).c.f0=In2.j.f0.f0.f0=AND3(b1.f0).e. koji su osetljivi na promene stanja ulaznih pinova kontrolera) povezati sa internim signalima koji predstavljaju ulaze u logička kola prvog nivoa što je prikazano u sledećem delu koda: b.e.f0).f0.c.f1.f0=AND3(b1.f0=In3.com .f0=In5. f1.f.f0).f0=In1. Sledeći korak je povezivanje pojedinačnih logičkih kola tako da se formira kompletna zadata logička šema što prikazuje sledeći deo koda: b1.f0=In4.f0=AND3(b1.

k. što znači da one zauzimaju memoriju veličine 1 bajt (8 bitova). Na kraju je potrebno interne signale sa izlaza logičkih kola zadnjeg nivoa povezati sa izlaznim signalima (Out1 do Out8.f0. Out1=a. c.b1.f0.pdffactory.f0. Na ovaj način se dobijaju sledeći delovi koda koje treba ugraditi u kompletan softver za programiranje kontolera. /*Deklarisanje neophodnih promenljivih*/ /*Ovaj deo koda je prilagodljiv korisnickim potrebama*/ volatile char a.e. /*Do ovog dela kod je prilagodljiv korisnickim potrebama*/ Bitno je zapaziti da su definisane promenljive tipa char.f0=OR3(i.f.d1.f0. koji pobuđuju izlazne pinove kontolera) što u ovom slučaju predstavlja sledeći deo koda: Out1=a.b.f0). d1.f0. f. Da ne bi došlo do kolizije.f0=In2.e.f0). neophodno je u označenom delu koda.f0=AND3(b1.f0.Bitno je da redosled pozivanja funkcija odgovara nivoima logičkih funkcija tj.j.f0=In3. pošto je u ovom kompajleru nemoguće definisati promenljivu tipa bit (kakva bi u ovom slučaju odgovrala jer su svi signali jedno-bitni). k.j.f0=In1.k.c.f0=INV(d. da de prvo obradi prvi nivo. i.d.f0.f0).f0=AND3(b1. a.f0=In5.f0=INV(f.f0=AND3(b1.f0.f0=INV(b.fo” što označava da se primenjene operacije izvršavaju samo nad njenim prvim bitom čime je ostvarena kompatibilnost između realnih signala i 32 PDF created with pdfFactory Pro trial version www.f1.f0). /*Do ovog dela kod je prilagodljiv korisnickim potrebama*/ /*Zadavanje konkretne slozene funkcije*/ /*Ovaj deo koda je prilagodljiv korisnickim potrebama*/ b.f0). b1.d1. e.f0=In4.i. d.f0. pa drugi i tako redom do zadnjeg nivoa logičkih kola što se vidi iz gore navedenog koda.f0).c.f1.com .f0). svakoj promenljivoj dodati eksteziju “.f0. f1. j.c.c.

c= a | b. return c. d= a | b | c.char b) { char c. Kompletan kod koji predstavlja funkciju zadatu ladder dijagramom sa slike 41 je nadalje dat. return c.F0 Out8 PORTE.F1 In8 PORTB. } int AND2(char a.F5 Out3 PORTA. } int AND3(char a. char b) { char c. d= a & b & c. return d. /* Simulacija PLC kontrolera pomocu PIC16F877*/ #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define In1 PORTB. char b. char c) { char d. char b.F6 Out2 PORTA. } int OR2(char a.F3 Out5 PORTA.F1 In3 PORTB. return a.F1 Out7 PORTE.F3 In5 PORTB.F5 In6 PORTB.F4 Out4 PORTA. return d.promenljivih koje su im dodeljene. } 33 PDF created with pdfFactory Pro trial version www.F2 /*Definicije osnovnih logickih funkcija*/ int INV(char a) { a= ~a. c= a & b.pdffactory. char c) { char d. } int OR3(char a.F0 In2 PORTB.F0 In7 PORTB.F7 Out1 PORTA.com .F2 In4 PORTB. kao što je prikazano u gore navedenom delu koda.F2 Out6 PORTE.

c. /*Do ovog dela kod je prilagodljiv korisnickim potrebama*/ trisa=0.f0).e.f0=INV(d.j.f0=In4.f1.d.f0). f.f0=OR3(i. porta=0.f0. while(1){ /*Zadavanje konkretne slozene funkcije*/ /*Ovaj deo koda je prilagodljiv korisnickim potrebama*/ b.f0=AND3(b1. d1.k.f0. i. k.f0. f1.j. c= a ^ b. j.pdffactory.f0=In5. /*Do ovog dela kod je prilagodljiv korisnickim potrebama*/ } } 34 PDF created with pdfFactory Pro trial version www.f0).f0.b1. portb=0.f0=AND3(b1.f0.f0. } void main(void) { /*Deklarisanje neophodnih promenljivih*/ /*Ovaj deo koda je prilagodljiv korisnickim potrebama*/ volatile char a. trisb=1.f0=AND3(b1.f0).c. adcon1=0b00000111.f0).char b) { char c. a.d1.f0=In2.f0).b.d1.f0.f0=INV(b. delay_ms(200). b1. d.f1.f.f0.e.c.f0=In1.i.f0.k. Out1=a.f0).f0=In3. trise=0. porte=0.c.com .c. return c. e.int XOR(char a.f0=INV(f.

Kada je potrebno realizovati odgovarajuću zadatu funkciju u gore navedenom kodu je potrebno zameniti samo one delove koda koji su obeleženi kao “delovi koda prilagodljivi korisničkim potrebama”. U predstojećem delu je ilustrovan još jedan primer koji opisuje kompletan postupak projektovanja.com .pdffactory. Ladder dijagram datog multipleksera 35 PDF created with pdfFactory Pro trial version www. Primer 2: U mikroC-u realizovati kombinacionu funkciju multipleksksera čiji je opis dat na sledećim slikama: Slika 35. Blok šema i tabela istinitosti multipleksera Slika 36.

Transformacija treće lestvice ladder dijagrama u logičku šemu Slika 40.com . 36 PDF created with pdfFactory Pro trial version www. Transformacija četvrte lestvice ladder dijagrama u logičku šemu Pošto su prethodno ilustrovane lestvice ladder dijagrama povezene paraleleno. Transformacija prve lestvice ladder dijagrama u logičku šemu Slika 38. zaključu je se da je neophodno ostvariti sledeću vezu.Prvi korak je transformisanje ladder dijagrama u dijagram logičkih funcija (digitalne elektornike). Slika 37.pdffactory. zbog mogućnosti izbora osnovnih logičkih kola koja se mogu koristiti što je prikazano na slici 41. Transformacija druge lestvice ladder dijagrama u logičku šemu Slika 39.

f0=In4.f0=In3.g.f0=In5. a2. 37 PDF created with pdfFactory Pro trial version www.e.c.Slika 41.b.x. Kompletna logička funkcija dobijaena transformacijom ladder dijagrama Formiranje potrebnog koda na osnovu ovako dobijene funkcije se vrši na sledeći način: Prvo je neophodno definisati sve interne promenljive.h.f0=In6. /*Do ovog dela kod je prilagodljiv korisnickim potrebama*/ Nakon toga je potrebno ulazne signale (In1 do In8. d1.pdffactory.d2.d4. koji su osetljivi na promene stanja ulaznih pinova kontrolera) povezati sa internim signalima koji predstavljaju ulaze u logička kola prvog nivoa što je prikazano u sledećem delu koda: a1. što je predstaljeno u narednom delu koda: /*Deklarisanje neophodnih promenljivih*/ /*Ovaj deo koda je prilagodljiv korisnickim potrebama*/ volatile char a1.a2.d.f.k. d4.com . d3.j.f0=In2. d2.d1.f0=In1.d3.

F2 /*Definicije osnovnih logickih funkcija*/ 38 PDF created with pdfFactory Pro trial version www.F1 Out7 PORTE.f0.F3 Out5 PORTA. pa drugi i tako redom do zadnjeg nivoa logičkih kola što se vidi iz gore navedenog koda.f0).f0=INV(a1.f0.F5 Out3 PORTA.f0).com .f0=AND3(a1.F0 In2 PORTB.h.e. k. da de prvo obradi prvi nivo.F3 In5 PORTB.f0=OR3(f.f0=INV(a1. x. koji pobuđuju izlazne pinove kontolera) što u ovom slučaju predstavlja sledeći deo koda: Out1=x.a2.f0).F1 In8 PORTB.d3. j.f0). Na ovaj način se dobijaju sledeći delovi koda koje treba ugraditi u kompletan softver za programiranje kontolera. e.F4 Out4 PORTA.f0. Na kraju je potrebno interne signale sa izlaza logičkih kola zadnjeg nivoa povezati sa izlaznim signalima (Out1 do Out8.F7 Out1 PORTA.pdffactory.f0.f0=AND3(b.F0 In7 PORTB.f0=AND3(a1.f0).f0.d4. f. h.f0.f0).j.f0.F2 Out6 PORTE. c.f0).g.f0). d.F6 Out2 PORTA.f0.f0.a2.f0=OR2(k.f0).d1.f0.F5 In6 PORTB.F1 In3 PORTB.f0=INV(a2.c.f0).Sledeći korak je povezivanje pojedinačnih logičkih kola tako da se formira kompletna zadata logička šema što prikazuje sledeći deo koda: b.F2 In4 PORTB.f0=AND3(d.F0 Out8 PORTE.d2. g. Bitno je da redosled pozivanja funkcija odgovara nivoima logičkih funkcija tj.f0.f0=INV(a2.f0. /* Simulacija PLC kontrolera pomocu PIC16F877*/ #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define In1 PORTB. Kompletan kod koji predstavlja funkciju zadatu ladder dijagramom sa slike 48 je nadalje dat.

} int AND3(char a. trisb=1. return c.c. c= a | b.e.h. portb=0.x. char b. return c. return c.f.d2. char c) { char d.j.d4. char b) { char c. char c) { char d. d= a & b & c.b.d1. } int XOR(char a.int INV(char a) { a= ~a. c= a & b. /*Do ovog dela kod je prilagodljiv korisnickim potrebama*/ trisa=0. } int AND2(char a.k.com .d. porte=0. 39 PDF created with pdfFactory Pro trial version www. d= a | b | c. } int OR3(char a. trise=0. } void main(void) { /*Deklarisanje neophodnih promenljivih*/ /*Ovaj deo koda je prilagodljiv korisnickim potrebama*/ volatile char a1. char b. porta=0. return d.char b) { char c.a2.pdffactory.d3. } int OR2(char a.char b) { char c. return a. c= a ^ b. return d.g.

f0=INV(a1.f0).f0.d2. Out2=y.f0). x.j.a2.f0=In3.h.adcon1=0b00000111.f0.f0=OR2(k.f0.c.f0). delay_ms(200).f0.f0.d1.f0). f.f0. d4.pdffactory.g.f0).f0=INV(a2. prevedena kombinaciona funkcija je imala samo jedan izlaz.d3. c.f0=INV(a2.f0=AND3(a1.f0.f0. to treba shvatiti kao dva zasebna ladder dijagrama.f0. d2. g.f0=In2.f0). b.f0=In4. d1. Out1=x.f0.f0=In1. k.f0. while(1){ /*Zadavanje konkretne slozene funkcije*/ /*Ovaj deo koda je prilagodljiv korisnickim potrebama*/ a1. h. 40 PDF created with pdfFactory Pro trial version www.f0=In6.a2.com .f0=AND3(a1.f0). npr: Out1=x.f0.f0=INV(a1. pa će se tako na kraju dobiti kombinaciona funkcija odnosno mikroC kod koji ima više izlaza. j.d4.f0.f0.f0=AND3(d. Nadalje će biti navedeni primeri za laboratorijske vežbe.f0=AND3(b. d3. /*Do ovog dela kod je prilagodljiv korisnickim potrebama*/ } } Oba razrađena ladder dijagrama su na izlazu imali samo jednu akciju tj.f0).f0). koji odgovara broju akcija ladder dijagrama.f0=In5. e.f0=OR3(f. a2. osim ako oni međusobno nisu zavisni. U slučaju da se javi ladder dijagram sa više akcija na izlazu.f0). d.e.

com . 41 PDF created with pdfFactory Pro trial version www.pdffactory. Zadatka 3 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju. Zadatka 2 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.Primeri za laboratorijske vežbe Zadatka 1 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju. Zadatka 4 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

42 PDF created with pdfFactory Pro trial version www.Zadatka 5 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju. Zadatka 8 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.com . Zadatka 7 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.pdffactory. Zadatka 6 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

com .Zadatka 9 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju. Zadatka 11 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju. 43 PDF created with pdfFactory Pro trial version www. Zadatka 10 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.pdffactory.

Zadatka 13 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.com .Zadatka 12 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.pdffactory. 44 PDF created with pdfFactory Pro trial version www.

45 PDF created with pdfFactory Pro trial version www.Zadatka 14 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.com . Zadatka 16 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju. Zadatka 15 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.pdffactory.

Zadatka 18 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.pdffactory.com .Zadatka 17 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju. 46 PDF created with pdfFactory Pro trial version www.

47 PDF created with pdfFactory Pro trial version www.pdffactory.Zadatka 19 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.com . Zadatka 20 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

2007.pdffactory. Elektronski fakultet. 48 PDF created with pdfFactory Pro trial version www. Niš. Niš. Embedded sistemi.com .com mikroC Help . skripta. 2007. 2001.Literatura • PIC16F87X. Mikroelektronika. • Uvod u industrijske PLC kontrolere. Mikroelektronika.com Programiranje industrijskih kontolera. Microchip Tecnology Inc. Elektronski fakultet. • • • http://mikroe. Nebojša Matić. DATASHEET. http://mikroe. Mile Stojčev. Goran Đorđević.

com . Moguća su dalja dorađivanja kao na primer povećanje broja osnovnih kombinacionih funkcija kao i uvođenje sekvencijalnih logičkih funkcija.Zaključak PLC simulator je analiziran i detaljno razrađen. Postavljeni su bili jasni softverski i hardverski ciljevi. Nakon učitavanja programa u mikrokontroler izvršeno je testiranje celokupnog PLC simulatora. Testiranje je prošlo uspešno tako da se može zaključiti da je uprkos manjim poteškoćama uspešno realizovan sistem. 49 PDF created with pdfFactory Pro trial version www. Uz dalju analizu realizovani su hardver i softver.pdffactory.

jedan ili više tajmera (podesive i watchdog tajmere). kao i I/O linije za komunikaciju sa eksternim periferijama i dopunskim resursima – sve to treba da bude smešteno u jednom integrisanom kolu. Ideja je da se mikrokontroler isprogramira. karakteriše se manjim skupom instrukcija koje se brže izvšavaju od instrukcija kod CISC arhitekture. postavi u uređaj za kontrolu. U daljem tekstu detaljnije će biti opisani gradivni delovi mikrokontrolera PIC16F877. Ova arhitektura. memoriju za podatke (RAM). koja jasno definiše četiri osnovne komponente potrebne za embedded sistem. 50 PDF created with pdfFactory Pro trial version www.pdffactory.com . To uključuje CPU jezgro. zahteva da sve to odrade drugi čipovi. memoriju za program (ROM. Mikrokontroler PIC16F877 firme MICROCHIP predstavlja integraciju mikroprocesora (CPU). memorije i periferija. Tradicionalni mikroprocesor je rasterećen obaveze da komunicira direktno sa periferijom. On.Dodatak Opis mikrokontrolera PIC16F877 Većina današnjih mikrokontrolera je bazirano na Harvard arhitekturi. Ovaj mikrokontroler je izrađen u CMOS tehnologiji sa ugrađenom FLASH i EEPROM memorijom za memorisanje programa i podataka. naime. Mikrokontroler se u osnovi razlikuje od opštenamenskog mikroprocesorskog čipa po tome što ga je izuzetno lako pretovoriti u radni kompjuter. sa minimumom eksternih čipova za podršku. poveže na napajanje i stavi u funkciju. PIC16F877 ima tipičnu RISC arhtekturu. kao što je poznato. pa zato ne zahteva složeni eksterni hardver da bi se realizovao mikroračunarski sistem. EPROM ili Flash memorija).

pri frekvenciji 20 MHz Opkod obima 14 bita Harverski magacin sa osam nivoa Tri načina adresiranja (direktno.com . C. E Tri tajmera: . B.Timer2 (TMR2): 8-bitni tajmer/brojač_događaja • 10-bitni 8-kanalni analogno-digitalni (A/D) konvertor 51 PDF created with pdfFactory Pro trial version www.Timer0 (TMR0): 8-bitni tajmer/brojač_događaja .pdffactory. D.Timer1 (TMR1): 16-bitni tajmer/brojač_događaja .Slika 42. Raspored pinova kod mikrokontrolera PIC16F877 u kućištu DIP40 Osnovne karakteristike mikrokontrolera • • • • • • • • • • • • • RISC mikroprocesor visokih performansi 35 instrukcija obima jedne reči Radna frekvencija do 20 MHz Trajanje taktnog intervala 200 ns.indirektno i relativno) Programska flash memorija kapaciteta 8 k X 14-bitnih reči Memorije za podatke tipa RAM kapaciteta 368 X 8 bita Memorije za podatke EEPROM tipa kapaciteta 256 X 8 bita Prekidi (do 14 izvora prekida) U/I portovi: A.

Arhitektura poseduje odvojene magistrale za podatke i programski kod. USART Paralelna komunikacija: PSP Power-on Reset . Dakle. Sve instrukcije su istog obima (osim instrukcija grananja) i izvšavaju se za četiri taktna intervala. tajmere.• • • • • • • • • • Serijska komunikacija: MSSP. koja je prikazana na slici 43.pdffactory.6 mA pri naponu od 3V i radnoj frekvenciji od 4 MHz 20µA pri naponu od 3V i radnom taktu od 32kHz <1µA u standby režimu rada. USART (univerzalni sinhroni i asinhroni primo-predajnik).com . ukoliko se koristi oscilator od 20 MHz. mikrokontroler PIC16F877 poseduje tipičnu RISC arhitekturu.unošenje kašnjenja nakon stabilizovanja radne frekvencije oscilatora (OST) Sleep mode . ciklus instrukcije traje 200 ns. Na slici 6 prikazani su gradivni blokovi mikrokontrolera PIC16F877: • • • • • • • Flash programska memorija – 8 kiloreči obima 14 bita RAM (File Registers) – 368 bajtova Aritmetičko-logička jedinica (ALU) Akumulator (Working Register) Hardverski magacin (Stack) organizivan u 8 nivoa EEPROM memorija podataka obima 256 bajtova Višekanalni A/D konvertor. Obim podataka je 8-bitni. Moguće je protočno izvršenje (pipelining).5V Mala potrošnja energije: <0. 52 PDF created with pdfFactory Pro trial version www.unošenje kašnjenja nakon uključenja napajanja (PWRT) Oscillator Start-up Timer . dok je programski kod 14-bitni.režim rada sa malim utroškom energije Watchdog tajmer sa sopstvenim integrisanim RC oscilatorom za nezavisni rad Izbor tipa oscilatora Radni napon od 2V do 5. Arhitektura mikrokontrolera Kao što je istaknuto. portove itd.reset pri uključenju napajanja (POR) Power-up timer .

Arhitektura mikrokontrolera PIC16F877 Resursi mikrokontrolera koji su iskorišćeni su nadalje objašnjeni: Oscilator Kod mikrokontrolera PIC16F877 postoje četiri konfiguracije oscilatora: • • • • RC XT LP HS Resistor/Capacitor Crystal / Resonator Low Power Crystal High Speed Crystal / Resonator.Slika 43.com . 53 PDF created with pdfFactory Pro trial version www.pdffactory.

zbog stabilnosti preporučuje se vrednost oko 20pF. Ovde ćemo naglasiti kako je moguće koristiti i interni RC oscilator. a to je ilustrovano na slici 44. koji je integrisan u mikrokontroleru.com . XT.Najjednostavnija varijanta je RC oscilator. Vrednosti kondenzatora C1 i C2 (Slika 45). Kondenzator Cext se može čak i izostaviti. Na pinu OSC2/CLKOUT generiše se taktni impuls čija je perioda četiri puta veća od periode rada oscilatora. Izvan ovog opsega rad oscilatora nije stabilan i osetljiv je na spoljašne uticaje. Povezivanje eksternog RC oscilatora Frekvencija oscilovanja zavisi ne samo od vrednosti Rext i Cext. HS) 54 PDF created with pdfFactory Pro trial version www. Kod vremenski kritičnih aplikacija treba ugrađivati kvarcni oscilator ili keramički rezonator. Slika 45. Povezivanje eksternog kvarca (LP. već i od napona napajanja kao i radne temperature. Međutim. Slika 44. Vrednost otpornika Rext treba da bude u opsegu od 3 KΩ do 100K KΩ. Ovakav pristup je ispravan u aplikacijama u kojima se ne zahteva precizna procena vremenskih intervala.pdffactory. treba da budu identične.

Tabela 1.pdffactory. što je prikazano na slici 46. Dovođenje spoljašnjeg takta U Tabeli 1 dat je izbor vrednosti kondenzatora za različite vrednosti frekvencije kristalnog kvarca. kada ima izuzetno malu potrošnju. Slika 46. Na kraju ćemo istaći kako mikrokontroler PIC16F877 može da radi i na frekvenciji 32 kHz. dok je u Tabeli 2 predložen izbor vrednosti kondenzatora pri različitim vrednostima frekvencije rezonatora. Izbor vrednosti kondenzatora za kvarcni kristal 55 PDF created with pdfFactory Pro trial version www.com .Mikrokontroleru PIC16F877 može da se dovede i spoljašnji takt.

Tabela 2. Q3 i Q4. Kako bi se sprečilo slučajno dovođenje logičke 56 PDF created with pdfFactory Pro trial version www.pdffactory.pribavljanje instrukcije iz programske memorije Q2 .izvršenje naredbe iz prethodna dva instrukcijska ciklusa Q4 . Skup ovih signala čine jedan instrukcijski ciklus . taktni signali Q1-Q4 se koriste za sledeće namene: Q1 . Q2. Ako se mikrokontroler “blokira” .dekodiranje naredbe iz prethodnog instrukcijskog ciklusa Q3 . Reset Uloga Reseta je da sve registre mikrokontrolera dovede u početno stanje. neophodno je da se resetuje.com . ili smo ga tek uključili.prenos opkoda naredbe pozvane u Q1 u instrukcijski registar. Izbor vrednosti kondenzatora za rezonator Odnos između takta i instrukcijskog ciklusa Takt koji se dovodi na pin OSC1 oscilatora u mikrokontroleru deli se na četiri vremenski nepreklapajuća taktna signala nazvana Q1. U zavisnosti od trenutka generisanja u okviru ciklusa instrukcija.

PORTB. PORTD) • 6-pinski (PORTA) • 3-pinski (PORTE). vrednosti 10KΩ) poveže na pin napajanja Vdd. a njegovo čitanje rezultiraće čitanjem logičkih stanja direktno sa pinova. a potom korigovana vrednost upiše u latch porta. Upis u neki od tih registara iniciraće upis u latch tog porta. Postoji nekoliko tipova reseta kod mikrokontrolera PIC16F877 i to su: • Power-on reset (POR) • MCLR Reset pri normalnom režimu radu • MCLR Reset prilikom SLEEP režima rada • WDT Reset pri normalnom radu • WDT Wake-up (“buđenje” iz SLEEP režima rada) • Brown-out Reset (BOR). Svakom pinu bilo kojeg porta. zatim izvrši modifikacija.com . Konfiguracija smera prenosa ostvaruje se upisom na odgovarajuću bit-poziciju u pripadajućem TRIS registru (0 . Svakom portu je dodeljen registar podataka (PORTX). preko kojeg se programski pristupa U/I pinovima.pdffactory. Sve instrukcije upisivanja su tipa read-modify-write . u zavisnosti od režima rada. Pomenuti portovi su različitog obima: • 8-pinski (PORTB. PORTC. Nadalje su opisani portovi koji su iskorišćeni za realizaciju sistema.pin je izlazni. PORTC. potrebno je da se ovaj pin preko otpornika (npr. mogu da se dodele fiksne ili promenljive funkcije. 1 – pin je ulazni). Ne postoji velika razlika u konstrukciji pomenutih pet portova. PORTD i PORTE) i oni predstavljaju vezu njegove interne strukture sa spoljašnjim svetom.’0’ na MCLR. Svaki od njih može da se konfiguriše kao ulazni ili kao izlazni. Portovi PIC16F877 poseduje pet portova (PORTA. To znači da se pri upisu u port najpre očitaju stanja pinova. Sadržaj registra TRISA određuje smer (ulazni ili izlazni) 57 PDF created with pdfFactory Pro trial version www. PortA PortA je 6-bitni (RA5-RA0) bidirekcioni port (podaci mogu da se šalju u oba smera).

a za ostale pinove na slici 48.pinova na portu. Slika 47. RA2. Blok-dijagrami za pin RA4 je prikazan na slici 47.com . a RA2-RA0 su izlazni) itd. Blok-dijagram pina RA4 Sada ćemo kroz nekoliko primera ilustrovati postavljanje smerova na portu: • TRISA = 0b000000 (PORTA je izlazni) • TRISA = 0b111111 (PORTA je ulazni) • TRISA = 0b101000 (RA5 i RA3 pinovi su ulazni. a RA4.pdffactory. RA1 i RA0 su izlazni) • TRISA = 0b111000 (RA5-RA3 su ulazni. 58 PDF created with pdfFactory Pro trial version www.

59 PDF created with pdfFactory Pro trial version www.com . jer se u ove svrhe koriste i svi pinovi PortaE (i pinovi PortaA izuzev RA4). A/D konvertor. je 10-bitni sa 8 ulaznih kanala. RA3-RA0 PortA ima mogućnost analogno-digitalne konverzije i prvenstveno se koristi u te svrhe. Blok-dijagram pinova RA5. koji je integrisan u mikrokontroleru.Slika 48.pdffactory. Pin RA4 je sa otvorenim drejnom i može da se iskoristi za ulazni takt za tajmer TMR0.

Svakom pinu porta korespondira odgovarajući bit u registru TRISB. Kombinacija prekida na promenu stanja PortaB i pull-up otpornik mogu se iskoristiti kao jednostavan interfejs za tastaturu. Samo pinovi koji su definisani kao ulazni mogu da prouzrokuju prekid. Otpornici su isključeni i kod Power-on reseta. Na Slikama 49 i 50 prikazana je struktura PORTB. kojim se definiše smer.pdffactory. Pull-up otpornici se automatski isključuju kada se pin konfiguriše kao izlazni. To se postiže postavljanjem RBPU' bita na ‘0’. Svi pinovi unutar PortB poseduju pull-up otpornike. Četiri pina na PORTB (RB7-RB4) imaju mogućnost generisanja prekida. Funkcije PortaA i registri U Tabeli 3 dati su prikaz funkcija pojedinačnih pinova PortaA i registri koji se koriste za konfigurisanje porta. 60 PDF created with pdfFactory Pro trial version www. Port B Port B je 8-bitni bidirekcioni port.com . Ovi otpornici mogu da se uključe jednim kontrolnim bitom.Tabela 3.

Slika 49.pdffactory. Blok-dijagram pinova RB7-RB4 61 PDF created with pdfFactory Pro trial version www.com . Blok-dijagram pinova RB3-RB0 Slika 50.

Ima mogućnost A/D konverzije.U Tabeli 4 dati su prikaz funkcija pojedinačnih pinova PortaB i registri koji se koriste za konfigurisanje porta. Ulazni bafer je tipa Schmitt Trigger. Tabela 4.pdffactory. Modulu se pristupa preko pinova RC7 i RC6. o čemu je već bilo reči. Posebnost ovog porta se ogleda u tome što poseduje ugrađen USART modul. Funkcije PortaB i registri ’ Port C Port C je 8-bitni bidirekcioni port. kao i u slučaju PortaA. koji služi za serijsku komunikaciju (npr. Pinove treba softverski konfigurisati da budu u funkciji USART modula. sa racunarom ili drugim mikrokontro-lerom).com . 62 PDF created with pdfFactory Pro trial version www. Pinovi mogu da se konfigurišu kao digitalni ili analogni. Port E Port E je bidirekcioni veličine 3 bita.

Na slici 51 je prikazana šema veze kontrolera sa MAX232 čipom.com . Slika 51. Pošto naponski nivoi mikrokontrolera i PC-a nisu direktno kompatibilni sa navedenim RS-232 protokolom.pdffactory. Šema veze mikrokontrolera i MAX232 63 PDF created with pdfFactory Pro trial version www.Serijska komunikacija posredstvom MAX232 drajvera RS-232 komunikacija omogućava transfer podataka tipa point-topoint. Veza mikrokontrolera sa PC-jem je u ovom slučaju neophodna jer se preko nje programira mikrokontroler na način koji će kasnije biti opisan. neophodno je koristiti dodatni drajver odnosno pomerač nivoa kakav je na primer MAX232 koji je ovde iskorišćen.

Slika 53. U tu svrhu je upotrebljen drajver 74HC241 koji ima dovoljnu strujnu moć. Postoje 8 prekidača tako da je ceo jedan port (odnosno deo porta A i port E) proglašen za ulazni i sa njega se očitavaju vrednosti definisane prekidačima. Za izlazni port je proglašen port B na kome su priključene 8 LED dioda. tako da mogu svih 8 dioda da se pobude odjednom ako je to neophodno. 64 PDF created with pdfFactory Pro trial version www.U/I moduli Kao što smo već napomenuli. kao i LED dioda.pdffactory.com . Na slici 53 je prikazan izgled i funkcionalni dijagram drajvera 74HC241. neophodno je upotrebiti drajver za adekvatnu podudu LED dioda da ne bi došlo da pregorevanje mikrokontrolera. Pošto je mikrokontroler u stanju da da odnosno primi struju jačine 20mA maksimalno. po pinu. Slika 52. Na izlazu kontrolera nalaze se LED diode za indikaciju stanja izlaza. Izgled prekidača prikazan je na slici 52. ulaz kontrolera predstavljaju klik-klak prekidači koji preko otpornika na ulaz kontrolera dovode logičke naponske nivoe (VCC kao logička „jedinica“ ili GND kao logička „nula”).

Slika 54. Tako „ispeglan“ jednosmerni napon se vodi na stabilizator napona LM7805 sa čijeg izlaza se dalje napajaju ostale komponente adekvatnim.stabilnim jednosmernim naponom.Napajanje Za rad sistema je neophodan stabilan napon napajanja od 5V.pdffactory.com . Tako dobijeni napon se usmerava Grecovim mostom i filtrira elektrolitskim kondenzatorima. U tu svrhu je iskorišćen mrežni transformator koji spušta mrežni napon sa 230V na 9V. Blok šema datog napajanja je prikazana na slici 54. pošto se sve komponente sistema napajaju ovakvim naponom. 65 PDF created with pdfFactory Pro trial version www.

1985.com Mobilni telefon: 064/635 65 25 Obrazovanje: Elektrotehnička škola Kruševac Smer: Elektrotehničar automatike.B.com .C i E kategorije Adresa: selo Gornji Vratari.pdffactory. 37000 Kruševac E-mail: lakisa85@yahoo. IV stepen Ime: Aleksandar Prezime: Lakićević Datum rođenja: 20.com Mobilni telefon: 064/29 85 805 Obrazovanje: Elektrotehnička škola Kruševac Smer: Elektrotehničar automatike. 37230 Aleksandrovac E-mail: gosa46@yahoo. IV stepen 66 PDF created with pdfFactory Pro trial version www.10.6. Nacionalnost: Srbin Bračno stanje: Neoženjen Vozačka dozvola: A.1985.Biografije autora Ime: Aleksandar Prezime: Gošić Datum rođenja: 4. Nacionalnost: Srbin Bračno stanje: Neoženjen Vozačka dozvola: B kategorije Adresa: Ilije Katića 6.