- Priprema za programiranje:
- Izrada novog projekta pomoću MPLAB-X:
- Upoznavanje registra konfiguracije:
- Postavljanje konfiguracijskih bitova u MPLAB-X:
- Programiranje PIC-a na treptanje LED:
- Kružni dijagram i simulacija Proteja:
Ovo je drugi vodič iz naše PIC udžbeničke serije. U našem prethodnom vodiču Početak rada s PIC mikrokontrolerom: Uvod u PIC i MPLABX, naučili smo osnovne stvari o našem PIC mikrokontroleru, instalirali smo i potrebni softver i kupili novi programer PicKit 3 koji ćemo uskoro koristiti. Sada smo spremni za početak rada s našim prvim LED programom za treptanje pomoću PIC16F877A. Također ćemo naučiti o konfiguracijskim registrima u ovom vodiču.
Ovaj vodič očekuje da ste na računalo instalirali potreban softver i da znate neke pristojne osnove o PIC MCU-u. Ako ne, vratite se na prethodni vodič i započnite odatle.
Priprema za programiranje:
Budući da smo odlučili koristiti PIC16F877A, s kompajlerom XC8 započnimo s njihovim podacima. Preporučujem svima da preuzmu tablicu s podacima PIC16F877A i priručnik za XC8 Compiler, jer ćemo ih često nazivati tijekom napretka kroz naš vodič. Uvijek je dobra praksa pročitati kompletnu tablicu podataka bilo kojeg MCU-a prije nego što zapravo započnemo s njim programirati.
Prije nego što otvorimo MPLAB-X i započnemo s programiranjem, nekoliko je osnovnih stvari kojih čovjek mora biti svjestan. U svakom slučaju, budući da je ovo naš prvi program, ne želim vas maltretirati, ljudi s puno teorije, ali zaustavit ćemo se ovdje i tamo dok programiramo i objasnit ću vam stvari kao takve. Ako nemate dovoljno vremena da pročitate sve ovo, samo pogledajte i uskočite u videozapis na dnu stranice.
Izrada novog projekta pomoću MPLAB-X:
Korak 1: Pokrenite MPLAB-X IDE koji smo instalirali u prethodnoj klasi, nakon učitavanja trebao bi izgledati otprilike ovako.

Korak 2: Kliknite Datoteke -> Novi projekt ili upotrijebite prečac Ctrl + Shift + N. Dobit ćete sljedeći POP-UP, od kojeg morate odabrati Samostalni projekt i kliknuti Dalje.

Korak 3: Sada moramo odabrati svoj uređaj za projekt. Utipkajte kao PIC16F877A preko padajućeg odjeljka Odabir uređaja . Kad završite, to bi trebalo biti ovako, a zatim kliknite Dalje.

Korak 4: Sljedeća stranica omogućit će nam odabir alata za naš projekt. Ovo bi bio PicKit 3 za naš projekt. Odaberite PicKit 3 i kliknite na next

Korak 5: Sljedeća stranica zatražit će odabir kompajlera, odaberite XC8 Compiler i kliknite Next.

Korak 6: Na ovoj stranici moramo imenovati naš projekt i odabrati mjesto na kojem projekt treba biti spremljen. Nazvao sam ovaj projekt Blink i spremio na radnu površinu. Možete ga imenovati i spremiti na svoj preferirani način. Naš projekt bit će spremljen kao mapa s proširenjem .X, koju MAPLB-X može izravno pokrenuti. Nakon završetka kliknite Završi.

Korak 7: To je to !!! Naš projekt je stvoren. U lijevom prozoru prikazat će se naziv projekta (Here Blink), kliknite ga kako bismo mogli pregledati sve direktorije unutar njega.
Da bismo započeli s programiranjem, moramo dodati C glavnu datoteku, unutar našeg direktorija izvorne datoteke. Da biste to učinili, jednostavno kliknite desnu tipku miša na izvornu datoteku i odaberite Novo -> Glavna datoteka, kao što je prikazano na donjoj slici.

Korak 8: Pojavit će se sljedeći dijaloški okvir u kojem se mora spomenuti ime C-datoteke. Ponovno sam imenovao Blink, ali izbor je na vama. Dajte mu naziv u stupcu Naziv datoteke i kliknite na završetak.

Korak 9: Jednom kada se kreira glavna datoteka C, IDE će nam je otvoriti s nekim zadanim kodovima, kao što je prikazano dolje.

Korak 10: To je to, sada možemo započeti s programiranjem našeg koda u C-glavnoj datoteci. Zadani kôd neće se koristiti u našim vodičima. Pa izbrišimo ih u potpunosti.
Upoznavanje registra konfiguracije:
Prije početka programiranja bilo kojeg mikrokontrolera moramo znati o njegovim konfiguracijskim registrima.
Pa koji su to konfiguracijski registri, kako i zašto bismo ih trebali postaviti?
PIC uređaji imaju nekoliko mjesta koja sadrže konfiguracijske bitove ili osigurače. Ovi bitovi specificiraju osnovni rad uređaja, kao što su način oscilatora, čuvar vremena, način programiranja i zaštita koda. Ovi bitovi moraju biti ispravno postavljeni da bi se pokrenuo kôd, inače imamo neaktivni uređaj . Stoga je vrlo važno znati o tim konfiguracijskim registrima prije nego što uopće započnemo s našim Blink programom.
Da bismo mogli koristiti ove konfiguracijske registre, moramo pročitati tablicu podataka i razumjeti koje su različite vrste konfiguracijskih bitova dostupne i njihove funkcije. Ti se bitovi mogu postaviti ili resetirati na temelju naših programskih zahtjeva pomoću konfiguracijske pragme.
Pragma ima sljedeće oblike.
#pragma config postavka = stanje-vrijednost #pragma config register = vrijednost
gdje postavka je postavka deskriptor konfiguracije, primjerice, WDT, a država je tekstualni opis željenog stanja, npr OFF. Razmotrite sljedeće primjere.
#pragma config WDT = ON // uključiti nadzorni timer #pragma config WDTPS = 0x1A // odrediti vrijednost skale vremenskog mjerila
OPUSTITI!!….. OPUSTITE SE !!…. OPUSTITE SE !!…...
Znam da nam je to previše ušlo u glavu i da bi postavljanje ovih konfiguracijskih bitova moglo izgledati malo teško za novajliju !! No, prkosno nije s našim MPLAB-X.
Postavljanje konfiguracijskih bitova u MPLAB-X:
Microchip je ovaj postupak zamaranja uvelike olakšao uporabom grafičkih prikaza različitih vrsta konfiguracijskih bitova. Dakle, sada da bismo ih postavili, jednostavno moramo slijediti korake u nastavku.
Korak 1: Kliknite prozor -> PIC prikaz memorije -> konfiguracijski bitovi. Kao što je prikazano niže.

Korak 2: Ovo bi trebalo otvoriti prozor Configuration Bits na dnu našeg IDE-a, kao što je prikazano dolje. Ovo je mjesto gdje možemo postaviti svaki od konfiguracijskih bitova prema našim potrebama. Objasnit ću svaki bit i njegovu svrhu dok napredujemo kroz korake.

Korak 3: Prvi bit je bit odabira oscilatora.
PIC16F87XA može se upravljati u četiri različita načina oscilatora. Ova se četiri načina mogu odabrati programiranjem dva konfiguracijska bita (FOSC1 i FOSC0):
- LP kristal male snage
- XT kristal / rezonator
- HS kristal / rezonator velike brzine
- RC otpornik / kondenzator

Za naše projekte koristimo Osmi 20 MHz, stoga iz padajućeg okvira moramo odabrati HS.
Korak 4: Sljedeći bit bit će naš nadzorni sat Omogući bit.
Watchdog Timer je RC oscilator koji radi na čipu i ne zahtijeva nikakve vanjske komponente. Ovaj RC oscilator je odvojen od RC oscilatora OSC1 / CLKI pina. To znači da će WDT raditi čak i ako je sat na OSC1 / CLKI i OSC2 / CLKO pinovima uređaja zaustavljen. Tijekom normalnog rada, WDT-time-out generira Resetiranje uređaja (Reset čuvara vremena). Bit TO u registru statusa izbrisat će se nakon isteka vremena nadzornika. Ako se tajmer ne očisti u našem softverskom kodiranju, tada će se cijeli MCU resetirati nakon svakog prelijevanja WDT timera. WDT se može trajno onemogućiti brisanjem konfiguracijskog bita.
Ne koristimo WDT u našem programu, zato ga razjasnimo odabirom OFF s padajućeg okvira.
Korak 5: Sljedeći bit bit Bit vremena za uključivanje.
Tajmer za uključivanje omogućuje fiksno nominalno vrijeme od 72 ms pri uključivanju samo iz POR-a. Powerup Timer radi na internom RC oscilatoru. Čip se čuva u Resetiranju sve dok je PWRT aktivan. Vremensko kašnjenje PWRT-a omogućuje VDD-u da se podigne na prihvatljivu razinu. Postavljen je konfiguracijski bit za omogućavanje ili onemogućavanje PWRT-a.
Neće nam trebati takva kašnjenja u našem programu, pa neka i to ISKLJUČIMO.
Korak 6: Sljedeći bit bit će programiranje niskog napona.
LVP bit konfiguracijske riječi omogućuje programiranje ICSP niskog napona. Ovaj način omogućuje programiranje mikrokontrolera putem ICSP-a pomoću VDD izvora u području radnog napona. To samo znači da VPP ne mora biti doveden u VIHH, već se može ostaviti na normalnom radnom naponu. U ovom načinu rada, pin RB3 / PGM posvećen je funkciji programiranja i prestaje biti općenito I / O pin. Tijekom programiranja, VDD se primjenjuje na MCLR pin. Da biste ušli u način programiranja, VDD se mora primijeniti na RB3 / PGM pod uvjetom da je postavljen LVP bit.
Isključimo LVP kako bismo mogli koristiti RB3 kao I / O pin. Da biste to učinili, jednostavno uključite ovu OFF pomoću padajućeg okvira.
Korak 7: Sljedeći bitovi bit će EEPROM i bitovi zaštite programske memorije. Ako je ovaj bit uključen, nakon programiranja MCU-a nitko neće preuzeti naš program s hardvera. Ali za sada ostavimo sve troje ISKLJUČENO.
Nakon što se izvrše postavke prema uputama, dijaloški okvir trebao bi izgledati otprilike ovako.

Korak 8: Sada kliknite na Generiraj izvorni kod za izlaz, naš će se kôd generirati, sada ga samo kopirajte zajedno sa zaglavnom datotekom i zalijepite u našu Blink.c C-datoteku, kao što je prikazano dolje.

To je to, to je naš posao konfiguracije završen. Možemo imati ovu konfiguraciju za sve naše projekte. Ali ako ste zainteresirani, možete se kasnije zezati s njima.
Programiranje PIC-a na treptanje LED:
U ovom programu koristit ćemo naš PIC mikrokontroler za treptanje LED-a spojenog na I / O pin. Pogledajmo različite I / O pinove dostupne na našem PIC16F877A.

Kao što je gore prikazano, PIC16F877 ima 5 osnovnih ulazno / izlaznih priključaka. Obično se označavaju s LUKA A (RA), LUKA B (RB), LUKA C (RC), LUKA D (RD) i LUKA E (RE). Ti se portovi koriste za ulazno / izlazni interfejs. U ovom kontroleru, "PORT A" je širok samo 6 bita (RA-0 do RA-5), "PORT B", "PORT C", "PORT D" širok je samo 8 bita (RB-0 do RB-7, RC-0 do RC-7, RD-0 do RD-7), „PORT E” ima samo 3 bita širine (RE-0 do RE-2).

Sve su ove luke dvosmjerne. Smjer luke kontrolira se pomoću TRIS (X) registara (TRIS A koristi se za postavljanje smjera PORT-A, TRIS B koristi za postavljanje smjera za PORT-B, itd.). Postavljanjem TRIS (X) bita '1' postavit će se odgovarajući PORT (X) bit kao ulaz. Brisanjem TRIS (X) bita '0' postavit će se odgovarajući PORT (X) bit kao izlaz.
Za naš projekt moramo napraviti izlaz RB3 PORTA B kao izlazni signal kako bi naša LED dioda mogla biti spojena na njega. Ovdje je kod za LED koji trepće s PIC mikrokontrolerom:
#include
Prvo smo odredili vanjsku kristalnu frekvenciju pomoću #define _XTAL_FREQ 20000000. Zatim smo u funkciji void main () uputili naš MCU da ćemo koristiti RB3 kao izlazni (TRISB = 0X00;) pin. Onda na kraju beskonačno , a petlja se koristi tako da LED treperi ide na zauvijek. Da bismo trepnuli LED diodu, moramo je jednostavno UKLJUČITI i ISKLJUČITI s primjetnim kašnjenjem.
Nakon završetka kodiranja, izradite projekt pomoću naredbe Pokreni -> Izgradi glavni projekt. Ovo bi trebalo sastaviti vaš program. Ako je sve u redu (kako bi trebalo biti), izlazna konzola na dnu zaslona prikazat će BUILD SUCCESSFUL poruku, kao što je prikazano na donjoj slici.

Kružni dijagram i simulacija Proteja:
Jednom kada izgradimo projekt i ako je Build uspješan, u pozadini našeg IDE-a generirala bi se HEX datoteka. Ovu HEX datoteku možete pronaći u donjem direktoriju
Za vas može varirati ako ste spremili na nekom drugom mjestu.
Sada, brzo otvorimo Proteus koji smo ranije instalirali i stvorimo sheme za ovaj projekt. Nećemo objašnjavati kako to učiniti jer je to izvan opsega ovog projekta. Ali da se ne brinete, objašnjeno je u videu ispod. Jednom kad slijedite upute i izradite sheme, to bi trebalo izgledati otprilike ovako

Da biste simulirali izlaz, kliknite gumb za reprodukciju u donjem lijevom kutu zaslona nakon učitavanja Hex datoteke. Trebao bi treptati LED povezan na RB3 MCU-a. Ako imate bilo kakvih problema u njemu, pogledajte videozapis, ako i dalje nije riješen, potražite pomoć u odjeljku za komentare.
Sada smo napravili svoj prvi projekt s PIC mikrokontrolerom i provjerili izlaz pomoću simulacijskog softvera. Idite i podesite program i promatrajte rezultate. Dok se ne sretnemo na sljedećem projektu.
Oh, čekaj !!
U našem sljedećem projektu naučit ćemo kako to raditi na stvarnom hardveru. Za to će nam trebati sljedeći alati kako bi bili spremni. Do tada SRETNO UČENJE !!
- PicKit 3
- PIC16F877A IC
- 40-pinski držač IC
- Perf ploča
- Kristalni OSC od 20 MHz
- Ženska i muška Bergstick pribadača
- Kondenzator 33pf - 2Br
- Otpornik 680 ohma
- LED bilo koje boje
- Komplet za lemljenje.
