Rev 3235 Rev 3255
Line -... Line 1...
-   1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-   2 <html>
-   3 <head>
-   4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-   5 <title> MB01B </title>
-   6 <meta name="keywords" content="stavebnice MLAB melodický zvonek">
-   7 <meta name="description" content="Projekt MLAB, Programovatelný melodický zvonek">
-   8 <!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE -->
-   9 <link rel="StyleSheet" href="../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl">
-   10 <link rel="StyleSheet" href="../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print">
-   11 <link rel="shortcut icon" type="image/x-icon" href="../../../../Web/PIC/MLAB.ico">
-   12 <script type="text/javascript" src="../../../../Web/JS/MLAB_Menu.js"></script>
-   13 <!-- AUTOINCLUDE END -->
-   14 </head>
-   15  
-   16 <body lang="cs">
-   17  
-   18 <!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE -->
-   19 <!-- ============== HLAVICKA ============== -->
-   20 <div class="Header">
-   21 <script type="text/javascript">
-   22 <!--
-   23 SetRelativePath("../../../../");
-   24 DrawHeader();
-   25 // -->
-   26 </script>
-   27 <noscript>
-   28 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
-   29 </noscript>
-   30 </div>
-   31 <!-- AUTOINCLUDE END -->
-   32  
-   33 <!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE -->
-   34 <!-- ============== MENU ============== -->
-   35 <div class="Menu">
-   36 <script type="text/javascript">
-   37 <!--
-   38 SetRelativePath("../../../../");
-   39 DrawMenu();
-   40 // -->
-   41 </script>
-   42 <noscript>
-   43 <p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p>
-   44 </noscript>
-   45 </div>
-   46 <!-- AUTOINCLUDE END -->
-   47  
-   48 <!-- ============== TEXT ============== -->
-   49 <div class="Text">
-   50 <p class="Title">
-   51 Melodický zvonek
-   52 </p>
-   53 <p class=Autor>
-   54 Milan Horkel
-   55 </p>
-   56 <p class="Subtitle">
-   57 Melodický zvonek MB01 používá pro generování hudebních
-   58 tónů procesor PIC16F819 a umožňuje snadné přeprogramování melodií. Zvonek je
-   59 možno napájet z&nbsp;baterie, protože v&nbsp;klidu neodebírá prakticky žádný
-   60 proud. Na výstup je možné připojit reproduktor.
-   61 </p>
-   62 <p class="Subtitle">
-   63 <img width=290 height=235 src="Pictures/image001.jpg"
-   64 alt="Obrázek melodického zvonku">
-   65 </p>
-   66 <p>
-   67 <a href="../MB01B.cs.pdf"><img class="NoBorder"
-   68 src="../../../../Web/PIC/FileIco_PDF.ico"
-   69 alt="Acrobat">&nbsp;PDF verze</a>
-   70 </p>
-   71  
-   72 <h1> Technické parametry </h1>
-   73  
-   74 <table>
-   75 <tr>
-   76 <th> Parametr </th>
-   77 <th> Hodnota </th>
-   78 <th> Poznámka </th>
-   79 </tr>
-   80 <tr>
-   81 <td> Napájení </td>
-   82 <td> 9V </td>
-   83 <td> Asi od 4V, maximum 12V </td>
-   84 </tr>
-   85 <tr>
-   86 <td> Spotřeba v klidu </td>
-   87 <td> ≈0 </td>
-   88 <td> Dáno zbytkovým proudem tranzistorů Q2 a Q3 </td>
-   89 </tr>
-   90 <tr>
-   91 <td> Spotřeba při běhu (potichu) </td>
-   92 <td> 20mA / 30mA </td>
-   93 <td> Při 9V / 12V </td>
-   94 </tr>
-   95 <tr>
-   96 <td> Spotřeba maximálně (nahlas) </td>
-   97 <td> 150mA </td>
-   98 <td> Při 12V </td>
-   99 </tr>
-   100 <tr>
-   101 <td> Počet melodií </td>
-   102 <td> Max 15 </td>
-   103 <td> Všechny možné kombinace 4 tlačítek </td>
-   104 </tr>
-   105 <tr>
-   106 <td> Délka skladeb celkem </td>
-   107 <td> 512 </td>
-   108 <td> Počítají se noty, mezery a změny parametrů (například tempa) </td>
-   109 </tr>
-   110 <tr>
-   111 <td> Spouštění skladeb </td>
-   112 <td> 4 tlačítka </td>
-   113 <td> Skladby od páté výše se spouštějí stiskem více tlačítek najednou </td>
-   114 </tr>
-   115 <tr>
-   116 <td> Rozměry </td>
-   117 <td> 61x71x20mm </td>
-   118 <td> Bez přečnívajícího konektoru a šroubů </td>
-   119 </tr>
-   120 </table>
-   121  
-   122 <h1> Popis konstrukce </h1>
-   123  
-   124 <h2> Slovo úvodem </h2>
-   125  
-   126 <p>
-   127 Cílem návrhu tohoto melodického zvonku bylo navrhnout moderní řešení,
-   128 se kterým i méně vybavený amatér může něco dále dělat. Díky pokroku
-   129 v&nbsp;technologii výroby integrovaných obvodů se v&nbsp;poslední době
-   130 začínají objevovat velmi zajímavé mikrořadiče (jednočipové mikropočítače)
-   131 za velmi rozumnou cenu. Zde byl použit jeden z&nbsp;nich, jmenuje se
-   132 PIC16F819 a vyrábí jej firma MICROCHIP.
-   133 </p>
-   134  
-   135 <p>
-   136 Procesor je poměrně rychlý (5 miliónů instrukcí za sekundu), má malou
-   137 spotřebu (cca 2mA za plného běhu) a funguje v širokém rozsahu napájení
-   138 (od 2V do 5.5V). Je tedy velmi vhodný pro zařízení napájené z&nbsp;baterie.
-   139 Kromě toho má FLASH paměť programu (2048 slov po 14 bitech), kterou je
-   140 možné mnohokrát přeprogramovat. Procesor může tuto paměť FLASH sám
-   141 přeprogramovat.
-   142 </p>
-   143  
-   144 <p>
-   145 Část paměti programu je vyhrazena pro uložení melodií a je tak možné
-   146 dodatečně melodie měnit. Není k&nbsp;tomu potřeba žádný speciální
-   147 programátor, stačí připojit obyčejné PC. Nové definice skladeb se
-   148 přenášejí do melodického zvonku prostřednictvím sériové linky RS232.
-   149 Aby nemohlo dojít k&nbsp;nechtěnému smazání programu, je část paměti
-   150 FLASH procesoru uzamčena, aby ji procesor nemohl přepsat.
-   151 </p>
-   152  
-   153 <h2> Zapojení melodického zvonku </h2>
-   154  
-   155 <p>
-   156 <img width=486 height=888 src="Pictures/image003.gif"
-   157 alt="">
-   158 </p>
-   159  
-   160 <h3> Procesor a obvody jeho napájení</h3>
-   161  
-   162 <p>
-   163 Srdcem zvonku je procesor U1. Časování je řízeno krystalem X1. Aby bylo
-   164 možno procesor naprogramovat přímo v&nbsp;zapojení, je zde programovací
-   165 konektor J6, který slouží pro naprogramování programu.
-   166 V&nbsp;běžném provozu ani při přeprogramovávání melodií již není třeba.
-   167 </p>
-   168  
-   169 <p>
-   170 Zvonek začíná hrát po stisku některého tlačítka (nebo více najednou).
-   171 Při stlačení tlačítka se přes diody D3 až D6 přivede zemní potenciál
-   172 na vstupy procesoru. Vstupní nožičky procesoru jsou opatřeny ochrannými
-   173 diodami (jsou uvnitř procesoru) a přes tyto diody dojde k&nbsp;připojení
-   174 zemního potenciálu i signálu GND_PIC. Tím dojde k&nbsp;tomu, že procesor
-   175 je napájen (přes odpor R1) a jeho program se rozběhne. Protože procesor
-   176 snese maximálně 5.5V, je velikost napájecího napětí mezi vývody GND a VDD
-   177 procesoru omezeno Zenerovou diodou D2 na cca 5V.
-   178 </p>
-   179  
-   180 <p>
-   181 Po rozběhu programu se nejdříve aktivuje signál POWER_ON# (do stavu L)
-   182 a přes Q1 a Q2 se připojí GND_PIC na zem. Po skončení melodie se signál
-   183 POWER_ON# deaktivuje (přejde do třetího stavu) a procesor tak sám sobě
-   184 vypne napájení. Tím je zajištěna prakticky nulová klidová spotřeba.
-   185 </p>
-   186  
-   187 <p>
-   188 Na vývodu RB3 procesoru generuje program výstupní signál (ať už přímo
-   189 digitálně nebo pomocí PWM) a na vstupu RB1 očekává sériová data
-   190 z&nbsp;počítače při přeprogramovávání melodií. Přestože RS232 signály jsou
-   191 v&nbsp;rozsahu +/- 5 až +/-15V, je možné tyto signály připojit přímo
-   192 ke vstupu pouze přes omezovací odpor R7. Ochranné diody na vstupu procesoru
-   193 ochrání vstupní tranzistory před napětím nad a pod napájecím napětím
-   194 procesoru. Odpor R8 zajišťuje definovanou úroveň na vstupu, pokud není
-   195 nic připojeno.
-   196 </p>
-   197  
-   198 <p>
-   199 Propojka PGM&nbsp;MODE (J5) slouží k&nbsp;vynucenému zapnutí napájení
-   200 v&nbsp;době programování nových melodií i v&nbsp;době programování
-   201 programu do procesoru přes ISP konektor (J6) . Program před vlastním
-   202 programováním paměti FLASH kontroluje, že je tato propojka nasunuta,
-   203 a je tak zajištěno, že ani při vybité baterii nemůže prakticky dojít
-   204 ke smazání melodie. Ke smazání programu nemůže dojít nikdy, protože tato
-   205 část paměti programu je chráněna nastavením ochranných bitů konfiguračního
-   206 slova a procesor sám sobě tuto paměť nemůže přepsat.
-   207 </p>
-   208  
-   209 <h3> NF Zesilovač </h3>
-   210  
-   211 <p>
-   212 Jako koncový zesilovač byl použit obvod LM386 v&nbsp;klasickém zapojení.
-   213 Jeho napájení je spínáno tranzistorem Q3 jen po dobu hraní melodie.
-   214 Tranzistor Q3 je buzen vývodem RA4 procesoru PIC.
-   215 </p>
-   216  
-   217 <h2> Mechanická konstrukce </h2>
-   218  
-   219 <p>
-   220 Melodický zvonek je sestaven na jednostranném plošném spoji se&nbsp;čtyřmi
-   221 upevňovacími otvory v&nbsp;rozích. Podél kratší strany jsou 4 tlačítka
-   222 pro spouštění melodií. Ke konektoru J3 je možné připojit vnější tlačítka.
-   223 Místo odporového trimru P1 je možné připojit (logaritmický) potenciometr
-   224 jako regulátor hlasitosti.
-   225 </p>
-   226  
-   227 <h2> Osazení a oživení </h2>
-   228  
-   229 <h3> Osazení </h3>
-   230  
-   231 <p>
-   232 Při osazování je třeba dodržet polarity diod, tranzistorů a elektrolytických
-   233 kondenzátorů. Pokud jsou použity funkční součástky a jsou správně osazeny,
-   234 mělo by zařízení fungovat na první pokus. Podmínkou je použití naprogramovaného
-   235 procesoru.
-   236 </p>
-   237  
-   238 <h3> Oživení </h3>
-   239  
-   240 <p>
-   241 Nejprve zkontrolujeme polaritu ochranné diody D1 a vizuálně zkontrolujeme
-   242 zejména zkraty. Procesor i zesilovač můžeme zasunout do patic. Pokud si
-   243 troufáme, můžeme je připájet přímo do desky.
-   244 </p>
-   245  
-   246 <p>
-   247 Pokud máme procesor předem naprogramovaný, je oživení snazší, protože by
-   248 zvonek měl rovnou začít fungovat. Nejprve připojíme zdroj o napětí cca 5V
-   249 s&nbsp;omezením proudu (asi na 100mA). Ujistíme se, že <b>není</b>
-   250 nasunuta propojka na J5. V&nbsp;klidu by zvonek neměl odebírat prakticky
-   251 žádný proud. Po stisku tlačítka by měl zvonek hrát některou
-   252 z&nbsp;předprogramovaných melodií. Pokud hraje, postupně zvyšujeme napájecí
-   253 napětí až na cca 10V a přitom kontrolujeme, zda napájecí napětí procesoru
-   254 (nejsnáze se měří na Zenerově diodě D2) nepřekročí 5.5V.
-   255 </p>
-   256  
-   257 <p>
-   258 Pokud nehraje je třeba zkontrolovat toto:
-   259 </p>
-   260  
-   261 <ul>
-   262 <li> napájení na procesoru při stisku tlačítka (dioda D2) – cca 3 až 5V, </li>
-   263 <li> zda kmitá oscilátor procesoru – logickou sondou na vývodu CLKO procesoru, </li>
-   264 <li> zda fungují tlačítka – napětí na RB4 a RB7 klesá k&nbsp;nule při stisku tlačítka, </li>
-   265 <li> zda spínají tranzistory Q1 a Q2 – při nasunuté propojce na J5, </li>
-   266 <li> zda procesor generuje zvuk - na RB3 telefonním sluchátkem nebo piezoelementem proti zemi, </li>
-   267 <li> zda spíná Q3 napětí pro zesilovač U2. </li>
-   268 </ul>
-   269  
-   270 <p>
-   271 Po skončení skladby by se zvonek měl opět vypnout a neměl by odebírat žádný proud.
-   272 </p>
-   273  
-   274 <p>
-   275 Pokud procesor nemáme nahraný, osadíme jej do zvonku, <b>nasuneme</b>
-   276 propojku na J5 a zkontrolujeme při postupném zvyšování napájecího napětí,
-   277 zda na procesoru (D2) je napětí cca 5V. Pokud ano, je možno ke konektoru J6
-   278 připojit programátor a nahrát do procesoru program. Propojku J5 opět vyjmeme.
-   279 Zbytek oživování je stejný.
-   280 </p>
-   281  
-   282 <p>
-   283 <img width=432 height=346 src="Pictures/image002.jpg"
-   284 alt="Osazovák">
-   285 </p>
-   286  
-   287 <table class="Soupiska">
-   288 <tr>
-   289 <th> Reference </th>
-   290 <th> Hodnota </th>
-   291 <th> Reference </th>
-   292 <th> Hodnota </th>
-   293 </tr>
-   294 <tr>
-   295 <th colspan="2"> Odpory </th>
-   296 <th colspan="2"> Polovodiče a krystaly </th>
-   297 </tr>
-   298 <tr>
-   299 <td> R15 </td>
-   300 <td> 10 </td>
-   301 <td> D1 </td>
-   302 <td> 1N4005 </td>
-   303 </tr>
-   304 <tr>
-   305 <td> R4,R1 </td>
-   306 <td> 680 </td>
-   307 <td> D3,D4,D5,D6 </td>
-   308 <td> 1N4148 </td>
-   309 </tr>
-   310 <tr>
-   311 <td> R11 </td>
-   312 <td> 2k2 </td>
-   313 <td> D2 </td>
-   314 <td> BZX83V005.1 </td>
-   315 </tr>
-   316 <tr>
-   317 <td> R2,R3,R5,R6,R9,R10,R13,R14 </td>
-   318 <td> 10k </td>
-   319 <td> Q1 </td>
-   320 <td> BC327 </td>
-   321 </tr>
-   322 <tr>
-   323 <td> R7,R12 </td>
-   324 <td> 27k </td>
-   325 <td> Q2 </td>
-   326 <td> BC337 </td>
-   327 </tr>
-   328 <tr>
-   329 <td> R8 </td>
-   330 <td> 100k </td>
-   331 <td> Q3 </td>
-   332 <td> BC640 </td>
-   333 </tr>
-   334 <tr>
-   335 <th colspan="2"> Odporové trimry </th>
-   336 <td> U1 </td>
-   337 <td> PIC16F819-I/P </td>
-   338 </tr>
-   339 <tr>
-   340 <td> P1 </td>
-   341 <td> 10k </td>
-   342 <td> U2 </td>
-   343 <td> LM386 </td>
-   344 </tr>
-   345 <tr>
-   346 <th colspan="2"> Kondenzátory </th>
-   347 <td> X1 </td>
-   348 <td> 20MHz </td>
-   349 </tr>
-   350 <tr>
-   351 <td> C4,C5 </td>
-   352 <td> 22pF </td>
-   353 <th colspan="2"> Mechanické součásti </th>
-   354 </tr>
-   355 <tr>
-   356 <td> C14 </td>
-   357 <td> 4n7 </td>
-   358 <td> SW1,SW2,SW3,SW4 </td>
-   359 <td> P-B1720 </td>
-   360 </tr>
-   361 <tr>
-   362 <td> C3,C6,C7,C8,C9 </td>
-   363 <td> 10nF </td>
-   364 <td> J1,J2 </td>
-   365 <td> JUMP3 </td>
-   366 </tr>
-   367 <tr>
-   368 <td> C15,C16 </td>
-   369 <td> 33nF </td>
-   370 <td> J3 </td>
-   371 <td> JUMP5 </td>
-   372 </tr>
-   373 <tr>
-   374 <td> C1,C2,C10 </td>
-   375 <td> 100nF </td>
-   376 <td> J5 </td>
-   377 <td> JUMP2 </td>
-   378 </tr>
-   379 <tr>
-   380 <td> C13 </td>
-   381 <td> 1M/63V </td>
-   382 <td> J6 </td>
-   383 <td> PIC_ISP </td>
-   384 </tr>
-   385 <tr>
-   386 <td> C12 </td>
-   387 <td> 47uF/16V </td>
-   388 <td> J4 </td>
-   389 <td> DB9M_90 </td>
-   390 </tr>
-   391 <tr>
-   392 <td> C11,C17 </td>
-   393 <td> 330uF/16V </td>
-   394 <td> </td>
-   395 <td> </td>
-   396 </tr>
-   397 </table>
-   398  
-   399 <h1> Trocha hudební teorie </h1>
-   400  
-   401 <p>
-   402 Aby hudba zněla libozvučně (příjemně), je třeba, aby používané tóny
-   403 ve stupnicích splňovaly podmínku, že jejich frekvence mají (malý)
-   404 společný násobek. Například dvojnásobek jednoho tónu aby byl
-   405 trojnásobkem jiného tónu. Takových stupnic lze skonstruovat mnoho.
-   406 Aby bylo možné na klavír (nebo podobný nástroj, který umí vyrábět
-   407 jen určité konkrétní tóny) hrát skladby komponované v&nbsp;různých
-   408 stupnicích bez přelaďování nástroje, používá se tzv. temperované ladění.
-   409 Temperované ladění není ideální, jedná se o kompromis hřešící na to,
-   410 že lidský sluch není dokonalý.
-   411 </p>
-   412  
-   413 <p>
-   414 Temperované ladění spočívá v&nbsp;tom, že se oktáva rozdělí na 12 stejných
-   415 dílů, které mají geometrický odstup frekvencí tónů. Oktáva zahrnuje frekvence
-   416 v&nbsp;rozsahu 1:2 a je v&nbsp;ní celkem 7 tónů a 5 půltónů.
-   417 Z&nbsp;toho vyplývá, že poměr sousedních tónů a půltónů je vždy stejný a je
-   418 roven 2<sup>1/12</sup>, tedy přibližně 1:1.06 .
-   419 </p>
-   420  
-   421 <p>
-   422 Následující tabulka uvádí pro jednotlivé tóny jejich frekvence.
-   423 Vychází se z frekvence komorního&nbsp;A, která je 440Hz. Tóny o
-   424 oktávu výš mají frekvence dvakrát vyšší, a naopak tóny o oktávu níž mají
-   425 frekvence poloviční.
-   426 </p>
-   427  
-   428 <table>
-   429 <tr>
-   430 <th> ↓ Tón </th>
-   431 <th colspan="8" class="Center"> Frekvence [Hz]</th>
-   432 </tr>
-   433 <tr>
-   434 <th> Oktáva →</th>
-   435 <th class="Center"> 0 </th>
-   436 <th class="Center"> 1 </th>
-   437 <th class="Center"> 2 </th>
-   438 <th class="Center"> 3 </th>
-   439 <th class="Center"> 4 </th>
-   440 <th class="Center"> 5 </th>
-   441 <th class="Center"> 6 </th>
-   442 <th class="Center"> 7 </th>
-   443 </tr>
-   444 <tr>
-   445 <th> C </th>
-   446 <td> 32,70 </td>
-   447 <td> 65,41 </td>
-   448 <td> 130,8 </td>
-   449 <td> 261,6 </td>
-   450 <td> 523,3 </td>
-   451 <td> 1046,5 </td>
-   452 <td> 2093,0 </td>
-   453 <td> 4186,0 </td>
-   454 </tr>
-   455 <tr>
-   456 <th> Cis </th>
-   457 <td> 34,65 </td>
-   458 <td> 69,30 </td>
-   459 <td> 138,6 </td>
-   460 <td> 277,2 </td>
-   461 <td> 554,4 </td>
-   462 <td> 1108,7 </td>
-   463 <td> 2217,5 </td>
-   464 <td> 4434,9 </td>
-   465 </tr>
-   466 <tr>
-   467 <th> D </th>
-   468 <td> 36,71 </td>
-   469 <td> 73,42 </td>
-   470 <td> 146,8 </td>
-   471 <td> 293,7 </td>
-   472 <td> 587,3 </td>
-   473 <td> 1174,7 </td>
-   474 <td> 2349,3 </td>
-   475 <td> 4698,6 </td>
-   476 </tr>
-   477 <tr>
-   478 <th> Dis </th>
-   479 <td> 38,89 </td>
-   480 <td> 77,78 </td>
-   481 <td> 155,6 </td>
-   482 <td> 311,1 </td>
-   483 <td> 622,3 </td>
-   484 <td> 1244,5 </td>
-   485 <td> 2489,0 </td>
-   486 <td> 4978,0 </td>
-   487 </tr>
-   488 <tr>
-   489 <th> E </th>
-   490 <td> 41,20 </td>
-   491 <td> 82,41 </td>
-   492 <td> 164,8 </td>
-   493 <td> 329,6 </td>
-   494 <td> 659,3 </td>
-   495 <td> 1318,5 </td>
-   496 <td> 2637,0 </td>
-   497 <td> 5274,0 </td>
-   498 </tr>
-   499 <tr>
-   500 <th> F </th>
-   501 <td> 43,65 </td>
-   502 <td> 87,31 </td>
-   503 <td> 174,6 </td>
-   504 <td> 349,2 </td>
-   505 <td> 698,5 </td>
-   506 <td> 1396,9 </td>
-   507 <td> 2793,8 </td>
-   508 <td> 5587,7 </td>
-   509 </tr>
-   510 <tr>
-   511 <th> Fis </th>
-   512 <td> 46,25 </td>
-   513 <td> 92,50 </td>
-   514 <td> 185,0 </td>
-   515 <td> 370,0 </td>
-   516 <td> 740,0 </td>
-   517 <td> 1480,0 </td>
-   518 <td> 2960,0 </td>
-   519 <td> 5919,9 </td>
-   520 </tr>
-   521 <tr>
-   522 <th> G </th>
-   523 <td> 49,00 </td>
-   524 <td> 98,00 </td>
-   525 <td> 196,0 </td>
-   526 <td> 392,0 </td>
-   527 <td> 784,0 </td>
-   528 <td> 1568,0 </td>
-   529 <td> 3136,0 </td>
-   530 <td> 6271,9 </td>
-   531 </tr>
-   532 <tr>
-   533 <th> Gis </th>
-   534 <td> 51,91 </td>
-   535 <td> 103,83 </td>
-   536 <td> 207,7 </td>
-   537 <td> 415,3 </td>
-   538 <td> 830,6 </td>
-   539 <td> 1661,2 </td>
-   540 <td> 3322,4 </td>
-   541 <td> 6644,9 </td>
-   542 </tr>
-   543 <tr>
-   544 <th> A </th>
-   545 <td> 55 </td>
-   546 <td> 110 </td>
-   547 <td> 220 </td>
-   548 <td> <b>440</b> </td>
-   549 <td> 880 </td>
-   550 <td> 1760 </td>
-   551 <td> 3520 </td>
-   552 <td> 7040 </td>
-   553 </tr>
-   554 <tr>
-   555 <th> Ais </th>
-   556 <td> 58,27 </td>
-   557 <td> 116,54 </td>
-   558 <td> 233,1 </td>
-   559 <td> 466,2 </td>
-   560 <td> 932,3 </td>
-   561 <td> 1864,7 </td>
-   562 <td> 3729,3 </td>
-   563 <td> 7458,6 </td>
-   564 </tr>
-   565 <tr>
-   566 <th> H </th>
-   567 <td> 61,74 </td>
-   568 <td> 123,47 </td>
-   569 <td> 246,9 </td>
-   570 <td> 493,9 </td>
-   571 <td> 987,8 </td>
-   572 <td> 1975,5 </td>
-   573 <td> 3951,1 </td>
-   574 <td> 7902,1 </td>
-   575 </tr>
-   576 <tr style='color:gray'>
-   577 <th> ( C ) </th>
-   578 <td> 65,41 </td>
-   579 <td> 130,81 </td>
-   580 <td> 261,6 </td>
-   581 <td> 523,3 </td>
-   582 <td> 1046,5 </td>
-   583 <td> 2093,0 </td>
-   584 <td> 4186,0 </td>
-   585 <td> 8372,0 </td>
-   586 </tr>
-   587 </table>
-   588  
-   589 <h1> Programové vybavení </h1>
-   590  
-   591 <h2> Uživatelský návod </h2>
-   592  
-   593 <h3> Přehrávání skladeb </h3>
-   594  
-   595 <p>
-   596 Při přehrávání není na J5 propojka. Hlasitost se nastavuje trimrem P1.
-   597 </p>
-   598  
-   599 <p>
-   600 Melodický zvonek začne hrát stiskem libovolného tlačítka (tlačítek).
-   601 Přestože jsou na desce jen 4 tlačítka, je možné do zvonku naprogramovat
-   602 až 15 skladeb. První čtyři jsou spuštěny přímo při stlačení jednoho
-   603 ze čtyř tlačítek, pro aktivaci dalších skladeb je nutné stisknout
-   604 několik tlačítek najednou dle následující tabulky.
-   605 </p>
-   606  
-   607 <table>
-   608 <tr>
-   609 <th> Číslo skladby </th>
-   610 <th> Kombinace tlačítek </th>
-   611 <th> Číslo skladby </th>
-   612 <th> Kombinace tlačítek </th>
-   613 </tr>
-   614 <tr>
-   615 <td> 1 </td>
-   616 <td> •&nbsp;o&nbsp;o&nbsp;o </td>
-   617 <td> 9 </td>
-   618 <td> o&nbsp;•&nbsp;o&nbsp;• </td>
-   619 </tr>
-   620 <tr>
-   621 <td> 2 </td>
-   622 <td> o&nbsp;•&nbsp;o&nbsp;o </td>
-   623 <td> 10 </td>
-   624 <td> o&nbsp;o&nbsp;•&nbsp;• </td>
-   625 </tr>
-   626 <tr>
-   627 <td> 3 </td>
-   628 <td> o&nbsp;o&nbsp;•&nbsp;o </td>
-   629 <td> 11 </td>
-   630 <td> •&nbsp;•&nbsp;•&nbsp;o </td>
-   631 </tr>
-   632 <tr>
-   633 <td> 4 </td>
-   634 <td> o&nbsp;o&nbsp;o&nbsp;• </td>
-   635 <td> 12 </td>
-   636 <td> •&nbsp;•&nbsp;o&nbsp;• </td>
-   637 </tr>
-   638 <tr>
-   639 <td> 5 </td>
-   640 <td> •&nbsp;•&nbsp;o&nbsp;o </td>
-   641 <td> 13 </td>
-   642 <td> •&nbsp;o&nbsp;•&nbsp;• </td>
-   643 </tr>
-   644 <tr>
-   645 <td> 6 </td>
-   646 <td> •&nbsp;o&nbsp;•&nbsp;o </td>
-   647 <td> 14 </td>
-   648 <td> o&nbsp;•&nbsp;•&nbsp;• </td>
-   649 </tr>
-   650 <tr>
-   651 <td> 7 </td>
-   652 <td> •&nbsp;o&nbsp;o&nbsp;• </td>
-   653 <td> 15 </td>
-   654 <td> •&nbsp;•&nbsp;•&nbsp;• </td>
-   655 </tr>
-   656 <tr>
-   657 <td> 8 </td>
-   658 <td> o&nbsp;•&nbsp;•&nbsp;o </td>
-   659 <td colspan="2"> •&nbsp;znamená&nbsp;stisknuto, o&nbsp;znamená&nbsp;v&nbsp;klidu </td>
-   660 </tr>
-   661 </table>
-   662  
-   663 <h3> Programování skladeb </h3>
-   664  
-   665 <p>
-   666 Při programování se používá propojka na J5 a definice skladeb se přivádí
-   667 z&nbsp;počítače ze sériové linky na konektor J4. Při rozběhu otestuje
-   668 program, zda je na J5 propojka a zda je připojen počítač ke konektoru J4.
-   669 Pokud ano, přejde do režimu programování. To se projeví zacvrdlikáním. Aby
-   670 se program správně spustil při připojení napájení, musí být napájení
-   671 odpojené alespoň 10 sekund. Pokud je nasazena propojka na J5 a nedojde
-   672 ke správnému zresetování procesoru, může dojít k&nbsp;poškození obsahu
-   673 paměti skladeb a skladby bude třeba znovu nahrát.
-   674 </p>
-   675  
-   676 <p>
-   677 Postup pro přechod do programovacího režimu:
-   678 </p>
-   679  
-   680 <ul>
-   681 <li> Odpojíme baterii a počkáme alespoň 10 sekund </li>
-   682 <li> Připojíme kabel RS232 k&nbsp;počítači </li>
-   683 <li> Připojíme baterii </li>
-   684 <li> Nasadíme propojku J5 </li>
-   685 <li> Stiskneme některé tlačítko a mělo by se ozvat zacvrdlikání</li>
-   686 </ul>
-   687  
-   688 <p>
-   689 Pro přenos dat do zvonku je možné použít téměř libovolný terminálový program.
-   690 Parametry přenosu dat do zvonku jsou 9600Bd, 8bitů, 1stopbit, žádná parita.
-   691 Řízení přenosu se nepoužívá. Protože data procesor zapisuje do své paměti
-   692 programu, nemůže číst další data, než dokončí zápis předchozích. Proto
-   693 je nutné nastavit časovou prodlevu mezi řádky na cca 100ms.
-   694 Přenos je jen jednosměrný, zvonek neumí odesílat žádné informace sériovou
-   695 linkou směrem k&nbsp;počítači. Má pouze propojené signály RX a TX tak, aby
-   696 znaky odesílané do zvonku byly zobrazované na displeji terminálu.
-   697 </p>
-   698  
-   699 <p>
-   700 Pro propojení s&nbsp;počítačem se používá nulmodemový kabel (tedy křížený,
-   701 spojení RX-TX, TX-RX).
-   702 </p>
-   703  
-   704 <p>
-   705 V&nbsp;prostředí Windows 98 je k&nbsp;dispozici program Hyperterminál
-   706 (Start/Programy/Příslušenství/Komunikace/Hyperterminál). Pokud není,
-   707 znamená to, že nebyl nainstalován, a je možné nainstalovat jej dodatečně
-   708 nebo použít nějaký jiný terminálový program. Hyperterminál nás na úvod
-   709 vyzve k&nbsp;nastavení základních komunikačních parametrů (9600Bd, 8,
-   710 žádná, 1, žádné). Dále je třeba nastavit
-   711 (Soubor/Vlastnosti/Nastavení/Nastavení ASCII)
-   712 zpoždění řádků 100ms.
-   713 </p>
-   714  
-   715 <p>
-   716 V&nbsp;této chvíli bychom měli vidět znaky psané na klávesnici v&nbsp;okně
-   717 terminálu. Pokud je zvonek v&nbsp;režimu programování, měl by krátce pípnout
-   718 při každém stisku odřádkování. Znamená to, že reaguje na posílaná data.
-   719 Nyní již nic nebrání ručnímu ovládání.
-   720 </p>
-   721  
-   722 <p>
-   723 Větší množství dat (například celou melodii) je vhodné připravit
-   724 do samostatného souboru a ten pak přes schránku vložit do terminálu
-   725 (u Hyperterminálu pravé tlačítko, funkce Vložit k&nbsp;hostiteli). Většina
-   726 terminálových programů umí i přímo odeslat textový soubor protistraně, ale
-   727 Hyperterminál to neumí.
-   728 </p>
-   729  
-   730 <h3> Příkazy a formát dat pro programování skladeb </h3>
-   731  
-   732 <p>
-   733 Procesor vždy nejprve převezme celou řádku a poté se ji snaží zpracovat.
-   734 Pokud řádce nerozumí, pípne odlišně. Z řádky se uvažuje jen prvních 40 znaků.
-   735 Text za „//“ je komentář. Komentář může být libovolně dlouhý.
-   736 </p>
-   737  
-   738 <p>
-   739 Klíčová slova a jejich význam je v&nbsp;následující tabulce. Parametry jsou
-   740 malá přirozená čísla v&nbsp;uvedeném rozsahu. Pokud je zadáno číslo větší,
-   741 zvonek  použije jen odpovídající spodní bity čísla.
-   742 </p>
-   743  
-   744 <table>
-   745 <tr>
-   746 <th> Klíčová slova a&nbsp;parametry </th>
-   747 <th> Meze </th>
-   748 <th> Význam </th>
-   749 </tr>
-   750 <tr>
-   751 <td> <code>PLAY <b>n</b></code> </td>
-   752 <td> <code><b>n</b>: 1 .. 15</code> </td>
-   753 <td> Zahraj skladbu <code><b>n</b></code> </td>
-   754 </tr>
-   755 <tr>
-   756 <td> <code>ERASE</code> </td>
-   757 <td> </td>
-   758 <td> Smaž všechny skladby </td>
-   759 </tr>
-   760 <tr>
-   761 <td> <code>BEGIN <b>n</b></code> </td>
-   762 <td> <code><b>n</b>: 0 .. 7</code> </td>
-   763 <td> Začátek definice skladby; číslo udává posunutí skladby o udaný počet
-   764 oktáv nahoru </td>
-   765 </tr>
-   766 <tr>
-   767 <td> <code>TEST <b>n</b></code> </td>
-   768 <td> <code><b>n</b>: 0 .. 7</code> </td>
-   769 <td> Jako <code>BEGIN</code>, ale následující noty nejsou programovány
-   770 do paměti, ale přehrávány </td>
-   771 </tr>
-   772 <tr>
-   773 <td> <code>TEMPO <b>n</b></code> </td>
-   774 <td> <code><b>n</b>: 1 .. 2047</code> </td>
-   775 <td> Délka nejkratší noty v&nbsp;ms; není-li použito, je nastaveno na 100ms;
-   776 může se použít vícekrát v&nbsp;jedné skladbě </td>
-   777 </tr>
-   778 <tr>
-   779 <td> <code>PAUSE <b>n</b></code> </td>
-   780 <td> <code><b>n</b>: 1 .. 2047</code> </td>
-   781 <td> Délka prodlevy mezi notami; není-li použito, je nastaveno na 100ms;
-   782 může se použít vícekrát v&nbsp;jedné skladbě </td>
-   783 </tr>
-   784 <tr>
-   785 <td> <code>[<b>a</b>]<b> C</b> [<b>b</b>]</code> </td>
-   786 <td> <code><b>a</b>: 0 .. 7<br></code>
-   787 <code><b>C</b>: C, Cis, D, Dis, E, F, Fis, <br></code>
-   788 <code> G, Gis, A, Ais, H, Space<br></code>
-   789 <code><b>b</b>: 1 .. 63</code> </td>
-   790 <td> Číslo oktávy (sečítá se s&nbsp;parametrem u <code>BEGIN</code>); není-li
-   791 uvedeno, použije se poslední hodnota<br>
-   792 Nota <code><b>C</b></code> v&nbsp;oktávě <code><b>a</b></code> o délce
-   793 <code><b>b</b></code>; Space je němá nota (mezera)<br>
-   794 Délka je v&nbsp;násobcích parametru <code>TEMPO</code>, není-li uvedena, je 1 </td>
-   795 </tr>
-   796 <tr>
-   797 <td> <code>END</code> </td>
-   798 <td> </td>
-   799 <td> Konec skladby, další noty již budou pouze přehrávány </td>
-   800 </tr>
-   801 <tr>
-   802 <td> / text </td>
-   803 <td> </td>
-   804 <td> Komentář; vše za znakem / do konce řádky se ignoruje </td>
-   805 </tr>
-   806 <tr>
-   807 <td colspan=3> <i>Znaky <code>[</code> a <code>]</code> znamenají volitelný parametr</i> </td>
-   808 </tr>
-   809 </table>
-   810  
-   811 <h2> Program </h2>
-   812  
-   813 <p>
-   814 Program melodického zvonku je napsaný v&nbsp;jazyce C firmy CCS.
-   815 Demoverze překladače je možné stáhnout z&nbsp;webu na adresa
-   816 <a href="http://www.ccsinfo.com/">http://www.ccsinfo.com</a>.
-   817 Demoverze podporuje jen vybrané procesory (obvykle několik typů)
-   818 a umožňuje napsat program v&nbsp;omezeném rozsahu (do 2048 slov).
-   819 </p>
-   820  
-   821 <p>
-   822 Program je bohatě komentovaný  a dostupný, je tedy snadné se s ním seznámit.
-   823 Vzhledem k&nbsp;omezeným zdrojům použitého procesoru používá program v&nbsp;hojné
-   824 míře globálních proměnných, protože to vede na kód kratší asi o 10%.
-   825 Některé programové konstrukce také vypadají na první pohled nelogicky,
-   826 ale jsou voleny s&nbsp;ohledem na&nbsp;dosažení minimální délky výsledného
-   827 kódu. Je třeba si uvědomit, že použitý překladač jazyka C patří k&nbsp;těm
-   828 nejlevnějším, a proto neumí generovat příliš optimalizovaný kód.
-   829 </p>
-   830  
-   831 <h3> Hlavní program a základní procedury </h3>
-   832  
-   833 <h4>main()</h4>
-   834  
-   835 <p>
-   836 Na začátku se hlavní program rozhoduje podle přítomnosti propojky na J5
-   837 a podle přítomnosti klidového signálu na RS232, zda má přejít do režimu
-   838 programování skladeb. Pokud ano, spustí se procedura Download().
-   839 </p>
-   840  
-   841 <p>
-   842 Pokud není v programovacím režimu, zapíná procesor napájení sobě a zesilovači
-   843 LM386 a po krátké prodlevě načítá stav tlačítek. Pak volá proceduru <code>Play()</code>,
-   844 která na základě čísla skladby v&nbsp;proměnné <code>CisloSkladby</code>
-   845 přehraje požadovanou skladbu.
-   846 </p>
-   847  
-   848 <p>
-   849 Následuje přechod do vypnutého stavu.
-   850 </p>
-   851  
-   852 <h4>Download()</h4>
-   853  
-   854 <p>
-   855 Tato procedura načítá nejprve celou řádku z&nbsp;RS232. Znaky mezera, čárka
-   856 a všechny řídící znaky kromě <code>CR</code> (odřádkování) a <code>BS</code>
-   857 (znak zpět) se chápou jako oddělovač (mezera). Znak <code>BS</code> umožňuje
-   858 návrat o 1 znak zpět. Znaky za znakem lomeno se&nbsp;ignorují stejně, jako
-   859 znaky za maximální délkou řádky.
-   860 </p>
-   861  
-   862 <p>
-   863 Po stisku <code>CR</code> se postupně zpracuje celá řádka. Hledají se
-   864 v&nbsp;ní klíčová slova (procedura <code>Word()</code>) a&nbsp;číselné parametry
-   865 (procedura <code>Number()</code>). Vyskytne-li se chybné slovo, dojde
-   866 k&nbsp;nastavení příznaku <code>Error</code> a na konci řádky místo krátkého
-   867 pípnutí dojde k&nbsp;chybovému pípnutí.
-   868 </p>
-   869  
-   870 <p>
-   871 Klíčová slova, tak jak jsou na řádce, se ihned vykonávají. Tedy noty hrají,
-   872 slova <code>TEMPO</code>, <code>PAUSE</code>, <code>PLAY</code>, <code>ERASE</code>
-   873 a <code>TEST</code> dělají přímo to, co dělat mají. Tato vlastnost
-   874 slouží k&nbsp;testování melodií či jejich úryvků aniž by se musely zapisovat
-   875 do paměti FLASH.
-   876 </p>
-   877  
-   878 <p>
-   879 Po slovu <code>BEGIN</code> se přejde do režimu záznamu do paměti a od
-   880 tohoto okamžiku se vše zaznamenává do paměti. Tento režim končí slovem <code>END</code>
-   881 (ale také slovy <code>ERASE</code>, <code>TEST</code> nebo <code>PLAY</code>).
-   882 </p>
-   883  
-   884 <p>
-   885 Pokud se během zpracování řádky odehrála alespoň jedna nota, nedojde na konci
-   886 řádky k&nbsp;pípnutí (pokud ovšem nebyla někde na řádce chyba).
-   887 </p>
-   888  
-   889 <h4> Play(), PlayData(), Find()</h4>
-   890  
-   891 <p>
-   892 Tyto procedury slouží k&nbsp;přehrání celé skladby, jedné noty a k&nbsp;nalezení
-   893 začátku zadaného čísla skladby.
-   894 </p>
-   895  
-   896 <h4> WriteDataInc(), WriteData, ReadData(), Erase() </h4>
-   897  
-   898 <p>
-   899 Tyto procedury slouží k&nbsp;zápisu, čtení a k&nbsp;mazání paměti skladeb.
-   900 K&nbsp;zápisu nebo ke smazání může dojít jen pokud je nasazena propojka na J5.
-   901 </p>
-   902  
-   903 <h4> SpecBeep()</h4>
-   904  
-   905 <p>
-   906 Tato procedura slouží k&nbsp;pípnutí dle parametru v&nbsp;proměnných
-   907 <code>Beep</code> a <code>Error</code>.
-   908 </p>
-   909  
-   910 <h3> Knihovna pro generování zvuků <code>Sound_t1.c</code> </h3>
-   911  
-   912 <p>
-   913 Tato knihovna používá časovač T1 spolu s&nbsp;jednotkou CCP1 ke generování
-   914 přerušení dle požadované půlperiody hraného tónu. V&nbsp;přerušovací rutině
-   915 <code>IntCCP1()</code> se pak ovládá výstupní port.
-   916 </p>
-   917  
-   918 <p>
-   919 Délka tónu se odměřuje pomocí přetečení časovače T0. Přetečení se zjišťuje
-   920 čtením příznaku T0IF, přerušení se zde nepoužívá.
-   921 </p>
-   922  
-   923 <h3> Definice skladeb <code>Data.c</code> </h3>
-   924  
-   925 <p>
-   926 Skladby se ukládají v&nbsp;poslední čtvrtině paměti FLASH a kódují se dle
-   927 následující tabulky.
-   928 </p>
-   929  
-   930 <table>
-   931 <tr>
-   932 <th> Slovo </th>
-   933 <th> Kód </th>
-   934 <th> Poznámka </th>
-   935 </tr>
-   936 <tr>
-   937 <td> <code>BEGIN n</code> </td>
-   938 <td> <code>1 0   0 n n n   n n n n   n n n n</code> </td>
-   939 <td> Začátek skladby a posunutí oktávy not skladby o <code><b>n</b></code> </td>
-   940 </tr>
-   941 <tr>
-   942 <td> <code>TEMPO n</code> </td>
-   943 <td> <code>1 0   1 n n n   n n n n   n n n n</code> </td>
-   944 <td> Změna tempa na <code><b>n</b></code> milisekund </td>
-   945 </tr>
-   946 <tr>
-   947 <td> <code>PAUSE n</code> </td>
-   948 <td> <code>1 1   0 n n n   n n n n   n n n n</code> </td>
-   949 <td> Změna mezery mezi notami na <code><b>n</b></code> milisekund </td>
-   950 </tr>
-   951 <tr>
-   952 <td> <code>o n d</code> </td>
-   953 <td> <code>0 d   d d d d   d o o o   n n n n</code> </td>
-   954 <td> Nota <code><b>n</b></code> v&nbsp;oktávě <code><b>o</b></code> délky <code><b>d</b></code> </td>
-   955 </tr>
-   956 <tr>
-   957 <td> <code>END</code> </td>
-   958 <td> <code>1 1   1 1 1 1   1 1 1 1   1 1 1 1</code> </td>
-   959 <td> Konec skladeb, prázdná paměť </td>
-   960 </tr>
-   961 </table>
-   962  
-   963 <p>
-   964 Aby se dalo použít stejného souboru s&nbsp;definicí skladby jak pro začlenění
-   965 skladby do firmwaru tak i pro programování přes RS232, jsou v&nbsp;souboru
-   966 <code>Data.c</code> nadefinována makra, která toto umožňují. Definice
-   967 skladby, která má být začleněna do firmwaru musí, používat čárky jako
-   968 oddělovače jednotlivých položek a číselné parametry není možné vynechávat.
-   969 Příklady skladeb napoví vše.
-   970 </p>
-   971  
-   972 </div>
-   973  
-   974 <!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE -->
-   975 <!-- ============== PATIČKA ============== -->
-   976 <div class="Footer">
-   977 <script type="text/javascript">
-   978 <!--
-   979 SetRelativePath("../../../../");
-   980 DrawFooter();
-   981 // -->
-   982 </script>
-   983 <noscript>
-   984 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
-   985 </noscript>
-   986 </div>
-   987 <!-- AUTOINCLUDE END -->
-   988  
-   989 </body>
-   990 </html>