- Felkészülés a programozásra:
- Új projekt létrehozása az MPLAB-X használatával:
- A konfigurációs regiszterek megismerése:
- A konfigurációs bitek beállítása az MPLAB-X fájlban:
- A PIC programozása LED villogására:
- Áramkör diagram és Proteus szimuláció:
Ez a PIC oktatósorozatunk második oktatóanyaga. Korábbi bemutatónkban Ismerkedés a PIC mikrokontrollerrel: Bevezetés a PIC és az MPLABX rendszerbe megismertük a PIC mikrovezérlőnkkel kapcsolatos alapvető dolgokat, telepítettük a szükséges szoftvert és megvásároltunk egy új PicKit 3 programozót, amelyet hamarosan használni fogunk. Most már készen állunk az első LED-es villogó programunk megkezdésére a PIC16F877A használatával. Ebben az oktatóanyagban megismerjük a konfigurációs regisztereket is.
Ez az oktatóanyag azt várja, hogy telepítette a szükséges szoftvert a számítógépére, és ismer néhány tisztességes alapismeretet a PIC MCU-ról. Ha nem, kérjük, térjen vissza az előző bemutatóhoz, és kezdje el onnan.
Felkészülés a programozásra:
Mivel úgy döntöttünk, hogy a PIC16F877A-t használjuk, az XC8 fordítóval kezdjük el kezdeni az adatlapjukat. Javaslom mindenkinek, hogy töltse le a PIC16F877A adatlapot és az XC8 Compiler kézikönyvet, mivel az oktatóanyagunk előrehaladása során gyakran hivatkozunk ezekre. Mindig jó gyakorlat elolvasni bármelyik MCU teljes adatlapját, mielőtt ténylegesen elkezdjük vele programozni.
Mielőtt kinyitnánk az MPLAB-X-et és megkezdenénk a programozást, kevés alapvető dologgal kell tisztában lenni. Egyébként, mivel ez az első programunk, nem akarom sok elmélettel háborúzni önöket, de programozáskor itt és ott megállunk, és elmagyarázom nektek a dolgokat. Ha nincs elég időd mindezek átolvasására, akkor csak pillants be, és ugorj be az oldal alján található videóba.
Új projekt létrehozása az MPLAB-X használatával:
1. lépés: Indítsa el az előző osztályban telepített MPLAB-X IDE-t, miután betöltötte, valami ilyennek kell kinéznie.
2. lépés: Kattintson a Fájlok -> Új projekt elemre, vagy használja a Ctrl + Shift + N gyorsbillentyűt. A következő POP-UP-t kapja, amelyből ki kell választania az Önálló projektet, és kattintson a Tovább gombra.
3. lépés: Most ki kell választanunk az eszközünket a projekthez. Írja be PIC16F877A néven az Eszköz kiválasztása legördülő részt. Miután elkészült, ennek így kell lennie, majd kattintson a Tovább gombra.
4. lépés: A következő oldal lehetővé teszi számunkra, hogy kiválasszuk a projekt eszközét. Ez lenne a projektünk PicKit 3. Válassza a PicKit 3 elemet, és kattintson a tovább gombra
5. lépés: A következő oldalon a fordító kiválasztására, az XC8 fordító kiválasztására és a tovább gombra kattint.
6. lépés: Ezen az oldalon meg kell neveznünk a projektünket, és ki kell választanunk a projekt mentési helyét. Ezt a projektet Blinknek neveztem el, és elmentettem az asztalomra. Megnevezheti és elmentheti a kívánt módon. Projektünket mappaként menti az .X kiterjesztés, amelyet a MAPLB-X közvetlenül elindíthat. Kattintson a Befejezés gombra, ha elkészült.
7. lépés: Ennyi !!! Projektünk elkészült. A bal oldali legtöbb ablakban megjelenik a projekt neve (Itt villog), kattintson rá, hogy megnézhessük a benne található összes könyvtárat.
A programozás megkezdéséhez hozzá kell adnunk egy C Main fájlt a Source fájl könyvtárunkba. Ehhez egyszerűen kattintson a jobb egérgombbal a forrásfájlra, és válassza az Új -> C Fő fájl lehetőséget, amint az az alábbi képen látható.
8. lépés: Megjelenik a következő párbeszédpanel, amelyben meg kell említeni a C-fájl nevét. Újra megneveztem a Blinkben, de a választás rád maradt. Nevezze el a Fájlnév oszlopban, és kattintson a Befejezés gombra.
9. lépés: A C fő fájl létrehozása után az IDE megnyitja számunkra, benne néhány alapértelmezett kóddal, az alábbiak szerint.
10. lépés: Ez az, most elkezdhetjük programozni a kódunkat a C-main fájlban. Az alapértelmezett kódot nem használjuk oktatóanyagainkban. Tehát töröljük őket teljesen.
A konfigurációs regiszterek megismerése:
Mielőtt bármilyen mikrovezérlőt programozni kezdene, tudnunk kell a konfigurációs regiszterekről.
Tehát mik ezek a konfigurációs regiszterek, hogyan és miért állítsuk be őket?
A PIC eszközöknek több helyük van, amelyek a konfigurációs biteket vagy biztosítékokat tartalmazzák. Ezek a bitek meghatározzák az eszköz alapvető működését, például az oszcillátor módot, a watchdog időzítőt, a programozási módot és a kódvédelmet. Ezeket a biteket helyesen kell beállítani a kód futtatásához, különben nem futó eszközünk van . Ezért nagyon fontos tudni ezeket a konfigurációs regisztereket, még mielőtt elkezdjük a Blink programot.
Ezeknek a konfigurációs regisztereknek a használatához el kell olvasnunk az adatlapot és meg kell értenünk, hogy a különböző konfigurációs bitek milyen típusúak és milyen funkciókkal rendelkeznek. Ezeket a biteket a konfigurációs pragma segítségével programozási követelményeink alapján állíthatjuk be vagy állíthatjuk vissza.
A pragma a következő formákkal rendelkezik.
#pragma config beállítás = állapotérték #pragma config regiszter = érték
ahol a beállítás egy konfigurációs beállítás leíró, pl. WDT, és az állapot a kívánt állapot szöveges leírása, pl. KI. Tekintsük a következő példákat.
#pragma config WDT = BE // a watchdog időzítő bekapcsolása #pragma config WDTPS = 0x1A // az időzítő utóskála értékének megadása
Pihenjen !!….. Pihenjen !!…. Pihenjen !!…...
Tudom, hogy túl sokat ment a fejünkbe, és ezeknek a konfigurációs biteknek a beállítása kissé nehéznek tűnhet egy újonc számára !! De dacosan nem az MPLAB-X.
A konfigurációs bitek beállítása az MPLAB-X fájlban:
A mikrochip nagyon megkönnyítette ezt a fárasztó folyamatot a különböző típusú konfigurációs bitek grafikus ábrázolásával. Tehát most, hogy beállítsuk őket, egyszerűen követnünk kell az alábbi lépéseket.
1. lépés: Kattintson az Ablak -> PIC memória nézet -> Konfigurációs bitek elemre. Az alábbiak szerint.
2. lépés: Ennek meg kell nyitnia a Konfigurációs bitek ablakot az IDE alján, az alábbiak szerint. Ez az a hely, ahol az egyes konfigurációs biteket igényeink szerint állíthatjuk be. A lépések előrehaladtával elmagyarázom az egyes biteket és azok célját.
3. lépés: Az első bit az oszcillátor kiválasztó bit.
A PIC16F87XA négy különböző oszcillátor módban működtethető. Ez a négy mód két konfigurációs bit (FOSC1 és FOSC0) programozásával választható ki:
- LP alacsony fogyasztású kristály
- XT kristály / rezonátor
- HS nagysebességű kristály / rezonátor
- RC ellenállás / kondenzátor
Projektjeinkhez 20Mhz Osc-t használunk, ezért ki kell választanunk a HS- t a legördülő menüből.
4. lépés: A következő bit lesz a Watchdog időzítő Enable Bit.
A Watchdog Timer egy szabadon futó, chipen lévő RC oszcillátor, amelyhez nincs szükség külső alkatrészekre. Ez az RC oszcillátor külön van az OSC1 / CLKI tű RC oszcillátorától. Ez azt jelenti, hogy a WDT akkor is futni fog, ha az eszköz OSC1 / CLKI és OSC2 / CLKO érintkezõin az óra leállt. Normál működés közben a WDT időkorlátja eszköz visszaállítását (Watchdog Timer Reset) generálja. Az állapotregiszter TO bitje törlődik a Watchdog Timer időtúllépésekor. Ha az időzítő nincs törölve a szoftveres kódolásunkban, akkor az összes MCU visszaáll minden WDT időzítő túlcsordulásakor. A WDT véglegesen letiltható a konfigurációs bit törlésével.
Nem használjuk a WDT-t programunkban, ezért töröljük azt úgy, hogy a legördülő menüből az OFF lehetőséget választjuk.
5. lépés: A következő bit a Power-up timer Bit lesz.
A bekapcsolási időzítő fix 72 ms névleges időtúllépést biztosít a bekapcsoláshoz csak a POR-ból. A Powerup Timer egy belső RC oszcillátoron működik. A chip mindaddig a Reset alatt van, amíg a PWRT aktív. A PWRT késleltetése lehetővé teszi a VDD elfogadható szintre emelkedését. Konfigurációs bit található a PWRT engedélyezéséhez vagy letiltásához.
Nem lesz szükségünk ilyen késésekre a programunkban, ezért kapcsoljuk ki azt is.
6. lépés: A következő bit a kisfeszültségű programozás lesz.
A konfigurációs szó LVP bitje lehetővé teszi az alacsony feszültségű ICSP programozást. Ez az üzemmód lehetővé teszi a mikrokontroller programozását az ICSP-n keresztül egy VDD forrás segítségével, az üzemi feszültségtartományban. Ez csak azt jelenti, hogy a VPP-t nem kell a VIHH-hoz vinni, hanem a normál üzemi feszültségen hagyható. Ebben az üzemmódban az RB3 / PGM tű a programozási funkciónak van szentelve, és megszűnik általános célú I / O tű lenni. A programozás során a VDD-t az MCLR csapra alkalmazzák. A programozási módba lépéshez a VDD-t kell alkalmazni az RB3 / PGM-re, feltéve, hogy az LVP bit be van állítva.
Kapcsoljuk ki az LVP-t, hogy az RB3-at I / O tűként használhassuk. Ehhez egyszerűen kapcsolja ki ezt ki a legördülő listából.
7. lépés: A következő bitek az EEPROM és a Program memória védelmi bitek lesznek. Ha ez a bit be van kapcsolva, az MCU beprogramozása után senki sem fogja letölteni programunkat a hardverből. De most hagyjuk mind a hármat kikapcsolt állapotban.
Miután a beállításokat az utasításoknak megfelelően elvégeztük, a párbeszédpanelnek valami ilyennek kell kinéznie.
8. lépés: Most kattintson a Forráskód előállítása a kimenetre elemre. A kódunk most létrejön, csak másolja át a fejlécfájllal együtt, és illessze be a Blink.c C-fájlba, az alábbiak szerint.
Ez az, hogy elvégezzük a konfigurációs munkánkat. Minden projektünkhöz megadhatjuk ezt a konfigurációt. De ha érdekel, később vacakolhat velük.
A PIC programozása LED villogására:
Ebben a programban a PIC mikrovezérlőnk segítségével egy I / O tűhöz csatlakoztatott LED-et villogni fogunk. Vessünk egy pillantást a PIC16F877A készüléken elérhető különféle I / O csapokra.
Amint fent látható, a PIC16F877 5 alapbemeneti / kimeneti porttal rendelkezik. Ezeket általában A PORT (RA), B PORT (RB), C PORT (RC), D PORT (RD) és E PORT (RE) jelöli. Ezeket a portokat a bemenet / kimenet összekapcsolására használják. Ebben a vezérlőben a „PORT A” csak 6 bit széles (RA-0-tól RA-5), a „PORT B”, „PORT C”, „PORT D” csak 8 bit széles (RB-0-tól RB-7-ig)., RC-0-tól RC-7-ig, RD-0-tól RD-7-ig), a „PORT E” csak 3 bit széles (RE-0 – RE-2).
Ezek a portok kétirányúak. A port irányát a TRIS (X) regiszterek (TRIS A a PORT-A irányának beállításához, a TRIS B a PORT-B irányának beállításához használják stb.) Vezérlik. Az '1' TRIS (X) bit beállításával a megfelelő PORT (X) bit lesz bemenetként. A „0” TRIS (X) bit törlésével a megfelelő PORT (X) bit lesz kimenet.
A projektünkhöz kimenetként kell elkészítenünk a PORT B RB3 tűt, hogy a LED-jünket hozzá lehessen csatlakoztatni. Itt található a PIC mikrovezérlővel villogó LED kódja:
#include
Először a #define _XTAL_FREQ 20000000 használatával határoztuk meg a külső kristályfrekvenciát. Ezután a void main () függvényben utasítottuk az MCU-t, hogy az RB3-at kimeneti (TRISB = 0X00;) tűként fogjuk használni. Aztán végül egy végtelen , miközben hurkot használunk, hogy a LED villog örökké tart. A LED villogásához egyszerűen be és ki kell kapcsolni észrevehető késéssel.
A kódolás befejezése után építse fel a Projektet a Futtatás -> Fő projekt építése paranccsal. Ennek össze kell állítania a programját. Ha minden rendben van (ahogy lennie kell), akkor a képernyő alján lévő kimeneti konzol egy BUILD SUCCESSFUL üzenetet jelenít meg, amint az az alábbi képen látható.
Áramkör diagram és Proteus szimuláció:
Miután elkészítettünk egy Projektet, és ha a Build sikeres volt, egy HEX fájl jött létre az IDE hátterén. Ez a HEX fájl az alábbi könyvtárban található
Ez változhat az Ön számára, ha más helyre mentett.
Most nyissuk meg gyorsan a korábban telepített Proteust, és készítsünk sémákat ehhez a projekthez. Nem fogjuk megmagyarázni, hogyan kell ezt megtenni, mivel ez a projekt keretein kívül esik. De ne aggódjon, ezt az alábbi videó magyarázza. Miután betartotta az utasítást és elkészítette a sémákat, valami ilyennek kell kinéznie
A kimenet szimulálásához kattintson a lejátszás gombra a képernyő bal alsó sarkában a Hex fájl betöltése után. Villognia kell az MCU RB3-hoz csatlakoztatott LED-nek. Ha bármilyen problémája van, kérjük, nézze meg a videót, ha még mindig nem oldódott meg, használja a megjegyzés részt segítségért.
Most elkészítettük az első projektünket a PIC mikrovezérlővel, és szimulációs szoftver segítségével igazoltuk a kimenetet. Menj és csípd be a programot, és figyeld az eredményeket. Amíg nem találkozunk a következő projektünkön.
Ohh várj !!
A következő projektünkben megtanuljuk, hogyan lehet ezt egy tényleges hardveren működtetni. Ehhez a következő eszközökre lesz szükségünk. Addig BOLDOG TANULÁST !!
- PicKit 3
- PIC16F877A IC
- 40 tűs IC-tartó
- Tökéletes tábla
- 20Mhz kristály OSC
- Női és férfi Bergstick csapok
- 33pf kondenzátor - 2Nos
- 680 ohmos ellenállás
- Bármilyen színű LED
- Forrasztókészlet.