请C牛人帮我看看这段程序哪里的语法错误,无法编译
#include <reg52.h>sbit P1_0=P1^0;
void mDelay(unsigned char DelayTime)
{unsigned int j=0;
for(;DelayTime>0;DelayTime--)
for(j=0;j<0,j++);
}
void mDelay1(unsigned char DelayTime)
{ unsigned int j=0;
for(;DelayTime>0;DelayTime--)
{ for(j=0;j<125;j++) {;}
}
}
void main()
{ unsigned int i;
for (;;){mDelay(10) ;//延时10毫秒
i++;
if(i==10)
{ P1_0=!P1_0;
i=0;
mDelay1(10); }
}
}
-------------------------------------------------------------------------------------------------------------------------------------------
这段程序是我在百度文库里面看到的,并且自己打出来的,想进一步学习KEIL的高级仿真功能,这段代码为何编译不了
http://cache.amobbs.com/bbs_upload782111/files_52/ourdev_721907JLB5J4.jpg
(原文件名:360截图20120224172848703.jpg) 自己看看你的第六行。
错误不少呀。
1.内部少了一个分号
2.j是unsigned int . 那怎么会是负数那?怎么小于0 第六行的,改为; for循环里面一个分号一个逗号 for(;;)是无限循环的吗? 回复【2楼】bynce 罗曼
-----------------------------------------------------------------------
我会改好了再发上来你们看看 sbit P1_0=P1^0;
楼主觉得对于51单片机,这句话用起来是不是有问题啊
我在用51的时候 P1_0 P1^0 都能实现单独的位操作 for(j=0;j<0,j++); void mDelay(unsigned char DelayTime)
{unsigned int j=0;
for(;DelayTime>0;DelayTime--)
for(j=0;j<0,j++);
} 中的for(j=0;j<0,j++); 改为for(j=0;j<0;j++); 忘记看句子了for(j=0;j<0;j++);本来就错误了J=0 J又<0 这里我估计你抄错了,应该是小于一个大于0的整数。 先学会走,然后再跑,不然会摔得很惨。基础很重要啊。 "先学会走,然后再跑,不然会摔得很惨。"
best advice. 我觉得,for语句后面不应当有 分号 二楼正解.
页:
[1]