- Tarvittavat materiaalit:
- Flash-muisti:
- ICSP (piirisarjan ohjelmoinnissa):
- Piiri ja laitteisto:
- Koodin polttaminen MPLAB IPE: n avulla:
Edellisessä kahdessa opetusohjelmassa keskustelimme kuinka aloittaa PIC: n käyttö MPLABX- ja XC8-kääntäjällä, olemme myös tehneet ensimmäisen LED-vilkkumisohjelmamme PIC: llä ja vahvistaneet sen simuloimalla. Nyt meidän on aika saada käsiinsä laitteisto. Tässä opetusohjelmassa rakennamme pienen piirin Perf-levylle LED-merkkivalon vilkkumiseen PIC: n avulla. Ohitamme ohjelman PIC-mikrokontrollerillemme ja varmistamme, että LED vilkkuu. PIC MCU: n ohjelmoimiseksi käytämme MPLAB IPE: tä.
Tarvittavat materiaalit:
Kuten edellisessä opetusohjelmassa keskusteltiin, tarvitsemme seuraavia materiaaleja:
- PicKit 3
- PIC16F877A IC
- 40 - Tappi IC-pidike
- Täydellinen lauta
- 20 MHz: n kristalli-OSC
- Naaras- ja urospuoliset Bergstick-nastat
- 33pf kondensaattori - 2Nos, 100uf ja 10uf korkki.
- 680 ohmin, 10K ja 560ohmin vastus
- LED mikä tahansa väri
- 1Selaussarja
- IC 7805
- 12 V: n sovitin
Mitä tapahtuu, kun "poltamme" mikrokontrollerin!
On tavallista, että koodi ladataan MCU: han ja saatetaan se toimimaan MCU: n sisällä.
Vuonna ymmärtääksemme tämän voimme tarkastella ohjelmaa
Kuten voimme nähdä, tämä koodi on kirjoitettu C-kielellä, eikä sillä ole mitään järkeä MCU: lle. Täällä kääntäjämme osa tulee sisään; kääntäjä on sellainen, joka muuntaa tämän koodin Machine luettavassa muodossa. Tätä koneellisesti luettavaa lomaketta kutsutaan HEX-koodiksi, jokaisella luomallamme projektilla on HEX-koodi, joka on seuraavassa hakemistossa
** Sijaintisi ** \ Blink \ Blink.X \ dist \ default \ production \ Blink.X.production.hex
Jos olet niin kiinnostunut tietämään, miltä tämä HEX-koodi näyttää, avaa se vain muistikirjalla. Blink-ohjelmassa HEX-koodi näyttää seuraavalta:
: 060000000A128A11FC2F18: 100FAA008316031386018312031386018312031324: 100FBA0086150D30F200AF30F100C130F000F00BB1: 100FCA00E42FF10BE42FF20BE42F0000831203133A: 100FDA0086110D30F200AF30F100C130F000F00B95: 100FEA00F42FF10BF42FF20BF42F0000DB2F830107: 060FFA000A128A11D52F36: 02400E007A3FF7: 00000001FF
On tapoja lukea tämä ja kuinka ymmärtää ja kääntää se takaisin Assembly-kielelle, mutta se ei kuulu tämän opetusohjelman piiriin. Joten yksinkertaisesti sanottuna pähkinänkuoressa; HEX on koodauksemme lopullinen ohjelmistotulos, ja MPLAB IPE lähettää sen MCU: n polttamiseen.
Flash-muisti:
HEX koodi talletetaan MCU paikassa nimeltä Flash-muisti. Flash-muisti on paikka, jossa ohjelmamme tallennetaan MCU: n sisälle ja suoritetaan sieltä. Kun olemme koonneet ohjelman MPLABX: ään, olisimme saaneet seuraavat tiedot muistityypistä Output-konsolissa
Koska olemme juuri koonneet pienen LED-vilkkuvan ohjelman, muistin yhteenveto osoittaa, että olemme juuri kuluttaneet 0,5% käytettävissä olevasta ohjelmatilasta ja 1,4% datatilasta.
PIC16F877-mikrokontrollerin muisti on periaatteessa jaettu kolmeen tyyppiin:
Ohjelmamuisti: Tämä muisti sisältää ohjelman (jonka olimme kirjoittaneet) sen polttamisen jälkeen. Muistutuksena: Ohjelmalaskuri suorittaa peräkkäin ohjelmamuistiin tallennetut komennot. Koska olemme kirjoittaneet hyvin pienen ohjelman, olemme kuluttaneet vain 0,5% koko tilasta. Tämä on haihtumaton muisti, eli tallennetut tiedot eivät häviä virran katkaisun jälkeen.
Datamuisti: Tämä on RAM-muistityyppi, joka sisältää erityiset rekisterit, kuten SFR (Special Function Register), joka sisältää Watchdog-ajastimen, Brown out Reset -toiminnon jne. Ja GPR (General Purpose Register), joka sisältää TRIS- ja PORT-asetukset jne. Tallennetut muuttujat Data-muistissa olevat ohjelmat poistetaan, kun MCU kytketään pois päältä. Kaikki ohjelmassa ilmoitetut muuttujat ovat datamuistin sisällä. Tämä on myös epävakaa muisti.
Data EEPROM (sähköisesti pyyhittävä ohjelmoitava vain luku -muisti ): Muisti, joka sallii muuttujien tallentamisen kirjoitetun ohjelman polttamisen seurauksena. Jos esimerkiksi määritämme muuttujan "a" arvon 5 tallentamiseksi siihen ja tallennamme sen EEPROM: iin, nämä tiedot eivät häviä, vaikka virta katkaistaan. Tämä on haihtumaton muisti.
Ohjelmamuisti ja EEPROM ovat pysyviä muisteja, ja niitä kutsutaan Flash-muistiksi tai EEPROMiksi.
ICSP (piirisarjan ohjelmoinnissa):
Ohjelmoimme PIC16F877A: n käyttämällä MCU: ssa olevaa ICSP-vaihtoehtoa.
Mikä nyt on ICSP?
ICSP on yksinkertainen tapa, joka auttaa meitä ohjelmoimaan MCU: n silloinkin, kun se on sijoitettu projektilevyomme. MCU: n ohjelmointiin ei tarvitse olla erillistä ohjelmointikorttia, tarvitsemme vain 6 liitäntää PicKit3-ohjelmoijasta taululle seuraavasti:
1 |
VPP (tai MCLRn) |
Siirtyminen ohjelmointitilaan. |
2 |
Vcc |
Teho Pin 11 tai 32 |
3 |
GND |
Maadoitettu PIN 12 tai 31 |
4 |
PGD - tiedot |
RB7. PIN40 |
5 |
PGC - Kello |
RB6. PIN 39 |
6 |
PGM - LVP käytössä |
RB3 / RB4. Ei pakollinen |
ICSP soveltuu kaikille PIC-paketeille; tarvitsemme vain vetää nämä viisi nastaa (6. nastan PGM on valinnainen) MCU: sta Pickit3: een alla olevan kuvan mukaisesti.
Piiri ja laitteisto:
Nyt meillä on HEX-koodi valmiina ja tiedämme myös, kuinka PicKit 3 yhdistetään PIC-MCU-laitteeseen ICSP: n avulla. Joten, mennään eteenpäin ja juotetaan piiri alla olevien kaavioiden avulla:
Yllä olevassa piirissä olen käyttänyt 7805: ää säätämään lähtöä 5 V PIC MCU: lle. Tämä säädin saa virtansa 12 V: n seinäadapterista. Punaista lediä käytetään osoittamaan, onko PIC: ssä virta. Liitintä J1 käytetään ICSP-ohjelmointiin. Tapit on kytketty yllä olevan taulukon mukaisesti.
Ensimmäisen nastan MCLR on pidettävä korkealla oletusarvoisesti 10 kt. Tämä estää MCU: n nollautumisen. MCU: n nollaamiseksi nasta MCLR on pidettävä maadoitettuna, mikä voidaan tehdä kytkimen SW1 avulla.
LED kytketään nastaan RB3 vastuksen kautta, jonka arvo on 560 ohmia (katso LED-vastuslaskin). Jos kaikki on kunnossa, kun ohjelmamme on ladattu, tämän LED-valon pitäisi vilkkua ohjelman perusteella. Koko piiri on rakennettu Perfboardille juottamalla kaikki sen komponentit, kuten näet yläosassa olevasta kuvasta.
Koodin polttaminen MPLAB IPE: n avulla:
Polta koodi noudattamalla seuraavia ohjeita:
- Käynnistä MPLAB IPE.
- Liitä PicKit 3: n toinen pää tietokoneeseesi ja toinen pää perf-boardin ICSP-nastoihin.
- Yhdistä PIC-laitteeseesi napsauttamalla yhdistämispainiketta.
- Etsi Blink HEX -tiedosto ja napsauta Ohjelma.
Jos kaikki menee suunnitellusti, sinun pitäisi saada menestysviesti ruudulle. Tarkista alla oleva koodi ja video täydelliseen esittelyyn ja käytä kommenttiosaa, jos sinulla on epäilyksiä.
Kiitos!!!
Tapaamme seuraavassa opetusohjelmassa, jossa soitamme useammilla LEDeillä ja kytkimellä.