- Gatavošanās programmēšanai:
- Jauna projekta izveide, izmantojot MPLAB-X:
- Konfigurācijas reģistru iepazīšana:
- Konfigurācijas bitu iestatīšana MPLAB-X:
- PIC ieprogrammēšana, lai mirgot LED:
- Shēmas diagramma un Proteus simulācija:
Šī ir mūsu PIC apmācību sērijas otrā apmācība. Mūsu iepriekšējā apmācībā Darba sākšana ar PIC mikrokontrolleru: Ievads PIC un MPLABX, mēs uzzinājām pamatinformāciju par mūsu PIC mikrokontrolleru, mēs arī instalējām nepieciešamo programmatūru un iegādājāmies jaunu PicKit 3 programmētāju, kuru drīz izmantosim. Tagad mēs esam gatavi sākt darbu ar mūsu pirmo LED mirgojošo programmu, izmantojot PIC16F877A. Šajā apmācībā mēs uzzināsim arī par konfigurācijas reģistriem.
Šī apmācība paredz, ka esat instalējis nepieciešamo programmatūru savā datorā un zināt dažus pamatotus pamatus par PIC MCU. Ja nē, lūdzu, atgriezieties iepriekšējā apmācībā un sāciet no turienes.
Gatavošanās programmēšanai:
Tā kā mēs esam nolēmuši izmantot PIC16F877A, ar XC8 kompilatoru ļaujiet mums sākt darbu ar viņu datu lapu. Es iesaku visiem lejupielādēt PIC16F877A datu lapu un XC8 kompilatora rokasgrāmatu, jo, atsaucoties uz mūsu apmācību, mēs uz tām atsaucēsimies bieži. Vienmēr ir laba prakse izlasīt visu MCU pilnīgu datu lapu, pirms mēs faktiski sākam ar to programmēt.
Pirms mēs atveram MPLAB-X un sākam programmēt, ir jāapzinās dažas pamata lietas. Jebkurā gadījumā, tā kā šī ir mūsu pirmā programma, es nevēlos jūs nomocīt ar daudz teoriju, taču mēs apstāsimies šeit un tur, kad mēs plānojam, un es jums izskaidrošu lietas kā tādas. Ja jums nav pietiekami daudz laika, lai tos visus izlasītu, vienkārši ieskatieties un ieejiet videoklipā lapas apakšdaļā.
Jauna projekta izveide, izmantojot MPLAB-X:
1. solis: palaidiet MPLAB-X IDE, kuru mēs instalējām iepriekšējā klasē, pēc ielādes tam vajadzētu izskatīties apmēram šādi.
2. solis: Noklikšķiniet uz Faili -> Jauns projekts vai izmantojiet karsto taustiņu Ctrl + Shift + N. Jūs saņemsiet šādu POP-UP, no kura jums jāizvēlas Standalone Project un jānoklikšķina uz Next.
3. solis: Tagad mums ir jāizvēlas mūsu ierīce projektam. Nolaižamajā sadaļā Atlasīt ierīci ierakstiet kā PIC16F877A. Kad tas ir izdarīts, tam vajadzētu būt šādam un pēc tam noklikšķiniet uz Tālāk.
4. solis: Nākamā lapa ļaus mums izvēlēties rīku savam projektam. Tas būtu PicKit 3 mūsu projektam. Atlasiet PicKit 3 un noklikšķiniet uz nākamā
5. solis: Nākamajā lapā tiks lūgts atlasīt kompilatoru, atlasīt XC8 kompilatoru un noklikšķiniet uz Tālāk.
6. solis: Šajā lapā mums jānosauc mūsu projekts un jāizvēlas vieta, kur projekts jāsaglabā. Esmu nosaucis šo projektu kā Blink un saglabājis to savā darbvirsmā. Jūs varat nosaukt un saglabāt to sev vēlamākajā veidā. Mūsu projekts tiks saglabāts kā mape ar paplašinājumu .X, kuru var tieši palaist MAPLB-X. Kad esat pabeidzis, noklikšķiniet uz Pabeigt.
7. solis: tas ir viss !!! Mūsu projekts ir izveidots. Kreisajā logā būs redzams projekta nosaukums (Here Blink), noklikšķiniet uz tā, lai mēs varētu apskatīt visus direktorijus tā iekšpusē.
Lai sāktu programmēšanu, mūsu Source failu direktorijā jāpievieno C Main fails. Lai to izdarītu, vienkārši ar peles labo pogu noklikšķiniet uz avota faila un atlasiet Jauns -> C galvenais fails, kā parādīts attēlā zemāk.
8. solis: Parādīsies šāds dialoglodziņš, kurā jānorāda C faila nosaukums. Es atkal nosaucu Blink, bet izvēle paliek jums. Nosauciet to kolonnā Faila nosaukums un noklikšķiniet uz Pabeigt.
9. solis: Kad C galvenais fails ir izveidots, IDE to mums atvērs ar dažiem noklusējuma kodiem, kā parādīts zemāk.
10. solis: Tas ir viss, tagad mēs varam sākt koda programmēšanu C galvenajā failā. Noklusējuma kods mūsu apmācībās netiks izmantots. Tātad izdzēsīsim tos pilnībā.
Konfigurācijas reģistru iepazīšana:
Pirms sākt mikrokontrollera programmēšanu, mums jāzina par tā konfigurācijas reģistriem.
Kādi ir šie konfigurācijas reģistri, kā un kāpēc mums tie jāiestata?
PIC ierīcēm ir vairākas vietas, kurās ir konfigurācijas biti vai drošinātāji. Šie biti norāda ierīces pamatdarbību, piemēram, oscilatora režīmu, sargsuņa taimeri, programmēšanas režīmu un koda aizsardzību. Šie kodi ir jāiestata pareizi, lai palaistu kodu, pretējā gadījumā mums nav ierīces, kas darbojas . Tāpēc ir ļoti svarīgi zināt par šiem konfigurācijas reģistriem pirms mēs sākam darbu ar mūsu Blink programmu.
Lai izmantotu šos konfigurācijas reģistrus, mums ir jāizlasa datu lapa un jāsaprot, kādi ir pieejami dažādi konfigurācijas bitu veidi un to funkcijas. Šos bitus var iestatīt vai atiestatīt, pamatojoties uz mūsu programmēšanas prasībām, izmantojot konfigurācijas pragmu.
Pragmai ir šādas formas.
#pragma config setting = stāvokļa vērtība #pragma config register = vērtība
kur iestatījums ir konfigurācijas iestatījumu deskriptors, piemēram, WDT, un stāvoklis ir vēlamā stāvokļa, piemēram, Izslēgts, teksta apraksts. Apsveriet šādus piemērus.
#pragma config WDT = ON // ieslēdz sardzes taimeri #pragma config WDTPS = 0x1A // norādiet taimera pēcskalas vērtību
ATLAIDIES !!….. RELAX !!…. RELAX !!…...
Es zinu, ka tas ir pārāk daudz ienācis mūsu galvās, un šo konfigurācijas bitu iestatīšana iesācējiem var šķist mazliet sarežģīta !! Bet tas ir izaicinoši nevis ar mūsu MPLAB-X.
Konfigurācijas bitu iestatīšana MPLAB-X:
Mikroshēma ir padarījusi šo nogurdinošo procesu daudz vienkāršāku, izmantojot dažādu veidu konfigurācijas bitu grafiskos attēlojumus. Tāpēc tagad, lai tos iestatītu, mums vienkārši ir jāveic sekojošās darbības.
1. solis: Noklikšķiniet uz Window -> PIC Memory View -> Configuration Bits. Kā parādīts zemāk.
2. solis: Tam vajadzētu atvērt logu Konfigurācijas biti mūsu IDE apakšdaļā, kā parādīts zemāk. Šī ir vieta, kur mēs varam iestatīt katru konfigurācijas bitu atbilstoši savām vajadzībām. Es paskaidrošu katru bitu un tā mērķi, kad mēs virzāmies uz soļiem.
3. solis: pirmais bits ir oscilatora izvēles bits.
PIC16F87XA var darbināt četros dažādos oscilatoru režīmos. Šos četrus režīmus var izvēlēties, ieprogrammējot divus konfigurācijas bitus (FOSC1 un FOSC0):
- LP mazjaudas kristāls
- XT kristāls / rezonators
- HS ātrgaitas kristāls / rezonators
- RC rezistors / kondensators
Saviem projektiem mēs izmantojam 20Mhz Osc, tāpēc nolaižamajā lodziņā ir jāizvēlas HS.
4. solis: Nākamais bits būs mūsu sargsuņa taimeris Iespējot bitu.
Watchdog taimeris ir brīvi darbināms mikroshēmas RC oscilators, kuram nav nepieciešami ārēji komponenti. Šis RC oscilators ir atsevišķi no OSC1 / CLKI tapas RC oscilatora. Tas nozīmē, ka WDT darbosies pat tad, ja ierīces OSC1 / CLKI un OSC2 / CLKO tapas pulkstenis ir apturēts. Normālas darbības laikā WDT taimauts ģenerē ierīces atiestatīšanu (Watchdog Timer Reset). Statusa reģistra TO bits tiks notīrīts pēc Watchdog taimera taimauta. Ja taimeris nav notīrīts mūsu programmatūras kodējumā, viss MCU tiks atiestatīts pēc katras WDT taimera pārpildes. WDT var neatgriezeniski atspējot, notīrot konfigurācijas bitu.
Mēs savā programmā neizmantojam WDT, tāpēc notīriet to, nolaižamajā lodziņā atlasot OFF
5. solis: Nākamais bits būs Power-up taimera bits.
Ieslēgšanas taimeris nodrošina fiksētu 72 ms nominālo taimautu, ieslēdzoties tikai no POR. Powerup taimeris darbojas ar iekšējo RC oscilatoru. Mikroshēma tiek turēta Reset, kamēr PWRT ir aktīvs. PWRT laika aizture ļauj VDD paaugstināties līdz pieņemamam līmenim. Konfigurācijas bits ir paredzēts, lai iespējotu vai atspējotu PWRT.
Mums nebūs vajadzīgas šādas kavēšanās mūsu programmā, tāpēc izslēdziet arī to.
6. solis: Nākamais bits būs zema sprieguma programmēšana.
Konfigurācijas vārda LVP bits ļauj programmēt zemsprieguma ICSP. Šis režīms ļauj mikrokontrolleru ieprogrammēt, izmantojot ICSP, izmantojot VDD avotu darba sprieguma diapazonā. Tas nozīmē tikai to, ka VPP nav jānogādā VIHH, bet to var atstāt ar normālu darba spriegumu. Šajā režīmā RB3 / PGM tapa ir paredzēta programmēšanas funkcijai un vairs nav vispārējas nozīmes I / O tapa. Programmēšanas laikā VDD tiek piemērots MCLR tapai. Lai pārietu uz programmēšanas režīmu, VDD jāpielieto RB3 / PGM, ja ir iestatīts LVP bits.
Izslēgsim LVP, lai mēs varētu izmantot RB3 kā I / O tapu. Lai to izdarītu, vienkārši izslēdziet šo opciju, izmantojot nolaižamo lodziņu.
7. solis: Nākamie biti būs EEPROM un Programmu atmiņas aizsardzības biti. Ja šis bits ir ieslēgts, pēc MCU ieprogrammēšanas neviens no mūsu aparatūras neizgūs mūsu programmu. Bet pagaidām atstāsim visus trīs izslēgtus.
Kad iestatījumi ir izdarīti, kā norādīts, dialoglodziņam vajadzētu izskatīties apmēram šādi.
8. solis: Tagad noklikšķiniet uz Ģenerēt pirmkodu izvadei, mūsu kods tiks ģenerēts, vienkārši kopējiet to kopā ar galvenes failu un ielīmējiet mūsu Blink.c C failā, kā parādīts zemāk.
Tas ir tas, ka mūsu konfigurācijas darbs ir paveikts. Šāda konfigurācija mums var būt visiem mūsu projektiem. Bet, ja jūs interesē, jūs varat vēlāk sajaukt ar viņiem.
PIC ieprogrammēšana, lai mirgot LED:
Šajā programmā mēs izmantosim mūsu PIC mikrokontrolleru, lai mirgot LED, kas savienots ar I / O kontaktu. Apskatīsim dažādas I / O tapas, kas pieejamas mūsu PIC16F877A.
Kā parādīts iepriekš, PIC16F877 ir 5 pamata ievades / izvades porti. Tos parasti apzīmē ar PORT A (RA), PORT B (RB), C PORT (RC), D PORT (RD) un PORT E (RE). Šīs porti tiek izmantoti ieejas / izejas saskarnēm. Šajā kontrolierī “PORT A” ir tikai 6 bitu plata (RA-0 līdz RA-5), “PORT B”, “PORT C”, “PORT D” ir tikai 8 biti plata (RB-0 līdz RB-7, RC-0 līdz RC-7, RD-0 līdz RD-7), “PORT E” ir tikai 3 bitu platums (no RE-0 līdz RE-2).
Visas šīs ostas ir divvirzienu. Ostas virzienu kontrolē, izmantojot TRIS (X) reģistrus (TRIS A izmanto, lai iestatītu PORT-A virzienu, TRIS B, ko izmanto, lai iestatītu PORT-B virzienu utt.). Iestatot TRIS (X) bitu '1', kā ievade tiks iestatīts atbilstošais PORT (X) bits. Notīrot TRIS (X) bitu “0”, kā izvads tiks iestatīts atbilstošais PORT (X) bits.
Mūsu projektam mums jāizveido PORT B tapu RB3 kā izvadi, lai mūsu LED varētu pieslēgt tai. Šeit ir kods, kas mirgo ar PIC mikrokontrolleru:
# iekļaut
Vispirms mēs esam norādījuši ārējo kristāla frekvenci, izmantojot #define _XTAL_FREQ 20000000. Pēc tam funkcijā void main () mēs norādījām mūsu MCU, ka mēs izmantosim RB3 kā izejas (TRISB = 0X00;) tapu. Tad beidzot bezgalīgas kamēr cilpa tiek izmantots tā, ka LED mirgot iet uz visiem laikiem. Lai mirgot LED, mums tas vienkārši jāieslēdz un jāizslēdz ar ievērojamu kavēšanos.
Kad kodēšana ir pabeigta, izveidojiet projektu, izmantojot komandu Run -> Build Main Project. Tam vajadzētu apkopot jūsu programmu. Ja viss ir kārtībā (kā tam vajadzētu būt), izvades konsole ekrāna apakšdaļā parādīs ziņojumu BUILD SUCCESSFUL, kā parādīts zemāk esošajā attēlā.
Shēmas diagramma un Proteus simulācija:
Tiklīdz mēs izveidosim projektu un, ja būvēšana būs veiksmīga, HEX fails būtu izveidots uz mūsu IDE fona. Šis HEX fails ir atrodams zemāk esošajā direktorijā
Jums tas var atšķirties, ja esat saglabājis informāciju citā vietā.
Tagad ļaujiet mums ātri atvērt programmu Proteus, kuru esam instalējuši agrāk, un izveidojiet shēmas šim projektam. Mēs neskaidrosim, kā to izdarīt, jo tas ir ārpus šī projekta darbības jomas. Bet neuztraucieties, tas ir paskaidrots zemāk esošajā videoklipā. Kad esat izpildījis norādījumus un izveidojis shēmas, tam vajadzētu izskatīties apmēram šādi
Lai simulētu izvadi, pēc Hex faila ielādes noklikšķiniet uz atskaņošanas pogas ekrāna apakšējā kreisajā stūrī. Tam vajadzētu mirgot LED, kas savienots ar MCU RB3. Ja jums ir kādas problēmas, lūdzu, noskatieties videoklipu, ja tas joprojām nav atrisināts, lai saņemtu palīdzību, izmantojiet komentāru sadaļu.
Tagad mēs esam izveidojuši savu pirmo projektu ar PIC mikrokontrolleru un pārbaudījuši izeju, izmantojot simulācijas programmatūru. Iet un kniebiens apkārt ar programmu un novērot rezultātus. Līdz brīdim, kad tiksimies pie nākamā projekta.
Ohh pagaidi !!
Nākamajā projektā mēs mācīsimies, kā panākt, lai šī aparatūra darbotos. Tam mums būs nepieciešami šādi rīki, lai tie būtu gatavi. Līdz tam LAIMĪGU MĀCĪBU !!
- PicKit 3
- PIC16F877A IC
- 40 kontaktu IC turētājs
- Perfekts dēlis
- 20Mhz kristāla OSC
- Sieviešu un vīriešu Bergstick tapas
- 33pf kondensators - 2Nos
- 680 omu rezistors
- Jebkuras krāsas LED
- Lodēšanas komplekts.