51单片机(用的是keil uVision4)出现问题,那位大仙解决下

问题:
MAIN1.C(4): error C202: 'p1': undefined identifier
MAIN1.C(11): error C141: syntax error near '}'
MAIN1.C(15): error C202: 'LED_BIT': undefined identifier
MAIN1.C(18): error C141: syntax error near 'p0'
Target not created
源程序是:
#include <reg52.h>
#include <absacc.h>

sbit LED_BIT = p1^6;

void delays()
{
unsigned i, j;
for(i=300;i>0;i--)
for(j=2000;j>0;j--)
}
void main(void)
{
int p1,p0;
LED_BIT = 1;
p0 = 0xff;
delays()
p0=0x00;
delays();
p0=0xff;
wjile(1);
}

1)int p1,p0; //不用要的,还有就是p要大写,这是因为reg52.h中已经有了P的全局变量。
所以你函数中的所有P都要大写。
2) unsigned i, j;
for(i=300;i>0;i--)
for(j=2000;j>0;j--);
3)sbit LED_BIT = p1^6; // 这句话不要 LED_BIT设为全局变量 LED_BIT在函数中赋值

编程序要细心,还有就是要养成良好的书写格式。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-06
#include <reg52.h>
#include <absacc.h>

sbit LED_BIT = P1^6;

void delays()
{
unsigned i, j;
for(i=300;i>0;i--)
for(j=2000;j>0;j--)
}
void main(void)
{
LED_BIT = 1;
P0 = 0xff;
delays()
P0=0x00;
delays();
P0=0xff;
wjile(1);
}

这样试试,p1 p0应该大写P1 P0追问

Build target 'Target 1'
compiling main1.c...
MAIN1.C(11): error C141: syntax error near '}'
Target not created

改了之后还是有个错误啊,这是什么意思啊

追答

#include
#include

sbit LED_BIT = P1^6;

void delays()
{
unsigned i, j;
for(i=300;i>0;i--)
for(j=2000;j>0;j--)
;
}
void main(void)
{
LED_BIT = 1;
P0 = 0xff;
delays();
P0=0x00;
delays();
P0=0xff;
while(1);
}

这个试试,我编译没问题

追问

为什么在第二个for后加了一个“;”后就没有问题了。我按照你的弄了下确实没问题了,这个可以解释下嘛,thank you

追答

加个;相当于执行个空操作,如果不加语法上有错误。

第2个回答  2012-03-06
p要大些,你的{ }没有配对,或多或少一个
相似回答
大家正在搜