keil c 的错误error C141: syntax error near '='

#include<reg51.h>#defineSW_PortP2;sbitbuzzer=P3^7;unsignedcharkeys;unsignedcharcodeto... #include <reg51.h>
#define SW_Port P2;
sbit buzzer=P3^7;
unsigned char keys;
unsigned char code tone[]= {115, 102, 91, 86, 77, 68, 61, 57 };
void sound(unsigned char);
void delay8us(unsigned char);
main()
{ while (1)
{ SW_Port=0xff;
keys=~SW_Port;
switch (keys)
{ case 0x01:sound(0);break;
case 0x02:sound(1);break;
case 0x04:sound(2);break;
case 0x08:sound(3);break;
case 0x10:sound(4);break;
case 0x20:sound(5);break;
case 0x40:sound(6);break;
case 0x80:sound(7);break;
default:buzzer=1;break;
}
}
}
void sound(unsigned char x)
{ unsigned char i;
for (i=0;i<60;i++)
{ buzzer=0; delay8us(tone[x]);
buzzer=1; delay8us(tone[x]);}
}
void delay8us(unsigned char x)
{ unsigned char i,j;
for (i=0;i<x;i++)
for (j=0;j<1;j++);
}
这句出现错误 { SW_Port=0xff;
展开
 我来答
ghost4063
2013-12-15 · TA获得超过6522个赞
知道大有可为答主
回答量:2940
采纳率:75%
帮助的人:2779万
展开全部
因为你在定义SW_Port时#define .... P2; P2后面有个分号,那么SW_Port就相当于“P2;”了
所以编译器在使用就相当于“P2;=0xff;”,这句当然是错的
所以在预定义的时候,千万记住,你定义中写的任何字符都会被引用进去
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式