keil5改错,编程小白求大神指点

keil5写程序时总是说>前面少分号,但是我的程序里有分号啊,程序如下,报错在第20行for

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit D1=P2^0;
void main()
{
   while(1)
  {
     D1=0;
	 delay();
	 D1=1;
	 delay();
	 
  }

}
void delay();
{
uint x,y;
for(x=100;x>0;x--)
	{
for(y=2000;y>=0;y--);
	}
}

 

 

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit D1=P2^0;
void delay();
void main()
{
   while(1)
  {
     D1=0;
     delay();
     D1=1;
     delay();
     
  }
 
}
void delay()
{
uint x,y;
for(x=100;x>0;x--)
    {
for(y=2000;y>=0;y--);
    }
}

所以说缺少分号是指void delay()后面的分号么,那我源代码这里是有分号的呀

大神,还想问一个问题,这个代码没有错误了,但是为什么下载到单片机里是第一个led灯常亮啊,这个代码明明是一个流水灯代码

解决了,谢谢大神