Discussion in "Project Doubts" started by    pratikshinde    Jul 19, 2012.
Thu Jul 26 2012, 12:16 pm
#21
is there any warning in the code?
Thu Jul 26 2012, 12:57 pm
#22
@majoka,@Ajay

Which keil are you using?

no error messages are generated, few warnings are there, but those of functions defined but not used/called.


[ Edited Thu Jul 26 2012, 12:57 pm ]
Thu Jul 26 2012, 02:25 pm
#23
Fri Jul 27 2012, 05:26 pm
#24
Hello mjoka,

I have used Keil from link you have given,

and now the code is working fine,

here is screen shot,

thank you very much for your support,
mjoka and Curiou_Som

http://www.4shared.com/photo/ecVTKC1W/2012-07-27_16-53-33_273.html?refurl=d1url


[ Edited Fri Jul 27 2012, 05:27 pm ]
Fri Jul 27 2012, 10:10 pm
#25
@pratik

welcome pratik. happy to help you.

I never thought that difference in the version of a same compiler can cause a problem like that.
Thanks for the lesson Ajay ,Majoka.
Sat Jul 28 2012, 06:17 am
#26
@ pratikshinde
glad to happy that u has done it

@ Curiou_Som
i was doubt that pratikshinde was using a trial version or evolution version
evolution version can compile a program with in a 2kbytes
the code was small than 2 kb but i think it was not a registered version that was creating problem
otherwise there is no difference between its versions
Thu Mar 14 2013, 12:22 am
#27
hello majoka and Ajay i am having problem interfacing 16x2 LCD with 89c55 controller i have used P0.4 to P0.7 as data and P2.0 and P2.1 as RS and EN respectively. I have connected 10K pull-up resistor with P0.but still i am not able to run on Hardware. Proteus run the code successfully. please tell me where I am Wrong?

#include <regx55.h>

//*******************
//Pin description
/*
P2.4 to P2.7 is data bus
P1.0 is RS
P1.1 is E
*/
//********************

// Defines Pins
sbit RS = P2^0;
sbit E  = P2^1;

//Function declarations
void cct_init(void);
void delay(int);
void lcdinit(void);
void writecmd(int);
void writedata(char);
void writeString(unsigned char *);
void ReturnHome(void);

void cct_init(void)
{
P0 = 0x00;   //not used 
//P1 = 0x00;   //not used 
P2 = 0x00;   //used as data port
//P3 = 0x00;   //used for generating E and RS
}

void delay(int a)
{
   int i;
   for(i=0;i<a;i++);   //null statement
}

void writedata(char t)
{
   RS = 1;             // This is data

   P0 &= 0x0F;		   // Make P2.4 to P2.7 zero
   P0 |= (t&0xF0);     // Write Upper nibble of data

   E  = 1;             // =>
 E = 1
   delay(150);
   E  = 0;             // =>
 E = 0
   delay(150);

   P0 &= 0x0F;		   // Make P2.4 to P2.7 zero
   P0 |= ((t<<4)&0xF0);// Write Lower nibble of data

   E  = 1;             // =>
 E = 1
   delay(150);
   E  = 0;             // =>
 E = 0
   delay(150);
}


void writecmd(int z)
{
   RS = 0;             // This is command

   P0 &= 0x0F;		   // Make P2.4 to P2.7 zero
   P0 |= (z&0xF0);     // Write Upper nibble of data

   E  = 1;             // =>
 E = 1
   delay(150);
   E  = 0;             // =>
 E = 0
   delay(150);

   P0 &= 0x0F;		   // Make P2.4 to P2.7 zero
   P0 |= ((z<<4)&0xF0);// Write Lower nibble of data

   E  = 1;             // =>
 E = 1
   delay(150);
   E  = 0;             // =>
 E = 0
   delay(150);
}
void writeString(unsigned char *s)
{
	while(*s)
	writedata(*s++);

}
void lcdinit(void)
{
  ///////////// Reset process from datasheet /////////
     delay(15000);

	 P0 &= 0x0F;		   // Make P2.4 to P2.7 zero
	 P0 |= (0x30&0xF0);    // Write 0x3
	
	 E  = 1;               // =>
 E = 1
	 delay(150);
	 E  = 0;               // =>
 E = 0
	 delay(150);

     delay(4500);

	 P0 &= 0x0F;		   // Make P2.4 to P2.7 zero
	 P0 |= (0x30&0xF0);    // Write 0x3
	
	 E  = 1;               // =>
 E = 1
	 delay(150);
	 E  = 0;               // =>
 E = 0
	 delay(150);

     delay(300);

	 P0 &= 0x0F;		   // Make P2.4 to P2.7 zero
	 P0 |= (0x30&0xF0);    // Write 0x3
	
	 E  = 1;               // =>
 E = 1
	 delay(150);
	 E  = 0;               // =>
 E = 0
	 delay(150);

     delay(650);

	 P0 &= 0x0F;		   // Make P2.4 to P2.7 zero
	 P0 |= (0x20&0xF0);    // Write 0x2
	
	 E  = 1;               // =>
 E = 1
	 delay(150);
	 E  = 0;               // =>
 E = 0
	 delay(150);

	 delay(650);

  /////////////////////////////////////////////////////
   writecmd(0x28);    //function set
   writecmd(0x0c);    //display on,cursor off,blink off
   writecmd(0x01);    //clear display
   writecmd(0x06);    //entry mode, set increment
}

void main()
{	
	cct_init();                                     //Make all ports zero
   	lcdinit();                                      //Initilize LCD
	
	writeString("Hello World");
} 	  

please help me out


[ Edited Thu Mar 14 2013, 12:44 am ]
Thu Mar 14 2013, 11:46 pm
#28
Please guys I need help i have tried every thing but not working.............
Thu Mar 14 2013, 11:52 pm
#29
please check your delay function, does that provide sufficient delay?
Fri Mar 15 2013, 10:56 pm
#30


but still i am not able to run on Hardware. Proteus run the code successfully. please tell me where I am Wrong?

taher


The obvious conclusion is that you have a hardware fault !
recheck all connections.

Have you tried adjusting the contrast ?

Post a diagram of your circuit.

Get Social

Information

Powered by e107 Forum System

Downloads

Comments

Bobbyerilar
Thu Mar 28 2024, 08:08 am
pb58
Thu Mar 28 2024, 05:54 am
Clarazkafup
Thu Mar 28 2024, 02:24 am
Walterkic
Thu Mar 28 2024, 01:19 am
Davidusawn
Wed Mar 27 2024, 08:30 pm
Richardsop
Tue Mar 26 2024, 10:33 pm
Stevencog
Tue Mar 26 2024, 04:26 pm
Bernardwarge
Tue Mar 26 2024, 11:15 am