用c语言怎样能实现当51单片机p1.0=1,则p1.2=1,并保持,直到p1.1=1时,p1.2=0并跳出循环?
展开全部
基本的程序过程,你试试吧,有问题再问:
while(1)
{
if(P1.0==1)
P1.2=1;
if(P1.1==1)
{
P1.2=0;
break; //跳出循环
}
}
追问
我之前就是编的这个,编译的时候警告p1.2=1和p1.2=0这两个语句无效吧
追答
#include <at89x51.H>
sbit P10=P1^0; //位定义,提前声明一下
sbit P11=P1^1; //位定义,提前声明一下
sbit P12=P1^2; //位定义,提前声明一下
void main()
{
while(1)
{
if(P10==1)
P12=1;
if(P11==1)
{
P12=0;
break; //跳出循环
}
}
}
展开全部
方法有很多,最简单的
while( 1 )
{
if (p1.0 == 1)
p1.2 = 1;
else
{
p1.2 = 0;
break;
}
}
最简单,但是实时性很差。要实时性好的话用中断,我就不写了。
while( 1 )
{
if (p1.0 == 1)
p1.2 = 1;
else
{
p1.2 = 0;
break;
}
}
最简单,但是实时性很差。要实时性好的话用中断,我就不写了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while((P1^0==1)&&(P1^!=1)) P1^2=1;
if(P1^1==1) P1^2=0;
if(P1^1==1) P1^2=0;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没明白你的意思。你都说了当p1.0=1,则p1.2=1,并保持。后面的p1.2=0哪里来的?硬件上的么?
追问
后面的p1.2=0是当p1.1口发出高电平时,p1.2口由高电平跳为低电平
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询