C Code 8051 help!!

Thread Starter

DeeB07

Joined May 29, 2013
1
Can someone please check my code? I have a dozen errors in keil. I am newbie please i need help and urgently.

Rich (BB code):
# include <reg51.h>
 #define lcddatapin=P1 //P1
 #define keypad=P3;	//P3
 sbit rs=P2^0;
 sbit rw=P2^1;
 sbit en=P2^2;
 
 sbit col1=P3^0;       //column 1
 sbit col2=P3^1;       //column 2
 sbit col3=P3^2;      //column 3
 sbit col4=P3^3;       //column 4
 sbit r1=P3^4;		 //row1
 sbit r2=P3^5;		 //r2
 sbit r3=P3^6;		 //r3
 sbit r4=P3^7;		 //r4
 
 void lcdini(void);
 void lcddata(unsigned char disp);                                                                        
 void lcdcmd(unsigned char dta);                                                                                                  
 void keyscan(void);
 void lcdstr(unsigned char *str); 
unsigned int R;
unsigned int C;
void delay1();
unsigned int i,x;
 void cctini(void);
 void scrlmu(void);
 void clrscr(void);
 void repeat();
 unsigned int colm;
 void previouskeycheck(void);
 void main(void){ 
                                                                    
 // to display welcome message
  lcdini();
  lcdcmd(0x80);
  delay(100);
  lcdstr("WELCOME");
  
  for(;;){
 			
 for(i=0;i<9;i++){
  lcdcmd(0x1E);
  delay1(10);
    }
 for(i=0;i<9;i++){
  lcdcmd(0x18);
  delay1();
    }
	  }

	 clrlcd() ;

	  //main menu
	  lcdini()
 lcdcmd(0x80);
 lcdstr=("P1");
 lcdcmd(0x0c)
 lcdstr=("P2");

 if(R==4&&C==1);
 //LCD SCROLL=P1
 }
 void scrlmu()
 {
 clrlcd()
 {
 lcdini()
 lcdcmd(0x81)
 lcdstr("Task1"); 
 char T1[]={"T1 selected"};
 lcdcmd(0x88)
 lcdstr("Task2");    
 char T2[]={"T2 selected"};
 lcdcmd(0xc1);
 lcdstr("Task3")    
 char T3[]={"T3 selected"};
 lcdcmd(0xc08);
 lcdstr("Task4");    
 char T4[]={"T4 selected"};    
	
	void keyscan();
	Key[R][C]=
    void tsk1()
	void tsk2()
	void tsk3()
	void tsk4()
	 lcdini()

	 while(1){
	 if(r1==1&&c4==1&&r2==0&&c4==0&&r3==0&&c4=0&&r4==0&&c4==0);
	 
				 lcdstr()
				 void tsk1()
				 void repeat()
		   }
    else {if(r1==0&&c4==1&&r2==1&&c4==0&&r3==0&&c4=0&&r4==0&&c4==0);
	 
				 lcdstr();
				 void tsk2();
				 void repeat();
				 }
	else { if(r1==0&&c4==1&&r2==0&&c4==0&&r3==1&&c4=0&&r4==0&&c4==0);
	 
				 lcdstr();
				 void tsk3();
				 void repeat();
						 }
	else { if(r1==0&&c4==1&&r2==0&&c4==0&&r3==0&&c4=0&&r4==1&&c4==0);
	 
				 lcdstr();
				 void tsk4();
				 void repeat();


		void tsk1()
		{
        int j;
    for(j=0;t1[j]!='\0';j++)  //message1 to be displayed
       {display(T1[j]);
         delay1(50);
                        }
        }
		void tsk2()
        {
        int j;
 for(j=0;T2[j]!='\0';j++)  //message2 to be displayed
      {display(name2[j]);
         delay1(50);
                        }

				}				  
	     void tsk3()
        {
        int j;
  for(j=0;T3[j]!='\0';j++)  //message3 to be displayed
     {display(T3[j]);
       delay1(50);
          }
        }

         void tsk4()
        {
        int j;
for(j=0;T4[j]!='\0';j++)  //message4 to be displayed
     {display(T4[j]);
        delay1(50);
                }
        }
		void repeat(){
                        for(;;){
                          lcdcmd(0x18);  
                          lcdcmd(0x1C);  
                          delay(75);
                                }
          }
 			  }}}
   else {
   (if R==4&&C==2)
   };
   //Calculator Routine
   lcdclr();
   unsigned char key;
   unsigned char op;
   unsigned char eq                     
   unsigned int num1                 
   unsigned int num2                  
   
   cctini();                  
   lcdinit();                    
    cctini(){
	while(1);
	{ key=keyscan();
	  num1=key[R][C];
	  lcddata(key);
	  delay(500);
	  {

	   op=keyscan();
	   opr=key[R][C];
	   	if(C!=4)
		{lcdcmd(0x01)
		else{
	   lcddata(op)
	   delay(500)}}

	   {key=keyscan();
		num2=[R][C];
		lcddata(key);
		delay(500)

		eq=keyscan()
		eqs=[R][C];
		if(R!=1&&C!=3)
		lcdcmd(0x01);
		else{
		lcddata(eq)

		//calculation
		void calculation(unsigned char res)
		{if(opr==[1][4])
		    res=num1+num2;
			lcdini()
			lcddata(res);
		}
		else { if(opr==[2][4])
			 res=num1-num2;
			 lcdini()
			 lcddata(res);
			 }
		else { if(opr==[3][4]
		)	  res=num1*num2
			  lcdini()
			  lcddata(res)
		}
		else { if(opr==[4][4])
			  res=num1/num2
			  if(num2==0){
			  lcdcmd(0x01)
			else{
			lcddata(res)
			}
		}}}}})}}

   
  //DELAY ROUTINE
  void delay(unsigned int msec) 
{
 int i,j;
 for(i=0;i<msec;i++);
 for(j=0;j<1275;j++);
}        




	//KEYPAD

unsigned char Key[4][4] ={'9','S','=','+',                        
                          '6','7','8','-',                        
                          '3','4','5','*',
                          '0','1','2','/'};
            
			keyscan(){
			P3 = 0x0F;                                                                
            while(P3 == 0x0F);
           			{
				   //ROW
            if(P3==0x0E)                                                         
                  R=1
				  r1=1;

            else if(P3==0x0D)                                                
                  R=2
				  r2=1;
            else if(P3==0x0B)               
                  R=3
				  r3=1;
            else if(P3==0x07)                
                  R=4
				  r4=1;

			//COULMN
            P3=0xF0;                                                                
            while(P3==0xF0);
 
            if(P3==0xE0)                                                        
               C=1
			   c1=1;
            else if(P3==0xD0)                                                
               C=2
			  c2=1;
            else if(P3 == 0xB0)                 
              C=3
			  c3=1;
            else if(P3==0x70)                 
              C=4
			  c4=1;
            delay(20);
           			  }

	 //LCD ROUTINE

  void lcdini() //to initialize the LCD
{
 lcdcmd(0x38); 
 delay(5);
 lcdcmd(0x01); 
 delay(5);
 lcdcmd(0x0C); 
 delay(5);
 lcdsmd(0x80);
 delay(5);
}

 void lcdcmd(unsigned char dta)//lcdcommand is sending command to P1/LCD pins
 {
 lcddata=dta;
 rs=0;
 rw=0;
 en=0;
 en=1;
 delay(10);
 en=0;
}

 void lcddata(unsigned char disp) // send data on P1/LCD
{
 lcddatapin=disp;
 rs=1;
 rw=0;
 en=1;
 delay(1);
 en=0;
}
  
 lcdstr(unsigned char *strr) // send string to LCD
{

int x;
for(x=0;strr[x]!='\0';x++)
{
lcddata(strr[x]);
}
}
                                                                       
 	void clrscr(void)
{
        rs = 0;
        lcddatapin=0x01; 
		delay(255);
        rs = 1;
 
Last edited by a moderator:
Top