<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[forum.rcl-radio.ru &mdash; lcd1602 спецсимволы]]></title>
		<link>http://forum.rcl-radio.ru/viewtopic.php?id=416</link>
		<atom:link href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=416&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «lcd1602 спецсимволы».]]></description>
		<lastBuildDate>Mon, 16 Aug 2021 00:21:57 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: lcd1602 спецсимволы]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=4618#p4618</link>
			<description><![CDATA[<div class="codebox"><pre><code>//LCD1602 NANO = RS D2,E D3,D4 D4,D5 D5,D6 D6,D7 D7

int bb = 0;


void setup(){
  lcdInit();
 // lcdWrite(0, 0b00000,0b10000,0b10000,0b10000,0b10000,0b10000,0b10000,0b00000);
 // lcdWrite(8, 0b00000,0b10100,0b10100,0b10100,0b10100,0b10100,0b10100,0b00000);
 // lcdWrite(16, 0b00000,0b10101,0b10101,0b10101,0b10101,0b10101,0b10101,0b00000);
  
  }

void loop(){
   lcdCurs(0,0);
 
    lcdInt(bb++);

  // lcdChar(2);
   
  delay(1000);
  }

void lcdSend(bool rs, byte data) {
    del();
    if(rs==0){PORTD |= (1 &lt;&lt; 2);} else{PORTD &amp;= ~(1 &lt;&lt; 2);}//RS   
    if((data &gt;&gt; 7) &amp; 1 ==1) PORTD |= (1 &lt;&lt; 7); else PORTD &amp;= ~(1 &lt;&lt; 7);
    if((data &gt;&gt; 6) &amp; 1 ==1) PORTD |= (1 &lt;&lt; 6); else PORTD &amp;= ~(1 &lt;&lt; 6);
    if((data &gt;&gt; 5) &amp; 1 ==1) PORTD |= (1 &lt;&lt; 5); else PORTD &amp;= ~(1 &lt;&lt; 5);
    if((data &gt;&gt; 4) &amp; 1 ==1) PORTD |= (1 &lt;&lt; 4); else PORTD &amp;= ~(1 &lt;&lt; 4);
    e_pin();
    if(((data &gt;&gt; 3) &amp; 1) ==1) PORTD |= (1 &lt;&lt; 7); else PORTD &amp;= ~(1 &lt;&lt; 7);
    if(((data &gt;&gt; 2) &amp; 1) ==1) PORTD |= (1 &lt;&lt; 6); else PORTD &amp;= ~(1 &lt;&lt; 6);
    if(((data &gt;&gt; 1) &amp; 1) ==1) PORTD |= (1 &lt;&lt; 5); else PORTD &amp;= ~(1 &lt;&lt; 5);
    if(((data &gt;&gt; 0) &amp; 1) ==1) PORTD |= (1 &lt;&lt; 4); else PORTD &amp;= ~(1 &lt;&lt; 4);
    e_pin();  
}  
void lcd(uint8_t cmd) {lcdSend(true, cmd);}
void lcdChar(const char chr) {lcdSend(false, (uint8_t)chr);}
void lcdString(const char* str) {while(*str != &#039;\0&#039;) {lcdChar(*str);str++;}}
void del(){delayMicroseconds(350);}
void e_pin(){PORTD &amp;= ~(1 &lt;&lt; 3);delayMicroseconds(1);PORTD |= (1 &lt;&lt; 3);delayMicroseconds(1);PORTD &amp;= ~(1 &lt;&lt; 3);delayMicroseconds(50);}
void lcdCurs(byte str, byte mesto){if(str==0){lcd(0b10000000|mesto);}if(str==1){lcd(0b11000000|mesto);}}
void lcdInit(){ 
    DDRD |= (1 &lt;&lt; 2) | (1 &lt;&lt; 3)| (1 &lt;&lt; 4) | (1 &lt;&lt; 5) | (1 &lt;&lt; 6) | (1 &lt;&lt; 7);  
    _delay_ms(100);
    lcd(0x03);delayMicroseconds(4500);
    lcd(0x03);delayMicroseconds(4500);
    lcd(0x03);delayMicroseconds(200);
    lcd(0b00000010);del();
    lcd(0b00001100);del();
    lcdClear();
  } 
void lcdInt(int int_x){cli();char b_123[8];String(int_x).toCharArray(b_123,7);lcdString(b_123);sei();}
void lcdClear(){lcd(0b00000001);}   
void lcdWrite(byte addr_w, byte wr1,byte wr2,byte wr3,byte wr4,byte wr5,byte wr6,byte wr7,byte wr8){
  lcd(0b01000000|addr_w);
  lcdChar(wr1);lcdChar(wr2);lcdChar(wr3);lcdChar(wr4);lcdChar(wr5);lcdChar(wr6);lcdChar(wr7);lcdChar(wr8);
  }</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Mon, 16 Aug 2021 00:21:57 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=4618#p4618</guid>
		</item>
		<item>
			<title><![CDATA[lcd1602 спецсимволы]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=4600#p4600</link>
			<description><![CDATA[<div class="codebox"><pre><code>//LCD1602 NANO = RS D2,E D3,D4 D4,D5 D5,D6 D6,D7 D7

void setup(){
  lcdInit();
  lcdWrite(0, 0b00000,0b10000,0b10000,0b10000,0b10000,0b10000,0b10000,0b00000);
  lcdWrite(8, 0b00000,0b10100,0b10100,0b10100,0b10100,0b10100,0b10100,0b00000);
  lcdWrite(16, 0b00000,0b10101,0b10101,0b10101,0b10101,0b10101,0b10101,0b00000);
  
  }

void loop(){
   lcdCurs(0,0);
  // lcdString(&quot;Volume&quot;);
   lcdChar(2);
   
  delay(1000);
  }

void lcdSend(bool rs, byte data) {
    if(rs==0){PORTD |= (1 &lt;&lt; 2);} else{PORTD &amp;= ~(1 &lt;&lt; 2);}//RS
    del();
    if(((data &gt;&gt; 7) &amp; 1) ==1) PORTD |= (1 &lt;&lt; 7); else PORTD &amp;= ~(1 &lt;&lt; 7);
    if(((data &gt;&gt; 6) &amp; 1) ==1) PORTD |= (1 &lt;&lt; 6); else PORTD &amp;= ~(1 &lt;&lt; 6);
    if(((data &gt;&gt; 5) &amp; 1) ==1) PORTD |= (1 &lt;&lt; 5); else PORTD &amp;= ~(1 &lt;&lt; 5);
    if(((data &gt;&gt; 4) &amp; 1) ==1) PORTD |= (1 &lt;&lt; 4); else PORTD &amp;= ~(1 &lt;&lt; 4);
    e_pin();
    if(((data &gt;&gt; 3) &amp; 1) ==1) PORTD |= (1 &lt;&lt; 7); else PORTD &amp;= ~(1 &lt;&lt; 7);
    if(((data &gt;&gt; 2) &amp; 1) ==1) PORTD |= (1 &lt;&lt; 6); else PORTD &amp;= ~(1 &lt;&lt; 6);
    if(((data &gt;&gt; 1) &amp; 1) ==1) PORTD |= (1 &lt;&lt; 5); else PORTD &amp;= ~(1 &lt;&lt; 5);
    if(((data &gt;&gt; 0) &amp; 1) ==1) PORTD |= (1 &lt;&lt; 4); else PORTD &amp;= ~(1 &lt;&lt; 4);
    e_pin();
}  
void lcd(uint8_t cmd) {lcdSend(true, cmd);}
void lcdChar(const char chr) {lcdSend(false, (uint8_t)chr);}
void lcdString(const char* str) {while(*str != &#039;\0&#039;) {del();lcdChar(*str);str++;}}
void del(){delay(1);}
void e_pin(){PORTD |= (1 &lt;&lt; 3);del();PORTD &amp;= ~(1 &lt;&lt; 3);}
void lcdCurs(byte str, byte mesto){
  if(str==0){lcd(0b10000000+mesto);}
  if(str==1){lcd(0b11000000+mesto);}
  }
void lcdInit(){ 
    DDRD |= (1 &lt;&lt; 2) | (1 &lt;&lt; 3)| (1 &lt;&lt; 4) | (1 &lt;&lt; 5) | (1 &lt;&lt; 6) | (1 &lt;&lt; 7);  
    delay(100);
    lcd(0x03);delayMicroseconds(4500);
    lcd(0x03);delayMicroseconds(4500);
    lcd(0x03);delayMicroseconds(200);
 
    lcd(0b00000010);del();
    lcd(0b00001100);del();
    lcdClear();
  } 
void lcdInt(long int_x){
   byte h[8];
   long int_y=int_x;
   int i,i_kol;
  if(int_x&lt;0){int_x=abs(int_x);lcdChar(&#039;-&#039;);}    // если минус
  for(i_kol=0;int_x&gt;0;i_kol++){int_x=int_x/10;}  // определяем кол-во цифр в long
  for(i=0;i&lt;i_kol;i++){h[i]=int_y%10; int_y=int_y/10;}// разбиваем число на отдельные цифры
  for(i=i_kol-1;i&gt;=0;i--){lcdChar(h[i] +&#039;0&#039;);} // преобразуем числа в char
  if(i_kol==0){lcdChar(&#039;0&#039;);} // если long = 0, то выводить ноль
  }
void lcdClear(){lcd(0b00000001);}   

void lcdWrite(byte addr_w, byte wr1,byte wr2,byte wr3,byte wr4,byte wr5,byte wr6,byte wr7,byte wr8){
  lcd(0b01000000|addr_w);
  lcdChar(wr1);lcdChar(wr2);lcdChar(wr3);lcdChar(wr4);lcdChar(wr5);lcdChar(wr6);lcdChar(wr7);lcdChar(wr8);
  }</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Thu, 12 Aug 2021 09:53:03 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=4600#p4600</guid>
		</item>
	</channel>
</rss>
