C Code 8051 help!!

Discussion in 'Programmer's Corner' started by DeeB07, May 29, 2013.

  1. DeeB07

    Thread Starter New Member

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

    Code ( (Unknown Language)):
    1.  
    2. # include <reg51.h>
    3.  #define lcddatapin=P1 //P1
    4.  #define keypad=P3; //P3
    5.  sbit rs=P2^0;
    6.  sbit rw=P2^1;
    7.  sbit en=P2^2;
    8.  
    9.  sbit col1=P3^0;       //column 1
    10.  sbit col2=P3^1;       //column 2
    11.  sbit col3=P3^2;      //column 3
    12.  sbit col4=P3^3;       //column 4
    13.  sbit r1=P3^4;       //row1
    14.  sbit r2=P3^5;       //r2
    15.  sbit r3=P3^6;       //r3
    16.  sbit r4=P3^7;       //r4
    17.  
    18.  void lcdini(void);
    19.  void lcddata(unsigned char disp);                                                                        
    20.  void lcdcmd(unsigned char dta);                                                                                                  
    21.  void keyscan(void);
    22.  void lcdstr(unsigned char *str);
    23. unsigned int R;
    24. unsigned int C;
    25. void delay1();
    26. unsigned int i,x;
    27.  void cctini(void);
    28.  void scrlmu(void);
    29.  void clrscr(void);
    30.  void repeat();
    31.  unsigned int colm;
    32.  void previouskeycheck(void);
    33.  void main(void){
    34.                                                                    
    35.  // to display welcome message
    36.   lcdini();
    37.   lcdcmd(0x80);
    38.   delay(100);
    39.   lcdstr("WELCOME");
    40.  
    41.   for(;;){
    42.            
    43.  for(i=0;i<9;i++){
    44.   lcdcmd(0x1E);
    45.   delay1(10);
    46.     }
    47.  for(i=0;i<9;i++){
    48.   lcdcmd(0x18);
    49.   delay1();
    50.     }
    51.       }
    52.  
    53.      clrlcd() ;
    54.  
    55.       //main menu
    56.       lcdini()
    57.  lcdcmd(0x80);
    58.  lcdstr=("P1");
    59.  lcdcmd(0x0c)
    60.  lcdstr=("P2");
    61.  
    62.  if(R==4&&C==1);
    63.  //LCD SCROLL=P1
    64.  }
    65.  void scrlmu()
    66.  {
    67.  clrlcd()
    68.  {
    69.  lcdini()
    70.  lcdcmd(0x81)
    71.  lcdstr("Task1");
    72.  char T1[]={"T1 selected"};
    73.  lcdcmd(0x88)
    74.  lcdstr("Task2");    
    75.  char T2[]={"T2 selected"};
    76.  lcdcmd(0xc1);
    77.  lcdstr("Task3")    
    78.  char T3[]={"T3 selected"};
    79.  lcdcmd(0xc08);
    80.  lcdstr("Task4");    
    81.  char T4[]={"T4 selected"};    
    82.    
    83.     void keyscan();
    84.     Key[R][C]=
    85.     void tsk1()
    86.     void tsk2()
    87.     void tsk3()
    88.     void tsk4()
    89.      lcdini()
    90.  
    91.      while(1){
    92.      if(r1==1&&c4==1&&r2==0&&c4==0&&r3==0&&c4=0&&r4==0&&c4==0);
    93.      
    94.                  lcdstr()
    95.                  void tsk1()
    96.                  void repeat()
    97.            }
    98.     else {if(r1==0&&c4==1&&r2==1&&c4==0&&r3==0&&c4=0&&r4==0&&c4==0);
    99.      
    100.                  lcdstr();
    101.                  void tsk2();
    102.                  void repeat();
    103.                  }
    104.     else { if(r1==0&&c4==1&&r2==0&&c4==0&&r3==1&&c4=0&&r4==0&&c4==0);
    105.      
    106.                  lcdstr();
    107.                  void tsk3();
    108.                  void repeat();
    109.                          }
    110.     else { if(r1==0&&c4==1&&r2==0&&c4==0&&r3==0&&c4=0&&r4==1&&c4==0);
    111.      
    112.                  lcdstr();
    113.                  void tsk4();
    114.                  void repeat();
    115.  
    116.  
    117.         void tsk1()
    118.         {
    119.         int j;
    120.     for(j=0;t1[j]!='\0';j++)  //message1 to be displayed
    121.        {display(T1[j]);
    122.          delay1(50);
    123.                         }
    124.         }
    125.         void tsk2()
    126.         {
    127.         int j;
    128.  for(j=0;T2[j]!='\0';j++)  //message2 to be displayed
    129.       {display(name2[j]);
    130.          delay1(50);
    131.                         }
    132.  
    133.                 }                
    134.          void tsk3()
    135.         {
    136.         int j;
    137.   for(j=0;T3[j]!='\0';j++)  //message3 to be displayed
    138.      {display(T3[j]);
    139.        delay1(50);
    140.           }
    141.         }
    142.  
    143.          void tsk4()
    144.         {
    145.         int j;
    146. for(j=0;T4[j]!='\0';j++)  //message4 to be displayed
    147.      {display(T4[j]);
    148.         delay1(50);
    149.                 }
    150.         }
    151.         void repeat(){
    152.                         for(;;){
    153.                           lcdcmd(0x18);  
    154.                           lcdcmd(0x1C);  
    155.                           delay(75);
    156.                                 }
    157.           }
    158.               }}}
    159.    else {
    160.    (if R==4&&C==2)
    161.    };
    162.    //Calculator Routine
    163.    lcdclr();
    164.    unsigned char key;
    165.    unsigned char op;
    166.    unsigned char eq                    
    167.    unsigned int num1                
    168.    unsigned int num2                  
    169.    
    170.    cctini();                  
    171.    lcdinit();                    
    172.     cctini(){
    173.     while(1);
    174.     { key=keyscan();
    175.       num1=key[R][C];
    176.       lcddata(key);
    177.       delay(500);
    178.       {
    179.  
    180.        op=keyscan();
    181.        opr=key[R][C];
    182.         if(C!=4)
    183.         {lcdcmd(0x01)
    184.         else{
    185.        lcddata(op)
    186.        delay(500)}}
    187.  
    188.        {key=keyscan();
    189.         num2=[R][C];
    190.         lcddata(key);
    191.         delay(500)
    192.  
    193.         eq=keyscan()
    194.         eqs=[R][C];
    195.         if(R!=1&&C!=3)
    196.         lcdcmd(0x01);
    197.         else{
    198.         lcddata(eq)
    199.  
    200.         //calculation
    201.         void calculation(unsigned char res)
    202.         {if(opr==[1][4])
    203.             res=num1+num2;
    204.             lcdini()
    205.             lcddata(res);
    206.         }
    207.         else { if(opr==[2][4])
    208.              res=num1-num2;
    209.              lcdini()
    210.              lcddata(res);
    211.              }
    212.         else { if(opr==[3][4]
    213.         )     res=num1*num2
    214.               lcdini()
    215.               lcddata(res)
    216.         }
    217.         else { if(opr==[4][4])
    218.               res=num1/num2
    219.               if(num2==0){
    220.               lcdcmd(0x01)
    221.             else{
    222.             lcddata(res)
    223.             }
    224.         }}}}})}}
    225.  
    226.    
    227.   //DELAY ROUTINE
    228.   void delay(unsigned int msec)
    229. {
    230.  int i,j;
    231.  for(i=0;i<msec;i++);
    232.  for(j=0;j<1275;j++);
    233. }        
    234.  
    235.  
    236.  
    237.  
    238.     //KEYPAD
    239.  
    240. unsigned char Key[4][4] ={'9','S','=','+',                        
    241.                           '6','7','8','-',                        
    242.                           '3','4','5','*',
    243.                           '0','1','2','/'};
    244.            
    245.             keyscan(){
    246.             P3 = 0x0F;                                                                
    247.             while(P3 == 0x0F);
    248.                     {
    249.                    //ROW
    250.             if(P3==0x0E)                                                        
    251.                   R=1
    252.                   r1=1;
    253.  
    254.             else if(P3==0x0D)                                                
    255.                   R=2
    256.                   r2=1;
    257.             else if(P3==0x0B)              
    258.                   R=3
    259.                   r3=1;
    260.             else if(P3==0x07)                
    261.                   R=4
    262.                   r4=1;
    263.  
    264.             //COULMN
    265.             P3=0xF0;                                                                
    266.             while(P3==0xF0);
    267.  
    268.             if(P3==0xE0)                                                        
    269.                C=1
    270.                c1=1;
    271.             else if(P3==0xD0)                                                
    272.                C=2
    273.               c2=1;
    274.             else if(P3 == 0xB0)                
    275.               C=3
    276.               c3=1;
    277.             else if(P3==0x70)                
    278.               C=4
    279.               c4=1;
    280.             delay(20);
    281.                       }
    282.  
    283.      //LCD ROUTINE
    284.  
    285.   void lcdini() //to initialize the LCD
    286. {
    287.  lcdcmd(0x38);
    288.  delay(5);
    289.  lcdcmd(0x01);
    290.  delay(5);
    291.  lcdcmd(0x0C);
    292.  delay(5);
    293.  lcdsmd(0x80);
    294.  delay(5);
    295. }
    296.  
    297.  void lcdcmd(unsigned char dta)//lcdcommand is sending command to P1/LCD pins
    298.  {
    299.  lcddata=dta;
    300.  rs=0;
    301.  rw=0;
    302.  en=0;
    303.  en=1;
    304.  delay(10);
    305.  en=0;
    306. }
    307.  
    308.  void lcddata(unsigned char disp) // send data on P1/LCD
    309. {
    310.  lcddatapin=disp;
    311.  rs=1;
    312.  rw=0;
    313.  en=1;
    314.  delay(1);
    315.  en=0;
    316. }
    317.  
    318.  lcdstr(unsigned char *strr) // send string to LCD
    319. {
    320.  
    321. int x;
    322. for(x=0;strr[x]!='\0';x++)
    323. {
    324. lcddata(strr[x]);
    325. }
    326. }
    327.                                                                        
    328.     void clrscr(void)
    329. {
    330.         rs = 0;
    331.         lcddatapin=0x01;
    332.         delay(255);
    333.         rs = 1;
    334.  
     
    Last edited by a moderator: May 29, 2013
Loading...