单片机C语言,P1口的使用问题

#include<AT89X51.h>#include<intrins.h>bitflag;unsignedcharcount,i;sbitKEY=P1^0;voidde... #include <AT89X51.h>
#include <intrins.h>
bit flag;
unsigned char count,i;
sbit KEY=P1^0;
void delay500(void)
{
unsigned char i;
for(i=250;i>0;i--)
{
_nop_();
}
}
void main(void)
{
while(1)
{
if(P1^7==0)
{
for(count<200;count>0;count--)
{
KEY=~KEY;
delay500();
}
for(count<200;count>0;count--)
{
KEY=~KEY;
delay500();
delay500();
}
}
}
}
这个程序可以编译,但是为什么下面的就不可以,求告诉解答:(报错error c141)
#include <AT89X51.h>
#include <intrins.h>
bit flag;
unsigned char count,i;
void delay500(void)
{
unsigned char i;
for(i=250;i>0;i--)
{
_nop_();
}
}
void main(void)
{
while(1)
{
if(P1^7==0)
{
for(count<200;count>0;count--)
{
P1^0=~P1^0;
delay500();
}
for(count<200;count>0;count--)
{
P1^0=~P1^0;
delay500();
delay500();
}
}
}
}
展开
 我来答
百度网友cc21aee
2013-07-23 · TA获得超过2044个赞
知道小有建树答主
回答量:1273
采纳率:100%
帮助的人:1220万
展开全部

这样改:

#include <AT89X51.h>

#include <intrins.h>

bit flag;

sbit L1=P1^0;  //

unsigned char count,i;

void delay500(void)

{

 unsigned char i;

 for(i=250;i>0;i--)

 {

  _nop_();

 }

}

void main(void)

{

 while(1)

 {

 if(P1^7==0)

  {

  for(count<200;count>0;count--)

   {

   L1=~L1; //

   delay500();

   }

  for(count<200;count>0;count--)

   {

 L1=~L1; //

   delay500();

   delay500();

   }

  }

 }

}
logic_liu
2013-07-23 · TA获得超过210个赞
知道答主
回答量:34
采纳率:0%
帮助的人:36.1万
展开全部
我来说说吧~在C语言中^这个符号是异或运算符
在第二段程序里这样P1^0=~P1^0;就是错误的,因为P1^0不是C语言允许的,你必须先定义一下
例如:sbit KEY=P1^0; 然后再使用KEY来操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hyz0cherry
2013-07-23
知道答主
回答量:35
采纳率:0%
帮助的人:11.9万
展开全部
你把计算机检验的错误放上来呀 如果不能执行 它自己会判断错误吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式