Vážeí zákazíci, dovolujeme si Vás upozorit, že a tuto ukázku kihy se vztahují autorská práva, tzv. copyright. To zameá, že ukázka má sloužit výhradì pro osobí potøebu poteciálího kupujícího (aby èteáø vidìl, jakým zpùsobem je titul zpracová a mohl se také podle tohoto, jako jedoho z parametrù, rozhodout, zda titul koupí èi e). Z toho vyplývá, že eí dovoleo tuto ukázku jakýmkoliv zpùsobem dále šíøit, veøejì èi eveøejì apø. umis ováím a datová média, a jié iteretové stráky (ai prostøedictvím odkazù) apod. redakce akladatelství BEN techická literatura redakce@be.cz
29 PØÍKLAD È. 11 VÝPIS ÈÍSLA POMOCÍ PRINTF NA MLCDGEN Nyí si ukážeme, jak upravit pøíklad è. 10 tak, abychom mohli používat fukci pritf pro výpis textu a modulu MLCDGEN. PROG_11: LQFOXGHUHJ[K! LQFOXGHVWGLRK! YRLGFOHDU ^ 7% 6%8) ZKLOH7, 7, ` YORåHQtKODYLþNRYpKR VRXERUXVGHILQLFtSULQWI FKDUSXWFKDUFKDUF ^ 7% 6%8) F ZKLOH7, 7, S HVP URYiQtYêVWXSX UHWXUQF ` YRLGPDLQ ^ LQWD E F DE 7+ 702' [ 75 6&21 3&21 QDVWDYHQtþDVRYDþHD8$57 FOHDU VPD]iQt/&' SULQWID GE GF GDEF ZKLOH ` YêSLVS HVSULQWI 62 Programováí mikrokotrolérù s jádrem 8051 v jazyce C A
Do zdrojového textu musíme vložit hlavièkový soubor stdio.h. Výpis tedy ebudeme øešit pomocí døíve zavedeé fukce write, ale fukcí putchar. Takže úprava je velmi jedoduchá. Otestováí fukce pritf je ukázáo a výpisu èísel a, b, c. Hodoty jsou a = 5, b = 8, c = a+b. Na displeji se zobrazí text: a=5, b=8, c=13. Pøípravek MLCDGEN pøipojíme opìt a port P3. A Programováí mikrokotrolérù s jádrem 8051 v jazyce C 63
42 PØÍPRAVEK MRX555 MÌØENÍ ODPORU MEZIPØEVODEM Pro pøevod odporu ebo kapacity a kmitoèet je tøeba použít astabilí klopý obvod (multivibrátor). Klasické zapojeí multivibrátoru s obvodem NE555 uvádí obr. 42.1. V tomto obvodu je kodezátor C ejdøíve abíje pøes rezistory R 0 a R a 2/3 apájecího apìtí (a výstupu je log. 1) a potom vybíje pøes rezistor R a 1/3 apájecího apìtí (a výstupu je log. 0). Nabíjeí odpovídá iterval t +, vybíjeí pak iterval t dle obr. 42.2. Mìøeý odpor je pøedstavová rezistorem R, mìøeá kapacita pak kodezátorem C. Souèástky R 0 a C 0 jsou uté pro správou fukci zapojeí. C 0 je blokovací kodezátor øídicího apìtí obvodu 555, R 0 zajiš uje abíjeí kodezátoru C. 8 && YêVWXS 1( 5 5 & & Obr. 42.1 Obvod NE555 zapojeý jako multivibrátor YêVWXS W W W ± Obr. 42.2 Èasové prùbìhy výstupu obvodu dle obr. 42.1 A Programováí mikrokotrolérù s jádrem 8051 v jazyce C 95
Pro zapojeí z obr. 42.1 platí tyto vztahy: doby trváí obou fází: W ( 5 5 ) &, W 5 & kmitoèet: I 7 W W 5 5 & Nejjedodušším zpùsobem mìøeí odporu R ebo kapacity C je staovit dobu trváí log. 0 (tedy iterval t ). Mìøeá hodota je totiž pøímo úmìrá této dobì. Staoveí kmitoètu je sazší (provede se pomocí èítaèe), ovšem výpoèet mìøeých hodot R ebo C je trochu obtížìjší. Mìøeí èasových itervalù, periody a støídy Pøi programovém mìøeí doby trváí log. 1 a log. 0 je ezbytì uté staovit správì okamžik poèátku a koce (detekovat sigál hraovì). Pøesost mìøeí lze zvýšit tak, že dobu trváí log. 1 a log. 0 vyhodocujeme z ìkolika period jako aritmetický prùmìr. YVWXS D E W Obr. 42.3 7 = D + E Mìøeí periody a støídy D 6 = D + E Mìøeí periody a støídy probíhá podobì. V obou pøípadech musíme urèit dobu trváí log. 1 a log. 0 (v obr. 42.3 ozaèeo jako a a b). Perioda je pak defiováa jako souèet doby trváí log. 1 a log. 0. Støída je podíl doby trváí log. 1 a periody. Mìøeí kmitoètu Nejjedodušší zpùsob mìøeí kmitoètu je založe a použití èítaèe. Kmitoèet je totiž defiová jako poèet opakováí periodického dìje za jedotku èasu. Pokud budeme èítat impulzy bìhem jedé sekudy, bude jejich poèet odpovídat kmitoètu v Hz. Napøíklad pro vstupí kmitoèet 1 khz apoèítáme za 1 s v ideálím pøípadì 1000 impulzù (takový bude obsah èítaèe). 96 Programováí mikrokotrolérù s jádrem 8051 v jazyce C A
C POPIS DÙLEŽITÝCH PRVKÙ VÝVOJOVÉHO PROSTØEDÍ KEIL µvision4 Nyí se sezámíme s pøíkazy vývojového prostøedí Keil µvisio4, které se ejèastìji používají. Jedá se zejméa o tyto položky hlaví abídky: Project Ope Project otevøe døíve vytvoøeý projekt, Project Close Project zavøe aktuálí projekt, Project Select Device for Target zobrazí dialog pro volbu procesoru, pro který je urèe cílový soubor, Project Optios for Target zobrazí dialog, který pøedevším umožòuje volbu procesoru (viz obr. C.1), pamì ového modelu (viz obr. C.2, lze zvolit i kmitoèet procesoru, který se ásledì používá pøi ladìí) a výstupího souboru (viz obr. C.3, volba Create HEX File zajistí vytvoøeí výsledého HEX souboru, zrušeím volby Debug Iformatio zajistíme odebráí ladicích iformací z výsledého programu). Project Build Target pøeloží projekt. Obr. C.1 Výbìr procesoru Ladìí Ladìí (Debuggig) umožòuje sledovat bìh programu simulováím èiosti mikrokrotroléru. Ladicí režim vyvoláme pomocí abídky Debug Start/Stop Debug Sessio. Po této volbì se aktivují další položky abídky Debug: Reset CPU resetuje mikrokotrolér, 144 Programováí mikrokotrolérù s jádrem 8051 v jazyce C A