pic 16 f 84

30
VISOKA POSLOVNO-TEHNIČKA ŠKOLA UŽICE Sadržaj: 1.0 UVOD......................................................... ............................................................. ....2 2.0 HARDVER...................................................... ............................................................3 2.1 CPU.......................................................... ............................................................. ...4 2.2 Memorija..................................................... ............................................................5 2.3 U/I jedinica..................................................... ..........................................................5 2.4 Serijskajedinica............................................. ...........................................................6 2.5 A/D konvertor.................................................... ......................................................6 2.6 Tajmerska jedinica..................................................... ..............................................6 2.7 Sigurnosni tajmer ...................................................... ..............................................6 2.8 Napajanje mikrokontrolera ............................................................. .........................7 2.9 Povezivanje mikrokontrolera sa PC računarom ......................................................7 3.0 PRIMENE MIKROKONTORLERA PIC16F84...................................................8 Oktobar 2013 1

Upload: mitrovic-aleksandar

Post on 21-Dec-2015

63 views

Category:

Documents


16 download

DESCRIPTION

mikrokontroleri

TRANSCRIPT

Page 1: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

Sadržaj:

1.0 UVOD..........................................................................................................................22.0 HARDVER..................................................................................................................3 2.1 CPU..........................................................................................................................4 2.2 Memorija.................................................................................................................5 2.3 U/I jedinica...............................................................................................................5 2.4 Serijskajedinica........................................................................................................6 2.5 A/D konvertor..........................................................................................................6 2.6 Tajmerska jedinica...................................................................................................6 2.7 Sigurnosni tajmer ....................................................................................................6 2.8 Napajanje mikrokontrolera ......................................................................................7 2.9 Povezivanje mikrokontrolera sa PC računarom ......................................................7 3.0 PRIMENE MIKROKONTORLERA PIC16F84...................................................8 4.0 NAČINI PROGRAMIRANJA .................................................................................8 4.1 Asembler jezik..........................................................................................................10 4.2 Pisanje programa u mikroBasic-u ............................................................................13 4.3 Pokretanje Programa..............................................................................................................175.0 PRIMER (sedmosegmentni displej)..........................................................................18

Oktobar 2013 1

Page 2: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

1.0 UVOD

Mikrokontroler – Mikroračunar u jednom čipu. PIC 16F84 je mikrokontroler širokog spektra namene, pa se zbog svoje svestranosti može svrstati u relativno komplikovane ali i prilagodljive uređaje koji mogu odigrati ključnuulogu u radu nekog sistema. Pripada familiji mikrokontrolera američke kompanije Microchip srednjeg opsega sa 8-bitnom magistralom podataka i 14-bitnim instrukcijama, čiji ulazni radni takt zavisi od režima rada i moze ići i do 20 MHz (kada je jednosmerno napajanje u pitanju). Inače, uobičajeni radni takt je 4 MHz. Ima 18 pinova od kojih je 13 u funkciji postojeća 2 porta, jednog 5-bitnog (RA) i jednog 8-bitnog (RB). Svakom od I/O pinova je moguće zasebno odrediti smer (ulazni/izlazni). Neki od I/O pinova imaju dodatne funkcije, i to RA4 pin ima I ulogu ulazne linije za takt tajmera (T0CKI), dok RB0 pin ima takođe i ulogu spoljašnjeg izvora prekida (INT).

Ovaj RISC procesor ima set od 35 instrukcija čije je vreme izvršenja 1 ciklus (4 ulazna takta), sem instrukcija grananja koje traju 2 ciklusa. Odvojene su magistrale instrukcija I podataka, tako da postoji paralelizam u pribavljanju instrukcije sa upravljanjem podacima. U okviru procesora postoji i programska memorija sa 1024 instrukcione reči, RAM sa 68 bajtova za podatke, EEPROM sa 64 bajta takođe za podatke i 15 registara specijalne namene. Za potrebe grananja i prekida, postoji i magacin dubine 8 u kome se mogu čuvati adrese za povratak u prekinuti program ili pozivajući program.

Upravljanje kontrolerom obavlja se preko programa koji se specijalno za svaku namenu piše na asemblerskom jeziku specifičnom za familiju kontrolera kojoj pripada i PIC16F84. Za interakciju sa spoljašnjim svetom pogodan je i sistem prekida, jer prekid može biti izazvan spoljašnjim događajem, detektovan na određenom pinu i odgovarajuće obrađen prekidnom rutinom. Prekid takođe može biti i softverski izazvan (prekid izazvan prekoračenjem u Timer0 tajmeru).

Ovaj mikrokontroler se programira preko racunara koji mora biti kompatabilan. Podaci se šalju preko obočnog paralelnog printerskog porta. Izlaz je serijski, podaci se prenose preko linije D0 a takt linijom D1

Oktobar 2013 2

Page 3: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

2.0 HARDVERPo fizičkoj konstrukciji PIC16F84 spada u 8-bitne mikrokontrolere. Njegova uopštena struktura je predstavljena na slici 1 sa osnovnim blokovima.

Slika 1. Izgled kola sa rasporedom pinova. Slika 2. Blok šema mikrokontrolera PIC16F84.

Osnovni elementi mikrokontrolera PIC16F84 su:

1. CPU-Centralna procesorska jedinica. 5. A/D konvertor. 2. Memorija. 6. Tajmerska jedinica. 3. U/I jedinica. 7. Sigurnosni tajmer. 4. Serijska jedinica.

Slika 3. Šema mikrokontrolera sa njegovim osnovnim elementima i

Oktobar 2013 3

Page 4: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

unutrašnjim vezama.

2.1 Centralna procesorska jedinica

U stručnoj literaturi označava se kao CPU, skraćenica nastala od početnih slova engleskih reči: (Centrall Procesing Unit – CPU). Povezuje sve delove mikrokontrolera u jednu celinu. Taj deo je odgovoran za pronalaženje i pribavljanje odgovarajuće instrukcije koja treba da se izvrši, dekodiranje te instrukcije i na kraju njeno izvršavanje.

Slika 4. Vremenski dijagram izvršenja instrukcije.

Ciklusi pozivanja i izvršavanja instrukcija su tako povezani da je za pozivanje potreban jedan instrukcijski ciklus, a za dešifrovanje i izvršavanje još jedan. Međutim, zbog protočne obrade (Pipelining), svaka instrukcija se efektivno izvršava u jednom ciklusu. Ako instrukcija izaziva promenu na programskom brojaču tj. on ne pokazuje na narednu adresu već na neku drugu (što je slučaj sa skokovima ili pozivanjem programa), onda su potrebna dva ciklusa za izvršavanje instrukcije jer se mora ponovo uzeti u obradu instrukcija, ali ovaj put sa prve adrese. Ciklus pozivanja počinje na Q1 taktu, upisivanjem u instrukcijski registar (IR), a dešifrovanje i izvršavanje tokom Q2, Q3 i Q4 takta.

Slika 5. Protočna obrada instrukcija.

Napomena: Sve instrukcije se izvršavaju u jednom ciklusu sem instrukcija skokova. Instrukcije skokova zahtevaju dva ciklusa jer adresa naredne instrukcije nije ona na koju treba skočiti.

Fetch – uzimanje. Execute – izvršavanje. Flush – nevažeća.

Oktobar 2013 4

Page 5: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

2.2 Memorija

Memorija je deo mikrokontrolera čija je namena da sačuva podatke. Memoriju čine sve memorijske lokacije, a adresiranje je izbor jedne od njih. Potrebno je sa jedne strane izabrati koja se memorijska lokacija želi, a sa druge strane sačekati njen sadržaj. Pored čitanja memorijske lokacije memorija mora da obezbedi i upis u njih. Ovo se izvodi pomoću kontrolne linije W/R. Kontrolna linija se koristi na sledeći način: ukoliko je W/R=1, onda se radi upisivanje, a u suprotnom čitanje memorijske lokacije. Vrste memorije kod mikrokontrolera PIC16F84:

1. Programska memorija (FLASH) koristi se za smeštanje napisanog programa. Kako je memorija izrađena u FLASH tehnologiji može se više puta brisati i programirati, te je ovaj mikrokontroler pogodan za razvoj uređaja.

2. EEPROM memorija služi za podatke koje treba sačuvati i kada napajanja nema. Obično se koristi za smeštanje važnih podataka koji ne smeju biti izgubljeni ako napajanje iznenada nestane. Jedan takav podatak je npr. zadata temperatura kod temperaturnih regulatora.

3. RAM memorija služi za podatke koje koristi program u svom izvršavanju. U RAM se smeštaju svi međurezultati ili privremeni podaci koji nisu od važnosti za rad uređaja u slučaju nestanka napajanja.

Slika 6. Mapa registara mikrokontrolera PIC16F84.

2.3 U/I jedinica

PORT A i PORT B su fizičke veze mikrokontrolera sa spoljašnjim svetom. Port A ima pet nožica, a port B osam. Port je engleski izraz za grupu pinova mikrokontrolera kojima se istovremeno može pristupiti tj. postaviti željenu kombinaciju nula i jedinica na njih ili sa njih pročitati postojeće stanje. Fizički port je registar unutar mikrokontrolera koji je provodnicima povezan sa pinovima mikrokontrolera (portovi su fizička veza CPU jedinice sa spoljnim svetom). Mikrokontroler ih koristi da bi nadgledao ili upravljao sa

Oktobar 2013 5

Page 6: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

drugim komponentama ili uređajima. Zbog funkcionalnosti neki pinovi imaju dvojnu ulogu. Biranjem jedne od funkcija onemogućuje se druga.

Po svojoj prirodi portovi mogu biti: ulazni, izlazni ili dvosmerni. Kod rada sa portovima prvo je potrebno odabrati sa kojim se portom radi, a zatim podatak poslati ili uzeti sa porta. Port se pri radu ponaša kao obična memorijska lokacija, jednostavno se u nju nešto upisuje ili čita, s tim da je to moguće lako registrovati na nožicama mikrokontrolera.

2.4 Serijska jedinica Serijska jedinica služi za komunikaciju sa spoljnim svetom posredstvom tri linije.

Ima posebne linije za prijem i slanje, preko kojih je moguće istovremeno primati i slati podatke. Za razliku od paralelnog prenosa, ovde podatak ide bit po bit, tj. u seriji, odakle i potiče ime serijske komunikacije. Nakon prispeća podatka potrebno ga je pročitati iz prijemne lokacije i uskladištiti u memoriju nasuprot slanja gde je proces obrnut, podatak iz memorije preko magistrale ide do lokacije za slanje, a odatle po protokolu do prijemne strane.

Slika 7. Izgled signala kod serijske komunikacije.

Serijska komunikacija se obavlja po NZR (Non-Return to zero) protokolu poznatiji kao 8(9)-N-1, tj. 8 ili 9 bita podataka, bez bita parnosti i jednim stop bitom. Slobodna linija definisana je kao stanje logičke jedinice, a početak prenosa – start bit, kao stanje logičke nule. Iza start bita slede bitovi podatka (prvo bit najmanje težine), a nakon njih stop bit, nivoa logičke jedinice. Period trajanja impulsa (T) zavisi od brzine prenosa koja se podešava prema potrebi. Za brzinu prenosa od 9600 baud-a, T iznosi 104 nS.

2.5 A/D konvertor

Kako su spoljni signali bitno drugačiji od onih koje mikrokontroler razume (nule i jedinice), moraju se pretvoriti u formu koja je razumljiva mikrokontroleru. Ovaj zadatak obavlja blok za analogno-digitalnu konverziju ili AD konvertor. Taj blok je zadužen da informaciju o nekoj analognoj veličini pretvori u binarni broj i prosledi CPU bloku da bi ga ovaj dalje obrađivao.

2.6 Tajmerska jedinica

Tajmerska jedinica generiše signale u pravilnim vremenskim razmacima. Osnovu tajmera čini slobodni brojač.

Slobodni brojač je 8-mo bitni registar unutar mikrokontrolera koji radi nezavisno od programa. Na svaki četvrti takt iz oscilatora on uvećava svoju vrednost dok ne dostigne maksimum (255), a onda brojanje kreće ponovo od nule. Kako se tačno zna vreme između

Oktobar 2013 6

Page 7: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

svaka dva uvećanja sadržaja brojača, on se može iskoristiti za merenje vremena što je veoma korisno kod nekih uređaja.

2.7 Sigurnosni tajmer

Sigurnosni tajmer (Watchdog) brine o ispravnom radu mikrokontrolera. On je u stvari slobodni brojač u koji naš program treba da upiše nulu svaki put kada se pravilno izvrši. Ukoliko dođe do „zaglavljivanja“ programa, neće doći do upisa nule i brojač će, po dostizanju svoje maksimalne vrednosti, sam resetovati mikrokontroler, što će dovesti do ponovnog, ali ovog puta pravilnog izvršenja programa.

2.8 Napajanje mikrokontrolera

Prema tehničkoj specifikaciji proizvođača PIC mikrokontrolera napon napajanja se kreće u granicama od 2.0V do 6.0V u svim verzijama. Najjednostavnije rešenje izvora napajanja je korišćenje naponskog stabilizatora LM7805 koji na izlazu daje stabilisanih +5V slika 8.

Slika 8. Šema povezivanja mikrokontrolera sa transformatorom.

2.9 Povezivanje mikrokontrolera sa PC računarom

Da bi se mikrokontroler povezao sa serijskim portom na PC računaru potrebno je izvršiti prilagođenje nivoa signala kako bi se komunikacija obavila. Nivo signala na strani PC računara je -10V za logičku nulu i +10V za logičku jedinicu. Kako je nivo signala na strani mikrokontrolera +5V za logičku jedinicu i 0V za logičku nulu, potreban je jedan međustepen koji će to prilagođenje izvršiti. Ovaj problem se rešava upotrebom elektronske komponente MAX232. Ovo kolo prima signale od -10V do +10V i pretvara ih u 0V i 5V. Primer povezivanja mikrokontrolera sa PC računarom preko MAX232 linijskog interfejsa dat je na slici 9

Oktobar 2013 7

Page 8: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

Slika 9 Primer povezivanja mikrokontrolera sa PC računarom.

3.0 PRIMENE MIKROKONTROLERA PIC16F84

PIC16F84 odgovara za razne primene, od automobilske industrije i kontrole kućnih uređaja do industrijskih uređaja, daljinskih senzora, elektronskih brava i sigurnosnih uređaja. Takođe je idealan za „smart“ kartice kao i za baterijski napajane uređaje zbog svoje male potrošnje. Niska cena, mala potrošnja, lakoća upotrebe i fleksibilnost čine PIC16F84 upotrebljivim, čak i u oblastima u kojima se ranije nije ni razmatrala upotreba mikrokontrolera (npr. tajmerske funkcije, zamena za veznu logiku u većim sistemima, koprocesorske aplikacije itd.).

4.0 PROGRAMIRANJE Pisanje programa je posebna oblast rada sa mikrokontrolerima i naziva se programiranje.

Programiranje se može raditi na više jezika od kojih izdvajamo assembler, C, pascal i bejzik koji su i u najčešćoj upotrebi. Asembler spada u jezike nižeg nivoa koji se sporo programiraju, ali zauzimaju najmanje mesta u memoriji i prave najbolja rešenja sa stanovišta brzine izvršavanja programa. Programi u C-u se lakše pišu, bolje razumevaju, ali su sporiji u izvršavanju od asemblerskih. Bejzik je najlakši za učenje, a njegove naredbe su najbliže ljudskom razmišljanju, ali je kao i programski jezik C sporiji od asemblera. U svakom slučaju, pre nego što se odluči za jedan od ovih jezika potrebno je dobro razmotriti zahteve za brzinom izvršavanja programa, veličinom memorije i vremenom koje je na raspolaganju za njegovu izradu.

Mikrokontroler nije kao i svako drugo integrisano kolo. Pri izlasku iz fabrike većina integrisanih kola spremna je za ugradnju u uređaje što nije slučaj sa mikrokontrolerima. Da bi mikrokontroler “naterali” da uradi neki posao, moramo mu tačno reći šta, tj. moramo napisati program koji će on izvršavati.

Nakon pisanja programa, mikrokontroler treba ugraditi u uređaj i pustiti u rad. Da bi se to uradilo potrebno mu je dodati još nekoliko spoljašnjih komponenti neophodnih za njegov rad. Mikrokontroler spajamo sa napajanjem (napon potreban za rad svih električnih uređaja) i

Oktobar 2013 8

Page 9: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

oscilatorom. Na osnovu otkucaja oscilatora (taktova) mikrokontroler izvršava instrukcije programa. Po dobijanju napajanja mikrokontroler će izvršiti manju proveru samog sebe, potražiti početak programa i krenuti u njegovo izvršavanje.

Slika 10. Postupak razumevanja čoveka i mikrokontrolera.

Jezik kojim mikrokontroler i čovek komuniciraju se naziva “asemblerski jezik”. Program napisan u asemblerskom jeziku se mora prevesti na “jezik nula i jedinica” da bi ga mikrokontroler razumeo. “Asemblerski jezik” i “asembler” su dva različita pojma. Prvi predstavlja skup pravila po kojima se piše program za mikrokontroler, a drugi je program na personalnom računaru koji vrši prevođenje iz asemblerskog jezika u jezik nula i jedinica. Program koji je preveden na nivo nula i jedinica se u žargonu naziva još i “mašinski”. Naziv je dobio od engleskih reči “Machine Language” što bukvalno znači jezik mašine (mikrokontrolera).

Fizički “program” predstavlja datoteku na disku računara (ili u mikrokontrolerskoj memoriji ako je učitan u njega), koja je napisana po pravilima asemblerskog ili nekog drugog jezika za programiranje mikrokontrolera. Asemblerski jezik je razumljiv za čoveka i sastoji se od reči i znakova abecede. Prilikom pisanja programa moraju se poštovati izvesna pravila da bi se postigao željeni rezultat. Prevodilac svaku naredbu napisanu u asemblerskom jeziku prevodi na niz nula i jedinica koje imaju značenje za unutrašnju logiku mikrokontrolera. Prevodi se svaka asemblerska naredba na njoj odgovarajući niz nula i jedinica. Datoteka, u kojoj se nalazi tako preveden asemblerski program, naziva se “izvršna”. U žargonu se često sreće i naziv “HEX” datoteka. Naziv potiče od heksadecimalnog predstavljanja te datoteke kao i zbog nastavka 'hex' u oznaci, npr. “proba.hex”. Izvršna datoteka se po njenom generisanju učitava u mikrokontroler preko programatora.

Program se u asemblerskom jeziku piše u bilo kom programu za obradu teksta (editor) koji je u stanju da napravi ASCII datoteku na disku računara ili u specijalizovanim okruženjima kao što je MPLAB. Za pisanje programa u Bejziku koristi se mikroBasic napredni kompajler za PIC mikrokontrolere. mikroBasic je razumljiv struktuiran programski jezik, lak za učenje i udoban za korišćenje, a sa dovoljno kapaciteta i fleksibilnosti potrebnih za programiranje mikrokontrolera. Bez obzira na prethodno programersko iskustvo, pisanje programa u mikroBasic-u je veoma jednostavno.

Oktobar 2013 9

Page 10: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

4.1 Asembler jezik

Program koji je napisan u asemblerskom jeziku se sastoji od vise elemenata koji se u toku prevođenja u izvršnu odluku različito tumače. Njihov nacin upotrebe definišu stroga pravila i tokom pisanja treba biti obazriv da ne bi doslo do greske.Pravila pisanja programa: Prilikom pisanja programa treba se pridržavati određenih pravila da bi proces prevođenja u izvršni HEX-kod protekao bez problema.

-Svaka linija u programu može da se sastoji od najviše 255 znakova--Svaka linija koja treba da bude prevedena mora da započne simbolom, labelom ili direktivom--Sve sto se u programskoj liniji nalazi iza “ ; ” ne prevodi se-Svi elementi jedne linije u programu moraju da budu razdvojeni (bar jednim mestom). Zbog bolje preglednosti moze se koristiti veći prazan prostor .

Elementi Asemblera:- LabelePredstavlja tekstualnu verziju neke adrese u programskoj ili ram memoriji. Za nju je važno da počinje u prvoj koloni i da mora da počne slovom abecede ili donjom crtom “ _ “. Dužina je maksimalno 32 znaka. Koriste se:

-Na početku programske linije odakle počinje program ili na koju treba izvršiti skok.-U instrukciji koja poziva ovaj potprogram ili skok NPR. Svaki broj može se prestaviti imenom, slika 11.

Slika 11. primer korišćenja labela

Oktobar 2013 10

Page 11: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

-KomentariKomentar je tekst koji programer pise kako bi program bio jasniji i pregledniji. Dodaje po potrebi i obavezno se pise posle znaka “ ; ” Po pravilu sintakse sve sto se dodaje posle znaka “ ; ” se ne prevodi i samim tim ni komentari. Pirmer komentara možemo videti na predhodnoj slici, slika 5.3

- NaredbeNaredbe su definisane upotrebom odredjenog mikrokontrolera tako da asemblerskom jeziku ostaje samo da poštuje način njihove upotrebe. Naredbe morju biti napisane onako kako su definisane inace u suprotnom ce doći do greske

- Operandi Operandi su elementi narebi nad kojima se nardba izvrašava. Oni su najčešće registri, promenljive ili konstante u memoriji

- DirektiveDirektive su komande asemblerskog jezika i ne utiču direktno na rad mikrokontrolera. Neki su obavezni deo svakog programa dok upotreba nekih predstavlja samo olaksicu i ubrzava rad. Upisuju se u koloni koja je rezervisana za instrukciju uz pravilo da u jednoj programskoj liniji može da bude samo jedna direktiva. -Procesor direktiva se obavezno upisuje na početku svakog programa. Njom se definiše mikrokontroler za koji je program napisan-EQU direktiva pomoću koje se brojčana vrednost zamenjuje simbolom. Najčešće se na ovaj način nekoj odredjenoj lokaciji u memoriji dodeljuje naziv -ORG direktiva pomoću koje se odredjuje lokacija u programskoj memoriji na koju če biti smešten program koji sledi iza direktive-END direktiva je obavezna na kraju svakog programa. Nailasko na ovu oznaku asembler će prestati sa prevodjenjem u mašinski kod.-#INCLUDE direktiva

-Set instrukcija

Kompletan set koji obuhvata 35 instrukcija dat je u tabeli 1. Razlog ovako malog broja instrukcija, leži pre svega u činjenici da se radi o RISC mikrokontroleru čije su instrukcije dobro optimizovane sa gledišta brzine rada, jednostavnosti arhitekture i kompaktnosti koda. Jedina „mana“ je, što se od programera očekuje da savlada „neudobnu“ tehniku korišćenja skromnog seta instrukcija.

Oktobar 2013 11

Page 12: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

Tabela 1: Set instrukcija mikrokontrolera PIC16F84.

Oktobar 2013 12

Page 13: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

4.2 MikroBasic Za početak, zašto baš Basic? Zato što je razumljiv struktuiran programski jezik, lak

za učenje i udoban za korišćenje, a sa dovoljno kapaciteta i fleksibilnosti potrebnih za programiranje mikrokontrolera. Bez obzira na prethodno programersko iskustvo, zaključiće te da je pisanje programa u mikroBasic-u veoma jednostavno sl. 12.

Slika 12 Osnovni izgled prozora u MicroBasic-u

Oktobar 2013 13

Page 14: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

Slika 13. Koraci pri pisanju programa u mikroBasic-u.

Oktobar 2013 14

Page 15: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

-Naredbe u mikroBasic-u (tabela 2)

Tabela 2. Skup reči koje sačinjavaju dati programski jezik (Keywords).

U mikroBasic-u, svi registri specijalne namene (SFR) su definisani kao globalne promenljive i predstavljaju specijalne rezervisane reči (reserved words) koje nemogu biti redefinisane. Na primer: TMR0, PCL, STATUS, itd. Takođe, mikroBasic ima brojna predefinisana imena (identifiers) pripisana biblioteci rutina.

mikroBasic uključuje veliki broj ugrađenih funkcija i procedura, kako bi obezbedilo što udobnije programsko okruženje u radu sa PIC mikrokontrolerima.

Veliki programi mogu biti podeljeni na module koji dopuštaju lakše održavanje koda (programa). Svaki modul je jedan stvaran fajl, koji se može prevesti (kompajlirati) posebno; kompajlirani moduli koji su povezani stvaraju jednu aplikaciju.

Oktobar 2013 15

Page 16: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

-Pisanje i sastavljanje programa u MikroBasic-u

Prvi korak je da se napise kod. Svaka izvorna dadoteka se čuva u jednoj tekstualnoj dadoteci sa nastavkom ".pbas" evo jednog primera "blink.pbas" slika 14

Slika 14: primer napisanog koda

Kada se kod napiše sačuvati ga kao ".pbas ". Onda se kod može prevesti i klikom na "Compile" ikonicu ili samo pritisnuti CTRL+F9 u MikroBasic-u. Sastavljanje procedure se obavlja u 2 koraka.1. Kompajler ce pretvoriti ".pbas " fajl (u nasem slucaju blink.pbas) u asemblerski kod sa nastavkom ".asm " fajl (u nasem slucaju blink.asm)2. Zatim Kompajler automatski poziva asembler koji konvertuje ".asm " fajl u izvršni HEX kod spreman za izvršavanje u mikrokontroleru.Mi nemožemo primetiti ova dva koraka zato što je proces potpuno automatizovan . U slučaju greške program neće generisati HEX kod i moraćemo da ispravimo sve greške u orginalnoj dadoteci. Najbolje je pisati program u malim delovima tako da bi se otklanjanje grešaka dosta olakšalo.

-Učitavanje programa u mikrokontroler

Kao rezultat uspešne izrade predhodnog koda, MikroBasic će generisati sledeće dadoteke:1. blink.asm -asemblerski fajl2. blink .lst - programski list3. blink.mcl - mikro kompajlerska biblioteka4. blink.hex - izvršni fajl koji je napisan u programsku memoriju".hex" fajl je onaj koji vam treba za prgramiranje mikrokontrolera. Najčešće generisani ".hex" fajl će biti u 8-bit integrisanom intel ".hex" formatu prihvaćen od većine programskih softvera. Sadržaj dadoteke blink.hex dat je na slici 15.

Oktobar 2013 16

Page 17: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

Slika 15: Primer 8-bitnog ".hex" fajla

Slika 16: postupak učitavanja ".hex" fajla u mikrokontroler

4.3 Pokretanje programa

Za pravilno funkcionisanje programa, neophodno je da se obezbedi napajanje, oscilator i Reset kolo. Za napajanje se može iskoristiti običan ispravljac pomoću grecovog spoja, kao štoje prikazano na slici 17. Oscilator mogu da budu 2 kondezatora od 22 pF. Za reset kolo najlakše je da MCLR pin povežemo +5v preko otpornika od 10 KΩ. Primer je dat na slici 18.

Oktobar 2013 17

Page 18: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

Slika 18: Šema povezivanja glavnih komponenti (napajanja, oscilatora, dioda)

5.0 PRIMER (sedmosegmentni displej)

Sedmosegmentne displej predstavljaju napredni oblik vizuelne komunikacije. (ime potiče od 7 dioda a tu je i osma koja služi za tačku) ove diode su formirane da obrazuju decimalne cifre od 0 do 9. Izgled sedmosegmentnog broja dat je na slici 19.

Slika 19: Izgled sedmosegmentnog broja

Pošto ovi displeji imaju bolju toleranciju temperature i bolju vidljivost od LCD ekrana oni se više koriste u industrisjkim uslovima. Njihova upotreba zadovoljava sve kriterijume ukljucujuci i one finansijske. Najčešće se upotrebljavaju prilikom očitavanja sa senzora itd. Jedan od načina povezivanja ovog displeja sa mikrokontrolerom dat je na slici 20. Sistem segmenata je povezan sa zajedničkom katodom što znaci da segmenti emituju svetlost kad na njih dovedemo logičku jedinicu. Ako je tranzistor u režimu sprofođenja svaki segment sa logičkom jedinicom će emitovati svetlost, a ako nije onda nijedan neće bez obzira na stanje pinova.

Oktobar 2013 18

Page 19: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

Slika 20: Primer povezivanja sedmosegmentnog displeja sa mikrokontrolerom

Baze tranzistora T1 i T2 su povezani sa RA0 i RA1 porta A. Postavljanje ovih pinova uključuje tranzistor omogućavajući da svaki segment sa logičkom jedinicom od a do h sa emituje svetlost, ako je logička nula na bazi tranzistora onda nijedan segment neće emitovati svetlsot bez obzira na stanje kontrolnih pinova.

Koristeći predhodne šeme niz od devet cifara možemo prikazati na slici 21Svrha ovog programa je da prikaže cifre od 0 do 9 na displeju jedinica u razmaku od 1 sekunde. Da bi prikazao broj njegovi segmenti moraju biti povezani sa portom B. Npr za Cifru jedan segmenti b i c moraju sepostaviti na logičnu jedinicu a ostali na logičku nulu.Ako (prema slici 20) segmentima b i c povezani sa RB1 i RB2 porta B dakle treba podesiti vrednosti za port B 0000 i 0110, zaključujemo da je kod za cifru 1 vrednost 0000 0110 ili 06 u heksadecimalnom. U tabeli 3 prikazani su odgovarajući kodovi za difreo 0-9.

Oktobar 2013 19

Page 20: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

Slika 21: Program za prikazivanje Cifara od 0-9

Oktobar 2013 20

Page 21: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

Tabela 3: Prikaz cifara od 0-9 u decimalnom i heksadecimalnom zapisu

Medjutim niste ograničeni na prikazivanje celog niza broja da bi napisali kod. Možete koristi "7seg display dekoder" koji je ugradjen u alate Microbasic-a.Ali šta radimo ako šelimo da prikažemo više od jedne cifre na dva ili više displeja. To znači da moramo da stavimo kod na jedan displej i bryo aktivirati njegov tranzistor pa onda staviti drugi kod za drugi displej i aktivirati drugi tranzistor. ( to znači da ako jedan tranzistor u sprovodjenju režima drugi ne sme da bude i obrnuto inače bi oba displeja pokazivali iste cifre). Ovaj proces je poznat kao Multipleks tj da ljudsko oko doboja simultani prikaz obe cifre a zapravo seemituje samo jedan displej u svakom trenutku. Npr recimo treba da se prikaže broj 38, prvo treba podeliti taj borj na desetine i jedinice (u ovom slučaju 3 i 8) i njihove kodove poslati na PORT B i aktivirati tranzistore koje pripadaju tim displejima u datom trenutku slika 22.

Oktobar 2013 21

Page 22: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

Slika 22. Primer programa za prikazivanje broja 38

Oktobar 2013 22

Page 23: PIC 16 f 84

VISOKA POSLOVNO-TEHNIČKA ŠKOLAUŽICE

LITERATURA

Jelena Bubalo, Radoslav Ilić, Vidojko Veljković; Programiranje PIC mikrokontrolerahttp://www.mikroe.com/pdf/mikrobasic/mikrobasic_manual.pdfhttp://www.mikroe.com/products/view/11/book-pic-microcontrollers/http://groups.csail.mit.edu/lbr/stack/pic/pic-microcontrollers.pdfhttp://dsp-book.narod.ru/BASICPIC.pdfhttp://www.freeinfosociety.com/media/pdf/3134.pdf

Oktobar 2013 23