C-vormingus mikrokontrollerite programmeerimine. PIC-kontrollerite programmeerimise õpetus algajatele (E.A. Korabelnikov, 2008). MPLAB C kompilaatori installimine

Lõpetuseks, täna on meil aega tutvustada teile veel ühte mikrokontrollerite perekonda – need on mikrokontrollerid PIC.

Need mikrokontrollerid on ka väga tuntud, on paigaldatud paljudesse seadmetesse ja on raadioamatööride seas pikka aega väga suurt huvi pälvinud.

Selle pere arendajaks on ettevõte Mikrokiip, mis on samuti väga kuulus ja mille tooted on nõutud üle maailma.

Selle kontrollerite seeria uurimine on väga raske küsimus. Hakkasin seda tegema juba ammu, kuid sain asja aru alles nüüd. Viimasel ajal olen PIC-mikrokontrollerite uurimise protsessi pisut kiirendanud tänu teie taotlustele gruppides ja vestlustes, millele ma ei saanud jätta vastamata.

Seetõttu märgin ära, et programmeerime PIC MK C-keeles, millise programmeerimiskeskkonna ja kompilaatori valime, otsustame veidi hiljem, seniks aga tutvustame lühidalt kontrollereid ennast, nende arhitektuur ja variatsioonid.

Näiteks AVR-kontrollerid, millega me veel töötame, on 8-bitised, STM-kontrollerid aga 32-bitised.

PIC-kontrollerid on jagatud ka biti sügavusega.

Esimene rida on 8-bitised PIC-kontrollerid. Nende mudelinimed algavad eesliitega PIC10/PIC12/PIC16.

See liin on samuti jagatud 3 perekonda.

1. ALUSjoon— see arhitektuur on olemas PIC10 kontrollerites. See erineb võimsamatest seeriatest tihvtide arvu (6 kuni 28) ja madala hinna poolest.

2. KESKMINE— PIC12/PIC16 mikrokontrolleri tuumadel on selline arhitektuur. Selle seeria tihvtide arvu on suurendatud (6-lt 64-le), need on veidi kallimad, kuid lisaks 35-le BASELINE-seeria toetatud masinajuhisele on neil 14 lisakäsku (optimeeritud C-keele kompilaatori jaoks) . Samuti on see seeria suurendanud tootlikkust 50%, neil on sügavam ja täiustatud riistvarapinn, suurenenud mälumaht ja mõned muud rõõmud, millega me hiljem tutvume, kuna tõenäoliselt alustame mikrokontrolleri programmeerimise õppimist see seeria PIC.

3. 8-bitised PIC18 mikrokontrollerid- see on täiustatud kontrollerite seeria, pardal on palju muid välisseadmeid, kontaktide arv 18 kuni 100, jõudlus 16 MIPS, NanoWatt tehnoloogia tugi, programmeeritava generaatori olemasolu.

Teine rida- need on 16-bitised kontrollerid PIC. Nende eesliide on PIC24F ja PIC24H. Need on juba võimsamad kontrollerid. Erinevalt esimesest reast ei täideta masina käsku enam generaatori neljas taktitsüklis, vaid 2-s. Lisaks on välisseadmed veelgi laiendatud siinitüüpide, otsejuurdepääsu DMA-mällu (PIC24H jaoks) ja laiendatud juhiste komplekt. Samuti on palju muid funktsioone.

Kolmas rida- need on 32-bitised kontrollerid. Nende eesliide on juba PIC32. Selliste kontrollerite taktsagedus on kuni 120 MHz ja uue MZ-seeria puhul kuni 200 ja isegi kõrgem. Näiteks on mul arendusplaat, millele on paigaldatud PIC32MZ2048EFH064 kontroller, mille taktsagedus on 252 megahertsi. Ka siin on põhijõudlust veelgi suurendatud. See perekond on üles ehitatud MIPS32® tuumale, mida lisaks suurele jõudlusele iseloomustab ka madal energiatarve.

Üldiselt on need praegu olemasolevate PIC-kontrollerite lühinäitajad. Kui võtta nimepidi, siis nimesid on palju, igale maitsele, nagu öeldakse.

Nii nagu AVR ja STM32 kontrollerid, mida me üle vaadasime, samuti need, mida me kaalume, töötavad PIC-kontrollerid ligikaudu samal viisil. Kirjutatakse programm, monteeritakse kontrolleri aritmeetika-loogilisele seadmele arusaadavaks masinkoodiks, laaditakse (flashitakse või laaditakse üles) kontrollerisse ning seejärel tagatakse töö teatud algoritmi järgi. Nende kontrollerite välgutamiseks kasutatav põhiliides on ICSP, mõeldud vooluringisiseseks programmeerimiseks. Täpsemalt tutvume sellega, kui neid kontrollereid välgutame.

Vaatame veidi mälukorraldust PIC-kontrollerites. Kuna hakkame PIC-perekonda uurima lihtsamate 8-bitistega (põhimõtet lihtsast keeruliseks pole keegi tühistanud), siis vaatame selle sarja mälukorraldust.

Kõigepealt vaatame kontrolleri plokkskeemi MK näitel PIC16F84A(pildi suurendamiseks klõpsake pildil)

Üleval vasakus nurgas hakkab kohe silma FLASH-mälumoodul, millesse on tavaliselt salvestatud kontrolleri programm (püsivara). Ja üleval paremas nurgas näeme EEPROM-mälu, mida juba kasutatakse andmete salvestamiseks. Need kaks tüüpi mälu on püsimatud ja neid ei kustutata pärast kontrolleri väljalülitamist ja lähtestamist. Kuid see mälu pole kiire, nii et programmi käivitamisel jaotatakse kood RAM-mällu (RAM), mis on niigi kiire ja on mõeldud kontrolleri tööks töötamise ajal. Seetõttu vaatleme nüüd seda mälestust veidi üksikasjalikumalt.

PIC-kontrolleri RAM jaguneb programmi- ja andmemäluks.

Nii on organiseeritud kontrolleri programmimälu PIC16F84A

Selle seeria mikrokontrolleritel on programmiloendur, mis suudab adresseerida 8K x 14 sõna programmimälu ja 14-bitine programmimälu andmesiin. Kogu programmimälu on jagatud neljaks leheküljeks, millest igaüks sisaldab 2 kilosõna (0000h-07FFh, 0800h-0FFFh, 1000h-17FFh, 1800h-1FFFh). Noh, see on üldine teave, nii et väikese mäluga kontrollerite puhul põhjustab nende lehtede vahel liikumine tsüklilise adresseerimise. Seetõttu peame teadma selle kontrolleri mälumahtu, mida tahame programmeerida. Üldiselt koosneb programmimälu programmiloendurist, mitmetasandilisest virust, mälust katkestusvektorite salvestamiseks ja sisemisest programmimälust.

Samuti õpime veidi tundma andmete salvestamiseks eraldatud RAM-i korraldust.

Andmemälu jaguneb üldotstarbelisteks registriteks ja eriotstarbelisteks registriteks. Vaatame, kuidas kontrolleri andmemälu on korraldatud PIC16F84A

Eriotstarbelised registrid (SFR) on registrid, mis on loodud rangelt määratud väärtuste salvestamiseks ja millel on konkreetsed nimed. Õpime neid tundma järk-järgult, kui kirjutame lähtekoodi, mis neid laialdaselt kasutab.

Üldotstarbelised registrid (GPR) on mäluelemendid, millel on ainult aadressid ja mis on loodud mis tahes andmete salvestamiseks.

Ka ülaltoodud jooniselt näeme, et meie kontrolleri andmemälu on jagatud kaheks leheküljeks (või pangaks), mille vahel üleminek toimub registris teatud bittide seadmisega OLEK. Seetõttu on see register olemas mõlemas pangas ja me saame sellele igal ajal juurde pääseda, et muuta praegust mälulehte.

Adresseerimine võib olla otsene, kaudne või suhteline, kui aadressi mõõdetakse praeguse aadressi suhtes. Me ei pruugi sellega tutvuda, kuna see ülesanne tekib programmeerijatel, kes kirjutavad programme assembleris.

Vastavalt sellele on igal kontrolleril lisaks mälule palju muud huvitavat, sealhulgas I/O pordid. Meie PIC-kontrollerid pole erand. Vaatame kontrolleri jalgade eesmärki PIC16F84A

Sellel kontrolleril on kaks porti - port A ja port B. Portist A tuuakse välja 5 jalga - RA0-RA4 ja pordist B - kõik 8 jalga RB0-RB7.

Samuti võivad pordijalgadel olla muud eesmärgid, olenevalt nende konfigureerimisest. Näiteks viik 6 või RB0 võib igal ajal muutuda viidiks väliste katkestuste hõivamiseks ja viik 3 või RA4 võib muutuda viidiks välise generaatori taimeri käivitamiseks.

PIC MK kella saab teha ka välisest ostsillaatorist või kvartsresonaatorist, sisemisest takistist ning on ka mitmeid muid võimalusi, mida kõik selle pere kontrollerid ei toeta. Praktikas kasutatakse tavaliselt kvartsresonaatorist pärinevat taktsagedust. Tõenäoliselt järgime seda traditsiooni ka oma tulevastes õpingutes.

Ma arvan, et siin me lõpetame oma tutvumise PIC-kontrolleritega. Tutvus osutus põgusaks, kuid esimeseks korraks piisab meile sellest. Programmide kirjutamisel kohtame rohkem dekrüpteeritud teavet. Seega ootame järgmisi tunde, mis tõotavad tulla väga huvitavad. Tutvume esmalt keskkonna paigalduse ja kompilaatoriga, uurime, kuidas nendega töötada, millised programmeerimise peensused esinevad erinevate välisseadmete seadistustes, aga ka sellega töötamises.

Vaata VIDEOÕPETUST (kliki pildil)

Postituse vaatamisi: 9304



  • taktsagedus - 20 MHz
  • 4 täis 8-bitist I/O porti
  • jada- ja paralleelport
  • I2C buss
  • mitu taimerit
  • võrdlusmoodulid, komparaatorid
  • impulsi laiuse modulatsiooni (PWM) moodul
  • 10-bitine ADC

See MK on laialt levinud ja seda leidub sageli jaemüügis. Kui olete Moskvas, peaksite minema "Chip and Dip" -sse - sealt saate seda osta umbes 350 rubla eest. Soovitan soojalt osta DIP-pakendis (lai), õnneks selline on. Esialgsete katsete ja katsete jaoks on see parim valik. Kui ostate selle ootamatult PLCC-pakendis, tekib selle kasutamisel terve hulk probleeme - 1,27 mm lamedate juhtmete samm pole kõige mugavam valik.

Niisiis, otsustasime MK kasuks. Selle artikli failidest leiate selle MK täieliku juhendi. Nüüd on selge, mida osta, kuid praegu kirjutame programmi, et oleks selge, mida sellega edasi teha ja kuidas see sellesse MK-sse "õmmelda".

Käivitame programmi MPLAB (mille installisime eelmistes artiklites). Valige menüüelement Projekt -> Projekti viisard. Klõpsake avanevas aknas Edasi.

Valige saadaolevate MCU-de ripploendist PIC16F877. Klõpsake Edasi.

Siin peame valima kompilaatori, mis töötleb meie programmikoodi. Peate üksuse valima HI-TECH PICC tööriistakomplekt ripploendis Aktiivne tööriistakomplekt. See on sama C-keele kompilaator, mille installisime viimases artiklis. Klõpsake Edasi.

Andke projektile nimi, näiteks TestPIC ja määrake projekti kataloog. Siin on kaks nippi. Esiteks ei loo MPLAB projekti enda jaoks eraldi kausta ja paigutab kõik failid otse teie määratud kataloogi. Teiseks ja võib-olla kõige tähtsam on see, et MPLAB ei mõista tee nimes olevaid vene tähti. See loob projekti, kuid programmi töötamise ajal, eriti failide salvestamisel ja avamisel, tekivad sellised "tõrked", mis jätavad pikaks ajaks mõtlema, mis on valesti. Seetõttu ei tohiks projekti kausta tee sisaldada venekeelseid nimesid. Klõpsake Edasi.

Siin saate projekti lisada mis tahes valmisfaile, kuid meil pole seda võimalust veel vaja. Klõpsake Edasi.

Siin on minu arvates kõik selge. Klõpsake Valmis.

Projekt on koostatud, kuid see on endiselt tühi. Klõpsake Fail -> Uus. Ilmub uus aken pealkirjaga Pealkirjata. Järgmisena valige Fail -> Salvesta kui.... Sisestage faili nimi, näiteks TestPIC.c ja minge oma projekti kausta. Märkige kindlasti ruut Lisa faili projekti.

Nüüd paneme alloleva koodi alla projektifaili TestPIC.c avatud aknasse (kogu projekti leiate selle artikli failidest).

#kaasa CONFIG(0x03F72); int i = 0; tühine main( tühine) ( T0IE=0; GIE=0; TRISB=0; PORTB=0; samas(1==1) ( PORTB++; jaoks(i=0; i

Tõenäoliselt mõtlete, milline on selle koodi tulemus. Juhtub järgmine: MK-ga on ühendatud 8 LED-i. Toite sisselülitamisel hakkavad LED-tuled "laine" kujul vilkuma (seda on parem näha, õnneks pole neid enam nii palju). Vaatame lähemalt koodi ennast.

Kõigepealt tuleb tuttav include-lause, mis sisaldab päisefaili koos kõigi vajalike makrodefinitsioonidega. Järgmisena tuleb veel üks eelprotsessori direktiiv __CONFIG, mis sisaldab kuueteistkümnendsüsteemi, mis iseloomustab MK tööd iseloomustavate erivalikute ja omaduste komplekti. Tuleme selle punkti juurde tagasi selles artiklis hiljem. Liigume otse funktsiooni main() algusesse – programmi tegeliku käivitatava koodi sisenemispunkti. Järgmiseks tuleb operatsioon mingi T0IE-ga. Täpsemalt tähendab see rida, et MK töötamise ajal on vaja taimeri katkestused keelata. TOIE on failis pic.h käsuga #define määratletud spetsiaalse registri aadress, mis selle toimingu eest vastutab (ja üldiselt, kui koodis näete kummalisi varem määratlemata muutujaid, mis on koodis kirjutatud suurtähtedega, siis need on ilmselt MK registrite sümboolsed nimed) . Rida GIE=0; - keelab igasuguste katkestuste töötlemise globaalselt kogu mikrokontrolleri ulatuses. Me ei kasuta oma lihtsa näite jaoks katkestusi, sest... Me lihtsalt ei vaja neid.

TRISB=0; - tähendab, et I/O port B PIC16F877 MK hakkab tööle väljundina, st. Nüüd saate sellega ühendada koormuse, mis suudab toita MK-st 0 või +5 V (see koormus on LED-id). Järgmisele reale paneme porti B numbri 0 - st. Kõik selle väljundi jaoks konfigureeritud kontaktid on pingevabad. Järgmiseks tuleb konstruktsioon while-operaatorilt ja sellise parameetriga, et mõned programmeerijad, kes on harjunud arvuti jaoks C-keeles kirjutama, on kergelt üllatunud - see on nende sõnul lõputu tsükkel, programm hangub. Kuid see on täpselt see, mida me vajame. MK ei saa midagi teha, ta peab pidevalt midagi tegema. Seetõttu on MK jaoks programmi lõputu tsükliga käivitamine eluliselt vajalik. Seejärel tuleb operaator, kes suurendab pordis B asuvat arvu 1 võrra. Selgitame veidi. Kui kirjutate PORTB=0xFF; - siis kõigil pordi viigudel on 1. Kui PORTB=0x0; - kõigi 0 jaoks. (Ma arvan, et see peaks olema selge). Ilmselt ei tee for loop operaatori ehitamine mingit "tarka" tööd ja seda on vaja ainult viivituse korraldamiseks. Kui eemaldame selle koodiosa, siis me lihtsalt ei märka, kuidas LED-ide pinge muutub (see toimub väga kiiresti).

Mida nad mõtlevad? Lähme järjekorras.

  • Ostsillaator – HS (tähendab, et kellageneraatorina kasutatakse kõrgsageduslikku kvartsresonaatorit)
  • WatchDog Timer - Off (spetsiaalne valik, kui see on lubatud, lähtestab mikrokontroller perioodiliselt [go to the algusesse main()], et vältida MK-s hangumist. Me ei vaja seda valikut.)
  • Power Up Timer – sees (kui sees, siis on MK lähtestatud, kuni toitepinge jõuab nõutava lävitasemeni)
  • Brown Out Detect – sees (lähtestab MK, kui toitepinge langeb alla teatud taseme)
  • Madalpinge programm – keelatud (sel juhul keelame MK madalpinge vooluringi programmeerimise kasutamise, kuna kasutame tavalist programmeerijat [vt järgmisi artikleid])
  • Flash-programmi kirjutamine – lubatud (lubame kirjutada programme välkmällu)
  • Data EE Read Protect – väljas (lubab lugeda andmeid ja MK EEPROM-mälu)
  • Koodikaitse – väljas (lülitage MK-s koodikaitse välja. Kui see on sisse lülitatud, ei saa programmi MK-st lugeda. See on vajalik, kui soovite kaitsta oma programmi häkkimiskatsete eest. Me ei vaja seda funktsiooni veel .)

On aeg koostada kood. Jookse Projekt -> Ehita kõik. See alustab projekti koostamist ja selline aken ilmub suurepärase kirjega Ehitamine õnnestus lõpus.

Nüüd, kui vaatate meie projekti kausta, peaksite seal nägema faili TestPIC.hex- kogu meie töö tulemus. See sisaldab spetsiaalset koodi, mis on genereeritud meie kirjutistest C-keeles, laadimiseks MK-mällu. Et edasi liikuda, vajame programmeerijat, kellega oma programmi MK-sse kirjutame. On aeg liikuda järgmise artikli juurde, kus arutatakse oma programmeerija tegemise küsimust.

© Ivanov Dmitri
aprill 2007

PIC-kontrollerid on endiselt populaarsed rakendustes, mis nõuavad odavat, kompaktset ja madala võimsusega süsteemi, mis ei nõua kõrgeid juhtimisnõudeid. Need kontrollerid võimaldavad teil asendada riistvaraloogika paindliku tarkvaraga, mis suhtleb välisseadmetega heade portide kaudu.

Miniatuursed PIC-kontrollerid sobivad hästi jadaliidese andmeedastusliideste muundurite ehitamiseks, funktsioonide "andmete vastuvõtmine - töötlemine - edastamine" ja automaatjuhtimissüsteemide lihtsate regulaatorite rakendamiseks.

Microchip levitab tasuta integreeritud programmide redigeerimis- ja silumiskeskkonda MPLAB, mis kirjutab programmeerijate kaudu binaarfaile PIC-mikrokontrolleritesse.

MPLAB ja Matlab/Simulinki koostoime võimaldab arendada Simulink keskkonnas PIC kontrollerite programme - dünaamiliste süsteemide graafilist modelleerimist ja analüüsi. Selles töös käsitletakse PIC-kontrolleri programmeerimisvahendeid: MPLAB, Matlab/Simulink ja PIC-KIT3 programmeerija järgmistes osades.

Miniatuurse PIC-kontrolleri PIC12F629 omadused
Integreeritud arenduskeskkond MPLAB IDE
Matlabi/Simulinki ühendamine MPLAB-iga
Programmeerija PIC-KIT3 ühendamine

Miniatuurse PIC-kontrolleri omadused

PIC12xxx perekond sisaldab kontrollereid miniatuurses 8-kontaktilises pakendis koos sisseehitatud kellageneraatoriga. Kontrolleritel on RISC arhitektuur ja need tagavad enamiku protsessori käskude täitmise ühe masinatsükli jooksul.

Allpool on toodud näiteks odava, kompaktse 8-bitise PIC12F629 kontrolleri omadused, millel on multifunktsionaalsed pordid, madal tarbimine ja lai võimsusvahemik.

Arhitektuur: RISC
Toitepinge VDD: 2,0 V kuni 5,5 V (< 6,5В)
Tarbimine:
- <1,0 мА @ 5,5В, 4МГц
- 20 µA (tüüp) @ 32 kHz, 2,0 V
- <1,0 мкА (тип) в режиме SLEEP@2,0В
Võimsuse hajumine: 0,8W
Multifunktsionaalsed I/O kanalid: 6/5
GPIO-portide maksimaalne väljundvool: 125mA
Vool läbi programmeeritavate sisemiste pordi tõmbetakistite: ≥50 (250) ≤400 µA @ 5,0 V
Kontrolleri suurus: 8
Välise ostsillaatori taktsagedus: 20 MHz
Masina tsükliaeg: 200 ns
Sisemise RC-ostsillaatori taktsagedus: 4 MHz ±1%
Masina tsükli aeg: 1 µs
FLASH programmi mälu: 1K
Kustutus-/kirjutustsüklite arv: ≥1000
RAM andmemälu: 64
EEPROM-i andmemälu: 128
Kustutus-/kirjutustsüklite arv: ≥10K (-40оС ≤TA≤ +125 оС)
Riistvara eriotstarbelised registrid: 16
Käskude loend: 35 käsku, kõik käsud täidetakse ühe masinatsükliga,
välja arvatud hüppekäsklused, mis täidetakse kahe tsükliga
Riistvara virn: 8 kihti
Taimer/loendur TMR0: 8-bitine eelskaalariga
Taimer/loendur TMR1: 16-bitine eelskaalariga

Lisafunktsioonid:
Toite sisselülitamise lähtestamine (POR)
Taimeri lähtestamine (PWRT generaatori käivitusoote taimer (OST)
Alapinge lähtestamine (BOD)
Watchdog taimer WDT
Multipleksitud väljund -MCLR
Katkestuste süsteem signaali taseme muutmiseks sisendites
Iga sisendi jaoks eraldi programmeeritavad tõmbetakistid
Programmeeritav sisendi kaitse
SLEEP vähese energiatarbega režiim
Kella generaatori töörežiimi valimine
ICSP ahelasisene programmeerimine, kasutades kahte kontakti
Neli kohandatud raku ID-d

Piirake E versiooni töötemperatuuri (laiendatud vahemik) -40°C kuni +125°C;
Säilitustemperatuur -65°C kuni +150°C.

CMOS-kontrolleri tehnoloogia tagab täiesti staatilise töörežiimi, milles kellageneraatori seiskamine ei too kaasa sisemiste sõlmede loogiliste olekute kadumist.
Mikrokontrolleril PIC12F629 on 6-bitine GPIO port. Üks GPIO-pordi GP3-viik töötab ainult sisendina, ülejäänud viigud saab seadistada töötama nii sisendi kui ka väljundina. Igal GPIO viigul on individuaalne katkestuse lubamise bitt signaali taseme muutmiseks sisendites ja sisemine tõmbetakisti lubamisbitt.

Integreeritud arenduskeskkond MPLAB IDE

MPLAB IDE - tasuta integreeritud tarkvara arenduskeskkond PIC mikrokontrolleritele sisaldab tööriistu programmide loomiseks, redigeerimiseks, silumiseks, tõlkimiseks ja linkimiseks, masinkoodi kirjutamiseks mikrokontrolleritele programmeerijate kaudu.

MPLAB-i tasuta versioonid (sealhulgas MPLAB 8.92) on salvestatud Microchipi veebisaidi jaotisesse „ALLAADIMINE ARHIIV”.

Projekti loomine

Näide PIC-kontrolleri programmiprojekti loomisest MPLAB-keskkonnas sisaldab järgmisi samme.

1. Helista projektijuhile.

2. PIC-mikrokontrolleri tüübi valimine.


3. Valige koostaja jaoks kompilaator, näiteks Microchip MPASM.


4. Valige projektikataloogi tee (klahv Sirvi...) ja sisestage projekti nimi.

5. Te ei pea projektiviisard → Step Four aknas faile projektiga ühendama. Seda saab teha hiljem aktiivse projekti sees. Järgmine klahv avab järgmise akna.

6. Projekti loomise lõpetamine (klahv Finish).

Projekti FirstPrMPLAB loomise tulemusena on MPLAB-liides joonisel fig. 1.


Riis. 1. MPLAB v8.92 keskkonna liides ja projekti mall.

Programmifaili loomine
Programmi saab luua mis tahes tekstiredaktoriga. MPLAB-il on sisseehitatud redaktor, mis pakub mitmeid eeliseid, näiteks lähteteksti kiire leksikaalne analüüs, mille tulemusena tõstetakse tekstis esile reserveeritud sõnad, konstandid, kommentaarid ja kasutaja määratud nimed.

Programmi MPLAB-is saab luua järgmises järjestuses.

1. Ava programmiredaktor: menüü → Fail → Uus. Esialgu anti programmile nimi Untitled.

2. Tippige või kopeerige programm näiteks assembleris.


Riis. 2. Näide lihtsaimast programmist (assembleris) signaalide väljastamiseks kontrolleri portide GP0, GP1, GP2, GP4, GP5 kaudu maksimaalse sagedusega.

TRISIO registri bitti '1' kirjutamine asetab vastava väljundpuhvri 3. olekusse, sel juhul saab GP-port töötada ainult sisendina. TRISIO nulli määramine konfigureerib GP-pordi töötama väljundina.

Märge. Vastavalt PIC12F629 spetsifikatsioonile töötab mikrokontrolleri GP3 port ainult sisendina (TRISIO registri vastavat bitti ei lähtestata - see on alati ‘1’s).

TRISIO ja GPIO registrid asuvad mäluala erinevates pankades. Pangavahetust teostab registri STATUS 5. bitt.

Iga assemblerprogramm algab org-direktiiviga ja lõpeb lõpudirektiiviga. Metka goto-üleminek tagab programmi tsüklilise täitmise.

Programm (joonis 2) kasutab järgmist tähistust.

LIST käskkiri – kontrolleri tüübi määramine
__CONFIG direktiiv - kontrolleri konfiguratsioonibittide väärtuste määramine
equ direktiiv - arvväärtuse määramine
Direktiiv org 0 – programmi käivitamine aadressilt 0
bsf käsk – määrab määratud registri biti väärtuseks 1
bсf käsk - lähtestab määratud registri biti väärtuseks 0
movlw käsk – kirjutab W-registrisse konstandi
movwf käsk – kopeerib W registri sisu määratud registrisse
goto käsk – annab tingimuseta ülemineku sildiga reale
Lõpu käskkiri – programmi lõpp

Vajaliku mikrokontrolleri konfiguratsiooni seadistamine
Mikrokontrolleri PIC12F629 konfiguratsioon sõltub konfiguratsioonisõna (2007h) seadistustest, mida saab programmis seadistada läbi __CONFIG direktiivi.

Otse või MPLAB-akna kaudu: menüü → Seadistamine → Konfiguratsioonibitid:

Kus:

Pitt 2-0- FOSC2:FOSC0. Kella valik
111 - Väline RC-generaator. Ühendub kontaktiga GP5. GP4 töötab kui CLKOUT
110 - Väline RC-generaator. Ühendub kontaktiga GP5. GP4 töötab I/O-na
101 - sisemine RC-ostsillaator 4 MHz. GP5 töötab I/O-na. GP4 – nagu CLKOUT
100 - sisemine RC-ostsillaator 4MHz. GP5 ja GP4 töötavad I/O-na
011 - EÜ generaator. GP4 töötab I/O-na. GP5 – nagu CLKIN
010 - HC generaator. Resonaator on ühendatud GP4 ja GP5-ga
001 - XT generaator. Resonaator on ühendatud GP4 ja GP5-ga
000 - LP generaator. Resonaator on ühendatud GP4 ja GP5-ga

Bitt 3- WDTE: valvekoera taimeri seadistamine
1 – WDTE on lubatud
0 - WDTE on keelatud

Valvekoera taimer kaitseb mikrokontrollerit külmumise eest – see taaskäivitab programmi teatud ajaintervalli järel, kui taimerit pole lähtestatud. Taimeri periood määratakse registris OPTION_REG. Valvekoera taimeri lähtestamise põhjustab käsk CLRWDT.

Bitt 4- PWRTE: sisselülitustaimeri lubamine:
1 – PWRT on keelatud
0 – PWRT on lubatud

Taimer viivitab mikrokontrolleri lähtestamise olekusse, kui VDD toide on rakendatud.

Bitt 5- MCLR: GP3/-MCLR väljundi töörežiimi valik
1 - töötab nagu -MCLR
0 - töötab GP3 I/O pordina

Bitt 6- BODEN: lähtestamine, kui toitepinge langeb (tavaliselt< 2.0В)
1 – BOR-i lähtestamine on lubatud
0 - BOR-i lähtestamine on keelatud, taimer lülitub automaatselt sisse

Kui BOR-i lähtestamine on lubatud, käivitub PWRT-taimer automaatselt

Bitt 7- .CP: Programmi mälu kaitsebitt programmeerija poolt lugemise eest
1 Kaitse on keelatud
0 Kaitse on lubatud

Kui kaitse on välja lülitatud, kustutatakse kogu programmi mälu

Bitt 8- .CPD: EPROM-i andmemälu kaitsebitt
1 Kaitse on keelatud
0 Kaitse on lubatud

Pärast kaitse väljalülitamist kustutatakse kogu teave

Bitt 11-9- Pole kasutatud: loe kui '1'.

Bitt 13-12- BG1:BG0. Madala võimsusega lähtestamise kalibreerimisbitid
00 - alumine kalibreerimispiir
11 - ülemine kalibreerimispiir


Programmi lisamine projektile

Näide programmi lisamisest projektile on näidatud (joonis 3).


Riis. 3. Programmi FirstPrMPLAB.asm lisamine projekti FirstPrMPLAB.mcp

Koostamine

Hex-laiendiga binaarfaili loomiseks mikrokontrolleri püsivara vilkumiseks peate projekti kompileerima. Kompileerimine käivitatakse menüükäsuga → Projekt → Ehita kõik. Koostamise tulemusi näete väljundaknas (joonis 1). Kui programmis vigu pole, kuvab kompilaator teate eduka kompileerimise kohta: BUILD SUCCEEDED, alglaadimis-HEX-fail asub töökataloogis:

Programmi silumine

Programmi silumist MPLAB IDE-s saab teha MPLAB REAL ICE riistvaraemulaatori või MPLAB SIM-i tarkvarasimulaatori abil. Viimane käivitatakse, nagu on näidatud joonisel fig. 4.


Riis. 4. Ühendus MPLAB SIM-i simulaatoriga programmide silumiseks.

Pärast siluri käivitamist ilmub väljundi aknasse MPLAB SIM-kaart (joonis 1), kus MPLAB kuvab praeguse siluri teabe. Siluri käsud (joonis 5) muutuvad aktiivseks pärast käivitamist.


Riis. 5. Siluri käsud.

Siluri käsud:

Käivita – programmi pidev täitmine kuni katkestuspunktini, kui see on määratud.
Peata – peatab programmi käimasoleva käitamisetapi juures.
Animate – programmi pideva täitmise animatsioon.
Step Into – Käivitage sammude kaupa (Kõned täidetakse ühes etapis).
Samm üle – täitke üks samm korraga, sealhulgas helistamiskäsklused.
Lähtesta – programmi esialgne installimine. Viige kursor esimese käsu juurde.
Katkestuspunktid – katkestuspunktide loendi kuvamine. Nimekirja töötlemine.

Programmi sammhaaval täitmisel tõstetakse käimasolev samm esile noolega (joonis 6). Programmi pideva täitmise peatab käsk Halt või kui programm jõuab katkestuspunkti. Katkestuspunkt määratakse/eemaldatakse programmireal topeltklõpsuga.
Näide komplekteerimisprogrammist, mis muudab kontrolleri portide olekut maksimaalsel kiirusel, on näidatud joonisel fig. 6 (paremal). Programm edastab andmed b’10101010’ ja b’01010101’ GPIO pordiregistrisse. Kuna mitte kõik GPIO registri bitid ei edasta andmeid kontrolleri portidesse, vaid ainult 0,1,2,4 ja 5, siis erineb GPIO registri olek (joonis 6, vasakul) järgmiste väärtuste poolest: b'00100010' ja b'00010101'.


Riis. 6. Kontrolleri eriotstarbeliste registrite olek programmi täitmise ajal (vasakul) ja käivitatava programmi samm-sammult (paremal).

Silumisprotsessi käigus saate jälgida registrite, muutujate ja mälu seisu vastavates akendes, mis avanevad peamenüü jaotises Vaade. Silumisprotsessi käigus saate teha muudatusi programmi koodis, registrite sisus, mälus ja muuta muutujate väärtusi. Pärast koodi muutmist peate programmi uuesti kompileerima. Registrite sisu, mälu ja muutujate väärtuste muutmine (vaateaknad: erifunktsioonide register, failiregister, EEPROM, vaatamine) ei vaja uuesti kompileerimist.

Mikrokontrolleri mudeli portide sisendsignaale saab seadistada jaotises Silur → Stimul. Pordisignaalide seatud olekud on seotud silumisajaga (tsüklitega).

Mõnikord ei vasta programmi silumisrežiimis täitmise tulemused sama programmi täitmisele reaalses kontrolleris, näiteks programmi silur (joon. 6) ilma movlw 0x07 ja movwf cmcon käskudeta näitab, et väljundid GP0 ja GPIO registri GP1 ei muutu - need on nullseisundis, GPIO registri sisu on vaheldumisi 0x14 ja 0x20. Kuid kontroller, mis käivitab programmi ilma nende juhisteta, näitab ostsilloskoobil kõigi viie väljundi tsüklilist tööd: 0x15 ja 0x22, sealhulgas GP0 ja GP1 (vt joonis 7).

Programmi tsükleid käivitava kontrolleri ostsillogrammid Joon. 6 (Metka... goto Metka) on näidatud joonisel fig. 7.


Riis. 7. Mikrokontrolleri PIC12F629 väljundi GP0 (vasakul) ja GP1 (paremal) ostsillogrammid, mida toidab sisemine 4 MHz RC ostsillaator. Programm (joonis 6) genereerib maksimaalse sagedusega signaale kõigi kontrolleri väljunditega. Signaaliperioodi 5,3 µs jooksul täidetakse 5 käsku (6 masinatsüklit), GP0 signaali amplituud ostsillogrammil on 4,6 V, programmeerija poolt mõõdetud kontrolleri toiteallikas on 4,75 V.

Mikrokontrolleri püsivara

Programmi kirjutamiseks mikrokontrollerile (kontrolleri püsivara) peate ühendama mikrokontrolleri programmeerija kaudu integreeritud MPLAB IDE-ga. Ühenduse korraldus on näidatud allpool jaotises "PIC-KIT3 programmeerija ühendamine".

Märge. Kontrolleril PIC12F629 on sisemise kellageneraatori sageduse seadistamiseks tehase kalibreerimiskonstant. Vajadusel saab seda MPLAB-i abil programmeerija abil lugeda ja taastada.

Programmeerijaga töötamise ja selle sätete muutmise käsud asuvad MPLAB Programmeerija menüüs. Programmeerija tüüp MPLAB-is valitakse jaotises: menüü → Programmeerija → Vali programmeerija.


Riis. 8. Programmeerija valimine MPLAB keskkonnaga ühenduse loomiseks.

Mikrokontrolleri püsivara läbi programmeerija käivitatakse käsuga: menüü → Programmeerija → Programm. Teade eduka püsivara kohta on näidatud joonisel fig. 9.


Riis. 9. Mikrokontrolleri püsivara käivitamine ja eduka püsivara kohta teate kuvamine.

Märge: Mikrokontrolleri vilkumise ajal vilgub programmeerija PIC-KIT3 kollane LED.

MATLAB/SIMULINKi ühendamine MPLAB-iga

Graafilises programmeerimiskeeles dünaamilises süsteemide modelleerimissüsteemis Simulink (Matlab rakendus) saate arendada programme PIC-kontrollerite perekonnale, millel on ADC/DAC, loendurid, taimerid, PWM, DMA, UART, SPI, CAN, I2C liidesed jne. .

Näidisprogrammi Simulink PIC-kontrolleri jaoks on näidatud joonisel fig. 10.


Riis. 10. Näide programmist graafilises programmeerimiskeeles PIC-kontrolleri jaoks, mis käivitatakse Simulinki dünaamiliste süsteemide modelleerimiskeskkonnas.

Simulinki PIC-kontrollerite arendustööriistade ja programmide koostamise koostoime on näidatud joonisel fig. üksteist .


Riis. üksteist. Tööriistade struktuur PIC-kontrolleri adekvaatse mudeli konstrueerimiseks graafilises programmeerimiskeeles.

Arenduskeskkonna loomiseks on vaja järgmisi Matlabi komponente:

Simulink
Reaalajas töötubade sisseehitatud kodeerija
Reaalajas töötuba

Ja Microchip C kompilaator:

C30 PIC24, dsPIC30 ja PIC33 kontrollerite jaoks
või C32 PIC32 seeria kontrollerite jaoks

Matlabi komponentide paigaldamine

Sait sisaldab Simulinki teeke (dsPIC Toolbox) PIC-kontrollerite ja Matlabi versioonide jaoks alates R2006a kuni R2012a:

Raamatukogu allalaadimiseks peate registreeruma. Programmid toetavad 100 mikrokontrolleri tööd PIC 16MC, 24F, 30F, 32MC, 33F, 56GP, 64MC, 128MC, 128GP seeriatest.
Tasuta versioonid töötavad Simulinki PIC-kontrolleri mudelitega, millel on kuni 7 I/O-porti.

dsPIC Toolbox - Matlabi/Simulinki PIC-kontrolleriplokkide raamatukogu installimiseks vajate:

Laadige alla dsPIC Toolbox vajaliku Matlabi versiooni jaoks.
Pakkige ZIP-fail lahti kaustas, kuhu Simulinki plokid installitakse.
Käivitage Matlab.
Määrake praegune Matlabi kataloog lahtipakkitud failiga kaustaks.
Avage ja käivitage fail install_dsPIC_R2012a.m, kasutades näiteks menüünuppu või klaviatuuriklahvi.

dsPIC teegid ja Simulink mudelite näited on installitud praegusesse Matlabi kausta (joonis 12). Paigaldatud plokid PIC-kontrollerite modelleerimiseks on saadaval Simulinki teegi jaotises Embedded Target for Microchip dsPIC (joonis 13).


Riis. 12. Praeguse kataloogi sisu pärast install_dsPIC_R2012a.m käivitamist.


Riis. 13. Installitud teegi plokid “Embedded Target for Microchip dsPIC”.

Simulinki mudeli koostamiseks Matlabi ja MPLAB-i abil peate määrama MPLAB kataloogi tee failidega MplabOpenModel.m, MplabGetBuildinfo.m ja getHardwareConfigs.m tee Matlabi keskkonnamuutujas kõrgeima prioriteediga:

>>

MPLAB C kompilaatori installimine

MPLAB kompilaatorid asuvad Microchipi veebisaidil (Download Archive → MPLAB C Compiler for PIC24 ja dsPIC DSCs). C30 kompilaatori demoversiooni installimiseks peate selle alla laadima lingilt PIC24/dsPIC v3.25 (joonis 14) ja käivitama aktsepteeritud faili mplabc30-v3.25-comboUpgrade.exe.


Riis. 14. C-kompilaatori versioonid (vasakul) ja selle installirežiimid (paremal).

Märge. Töö tehti PIC24/dsPIC jaoks mõeldud C30 kompilaatori versiooniga v3.25. Kontroll näitas, et järgmine versioon v3.30 ei toeta Matlab R2012a (dsPIC Toolbox) mudelite ühist ilma vigadeta kompileerimist.

Installimise exe-fail loob uue mplabc30 kataloogi failidega jaotises c:\Program Files (x86)\Microchip\:


Riis. 15. C30 MPLAB kompilaatori kataloogid.

Simulink programmeerimisjada PIC-kontrollerite jaoks

1. Loo töökataloog ja kopeeri sinna *.mdl näited näidisosast (vt joonis 12).
2. Laadige alla Matlab. Määrake see oma töökataloogi.
3. Lisage teekonda kõrgeima prioriteediga Matlabi keskkonnamuutuja tee MPLAB-i - c:\Program Files (x86)\Microchip\MPLAB IDE\Tools\MATLAB\ kataloog:

>> path("c:\Program Files (x86)\Microchip\MPLAB IDE\Tools\MATLAB\",tee)
Märkus. Käsu >>path kasutamine ilma argumentideta põhjustab teemuutuja loendi käsuaknas. Tee saab teemuutujast eemaldada käsuga rmpath, näiteks:

>>rmpath(" c:\Program Files\Microchip\MPLAB IDE\Tools\MATLAB\")
4. Looge PIC-kontrollerile Simulink mudel, kasutades Embedded Target for Microchip dsPIC teegi plokke (joonis 13), või laadige valmis mudel, näiteks Servo_ADC.mdl.

Kontrolleri tüüp, mille jaoks Simulink mudelit arendatakse, valitakse loendist Master > PIC plokis (joon. 16, joon. 10), mis tuleb mudelisse kaasata.


Riis. 16. Kontrolleri tüübi valimine mudeli Master plokis.

5. Kontrollige mudeli konfiguratsiooni sätteid: Menüü → Simulatsioon → Konfiguratsiooniparameetrid . S-funktsiooni kompilaator dspic.tlc tuleks määrata jaotise Koodi genereerimine (Joonis 17) sisestusreal System sihtfail. Faili dspic.tlc valimine konfigureerib kõik muud mudeli konfiguratsiooniparameetrid, sealhulgas sammu ja integreerimismeetodi.


Riis. 17. PIC-kontrolleri mudelite jaoks dspic.tlc S-funktsiooni kompilaatori valimine jaotises “Peamenüü → Simulatsioon → Konfiguratsiooniparameetrid → Koodi genereerimine”.

6. Kompileerige mudel tmp_Servo_ADC.mdl. Kompilaatori käivitamine on näidatud joonisel fig. 18.


Riis. 18. Simulink mudeli kompilaatori käivitamine.

Eduka kompileerimise tulemusena (teade: ### Mudeli Servo_ADC ehitusprotseduuri edukas lõpuleviimine) luuakse praeguses kataloogis HEX-fail PIC-kontrolleri vilkumiseks ja MCP MPLAB keskkonnaprojekt (joonis 19).


Riis. 19. Mudeli koostamise tulemused.

Mudel käivitatakse Matlabis/Simulinkis mudeliaknas oleva nupuga tingliku simulatsiooni aeg seatakse reale:


Simulink mudelite koostamise juhtimine MPLAB keskkonnast

Simulink mudeli koostamist saab juhtida MPLAB keskkonna Matlab/Simulink sektsiooni käskude abil näiteks järgmises järjekorras.

1. Töötage välja PIC-kontrolleri mudel Matlabis/Simulinkis. Salvestage mudel.
2. Käivitage MPLAB.
3. Vali MPLAB menüü → Tööriistad → Matlab/Simulink ja menüüsse ilmub uus jaotis.


4. Sektsioonis Matlab/Simulink ava Simulink mudel, näiteks Servo_ADC, käsuga “Matlab/Simulink → Specify Simulink Model Name → Open → File name → Servo_ADC.mdl → Open”. Käsk Open käivitab Matlabi ja avab mudeli.

5. Koostage mudel ja looge MCP projekt, kasutades käske Generate Codes või Generate Codes and Import Files. MDL mudeli tõlkimist MCP projekti teostab TLC kompilaator Matlab.
Selle tulemusena luuakse MPLAB projekt:

C-keeles mudeliskriptidega.

6. Ava projekt: menüü → Projekt → Ava → Servo_ADC.mcp (joonis 20).


Riis. 20. Simulink projektimudeli Servo_ADC.mdl MCP struktuur MPLAB keskkonnas.
Simulinki mudeliprojekt on valmis MPLAB-i abil redigeerimiseks, silumiseks ja masinakontrolleri koodideks kompileerimiseks.

Programmeerija PIC-KIT3 ühendamine

Seda, millised programmeerijad konkreetsele mikrokontrollerile binaarkoodi kirjutavad, saate teada MPLAB 8.92 keskkonna menüüjaotises → Seadistamine → Seade valimine. Näiteks PIC-KIT3 programmeerija ei toeta PIC12C508A kontrollerit (joonis 21, vasakpoolne joonis), kuid töötab koos kontrolleriga PIC12F629 (joonis 21, joonis paremal).


Riis. 21. Mikrokontrolleri püsivara programmeerijate loend.

Teavet installitud PIC-KIT3 programmeerija draiveri kohta saab küsida Windows OS-i seadmehaldurist (joonis 22).


Riis. 22. Teave installitud PIC-KIT3 programmeerija draiveri kohta.

Mikrokontrolleri PIC12F629 ühendusskeem PIC-KIT3 programmeerijaga on näidatud joonisel fig. 23.


Riis. 23. Mikrokontrolleri PIC12F629 ühendusskeem PIC-KIT3 programmeerijaga.

Programmeerija PGM-väljundit ei kasutata PIC12F629 kontrollerite vilkumiseks. PGM-väljundi olemasolu erinevat tüüpi PIC-kontrollerite jaoks on näidatud joonisel fig. 24. Soovitatav on “tõmmata” PGM-viik ühisjuhtme (GND) külge, läbi takisti nimiväärtusega 1K.


Riis. 24. PGM PIC kontrolleri kontaktid.

Olimex PIC-KIT3 programmeerija LED indikaator on näidatud allpool:

Kollane – punane – programmeerija olek
Sees - Väljas - USB-liiniga ühendatud
Sees – sees – koostalitlusvõime MPLAB-iga
Vilgub – alati sees – Mikrokontrolleri püsivara

Ärge ühendage VDD mikrokontrolleri toiteallikat (joonis 23) programmeerijaga, kui kontroller saab toite oma toiteallikast.

Mikrokontrolleri toitel VDD liinil olevast programmeerijast on vaja MPLAB programmi (Menüü → Programmeerija → Seadistused → Toide) abil seadistada tööpinge, näiteks 5 V, nagu on näidatud joonisel fig. 25.

Märge. Kui VDD liinil pole pinget, kuvab MPLAB IDE veateate: PK3Err0045: kasutamiseks peate looma ühenduse sihtseadmega.


Riis. 25. Programmeerija PIC-KIT3 VDD pinge seadistamine MPLAB IDE v8.92 abil.

Kui programmeerija ei saa seadistada vajalikku pinget, näiteks 5 V, kui see on toidetud USB-st, mille pinge on alla 5 V, kuvab MPLAB IDE veateate: PK3Err0035: Failed to get Device ID. Sel juhul peate esmalt mõõtma programmeerija pinget - lugege seda menüü vahekaardilt → Programmeerija → Seaded → Olek ja seejärel määrake pinge (mitte rohkem kui mõõdetud) menüü vahekaardil → Programmeerija → Seaded → Võimsus.


Riis. 26. Programmeerija PIC-KIT3 VDD pinge mõõtmine (vasakul) ja seadistamine (paremal), kasutades MPLAB IDE v8.92.

Näidis MPLAB-teade mikrokontrolleri edukast ühendamisest programmeerijaga, kasutades menüükäsku → Programmeerija → Ühenda uuesti, on näidatud joonisel fig. 27.


Riis. 27. MPLAB teade mikrokontrolleri edukast ühendamisest programmeerijaga.

Programmeerida saab mitte ainult eraldi PIC-kontrollerit, vaid ka tööseadme osaks olevat kontrollerit. PIC-kontrolleri programmeerimiseks seadme sees on vaja ette näha džemprid ja voolu piiravad takistid, nagu on näidatud joonisel fig. 28.


Riis. 28. Mikrokontrolleri ühendamine elektroonilise seadme osana programmeerijaga.

Järeldus

Madalpinge PIC-kontrolleritel on lai toitevahemik, madal tarbimine ja väikesed mõõtmed. Need on programmeeritud madala tasemega keeltes. Programmide arendamine graafilises programmeerimiskeeles Simulink, kasutades arvukaid teeke, vähendab oluliselt arendus- ja silumisaega võrreldes koostetasandil programmeerimisega. Simulink PIC kontrollerite jaoks välja töötatud struktuure saab kasutada ka kontrollereid hõlmavate dünaamiliste süsteemide arvutisimuleerimiseks. Kuid koodi liiasuse tõttu on see lähenemisviis rakendatav ainult piisavate ressurssidega PIC-kontrollerite perekondadele.
Simulink Lisa silte Hiljuti otsustasin ehitada seadme PIC-mikrokontrollerile, kuid teadmata põhjustel ebaõnnestus minu Extra-PIC-programmeerija. Tõenäoliselt põles mikroskeem läbi MAX232, seda on juba korra juhtunud. Kaks korda mõtlemata leidsin Internetist lihtsa programmeerija vooluringi, mis on mõeldud IC-Progi jaoks ja töötab selle kaudu KOM sadamasse.
Tahvel peab printimisel olema peegeldatud. Vastasel juhul tuleb pistikupesad jootma rajapoolsest küljest.


Järgmiseks puurisin augud ja hakkasin osi jootma. Suurimaks probleemiks olid zeneri dioodid. Hakkasin kineskoopkuvarist tahvlile zeneri dioode otsima. Need on tahvlil märgistatud kui ZD (Zener Diode). Loomulikult on nende märgised ebaselged ja te ei tea, kust või kuidas otsida. Zeneri dioodi väärtuse määramiseks võite koostada lihtsa vooluahela.


Voltmeeter näitab üsna täpselt, mitu volti Zeneri diood on. Sel lihtsal viisil leidsin ligikaudsete nimiväärtustega zeneri dioodid. 5,6 V asemel paigaldasin 6,2 V, 12,6 V asemel 2 Zener dioodi järjestikku 6,2+6,2=12,4V .


Transistori saab paigaldada KT315. Paigaldasin ise S945. Dioodid on ka suvalised, jootsin lahti kõik 3 tk. sama plaadi dioodisillalt monitorilt. Kondensaatorite väärtus ei ole samuti kriitiline, kuid need määrati nende nimiväärtusele.

Natuke punastest laikudest paneelidel. Need jalad pole üldse paneelide külge joodetud. Täielikult valmis seade näeb välja selline:


Otsustasin mitte kõiki pistikupesasid jootma hakata, sest... Mul oli vaja see lihtsalt vilkuda PIC16F628A. Pärast jootmist peate programmi konfigureerima. Vilgutame IC-Prog. Laadige programm alla, pakkige see arhiivist lahti, Kõik failid peavad olema ühes kaustas!

1) Kui kasutate operatsioonisüsteemi Windows NT, 2000 või XP, paremklõpsake failil icprog.exe. " Omadused" >> vahekaart " Ühilduvus" >> Valige märkeruut " Käivitage programm ühilduvusrežiimis:" >>
valige "Windows 2000".

2) Käivitame programmi. Kui see on juba vene keeles, pole teil midagi vaja, minge sammu juurde 3 .

Kui programm on inglise keeles, klõpsake nuppu " Seaded" >> "Valikud" >> vahekaart " Keel" >> määrake keel " vene keel" ja klõpsake nuppu "OK".
Nõus väitega " Peate kohe IC-Progi taaskäivitama" (klõpsake " Okei"). Programmeerija kest taaskäivitub.

3) Nüüd peate programmeerija konfigureerima. Klõpsake " Seaded" >> "Programmeerija". Kontrollige sätteid, valige kasutatav COM-port, klõpsake nuppu " Okei".


Väga kiirete arvutite puhul peate võib-olla suurendama I/O latentsuse sätet. Selle parameetri suurendamine suurendab programmeerimise usaldusväärsust, kuid pikeneb ka kiibi programmeerimisele kuluv aeg.

4) Ainult Windows NT, 2000 või XP kasutajatele. Klõpsake " Seaded" >> "Valikud" >> valige vahekaart " On levinud" >> märkige ruut " Peal NT/2000/XP draiver" >> Klõpsake " Okei" >> kui draiverit pole teie süsteemi varem installitud, siis ilmuvas aknas " Kinnita"Klõpsake "Ok". Draiver installitakse ja programmeerija kest taaskäivitub.

5) Klõpsake uuesti " Seaded" >> "Valikud" >> valige vahekaart " I2C" >> märkige ruudud: " Luba MCLR VCC-na"Ja" Blokeeringu salvestamise lubamine". Klõpsake " Okei".

6) "Seaded" >> "Valikud" >> valige vahekaart " Programmeerimine" >> tühjendage märkeruut: " Kontrollige pärast programmeerimist"ja märkige ruut" Kontrollige programmeerimise ajal". Klõpsake " Okei".


Valmis, nüüd on programm programmeerijaga töötamiseks täiesti valmis. Ühendame oma programmeerija KOM port, valige programmis meie mikrokontroller, avage püsivara ja programmeerige kõik PIC-seeria MK-d. Edu kõigile programmeerija ja kontrolleritega töötamisel!

2006. aastal tekkis mul soov õppida PIC-mikrokontrollerite monteerijaks. Otsus omandada PIC ei tulnud juhuslikult. Alustuseks on ainult 35 assembleri käsku. Saate need mõne päevaga pähe õppida, rakendades neid praktikas, oma programmi kirjutades. Või lihtsalt õppige seda mõne PIC-kontrolleri andmelehe abil. Õnneks on osa dokumentatsiooni vene keeles olemas.

Noh, esimene kujundus on loomulikult kell. Ja see pole keeruline (vähemalt mulle alguses tundus) ning kellale või taimerile on lihtne kasutust leida nii kodus kui ka tööl. Ainus takistus, millega pidin silmitsi seisma, oli selge ja järjepidevalt esitatud teabe puudumine otse programmeerimismeetodite kohta.

Internetis on palju mikrokontrolleriteemalisi saite, kuid sageli on see teave esitatud omamoodi vinegreti kujul, millest on väga raske aru saada, kui programmeerimiskiipides pole kogemusi.
Pärast mikrokontrolleri esimese projekti käivitamist - LED-i vilkumist - algas meeletu kasuliku teabe otsimine. Ja täiesti juhuslikult, uurides võrku ajakirjast "Raadio" järgmise skeemi (Denisovi sagedusmõõtja) kohta teavet otsides, sattusin Jevgeni Korabelnikovi veebisaidile.

Ma ei saa öelda, et mu otsing sellega lõppes. Mõned lähenemised mõtlesin ise välja ja minu enda kood on reeglina alati parem kui kellegi teise leiutatud.
Kuid ma pole veel leidnud järjekindlamat ja metoodilisemat küsimuste esitust mikrokontrollerite struktuuri, välisseadmetega (indikaatorid, andurid) PIC-teabe vahetamise protokollide, mälukiipidega töötamise ja palju muu kohta.

Jevgeniy on autor suure A-tähega, tal õnnestus korraldada ja tõlkida tohutul hulgal materjali tavaliselt loetavaks tekstiks, muutes selle arusaadavaks ja juurdepääsetavaks isegi neile, kes pole varem programmeerimisega kokku puutunud.

Kui vajate PIC-kontrollerite jaoks kiiret käivitamist ja montaažikeele programmeerimist, siis soovitan Jevgeni Aleksandrovitši veebisaiti.

Assembly keeles programmeerimine jaoks

PIC mikrokontrollerid

PIC-kontrollerite programmeerimise õpetus algajatele

(mikrokontrolleri seadme disaini juhend)

Üldised märkused sisenemisstrateegia kohta.

"Isekasutusjuhend..." on koostatud nii, et juhtudel, kui eelmiste osade lugemisel tekib ebaselgusi, saavad need järgmistes osades järk-järgult selgeks lisainfo kaudu. “Sisenemise” algfaasis on peamine mõista tähendust ja aja jooksul lisandub sellele kõik muu.

Sissejuhatus
1. Valmistage tööriistad ette. Programmeerija tegemine ja sellega töötamine.
2. Mis on mikrokontroller ja kuidas see töötab.
3. PIC16F84A käsusüsteem.
4. Mis on programm ja selle koostamise reeglid. Näide isevõnkuva multivibraatori programmi loomisest. direktiivid. Multivibraatori skemaatiline diagramm
5. Integreeritud disainikeskkond MPLAB IDE ja selles töötamine.
6. Mis saab edasi?
7. Näide programmi loomisest (algus).
8. Näide programmi loomisest (jätkub).
9. Töö simulaatoris. Programmi silumine.
10. Kuidas jälgida programmi täitmist
11. Katkestab. Virna. Näide katkestustega programmiarendusest.
12. Arvestusliku ülemineku korraldamine. Töö EEPROM-i andmemäluga.
13. Lipud. Töö lippudega. Kuidas digitaalne komparaator töötab? Ülekanne ja laen.
14. Näide lipu C kasutamisest kolmebaidises summaris. Tsükliline vahetus. Korrutamise operatsioon.
15. Dünaamilise kuva alamprogrammi konstrueerimise põhimõtte tutvustus. Kaudne adresseerimine.
16. Kahendarvude teisendamine BCD-ks. Dünaamilise kuva alamprogrammi teksti lõplik moodustamine.
17. Loendamise põhimõte. Töötamine taimeriga TMR0. Programmi teksti loenduskäskude rühmade installimise põhimõte.
Järeldus