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