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á slouit výhradnì pro osobní potøebu potenciálního kupujícího (aby ètenáø vidìl, jakým zpùsobem je titul zpracován a mohl se také podle tohoto, jako jednoho z parametrù, rozhodnout, zda titul koupí èi ne). Z toho vyplývá, e není dovoleno tuto ukázku jakýmkoliv zpùsobem dále íøit, veøejnì èi neveøejnì napø. umisováním na datová média, na jiné internetové stránky (ani prostøednictvím odkazù) apod. redakce nakladatelství BEN technická literatura
[email protected]
29 PØÍKLAD È. 11
VÝPIS ÈÍSLA
POMOCÍ PRINTF NA MLCDGEN Nyní si ukáeme, jak upravit pøíklad è. 10 tak, abychom mohli pouívat funkci printf pro výpis textu na modulu MLCDGEN. PROG_11: LQFOXGHUHJ[K! LQFOXGHVWGLRK!
YORåHQtKODYLþNRYpKR VRXERUXVGHILQLFtSULQWI
YRLGFOHDU ^ 7% 6%8) ZKLOH7, 7, ` 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
VPD]iQt/&' FOHDU SULQWID GE GF GDEF
ZKLOH `
62
YêSLVS HVSULQWI
Programování mikrokontrolérù s jádrem 8051 v jazyce C
A
Do zdrojového textu musíme vloit hlavièkový soubor stdio.h. Výpis tedy nebudeme øeit pomocí døíve zavedené funkce write, ale funkcí putchar. Take úprava je velmi jednoduchá. Otestování funkce printf je ukázáno na výpisu èísel a, b, c. Hodnoty 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 na port P3.
A
Programování mikrokontrolérù s jádrem 8051 v jazyce C
63
42 PØÍPRAVEK MRX555 MÌØENÍ ODPORU MEZIPØEVODEM Pro pøevod odporu nebo kapacity na kmitoèet je tøeba pouít astabilní klopný obvod (multivibrátor). Klasické zapojení multivibrátoru s obvodem NE555 uvádí obr. 42.1. V tomto obvodu je kondenzátor C nejdøíve nabíjen pøes rezistory R0 a R na 2/3 napájecího napìtí (na výstupu je log. 1) a potom vybíjen pøes rezistor R na 1/3 napájecího napìtí (na výstupu je log. 0). Nabíjení odpovídá interval t+, vybíjení pak interval t dle obr. 42.2. Mìøený odpor je pøedstavován rezistorem R, mìøená kapacita pak kondenzátorem C. Souèástky R0 a C0 jsou nutné pro správnou funkci zapojení. C0 je blokovací kondenzátor øídicího napìtí obvodu 555, R0 zajiuje nabíjení kondenzátoru C.
8&&
5
YêVWXS
1(
5
&
&
Obr. 42.1 Obvod NE555 zapojený jako multivibrátor
YêVWXS
W
W
W±
Obr. 42.2 Èasové prùbìhy výstupu obvodu dle obr. 42.1
A
Programování mikrokontrolérù s jádrem 8051 v jazyce C
95
Pro zapojení z obr. 42.1 platí tyto vztahy: doby trvání obou fází:
W
⋅ ( 5 5 ) ⋅ & , W
⋅ 5 ⋅ &
kmitoèet:
I
7
W W
5 5 ⋅ &
Nejjednoduím zpùsobem mìøení odporu R nebo kapacity C je stanovit dobu trvání log. 0 (tedy interval t). Mìøená hodnota je toti pøímo úmìrná této dobì. Stanovení kmitoètu je snazí (provede se pomocí èítaèe), ovem výpoèet mìøených hodnot R nebo C je trochu obtínìjí. Mìøení èasových intervalù, periody a støídy Pøi programovém mìøení doby trvání log. 1 a log. 0 je nezbytnì nutné stanovit správnì okamik poèátku a konce (detekovat signál hranovì). Pøesnost mìøení lze zvýit tak, e dobu trvání log. 1 a log. 0 vyhodnocujeme z nìkolika period jako aritmetický prùmìr.
YVWXS W D
7 = D+E
E
6=
D D+E
Obr. 42.3 Mìøení periody a støídy
Mìøení periody a støídy probíhá podobnì. V obou pøípadech musíme urèit dobu trvání log. 1 a log. 0 (v obr. 42.3 oznaèeno jako a a b). Perioda je pak definována jako souèet doby trvání log. 1 a log. 0. Støída je podíl doby trvání log. 1 a periody. Mìøení kmitoètu Nejjednoduí zpùsob mìøení kmitoètu je zaloen na pouití èítaèe. Kmitoèet je toti definován jako poèet opakování periodického dìje za jednotku èasu. Pokud budeme èítat impulzy bìhem jedné sekundy, bude jejich poèet odpovídat kmitoètu v Hz. Napøíklad pro vstupní kmitoèet 1 kHz napoèítáme za 1 s v ideálním pøípadì 1000 impulzù (takový bude obsah èítaèe).
96
Programování mikrokontrolérù s jádrem 8051 v jazyce C
A
C
POPIS DÙLEITÝCH PRVKÙ VÝVOJOVÉHO PROSTØEDÍ KEIL µVISION4
Nyní se seznámíme s pøíkazy vývojového prostøedí Keil µVision4, které se nejèastìji pouívají. Jedná se zejména o tyto poloky hlavní nabídky: n
Project|Open Project otevøe døíve vytvoøený projekt,
n
Project|Close Project zavøe aktuální projekt,
n
Project|Select Device for Target zobrazí dialog pro volbu procesoru, pro který je urèen cílový soubor,
n
Project|Options 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 následnì pouívá pøi ladìní) a výstupního souboru (viz obr. C.3, volba Create HEX File zajistí vytvoøení výsledného HEX souboru, zruením volby Debug Information zajistíme odebrání ladicích informací z výsledného programu).
n
Project|Build Target pøeloí projekt.
Obr. C.1
Výbìr procesoru
Ladìní Ladìní (Debugging) umoòuje sledovat bìh programu simulováním èinnosti mikrokrontroléru. Ladicí reim vyvoláme pomocí nabídky Debug|Start/Stop Debug Session. Po této volbì se aktivují dalí poloky nabídky Debug: n
Reset CPU resetuje mikrokotrolér,
144
Programování mikrokontrolérù s jádrem 8051 v jazyce C
A