標題: LED.c(81): error C141: syntax error near '', expected '__asm'這是哪錯了,大佬... [打印本頁]

作者: 雪雨洛    時間: 2022-1-3 00:30
標題: LED.c(81): error C141: syntax error near '', expected '__asm'這是哪錯了,大佬...
LED.c(81): error C141: syntax error near '', expected '__asm'
#include<reg52.h>
#include<intrins.h>
#define unit unsigned int
#define uchar unsigned char
sbit k0=P1^0;       
sbit k1=P1^1;
sbit k2=P1^2;
#define        leds p2

void delay_1ms();
void delay_ms(unsigned int x);

uchar mode1[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//0x04---00000 1000
uchar mode2[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
uchar mode3[16]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};

void main()
{
   uchar i;
   uchar mode=0;
   uchar key_flag=0;
   while(!key_flag)
   {
     if(!k0)
        {
          _nop_();
          if(!k0)
          {
          key_flag=1;
          mode=1;
          while(!k0);
          }
          if(!k1)
        {
          _nop_();
          if(!k1)
          {
          key_flag=1;
          mode=2;
          while(!k1);
          }
           if(!k2)
        {
          _nop_();
          if(!k2)
          {
          key_flag=1;
          mode=3;
          while(!k2);
          }
    }

}
   while(1)
   {
     if(mode==1)
     {
       for(i=0;i<8;i++)
           {
             P2=mode1[i];
             delay_ms(500);
           }
     }
          else if(mode==2)
     {
       for(i=0;i<8;i++)
           {
             P2=mode2[i];
             delay_ms(500);
           }
     }
          else if(mode==3)
     {
       for(i=0;i<16;i++)
           {
             P2=mode3[i];
             delay_ms(500);
           }
     }
    }
}



作者: w1179benp    時間: 2022-1-3 07:56
主程序viod main() 結(jié)尾少了兩個 } },加上可編譯成功。
作者: 13205495918    時間: 2022-1-3 08:24
你的main函數(shù)少括號,你在下面加上倆括號。
作者: angmall    時間: 2022-1-3 08:29
找提示的第一個錯誤,后面的是累記的,一般第一個錯誤改正后就沒錯誤了

給你改了,對比一下就知道哪里錯了。
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define unit unsigned int
  4. #define uchar unsigned char
  5. sbit k0=P1^0;
  6. sbit k1=P1^1;
  7. sbit k2=P1^2;
  8. #define        leds p2

  9. void delay_1ms();
  10. void delay_ms(unsigned int x);

  11. uchar mode1[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//0x04---00000 1000
  12. uchar mode2[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
  13. uchar mode3[16]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};

  14. void main()
  15. {
  16.         uchar i;
  17.         uchar mode=0;
  18.         uchar key_flag=0;
  19.         while(!key_flag)
  20.         {
  21.                 if(!k0)
  22.                 {
  23.                         _nop_();
  24.                         if(!k0)
  25.                         {
  26.                                 key_flag=1;
  27.                                 mode=1;
  28.                                 while(!k0);
  29.                         }
  30.                 }
  31.                 if(!k1)
  32.                 {
  33.                         _nop_();
  34.                         if(!k1)
  35.                         {
  36.                                 key_flag=1;
  37.                                 mode=2;
  38.                                 while(!k1);
  39.                         }
  40.                 }
  41.                 if(!k2)
  42.                 {
  43.                         _nop_();
  44.                         if(!k2)
  45.                         {
  46.                                 key_flag=1;
  47.                                 mode=3;
  48.                                 while(!k2);
  49.                         }
  50.                 }
  51.                

  52.         }
  53.         while(1)
  54.         {
  55.                 if(mode==1)
  56.                 {
  57.                         for(i=0;i<8;i++)
  58.                         {
  59.                                 P2=mode1[i];
  60.                                 delay_ms(500);
  61.                         }
  62.                 }
  63.                 else if(mode==2)
  64.                 {
  65.                         for(i=0;i<8;i++)
  66.                         {
  67.                                 P2=mode2[i];
  68.                                 delay_ms(500);
  69.                         }
  70.                 }
  71.                 else if(mode==3)
  72.                 {
  73.                         for(i=0;i<16;i++)
  74.                         {
  75.                                 P2=mode3[i];
  76.                                 delay_ms(500);
  77.                         }
  78.                 }
  79.         }
  80. }
復制代碼

作者: ziuny    時間: 2022-1-3 09:37
最下面少了2個 “}”,  補上再編譯就OK啦
作者: ziuny    時間: 2022-1-3 09:40
碼代碼的時候注意縮進對齊就不會這樣出錯了




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1