1. Semestrální úlohy

Vypracování musí obsahovat:

Součástí programu není zadání vstupních dat.
Data budou vložena podle pokynu cvičícího při kontrole funkčnosti programu.

ZADÁNÍ

  1. Sestavte program pro výpočet číslicového filtru podle vztahu
    Yn = k1 + Xn + k2 * Yn-1, kde k1=1/8, k2=7/8
    Naměřené nefiltrované hodnoty Xn jsou uloženy ve vnější paměti dat, za poslední platnou hodnotou Xn je číslo 0FFH. Počáteční hodnotu X0 uvažujte rovnu nule. Čísla Xn uvažujte bez znaménka a výsledný filtrovaný průběh uložte do vnitřní paměti dat.

  2. Sestavte program pro dělení 16bitového čísla, číslem 8bitovým. Dělenec uvažujte jako číslo se znaménkem, dělitel i podíl jsou ve vnější paměti dat.

  3. Sestavte program pro výpočet číslicového filtru podle vztahu:
    Yn = k1 * Xn + k2 * Xn-1 + k3 * Xn-2 +k4 * Xn-3 kde  k1=1/2, k2=1/4, k3=k4=1/8. Naměřené nefiltrované hodnoty veličiny Xn jsou ve vnitřní paměti dat a jejich deset. Počáteční hodnoty X0, X-1, X-2, X-3 uvažujte rovny nule. Čísla Xn uvažujte bez znaménka a výsledný filtrovaný průběh Yn uložte do vnější paměti dat.

  4. Sestavte program pro výpočet střední hodnoty průběhu. Naměřené hodnoty jsou ve vnější paměti dat a za poslední platnou hodnotou je číslo 0FFH. Naměřené hodnoty, z nichž se počítá střední hodnota uvažujte jako 8bitová čísla se znaménkem. Výsledek se uloží do vnější paměti dat.

  5. Ve vnější paměti dat je dvacet čísel, která reprezentují výkon elektrotepelného spotřebiče v časových intervalech po 2 sekundách. Sestavte program pro výpočet energie odebrané za 40 sekund. Využijte integrace podle lichoběžníkového pravidla. Výsledek se uloží do vnitřní paměti dat.

  6. Sestavte program pro výpočet průměrné hodnoty z osmi 16bitových čísel se znaménkem. Čísla jsou uložena ve vnější paměti dat tak, že nejdříve je uložen nižší a pak vyšší byte. Výsledek se uloží do vnější paměti dat.

  7. Sestavte program pro výpočet dráhy vozidla. Po 4 sekundách se snímá rychlost. Naměřené hodnoty rychlosti jsou uloženy ve vnější paměti dat a jedná se o 16bitová čísla (vždy nejdříve nižší a pak vyšší byte). Výstupem je posloupnost čísel, která udávají ujetou dráhu po 4 sekundách a ukládají se do vnější paměti dat. Vstupních dat je deset a jedná se o čísla bez znaménka. Využijte obdélníkové integrace.

  8. Sestavte program pro výpočet derivace průběhu, který je zadán deseti čísly ve vnější paměti dat. Jedná se o vzorky sejmuté po 2 sekundách. Výsledný průběh se uloží do vnější paměti dat. Vstupní i výstupní data se uvažují se znaménkem.

  9. Sestavte program, který nalezne maximum z pěti čísel, která jsou uložena ve vnitřní paměti dat. Vstupní hodnoty jsou čísla se znaménkem. Výsledné maximum se uloží do vnější paměti dat.

  10. Ve vnější paměti dat jsou uložena čtyři čísla bez znaménka. Sestavte program, který tato čísla srovná podle velikosti od nejmenšího a takto seřazená uloží do vnitřní paměti dat.

  11. Sestavte program, který plní následující funkci: ve vnější paměti dat je uloženo deset čísel od jedné do osmdesáti. Program přečte číslo z vnější datové paměti a nastaví jedničku v bitově adresovatelné oblasti paměti na pozici, která je dána právě přečteným číslem.

  12. Ve vnější paměti dat je uloženo 32 čísel. Čísla jsou uvažována se znaménkem. Sestavte program, který vypočte kolik procent čísel je kladných, kolik je záporných a kolik procent je nul. Výsledky se ukládají do vnitřní paměti dat.

  13. V bitově adresovatelné oblasti paměti jsou uchovány informace o znaménkách 16ti 8bitových čísel uložených ve vnější datové paměti. Sestavte program, který tato znaménka těmto číslům po řadě přiřadí, čísla srovná od min do max a výsledek umístí do vnější paměti dat za původní čísla.

  14. Sestavte program pro výpočet číslicového filtru podle vztahu
    Yn =k1 * Xn + k2 * Yn-1   kde k1=k2=1/2
    Naměřené nefiltrované hodnoty veličiny Xn jsou uloženy ve vnější paměti dat. Naměřených hodnot X je deset. Počáteční hodnotu Y0 uvažujte rovnu nule. Čísla Xn uvažujte se znaménkem a výsledný průběh uložte do vnitřní paměti dat.

  15. Napište program pro dělení 16bitového čísla, číslem 8bitovým. Dělitel uvažujte jako číslo se znaménkem. Dělenec, dělitel i podíl jsou ve vnější paměti dat.

  16. Sestavte program pro přibližný výpočet druhé odmocniny. Program pracuje tak, že vždy vydělí odmocňované číslo dvěma a vynásobí jedničku dvěma. Výsledky násobení a dělení se porovnají. Je-li podíl větší než násobek, dělení a násobení dvěma se opakuje a opět se provede porovnání. Je-li násobek větší než podíl vypočte se průměr z posledního podílu a násobku a tento průměr je výsledkem odmocniny. Odmocňované číslo i výsledek jsou ve vnější paměti dat.

  17. Vypočtěte pomocí programu vážený průměr ze sedmi čísel, kde váhy jednotlivých číslic jsou postupně 1/16, 3/16, 1/8, 1/16, 3/16, 1/8, 1/4. Čísla uvažujte bez znaménka. Sedmice vstupních hodnot a výstupní vážený průměr jsou ve vnější paměti dat.

  18. Ve vnější paměti dat je uloženo patnáct čísel, která reprezentují výkon elektromotoru měřený po 2 sekundách. Sestavte program pro výpočet energie odebrané za půl minuty. Využijte integrace podle obdélníkového pravidla s tím, že naměřené hodnoty výkonů mohou být kladná i záporná čísla. Výsledek se uloží do vnější paměti dat.

  19. Sestavte program pro výpočet číslicového filtru podle vztahu
    Yn = k1 * Xn +k2 * Yn-1 kde k1=k2=1/2
    Čísla X jsou uvažována bez znaménka, je jich deset a jsou 16itová. Počáteční hodnota Y0 je rovna nule. Vstupní hodnoty jsou uloženy do vnější paměti dat, vždy nejdříve nižší a pak vyšší byte. Výsledek uložte do vnitřní paměti dat.

  20. Ve vnější paměti dat je deset čísel, která představují ujetou dráhu po 4 sekundách. Sestavte program pro výpočet časového průběhu rychlosti, jsou-li vstupní i výstupní data 16bitová čísla. Ukládá se vždy nižší byte na nižší adresu. Výsledná posloupnost čísel se ukládá do vnější paměti dat.

  21. Sestavte program, který vykonává funkci dvouhodnotového regulátoru. Žádaná hodnota je konstantní, skutečná hodnota regulované veličiny může být kladná nebo záporná. Skutečné hodnoty regulované veličiny v deseti okamžicích jsou ve vnější paměti dat, do vnitřní paměti se ukládá výstup regulátoru pro daný časový okamžik. Pro kladnou regulační odchylku je výstup regulátoru ve stavu 1, pro zápornou ve stavu 0.

  22. Sestavte program, který nalezne minimum z pěti čísel, která jsou uložena ve vnější paměti dat. Vstupní hodnoty jsou 8bitová čísla se znaménkem. Výsledné minimum se uloží do vnitřní paměti dat.

  23. Ve vnitřní paměti dat jsou uložena čtyři čísla. Sestavte program, který tato čísla srovná podle velikosti od největšího, a takto seřazená uloží do vnější paměti dat. Čísla jsou uvažována bez znaménka.

  24. V bitově adresovatelné oblasti jsou některé bity nastaveny na jedničku. Sestavte program, který do vnější paměti dat uloží čísla, která odpovídají pořadí bitů nastavených na jedničku v bitově adresovatelné oblasti paměti.

  25. Ve vnější paměti dat je uloženo 15 čísel. Čísla jsou uvažována se znaménkem. Sestavte program, který přečte tato čísla a v bitově adresovatelné oblasti paměti nastaví nulu či jedničku na první až patnácté pozici podle toho, zda je příslušné číslo kladné či záporné.

  26. Ve vnitřní paměti programu je od adresy A umístěna posloupnost 15 čísel. Sestavte program, který přiřadí 15-ti číslům ve vnější datové paměti znaménka čísel v programové paměti tak, jak jdou postupně za sebou. Po přiřazení znaménka se každé číslo z vnější paměti dat přesune do vnitřní paměti dat a uloží se v opačném pořadí, něž v jakém tato čísla byla ve vnější paměti dat.

  27. V registru DPTR je uložena 16bitová hodnota bez znaménka max. 9999. Převeďte tuto hodnotu do kódu BCD. Výsledek uložte opět do registru DPTR.

  28. Ve vnější paměti dat je uloženo 16bitové číslo, jehož adresa je v DPTR. Napište program, který zrcadlově zamění jednotlivé bity a výsledek uloží do vnitřní paměti dat na adresu podle obsahu registru B.

  1. Sestavte program pro výpočet číslicového filtru podle vztahu
    Yn = k1 + Xn + k2 * Yn-1, kde k1=1/8, k2=7/8
    Naměřené nefiltrované hodnoty Xn jsou uloženy ve vnější paměti dat, za poslední platnou hodnotou Xn je číslo 0FFH. Počáteční hodnotu X0 uvažujte rovnu nule. Čísla Xn uvažujte bez znaménka a výsledný filtrovaný průběh uložte do vnitřní paměti dat.

  2. Sestavte program pro dělení 16bitového čísla, číslem 8bitovým. Dělenec uvažujte jako číslo se znaménkem, dělitel i podíl jsou ve vnější paměti dat.

  3. Sestavte program pro výpočet číslicového filtru podle vztahu:
    Yn = k1 * Xn + k2 * Xn-1 + k3 * Xn-2 +k4 * Xn-3 kde  k1=1/2, k2=1/4, k3=k4=1/8. Naměřené nefiltrované hodnoty veličiny Xn jsou ve vnitřní paměti dat a jejich deset. Počáteční hodnoty X0, X-1, X-2, X-3 uvažujte rovny nule. Čísla Xn uvažujte bez znaménka a výsledný filtrovaný průběh Yn uložte do vnější paměti dat.

  4. Sestavte program pro výpočet střední hodnoty průběhu. Naměřené hodnoty jsou ve vnější paměti dat a za poslední platnou hodnotou je číslo 0FFH. Naměřené hodnoty, z nichž se počítá střední hodnota uvažujte jako 8bitová čísla se znaménkem. Výsledek se uloží do vnější paměti dat.

  5. Ve vnější paměti dat je dvacet čísel, která reprezentují výkon elektrotepelného spotřebiče v časových intervalech po 2 sekundách. Sestavte program pro výpočet energie odebrané za 40 sekund. Využijte integrace podle lichoběžníkového pravidla. Výsledek se uloží do vnitřní paměti dat.

  6. Sestavte program pro výpočet průměrné hodnoty z osmi 16bitových čísel se znaménkem. Čísla jsou uložena ve vnější paměti dat tak, že nejdříve je uložen nižší a pak vyšší byte. Výsledek se uloží do vnější paměti dat.

  7. Sestavte program pro výpočet dráhy vozidla. Po 4 sekundách se snímá rychlost. Naměřené hodnoty rychlosti jsou uloženy ve vnější paměti dat a jedná se o 16bitová čísla (vždy nejdříve nižší a pak vyšší byte). Výstupem je posloupnost čísel, která udávají ujetou dráhu po 4 sekundách a ukládají se do vnější paměti dat. Vstupních dat je deset a jedná se o čísla bez znaménka. Využijte obdélníkové integrace.

  8. Sestavte program pro výpočet derivace průběhu, který je zadán deseti čísly ve vnější paměti dat. Jedná se o vzorky sejmuté po 2 sekundách. Výsledný průběh se uloží do vnější paměti dat. Vstupní i výstupní data se uvažují se znaménkem.

  9. Sestavte program, který nalezne maximum z pěti čísel, která jsou uložena ve vnitřní paměti dat. Vstupní hodnoty jsou čísla se znaménkem. Výsledné maximum se uloží do vnější paměti dat.

  10. Ve vnější paměti dat jsou uložena čtyři čísla bez znaménka. Sestavte program, který tato čísla srovná podle velikosti od nejmenšího a takto seřazená uloží do vnitřní paměti dat.

  11. Sestavte program, který plní následující funkci: ve vnější paměti dat je uloženo deset čísel od jedné do osmdesáti. Program přečte číslo z vnější datové paměti a nastaví jedničku v bitově adresovatelné oblasti paměti na pozici, která je dána právě přečteným číslem.

  12. Ve vnější paměti dat je uloženo 32 čísel. Čísla jsou uvažována se znaménkem. Sestavte program, který vypočte kolik procent čísel je kladných, kolik je záporných a kolik procent je nul. Výsledky se ukládají do vnitřní paměti dat.

  13. V bitově adresovatelné oblasti paměti jsou uchovány informace o znaménkách 16ti 8bitových čísel uložených ve vnější datové paměti. Sestavte program, který tato znaménka těmto číslům po řadě přiřadí, čísla srovná od min do max a výsledek umístí do vnější paměti dat za původní čísla.

  14. Sestavte program pro výpočet číslicového filtru podle vztahu
    Yn =k1 * Xn + k2 * Yn-1   kde k1=k2=1/2
    Naměřené nefiltrované hodnoty veličiny Xn jsou uloženy ve vnější paměti dat. Naměřených hodnot X je deset. Počáteční hodnotu Y0 uvažujte rovnu nule. Čísla Xn uvažujte se znaménkem a výsledný průběh uložte do vnitřní paměti dat.

  15. Napište program pro dělení 16bitového čísla, číslem 8bitovým. Dělitel uvažujte jako číslo se znaménkem. Dělenec, dělitel i podíl jsou ve vnější paměti dat.

  16. Sestavte program pro přibližný výpočet druhé odmocniny. Program pracuje tak, že vždy vydělí odmocňované číslo dvěma a vynásobí jedničku dvěma. Výsledky násobení a dělení se porovnají. Je-li podíl větší než násobek, dělení a násobení dvěma se opakuje a opět se provede porovnání. Je-li násobek větší než podíl vypočte se průměr z posledního podílu a násobku a tento průměr je výsledkem odmocniny. Odmocňované číslo i výsledek jsou ve vnější paměti dat.

  17. Vypočtěte pomocí programu vážený průměr ze sedmi čísel, kde váhy jednotlivých číslic jsou postupně 1/16, 3/16, 1/8, 1/16, 3/16, 1/8, 1/4. Čísla uvažujte bez znaménka. Sedmice vstupních hodnot a výstupní vážený průměr jsou ve vnější paměti dat.

  18. Ve vnější paměti dat je uloženo patnáct čísel, která reprezentují výkon elektromotoru měřený po 2 sekundách. Sestavte program pro výpočet energie odebrané za půl minuty. Využijte integrace podle obdélníkového pravidla s tím, že naměřené hodnoty výkonů mohou být kladná i záporná čísla. Výsledek se uloží do vnější paměti dat.

  19. Sestavte program pro výpočet číslicového filtru podle vztahu
    Yn = k1 * Xn +k2 * Yn-1 kde k1=k2=1/2
    Čísla X jsou uvažována bez znaménka, je jich deset a jsou 16itová. Počáteční hodnota Y0 je rovna nule. Vstupní hodnoty jsou uloženy do vnější paměti dat, vždy nejdříve nižší a pak vyšší byte. Výsledek uložte do vnitřní paměti dat.

  20. Ve vnější paměti dat je deset čísel, která představují ujetou dráhu po 4 sekundách. Sestavte program pro výpočet časového průběhu rychlosti, jsou-li vstupní i výstupní data 16bitová čísla. Ukládá se vždy nižší byte na nižší adresu. Výsledná posloupnost čísel se ukládá do vnější paměti dat.

  21. Sestavte program, který vykonává funkci dvouhodnotového regulátoru. Žádaná hodnota je konstantní, skutečná hodnota regulované veličiny může být kladná nebo záporná. Skutečné hodnoty regulované veličiny v deseti okamžicích jsou ve vnější paměti dat, do vnitřní paměti se ukládá výstup regulátoru pro daný časový okamžik. Pro kladnou regulační odchylku je výstup regulátoru ve stavu 1, pro zápornou ve stavu 0.

  22. Sestavte program, který nalezne minimum z pěti čísel, která jsou uložena ve vnější paměti dat. Vstupní hodnoty jsou 8bitová čísla se znaménkem. Výsledné minimum se uloží do vnitřní paměti dat.

  23. Ve vnitřní paměti dat jsou uložena čtyři čísla. Sestavte program, který tato čísla srovná podle velikosti od největšího, a takto seřazená uloží do vnější paměti dat. Čísla jsou uvažována bez znaménka.

  24. V bitově adresovatelné oblasti jsou některé bity nastaveny na jedničku. Sestavte program, který do vnější paměti dat uloží čísla, která odpovídají pořadí bitů nastavených na jedničku v bitově adresovatelné oblasti paměti.

  25. Ve vnější paměti dat je uloženo 15 čísel. Čísla jsou uvažována se znaménkem. Sestavte program, který přečte tato čísla a v bitově adresovatelné oblasti paměti nastaví nulu či jedničku na první až patnácté pozici podle toho, zda je příslušné číslo kladné či záporné.

  26. Ve vnitřní paměti programu je od adresy A umístěna posloupnost 15 čísel. Sestavte program, který přiřadí 15-ti číslům ve vnější datové paměti znaménka čísel v programové paměti tak, jak jdou postupně za sebou. Po přiřazení znaménka se každé číslo z vnější paměti dat přesune do vnitřní paměti dat a uloží se v opačném pořadí, něž v jakém tato čísla byla ve vnější paměti dat.

  27. V registru DPTR je uložena 16bitová hodnota bez znaménka max. 9999. Převeďte tuto hodnotu do kódu BCD. Výsledek uložte opět do registru DPTR.

  28. Ve vnější paměti dat je uloženo 16bitové číslo, jehož adresa je v DPTR. Napište program, který zrcadlově zamění jednotlivé bity a výsledek uloží do vnitřní paměti dat na adresu podle obsahu registru B.