You are on page 1of 67

UNIVERZITET U NIU

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

Simulacija PLC kontolera pomou


PIC16F877 mikrokontrolera

studenti:
Aleksandar Goi
11486
Aleksandar Lakievi 11523
mentor:
prof. dr Mile Stojev

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

Sadraj
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
Uitavanje HEX fajla u mikrokontrolerProgramiranje 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 vebe ...................................................................41
Literatura ....................................................................................................48
Zakljuak ....................................................................................................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 pomou PIC16F877 mikrokontrolera
simulira rad programabilnog logikog 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 nain rada PLC kontrolera bie pojanjena u prvom delu
teksta. Kasnije je opisan kompletan hardver sistema poevi od
mikrokontrolera pa nadalje. Zatim, bie opisani softveri za editivanje koda i
za uitavanje koda u mikrokontroler. Na kraju je objanjeno kako se pomou
osnovnih logikih funkcija realizuju konkretne sloene funkcije, to je
ilistrovano kroz nekoliko prostih primera.

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

PLC
PLC - industrijski raunar iji su hardver i softver posebno
prilagoeni radu u industrijskim uslovima, a koji se moe lako
programirati i ugraivati u nove i postojee industrijske sisteme.
PLC - digitalni elektronski ureaj koji poseduje programabilnu
memoriju za smetanje instrukcija kojima se realizuju specifine
funkcije, kao to su logiko sekvenciranje, tajming, brojanje i
artimetike operacije, a u cilju upravljanja razliitim mainama i
procesima putem digitalnih ili analognih ulazno/izlaznih modula.
PLC - namenski elektronski ureaj, zasnovan na mikroprocesoru,
koji je u mogunosti da obavlja brojne tipove upravljakih funkcija
razliitog nivoa sloenosti.
PLC - (Programmable) - oznaava mogunost programiranja.
Program rada se unapred priprema i puni u permanentu memoriju PLC
kontrolera. PLC program se razvija u jeziku lestviastih (ladder)
dijagrama, koji je nastao po ugledu na tzv. relejne eme.
PLC - (Logic) - jedna od glavnih osobina PLC kontrolera je
mogunost obavljanja logikih (bulovih) funkcija. PLC generie diskretne
(digitalne) izlazne signale u funkciji (logikoj) diskretnih ulaznih
signala - karakteristino za prvobitne tipove PLC kontrolera. Savremeni
PLC-ovi, pored logikih mogu da obavljaju: aritmetike operacije,
odmeravaju vremenske intervale, prebrojavaju dogaaje, a prihvataju i
generiu, pored diskretnih, i analogne signale.
PLC (Controller)- Glavna primena u industriji (proizvodnoj) gde se
koristi za automatsko upravljanje procesima - prati kljune parametre
procesa (posredstvom prikljuenih senzora i davaa, i shodno
memorisanom programu, generie pobudu kojom deluje na proces
(posredstvom aktuatora) - slika 1.

Slika 1. PLC - upravljaka jedinica procesa.

PLC kontroler se razlikuje od raunarskog sistema opte namene po


tome to nema spoljnu memoriju (diskove), kao i niz standardne
3
PDF created with pdfFactory Pro trial version www.pdffactory.com

ulazno/izlazne opreme. Pored toga, njegov operativni sistem je


jednostavniji i prua komparativno manje mogunosti od raunara opte
namene. Zapravo, PLC je koncipiran i projektovan za jedan relativno uzak
i jasno definisan obim poslova vezanih za nadzor i upravljanje pojedinim
ureajima, mainama i procesima, to je rezultovalo u njegovoj
izuzetnoj efikasnosti i jednostavnosti. U izvesnom smislu, podruje
primene PLC kontrolera isto je kao i za specijalizovane
mikroraunarske kontrolere ili signal procesore. Kljuna razlika lei u
injenici da korienje PLC-a ne zahteva od korisnika gotovo nikakvo
predznanje o arhitekturi mikroraunarskih sistema i programiranju.
Drugim reima, korisnik PLC kontrolera je u najveoj moguoj meri
osloboen reavanja razliitih problema vezanih za isto raunarski aspekt, i
moe da se u punoj meri skoncentrie na projektovanje same aplikacije. Na
slici 2 su prikazani savremeni komercijalni PLC-ovi.

Slika 2. Izgled PLC kontrolera

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

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

Slika 3. PLC sistem

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

Programiranje PLC-a. Ladder dijagrami


Kao to je ve ranije istaknuto, PLC je poetno razvijen sa idejom da
zameni relejne sisteme. To znai da se oekivalo da on realizuje
odgovarajuu vremensku sekvencu logikih operacija. Pored toga, uspena
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 (lestviastim) 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 ( ). Pomou njih je mogue realizovati sve osnovne logike
funkcije o emu e biti rei kasnije. Simbol za akciju je ( ) i ona se
izvrava 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
pomou mikrokontrolera simulira rad PLC-a. Za tu svrhu je iskorien
MICROCHIP-ov mikrokontroler PIC16F877. Konkretno, zadatak je bio da
se opiu osnovne logike kombinacione funkcije koje bi permanentno bile
smetene u softer mikrokontrolera, a da se konkretne sloene funkcije
realizuju, u glavnom delu softvera, povezivanjem osnovih logikih funkcija.
Sa jedne strane, na ulaz kontrolera potrebno je povezati prekidae, kao
ulazne module, koji e definisati stanje na ulazu logikih funkcija, a sa druge
strane potrebno je povezati LED diode, kao izlazne module, koje e sluiti
kao indikacija stanja na izlazu kontrolera.

Za realizaciju ovog simulatora upotrebljene su sledee komponente:


mikrokontroler PIC16F877 kao centralna procesorska jedinica;
MAX232 sa propratnim interfejsom za serijsku komunikaciju sa
raunarom putem koje se vri programiranje kontrolera;
klik-klak prekidai koji definiu logike ulaze kontrolera (visok ili
nizak nivo na ulazu kontrolera );
LED diode za indikaciju logikih stanja na izlazu kontrolera;
74HC241 drajver za poduivanje LED dioda;
RESET kolo za vraanje kontrolera na poetno stanje (resetovanje);
blok za napajanje sa stabilizatorom napona na 5V.

Na sledeim slikama su prikazane blok ema celog sistema kao i ema


tampane ploe odnosno PCB-a koje su izraene u programskom paketu
DXP korienjem programa Protel2004.

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

Slika 5. Blok ema kompletnog sistema

Slika 6. Izgled tampane ploe sistema


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

Slika 7. Realizovani PLC simulator

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

MIKROC Softver za programiranje PIC


mikrokontrolera
mikroC prestavlja moan softverski alat, koji je razvila beogradska
MikroElektronika, i namenjen je pisanju koda za MICROCHIP-ove PIC
mikrokontrolere. Koristei mikroC, programeru je omoguen jednostavan
nain da kontrolie proces programiranja i napravi kvalitetan firmware.
Osnovne karakteristike programa mikroC su sledee:

Pisanje C koda korienjem kvalitetnog editora, to se ogleda


automatskom kontrolom i upozorenjima vezanim za sintaksu koda,
korienih parametara, kao i automatskoj korekciji pojedinih
greaka;
Preglednost strukture programa (koda), promenljivih i funkcija
omoguava Code explorer;
Jasan asemblerski kod i standardna kompatibilnost generisanih
HEX datoteka toka programa preko ugraeg debagera (debugger);
Programer ima na raspolaganju veliki broj integrisanih biblioteka i
rutina, koje znaajno ubrzavaju pisanje programa;
Detaljan izvetaj i grafiko predstavljanje RAM i ROM mape,
statistike koda i slino.

Moramo da napomenemo kako mikroC odstupa od ANSI standarda u


nekoliko segmenata. Neka odstupanja su nainjena u cilju da se olaka
programiranje, dok su druge rezultat hardverskih ogranienja PIC
mikrokontrolera. Pomenuemo neke specifinosti:
Rekurzivne funkcije (function recursion) su podrane sa izvesnim
ogranienjima, koja su posledica neto sloenijeg pristupa
magacinu (stack) i ogranienja vezana za memoriju;
Pokazivai (pointers) promenljivih i pokazivai konstanti nisu
kompatibilni, tj. nije mogua meusobna dodela ili uporeivanje;
mikroC tretira oznaavanje const kao true constans (kod
C++), to omoguava korienje const objekta na mestima gde
ANSI C oekuje constant izraz .Ukoliko se tei ka prenosivosti
programa, treba koristiti tradicionalno pretprocesorsko definisanje
konstanti;

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

mikroC dozvoljava C++ stil jednolinijskih komentara, koristei


dve kose crte (//). Komentar moe da pone bilo gde i traje do
sledee nove linije programskog koda;
Brojne standardne C biblioteke (ctype, math, stdlib, string )
implementirane su u mikroC, uz individualna odstupanja.
Napominjemo da mikroC podrava gotovo sve PIC mikrokontrolere
serija 12, 16 i 18. Izuzetak su mikrokontroleri koji imaju staro hardversko
jezgro kao na primer PIC12C508, PIC12F508, PIC12C509, PIC12F509 itd.
Inae, ograniena verzija (do 2KB programa) moe da se preuzme sa sajta
MikroElektronike (www.mikroe.com). U sliaju ako se eli potpuna
verzija (neogranien kapacitet programa), mora da se plati licenca od 250$.
Instalacija
Ovde emo preko Slika 8-11 ilustrovati proces instaliranja mikroC-a.
Inae, instalacija traje 30 sekundi. Posle instalacije treba pokrenuti mikroC,
a to se najjednostavnije ostvaruje klikom na ikonicu:

Poetak procesa instalacije se ostvaruje klikom na izvrni fajl


mikroC_..._.exe . Nakon toga sledi:

Slika 8. Sada treba kliknuti na komandno dugme NEXT

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

Slika 9. 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.pdffactory.com

Slika 11. Izbor foldera za smetanje programa i klik na komandno dugme NEXT

Na kraju instalacije mikroC-a bie ponuena instalacija drajvera za


programator koju u ovom sluaju treba prekinuti izborom opcije No, jer e
se programiranje mikrokontrolera vriti na nain koji e kasnije biti opisan.

Editovanje koda
U narednim redovima bie ilustrovan postupak kreiranja koda u
mikroC-u (Slike 12-18).

Slika 12. Izgled editora po startovanju programa mikroC

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

Slika 13. Kreiranje novog projekta preko opcije Project New Project

Slika 14. Podeavanje parametara novog projekta (naziv, tip mikrokontrolera, takt,
parametri kontrolera)

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

Kod ovog koraka je neophodno u okviru prozora New Project


odabrati:
ime projekta;
njegovu putanju;
tip mikrokontrolera (u naem sluaju P16F877);
vrednost frekvencije kvarcnog kristala (u naem sluaju 8MHz);
i ekirati dugme Default.
Nakon toga pritisnuti Ok.

Slika 15. U editor treba uneti program (kod) mikrokontrolera

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

Slika 16. U editor je unet primer zadate funkcije

Slika 17. Sada treba izvriti prevoenje (compile) programa preko opcije Project
Build

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

Slika 18. Izgled prozora posle kompilacije sa izvetajem (Messages)

Kao produkti prevoenja (kompilacije/kompajliranja) generie se


nekoliko fajlova: asemblerski kod (ASM), heksadecimalni kod (HEX),
izvetaji itd. Nama je od daljeg znaaja HEX fajl jer on predstavlja kod koji
treba spustiti u mikrokontroler, odnosno kod kojim se programira
mikrokontroler.

Uitavanje HEX fajla u mikrokontroler


Programiranje
mikrokontrolera
Jedan od naina na koji se programira mikrokontroler (sputanje
HEX fajla) je uitavanje HEX fajla posredstvom mikroBootloader-a,
programa koji je sastavni deo paketa mikroC. Na taj nain se izbegava
potreba dodatnog programatora ime se ureaj znaajno pojeftinjuje i
pojednostavljuje. Sve to je potrebno je da se ostvari serijska veza
mikrokontrolera i PC-a, a to se veoma jednostavno postie povezivanjem
USART terminala mikrokontrolera na COM port PC-a, posredstvom
17
PDF created with pdfFactory Pro trial version www.pdffactory.com

neophodnog drajvera za RS-232 komunikaciju (MAX232 sa propratnim


hardverom odnosno elektrolitskim kondenzatorima) i kabla (neupredeni
1na1) za RS-232 komunikaciju. Ostvarivanje ove veze je predhodno
detaljnije objanjeno.
Da bi se na ovaj nain isprogramirao mikrokontroler ipak je neophodno
da se prvo u njega, pomou adekvatnog programatora, uita kod koji e
nadalje omoguiti komunikaciju mikrokontrolera i mikroBootloader-a. Na
taj nain potreba za programatorom postoji samo pri prvom programiranju
mikrokontrolera, te se on ne mora ugradjivati u ureaj to ga je uinilo
znaajno jeftinijim i jednostavnijim, a svaki naredni put se programiranje
vri preko serijskog porta (USART terminala) korienjem programa
mikroBootloader.
Takoe je mogue kupiti mikrokontroler sa ve ugraenim kodom za
programiranje putem serijskog porta (USART terminala) korienjem nekog
bootloader-a.
Postupak programiranja je sledei:
Najpre je potrebno uitati kod za komunikaciju sa mikroBootloaderom posredstvom nekog programatora u mikrokontroler. U tu svrhu je
iskorieno razvojno okruenje firme MikroElektronika iz Beograda dato
na slici 19.

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

Slika 19. Razvojno okruenje EasyPIC4

Uitavanje datog koda se vri na sledei nain:


U okviru primera koji se dobijaju uz navedeno razvojno okruenje
nalazi se i neophodan kod koji se nalazi u sistemskom folderu programa
mikroC ija putanja je sledea:
...\Mikroelektronika\mikroC\Examples\EasyPic4\extra_examples\Bootloader\P16

Kada je program otvoren programiranje se vri jednostavnim


pritiskom na dugem Build+Program kao na slici 32.

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

Slika 20. Uitavanje bootloader koda

Poto je mikrokontroler isprogramiran kodom za komunikaciju sa


mikroBootloader-om moe se izvaditi iz okruenja i ugraditi u razvijeni
sistem.
Kada je i to obavljeno, dalje programiranje kontrolera se vri na
sledei nain:
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.pdffactory.com

Slika 21. Pokretanje mikroBootloader-a

Na sledeoj slici je prikazan izgled mikroBootloader-a.

Slika 22. Izgled mikroBootloader-a

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

Uspostavljanje veze se vri na sledei nain:


Najpre je potrebno izvriti prikljuivanje sistema na napajanje i COM
port PC-a.
Kada je program mikroBootloader pokrenut potrebno je podesiti RS232 komunikaciju biranjem opcije Setup Port na nain prikazan na slici 23.

Slika 23. Podeavanje RS-232 komunikacije

Poto je sve to obavljeno neophodno je resetovati mikrokontroler


pritiskom na taster predvien za reset i u roku od dve sekunde inicirati
konekciju pritiskom na opciju Connect. Ako je konekcija uspeno obavljena
pojavie se prozor kao na slici 24.

Slika 24. Uspeno obavljena konekcija

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

U suprotnom e se pojaviti prozor prikazan na slici 25 to znai da


neki od koraka nije ispotovan. U tom sluaju treba ponoviti algoritam
konektovanja poevi od koraka sa slike 22.

Slika 25. Neuspena konekcija usled loeg setovanja porta(Setup Port) ili usled
isticanja vremenskog intervala od dve sekunde za iniciranje komunikacije nakon
resetovanja mikrokontrolera

Ako je konekcija uspeno izvrena (slika 24) potrebno je uitati ve


izgenerisani HEX fajl sa zadatom funkcijom, biranjem opcije Open HEX file
kao na slikama 26 i 27.
Na samom kraju, programiranje mikrokontrolera se vri opcijom Start
bootloader. Kada se uitavanje HEX fajla zavri, 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
izvravanje zadate funkcije.

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

Slika 26. Otvaranje adekvatnog HEX fajla

Slika 27. Izgled prozora nakon uitanog HEX fajla nakon ega je potrebno
startovati bootloader opcijom Start bootloader

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

Slika 28. Izgled prozora nakon uspeno izvrenog programiranja


mikrokontrolera. Dalje je potrebno pritisnuti dugme Ok i resetovati mikrokontroler

Princip rada bootloadera


Ovakav vid programiranja je specifian za PIC mikrokotrolere. Nain
na koji se programiranje zapravo odvija je sledei:
Kod koji je prvo uitan u mikrokontroler (preko programatora) je
smeten na samom poetku ROM memorije predviene za smetanje
programa rada mikrokontrolera. On ima funkciju da nakon svakog
resetovanja kontrolera u toku prve 2 sekunde nadgleda USART terminal.
Ukoliko je sistem prikljuen na COM port PC-a i u toku od te 2 sekunde
usledi inicijalizacija konekcije kao na slici 36 bootloader program e skoiti
na prvu liniju ispod sebe i na taj nain omoguiti upisivanje konkretnog
programa u prostor predvien za te svrhe. A ako ne doe do iniciranja
konekcije u roku od 2 sekunde bootloader program takoe skae na prvu
liniju ispod sebe i ako ve postoji uitan konkretan zadati program,
mikrokontroler kree sa njegovim izvrenjem. U suprotnom se ne deava
nita sve dok se mikrokontroler ponovo ne resetuje.
Na taj nain je programator potreban samo pri prvom programiranju
mikrokontrolera pa je njegova ugradnja na sistem nepotrebna iako je sistem
neophodno programirati vie puta. Jedina mana je to je nemogue zatititi
kod, jer bi se na taj nain onemoguilo ponovno programiranje bez dodatnog
programatora pa bi ovaj nain programiranja bio apsurdan.

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

Realizacija softvera - Realizacija zadate


kombinacione funkcije
Kao to je ve poznato PLC kontroleri se programiraju putem ladder
dijagrama. Poto je ovakav nain programiranja klasinog mikrokontrolera
(PIC) praktino nemogu zbog nemogunosti kompajlera da to obavi, dalji
tok projektovanja se zasnivao na tome da se realizuju sledee logike
funkcije koje bi podseale na osnovne logike funkcije koje se koriste u
ladder dijagramima:
AND 2 - dvoulazno I kolo;
AND 3 trulazno I kolo;
OR 2 dvoulazno ILI kolo;
OR 3 troulazno ILI kolo;
XOR ekskluzivno ILI kolo;
NOT Invertor.
Ispod su navedeni delovi koda u kome su opisane date funkcije u
mikroC kompajleru koje zapravo predstavljaju osnovna logika kola
digitalne elektronike kao i njihovi odgovarajui simboli sa leve strane i
ekvivalenti simboli ladder dijagrama sa desne strane:
Invertor (NOT funkcija)
int INV(char a)
{
a= ~a;
return a;
}

Simbol NOT funkcije

Simbol normalo zatvorenog prekidaa koji u ladder


dijagramu odgorara NOT funkciji

Dvoulazno I kolo (AND2)


int AND2(char a, char b)
{
char c;
c= a & b;
return c;
}

Simbol AND2 funkcije

Simbol koji u ladder dijagramu odgovara


AND2 funkciji

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

Troulazno I kolo (AND3)


int AND3(char a, char b, char c)
{
char d;
d= a & b & c;
return d;
}

Simbol AND3 funkcije

Simbol koji u ladder dijagramu odgovara


AND3 funkciji

Dvoulazno ILI kolo (OR2)


int OR2(char a,char b)
{
char c;
c= a | b;
return c;
}

Simbol OR2 funkcije

Simbol koji u ladder dijagramu odgovara


OR2 funkciji

Troulazno ILI kolo (OR3)


int OR3(char a, char b, char c)
{
char d;
d= a | b | c;
return d;
}

Simbol OR3 funkcije

Simbol koji u ladder dijagramu odgovara


OR3 funkciji

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

XOR kolo
int XOR(char a,char b)
{
char c;
c= a ^ b;
return c;
}

Simbol XOR funkcije

Simbol koji u ladder dijagramu odgovara


XOR funkciji

Na osnovu navedenih logikih funkcija mogue je, njihovim spajanjem,


realizovati bilo koju sloenu logiku funkciju.

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

Transformacija ladder dijagrama u mikroC kod


Kroz naredna dva primera bie ilustrovano kako se od zadatog ladder
dijagrama dolazi do mikroC koda.

Primer 1:
Na osnovu zadatog ladder dijagrama sa slike 29 isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

Slika 29.

Prvi korak je transformisanje ladder dijagrama u dijagram logikih


funcija (digitalne elektornike). Najpre je potrebno uoiti segmente ladder
dijagrama koji se direktno mogu zameniti ekvivalentnom logikom
funkcijom kao to je prethodno objanjeno. Sledee slike iliustruju kako se
od zadatog ladder diajagrama sa slike 29 prelazi na dijagram osnovnih
logikih funkcija, korak po korak.

Slika 30. Transformacija prve lestvice ladder dijagrama u logiku emu

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

Slika 31. Transformacija druge lestvice ladder dijagrama u logiku emu

Slika 32. Transformacija tree lestvice ladder dijagrama u logiku emu

Poto su prethodno ilustrovane lestvice ladder dijagrama povezene


paraleleno, zakljuu je se da su sve logike eme povezane u jedno troulazno
ILI kolo, pa se na taj nain dobija kompletna logika funkcija kao na slici
33, koja je potpuno ekvivalentna ladder dijagramu sa slike 29. Izlaz A date
konbinacione funkcije odgovara akciji A sa slike 29.

Slika 33.

Drugi korak predstavlja transformaciju dobijene logike eme u


mikroC kod za programiranje kontrolera. Sada je najpre potrebno obeleiti
interne signale kao to je prikazano na slici 34 da bi se u kodu omoguilo
spajanje dobijenih logikih funkcija.

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

Slika 34.

Formiranje potrebnog koda na osnovu ovako dobijene funkcije se vri na


sledei nain:
Prvo je neophodno definisati sve interne promenljive, to je predstaljeno u
narednom delu koda:
/*Deklarisanje neophodnih promenljivih*/
/*Ovaj deo koda je prilagodljiv korisnickim potrebama*/
volatile char a,b,c,d,e,f,b1,d1,f1,i,j,k;
/*Do ovog dela kod je prilagodljiv korisnickim potrebama*/

Nakon toga je potrebno ulazne signale (In1 do In8, koji su osetljivi na


promene stanja ulaznih pinova kontrolera) povezati sa internim signalima
koji predstavljaju ulaze u logika kola prvog nivoa to je prikazano u
sledeem delu koda:
b.f0=In1;
c.f0=In2;
d.f0=In3;
e.f0=In4;
f.f0=In5;

Sledei korak je povezivanje pojedinanih logikih kola tako da se formira


kompletna zadata logika ema to prikazuje sledei deo koda:
b1.f0=INV(b.f0);
d1.f0=INV(d.f0);
f1.f0=INV(f.f0);
i.f0=AND3(b1.f0,c.f0,d1.f0);
j.f0=AND3(b1.f0,c.f0,e.f0);
k.f0=AND3(b1.f0,c.f0,f1.f0);
a.f0=OR3(i.f0,j.f0,k.f0);

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

Bitno je da redosled pozivanja funkcija odgovara nivoima logikih funkcija


tj. da de prvo obradi prvi nivo, pa drugi i tako redom do zadnjeg nivoa
logikih kola to se vidi iz gore navedenog koda.
Na kraju je potrebno interne signale sa izlaza logikih kola zadnjeg nivoa
povezati sa izlaznim signalima (Out1 do Out8, koji pobuuju izlazne pinove
kontolera) to u ovom sluaju predstavlja sledei deo koda:
Out1=a.f0;

Na ovaj nain se dobijaju sledei delovi koda koje treba ugraditi u


kompletan softver za programiranje kontolera.
/*Deklarisanje neophodnih promenljivih*/
/*Ovaj deo koda je prilagodljiv korisnickim potrebama*/
volatile char a,b,c,d,e,f,b1,d1,f1,i,j,k;
/*Do ovog dela kod je prilagodljiv korisnickim potrebama*/

/*Zadavanje konkretne slozene funkcije*/


/*Ovaj deo koda je prilagodljiv korisnickim potrebama*/
b.f0=In1;
c.f0=In2;
d.f0=In3;
e.f0=In4;
f.f0=In5;
b1.f0=INV(b.f0);
d1.f0=INV(d.f0);
f1.f0=INV(f.f0);
i.f0=AND3(b1.f0,c.f0,d1.f0);
j.f0=AND3(b1.f0,c.f0,e.f0);
k.f0=AND3(b1.f0,c.f0,f1.f0);
a.f0=OR3(i.f0,j.f0,k.f0);
Out1=a.f0;
/*Do ovog dela kod je prilagodljiv korisnickim potrebama*/

Bitno je zapaziti da su definisane promenljive tipa char, to znai da one


zauzimaju memoriju veliine 1 bajt (8 bitova), poto je u ovom kompajleru
nemogue definisati promenljivu tipa bit (kakva bi u ovom sluaju
odgovrala jer su svi signali jedno-bitni). Da ne bi dolo do kolizije,
neophodno je u oznaenom delu koda, svakoj promenljivoj dodati eksteziju
.fo to oznaava da se primenjene operacije izvravaju samo nad njenim
prvim bitom ime je ostvarena kompatibilnost izmeu realnih signala i

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

promenljivih koje su im dodeljene, kao to je prikazano u gore navedenom


delu koda.
Kompletan kod koji predstavlja funkciju zadatu ladder dijagramom sa slike
41 je nadalje dat.
/* Simulacija PLC kontrolera pomocu PIC16F877*/
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define

In1 PORTB.F7
Out1 PORTA.F0
In2 PORTB.F6
Out2 PORTA.F1
In3 PORTB.F5
Out3 PORTA.F2
In4 PORTB.F4
Out4 PORTA.F3
In5 PORTB.F3
Out5 PORTA.F5
In6 PORTB.F2
Out6 PORTE.F0
In7 PORTB.F1
Out7 PORTE.F1
In8 PORTB.F0
Out8 PORTE.F2

/*Definicije osnovnih logickih funkcija*/


int INV(char a)
{
a= ~a;
return a;
}
int AND2(char a, char b)
{
char c;
c= a & b;
return c;
}
int AND3(char a, char b, char c)
{
char d;
d= a & b & c;
return d;
}
int OR2(char a,char b)
{
char c;
c= a | b;
return c;
}
int OR3(char a, char b, char c)
{
char d;
d= a | b | c;
return d;
}

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

int XOR(char a,char b)


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

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

Kada je potrebno realizovati odgovarajuu zadatu funkciju u gore


navedenom kodu je potrebno zameniti samo one delove koda koji su
obeleeni kao delovi koda prilagodljivi korisnikim potrebama.
U predstojeem delu je ilustrovan jo jedan primer koji opisuje
kompletan postupak projektovanja.

Primer 2:
U mikroC-u realizovati kombinacionu funkciju multipleksksera iji je
opis dat na sledeim slikama:

Slika 35. Blok ema i tabela istinitosti multipleksera

Slika 36. Ladder dijagram datog multipleksera

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

Prvi korak je transformisanje ladder dijagrama u dijagram logikih


funcija (digitalne elektornike).

Slika 37. Transformacija prve lestvice ladder dijagrama u logiku emu

Slika 38. Transformacija druge lestvice ladder dijagrama u logiku emu

Slika 39. Transformacija tree lestvice ladder dijagrama u logiku emu

Slika 40. Transformacija etvrte lestvice ladder dijagrama u logiku emu

Poto su prethodno ilustrovane lestvice ladder dijagrama povezene


paraleleno, zakljuu je se da je neophodno ostvariti sledeu vezu, zbog
mogunosti izbora osnovnih logikih kola koja se mogu koristiti to je
prikazano na slici 41.

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

Slika 41. Kompletna logika funkcija dobijaena transformacijom ladder dijagrama

Formiranje potrebnog koda na osnovu ovako dobijene funkcije se vri na


sledei nain:
Prvo je neophodno definisati sve interne promenljive, to je predstaljeno u
narednom delu koda:
/*Deklarisanje neophodnih promenljivih*/
/*Ovaj deo koda je prilagodljiv korisnickim potrebama*/
volatile char a1,a2,d,d1,d2,d3,d4,b,c,e,f,g,h,j,k,x;
/*Do ovog dela kod je prilagodljiv korisnickim potrebama*/

Nakon toga je potrebno ulazne signale (In1 do In8, koji su osetljivi na


promene stanja ulaznih pinova kontrolera) povezati sa internim signalima
koji predstavljaju ulaze u logika kola prvog nivoa to je prikazano u
sledeem delu koda:
a1.f0=In1;
a2.f0=In2;
d1.f0=In3;
d2.f0=In4;
d3.f0=In5;
d4.f0=In6;

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

Sledei korak je povezivanje pojedinanih logikih kola tako da se formira


kompletna zadata logika ema to prikazuje sledei deo koda:
b.f0=INV(a1.f0);
c.f0=INV(a2.f0);
d.f0=INV(a1.f0);
e.f0=INV(a2.f0);
f.f0=AND3(b.f0,c.f0,d1.f0);
g.f0=AND3(d.f0,a2.f0,d2.f0);
h.f0=AND3(a1.f0,e.f0,d3.f0);
j.f0=AND3(a1.f0,a2.f0,d4.f0);
k.f0=OR3(f.f0,g.f0,h.f0);
x.f0=OR2(k.f0,j.f0);

Bitno je da redosled pozivanja funkcija odgovara nivoima logikih funkcija


tj. da de prvo obradi prvi nivo, pa drugi i tako redom do zadnjeg nivoa
logikih kola to se vidi iz gore navedenog koda.
Na kraju je potrebno interne signale sa izlaza logikih kola zadnjeg nivoa
povezati sa izlaznim signalima (Out1 do Out8, koji pobuuju izlazne pinove
kontolera) to u ovom sluaju predstavlja sledei deo koda:
Out1=x.f0;

Na ovaj nain se dobijaju sledei delovi koda koje treba ugraditi u


kompletan softver za programiranje kontolera.
Kompletan kod koji predstavlja funkciju zadatu ladder dijagramom sa slike
48 je nadalje dat.
/* Simulacija PLC kontrolera pomocu PIC16F877*/
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define

In1 PORTB.F7
Out1 PORTA.F0
In2 PORTB.F6
Out2 PORTA.F1
In3 PORTB.F5
Out3 PORTA.F2
In4 PORTB.F4
Out4 PORTA.F3
In5 PORTB.F3
Out5 PORTA.F5
In6 PORTB.F2
Out6 PORTE.F0
In7 PORTB.F1
Out7 PORTE.F1
In8 PORTB.F0
Out8 PORTE.F2

/*Definicije osnovnih logickih funkcija*/

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

int INV(char a)
{
a= ~a;
return a;
}
int AND2(char a, char b)
{
char c;
c= a & b;
return c;
}
int AND3(char a, char b, char c)
{
char d;
d= a & b & c;
return d;
}
int OR2(char a,char b)
{
char c;
c= a | b;
return c;
}
int OR3(char a, char b, char c)
{
char d;
d= a | b | c;
return d;
}

int XOR(char a,char b)


{
char c;
c= a ^ b;
return c;
}
void main(void)
{
/*Deklarisanje neophodnih promenljivih*/
/*Ovaj deo koda je prilagodljiv korisnickim potrebama*/
volatile char a1,a2,d,d1,d2,d3,d4,b,c,e,f,g,h,j,k,x;
/*Do ovog dela kod je prilagodljiv korisnickim potrebama*/
trisa=0;
trisb=1;
trise=0;
porta=0;
portb=0;
porte=0;

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

adcon1=0b00000111;
delay_ms(200);
while(1){
/*Zadavanje konkretne slozene funkcije*/
/*Ovaj deo koda je prilagodljiv korisnickim potrebama*/
a1.f0=In1;
a2.f0=In2;
d1.f0=In3;
d2.f0=In4;
d3.f0=In5;
d4.f0=In6;
b.f0=INV(a1.f0);
c.f0=INV(a2.f0);
d.f0=INV(a1.f0);
e.f0=INV(a2.f0);
f.f0=AND3(b.f0,c.f0,d1.f0);
g.f0=AND3(d.f0,a2.f0,d2.f0);
h.f0=AND3(a1.f0,e.f0,d3.f0);
j.f0=AND3(a1.f0,a2.f0,d4.f0);
k.f0=OR3(f.f0,g.f0,h.f0);
x.f0=OR2(k.f0,j.f0);
Out1=x.f0;
/*Do ovog dela kod je prilagodljiv korisnickim potrebama*/
}
}

Oba razraena ladder dijagrama su na izlazu imali samo jednu akciju tj.
prevedena kombinaciona funkcija je imala samo jedan izlaz. U sluaju da se
javi ladder dijagram sa vie akcija na izlazu, to treba shvatiti kao dva
zasebna ladder dijagrama, osim ako oni meusobno nisu zavisni, pa e se
tako na kraju dobiti kombinaciona funkcija odnosno mikroC kod koji ima
vie izlaza, koji odgovara broju akcija ladder dijagrama, npr:
Out1=x.f0;
Out2=y.f0;

Nadalje e biti navedeni primeri za laboratorijske vebe.

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

Primeri za laboratorijske vebe


Zadatka 1
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

Zadatka 2
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

Zadatka 3
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

Zadatka 4
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

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

Zadatka 5
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

Zadatka 6
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

Zadatka 7
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

Zadatka 8
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

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

Zadatka 9
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

Zadatka 10
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

Zadatka 11
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

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

Zadatka 12
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

Zadatka 13
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

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

Zadatka 14
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

Zadatka 15
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

Zadatka 16
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

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

Zadatka 17
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

Zadatka 18
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

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

Zadatka 19
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

Zadatka 20
Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati
kontroler da obavlja datu kombinacionu funkciju.

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

Literatura
PIC16F87X, DATASHEET, Microchip Tecnology Inc, 2001.
Uvod u industrijske PLC kontrolere, Neboja Mati, Mikroelektronika,

http://mikroe.com
mikroC Help , Mikroelektronika, http://mikroe.com
Programiranje industrijskih kontolera, Goran orevi, skripta, Elektronski
fakultet, Ni, 2007.
Embedded sistemi, Mile Stojev, Elektronski fakultet, Ni, 2007.

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

Zakljuak
PLC simulator je analiziran i detaljno razraen. Postavljeni su bili
jasni softverski i hardverski ciljevi. Uz dalju analizu realizovani su hardver i
softver. Nakon uitavanja programa u mikrokontroler izvreno je testiranje
celokupnog PLC simulatora. Testiranje je prolo uspeno tako da se moe
zakljuiti da je uprkos manjim potekoama uspeno realizovan sistem.
Mogua su dalja doraivanja kao na primer poveanje broja osnovnih
kombinacionih funkcija kao i uvoenje sekvencijalnih logikih funkcija.

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

Dodatak
Opis mikrokontrolera PIC16F877
Veina dananjih mikrokontrolera je bazirano na Harvard arhitekturi,
koja jasno definie etiri osnovne komponente potrebne za embedded sistem.
To ukljuuje CPU jezgro, memoriju za program (ROM, EPROM ili Flash
memorija), memoriju za podatke (RAM), jedan ili vie tajmera (podesive i
watchdog tajmere), kao i I/O linije za komunikaciju sa eksternim
periferijama i dopunskim resursima sve to treba da bude smeteno u
jednom integrisanom kolu. Mikrokontroler se u osnovi razlikuje od
optenamenskog mikroprocesorskog ipa po tome to ga je izuzetno lako
pretovoriti u radni kompjuter, sa minimumom eksternih ipova za podrku.
Ideja je da se mikrokontroler isprogramira, postavi u ureaj za kontrolu,
povee na napajanje i stavi u funkciju.
Tradicionalni mikroprocesor je rastereen obaveze da komunicira
direktno sa periferijom. On, naime, zahteva da sve to odrade drugi ipovi.
Mikrokontroler
PIC16F877
firme MICROCHIP predstavlja
integraciju mikroprocesora (CPU), memorije i periferija, pa zato ne zahteva
sloeni eksterni hardver da bi se realizovao mikroraunarski sistem.
Ovaj mikrokontroler je izraen u CMOS tehnologiji sa ugraenom FLASH i
EEPROM memorijom za memorisanje programa i podataka. PIC16F877 ima
tipinu RISC arhtekturu. Ova arhitektura, kao to je poznato, karakterie se
manjim skupom instrukcija koje se bre izvavaju od instrukcija kod CISC
arhitekture.
U daljem tekstu detaljnije e biti opisani gradivni delovi
mikrokontrolera PIC16F877.

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

Slika 42. Raspored pinova kod mikrokontrolera PIC16F877 u kuitu DIP40

Osnovne karakteristike mikrokontrolera

RISC mikroprocesor visokih performansi


35 instrukcija obima jedne rei
Radna frekvencija do 20 MHz
Trajanje taktnog intervala 200 ns, pri frekvenciji 20 MHz
Opkod obima 14 bita
Harverski magacin sa osam nivoa
Tri naina adresiranja (direktno,indirektno i relativno)
Programska flash memorija kapaciteta 8 k X 14-bitnih rei
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, B, C, D, E
Tri tajmera:
- Timer0 (TMR0): 8-bitni tajmer/broja_dogaaja
- Timer1 (TMR1): 16-bitni tajmer/broja_dogaaja
- Timer2 (TMR2): 8-bitni tajmer/broja_dogaaja
10-bitni 8-kanalni analogno-digitalni (A/D) konvertor
51
PDF created with pdfFactory Pro trial version www.pdffactory.com

Serijska komunikacija: MSSP, USART


Paralelna komunikacija: PSP
Power-on Reset - reset pri ukljuenju napajanja (POR)
Power-up timer - unoenje kanjenja nakon ukljuenja napajanja
(PWRT)
Oscillator Start-up Timer - unoenje kanjenja nakon
stabilizovanja radne frekvencije oscilatora (OST)
Sleep mode - reim rada sa malim utrokom energije
Watchdog tajmer sa sopstvenim integrisanim RC oscilatorom za
nezavisni rad
Izbor tipa oscilatora
Radni napon od 2V do 5.5V
Mala potronja energije:
<0.6 mA pri naponu od 3V i radnoj frekvenciji od 4 MHz
20A pri naponu od 3V i radnom taktu od 32kHz
<1A u standby reimu rada.

Arhitektura mikrokontrolera
Kao to je istaknuto, mikrokontroler PIC16F877 poseduje tipinu
RISC arhitekturu, koja je prikazana na slici 43. Arhitektura poseduje
odvojene magistrale za podatke i programski kod. Obim podataka je
8-bitni, dok je programski kod 14-bitni. Mogue je protono izvrenje
(pipelining). Sve instrukcije su istog obima (osim instrukcija grananja) i
izvavaju se za etiri taktna intervala. Dakle, ukoliko se koristi oscilator od
20 MHz, ciklus instrukcije traje 200 ns. Na slici 6 prikazani su gradivni
blokovi mikrokontrolera PIC16F877:

Flash programska memorija 8 kilorei obima 14 bita


RAM (File Registers) 368 bajtova
Aritmetiko-logika jedinica (ALU)
Akumulator (Working Register)
Hardverski magacin (Stack) organizivan u 8 nivoa
EEPROM memorija podataka obima 256 bajtova
Viekanalni A/D konvertor, USART (univerzalni sinhroni i
asinhroni primo-predajnik), tajmere, portove itd.

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

Slika 43. Arhitektura mikrokontrolera PIC16F877

Resursi mikrokontrolera koji su iskorieni su nadalje objanjeni:


Oscilator
Kod mikrokontrolera PIC16F877 postoje etiri konfiguracije oscilatora:

RC
XT
LP
HS

Resistor/Capacitor
Crystal / Resonator
Low Power Crystal
High Speed Crystal / Resonator.

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

Najjednostavnija varijanta je RC oscilator, a to je ilustrovano na slici 44.


Ovakav pristup je ispravan u aplikacijama u kojima se ne zahteva precizna
procena vremenskih intervala. Ovde emo naglasiti kako je mogue koristiti
i interni RC oscilator, koji je integrisan u mikrokontroleru.

Slika 44. Povezivanje eksternog RC oscilatora

Frekvencija oscilovanja zavisi ne samo od vrednosti Rext i Cext, ve i


od napona napajanja kao i radne temperature. Vrednost otpornika Rext treba
da bude u opsegu od 3 K do 100K K. Izvan ovog opsega rad oscilatora
nije stabilan i osetljiv je na spoljane uticaje. Kondenzator Cext se moe ak
i izostaviti. Meutim, zbog stabilnosti preporuuje se vrednost oko 20pF. Na
pinu OSC2/CLKOUT generie se taktni impuls ija je perioda etiri puta
vea od periode rada oscilatora.
Kod vremenski kritinih aplikacija treba ugraivati kvarcni oscilator ili
keramiki rezonator. Vrednosti kondenzatora C1 i C2 (Slika 45), treba da
budu identine.

Slika 45. Povezivanje eksternog kvarca (LP, XT, HS)

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

Mikrokontroleru PIC16F877 moe da se dovede i spoljanji takt, to


je prikazano na slici 46.

Slika 46. Dovoenje spoljanjeg takta

U Tabeli 1 dat je izbor vrednosti kondenzatora za razliite vrednosti


frekvencije kristalnog kvarca, dok je u Tabeli 2 predloen izbor vrednosti
kondenzatora pri razliitim vrednostima frekvencije rezonatora.
Na kraju emo istai kako mikrokontroler PIC16F877 moe da radi i na
frekvenciji 32 kHz, kada ima izuzetno malu potronju.

Tabela 1. Izbor vrednosti kondenzatora za kvarcni kristal

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

Tabela 2. Izbor vrednosti kondenzatora za rezonator

Odnos izmeu takta i instrukcijskog ciklusa


Takt koji se dovodi na pin OSC1 oscilatora u mikrokontroleru deli se
na etiri vremenski nepreklapajua taktna signala nazvana Q1, Q2, Q3 i
Q4. Skup ovih signala ine jedan instrukcijski ciklus . U zavisnosti od
trenutka generisanja u okviru ciklusa instrukcija, taktni signali Q1-Q4 se
koriste za sledee namene:
Q1 - pribavljanje instrukcije iz programske memorije
Q2 - dekodiranje naredbe iz prethodnog instrukcijskog ciklusa
Q3 - izvrenje naredbe iz prethodna dva instrukcijska ciklusa
Q4 - prenos opkoda naredbe pozvane u Q1 u instrukcijski registar.

Reset
Uloga Reseta je da sve registre mikrokontrolera dovede u poetno
stanje. Ako se mikrokontroler blokira , ili smo ga tek ukljuili,
neophodno je da se resetuje. Kako bi se spreilo sluajno dovoenje logike

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

0 na MCLR, potrebno je da se ovaj pin preko otpornika (npr. vrednosti


10K) povee na pin napajanja Vdd.
Postoji nekoliko tipova reseta kod mikrokontrolera PIC16F877 i to su:
Power-on reset (POR)
MCLR Reset pri normalnom reimu radu
MCLR Reset prilikom SLEEP reima rada
WDT Reset pri normalnom radu
WDT Wake-up (buenje iz SLEEP reima rada)
Brown-out Reset (BOR).

Portovi
PIC16F877 poseduje pet portova (PORTA, PORTB, PORTC, PORTD
i PORTE) i oni predstavljaju vezu njegove interne strukture sa spoljanjim
svetom. Svaki od njih moe da se konfigurie kao ulazni ili kao izlazni.
Pomenuti portovi su razliitog obima:
8-pinski (PORTB, PORTC, PORTD)
6-pinski (PORTA)
3-pinski (PORTE).
Svakom pinu bilo kojeg porta, u zavisnosti od reima rada, mogu da se
dodele fiksne ili promenljive funkcije. Konfiguracija smera prenosa
ostvaruje se upisom na odgovarajuu bit-poziciju u pripadajuem TRIS
registru (0 - pin je izlazni, 1 pin je ulazni).
Svakom portu je dodeljen registar podataka (PORTX), preko kojeg
se programski pristupa U/I pinovima. Upis u neki od tih registara inicirae
upis u latch tog porta, a njegovo itanje rezultirae itanjem logikih stanja
direktno sa pinova. Sve instrukcije upisivanja su tipa read-modify-write . To
znai da se pri upisu u port najpre oitaju stanja pinova, zatim izvri
modifikacija, a potom korigovana vrednost upie u latch porta. Ne postoji
velika razlika u konstrukciji pomenutih pet portova.
Nadalje su opisani portovi koji su iskorieni za realizaciju sistema.
PortA
PortA je 6-bitni (RA5-RA0) bidirekcioni port (podaci mogu da se alju
u oba smera). Sadraj registra TRISA odreuje smer (ulazni ili izlazni)

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

pinova na portu. Blok-dijagrami za pin RA4 je prikazan na slici 47, a za


ostale pinove na slici 48.

Slika 47. 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, RA2,
RA1 i RA0 su izlazni)
TRISA = 0b111000 (RA5-RA3 su ulazni, a RA2-RA0 su izlazni)
itd.

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

Slika 48. Blok-dijagram pinova RA5, RA3-RA0

PortA ima mogunost analogno-digitalne konverzije i prvenstveno se


koristi u te svrhe. A/D konvertor, koji je integrisan u mikrokontroleru, je
10-bitni sa 8 ulaznih kanala, jer se u ove svrhe koriste i svi pinovi PortaE
(i pinovi PortaA izuzev RA4).
Pin RA4 je sa otvorenim drejnom i moe da se iskoristi za ulazni takt za
tajmer TMR0.

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

Tabela 3. Funkcije PortaA i registri

U Tabeli 3 dati su prikaz funkcija pojedinanih pinova PortaA i


registri koji se koriste za konfigurisanje porta.
Port B
Port B je 8-bitni bidirekcioni port. Svakom pinu porta korespondira
odgovarajui bit u registru TRISB, kojim se definie smer. Svi pinovi
unutar PortB poseduju pull-up otpornike. Ovi otpornici mogu da se
ukljue jednim kontrolnim bitom. To se postie postavljanjem RBPU'
bita na 0. Pull-up otpornici se automatski iskljuuju kada se pin
konfigurie kao izlazni. Otpornici su iskljueni i kod Power-on reseta.
etiri pina na PORTB (RB7-RB4) imaju mogunost generisanja
prekida. Samo pinovi koji su definisani kao ulazni mogu da prouzrokuju
prekid.
Kombinacija prekida na promenu stanja PortaB i pull-up otpornik
mogu se iskoristiti kao jednostavan interfejs za tastaturu.
Na Slikama 49 i 50 prikazana je struktura PORTB.

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

Slika 49. Blok-dijagram pinova RB3-RB0

Slika 50. Blok-dijagram pinova RB7-RB4

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

U Tabeli 4 dati su prikaz funkcija pojedinanih pinova PortaB i


registri koji se koriste za konfigurisanje porta.

Tabela 4. Funkcije PortaB i registri

Port C
Port C je 8-bitni bidirekcioni port. Posebnost ovog porta se ogleda u
tome to poseduje ugraen USART modul, koji slui za serijsku
komunikaciju (npr. sa racunarom ili drugim mikrokontro-lerom). Modulu
se pristupa preko pinova RC7 i RC6. Pinove treba softverski konfigurisati
da budu u funkciji USART modula.
Port E
Port E je bidirekcioni veliine 3 bita. Ima mogunost A/D konverzije.
Ulazni bafer je tipa Schmitt Trigger. Pinovi mogu da se konfiguriu kao
digitalni ili analogni, kao i u sluaju PortaA, o emu je ve bilo rei.

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

Serijska komunikacija posredstvom MAX232 drajvera


RS-232 komunikacija omoguava transfer podataka tipa point-topoint. Poto naponski nivoi mikrokontrolera i PC-a nisu direktno
kompatibilni sa navedenim RS-232 protokolom, neophodno je koristiti
dodatni drajver odnosno pomera nivoa kakav je na primer MAX232 koji je
ovde iskorien. Veza mikrokontrolera sa PC-jem je u ovom sluaju
neophodna jer se preko nje programira mikrokontroler na nain koji e
kasnije biti opisan. Na slici 51 je prikazana ema veze kontrolera sa
MAX232 ipom.

Slika 51. ema veze mikrokontrolera i MAX232

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

U/I moduli
Kao to smo ve napomenuli, ulaz kontrolera predstavljaju klik-klak
prekidai koji preko otpornika na ulaz kontrolera dovode logike naponske
nivoe (VCC kao logika jedinica ili GND kao logika nula). Postoje 8
prekidaa tako da je ceo jedan port (odnosno deo porta A i port E) proglaen
za ulazni i sa njega se oitavaju vrednosti definisane prekidaima. Izgled
prekidaa prikazan je na slici 52.

Slika 52.

Na izlazu kontrolera nalaze se LED diode za indikaciju stanja izlaza.


Za izlazni port je proglaen port B na kome su prikljuene 8 LED dioda.
Poto je mikrokontroler u stanju da da odnosno primi struju jaine 20mA
maksimalno, po pinu, neophodno je upotrebiti drajver za adekvatnu podudu
LED dioda da ne bi dolo da pregorevanje mikrokontrolera. U tu svrhu je
upotrebljen drajver 74HC241 koji ima dovoljnu strujnu mo, tako da mogu
svih 8 dioda da se pobude odjednom ako je to neophodno. Na slici 53 je
prikazan izgled i funkcionalni dijagram drajvera 74HC241, kao i LED dioda.

Slika 53.

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

Napajanje
Za rad sistema je neophodan stabilan napon napajanja od 5V, poto se
sve komponente sistema napajaju ovakvim naponom. U tu svrhu je
iskorien mreni transformator koji sputa mreni napon sa 230V na 9V.
Tako dobijeni napon se usmerava Grecovim mostom i filtrira elektrolitskim
kondenzatorima. Tako ispeglan jednosmerni napon se vodi na stabilizator
napona LM7805 sa ijeg izlaza se dalje napajaju ostale komponente
adekvatnim,stabilnim jednosmernim naponom. Blok ema datog napajanja je
prikazana na slici 54.

Slika 54.

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

Biografije autora
Ime: Aleksandar
Prezime: Goi
Datum roenja: 4.10.1985.
Nacionalnost: Srbin
Brano stanje: Neoenjen
Vozaka dozvola: A,B,C i E kategorije
Adresa: selo Gornji Vratari, 37230 Aleksandrovac
E-mail: gosa46@yahoo.com
Mobilni telefon: 064/29 85 805
Obrazovanje: Elektrotehnika kola Kruevac
Smer: Elektrotehniar automatike, IV stepen

Ime: Aleksandar
Prezime: Lakievi
Datum roenja: 20.6.1985.
Nacionalnost: Srbin
Brano stanje: Neoenjen
Vozaka dozvola: B kategorije
Adresa: Ilije Katia 6. 37000 Kruevac
E-mail: lakisa85@yahoo.com
Mobilni telefon: 064/635 65 25
Obrazovanje: Elektrotehnika kola Kruevac
Smer: Elektrotehniar automatike, IV stepen

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

You might also like