MIKROPOČÍTAČOVÉ SYSTÉMY

Rozměr: px
Začít zobrazení ze stránky:

Download "MIKROPOČÍTAČOVÉ SYSTÉMY"

Transkript

1 MIKROPOČÍTAČOVÉ SYSTÉMY Programování mikrořadiče AT89C2051 Vytištěno z dokumentů volně dostupných na Webu

2

3 Způsob programování a oživení mikroprocesoru 8051 mhtml:file://d:\dokumenty\mikroprocesory\způsob%20programování%20a%20ožive... Stránka č. 1 z Způsob programování a oživení mikroprocesoru 8051 Programování,testování a oživování mikroprocesoru je možné několika způsoby. Každému konstruktérovi může vyhovovat odlišný postup vývoje budoucího zažízení řízeného mikroprocesorem. V současné době jsou nejobvyklejšími postupy asi tyto: programování mikroprocesoru ve speciální "programovací krabičce" Jedná se o různé tzv. vývojové kity, které mají vyvedenu patici pro zasunutí mikroprocesoru nebo je v nich mikroprocesor přímo zapájen.krabička obsahuje podpůrné obvody mikroprocesoru jako je reset obvod, obvod oscilátoru atd.na krabičce tak potom bývá vyvedeno RESET tlačítko atd.součástí kitu je i speciální programovací software. Nevýhodou těchto kitů je to,že je lze použít jen s konkrétními typy mikroprocesorů, pro které byly navrženy.dále je konstruktér ochuzen obvykle o sériový kanál nebo jeden celý port, přes který se kit připojuje k sériovému portu PC, na kterém se provádí programování.navíc nemusí být všechny vývody mikroprocesoru externě vyvedeny a nejsou tak konstruktérovi k dispozici. Výhodou je jednoduchost a rychlost programování. Příkladem tohoto prostředku je např. systém EASY51 firmy EASYsoft. programování mikroprocesoru za pomocí různých emulátorů Emulátor mikroprocesoru 8051 slouží k tvorbě a odlaďování programů pro něj, "ale bez něj". Vlastní emulátor je navržen tak, aby v plné šíři emuloval (t.j. napodobil) vlastnosti mikroprocesoru ve vyvíjeném zařízení. Řada pracovních režimů umožňuje jeho použití nejrůznějšími způsoby a to i tehdy, kdy vyvíjené (zákaznické) zařízení není zcela zkompletováno.připojení emulátoru k vyvíjenému zařízení se provádí emulačním kabelem, který vychází z emulátoru a bývá zakončen několikapinovou zástrčkou (vidlicí) ve formě pouzdra obvodu, která může být zastrčena přímo do patice místo původního (nebo dosud vůbec nezapojeného) mikroprocesoru ve vyvíjeném zařízení. Místo kabelu může být celý obvod emulátoru navržen jako jednotka, zakončená několikapinovou vidlicí (dle typu mikroprocesoru) k přímému zasunutí do patice, pokud tomu dovolí prostorové podmínky. Emulátor může být pomocí propojovacích míst (nebo softwarově) nakonfigurován tak, že představuje logický ekvivalent původního mikroprocesoru ve všech jeho možných stavech. Obslužný software emulátoru obvykle umožňuje provést kontrolu vyvíjeného programu s ohledem na vzájemnou spolupráci s periferiemi, což by bylo normálně možné provést pouze pomocí osciloskopu (toto platí i pro 1.metodu programování s program."krabičkou"). Dále umožňuje zobrazit a měnit obsahy registrů, obsahy pamětí, simulovat paměti ROM nebo RAM, spouštět a zastavit program na zvolených místech, zobrazit a změnit stavové slovo systému atd. Z výše uvedených faktů vyplývá, že k samotnému přenesení(nahrání) programu do mikroprocesoru je ještě potřeba klasický programátor (ať už univerzální nebo pro konkrétní typ mikroprocesoru). Nevýhodou tohoto způsobu programování jsou určitá omezení (byť minimální), např. pevně daný krystal, výhodou je jednoduchost ladění programů. Příkladem tohoto prostředku je emulátor T-EMU52 firmy ELNEC. programování mikroprocesoru pomocí univerzálního programátoru Tento způsob využívá k programování "univerzální" programátor, který se připojuje k sériovému nebo méně často k paralelnímu portu PC. Programátor je vybaven pouze samotnou paticí pro zasunutí mikroprocesoru, obvykle je patice univerzální pro několik typů mikroprocesorů (s různým počtem vývodů). Neposkytuje mikroprocesoru žádné podpůrné obvody. V programátoru se tak provádí jen samotné programování. Podpůrné obvody je nutné mikroprocesoru zajistit na jiném místě, nejlépe tedy na desce s nepájivým kontaktním polem, kde lze celé zařízení při vývoji pohodlně odladit. Nevýhodou je náročnější programování - nikde nevídíte, co se v procesoru právě děje (stavy registrů, portů atd.) a jestli už proběhla určitá část programu apod. Obvyklou metodou, jak indikovat dosažení určité části programu nebo požadované funkce, je připojit k portu mikroprocesoru LEDku (LEDky), a v programu je na požadovaném místě ovládat (rozsvěcovat). Při tomto způsobu programování je nepříjemná nutnost přendávat mikroprocesor mezi programátorem a nepájivým kontaktním polem při sebemenší změně v programu. Dále je nutné se při programování přepínat mezi obslužným programem programátoru a textovým editorem, ve kterém píšeme program. Nevýhodou je rovněž obvykle vyšší cena univerzálního programátoru. Výhoda spočívá v tom, že konstruktér není ochuzen o žádnou část mikroprocesoru, může se zvolit takový krystal, jaký potřebuje, díky univerzálnímu programátoru může využít široké spektrum typů mikroprocesorů. Příkladem takového programátoru budiž programátor ATMega firmy MITE nebo 51&AVRprog firmy ELNEC. K tomuto způsobu programování náleží i další alternativa a to v podobě toho, že místo univerzálního programátoru se používá programátor vyvinutý jen pro určitý typ nebo skupinu mikroprocesorů. V případě skupiny je to obvykle pro mikroprocesory od jednoho výrobce. Využití takovéhoto programátoru je v současnosti stále častější, protože jak bylo zmíněno výše, univerzální programátory jsou poměrně drahé. Naopak programátory pro určitý typ mikroprosorů jsou levné a amatersky poměrně snadno vyvinutelné a vyrobitelné. Množství konstrukcí takovýchto programátorů se neustále zvyšuje, jak je možné vysledovat z odborných časopisů nebo internetu. Jistě potěší, že mnoho konstrukcí je českého původu, jak se můžete přesvědčit i na této stránce, kde je několik takových konstrukcí uvedeno (nepřekvapí, že všechny jsou vyvinuty pro velmi oblíbené mikroprocesory firmy ATMEL).

4 Způsob programování a oživení mikroprocesoru 8051 mhtml:file://d:\dokumenty\mikroprocesory\způsob%20programování%20a%20ožive... Stránka č. 2 z Postup při programování 3.metodou: Napíšete tedy program v nějakém textovém editoru, který do výsledného souboru nepřidává své vlastní formátovací informace, lze tedy použít např.poznámkový blok, WordPad (bez formátování), textové editory Windows Commandera, Norton Commandera atd. Potom musíte využít služeb některého z tzv.překladačů. Tento překladač zajistí kontrolu a převod programu napsaného v jazyce symbolických adres do souboru ve formátu hex. V tomto kroku dochází k náhradě symbolických označení, návěští atd. jejich skutečnými adresami, program se jednoduše řečeno převede do formy strojového kódu srozumitelného mikroprocesoru. Tento hex soubor se potom načte do obslužného programu programátoru a programátor nahraje program do samotného mikroprocesoru. Podrobný popis vývoje programů pro 8051, způsob programování v jazyce symbolických adres a postup při překladu programů najdete zde. Pro jednoduché programy a zkoušení kratších bloků programu bývá dobré využít schopností a služeb tzv. simulátoru mikroprocesoru. Jedná se o program, který běží na PC a simuluje funkci mikroprocesoru,aniž byste ho měli fyzicky k dispozici.jako vstup simulátoru se určí hex soubor, v simulátoru se dále mohou nastavit další parametry simulovaného mikroprocesoru (hod.kmitočet, ext/int paměť, počáteční obsah (stav) registrů, stavového slova, portů atd.).program v simulátoru lze obvykle spustit tak, že proběhne celý tak jak jdou instrukce za sebou nebo v tzv.krokovém režimu, kdy se provede vždy jen jedna instrukce a čeká na další pokyn uživatele ke spuštění další instrukce. Lze tak přehledně sledovat, co která instrukce provádí a jak se mikroprocesor po provedení dané instrukce chová.aby bylo možné sledovat stavy jednotlivých funkčních částí mikroprocesoru (a k tomu je simulátor určen především),je obrazovka simulátoru obvykle členěna do několika oken zaměřených na danou část mikroprocesoru. Lze tady sledovat zejména dobu vykonávání programu nebo i jednotlivých intrukcí,stavy registrů,portů, obsah paměti dat atd. a samozřejmě také sledovat, která instrukce se právě provedla.kromě toho lze i stavy portů, obsahy registrů atd. nastavovat. Jeden takovýto simulátor vyvinula královehradecká společnost MITE, zabývající se mikroprocesorovou technikou, jejíž produkt lze stáhnout dle odkazu na hlavní stránce nebo i zde. Chcete si vyrobit vlastní programátor mikroprocesorů 8051? Vyberte si některou konstrukci v následujícím seznamu. Zpět na hlavní stránku povídání Copyright Michal Fuksa 2001

5 Vývoj programů, programování v jazyce symbolických adres mhtml:file://d:\dokumenty\mikroprocesory\vývoj%20programů,%20programování%... Stránka č. 1 z Vývoj programů, programování v jazyce symbolických adres Vývoj programů Když napíšete nějaký program pro 8051, je nutné jej přeložit a nahrát jej programátorem do samotného mikroprocesoru. O způsobu nahrání programu do mikroprocesoru a jiných alternativách odzkoušení napsaného programu jste se mohli dočíst zde. Na této stránce se budeme zabývat tím, jak se ten nějaký program vlastně píše a co se skrývá pod slovy "přeložení programu". Při vývoji programu pro kterýkoliv typ mikroprocesoru je třeba znát nejen jeho architekturu a možnosti jeho instrukčního souboru, ale také možnosti programového vybavení, ve kterém budeme program vytvářet. Programovým vybavením myslíme program nebo spíše několik programů, které budeme mít uloženy v nějakém adresáři na osobním počítači PC a pomocí nichž program pro 8051 napíšeme, přeložíme, třeba i odzkoušíme a nakonec většinou i nahrajeme do mikroprocesoru. Vše bude vysvětleno dále. Prvním krokem v procesu vývoje programu je jeho vymyšlení a napsání. Vymyšlení bývá úkol nejtěžší. Programátor musí vědět co chce udělat a jak to udělat. My se budeme bavit jen o samotném napsání programu. To, jakým způsobem budeme program zapisovat, záleží na tom, jaký programovací jazyk si zvolíme. Nejpoužívanějším jazykem je jazyk symbolických adres (zkr. JSA), někdy nepřesně označovaný jako assembler. Assembler je totiž program, který převádí zdrojový program napsaný v JSA na další stupeň v procesu překladu - viz dále. Ono je totiž jednodušší říct: "...napsaný v assembleru" než "...napsaný v jazyce symbolických adres". Dále v textu budu namísto slova assembler používat slovo překladač - záleží na vás, které slovo si více oblíbíte. Jazyk symbolických adres má nejblíže strojovému kódu mikroprocesoru, při programování v něm dosáhneme nejefektivnějšího programu - bude rychlý a paměťově nejméně náročný. Jinou možností je využít některého vyššího programovacího jazyka jako je C, Pascal nebo Basic. Pro programátora je vytváření programu v tomto jazyce jednodušší, přehlednější, nemusí se učit nový jazyk, pokud již některý vyšší prog.jazyk zná. Tento luxus je ale za cenu toho, že takovýto program bude o něco pomalejší a paměťově neoptimalizovaný, než kdyby byl napsán v JSA. Jde o to, že program napsaný v C nebo Pascalu musí být stejně přeložen do JSA automaticky pomocí programu zvaného kompiler. "Inteligence" převodu do JSA je tak dána vyspělostí daného kompileru a programátor ji sám obvykle nemůže nijak ovlivnit. My se budeme dále bavit pouze o práci a psaní programů v JSA, psaní programů v C nebo Pascalu se totiž provádí většinou v nějakém speciálním editoru, jehož součástí bývá i daný kompiler. K úspěšné práci nám stačí i pouhý kompiler, zdrojový program pak píšeme v běžném text.editoru (viz níže). Tady je dobré poznamenat, že vývojová prostředí pro vyšší prog.jazyky (editor+kompiler+další komponenty) jsou v naprosté většině nabízeny jako komerční placené produkty, jejíž součástí bývá i dokumentace, mimojiné obsahující přesný postup práce. Zdrojový program (tj. program zapsaný ve zvoleném program.jazyce, v našem případě JSA) tedy napíšeme v nějakém textovém editoru, který do výsledného souboru nepřidává své vlastní formátovací nebo řídící informace, lze tedy použít např. Poznámkový blok z Windows 95/98/Me/NT/2000/XP, textový editor integrovaný v Norton Commanderu atd. Můžeme použít i další programy jako WordPad nebo MS Word všech verzí, výsledný dokument ale musíme uložit jako "čistý text", tj. v případě WordPadu zvolit při ukládání typ souboru textový dokument - formát MS-DOS, v případě MS Wordu zvolit typ souboru MS-DOS text nebo něco podobného. Druhý krokem je přeložení programu. Máme tedy připravený zdrojový program (textový soubor) v JSA. Teď musíme využít služeb některého z tzv.překladačů. Tento překladač zajistí kontrolu správnosti zápisu zdrojového programu a jeho převod do souboru ve formátu jakéhosi modulu. Vzniklý soubor bude mít příponu OBJ. Současně s ním se vytvoří i textový soubor s příponou LST, což je protokol o průběhu překladu. Pokud byly při překladu objeveny chyby (např. chyba syntaxe, duplicitní návěští apod.) - což překladač po překladu zahlásí, jsou v tomto souboru v rámci výpisu zdroj.programu chyby označeny a charakterizovány. Je zde dále možno nalézt další informace o programu (tabulka symbolů, rozmístění v paměti atd.) Pravidla správného zápisu programu budou popsána dále. Tady se musím blíže zmínit o vytvořeném souboru s příponou OBJ, který je výše označen jako modul a jež souvisí s tzv. modulární tvorbou programů. Modulární programování může být výhodné při psaní rozsáhlých programů - mohou práci zjednodušit a zpřehlednit. Jde o to, že si programátor může zamýšlený program rozdělit do několika samostatných částí, které mohou do jisté míry fungovat nezávisle na sobě. Bude psát např. program pro realizaci mikroprocesorem řízeného voltmetru. Program si může rozdělit třeba na 3 části - první bude řešit zpracování výstupů z A/D převodníku, druhá bude řešit obsluhu displeje, třetí bude řešit snímání skupiny tlačítek. Jak je vidět, druhá a třetí část by mohly mít univerzální použití i v jiných aplikacích (programech). Proto si programátor všechny 3 části zapíše do 3 samostatných souborů (=modulů). Musí pak vyřešit vzájemnou vazbu mezi moduly - tj. správné definování vstupů a výstupů modulů a předávání dat mezi jednotlivými moduly. V našem případě je tedy důležité nadefinovat vstupy u 2.modulu, výstupy u 3.modulu, a v 1.modulu zajistit předání dat do 2.modulu a přijetí dat z 3.modulu. S jednotlivými moduly se přitom pracuje stejně jako kdybycho měli jeden samostatný soubor (modul). Programátor si tak může časem vyvořit celou knihovnu modulů, řešících dílčí oblasti vyvíjených aplikací (knihovní moduly mají příponu OBJ nebo LIB). Jak z předchozího vyplývá, při definování v/v a předávání dat budeme potřebovat nějaké další, speciální instrukce, kterými řekneme překladači, co má dělat. Těmto instrukcím se říká pseudoinstrukce a představují tzv. direktivy překladače. Protože tyto pseudoinstrukce nejsou řádnými intrukcemi mikroprocesoru, při běhu programu se nevykonávají - plní svojí funkci pouze při překladu zdroj.programu a říkají překladači, co má při překladu dělat.

6 Vývoj programů, programování v jazyce symbolických adres mhtml:file://d:\dokumenty\mikroprocesory\vývoj%20programů,%20programování%... Stránka č. 2 z Pseudoinstrukce se používají i k mnoha dalším činnostem, můžeme pomocí nich dělat následující: přiřazovat symboly konkrétním objektům, inicializovat nebo rezervovat paměťový prostor, ovládat čítač instrukcí (PC) atd. Podrobně budou direktivy překladače popsány níže. Pokračujeme-li v druhém kroku, máme tedy vyvořen soubor s příponou OBJ nebo několik těchto souborů, v případě, že náš program sestává z několika modulů. Pokud máme 1 soubor, můžeme rovnou přistoupit k přechodu na konečnou formu a tou je soubor ve formátu HEX, což je i přípona vytvořeného souboru. Pokud máme souborů (modulů) několik, je nutné je ještě pospojovat do jednoho výsledného souboru pomocí programu, jemuž se říká linker. Jeho výstupem je jediných soubor opět s příponou OBJ nebo ABS. Soubor s příponou HEX je již konečný formát, ve kterém se program nahrává pomocí programátoru do samotného mikroprocesoru. Můžete se setkat s několika druhy formátu HEX, definovaný různými firmami, nejznámější jsou Intel-HEX a Motorola-HEX. Pro nás je důležitý formát Intel-HEX, pokud konvertovací program z OBJ na HEX umožňuje volit mezi druhy, musí být nastaven Intel-HEX. Když se podíváte nějakým ASCII prohlížem (např. z Windows Commanderu nebo třeba i Poznámkovým blokem) na obsah vyvtořeného HEX souboru, uvidíte, že soubor je tvořen několika řádky začínající dvojtečkou, za níž následuje vždy několik čísel v 16-kové soustavě. Když budete chvilku bádat, zjistíte, že lze z čísel vyčíst zapsaný program. Bližší popis by zabral spoustu místa a pro většinu programátorů jsou tyto informace zbytečné, proto případné zájemce odkazuji na tuto stránku, kde je formát Intel-HEX řádně rozebrán. Ve stručném souhrnu lze říci, že při překladu dochází k náhradě symbolických označení skutečnými objekty a hodnotami, přiřazení skutečných adres návěštím atd. - program se jednoduše řečeno převede do formy strojového kódu srozumitelného mikroprocesoru. Třetím krokem je nahrání programu ve formátu HEX do obslužného programu hardwarového programátoru a následné přehrátí do samotného mikroprocesoru. Pokud k vývoji aplikací využíváte nějaký vývojový kit (viz 1.bod dle této stránky), pravděpodobně nemusíte provádět překlad programu do HEX formátu (je prováděn automaticky na pozadí vývoj.prostředí). Celý proces vývoje programu je dobře vidět na následujících obrázcích. Program, který je dle obrázku vlevo vytvářen, byl pro lepší ilustraci pojmenován DISPLEJ. Na obrázku vpravo je postup vývoje programu při modulárním programování. Abych řekl pravdu, dosud jsem žádný program pomocí dělení na moduly nenapsal, vždy jsem vystačil s jedním programem (modulem). Ve vytvořené knihovně modulů může člověk časem ztratit přehled, pokud si ji řádně nezdokumentuje. Ale to je věc názoru.

7 Vývoj programů, programování v jazyce symbolických adres mhtml:file://d:\dokumenty\mikroprocesory\vývoj%20programů,%20programování%... Stránka č. 3 z Programování v jazyce symbolických adres Co to je JSA? Jazyk symbolických adres (JSA) musí mít, tak jako každý programovací jazyk, určitá pravidla zápisu a další obecné konvence platné pro daný procesor. Jak už z názvu tohoto jazyka vyplývá, k popisu umístění jednotlivých instrukcí a jejich operandů v paměti se neužívá konkrétních adres, ale pouze jejich symbolického označení (návěští) a to navíc pouze ve vybraných - významných místech programu. Každá instrukce programu musí být umístěna na přesně definovaném místě paměti procesoru. V průběhu vytváření programu ale stále dochází k mnoha změnám (doplňování, přemísťování, vypouštění instrukcí), které by při absolutním adresování každé instrukce znamenaly nutnost trvale přepisovat ovlivněné adresy - což by byla nepředstavitelná dřina. Právě systém symbolů dovoluje programátorovi nestarat se o detailní správu paměťového prostoru na úrovni každé instrukce. To za něj automaticky provádí překladač, jemuž dává programátor pokyny prostřednictvím již zmíněných pseudoinstrukcí a které překladači umožňují orientaci v systému symbolických i reálných adres. Praktickým přínosem JSA je to, že v celém zdrojovém programu označujeme symbolickými návěštími pouze některé, zvlášť významné adresy. K takovým adresám patří začátek programu, cílové adresy skoků a volání, vstupní body podprogramů atd. Zápis zdrojového programu v JSA má určitý formát, který je částečně závislý na typu mikroprocesoru, pro který program píšeme a také na vstupních požadavcích překladače. Formát zdrojového programu JSA Program v JSA zapisujeme po řádcích, kdy na jednom řádku může být jen jedna instrukce nebo pseudoinstrukce. Každý řádek se může skládat ze 4 částí, které je dobré od sebe pro lepší přehlednost oddělovat minimálně jednou mezerou, lépe však několika mezerami nebo tabulátorem. Těmito čtyřmi částmi jsou:

8 Vývoj programů, programování v jazyce symbolických adres mhtml:file://d:\dokumenty\mikroprocesory\vývoj%20programů,%20programování%... Stránka č. 4 z návěští nebo symbolické jméno 2 - instrukce nebo pseudoinstrukce (mnemonická zkratka) 3 - operandy 4 - komentář Příklad pro instrukci START: MOV A,P0 ;text komentáře Příklad pro pseudoinstrukci STOVKA EQU 64H ;text komentáře Jak je z příkladů vidět, návěští se od symbolického jména odlišuje tím, že má nakonci dvojtečku. Instrukce může mít 0 až 3 operandy, pseudoinstrukce má vždy alespoň 1 operand, případně výčet operandů (DB,DW). Obecná pravidla při zápisu programu Symbolické jméno musí začínat písmenem nebo speciálním znakem s výjimkou otazníku a mezery. Jméno může tvořit teoreticky až 255 znaků, ale rozlišuje se pouze prvních 31 znaků. Pokud se tedy v programu vyskytnou dvě dlouhá různá jména, ale jež budou mít prvních 31 znaků stejné, překladač (assembler) zahlásí chybu. Symbolická jména mohou být pouze před pseudoinstrukcemi přiřazení, tj. EQU, SET, CODE, DATA, IDATA, XDATA, BIT a SEGMENT. Jako symbolická jména nemohou být použity vyhrazené symboly, kterými jsou mnemonické zkratky instrukcí, překladačem vyhrazené symboly (P0,A,B,R0,R1,TMOD,...), názvy direktiv (pseudointrukcí). Objektmi, kterým se přidělují symbolická jména, bývají překladačem vyhrazené symboly registrů (A,B,PSW,...) a bitů (C,F0,P1.1,...), případně další symboly - $ aktuální stav čítače instrukcí nepřímá adresa, # přímá data. Návěští je též symbol, který se od předchozího symb.jména odlišuje tím, že je ukončeno dvojtečkou - např. START: Jméno návěští se nesmí shodovat s již použitým symbolickým jménem. Návěští může být umístěno na samostatném řádku, nejčastěji se ale umísťuje před instrukci (na jednom řádku) a může být i před pseudoinstrukcemi DS, DBIT, DB a DW. Návěští nesmí být v jednom programu definováno vícenásobně - nemůže být několik návěští se stejným jménem, opět se i zde rozlišuje prvních 31 znaků (max. 255 znaků včetně dvojtečky). Návěští může obsahovat ze speciálních znaků pouze otazník a dolní podtržítko. Jako návěští nemohou být použity vyhrazené symboly (stejně jako symbolických jmen). Hlavní funkcí návěští je to, že fungují jako záložky určitých míst v programu, na které se přechází pomocí instrukcí skoků/volání - tj. xjmp,xcall,jb,jnb,jc,jnc,jz,jnz,jbc,cjne,djnz. S návěštím pracuje obdobně jako se symbolickým jménem. Operand - může jím být konstanta (přímá data), přímá, nepřímá, relativní a bitová adresa, vyhrazený symbol (registr nebo bit). Počet a typ operandů je dán použitím konkrétní instrukce (viz instrukční soubor), formát operandů u pseudointrukcí bude popsán dále. Tady si ještě připomeneme, že konstanta (přímá data) vždy začíná znakem # a může být zapsána v binární (např B), hexadecimální (např. 0FFBCH) nebo dekadické (např. 127D) soustavě. Typ soustavy označuje poslední znak v čísle - B, H a D. V případě dekadické soustavy nemusí být znak D zapisován - stačí napsat jen např U hexadecimální soustavy je třeba mít na paměti, že konstanta musí vždy začínat číslicí, tzn. že pokud konstanta začíná znakem A až F, je třeba před ní napsat ještě 0. Komentář je libovolný informativní text, jehož začátek je uvozen středníkem. V komentáři, jak už název napovídá, by se měl vyskytovat popis toho, co daná instrukce nebo část programu provádí nebo k čemu vlastně daná část slouží. Komentáře je výhodné používat proto, aby byl program srozumitelný a přehledný nejen pro samotného programátora, ale např. i pro jeho spolupracovníky atd. a to i po delší době od napsání programu. Zápis komentářů do programu samozřejmě není povinný. Maximální délka komentáře je 255 znaků včetně středníku. Komentář může tvořit i samostatný řádek programu, což se může hodit v případě, že je do programu nutné vložit rozsáhlý komentář (nesmíme ale zapomenout napsat na začátek každého takového řádku středník). Jeden řádek programu může mít maximální délku 255 znaků. Co je napsáno nad, je překladačem ignorováno (překladač zahlásí chybu). Z toho vyplývá, že výše uvedené maximální délky symb.jmen, návěští a komentářů jsou reálné pro návěští a komentář, protože ty mohou být umístěny na samostatném řádku. U symbolického jména vždy následuje pseudoinstrukce plus operand nebo výčet operandů (výrazů), takže samotné symb.jméno nemůže mít nikdy celých 255 znaků. Pseudoinstrukce překladače (direktivy překladače) Co to jsou pseudoinstrukce a k čemu obecně slouží jsme si popsali v předchozím textu. Nyní se podíváme na jednotlivé pseudoinstrukce podrobněji a vysvětlíme si funkci těch nejpoužívanějších. Podrobný popis, případně odlišnosti od zde uvedeného je nutné vyhledat v manuálu ke konkrétnímu překladači, který budete používat. Naprostá většina zde uvedených údajů by však měla být platná pro všechny překladače. POZN: U formátu pseudoinstrukcí platí, že výrazy v hranatých závorkách jsou nepovinné.

9 Vývoj programů, programování v jazyce symbolických adres mhtml:file://d:\dokumenty\mikroprocesory\vývoj%20programů,%20programování%... Stránka č. 5 z END Začínáme od konce. Tato pseudoinstrukce identifikuje konec zdrojového programu (textu) a ukončuje tak práci překladače. Před touto pseudoinstrukcí nesmí být návěští ani symb. jméno, může za ní být ještě komentář (na stejném řádku). Na dalším řádku programu by již neměl být žádný další text, protože ten již překladač ignoruje (překladač zahlásí chybu). ORG Tato pseudoinstrukce nastavuje při překladu čítač instrukcí PC na hodnotu výrazu. Není-li na začátku programu pseudoinstrukce ORG použita, potom překlad začíná automaticky v programové části od adresy 0000H. Přesto je pro jistotu dobré na začátku programu toto nastavení provést (zapsat ORG 0H). Před ORG nesmí být návěští. EQU Tato pseudoinstrukce přiřazuje výraz ke zvolenému symb.jménu, kde výrazem mohou být konstanta (#100H), konkrétní adresa (20H), vyhrazený symbol překladače (R0,R1,...,A,B) nebo obecný výraz (ADR1+1). Programátor si tak jednoduše může přejmenovat např. registr R0 na registr STOVKY a v programu pracovat s novým jménem namísto původního R0 - např. MOV STOVKY,A). BIT, DATA, IDATA, XDATA, CODE Tyto pseudoinstrukce slouží k přiřazení konkrétní hodnoty nebo výrazu zvolenému symbolickému jménu, kde konkrétního hodnota představuje adresu daného paměťového prostoru dle typu pseudoinstrukce (uvedeného v závorce). DB, DW ORG výraz [;text komentáře] Symbolické jméno EQU výraz [;text komentáře] Symbolické jméno BIT výraz (bitová adresa) [;text komentáře] Symbolické jméno DATA výraz (přímá 8-bitová vnitřní adresa) [;text komentáře] Symbolické jméno IDATA výraz (nepřímá 8-bitová vnitřní adresa) [;text komentáře] Symbolické jméno XDATA výraz (přímá 16-bitová vnější adresa) [;text komentáře] Symbolické jméno CODE výraz (16-bitová adresa programové paměti) [;text komentáře] [návěští:] DB konstanta nebo výčet konstant (8-bitů) [;text komentáře] [návěští:] DW konstanta nebo výčet konstant (16-bitů) [;text komentáře] Tyto pseudoinstrukce slouží k uchování konstant v programové paměti. Konstant může být zapsáno i více, musí být od sebe odděleny čárkami. Konstantami mohou být čísla, aritmetické výrazy, hodnoty symb.jmen a ASCII znaky. U DB jsou konstanty 8-bitové, u DW jsou 16-bitové. ASCII znaky musí být zapsány mezi uvozovkami. Nejlépe bude ukázat si možnosti konstant na příkladech: STOVKA EQU 100 DEFINICE: DB 127,13,54,0 ;čísla DB 3*3,2*16 ;aritm.výrazy DB STOVKA ;hodnoty symb.jmen (jsou-li definovány) DB '(c) Copyright, 2001' ;ASCII znaky DB 2*8,'MPG',2*16,'abc' ;je možné navzájem kombinovat

10 Vývoj programů, programování v jazyce symbolických adres mhtml:file://d:\dokumenty\mikroprocesory\vývoj%20programů,%20programování%... Stránka č. 6 z TISIC EQU 1000 DEFINICE: DW 12700,13,540,0 ;čísla DW 3*328,2*165 ;aritm.výrazy DW TISIC ;hodnoty symb.jmen (jsou-li definovány) DW 'Co','py','ri','gh','t,',' 2','00','1' ;ASCII znaky DW 3*328,'AB',2*16,'cd' ;je možné navzájem kombinovat U pseudoinstrukce DW je narozdíl od DB možné do uvozovek zapsat společně max. 2 ASCII znaky. První znak je umístěn ve vyšším bytu, druhý znak v nižším bytu. Pokud je v uvozovkách zapsán jen 1 znak, do vyššího bytu 16- bitového slova budou zapsány nuly. V případě, že použijeme před pseudoinstrukcí DW návěští, bude návěští ukazovat na vyšší byte první zapsané konstanty. Všechny používané pseudoinstrukce (direktivy) jsou obsáhle popsány v návodě k překladači firmy MetaLink Corp. (v souboru Asm_man.doc), o kterém je řeč níže. Jsou zde popsány jak základní výše vyvsvětlené, tak i další speciální pseudoinstrukce - pro práci s paměť. segmenty a registrovými bankami, pro rezervaci paměti, pro práci s moduly atd. Další odlišnosti překladačů Překladače se mohou lišit v těchto několika důležitých věcech: jaké pseudoinstrukce používají a znají jaké vyhrazené symboly používají a znají jaké typy procesorů podporují Dále se mohou lišit v tom, pro jaké prostředí byly napsány (DOS-příkazový řádek, Windows 95/98), zda umožňují upgrade na nové typy procesorů (přes konfigurační soubory) atd. O pseudoinstrukcích a jejich podpoře ze strany překladače už byla řeč v předchozím textu. Podobně je tomu i u vyhrazených symbolů, čímž se myslí registry A,B,R0,R1,SCON,TMOD atd. a bity RS0,RS1,F0,SMOD atd. Instrukce procesoru by měl překladač znát všechny, poku jde opravdu o překladač pro daný typ procesoru - tedy Jde ale především o registry a bity, jež jsou nyní součástí nových klonů 8051 a které u původní verze 8051 nebyly. Nové klony mají integrovány např. obvody watchdog, A/D převodník a nebo výstupní PWM obvody, jež se obsluhují přes nově vytvořené registry, jež mají nějaké symbolické označení. Stejně tak mohou u nových klonů přibýt nové vstupy/výstupy. Ty ale náš starý překladač nezná, a proto jedinou možností je registry adresovat přímo, tj. uvedením adresy. Jsou i překladače, které dokonce neznají ani některé registry u původní 8051, příkladem je registr PCON (87H). Ten nebyl u HMOSové verze procesoru prakticky využíván (kromě bitu SMOD) a uplatnění získal až u verze CMOSové. Proto ho některé starší překladače vůbec neznaly (podívejte se na POZNámku na této stránce). V takovém případě je dobré na začátku programu, který budete psát a využívat v něm právě takové registry nebo bity, nadefinovat si je sám pomocí pseudoinstrukcí EQU nebo BIT (např. PCON EQU 87H). Novější překladače to totiž dělají podobně - v adresáři s překladačem bývá umístěn textový konfigurační soubor, jež obsahuje definice registrů a významných bitů určitého procesoru právě pomocí pseudoinstrukcí. Je pak možná jednoduchá aktualizace překladače na nové klony původního procesoru. Kde sehnat překladač (assembler) a konvertor do HEX formátu? Pokud vám stačí vyvíjet programy bez knihovny modulů, vystačíte s překladačem a HEX konvertorem. Budete si ale muset zavzpomínat na práci v příkazové řádce DOSu. Postup vývoje programu byl popsán a zakreslen výše. Množství překladačů je možné najít na stránce S konvertory do HEX formátu už je to horší. Velmi dobrý překladač, který lze na těchto stránkách najít, je Cross Assembler firmy Metalink Corp. Tvoří jej program asm51.exe, konfiguarční soubory a dokumentace. Překladač v sobě obsahuje i konvertor do HEX formátu, takže nic víc nepotřebujete. Program je možné stáhnout přímo i odtud. Práce s překladačem je dobře popsána v text.souboru asm_man.doc. Doporučuji si ho pročíst, mohli byste být například překvapeni, proč překladač nezná symboly některých bitů (Px.x atd.). Je totiž třeba na začátku každého programu inicializovat konfig.soubor s definicemi symbolů pro daný procesor (podrobnosti viz právě asm_man.doc - direktiva $mod). Pokud chcete programy vyvíjet modulárně (knihovna modulů), budete ještě navíc potřebovat spojovací program (linker). Najít ale nějaký samostatný linker na internetu bude asi trochu problém, bývá totiž většinou součástí nějakého komerčního (placeného) vývojového kitu. Ze všech zmíněných důvodů mohu proto jen doporučit, ať chcete využívat knihoven modulů ano či ne, následující vývojové prostředí firmy Systronix. Je napsáno pro prostředí Windows 95/98, umožní vám pracovat s projekty (knihovny modulů), obsahuje překladač, HEX konvertor i linker a hlavně je ZDARMA ke stažení! Program se jmenuje RAD51, nemá žádná omezení, instaluje se jako standardní windowsová aplikace. Nemusíte znát práci v příkazové řádce,

11 Vývoj programů, programování v jazyce symbolických adres mhtml:file://d:\dokumenty\mikroprocesory\vývoj%20programů,%20programování%... Stránka č. 7 z napíšete program v integrovaném editoru, jedním tlačítkem spustíte překlad a RAD51 vám do určeného adresáře vytvoří rovnou HEX soubor. Vytvoří se i LST soubor, který ale bohužel neobsahuje protokol o průběhu překladu, ani informace o případných chybách. Je proto nutné mít v RADu51 zapnuto okno Output (v menu View), v němž se hlášení o chybách překladu zobrazují. Poslední verzi programu RAD51 je možné stáhnout ze stránek výrobce zde. Najdete jej i na cédéčku HW CD2 v sekci X51-SW pomůcky, jež vydal HW Server. Pokud chcete programy vyvíjet ve vyšším programovacím jazyce - C, Pascalu nebo Basicu, opět doporučuji podívat se na stránku kde je možné najít spoustu kompilerů pro daný jazyk. Kompilery je také možné najít i HW CD2. Zpět na hlavní stránku povídání Copyright Michal Fuksa 2002

12 2EHFQêSRSLVNtåRYêFKSHNODGDþ$NRPSLOiWRU$SUR PLNURSURFHVRU\DG\[ 'RF,QJ5XGROI-DORYHFNê&6FY\YRM#MDOVRIWLROF] 5XGROI-DORYHFN\#YDERF] ÒYRG 9 DVVHPEOHUHFKSURPLNURSURFHVRU\DG\[DOHL$'X&VHVHWNiYiPH V SRMP\ÄGLUHNWLY\SHNODGDþHNRPSLOiWRUX³7\WRGLUHNWLY\EH]SURVWHGQ tgtyodvwqtshnodg SHNODGDþH3HGORåHQêWH[WPi]DFtOHREHFQpVH]QiPHQtDSRXåLWtWFKWRGLUHNWLYEH]RKOHGX QDNRQNUpWQtW\SSHNODGDþHLNG\åMH]DPHQSHGHYãtPQDGLUHNWLY\WFKW\S$ NRPSLOiWRU$ NWHUpSHNOiGDMt]GURMRYêWH[WStPRGRDEVROXWQtKRNyGX+(;QLNROLYRWYDUXREMHNWLYQt KRSHNODGX2%-NWHUêQiVOHGQ PXVtEêWMHãW VSRMHQVOLQNRYiQV NQLKRYQRXSURFHGXUD IXQNFt 2EHFQêSRSLVNRPSLOiWRU$.RPSLOiWRUMHNtåRYêSHNODGDþMD]\NDV\PEROLFNêFKDGUHVMHGQRþLSRYpKRPLNURSRþt WDþHURGLQ\[-HKRYVWXSHPSURNRPSLOiWRUMH]GURMRYêVRXERUMPpQR!$60YMD]\FH V\PEROLFNêFK DGUHV YêVWXSHP SDN SHGHYãtP YêVOHGQê FtORYê VRXERU YH IRUPiWX,17(/ +(; MPpQR!+(; D YROLWHOQ QDStNODG SURWRNRO R SHNODGX MPpQR!351 QHER MPpQR!/67 9]KOHGHP N YHONpPX PQRåVWYt YDULDQW NRPSLOiWRU$ NWHUp MVRX N GLVSR]LFL MH QXWQpSHGHPNRQVWDWRYDWåHQHMVRXYHYHONpYWãLQNRPSDWLELOQt 3HNODGDþHVH]SUDYLGODVSRXãWt] StND]RYpKRiGNXRSHUDþQtKRV\VWpPXQHERY GiYFH SRXåLWtPStND]XVQNROLNDSDUDPHWU\QDS NGH 3RSLVV\QWD[H $60MPpQR!>$60@>SDUDPHWU\tGtFtSHNODG!@ MPpQR!MHMPpQR]GURMRYpKRSURJUDPXPiOLStSRQX$60QHQtSRWHEQpML XYiGW SDUDPHWU\ tgtftshnodg! QDS SDUDPHWU SURJHQHURYiQt WDEXON\ V\PERO$ QHERSDUDPHWUSURY\WYRHQtWDEXON\NtåRYêFKRGND]$DSRG 3HVQêVpPDQWLFNêYê]QDPMHGQRWOLYêFKLQVWUXNFtMHSRSViQYGRVWXSQpOLWHUDWXHD QHQt QXWQpMHM]GHXYiGW8YHPHMHQSRXåLWtGLUHNWLYNRPSLOiWRU$NWHUpPDMtEH]SURVWHGQtYê ]QDPQDSHORåHQêSURJUDP 5H]HUYRYDQiMPpQD 5H]HUYRYDQi MPpQD PDMt Y SHNODGDþL Y\KUD]HQ\ NRQNUpWQt Yê]QDP D SURJUDPiWRU MH P$åHSRXåtWSRX]HSHGHPXUþHQêP]S$VREHP

13 2EHFQêSRSLVNtåRYêFKSHNODGDþ$NRPSLOiWRU$SURPLNURSURFHVRU\DG\[ 6H]QDPUH]HUYRYDQêFKMPHQ $ $% $& $&$// $&& $'' $''& $-03 $1' $1/ $5 $5 $5 $5 $5 $5 $5 $5 % %,7 & &$// &-1( &/5 &3/ &< '$ '$7$ '% '(& ',9 '-1= '3+ '3/ '375 '675 ': ($ (/6( (1' (1',) (48 (6 (7 (7 (; (; ) +,*+,(,(,(,),1&,17,17,3,7,7 -% -%& -& -03-1% -1& -1= -= /&$// /-03 /2: & 029; 08/ * 25/ & 3& : ; 3; % 5' 5(1 5(7 5(7, 5, 5/ 5/& 55 55& ;' 6%8) 6&21 6(7 6(7% 6+/ %% 6:$ % 7&21 7) 7) , 7/ 7/ 702' ;' :5 ;&+ ;&+' ;5/ -PpQDGHILQRYDQiSURJUDPiWRUHP -PpQD GHILQRYDQi SURJUDPiWRUHP PRKRX EêW WYRHQ\ StVPHQ\ þtvolfhpl D ]QDNHP SRGWUåHQtB3UYQt]QDNPXVtEêWYåG\SRX]HStVPHQR0D[LPiOQtGpONDMPpQDP$åHEêW ]QDN$SHNODGDþYãDNSUDFXMHSRX]HVSUYQtPL]QDN\NWHUpWDNpUR]OLãXMH.RQVWDQW\ 3HNODGDþUR]OLãXMHPRåQêFK]S$VRE$]iSLVXNRQVWDQW ýtvhoqpnrqvwdqw\ DGHNDGLFNpþtVOLFHPRKRXNRQþLW]QDNHP' EELQiUQtþtVOLFHQHERNRQþtFtSRYLQQ]QDNHP% FKH[DGHFLPiOQtþtVOLFH]QDN\$) GHILQLFHPXVt ]DþtQDWþtVOLFtD PXVtNRQþLW ]QDNHP+ GRNWDORYpþtVOLFHNRQþtFt]QDNHP2QHER4 'RF,QJ5XGROI-DORYHFNê&6F Y\YRM#MDOVRIWLROF] 5XGROI-DORYHFN\#YDERF]

14 2EHFQêSRSLVNtåRYêFKSHNODGDþ$NRPSLOiWRU$SURPLNURSURFHVRU\DG\[ =QDNRYpNRQVWDQW\ H$6&,,]QDNOLERYROQê$6&,,]QDNNWHUêMHX]DYHQêGRMHGQRGXFKêFKXYR]RYHN =YOiãWQtYê]QDPYHYêUD]XPi]QDNGRODUNWHUpPXMHSLSHNODGXSLD]HQDDNWXiOQt KRGQRWDSURJUDPRYpKRþtWDþH 2SHUiWRU\ 9HYêUD]HFKPRKRXEêWMPpQDDNRQVWDQW\VSRMHQDRSHUiWRU\.RPSLOiWRU\UR]SR]QiYDMt QiVOHGXMtFtRSHUiWRU\ RSHUiWRU RSHUDFH RSHUiWRU RSHUDFH VHþtWiQt 6+/ ELWRYêSRVXQYOHYR RGHþtWiQt 6+5 ELWRYêSRVXQYSUDYR GOHQt 127 QHJDFH QiVREHQt /2: GROQtE\WRSHUDQGX 25 ORJLFNêVRXþHW +,*+ KRUQtE\WRSHUDQGX $1' ORJLFNêVRXþLQ 9\KRGQRFRYiQt RSHUiWRU$ SL MHMLFK NRPELQDFL SUREtKi SRGOH SULRULW\ 1iVOHGXMtFt VH ]QDPMHXVSRiGiQSRGOHY]U$VWDMtFtSULRULW\RSHUiWRU$ $1'256+/ ,*+ /2:3LVWHMQp~URYQLSULRULW\MHYêUD]Y\KRGQRFRYiQ]OHYDGRSUDYD3RDGtY\KRGQRFRYiQt P$åHEêW]PQQRSRXåLWtP]iYRUHN )RUPiWLQVWUXNFt 6QDGYãHFKQ\NRPSLOiWRU\SUDFXMtVQiVOHGXMtFtPIRUPiWHPLQVWUXNFH 'pondmhgqrwolyêfksrotqhqtxuþhqd3ury\ããt SHKOHGQRVWDSRKRGOQMãtSUiFLVHYãDN GRSRUXþXMH Y\KUDGLW VL SUR NDåGp SROH ]QDN$ 9WãLQD HGLWRU$ Pi WDEXOiWRU QDVWDYHQ VWDQ GDUGQQDWXWRYHOLNRVWNRPHQWiGRSRUXþXML]DSLVRYDWDåSRGYRXWDEXOiWRUHFK 1iYãWt 1iYãWtMHV\PEROLFNpMPpQRNWHUpMHXNRQþHQRGYRMWHþNRX7RPXWRMPpQXMHSLSH NODGXSLD]HQDNRQNUpWQtDGUHVDQDNWHURXMHPRåQpVHSHVLGHQWLILNiWRUQiYãWtRGYROiYDW 'DQp QiYãWt VPt EêW GHNODURYiQR SRX]H MHGQRX 3L YtFHQiVREQpP YêVN\WX WpKRå MPpQD Y SROLQiYãWtKOiVtSHNODGDþFK\EX5R]KRGXMtFtFKMHRSWSUYQtFK]QDN$,QVWUXNFHSVHXGRLQVWUXNFH 9WãLQDNRPSLOiWRU$XPRåXMHSRXåtYDWQNWHUp]QiVOHGXMtFtFKSVHXGRLQVWUXNFt 'RF,QJ5XGROI-DORYHFNê&6F Y\YRM#MDOVRIWLROF] 5XGROI-DORYHFN\#YDERF]

15 2EHFQêSRSLVNtåRYêFKSHNODGDþ$NRPSLOiWRU$SURPLNURSURFHVRU\DG\[ 'HILQLFHXåLYDWHOVNêFKMPHQ(486(7'$7$ 6\QWD[H MPpQR!(48YêUD]! MPpQR!6(7YêUD]! MPpQR!'$7$YêUD]! 6\PEROLFNpPXMPpQXMHSLD]HQDKRGQRWD]tVNDQiY\KRGQRFHQtPYêUD]X5R]GtOPH]L SVHXGRLQVWUXNFt(48D6(7MHWHQåHSRXåLWtP6(7P$åHEêWMHGQRPXMPpQXSLD]HQDU$] QiKRGQRWDYtFHNUiWMHGQiVHWHG\RSLD]HQtKRGQRW\NGHåWRSRXåLWt(48RGSRYtGiGHILQLFL DWRWRMPpQRXåQHVPtEêWGHILQRYiQRQDMLQpPPtVW 3VHXGRLQVWUXNFH '$7$ MH XUþHQD N GHILQLFL V\PEROLFNêFK MPHQ NWHUp VH RGND]XMt QD DGUHV\YQLWQtSDPWLGDWGLUHFWDGGUHVV 3VHXGRLQVWUXNFt(48MHPRåQpURYQåSLDGLWV\PEROLFNpMPpQRQNWHUpPX]UHJLVWU$ 5Då5SURFHVRUX-HWHG\PRåQê]iSLVMDNRQDS %$6( (48 5 3R]QiPND6\PEROLFNiMPpQDUHJLVWU$PXVtEêWGHILQRYiQDSHGMHMLFKSUYQtPSRXåLWtP 'HILQLFHXåLYDWHOVNêFKR]QDþHQtELW$%,7 6\QWD[H MPpQR!%,7KRGQRWD! 7DWRSVHXGRLQVWUXNFHXPRåXMHSLDGLWStPRDGUHVRYDWHOQêPELW$PYHYQLWQtSDPWL GDW V\PEROLFNi MPpQD 5RYQå XPRåXMH SLDGLW WPWR MPpQ$P L,2 SRUW\ -DNR KRGQRWD P$åHEêWSRXåLWDNRQVWDQWD]LQWHUYDOX))+QHERV\PEROLFNpR]QDþHQtELWXGOHPQHPRQLN\ YêUREFH 1DStNODG 3591, %,7 + 9<6783 %,7 3 75(7, %,7 $&& 1DVWDYHQtSURJUDPRYpKRþtWDþH25* 6\QWD[H >QiYãWt@25*YêUD]! 7DWR SVHXGRLQVWUXNFH SURYHGH QDVWDYHQt KRGQRW\ SURJUDPRYpKR þtwdþh QD KRGQRWX GD QRX Y\KRGQRFHQtP YêUD]X 3L SRNXVX R QDVWDYHQt YWãt KRGQRW\ QHå MH UR]VDK DGUHV Då ))))+RKOiVtSHNODGDþFK\EX 'HILQLFHGDW'%': 6\QWD[H >QiYãWt@'%YêUD]!>YêUD]!@ 3VHXGRLQVWUXNFH SRVWXSQ XNOiGi MHGQRE\WRYp KRGQRW\]tVNDQp Y\KRGQRFHQtP MHGQRW OLYêFK YêUD]$ QD DNWXiOQt DGUHV\SRþtQDMH VRXþDVQRX DGUHVRX SURJUDPRYpKR þtwdþh 9êUD]\ PXVtQDEêYDWKRGQRWYUR]VDKX))+3RYROHQ\MVRXWDNpHW]FH]QDN$ X]DYHQpYMHGQR 'RF,QJ5XGROI-DORYHFNê&6F Y\YRM#MDOVRIWLROF] 5XGROI-DORYHFN\#YDERF]

16 2EHFQêSRSLVNtåRYêFKSHNODGDþ$NRPSLOiWRU$SURPLNURSURFHVRU\DG\[ GXFKêFKXYR]RYNiFKQDSSRVORXSQRVW]QDN$ VHXORåtMDNR+++3RþHWYêUD]$ ]DMHGQtPStND]HP'%MHRPH]HQSRX]HGpONRXiGNX 6\QWD[H 3VHXGRLQVWUXNFHSRVWXSQ XNOiGiGYRXE\WRYpKRGQRW\]tVNDQpY\KRGQRFHQtPMHGQRWOL YêFK YêUD]$ QD DNWXiOQt DGUHV\ SRþtQDMH VRXþDVQRX DGUHVRX SURJUDPRYpKR þtwdþh 9êUD]\ PXVtQDEêYDWKRGQRWYUR]VDKXDå))))+3RþHWYêUD]$ ]DMHGQtPStND]HP':MHRPH]HQ SRX]HGpONRXiGNX 32=259\ããtE\WHMHXNOiGiQQDQLåãtDGUHVXDQLåãtE\WHQDY\ããtDGUHVX 5H]HUYRYiQtSDPWL'6 6\QWD[H 3L SHNODGX MH Y SDPWL UH]HUYRYiQ SRþHW E\W$ GDQê YêUD]HP 3UR SHNODGDþH NWHUp StPRJHQHUXMt+(;DNyGVHWDWRSVHXGRLQVWUXNFHStOLãQHSRXåtYiQHER" MLåQHQtPRåQpUH ]HUYRYDQpPtVWRY\XåtW 3R]QiPND9WRPWRStSDG PXVtEêWKRGQRW\StSDGQêFKSURPQQêFKSRXåLWêFKYHYêUD]X GHILQRYiQ\SHGMHKRY\þtVOHQtP 9êEUSRXåLWpEDQN\UHJLVWU$86,1* 6\QWD[H >QiYãWt@86,1*YêUD]! 3VHXGRLQVWUXNFHGHILQXMHSRXåLWtStVOXãQpEDQN\UHJLVWU$ RGPtVWDVYpKRYêVN\WX9êUD] SRY\KRGQRFHQtPXVtQDEêYDWKRGQRW]LQWHUYDOXDå3L]SUDFRYiQtLQVWUXNFtNWHUpSUDFXMt V UHJLVWU\5 Då 5 MH SL SHNODGX]RKOHGQQD]YROHQi EDQND UHJLVWU$ WHKG\MHOL QD PtVW UHJLVWU$ YLQVWUXNFLXYHGHQRSHUDQG$5[$EVROXWH5HJLVWHUNGH[MHþtVORUHJLVWUXDå9 WDNRYpPStSDG SHORåtSHNODGDþLQVWUXNFLMDNRE\E\ODSRXåLWDLQVWUXNFHVStPRXDGUHVRX,PSOLFLWQMH]YROHQDEDQND = SUDNWLFNêFK ]NXãHQRVWt QHGRSRUXþXML WXWR GLUHNWLYX StOLã SRXåtYDW MH YKRGQp UDGML ]YROLWStPêDVVHPEOHURYNêStND]SURQDVWDYHQtEDQN\UHJLVWU$ 3RGPtQQêSHNODG,)(/6((1',) 6\QWD[H >QiYãWt@,)YêUD]!>QiYãWt@(/6(>QiYãWt@(1',) 3HNODGDþ Y\KRGQRWt YêUD]D SRNXG MH YêVOHGHNU$]QêURYHQ RG QXO\SHORåtQHSHORåt QiVOHGXMtFtVHNYHQFLLQVWUXNFtDåSRYêVN\WSVHXGRLQVWUXNFH(/6(QHER(1',)3LYêVN\WX SVHXGRLQVWUXNFH(1',)MHSRGPtQQêSHNODGXNRQþHQ3LYêVN\WX(/6(VHSRGPtQNDREUiWt DGDOãtLQVWUXNFHDåSR(1',)VHQHSHNOiGDMtSHNOiGDMt 3R]QiPND 9QRHQtSVHXGRLQVWUXNFt,)(/6((1',)QHPXVtEêWXQNWHUêFKNRPSL OiWRU$SRYROHQR 8NRQþHQt]GURMRYpKRWH[WX(1' 'RF,QJ5XGROI-DORYHFNê&6F Y\YRM#MDOVRIWLROF] 5XGROI-DORYHFN\#YDERF]

17 2EHFQêSRSLVNtåRYêFKSHNODGDþ$NRPSLOiWRU$SURPLNURSURFHVRU\DG\[ 6\QWD[H 1HSRYLQQiSVHXGRLQVWUXNFHNWHUiR]QDPXMH SHNODGDþL NRQHF SHNOiGDQp þivwl]gurmr YpKRWH[WX-DNêNROLGDOãtWH[WMHLJQRURYiQMHWHG\PRåQpVL]DWHQWRStND]ÄXORåLW³þiVWMHãW QH]SUDFRYDQpKRQHRGODGQpKRSURJUDPX&K\EtOLWDWRSVHXGRLQVWUXNFHQDNRQFL]GURMRYpKR WH[WXMHYSURWRNROXRSHNODGXXYHGHQDYDURYQi]SUiYD 2SHUDQG\ 3RNXG MH QD PtVW RSHUDQGX StPi GLUHFW DGUHVD MH PRåQR SRXåtW EX QXPHULFNRX KRGQRWX ] LQWHUYDOX ))+ QHER V\PEROLFNp MPpQR VSHFLiOQtKR IXQNþQtKR UHJLVWUX 6WHMQp SUDYLGORSODWtLSURELWRYêRSHUDQGELWVWtPåHMDNRV\PEROLFNêFKMPHQVHSRXåtYiQi]Y$ StPRDGUHVRYDWHOQêFKELW$SRGOH]DYHGHQpPQHPRWHFKQLN\ 3RNXGVHQDPtVW StPpKRQHERELWRYpKRRSHUDQGXY\VN\WQHKRGQRWDNWHUiQHQtGHIL QRYDQiSHNODGDþQDWXWRVNXWHþQRVW]DUHDJXMHY\SViQtPYDURYQp]SUiY\GRSURWRNROXRSH NODGXDYêVOHGHNWDNRYpWRRSHUDFHQHQtGHILQRYDQê -HOL MDNR RSHUDQG XYHGHQD StPi KRGQRWD GDWD MH PRåQR SRXåtW YêUD]X MHKRå Y\ þtvohqtpvhwdwrkrgqrwd]tvni9hyêud]xvhprkrxy\vn\wrydwþtvoddv\perolfnimppqd 3tNODG / $ 029$&,6/2 &,6/2(48%.RPHQWi.RPHQWi MHOLERYROQêWH[WNWHUê]DþtQiVWHGQtNHP1DUD]tOLSHNODGDþSLSHNODGXQD VWHGQtNSDNFHOê]E\WHNWH[WXGRNRQFHiGN\SRYDåXMH]DSR]QiPNX0LPRREHFQêIRUPiW LQVWUXNFHMVRXPRåQpLW\WRIRUPiW\ >QiYãWt@NRPHQWiNRPHQWi 2EHFQ MH GRSRUXþHQR SRXåtYDW YHONp PQRåVWYt SR]QiPHN D NRPHQWi$ QHER" þdvhp DOHVSROpSHSR]QiWHVYRMLS$YRGQt]SURJUDPRYDQRXP\ãOHQNX 3URWRNRORSHNODGX 6QDGYãHFKQ\SHNODGDþHY\WYitPLPRYODVWQtKRSHORåHQpKR+(;DVRXERUXLVRXERU R SURYHGHQpP SHNODGX W]Y SURWRNRO 351 /67 7HQWR SURWRNRO R SHNODGX ]DKUQXMH RSLV ]GURMRYpKR WH[WX SHORåHQê FtORYê NyG StSDGQp FK\ERYp KOiãHQt D QNG\ L YROLWHOQ WDEXONXV\PERO$DNtåRYêFKRGND]$ 2EHFQêIRUPiWiGNXSURWRNROXRSHNODGX DGUHVD!FtONyG!RSLV]GURMRYpKRWH[WX! NGHDGUHVDMHWYRHQDþW\PLþtVOLFHPLYKH[DGHFLPiOQtPWYDUXDXGiYiDEVROXWQtDGUHVXQD NWHURXVHXNOiGiFtORYêNyG 'RF,QJ5XGROI-DORYHFNê&6F Y\YRM#MDOVRIWLROF] 5XGROI-DORYHFN\#YDERF]

18 2EHFQêSRSLVNtåRYêFKSHNODGDþ$NRPSLOiWRU$SURPLNURSURFHVRU\DG\[ FtORYêNyGMHWYRHQKH[DGHFLPiOQtPLþtVOLFHPLRSHUDþQtKRNyGXDStSDGQêFKRSHUDQG$ RSLV]GURMRYpKRWH[WXMHRGSRYtGDMtFtiGHN]GURMRYpKRWH[WXYþHWQNRPHQWiH &K\ERYiKOiãHQtSLSHNODGX 6NRQþtOLSHNODGEH]FK\E\SDNMHQDNRQFLSURWRNROXRSHNODGXXYHGHQWH[W 1RHUURUVGHWHFWHG -HOLSLSHNODGX]MLãWQDFK\EDMHSURWRNROXNRQþHQWH[WHP [!HUURUVGHWHFWHG NGH[MHSRþHW]MLãWQêFKFK\E &K\E\SURJUDPX 3LYêVN\WXFK\E\YSHNOiGDQpPSURJUDPXJHQHUXMHSHNODGDþGRSURWRNROXRSHNODGX FK\ERYpKOiãHQtYHWYDUX (UURUW\SFK\E\! 7RWRFK\ERYpKOiãHQtMHYåG\XYHGHQRSRGiGNHPYHNWHUpPVHFK\EDY\VN\WOD 3HKOHGVWDQGDUGQtFKFK\ERYêFKKOiãHQt LGHQWLILHUQRWGHFODUHG YDORXWRIUDQJH))+ RXWRIUDQJH))))+ RXWRIFXUUHQWSDJH RXWRIDGGUHVVUDQJH PXOWLSO\GHFODUDWLRQ V\QWD[HUURU QRWDVVLJQHGWRUHJ UHJLVWHUH[SHFWHG PXOWLSO\DVVLJQPHQW LGHQWLILNiWRUQHQtGHNODURYiQ KRGQRWDSHVDKXMHUR]VDKE\WX KRGQRWDPLPRUR]VDKVORYD VNRNPLPRVRXþDVQRXVWUiQNX RGND]QDDGUHVXPLPRDGUHVRYêUR]VDK YtFHQiVREQiGHNODUDFH V\QWDNWLFNiFK\ED LGHQWLILNiWRUQHQtSLD]HQUHJLVWUX55 RþHNiYDMtVHSRX]HUHJLVWU\55 YtFHQiVREQpSLD]HQt PXOWLSO\UHJLVWHUDVVLJQHG UHJLVWUMHSLD]HQGYDNUiW PXOWLSO\ODEHOGHFODUHG RXWRIUDQJH QHVWHG,) QHVWHG(/6( QHVWHG(1',) DVVLJQHGWRUHJLVWHU QiVREQiGHNODUDFHQiYãWt3& SURJUDPRYêþtWDþMHPLPRUR]VDK YQRHQiSVHXGRLQVWUXNFH,) YQRHQiSVHXGRLQVWUXNFH(/6( YQRHQiSVHXGRLQVWUXNFH(1',) QDPtVWSURGLUHFWDGUHVXMHQSRXåLWDSURPQQiSLD]HQiUHJ 'RF,QJ5XGROI-DORYHFNê&6F Y\YRM#MDOVRIWLROF] 5XGROI-DORYHFN\#YDERF]

19 2EHFQêSRSLVNtåRYêFKSHNODGDþ$NRPSLOiWRU$SURPLNURSURFHVRU\DG\[ RXWRIUDQJH RXWRIUDQJH V\PERO!H[SHFWHG UHODWLYQtVNRNMHPLPRGDQêUR]VDK ]DSVHXGRLQVWUXNFtXVLQJSRXåLWDKRGQRWDYWãtQHå MHRþHNiYiQV\PERO! 8SR]RUQQt3(./$'$ý( 3L SHNODGX PRKRX Y]QLNQRXW VLWXDFH NWHUp QHMVRX FK\ERX Y SHNOiGDQpP SURJUDPX DOH SURJUDPiWRU E\ PO EêW R WRP LQIRUPRYiQ 7RWR FK\ERYp KOiãHQt MH YåG\ XYHGHQR SRG ignhpyhnwhuppvhvlwxdfhy\vn\wod :DUQLQJEDG6)5DGGUHVV :DUQLQJEDGELWDGGUHVV :DUQLQJ(1'H[SHFWHG FK\EQiDGUHVDVSHFLiOQtKRIXQNþQtKRUHJLVWUX FK\EQiDGUHVDELWRYDGUHVRYDWHOQpSDPWL RþHNiYiQNRQHFVRXERUX 7DWRYDURYiQtPDMtSRX]HFKDUDNWHULQIRUPDFHQHMVRXSRYDåRYiQ\]DFK\EX &K\E\V\VWpPX 3RNXGGRMGHSLSHNODGXNFK\E V\VWpPXJHQHUXMHSHNODGDþGRSURWRNROXRSHNODGX FK\ERYpKOiãHQtYHWYDUX 6\VWHPHUURUW\SFK\E\! 6H]QDPFK\ERYêFKKOiãHQt 2XWRIPHPRU\ 1RVXFKILOH 'LVNLVIXOO &DQWRSHQILOH SURJUDPPiQHGRVWDWHNSDPWLSURXNOiGiQtGDW SRNXVRRWHYHQtQHH[LVWXMtFtKRVRXERUX SOQêGLVN V\VWpP QHSRYROt RWHYtW GDOãt VRXERU-H WHED]NRQWURORYDW YHOLNRVW SUR PQQp),/(6YVRXERUX&21),*6<6 7DEXONDV\PERO$ -HOLSLVSXãWQtSHNODGDþH]DGiQSRåDGDYHNQDY\WYRHQtWDEXON\V\PERO$MHY\WYRH QDWDEXONDV\PERO$DSLSRMHQDQDNRQHFSURWRNROXRSHNODGX 7DEXONDNtåRYêFKRGND]$ -HOLSLVSXãWQtSHNODGDþH]DGiQSRåDGDYHNQDY\WYRHQtWDEXON\NtåRYêFKRGND]$ MH Y\WYRHQD WDEXOND NtåRYêFK RGND]$ D SLSRMHQD QD NRQHF SURWRNROX R SHNODGX 9 WDEXOFH MVRX XYHGHQ\ MHGQRWOLYi V\PEROLFNi MPpQD GHILQRYDQi SURJUDPiWRUHP D SUR NDåGê YêVN\W MPpQDþtVORiGNXYHNWHUpPMHMPpQRSRXåLWRýtVORiGNXYHNWHUpMHLGHQWLILNiWRUGHILQR YiQMHXYR]HQR]QDNHP 'RF,QJ5XGROI-DORYHFNê&6F Y\YRM#MDOVRIWLROF] 5XGROI-DORYHFN\#YDERF]

20 2EHFQêSRSLVNtåRYêFKSHNODGDþ$NRPSLOiWRU$SURPLNURSURFHVRU\DG\[ 3R]QiPN\QD]iYU 3HGORåHQêWH[WE\POVORXåLWN SUYRWQtPXVH]QiPHQtVHV PRåQRVWPLMDNRYOLYQLWSH NODG]GURMRYpKRWH[WXY NRPSLOiWRUX6RXþDVQ YãDNWDNpP$åHGiYDWQiYRGQDREHFQMãtY\X ålwtlghqwlilniwru$sdp"ryêfkptvwnrqvwdqwdnrqnupwqtfkdguhv,2sruw$ -HYKRGQpWDNpSLSRPHQRXWQDVNXWHþQRVWåHQHYåG\QDMGHPHVWDQGDUGQtR]QDþRYiQt SURPQQêFKY MHGQRPDWpåHNRPSLOiWRUX3tNODGHPWRPXP$åHEêWR]QDþRYiQtDNXPXOiWRUX $NWHUêQNG\PXVtPH]DSVDWMDNR$FF386+$FFDOH029$'iOHMHYKRGQpXSR]RU QLWQDVNXWHþQRVWåHYWãLQDSHNODGDþ$ QHUR]OLãXMHYHONpDPDOp]QDN\MHWHG\MHGQR]GD]D StãHWHPRYDEQHER029$%2EHFQ VHYãDNGRSRUXþXMHREGREQ MDNRVWUXNWXURYiQt]iSL VXSRXåtYDW]iSLVLQVWUXNFtYHYHONêFKStVPHQHFK 2EVDK Ò92' 2%(&1é323,6.203,/È725# 323,66<17$;( 5(=(5929$1È-0e1$ -0e1$'(),129$1È352*5$0È725(0.2167$17< 23(5È725< )250È7,16758.&Ë 1È9â7Ë,16758.&(36(8'2,16758.&( 23(5$1'<.20(17È /23(./$'8 &+<%29È+/Èâ(1Ë3,3(./$'8 &K\E\SURJUDPX 8SR]RUQQt3(./$'$ý( &K\E\V\VWpPX 7$%8/.$6<0%2/# 7$%8/.$.Ëä29é&+2'.$=# 32=1È0.<1$=È95 2%6$+ 328ä,7e35$0(1< 3RXåLWpSUDPHQ\ 3RSLVNtåRYpKRSHNODGDþH($6<&$66 3URJUDPRYDFtMD]\NDVVHPEOHU7(6/$(/726 &5266$66(0%/(50HWD/LQN&RUSRUDWLRQ,QWHUQHWRYVNpVWUiQN\ILUHPSRVN\WXMtFtNRPSLOiWRU\SURPLNURSURFHVRU[ 2VREQtSR]QiPN\D]NXãHQRVWL 'RF,QJ5XGROI-DORYHFNê&6F Y\YRM#MDOVRIWLROF] 5XGROI-DORYHFN\#YDERF]

21 Instrukční soubor mikroprocesorů 8051 / 8052 < přesuny > A Rx #d8 C AC OV P vysvětlení MOV A, 1/1 2/1 1/1 2/1 P (A) ( ) MOV Rx, 1/1 2/2 2/1 P (Rx) ( ) MOV a8, 2/1 2/2 3/2 2/2 3/2 (a8) ( ) 1/1 2/2 2/1 ((Rr)) ( ) MOV DPTR,#d16 3/2 (DPTR) d16 MOVC A,@A+ 1/2 P (A) ((A)+(DPTR))c MOVC A,@A+PC 3/2 P (A) ((A)+(PC))c MOVX A, 1/2 1/2 P (A) (( ))x MOVX,A 1/2 1/2 P (( ))x (A) PUSH a8 2/2 zásobník (a8) POP a8 2/2 (a8) zásobník XCH A, 1/1 2/1 1/1 P (A) ( ) XCHD A, 1/1 P (A3 0) ( 3 0) < aritmetické operace > INC 1/1 P ( ) ( ) +1 INC 1/1 2/1 1/1 1/2 ( ) ( ) +1 DEC 1/1 1/1 2/1 1/1 ( ) ( ) 1 ADD A, 1/1 2/1 1/1 2/1 C AC OV P (A) (A)+( ) ADDC A, 1/1 2/1 1/1 2/1 C AC OV P (A) (A)+(C)+( ) DA A 1/1 C AC P dokad.korekce po + SUBB A, 1/1 2/1 1/1 2/1 C AC OV P (A) (A) (C) ( ) MUL AB 1/4 0 OV P (A),(B) (A) * (B) DIV AB 1/4 0 OV P (A),(B) (A) / (B) < logické operace > ANL A, 1/1 2/1 1/1 P (A) (A) AND ( ) ANL A, 2/1 (A) (A) AND ( ) ORL A, 1/1 2/1 1/1 2/1 P (A) (A) OR ( ) ORL a8, 2/1 (a8) (a8) OR ( ) ORL a8, 3/2 P (a8) (a8) OR ( ) XRL A, 1/1 2/1 1/1 2/1 P (A) (A) XOR ( ) XRL a8, 2/1 3/2 (a8) (a8) XOR ( ) CLR A 1/1 P (A) (0) CPL A 1/1 (A) NOT (A) < posuny > RL A 1/1 rotace vlevo RLC A 1/1 C P rotace vlevo přes C RR A 1/1 rotace vpravo RRC A 1/1 C P rotace vpravo přes C SWAP A 1/1 (A0 3) (A4 7) b8 /b8 C NC B NB BC C AC OV P vysvětlení < bitové operace > CLR 2/1 1/1 * ( ) 0 SETB 2/1 1/1 * ( ) 1 CPL 2/1 1/1 * ( ) NOT ( )

22 ANL C, 2/2 2/2 C (C) (C) AND ( ) ORL C, 2/2 2/2 C (C) (C) OR ( ) MOV C,b8 2/1 C (C) (b8) MOV b8,c 2/2 (b8) (C) J r8 2/2 2/2 (PC) (PC)+2+if(,r8,0) J b8,r8 3/2 3/2 (PC) (PC)+3+if(,r8,0) J b8,r8 3/2 (PC) (PC)+3+if(,r8,0),(b8) 0 < skoky > A a8 Z NZ C AC OV P ACALL a11 2/2 {SP} (PC+2).(PC) a11,sp=sp+2 LCALL a16 3/2 {SP} (PC+3).(PC) a16,sp=sp+2 RET 1/2 (PC) (SP), SP=SP 2 RETI 1/2, (PC) (SP), SP=SP 2 AJMP a11 2/2 (PC)0 10 a11 LJMP a16 3/2 (PC) a16 SJMP r8 2/2 (PC) (PC) r8 1/2 (PC) (A) + (DPTR) J r8 2/2 2/2 (PC) (PC)+3+if (,r8,0) CJNE A,a8,r8 3/2 C (PC) (PC)+3+if ((A)=(a8),r8,0) CJNE,#d8,r8 3/2 3/2 3/2 C (PC) (PC)+3+if (( )=d8,r8,0) DJNZ,r8 3/2 3/2 (PC) (PC)+3+if (( )=0,r8,0), ( ) ( ) 1 < ostatní > NOP 1/1 nic A střadač 1/1 počet slabik/cyklů Rx registr R0 R7 c paměť nepřímá adresa v R0, R1 x externí paměť dat a8 přímá adresa * ovlivňuje, je-li operandem d8, d16 bezprostřední data (8, 16 bitů) {SP} ukládání do (SP+1) a (SP+2), r8 relativní adresa vybírání z (SP) a (SP-1) b8 bitová adresa (/b8) negovaný obsah buňky na adrese b8

23 Instrukční soubor mikroprocesorů 8051 / 8052 A Rx a #d 8 C AC OV P vysvětlení < přesuny > MOV A, 1/1 2/1 1/1 2/1 P (A) ( ) MOV Rx, 1/1 2/2 2/1 P (Rx) ( ) MOV a 8, 2/1 2/2 3/2 2/2 3/2 (a 8) ( ) 1/1 2/2 2/1 ((Rr)) ( ) Přesun bytu z paměťového místa na jiné paměťové místo ve vnitřní datové paměti. Instrukce MOV přesune obsah zdrojového bytu do cílového bytu bez ovlivnění jakýchkoliv příznaků. MOV DPTR,#d 16 3/2 (DPTR) d 16 Instrukce přesune obsah druhého a třetího bytu instrukce do ukazatele dat (DPTR). Druhý byte do DPH a třetí byte do DPL. MOVC A,@A+ 1/2 P (A) ((A)+(DPTR)) c MOVC A,@A+PC 1/2 P (A) ((A)+(PC)) c Instrukce přesune byte z programové paměti (operační kód nebo konstantu) do střadače. Adresa místa, jehož obsah se přesouvá, získáme jako 16-bitový součet obsahu střadače (8 bitů) a ukazatele dat DPTR nebo čítače instrukcí PC. Pro případ čítače instrukcí je jeho obsah před provedením instrukce inkrementován (ukazuje na následující instrukci). MOVX A, 1/2 1/2 P (A) (( )) x MOVX,A 1/2 1/2 (( )) x (A) Instrukce přesune byte z/do střadače do/z vnější paměti dat. Instrukce mohou využívat 16-bitovou nebo 8-bitovou nepřímou adresu. V prvním případě se vysílá adresa uložená v DPTR na bránu P2 (DPH) a bránu P0 (DPL). V druhém případě se vysílá na bránu P0 adresa uložená v registru R0 nebo R1 a na bráně P2 zůstává hodnota naposledy zapsaná. PUSH a 8 2/2 zásobník (a 8) Instrukce přičte jedničku k ukazateli zásobníku a potom uloží obsah adresovaného místa do vrcholu zásobníku (zásobník je vždy ve vnitřní datové paměti). POP a 8 2/2 (a 8) zásobník Instrukce vyzvedne obsah vrcholu zásobníku a uloží jej na adresované paměťové místo.pak odečte od ukazatele zásobníku jedničku. XCH A, 1/1 2/1 1/1 P (A) ( ) Instrukce vymění (navzájem prohodí) obsah střadače a určeného registru nebo adresovaného paměťového místa. XCHD A, 1/1 P (A 3 0) ( 3 0) Instrukce vymění (navzájem prohodí) obsah nižšího půlbytu střadače s nepřímo adresovaným paměťovým místem vnitřní paměti RAM. < aritmetické operace > INC 1/1 P ( ) ( ) +1 INC 1/1 2/1 1/1 1/2 ( ) ( ) +1 Instrukce přičte k obsahu adresovaného paměťového místa jedničku. Po zvětšení hodnoty FFH dojde k přetečení na hodnotu 00H. Inkrementace obsahu výstupní brány zvětšuje obsah přečtený z registru brány a nikoliv ze vstupně/výstupních vodičů. Instrukce INC DPTR přičte jedničku k registrovému páru DPH a DPL, které vytváří 16-bitový ukazatel datové paměti DPTR. Dojde-li při přičítání k přetečení u registru DPL (FFH 00H) potom je přičtena jednička k registru DPH. Přičítání jedničky k DPTR probíhá modulo 2 16 (FFFFH H). Instrukce INC DPTR je jedinou 16-bitovou instrukcí v instrukčním souboru procesoru. DEC A 1/1 P (A) (A) 1 DEC 1/1 2/1 1/1 ( ) ( ) 1 Instrukce odečte jedničku od obsahu adresovaného paměťového místa. Po zmenšení hodnoty 00H dojde k podtečení na hodnotu FFH. Dekrementace obsahu výstupní brány zmenšuje obsah přečtený z registru brány a nikoliv ze vstupně/výstupních vodičů. ADD A, 1/1 2/1 1/1 2/1 C AC OV P (A) (A)+( ) Instrukce přičte obsah adresovaného bytu ke střadači a výsledek v něm ponechá. ADDC A, 1/1 2/1 1/1 2/1 C AC OV P (A) (A)+(C)+( ) Instrukce přičte obsah adresovaného bytu a příznakový bit přenosu C ke střadači a výsledek v něm ponechá. DA A 1/1 C AC P dokad.korekce po + Instrukce koriguje obsah střadače po binárním sčítání dvou dekadických čísel vyjádřených v BCD kódu tak, aby výsledek opět tvořil dvě čtyřbitová BCD čísla. Je-li hodnota na nižších čtyřech bytech >9 nebo AC=1, potom se ke střadači přičte hodnota 6. Je-li hodnota na vyšších čtyřech bitech >9 nebo AC=1, potom se ke střadači přičte hodnota 60H. SUBB A, 1/1 2/1 1/1 2/1 C AC OV P (A) (A) (C) ( ) Instrukce odečte obsah adresovaného bytu od střadače včetně příznaku přenosu (výpůjčky) a výsledek v něm ponechá. Je-li při výpočtu vyžadována v bitu b 7 výpůjčka, je příznakový bit C nastaven, v opačném případě je vynulován. MUL AB 1/4 0 OV P (A),(B) (A) * (B) Instrukce vynásobí dvě osmibitová čísla bez znaménka uložená ve střadači a registru B. Je-li součin větší než hodnota 255 (FFH), nastaví se příznakový bit přetečení OV=1. V opačném případě se OV vynuluje. DIV AB 1/4 0 OV P (A),(B) (A) / (B) Instrukce provádí celočíselné dělení obsahu střadače s obsahem registru B. Celá část podílu zůstává ve střadači, zbytek (nikoliv desetinná část) zůstává v registru B. Při dělení nulou se nastaví příznak přetečení OV=1. < logické operace > ANL A, 1/1 2/1 1/1 P (A) (A) AND ( ) ANL A, 2/1 P (A) (A) AND ( ) ANL a 8, 2/1 3/2 (a 8) (a 8) AND ( ) Instrukce ANL provede logický součin mezi odpovídajícími bity cílového a zdrojového bytu a výsledek uloží do cílového bytu. Je-li cílovým bytem výstupní brána (přímá adresa), pak se operace provede mezi výstupním registrem a zdrojovým bytem (nikoliv vstupními signály). ORL A, 1/1 2/1 1/1 2/1 P (A) (A) OR ( ) ORL a 8, 2/1 (a 8) (a 8) OR ( ) ORL a 8, 3/2 (a 8) (a 8) OR ( ) Instrukce ORL provede logický součet mezi odpovídajícími bity cílového a zdrojového bytu a výsledek uloží do cílového bytu. Pro operaci s výstupní bránou (přímá adresa) se operace provede mezi výstupním registrem a zdrojovým bytem (nikoliv vstupními signály). XRL A, 1/1 2/1 1/1 2/1 P (A) (A) XOR ( ) XRL a 8, 2/1 3/2 (a 8) (a 8) XOR ( )

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051 051 Seznámení s mikropočítačem Architektura mikropočítače Instrukce Paměť Čítače Porovnání s AT89C2051 Seznámení s mikropočítačem řady 8051 Mikroprocesor řady 8051 pochází z roku 1980 a je vytvořené firmou

Více

8. Laboratoř: Aritmetika a řídicí struktury programu

8. Laboratoř: Aritmetika a řídicí struktury programu 8. Laboratoř: Aritmetika a řídicí struktury programu Programy v JSA aritmetika, posuvy, využití příznaků Navrhněte a simulujte v AVR studiu prográmky pro 24 bitovou (32 bitovou) aritmetiku: sčítání, odčítání,

Více

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Činnost CPU Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Hodinový cyklus CPU je synchronní obvod nutné hodiny (f CLK ) Instrukční cyklus IF = doba potřebná

Více

Programátorský model procesoru x51

Programátorský model procesoru x51 Programátorský model procesoru x51 Základní schéma procesoru V rámci cvičení tohoto předmětu budeme programovat jeden konkrétní procesor řady x51. Abychom ho mohli začít programovat, musíme si nejprve

Více

Jazyk symbolických adres

Jazyk symbolických adres Jazyk symbolických adres 1 Proč programovat v JSA Pro některé procesory resp. MCU jsou překladače JSA dostupnější. Některé překladače vyšších jazyků neumí využít určité speciální vlastnosti procesoru.

Více

Princip funkce počítače

Princip funkce počítače Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování

Více

Architektury počítačů a procesorů

Architektury počítačů a procesorů Kapitola 3 Architektury počítačů a procesorů 3.1 Von Neumannova (a harvardská) architektura Von Neumann 1. počítač se skládá z funkčních jednotek - paměť, řadič, aritmetická jednotka, vstupní a výstupní

Více

Klimatizace. Třída: 4.C. Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT. Skupina: 3. Zpráva číslo: 3

Klimatizace. Třída: 4.C. Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT. Skupina: 3. Zpráva číslo: 3 Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT Třída: 4.C Skupina: 3 Klimatizace Zpráva číslo: 3 Dne: 08.01.2007 Soupis použitých přístrojů: přípravek s μc 8051 přípravek s LCD přípravek

Více

Pohled do nitra mikroprocesoru Josef Horálek

Pohled do nitra mikroprocesoru Josef Horálek Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická

Více

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr. Model procesoru Jedná se o blokové schéma složené z registrů, paměti RAM, programového čítače, instrukčního registru, sčítačky a řídicí jednotky, které jsou propojeny sběrnicemi. Tento model má dva stavy:

Více

Mikrořadiče řady 8051.

Mikrořadiče řady 8051. Mikrořadiče řady 8051 Řada obvodů 8051 obsahuje typy 8051AH, 8031AH, 8751H, 80C51, 80C31, 8052 a 8032 Jednotlivé obvody se od sebe liší technologií výroby a svojí konstrukcí Způsob programování je však

Více

Technické vývojové prostředky

Technické vývojové prostředky Technické vývojové prostředky Budeme-li realizovat mikroový systém včetně programového vybave-ní, budeme v závěrečné fázi stát před problémem oživení jak obvodového zapojení (hadrware), tak jeho programového

Více

Program "Světla" pro mikropočítač PMI-80

Program Světla pro mikropočítač PMI-80 Program "Světla" pro mikropočítač PMI-80 Dokument věnovaný mikropočítači PMI-80, jeho programování a praktickým ukázkám. Verze dokumentu:. Autor: Blackhead Datum: rok 1997, 4.3.004 1 Úvod Tento program

Více

Čísla, reprezentace, zjednodušené výpočty

Čísla, reprezentace, zjednodušené výpočty Čísla, reprezentace, zjednodušené výpočty Přednáška 5 A3B38MMP kat. měření, ČVUT - FEL, Praha J. Fischer A3B38MMP, 2015, J.Fischer, ČVUT - FEL, kat. měření 1 Čísla 4 bitová dec bin. hex. 0 0000 0 1 0001

Více

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Assembler pro Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zápis instrukcí umíme už zapisovat instrukce v binárním tvaru to je silně nešikovné pro snazší vývoj

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Assembler - 5.část. poslední změna této stránky: Zpět

Assembler - 5.část. poslední změna této stránky: Zpět 1 z 5 19.2.2007 7:52 Assembler - 5.část poslední změna této stránky: 9.2.2007 1. Pseudoinstrukce a direktivy Zpět Kromě instrukcí můžete v Assembleru psát také další konstrukce, které se obšem nepřekládají

Více

Strojový kód. Instrukce počítače

Strojový kód. Instrukce počítače Strojový kód Strojový kód (Machine code) je program vyjádřený v počítači jako posloupnost instrukcí procesoru (posloupnost bajtů, resp. bitů). Z hlediska uživatele je strojový kód nesrozumitelný, z hlediska

Více

Profilová část maturitní zkoušky 2015/2016

Profilová část maturitní zkoušky 2015/2016 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2015/2016 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 26-41-M/01 Elektrotechnika Zaměření: technika

Více

Čísla, reprezentace, zjednodušené výpočty

Čísla, reprezentace, zjednodušené výpočty Čísla, reprezentace, zjednodušené výpočty Přednáška 4 A3B38MMP kat. měření, ČVUT - FEL, Praha J. Fischer A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 1 Čísla 4 bitová dec bin. hex. 0 0000 0 1 0001

Více

Profilová část maturitní zkoušky 2014/2015

Profilová část maturitní zkoušky 2014/2015 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2014/2015 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 26-41-M/01 Elektrotechnika Zaměření: technika

Více

Struktura a architektura počítačů (BI-SAP) 7

Struktura a architektura počítačů (BI-SAP) 7 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 7 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Úvod do programování. Lekce 1

Úvod do programování. Lekce 1 Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -

Více

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu StatSoft Typy souborů ve STATISTICA Tento článek poslouží jako přehled hlavních typů souborů v programu STATISTICA, ukáže Vám jejich možnosti a tím Vám dovolí využívat program efektivněji. Jistě jste již

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Vzorový příklad pro práci v prostředí MPLAB Zadání: Vytvořte program, který v intervalu 200ms točí doleva obsah registru reg, a který při stisku tlačítka RB0 nastaví bit 0 v registru reg na hodnotu 1.

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech

Více

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí. Základní pojmy IT, číselné soustavy, logické funkce Základní pojmy Počítač: Stroj na zpracování informací Informace: 1. data, která se strojově zpracovávají 2. vše co nám nebo něčemu podává (popř. předává)

Více

STEDNÍ PRMYSLOVÁ ŠKOLA, OSTRAVA - MORAVSKÁ OSTRAVA, KRATOCHVÍLOVA 7. (studijní text)

STEDNÍ PRMYSLOVÁ ŠKOLA, OSTRAVA - MORAVSKÁ OSTRAVA, KRATOCHVÍLOVA 7. (studijní text) STEDNÍ PRMYSLOVÁ ŠKOLA, OSTRAVA - MORAVSKÁ OSTRAVA, KRATOCHVÍLOVA 7 (studijní text) µ-procesorová TECHNIKA Studijní text smí být používán pouze k výuce µ-procesorové techniky v SPŠ, Ostrava Moravská Ostrava,

Více

A51 MACRO ASSEMBLER POKUSNY PROGRAM DATE 10/3/007 PAGE 1

A51 MACRO ASSEMBLER POKUSNY PROGRAM DATE 10/3/007 PAGE 1 Demonstrač nítext k předná š ce Mikroprocesory v přístrojové technice, kat. měření. A51 MACRO ASSEMBLER POKUSNY PROGRAM DATE 10/3/007 PAGE 1 MS-DOS MACRO ASSEMBLER A51 V4.4 OBJECT MODULE PLACED IN DEMC.OBJ

Více

Způsoby realizace této funkce:

Způsoby realizace této funkce: KOMBINAČNÍ LOGICKÉ OBVODY U těchto obvodů je výstup určen jen výhradně kombinací vstupních veličin. Hodnoty výstupních veličin nezávisejí na předcházejícím stavu logického obvodu, což znamená, že kombinační

Více

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2013 1.3 2/14

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2013 1.3 2/14 ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2013 1.3 2/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 14 0:40 1.3. Vliv hardware počítače na programování Vliv

Více

Struktura a architektura počítačů (BI-SAP) 5

Struktura a architektura počítačů (BI-SAP) 5 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 5 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

MPASM a IDE pro vývoj aplikací MCU (Microchip)

MPASM a IDE pro vývoj aplikací MCU (Microchip) MPASM a IDE pro vývoj aplikací MCU (Microchip) MPLAB, vývojové prostředí a jeho instalace; Založení nového projektu a jeho základní nastavení; Zásady tvorby a základní úprava formuláře zdrojového kódu;

Více

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: Číslo šablony: Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek: Anotace: CZ.1.07/1.5.00/34.0410

Více

Digitální teploměr s LCD

Digitální teploměr s LCD Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT Třída: 3.C Skupina: 3 Digitální teploměr s LCD Zpráva číslo: 5 Dne: 22.05.2006 Soupis použitých přístrojů: přípravek s μc 8051 přípravek

Více

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Mikrokontroléry. Doplňující text pro POS K. D. 2001 Mikrokontroléry Doplňující text pro POS K. D. 2001 Úvod Mikrokontroléry, jinak též označované jako jednočipové mikropočítače, obsahují v jediném pouzdře všechny podstatné části mikropočítače: Řadič a aritmetickou

Více

Překladač - Assembler, úloha SW_ UART

Překladač - Assembler, úloha SW_ UART Překladač - Assembler, úloha SW_ UART Přednáška 2 - část A3B38MMP, 2014 kat. měření, ČVUT - FEL, Praha J. Fischer A3B38MMP, 2014, J.Fischer, ČVUT - FEL Praha, kat. měření 1 Náplň Úloha UART, specifikace

Více

Předmluva 13 Použité konvence 14. KAPITOLA 1 Základní číselné soustavy a pojmy Číselné soustavy a převody 15 1.

Předmluva 13 Použité konvence 14. KAPITOLA 1 Základní číselné soustavy a pojmy Číselné soustavy a převody 15 1. 7 Předmluva 13 Použité konvence 14 KAPITOLA 1 Základní číselné soustavy a pojmy 15 1.1 Číselné soustavy a převody 15 1.2 Datové typy 18 KAPITOLA 2 Seznámení s mikroprocesory řady x86 21 2.1 Počítač obecně

Více

5 Přehled operátorů, příkazy, přetypování

5 Přehled operátorů, příkazy, přetypování 5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování

Více

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10 UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10 Využití zásobníku pro předání parametrů podprogramům a lokální proměnné Jan Dolinay Petr Dostálek Zlín

Více

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5 Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5

Více

Univerzální software pro programátory ASIX. Uživatelská příručka

Univerzální software pro programátory ASIX. Uživatelská příručka UP Univerzální software pro programátory ASIX Uživatelská příručka OBSAH 1. UP 3 2. Instalace 3 2.1.První spuštění 3 2.2.Výběr programátoru 3 2.3.Klávesové zkratky a bublinková nápověda 3 2.4.Práce se

Více

Základy HTML. Autor: Palito

Základy HTML. Autor: Palito Základy HTML Autor: Palito Zobrazení zdrojového kódu Zobrazení zdrojového kódu Každá stránka je na disku nebo na serveru uložena ve formě zdrojového kódu. Ten kód je psaný v jazyce HTML. Když si chcete

Více

Programování PICAXE18M2 v Assembleru

Programování PICAXE18M2 v Assembleru Nastavení programming editoru PICAXE PROGRAMMING EDITOR 6 Programování PICAXE18M2 v Assembleru Nastavit PICAXE Type PICAXE 18M2(WJEC-ASSEMBLER, stejně tak nastavit Simulation Pokud tam není, otevřeme přes

Více

+---------------------------------------------------------------+ +-----------------------------------------------------------+

+---------------------------------------------------------------+ +-----------------------------------------------------------+ +---------------------------------------------------------------+ +-----------------------------------------------------------+ AA SSSS MM MM AAAA SS SS MMM MMM AA AA SS MM M M MM AA AA SSSSS MM M M MM

Více

a operačních systémů

a operačních systémů NSWI2 2/2 ZS Principy počítačů a operačních systémů INSTRUKCE Kdybych nařídil generálovi, aby létal od květině ke květině a on by rozkaz neprovedl, nebyla by to chyba generálova, ale moje. král asteroidu

Více

Použití programu uscope k simulaci výukového přípravku pro předmět PMP

Použití programu uscope k simulaci výukového přípravku pro předmět PMP Použití programu uscope k simulaci výukového přípravku pro předmět PMP Ing. Tomáš Martinec Ph.D. TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií Tento materiál vznikl

Více

3. Počítačové systémy

3. Počítačové systémy 3. Počítačové systémy 3.1. Spolupráce s počítačem a řešení úloh 1. přímý přístup uživatele - neekonomické. Interakce při odlaďování programů (spusť., zastav.,krok, diagnostika) 2. dávkové zpracování (batch

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

velikosti vnitřních pamětí? Jaké periferní obvody má na čipu a k čemu slouží? Jaká je minimální sestava mikropočítače z řady 51 pro vestavnou aplikaci

velikosti vnitřních pamětí? Jaké periferní obvody má na čipu a k čemu slouží? Jaká je minimální sestava mikropočítače z řady 51 pro vestavnou aplikaci Některé otázky pro kontrolu připravenosti na test k předmětu MIP a problémové okruhy v l.sem. 2007 Náplní je látka z přednášek a cvičení do termínu testu v rozsahu přednášek, případně příslušného textu

Více

Kubatova 19.4.2007 Y36SAP 8. Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR. 2007-Kubátová Y36SAP-strojový kód 1

Kubatova 19.4.2007 Y36SAP 8. Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR. 2007-Kubátová Y36SAP-strojový kód 1 Y36SAP 8 Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR 2007-Kubátová Y36SAP-strojový kód 1 Architektura souboru instrukcí, ISA - Instruction Set Architecture Vysoká Architektura

Více

Základní orientace v MS Excel

Základní orientace v MS Excel Základní orientace v MS Excel Umíte-li ovládat textový editor MS Word, nebude Vám činit žádné potíže ovládání programu MS Excel. Panel nabídek, panel nástrojů, posuvníky, to všechno již znáte. Jen pracovní

Více

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty. Proměnná Pojmenované místo v paměti sloužící pro uložení hodnoty. K pojmenování můžeme použít kombinace alfanumerických znaků, včetně diakritiky a podtržítka Rozlišují se velká malá písmena Název proměnné

Více

SEMESTRÁLNÍ PROJEKT Y38PRO

SEMESTRÁLNÍ PROJEKT Y38PRO SEMESTRÁLNÍ PROJEKT Y38PRO Závěrečná zpráva Jiří Pomije Cíl projektu Propojení regulátoru s PC a vytvoření knihovny funkcí pro práci s regulátorem TLK43. Regulátor TLK43 je mikroprocesorový regulátor s

Více

DUM 06 téma: Tvorba makra pomocí VBA

DUM 06 téma: Tvorba makra pomocí VBA DUM 06 téma: Tvorba makra pomocí VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie

Více

od jaké adresy bude program umístěn? Intel Hex soubor, co to je, z čeho a jak se získá, k čemu slouží? Pseudoinstrukce (direktivy) překladače ORG, SET

od jaké adresy bude program umístěn? Intel Hex soubor, co to je, z čeho a jak se získá, k čemu slouží? Pseudoinstrukce (direktivy) překladače ORG, SET 1) Archiktura procesorů řady 51 Jednočipové mikropočítače řady X51. Jednočipové mikropočítače rodiny X51 - AT89C52, AT89S8252 obvodová struktura, druhy a velikosti paměťových prostorů, velikosti vnitřních

Více

CZ.1.07/1.5.00/

CZ.1.07/1.5.00/ Celá čísla Celočíselný typ má označení INTEGER. Kromě tohoto základního jsou k dispozici ještě další celočíselné typy, které uvádí následující tabulka. Každý typ umožňuje definovat určitý rozsah celých

Více

ISU Cvičení 3. Marta Čudová

ISU Cvičení 3. Marta Čudová ISU Cvičení 3 Marta Čudová Supercomputing Technologies Research Group Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole icudova@fit.vutbr.cz Program

Více

Výukový materiál Hardware je zaměřený především na výuku principů práce hardwaru a dále uvádí konkrétní příklady použití.

Výukový materiál Hardware je zaměřený především na výuku principů práce hardwaru a dále uvádí konkrétní příklady použití. Metodický list hardware Výukový materiál Hardware je zaměřený především na výuku principů práce hardwaru a dále uvádí konkrétní příklady použití. Postupuje od výčtu základních prvků, bez kterých se PC

Více

Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv. copyright. To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího

Více

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h> 9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include int main(void) { int dcislo, kolikbcislic = 0, mezivysledek = 0, i; int vysledek[1000]; printf("zadejte

Více

Tabulkový procesor. Základní rysy

Tabulkový procesor. Základní rysy Tabulkový procesor Tabulkový procesor je počítačový program zpracovávající data uložená v buňkách tabulky. Program umožňuje použití vzorců pro práci s daty a zobrazuje výsledné hodnoty podle vstupních

Více

Principy komunikace s adaptéry periferních zařízení (PZ)

Principy komunikace s adaptéry periferních zařízení (PZ) Principy komunikace s adaptéry periferních zařízení (PZ) Několik možností kategorizace principů komunikace s externími adaptéry, např.: 1. Podle způsobu adresace registrů, které jsou součástí adaptérů.

Více

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost Programování Algoritmus návod na vykonání činnosti, který nás od (měnitelných) vstupních dat přivede v konečném čase k výsledku přesně definovaná konečná posloupnost činností vedoucích k výsledku (postup,

Více

09. Memory management. ZOS 2006, L.Pešička

09. Memory management. ZOS 2006, L.Pešička 09. Memory management ZOS 2006, L.Pešička Správa paměti paměťová pyramida absolutní adresa relativní adresa počet bytů od absolutní adresy fyzický prostor adres fyzicky k dispozici výpočetnímu systému

Více

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů). Strojový kód k d a asembler procesoru MIPS Použit ití simulátoru SPIM K.D. - cvičení ÚPA 1 MIPS - prostředí 32 ks 32bitových registrů ( adresa registru = 5 bitů). Registr $0 je zero čte se jako 0x0, zápis

Více

BASPELIN CPM. Popis komunikačního protokolu verze EQ22 CPM EQ22 KOMPR

BASPELIN CPM. Popis komunikačního protokolu verze EQ22 CPM EQ22 KOMPR BASPELIN CPM Popis komunikačního protokolu verze EQ22 CPM EQ22 KOMPR říjen 2007 EQ22 CPM Obsah 1. Přehled příkazů 2 2. Popis příkazů 3 3. Časování přenosu 8 4. Připojení regulátorů na vedení 10 1. Přehled

Více

Komunikace modulu s procesorem SPI protokol

Komunikace modulu s procesorem SPI protokol Komunikace modulu s procesorem SPI protokol Propojení dvouřádkového LCD zobrazovače se sběrnicí SPI k procesotru (dále již jen MCU microcontroller unit) a rozložení pinů na HSES LCD modulu. Komunikace

Více

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 2

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 2 UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 2 Větvení programu, pole a cyklus v jazyce symbolických adres Jan Dolinay Petr Dostálek Zlín 2013 Tento

Více

Microsoft Office. Excel vlastní formát buněk

Microsoft Office. Excel vlastní formát buněk Microsoft Office Excel vlastní formát buněk Karel Dvořák 2011 Formát buněk Běžné formáty buněk vybíráme v seznamu formátů ve skupině Číslo. V některých případech potřebujeme formát v trochu jiné podobě,

Více

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti

Více

Kódováni dat. Kódy používané pro strojové operace

Kódováni dat. Kódy používané pro strojové operace Kódováni dat Před zpracováním dat například v počítači je třeba znaky převést do tvaru, kterému počítač rozumí, tj. přiřadit jim určité kombinace bitů. Tomuto převodu se říká kódování. Kód je předpis pro

Více

VISUAL BASIC. Práce se soubory

VISUAL BASIC. Práce se soubory VISUAL BASIC Práce se soubory Práce se soubory 1/2 2 Vstupní data pro programy bývají uloženy do souborů Vstupy pro výpočet, nastavení vzhledu aplikace Výsledky práce programu je potřeba uchovat uložit

Více

Mikroprocesorová technika (BMPT)

Mikroprocesorová technika (BMPT) Mikroprocesorová technika (BMPT) Přednáška č. 10 Číselné soustavy v mikroprocesorové technice Ing. Tomáš Frýza, Ph.D. Obsah přednášky Číselné soustavy v mikroprocesorové technice Dekadická, binární, hexadecimální

Více

Počítač jako prostředek řízení. Struktura a organizace počítače

Počítač jako prostředek řízení. Struktura a organizace počítače Řídicí počítače - pro řízení technologických procesů. Specielní přídavná zařízení - I/O, přerušovací systém, reálný čas, Č/A a A/Č převodníky a j. s obsluhou - operátorské periferie bez obsluhy - operátorský

Více

MIKROKONTROLÉRY. Jednočipový počítač nebo také angl. Microcontroller (Mikrokontrolér, MCU, µc)

MIKROKONTROLÉRY. Jednočipový počítač nebo také angl. Microcontroller (Mikrokontrolér, MCU, µc) Jednočipový počítač nebo také angl. Microcontroller (Mikrokontrolér, MCU, µc) je většinou monolitický integrovaný obvod obsahující kompletní mikropočítač. Jednočipové počítače se vyznačují velkou spolehlivostí

Více

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec StatSoft Vzorce Jistě se Vám již stalo, že data, která máte přímo k dispozici, sama o sobě nestačí potřebujete je nějak upravit, vypočítat z nich nějaké další proměnné, provést nějaké transformace, Jinak

Více

KOMBINAČNÍ LOGICKÉ OBVODY

KOMBINAČNÍ LOGICKÉ OBVODY Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/03.0009 KOMBINAČNÍ LOGICKÉ OBVODY U těchto obvodů je vstup určen jen výhradně kombinací vstupních veličin. Hodnoty

Více

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM CÍLE KAPITOLY Využívat pokročilé možnosti formátování, jako je podmíněné formátování, používat vlastní formát čísel a umět pracovat s listy. Používat

Více

Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv. copyright. To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího

Více

Ovládání Open Office.org Calc Ukládání dokumentu : Levým tlačítkem myši kliknete v menu na Soubor a pak na Uložit jako.

Ovládání Open Office.org Calc Ukládání dokumentu : Levým tlačítkem myši kliknete v menu na Soubor a pak na Uložit jako. Ukládání dokumentu : Levým tlačítkem myši kliknete v menu na Soubor a pak na Uložit jako. Otevře se tabulka, v které si najdete místo adresář, pomocí malé šedočerné šipky (jako na obrázku), do kterého

Více

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě PHP PHP původně znamenalo Personal Home Page a vzniklo v roce 1996, od té doby prošlo velkými změnami a nyní tato zkratka znamená Hypertext Preprocessor. PHP je skriptovací programovací jazyk, určený především

Více

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

Číselné vyjádření hodnoty. Kolik váží hrouda zlata? Čísla a logika Číselné vyjádření hodnoty Au Kolik váží hrouda zlata? Dekadické vážení Když přidám osmé závaží g, váha se převáží => závaží zase odeberu a začnu přidávat závaží x menší 7 závaží g 2 závaží

Více

Laboratorní cvičení z předmětu Elektrická měření 2. ročník KMT

Laboratorní cvičení z předmětu Elektrická měření 2. ročník KMT MĚŘENÍ S LOGICKÝM ANALYZÁTOREM Jména: Jiří Paar, Zdeněk Nepraš Datum: 2. 1. 2008 Pracovní skupina: 4 Úkol: 1. Seznamte se s ovládáním logického analyzátoru M611 2. Dle postupu měření zapojte pracoviště

Více

Jak do počítače. aneb. Co je vlastně uvnitř

Jak do počítače. aneb. Co je vlastně uvnitř Jak do počítače aneb Co je vlastně uvnitř Po odkrytí svrchních desek uvidíme... Von Neumannovo schéma Řadič ALU Vstupně/výstupní zař. Operační paměť Počítač je zařízení, které vstupní údaje transformuje

Více

Vzorce. Suma. Tvorba vzorce napsáním. Tvorba vzorců průvodcem

Vzorce. Suma. Tvorba vzorce napsáním. Tvorba vzorců průvodcem Vzorce Vzorce v Excelu lze zadávat dvěma způsoby. Buď známe přesný zápis vzorce a přímo ho do buňky napíšeme, nebo použijeme takzvaného průvodce při tvorbě vzorce (zejména u složitějších funkcí). Tvorba

Více

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zjednodušené schéma systému z základ hardware pro mainframe tvoří: operační pamět - MAIN / REAL STORAGE jeden

Více

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Překladač - Assembler. kat. měření, ČVUT - FEL, Praha A3B38MMP, X38MIP Přednáška 3 - část. J. Fischer

Překladač - Assembler. kat. měření, ČVUT - FEL, Praha A3B38MMP, X38MIP Přednáška 3 - část. J. Fischer Překladač - Assembler Přednáška 3 - část A3B38MMP, X38MIP -2011 kat. měření, ČVUT - FEL, Praha J. Fischer A3B38MMP, 2012,J.Fischer, kat. měření, ČVUT - FEL 1 Náplň Úloha UART, specifikace zadání, vysvětlení

Více

Program pro tvorbu technických výpočtů. VIKLAN - Výpočty. Uživatelská příručka. pro seznámení se základními možnostmi programu. Ing.

Program pro tvorbu technických výpočtů. VIKLAN - Výpočty. Uživatelská příručka. pro seznámení se základními možnostmi programu. Ing. Program pro tvorbu technických výpočtů VIKLAN - Výpočty Uživatelská příručka pro seznámení se základními možnostmi programu Ing. Josef Spilka VIKLAN - Výpočty Verse 1.10.5.1 Copyright 2010 Ing. Josef Spilka.

Více

SIC1602A20. Komunikační protokol

SIC1602A20. Komunikační protokol SIC1602A20 Komunikační protokol SIC1602A20 Mechanické parametry Rozměr displeje 80 x 36 mm Montážní otvory 75 x 31 mm, průměr 2.5mm Distanční sloupky s vnitřním závitem M2.5, možno využít 4mm hloubky Konektor

Více

Paměti a jejich organizace

Paměti a jejich organizace Kapitola 5 Paměti a jejich organizace 5.1 Vnitřní a vnější paměti, vlastnosti jednotlivých typů Vnější paměti Jsou umístěny mimo základní jednotku. Lze je zařadit mezi periferní zařízení. Zápis a čtení

Více

SEKVENČNÍ LOGICKÉ OBVODY

SEKVENČNÍ LOGICKÉ OBVODY Sekvenční logický obvod je elektronický obvod složený z logických členů. Sekvenční obvod se skládá ze dvou částí kombinační a paměťové. Abychom mohli určit hodnotu výstupní proměnné, je potřeba u sekvenčních

Více

Procesor z pohledu programátora

Procesor z pohledu programátora Procesor z pohledu programátora Terminologie Procesor (CPU) = řadič + ALU. Mikroprocesor = procesor vyrobený monolitickou technologií na čipu. Mikropočítač = počítač postavený na bázi mikroprocesoru. Mikrokontrolér

Více

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz Assembler RISC T.Mainzer, kiv.zcu.cz RISC RISC, neboli Reduced Instruction Set Computer - koncepce procesorů s redukovaným souborem instrukcí (vs. CISC, neboli Complex Instruction Set Computer, "bohatý"

Více