Nedávno jsem se rozhodl sestavit zařízení na mikrokontroléru PIC, ale z neznámých důvodů mě programátor Extra-PIC odmítl. S největší pravděpodobností došlo k vyhoření mikroobvodu MAX232, toto se již stalo jednou. Bez rozmýšlení jsem na internetu našel jednoduchý programátorský obvod, naostřený pro IC-Prog a propracovaný KOM přístav.
Při tisku je třeba desku zrcadlit. V opačném případě budou panely muset být připájeny ze strany kolejí.


Potom jsem vyvrtal díry a začal díly pájet. Zenerovy diody byly největším problémem. Začal jsem hledat zenerovy diody na desce z monitoru CRT. Jsou podepsáni na desce jako ZD (Zenerova dioda). Jejich značení je přirozeně nepochopitelné a není známo, kde a jak hledat. Chcete-li zjistit, kolik voltů lze zenerovou diodu sestavit, jednoduchý obvod.


Voltmetr docela přesně ukáže, kolik voltů má zenerova dioda. Takovým jednoduchým způsobem jsem našel zenerovy diody, přibližné nominální hodnotě. Namísto 5,6 V jsem nainstaloval 6,2 V, namísto 12,6 V jsem do série nainstaloval 2 zenerovy diody 6,2 + 6,2 \u003d 12,4V .


Tranzistor lze dodat KT315... Nastavil jsem se S945... Diody jsou také jakékoli, upustil jsem všechny 3 kusy. z diodového můstku stejné desky z monitoru. Hodnocení kondenzátorů také není kritické, ale byly nastaveny na nominální hodnotu.

Trochu o červených skvrnách poblíž panelů. Tyto nohy nejsou k panelům vůbec připájeny. Úplně hotové zařízení vypadá takto:


Rozhodl jsem se nepájet všechny panely. Potřeboval jsem jen blikat PIC16F628A... Po pájení musíte program nakonfigurovat. Budeme blikat IC-Prog. Stáhněte si program, rozbalte jej z archivu, všechny soubory musí být v jedné složce!

1) Pokud používáte Windows NT, 2000 nebo XP, klepněte pravým tlačítkem na soubor icprog.exe. " Vlastnosti„\u003e\u003e karta“ Kompatibilita"\u003e\u003e Nastavit zaškrtávací políčko na" Spusťte program v režimu kompatibility s:" >>
vyberte „Windows 2000“.

2) Spouštíme program. Pokud je již v ruštině - nic není potřeba, přejděte ke kroku 3 .

Pokud je program v angličtině, klikněte na „ Nastavení" >> "Možnosti„\u003e\u003e karta“ Jazyk"\u003e\u003e nastavit jazyk" ruština"a klikněte na„ OK “.
Souhlasím s prohlášením „ Nyní musíte restartovat IC-Prog„(klikni“) OKProgramátorské prostředí se restartuje.

3) Nyní musíte nakonfigurovat programátor. Klikněte na „ Nastavení" >> "Programátor". Zkontrolujte nastavení, vyberte port COM, který používáte, klikněte na" OK".


U velmi „rychlých“ počítačů bude pravděpodobně nutné zvýšit nastavení zpoždění I / O. Zvýšení tohoto parametru zvyšuje spolehlivost programování, zvyšuje se však také čas strávený programováním mikroobvodu.

4) Pouze pro uživatele Windows NT, 2000 nebo XP. Klikněte na „ Nastavení" >> "Možnosti"\u003e\u003e vybrat kartu" Jsou běžné"\u003e\u003e zaškrtněte políčko" Vč. Ovladač NT / 2000 / XP"\u003e\u003e Klikněte" OK„\u003e\u003e pokud ovladač ve vašem systému dosud nebyl nainstalován, v okně, které se zobrazí“ Potvrdit"klikněte na" OK ". Ovladač bude nainstalován a programátorské prostředí se restartuje.

5) Klikněte znovu “ Nastavení" >> "Možnosti"\u003e\u003e vybrat kartu" I2C"\u003e\u003e zaškrtněte políčka:" Povolit MCLR jako VCC"a" Povolit blokování záznamu". Klikněte na" OK".

6) "Nastavení" >> "Možnosti"\u003e\u003e vybrat kartu" Programování"\u003e\u003e zrušte zaškrtnutí políčka:" Zkontrolujte po naprogramování„a zaškrtněte políčko“ Kontrola programování". Klikněte na" OK".


Hotovo, nyní je program zcela připraven spolupracovat s programátorem. Připojujeme náš programátor k KOM port, vyberte náš mikrokontrolér v programu, otevřete firmware a naprogramujte libovolnou sérii PIC MK. Hodně štěstí všem programátorům a kontrolorům!

Část 1 Obsah

Úvod

jeden . Nástroje na vaření

2. Co je to mikrokontrolér a jak funguje

3. Sada instrukcí PIC16F84A

4. Co je program a pravidla pro jeho kompilaci. Příklad stvoření

samoscilační multivibrátorové programy. Směrnice.

Pět . Integrované vývojové prostředí MPLAB IDE a práce v něm

7. Příklad vytvoření programu (začátek)

8. Příklad vytvoření programu (pokračování)

devět. Práce v simulátoru. Ladění programu

deset. Jak sledovat provádění programu

jedenáct. Přerušení. Zásobník. Příklad vývoje programu s přerušením

12. Organizace vypočítaného přechodu. Práce s datovou pamětí EEPROM

13 . Vlajky. Práce s příznaky. Jak funguje digitální komparátor. Převod a půjčka

14. Příklad použití příznaku C ve tříbajtovém sčítači.

Cyklický posun. Násobení

patnáct . Úvod do principu konstrukce podprogramu dynamického zobrazení.

Nepřímé adresování

16. Převést binární čísla na BCD. Finále

tvorba textu podprogramu dynamické indikace

17. Princip počítání. Práce s časovačem TMR0.

Princip nastavení skupin čítacích příkazů v textu programu

…………………………………………………………………

…………………………………………………………………

Úvod

Epigraf: programátor assembleru by měl být „pánem prstenů“. A ještě jedna věc: banalita je unavená pravda.

(pochopit později)

Lidé přicházejí k mikroprocesorové technologii různými způsoby. Osobně jsem zatím necítil zvláštní potřebu to udělat, dokud jsem si v jednom okamžiku neuvědomil, že začínám neodpovídat době. To, co jsem pracoval „dříve“, se ukázalo být beznadějně zastaralé, stejně jako „legrační pohled“ jak na „pozadí“ základny moderních prvků, tak na „pozadí“ znalostí, které musíte mít, abyste pracovat s tím.

Navíc pro mě osobně to jakosi nebylo krásné a nestojí za to „jíst zbytky z carova stolu“, pokud existuje příležitost „posadit se k němu jako plnohodnotný účastník jídla“.

Bylo nutné zvolit: buď „sklopit nohy“ a jít do kategorie postupného „vymírání“ (diskvalifikován),

nebo se vypořádat s těmito „strašidelnými a strašnými“ mikrokontroléry, které stále více připomínaly „zástrčku v každé hlavni“.

Vůbec jsem nechtěl „vymřít“, takže volba byla jednoznačná. A pak začalo něco, co připomínalo „pohyb džungle“.

Informační „nepořádek“ v tomto „sektoru“ byl tak působivý, že „vlasy stály na konci“.

Kam jít? „Není kam ustoupit, Moskva je pozadu.“

Mimochodem, mnoho lidí je nyní ve přesně stejné pozici (vím z dopisů), pro něž se „vstup“ do mikroprocesorové technologie stal nejen jakýmsi „rozmarem“, ale tou nejpřirozenější nutností života, kterou je docela pochopitelné, protože řadiče m / jsou součástí téměř jakéhokoli více či méně moderního, malého (a nejen) zařízení (a „čím dále do lesa, tím více palivového dřeva“ ...).

Co jsem vydržel, ví jen jeden Pán Bůh: žádná pomoc a musel se spoléhat jen na svou vlastní sílu.

Po všech těchto „utrpeních“ vyvstala přirozená otázka: „Co se to ukáže? Je možné, že každý, kdo má v úmyslu„ zasahovat “do těchto„ kusů železa “, musí nutně„ zlomit nos do krve “, což je podél „baterie“?

Je opravdu nemožné se bez toho obejít, nebo alespoň udělat tento proces méně bolestivým?

Myslel jsem ...

Ale, bože, můžete!

Je pravda, že budete muset „zorat pole, které není zorané“, ale z různých důvodů to má smysl.

To, co jste si přečetli v „Výukovém programu pro samouky ...“, je výsledkem výše zmíněného bolestivého procesu prezentovaného „na stříbrném podnose“.

Princip prezentování informací je maximální stupeň „žvýkání“, protože „Výukový program ...“ je určen speciálně pro začátečníky.

Jedním z hlavních problémů začínajících programátorů je nedostatek konzistence ve vnímání informací a jejich „předávkování“ spojené s nadměrnou touhou rychle dosáhnout požadovaného cíle, aniž by byly brány v úvahu objektivní faktory.

Tento druh touhy je samozřejmě chvályhodný, ale při absenci plánování, jasně vyjádřených priorit a schopnosti nejprve vědomě omezit množství vnímaných informací pouze na to nejnutnější, hraje krutý vtip s osoba.

Výsledkem je „nepořádek“ v hlavě, dezorientace v toku informací a v nejhorším případě lítost nad stráveným časem, i když vše celkově není tak složité, jak by se na první pohled mohlo zdát první pohled.

Neříkám, že je to vůbec snadné. Budete muset pracovat, ale neměli byste se vůbec bát, takže

jako „ďábel není tak hrozný, jako je namalovaný“.

Dalším neštěstím je podcenění nesmírného významu znalostí a schopnosti uplatnit v praxi strategii a taktiku „brainstormingu“.

Ačkoli je jakýkoli „brainstorming“ užitečný, „brainstorming“ programátora, který má alespoň základní znalosti o své strategii a taktice, je mnohem efektivnější a efektivnější než „křečovité akce“ programátora, který tyto myšlenky nemá. Ale práce programátora je „nepřetržitý brainstorming“ !!!

Každý má mozek, ale jsou zde obrovské problémy se strategií a taktikou tohoto „útoku“. Můžete, s bláznem, a „dostat kulku“ (podle scénáře jako „hrdinská smrt programátora“).

V ve své práci vycházím z předpokladu, že mozky nejsou jen logickým „strojem“, ale také „úložištěm osobnosti“.

Ta druhá je buď jasně podceňována, nebo ji vůbec neberou v úvahu autoři takových „výtvorů“, jako je ta moje, což je jejich enormní chybný výpočet, který ruší většinu jejich úsilí.

Tento druh „jednostrannosti“, který je ve většině případů masivní, vede k tomu, že student vnímá informace jako logicky sofistikované, intenzivní (bez smyslu pro proporce) a „beznadějné znásilnění autorem jeho mozky (žáka) s cílem „zesměšňovat“ nízkou úroveň jeho přípravy a přímé nebo nepřímé snižování sebeúcty „mikrokontroléru“.

Samozřejmě to v mnoha ohledech není pravda, ale co můžete dělat, například přirozená podvědomá ochranná reakce psychiky normálního člověka na velké množství informací pro efektivní práci, na kterou není připravena .

Abychom pochopili obrovskou škodu takového přístupu ke vzdělání, pamatujte na Afghánistán nebo Čečensko a osud těch nevycvičených a psychologicky nepřipravených dětí, které byly „vrženy do tohoto mlýnku na maso“.

Nepřeji vám takový osud, a z tohoto důvodu byl v „Výukovém programu pro sebe ...“ učiněn jakýsi pokus o postupné „vkládání“ nul a jedniček do osobnosti (jejich „zduchovňování“) a formování určité „ideologie programového důstojníka“ („bojový duch“, „jádro“), bez které by jakákoli „válka“ (programování je čistě mužská a „chuligánská“ okupace s názvem „válka s vlastní hloupostí“) se odehrává bez jakéhokoli zahájení a který je hlavním základem jakékoli efektivní „školy“ výuky. Nemám s čím srovnávat, a proto pracuji na vlastní nebezpečí a riziko.

Nesuďte mě přísně, protože pracuji „od nuly“ a nejsem „psychologický specialista“. Doufám, že v tom budou pokračovat další autoři extrémně důležitéa „kriminálně“ ignorované „psychologické téma“. Rád bych věřil, že při čtení „Výukový program ...“ pocítíte, že takový benevolentní a uctivý přístup k vaší vůbec nelehké práci (vím sám od sebe), a vaše podvědomí nevydá SOS signály o „divokém znásilnění mozku“.

Samostatně mám na mysli „chuligány“, „bojovníky“ a „tyrany“ (v obecném smyslu těchto slov), jejichž „mozková aktivita“ je jasně vyjádřena.

Nemusíte vysvětlovat, co to znamená „zasáhnout“, „vyhnout se“, „zasáhnout“ a „prsty“ vás neobtěžují. Z tohoto důvodu je programování především vaším „lénem“, kde můžete slavně „lovit“.

V programování, agresivita je ctnost, nikoli nevýhoda.

Zde můžete od srdce intelektuálně „mávat pěstmi“ (neexistují žádná omezení) a navíc „věnovat krk“ mnoha hodným „nepřátelům“ (neexistují žádná omezení), ze kterých mimochodem budete rozhodně si užívejte.

Informace tedy budou poskytovány v určitém pořadí a podle zásady „od jednoduchého po komplexní“.

Dodržujte prosím tuto sekvenci a nepokračujte v následujících částech bez objasnění předchozích. Toto podnikání není spěchavé a nevyžaduje rozruch.

Nebudu „hrudkovat“ všechno, také se pokusím „nepřetahovat“. „Výukový program ...“ je určen pro začátečníky, ale předpokládá se, že alespoň znají základy digitální technologie.

Rád bych vyjádřil upřímnou vděčnost těm lidem, kteří pomohli při práci na tomto tutoriálu.

1. Kuchyňské nástroje

Mikrokontroléry (a obecně všechny procesory) zpočátku rozumí pouze strojovým kódům, to znamená určité sadě nul a jedniček.

Ti, kteří si představují, jak fungují čítače, registry, spouštěče atd., Okamžitě pochopí podstatu strojového kódu.

Vzhledem k tomu, že mezi elektronickými inženýry jsou takoví lidé většinou, podle mého názoru všichni souhlasí s tímto axiomem: strojové kódy jsou užitečné v „malých dávkách“.

A když začnou „velké dávky“ (složitá zařízení s desítkami pouzder m / obvodů), pak „mozky začnou kouřit“ i mezi nóbl elektroniky, kteří mají pozoruhodné schopnosti.

V tomto případě je nejnepříjemnější věcí to, že jak obvodová složitost zařízení roste, efektivita elektronického inženýra prudce „klesá“.

„Moře“ je skutečně investováno do pracovní síly a zdrojů, ale výsledkem je něco málo spolehlivého, rozměrného, \u200b\u200bobtížně vyrobitelného, \u200b\u200benergeticky náročného a nákladného.

Aby „narazily“ na všechny tyto problémy, vynalezly „eggheads“ nejprve „velké“ procesory (jaké se používají v počítačích) a poté „malé“ a nazývaly je mikrokontroléry.

Uvnitř řadiče m / je „sada“ modulů, z nichž každý je multifunkční. Manipulací s poměrně slabými schopnostmi této „sady“ můžete implementovat miliony různých zařízení.

Přirozeně musí všechno toto „hospodářství“ nějak „řídit“. Tomuto „pojíždění“ se říká programování.

Pokud mluvíme o velkých „polích“ strojových kódů, pak programování přímo (ve strojových kódech) a nepřítel si nepřeje: žádné potěšení, ano, žádné dobré a můžete se dostat do „psychiatrické léčebny“ (existují výjimky - lidé s vynikajícími schopnostmi a géniové) ... Aby obyčejní lidé mohli psát programy bez velkého „stresu“, byly vynalezeny různé programovací jazyky.

Význam všech spočívá v nahrazení strojových kódů slovy, zkratkami slov, zkratkami atd., Tj. Něčím, co člověk snadno a smysluplně vnímá a se kterým může pohodlně pracovat při sestavování textu programu .

Všechny tyto „stravitelné rozkoše“ jsou na konci kompilace textu programu přeloženy do strojových kódů jedním „lehkým pohybem ruky“ (mozek programátora není zapojen).

Aby k tomuto „lehkému pohybu ruky“ mohlo dojít, vynalezly „eggheads“ takzvané „integrované vývojové prostředí“.

Jedná se o sadu programů, ve kterých programátor pracuje s maximální mírou pohodlí a navíc v celém „poli“ úkolů, které mají být vyřešeny (včetně kompilace textu programu atd.).

Co nejdříve musí udělat například Rus, který skončil v Anglii a bude tam žít?

Učit se anglicky.

Když „vstoupíte“ do programování, musíte udělat totéž (úkol je ještě mnohem jednodušší).

„Prod“ všech programovacích jazyků je assembler.

Přestože je slovo „simple“ považováno za nejjednodušší, odkazuje se primárně na množinu jeho příkazů: jejich počet je nezbytně nutný, a přesto zcela dostačující pro řešení nejobtížnějších problémů, nikoli však pro pohodlné vnímání z nich osobou.

Příkazy Assembleru jsou buď zkratky anglických slov, nebo sada prvních písmen anglických frází, nebo obojí.

Minimální „gentlemanská“ sada assembleru pro PIC je 35 pokynů. Ve skutečnosti se nejčastěji používá od 10 do 20 příkazů.

V budoucnu se připravte jen na hloupé zapamatování (zpočátku) všech těchto anglických „blábolů“, jako je napěňování (obecně nemám sklon k cizím jazykům, ale nic jsem neovládal), to není tak náročný úkol , Ujišťuji vás ... V budoucnu vám pomůže vaše nápadité myšlení a vizuální paměť.

A učení assembleru velmi stojí za to, protože to nemusí být příliš

„stravitelné“, ale právě v tomto jazyce jsou psány nejkompaktnější, nejrychlejší a nejspolehlivější programy, a proto seriózní programátoři pracují

většinou v assembleru.

Varování: V této fázi se do montéru nepouštějte! Vše má svůj čas. Prozatím stačí obecná představa (ať se „usadí v mozku“).

Programy PIK jsou psány primárně v assembleru.

I když je program pro ně kompilován v jazyce vyšší úrovně, nakonec integrované vývojové prostředí přeloží vše do assembleru.

O integrovaném vývojovém (designovém) prostředí: Provádí celou řadu úkolů.

Ve svém specializovaném textovém editoru je sestaven text programu.

Text programu nelze zapsat do PIK, protože „rozumí“ pouze strojovým kódům. Proto je nutné převést text programu z montážního jazyka do strojových kódů.

To znamená, že potřebujete takzvanou sestavu (kompilaci) zdrojového kódu programu, která se provádí ve stejném integrovaném vývojovém prostředí.

To je místo, kde začátečníci obvykle zmateni: fráze "sestavení zdrojového kódu programu"znamená nepřekládat zdrojový kód programu do montážního jazyka (text programu je již napsán v montážním jazyce), ale naopak převádět text programu napsaného v montážním jazyce do strojových kódů, které jsou nejprve vhodně archivovány a umístěny do speciálního souboru s příponou (formát) .HEX (pro usnadnění ukládání a přepravy strojových kódů), poté rozbaleny ze souboru HEX a nabývat jejich původní podoby v programu sloužícím programátorovi.

U tohoto programu se strojové kódy programu zapisují do PIC. Výše uvedená věta, používaná po celou dobu, rozhodně není dobrá.

Věnujte tomu pozornost a vždy mějte na paměti, že to neodráží smysl toho, co se děje, i když to budu používat dále, protože je to standardní. Mluvil jsem jen o dvou hlavních funkcích IDE.

Jeho možnosti zdaleka nejsou vyčerpány.

Integrované vývojové prostředí pro PIK se nazývá MPLAB.

Tento program (nebo spíše sada programů) byl vytvořen výrobcem PIK, tedy společností

Microchip Technology Inc.

V Rusku je zástupcem této společnosti LLC „Micro-Chip“, která má své vlastní webové stránky pro technickou podporu v ruštině http://www.microchip.ru na internetu (mimochodem, na tomto webu, v části „Začátečníci“, existuje odkaz na můj web).

Osobně používám MPLAB 5.70.40, což vám také radím.

Jedná se o „starého dobrého koně, který nezkazí brázdy“ a jeho příležitosti jsou „nad střechou“.

Hlavní nevýhodou této verze je, že pracuje pomalu (počítá), ale pro začátečníky není „reaktivní“ rychlost nutná.

Jeho hlavní výhodou je provozní spolehlivost.

V novější verze do určité míry vyměňují rychlost za spolehlivost, což někdy není dobré.

V budoucnu se zaměřím na verzi 5.70.40.

Poznámka: MPLAB distribuční sada verze 5.70.40 (a 2 další verze) je k dispozici na CD. Musíte nahrát distribuci MPLAB do složky s anglickým názvem (složka moje dokumenty nebo desktop nebude fungovat), jinak budete mít problémy.

Nejlepší je uspořádat to do složky Program Files na jednotce C.

Program MPLAB je integrované vývojové prostředí pro PIK a obsahuje vše, co potřebujete k psaní a úpravám programu, vytváření HEX souborů a ladění programu.

Není tedy potřeba psát program v samostatném textovém editoru, v samostatném programu assembleru k vytvoření souboru HEX a v samostatném ladicím programu (simulátor), protože MPLAB toto všechno (a ještě více) má.

Nainstalujte si MPLAB do počítače, ujistěte se, že nestojí „pokřiveně“ a na chvíli na to zapomeňte, protože abyste s ním mohli pracovat, musíte se důkladně připravit, což budeme dělat v budoucnu.

Další krok - montáž programátoru, protože HEX soubor programu vytvořeného v MPLAB musí být „převeden“ na strojové kódy, které budou zapsány do PIC (tzv. „firmware“).

V první fázi nemohu nabídnout nic jednoduššího a spolehlivějšího než programátor PonyProg, i když samozřejmě existují i \u200b\u200bdalší „hodní“ programátoři.

Informace o sestavení programátoru PonyProg najdete v příloze č. 1.

Je třeba poznamenat, že programátor PonyProg funguje nejlépe na relativně „pomalých“ počítačích starších verzí, protože pro ně byl najednou vytvořen program PonyProg.

Při připojení programátoru k moderním vysokorychlostním počítačům s „vymyšlenými“ operačními systémy může dojít ke konfliktům, jako jsou „nekonzistence“ programu PonyProg s operačním systémem nebo překročení maximální povolené rychlosti výměny dat mezi počítačem a programovatelným PIK, to znamená, že programátor nemusí jednoduše fungovat.

To vůbec není skutečnost, ale může být.

Nejlepším řešením je pro tyto účely použít počítač s taktovací frekvencí až 500 MHz a operačním systémem Windows95 / 98.

Osobně jsem to udělal: koupil jsem „starou dámu“ téměř za nic, oklamal jsem BIOS připojením dalšího 8GB pevného disku k mému nativnímu pevnému disku jako „pomocníka“, nainstaloval jsem Windows98 a zapnul přídavné spalování.

Ukázalo se, že je to „levné a veselé“, a to především z toho důvodu, že při programování, vytváření desek plošných spojů, kreslení obvodů a dalších radioamatérských záležitostí není nutná speciální rychlost, protože všechny tyto činnosti nejsou spěchatelné a má zvláštní smysl používat pro tento podnik vysokorychlostní počítače č.

V mé „staré paní“ jsou téměř 2 GB tohoto druhu programů, včetně hezkých „efektních“, a nic nefunguje skvěle.

Doufám, že je jasné, co musí být k dispozici, ale nyní o užitečných „maličkostech“. Stáhněte si tyto dva malé, ale užitečné a užitečné programy:

HEX - kalkulačka: soubor CALC32.rar je přiložen (složka "Programy"). Převodník systému Calculus: Je připojen soubor BCONV32 (složka „Programy“).

Jsou tak jednoduché, že snadno zjistíte, proč jsou potřeba. Nejčastěji je vyžadován převodník číslování.

Jeden z aktivních účastníků práce, Peter Vysochansky, vyvinul program převaděče kalkulů, který je nejvíce přizpůsoben praktickým potřebám:

Převodník kalkulových systémů Petera Vysochanského: je připojen soubor Hex-Dec_Bin.exe

(složka "Programy")

Po otevření nastaví program převaděče rozložení anglické klávesnice (co potřebujete).

K dispozici je tedy vše, co potřebujete k programování PIC řadičů. Zatím to nejsou nic jiného než krásné a zajímavé „věci“, které nemají zcela jasný účel.

Můžete se na ně dívat ve svém volném čase, na něco tlačit, jen abyste se vyhnuli dalším nedorozuměním, nedotýkejte se výchozího nastavení.

Přejít na další část.

„Výukový program pro programování PIC řadičů pro začátečníky“ http://ikarab.narod.ru E-mail: [chráněno e-mailem]

2. Co je to mikrokontrolér a jak funguje

Mikrokontrolér je především procesor se všemi jeho „atributy“ a navíc s vestavěnou energeticky nezávislou pamětí (programy a data), která vám umožňuje opustit externí programovou paměť a umístit program do její energeticky nezávislé paměti.

To umožňuje vytvářet velmi jednoduchá (z hlediska obvodů) a kompaktní zařízení, která přesto plní poměrně složité funkce.

Někdy se dokonce divíte: tato malá „věc“ nahradí celou „hromadu starého železa“ (K555 atd.).

Jakýkoli mikrokontrolér je ve svých schopnostech samozřejmě horší než počítačový procesor, ale přesto existuje velmi rozsáhlá třída zařízení, která jsou implementována hlavně na mikrokontrolérech.

A ve skutečnosti nemůžete dát počítač do kapsy a nemůžete jej napájet z baterií. Proto v mnoha případech prostě neexistuje žádná alternativa k mikrokontrolérům. „Srdcem“ mikrokontroléru je aritmetická logická jednotka (ALU).

Nejjednodušší je představit si to ve formě banální kalkulačky, jejíž tlačítka jsou ovládána programem napsaným v assembleru (tj. Programátorem).

Pokud o tom přemýšlíte, není v ovládacím mechanismu tohoto druhu kalkulačky nic zvlášť komplikovaného.

A ve skutečnosti, pokud je třeba například přidat číslaA a B, poté se v textu programu nejprve nastaví konstanty A a B a poté se zadá příkaz „add“.

Programátor nemusí vědět, co se děje s nulami a nulami (pokud to není jen pro obecný vývoj), protože je to kalkulačka a kalkulačka, která uživatele chrání před „fidlováním“ strojovými kódy a jinými „nestrávitelnými“. Když pracujete s počítačem, nemusíte podrobně vědět, co se děje v divočině operačního systému.

Pokud se tam „vyšplháte“, pak se „zblázněte“ a mikrokontrolér je ve své podstatě stejný počítač, ale pouze jednoduchý.

Programátorovi stačí pouze podrobně vědět, jak „objednat kus železa“, aby udělal to, co je nezbytné k dosažení zamýšleného cíle.

Mikrokontrolér si lze představit jako jakýsi univerzální „soubor“ multifunkčních modulů (bloků), jejichž „ovládací páky“ jsou v rukou programátora.

Těchto „pák“ je poměrně dost a musíte je samozřejmě ovládat a přesně vědět, co se stane, když „zatáhnete“ (vydáte příkaz v montážním jazyce) jednou nebo druhou „pákou“.

Zde již jako „náš otec“ musíte znát každý detail a nelitovat toho „uznání“ doby.

Pouze tímto způsobem lze „přinutit“ prázdné „prázdné“ (neprogramované PIC) k provedení „smysluplných“ akcí, jejichž výsledek lze většinou zkontrolovat v simulátoru MPLAB (více o tom později), aniž byste museli psát program do PIK. Je tedy nutný přechod na „modulární“ myšlení.

Jakýkoli mikrokontrolér lze přirovnat k dětskému designérovi, který obsahuje mnoho různých položek, s nimiž manipulujete, můžete získat jeden nebo druhý finální "produkt".

Pojďme se s nimi vypořádat a „dát všechno na police“.

Jako příklad použiji jeden z nejběžnějších PIC řadičů.

PIC16F84A.

Je to „pro-matka“ složitějších PIK, obsahuje minimální „sadu“ modulů a je nejvhodnější pro primární „vstup do řadičů m /“.

Energeticky nezávislá paměť.

Začněme energeticky nezávislou pamětí (programová paměť a datová paměť). Informace uložené v energeticky nezávislé paměti se ukládají při vypnutí napájení, a proto se do ní zapisuje program.

Toto „místo“ energeticky nezávislé paměti, kde je program zapsán, se nazývá paměť programu.

Velikost paměti programu se může lišit. Pro PIC16F84A je to 1024 slov. To znamená, že je navržen pro práci s programy, které nepřekračují

Takže jste se rozhodli naučit se programovat pic ovladače. Nejprve si promluvme o tom, co potřebujete pro práci s těmito řadiči.

Regulátor pracuje podle určitého programu, který se do něj musí nějak dostat. Typicky se program strojového kódu, který je připraven k zápisu do řadiče, nazývá firmware. Proto potřebujete nějaký druh zařízení, které zapíše program (ve slangu, obvykle se říká, že plní nebo bliká) do ovladače. Takové zařízení se nazývá programátor. O programátorech a nahrávání programů si povíme podrobněji později, v poslední části našeho eposu (když už bude co nahrávat), ale prozatím si řekněme v pořádku - jak napsat tento program.

Program pro řadič je, jak jsem řekl, sada strojových kódů zapsaných do souboru s příponou „hex“ (), který je nutné nahrát do řadiče pomocí programátoru. Správce nerozumí žádnému jinému jazyku. Proto je zapotřebí speciální program, který převede text programu napsaného v libovolném programovacím jazyce do strojových kódů. Nejvýhodnější v tomto ohledu jsou integrovaná vývojová prostředí (IDE), protože mohou nejen překládat text programu do strojového kódu, ale také simulovat jeho činnost. Simulaci lze navíc provádět krok za krokem, přičemž můžete sledovat stav registrů nebo dokonce libovolně měnit jejich stav. Stručně řečeno, kromě kompilace (překlad do strojových kódů) poskytují integrovaná prostředí vynikající příležitosti pro ladění programů.

Existuje mnoho IDE, jako jsou programátoři. Osobně používám MPLAB a doporučuji vám ho, a to z jednoduchého důvodu, že MPLAB je IDE od samotného výrobce PIC kontrolérů - Microchip, proto má vynikající podporu (včetně ruštiny, což je obzvláště pěkné). Z oficiálního webu Microchip si můžete stáhnout tento balíček sám a podrobný popis, jak s ním pracovat. Pokud jej nenajdete nebo rozdělíte, je pravda, že se nejedná o nejnovější verzi.

Popis v ruštině vypovídá o všem: od instalace a konfigurace až po odinstalování. Ve většině případů celá instalace spočívá v spuštění instalace a zodpovězení několika otázek, například kam nainstalovat ovladače a podobně, ze sebe jen dodám, že aby se zabránilo závadám, musíte balíček dát do takového složku tak, aby na cestě byla pouze anglická písmena (a nikoli žádná, například C: \\ Programy \\ PIC \\ MPLAB). Obecně je lepší nepoužívat azbuku v cestách k souborům nebo v názvech souborů, jinak jsou možné závady.

MPLAB umožňuje psát programy ve dvou jazycích: C a Assembler. Internet prostě praskne zúčtováním mezi SI a montážníky, kteří si navzájem pěnou dokazují, který jazyk je lepší. Považuji se za montéra, takže vám přirozeně řeknu, proč je Assembler lepší.

Assembler je sada elementárních příkazů prováděných řadičem. Každý příkaz je ve strojovém kódu interpretován zcela jednoznačně a výsledek jeho provedení a doba provedení jsou vždy stejné. To znamená, že pokud máte výpis v assembleru, můžete absolutně říci přesně, co kontrolér dělá v každém okamžiku a jak přesně je dosaženo požadovaného výsledku.

Program v jazyce C (a skutečně v jakémkoli jazyce na vysoké úrovni) je již sada příkazů ne pro řadič, ale pro odpovídající jazyk. Během kompilace je každý takový příkaz nahrazen sadou příkazů pro řadič, ale s jakou sadou příkazů je nahrazen, už nevíte, ví to pouze vývojář programovacího jazyka. Proto není možné přesně pochopit, jak ovladač provádí požadovanou akci.

Stručně řečeno, v případě jazyka na vysoké úrovni se naučíte, jak nějaký strýc nazval své metody implementace funkcí, které potřebujete, a podle jakých pravidel by měla být napsána. V tomto případě můžete nakreslit následující analogii: chcete mluvit s Číňanem, ale oni vám řeknou: „Čínština je příliš obtížný jazyk, ale v Bulharsku žije jeden strýc, který žil v Číně 20 let a dokonale se ho naučil . A bulharština a ruština jsou si velmi podobné a ruský člověk tomu rozumí intuitivně, takže se naučte bulharsky a váš strýc to přeloží. "

V případě assembleru se naučíte samotný ovladač a pravidla, podle kterých s ním budete mluvit. V tomto případě má ovladač jen několik desítek příkazů, které se vejdou na jeden list papíru a lze na ně snadno pohlédnout.

Doufám, že jste si již v tomto bodě vybrali programovací jazyk, tak pojďme dál.

Co musíte udělat v MPLAB, abyste získali požadovaný firmware? Jak jsem řekl, přečtěte si podrobnosti v příručce k MPLAB IDE, je v ruštině a je tam vše jasné (pokud to není jasné, přejděte do fóra), uvedu jen stručně nejzákladnější věci a uvedu několik doporučení .

Nainstalovali jsme tedy MPLAB, chceme do něj napsat program pro ovladač a získat hotový firmware.

Nejprve musíte vytvořit projekt. Pro každý projekt doporučuji vytvořit samostatnou složku, protože za prvé může projekt obsahovat několik souborů a za druhé, MPLAB sám vytvoří několik dalších pomocných souborů (* .lst, * .err, * .cod, *. Bkx ). Pokud je v jedné složce několik projektů, je snadné se zmást, které soubory ke kterému projektu patří. Stručně řečeno, vytvořte pro projekt novou složku, poté spusťte MPLAB a vyberte nabídku Projekt -\u003e Nový projekt ...

V okně, které se objeví, v průzkumníku napravo vyberte naši složku nalevo (v poli pod nápisem Název souboru) napište název budoucího projektu, například my1.pjt (nezapomeňte uvést příponu), a klikněte na OK.

Zobrazí se okno se jménem Upravit projekt... Jedná se o projektového manažera, který určuje parametry projektu (které soubory a knihovny je třeba k projektu připojit, jaký kámen bude použit, zda bude použita simulace atd.). Najděte vstupní pole se jménem Režim vývoje... Napravo od tohoto pole je tlačítko. Změna ... Klepněte na.

Otevře se okno se jménem Režim vývojeve kterém vidíme spoustu záložek. Na kartě Nástroje zaškrtněte vedle Simulátor MPLAB SIM (nepoužívat simulátor k ladění je hřích), ve vstupním poli Procesor vyberte ovladač, se kterým budeme pracovat. Na kartě Hodiny označíme, jakou frekvenci generátoru budeme mít. Klikněte na OK. Nevěnujeme pozornost chybě a varování, jen nám řeknou, že ještě nemohou vytvořit .hex (no, je to tak, ještě nemáme program) a že když se změní nastavení, projekt musí být překompilován (takže jsme nikdy kompilovali vůbec) ...

Ve vstupním poli Sada jazykových nástrojů Vybrat Mikročip.

Stiskněte tlačítko se jménem Přidat uzel ... V okně, které se objeví, v průzkumníku vpravo vyberte složku projektu, do vstupního pole vlevo napište název souboru s textem programu v assembleru, například my1.asm (nezapomeňte zadat rozšíření) a klikněte na OK. To je vše, nyní jsme k projektu připojili soubor my1.asm (naznačili jsme, že text programu bude v tomto souboru).

Tím je projekt Úpravy dokončen - klikněte na OK.

Nyní ve skutečnosti musíte vytvořit soubor s textem programu (v projektovém manažerovi jsme jednoduše naznačili, že text bude v takovém a takovém souboru, ale ve skutečnosti tento soubor ještě nebyl vytvořen). Chcete-li to provést, přejděte do nabídky Soubor a vyberte položku Nový... Otevře se okno editoru s názvem Untitled1. Výběr nabídky Soubor -\u003e Uložit jako ..., v průzkumníku vpravo označíme ve vstupním poli složku projektu Název souboru napište název souboru, který jsme zadali v projektovém manažerovi, tj. v našem příkladu to bude my1.asm. Pokud je vše provedeno správně, změní se název okna editoru z Untitled1 na \\ path \\ my1.asm.

To je vše! Nyní zbývá pouze napsat text programu do okna editoru, sestavit projekt (nabídka Projekt-\u003e Vytvořit vše) a pokud v programu nejsou žádné chyby (což se poprvé stane velmi zřídka), zobrazí se hotový firmware ve složce projektu (soubor s příponou hex), kterou lze nahrát do ovladače.

  1. Část 1. Nezbytné nástroje a programy. Základy MPLAB
Nedávno jsem se rozhodl sestavit zařízení na mikrokontroléru PIC, ale z neznámých důvodů mě programátor Extra-PIC odmítl. S největší pravděpodobností došlo k vyhoření mikroobvodu MAX232, toto se již stalo jednou. Bez rozmýšlení jsem na internetu našel jednoduchý programátorský obvod, naostřený pro IC-Prog a propracovaný KOM přístav.
Při tisku je třeba desku zrcadlit. V opačném případě budou panely muset být připájeny ze strany kolejí.


Potom jsem vyvrtal díry a začal díly pájet. Zenerovy diody byly největším problémem. Začal jsem hledat zenerovy diody na desce z monitoru CRT. Jsou podepsáni na desce jako ZD (Zenerova dioda). Jejich značení je přirozeně nepochopitelné a není známo, kde a jak hledat. Chcete-li zjistit, kolik voltů lze zenerovou diodu sestavit, jednoduchý obvod.


Voltmetr docela přesně ukáže, kolik voltů má zenerova dioda. Takovým jednoduchým způsobem jsem našel zenerovy diody, přibližné nominální hodnotě. Namísto 5,6 V jsem nainstaloval 6,2 V, místo 12,6 V jsem do série nainstaloval 2 zenerovy diody 6,2 + 6,2 \u003d 12,4V .


Tranzistor lze dodat KT315... Nastavil jsem se S945... Diody jsou také jakékoli, upustil jsem všechny 3 kusy. z diodového můstku stejné desky z monitoru. Hodnocení kondenzátorů také není kritické, ale byly nastaveny na nominální hodnotu.

Trochu o červených skvrnách poblíž panelů. Tyto nohy nejsou k panelům vůbec připájeny. Úplně hotové zařízení vypadá takto:


Rozhodl jsem se nepájet všechny panely. Potřeboval jsem jen blikat PIC16F628A... Po pájení musíte program nakonfigurovat. Budeme blikat IC-Prog. , rozbalit z archivu, všechny soubory musí být v jedné složce!

1) Pokud používáte Windows NT, 2000 nebo XP, klepněte pravým tlačítkem na soubor icprog.exe. " Vlastnosti„\u003e\u003e karta“ Kompatibilita"\u003e\u003e Nastavit zaškrtávací políčko na" Spusťte program v režimu kompatibility s:" >>
vyberte „Windows 2000“.

2) Spouštíme program. Pokud je již v ruštině - nic není potřeba, přejděte ke kroku 3 .

Pokud je program v angličtině, klikněte na „ Nastavení" >> "Možnosti„\u003e\u003e karta“ Jazyk"\u003e\u003e nastavit jazyk" ruština"a klikněte na„ OK “.
Souhlasím s prohlášením „ Nyní musíte restartovat IC-Prog„(klikni“) OKProgramátorské prostředí se restartuje.

3) Nyní musíte nakonfigurovat programátor. Klikněte na „ Nastavení" >> "Programátor". Zkontrolujte nastavení, vyberte port COM, který používáte, klikněte na" OK".


U velmi „rychlých“ počítačů bude pravděpodobně nutné zvýšit nastavení zpoždění I / O. Zvýšení tohoto parametru zvyšuje spolehlivost programování, zvyšuje se však také čas strávený programováním mikroobvodu.

4) Pouze pro uživatele Windows NT, 2000 nebo XP. Klikněte na „ Nastavení" >> "Možnosti"\u003e\u003e vybrat kartu" Jsou běžné"\u003e\u003e zaškrtněte políčko" Vč. Ovladač NT / 2000 / XP"\u003e\u003e Klikněte" OK„\u003e\u003e pokud ovladač ve vašem systému dosud nebyl nainstalován, v okně, které se zobrazí“ Potvrdit"klikněte na" OK ". Ovladač bude nainstalován a programátorské prostředí se restartuje.

5) Klikněte znovu “ Nastavení" >> "Možnosti"\u003e\u003e vybrat kartu" I2C"\u003e\u003e zaškrtněte políčka:" Povolit MCLR jako VCC"a" Povolit blokování záznamu". Klikněte na" OK".

6) "Nastavení" >> "Možnosti"\u003e\u003e vybrat kartu" Programování"\u003e\u003e zrušte zaškrtnutí políčka:" Zkontrolujte po naprogramování„a zaškrtněte políčko“ Kontrola programování". Klikněte na" OK".


Hotovo, nyní je program zcela připraven spolupracovat s programátorem. Připojujeme náš programátor k KOM port, vyberte náš mikrokontrolér v programu, otevřete firmware a naprogramujte libovolnou řadu PIC řady MK. Hodně štěstí všem programátorům a kontrolorům!

Diskutujte o článku PROGRAMOVÁNÍ PIC REGULÁTORŮ