- Reikalingos medžiagos:
- „Flash“ atmintis:
- ICSP (grandinių serijiniame programavime):
- Grandinė ir aparatūra:
- Kodo įrašymas naudojant MPLAB IPE:
Ankstesnėse dviejose mokymo programose aptarėme, kaip pradėti naudotis PIC naudojant MPLABX ir XC8 kompiliatorių, taip pat sukūrėme savo pirmąją LED mirksi programą su PIC ir patikrinome ją imituodami. Dabar atėjo laikas įsitraukti į aparatinę įrangą. Šioje pamokoje sukursime mažą grandinę „Perf Board“, skirtoje mirksi LED, naudojant PIC. Išmesime programą į savo PIC mikrovaldiklį ir patikrinsime, ar mirksi šviesos diodas. Norėdami programuoti PIC MCU, naudosime MPLAB IPE.
Reikalingos medžiagos:
Kaip aptarta mūsų ankstesnėje pamokoje, mums reikės šios medžiagos:
- „PicKit 3“
- PIC16F877A IC
- 40 - kaiščių IC laikiklis
- Puiki lenta
- 20 MHz kristalinis OSC
- Moteriški ir vyriški „Bergstick“ kaiščiai
- 33pf kondensatorius - 2Nos, 100uf ir 10uf dangteliai.
- 680 omų, 10K ir 560ohm rezistorius
- Bet kokios spalvos šviesos diodas
- 1Ritimo rinkinys
- IC 7805
- 12 V adapteris
Kas atsitiks, kai mes „sudeginsime“ mikrovaldiklį !!
Įprasta įkelti kodą į MCU ir priversti jį veikti MCU viduje.
Norint tai suprasti, galima pažvelgti į mūsų programą
Kaip matome, šis kodas parašytas C kalba ir mūsų MCU nebus prasmės. Čia ateina mūsų kompiliatoriaus dalis; Kompiliatorius yra tas, kuris paverčia šį kodą į mašininio skaitymo formą. Ši mašinoje nuskaitoma forma vadinama HEX kodu, kiekvienas mūsų sukurtas projektas turės HEX kodą, kuris bus šiame kataloge
** Jūsų vieta ** \ Blink \ Blink.X \ dist \ default \ production \ Blink.X.production.hex
Jei taip įdomu sužinoti, kaip atrodo šis HEX kodas, tiesiog atidarykite jį naudodami bloknotą. Mūsų „Blink“ programoje HEX kodas atrodys taip:
: 060000000A128A11FC2F18: 100FAA008316031386018312031386018312031324: 100FBA0086150D30F200AF30F100C130F000F00BB1: 100FCA00E42FF10BE42FF20BE42F0000831203133A: 100FDA0086110D30F200AF30F100C130F000F00B95: 100FEA00F42FF10BF42FF20BF42F0000DB2F830107: 060FFA000A128A11D52F36: 02400E007A3FF7: 00000001FF
Yra būdų, kaip tai perskaityti ir kaip suprasti ir pakeisti ją į asamblėjos kalbą, tačiau ši instrukcija visiškai netaikoma. Taigi, paprasčiau tariant trumpai; HEX yra galutinis mūsų kodavimo programinės įrangos rezultatas ir tai bus išsiųsta MPLAB IPE už MCU įrašymą.
„Flash“ atmintis:
HEX kodas yra saugomi į MCU į vietą, vadinamą "Flash atmintis. „Flash“ atmintis yra ta vieta, kur mūsų programa bus saugoma MCU ir vykdoma iš ten. Sudarę programą savo MPLABX, išvesties konsolėje būtume gavę tokią informaciją apie atminties tipą
Kadangi ką tik parengėme mažą šviesos diodų mirksėjimo programą, atminties suvestinė rodo, kad mes ką tik sunaudojome 0,5% turimos programos vietos ir 1,4% duomenų vietos.
PIC16F877 mikrovaldiklio atmintis iš esmės yra suskirstyta į 3 tipus:
Programos atmintis: Šioje atmintyje yra programa (kurią mes parašėme), kai mes ją įrašėme. Primename, kad Programos skaitiklis vienas po kito vykdo komandos atmintyje saugomas komandas. Kadangi parašėme labai mažą programą, sunaudojome tik 0,5% visos vietos. Tai yra nepastovi atmintis, tai reiškia, kad išsaugoti duomenys nebus prarasti išjungus maitinimą.
Duomenų atmintis: tai yra RAM atminties tipas, kuriame yra specialūs registrai, pvz., SFR (specialiųjų funkcijų registras), įskaitant „Watchdog“ laikmatį, „Brown out Reset“ ir kt. Ir GPR (bendrosios paskirties registrą), į kurį įeina TRIS ir PORT ir kt. duomenų atmintyje programos metu yra ištrinami, kai mes išjungiame MCU. Bet koks programoje deklaruojamas kintamasis bus duomenų atmintyje. Tai taip pat nepastovi atmintis.
Duomenys EEPROM (elektriškai ištrinama programuojama skaitymo atmintis): atmintis, leidžianti saugoti kintamuosius dėl įrašytos programos įrašymo. Pavyzdžiui, jei priskirsime kintamąjį „a“, kad išsaugotume 5 reikšmę ir išsaugotume jį EEPROM, šie duomenys nebus prarasti, net jei maitinimas bus išjungtas. Tai nepastovi atmintis.
Programos atmintis ir EEPROM yra nepastovios atmintys, vadinamos „ Flash“ atmintimi arba EEPROM.
ICSP (grandinių serijiniame programavime):
Programuosime savo PIC16F877A naudodami ICSP parinktį, kuri yra mūsų MCU.
Kas yra ICSP?
ICSP yra paprastas būdas, kuris padeda mums užprogramuoti MCU net ir tada, kai jis yra mūsų projekto lentoje. Nereikia turėti atskiros programuotojo plokštės programuoti MCU, mums tereikia 6 jungčių iš „PicKit3“ programuotojo į mūsų plokštę taip:
1 |
VPP (arba MCLRn) |
Norėdami įeiti į programavimo režimą. |
2 |
Vcc |
11 arba 32 maitinimo kaištis |
3 |
BND |
Įžemintas PIN kodas 12 arba 31 |
4 |
PGD - duomenys |
RB7. PIN40 |
5 |
PGC - laikrodis |
RB6. PIN 39 |
6 |
PGM - įgalinti LVP |
RB3 / RB4. Nera privalomas |
ICSP tinka visiems PIC paketams; viskas, ko mums reikia, yra ištraukti šiuos penkis kaiščius (6-ių kaiščių PGM yra pasirinktinai) iš MCU į „Pickit3“, kaip parodyta paveikslėlyje žemiau.
Grandinė ir aparatūra:
Dabar mes turime pasirengę savo HEX kodą ir taip pat žinome, kaip prijungti „PicKit 3“ prie mūsų PIC MCU naudojant ICSP. Taigi, eikime į priekį ir lituokime grandinę naudodamiesi žemiau pateiktomis schemomis:
Pirmiau pateiktoje grandinėje aš naudoju 7805, norėdamas reguliuoti 5 V išėjimą į savo PIC MCU. Šis reguliatorius bus maitinamas iš 12 V sienos adapterio. RED Led naudojamas nurodyti, ar PIC yra maitinamas. Jungtis J1 naudojama ICSP programavimui. Smeigtukai sujungiami taip, kaip aptarta aukščiau esančioje lentelėje.
Pirmasis kaištis MCLR pagal numatytuosius nustatymus turi būti laikomas aukštai, naudojant 10 tūkst. Tai neleis MCU iš naujo nustatyti. Norint iš naujo nustatyti MCU, kaištį MCLR reikia laikyti ant žemės, kurį galima padaryti jungiklio SW1 pagalba.
Šviesos diodas prijungtas prie kaiščio RB3 per 560 omų vertės rezistorių (žr. LED rezistoriaus skaičiuoklę). Jei viskas bus tinkamai, kai tik bus įkelta mūsų programa, šis šviesos diodas turėtų mirksėti pagal programą. Visa grandinė yra pastatyta ant „Perfboard“, lituojant visus jos komponentus, kaip matote viršuje esančiame paveikslėlyje.
Kodo įrašymas naudojant MPLAB IPE:
Norėdami įrašyti kodą, atlikite šiuos veiksmus:
- Paleiskite MPLAB IPE.
- Prijunkite vieną „PicKit 3“ galą prie savo kompiuterio, o kitą - prie „ICSP“ kontaktų ant geriausios lentos.
- Prisijunkite prie savo PIC įrenginio spustelėdami mygtuką prisijungti.
- Suraskite „Blink HEX“ failą ir spustelėkite „Program“.
Jei viskas vyksta taip, kaip planuota, ekrane turėtumėte gauti sėkmės pranešimą. Patikrinkite žemiau esantį kodą ir vaizdo įrašą, kad galėtumėte visiškai demonstruoti, ir naudokite komentarų skyrių, jei turite kokių nors abejonių.
Ačiū!!!
Susitikime „Next“ pamokoje, kur žaisime su daugiau šviesos diodų ir jungikliu.