<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=8&amp;t=5863&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-02-08T10:44:02+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=5863&amp;mode</id>
<entry>
<author><name><![CDATA[Jestemkuba_PL]]></name></author>
<updated>2014-02-08T10:44:02+01:00</updated>
<published>2014-02-08T10:44:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=69227#p69227</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=69227#p69227"/>
<title type="html"><![CDATA[Re: Wyświetlacz LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=69227#p69227"><![CDATA[
Wielkie dzięki za pomoc.  Jak będę miał pytania to napisze . <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2295">Jestemkuba_PL</a> — 8 lut 2014, o 10:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tomekk]]></name></author>
<updated>2014-02-07T18:26:20+01:00</updated>
<published>2014-02-07T18:26:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=69010#p69010</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=69010#p69010"/>
<title type="html"><![CDATA[Re: Wyświetlacz LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=69010#p69010"><![CDATA[
Opis podłączeń w pliku hd44780.h, oprócz tego trzeba podać częstotliwość taktowania i rodzaj mikrokontrolera i może się uda.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2703">Tomekk</a> — 7 lut 2014, o 18:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[programek]]></name></author>
<updated>2014-02-07T16:19:55+01:00</updated>
<published>2014-02-07T16:19:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=68992#p68992</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=68992#p68992"/>
<title type="html"><![CDATA[Re: Wyświetlacz LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=68992#p68992"><![CDATA[
Mam tutaj darmowe biblioteki do lcd, które kiedyś używałem:<br />plik hd44780.c:<br />[syntax=c]/*<br />  Plik hd44780.c<br /><br />  Definicje kilku funkcji do obsługi alfanumerycznego<br />  wyświetlacza LCD HD44780<br />*/<br /><br /><br />#include&lt;avr/io.h&gt;<br />#include&lt;util/delay.h&gt;<br />#include &quot;hd44780.h&quot;<br /><br />/*--------------------------------------------------------*/<br />/* Zapis danej lub instrukcji */<br /><br />void WriteToLCD (unsigned char v,unsigned char  rs)<br />{<br />    unsigned char bf;<br /><br />    SET_OUT_LCD_D4;<br />    SET_OUT_LCD_D5;<br />    SET_OUT_LCD_D6;<br />    SET_OUT_LCD_D7;<br /><br />    if(v&amp;0x10) SET_LCD_D4; else CLR_LCD_D4;<br />    if(v&amp;0x20) SET_LCD_D5; else CLR_LCD_D5;<br />    if(v&amp;0x40) SET_LCD_D6; else CLR_LCD_D6;<br />    if(v&amp;0x80) SET_LCD_D7; else CLR_LCD_D7;<br /> <br />    CLR_LCD_E;<br />    if(rs) SET_LCD_RS;else CLR_LCD_RS;<br />    CLR_LCD_RW;<br /><br />    LCD_NOP;<br />    SET_LCD_E;<br />    LCD_NOP; <br />    CLR_LCD_E;<br />    LCD_NOP;<br /> <br />    if(v&amp;0x01) SET_LCD_D4; else CLR_LCD_D4;<br />    if(v&amp;0x02) SET_LCD_D5; else CLR_LCD_D5;<br />    if(v&amp;0x04) SET_LCD_D6; else CLR_LCD_D6;<br />    if(v&amp;0x08) SET_LCD_D7; else CLR_LCD_D7;<br /> <br />    LCD_NOP;<br />    SET_LCD_E;<br />    LCD_NOP; <br />    CLR_LCD_E;<br />    LCD_NOP;<br /> <br />    SET_IN_LCD_D4;<br />    SET_IN_LCD_D5;<br />    SET_IN_LCD_D6;<br />    SET_IN_LCD_D7;<br /><br />    CLR_LCD_RS;<br />    SET_LCD_RW;<br />    SET_LCD_D7;<br /><br /><br />/* Przydałby się pełny odczyt */<br />    do<br />    {<br />        LCD_NOP;<br />        SET_LCD_E;<br />        LCD_NOP;<br />        bf = IS_SET_LCD_D7;<br />        CLR_LCD_E;<br />        LCD_NOP;<br />        SET_LCD_E;<br />        LCD_NOP;<br />        LCD_NOP;<br />        CLR_LCD_E;<br />        <br />    }while( bf );<br />}<br /><br /><br />/*--------------------------------------------------------*/<br />/* Funkcja odczytuje adres i flage zajetosci */<br /><br />unsigned char ReadAddressLCD ( void)<br />{<br />    unsigned char g = 0 ;<br /><br />    CLR_LCD_RS;<br />    SET_LCD_RW; <br /><br />    SET_IN_LCD_D4;<br />    SET_IN_LCD_D5;<br />    SET_IN_LCD_D6;<br />    SET_IN_LCD_D7;<br /><br />    LCD_NOP;<br />    SET_LCD_E;<br />    LCD_NOP;<br /><br />    if(IS_SET_LCD_D4) g+=16;<br />    if(IS_SET_LCD_D4) g+=32;<br />    if(IS_SET_LCD_D4) g+=64;<br />    if(IS_SET_LCD_D4) g+=128;<br /> <br />    CLR_LCD_E;<br />    LCD_NOP;<br />    SET_LCD_E;  <br />    LCD_NOP;<br />  <br />    if(IS_SET_LCD_D4) g+=8;<br />    if(IS_SET_LCD_D4) g+=4;<br />    if(IS_SET_LCD_D4) g+=2;<br />    if(IS_SET_LCD_D4) g+=1;<br />  <br />    CLR_LCD_E; <br /><br />    return  g ;<br />}<br /><br /><br />/*---------------------------------------------------------*/<br />/* Inicjalizacja wyświetlacza */<br /><br />void lcd_init(void)<br />{<br />    _delay_ms(31);    <br />   <br />    SET_OUT_LCD_RS;<br />    SET_OUT_LCD_RW;<br />    SET_OUT_LCD_E;<br />    SET_OUT_LCD_D4;<br />    SET_OUT_LCD_D5;<br />    SET_OUT_LCD_D6;<br />    SET_OUT_LCD_D7;<br /><br />    CLR_LCD_E;<br />    CLR_LCD_RS;<br />    CLR_LCD_RW;<br />    SET_LCD_D4;<br />    SET_LCD_D5;<br />    CLR_LCD_D6;<br />    CLR_LCD_D7;        <br />  <br />    LCD_NOP;<br />    SET_LCD_E;<br />    LCD_NOP; <br />    CLR_LCD_E;<br />    LCD_NOP;<br />    _delay_ms(10);<br /><br />    LCD_NOP;<br />    SET_LCD_E;<br />    LCD_NOP; <br />    CLR_LCD_E;<br />    LCD_NOP;<br />    _delay_ms(2);<br /><br />    LCD_NOP;<br />    SET_LCD_E;<br />    LCD_NOP; <br />    CLR_LCD_E;<br />    LCD_NOP;<br />    _delay_ms(2);<br /><br />    CLR_LCD_D4;<br />    LCD_NOP;<br />    SET_LCD_E;<br />    LCD_NOP; <br />    CLR_LCD_E;<br />    LCD_NOP;<br />    _delay_us(80);<br /><br />    WriteToLCD (0x28 , LCDCOMMAND) ;<br />    LCD_DISPLAY(0) ;<br />    LCD_CLEAR ;<br />    LCD_ENTRY_MODE(LCDINCREMENT) ;<br />}<br /><br /><br />/*--------------------------------------------------------*/<br />/* Wyswietla tekst na aktualnej pozycji kursora */<br /><br />void lcd_puts(char *str)<br />{<br />    unsigned char i =0;<br /><br />    while( str&#91;i&#93;)<br />        LCD_WRITE_DATA(str&#91;i++&#93;) ;<br />}[/syntax]<br /><br />plik hd44780.h:<br />[syntax=c]/*<br />Plik hd44780.h<br />*/<br /><br />#ifndef LCD_HD44780<br />#define LCD_HD44780<br /><br />/* RS */<br />#define SET_OUT_LCD_RS  DDRA  |=  _BV(PA0)<br />#define SET_LCD_RS      PORTA |=  _BV(PA0)<br />#define CLR_LCD_RS      PORTA &amp;= ~_BV(PA0)<br /><br />/* RW */<br />#define SET_OUT_LCD_RW  DDRA  |=  _BV(PA1)<br />#define SET_LCD_RW      PORTA |=  _BV(PA1)<br />#define CLR_LCD_RW      PORTA &amp;= ~_BV(PA1)<br /><br />/* E */<br />#define SET_OUT_LCD_E   DDRA  |=  _BV(PA2)<br />#define SET_LCD_E       PORTA |=  _BV(PA2)<br />#define CLR_LCD_E       PORTA &amp;= ~_BV(PA2)<br /><br />/* D4 */<br />#define SET_OUT_LCD_D4  DDRA  |=  _BV(PA3)<br />#define SET_IN_LCD_D4   DDRA  &amp;= ~_BV(PA3)<br />#define SET_LCD_D4      PORTA |=  _BV(PA3)<br />#define CLR_LCD_D4      PORTA &amp;= ~_BV(PA3)<br />#define IS_SET_LCD_D4   PINA  &amp;   _BV(PA3)<br /><br />/* D5 */<br />#define SET_OUT_LCD_D5  DDRA  |=  _BV(PA4)<br />#define SET_IN_LCD_D5   DDRA  &amp;= ~_BV(PA4)<br />#define SET_LCD_D5      PORTA |=  _BV(PA4)<br />#define CLR_LCD_D5      PORTA &amp;= ~_BV(PA4)<br />#define IS_SET_LCD_D5   PINA  &amp;   _BV(PA4)<br /><br />/* D6 */<br />#define SET_OUT_LCD_D6  DDRA  |=  _BV(PA5)<br />#define SET_IN_LCD_D6   DDRA  &amp;= ~_BV(PA5)<br />#define SET_LCD_D6      PORTA |=  _BV(PA5)<br />#define CLR_LCD_D6      PORTA &amp;= ~_BV(PA5)<br />#define IS_SET_LCD_D6   PINA  &amp;   _BV(PA5)<br /><br />/* D7 */<br />#define SET_OUT_LCD_D7  DDRA  |=  _BV(PA6)<br />#define SET_IN_LCD_D7   DDRA  &amp;= ~_BV(PA6)<br />#define SET_LCD_D7      PORTA |=  _BV(PA6)<br />#define CLR_LCD_D7      PORTA &amp;= ~_BV(PA6)<br />#define IS_SET_LCD_D7   PINA  &amp;   _BV(PA6)<br /><br /><br />#define LCD_NOP asm volatile(&quot;nop\n\t&quot;&quot;nop\n\t&quot; &quot;nop\n\t&quot; &quot;nop\n\t&quot; ::);<br /><br /><br /><br />#define LCDCOMMAND 0<br />#define LCDDATA    1<br /><br />#define LCD_LOCATE(x,y)  WriteToLCD(0x80|((x)+((y)*0x40)), LCDCOMMAND)<br /><br />#define LCD_CLEAR              WriteToLCD(0x01, LCDCOMMAND)<br />#define LCD_HOME               WriteToLCD(0x02, LCDCOMMAND)<br /><br />/* IDS */<br /><br />#define LCDINCREMENT           0x02<br />#define LCDDECREMENT           0x00<br />#define LCDDISPLAYSHIFT        0x01<br /><br />#define LCD_ENTRY_MODE(IDS)    WriteToLCD(0x04|(IDS), LCDCOMMAND)<br /><br />/* BCD */<br />#define LCDDISPLAY             0x04<br />#define LCDCURSOR              0x02<br />#define LCDBLINK               0x01<br /><br />#define LCD_DISPLAY(DCB)       WriteToLCD(0x08|(DCB), LCDCOMMAND)<br /><br />/* RL */<br />#define LCDLEFT                0x00<br />#define LCDRIGHT               0x04<br /><br />#define LCD_SHIFT_DISPLAY(RL)  WriteToLCD(0x18|(RL), LCDCOMMAND)<br />#define LCD_SHIFT_CURSOR(RL)   WriteToLCD(0x10|(RL), LCDCOMMAND)<br /><br />#define LCD_CGRAM_ADDRESS(A)   WriteToLCD(0x40|((A)&amp;0x3f), LCDCOMMAND)<br />#define LCD_DDRAM_ADDRESS(A)   WriteToLCD(0x80|((A)&amp;0x7f), LCDCOMMAND)<br /><br />#define LCD_WRITE_DATA(D)      WriteToLCD((D),LCDDATA)<br /><br /><br />void lcd_init(void);<br />void WriteToLCD(unsigned char v,unsigned char rs);<br />unsigned char ReadAddressLCD(void);<br />void lcd_puts(char *str);<br /><br />#endif[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 4 minutach ]</span></strong><br /><br />Przykładowy program:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;LCD/hd44780.h&quot;<br /><br />int main(void) {<br /><br />/* Funkcja inicjalizuje wyświetlacz*/<br />lcd_init();<br />/* Włącza wyświetlanie */<br />LCD_DISPLAY(LCDDISPLAY);<br /><br />/* szósta kolumna, pierwszy wiersz */<br />LCD_LOCATE(5,0);<br /><br />lcd_puts(&quot;Test&quot;);<br /><br />while(1);<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1526">programek</a> — 7 lut 2014, o 16:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Człowiek_Zlew]]></name></author>
<updated>2014-02-07T15:54:56+01:00</updated>
<published>2014-02-07T15:54:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=68990#p68990</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=68990#p68990"/>
<title type="html"><![CDATA[Re: Wyświetlacz LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=68990#p68990"><![CDATA[
Bo jak nie masz to nawet jak pobierzesz biblioteki to nie napiszesz programu aby coś wyświetlić.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2106">Człowiek_Zlew</a> — 7 lut 2014, o 15:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[programek]]></name></author>
<updated>2014-02-07T15:34:52+01:00</updated>
<published>2014-02-07T15:34:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=68988#p68988</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=68988#p68988"/>
<title type="html"><![CDATA[Re: Wyświetlacz LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=68988#p68988"><![CDATA[
<div class="quotetitle">Jestemkuba_PL napisał(a):</div><div class="quotecontent"><br />Witam,<br />proszę o pomoc z podłączeniem i całym programem atmega8 do wyświetlacza LCD 16x2. Na stronie Pana Mirka jest schemat, ale nw gdzie podłączyć te piny r/w rs  e czy też D4,D5,D6,D7. Prosiłbym również o jakiś program do tego w języku C. <br />Dziękuję i pozdrawiam <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div><br /><br />A masz może niebieską książkę Mirka???<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />Piny D4-D7 i E,RS i R/W można podłączyć do dowolnego wolnego pinu procesora<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1526">programek</a> — 7 lut 2014, o 15:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Człowiek_Zlew]]></name></author>
<updated>2014-02-07T15:32:38+01:00</updated>
<published>2014-02-07T15:32:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=68987#p68987</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=68987#p68987"/>
<title type="html"><![CDATA[Re: Wyświetlacz LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=68987#p68987"><![CDATA[
<a href="http://mirekk36.blogspot.com/2012/04/lcd-hd4478-jak-podaczac.html"  class="postlink">http://mirekk36.blogspot.com/2012/04/lcd-hd4478-jak-podaczac.html</a><br /><br />Znaczy się nie wiesz gdzie podłaczasz piny do procesora ? Musisz mieć program i biblioteke do lcd i bedziesz tam miał zdefiniowane porty Uc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2106">Człowiek_Zlew</a> — 7 lut 2014, o 15:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jestemkuba_PL]]></name></author>
<updated>2014-02-07T15:28:14+01:00</updated>
<published>2014-02-07T15:28:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=68985#p68985</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=68985#p68985"/>
<title type="html"><![CDATA[Wyświetlacz LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5863&amp;p=68985#p68985"><![CDATA[
Witam,<br />proszę o pomoc z podłączeniem i całym programem atmega8 do wyświetlacza LCD 16x2. Na stronie Pana Mirka jest schemat, ale nw gdzie podłączyć te piny r/w rs  e czy też D4,D5,D6,D7. Prosiłbym również o jakiś program do tego w języku C. <br />Dziękuję i pozdrawiam <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2295">Jestemkuba_PL</a> — 7 lut 2014, o 15:28</p><hr />
]]></content>
</entry>
</feed>