Rev 223 Rev 331
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3c.org/TR/html4/strict.dtd"> 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2 <html> 2 <html>
3 <head> 3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5 <title> LCD2L4P01A </title> 5 <title> LCD2L4P01A </title>
6 <meta name="keywords" content="stavebnice MLAB modul LCD displeje LCD2L4P01A"> 6 <meta name="keywords" content="stavebnice MLAB modul LCD displeje LCD2L4P01A">
7 <meta name="description" content="Projekt MLAB, Modul LCD displeje"> 7 <meta name="description" content="Projekt MLAB, Modul LCD displeje">
8 <!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE --> 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"> 9 <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl">
10 <link rel="shortcut icon" type="image/x-icon" href="../../../../../Web/PIC/MLAB.ico"> 10 <link rel="shortcut icon" type="image/x-icon" href="../../../../../Web/PIC/MLAB.ico">
11 <script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script> 11 <script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script>
12 <!-- AUTOINCLUDE END --> 12 <!-- AUTOINCLUDE END -->
13 </head> 13 </head>
14   14  
15 <body lang="cs"> 15 <body lang="cs">
16   16  
17 <!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE --> 17 <!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE -->
18 <!-- ============== HLAVICKA ============== --> 18 <!-- ============== HLAVICKA ============== -->
19 <div class="Header"> 19 <div class="Header">
20 <script type="text/javascript"> 20 <script type="text/javascript">
21 <!-- 21 <!--
22 SetRelativePath("../../../../../"); 22 SetRelativePath("../../../../../");
23 DrawHeader(); 23 DrawHeader();
24 // --> 24 // -->
25 </script> 25 </script>
26 <noscript> 26 <noscript>
27 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p> 27 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
28 </noscript> 28 </noscript>
29 </div> 29 </div>
30 <!-- AUTOINCLUDE END --> 30 <!-- AUTOINCLUDE END -->
31   31  
32 <!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE --> 32 <!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE -->
33 <!-- ============== MENU ============== --> 33 <!-- ============== MENU ============== -->
34 <div class="Menu"> 34 <div class="Menu">
35 <script type="text/javascript"> 35 <script type="text/javascript">
36 <!-- 36 <!--
37 SetRelativePath("../../../../../"); 37 SetRelativePath("../../../../../");
38 DrawMenu(); 38 DrawMenu();
39 // --> 39 // -->
40 </script> 40 </script>
41 <noscript> 41 <noscript>
42 <p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p> 42 <p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p>
43 </noscript> 43 </noscript>
44 </div> 44 </div>
45 <!-- AUTOINCLUDE END --> 45 <!-- AUTOINCLUDE END -->
46   46  
47 <!-- ============== TEXT ============== --> 47 <!-- ============== TEXT ============== -->
48 <div class="Text"> 48 <div class="Text">
49 <p class="Title"> 49 <p class="Title">
50 Modul LCD displeje se čtyřmi tlačítky 50 Modul LCD displeje se čtyřmi tlačítky
51 </p> 51 </p>
52 <p class=Autor> 52 <p class=Autor>
53 Milan Horkel 53 Milan Horkel
54 </p> 54 </p>
55 <p class="Subtitle"> 55 <p class="Subtitle">
56 Modul LCD2L4P obsahuje dvouřádkový LCD displej s obvyklým Hitachi 56 Modul LCD2L4P obsahuje dvouřádkový LCD displej s obvyklým Hitachi
57 řadičem a čtveřici tlačítek. Používá se jako univerzální uživatelský 57 řadičem a čtveřici tlačítek. Používá se jako univerzální uživatelský
58 interfejs při pokusech s mikroprocesorovými konstrukcemi 58 interfejs při pokusech s mikroprocesorovými konstrukcemi
59 </p> 59 </p>
60 <p class="Subtitle"> 60 <p class="Subtitle">
61 <img width="454" height="285" src="Pictures/image001.jpg" 61 <img width="454" height="285" src="Pictures/image001.jpg"
62 alt="Pohled na modul"> 62 alt="Pohled na modul">
63 </p> 63 </p>
64 <p> 64 <p>
65 <a href="../LCD2L4P01A.cs.pdf"><img class="NoBorder" 65 <a href="../LCD2L4P01A.cs.pdf"><img class="NoBorder"
66 src="../../../../../Web/PIC/FileIco_PDF.ico" 66 src="../../../../../Web/PIC/FileIco_PDF.ico"
67 alt="Acrobat">&nbsp;PDF verze</a> 67 alt="Acrobat">&nbsp;PDF verze</a>
68 </p> 68 </p>
69   69  
70 <h1> Technické parametry </h1> 70 <h1> Technické parametry </h1>
71   71  
72 <table> 72 <table>
73 <tr> 73 <tr>
74 <th> Parametr </th> 74 <th> Parametr </th>
75 <th> Hodnota </th> 75 <th> Hodnota </th>
76 <th> Poznámka </th> 76 <th> Poznámka </th>
77 </tr> 77 </tr>
78 <tr> 78 <tr>
79 <td> Napájení </td> 79 <td> Napájení </td>
80 <td> +5V nebo +3V/-2V </td> 80 <td> +5V nebo +3V/-2V </td>
81 <td> Záporné napětí pro řízení kontrastu </td> 81 <td> Záporné napětí pro řízení kontrastu </td>
82 </tr> 82 </tr>
83 <tr> 83 <tr>
84 <td> Spotřeba </td> 84 <td> Spotřeba </td>
85 <td> cca 1mA </td> 85 <td> cca 1mA </td>
86 <td> Při +5V </td> 86 <td> Při +5V </td>
87 </tr> 87 </tr>
88 <tr> 88 <tr>
89 <td> Displej </td> 89 <td> Displej </td>
90 <td> LCD, 2 řádky po 16 znacích </td> 90 <td> LCD, 2 řádky po 16 znacích </td>
91 <td> Hitachi řadič </td> 91 <td> Hitachi řadič </td>
92 </tr> 92 </tr>
93 <tr> 93 <tr>
94 <td> Tlačítka </td> 94 <td> Tlačítka </td>
95 <td> 4 spínací tlačítka do země </td> 95 <td> 4 spínací tlačítka do země </td>
96 <td> Volitelný pull-up odpor </td> 96 <td> Volitelný pull-up odpor </td>
97 </tr> 97 </tr>
98 <tr> 98 <tr>
99 <td> Rozměry </td> 99 <td> Rozměry </td>
100 <td> 61 x 101 x 22 mm </td> 100 <td> 61 x 101 x 22 mm </td>
101 <td> Výška nad nosnou deskou </td> 101 <td> Výška nad nosnou deskou </td>
102 </tr> 102 </tr>
103 </table> 103 </table>
104   104  
105 <h1> Popis konstrukce </h1> 105 <h1> Popis konstrukce </h1>
106   106  
107 <h2> Úvodem </h2> 107 <h2> Úvodem </h2>
108   108  
109 <p> 109 <p>
110 Na modulu je osazen obyčejný standardní dvouřádkový LCD displej s Hitachi 110 Na modulu je osazen obyčejný standardní dvouřádkový LCD displej s Hitachi
111 řadičem (to jsou skoro všechny dostupné řádkové displeje). Z displeje je 111 řadičem (to jsou skoro všechny dostupné řádkové displeje). Z displeje je
112 vyveden jen 4 bitový interfejs a příslušné řídící signály. Pomocí 112 vyveden jen 4 bitový interfejs a příslušné řídící signály. Pomocí
113 propojek je možné připojit trimr pro řízení kontrastu displeje a trvale 113 propojek je možné připojit trimr pro řízení kontrastu displeje a trvale
114 nastavit řídící signál RW na režim jen zápis (v obvyklých konstrukcích se 114 nastavit řídící signál RW na režim jen zápis (v obvyklých konstrukcích se
115 z LCD displeje nic nečte). 115 z LCD displeje nic nečte).
116 </p> 116 </p>
117   117  
118 <p> 118 <p>
119 Pod displejem jsou umístěna 4 velká spínací tlačítka do země. Pomocí řady 119 Pod displejem jsou umístěna 4 velká spínací tlačítka do země. Pomocí řady
120 propojek označené „PULL UPS“ je možné připojit pull-up odpory do plusu 120 propojek označené „PULL UPS“ je možné připojit pull-up odpory do plusu
121 (hodnota 10k). 121 (hodnota 10k).
122 </p> 122 </p>
123   123  
124 <h2> Zapojení modulu </h2> 124 <h2> Zapojení modulu </h2>
125   125  
126 <p> 126 <p>
127 <img width="222" height="146" src="Pictures/image002.gif" 127 <img width="222" height="146" src="Pictures/image002.gif"
128 alt="Zapojení napájení"> 128 alt="Zapojení napájení">
129 </p> 129 </p>
130   130  
131 <p> 131 <p>
132 Dioda D1 je ochranná dioda proti přepólování napájení. 132 Dioda D1 je ochranná dioda proti přepólování napájení.
133 Standardní napájení je +5V ale v případě potřeby může být napájení menší 133 Standardní napájení je +5V ale v případě potřeby může být napájení menší
134 ale je třeba použít záporného napětí pro řízení kontrastu LCD displeje 134 ale je třeba použít záporného napětí pro řízení kontrastu LCD displeje
135 (potřebný rozdíl mezi kladným napájením a záporným předpětím jej cca 5V). 135 (potřebný rozdíl mezi kladným napájením a záporným předpětím jej cca 5V).
136 Při sníženém napájecím napětí je podstatně snížena spotřeba. Napájecí 136 Při sníženém napájecím napětí je podstatně snížena spotřeba. Napájecí
137 proud pro řízení kontrastu je velmi malý a je možné snadno jej nastřídat. 137 proud pro řízení kontrastu je velmi malý a je možné snadno jej nastřídat.
138 </p> 138 </p>
139   139  
140 <p> 140 <p>
141 <img width="648" height="342" src="Pictures/image003.gif" 141 <img width="648" height="342" src="Pictures/image003.gif"
142 alt="Připojení displeje"> 142 alt="Připojení displeje">
143 <img width="308" height="476" src="Pictures/image004.gif" 143 <img width="308" height="476" src="Pictures/image004.gif"
144 alt="Připojení tlačítek"> 144 alt="Připojení tlačítek">
145 <p> 145 <p>
146 Zapojení tlačítek je přímočaré. Odpory R6 až R9 jsou volitelné 146 Zapojení tlačítek je přímočaré. Odpory R6 až R9 jsou volitelné
147 (propojkami J9) pull-up odpory. Tlačítka jsou napevno zapojená 147 (propojkami J9) pull-up odpory. Tlačítka jsou napevno zapojená
148 „do země“. 148 „do země“.
149   149  
150 <table class="Soupiska"> 150 <table class="Soupiska">
151 <tr> 151 <tr>
152 <th> Reference </th> 152 <th> Reference </th>
153 <th> Název </th> 153 <th> Název </th>
154 </tr> 154 </tr>
155 <tr> 155 <tr>
156 <th colspan="2"> Odpory </th> 156 <th colspan="2"> Odpory </th>
157 </tr> 157 </tr>
158 <tr> 158 <tr>
159 <td> R1, R2, R3, R4 </td> 159 <td> R1, R2, R3, R4 </td>
160 <td> 1k </td> 160 <td> 1k </td>
161 </tr> 161 </tr>
162 <tr> 162 <tr>
163 <td> R6, R7, R8, R9 </td> 163 <td> R6, R7, R8, R9 </td>
164 <td> 10k </td> 164 <td> 10k </td>
165 </tr> 165 </tr>
166 <tr> 166 <tr>
167 <td> R5 </td> 167 <td> R5 </td>
168 <td> 47k </td> 168 <td> 47k </td>
169 </tr> 169 </tr>
170 <tr> 170 <tr>
171 <th colspan="2"> Odporové trimry </th> 171 <th colspan="2"> Odporové trimry </th>
172 </tr> 172 </tr>
173 <tr> 173 <tr>
174 <td> P1 </td> 174 <td> P1 </td>
175 <td> 47k </td> 175 <td> 47k </td>
176 </tr> 176 </tr>
177 <tr> 177 <tr>
178 <th colspan="2"> Keramické kondenzátory </th> 178 <th colspan="2"> Keramické kondenzátory </th>
179 </tr> 179 </tr>
180 <tr> 180 <tr>
181 <td> C1 </td> 181 <td> C1 </td>
182 <td> 100nF </td> 182 <td> 100nF </td>
183 </tr> 183 </tr>
184 <tr> 184 <tr>
185 <th colspan="2"> Polovodiče </th> 185 <th colspan="2"> Polovodiče </th>
186 </tr> 186 </tr>
187 <tr> 187 <tr>
188 <td> D1 </td> 188 <td> D1 </td>
189 <td> 1N4004 </td> 189 <td> 1N4004 </td>
190 </tr> 190 </tr>
191 <tr> 191 <tr>
192 <td> U1 </td> 192 <td> U1 </td>
193 <td> LCD SC1602A </td> 193 <td> LCD SC1602A </td>
194 </tr> 194 </tr>
195 <tr> 195 <tr>
196 <th colspan="2"> Mechanické součástky </th> 196 <th colspan="2"> Mechanické součástky </th>
197 </tr> 197 </tr>
198 <tr> 198 <tr>
199 <td> SW1, SW2, SW3, SW4 </td> 199 <td> SW1, SW2, SW3, SW4 </td>
200 <td> P-DT6GE </td> 200 <td> P-DT6GE </td>
201 </tr> 201 </tr>
202 <tr> 202 <tr>
203 <td> J4 </td> 203 <td> J4 </td>
204 <td> JUMP1 </td> 204 <td> JUMP1 </td>
205 </tr> 205 </tr>
206 <tr> 206 <tr>
207 <td> J5, J7 </td> 207 <td> J5, J7 </td>
208 <td> JUMP2 </td> 208 <td> JUMP2 </td>
209 </tr> 209 </tr>
210 <tr> 210 <tr>
211 <td> J6 </td> 211 <td> J6 </td>
212 <td> JUMP3 </td> 212 <td> JUMP3 </td>
213 </tr> 213 </tr>
214 <tr> 214 <tr>
215 <td> J1+J2 </td> 215 <td> J1+J2 </td>
216 <td> JUMP2X3 </td> 216 <td> JUMP2X3 </td>
217 </tr> 217 </tr>
218 <tr> 218 <tr>
219 <td> J8, J9 </td> 219 <td> J8, J9 </td>
220 <td> JUMP2X4 </td> 220 <td> JUMP2X4 </td>
221 </tr> 221 </tr>
222 <tr> 222 <tr>
223 <td> J3 </td> 223 <td> J3 </td>
224 <td> JUMP2X8 </td> 224 <td> JUMP2X8 </td>
225 </tr> 225 </tr>
226 </table> 226 </table>
227   227  
228 <h2> Ovládání LCD displeje </h2> 228 <h2> Ovládání LCD displeje </h2>
229   229  
230 <p> 230 <p>
231 LCD displej se ovládá zápisem do řídících registrů (RS=0), do paměti pro 231 LCD displej se ovládá zápisem do řídících registrů (RS=0), do paměti pro
232 zobrazovaný text (DD RAM) nebo do paměti definice znaků (CG RAM). Z 232 zobrazovaný text (DD RAM) nebo do paměti definice znaků (CG RAM). Z
233 pamětí DD RAM a CG RAM je možné rovněž číst ale tato funkce nebývá 233 pamětí DD RAM a CG RAM je možné rovněž číst ale tato funkce nebývá
234 potřebná a je možné trvale čtení deaktivovat (RW=0). 234 potřebná a je možné trvale čtení deaktivovat (RW=0).
235 </p> 235 </p>
236   236  
237 <p> 237 <p>
238 Zápis (i čtení) může buď probíhat najednou po 8 bitech nebo nadvakrát po 238 Zápis (i čtení) může buď probíhat najednou po 8 bitech nebo nadvakrát po
239 4 bitech. Druhý způsob je výhodný z hlediska snížení počtu portů 239 4 bitech. Druhý způsob je výhodný z hlediska snížení počtu portů
240 procesoru, ke kterému je displej připojen. Pozor, pro čtyřbitový provoz 240 procesoru, ke kterému je displej připojen. Pozor, pro čtyřbitový provoz
241 se používají vývody D7 až D4. 241 se používají vývody D7 až D4.
242 </p> 242 </p>
243   243  
244 <p> 244 <p>
245 Obsah paměti DD RAM definuje (v ASCII kódu + japonské znaky), co se bude 245 Obsah paměti DD RAM definuje (v ASCII kódu + japonské znaky), co se bude
246 zobrazovat. Pro jednotlivé řádky je vyhrazen určitý rozsah adres v DD RAM 246 zobrazovat. Pro jednotlivé řádky je vyhrazen určitý rozsah adres v DD RAM
247 ze kterého je vidět jen výřez. Je možné volit, zda se při zápisu znaků do 247 ze kterého je vidět jen výřez. Je možné volit, zda se při zápisu znaků do
248 DD RAM automaticky zvyšuje adresa do které se zapisuje nebo zda se 248 DD RAM automaticky zvyšuje adresa do které se zapisuje nebo zda se
249 posouvá okno. Posouvání okna je možné řídit nezávisle a je tam možné 249 posouvá okno. Posouvání okna je možné řídit nezávisle a je tam možné
250 snadno realizovat běžící text. 250 snadno realizovat běžící text.
251 </p> 251 </p>
252   252  
253 <table> 253 <table>
254 <tr> 254 <tr>
255 <th rowspan="2"> Instrukce </th> 255 <th rowspan="2"> Instrukce </th>
256 <th colspan="2" class="Center"> Řízení </th> 256 <th colspan="2" class="Center"> Řízení </th>
257 <th colspan="8" class="Center"> Datová sběrnice </th> 257 <th colspan="8" class="Center"> Datová sběrnice </th>
258 </tr> 258 </tr>
259 <tr> 259 <tr>
260 <th> RS </th> 260 <th> RS </th>
261 <th> RW </th> 261 <th> RW </th>
262 <th> D7 </th> 262 <th> D7 </th>
263 <th> D6 </th> 263 <th> D6 </th>
264 <th> D5 </th> 264 <th> D5 </th>
265 <th> D4 </th> 265 <th> D4 </th>
266 <th> D3 </th> 266 <th> D3 </th>
267 <th> D2 </th> 267 <th> D2 </th>
268 <th> D1 </th> 268 <th> D1 </th>
269 <th> D0 </th> 269 <th> D0 </th>
270 </tr> 270 </tr>
271 <tr> 271 <tr>
272 <td> <b>Smaž displej a nuluj adresu DD</b> </td> 272 <td> <b>Smaž displej a nuluj adresu DD</b> </td>
273 <td> 0 </td> 273 <td> 0 </td>
274 <td> 0 </td> 274 <td> 0 </td>
275 <td> 0 </td> 275 <td> 0 </td>
276 <td> 0 </td> 276 <td> 0 </td>
277 <td> 0 </td> 277 <td> 0 </td>
278 <td> 0 </td> 278 <td> 0 </td>
279 <td> 0 </td> 279 <td> 0 </td>
280 <td> 0 </td> 280 <td> 0 </td>
281 <td> 0 </td> 281 <td> 0 </td>
282 <td> 1 </td> 282 <td> 1 </td>
283 </tr> 283 </tr>
284 <tr> 284 <tr>
285 <td> <b>Nuluj adresu DD na 0 a zruš posunutí</b> </td> 285 <td> <b>Nuluj adresu DD na 0 a zruš posunutí</b> </td>
286 <td> 0 </td> 286 <td> 0 </td>
287 <td> 0 </td> 287 <td> 0 </td>
288 <td> 0 </td> 288 <td> 0 </td>
289 <td> 0 </td> 289 <td> 0 </td>
290 <td> 0 </td> 290 <td> 0 </td>
291 <td> 0 </td> 291 <td> 0 </td>
292 <td> 0 </td> 292 <td> 0 </td>
293 <td> 0 </td> 293 <td> 0 </td>
294 <td> 1 </td> 294 <td> 1 </td>
295 <td> * </td> 295 <td> * </td>
296 </tr> 296 </tr>
297 <tr> 297 <tr>
298 <td> <b>Nastavení pohybu kurzoru</b> </td> 298 <td> <b>Nastavení pohybu kurzoru</b> </td>
299 <td> 0 </td> 299 <td> 0 </td>
300 <td> 0 </td> 300 <td> 0 </td>
301 <td> 0 </td> 301 <td> 0 </td>
302 <td> 0 </td> 302 <td> 0 </td>
303 <td> 0 </td> 303 <td> 0 </td>
304 <td> 0 </td> 304 <td> 0 </td>
305 <td> 0 </td> 305 <td> 0 </td>
306 <td> 1 </td> 306 <td> 1 </td>
307 <td> ID </td> 307 <td> ID </td>
308 <td> S </td> 308 <td> S </td>
309 </tr> 309 </tr>
310 <tr> 310 <tr>
311 <td> <b>Nastavení módu displeje</b> </td> 311 <td> <b>Nastavení módu displeje</b> </td>
312 <td> 0 </td> 312 <td> 0 </td>
313 <td> 0 </td> 313 <td> 0 </td>
314 <td> 0 </td> 314 <td> 0 </td>
315 <td> 0 </td> 315 <td> 0 </td>
316 <td> 0 </td> 316 <td> 0 </td>
317 <td> 0 </td> 317 <td> 0 </td>
318 <td> 1 </td> 318 <td> 1 </td>
319 <td> D </td> 319 <td> D </td>
320 <td> C </td> 320 <td> C </td>
321 <td> B </td> 321 <td> B </td>
322 </tr> 322 </tr>
323 <tr> 323 <tr>
324 <td> <b>Okamžitý posuv kurzoru nebo textu</b> </td> 324 <td> <b>Okamžitý posuv kurzoru nebo textu</b> </td>
325 <td> 0 </td> 325 <td> 0 </td>
326 <td> 0 </td> 326 <td> 0 </td>
327 <td> 0 </td> 327 <td> 0 </td>
328 <td> 0 </td> 328 <td> 0 </td>
329 <td> 0 </td> 329 <td> 0 </td>
330 <td> 1 </td> 330 <td> 1 </td>
331 <td> SC </td> 331 <td> SC </td>
332 <td> RL </td> 332 <td> RL </td>
333 <td> * </td> 333 <td> * </td>
334 <td> * </td> 334 <td> * </td>
335 </tr> 335 </tr>
336 <tr> 336 <tr>
337 <td> <b>Nastavení funkce displeje</b> </td> 337 <td> <b>Nastavení funkce displeje</b> </td>
338 <td> 0 </td> 338 <td> 0 </td>
339 <td> 0 </td> 339 <td> 0 </td>
340 <td> 0 </td> 340 <td> 0 </td>
341 <td> 0 </td> 341 <td> 0 </td>
342 <td> 1 </td> 342 <td> 1 </td>
343 <td> DL </td> 343 <td> DL </td>
344 <td> N </td> 344 <td> N </td>
345 <td> F </td> 345 <td> F </td>
346 <td> * </td> 346 <td> * </td>
347 <td> * </td> 347 <td> * </td>
348 </tr> 348 </tr>
349 <tr> 349 <tr>
350 <td> <b>Nastavení adresy CG</b> </td> 350 <td> <b>Nastavení adresy CG</b> </td>
351 <td> 0 </td> 351 <td> 0 </td>
352 <td> 0 </td> 352 <td> 0 </td>
353 <td> 0 </td> 353 <td> 0 </td>
354 <td> 1 </td> 354 <td> 1 </td>
355 <td> A5 </td> 355 <td> A5 </td>
356 <td> A4 </td> 356 <td> A4 </td>
357 <td> A3 </td> 357 <td> A3 </td>
358 <td> A2 </td> 358 <td> A2 </td>
359 <td> A1 </td> 359 <td> A1 </td>
360 <td> A0 </td> 360 <td> A0 </td>
361 </tr> 361 </tr>
362 <tr> 362 <tr>
363 <td> <b>Nastavení adresy DD</b> </td> 363 <td> <b>Nastavení adresy DD</b> </td>
364 <td> 0 </td> 364 <td> 0 </td>
365 <td> 0 </td> 365 <td> 0 </td>
366 <td> 1 </td> 366 <td> 1 </td>
367 <td> A6 </td> 367 <td> A6 </td>
368 <td> A5 </td> 368 <td> A5 </td>
369 <td> A4 </td> 369 <td> A4 </td>
370 <td> A3 </td> 370 <td> A3 </td>
371 <td> A2 </td> 371 <td> A2 </td>
372 <td> A1 </td> 372 <td> A1 </td>
373 <td> A0 </td> 373 <td> A0 </td>
374 </tr> 374 </tr>
375 <tr> 375 <tr>
376 <td> <b>Čtení adresy a busy bitu</b> </td> 376 <td> <b>Čtení adresy a busy bitu</b> </td>
377 <td> 0 </td> 377 <td> 0 </td>
378 <td> 1 </td> 378 <td> 1 </td>
379 <td> BF </td> 379 <td> BF </td>
380 <td> A6 </td> 380 <td> A6 </td>
381 <td> A5 </td> 381 <td> A5 </td>
382 <td> A4 </td> 382 <td> A4 </td>
383 <td> A3 </td> 383 <td> A3 </td>
384 <td> A2 </td> 384 <td> A2 </td>
385 <td> A1 </td> 385 <td> A1 </td>
386 <td> A0 </td> 386 <td> A0 </td>
387 </tr> 387 </tr>
388 <tr> 388 <tr>
389 <td> <b>Zápis dat</b> </td> 389 <td> <b>Zápis dat</b> </td>
390 <td> 1 </td> 390 <td> 1 </td>
391 <td> 0 </td> 391 <td> 0 </td>
392 <td> D7 </td> 392 <td> D7 </td>
393 <td> D6 </td> 393 <td> D6 </td>
394 <td> D5 </td> 394 <td> D5 </td>
395 <td> D4 </td> 395 <td> D4 </td>
396 <td> D3 </td> 396 <td> D3 </td>
397 <td> D2 </td> 397 <td> D2 </td>
398 <td> D1 </td> 398 <td> D1 </td>
399 <td> D0 </td> 399 <td> D0 </td>
400 </tr> 400 </tr>
401 <tr> 401 <tr>
402 <td> <b>Čtení dat</b> </td> 402 <td> <b>Čtení dat</b> </td>
403 <td> 1 </td> 403 <td> 1 </td>
404 <td> 1 </td> 404 <td> 1 </td>
405 <td> D7 </td> 405 <td> D7 </td>
406 <td> D6 </td> 406 <td> D6 </td>
407 <td> D5 </td> 407 <td> D5 </td>
408 <td> D4 </td> 408 <td> D4 </td>
409 <td> D3 </td> 409 <td> D3 </td>
410 <td> D2 </td> 410 <td> D2 </td>
411 <td> D1 </td> 411 <td> D1 </td>
412 <td> D0 </td> 412 <td> D0 </td>
413 </tr> 413 </tr>
414 </table> 414 </table>
415   415  
416 <table> 416 <table>
417 <tr> 417 <tr>
418 <th> Bit </th> 418 <th> Bit </th>
419 <th> Popis </th> 419 <th> Popis </th>
420 </tr> 420 </tr>
421 <tr> 421 <tr>
422 <td> S=1 </td> 422 <td> S=1 </td>
423 <td> Při zápisu/čtení dat se bude posouvat celý displej (směr určuje bit ID) </td> 423 <td> Při zápisu/čtení dat se bude posouvat celý displej (směr určuje bit ID) </td>
424 </tr> 424 </tr>
425 <tr> 425 <tr>
426 <td> S=0 </td> 426 <td> S=0 </td>
427 <td> Při zápisu/čtení dat se bude posouvat jen kursor (směr určuje bit ID) </td> 427 <td> Při zápisu/čtení dat se bude posouvat jen kursor (směr určuje bit ID) </td>
428 </tr> 428 </tr>
429 <tr> 429 <tr>
430 <td> ID=1 </td> 430 <td> ID=1 </td>
431 <td> Při zápisu/čtení dat je ukazatel adresy inkrementován </td> 431 <td> Při zápisu/čtení dat je ukazatel adresy inkrementován </td>
432 </tr> 432 </tr>
433 <tr> 433 <tr>
434 <td> ID=0 </td> 434 <td> ID=0 </td>
435 <td> Při zápisu/čtení dat je ukazatel adresy dekrementován </td> 435 <td> Při zápisu/čtení dat je ukazatel adresy dekrementován </td>
436 </tr> 436 </tr>
437 <tr> 437 <tr>
438 <td> B=1 </td> 438 <td> B=1 </td>
439 <td> Blikající znak na pozici kurzoru </td> 439 <td> Blikající znak na pozici kurzoru </td>
440 </tr> 440 </tr>
441 <tr> 441 <tr>
442 <td> B=0 </td> 442 <td> B=0 </td>
443 <td> Znak nebliká </td> 443 <td> Znak nebliká </td>
444 </tr> 444 </tr>
445 <tr> 445 <tr>
446 <td> C=1 </td> 446 <td> C=1 </td>
447 <td> Zapnutí kurzoru </td> 447 <td> Zapnutí kurzoru </td>
448 </tr> 448 </tr>
449 <tr> 449 <tr>
450 <td> C=0 </td> 450 <td> C=0 </td>
451 <td> Vypnutí kurzoru </td> 451 <td> Vypnutí kurzoru </td>
452 </tr> 452 </tr>
453 <tr> 453 <tr>
454 <td> D=1 </td> 454 <td> D=1 </td>
455 <td> Zapnutí displeje </td> 455 <td> Zapnutí displeje </td>
456 </tr> 456 </tr>
457 <tr> 457 <tr>
458 <td> D=0 </td> 458 <td> D=0 </td>
459 <td> Vypnutí displeje </td> 459 <td> Vypnutí displeje </td>
460 </tr> 460 </tr>
461 <tr> 461 <tr>
462 <td> RL=1 </td> 462 <td> RL=1 </td>
463 <td> Okamžitý posuv doprava </td> 463 <td> Okamžitý posuv doprava </td>
464 </tr> 464 </tr>
465 <tr> 465 <tr>
466 <td> RL=0 </td> 466 <td> RL=0 </td>
467 <td> Okamžitý posuv doleva </td> 467 <td> Okamžitý posuv doleva </td>
468 </tr> 468 </tr>
469 <tr> 469 <tr>
470 <td> SC=1 </td> 470 <td> SC=1 </td>
471 <td> Okamžitý posuv textu </td> 471 <td> Okamžitý posuv textu </td>
472 </tr> 472 </tr>
473 <tr> 473 <tr>
474 <td> SC=0 </td> 474 <td> SC=0 </td>
475 <td> Okamžitý posuv kurzoru </td> 475 <td> Okamžitý posuv kurzoru </td>
476 </tr> 476 </tr>
477 <tr> 477 <tr>
478 <td> F=1 </td> 478 <td> F=1 </td>
479 <td> Znaky v rastru 5x10 </td> 479 <td> Znaky v rastru 5x10 </td>
480 </tr> 480 </tr>
481 <tr> 481 <tr>
482 <td> F=0 </td> 482 <td> F=0 </td>
483 <td> Znaky v rastru 5x7 (běžné) </td> 483 <td> Znaky v rastru 5x7 (běžné) </td>
484 </tr> 484 </tr>
485 <tr> 485 <tr>
486 <td> N=1 </td> 486 <td> N=1 </td>
487 <td> Počet řádek displeje 2 nebo 4 </td> 487 <td> Počet řádek displeje 2 nebo 4 </td>
488 </tr> 488 </tr>
489 <tr> 489 <tr>
490 <td> N=0 </td> 490 <td> N=0 </td>
491 <td> Počet řádek displeje 1 (některé jednořádkové displeje jsou 491 <td> Počet řádek displeje 1 (některé jednořádkové displeje jsou
492 dvouřádkové – místo řádek mají levou a pravou polovinu) </td> 492 dvouřádkové – místo řádek mají levou a pravou polovinu) </td>
493 </tr> 493 </tr>
494 <tr> 494 <tr>
495 <td> DL=1 </td> 495 <td> DL=1 </td>
496 <td> Přenos dat 8 bitů </td> 496 <td> Přenos dat 8 bitů </td>
497 </tr> 497 </tr>
498 <tr> 498 <tr>
499 <td> DL=0 </td> 499 <td> DL=0 </td>
500 <td> Přenos dat 4 bity (používají se vodiče D7 až D4) </td> 500 <td> Přenos dat 4 bity (používají se vodiče D7 až D4) </td>
501 </tr> 501 </tr>
502 <tr> 502 <tr>
503 <td> BF=1 </td> 503 <td> BF=1 </td>
504 <td> Bussy – probíhá vnitřní operace </td> 504 <td> Bussy – probíhá vnitřní operace </td>
505 </tr> 505 </tr>
506 <tr> 506 <tr>
507 <td> BF=0 </td> 507 <td> BF=0 </td>
508 <td> Ready – je možné posílat instrukce </td> 508 <td> Ready – je možné posílat instrukce </td>
509 </tr> 509 </tr>
510 </table> 510 </table>
511   511  
512 <h2> Mechanická konstrukce </h2> 512 <h2> Mechanická konstrukce </h2>
513   513  
514 <p> 514 <p>
515 Mechanická konstrukce je standardní. Displej je přišroubován šrouby M2.5, 515 Mechanická konstrukce je standardní. Displej je přišroubován šrouby M2.5,
516 jako distanční podložky mezi displej a plošný spoj je možné použít 516 jako distanční podložky mezi displej a plošný spoj je možné použít
517 matičky M3. 517 matičky M3.
518 </p> 518 </p>
519   519  
520 <h1> Osazení a oživení </h1> 520 <h1> Osazení a oživení </h1>
521   521  
522 <h2> Osazení </h2> 522 <h2> Osazení </h2>
523   523  
524 <p> 524 <p>
525 Strana součástí 525 Strana součástí
526 </p> 526 </p>
527   527  
528 <p> 528 <p>
529 <img width="530" height="319" src="Pictures/image005.jpg" 529 <img width="530" height="319" src="Pictures/image005.jpg"
530 alt="Oszení, strana součástí"> 530 alt="Oszení, strana součástí">
531 </p> 531 </p>
532   532  
533 <p> 533 <p>
534 Strana spojů 534 Strana spojů
535 </p> 535 </p>
536   536  
537 <p> 537 <p>
538 <img width="529" height="319" src="Pictures/image006.jpg" 538 <img width="529" height="319" src="Pictures/image006.jpg"
539 alt="Osazení, strana spojů"> 539 alt="Osazení, strana spojů">
540 </p> 540 </p>
541   541  
542 <h2> Oživení </h2> 542 <h2> Oživení </h2>
543   543  
544 <p> 544 <p>
545 Pokud jsou součásti, plošný spoj a pájení v pořádku není co oživovat. 545 Pokud jsou součásti, plošný spoj a pájení v pořádku není co oživovat.
546 </p> 546 </p>
547 547
548 <h1> Programové vybavení </h1> 548 <h1> Programové vybavení </h1>
549   549  
550 <p> 550 <p>
551 Pro ovládání LCD displeje procesorem PIC je připraven knihovní modul 551 Pro ovládání LCD displeje procesorem PIC je připraven knihovní modul
552 LCD.C napsaný v jazyce C pro překladač CCS. 552 LCD.C napsaný v jazyce C pro překladač CCS.
553 </p> 553 </p>
554   554  
555 <h2> Uživatelský návod </h2> 555 <h2> Uživatelský návod </h2>
556   556  
557 <p> 557 <p>
558 V programu, který bude ovládat LCD displeje je třeba definovat připojení 558 V programu, který bude ovládat LCD displeje je třeba definovat připojení
559 LCD displeje a včlenit knihovnu LCD.C do zdrojového programu. První 559 LCD displeje a včlenit knihovnu LCD.C do zdrojového programu. První
560 příklad ukazuje jak se definuje připojení LCD displeje, když jsou datové 560 příklad ukazuje jak se definuje připojení LCD displeje, když jsou datové
561 bity displeje připojeny na libovolné porty procesoru: 561 bity displeje připojeny na libovolné porty procesoru:
562 </p> 562 </p>
563   563  
564 <p> 564 <p>
565 <code>#define LCD_RS PIN_A2 // Signal RS</code><br> 565 <code>#define LCD_RS PIN_A2 // Signal RS</code><br>
566 <code>#define LCD_E PIN_A3 // Signal E</code><br> 566 <code>#define LCD_E PIN_A3 // Signal E</code><br>
567 <code>#define LCD_D0 PIN_A4 // Data</code><br> 567 <code>#define LCD_D0 PIN_A4 // Data</code><br>
568 <code>#define LCD_D1 PIN_B1</code><br> 568 <code>#define LCD_D1 PIN_B1</code><br>
569 <code>#define LCD_D2 PIN_B2</code><br> 569 <code>#define LCD_D2 PIN_B2</code><br>
570 <code>#define LCD_D3 PIN_B3</code><br> 570 <code>#define LCD_D3 PIN_B3</code><br>
571 <code>#include &lt;LCD.C&gt;</code> 571 <code>#include &lt;LCD.C&gt;</code>
572 <p> 572 <p>
573   573  
574 <p> 574 <p>
575 Následující příklad zobrazuje připojení, kdy jsou jednotlivé bity datové 575 Následující příklad zobrazuje připojení, kdy jsou jednotlivé bity datové
576 sběrnice displeje připojeny na jediný port procesoru za sebou: 576 sběrnice displeje připojeny na jediný port procesoru za sebou:
577 </p> 577 </p>
578   578  
579 <p> 579 <p>
580 <code>#define LCD_RS PIN_A2 // Signal RS</code><br> 580 <code>#define LCD_RS PIN_A2 // Signal RS</code><br>
581 <code>#define LCD_E PIN_A3 // Signal E</code><br> 581 <code>#define LCD_E PIN_A3 // Signal E</code><br>
582 <code>#define LCD_DATA_LSB PIN_C2 // 4 bity za sebou</code><br> 582 <code>#define LCD_DATA_LSB PIN_C2 // 4 bity za sebou</code><br>
583 <code>#include &lt;LCD.C&gt;</code> 583 <code>#include &lt;LCD.C&gt;</code>
584 <p> 584 <p>
585   585  
586 <p> 586 <p>
587 Pak je třeba LCD displej inicializovat (například ve funkci main() ): 587 Pak je třeba LCD displej inicializovat (například ve funkci main() ):
588 </p> 588 </p>
589   589  
590 <p> 590 <p>
591 <code>lcd_init();</code> 591 <code>lcd_init();</code>
592 </p> 592 </p>
593   593  
594 <p> 594 <p>
595 Pak je možné buď posílat znaky na displej rovnou pomocí funkce LCD_putc() 595 Pak je možné buď posílat znaky na displej rovnou pomocí funkce LCD_putc()
596 nebo prostřednictvím funkce printf(): 596 nebo prostřednictvím funkce printf():
597 </p> 597 </p>
598   598  
599 <p> 599 <p>
600 <code>LCD_Putc(0x40);</code><br> 600 <code>LCD_Putc(0x40);</code><br>
601 <code>printf(LCD_Putc,"\n\rText1\r\nText2\n\r");</code> 601 <code>printf(LCD_Putc,"\n\rText1\r\nText2\n\r");</code>
602 </p> 602 </p>
603   603  
604 <p> 604 <p>
605 V případě potřeby je možné nadefinovat nové znaky (až 8 znaků najednou). 605 V případě potřeby je možné nadefinovat nové znaky (až 8 znaků najednou).
606 Jejich tvar se uloží do CG RAM v displeji a je možné je zobrazit jako 606 Jejich tvar se uloží do CG RAM v displeji a je možné je zobrazit jako
607 znaky s kódem 0x00 až 0x07 (nebo 0x08 až 0x0F, 0x10 až 0x17 a 0x18 až 607 znaky s kódem 0x00 až 0x07 (nebo 0x08 až 0x0F, 0x10 až 0x17 a 0x18 až
608 0x1F). Tvary českých znaků a některých užitečných symbolů je již 608 0x1F). Tvary českých znaků a některých užitečných symbolů je již
609 předpřipravena a používá se takto: 609 předpřipravena a používá se takto:
610 </p> 610 </p>
611   611  
612 <p> 612 <p>
613 <code>lcd_define_char(0,LCD_CHAR_BAT50);</code><br> 613 <code>lcd_define_char(0,LCD_CHAR_BAT50);</code><br>
614 <code>// Definice znaku baterie do pozice 0</code><br> 614 <code>// Definice znaku baterie do pozice 0</code><br>
615 <code>lcd_define_char(2,LCD_CHAR_HLE LCD_CHAR_LUI);</code><br> 615 <code>lcd_define_char(2,LCD_CHAR_HLE LCD_CHAR_LUI);</code><br>
616 <code>// Definice znaků ě a Í od pozice 2</code><br> 616 <code>// Definice znaků ě a Í od pozice 2</code><br>
617 <code>// Mezi retezci s definici není carka</code><br> 617 <code>// Mezi retezci s definici není carka</code><br>
618 <code>printf(lcd_putc,"\fZnaky:\20\22\23");</code><br> 618 <code>printf(lcd_putc,"\fZnaky:\20\22\23");</code><br>
619 <code>// Vypis znaku z pozice 0, 2 a 3</code><br> 619 <code>// Vypis znaku z pozice 0, 2 a 3</code><br>
620 <code>delay_ms(1000);</code><br> 620 <code>delay_ms(1000);</code><br>
621 <code>// Prodleva</code><br> 621 <code>// Prodleva</code><br>
622 <code>lcd_define_char(0,LCD_CHAR_BAT0);</code><br> 622 <code>lcd_define_char(0,LCD_CHAR_BAT0);</code><br>
623 <code>// Predefinovani tvaru znaku v pozici 0</code><br> 623 <code>// Predefinovani tvaru znaku v pozici 0</code><br>
624 <code>delay_ms(1000);</code><br> 624 <code>delay_ms(1000);</code><br>
625 <code>// Prodleva</code> 625 <code>// Prodleva</code>
626 </p> 626 </p>
627   627  
628 <p> 628 <p>
629 Do displeje je možné posílat řídící příkazy nebo displej řídit pomocnými 629 Do displeje je možné posílat řídící příkazy nebo displej řídit pomocnými
630 funkcemi takto: 630 funkcemi takto:
631 </p> 631 </p>
632   632  
633 <p> 633 <p>
634 \f = \x0C nová stránka = smazání displeje <br> 634 \f = \x0C nová stránka = smazání displeje <br>
635 \n = \x0A odřádkování = přechod na druhou řádku <br> 635 \n = \x0A odřádkování = přechod na druhou řádku <br>
636 \b = \x08 backspace = posunutí kurzoru o 1 pozici vlevo <br> 636 \b = \x08 backspace = posunutí kurzoru o 1 pozici vlevo <br>
637 \r = \x0D přesune se na pozici 1,1 <br> 637 \r = \x0D přesune se na pozici 1,1 <br>
638 \0 .. \7 uživatelsky definovaný znak v pozici 0 až 7 v CG RAM <br> 638 \0 .. \7 uživatelsky definovaný znak v pozici 0 až 7 v CG RAM <br>
639 \20 .. \27 alternativní způsob jak vypsat uživatelsky definované znaky <br> 639 \20 .. \27 alternativní způsob jak vypsat uživatelsky definované znaky <br>
640 (funkce printf() chápe znak 0 jako ukončení tisku) 640 (funkce printf() chápe znak 0 jako ukončení tisku)
641 </p> 641 </p>
642   642  
643 <p> 643 <p>
644 lcd_gotoxy(x,y) přesuň kurzor na uvedenou pozici (1,1 znamená domu) 644 lcd_gotoxy(x,y) přesuň kurzor na uvedenou pozici (1,1 znamená domu)
645 lcd_cursor_on() zapne kurzor 645 lcd_cursor_on() zapne kurzor
646 lcd_cursor_off() vypne kurzor 646 lcd_cursor_off() vypne kurzor
647 </p> 647 </p>
648   648  
649 <h2> Popis programu </h2> 649 <h2> Popis programu </h2>
650   650  
651 <p> 651 <p>
652 V případě nejasnosti je vhodné nahlédnout do zdrojového textu LCD.C a 652 V případě nejasnosti je vhodné nahlédnout do zdrojového textu LCD.C a
653 případně vyhledat podrobnosti. Na konci souboru je uveden příklad 653 případně vyhledat podrobnosti. Na konci souboru je uveden příklad
654 definování uživatelských LCD znaků a hned před ním je definice konstant 654 definování uživatelských LCD znaků a hned před ním je definice konstant
655 pro české znaky a některé pomocné znaky včetně jejich popisu. 655 pro české znaky a některé pomocné znaky včetně jejich popisu.
656 </p> 656 </p>
657   657  
658 <p> 658 <p>
659 Aktuální verze LCD.C se může mírně lišit od výše uvedeného popisu, je 659 Aktuální verze LCD.C se může mírně lišit od výše uvedeného popisu, je
660 proto třeba primárně vycházet z komentářů ve zdrojovém kódu. 660 proto třeba primárně vycházet z komentářů ve zdrojovém kódu.
661 </p> 661 </p>
662   662  
663 </div> 663 </div>
664   664  
665 <!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE --> 665 <!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE -->
666 <!-- ============== PATIČKA ============== --> 666 <!-- ============== PATIČKA ============== -->
667 <div class="Footer"> 667 <div class="Footer">
668 <script type="text/javascript"> 668 <script type="text/javascript">
669 <!-- 669 <!--
670 SetRelativePath("../../../../../"); 670 SetRelativePath("../../../../../");
671 DrawFooter(); 671 DrawFooter();
672 // --> 672 // -->
673 </script> 673 </script>
674 <noscript> 674 <noscript>
675 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p> 675 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
676 </noscript> 676 </noscript>
677 </div> 677 </div>
678 <!-- AUTOINCLUDE END --> 678 <!-- AUTOINCLUDE END -->
679   679  
680 </body> 680 </body>
681 </html> 681 </html>