- Nepieciešamie materiāli:
- Zibatmiņa:
- ICSP (shēmas sērijveida programmēšanā):
- Ķēde un aparatūra:
- Koda ierakstīšana, izmantojot MPLAB IPE:
Iepriekšējās divās apmācībās mēs apspriedām, kā sākt darbu ar PIC, izmantojot MPLABX un XC8 kompilatoru, mēs esam izveidojuši arī savu pirmo LED mirgojošo programmu ar PIC un pārbaudījuši to, izmantojot simulāciju. Tagad mums ir pienācis laiks ķerties pie aparatūras. Šajā apmācībā mēs izveidosim nelielu shēmu uz Perf Board, lai mirgot LED, izmantojot PIC. Mēs izgāzīsim programmu savam PIC mikrokontrollerim un pārbaudīsim, vai mirgo gaismas diode. Lai ieprogrammētu PIC MCU, mēs izmantosim MPLAB IPE.
Nepieciešamie materiāli:
Kā tika apspriests mūsu iepriekšējā apmācībā, mums būs nepieciešami šādi materiāli:
- PicKit 3
- PIC16F877A IC
- 40 - pin IC turētājs
- Perfekts dēlis
- 20 MHz kristāla OSC
- Sieviešu un vīriešu Bergstick tapas
- 33pf kondensators - 2Nos, 100uf un 10uf vāciņš.
- 680 omi, 10K un 560ohm rezistors
- Jebkuras krāsas LED
- 1Līmēšanas komplekts
- IC 7805
- 12V adapteris
Kas notiek, kad mēs "sadedzinām" mikrokontrolleru !!
Parasti ir augšupielādēt kodu MCU un panākt, lai tas darbotos MCU.
Lai to saprastu, apskatiet mūsu programmu
Kā redzam, šis kods ir rakstīts C valodā, un mūsu MCU tam nebūs jēgas. Šeit ienāk mūsu sastādītāja daļa; Compiler ir viens, kas pārvērš šo kodu mašīnlasāmā formā. Šo mašīnlasāmo veidlapu sauc par HEX kodu, katram mūsu izveidotajam projektam būs HEX kods, kas atradīsies šajā direktorijā
** Jūsu atrašanās vieta ** \ Blink \ Blink.X \ dist \ default \ production \ Blink.X.production.hex
Ja jūs tik ļoti interesējaties uzzināt, kā šis HEX kods izskatās, vienkārši atveriet to, izmantojot bloknotu. Mūsu Blink programmai HEX kods izskatīsies šādi:
: 060000000A128A11FC2F18: 100FAA008316031386018312031386018312031324: 100FBA0086150D30F200AF30F100C130F000F00BB1: 100FCA00E42FF10BE42FF20BE42F0000831203133A: 100FDA0086110D30F200AF30F100C130F000F00B95: 100FEA00F42FF10BF42FF20BF42F0000DB2F830107: 060FFA000A128A11D52F36: 02400E007A3FF7: 00000001FF
Ir veidi, kā to izlasīt un kā to saprast un mainīt atpakaļ asamblejas valodā, taču tas pilnībā neatbilst šīs apmācības darbības jomai. Tātad, vienkārši sakot to īsumā; HEX ir mūsu kodēšanas galīgais programmatūras rezultāts, un to MPLAB IPE nosūtīs par MCU dedzināšanu.
Zibatmiņa:
HEX kods tiek glabāta uz MCU vietā, ko sauc par Flash atmiņas. Zibatmiņa ir vieta, kur mūsu programma tiks glabāta MCU iekšpusē un izpildīta no turienes. Kad mēs esam apkopojuši programmu savā MPLABX, mēs būtu ieguvuši šādu informāciju par atmiņas veidu Output console
Tā kā mēs tikko esam sastādījuši nelielu mirgojošu gaismas diode programmu, atmiņas kopsavilkums parāda, ka tikko esam iztērējuši 0,5% no pieejamās programmas vietas un 1,4% no datu vietas.
Mikrokontrollera PIC16F877 atmiņa būtībā ir sadalīta 3 veidos:
Programmas atmiņa: Šajā atmiņā ir programma (kuru mēs esam uzrakstījuši) pēc tam, kad to esam sadedzinājuši. Atgādinām, ka Program Counter viena pēc otras izpilda programmas atmiņā saglabātās komandas. Tā kā mēs esam uzrakstījuši ļoti mazu programmu, mēs esam patērējuši tikai 0,5% no kopējās vietas. Šī ir nepastāvīga atmiņa, kas nozīmē, ka pēc izslēgšanas saglabātie dati netiks zaudēti.
Datu atmiņa: Šis ir RAM atmiņas tips, kas satur īpašus reģistrus, piemēram, SFR (Īpašo funkciju reģistrs), kas ietver Watchdog taimeri, Brown out Reset utt. Un GPR (General Purpose Register), kas ietver TRIS un PORT utt. Mainīgie, kas tiek saglabāti datu atmiņā programmas laikā tiek izdzēsti pēc tam, kad mēs izslēdzam MCU. Visi programmā deklarētie mainīgie atradīsies datu atmiņā. Arī šī ir nepastāvīga atmiņa.
Data EEPROM (elektriski izdzēšama programmējama tikai lasāma atmiņa): atmiņa, kas ļauj saglabāt mainīgos rakstītās programmas sadedzināšanas rezultātā. Piemēram, ja mēs piešķiram mainīgo "a", lai tajā saglabātu vērtību 5 un saglabātu to EEPROM, šie dati netiks zaudēti, pat ja barošana ir izslēgta. Šī ir nepastāvīga atmiņa.
Programmu atmiņa un EEPROM ir nepastāvīgas atmiņas, un tās sauc par Flash atmiņu vai EEPROM.
ICSP (shēmas sērijveida programmēšanā):
Mēs ieprogrammēsim savu PIC16F877A, izmantojot ICSP opciju, kas ir pieejama mūsu MCU.
Kas ir ICSP?
ICSP ir vienkāršs veids, kas palīdz mums programmēt MCU pat pēc tā ievietošanas mūsu projekta padomē. Lai programmētu MCU, nav nepieciešams atsevišķs programmētāja panelis, mums ir nepieciešami tikai 6 savienojumi no PicKit3 programmētāja uz mūsu paneli šādi:
1 |
VPP (vai MCLRn) |
Lai pārietu uz programmēšanas režīmu. |
2 |
Vcc |
Power Pin 11 vai 32 |
3 |
GND |
Zemes PIN 12 vai 31 |
4 |
PGD - dati |
RB7. PIN40 |
5 |
PGC - pulkstenis |
RB6. PIN 39 |
6 |
PGM - LVP iespējošana |
RB3 / RB4. Nav obligāti |
ICSP ir piemērots visām PIC paketēm; viss, kas mums nepieciešams, ir izvilkt šīs piecas tapas (6. tapas PGM nav obligāta) no MCU uz Pickit3, kā parādīts zemāk redzamajā attēlā.
Ķēde un aparatūra:
Tagad mums ir gatavs HEX kods, un mēs arī zinām, kā savienot PicKit 3 ar PIC MCU, izmantojot ICSP. Tātad, ejam uz priekšu un lodējam ķēdi, izmantojot tālāk norādītās shēmas:
Iepriekš minētajā shēmā es izmantoju 7805, lai regulētu 5 V izeju savam PIC MCU. Šo regulatoru darbinās 12V sienas adapteris. RED Led tiek izmantots, lai norādītu, vai PIC ir darbināts. Savienotāju J1 izmanto ICSP programmēšanai. Tapas ir savienotas, kā aprakstīts iepriekšējā tabulā.
Pirmās tapas MCLR pēc noklusējuma ir jātur augsts, izmantojot 10k. Tas novērsīs MCU atiestatīšanu. Lai atiestatītu MCU, tapa MCLR ir jātur pie zemes, ko var izdarīt ar slēdža SW1 palīdzību.
Gaismas diode ir savienota ar tapu RB3 caur 560 omu lielu rezistoru (sk. LED rezistora kalkulatoru). Ja pēc mūsu programmas augšupielādes viss ir kārtībā, šai LED vajadzētu mirgot, pamatojoties uz programmu. Visa shēma ir veidota uz Perfboard, pielodējot visus komponentus uz tā, kā redzat attēlā augšpusē.
Koda ierakstīšana, izmantojot MPLAB IPE:
Lai ierakstītu kodu, rīkojieties šādi:
- Palaidiet MPLAB IPE.
- Savienojiet vienu sava PicKit 3 galu ar datoru un otru galu ar ICSP tapām uz pilnās tāfeles.
- Izveidojiet savienojumu ar PIC ierīci, noklikšķinot uz pogas Savienot.
- Pārlūkojiet Blink HEX failu un noklikšķiniet uz Program.
Ja viss notiek, kā plānots, ekrānā vajadzētu saņemt veiksmes ziņojumu. Pārbaudiet zemāk redzamo kodu un video, lai pilnībā demonstrētu, un, ja jums ir kādas šaubas, izmantojiet komentāru sadaļu.
Paldies!!!
Tiekamies nākamajā apmācībā, kur mēs spēlēsimies ar vairākām gaismas diodēm un slēdzi.