<?xml version="1.0" encoding="utf-8"?>
				<!-- generator="e107" -->
				<!-- content type="Forum / topic" -->
				<rss  version="2.0">
				<channel>
				<title>8051 Microcontroller Projects AVR PIC Projects Tutorials Ebooks Libraries codes : Forum / topic</title>
				<link>http://www.8051projects.net/</link>
				<description>Learn to make simple microcontroller projects, pic, 8051, avr and arm projects. download 8051 projects, tutorials, libraries, sample codes. join the microcontroller discussion forum and ask doubts regarding electronics. the best source for 8051 over internet.</description>

<language>en-gb</language>
				<copyright>2008 Rickey's World</copyright>
				<managingEditor>contact@nospam.com (Ajay Bhargav)</managingEditor>
				<webMaster>contact@nospam.com (Ajay Bhargav)</webMaster>
				<pubDate>Thu, 08 Jan 2009 22:50:11 -0800</pubDate>
				<lastBuildDate>Thu, 08 Jan 2009 22:50:11 -0800</lastBuildDate>
				<docs>http://backend.userland.com/rss</docs>
				<generator>e107 (http://e107.org)</generator>
				<ttl>60</ttl>
				<textInput>
				<title>Search</title>
				<description>Search 8051 Microcontroller Projects AVR PIC Projects Tutorials Ebooks Libraries codes</description>
				<name>query</name>
				<link>http://www.8051projects.net/search.php</link>
				</textInput>
						<item>
						<title>LCD HD47780 interfacing</title>
<link>http://www.8051projects.net/forum-t10721.html</link>
<description><![CDATA[i was trying to interface my at89c51ed2 with a LCD <br />however , i got some problem initialize it ..<br />there is a post on www.bipom.com teaching ppl <br />but i don understand why we nid to put 0x30 into data for 3 times before we can put in other command . can someone explain to me ?<br />anyone got simple c code for lcd ? <br />Thank you ~]]></description>
<pubDate>Wed, 09 Jul 2008 19:25:15 -0700</pubDate>
<guid isPermaLink="true">http://www.8051projects.net/forum-t10721.html</guid>
</item>
						<item>
						<title>Re: LCD HD47780 interfacing</title>
<link>http://www.8051projects.net/forum-t10721.html</link>
<description><![CDATA[Go through this link:<br /><br />http://www.8051projects.net/lcd-interfacing/<br /><br />It will explain you each n everything about interfacing LCD with 8051.]]></description>
<author>contact@nospam.com (Ajay Bhargav)</author>
<pubDate>Wed, 09 Jul 2008 21:17:34 -0700</pubDate>
<guid isPermaLink="true">http://www.8051projects.net/forum-t10721.html</guid>
</item>
						<item>
						<title>Re: LCD HD47780 interfacing</title>
<link>http://www.8051projects.net/forum-t10721.html</link>
<description><![CDATA[http://www.edsim51.com/examples.html#prog4<br /><br />see this too]]></description>
<author>contact@nospam.com (Ajay Bhargav)</author>
<pubDate>Thu, 10 Jul 2008 06:53:52 -0700</pubDate>
<guid isPermaLink="true">http://www.8051projects.net/forum-t10721.html</guid>
</item>
						<item>
						<title>Re: LCD HD47780 interfacing</title>
<link>http://www.8051projects.net/forum-t10721.html</link>
<description><![CDATA[http://www.8051projects.net/lcd-interfacing/initialization.php<br />this page shows that we nid input a 30H as command into it before any other command . Why ?]]></description>
<author>contact@nospam.com (Ajay Bhargav)</author>
<pubDate>Thu, 10 Jul 2008 07:09:47 -0700</pubDate>
<guid isPermaLink="true">http://www.8051projects.net/forum-t10721.html</guid>
</item>
						<item>
						<title>Re: LCD HD47780 interfacing</title>
<link>http://www.8051projects.net/forum-t10721.html</link>
<description><![CDATA[30H is the init byte for LCD.<br /><br />As i explained there are two types of resets in LCD<br />1. Power on reset<br />2. Software reset<br /><br />1. Power on reset, as name says. LCD get reset during power up by itself (thats the reason you see blocks on LCD when you just power it up). During power on reset LCD get initialized in 8-bit mode.<br /><br />2. Software reset, This kind of reset is to reset LCD with software instructions. 30H is sent 3 times as init byte sequence. <br /><br />As you know during power on reset LCD initialized in 8-bit mode so no need to give software reset if you are using LCD in 8-bit mode, but if you want to use LCD in 4-bit mode then you have to give LCD a software reset and tell the LCD that you are going to use 4-bit mode.<br />reset sequence is explained in 4-bit initialization section. Please read it carefully.<br />]]></description>
<author>contact@nospam.com (Ajay Bhargav)</author>
<pubDate>Thu, 10 Jul 2008 08:13:52 -0700</pubDate>
<guid isPermaLink="true">http://www.8051projects.net/forum-t10721.html</guid>
</item>
						<item>
						<title>Re: LCD HD47780 interfacing</title>
<link>http://www.8051projects.net/forum-t10721.html</link>
<description><![CDATA[i had completed the c code for lcd . but i cant run it on my at89c51ed2 . <br />i choose to put 8 data lines at port 0 , and RS,RW,EN at port 2 .<br />do i nid to put a Vcc (5V) , through a resistor to those pins at port 2 ?<br />should i configure such like http://www.edsim51.com/examples.html using resistor value 10k ? <br /><br />#include &lt;at89c51ed2.h><br /><br />#define LCD_DATA P0<br />#define LCD_EN P2_0<br />#define LCD_RW P2_1<br />#define LCD_RS P2_2<br /><br />void delay(int);<br />void WRT_COMM();<br />void WRT_DATA();<br /><br />void main()<br />{<br />	delay(18000);<br /><br />	LCD_DATA = 0x38;			//Initialize LCD 2 Lines, 5 x 7 Matrix, 8 bit interface.<br />	WRT_COMM();<br /><br />	LCD_DATA = 0x0E;			//Display ON, Cursor ON,blink off<br />	WRT_COMM();<br /><br />	LCD_DATA = 0x01;			//Clear Display<br />	WRT_COMM();<br />	delay(18000);<br /><br />	LCD_DATA = 0x06;			//Increment cursor position, No display shift.<br />	WRT_COMM();<br /><br />	LCD_DATA = 'D';<br />	WRT_DATA();<br /><br />	LCD_DATA = 'O';<br />	WRT_DATA();<br /><br />	LCD_DATA = 'N';<br />	WRT_DATA();<br /><br />	LCD_DATA = 'E';<br />	WRT_DATA();<br />}<br /><br />void delay(int time)<br />{<br />	int t;<br />	time = time * 2;            //each machine cycle is 0.5u second<br />	for(t=1; t&lt;=time; t++)<br />	{}<br />}<br /><br />void WRT_COMM()<br />{<br />	LCD_RS = 0;<br />	LCD_RW = 0;<br />	LCD_EN = 1;<br />	LCD_EN = 0;<br />	delay(180);<br />}<br /><br />void WRT_DATA()<br />{<br />	LCD_RS = 1;<br />	LCD_RW = 0;<br />	LCD_EN = 1;<br />	LCD_EN = 0;<br />	delay(180);<br />}<br />]]></description>
<author>contact@nospam.com (Ajay Bhargav)</author>
<pubDate>Sat, 12 Jul 2008 10:58:15 -0700</pubDate>
<guid isPermaLink="true">http://www.8051projects.net/forum-t10721.html</guid>
</item>
						<item>
						<title>Re: LCD HD47780 interfacing</title>
<link>http://www.8051projects.net/forum-t10721.html</link>
<description><![CDATA[Hi friend,<br /><br />Avoid using Port 0 and port 2 , instead use P1 for 8 bit data and P3 for control lines of LCD.  <br /><br />if you insist on using P0 then you need to have 10K pull up resistors, also try adjusting the Contrast on the LCD, i hope you have a 10K pot between Vss, Vdd, and Vee of LCD<br /><br /><br /><br />Arun]]></description>
<author>contact@nospam.com (Ajay Bhargav)</author>
<pubDate>Sat, 12 Jul 2008 23:45:38 -0700</pubDate>
<guid isPermaLink="true">http://www.8051projects.net/forum-t10721.html</guid>
</item>
						<item>
						<title>Re: LCD HD47780 interfacing</title>
<link>http://www.8051projects.net/forum-t10721.html</link>
<description><![CDATA[but the controller that i using is at89c51ed2 pid40 .<br />it have special function on port 1 and 3 that i need to use it for other purpose later <br /> <img src='http://www.8051projects.net/e107_images/emotes/yahoo/102.gif' alt='' style='vertical-align:middle; border:0' />]]></description>
<author>contact@nospam.com (Ajay Bhargav)</author>
<pubDate>Sat, 12 Jul 2008 23:49:00 -0700</pubDate>
<guid isPermaLink="true">http://www.8051projects.net/forum-t10721.html</guid>
</item>
						<item>
						<title>Re: LCD HD47780 interfacing</title>
<link>http://www.8051projects.net/forum-t10721.html</link>
<description><![CDATA[<br /> the answer is in my last post<br /><br />  <div class='indent'>if you insist on using P0 then you need to have 10K pull up resistors, </div><br /><br /><br /><br /><br />Arun]]></description>
<author>contact@nospam.com (Ajay Bhargav)</author>
<pubDate>Sat, 12 Jul 2008 23:56:16 -0700</pubDate>
<guid isPermaLink="true">http://www.8051projects.net/forum-t10721.html</guid>
</item>
						<item>
						<title>Re: LCD HD47780 interfacing</title>
<link>http://www.8051projects.net/forum-t10721.html</link>
<description><![CDATA[@weijie<br /><br />In your code try increasing the delay in the range of milliseconds.<br />sth like this.....<br /><br />void delay(int time)<br />{<br />int t,i;<br />time = time * 2; //each machine cycle is 0.5u second<br />for(t=1; t&lt;=time; t++)<br />      for( i=0 ; i&lt;750 ; i++) ;<br />}<br /><br />Also insert a small (1 ms) delay between LCD_EN 1 and 0.<br /><br />It would be better to use the 'busy-flag' method rather than fiddling with delay values.<br />]]></description>
<author>contact@nospam.com (Ajay Bhargav)</author>
<pubDate>Sun, 13 Jul 2008 00:56:54 -0700</pubDate>
<guid isPermaLink="true">http://www.8051projects.net/forum-t10721.html</guid>
</item>
						<item>
						<title>Re: LCD HD47780 interfacing</title>
<link>http://www.8051projects.net/forum-t10721.html</link>
<description><![CDATA[@sashijoseph <br /><br />the line of    " for( i=0 ; i&lt;750 ; i++) " is use to ?<br />eg : lets say i call void delay(160) , then the result delay will be ? crystal that i using is 22.184MHz<br />my delay aim are use to generate delay in term of microsecond as the minimum time to execute a command for LCD is 40us.<br />Is it better to check busy flag compare to using delay ? because some forum comment that checking busy flag is not advisable to use .]]></description>
<author>contact@nospam.com (Ajay Bhargav)</author>
<pubDate>Sun, 13 Jul 2008 20:23:27 -0700</pubDate>
<guid isPermaLink="true">http://www.8051projects.net/forum-t10721.html</guid>
</item>
						<item>
						<title>Re: LCD HD47780 interfacing</title>
<link>http://www.8051projects.net/forum-t10721.html</link>
<description><![CDATA[<br />Checking Busy flag is always better, bcoz it gives the controller inside the LCD sufficient time to complete what its doing (internally).<br /><br />on the other hand, the delay which we do in the code may or may not give the LCD controller enough time for its internal operation.<br /><br /><br />also checking busy flag method enables you to use same code on different micros  (Single cycle micro or 12 cycle normal micro) without recalculating delay timings and machine cycle time.<br /><br /><br /><br />Arun<br /><br /><br /><br /><br /><br /><br />]]></description>
<author>contact@nospam.com (Ajay Bhargav)</author>
<pubDate>Mon, 14 Jul 2008 00:46:53 -0700</pubDate>
<guid isPermaLink="true">http://www.8051projects.net/forum-t10721.html</guid>
</item>
						<item>
						<title>Re: LCD HD47780 interfacing</title>
<link>http://www.8051projects.net/forum-t10721.html</link>
<description><![CDATA[thks alot ~ <br />my circuit are working already ... thks for the help everyone  <img src='http://www.8051projects.net/e107_images/emotes/yahoo/69.gif' alt='' style='vertical-align:middle; border:0' />]]></description>
<author>contact@nospam.com (Ajay Bhargav)</author>
<pubDate>Mon, 14 Jul 2008 07:24:37 -0700</pubDate>
<guid isPermaLink="true">http://www.8051projects.net/forum-t10721.html</guid>
</item>
						<item>
						<title>Re: LCD HD47780 interfacing</title>
<link>http://www.8051projects.net/forum-t10721.html</link>
<description><![CDATA[void LCD_busy()<br />{<br />     LCD_D7   = 1;           //Make D7th bit of LCD as i/p<br />     LCD_en   = 1;           //Make port pin as o/p<br />     LCD_rs   = 0;           //Selected command register<br />     LCD_rw   = 1;           //We are reading<br />     while(LCD_D7){          //read busy flag again and again till it becomes 0<br />           LCD_en   = 0;     //Enable H->L<br />           LCD_en   = 1;<br />     }<br />}<br /><br />according to the code above, we need to set the LCD_en as 1 as a output port .<br />But why when checking the busy flag(LCD_D7) , it is toggled from 0 to 1 but not 1 to 0 ? i thought we should use toggle from high to low every time ?]]></description>
<author>contact@nospam.com (Ajay Bhargav)</author>
<pubDate>Sat, 26 Jul 2008 08:34:51 -0700</pubDate>
<guid isPermaLink="true">http://www.8051projects.net/forum-t10721.html</guid>
</item>
						<item>
						<title>Re: LCD HD47780 interfacing</title>
<link>http://www.8051projects.net/forum-t10721.html</link>
<description><![CDATA[Hi....<br />In the above code<strong class='bbcode bold'> LCD_en = 1; //Make port pin as o/p</strong> is not needed.<br />If you look at the LCD timing diagram,a read requires EN->L to H strobe while a write requires H to L.<br />Since you are reading the busy flag,a L to H is reqd for the enable pin.]]></description>
<author>contact@nospam.com (Ajay Bhargav)</author>
<pubDate>Sat, 26 Jul 2008 19:26:27 -0700</pubDate>
<guid isPermaLink="true">http://www.8051projects.net/forum-t10721.html</guid>
</item>
				</channel>
				</rss>