RSRV

Embed Size (px)

Citation preview

  • 8/2/2019 RSRV

    1/15

    01/26/2012

    PROGRAMIRANJE MIKROKONTROLERA

    SEMIRARSKIRAD

    RAUNARSKI SISTEMI U REALNOMVREMENU

  • 8/2/2019 RSRV

    2/15

  • 8/2/2019 RSRV

    3/15

    Uvod

    Sa pojavom prvih mikroprocesora 1971. godine, poela je i njihovaupotreba u kontrolne svrhe. Meutim tipian sistem je zahtijevao veliki

    broj dodatnih kola za rad, kao to su bili AD pretvarai (A/D converters),brojai, oscilatori i drugo... Vremenom je dolo do integrisanja potrebnihkomponenti u jedno kolo i tako je stvoren moderni mikrokontroler. Jedanod prvih je bio Motorola 6801 mikrokontroler, razvijen od 6800mikroprocesora. Kasnije, 1985. godine je od 6801 stvoren popularni68HC11 sa tad novom HCMOS tehnologijom, koja je omoguila manjupotronju, manju osjetljivost na smetnje i bri rad. Danas mnogi modelimogu da rade i vre kontrolu manjih ureaja bez ikakvih vanjskihdijelova, ili sa minimalnim brojem istih. Proizvodnja mikrokontroleraiznosi nekoliko milijardi godinje i znatno premauje proizvodnjumikroprocesora, tipinih za line kompjutere (personal computers).

    http://sh.wikipedia.org/w/index.php?title=HCMOS&action=edit&redlink=1http://sh.wikipedia.org/w/index.php?title=HCMOS&action=edit&redlink=1
  • 8/2/2019 RSRV

    4/15

    1.0 Raunalo

    Raunalo jemozak'' jednog on linesistema . Ono omoguava brzu

    reakciju i korekciju u sistemu.Tako na primjer, na temelju prikupljenihmeteorolokih podataka raunalo danas izraunava vremensku prognozuza sutra, za to bi ljudima koristei meteoroloke algoritme trebalo modamjesec dana i tada bi ti podaci bili nevani. Koristei raunalo ti podaci mogu bitiobraeni u vrlo kratkom vremenu pa ta vremenska prognoza postajeupotrebljiva. Raunala tako mogu biti koritena u razliite svrhe, a to imomoguuje programibilnost. Program koji je unesen u raunalo prilagoavaraunalo odreenom sistemu. Gotovo za svaki sistem raunalo jesklopovski isto, mogue su male modifikacije.

    1.1 Mikroprocesor

    Mikroprocesor (CPU) je najvaniji elektroniki sklop raunala, kojipreuzima programske instrukcije i na osnovu njih obrauje podatke. Naziv''mikro'' koristi se zbog malih dimenzija. Dananji mikroprocesori sadrepreko stotinu milijuna tranzistora ukomponiranih na silicijskoj ploiciupakiranoj u kuite. Prvi mikroprocesor proizvela je tvrtka Intel 1971.godine. To je bio 4-bitni mikroprocesor s brzinom od 6000 operacija usekundi, zvao se 4004. Nakon tog uvia se velika prednost mikroprocesora,te se poinju naglo razvijati. Prvi jai mikroprocesor bio je Intelov 8008 iMotorolin 6800 koji su bili 8-bitni procesori. Razvoj mikroprocesora se do danas nijezaustavio, no osnova njihovog rada je u principu ista. Uz mikroprocesor se

    moe pridodati i matematiki koprocesor koji procesoru potpomae uraunskim operacijama. Koprocesor radi paralelno s mikroprocesorom imoe preko njemu usmjerenih instrukcija izvriti vrlo mone operacije spokretnim zarezom. Svi noviji procesori imaju integriran koprocesor ukuite s mikroprocesorom.Prednosti mikroprocesora:- velika prilagodljivost (univerzalnost)- niska cijena- male dimenzije- velika pouzdanost

  • 8/2/2019 RSRV

    5/15

    Slika 1. Mikroprocesor

    1.2 Mikrokontroler

    Mikrokontroler je elektroniki ureaj koji, slino kao i raunalo, imazadau da zamjeni ovjeka u kontroli dijela proizvodnog procesa ili gotovocijelog proizvodnog procesa. Iz svakodnevne prakse pri upotrebi raunalaope namjene tip PC-a ve je poznato da je standardni ulaz tipkovnica i mi(eventualno upravljaka palica), dok je standardni izlaz monitor ili pisa.Teko je definirati to e biti standardni ulaz i izlaz mikrokontroleru.Razlog tome je to su mikrokontroleri uglavnom dizajnirani za specifinezadae vrlo raznolike od sluaja do sluaja. Primjera ima mnogo, od jednostavneregulacije osvjetljenja, alarmnih sistema, pa do upravljanja robotima uindustrijskim pogonima.

    Ulazi mogu biti vrlo jednostavne izvedbe kao na primjer prekida u sklopu plovkaza nadzor najveeg ili najnieg nivoa tekuine u spremniku. Mikrokontrolertada ima za obradu samo dva stanja koje opisuje jedan bit. Sloenije jepraenje ako treba pratiti stvarnu razinu nivoa tekuine u spremniku.Tada treba definiratikoliko e se nivoa pratiti i tue se upotrijebiti nekakavpotenciometarski sklop koji e mikrokontroleru predati odreenuanalognu vrijednost koju e ovaj potom pomo u A/D pretvornikaobraditi i isporuiti odreditu. Ako je povezan s foto elijom za brojanjepredmeta po naelu prekidanja svjetlosnog snopa radi se o izravnom brojanjuimpulsa tijekom rada ne ovisno o vremenu. Dakle, ulazi mogu biti analogne idigitalne prirode i u sutini podatke e isporuivati nekakav mjerni pretvornik

    (senzor).

  • 8/2/2019 RSRV

    6/15

    Slika 2. Mikrokontroler

    2.0 AtmelKompanija Atmel proizvodi tri osnovne familije mikrokontrolera:

    svoju verziju 8051, zatim AT91 koji je ARM Thumb i AVR familiju 8-bitnihRISC mikrokontrolera. Atmelova 89 serija mikrokontrolera je bazirana na8051 arhitekturi i ima flash memoriju. AVR mikrokontroleri nose oznake

    AT90Sxxxx i predstavljaju familiju mikrokontrolera koja je narocito irokorasprostranjena u hobi elektronici.

    2.1 AVRFamilija mikrokontrolera AVR je uvedena na triste tokom 1997

    god. od strane Atmel-a, ime predstavlja prvu novu 8-bitnu arhitekturukoja se pojavila u poslednjih 20 godina. Kao posledica novina nastalihkorienjem interne Flash programske memorije, koju je mogue veomajednostavno programirati ISP (In-System Programming) metodom iveoma povoljnog odnosa cene i performansi ova Atmel-ova familijakontinualno osvaja sve vei deo trita mikrokontrolera. U osnovi senalazi moderni 8-bitni RISC mikroprocesor koji sadri 32 registra optenamene, ali i bogat set instrukcija. Performanse AVR mikrokontrolera sudosta iznad proseka - AVR mikroprocesore odlikuje velika brzinaizvravanja do 16 MIPS, to je oko 12 puta vise nego kod standardnih8-bitnih mikroprocesora,dok su sa druge strane i memorijskeperformanse znatno poboljane kombinovanim korienjem Flashmemorije (trenutno veliine do 128KB) i EEPROM memorije.

  • 8/2/2019 RSRV

    7/15

    MEGA AVR familija mikrokontrolera ima jedinstvenu memoriju samogunou samoprogramiranja (Self-Programming Memory) , kao imogunost itanja iz memorije tokom upisa (Read while Write).Mikrokontroleri iz ove familije se mogu nai u varijantama sa 8-12KFlash memorije, do 4K EEPROM-a i do 4K RAM-a, i dolaze u 32-64

    pinskom pakovanju. Usmereni su na specijalizovane segmente trita, i

    esto se koriste kao komponente u prenosivim ureajima, beinojkomunikaciji, bezbednosti.

    Slika 3.Atmel STK500

  • 8/2/2019 RSRV

    8/15

    Slika 4. Blok dijagram arhitekture Atmel AVRmikrokontrolera

  • 8/2/2019 RSRV

    9/15

    2.2 Softverski alati za rad sa Atmel AVRMikrokontrolerima

    Jezici visokog nivoa postaju standard za programiranjemikrokontrolera zbog jednostavnijeg odravanja i kraeg vremena

    isporuke produkta na trite. Arhitektura AVR mikrokontrolera je odsamog poetka razvijana u saradnji sa ekspertima za programski jezik Ckako bi se obezbedila uzajamna kolaboracija hardvera i softvera u ciljudobijanja visoko efikasnog koda. Kao posledica toga AVR instrukcije suoptimizovane u cilju smanjenja veliine programa, nezavisno od toga dali je napisan u C-u ili asembleru. Jednostavan, ali odlian primerprograma za mikrokontroler AT90S8515 iz familije AVR (Classic), kao irada u integrisanom razvojnom okruenju AVR Studio 4 profesionalno integrisano razvojno okruenje (IDE) za razvoj i testiranjeAVR aplikacija u Windows okruenju,koje sadri asembler, C kompajler isimulator. AVR Studio podrava sledee alate: ICE50, ICE40, JTAGICE,ICE200, STK500/501/502 and AVRISP.

  • 8/2/2019 RSRV

    10/15

    Slika 5. radni prostor AVR studio

    3.0 Zadatak

    Nosa i okreta diskova

    Opis zadatka:

    Simulirati grajfer, kojem cilindar podigne disk naodgovarajucu visinu, on ga okrene i prenese na pokretnu traku.Kada se aktivira senzor da je disk prisutan na podizacu,pnemutaski cilindar ga podigne na visinu 'ruku grajfera'. Kadagrajfer uzme komad, podizac se vraca u pocetnu poziciju. Podizacse vratio u pocetni polozaj, grajfer okrece disk i nosi ga naodgovarajucu poziciju po x osi, zatim ga spusta pomocupneumatskog cilindra po y osi.

    Pojanjenje:

    Da bi disk dosao na poziciju podizanja, mora podizac biti upocetnom polozaju. Takodje, zbog kretanja grajfera pravolinijski

  • 8/2/2019 RSRV

    11/15

    po x osi i on mora biti u pocetnom polozaju. Po x osi su definisanadva polozaja grajfera, mjesto uzimanja diska i mjesto ostavljanjadiska. Poslje svakog aktiviranja senzora i pneumatskog cilindanapraviti mali zastoj, radi stabilizacije sistema.

    Koristi se elektro motor

    Senzori pritiska

    Senzori polozaja

    Senzori prisutnosti diska, tajmeri

    Dvopoloajni pneumatski razvodnik

    Logika rada vidljiva na snimku

    Slika 5. Grafiki prikaz sistema

  • 8/2/2019 RSRV

    12/15

    Poetna stanja :

    SENZOR 1 = 0

    SENZOR 2 = 1SENZOR 3 = 0SENZOR 4 = 0SENZOR 5 = 1SENZOR 6 = 0SENZOR 7 = 0MOTOR 8 =0

    4.0 C - programski kod

    #include /*header file for avr input output*/#define F_CPU 1000000/*Defined frequency 1 MHz*/

    #include

    int main (void)

    {DDRD=0x00;DDRB=0xff;PORTB=0b11011101;// poetno stanje cilindra i grajfera (cilindarsputen, grajfer otvoren)

    unsigned char d;

    while(1)

    {

    d=PIND;

    if(d==0b11011101)//ako je stanje na senzorima sljedee, aktivirajpoetno stanje cilindra i grajfera

  • 8/2/2019 RSRV

    13/15

    {PORTB=0b11011101;

    _delay_ms(3000);// aktiviram pocetno stanje cilindra i grajferaPORTB=0xff;

    }

    if (d==0b11011100)// ako je aktivan senzor 1 (disk prisutan), tadaaktiviramo cilindar 1 u D2

    {PORTB=0b11011011;_delay_ms(3000);// podizanje cilindraPORTB=0xff;

    }

    if (d==0b11010010)// ako je aktiviran senzor 4 (disk prisutan ugrajferu), zatvaramo grajfer

    {PORTB=0b11100011;_delay_ms(3000);// zatvaranje grajfera

    PORTB=0xff;_delay_ms(3000);PORTB=0b11100101;// grajfer zatvoren, izvri sputanje cilindra_delay_ms(3000);PORTB=0xff;

    }

    if (d==0b11100101)// ako je grajfer zatvoren i cilindar sputen aktivirajmotor

    {PORTB=0b01100101;// motor aktivan_delay_ms(3000);

    PORTB=0b10100101;//zaustavi motor i izvri okretanje diska_delay_ms(3000);PORTB=0b01100101;// motor aktivan

    _delay_ms(3000);PORTB=0xff;

    }

    //PORTB=0x00;

    //return 0;}

    }

  • 8/2/2019 RSRV

    14/15

    Sadraj:

    UVOD...........................................................................................................................3

    1.0Raunalo................................................................................................................4

    1.1.Mikroprocesor............................................................................................................41.2.

    Mikrokontroler...........................................................................................................5

    2.0Atmel ....................................................................................................................62.1

    AVR.............................................................................................................................6

    2.2 Softverskialati.......................................................................................................8

  • 8/2/2019 RSRV

    15/15

    3.0Zadatak..................................................................................................................8

    4.0 Programski

    kod....................................................................................................12

    Litera

    Literatura:

    1.) http://www.informatika.buzdo.com/s882.htm2.) http://www.elektronika.ba/mikrokontroleri/

    3.) http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725

    4.) http://www2.atmel.com/5.) http://google.com6.) http://www.wikipedia.org/7.) http://www.atmel.com/products/overview_mcu.asp?

    category_id=163

    http://www.informatika.buzdo.com/s882.htmhttp://www.elektronika.ba/mikrokontroleri/http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725http://www2.atmel.com/http://google.com/http://www.wikipedia.org/http://www.atmel.com/products/overview_mcu.asp?category_id=163http://www.atmel.com/products/overview_mcu.asp?category_id=163http://www.informatika.buzdo.com/s882.htmhttp://www.elektronika.ba/mikrokontroleri/http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725http://www2.atmel.com/http://google.com/http://www.wikipedia.org/http://www.atmel.com/products/overview_mcu.asp?category_id=163http://www.atmel.com/products/overview_mcu.asp?category_id=163