diff --git a/articles/2012/avr-lcd-panel-1-program.md b/articles/2012/avr-lcd-panel-1-program.md new file mode 100644 index 0000000000000000000000000000000000000000..4a0db61479ec9c25796b64cd923513d6fe26ff95 --- /dev/null +++ b/articles/2012/avr-lcd-panel-1-program.md @@ -0,0 +1,66 @@ ++++ + +title = "AVR - LCD panel - #1 Program" +perex_e = " + +KompatibilnĂ zapojenĂ: LCD panel s ATmega8 + +Ke staĹľenĂ: LCD_001.c == LCD_001.pdf == LCD_001.htm +. +. +" +tags = ["ÄŚlánek"] ++++ + + + +KompatibilnĂ zapojenĂ: LCD panel s ATmega8 + +Ke staĹľenĂ: LCD_001.c == LCD_001.pdf == LCD_001.htm +. +. + +* * * + +<title>Untitled</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="generator" content="SynEdit HTML exporter"> <style type="text/css">&amp;lt;!-- body { color: #000000; background-color: #FFFFFF; } .cpp1-assembler { } .cpp1-brackets { } .cpp1-comment { color: #008000; font-style: italic; } .cpp1-float { color: #000080; } .cpp1-hexadecimal { color: #000080; } .cpp1-character { } .cpp1-identifier { } .cpp1-illegalchar { } .cpp1-number { color: #000080; } .cpp1-octal { color: #0000FF; } .cpp1-preprocessor { } .cpp1-reservedword { font-weight: bold; } .cpp1-space { color: #008080; } .cpp1-string { color: #800000; } .cpp1-symbol { } --&amp;gt;</style> + +``` +/* +ZaÄŤĂnáme s novĂ˝m pĹ™Ăpravkem ATmega_lcd_uni, kterĂ˝ je vybaven znakovĂ˝m +LCD displejem a klávesnicĂ. + +LCD displej má zobrazovacĂ kapacitu dva řádky po šestnácti sloupcĂch (32 znakĹŻ) +znaky (pĂsmenka a speciálnĂ znaky jsou uloĹľenĂ© pĹ™Ămo v pamÄ›ti displeje a +pĹ™ibliĹľnÄ› odpovĂdajĂ ASCII tabulce (viz datasheet displeje rc1602b-biw-esx) +ProtoĹľe je ale vĂ˝robci jasnĂ©, Ĺľe by nÄ›kdo mohl chtĂt na displeji zobrazovat +i jinĂ© znaky, neĹľ kterĂ© jsou uvedeny v tabulce, ponechal 8 mĂst volnĂ˝ch, kam +si mĹŻĹľeme nahrát vlastnĂ znaky VÄ›tšinou se tato mĂsta vyuĹľĂvajĂ pro pĂsmena +s ÄŤeskou interpunkcĂ (ta v základnĂ tabulce nejsou) + +Klávesnice je tvoĹ™ena dvÄ›ma Ĺ™adami po tĹ™ech tlaÄŤĂtkách, coĹľ je pro vÄ›tšinu +aplikacĂ dostateÄŤnĂ˝ poÄŤet. NavĂc je ke kaĹľdĂ©mu tlaÄŤĂtku sĂ©riovÄ› pĹ™ipojena +dioda, a to tak, Ĺľe lze rozlišit i vĂce stisknutĂ˝ch tlaÄŤĂtek najednou. +Je tedy moĹľnĂ© pouĹľĂvat dvojhmaty (i "vĂcehmaty"), coĹľ nám rozšiĹ™uje poÄŤet +samotnĂ˝ch tlaÄŤĂtek o jejich vzájemnĂ© kombinace. +*/ +/* +Jak uĹľ to v programovánĂ bĂ˝vá, prvnĂ co program napĂše, je text "Hello World". +Náš prvnĂ program tedy bude dÄ›lat to samĂ©, ale protoĹľe jsme ÄŚeši, pĹ™idáme +ještÄ› tuto hlášku v ÄŤeštinÄ›. +Nejprve ale musĂme do našeho programu vloĹľit rutiny pro komunikaci s displejem, +a soubor s konfiguracĂ pinĹŻ mikrokontrolĂ©ru pro tento pĹ™Ăpravek. +jedná se o soubory "atmega_lcd_uni_cfg.c" a "lcd.c". +Soubor "atmega_lcd_uni_cfg.c" obsahuje informace o tom, ke kterĂ˝m pinĹŻm je +pĹ™ipojen displej a ke kterĂ˝m je pĹ™ipojena klávesnice. MusĂ bĂ˝t proto vloĹľen +ještÄ› pĹ™ed souborem "lcd.c". +Soubor "lcd.c" obsahuje rutiny pro práci s displejem. NemusĂme se tedy starat +o to jak s displejem komunikovat, ale mĹŻĹľeme jiĹľ rovnou na nÄ›j posĂlat data +pomocĂ jiĹľ hotovĂ˝ch funkcĂ. + +Funkce v souboru "lcd.c" jsou: + +void lcd_ini (void);//inicializace displeje (nastavenĂ pinĹŻ a zahájenĂ komunikace) +void lcd_char (unsigned char dat);//napĂše znak pomocĂ ASCII kĂłdu (pĂsmena, ÄŤĂsla) +void lcd_num3 (unsigned int num,unsigned char znak);//napĂše cislo (3 cifry) +void lcd_num2 (unsigned char num,unsigned char znak);//napĂše cislo (2 cifry) +``` \ No newline at end of file