Verze 30.11.2006

Školní programy v assembleru pro procesory 8051

Na střední škole jsme se učili programovat procesory 8051. Používali jsme k tomu assembler As51 [285kB]. Zde jsou některé ukázkové programy:

Součet 4 místných čísel

Jednoduchý podprogram, který sečte dvě čtyřmístná čísla ve formátu BCD.
Obsah souboru "sum4mc.asm":


Rozdíl 4 místných čísel

Jednoduchý podprogram, který spočítá rozdíl dvou čtyřmístných čísel ve formátu BCD.
Obsah souboru "rozdil4m.asm":


Součet řady 4 místných čísel

Podprogram pro součet řady (ve vnější paměti dat) čtyřmístných čísel ve formátu BCD. Výsledek je uložen jako 32bitové číslo.
Obsah souboru "sum_rady.asm":


Sloučení řady 4 místných čísel

Podprogram, který sloučí řadu (ve vnější paměti dat) 2bytových čísel ve formátu BCD tak, že každé druhé číslo odečte a ostatní čísla přičte. Výsledek je 4bytový.
Obsah souboru "sluradu1.asm":


Součet dvou řad (stejné délky) 4 místných čísel

Podprogram, který sečte odpovídající prvky dvou řad (Ai, Bi) a výsledkem je řada Ci. Vstupní čísla jsou čtyřmístná v BCD kódu, výstupní čísla jsou šestimístná, rovněž v BCD kódu. Všechny řady mají stejný počet prvků a jsou ukončené značkou #0FFH.
Obsah souboru "slurady.asm":


Součet dvou řad (různé délky) 4 místných čísel

Podprogram, který sečte odpovídající prvky dvou řad (Ai, Bi) a výsledkem je řada Ci. Vstupní čísla jsou čtyřmístná v BCD kódu, výstupní čísla jsou šestimístná, rovněž v BCD kódu. Všechny řady jsou ukončené značkou #0FFH. Kratší řada se jakoby doplnění nulami, aby bylo možné využít i čísla z delší řady.
Obsah souboru "sum2r2.asm":


Blikající LEDka

LED dioda připojená na pin P1.0 bliká s periodou 1 sekunda.
K tomuto programu navíc potřebujete knihovnu "delay.inc", jejíž obsah je uveden na konci této stránky.
Obsah souboru "led.asm":


Běhající světlo po osmi LEDkách

Na port P1 je připojených 8 LEDek. Jestli jste někdy viděli seriál Knight Rider, tak jste si jistě všimli běhajícího světla vepředu na autě. Tento program vytváří podobný vizuální efekt.
K tomuto programu navíc potřebujete knihovnu "delay.inc", jejíž obsah je uveden na konci této stránky.
Obsah souboru "led2.asm":


Řízení dopravy na křižovatce světelnými signály

Na pin P1.7 připojte červenou LED semaforu č. 1.
Na pin P1.6 připojte žlutou LED semaforu č. 1.
Na pin P1.5 připojte zelenou LED semaforu č. 1.
Na pin P1.4 připojte červenou LED semaforu č. 2.
Na pin P1.3 připojte žlutou LED semaforu č. 2.
Na pin P1.2 připojte zelenou LED semaforu č. 2.
Na pin P1.0 připojte tlačítko, kterým budete zapínat neřízenou dopravu (blikající žlutá světla).
K tomuto programu navíc potřebujete knihovnu "delay.inc", jejíž obsah je uveden na konci této stránky.
Obsah souboru "doprava.asm":


Knihovna pro vytváření časového zpoždění

Voláním procedury DEL1S vytvoříte zpoždění 1 sekunda.
Voláním procedury DEL800 vytvoříte zpoždění 800 milisekund.
Voláním procedury DEL400 vytvoříte zpoždění 400 milisekund.
Voláním procedury DEL200 vytvoříte zpoždění 200 milisekund.
Voláním procedury DEL100 vytvoříte zpoždění 100 milisekund.
Obsah souboru "delay.inc":