Ovládání více LED současně
V předcházejícím příkladu byl popsán podrobně celý postup tvorby a přenesení programu do mikropočítače. Na každém programu se naučíme něco nového, ale také si můžeme sami vyzkoušet vliv změny parametrů příkazů, např. změna časové prodlevy u příkazu Wait, nebo použitím jiných příkazů na celkovou funkci programu. Stačí jen se nebát a zkoušet.
V tomto příkladu si ukážeme, jak je možné jednoduchým zápisem čísla do výstupního portu ovládat (zapínat a vypínat) 8 LED naráz. Seznámíme se také s jinými druhy číselných soustav, s binární – používá jen čísla 0 a 1, a hexadecimální (šestnáctková) – používá čísla 0 až 9 a písmena A až F.
Obr. 1: Schéma zapojení úlohy
Obr. 2: Realizace úlohy
Na jeden celý port, vývody PortD.0 až PortD.7 zapojíme přes sériové rezistory 8 LED. Program bude střídavě na 1 sekundu rozsvěcovat liché a sudé LEDky.
Výsledný zdrojový soubor s komentáři je uveden níže. Hlavní program je velmi krátký, změnou číselné hodnoty zapisované do portu můžeme ovládat svit libovolných kombinací LED.
’---------------------------------------------------------------------------------------------------
’ PROGRAM LED-PORT-1.bas Ukázka ovládání celého portu-osmice vývodů
’ Program, kterým ovládáme 8 LED současně pomocí zápisu binárního
’ nebo hexadecemálního čísla. Dobu blikání v sekundách měníme příkazem Wait.
’---------------------------------------------------------------------------------------------------
$regfile = “m8def.dat” ‘soubor s deklaracemi
$crystal = 12000000 ‘kmitočet oscilátoru v Hz
Config PORTD = Output ‘nastav celý port PD (8 pinů) jako výstupní
’----------------------------------- HLAVNI PROGRAM --------------------------------------
Do ‘začátek smyčky Do-Loop
PORTD = &H55 ‘do PortD pošle 0101 0101
Wait 1 ‘čekej 1 sekundu
PORTD = &B10101010 ‘do PortD pošle 1010 1010
Wait 1 ‘čekej 1 sekundu
Loop ‘jdi na Do
’-------------------------- KONEC HLAVNIHO PROGRAMU -------------------------------
End
‘Popis programu
‘$regfile - říká překladači jaký typ mikroprocesoru použijeme
‘$crystal - informuje překladač o tom, jaká je frekvence oscilátoru v mikroprocesoru
‘Config PortD = Output
‘celý port (8 vývodů), na kterém jsou diody, bude nastaven jako výstup,
‘V hlavním programu je nekonečná smyčka Do-Loop,
‘v ní se každou sekundu (wait 1) změní úroveň na celém portu D podle zapsané hodnoty.
‘H55 je hexadecimální vyjádření čísla 01010101, nultý bit je vpravo, nejnižší bit je vlevo.
‘Zápis do portu se může provést i v binárním tvaru B10101010, hexadecimální tvar by byl HAA.
.