Blikání jednou LED

Blikání jednou LED

      Na prvním jednoduchém příkladu se naučíme nastavit orientaci portů mikropočítače, použít jednoduché příkazy pro vytváření zpoždění a také psát program ve vývojovém prostředí BASCOM-AVR tak, aby měl přehledné členění a i po delší době jsme se v něm dokázali orientovat.

     Na jeden vývod mikropočítače připojíme LED, kterou budeme na půl sekundy rozsvěcet a půl sekundy ji necháme zhasnutou. Schéma připojení LED může vypadat takto:

obrazekObr. 1: Schéma zapojení úlohy

     K připojení LED můžeme použít kterýkoliv pin, který se dá nastavit jako Generic IO. Tuto informaci nám zobrazí  PDF Viewer po najetí kurzorem na příslušný vývod a nemusíme ji nikde hledat. Diodu můžeme zapojit katodou na GND, potom ji budeme rozsvěcovat Log1 na výstupu, nebo ji můžeme zapojit anodou na +5V a potom ji rozsvěcujeme Log0. To je potřeba znát před tím, než začneme psát program. Přestože výrobce u ATmegy udává zatížení jednoho I/O pinu až 40 mA a v součtu na všechny porty až 300 mA, budeme v našich zapojeních používat nízkopříkonové LEDky, které dostatečně svítí při proudu 2 mA. Pro tento proud pak vyjde předřadný rezistor R1=1,5 kΩ. (Můžete si jej spočítat podle vzorce R1=(UCC-UF)/IF.) Použití LEDek s malým jmenovitým proudem bude při jejich větším počtu snižovat zatížení portů, ale především šetřit energii při napájení našich zapojení z baterie.

obrazekObr. 2: Realizace úlohy

     K psaní aplikačního  programu, tzv. zdrojového kódu,  budeme  používat  programovací  jazyk  Bascom,  který umožňuje i začátečníkům psát programy pro jednočipové mikropočítače. Jedná se o produkt firmy MCS electronics a existuje ve dvou implementacích – Bascom 51 pro mikropočítače I8051 a Bascom AVR pro mikropočítače ATMEL AVR. Demo verze prostředí Bascomu AVR je omezena délkou výsledného kódu 2 kB, což pro naše pokusy s mikropočítačem bude dostačovat.

obrazekObr. 3: Zápis programu

Psaní nového programu začneme po otevření vývojového prostředí volbou v menu FileNew, čímž vytvoříme nový soubor, do něhož pomocí editoru budeme psát zdrojový text.

Zdrojový kód – program obsahuje definiční data, příkazy a komentáře. Všechny nadpisy a poznámky, které slouží pouze autorovi programu a překladač je vynechává, se oddělují apostrofem, v editoru se zobrazí zelenou barvou. Zejména ze začátku budou důležité pro pochopení funkce jednotlivých částí programu, později se komentují jen určité části (sekvence) programu.

První dva příkazy definují typ mikropočítače, pro který píšeme zdrojový program, a kmitočet krystalu. Tyto příkazy nejsou v Bascomu povinné, ale protože je potřebuje překladač, musíme mu je zadat. Zadání může být i nastavením přes OptionCompilerChip v okně Option. Vhodnější je to ale psát přímo do programu.

obrazekObr. 4: Definování typu mikropočítače v menu Options

Příkaz Config PORTC.5=Output nastaví 5.bit portu C do výstupního módu.

     Program je potom vykonáván v nekonečné smyčce definované příkazy Do a Loop. Ve smyčce je příkazem Set PortC.5 trvale nastaven daný výstup do Log1, následuje časová prodleva definovaná příkazem Waitms 500 na 500 milisekund, po které je zase příkazem Reset PortC.5 výstup trvale nastaven do Log0 a následuje stejná časová prodleva. Celý děj se cyklicky opakuje.

Časové prodlevy můžeme zadávat příkazy   

Wait x …… zastaví provádění programu na x sekund

Waitms x …… zastaví provádění programu na x milisekund (1 až 65535)

Waitus x …… zastaví provádění programu na x mikrosekund (1 až 65535)

Pro přesný popis příkazů můžeme využívat BASCOM-AVR Help, který je součástí prostředí.

Máme-li vytvořený program, přes volbu FileSave As spustíme okno Uložit jako, vybereme adresář, zvolíme název souboru, potvrdíme tlačítkem Uložit. Překlad zdrojového programu do kódu, který se potom přenese do mikropočítače, spustíme výběrem menu Program → Compile nebo stiskem klávesy F7. Překlad vytvoří několik souborů stejného názvu, ale s různými příponami. Soubor s příponou .bin přeneseme pomocí programátoru do mikropočítače, soubor .hex vyžadují některé typy programátorů, soubor .dbg používá simulátor chodu programu, soubor .err se vytváří při zjištění chyb při překladu, soubor .EEP je generován při umístění dat do paměti EEPROM.

Proběhne-li překlad bez chybových hlášení, můžeme provést již přenesení programu do mikropočítače stiskem klávesy . Otevře se okno programátoru a stiskem na zelený symbol mikropočítače provedeme přes připojený USB/ASP programátor naprogramování.

obrazekObr. 5: Program přeložený do hexadecimálního kódu

obrazekObr. 6: Přenos programu pomocí programátoru USBASP přímo na nepájivém poli

Zdroje

Obrázky: 

  • Obr. 1-6:  Archiv autora. 
Přílohy
atmel-2486-8-bit-avr-microcontroller-atmega8_l_datasheet.pdf Stáhnout
LED-1-program.zip Stáhnout
Procvič si
  • vyzkoušej si úpravu času svícení nebo zhasnutí LED použitím všech tří typů příkazů pro nastavení časové prodlevy
  • zapoj na nepájivém poli k mikropočítači více LED a naprogramuj různé kombinace jejich svícení