1 / 58

Razvojni sistem za mikrokontroler PIC16F877A

Razvojni sistem za mikrokontroler PIC16F877A . Branislav Dimitrijrevic Slobodan Aleksic Ivan Antic. 1. Mikrokontroleri. Mikroprocesori u odnosu na mikrokontrolere.

camdyn
Download Presentation

Razvojni sistem za mikrokontroler PIC16F877A

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Razvojni sistem za mikrokontroler PIC16F877A Branislav Dimitrijrevic Slobodan Aleksic Ivan Antic

  2. 1. Mikrokontroleri

  3. Mikroprocesori u odnosu na mikrokontrolere Dok je mikroprocesor (CPU) na jedinstvenom cipu sam mikrokontroler,na jedinstvenom cipu, sadrzi CPU,RAM i ROM memoriju i ostale ulazno-izlazno orijentisane gradivne blokove(paralelni i serijski interfejsi,tajmeri,logika za prihvatanje prekida,A/D i D/A konvertore i dr.). Detaljni blok dijagram mikroracunarskog sistema

  4. Mikroprocesori Osnovna namena CPU-a je da pribavlja podatke, obavlja izracunavanja nad podacima i memorise rezultate izracunavanja na disku kao i da za potrbe korisnika prikaze te rezultate na displeju (CRT, TFT, LED i dr.). Programi koje koristi mikroprocesor memorisani su na disku odakle se citaju i smestaju u RAM. Deo programa, najcesce malog obima, se obicno smesta i u ROM-u. Blok dijagram mikroprocesora(CPU-a)

  5. Mikrokontroleri Mikrokontroler je u sustini pravi ''mali racunar'' na cipu, koji sadrzi sve gradivne blokove CPU-a (ALU, PC, SP, registre i dr.) ali takodje i RAM, ROM, paralelne i seriske U/I portove, generatore takta i dr. Blok dijagram mikrokontrolera

  6. Razlike izmedju mikroprocesora i mikrokontrolera • Razlike su brojne, ali one koje su najvaznije su sledece: • Mikroprocesori najcesce CISC tipa.Za kopiranje podataka iz spoljne memorije u CPU koriste veci broj op-kôdova, dok mikrokontroleri jedan ili dva. • Za manipulisanje sa podacima tipa bit mikroprocesori koriste jedan ili dva tipa instrukcija, dok kod mikrokontrolera taj broj je veci. • Mikroprocesori su projektovani za brzi prenos podataka iz programa sa spoljno adresiranih lokacija u cip, dok se kod mikrokontrolera brzi prenos bitova obavlja u okviru cipa. • Mikrokontroler moze da funkcionise kao racunar bez dodataka spoljnih gradivnih blokova (memorije i U/I uredjaja), dok operativnost mikroprocesora bez spoljne memorije i U/I podsistema nije moguca.

  7. Mikrokontroler PIC16F877A • Mikrokontroler PIC16F877A poseduje tipcnu RISC arhitekturu. Arhitektura poseduje odvojene magistrale za podatke i programski kôd. Obim podataka je 8-bitni, dok je programski kôd 14-bitni. Moguce je protocno izvrsenje (pipelining). Sve insrukcije su istog obima (osim instrukcija grananja) i izvsavaju se za cetiri taktna intervala. Dakle, ako koristimo oscilator npr. od 20 MHz dobijamo da ciklus instrukcuije traje 200 ns. Gradivni blokovi mikrokontrolera su: • Flash programska memorija – 8 kiloreci obima 14 bita • RAM (File Registers) – 368 bajtova • Aritmetičko-logička jedinica (ALU) • Akumulator (Working Register) • Hardverski magacin (Stack) organizivan u 8 nivoa • EEPROM memorija podataka obima 256 bajtova • Razne periferne jedinice (portovi, tajmeri, A/D konvertor, USART,...)

  8. Osnovne karakteristike mikrokontrolera PIC16F877A: • Visoko performansni RISC CPU • 35 instrukcija obima jedne reci • Radna frekvencija ,fref = DC-20 MHz • Trajanje taktnog intervala tcpu = 200 ns, kada je fref = 20 MHz • Op-kôd obima14bita • Harverski magacin sa osam nivoa • Tri nacina adresiranja: -direktno • -indirektno • -relativno • Programska memorija kapaciteta 8kx14-bitnih reci realizovane u FLASH tehnologiji • Memorije za podatke tipa RAM kapaciteta 368x8bita • Memorije za podatke EEPROM tipa, kapaciteta 256x8 bita • Prekidi ( do 14 izvora prekida) • U/I portovi: A,B,C,D,E • Tri tajmera: -Timer0: 8-bitni tajmer/brojac dogadjaja • -Timer1: 16-bit tajmer/brojac dogadjaja • -Timer2: 8-bit tajmer/brojac dogadjaja • 10-to bitni 8-kanalni Analogno-Digitalni (A/D) konvertor • Seriska komunikacija: MSSP (Master Slave Serial Port),USART (Universal Synchronous Asynchronous Reciver Transmiter) • Paralelna komunikacija: PSP (Parallel Slave Port) • Power-on Reset- reset pri ukljucenju napajanja(POR) • Power-up timer-unosenje kasnjenja nakon ukljucenja napajanja (PWRT) • OscillatorStart-up Timer-unosenje kasnjenja nakon stabilizovanja radne frekvencije oscilatora(OST) • Sleep -rezim rada za stednju energije • Watchdog timer sa sopstvenim integrisanim RC oscilatorom za nezavisni rad • Izbor tipa oscilatora • Mala potrosnja,velika brzina rada • Radni napon od 2V do 5.5V • Mala potrosnja energije: -<0.6 mA pri naponu od 3V i radnoj frekvenciji od 4 MHz • -20µA pri naponu od 3V i radnom taktu od 32kHz • -<1µA u standby nacinu rada

  9. Raspored nozica Jezgro mikrokontrolera PIC16F887A pakuje se u 40-pinsko DIP pakovanje ili u 44-pinska kucista QFP i PLCC tipa • Napajanje od +5V se dovodi na pinove VDD (11 i 32) a masa na pinove VSS (12 i 31). • Nozice OSC1 i OSC2 (pinovi 13 i 14) sluze za priklucivanje oscilatorskih komponeti (RC-kolo ili kvarc). • Pin 1 (MCLR/VPP) ima dvostruku ulogu. Standardno se koristi kao Reset, a u procesu programiranja kao pin za dovodjenje visokog napona (13V). • Ostalih 33 pina prestavljaju U/I linije. One su grupisane u pet portova (PORTA-PORTE) i svaki od njih mozemo konfigurisati kao ulazni ili izlazni. Osim opste namene vecina pinova ima i specificnu namenu koju dobija u slucaju koriscenja nekih specijalnih periferija mikrokontrolera (brojaca, ADC, serijske komunikacije). Raspored nozica mikrokontrolera PIC16F877A

  10. Generator takta (Oscilator) • Moguce su cetri varijante u konfiguraciji oscilatora: • LP Low Power Crystal • XT Crystal / Resonator • HS High Speed Crystal / Resonator • RC Resistor/Capacitor • Kontroler moze da radi i na 32 kHz i tada ima jako malu potrosnju Najcesce se koristi spoljni kristalni oscilator (XT) radne frekvencije 4MHz Spajanje kristalnog oscilatoraOblik signala pri ukljucenju oscilatora

  11. Takt/instrukciski ciklus • Takt koji se dovodi na nozice oscilatora OSC1 u mikrokontroleru se deli na cetiri vremenski nepreklapajuca taktna signala nazvana Q1,Q2,Q3 i Q4. Skup ovih signala cine jedan instrukciski ciklus. U zavisnosti od trenutka generisanja u okviru ciklusa instrukcija, taktni signali Q1-Q4 se koriste za sledece namene: • Q1-pribavljanje instrukcije iz programske memorije • Q2-dekodiranje naredbe iz prethodnog instrukciskog ciklusa • Q3-izvrsenje naredbe iz prethodna dva instrukciska ciklusa • Q4-prenos op-kôda naredbe pozvane u Q1 u instrukcijski registar. Vremenski dijagram kod izvrsavanja instrukcije

  12. Reset Reset sluzi da bi sve registre mikrokontrolera doveli u pocetni polozaj. Ako se mikrokontroler “zakoci” ,ili smo ga tek ukljucili, treba ga resetovati. Da bi sprecili slucajno dovodjenje “0” na MCLR nozicu, porebno ju je preko otpornika povezati na pol napajanja Vdd. Povezivanje kola za reset • Postoji vise vrste reseta kod PIC16F877A mikrokontrolera: • Power-on reset (POR) • MCLRReset pri normalnom radu • MCLRReset prilikom SLEEP rezima rada • WDTReset pri normalnom radu • WDTWake-up (budjenje iz SLEEP rezima rada) • Brown-outReset (BOR)

  13. Watchdog timer Prekoracenje intervala brojanja WDT-a, prilikom normalnog rada, izaziva RESET kontrolera. Ako je kontroler bio u SLEEP rezimu rada prekoracenje tajmera ce probuditi kontroler i program ce nastaviti sa normalnim radom. Iskljucivanje WDT-a se vrsi resetovanjem WDTE bita u konfiguracionoj reci. Nominalno vreme WDT-a je 18 ms bez uptrebe preskalera. Ovo vreme moze da varira od kola do kola zbog temperature i slicno. Ukoliko je potrebno duze vreme moze se WDT-u pridruziti preskaler sa faktorom deljenja do 1:128, tako se vreme moze produziti do 2,3 s. Instrukcije CLRWDT i SLEEP resetuju WDT. TO’ bit u STATUS registru ce biti 0 nakon isteka WDT.

  14. Prekidi Mikrokontroler PIC16F877A podrzava tehniku rada sa prekidima (interrupts). Postoji ukupno 14 izvora pekida, neki su interni, a drugi su eksterni. Svaki prekid nema sopstveni vektor-broj.Kada se prihvati zahtev za prekid izvrsenje prekidnog programa pocinje od adrese 0x0004. Tada se programskim putem testira stanje markera koji se postavljaju kada se aktivira odgovarajuci prekid (interrupt flags polling).Kada se ustanovi koji je od uredjaja generisao zahtev za prekid, prelazi se na izvrsenje odgovarajuce rutine za obradu tog prekida. Povratna adresa prekinutog programana cuva se automatski u hardverski magacin.Povratak iz prekidnog programa se vrsi instrukcijom RETFIE. Upravljacki registar INTCON se koristi za maskiranje prekida.

  15. U/I Portovi Za vezu mikrokontrolera sa spoljnim svetom zaduzeni su ulazno/izlazni portovi. Ima ih pet i oznaceni kao PORTA, PORTB, PORTC, PORTD i PORTE. Razlicitog su obima. PORTE cine tri pina, PORTA sest, a ostala tri porta su osmopinski. Odredjeni pinovi U/I portova u zavisnosti od rezima rada mogu da imaju fiksne ili promenljive funkcije. Konfiguracija smera prenosa na odgovarajucoj bit poziciji porta vrsi se upisom konfiguracione reci u pripadajuci TRIS registar pri cemu nula konfigurise pin kao izlazni, a jedinica kao ulazni.

  16. Port A Port A je 6-bitni bidirekcioni port i sadrzi pinove od RA0 do RA5. TRISA je direkcioni registar koji odredjuje smer pinova na portu. Ako postavimo TRIS na logicku jedinicu, pin je ulazni, u suprotnom pin je izlazni. Npr. ako je TRISA=0b111111 ceo port A je ulazni, a ako je TRISA=0b000000, ceo port A je izlazni. Moguce je podeliti port A, tako da, na primer, prva 2 bita budu ulazna,a ostala 4 izlazna (TRISA=0b110000). Pin RA4 na portu A (sa otvorenim drejnom pa se zahteva od projektanta da veze otpornik odgovarajuce vrednosti za pozitivan napon) Port A od RA0 do RA3 i RA5

  17. Port B Port B je 8-bitni bidirekcioni port. Svi pinovi imaju odgovarajuce bitove u TRISB registru kojim se pinovi konfigurisu kao izlazni ili kao ulazni. ‘1’ u nekom bitu u TRISB registru stavlja odgovarajuci pin u stanje visoke impedanse i on radi kao ulazni pin. ‘0’ u TRISB registru prosledjuje sadrzaj bita iz izlaznog (latch) registra na pin i on radi kao izlazni. Svi pinovi u PORTB imaju pull-up otpornike. Ovi otpornici se mogu ukljuciti jednim kontrolnim bitom. To se radi stavljanjem RBPU' bita na ‘0’. Pull-up otpornici se automatski iskljucuju kad se pin konfigurise kao izlazni. Otpornici su iskljuceni kod Power-on-reset-a. Cetri pina na PORTB (RB4-RB7) imaju mogucnost generisanja interapta. Samo pinovi definisani kao ulazni mogu prouzrokovati interapt. Struktura pinova od RB0 do RB3 Struktura pinova od RB4 do RB7

  18. Port C Port C je 8- bitni bidirekcioni port. Ovaj port je specifican sto na pinovima RC6 i RC7 ima ugradjen USART modul koji sluzi za serisku komunikaciju (npr. Sa racunarom). Prilikom koriscenja modula za serisku komunikaciju potrebno je softverski konfigurisati pinove RC6 i RC7 tako da budu u funkciji USART modula. Struktura pinova od RC0 do RC2 i od RC5 do RC7 Struktura pinova od RC3 i RC4

  19. Port D Port D je 8-bitni bidirekcioni port. Ovaj port se moze konfigurisati kao 8-bitni paralelni mikroprocesorski port (parallel slave port-PSP), podesavanjem konfigurisuceg bita PSPMOTE (TRISC<4>). U tom rezimu rada ulazni bafer je TTL tipa. Struktura porta D

  20. Port E Port E je sirine 3 bita.Ima mogucnost A/D konverzije.Svaki pin porta E moze da se konfigurise softverski kao ulazni ili izlazni. Ulazni bafer je Schmitt Trigger tipa. Pinovi se mogu konfigurisati kao digitalni ili analogni,kao i u slucaju porta A, sto je vec pomenuto. Na slikama 1.30 i 1.31 prikazana je strukturna blok sema Porta E i tabelarni prikaz registara koji sluze za konfigurisanje. Struktura porta E

  21. A/D konverzija S obzirom na kontinualnost pojava u spoljasnjem svetu, tesko je upravljati bilo kojim procesom bez digitalizacije analognih velicina. Kao sto smo vec napomenuli Port A i Port E imaju mogucnost A/D konverzije sto podrazumeva da se mogu konfigurisati kao analogni ili digitalni. Ako zelimo da koristimo A/D konverziju moramo ukljuciti modul za tu svrhu i podesiti ga na nacin koji nam najvise odgovara.

  22. Organizacija memorije • Strukturu memorije ovog mikrokontrolera cine tri odvojena bloka: • Programska memorija • Memorija podataka • EEPROM memorija podataka • Odvojeno od nabrojanoh memorijskih blokova egzistira zasebna struktura magacina(Stack), koji se satoji od osam 13-bitnih registara. Stack pointer se ne moze citati, niti se u njega moze upisivati. Prilikom izvrsenja instrukcije CALL ili prilikom poziva prekida mikrokontrolera, adresa sledece instrukcije se stavlja na magacin. Magacin radi na principu ciklicnog bafera, sto znaci da se u njega mogu staviti osam razlicitih adresa, a da se upisom devete brise prva i tako redom. Programski se ne moze utvrditi da li je doslo do prepunjeja steka.

  23. Organizcija programske memorije Mikrokontroletri PIC16F877A imaju 13-bitni programski brojac (PC) koji je u mogucnosti da adresira memorijski prostor od 8k programskih reci od 14 bita. Reset vektor je 0X0000 i od njega pocinje izvrsavanje programa. Interapt vektor je 0X0004. Mapa programske memorije i stack

  24. Organizacija memorije podataka Memorija za podatke je izdeljena u vise celina–banki (banks), a sastoji se od registara opste namene (General Purpose Registers) i registara specijalne funkcije (Special Function Registers). U jednom od specijalnih registara, tzv. STATUS registru postoje dva bita RP1 i RP0 koji sluze za odabir zeljene banke podataka po principu: Nacin kodovanja Bank Interni EEPROM za podatke Ako je potrebno neke podatke sacuvati i po ukidanju napajanja mikrokontrolera, treba ih prethodno zapisati u interni EEPROM. Ova memorija sadrzi 256 bajtova

  25. Tajmeri • Ove se periferije koriste za merenje vremena i brojanje eksternih dogadjaja. Ugradjena su tri tajmerska modula (TMR 0,1,2) i svaki ima svoje specificnosti. • Tajmer0 je jednostavni 8-bitni brojac koji generise prekid pri prelasku sa 0xFF na 0x00 (overflow). Poseduju ga svi nizi PICmicro procesori i ovde je zadrzana kompatibilnost s njima. Izvor takta za tajmer0 moze biti bilo interni sistemski sat (Fosc/4), bilo spoljni generator takta spojen na pin RA4/T0CKI. Moguce je podesiti da se brojac inkrementira na rastucu ili opadajucu ivicu spoljnjeg signala. U kombinaciji sa modulom tajmera 0 moze se koristiti programabilni preskaler (delilac frekvencije) sa odnosima deljenja od 1:2 do 1:256. Ukoliko deljenje nije potrebno preskaler se dodeli watchdog tajmeru. Kada je preskaler u upotrebi maksimalna frekvencija eksternog izvora iznosi 50 MHz sto je vece od maksimalne frekvencije samog mikrokontrolera. • Tajmer1 je 16-bitni i takodje je osposobljen da radi kao brojac ili merac vremena. Ima tri izvora takta: sistemski sat (Fosc/4), spoljasnji takt ili spoljasnji kristal. Brojac eksternih dogadjaja moze se sinhronizovati sa internim oscilatorom, a postoji i asinhroni nacin rada koji omogucuje da se brojac inkrementira i u sleep rezimu. Preskaliranje je upotrebljivo sa vrednostima deljenja 1:1, 1:2, 1:4 i 1:8. • Tajmer2 je 8-bitni tajmer sa programabilnim preskalerom i postskalerom. Moze biti tajmer/brojac opste namene. Medjutim, potreban je CCP modulu prilikom generisanja PWM (impulsna sirinska modulacija) signala i modulu za sinhronu serijsku komunikaciju (SSP) kao Baud Rate generator. U kooperaciji sa tajmerom 2 koristi se registar PR2 (Period Register). Kada se vrednost brojaca izjednaci sa vrednoscu upisanom u registar PR2, generise se odgovarajuci interapt.

  26. Ostale periferne jedinice Mikrokontroler obicno nije usamljen, nego je deo mreze uredjaja koji trebaju medjusobno komunicirati i razmenjivati podatke. U tu svrhu, on je opremljen sa tri hardverska komunikaciona modula. Prvi od njih je SSP modul (Synchronous Serial Port), koji sluzi za komunikaciju sa serijskim EEPROM-ima,pomerackim registrima, displej-drajverima, itd. Ovaj modul moze raditi u jednom oddva rezima: 1. Serial Peripheral Interface (SPI) 2. Inter-Integrated Circuit (I2C) Drugi serijski komunikacioni modul je USART (Universal Synchronous Asynchronous Receiver Transmiter).On uglavnom sluzi za povezivanje sa personalnim racunarom, ali to nije njegova jedina mogucnost primene. USART se moze konfigurisati u neki od sledecih modova rada: 1. Asinhroni rad (full duplex) 2. Sinhroni master rad (half duplex) 3. Sinhroni slave rad (half duplex) Osim serijskih, postoji i jedan paralelni komunikacioni modul. Rec je o modulu PSP (Parallel SlavePort). On sluzi da se PIC16F877 direktno poveze na 8-bitnu magistralu podataka drugog mikroprocesora. Eksterni procesor tada koristeci linije Read (RD) i Write (WR) moze citati i upisivati Port D registar kao svaki drugi 8-bitni lec.

  27. 2. Hardverska struktura razvojnog sistema

  28. Ovaj razvojni sistem mozemo grubo podeliti u dva dela: • Programator-gradivni blok koji se koristi za punjenje kreiranog programa. Kreirani program se prethodno unosi, kompajlira i debagira u host-u tipa PC masina, a zatim se program serijskom komunikacijom prenosi do programatora. Nakon programiranja kontroler je sposoban da izvrsava odgovarajuci program. • Mikrokontrolerski sistem-predstavlja srce sistema i definisano je hardverom tipicnim za aplikaciju.

  29. Programator Za programator je iskoriscen dobro poznati i vec provereni TAIT programator. Sema Tait programatora

  30. Za programiranje mikrokontrolera I rad razvojnog sistema potrebni su naponi od 13V i 5V.Sema za dobijanje ovih napona sastoji se od transformatora, Grecovog usmeraca I stabilizatora napona 7812 i 7805. Sema za dobijanje potrebnih napona

  31. Nacin povezivanja programatora u rezimu rada In Circuit Serial Programmerje sledeci:

  32. Kako je sistem stalno pod naponom napajanja, iz standardne seme Tait programatora izbacen je deo za napajanje. Modifikovani Tait programator

  33. Mikrokontrolerski sistem Blok sema razvojnog sistema

  34. Tasteri U konkretnoj realizaciji tasteri su povezani na deo porta B, od RB0 do RB5. Pritisak tastature registruje se promenom stanja na bilo kom ulazu porta B, na taj nacin sto se po automatizmu generise zahtev za prekid, pa time ne postoji potreba za programskim testiranjem rada tastature. Pinovi RB6 i RB7 su iskorisceni za programiranje. Nacin povezivanja tastera sa mikrokontrolerom Fizicki izgled tastera

  35. LED LED (LED-Light Emmiting Diode) koje su koriscene su crvene, zute i zelene boje. Za svaki port na cijem je izlazu vezana LED koriscena je posebna boja diode. Tako da na deo PORTA (od RA1 do RA6) su vezane crvene LED, za deo PORTC (od RC0 do RC5) zute, za port E zelene i za deo PORTD (RD0 i RD1) crvene. Sve diode su precnika 3mm i difuznog su tipa. Nacin povezivanja LED za port C Tehnicki parametri i fizicki izgled koriscenih dioda

  36. Max232 MAX232 se koristi za povezivanje razvojnog sistema sa racunarom po standardu RS232C. U konkretnoj realizaciji iskorisceno je pakovanje DIP16. Kolo se napaja jednostrukim naponom od 5 V. Veza razvojnog sistema sa PC-ijem je dupleks tipa. Podaci od PC masine ka razvojnom sistemu se vode preko drajverskog stepena koji povezuje pinove 11 i 14(T1IN i T1OUT), a od razvojnog sistema ka PC masini preko drajverskog stepena 12 i 13(R1OUT i R1IN). S obzirom da prenos podataka ne prati i prenos taktnih impulsa komunikacija je asinhrona serijska. Povezivanje MAX232 saistemom

  37. Deo za ispravljanje i stabilizaciju napona Pomocu transformatora T1 mrezni napon od 220 V se transformise u AC napon amplitude 12 V. Nakon toga vrsi dvostruko ispravljanje pomocu Grecovog ispravljaca (B1/80). Nestabilizovani napon od 18 V se dovodi na ulaz linijskog stabilizatora 7812. Na izlazu stabilizatora dobija se stabilisani napon od 13.2 V. Napon napajanja od +5 V se dobija na izlazu linearnog stabilizatora 7805. Stabilisani napon od 13.2 V se koristi za programiranje mikrokontrolera, anapon od 5 V za napajanje logike. Usmeracki deo razvojnog sistema Transformator

  38. Deo za analogno-digitalnu konverziju U konkretnoj realizaciji izvrseno je samo prosledjivanje naponskih nivoa sa spoljneg ulaza na pin RA0.Povezivanje je ostvareno preko pina konektora J5.

  39. Deo za povezivanje LCD-a Siroku primenu u savremenim mikrokontrolerskim sistemima postigli su LCD displeji koji pored prikaza numerickih karaktera imaju u sebi implementiran ceo ASCII alfabet, kao i razne specijalne znake. Postoje razliciti tipovi alfanumerickih LCD displeja, ali najveci procenat se bazira na istom cip-setu tipa Hitachi HD44780. Iz tog razloga displeji koji su kompatibilni sa HD44780 mogu koristiti iste softverske rutine, bez obzira na tip ili proizvidjaca. Nacin povezivanja LCD-a i mikrokontrolera

  40. Povezivanje kola za reset i oscilatora Strukturu kola za reset cine pasivni elementi R1 i C1 cija je vremenska konstanta tako izabrana da obezbedi korektni start programa nakon ukljucenja sistema na napajanje. Uloga tastera T1 je da obezbedi manuelni reset za slucaj da mikrokontroler iz odredjenih razloga blokira rad u toku izvrsenja programa. Nacin povezivanja mikrokontrolera

  41. Fizicki izgled stampanih plocica Izgled stampane plocice napajanja sa raspodelom veza-pogled odozgo Izgled stampane plocice razvojnog sistema sa raspodelom elemenata-pogled odozgo

  42. 3. Prateci softver za PC i demo programi

  43. Za rad sa razvojnim sistemom potrebno je da na PC masini imamo sledeci softver: • MPLAB IDE • Hi-Tech • Ic-Prog

  44. Kreiranje aplikacija na programskom jeziku C za mikrokontroler PIC16F877A Kako je mikrokontroler bez softvera samo obican komad plastike, metala i prociscenog peska, na ovom mestu cemo dati nekoliko mogucih softverskih resenja za nas razvojni sistem i tako kompletirati iskoristivu celinu.

  45. Tipovi podataka C programski jezik podrzava pet osnovnih tipova podataka (character, integer, float, void, double) i cetiri modifikovana tipa podataka(signed, unsigned, long, short). Tabela 3.1 pokazuje znacenje osnovnih tipova podataka i modifikovanih tipova: Tipovi podataka u programskom jeziku C Svakpm tipu podatka odgovara odredjeni opseg kod prezentacije brojeva. Ovaj opseg se moze menjati u zavisnosti od koriscenog modifikatora.

  46. Prekidi • Prekidi mogu se inicirati od strane velikog broja razlicitih internih ili eksternih izvora u odnosu na PICmicroMCU. Kada se javi prekid, PIC hardver sledi fiksni model ponasanja prikazan na slici. Algoritam izvrsenja programa pri nastanku prekida Hardver je u potpunost pod PICmicroMCU kontrolom, a softver je u celini odgovornost projektanata. Kada se desi prekid, prvi korak je da se testira i odredi izvor prekida. U slucaju vise prekida, rutina za indetifikacuju izvora prekida na osnovu dodeljenog prioriteta odredjuje koji ce se prekid prvo obraditi.

  47. Primena programskog jezika C (primeri) Jedni od najpoznatijih ANSI C kompajlera koji su namenjeni Microchip PIC mikrokontrolerima su svakako Hi-Tech PICC i CCS PCW kompajleri.HI-Tech kompajler spada u profesionalne alate i namenjen je najzahtevnijim korisnicima. Baziran je na DOS aplikaciji koja se poziva iz komandne linije,ali zahvaljujuci MPLAB integraciji moze se dobiti zadovoljvajuce IDE okruzenje.Biblioteke koje se isporucuju zajedno sa kompajlerima spadaju u osnovne, pa ce za bilo kakvu dodatnu periferiju je potrebno kreirati odgovarajuce funkcije i procedure.

  48. ''fuses'' podesavanja __CONFIG (LVPDIS&XT&PROTECT&PWRTEN&WDTDIS&DEBUGDIS); Ovom direktivom omogucavamo da kompajler umetne u HEX datoteku i ''fuses'' podesavanja shodno potrebama programera. Kada se ovako izgenerisani HEX fajl ucita u program programatora (recimo u Ic-Prog ) programator ce automatski podesiti podesavanja koji tip oscilatora koristimo, da li ce mikrokontroler biti zasticen od citanja ili ne, da li ce ''watch-dog''(WDT) tajmer biti aktivan ili ne, itd. U konkretnom primeru je podeseno sledece: Low Voltage In-Circuit Serial Programming - DISABLED Oscilator- XT Protect(zastiti mikrokontroler od citanja) - ENABLED Power-up Timer(PWT) - ENABLED Watchdog Timer(WDT) - DISABLED In-Circuit Debugger - DISABLED

  49. Pravljenje ALIAS-a ulazno/izlaznih pinova Jako korisna mogucnost C jezika je definisanje logickih imena ulazno/izlaznim pinovima. Prva pogodnost ovakvog pristupa je sto se na ovaj nacin jednostavnije mogu pamtiti imena pinova i njihova funkcija, a druga mozda jos bitnija, je da se portabilnost ovako pisanog kôda znacajno uproscava.Naime, ukoliko je iz nekog razloga potrebno u toku razvoja prebaciti neki izlazni uredjaj na neki drugi pin od planiranog, ovo se bezbolno moze izvrsiti izmenom u samoj definiciji bez da se pretrazuje ceo kôd kako bi se izvrsile promene na svim mestima gde se taj pin upotrebljava. #define PORTBIT(adr,bit) ((unsigned)(&adr)*8+(bit))//pinovi static bit Taster1 @ PORTBIT(PORTC,0); static bit Taster2 @ PORTBIT(PORTC,1); static bit Taster3 @ PORTBIT(PORTC,2); static bit LED0 @ PORTBIT(PORTB,0); static bit LED1 @ PORTBIT(PORTB,1); static bit LED2 @ PORTBIT(PORTB,2);

  50. Upisivanje parametra u DATA EEPROM Ponekad je jako zgodno da parametre ili info-tekst upisemo u interni DATA EEPROM mikrokontrolera vec pri samom pisanju programa (npr. Default vrednosti parametara). To je najlakse izvesti uz pomoc makroa __EEPROM_DATA( ), koji su sastavni deo Hi-Tech PICC kompajlera. __EEPROM_DATA('L','C','D','T','_','B','R','1'); __EEPROM_DATA('v','e','r','-','1','.','0','0'); __EEPROM_DATA('s','e','p','-','2','0','0','6');

More Related