<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[C-LiBRARY für LCD display]]></title><description><![CDATA[<p>Hi,</p>
<p>ich möchte gern wissen wie ich die beiden datein in eine LIB packen kann<br />
ty</p>
<p>lcd.h</p>
<pre><code>#ifndef __LCD
#define __LCD

void LCD_write4bit(unsigned char);	//Schreibt ein Byte hinaus(4bit Datenbus)
void LCD_init(void);
void LCD_reset(void);
void LCD_out(char);					//Schreibt einen string auf das LCD
void LCD_wait_ms(unsigned int);		//LCD_wait_ms(Zeit in ms)
void LCD_wait_us(unsigned int);		//LCD_wait_us(Zeit in �s)
void LCD_movexy(unsigned char,unsigned char);
void LCD_on(void);
void LCD_clear();

#endif
</code></pre>
<p>lcd.c</p>
<pre><code>#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &quot;reg51xd2.H&quot;
#include &quot;LCD.h&quot;

#define REG 0
#define DAT 1

//Enable
sbit LCD_E=P1^0;

//Register Select
sbit LCD_RS=P1^1;

//datenbits
sbit LCD_D4=P1^4;
sbit LCD_D5=P1^5;
sbit LCD_D6=P1^6;
sbit LCD_D7=P1^7;

void LCD_clear()
{
	LCD_RS=REG;
	LCD_write4bit(0x01);	//clear display
}

void LCD_out(char *text)
{
	LCD_RS=DAT;
	while(*text!='\0')
		{
		LCD_write4bit(*text++);
		}
}

void LCD_write4bit(unsigned char zeichen)
{
	LCD_E=1;	//high

	LCD_D7=zeichen&amp;0x80;	//HIGH NIBBL
	LCD_D6=zeichen&amp;0x40;
	LCD_D5=zeichen&amp;0x20;
	LCD_D4=zeichen&amp;0x10;

	LCD_E=1;
	LCD_E=0;

	LCD_wait_us(50);

	LCD_D7=zeichen&amp;0x08;	//LOW NIBBL
	LCD_D6=zeichen&amp;0x04;
	LCD_D5=zeichen&amp;0x02;
	LCD_D4=zeichen&amp;0x01;

	LCD_E=1;
	LCD_E=0;

	LCD_wait_us(50);		//ca.50�s
}

void LCD_init(void)
{
	LCD_reset();

	LCD_E=0;
	LCD_RS=REG;

	LCD_D7=0;		//4bit datenbus
	LCD_D6=0;
	LCD_D5=1;
	LCD_D4=0;		//DL=0--&gt; 4bit datenbus

	LCD_E=1;
	LCD_E=0;

	LCD_wait_ms(2);		//ca.2ms

	LCD_write4bit(0x28);	//0010 1000 4bit d.b. ;zweizeilig; 5x7 Punkte

	LCD_wait_ms(2);		//ca.2ms

	LCD_write4bit(0x0c);	//0000 1100	Disply an

	LCD_wait_ms(2);		//ca.2ms

	LCD_write4bit(0x01);	//clear display

	LCD_wait_ms(2);		//ca.2ms
}

void LCD_reset(void)
{
	LCD_E=0;
	LCD_RS=REG;
	LCD_D7=0;
	LCD_D6=0;
	LCD_D5=1;
	LCD_D4=1;
	LCD_E=1;
	LCD_E=0;
	LCD_wait_ms(5);

	LCD_D7=0;
	LCD_D6=0;
	LCD_D5=1;
	LCD_D4=1;
	LCD_E=1;
	LCD_E=0;
	LCD_wait_us(100);

	LCD_D7=0;
	LCD_D6=0;
	LCD_D5=1;
	LCD_D4=1;
	LCD_E=1;
	LCD_E=0;
	LCD_wait_ms(1);
}

void LCD_movexy(unsigned char row,unsigned char col)
{
	unsigned char address;

	if(row==1)
		{
		address=0x80+col;	//1 Zeile
		}
	else
		{
		address=0xc0+col;
		}

	LCD_RS=REG;
	LCD_write4bit(address);
	LCD_wait_ms(1);
}

void LCD_on(void)
{
LCD_RS=REG;
LCD_write4bit(0x0c);
LCD_wait_us(50);
}

void LCD_wait_ms(unsigned int value)
{
unsigned int i;
for(i=0;i&lt;(4*value);i++)
	{
	LCD_wait_us(238);
	}
}
void LCD_wait_us(unsigned int value)
{
unsigned char dummy;
unsigned int i;
for(i=0;i&lt;(value/4);i++)
	{
	dummy++;
	dummy++;
	}
}
</code></pre>
<p>mfg<br />
SeBi <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/239905/c-library-für-lcd-display</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 07:19:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/239905.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Apr 2009 12:12:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C-LiBRARY für LCD display on Wed, 29 Apr 2009 12:12:44 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich möchte gern wissen wie ich die beiden datein in eine LIB packen kann<br />
ty</p>
<p>lcd.h</p>
<pre><code>#ifndef __LCD
#define __LCD

void LCD_write4bit(unsigned char);	//Schreibt ein Byte hinaus(4bit Datenbus)
void LCD_init(void);
void LCD_reset(void);
void LCD_out(char);					//Schreibt einen string auf das LCD
void LCD_wait_ms(unsigned int);		//LCD_wait_ms(Zeit in ms)
void LCD_wait_us(unsigned int);		//LCD_wait_us(Zeit in �s)
void LCD_movexy(unsigned char,unsigned char);
void LCD_on(void);
void LCD_clear();

#endif
</code></pre>
<p>lcd.c</p>
<pre><code>#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &quot;reg51xd2.H&quot;
#include &quot;LCD.h&quot;

#define REG 0
#define DAT 1

//Enable
sbit LCD_E=P1^0;

//Register Select
sbit LCD_RS=P1^1;

//datenbits
sbit LCD_D4=P1^4;
sbit LCD_D5=P1^5;
sbit LCD_D6=P1^6;
sbit LCD_D7=P1^7;

void LCD_clear()
{
	LCD_RS=REG;
	LCD_write4bit(0x01);	//clear display
}

void LCD_out(char *text)
{
	LCD_RS=DAT;
	while(*text!='\0')
		{
		LCD_write4bit(*text++);
		}
}

void LCD_write4bit(unsigned char zeichen)
{
	LCD_E=1;	//high

	LCD_D7=zeichen&amp;0x80;	//HIGH NIBBL
	LCD_D6=zeichen&amp;0x40;
	LCD_D5=zeichen&amp;0x20;
	LCD_D4=zeichen&amp;0x10;

	LCD_E=1;
	LCD_E=0;

	LCD_wait_us(50);

	LCD_D7=zeichen&amp;0x08;	//LOW NIBBL
	LCD_D6=zeichen&amp;0x04;
	LCD_D5=zeichen&amp;0x02;
	LCD_D4=zeichen&amp;0x01;

	LCD_E=1;
	LCD_E=0;

	LCD_wait_us(50);		//ca.50�s
}

void LCD_init(void)
{
	LCD_reset();

	LCD_E=0;
	LCD_RS=REG;

	LCD_D7=0;		//4bit datenbus
	LCD_D6=0;
	LCD_D5=1;
	LCD_D4=0;		//DL=0--&gt; 4bit datenbus

	LCD_E=1;
	LCD_E=0;

	LCD_wait_ms(2);		//ca.2ms

	LCD_write4bit(0x28);	//0010 1000 4bit d.b. ;zweizeilig; 5x7 Punkte

	LCD_wait_ms(2);		//ca.2ms

	LCD_write4bit(0x0c);	//0000 1100	Disply an

	LCD_wait_ms(2);		//ca.2ms

	LCD_write4bit(0x01);	//clear display

	LCD_wait_ms(2);		//ca.2ms
}

void LCD_reset(void)
{
	LCD_E=0;
	LCD_RS=REG;
	LCD_D7=0;
	LCD_D6=0;
	LCD_D5=1;
	LCD_D4=1;
	LCD_E=1;
	LCD_E=0;
	LCD_wait_ms(5);

	LCD_D7=0;
	LCD_D6=0;
	LCD_D5=1;
	LCD_D4=1;
	LCD_E=1;
	LCD_E=0;
	LCD_wait_us(100);

	LCD_D7=0;
	LCD_D6=0;
	LCD_D5=1;
	LCD_D4=1;
	LCD_E=1;
	LCD_E=0;
	LCD_wait_ms(1);
}

void LCD_movexy(unsigned char row,unsigned char col)
{
	unsigned char address;

	if(row==1)
		{
		address=0x80+col;	//1 Zeile
		}
	else
		{
		address=0xc0+col;
		}

	LCD_RS=REG;
	LCD_write4bit(address);
	LCD_wait_ms(1);
}

void LCD_on(void)
{
LCD_RS=REG;
LCD_write4bit(0x0c);
LCD_wait_us(50);
}

void LCD_wait_ms(unsigned int value)
{
unsigned int i;
for(i=0;i&lt;(4*value);i++)
	{
	LCD_wait_us(238);
	}
}
void LCD_wait_us(unsigned int value)
{
unsigned char dummy;
unsigned int i;
for(i=0;i&lt;(value/4);i++)
	{
	dummy++;
	dummy++;
	}
}
</code></pre>
<p>mfg<br />
SeBi <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1703109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1703109</guid><dc:creator><![CDATA[noObz]]></dc:creator><pubDate>Wed, 29 Apr 2009 12:12:44 GMT</pubDate></item><item><title><![CDATA[Reply to C-LiBRARY für LCD display on Wed, 29 Apr 2009 12:16:01 GMT]]></title><description><![CDATA[<p>noObz schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>Könntest du beim nächsten mal vor dem Posten auch darauf achten das du das richtige Forum erwischst? &quot;C-LiBRARY&quot; gehört wohl eindeutig in das C, nicht das C++ Forum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1703114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1703114</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 29 Apr 2009 12:16:01 GMT</pubDate></item><item><title><![CDATA[Reply to C-LiBRARY für LCD display on Wed, 29 Apr 2009 12:19:26 GMT]]></title><description><![CDATA[<p>sorry, aber hättest du da ne ahnung wie der code für ne library ausschauen muss wäre echt n1 <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title="=)"
      alt="🙂"
    /></p>
<p>ty</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1703119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1703119</guid><dc:creator><![CDATA[noObz]]></dc:creator><pubDate>Wed, 29 Apr 2009 12:19:26 GMT</pubDate></item></channel></rss>