Razvojni sistem za mikrokontroler PIC 16 F 877

  • Slides: 58
Download presentation
Razvojni sistem za mikrokontroler PIC 16 F 877 A Branislav Dimitrijrevic Slobodan Aleksic Ivan

Razvojni sistem za mikrokontroler PIC 16 F 877 A Branislav Dimitrijrevic Slobodan Aleksic Ivan Antic

1. Mikrokontroleri

1. Mikrokontroleri

Mikroprocesori u odnosu na mikrokontrolere Dok je mikroprocesor (CPU) na jedinstvenom cipu sam mikrokontroler,

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

Mikroprocesori Osnovna namena CPU-a je da pribavlja podatke, obavlja izracunavanja nad podacima i memorise

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)

Mikrokontroleri Mikrokontroler je u sustini pravi ''mali racunar'' na cipu, koji sadrzi sve gradivne

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

Razlike izmedju mikroprocesora i mikrokontrolera Razlike su brojne, ali one koje su najvaznije su

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.

Mikrokontroler PIC 16 F 877 A poseduje tipcnu RISC arhitekturu. Arhitektura poseduje odvojene magistrale

Mikrokontroler PIC 16 F 877 A 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, . . . )

Osnovne karakteristike mikrokontrolera PIC 16 F 877 A: • Visoko performansni RISC CPU •

Osnovne karakteristike mikrokontrolera PIC 16 F 877 A: • 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 obima 14 bita • Harverski magacin sa osam nivoa • Tri nacina adresiranja: -direktno -indirektno -relativno • Programska memorija kapaciteta 8 k x 14 -bitnih reci realizovane u FLASH tehnologiji • 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: -Timer 0: 8 -bitni tajmer/brojac dogadjaja -Timer 1: 16 -bit tajmer/brojac dogadjaja -Timer 2: 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) • Oscillator Start-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 2 V do 5. 5 V • Mala potrosnja energije: -<0. 6 m. A pri naponu od 3 V i radnoj frekvenciji od 4 MHz - 20µA pri naponu od 3 V i radnom taktu od 32 k. Hz - <1µA u standby nacinu rada

Raspored nozica Jezgro mikrokontrolera PIC 16 F 887 A pakuje se u 40 -pinsko

Raspored nozica Jezgro mikrokontrolera PIC 16 F 887 A pakuje se u 40 -pinsko DIP pakovanje ili u 44 -pinska kucista QFP i PLCC tipa • Napajanje od +5 V se dovodi na pinove VDD (11 i 32) a masa na pinove VSS (12 i 31). • Nozice OSC 1 i OSC 2 (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 (13 V). Raspored nozica mikrokontrolera PIC 16 F 877 A • 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).

Generator takta (Oscilator) Moguce su cetri varijante u konfiguraciji oscilatora: • LP Low Power

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 k. Hz i tada ima jako malu potrosnju Najcesce se koristi spoljni kristalni oscilator (XT) radne frekvencije 4 MHz Spajanje kristalnog oscilatora Oblik signala pri ukljucenju oscilatora

Takt/instrukciski ciklus Takt koji se dovodi na nozice oscilatora OSC 1 u mikrokontroleru se

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

Reset sluzi da bi sve registre mikrokontrolera doveli u pocetni polozaj. Ako se mikrokontroler

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 PIC 16 F 877 A mikrokontrolera: • Power-on reset (POR) • MCLR Reset pri normalnom radu • MCLR Reset prilikom SLEEP rezima rada • WDT Reset pri normalnom radu • WDT Wake-up (budjenje iz SLEEP rezima rada) • Brown-out Reset (BOR)

Watchdog timer Prekoracenje intervala brojanja WDT-a, prilikom normalnog rada, izaziva RESET kontrolera. Ako je

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.

Prekidi Mikrokontroler PIC 16 F 877 A podrzava tehniku rada sa prekidima (interrupts). Postoji

Prekidi Mikrokontroler PIC 16 F 877 A 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 0 x 0004. 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.

U/I Portovi Za vezu mikrokontrolera sa spoljnim svetom zaduzeni su ulazno/izlazni portovi. Ima ih

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.

Port A je 6 -bitni bidirekcioni port i sadrzi pinove od RA 0 do

Port A je 6 -bitni bidirekcioni port i sadrzi pinove od RA 0 do RA 5. 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=0 b 111111 ceo port A je ulazni, a ako je TRISA=0 b 000000, ceo port A je izlazni. Moguce je podeliti port A, tako da, na primer, prva 2 bita budu ulazna, a ostala 4 izlazna (TRISA=0 b 110000). Port A od RA 0 do RA 3 i RA 5 Pin RA 4 na portu A (sa otvorenim drejnom pa se zahteva od projektanta da veze otpornik odgovarajuce

Port B je 8 -bitni bidirekcioni port. Svi pinovi imaju odgovarajuce bitove u TRISB

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 (RB 4 -RB 7) imaju mogucnost generisanja interapta. Samo pinovi definisani kao ulazni mogu prouzrokovati interapt. Struktura pinova od RB 0 do RB 3 Struktura pinova od RB 4 do RB 7

Port C je 8 - bitni bidirekcioni port. Ovaj port je specifican sto na

Port C je 8 - bitni bidirekcioni port. Ovaj port je specifican sto na pinovima RC 6 i RC 7 ima ugradjen USART modul koji sluzi za serisku komunikaciju (npr. Sa racunarom). Prilikom koriscenja modula za serisku komunikaciju potrebno je softverski konfigurisati pinove RC 6 i RC 7 tako da budu u funkciji USART modula. Struktura pinova od RC 0 do RC 2 i od RC 5 do RC 7 Struktura pinova od RC 3 i RC 4

Port D je 8 -bitni bidirekcioni port. Ovaj port se moze konfigurisati kao 8

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

Port E je sirine 3 bita. I ma mogucnost A/D konverzije. Svaki pin porta

Port E je sirine 3 bita. I ma 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

A/D konverzija S obzirom na kontinualnost pojava u spoljasnjem svetu, tesko je upravljati bilo

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.

Organizacija memorije Strukturu memorije ovog mikrokontrolera cine tri odvojena bloka: • Programska memorija •

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.

Organizcija programske memorije Mikrokontroletri PIC 16 F 877 A imaju 13 -bitni programski brojac

Organizcija programske memorije Mikrokontroletri PIC 16 F 877 A imaju 13 -bitni programski brojac (PC) koji je u mogucnosti da adresira memorijski prostor od 8 k programskih reci od 14 bita. Reset vektor je 0 X 0000 i od njega pocinje izvrsavanje programa. Interapt vektor je 0 X 0004. Mapa programske memorije i stack

Organizacija memorije podataka Memorija za podatke je izdeljena u vise celina–banki (banks), a sastoji

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 RP 1 i RP 0 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

Tajmeri Ove se periferije koriste za merenje vremena i brojanje eksternih dogadjaja. Ugradjena su

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. • Tajmer 0 je jednostavni 8 -bitni brojac koji generise prekid pri prelasku sa 0 x. FF na 0 x 00 (overflow). Poseduju ga svi nizi PICmicro procesori i ovde je zadrzana kompatibilnost s njima. Izvor takta za tajmer 0 moze biti bilo interni sistemski sat (Fosc/4), bilo spoljni generator takta spojen na pin RA 4/T 0 CKI. 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. • Tajmer 1 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. • Tajmer 2 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 PR 2 (Period Register). Kada se vrednost brojaca izjednaci sa vrednoscu upisanom u registar PR 2, generise se odgovarajuci interapt.

Ostale periferne jedinice Mikrokontroler obicno nije usamljen, nego je deo mreze uredjaja koji trebaju

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 od dva rezima: 1. Serial Peripheral Interface (SPI) 2. Inter-Integrated Circuit (I 2 C) 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 Slave Port). On sluzi da se PIC 16 F 877 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.

2. Hardverska struktura razvojnog sistema

2. Hardverska struktura razvojnog sistema

Ovaj razvojni sistem mozemo grubo podeliti u dva dela: 1. Programator-gradivni blok koji se

Ovaj razvojni sistem mozemo grubo podeliti u dva dela: 1. 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. 2. Mikrokontrolerski sistem-predstavlja srce sistema i definisano je hardverom tipicnim za aplikaciju.

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

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

Za programiranje mikrokontrolera I rad razvojnog sistema potrebni su naponi od 13 V i

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

Nacin povezivanja programatora u rezimu rada In Circuit Serial Programmer je sledeci:

Nacin povezivanja programatora u rezimu rada In Circuit Serial Programmer je sledeci:

Kako je sistem stalno pod naponom napajanja, iz standardne seme Tait programatora izbacen je

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

Mikrokontrolerski sistem Blok sema razvojnog sistema

Mikrokontrolerski sistem Blok sema razvojnog sistema

Tasteri U konkretnoj realizaciji tasteri su povezani na deo porta B, od RB 0

Tasteri U konkretnoj realizaciji tasteri su povezani na deo porta B, od RB 0 do RB 5. 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 RB 6 i RB 7 su iskorisceni za programiranje. Nacin povezivanja tastera sa mikrokontrolerom Fizicki izgled tastera

LED (LED-Light Emmiting Diode) koje su koriscene su crvene, zute i zelene boje. Za

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 RA 1 do RA 6) su vezane crvene LED, za deo PORTC (od RC 0 do RC 5) zute, za port E zelene i za deo PORTD (RD 0 i RD 1) crvene. Sve diode su precnika 3 mm i difuznog su tipa. Nacin povezivanja LED za port C Tehnicki parametri i fizicki izgled koriscenih dioda

Max 232 MAX 232 se koristi za povezivanje razvojnog sistema sa racunarom po standardu

Max 232 MAX 232 se koristi za povezivanje razvojnog sistema sa racunarom po standardu RS 232 C. U konkretnoj realizaciji iskorisceno je pakovanje DIP 16. 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 (T 1 IN i T 1 OUT), a od razvojnog sistema ka PC masini preko drajverskog stepena 12 i 13 (R 1 OUT i R 1 IN). S obzirom da prenos podataka ne prati i prenos taktnih impulsa komunikacija je asinhrona serijska. Povezivanje MAX 232 saistemom

Deo za ispravljanje i stabilizaciju napona Pomocu transformatora T 1 mrezni napon od 220

Deo za ispravljanje i stabilizaciju napona Pomocu transformatora T 1 mrezni napon od 220 V se transformise u AC napon amplitude 12 V. Nakon toga vrsi dvostruko ispravljanje pomocu Grecovog ispravljaca (B 1/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, a napon od 5 V za napajanje logike. Usmeracki deo razvojnog sistema Transformator

Deo za analogno-digitalnu konverziju U konkretnoj realizaciji izvrseno je samo prosledjivanje naponskih nivoa sa

Deo za analogno-digitalnu konverziju U konkretnoj realizaciji izvrseno je samo prosledjivanje naponskih nivoa sa spoljneg ulaza na pin RA 0. Povezivanje je ostvareno preko pina konektora J 5.

Deo za povezivanje LCD-a Siroku primenu u savremenim mikrokontrolerskim sistemima postigli su LCD displeji

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 HD 44780. Iz tog razloga displeji koji su kompatibilni sa HD 44780 mogu koristiti iste softverske rutine, bez obzira na tip ili proizvidjaca. Nacin povezivanja LCD-a i mikrokontrolera

Povezivanje kola za reset i oscilatora Strukturu kola za reset cine pasivni elementi R

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

Fizicki izgled stampanih plocica Izgled stampane plocice napajanja sa raspodelom veza-pogled odozgo Izgled stampane

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

3. Prateci softver za PC i demo programi

3. Prateci softver za PC i demo programi

Za rad sa razvojnim sistemom potrebno je da na PC masini imamo sledeci softver:

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

Kreiranje aplikacija na programskom jeziku C za mikrokontroler PIC 16 F 877 A Kako

Kreiranje aplikacija na programskom jeziku C za mikrokontroler PIC 16 F 877 A 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.

Tipovi podataka C programski jezik podrzava pet osnovnih tipova podataka (character, integer, float, void,

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 Znacenje Kljucna rec character Karakter podataka char integer Neoznaceni celi brojevi int float Brojevi u pokretnom zarezu float double Brojevi u pokretnom zarezu dvostruke preciznosti double void Bez vrednosti void signed Pozitivni ili negativni brojevi signed unsigned Samo pozitivni brojevi unsigned long Duzi opseg broja long short Kraci opseg broja short Tip Svakpm tipu podatka odgovara odredjeni opseg kod prezentacije brojeva. Ovaj opseg se moze menjati u zavisnosti od koriscenog modifikatora.

Prekidi mogu se inicirati od strane velikog broja razlicitih internih ili eksternih izvora u

Prekidi mogu se inicirati od strane velikog broja razlicitih internih ili eksternih izvora u odnosu na PICmicro. MCU. Kada se javi prekid, PIC hardver sledi fiksni model ponasanja prikazan na slici. Algoritam izvrsenja programa pri nastanku prekida Hardver je u potpunost pod PICmicro. MCU 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.

Primena programskog jezika C (primeri) Jedni od najpoznatijih ANSI C kompajlera koji su namenjeni

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.

''fuses'' podesavanja __CONFIG (LVPDIS&XT&PROTECT&PWRTEN&WDTDIS&DEBUGDIS); Ovom direktivom omogucavamo da kompajler umetne u HEX datoteku i

''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 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 ''watchdog''(WDT) tajmer biti aktivan ili ne, itd. U konkretnom primeru je podeseno sledece: Low Voltage In-Circuit Serial Programming Oscilator Protect(zastiti mikrokontroler od citanja) Power-up Timer(PWT) Watchdog Timer(WDT) In-Circuit Debugger - DISABLED - XT - ENABLED - DISABLED

Pravljenje ALIAS-a ulazno/izlaznih pinova Jako korisna mogucnost C jezika je definisanje logickih imena ulazno/izlaznim

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) static bit static bit Taster 1 Taster 2 Taster 3 LED 0 LED 1 LED 2 ((unsigned)(&adr)*8+(bit)) //pinovi @ @ @ PORTBIT(PORTC, 0); PORTBIT(PORTC, 1); PORTBIT(PORTC, 2); PORTBIT(PORTB, 0); PORTBIT(PORTB, 1); PORTBIT(PORTB, 2);

Upisivanje parametra u DATA EEPROM Ponekad je jako zgodno da parametre ili info-tekst upisemo

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'); __EEPROM_DATA('s', 'e', 'p', '-', '2', '0', '6');

Opcije za optimizaciju kôda pri kompajliranju Prilikom kompajliranja kôda Hi-Tech kompajler moze primeniti vise

Opcije za optimizaciju kôda pri kompajliranju Prilikom kompajliranja kôda Hi-Tech kompajler moze primeniti vise modela optimizacije. Optimizacija se ukljucuje navodjenjem parametara u komandnoj liniji pri pozivu kompajlera: 0 (ukljucuje post-pass optimizaciju), i –Zg (ukljucuje Global optimizaciju). Ukoliko je ukljucen neki od metoda optimizacije dobija se povecanje brzine izvrsavanja kôda, kao i smanjenje objektnog (HEX) kôda. Pozeljno je uvek koristiti optimizaciju, ukoliko kôd radi kako je specificirano zahtevima. U primerima koji su navedeni, obavezno je koriscenje maksimalne optimizacije kako bi generisani kôd rutine Delay bio odgovarajuceg trajanja.

Program za iskljucivanje i ukljucivanje LED Svrha ovog programa je upoznavanje sa nekim osnovnim

Program za iskljucivanje i ukljucivanje LED Svrha ovog programa je upoznavanje sa nekim osnovnim naredbama programskog jezika C. Program je dosta jednostavan i lak za razumevanje, a ima zadatak da, u zavisnosti od toga koji je taster pritisnut, ukljuci neki pin odgovrajuceg porta ili da ukljucuje LED nekim unapred definisanim redosledom. Iskoriscena je mogucnost koja postoji u radu sa portom B. Naime pinovi RB 4 do RB 7 mogu da generisu prekid ( samo ako smo prethono to omogucili konfigurisanjem odgovarajuceg flag-a) kada se desi promena stanja na odgovarajucem pinu. Ujedno je primenjena i softverska analiza stanja tastera koriscenjem Timer 0.

Program koji upravlja radom LCD-a Ovaj program je malo slozeniji od prethodnog. Zadatak programa

Program koji upravlja radom LCD-a Ovaj program je malo slozeniji od prethodnog. Zadatak programa je da broji od 0 do 999 i rezultat prikaze na LCD displeju. Pored ostalog ovde treba da se obavi konverzija dekadnog broja u niz ASCII cifara, iz razloga sto LCD displej, kao i svaka periferija manipulisu samo sa zapisima u ASCII formatu. Ovde je iskoriscen i interni EEPROM mikrokontrolera za zapis nekih informacija koje se koriste u svrhu evidencije.

Program za komunikaciju razvojnog sistema sa racunarom Ovaj program ima za cilj da broji

Program za komunikaciju razvojnog sistema sa racunarom Ovaj program ima za cilj da broji od 0 do 99 i da rezultat prikaze na racunaru. Program nema neku prakticnu svrhu, kao ni prethodni, vec mu je jedini cilj edukacija. Pokazuje kako se vrsi podesavanje USART modula mikrokontrolera. Brzina prenosa podataka dosta zavisi od izabranog oscilatora, o cemu je bilo reci u prethodnim odeljcima. Veoma lako moze da se promeni i da se koristi kao potprogram u nekim slozenijim programima. Komunikacija je asinhrona serijska bez koriscenja prekidnih rutina.

Fizicki izgled razvojnog sistema

Fizicki izgled razvojnog sistema

Branislav R. Dimitrijevic, rodjen 21. 02. 1983. godine u Surdulici. U istom mestu zavrsio

Branislav R. Dimitrijevic, rodjen 21. 02. 1983. godine u Surdulici. U istom mestu zavrsio je srednju tehnicku skolu na smeru automatika. Upisuje 2002. godine Elektronski fakultet u Nisu, smer telekomunikacije, na kome i danas uspesno studira. Student je pete godine. U toku studiranja izradio je par projekata medju kojima je i ovaj. Interesovanja: mikroprocesorski I mikrokontrolerski sistemi, satelitske komunikacije, projektovanje telekomunikacionih sistema, web programiranje, elektroakustika…

Slobodan P. Aleksic, rodjen 05. 1982. godine u Vranju. Osnovnu skolu i Gimnaziju zavrsio

Slobodan P. Aleksic, rodjen 05. 1982. godine u Vranju. Osnovnu skolu i Gimnaziju zavrsio u rodnom gradu. Studije upisao 2001. godine na Elektronskom fakultetu u Nisu, smer za telekomunikacije. Interesovanja: Primena mikroracunara u kolima sa pokretnim LED displejom, obrada i digitalni prenos analognih signala, projektovanje telekomunikacionih sistema…

Ivan S. Antic, rodjen 04. 05. 1983. godine u Prokuplju, gde je zavrsio osnovnu

Ivan S. Antic, rodjen 04. 05. 1983. godine u Prokuplju, gde je zavrsio osnovnu skolu i gimnaziju. Elektronski fakultet u Nisu je upisao 2002. godine na smeru telekomunikacije. Intresovanja: Mikroracunarski sistemi, mobilne telekomunikacije, kablovska televizija. . .