25
Šta je to mikrokontroler ================ Pojava mikroprocesora, čipova koji su mogli da izvršavaju neki korisnički program, napravila je revoluciju u elektronici omogućivši izradu raznih uredjaja koji su odjednom postali manji, brži, sa više mogućnosti, pa čak dovela i do pojave prvih kompjutera. Mikrokontroler nije isto što i mikroprocesor, moglo bi da se kaže da je mikrokontroler u stvari njihova nadgradnja. Mikroprocesor se sastoji od aritmetičko-logičke jedinice, nešto malo RAM-a i adresne magistrale kojom su se povezivali sa spoljnom memorijom i ulazno-izlaznim jedinicama. Neki od njih imaju u sebi i programsku memoriju u kojoj se nalazi program koji izvršavaju, dok ostali zahtevaju spoljnu memoriju. Mikrokontroler takodje sadrži aritmetičko-logičku jedinicu, ali ne poseduje adresnu magistralu jer ima integrisanu programsku memoriju, a uz to ima ugradjene mnoge druge hardverske komponente, kao što su logički ulazno-izlazni pinovi, brojači, tajmeri, oscilatori, RAM, EEPROM, PWM moduli, A/D i D/A konvertori, komparatori, watch-dog tajmeri itd. Moglo bi da se kaže da su mikrokontroleri kompjuteri u malom - uz dodatak neke ulazne jedinice za komunikaciju sa korisnikom (tastatura, miš) i izlazne za prikaz rezultata (ekran, štampač) može da se napravi kompjuter koji bi daleko prevazišao performanse nekadašnjih kompjutera baziranih na osmobitnim mikropocesorima (npr. Z80). Naravno da danas ne bi imalo mnogo smisla praviti takve kompjutere, ali sa mikrokontrolerima možemo da napravimo mnoge zanimljive uredjaje koji mogu da nam posluže za zabavu, edukaciju pa čak i zaradu. Treba imati na umu da se danas mikrokontroleri nalaze svuda: u digitalnim satovima, digitalnim fotoaparatima, mašinama za izradu fotografija, kafematima, punjačima baterija (ima ih i u samim baterijama), u džepnim baterijskim lampama, pa i u igračkama. U modernim automobilima ih ima na desetine i većina njih komunicira medju sobom (npr. samo u volanu može da ih bude nekoliko). Cilj ovog tutorijala nije da napravimo neki visoko komercijalan uredjaj već da zainteresovani mogu da nauče osnove rada sa njima, jer je početniku upravo najveći problem da nauči osnove - ako to nema odakle da savlada, početni entuzijazam može brzo da predje u razočaranje. Postoje mnogi proizvodjači mikrokontrolera, a svaki od njih ima nekoliko familija. Odlučiti se za nekog proizvodjača početniku je jako teško i postoje mnoga mišljenja oko toga šta je za početnika bolje. Mi nećemo da se bavimo tim pitanjima, ovo će biti tutorijal za mikrokontroler proizvodjača "Microchip" i to iz 8-bitne famillije sa unapredjenim jezgrom sa oznakom PIC16F1827. Učićemo kako se za njega pišu

Šta Je to Mikrokontroler

  • Upload
    -

  • View
    272

  • Download
    0

Embed Size (px)

DESCRIPTION

Mikrokontroleri tutorial

Citation preview

ta je to mikrokontroler================Pojava mikroprocesora, ipova koji su mogli da izvravaju neki korisniki program, napravila je revoluciju u elektronici omoguivi izradu raznih uredjaja koji su odjednom postali manji, bri, sa vie mogunosti, pa ak dovela i do pojave prvih kompjutera.ikrokontroler nije isto to i mikroprocesor, moglo bi da se kae da je mikrokontroler u stvari njihova nadgradnja. ikroprocesor se sastoji od aritmetiko!logike jedinice, neto malo "#!a i adresne magistrale kojom su se povezivali sa spoljnom memorijom i ulazno!izlaznim jedinicama. $eki od njih imaju u sebi i programsku memoriju u kojoj se nalazi program koji izvravaju, dok ostali zahtevaju spoljnu memoriju.ikrokontroler takodje sadri aritmetiko!logiku jedinicu, ali ne poseduje adresnu magistralu jer ima integrisanu programsku memoriju, a uz to ima ugradjene mnoge druge hardverske komponente, kao to su logiki ulazno!izlazni pinovi, brojai, tajmeri, oscilatori, "#, %%P"&, P' moduli, #() i )(# konvertori, komparatori, *atch!dog tajmeri itd. oglo bi da se kae da su mikrokontroleri kompjuteri u malom ! uz dodatak neke ulazne jedinice za komunikaciju sa korisnikom +tastatura, mi, i izlazne za prikaz rezultata +ekran, tampa, moe da se napravi kompjuter koji bi daleko prevaziao per-ormanse nekadanjih kompjutera baziranih na osmobitnim mikropocesorima +npr. ./0,. $aravno da danas ne bi imalo mnogo smisla praviti takve kompjutere,ali sa mikrokontrolerima moemo da napravimo mnoge zanimljive uredjaje koji mogu da nam poslue za zabavu, edukaciju pa ak i zaradu.1reba imati na umu da se danas mikrokontroleri nalaze svuda2 u digitalnim satovima, digitalnim -otoaparatima, mainama za izradu -otogra-ija, ka-ematima, punjaima baterija +ima ih i u samim baterijama,, u depnim baterijskim lampama, pa i u igrakama. 3 modernim automobilima ih ima na desetine i veina njih komunicira medju sobom +npr. samo u volanu moe da ih bude nekoliko,.4ilj ovog tutorijala nije da napravimo neki visoko komercijalan uredjaj ve da zainteresovani mogu da naue osnove rada sa njima, jer je poetniku upravo najvei problem da naui osnove ! ako to nema odakle da savlada, poetni entuzijazam moe brzo da predje u razoaranje.Postoje mnogi proizvodjai mikrokontrolera, a svaki od njih ima nekoliko -amilija. &dluiti se za nekog proizvodjaa poetniku je jako teko i postoje mnoga miljenja oko toga ta je za poetnika bolje. i neemo da se bavimo tim pitanjima, ovo e biti tutorijal za mikrokontroler proizvodjaa 5icrochip5 i to iz /!bitne -amillije sa unapredjenim jezgrom sa oznakom P647897/:;. 3iemo kako se za njega piu programi u programskom jeziku P64teo bih da se osvrnem na samu re 5mikrokontroler5 jer bi mogla pogreno da se shvati. $aime, re kontrola nema isto znaenje u naem jeziku kao u engleskom. 3 naem jeziku ta re oznaava nadzor, proveru, dok u engleskom jeziku ta re +controll, oznaava upravljanje, tako da bi neki bukvalni prevod rei mikrokontroler bio mikroupravlja. $aravno, u naem jeziku se re mikrokontroler odomaila i svi poznavaoci materije znaju o emu se radi tako da emo i mi ovde daje koristimo, a ona nee biti jedina koja se koristi u svom izvornom obliku, mada u ja da se trudimda, kad god to ima smisla, koristim nae rei koje su manje!vie odgovarajue za neke pojomove. &vo iskljuivo iz razloga to mislim +a postoje i neki dokazi od pametnih ljudi, da mnogi hoe da unite na razne naine naa nacionalna obeleja, a jedno do njih je svakako jezik.?matram da mi ?rbi treba da budemo samosvesni i da se trudimo da sami ouvamo, koliko god je to mogue, na nacionalni identitet na svim poljima, a jedno od njih je i jezik. @injenica je da ima mnogo mladih koji su proitali vie teksta od svojih drugara preko raznih drutvenih mrea nego iz knjiga domaih autora i zato ne treba nikome zameriti jer je veoma mogue da za neke rei iz tehnike oblasti mladja populacija jednostavno ne zna domai izraz. $aravno, nisam ni ja lingvista niti poznajem sve te rei, ali u da se trudim koliko znam i umem da koristim domae rei tamo gde to ima smisla.alo sam skrenuo sa teme i to je neka druga pria, za neko drugo mesto, ali sam hteo da obrazloim ukoliko naidjete na neku re za koju smatrate da nije adekvatna za ovu oblasti, ili vam se uini besmislena.$eke stvari e ovde biti objanjene ukratko, ili moda karikirano i nedovoljno kako se ne bi uplitali u neke, bar za poetak, nebitne stvari, a verovatno u negde i da napravim greku pa molim sve koji smatraju da neto nije napisano kako treba, da se slobodno jave i isprave me.Programiranje mikrokontrolera=====================ao to smo ve rekli, mikrokontroler ima u sebi programsku memoriju u kojoj se nalazi program koji treba da se izvrava i upravlja nekim uredjajima i procesima. Postoje mikrokontroleri +u daljemtesku 43 od engleskog izraza 5microcontroller unit5, koji u sebi ve imaju -abriki, u toku proizvodnje, upisan neki program, ali oni su specijalizovani za odredjene namene i nama nisu od neke koristi ! nas zanimaju oni koje moemo sami da programiramo prema svojim potrebama. Poto takvi 43!i dolaze sa potpuno praznom programskom memorijom, kada bi ih ubacili u nae kolo koje smo projektovali, nita se ne bi desilo, nae elektronsko edo bilo bi potpuno 5mrtvo5, pa je potrebno da mi sami napiemo program i smestimo ga u programsku memoriju. P64 kontroler koji emo mi da koristimo ima tzv. 9A#?> +ita se -le, programsku memoriju, odn. memoriju u koju moemo vie puta da upisujemo na program, briemo ako neto nije dobro, i ponovo upiemo drugi program. +, izraunamo koliki je zaista napon >1 u voltima#=ada je >1 tano 1-H, >+ e biti .H %to je jednako re(erentnom naponu, pa e rezultat imati maksimalnu vrednost, tj ?1111111111 ili 1-+, dekadno# Hidimo da dobijeni rezultat moramo da podelimo sa 1-+,, da bi dobili 1-H, tj# da bi izraunali >1# Iako 989 ne podrava de&imalne brojeve, ipak je ovde re o mikrokontroleru i nije problem napraviti rutinu za de&imalno deljenje i doi do rezultata, ali bi ta rutina bila velika i oduzela bi prilino vremena za njeno izvr%avanje# 'ato emo da pribegnemo jednom triku* ako ve neemo da delimo sa de&imalama, onda emo da prilagodimo >+ tako da rezultat podelimo sa &elim brojem, a u ovom sluaju bi bilo zgodno da to bude 1--# )o znai da moramo da promenimo odnos E1 i E+ tako da pri >1 od 1-H, rezultat 27 konverzije bude tano 1---, pa emo da izraunamo koliko tano treba da bude napon >+#9ostaviemo propor&iju*1-+, * . = 1--- * >+>+ = . : 1--- F 1-+,>+ = 3,880 H%to znai da >+ mora da bude 3,880H kada je >1 = 1-H# + : E1 F (>1>+"=ada zamenimo vrednosti dobijemo da nam je potreban otpornik od /,../ =# 9o%to ta vrednost ne postoji, E+ emo da zamenimo trimer poten&iometrom pa e na% razdelnik da izgleda ovako*Hrednost za E+ emo najlak%e da podesimo tako %to emo da napi%emo na% program koji vrednost dobijenu konverzijom deli sa 1-- i prikazuje na displeju, podesimo >1 na 1- volti i pode%avamo trimer E+ dok na displeju ne dobijemo prikaz od 1-H#He smo rekli da 989 ne poznaje de&imalne brojeve, %to znai da e rezultat da bude &elobrojni, bezijedne de&imale, ali po%to ve imamo 276 sa dovoljnom rezolu&ijom, rezultat konverzije moemo da uveamo 1- puta, tj# u ovom sluaju da podelimo sa 1- umesto sa 1--, prikaemo ga na displeju i ispi%emo de&imalnu taku izmedju jedini&a i deseti&aB time smo dobili rezultat sa jednom de&imalom# =oristan trik, zapamtite ga, trebae vam#> primeru iz pret!odnog teksta namerno je na kraju izostavljen jedan detalj zbog testiranja va%e panje# Eekli smo da rezultat 27 konverzije moemo da podelimo sa 1- i dobijemo jednu de&imalu, a iz toga proizilazi da bez ikakvog deljenja rezultata dobijamo praktino dve de&imale, s tim %to i dalje imamo rezultat u obliku &elobrojne vrednosti, a de&imalnu taku ispisujemo izmedju &i(ara stoti&a i deseti&a# 2ko ste ovo videli, znai da ste s!vatili prin&ip dobijanja de&imala pomou &eli! brojeva, a ako niste, ne brinite, nauiete#8rzina konverzije 276a

9ro&es pretvaranja analogne veliine u digitalnu ima neko vreme trajanja i predstavlja parametar koji se zove brzina konverzije (Csampling rateC na engleskom"# )a brzina se ponekad izraava kao vreme, a ponekad kao (rekven&a, a radi se, praktino, o dva obrnuto propor&ionalna podatka ((rekven&a = 1 F vreme, i obrnuto"# 'a%to je bitna ta brzinaO =ao %to smo rekli, analogni signal u svakom trenutku ima neku vrednost koja je, zavisno od signala, podlona promeni# Ga druge strane,digitalni signal je deJnisan samo u odredjenim trenu&ima %to znai da postoji %ansa da je analogni signal promenio vrednost izmedju dve uzastopne konverzije %to rezultira netanom predstavom signala u digitalnom obliku#9o teoriji, potrebno je da (rekven&a konverzije bude bar duplo vea od najvee oekivane (rekvn&e analognog signala da bi on bio kolikotoliko ispravno prikazan kasnije kroz rekonstruk&iju pomou 72 konvertora i Jltera# 'ato je (rekven&a uzorkovanja kod audio signala 33,1 kHz (muziki 67" jer ljudsko uvo uje, u najboljem sluaju, (rekven&e do oko +- kHz#$edjutim, da bi signal sa velikom sigurno%u bio pretvoren u digitalni, teorija kae da je potrebno da (rekven&a uzorkovanja bude oko 1- puta vea od (rekven&e analognog signala koji se konvertuje# 1a osnovu tog podatka moete, re&imo, da uporedite dva digitalna os&iloskopa od koji! oba mogu da CvideC signal do 1-- $!z, s tim da je brzina uzorkovanja kod jednog 1 NGFs (ita se Cgigasempl u sekundiC" i oznaava jednu milijardu uzoraka u jednoj sekundi, dok je kod drugog .-- $GFs (ita se Cmegasempl u sekundiC" i predstavlja .-- miliona uzoraka u jednoj sekundi#